/**!
 * @license FusionCharts JavaScript Library
 * Copyright FusionCharts, Inc.
 * License Information at <http://www.fusioncharts.com/license>
 *
 * @version 3.15.1-sr.1
 *
 * @attributions (infers respective third-party copyrights)
 * Raphael 2.1.0 (modified as 'Red Raphael') <http://raphaeljs.com/license.html>
 * JSON v2 <http://www.JSON.org/js.html>
 * Firebug Lite 1.3.0 <http://getfirebug.com/firebuglite>
 */
"function" != typeof Object.assign && (Object.assign = function(e) {
        "use strict";
        var t, r, n, a;
        if (null == e) throw new TypeError("Cannot convert undefined or null to object");
        for (t = Object(e), r = 1; r < arguments.length; r++)
            if (null != (n = arguments[r]))
                for (a in n) Object.prototype.hasOwnProperty.call(n, a) && (t[a] = n[a]);
        return t
    }), Function.prototype.bind || (Function.prototype.bind = function(e) {
        "use strict";
        var t, r, n, a;
        if ("function" != typeof this) throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
        return t = Array.prototype.slice.call(arguments, 1), r = this, n = function() {}, a = function() {
            return r.apply(this instanceof n ? this : e, t.concat(Array.prototype.slice.call(arguments)))
        }, this.prototype && (n.prototype = this.prototype), a.prototype = new n, a
    }), !document.head && (document.head = document.getElementsByTagName("head")[0]),
    function(e, t) {
        "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.FusionCharts = t() : e.FusionCharts = t()
    }(window, (function() {
        return function(e) {
            function t(t) {
                for (var r, a, i = t[0], o = t[1], s = 0, c = []; s < i.length; s++) a = i[s], Object.prototype.hasOwnProperty.call(n, a) && n[a] && c.push(n[a][0]), n[a] = 0;
                for (r in o) Object.prototype.hasOwnProperty.call(o, r) && (e[r] = o[r]);
                for (l && l(t); c.length;) c.shift()()
            }
            var r = {},
                n = {
                    0: 0
                };

            function a(t) {
                if (r[t]) return r[t].exports;
                var n = r[t] = {
                    i: t,
                    l: !1,
                    exports: {}
                };
                return e[t].call(n.exports, n, n.exports, a), n.l = !0, n.exports
            }
            a.e = function(e) {
                var t = [],
                    r = n[e];
                if (0 !== r)
                    if (r) t.push(r[2]);
                    else {
                        var i = new Promise((function(t, a) {
                            r = n[e] = [t, a]
                        }));
                        t.push(r[2] = i);
                        var o, s = document.createElement("script");
                        s.charset = "utf-8", s.timeout = 120, a.nc && s.setAttribute("nonce", a.nc), s.src = function(e) {
                            return a.p + "" + ({
                                1: "fusioncharts.charts",
                                2: "fusioncharts.common",
                                3: "fusioncharts.timeseries",
                                4: "fusioncharts.powercharts",
                                5: "fusioncharts.widgets",
                                6: "fusioncharts.zoomline",
                                7: "fusioncharts.gantt",
                                8: "fusioncharts.treemap",
                                9: "fusioncharts.zoomscatter",
                                10: "fusioncharts.msstackedcolumn2dsplinedy",
                                11: "fusioncharts.overlappedbar2d",
                                12: "fusioncharts.overlappedcolumn2d",
                                13: "fusioncharts.excelexport",
                                14: "fusioncharts.maps",
                                15: "fusioncharts.vml"
                            }[e] || e) + ".js"
                        }(e);
                        var l = new Error;
                        o = function(t) {
                            s.onerror = s.onload = null, clearTimeout(c);
                            var r = n[e];
                            if (0 !== r) {
                                if (r) {
                                    var a = t && ("load" === t.type ? "missing" : t.type),
                                        i = t && t.target && t.target.src;
                                    l.message = "Loading chunk " + e + " failed.\n(" + a + ": " + i + ")", l.name = "ChunkLoadError", l.type = a, l.request = i, r[1](l)
                                }
                                n[e] = undefined
                            }
                        };
                        var c = setTimeout((function() {
                            o({
                                type: "timeout",
                                target: s
                            })
                        }), 12e4);
                        s.onerror = s.onload = o, document.head.appendChild(s)
                    }
                return Promise.all(t)
            }, a.m = e, a.c = r, a.d = function(e, t, r) {
                a.o(e, t) || Object.defineProperty(e, t, {
                    enumerable: !0,
                    get: r
                })
            }, a.r = function(e) {
                "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
                    value: "Module"
                }), Object.defineProperty(e, "__esModule", {
                    value: !0
                })
            }, a.t = function(e, t) {
                if (1 & t && (e = a(e)), 8 & t) return e;
                if (4 & t && "object" == typeof e && e && e.__esModule) return e;
                var r = Object.create(null);
                if (a.r(r), Object.defineProperty(r, "default", {
                        enumerable: !0,
                        value: e
                    }), 2 & t && "string" != typeof e)
                    for (var n in e) a.d(r, n, function(t) {
                        return e[t]
                    }.bind(null, n));
                return r
            }, a.n = function(e) {
                var t = e && e.__esModule ? function() {
                    return e["default"]
                } : function() {
                    return e
                };
                return a.d(t, "a", t), t
            }, a.o = function(e, t) {
                return Object.prototype.hasOwnProperty.call(e, t)
            }, a.p = "", a.oe = function(e) {
                throw console.error(e), e
            };
            var i = window.webpackJsonpFusionCharts = window.webpackJsonpFusionCharts || [],
                o = i.push.bind(i);
            i.push = t, i = i.slice();
            for (var s = 0; s < i.length; s++) t(i[s]);
            var l = o;
            return a(a.s = 0)
        }([function(e, t, r) {
            r(1), r(98), r(182), e.exports = r(186)
        }, function(e, t, r) {
            "use strict";
            r(2), r(49), r(51), r(53), r(59), r(62), r(69), r(78), r(83), r(85), r(88), r(90), r(92), r(97);
            window.getComputedStyle || (window.getComputedStyle = function(e) {
                return this.el = e, this.getPropertyValue = function(t) {
                    var r = /(\-([a-z]){1})/g,
                        n = t;
                    return "float" === n && (n = "styleFloat"), r.test(n) && (n = n.replace(r, (function() {
                        return arguments[2].toUpperCase()
                    }))), e.currentStyle[n] ? e.currentStyle[n] : null
                }, this
            }), Event.prototype.stopPropagation || (Event.prototype.stopPropagation = function() {
                this.cancelBubble = !0
            })
        }, function(e, t, r) {
            r(3);
            var n = r(38).Object;
            e.exports = function(e) {
                return n.getOwnPropertyNames(e)
            }
        }, function(e, t, r) {
            var n = r(4),
                a = r(9),
                i = r(48).f;
            n({
                target: "Object",
                stat: !0,
                forced: a((function() {
                    return !Object.getOwnPropertyNames(1)
                }))
            }, {
                getOwnPropertyNames: i
            })
        }, function(e, t, r) {
            var n = r(5),
                a = r(7).f,
                i = r(21),
                o = r(24),
                s = r(25),
                l = r(35),
                c = r(47);
            e.exports = function(e, t) {
                var r, u, d, h, f, g = e.target,
                    p = e.global,
                    m = e.stat;
                if (r = p ? n : m ? n[g] || s(g, {}) : (n[g] || {}).prototype)
                    for (u in t) {
                        if (h = t[u], d = e.noTargetGet ? (f = a(r, u)) && f.value : r[u], !c(p ? u : g + (m ? "." : "#") + u, e.forced) && d !== undefined) {
                            if (typeof h == typeof d) continue;
                            l(h, d)
                        }(e.sham || d && d.sham) && i(h, "sham", !0), o(r, u, h, e)
                    }
            }
        }, function(e, t, r) {
            (function(t) {
                var r = function(e) {
                    return e && e.Math == Math && e
                };
                e.exports = r("object" == typeof globalThis && globalThis) || r("object" == typeof window && window) || r("object" == typeof self && self) || r("object" == typeof t && t) || Function("return this")()
            }).call(this, r(6))
        }, function(e, t) {
            var r;
            r = function() {
                return this
            }();
            try {
                r = r || new Function("return this")()
            } catch (n) {
                "object" == typeof window && (r = window)
            }
            e.exports = r
        }, function(e, t, r) {
            var n = r(8),
                a = r(10),
                i = r(11),
                o = r(12),
                s = r(16),
                l = r(18),
                c = r(19),
                u = Object.getOwnPropertyDescriptor;
            t.f = n ? u : function(e, t) {
                if (e = o(e), t = s(t, !0), c) try {
                    return u(e, t)
                } catch (r) {}
                if (l(e, t)) return i(!a.f.call(e, t), e[t])
            }
        }, function(e, t, r) {
            var n = r(9);
            e.exports = !n((function() {
                return 7 != Object.defineProperty({}, 1, {
                    get: function() {
                        return 7
                    }
                })[1]
            }))
        }, function(e, t) {
            e.exports = function(e) {
                try {
                    return !!e()
                } catch (t) {
                    return !0
                }
            }
        }, function(e, t, r) {
            "use strict";
            var n = {}.propertyIsEnumerable,
                a = Object.getOwnPropertyDescriptor,
                i = a && !n.call({
                    1: 2
                }, 1);
            t.f = i ? function(e) {
                var t = a(this, e);
                return !!t && t.enumerable
            } : n
        }, function(e, t) {
            e.exports = function(e, t) {
                return {
                    enumerable: !(1 & e),
                    configurable: !(2 & e),
                    writable: !(4 & e),
                    value: t
                }
            }
        }, function(e, t, r) {
            var n = r(13),
                a = r(15);
            e.exports = function(e) {
                return n(a(e))
            }
        }, function(e, t, r) {
            var n = r(9),
                a = r(14),
                i = "".split;
            e.exports = n((function() {
                return !Object("z").propertyIsEnumerable(0)
            })) ? function(e) {
                return "String" == a(e) ? i.call(e, "") : Object(e)
            } : Object
        }, function(e, t) {
            var r = {}.toString;
            e.exports = function(e) {
                return r.call(e).slice(8, -1)
            }
        }, function(e, t) {
            e.exports = function(e) {
                if (e == undefined) throw TypeError("Can't call method on " + e);
                return e
            }
        }, function(e, t, r) {
            var n = r(17);
            e.exports = function(e, t) {
                if (!n(e)) return e;
                var r, a;
                if (t && "function" == typeof(r = e.toString) && !n(a = r.call(e))) return a;
                if ("function" == typeof(r = e.valueOf) && !n(a = r.call(e))) return a;
                if (!t && "function" == typeof(r = e.toString) && !n(a = r.call(e))) return a;
                throw TypeError("Can't convert object to primitive value")
            }
        }, function(e, t) {
            e.exports = function(e) {
                return "object" == typeof e ? null !== e : "function" == typeof e
            }
        }, function(e, t) {
            var r = {}.hasOwnProperty;
            e.exports = function(e, t) {
                return r.call(e, t)
            }
        }, function(e, t, r) {
            var n = r(8),
                a = r(9),
                i = r(20);
            e.exports = !n && !a((function() {
                return 7 != Object.defineProperty(i("div"), "a", {
                    get: function() {
                        return 7
                    }
                }).a
            }))
        }, function(e, t, r) {
            var n = r(5),
                a = r(17),
                i = n.document,
                o = a(i) && a(i.createElement);
            e.exports = function(e) {
                return o ? i.createElement(e) : {}
            }
        }, function(e, t, r) {
            var n = r(8),
                a = r(22),
                i = r(11);
            e.exports = n ? function(e, t, r) {
                return a.f(e, t, i(1, r))
            } : function(e, t, r) {
                return e[t] = r, e
            }
        }, function(e, t, r) {
            var n = r(8),
                a = r(19),
                i = r(23),
                o = r(16),
                s = Object.defineProperty;
            t.f = n ? s : function(e, t, r) {
                if (i(e), t = o(t, !0), i(r), a) try {
                    return s(e, t, r)
                } catch (n) {}
                if ("get" in r || "set" in r) throw TypeError("Accessors not supported");
                return "value" in r && (e[t] = r.value), e
            }
        }, function(e, t, r) {
            var n = r(17);
            e.exports = function(e) {
                if (!n(e)) throw TypeError(String(e) + " is not an object");
                return e
            }
        }, function(e, t, r) {
            var n = r(5),
                a = r(21),
                i = r(18),
                o = r(25),
                s = r(26),
                l = r(28),
                c = l.get,
                u = l.enforce,
                d = String(String).split("String");
            (e.exports = function(e, t, r, s) {
                var l = !!s && !!s.unsafe,
                    c = !!s && !!s.enumerable,
                    h = !!s && !!s.noTargetGet;
                "function" == typeof r && ("string" != typeof t || i(r, "name") || a(r, "name", t), u(r).source = d.join("string" == typeof t ? t : "")), e !== n ? (l ? !h && e[t] && (c = !0) : delete e[t], c ? e[t] = r : a(e, t, r)) : c ? e[t] = r : o(t, r)
            })(Function.prototype, "toString", (function() {
                return "function" == typeof this && c(this).source || s(this)
            }))
        }, function(e, t, r) {
            var n = r(5),
                a = r(21);
            e.exports = function(e, t) {
                try {
                    a(n, e, t)
                } catch (r) {
                    n[e] = t
                }
                return t
            }
        }, function(e, t, r) {
            var n = r(27),
                a = Function.toString;
            "function" != typeof n.inspectSource && (n.inspectSource = function(e) {
                return a.call(e)
            }), e.exports = n.inspectSource
        }, function(e, t, r) {
            var n = r(5),
                a = r(25),
                i = n["__core-js_shared__"] || a("__core-js_shared__", {});
            e.exports = i
        }, function(e, t, r) {
            var n, a, i, o = r(29),
                s = r(5),
                l = r(17),
                c = r(21),
                u = r(18),
                d = r(30),
                h = r(34),
                f = s.WeakMap;
            if (o) {
                var g = new f,
                    p = g.get,
                    m = g.has,
                    v = g.set;
                n = function(e, t) {
                    return v.call(g, e, t), t
                }, a = function(e) {
                    return p.call(g, e) || {}
                }, i = function(e) {
                    return m.call(g, e)
                }
            } else {
                var b = d("state");
                h[b] = !0, n = function(e, t) {
                    return c(e, b, t), t
                }, a = function(e) {
                    return u(e, b) ? e[b] : {}
                }, i = function(e) {
                    return u(e, b)
                }
            }
            e.exports = {
                set: n,
                get: a,
                has: i,
                enforce: function(e) {
                    return i(e) ? a(e) : n(e, {})
                },
                getterFor: function(e) {
                    return function(t) {
                        var r;
                        if (!l(t) || (r = a(t)).type !== e) throw TypeError("Incompatible receiver, " + e + " required");
                        return r
                    }
                }
            }
        }, function(e, t, r) {
            var n = r(5),
                a = r(26),
                i = n.WeakMap;
            e.exports = "function" == typeof i && /native code/.test(a(i))
        }, function(e, t, r) {
            var n = r(31),
                a = r(33),
                i = n("keys");
            e.exports = function(e) {
                return i[e] || (i[e] = a(e))
            }
        }, function(e, t, r) {
            var n = r(32),
                a = r(27);
            (e.exports = function(e, t) {
                return a[e] || (a[e] = t !== undefined ? t : {})
            })("versions", []).push({
                version: "3.6.4",
                mode: n ? "pure" : "global",
                copyright: "© 2020 Denis Pushkarev (zloirock.ru)"
            })
        }, function(e, t) {
            e.exports = !1
        }, function(e, t) {
            var r = 0,
                n = Math.random();
            e.exports = function(e) {
                return "Symbol(" + String(e === undefined ? "" : e) + ")_" + (++r + n).toString(36)
            }
        }, function(e, t) {
            e.exports = {}
        }, function(e, t, r) {
            var n = r(18),
                a = r(36),
                i = r(7),
                o = r(22);
            e.exports = function(e, t) {
                for (var r = a(t), s = o.f, l = i.f, c = 0; c < r.length; c++) {
                    var u = r[c];
                    n(e, u) || s(e, u, l(t, u))
                }
            }
        }, function(e, t, r) {
            var n = r(37),
                a = r(39),
                i = r(46),
                o = r(23);
            e.exports = n("Reflect", "ownKeys") || function(e) {
                var t = a.f(o(e)),
                    r = i.f;
                return r ? t.concat(r(e)) : t
            }
        }, function(e, t, r) {
            var n = r(38),
                a = r(5),
                i = function(e) {
                    return "function" == typeof e ? e : undefined
                };
            e.exports = function(e, t) {
                return arguments.length < 2 ? i(n[e]) || i(a[e]) : n[e] && n[e][t] || a[e] && a[e][t]
            }
        }, function(e, t, r) {
            var n = r(5);
            e.exports = n
        }, function(e, t, r) {
            var n = r(40),
                a = r(45).concat("length", "prototype");
            t.f = Object.getOwnPropertyNames || function(e) {
                return n(e, a)
            }
        }, function(e, t, r) {
            var n = r(18),
                a = r(12),
                i = r(41).indexOf,
                o = r(34);
            e.exports = function(e, t) {
                var r, s = a(e),
                    l = 0,
                    c = [];
                for (r in s) !n(o, r) && n(s, r) && c.push(r);
                for (; t.length > l;) n(s, r = t[l++]) && (~i(c, r) || c.push(r));
                return c
            }
        }, function(e, t, r) {
            var n = r(12),
                a = r(42),
                i = r(44),
                o = function(e) {
                    return function(t, r, o) {
                        var s, l = n(t),
                            c = a(l.length),
                            u = i(o, c);
                        if (e && r != r) {
                            for (; c > u;)
                                if ((s = l[u++]) != s) return !0
                        } else
                            for (; c > u; u++)
                                if ((e || u in l) && l[u] === r) return e || u || 0; return !e && -1
                    }
                };
            e.exports = {
                includes: o(!0),
                indexOf: o(!1)
            }
        }, function(e, t, r) {
            var n = r(43),
                a = Math.min;
            e.exports = function(e) {
                return e > 0 ? a(n(e), 9007199254740991) : 0
            }
        }, function(e, t) {
            var r = Math.ceil,
                n = Math.floor;
            e.exports = function(e) {
                return isNaN(e = +e) ? 0 : (e > 0 ? n : r)(e)
            }
        }, function(e, t, r) {
            var n = r(43),
                a = Math.max,
                i = Math.min;
            e.exports = function(e, t) {
                var r = n(e);
                return r < 0 ? a(r + t, 0) : i(r, t)
            }
        }, function(e, t) {
            e.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]
        }, function(e, t) {
            t.f = Object.getOwnPropertySymbols
        }, function(e, t, r) {
            var n = r(9),
                a = /#|\.prototype\./,
                i = function(e, t) {
                    var r = s[o(e)];
                    return r == c || r != l && ("function" == typeof t ? n(t) : !!t)
                },
                o = i.normalize = function(e) {
                    return String(e).replace(a, ".").toLowerCase()
                },
                s = i.data = {},
                l = i.NATIVE = "N",
                c = i.POLYFILL = "P";
            e.exports = i
        }, function(e, t, r) {
            var n = r(12),
                a = r(39).f,
                i = {}.toString,
                o = "object" == typeof window && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
            e.exports.f = function(e) {
                return o && "[object Window]" == i.call(e) ? function(e) {
                    try {
                        return a(e)
                    } catch (t) {
                        return o.slice()
                    }
                }(e) : a(n(e))
            }
        }, function(e, t, r) {
            r(50);
            var n = r(38).Object,
                a = e.exports = function(e, t) {
                    return n.getOwnPropertyDescriptor(e, t)
                };
            n.getOwnPropertyDescriptor.sham && (a.sham = !0)
        }, function(e, t, r) {
            var n = r(4),
                a = r(9),
                i = r(12),
                o = r(7).f,
                s = r(8),
                l = a((function() {
                    o(1)
                }));
            n({
                target: "Object",
                stat: !0,
                forced: !s || l,
                sham: !s
            }, {
                getOwnPropertyDescriptor: function(e, t) {
                    return o(i(e), t)
                }
            })
        }, function(e, t, r) {
            r(52);
            var n = r(38).Object,
                a = e.exports = function(e, t, r) {
                    return n.defineProperty(e, t, r)
                };
            n.defineProperty.sham && (a.sham = !0)
        }, function(e, t, r) {
            var n = r(4),
                a = r(8);
            n({
                target: "Object",
                stat: !0,
                forced: !a,
                sham: !a
            }, {
                defineProperty: r(22).f
            })
        }, function(e, t, r) {
            r(54);
            var n = r(38).Object;
            e.exports = function(e, t) {
                return n.create(e, t)
            }
        }, function(e, t, r) {
            r(4)({
                target: "Object",
                stat: !0,
                sham: !r(8)
            }, {
                create: r(55)
            })
        }, function(e, t, r) {
            var n, a = r(23),
                i = r(56),
                o = r(45),
                s = r(34),
                l = r(58),
                c = r(20),
                u = r(30),
                d = u("IE_PROTO"),
                h = function() {},
                f = function(e) {
                    return "<script>" + e + "<\/script>"
                },
                g = function() {
                    try {
                        n = document.domain && new ActiveXObject("htmlfile")
                    } catch (a) {}
                    var e, t;
                    g = n ? function(e) {
                        e.write(f("")), e.close();
                        var t = e.parentWindow.Object;
                        return e = null, t
                    }(n) : ((t = c("iframe")).style.display = "none", l.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write(f("document.F=Object")), e.close(), e.F);
                    for (var r = o.length; r--;) delete g.prototype[o[r]];
                    return g()
                };
            s[d] = !0, e.exports = Object.create || function(e, t) {
                var r;
                return null !== e ? (h.prototype = a(e), r = new h, h.prototype = null, r[d] = e) : r = g(), t === undefined ? r : i(r, t)
            }
        }, function(e, t, r) {
            var n = r(8),
                a = r(22),
                i = r(23),
                o = r(57);
            e.exports = n ? Object.defineProperties : function(e, t) {
                i(e);
                for (var r, n = o(t), s = n.length, l = 0; s > l;) a.f(e, r = n[l++], t[r]);
                return e
            }
        }, function(e, t, r) {
            var n = r(40),
                a = r(45);
            e.exports = Object.keys || function(e) {
                return n(e, a)
            }
        }, function(e, t, r) {
            var n = r(37);
            e.exports = n("document", "documentElement")
        }, function(e, t, r) {
            r(60);
            var n = r(38);
            e.exports = n.Object.keys
        }, function(e, t, r) {
            var n = r(4),
                a = r(61),
                i = r(57);
            n({
                target: "Object",
                stat: !0,
                forced: r(9)((function() {
                    i(1)
                }))
            }, {
                keys: function(e) {
                    return i(a(e))
                }
            })
        }, function(e, t, r) {
            var n = r(15);
            e.exports = function(e) {
                return Object(n(e))
            }
        }, function(e, t, r) {
            r(63);
            var n = r(66);
            e.exports = n("Array", "indexOf")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(41).indexOf,
                i = r(64),
                o = r(65),
                s = [].indexOf,
                l = !!s && 1 / [1].indexOf(1, -0) < 0,
                c = i("indexOf"),
                u = o("indexOf", {
                    ACCESSORS: !0,
                    1: 0
                });
            n({
                target: "Array",
                proto: !0,
                forced: l || !c || !u
            }, {
                indexOf: function(e) {
                    return l ? s.apply(this, arguments) || 0 : a(this, e, arguments.length > 1 ? arguments[1] : undefined)
                }
            })
        }, function(e, t, r) {
            "use strict";
            var n = r(9);
            e.exports = function(e, t) {
                var r = [][e];
                return !!r && n((function() {
                    r.call(null, t || function() {
                        throw 1
                    }, 1)
                }))
            }
        }, function(e, t, r) {
            var n = r(8),
                a = r(9),
                i = r(18),
                o = Object.defineProperty,
                s = {},
                l = function(e) {
                    throw e
                };
            e.exports = function(e, t) {
                if (i(s, e)) return s[e];
                t || (t = {});
                var r = [][e],
                    c = !!i(t, "ACCESSORS") && t.ACCESSORS,
                    u = i(t, 0) ? t[0] : l,
                    d = i(t, 1) ? t[1] : undefined;
                return s[e] = !!r && !a((function() {
                    if (c && !n) return !0;
                    var e = {
                        length: -1
                    };
                    c ? o(e, 1, {
                        enumerable: !0,
                        get: l
                    }) : e[1] = 1, r.call(e, u, d)
                }))
            }
        }, function(e, t, r) {
            var n = r(5),
                a = r(67),
                i = Function.call;
            e.exports = function(e, t, r) {
                return a(i, n[e].prototype[t], r)
            }
        }, function(e, t, r) {
            var n = r(68);
            e.exports = function(e, t, r) {
                if (n(e), t === undefined) return e;
                switch (r) {
                    case 0:
                        return function() {
                            return e.call(t)
                        };
                    case 1:
                        return function(r) {
                            return e.call(t, r)
                        };
                    case 2:
                        return function(r, n) {
                            return e.call(t, r, n)
                        };
                    case 3:
                        return function(r, n, a) {
                            return e.call(t, r, n, a)
                        }
                }
                return function() {
                    return e.apply(t, arguments)
                }
            }
        }, function(e, t) {
            e.exports = function(e) {
                if ("function" != typeof e) throw TypeError(String(e) + " is not a function");
                return e
            }
        }, function(e, t, r) {
            r(70);
            var n = r(66);
            e.exports = n("Array", "forEach")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(71);
            n({
                target: "Array",
                proto: !0,
                forced: [].forEach != a
            }, {
                forEach: a
            })
        }, function(e, t, r) {
            "use strict";
            var n = r(72).forEach,
                a = r(64),
                i = r(65),
                o = a("forEach"),
                s = i("forEach");
            e.exports = o && s ? [].forEach : function(e) {
                return n(this, e, arguments.length > 1 ? arguments[1] : undefined)
            }
        }, function(e, t, r) {
            var n = r(67),
                a = r(13),
                i = r(61),
                o = r(42),
                s = r(73),
                l = [].push,
                c = function(e) {
                    var t = 1 == e,
                        r = 2 == e,
                        c = 3 == e,
                        u = 4 == e,
                        d = 6 == e,
                        h = 5 == e || d;
                    return function(f, g, p, m) {
                        for (var v, b, y = i(f), x = a(y), w = n(g, p, 3), C = o(x.length), _ = 0, k = m || s, S = t ? k(f, C) : r ? k(f, 0) : undefined; C > _; _++)
                            if ((h || _ in x) && (b = w(v = x[_], _, y), e))
                                if (t) S[_] = b;
                                else if (b) switch (e) {
                            case 3:
                                return !0;
                            case 5:
                                return v;
                            case 6:
                                return _;
                            case 2:
                                l.call(S, v)
                        } else if (u) return !1;
                        return d ? -1 : c || u ? u : S
                    }
                };
            e.exports = {
                forEach: c(0),
                map: c(1),
                filter: c(2),
                some: c(3),
                every: c(4),
                find: c(5),
                findIndex: c(6)
            }
        }, function(e, t, r) {
            var n = r(17),
                a = r(74),
                i = r(75)("species");
            e.exports = function(e, t) {
                var r;
                return a(e) && ("function" != typeof(r = e.constructor) || r !== Array && !a(r.prototype) ? n(r) && null === (r = r[i]) && (r = undefined) : r = undefined), new(r === undefined ? Array : r)(0 === t ? 0 : t)
            }
        }, function(e, t, r) {
            var n = r(14);
            e.exports = Array.isArray || function(e) {
                return "Array" == n(e)
            }
        }, function(e, t, r) {
            var n = r(5),
                a = r(31),
                i = r(18),
                o = r(33),
                s = r(76),
                l = r(77),
                c = a("wks"),
                u = n.Symbol,
                d = l ? u : u && u.withoutSetter || o;
            e.exports = function(e) {
                return i(c, e) || (s && i(u, e) ? c[e] = u[e] : c[e] = d("Symbol." + e)), c[e]
            }
        }, function(e, t, r) {
            var n = r(9);
            e.exports = !!Object.getOwnPropertySymbols && !n((function() {
                return !String(Symbol())
            }))
        }, function(e, t, r) {
            var n = r(76);
            e.exports = n && !Symbol.sham && "symbol" == typeof Symbol.iterator
        }, function(e, t, r) {
            r(79);
            var n = r(66);
            e.exports = n("Array", "map")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(72).map,
                i = r(80),
                o = r(65),
                s = i("map"),
                l = o("map");
            n({
                target: "Array",
                proto: !0,
                forced: !s || !l
            }, {
                map: function(e) {
                    return a(this, e, arguments.length > 1 ? arguments[1] : undefined)
                }
            })
        }, function(e, t, r) {
            var n = r(9),
                a = r(75),
                i = r(81),
                o = a("species");
            e.exports = function(e) {
                return i >= 51 || !n((function() {
                    var t = [];
                    return (t.constructor = {})[o] = function() {
                        return {
                            foo: 1
                        }
                    }, 1 !== t[e](Boolean).foo
                }))
            }
        }, function(e, t, r) {
            var n, a, i = r(5),
                o = r(82),
                s = i.process,
                l = s && s.versions,
                c = l && l.v8;
            c ? a = (n = c.split("."))[0] + n[1] : o && (!(n = o.match(/Edge\/(\d+)/)) || n[1] >= 74) && (n = o.match(/Chrome\/(\d+)/)) && (a = n[1]), e.exports = a && +a
        }, function(e, t, r) {
            var n = r(37);
            e.exports = n("navigator", "userAgent") || ""
        }, function(e, t, r) {
            r(84);
            var n = r(66);
            e.exports = n("Array", "filter")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(72).filter,
                i = r(80),
                o = r(65),
                s = i("filter"),
                l = o("filter");
            n({
                target: "Array",
                proto: !0,
                forced: !s || !l
            }, {
                filter: function(e) {
                    return a(this, e, arguments.length > 1 ? arguments[1] : undefined)
                }
            })
        }, function(e, t, r) {
            r(86);
            var n = r(66);
            e.exports = n("Array", "reduce")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(87).left,
                i = r(64),
                o = r(65),
                s = i("reduce"),
                l = o("reduce", {
                    1: 0
                });
            n({
                target: "Array",
                proto: !0,
                forced: !s || !l
            }, {
                reduce: function(e) {
                    return a(this, e, arguments.length, arguments.length > 1 ? arguments[1] : undefined)
                }
            })
        }, function(e, t, r) {
            var n = r(68),
                a = r(61),
                i = r(13),
                o = r(42),
                s = function(e) {
                    return function(t, r, s, l) {
                        n(r);
                        var c = a(t),
                            u = i(c),
                            d = o(c.length),
                            h = e ? d - 1 : 0,
                            f = e ? -1 : 1;
                        if (s < 2)
                            for (;;) {
                                if (h in u) {
                                    l = u[h], h += f;
                                    break
                                }
                                if (h += f, e ? h < 0 : d <= h) throw TypeError("Reduce of empty array with no initial value")
                            }
                        for (; e ? h >= 0 : d > h; h += f) h in u && (l = r(l, u[h], h, c));
                        return l
                    }
                };
            e.exports = {
                left: s(!1),
                right: s(!0)
            }
        }, function(e, t, r) {
            r(89);
            var n = r(38);
            e.exports = n.Array.isArray
        }, function(e, t, r) {
            r(4)({
                target: "Array",
                stat: !0
            }, {
                isArray: r(74)
            })
        }, function(e, t, r) {
            r(91);
            var n = r(66);
            e.exports = n("Array", "some")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(72).some,
                i = r(64),
                o = r(65),
                s = i("some"),
                l = o("some");
            n({
                target: "Array",
                proto: !0,
                forced: !s || !l
            }, {
                some: function(e) {
                    return a(this, e, arguments.length > 1 ? arguments[1] : undefined)
                }
            })
        }, function(e, t, r) {
            r(93);
            var n = r(66);
            e.exports = n("String", "trim")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(94).trim;
            n({
                target: "String",
                proto: !0,
                forced: r(96)("trim")
            }, {
                trim: function() {
                    return a(this)
                }
            })
        }, function(e, t, r) {
            var n = r(15),
                a = "[" + r(95) + "]",
                i = RegExp("^" + a + a + "*"),
                o = RegExp(a + a + "*$"),
                s = function(e) {
                    return function(t) {
                        var r = String(n(t));
                        return 1 & e && (r = r.replace(i, "")), 2 & e && (r = r.replace(o, "")), r
                    }
                };
            e.exports = {
                start: s(1),
                end: s(2),
                trim: s(3)
            }
        }, function(e, t) {
            e.exports = "\t\n\x0B\f\r                　\u2028\u2029\ufeff"
        }, function(e, t, r) {
            var n = r(9),
                a = r(95);
            e.exports = function(e) {
                return n((function() {
                    return !!a[e]() || "​᠎" != "​᠎" [e]() || a[e].name !== e
                }))
            }
        }, function(e, t) {
            window.MutationObserver = window.MutationObserver || function(e) {
                function t(e) {
                    this.i = [], this.m = e
                }

                function r(t) {
                    var r, n = {
                        type: null,
                        target: null,
                        addedNodes: [],
                        removedNodes: [],
                        previousSibling: null,
                        nextSibling: null,
                        attributeName: null,
                        attributeNamespace: null,
                        oldValue: null
                    };
                    for (r in t) n[r] !== e && t[r] !== e && (n[r] = t[r]);
                    return n
                }

                function n(t, n) {
                    var s = i(t, n);
                    return function(c) {
                        var u, d = c.length;
                        n.a && 3 === t.nodeType && t.nodeValue !== s.a && c.push(new r({
                            type: "characterData",
                            target: t,
                            oldValue: s.a
                        })), n.b && s.b && a(c, t, s.b, n.f), (n.c || n.g) && (u = function(t, n, i, s) {
                            function c(e, n, i, o, l) {
                                var c, d, h, f = e.length - 1;
                                for (l = -~((f - l) / 2); h = e.pop();) c = i[h.j], d = o[h.l], s.c && l && Math.abs(h.j - h.l) >= f && (t.push(r({
                                    type: "childList",
                                    target: n,
                                    addedNodes: [c],
                                    removedNodes: [c],
                                    nextSibling: c.nextSibling,
                                    previousSibling: c.previousSibling
                                })), l--), s.b && d.b && a(t, c, d.b, s.f), s.a && 3 === c.nodeType && c.nodeValue !== d.a && t.push(r({
                                    type: "characterData",
                                    target: c,
                                    oldValue: d.a
                                })), s.g && u(c, d)
                            }

                            function u(n, i) {
                                for (var h, f, g, p, m, v = n.childNodes, b = i.c, y = v.length, x = b ? b.length : 0, w = 0, C = 0, _ = 0; C < y || _ < x;)(p = v[C]) === (m = (g = b[_]) && g.node) ? (s.b && g.b && a(t, p, g.b, s.f), s.a && g.a !== e && p.nodeValue !== g.a && t.push(r({
                                    type: "characterData",
                                    target: p,
                                    oldValue: g.a
                                })), f && c(f, n, v, b, w), s.g && (p.childNodes.length || g.c && g.c.length) && u(p, g), C++, _++) : (d = !0, h || (h = {}, f = []), p && (h[g = o(p)] || (h[g] = !0, -1 === (g = l(b, p, _, "node")) ? s.c && (t.push(r({
                                    type: "childList",
                                    target: n,
                                    addedNodes: [p],
                                    nextSibling: p.nextSibling,
                                    previousSibling: p.previousSibling
                                })), w++) : f.push({
                                    j: C,
                                    l: g
                                })), C++), m && m !== v[C] && (h[g = o(m)] || (h[g] = !0, -1 === (g = l(v, m, C)) ? s.c && (t.push(r({
                                    type: "childList",
                                    target: i.node,
                                    removedNodes: [m],
                                    nextSibling: b[_ + 1],
                                    previousSibling: b[_ - 1]
                                })), w--) : f.push({
                                    j: g,
                                    l: _
                                })), _++));
                                f && c(f, n, v, b, w)
                            }
                            var d;
                            return u(n, i), d
                        }(c, t, s, n)), (u || c.length !== d) && (s = i(t, n))
                    }
                }

                function a(t, n, a, i) {
                    for (var o, s, l = {}, c = n.attributes, d = c.length; d--;) s = (o = c[d]).name, i && i[s] === e || (u(n, o) !== a[s] && t.push(r({
                        type: "attributes",
                        target: n,
                        attributeName: s,
                        oldValue: a[s],
                        attributeNamespace: o.namespaceURI
                    })), l[s] = !0);
                    for (s in a) l[s] || t.push(r({
                        target: n,
                        type: "attributes",
                        attributeName: s,
                        oldValue: a[s]
                    }))
                }

                function i(e, t) {
                    var r = !0;
                    return function n(e) {
                        var a = {
                            node: e
                        };
                        return !t.a || 3 !== e.nodeType && 8 !== e.nodeType ? (t.b && r && 1 === e.nodeType && (a.b = s(e.attributes, (function(r, n) {
                            return t.f && !t.f[n.name] || (r[n.name] = u(e, n)), r
                        }))), r && (t.c || t.a || t.b && t.g) && (a.c = function(e, t) {
                            for (var r = [], n = 0; n < e.length; n++) r[n] = t(e[n], n, e);
                            return r
                        }(e.childNodes, n)), r = t.g) : a.a = e.nodeValue, a
                    }(e)
                }

                function o(e) {
                    try {
                        return e.id || (e.mo_id = e.mo_id || d++)
                    } catch (t) {
                        try {
                            return e.nodeValue
                        } catch (r) {
                            return d++
                        }
                    }
                }

                function s(e, t) {
                    for (var r = {}, n = 0; n < e.length; n++) r = t(r, e[n], n, e);
                    return r
                }

                function l(e, t, r, n) {
                    for (; r < e.length; r++)
                        if ((n ? e[r][n] : e[r]) === t) return r;
                    return -1
                }
                t._period = 30, t.prototype = {
                    observe: function(e, r) {
                        for (var a = {
                                b: !!(r.attributes || r.attributeFilter || r.attributeOldValue),
                                c: !!r.childList,
                                g: !!r.subtree,
                                a: !(!r.characterData && !r.characterDataOldValue)
                            }, i = this.i, o = 0; o < i.length; o++) i[o].s === e && i.splice(o, 1);
                        r.attributeFilter && (a.f = s(r.attributeFilter, (function(e, t) {
                            return e[t] = !0, e
                        }))), i.push({
                            s: e,
                            o: n(e, a)
                        }), this.h || function(e) {
                            ! function r() {
                                var n = e.takeRecords();
                                n.length && e.m(n, e), e.h = setTimeout(r, t._period)
                            }()
                        }(this)
                    },
                    takeRecords: function() {
                        for (var e = [], t = this.i, r = 0; r < t.length; r++) t[r].o(e);
                        return e
                    },
                    disconnect: function() {
                        this.i = [], clearTimeout(this.h), this.h = null
                    }
                };
                var c = document.createElement("i");
                c.style.top = 0;
                var u = (c = "null" != c.attributes.style.value) ? function(e, t) {
                        return t.value
                    } : function(e, t) {
                        return "style" !== t.name ? t.value : e.style.cssText
                    },
                    d = 1;
                return t
            }(void 0)
        }, function(e, t, r) {
            "use strict";
            r(99), r(102), r(122), r(124), r(127), r(129), r(131), r(137), r(140), r(142), r(144), r(147), r(150), r(152), r(154), r(157), r(159), r(173), r(175), r(179), Element.prototype.remove || (Element.prototype.remove = function() {
                this.parentNode && this.parentNode.removeChild(this)
            })
        }, function(e, t, r) {
            r(100);
            var n = r(38);
            e.exports = n.Object.entries
        }, function(e, t, r) {
            var n = r(4),
                a = r(101).entries;
            n({
                target: "Object",
                stat: !0
            }, {
                entries: function(e) {
                    return a(e)
                }
            })
        }, function(e, t, r) {
            var n = r(8),
                a = r(57),
                i = r(12),
                o = r(10).f,
                s = function(e) {
                    return function(t) {
                        for (var r, s = i(t), l = a(s), c = l.length, u = 0, d = []; c > u;) r = l[u++], n && !o.call(s, r) || d.push(e ? [r, s[r]] : s[r]);
                        return d
                    }
                };
            e.exports = {
                entries: s(!0),
                values: s(!1)
            }
        }, function(e, t, r) {
            r(103), r(114);
            var n = r(38);
            e.exports = n.Object.fromEntries
        }, function(e, t, r) {
            "use strict";
            var n = r(12),
                a = r(104),
                i = r(105),
                o = r(28),
                s = r(106),
                l = o.set,
                c = o.getterFor("Array Iterator");
            e.exports = s(Array, "Array", (function(e, t) {
                l(this, {
                    type: "Array Iterator",
                    target: n(e),
                    index: 0,
                    kind: t
                })
            }), (function() {
                var e = c(this),
                    t = e.target,
                    r = e.kind,
                    n = e.index++;
                return !t || n >= t.length ? (e.target = undefined, {
                    value: undefined,
                    done: !0
                }) : "keys" == r ? {
                    value: n,
                    done: !1
                } : "values" == r ? {
                    value: t[n],
                    done: !1
                } : {
                    value: [n, t[n]],
                    done: !1
                }
            }), "values"), i.Arguments = i.Array, a("keys"), a("values"), a("entries")
        }, function(e, t, r) {
            var n = r(75),
                a = r(55),
                i = r(22),
                o = n("unscopables"),
                s = Array.prototype;
            s[o] == undefined && i.f(s, o, {
                configurable: !0,
                value: a(null)
            }), e.exports = function(e) {
                s[o][e] = !0
            }
        }, function(e, t) {
            e.exports = {}
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(107),
                i = r(109),
                o = r(112),
                s = r(111),
                l = r(21),
                c = r(24),
                u = r(75),
                d = r(32),
                h = r(105),
                f = r(108),
                g = f.IteratorPrototype,
                p = f.BUGGY_SAFARI_ITERATORS,
                m = u("iterator"),
                v = function() {
                    return this
                };
            e.exports = function(e, t, r, u, f, b, y) {
                a(r, t, u);
                var x, w, C, _ = function(e) {
                        if (e === f && T) return T;
                        if (!p && e in E) return E[e];
                        switch (e) {
                            case "keys":
                            case "values":
                            case "entries":
                                return function() {
                                    return new r(this, e)
                                }
                        }
                        return function() {
                            return new r(this)
                        }
                    },
                    k = t + " Iterator",
                    S = !1,
                    E = e.prototype,
                    A = E[m] || E["@@iterator"] || f && E[f],
                    T = !p && A || _(f),
                    N = "Array" == t && E.entries || A;
                if (N && (x = i(N.call(new e)), g !== Object.prototype && x.next && (d || i(x) === g || (o ? o(x, g) : "function" != typeof x[m] && l(x, m, v)), s(x, k, !0, !0), d && (h[k] = v))), "values" == f && A && "values" !== A.name && (S = !0, T = function() {
                        return A.call(this)
                    }), d && !y || E[m] === T || l(E, m, T), h[t] = T, f)
                    if (w = {
                            values: _("values"),
                            keys: b ? T : _("keys"),
                            entries: _("entries")
                        }, y)
                        for (C in w) !p && !S && C in E || c(E, C, w[C]);
                    else n({
                        target: t,
                        proto: !0,
                        forced: p || S
                    }, w);
                return w
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(108).IteratorPrototype,
                a = r(55),
                i = r(11),
                o = r(111),
                s = r(105),
                l = function() {
                    return this
                };
            e.exports = function(e, t, r) {
                var c = t + " Iterator";
                return e.prototype = a(n, {
                    next: i(1, r)
                }), o(e, c, !1, !0), s[c] = l, e
            }
        }, function(e, t, r) {
            "use strict";
            var n, a, i, o = r(109),
                s = r(21),
                l = r(18),
                c = r(75),
                u = r(32),
                d = c("iterator"),
                h = !1;
            [].keys && ("next" in (i = [].keys()) ? (a = o(o(i))) !== Object.prototype && (n = a) : h = !0), n == undefined && (n = {}), u || l(n, d) || s(n, d, (function() {
                return this
            })), e.exports = {
                IteratorPrototype: n,
                BUGGY_SAFARI_ITERATORS: h
            }
        }, function(e, t, r) {
            var n = r(18),
                a = r(61),
                i = r(30),
                o = r(110),
                s = i("IE_PROTO"),
                l = Object.prototype;
            e.exports = o ? Object.getPrototypeOf : function(e) {
                return e = a(e), n(e, s) ? e[s] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? l : null
            }
        }, function(e, t, r) {
            var n = r(9);
            e.exports = !n((function() {
                function e() {}
                return e.prototype.constructor = null, Object.getPrototypeOf(new e) !== e.prototype
            }))
        }, function(e, t, r) {
            var n = r(22).f,
                a = r(18),
                i = r(75)("toStringTag");
            e.exports = function(e, t, r) {
                e && !a(e = r ? e : e.prototype, i) && n(e, i, {
                    configurable: !0,
                    value: t
                })
            }
        }, function(e, t, r) {
            var n = r(23),
                a = r(113);
            e.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() {
                var e, t = !1,
                    r = {};
                try {
                    (e = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set).call(r, []), t = r instanceof Array
                } catch (i) {}
                return function(r, i) {
                    return n(r), a(i), t ? e.call(r, i) : r.__proto__ = i, r
                }
            }() : undefined)
        }, function(e, t, r) {
            var n = r(17);
            e.exports = function(e) {
                if (!n(e) && null !== e) throw TypeError("Can't set " + String(e) + " as a prototype");
                return e
            }
        }, function(e, t, r) {
            var n = r(4),
                a = r(115),
                i = r(121);
            n({
                target: "Object",
                stat: !0
            }, {
                fromEntries: function(e) {
                    var t = {};
                    return a(e, (function(e, r) {
                        i(t, e, r)
                    }), undefined, !0), t
                }
            })
        }, function(e, t, r) {
            var n = r(23),
                a = r(116),
                i = r(42),
                o = r(67),
                s = r(117),
                l = r(120),
                c = function(e, t) {
                    this.stopped = e, this.result = t
                };
            (e.exports = function(e, t, r, u, d) {
                var h, f, g, p, m, v, b, y = o(t, r, u ? 2 : 1);
                if (d) h = e;
                else {
                    if ("function" != typeof(f = s(e))) throw TypeError("Target is not iterable");
                    if (a(f)) {
                        for (g = 0, p = i(e.length); p > g; g++)
                            if ((m = u ? y(n(b = e[g])[0], b[1]) : y(e[g])) && m instanceof c) return m;
                        return new c(!1)
                    }
                    h = f.call(e)
                }
                for (v = h.next; !(b = v.call(h)).done;)
                    if ("object" == typeof(m = l(h, y, b.value, u)) && m && m instanceof c) return m;
                return new c(!1)
            }).stop = function(e) {
                return new c(!0, e)
            }
        }, function(e, t, r) {
            var n = r(75),
                a = r(105),
                i = n("iterator"),
                o = Array.prototype;
            e.exports = function(e) {
                return e !== undefined && (a.Array === e || o[i] === e)
            }
        }, function(e, t, r) {
            var n = r(118),
                a = r(105),
                i = r(75)("iterator");
            e.exports = function(e) {
                if (e != undefined) return e[i] || e["@@iterator"] || a[n(e)]
            }
        }, function(e, t, r) {
            var n = r(119),
                a = r(14),
                i = r(75)("toStringTag"),
                o = "Arguments" == a(function() {
                    return arguments
                }());
            e.exports = n ? a : function(e) {
                var t, r, n;
                return e === undefined ? "Undefined" : null === e ? "Null" : "string" == typeof(r = function(e, t) {
                    try {
                        return e[t]
                    } catch (r) {}
                }(t = Object(e), i)) ? r : o ? a(t) : "Object" == (n = a(t)) && "function" == typeof t.callee ? "Arguments" : n
            }
        }, function(e, t, r) {
            var n = {};
            n[r(75)("toStringTag")] = "z", e.exports = "[object z]" === String(n)
        }, function(e, t, r) {
            var n = r(23);
            e.exports = function(e, t, r, a) {
                try {
                    return a ? t(n(r)[0], r[1]) : t(r)
                } catch (o) {
                    var i = e["return"];
                    throw i !== undefined && n(i.call(e)), o
                }
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(16),
                a = r(22),
                i = r(11);
            e.exports = function(e, t, r) {
                var o = n(t);
                o in e ? a.f(e, o, i(0, r)) : e[o] = r
            }
        }, function(e, t, r) {
            r(123);
            var n = r(38);
            e.exports = n.Object.values
        }, function(e, t, r) {
            var n = r(4),
                a = r(101).values;
            n({
                target: "Object",
                stat: !0
            }, {
                values: function(e) {
                    return a(e)
                }
            })
        }, function(e, t, r) {
            r(125);
            var n = r(38);
            e.exports = n.Math.sign
        }, function(e, t, r) {
            r(4)({
                target: "Math",
                stat: !0
            }, {
                sign: r(126)
            })
        }, function(e, t) {
            e.exports = Math.sign || function(e) {
                return 0 == (e = +e) || e != e ? e : e < 0 ? -1 : 1
            }
        }, function(e, t, r) {
            r(128);
            var n = r(66);
            e.exports = n("Array", "findIndex")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(72).findIndex,
                i = r(104),
                o = r(65),
                s = !0,
                l = o("findIndex");
            "findIndex" in [] && Array(1).findIndex((function() {
                s = !1
            })), n({
                target: "Array",
                proto: !0,
                forced: s || !l
            }, {
                findIndex: function(e) {
                    return a(this, e, arguments.length > 1 ? arguments[1] : undefined)
                }
            }), i("findIndex")
        }, function(e, t, r) {
            r(130);
            var n = r(66);
            e.exports = n("Array", "find")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(72).find,
                i = r(104),
                o = r(65),
                s = !0,
                l = o("find");
            "find" in [] && Array(1).find((function() {
                s = !1
            })), n({
                target: "Array",
                proto: !0,
                forced: s || !l
            }, {
                find: function(e) {
                    return a(this, e, arguments.length > 1 ? arguments[1] : undefined)
                }
            }), i("find")
        }, function(e, t, r) {
            r(132), r(134);
            var n = r(38);
            e.exports = n.Array.from
        }, function(e, t, r) {
            "use strict";
            var n = r(133).charAt,
                a = r(28),
                i = r(106),
                o = a.set,
                s = a.getterFor("String Iterator");
            i(String, "String", (function(e) {
                o(this, {
                    type: "String Iterator",
                    string: String(e),
                    index: 0
                })
            }), (function() {
                var e, t = s(this),
                    r = t.string,
                    a = t.index;
                return a >= r.length ? {
                    value: undefined,
                    done: !0
                } : (e = n(r, a), t.index += e.length, {
                    value: e,
                    done: !1
                })
            }))
        }, function(e, t, r) {
            var n = r(43),
                a = r(15),
                i = function(e) {
                    return function(t, r) {
                        var i, o, s = String(a(t)),
                            l = n(r),
                            c = s.length;
                        return l < 0 || l >= c ? e ? "" : undefined : (i = s.charCodeAt(l)) < 55296 || i > 56319 || l + 1 === c || (o = s.charCodeAt(l + 1)) < 56320 || o > 57343 ? e ? s.charAt(l) : i : e ? s.slice(l, l + 2) : o - 56320 + (i - 55296 << 10) + 65536
                    }
                };
            e.exports = {
                codeAt: i(!1),
                charAt: i(!0)
            }
        }, function(e, t, r) {
            var n = r(4),
                a = r(135);
            n({
                target: "Array",
                stat: !0,
                forced: !r(136)((function(e) {
                    Array.from(e)
                }))
            }, {
                from: a
            })
        }, function(e, t, r) {
            "use strict";
            var n = r(67),
                a = r(61),
                i = r(120),
                o = r(116),
                s = r(42),
                l = r(121),
                c = r(117);
            e.exports = function(e) {
                var t, r, u, d, h, f, g = a(e),
                    p = "function" == typeof this ? this : Array,
                    m = arguments.length,
                    v = m > 1 ? arguments[1] : undefined,
                    b = v !== undefined,
                    y = c(g),
                    x = 0;
                if (b && (v = n(v, m > 2 ? arguments[2] : undefined, 2)), y == undefined || p == Array && o(y))
                    for (r = new p(t = s(g.length)); t > x; x++) f = b ? v(g[x], x) : g[x], l(r, x, f);
                else
                    for (h = (d = y.call(g)).next, r = new p; !(u = h.call(d)).done; x++) f = b ? i(d, v, [u.value, x], !0) : u.value, l(r, x, f);
                return r.length = x, r
            }
        }, function(e, t, r) {
            var n = r(75)("iterator"),
                a = !1;
            try {
                var i = 0,
                    o = {
                        next: function() {
                            return {
                                done: !!i++
                            }
                        },
                        "return": function() {
                            a = !0
                        }
                    };
                o[n] = function() {
                    return this
                }, Array.from(o, (function() {
                    throw 2
                }))
            } catch (s) {}
            e.exports = function(e, t) {
                if (!t && !a) return !1;
                var r = !1;
                try {
                    var i = {};
                    i[n] = function() {
                        return {
                            next: function() {
                                return {
                                    done: r = !0
                                }
                            }
                        }
                    }, e(i)
                } catch (s) {}
                return r
            }
        }, function(e, t, r) {
            r(138);
            var n = r(66);
            e.exports = n("Array", "fill")
        }, function(e, t, r) {
            var n = r(4),
                a = r(139),
                i = r(104);
            n({
                target: "Array",
                proto: !0
            }, {
                fill: a
            }), i("fill")
        }, function(e, t, r) {
            "use strict";
            var n = r(61),
                a = r(44),
                i = r(42);
            e.exports = function(e) {
                for (var t = n(this), r = i(t.length), o = arguments.length, s = a(o > 1 ? arguments[1] : undefined, r), l = o > 2 ? arguments[2] : undefined, c = l === undefined ? r : a(l, r); c > s;) t[s++] = e;
                return t
            }
        }, function(e, t, r) {
            r(141);
            var n = r(66);
            e.exports = n("Array", "includes")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(41).includes,
                i = r(104);
            n({
                target: "Array",
                proto: !0,
                forced: !r(65)("indexOf", {
                    ACCESSORS: !0,
                    1: 0
                })
            }, {
                includes: function(e) {
                    return a(this, e, arguments.length > 1 ? arguments[1] : undefined)
                }
            }), i("includes")
        }, function(e, t, r) {
            r(143), e.exports = Math.pow(2, -52)
        }, function(e, t, r) {
            r(4)({
                target: "Number",
                stat: !0
            }, {
                EPSILON: Math.pow(2, -52)
            })
        }, function(e, t, r) {
            r(145);
            var n = r(38);
            e.exports = n.Number.parseFloat
        }, function(e, t, r) {
            var n = r(4),
                a = r(146);
            n({
                target: "Number",
                stat: !0,
                forced: Number.parseFloat != a
            }, {
                parseFloat: a
            })
        }, function(e, t, r) {
            var n = r(5),
                a = r(94).trim,
                i = r(95),
                o = n.parseFloat,
                s = 1 / o(i + "-0") != -Infinity;
            e.exports = s ? function(e) {
                var t = a(String(e)),
                    r = o(t);
                return 0 === r && "-" == t.charAt(0) ? -0 : r
            } : o
        }, function(e, t, r) {
            r(148);
            var n = r(38);
            e.exports = n.Number.parseInt
        }, function(e, t, r) {
            var n = r(4),
                a = r(149);
            n({
                target: "Number",
                stat: !0,
                forced: Number.parseInt != a
            }, {
                parseInt: a
            })
        }, function(e, t, r) {
            var n = r(5),
                a = r(94).trim,
                i = r(95),
                o = n.parseInt,
                s = /^[+-]?0[Xx]/,
                l = 8 !== o(i + "08") || 22 !== o(i + "0x16");
            e.exports = l ? function(e, t) {
                var r = a(String(e));
                return o(r, t >>> 0 || (s.test(r) ? 16 : 10))
            } : o
        }, function(e, t, r) {
            r(151), e.exports = -9007199254740991
        }, function(e, t, r) {
            r(4)({
                target: "Number",
                stat: !0
            }, {
                MIN_SAFE_INTEGER: -9007199254740991
            })
        }, function(e, t, r) {
            r(153), e.exports = 9007199254740991
        }, function(e, t, r) {
            r(4)({
                target: "Number",
                stat: !0
            }, {
                MAX_SAFE_INTEGER: 9007199254740991
            })
        }, function(e, t, r) {
            r(155);
            var n = r(38);
            e.exports = n.Number.isFinite
        }, function(e, t, r) {
            r(4)({
                target: "Number",
                stat: !0
            }, {
                isFinite: r(156)
            })
        }, function(e, t, r) {
            var n = r(5).isFinite;
            e.exports = Number.isFinite || function(e) {
                return "number" == typeof e && n(e)
            }
        }, function(e, t, r) {
            r(158);
            var n = r(38);
            e.exports = n.Number.isNaN
        }, function(e, t, r) {
            r(4)({
                target: "Number",
                stat: !0
            }, {
                isNaN: function(e) {
                    return e != e
                }
            })
        }, function(e, t, r) {
            r(160), r(169), r(132), r(171);
            var n = r(38);
            e.exports = n.Set
        }, function(e, t, r) {
            "use strict";
            var n = r(161),
                a = r(166);
            e.exports = n("Set", (function(e) {
                return function() {
                    return e(this, arguments.length ? arguments[0] : undefined)
                }
            }), a)
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(5),
                i = r(47),
                o = r(24),
                s = r(162),
                l = r(115),
                c = r(164),
                u = r(17),
                d = r(9),
                h = r(136),
                f = r(111),
                g = r(165);
            e.exports = function(e, t, r) {
                var p = -1 !== e.indexOf("Map"),
                    m = -1 !== e.indexOf("Weak"),
                    v = p ? "set" : "add",
                    b = a[e],
                    y = b && b.prototype,
                    x = b,
                    w = {},
                    C = function(e) {
                        var t = y[e];
                        o(y, e, "add" == e ? function(e) {
                            return t.call(this, 0 === e ? 0 : e), this
                        } : "delete" == e ? function(e) {
                            return !(m && !u(e)) && t.call(this, 0 === e ? 0 : e)
                        } : "get" == e ? function(e) {
                            return m && !u(e) ? undefined : t.call(this, 0 === e ? 0 : e)
                        } : "has" == e ? function(e) {
                            return !(m && !u(e)) && t.call(this, 0 === e ? 0 : e)
                        } : function(e, r) {
                            return t.call(this, 0 === e ? 0 : e, r), this
                        })
                    };
                if (i(e, "function" != typeof b || !(m || y.forEach && !d((function() {
                        (new b).entries().next()
                    }))))) x = r.getConstructor(t, e, p, v), s.REQUIRED = !0;
                else if (i(e, !0)) {
                    var _ = new x,
                        k = _[v](m ? {} : -0, 1) != _,
                        S = d((function() {
                            _.has(1)
                        })),
                        E = h((function(e) {
                            new b(e)
                        })),
                        A = !m && d((function() {
                            for (var e = new b, t = 5; t--;) e[v](t, t);
                            return !e.has(-0)
                        }));
                    E || ((x = t((function(t, r) {
                        c(t, x, e);
                        var n = g(new b, t, x);
                        return r != undefined && l(r, n[v], n, p), n
                    }))).prototype = y, y.constructor = x), (S || A) && (C("delete"), C("has"), p && C("get")), (A || k) && C(v), m && y.clear && delete y.clear
                }
                return w[e] = x, n({
                    global: !0,
                    forced: x != b
                }, w), f(x, e), m || r.setStrong(x, e, p), x
            }
        }, function(e, t, r) {
            var n = r(34),
                a = r(17),
                i = r(18),
                o = r(22).f,
                s = r(33),
                l = r(163),
                c = s("meta"),
                u = 0,
                d = Object.isExtensible || function() {
                    return !0
                },
                h = function(e) {
                    o(e, c, {
                        value: {
                            objectID: "O" + ++u,
                            weakData: {}
                        }
                    })
                },
                f = e.exports = {
                    REQUIRED: !1,
                    fastKey: function(e, t) {
                        if (!a(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e;
                        if (!i(e, c)) {
                            if (!d(e)) return "F";
                            if (!t) return "E";
                            h(e)
                        }
                        return e[c].objectID
                    },
                    getWeakData: function(e, t) {
                        if (!i(e, c)) {
                            if (!d(e)) return !0;
                            if (!t) return !1;
                            h(e)
                        }
                        return e[c].weakData
                    },
                    onFreeze: function(e) {
                        return l && f.REQUIRED && d(e) && !i(e, c) && h(e), e
                    }
                };
            n[c] = !0
        }, function(e, t, r) {
            var n = r(9);
            e.exports = !n((function() {
                return Object.isExtensible(Object.preventExtensions({}))
            }))
        }, function(e, t) {
            e.exports = function(e, t, r) {
                if (!(e instanceof t)) throw TypeError("Incorrect " + (r ? r + " " : "") + "invocation");
                return e
            }
        }, function(e, t, r) {
            var n = r(17),
                a = r(112);
            e.exports = function(e, t, r) {
                var i, o;
                return a && "function" == typeof(i = t.constructor) && i !== r && n(o = i.prototype) && o !== r.prototype && a(e, o), e
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(22).f,
                a = r(55),
                i = r(167),
                o = r(67),
                s = r(164),
                l = r(115),
                c = r(106),
                u = r(168),
                d = r(8),
                h = r(162).fastKey,
                f = r(28),
                g = f.set,
                p = f.getterFor;
            e.exports = {
                getConstructor: function(e, t, r, c) {
                    var u = e((function(e, n) {
                            s(e, u, t), g(e, {
                                type: t,
                                index: a(null),
                                first: undefined,
                                last: undefined,
                                size: 0
                            }), d || (e.size = 0), n != undefined && l(n, e[c], e, r)
                        })),
                        f = p(t),
                        m = function(e, t, r) {
                            var n, a, i = f(e),
                                o = v(e, t);
                            return o ? o.value = r : (i.last = o = {
                                index: a = h(t, !0),
                                key: t,
                                value: r,
                                previous: n = i.last,
                                next: undefined,
                                removed: !1
                            }, i.first || (i.first = o), n && (n.next = o), d ? i.size++ : e.size++, "F" !== a && (i.index[a] = o)), e
                        },
                        v = function(e, t) {
                            var r, n = f(e),
                                a = h(t);
                            if ("F" !== a) return n.index[a];
                            for (r = n.first; r; r = r.next)
                                if (r.key == t) return r
                        };
                    return i(u.prototype, {
                        clear: function() {
                            for (var e = f(this), t = e.index, r = e.first; r;) r.removed = !0, r.previous && (r.previous = r.previous.next = undefined), delete t[r.index], r = r.next;
                            e.first = e.last = undefined, d ? e.size = 0 : this.size = 0
                        },
                        "delete": function(e) {
                            var t = f(this),
                                r = v(this, e);
                            if (r) {
                                var n = r.next,
                                    a = r.previous;
                                delete t.index[r.index], r.removed = !0, a && (a.next = n), n && (n.previous = a), t.first == r && (t.first = n), t.last == r && (t.last = a), d ? t.size-- : this.size--
                            }
                            return !!r
                        },
                        forEach: function(e) {
                            for (var t, r = f(this), n = o(e, arguments.length > 1 ? arguments[1] : undefined, 3); t = t ? t.next : r.first;)
                                for (n(t.value, t.key, this); t && t.removed;) t = t.previous
                        },
                        has: function(e) {
                            return !!v(this, e)
                        }
                    }), i(u.prototype, r ? {
                        get: function(e) {
                            var t = v(this, e);
                            return t && t.value
                        },
                        set: function(e, t) {
                            return m(this, 0 === e ? 0 : e, t)
                        }
                    } : {
                        add: function(e) {
                            return m(this, e = 0 === e ? 0 : e, e)
                        }
                    }), d && n(u.prototype, "size", {
                        get: function() {
                            return f(this).size
                        }
                    }), u
                },
                setStrong: function(e, t, r) {
                    var n = t + " Iterator",
                        a = p(t),
                        i = p(n);
                    c(e, t, (function(e, t) {
                        g(this, {
                            type: n,
                            target: e,
                            state: a(e),
                            kind: t,
                            last: undefined
                        })
                    }), (function() {
                        for (var e = i(this), t = e.kind, r = e.last; r && r.removed;) r = r.previous;
                        return e.target && (e.last = r = r ? r.next : e.state.first) ? "keys" == t ? {
                            value: r.key,
                            done: !1
                        } : "values" == t ? {
                            value: r.value,
                            done: !1
                        } : {
                            value: [r.key, r.value],
                            done: !1
                        } : (e.target = undefined, {
                            value: undefined,
                            done: !0
                        })
                    }), r ? "entries" : "values", !r, !0), u(t)
                }
            }
        }, function(e, t, r) {
            var n = r(24);
            e.exports = function(e, t, r) {
                for (var a in t) n(e, a, t[a], r);
                return e
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(37),
                a = r(22),
                i = r(75),
                o = r(8),
                s = i("species");
            e.exports = function(e) {
                var t = n(e),
                    r = a.f;
                o && t && !t[s] && r(t, s, {
                    configurable: !0,
                    get: function() {
                        return this
                    }
                })
            }
        }, function(e, t, r) {
            var n = r(119),
                a = r(24),
                i = r(170);
            n || a(Object.prototype, "toString", i, {
                unsafe: !0
            })
        }, function(e, t, r) {
            "use strict";
            var n = r(119),
                a = r(118);
            e.exports = n ? {}.toString : function() {
                return "[object " + a(this) + "]"
            }
        }, function(e, t, r) {
            var n = r(5),
                a = r(172),
                i = r(103),
                o = r(21),
                s = r(75),
                l = s("iterator"),
                c = s("toStringTag"),
                u = i.values;
            for (var d in a) {
                var h = n[d],
                    f = h && h.prototype;
                if (f) {
                    if (f[l] !== u) try {
                        o(f, l, u)
                    } catch (p) {
                        f[l] = u
                    }
                    if (f[c] || o(f, c, d), a[d])
                        for (var g in i)
                            if (f[g] !== i[g]) try {
                                o(f, g, i[g])
                            } catch (p) {
                                f[g] = i[g]
                            }
                }
            }
        }, function(e, t) {
            e.exports = {
                CSSRuleList: 0,
                CSSStyleDeclaration: 0,
                CSSValueList: 0,
                ClientRectList: 0,
                DOMRectList: 0,
                DOMStringList: 0,
                DOMTokenList: 1,
                DataTransferItemList: 0,
                FileList: 0,
                HTMLAllCollection: 0,
                HTMLCollection: 0,
                HTMLFormElement: 0,
                HTMLSelectElement: 0,
                MediaList: 0,
                MimeTypeArray: 0,
                NamedNodeMap: 0,
                NodeList: 1,
                PaintRequestList: 0,
                Plugin: 0,
                PluginArray: 0,
                SVGLengthList: 0,
                SVGNumberList: 0,
                SVGPathSegList: 0,
                SVGPointList: 0,
                SVGStringList: 0,
                SVGTransformList: 0,
                SourceBufferList: 0,
                StyleSheetList: 0,
                TextTrackCueList: 0,
                TextTrackList: 0,
                TouchList: 0
            }
        }, function(e, t, r) {
            r(174), r(169), r(132), r(171);
            var n = r(38);
            e.exports = n.Map
        }, function(e, t, r) {
            "use strict";
            var n = r(161),
                a = r(166);
            e.exports = n("Map", (function(e) {
                return function() {
                    return e(this, arguments.length ? arguments[0] : undefined)
                }
            }), a)
        }, function(e, t, r) {
            r(176), r(178);
            var n = r(66);
            e.exports = n("Array", "flat")
        }, function(e, t, r) {
            "use strict";
            var n = r(4),
                a = r(177),
                i = r(61),
                o = r(42),
                s = r(43),
                l = r(73);
            n({
                target: "Array",
                proto: !0
            }, {
                flat: function() {
                    var e = arguments.length ? arguments[0] : undefined,
                        t = i(this),
                        r = o(t.length),
                        n = l(t, 0);
                    return n.length = a(n, t, t, r, 0, e === undefined ? 1 : s(e)), n
                }
            })
        }, function(e, t, r) {
            "use strict";
            var n = r(74),
                a = r(42),
                i = r(67);
            e.exports = function o(e, t, r, s, l, c, u, d) {
                for (var h, f = l, g = 0, p = !!u && i(u, d, 3); g < s;) {
                    if (g in r) {
                        if (h = p ? p(r[g], g, t) : r[g], c > 0 && n(h)) f = o(e, t, h, a(h.length), f, c - 1) - 1;
                        else {
                            if (f >= 9007199254740991) throw TypeError("Exceed the acceptable array length");
                            e[f] = h
                        }
                        f++
                    }
                    g++
                }
                return f
            }
        }, function(e, t, r) {
            r(104)("flat")
        }, function(e, t, r) {
            r(180);
            var n = r(66);
            e.exports = n("String", "repeat")
        }, function(e, t, r) {
            r(4)({
                target: "String",
                proto: !0
            }, {
                repeat: r(181)
            })
        }, function(e, t, r) {
            "use strict";
            var n = r(43),
                a = r(15);
            e.exports = "".repeat || function(e) {
                var t = String(a(this)),
                    r = "",
                    i = n(e);
                if (i < 0 || i == Infinity) throw RangeError("Wrong number of repetitions");
                for (; i > 0;
                    (i >>>= 1) && (t += t)) 1 & i && (r += t);
                return r
            }
        }, function(e, t, r) {
            (function(e, t) {
                ! function() {
                    "use strict";

                    function r(e) {
                        var t = this.constructor;
                        return this.then((function(r) {
                            return t.resolve(e()).then((function() {
                                return r
                            }))
                        }), (function(r) {
                            return t.resolve(e()).then((function() {
                                return t.reject(r)
                            }))
                        }))
                    }

                    function n(e) {
                        return !(!e || "undefined" == typeof e.length)
                    }

                    function a() {}

                    function i(e) {
                        if (!(this instanceof i)) throw new TypeError("Promises must be constructed via new");
                        if ("function" != typeof e) throw new TypeError("not a function");
                        this._state = 0, this._handled = !1, this._value = undefined, this._deferreds = [], u(e, this)
                    }

                    function o(e, t) {
                        for (; 3 === e._state;) e = e._value;
                        0 !== e._state ? (e._handled = !0, i._immediateFn((function() {
                            var r = 1 === e._state ? t.onFulfilled : t.onRejected;
                            if (null !== r) {
                                var n;
                                try {
                                    n = r(e._value)
                                } catch (o) {
                                    return void l(t.promise, o)
                                }
                                s(t.promise, n)
                            } else(1 === e._state ? s : l)(t.promise, e._value)
                        }))) : e._deferreds.push(t)
                    }

                    function s(e, t) {
                        try {
                            if (t === e) throw new TypeError("A promise cannot be resolved with itself.");
                            if (t && ("object" == typeof t || "function" == typeof t)) {
                                var r = t.then;
                                if (t instanceof i) return e._state = 3, e._value = t, void c(e);
                                if ("function" == typeof r) return void u(function(e, t) {
                                    return function() {
                                        e.apply(t, arguments)
                                    }
                                }(r, t), e)
                            }
                            e._state = 1, e._value = t, c(e)
                        } catch (o) {
                            l(e, o)
                        }
                    }

                    function l(e, t) {
                        e._state = 2, e._value = t, c(e)
                    }

                    function c(e) {
                        2 === e._state && 0 === e._deferreds.length && i._immediateFn((function() {
                            e._handled || i._unhandledRejectionFn(e._value)
                        }));
                        for (var t = 0, r = e._deferreds.length; r > t; t++) o(e, e._deferreds[t]);
                        e._deferreds = null
                    }

                    function u(e, t) {
                        var r = !1;
                        try {
                            e((function(e) {
                                r || (r = !0, s(t, e))
                            }), (function(e) {
                                r || (r = !0, l(t, e))
                            }))
                        } catch (i) {
                            if (r) return;
                            r = !0, l(t, i)
                        }
                    }
                    var d = setTimeout;
                    i.prototype["catch"] = function(e) {
                        return this.then(null, e)
                    }, i.prototype.then = function(e, t) {
                        var r = new this.constructor(a);
                        return o(this, new function(e, t, r) {
                            this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.promise = r
                        }(e, t, r)), r
                    }, i.prototype["finally"] = r, i.all = function(e) {
                        return new i((function(t, r) {
                            function a(e, n) {
                                try {
                                    if (n && ("object" == typeof n || "function" == typeof n)) {
                                        var s = n.then;
                                        if ("function" == typeof s) return void s.call(n, (function(t) {
                                            a(e, t)
                                        }), r)
                                    }
                                    i[e] = n, 0 == --o && t(i)
                                } catch (u) {
                                    r(u)
                                }
                            }
                            if (!n(e)) return r(new TypeError("Promise.all accepts an array"));
                            var i = Array.prototype.slice.call(e);
                            if (0 === i.length) return t([]);
                            for (var o = i.length, s = 0; i.length > s; s++) a(s, i[s])
                        }))
                    }, i.resolve = function(e) {
                        return e && "object" == typeof e && e.constructor === i ? e : new i((function(t) {
                            t(e)
                        }))
                    }, i.reject = function(e) {
                        return new i((function(t, r) {
                            r(e)
                        }))
                    }, i.race = function(e) {
                        return new i((function(t, r) {
                            if (!n(e)) return r(new TypeError("Promise.race accepts an array"));
                            for (var a = 0, o = e.length; o > a; a++) i.resolve(e[a]).then(t, r)
                        }))
                    }, i._immediateFn = "function" == typeof e && function(t) {
                        e(t)
                    } || function(e) {
                        d(e, 0)
                    }, i._unhandledRejectionFn = function(e) {
                        void 0 !== console && console && console.warn("Possible Unhandled Promise Rejection:", e)
                    };
                    var h = function() {
                        if ("undefined" != typeof self) return self;
                        if ("undefined" != typeof window) return window;
                        if (void 0 !== t) return t;
                        throw Error("unable to locate global object")
                    }();
                    "Promise" in h ? h.Promise.prototype["finally"] || (h.Promise.prototype["finally"] = r) : h.Promise = i
                }()
            }).call(this, r(183).setImmediate, r(6))
        }, function(e, t, r) {
            (function(e) {
                var n = void 0 !== e && e || "undefined" != typeof self && self || window,
                    a = Function.prototype.apply;

                function i(e, t) {
                    this._id = e, this._clearFn = t
                }
                t.setTimeout = function() {
                    return new i(a.call(setTimeout, n, arguments), clearTimeout)
                }, t.setInterval = function() {
                    return new i(a.call(setInterval, n, arguments), clearInterval)
                }, t.clearTimeout = t.clearInterval = function(e) {
                    e && e.close()
                }, i.prototype.unref = i.prototype.ref = function() {}, i.prototype.close = function() {
                    this._clearFn.call(n, this._id)
                }, t.enroll = function(e, t) {
                    clearTimeout(e._idleTimeoutId), e._idleTimeout = t
                }, t.unenroll = function(e) {
                    clearTimeout(e._idleTimeoutId), e._idleTimeout = -1
                }, t._unrefActive = t.active = function(e) {
                    clearTimeout(e._idleTimeoutId);
                    var t = e._idleTimeout;
                    t >= 0 && (e._idleTimeoutId = setTimeout((function() {
                        e._onTimeout && e._onTimeout()
                    }), t))
                }, r(184), t.setImmediate = "undefined" != typeof self && self.setImmediate || void 0 !== e && e.setImmediate || this && this.setImmediate, t.clearImmediate = "undefined" != typeof self && self.clearImmediate || void 0 !== e && e.clearImmediate || this && this.clearImmediate
            }).call(this, r(6))
        }, function(e, t, r) {
            (function(e, t) {
                ! function(e, r) {
                    "use strict";
                    if (!e.setImmediate) {
                        var n, a, i, o, s, l = 1,
                            c = {},
                            u = !1,
                            d = e.document,
                            h = Object.getPrototypeOf && Object.getPrototypeOf(e);
                        h = h && h.setTimeout ? h : e, "[object process]" === {}.toString.call(e.process) ? n = function(e) {
                            t.nextTick((function() {
                                g(e)
                            }))
                        } : ! function() {
                            if (e.postMessage && !e.importScripts) {
                                var t = !0,
                                    r = e.onmessage;
                                return e.onmessage = function() {
                                    t = !1
                                }, e.postMessage("", "*"), e.onmessage = r, t
                            }
                        }() ? e.MessageChannel ? ((i = new MessageChannel).port1.onmessage = function(e) {
                            g(e.data)
                        }, n = function(e) {
                            i.port2.postMessage(e)
                        }) : d && "onreadystatechange" in d.createElement("script") ? (a = d.documentElement, n = function(e) {
                            var t = d.createElement("script");
                            t.onreadystatechange = function() {
                                g(e), t.onreadystatechange = null, a.removeChild(t), t = null
                            }, a.appendChild(t)
                        }) : n = function(e) {
                            setTimeout(g, 0, e)
                        } : (o = "setImmediate$" + Math.random() + "$", s = function(t) {
                            t.source === e && "string" == typeof t.data && 0 === t.data.indexOf(o) && g(+t.data.slice(o.length))
                        }, e.addEventListener ? e.addEventListener("message", s, !1) : e.attachEvent("onmessage", s), n = function(t) {
                            e.postMessage(o + t, "*")
                        }), h.setImmediate = function(e) {
                            "function" != typeof e && (e = new Function("" + e));
                            for (var t = new Array(arguments.length - 1), r = 0; r < t.length; r++) t[r] = arguments[r + 1];
                            var a = {
                                callback: e,
                                args: t
                            };
                            return c[l] = a, n(l), l++
                        }, h.clearImmediate = f
                    }

                    function f(e) {
                        delete c[e]
                    }

                    function g(e) {
                        if (u) setTimeout(g, 0, e);
                        else {
                            var t = c[e];
                            if (t) {
                                u = !0;
                                try {
                                    ! function(e) {
                                        var t = e.callback,
                                            r = e.args;
                                        switch (r.length) {
                                            case 0:
                                                t();
                                                break;
                                            case 1:
                                                t(r[0]);
                                                break;
                                            case 2:
                                                t(r[0], r[1]);
                                                break;
                                            case 3:
                                                t(r[0], r[1], r[2]);
                                                break;
                                            default:
                                                t.apply(void 0, r)
                                        }
                                    }(t)
                                } finally {
                                    f(e), u = !1
                                }
                            }
                        }
                    }
                }("undefined" == typeof self ? void 0 === e ? this : e : self)
            }).call(this, r(6), r(185))
        }, function(e, t) {
            var r, n, a = e.exports = {};

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

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

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

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

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

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

            function p() {}
            a.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];
                c.push(new g(e, t)), 1 !== c.length || u || s(f)
            }, g.prototype.run = function() {
                this.fun.apply(null, this.array)
            }, a.title = "browser", a.browser = !0, a.env = {}, a.argv = [], a.version = "", a.versions = {}, a.on = p, a.addListener = p, a.once = p, a.off = p, a.removeListener = p, a.removeAllListeners = p, a.emit = p, a.prependListener = p, a.prependOnceListener = p, a.listeners = function(e) {
                return []
            }, a.binding = function(e) {
                throw new Error("process.binding is not supported")
            }, a.cwd = function() {
                return "/"
            }, a.chdir = function(e) {
                throw new Error("process.chdir is not supported")
            }, a.umask = function() {
                return 0
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(188)),
                i = n(r(410)),
                o = n(r(411)),
                s = n(r(241)),
                l = r(193);
            a["default"].addDep(s["default"]);
            var c, u = (c = {}, function(e) {
                var t = e;
                return t = t && t.replace(/(^\s*)|(\s*$)/g, "") || "", c[t] || (c[t] = {
                    key: t,
                    subject: t.replace(/[^\/]*?$/gi, ""),
                    predicate: t.replace(/^.*\//gi, "")
                })
            });

            function d(e) {
                switch (i["default"][e]) {
                    case "charts":
                        return Promise.all([r.e(2), r.e(1)]).then(r.t.bind(null, 413, 7));
                    case "timeseries":
                        return Promise.all([r.e(2), r.e(3)]).then(r.t.bind(null, 690, 7));
                    case "powercharts":
                        return Promise.all([r.e(2), r.e(4)]).then(r.t.bind(null, 873, 7));
                    case "widgets":
                        return Promise.all([r.e(2), r.e(5)]).then(r.t.bind(null, 1038, 7));
                    case "zoomline":
                        return Promise.all([r.e(2), r.e(6)]).then(r.t.bind(null, 1132, 7));
                    case "gantt":
                        return Promise.all([r.e(2), r.e(7)]).then(r.t.bind(null, 1143, 7));
                    case "treemap":
                        return Promise.all([r.e(2), r.e(8)]).then(r.t.bind(null, 1161, 7));
                    case "zoomscatter":
                        return Promise.all([r.e(2), r.e(9)]).then(r.t.bind(null, 1167, 7));
                    case "msstackedcolumn2dsplinedy":
                        return Promise.all([r.e(2), r.e(10)]).then(r.t.bind(null, 1171, 7));
                    case "overlappedbar2d":
                        return Promise.all([r.e(2), r.e(11)]).then(r.t.bind(null, 1175, 7));
                    case "overlappedcolumn2d":
                        return Promise.all([r.e(2), r.e(12)]).then(r.t.bind(null, 1180, 7));
                    default:
                        return (0, o["default"])("" + a["default"].getScriptBaseURI() + function(e) {
                            var t, r = a["default"].options,
                                n = e;
                            return n = function(e) {
                                return void 0 === e && (e = ""), "" === e ? e : e.replace(/^[\s\S]*\//gi, "").replace(/\?/g, "%3F").replace(/\#/g, "%23").replace(/\:/g, "%3A")
                            }((t = u(n)).predicate), t.subject + r.html5ScriptNamePrefix + n + r.html5ScriptNameSuffix
                        }(e))
                }
            }
            a["default"].addEventListener("resourceRequested", (function(e) {
                var t = e.sender,
                    r = t.chartType(),
                    n = t.options.chartTypeSourcePath || "";
                a["default"].getDep(r, "chartapi") || a["default"].getDep(r, "maps") || a["default"].addDep({
                    name: r,
                    type: "dependency",
                    extension: d(n + r)
                })
            })), a["default"].addEventListener("preconfigure", (function(e) {
                var t = e.sender;
                if ("chartAPI" === t.getType()) {
                    var n = t.getFromEnv("dataSource");
                    n && n.chart && (0, l.pluck)(n.chart.exportenabled, 0) && !a["default"].getDep("ExcelExport") && a["default"].addDep({
                        name: "ExcelExport",
                        extension: Promise.all([r.e(2), r.e(13)]).then(r.t.bind(null, 1184, 7)).then((function(e) {
                            var t = e["default"];
                            a["default"].addDep(t)
                        }))
                    })
                }
            })), window && r(412) && (window.FusionCharts = a["default"]);
            var h = a["default"];
            t["default"] = h
        }, function(e, t) {
            e.exports = function(e) {
                return e && e.__esModule ? e : {
                    "default": e
                }
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(189)),
                i = r(200),
                o = n(r(349)),
                s = r(378),
                l = r(406),
                c = r(407);
            a["default"].DataStore = o["default"], a["default"].DataStore.Operators = {
                between: s.between,
                equals: s.equals,
                less: s.less,
                lessEquals: s.lessEquals,
                greater: s.greater,
                greaterEquals: s.greaterEquals,
                filter: s.filter,
                select: s.select,
                groupBy: s.groupBy,
                pipe: s.pipe,
                sort: s.sort,
                pivot: s.pivot
            }, a["default"].Utils = {
                duration: c.duration,
                before: c.before,
                after: c.after,
                parseDate: c.parseDate,
                formatDate: c.formatDate,
                DatetimeUnits: c.DatetimeUnits,
                Weekdays: c.Weekdays
            }, a["default"].DataStore.Aggregators = {
                aggregatorStore: l.aggregatorStore
            };
            var u = ["type", "id", "width", "height", "debugMode", "registerWithJS", "backgroundColor", "scaleMode", "lang", "detectFlashVersion", "autoInstallRedirect"],
                d = function(e, t) {
                    var r, n;
                    for (r = 0, n = u.length; r < n; r++) "object" == typeof t[r] ? Object.assign(e, t[r]) : e[u[r]] = t[r];
                    return e
                };

            function h(e) {
                var t = e;
                return this instanceof h ? (1 === arguments.length && "object" == typeof t || (t = d({}, arguments)), new(Function.prototype.bind.apply(a["default"], [null].concat(t)))) : 1 === arguments.length && t instanceof Array && "private" === t[0] ? a["default"].register("module", t) : 1 === arguments.length && "string" == typeof t ? a["default"].getChartFromId(t) : void(0, i.raiseError)(h, "25081840", "run", "", new SyntaxError('Use the "new" keyword while creating a new FusionCharts object'))
            }
            Object.getOwnPropertyNames(a["default"]).filter((function(e) {
                return !0 === Object.getOwnPropertyDescriptor(a["default"], e).writable
            })).forEach((function(e) {
                h[e] = a["default"][e]
            }));
            var f = h;
            t["default"] = f
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(190)),
                i = n(r(241));
            a["default"].addDep(i["default"]);
            var o = a["default"];
            t["default"] = o
        }, function(e, t, r) {
            "use strict";
            var n = r(191),
                a = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var i = a(r(192)),
                o = r(193),
                s = r(200),
                l = r(201),
                c = r(202),
                u = a(r(203)),
                d = n(r(204)),
                h = a(r(213)),
                f = r(205),
                g = a(r(216)),
                p = a(r(217)),
                m = a(r(218)),
                v = a(r(219)),
                b = a(r(222)),
                y = a(r(224)),
                x = a(r(225)),
                w = a(r(236)),
                C = a(r(240));

            function _(e, t) {
                var r = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }))), r.push.apply(r, n)
                }
                return r
            }

            function k(e) {
                for (var t = 1; t < arguments.length; t++) {
                    var r = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? _(Object(r), !0).forEach((function(t) {
                        (0, i["default"])(e, t, r[t])
                    })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : _(Object(r)).forEach((function(t) {
                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t))
                    }))
                }
                return e
            }
            var S, E, A, T, N, M, D = "3.15.1-sr.1",
                F = /(^|[\/\\])(fusioncharts\.js)([\?#].*)?$/gi,
                I = /^(FusionCharts|FusionWidgets|FusionMaps)/,
                L = /[^\%\d]*$/gi,
                O = /url$/i,
                R = "relative",
                P = "left",
                V = "normal",
                B = "inline-block",
                j = "1",
                H = "middle",
                G = "normal",
                U = "normal",
                z = "normal",
                W = "none",
                X = "inline",
                $ = "0",
                Y = "0",
                q = "none",
                K = "ltr",
                J = "none",
                Z = function(e) {
                    return e.toString().toLowerCase()
                },
                Q = function() {
                    return {
                        state: 2
                    }
                },
                ee = (E = {}, A = function Ae() {
                    var e, t, r, n, a, i = 0,
                        o = parseInt(Se.options.visibilityTrackingInterval, 10) || 300;
                    for (e in E)
                        if (i += 1, t = E[e].chart, r = E[e].container, n = E[e].insertMode, a = E[e].callback, t.disposed || !te(r)) {
                            if (delete E[e], i -= 1, delete t.containerHidden, t.disposed) return;
                            t.renderOpts = {
                                containerElement: r,
                                insertMode: n,
                                callback: a
                            }, t._addChartDependency("chartContainer", {
                                scopeOf: t,
                                opts: {
                                    containerElement: r,
                                    insertMode: n,
                                    callback: a
                                },
                                resolve: _e
                            }), t._setState()
                        } else E[e] && E[e].chart && (E[e].chart.containerHidden = !0, E[e].chart._addChartDependency("chartContainer", {
                            resolve: Q
                        }), E[e].chart._setState());
                    S = i ? setTimeout(Ae, o) : clearTimeout(S)
                }, function(e, t, r, n) {
                    E[e.id] = {
                        chart: e,
                        container: t,
                        insertMode: r,
                        callback: n
                    }, S || (S = setTimeout(A, parseInt(Se.options.visibilityTrackingInterval, 10) || 300))
                }),
                te = function Te(e) {
                    var t = e.parentNode;
                    return !!t && 9 !== t.nodeType && ("none" === function(e, t) {
                        var r = t;
                        return window.getComputedStyle ? r = window.getComputedStyle(e).getPropertyValue(r) : e.currentStyle && (r = e.currentStyle[r]), r
                    }(e, "display") || !!t && Te(t))
                },
                re = 0,
                ne = !1,
                ae = ["disposed", "error", "waiting", "ready", "initialized"],
                ie = {},
                oe = "https://www.fusioncharts.com/dev/migration/deprecated-functionalities?version=3.13.0",
                se = 'You are using incompatible files or deprecated "register" API of FusionCharts, please go through the docs to know more at ' + oe;

            function le() {
                return this.state
            }

            function ce() {
                return this.msg
            }

            function ue() {
                return this.msgStyle
            }

            function de() {
                return "chartobject-" + (de.lastId += 1)
            }

            function he(e) {
                var t, r = {};
                for (t in e) r[t.toLowerCase()] = e[t];
                return r
            }

            function fe(e) {
                var t, r = [];
                for (t in e) r.push(t + "_" + e[t]);
                return r.sort(), r.join(",")
            }

            function ge(e) {
                var t, r, n = e.options,
                    a = e.args;
                return t = {
                    imageHAlign: a.loadMessageImageHAlign || n.baseChartMessageImageHAlign,
                    imageVAlign: a.loadMessageImageVAlign || n.baseChartMessageImageVAlign,
                    imageAlpha: a.loadMessageImageAlpha || n.baseChartMessageImageAlpha,
                    imageScale: a.loadMessageImageScale || n.baseChartMessageImageScale
                }, r = {
                    color: a.loadMessageColor || n.baseChartMessageColor,
                    fontFamily: a.loadMessageFont || n.baseChartMessageFont,
                    fontSize: a.loadMessageFontSize || n.baseChartMessageFontSize
                }, {
                    msg: e.options.showChartLoadingMessage ? n.PBarLoadingText || n.loadMessage : "",
                    msgStyle: {
                        message: r,
                        image: t
                    }
                }
            }

            function pe(e) {
                var t, r, n = e.args,
                    a = e.options;
                return t = {
                    imageHAlign: n.typeNotSupportedMessageImageHAlign || a.baseChartMessageImageHAlign,
                    imageVAlign: n.typeNotSupportedMessageImageVAlign || a.baseChartMessageImageVAlign,
                    imageAlpha: n.typeNotSupportedMessageImageAlpha || a.baseChartMessageImageAlpha,
                    imageScale: n.typeNotSupportedMessageImageScale || a.baseChartMessageImageScale
                }, r = {
                    color: n.typeNotSupportedMessageColor || a.baseChartMessageColor,
                    fontFamily: n.typeNotSupportedMessageFont || a.baseChartMessageFont,
                    fontSize: n.typeNotSupportedMessageFontSize || a.baseChartMessageFontSize
                }, ne && (a.messageURL = oe), {
                    msg: ne ? se : a.typeNotSupportedMessage,
                    msgStyle: {
                        image: t,
                        message: r
                    }
                }
            }

            function me(e) {
                var t, r, n = e.args,
                    a = e.options;
                return t = {
                    imageHAlign: n.browserNotSupportedMessageImageHAlign || a.baseChartMessageImageHAlign,
                    imageVAlign: n.browserNotSupportedMessageImageVAlign || a.baseChartMessageImageVAlign,
                    imageAlpha: n.browserNotSupportedMessageImageAlpha || a.baseChartMessageImageAlpha,
                    imageScale: n.browserNotSupportedMessageImageScale || a.baseChartMessageImageScale
                }, r = {
                    color: n.browserNotSupportedMessageColor || a.baseChartMessageColor,
                    fontFamily: n.browserNotSupportedMessageFont || a.baseChartMessageFont,
                    fontSize: n.browserNotSupportedMessageFontSize || a.baseChartMessageFontSize
                }, {
                    msg: a.browserNotSupportedMessage,
                    msgStyle: {
                        image: t,
                        message: r
                    }
                }
            }

            function ve() {
                ne = !0
            }

            function be(e) {
                var t, r, n, a = this.opts,
                    i = a.data,
                    u = a.sanitisedFormat,
                    d = a.silent,
                    h = (0, l.getDepsByType)("transcoder"),
                    f = h[u] && h[u](),
                    g = e.options,
                    p = function(e) {
                        var t, r, n = e.options,
                            a = e.args;
                        return t = {
                            imageHAlign: (0, o.pluck)(a.dataInvalidMessageImageHAlign, n.baseChartMessageImageHAlign).toLowerCase(),
                            imageVAlign: (0, o.pluck)(a.dataInvalidMessageImageVAlign, n.baseChartMessageImageVAlign).toLowerCase(),
                            imageAlpha: (0, o.pluckNumber)(a.dataInvalidMessageImageAlpha, n.baseChartMessageImageAlpha),
                            imageScale: (0, o.pluckNumber)(a.dataInvalidMessageImageScale, n.baseChartMessageImageScale)
                        }, r = {
                            fontFamily: a.dataInvalidMessageFont || n.baseChartMessageFont,
                            fontSize: a.dataInvalidMessageFontSize || n.baseChartMessageFontSize,
                            color: a.dataInvalidMessageColor || n.baseChartMessageColor
                        }, {
                            msg: n.dataInvalidMessage,
                            msgStyle: {
                                image: t,
                                message: r
                            }
                        }
                    }(e),
                    m = p.msg,
                    v = p.msgStyle;
                return e.__state.newDataArrived = !0, f && f.toJSON ? n = (r = f.toJSON(i, e)).error ? {
                    state: 1,
                    msg: m,
                    msgStyle: v
                } : {
                    state: 3
                } : (r = {
                    error: new Error("Unable to convert data.")
                }, n = {
                    state: 1,
                    msg: m,
                    msgStyle: v
                }), t = r.error ? r : r.data, g.dataErroneous = g.error = r.error, g.dataSource = t, g.dataFormat = u, g.dataErroneous || (0, s.triggerEvent)("beforeDataUpdate", e, function(e, t, r, n) {
                    var a = {};
                    return a.native = "json" === r, a.dataFormat = r, a.format = "json", a.data = t, a.dataSource = e, a.silent = !!n, a
                }(i, t, u, d), N, c.onDataUpdateSuccess, c.onDataUpdateCancel), n
            }

            function ye(e) {
                var t, r, n, a, i, c, u, d = this.opts,
                    h = d.url,
                    f = void 0 === h ? "" : h,
                    g = d.format,
                    p = d.config,
                    m = d.callback,
                    v = d.silent,
                    b = (0, l.getDepsByType)("transcoder"),
                    y = (c = (n = e).options, u = n.args, a = {
                        imageHAlign: (0, o.pluck)(u.dataLoadStartMessageImageHAlign, c.baseChartMessageImageHAlign).toLowerCase(),
                        imageVAlign: (0, o.pluck)(u.dataLoadStartMessageImageVAlign, c.baseChartMessageImageVAlign).toLowerCase(),
                        imageAlpha: (0, o.pluckNumber)(u.dataLoadStartMessageImageAlpha, c.baseChartMessageImageAlpha),
                        imageScale: (0, o.pluckNumber)(u.dataLoadStartMessageImageScale, c.baseChartMessageImageScale)
                    }, i = {
                        fontFamily: u.dataLoadStartMessageFont || c.baseChartMessageFont,
                        fontSize: u.dataLoadStartMessageFontSize || c.baseChartMessageFontSize,
                        color: u.dataLoadStartMessageColor || c.baseChartMessageColor
                    }, {
                        msg: c.dataLoadStartMessage,
                        msgStyle: {
                            image: a,
                            message: i
                        }
                    }),
                    x = y.msg,
                    w = y.msgStyle;
                return null != g && "function" == typeof g.toString || (g = e.options.dataFormat, (0, s.raiseWarning)(e, "03091609", "param", "FusionCharts#setChartDataUrl", "Invalid Data Format. Reverting to current data format - " + g)), t = Z(g), O.test(t) || (t += "url"), r = b[t] && b[t](), e.jsVars.stallLoad = !0, r && r.toJSON ? (r.toJSON(f, p, m, v, e), {
                    state: 2,
                    msg: x,
                    msgStyle: w
                }) : {
                    state: 1,
                    error: new Error("Unable to fetch data.")
                }
            }

            function xe(e) {
                var t, r, n = e.__state,
                    a = e.chartType(),
                    i = e.apiInstance && e.apiInstance.getFromEnv("toolTipController") && e.apiInstance.getFromEnv("toolTipController").toolTips,
                    c = (0, l.getDep)(n.lastRenderedType, "chartapi") || (0, l.getDep)(n.lastRenderedType, "maps");
                if (i && (0, o.removeAllTooltipOnChart)(i, n.lastRenderedType === a), c && n.lastRenderedType !== a && ((0, s.triggerEvent)("chartTypeChanged", e, {
                        previousType: n.lastRenderedType,
                        newType: a
                    }), t = c))
                    for (r in t) delete e[r];
                n.lastRenderedType = a
            }

            function we(e) {
                var t = ge(e),
                    n = t.msgStyle,
                    a = t.msg;
                return Promise.all([r.e(2), r.e(14)]).then(r.t.bind(null, 1193, 7)).then((function(t) {
                    Se.addDep(t["default"]), xe(e), e._addChartDependency("mapModuleLoad", {
                        resolve: function() {
                            return {
                                state: 3
                            }
                        }
                    }), (0, s.triggerEvent)("loaded", e, {
                        type: e.chartType(),
                        renderer: "javascript"
                    }, [e.id]), e._setState()
                }))["catch"]((function() {
                    var t = pe(e),
                        r = t.msgStyle,
                        n = t.msg;
                    e._addChartDependency("mapModuleLoad", {
                        resolve: function() {
                            return {
                                state: 1,
                                msgStyle: r,
                                msg: n
                            }
                        }
                    }), (0, s.raiseError)(Se, "12052314141", "run", "JavaScriptRenderer~Maps", new Error("FusionCharts' maps file is required to render the visualization.")), e._setState(), (0, s.triggerEvent)("charttypeinvalid", e, {}, [e.id])
                })), {
                    state: 2,
                    msgStyle: n,
                    msg: a
                }
            }

            function Ce(e) {
                var t = this.opts.value,
                    r = Se.getDep(t, "dependency") || Se.getDep(t, "chartapi") || Se.getDep(t, "maps"),
                    n = pe(e),
                    a = n.msgStyle,
                    i = n.msg;
                return ne = !1, r ? r.then ? (Se.addEventListener("register", ve), r.then((function(r) {
                    if (!e.disposed) {
                        if (r.__esModule) {
                            var n = (0, l.getDep)(t, "maps");
                            Se.addDep(r["default"]), !n && xe(e), e._addChartDependency("chartModuleLoad", {
                                resolve: function() {
                                    return n ? e._addChartDependency("mapModuleLoad", {
                                        scopeOf: e,
                                        resolve: we
                                    }) : (0, s.triggerEvent)("loaded", e, {
                                        type: t,
                                        renderer: "javascript"
                                    }, [e.id]), {
                                        state: 3
                                    }
                                }
                            })
                        } else e._addChartDependency("chartModuleLoad", {
                            resolve: function() {
                                return (0, l.getDep)(t, "maps") ? e._addChartDependency("mapModuleLoad", {
                                    scopeOf: e,
                                    resolve: we
                                }) : (xe(e), (0, s.triggerEvent)("loaded", e, {
                                    type: t,
                                    renderer: "javascript"
                                }, [e.id])), {
                                    state: 3
                                }
                            }
                        });
                        e._setState()
                    }
                }))["catch"]((function(t) {
                    if (!e.disposed) {
                        if (!(t instanceof Event)) throw new Error(t.stack);
                        e._addChartDependency("chartModuleLoad", {
                            resolve: function() {
                                return k({
                                    state: 1
                                }, pe(e))
                            }
                        }), e._setState(), (0, s.triggerEvent)("charttypeinvalid", e, {}, [e.id])
                    }
                })), k({
                    state: 2
                }, ge(e))) : ((0, l.getDep)(t, "maps") ? (e._addChartDependency("mapModuleLoad", {
                    scopeOf: e,
                    resolve: we
                }), e._setState()) : (xe(e), (0, s.triggerEvent)("loaded", e, {
                    type: t,
                    renderer: "javascript"
                }, [e.id])), {
                    state: 3
                }) : ((0, s.triggerEvent)("charttypeinvalid", this, {}, [this.id]), {
                    state: 1,
                    msgStyle: a,
                    msg: i
                })
            }

            function _e(e) {
                var t, r, n, a, i = this.opts,
                    l = i.containerElement,
                    c = i.insertMode,
                    u = i.callback;
                if (u ? "function" != typeof u && (u = N) : "function" == typeof c ? (u = c, c = N) : c || "function" != typeof l || (u = l, l = N), c = (c || e.options.insertMode).toLowerCase() || o.domInsertModes.REPLACE, void 0 === l && (l = e.options.containerElementId || e.options.containerElement), "string" == typeof l && (l = document.getElementById(l)), null == l) return (0, s.raiseError)(e, "03091456", "run", ".render()", new Error("Unable to find the container DOM element.")), (0, s.triggerEvent)("containernotfound", e, {}, [e.id]), {
                    state: 1
                };
                if (function(e, t) {
                        var r, n, a, i = document.getElementById(e),
                            o = t.id || t.getAttribute("id");
                        if (null === i) return !1;
                        if (e === o) return !0;
                        for (n = 0, a = (r = t.getElementsByTagName("*")).length; n < a; n++)
                            if (r[n] === i) return !1;
                        return !0
                    }(e.id, l)) return (0, s.raiseError)(e, "05102109", "run", ".render()", new Error("A duplicate object already exists with the specific Id: " + e.id)), {
                    state: 1
                };
                if (te(l)) return e.containerHidden = !0, ee(e, l, c, u), {
                    state: 2
                };
                if (delete e.containerHidden, ((r = window[e.id]) && r.FusionCharts && r.FusionCharts === e || (r = e.ref) && r.FusionCharts && r.FusionCharts === e) && (e._dispose(), r === window[e.id] && (window[e.id] = N)), "undefined" != typeof window[e.id]) return (0, s.raiseError)(e, "25081843", "comp", ".render", new Error("#25081843:IECompatibility() Chart Id is same as a JavaScript variable name. Variable naming error. Please use unique name for chart JS variable, chart-id and container id.")), {
                    state: 1
                };
                if ((t = document.createElement(e.options.containerElementType || "span")).setAttribute("id", e.id), "append" !== c && "prepend" !== c)
                    for (; l.hasChildNodes();) l.removeChild(l.firstChild);
                return "prepend" === c && l.firstChild ? l.insertBefore(t, l.firstChild) : l.appendChild(t), e.options.containerElement = l, e.options.containerElementId = l.id, (a = t.style) && (a.position = R, a.textAlign = P, a.lineHeight = V, a.display = B, a.zoom = j, a["vertical-align"] = H, a.fontWeight = G, a.fontVariant = U, a.fontStyle = z, a.textDecoration = W, a["*DISPLAY"] = X, a.padding = $, a.margin = Y, a.border = q, a.direction = K, a.transform = J), e.options.containerClassName && (t.className = e.options.containerClassName), n = (0, o.normalizeCSSDimension)(e.width, e.height, t), e.__state.renderedWidth = n.pixelWidth, e.__state.renderedHeight = n.pixelHeight, e.__state.rendering = !0, e.renderOpts = {
                    containerElement: t,
                    insertMode: c,
                    callback: u
                }, {
                    state: 3
                }
            }
            de.lastId = 0;
            var ke, Se = function() {
                function e() {
                    var t, n, a = this,
                        i = {},
                        l = e.getDep("vml", "dependency");
                    (this.__state = {}, this.id = o.BLANKSTRING, this._deps = {}, this.__state._unresolvedDeps = {}, this.__state.state = 4, 1 === arguments.length && "object" == typeof(arguments.length <= 0 ? undefined : arguments[0]) && (i = arguments.length <= 0 ? undefined : arguments[0]), arguments.length > 1 && "object" == typeof((t = arguments.length - 1) < 0 || arguments.length <= t ? undefined : arguments[t])) && (0, o.extend2)(i, (n = arguments.length - 1) < 0 || arguments.length <= n ? undefined : arguments[n], !1, !0);
                    this.id = "undefined" == typeof i.id ? de() : i.id, this.args = i, this._parsePolicies(p["default"]), this._attachDefaultEventListeners(), this.jsVars.fcObj = this, (0, s.triggerEvent)("beforeInitialize", this, i), e.items[this.id] instanceof e && (0, s.raiseWarning)(this, "06091847", "param", "", new Error('A FusionCharts object with the specified id "' + this.id + '" already exists.Renaming it to ' + (this.id = de()))), this.attributes.id = this.id, r.p = e.getScriptBaseURI(), l && (this._addChartDependency("chartVmlRendererLoad", {
                        resolve: function() {
                            return l.then((function(t) {
                                var r = t["default"];
                                e.addDep(r), a._addChartDependency("chartVmlRendererLoad", {
                                    resolve: function() {
                                        return {
                                            state: 3
                                        }
                                    }
                                }), a._setState()
                            }))["catch"]((function() {
                                (0, s.raiseError)(e, "162162788", "run", ">RendererError~VMLRendererLoad", "Unable to load FusionCharts VML renderer."), a._addChartDependency("chartVmlRendererLoad", {
                                    resolve: function() {
                                        return {
                                            state: 1
                                        }
                                    }
                                }), a._setState()
                            })), {
                                state: 2
                            }
                        }
                    }), this._setState()), this.chartType && this.chartType(i.type || i.swfUrl || ""), this.setChartData(this.args.dataSource, this.args.dataFormat, N, N, !0), e.items[this.id] = this, e.defaultOptions = e.options, (0, s.triggerEvent)("initialized", this, i), this._setState()
                }
                e.getObjectReference = function(t) {
                    return void 0 === t && (t = ""), e.items[t] && e.items[t].ref
                }, e.register = function() {
                    (0, s.triggerEvent)("register", e, arguments, N, (function() {
                        (0, s.raiseError)(this, "0604111219", "run", ".register()", new Error(se))
                    }))
                }, e.render = function(t, r) {
                    return t instanceof e ? (t.render(r), t) : new e(t).render(r)
                }, e.addDep = function() {
                    for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r];
                    return l.addDep.call.apply(l.addDep, [this].concat(t))
                }, e.getDep = function(e, t) {
                    return l.getDep.call(this, e, t)
                }, e.addEventListener = function(e, t) {
                    return (0, s.addListener)(e, t)
                }, e.on = function(t, r) {
                    return e.addEventListener(t, r)
                }, e.removeEventListener = function(e, t) {
                    return (0, s.removeListener)(e, t)
                }, e.ready = function(t, r, n) {
                    void 0 === r && (r = e), void 0 === n && (n = e);
                    var a = function() {
                        t.call(n, r)
                    };
                    "function" == typeof t && (T ? setTimeout(a, 0) : e.addEventListener("ready", a))
                }, e.formatNumber = function(e, t, r) {
                    void 0 === t && (t = {});
                    var n, a = he(t),
                        i = fe(a);
                    return ie[i] ? n = ie[i] : ie[i] = n = new m["default"](a, {
                        useScaleRecursively: !0
                    }), n.configure(a), n.dataLabels(e, r)
                }, e.transcodeData = function(e, t, r, n) {
                    var a, i, o, c = (0, l.getDepsByType)("transcoder"),
                        u = Z(r),
                        d = Z(t);
                    if (d && "function" == typeof d.toString && u && "function" == typeof u.toString && "undefined" != typeof c[u] && "undefined" != typeof c[d]) return (o = c[d]()).toJSON && (a = o.toJSON(e, this), i = c[u]().fromJSON(a.data, this)), a.error instanceof Error || (i.error = a.error), n ? i : i.data;
                    (0, s.raiseError)(this, "14090217", "param", ".transcodeData()", "Unrecognized data-format specified during transcoding.")
                }, e.setAnimation = function(t) {
                    !e.options._globalAnimationRule && (e.options._globalAnimationRule = []), e.options._globalAnimationRule.push(t)
                }, e.setEasingEffect = function(t, r) {
                    e.getDep("redraphael", "plugin").easing_formulas[t] = r
                }, e.getScriptBaseURI = function() {
                    return e.options.scriptBaseUri
                }, e.setScriptBaseURI = function(t) {
                    e.options.scriptBaseUri = t, r.p = t
                }, e.getChartFromId = function(t) {
                    return e.items[t]
                }, e.getVersion = function(e) {
                    var t = {
                        fcs: D,
                        "fcs-xt": {
                            fc: "3.15.1-sr.1",
                            fw: "3.15.1-sr.1",
                            pc: "3.15.1-sr.1",
                            fm: "3.15.1-sr.1"
                        },
                        ft: "2.1.1"
                    };
                    return t[e] || t["fcs-xt"][e] || t
                };
                var t = e.prototype;
                return t._attachDefaultEventListeners = function() {
                    var e, t, r = this.options.events;
                    if (r)
                        for (e in r) "function" == typeof r[e] && this.addEventListener(e, r[e]);
                    for (t in this.options.renderer = "javascript", u["default"]) this.addEventListener(t, u["default"][t])
                }, t._setState = function() {
                    var e, t, r = this._deps,
                        n = this.__state.state,
                        a = 4;
                    for (var i in r) r.hasOwnProperty(i) && (a > (t = (e = r[i]).getState()) && (a = t, this.__state.currChartMsg = e.getMsg(), this.__state.currChartMsgStyle = e.getMsgStyle()), 3 === t && this._removeChartDependency(i));
                    if (this.__state.prevState = n, this.__state.state = a, n !== a && (0, s.triggerEvent)("stateChanged", this, {
                            prevState: ae[n],
                            state: ae[a]
                        }, [this.id]), !this.containerHidden)
                        if (3 === a && this.__state.renderInvoked && this.__state.isDrawInvoked) {
                            var o = this.renderOpts,
                                l = o.containerElement,
                                c = o.callback;
                            this._renderChart(l, N, c), this._clearPrevContext(), delete this.renderOpts.callback
                        } else if ((2 === a || 1 === a) && this.__state.renderInvoked && this.__state.isDrawInvoked && this._contextChanged() && (!this.__state.renderComplete || 2 !== a)) {
                        var u = this.renderOpts,
                            d = u.containerElement,
                            h = u.callback;
                        this._renderChart(d, "base", 1 === a && h, this.__state.currChartMsg, this.__state.currChartMsgStyle), this._clearPrevContext(), 1 === a && delete this.renderOpts.callback
                    }
                }, t._clearPrevContext = function() {
                    this.__state.prevChartMsg = o.BLANKSTRING, this.__state.prevChartMsgStyle = {}
                }, t._contextChanged = function() {
                    if (this.__state.currChartMsg !== this.__state.prevChartMsg) return this.__state.prevChartMsg = this.__state.currChartMsg, this.__state.prevChartMsgStyle = this.__state.currChartMsgStyle, !0;
                    var e = this.__state.prevChartMsgStyle && this.__state.prevChartMsgStyle.image,
                        t = this.__state.currChartMsgStyle && this.__state.currChartMsgStyle.image,
                        r = this.__state.prevChartMsgStyle && this.__state.prevChartMsgStyle.message,
                        n = this.__state.currChartMsgStyle && this.__state.currChartMsgStyle.message;
                    return !(!e || e.imageHAlign === t.imageHAlign && e.imageVAlign === t.imageVAlign && e.imageAlpha === t.imageAlpha && e.imageScale === t.imageScale && r.color === n.color && r.fontFamily === n.fontFamily && r.fontSize === n.fontSize) && (this.__state.prevChartMsg = this.__state.currChartMsg, this.__state.prevChartMsgStyle = this.__state.currChartMsgStyle, !0)
                }, t._sudoSetState = function(e) {
                    this.__state.prevState = this.__state.state, this.__state.state = e, (0, s.triggerEvent)("stateChanged", this, {
                        prevState: ae[this.__state.prevState],
                        state: ae[this.__state.state]
                    }, [this.id])
                }, t._getState = function() {
                    return ae[this.__state.state]
                }, t._addChartDependency = function(e, t) {
                    this._deps && this._deps[e] && this._removeChartDependency(e), this._deps[e] = t, t.getState = le, t.getMsg = ce, t.getMsgStyle = ue, Object.assign(t, t.resolve(t.scopeOf))
                }, t._removeChartDependency = function(e) {
                    this._deps[e] && (this._deps[e].removed = !0, delete this._deps[e])
                }, t._parsePolicies = function(e) {
                    var t, r, n, a = this.args;
                    for (t in e)
                        if (p["default"][t] instanceof Array) r = a[e[t][0]], this[t] = void 0 === r ? e[t][1] : r;
                        else
                            for (n in "object" != typeof this[t] && (this[t] = {}), e[t]) r = a[e[t][n][0]], this[t][n] = void 0 === r ? e[t][n][1] : r
                }, t.hasRendered = function() {
                    return !(!this.jsVars.hcObj || !this.jsVars.hcObj.hasRendered)
                }, t.setTransparent = function(e) {
                    var t, r = e;
                    (t = this.jsVars) && ("boolean" != typeof r && null !== r && (r = !0), t.transparent = null !== r && !0 === r)
                }, t.addEventListener = function(e, t) {
                    return (0, s.addListener)(e, t, this)
                }, t.on = function(e, t) {
                    return this.addEventListener(e, t)
                }, t.removeEventListener = function(e, t) {
                    return (0, s.removeListener)(e, t, this)
                }, t.formatNumber = function(e, t, r, n) {
                    var a, i, s, l, c, u = this.apiInstance || {},
                        d = u.numberFormatter,
                        h = r;
                    switch (i = fe(h), h = h && he(h) || {}, "" === i ? d ? l = d : (s = fe(a = this.options.dataSource.chart || {}), ie[s] ? l = ie[s] : ie[s] = l = new m["default"](u, a)) : (a = this.options.dataSource.chart || {}, s = fe(a = (0, o.extend2)((0, o.extend2)({}, a), h)), ie[s] ? l = ie[s] : ie[s] = l = new m["default"](u, a)), (t && t.toLowerCase ? t : "").toLowerCase()) {
                        case "yaxisvalues":
                            c = l.yAxis(e, n);
                            break;
                        case "xaxisvalues":
                            c = l.xAxis(e);
                            break;
                        case "scale":
                            c = l.scale(e);
                            break;
                        default:
                            c = l.dataLabels(e, n)
                    }
                    return c
                }, t.clone = function(t, r) {
                    var n = typeof t,
                        a = {},
                        i = r,
                        s = (0, o.extend2)({}, this.args, !1, !0);
                    switch (function(e, t, r) {
                        var n, a;
                        for (n in e)
                            if (e[n] instanceof Array) t[e[n][0]] = r[n];
                            else
                                for (a in e[n]) t[e[n][a][0]] = r[n][a]
                    }(p["default"], s, this), delete s.id, delete s.animate, delete s.stallLoad, a.link = s.link, (s = (0, o.extend2)({}, s, !1, !0)).link = a.link, n) {
                        case "object":
                            (0, o.extend2)(s, t, !1, !0);
                            break;
                        case "boolean":
                            i = t
                    }
                    return i ? s : new e(s)
                }, t.isActive = function() {
                    if (!this.ref || window.document.getElementById(this.id) !== this.ref) return !1;
                    try {
                        return I.test("FusionCharts")
                    } catch (e) {
                        return !1
                    }
                }, t.chartType = function(t, r) {
                    var n, a = r,
                        i = this.options;
                    if ("string" == typeof t && "" !== t) {
                        if (a = "object" == typeof a ? a : {}, n = t.replace(/[\?\#][\s\S]*$/g, ""), i.chartType = n.replace(/^[\s\S]*\//gi, ""), i.chartTypeSourcePath = -1 === n.indexOf("/") ? a.chartTypeSourcePath || e.options.chartTypeSourcePath || "" : n.replace(/[^\/]*?$/gi, ""), "zoomscatter" === i.chartType && !document.createElement("canvas").getContext) {
                            var l = me(this),
                                c = l.msgStyle,
                                u = l.msg;
                            return this._addChartDependency("chartModuleLoad", {
                                scopeOf: this,
                                opts: {
                                    value: i.chartType
                                },
                                resolve: function() {
                                    return {
                                        state: 1,
                                        msgStyle: c,
                                        msg: u
                                    }
                                }
                            }), void this._setState()
                        }
                        if (("timeseries" === i.chartType || "chord" === i.chartType || "sankey" === i.chartType) && o.isIE) {
                            var d = me(this),
                                h = d.msgStyle,
                                f = d.msg;
                            return this._addChartDependency("chartModuleLoad", {
                                scopeOf: this,
                                opts: {
                                    value: i.chartType
                                },
                                resolve: function() {
                                    return {
                                        state: 1,
                                        msgStyle: h,
                                        msg: f
                                    }
                                }
                            }), void this._setState()
                        }(0, s.triggerEvent)("resourceRequested", this), this._addChartDependency("chartModuleLoad", {
                            scopeOf: this,
                            opts: {
                                value: i.chartType
                            },
                            resolve: Ce
                        }), "undefined" != typeof a.dataSource && null !== a.dataSource && this.setChartData(a.dataSource, a.dataFormat, a.dataConfiguration), this._setState()
                    } else if (t !== N) {
                        var g = pe(this),
                            p = g.msgStyle,
                            m = g.msg;
                        return this._addChartDependency("chartModuleLoad", {
                            resolve: function() {
                                return {
                                    state: 1,
                                    msgStyle: p,
                                    msg: m
                                }
                            }
                        }), this._setState(), void(0, s.triggerEvent)("charttypeinvalid", this, {}, [this.id])
                    }
                    return (i.chartType || "").toLowerCase()
                }, t.setChartDataUrl = function(e, t, r, n, a) {
                    var i = e || "";
                    this._addChartDependency("data", {
                        scopeOf: this,
                        opts: {
                            url: i,
                            format: t,
                            config: r,
                            callback: n,
                            silent: a
                        },
                        resolve: ye
                    }), this._setState()
                }, t.setChartData = function(e, t, r, n, a) {
                    void 0 === a && (a = !0);
                    var i, o = e,
                        s = t;
                    if (null != o) {
                        if ("string" != typeof s) switch (typeof o) {
                            case "function":
                                o = o.call(this, this.options.dataConfiguration), s = this.args.dataFormat = "JSON";
                                break;
                            case "string":
                                s = this.args.dataFormat = /^\s*?\{[\s\S]*\}\s*?$/g.test(s) ? "JSON" : "XML";
                                break;
                            case "object":
                                s = this.args.dataFormat = "JSON"
                        }
                    } else s = "json";
                    "xml" === (i = Z(s)) && this.apiInstance && this.apiInstance.config && this.apiInstance.config.isXMLUnsupported || (O.test(i) ? this.setChartDataUrl(o, i, r, n, a) : (this._addChartDependency("data", {
                        opts: {
                            data: o,
                            sanitisedFormat: i,
                            config: r,
                            callback: n,
                            silent: a
                        },
                        scopeOf: this,
                        resolve: be
                    }), !this.disposed && this._setState()))
                }, t.getChartData = function(e, t, r) {
                    var n, a, i = e || "json",
                        s = Z(null === i ? "json" : i),
                        c = (0, l.getDepsByType)("transcoder")[s](),
                        u = this.options,
                        d = this.apiInstance,
                        h = !r && (n = d && d.getCollatedData && d.getCollatedData(u.dataSource)) ? n : u.dataSource;
                    return "xml" === s && d && d.config && d.config.isXMLUnsupported ? o.BLANKSTRING : (!(a = c ? c.fromJSON ? c.fromJSON(h, this) : {
                        error: new Error("Unable to convert data.")
                    } : {
                        error: new Error("Data format not recognized.")
                    }).error && u.error && (a.error = u.error), t ? a : a.data)
                }, t.dataReady = function(e) {
                    return e ? this.__state.dataAvailable : this.__state.dataReady
                }, t.setChartAttribute = function(e, t) {
                    var r, n, a, i, s = e;
                    if ("string" == typeof s)(s = {})[arguments[0]] = t;
                    else if (null === s || "object" != typeof s) return;
                    for (n in i = 0, (a = (r = this.getChartData("json")).chart || r.graph || r.map) || (a = {}, r = Object.assign({
                            chart: a
                        }, r)), s) i += 1, null !== s[n] ? a[n.toLowerCase()] = s[n] : delete a[n.toLowerCase()];
                    i > 0 && ("undefined" == typeof a.animation && (a.animation = o.ZEROSTRING), this.setChartData(r, "json"))
                }, t.getChartAttribute = function(e) {
                    var t, r, n = this.getChartData("json"),
                        a = n && (n.chart || n.graph || n.map);
                    if (0 === arguments.length || void 0 === e || void 0 === a || null === e) return a;
                    if ("string" == typeof e) t = a[e.toString().toLowerCase()];
                    else if (e instanceof Array)
                        for (t = {}, r = 0; r < e.length; r += 1) t[e[r]] = a[e[r].toString().toLowerCase()];
                    else(0, s.raiseError)(this, "25081429", "param", "~getChartAttribute()", 'Unexpected value of "attribute"');
                    return t
                }, t.render = function(e, t, r) {
                    var n = e || N,
                        a = t || N,
                        i = r || N;
                    return this.disposed || (this.__state.beforeRenderFired = !1, this._addChartDependency("chartContainer", {
                        scopeOf: this,
                        opts: {
                            containerElement: n,
                            insertMode: a,
                            callback: i
                        },
                        resolve: _e
                    }), this.__state.renderInvoked = !0, this.__state.isDrawInvoked = !0), this._setState(), this
                }, t._renderChart = function(e, t, r, n, a, i) {
                    if (void 0 === i && (i = !1), !this.disposed) {
                        var o, l = this,
                            c = function() {
                                !0 !== l.disposed && l._render(e, t, r && function() {
                                    if (r) try {
                                        r.call(l, l.options.containerElement)
                                    } catch (e) {
                                        setTimeout((function() {
                                            throw e
                                        }))
                                    }
                                }, n, a)
                            };
                        return i || this.__state.beforeRenderFired ? c() : (this.__state.beforeRenderFired = !0, (0, s.triggerEvent)("beforeRender", this, o = {
                            container: l.options.containerElement,
                            width: this.width,
                            height: this.height,
                            renderer: this.options.renderer
                        }, N, c, (function() {
                            (0, s.triggerEvent)("renderCancelled", l, o), this.__state.renderInvoked = !1
                        }))), this
                    }
                }, t._render = function(t, r, n, a, i) {
                    var o = this;
                    o.apiInstance && o.apiInstance.removeJob("resizeScheduled"), o.__state.beforedrawFired ? ((0, d["default"])(e, o, t, r, n, a, i), o.__state.beforedrawFired = !0) : (0, s.triggerEvent)("beforedraw", o, {}, N, (function() {
                        (0, d["default"])(e, o, t, r, n, a, i)
                    }), (function() {
                        (0, s.triggerEvent)("drawCancelled", o), this.__state.isDrawInvoked = !1
                    }))
                }, t.resizeTo = function(e, t, r) {
                    var n = this,
                        a = n.width,
                        i = n.height,
                        o = n.__state,
                        l = r,
                        c = t,
                        u = e;
                    return (n.apiInstance && n.apiInstance.config || {}).resize = !0, null !== u && "object" == typeof u && (l = c, c = u.h, u = u.w), u = null == u ? a : u.toString().replace(L, ""), c = null == c ? i : c.toString().replace(L, ""), !0 !== l && (0, s.triggerEvent)("beforeresize", n, {
                        currentWidth: a,
                        currentHeight: i,
                        newWidth: u,
                        newHeight: c
                    }, N, (function() {
                        n.width = u, n.height = c, n.scheduleResize({
                            width: u,
                            height: c
                        }), n.apiInstance && n.apiInstance.addJob("resized" + re++, (function() {
                            (0, s.triggerEvent)("resized", n, {
                                id: n.id,
                                width: n.width,
                                height: n.height,
                                prevWidth: a,
                                prevHeight: i,
                                pixelWidth: n.ref && n.ref.offsetWidth || 0,
                                pixelHeight: n.ref && n.ref.offsetHeight || 0,
                                originalWidth: o.renderedWidth,
                                originalHeight: o.renderedHeight
                            })
                        }), f.priorityList.postRender)
                    }), (function() {
                        (0, s.triggerEvent)("resizecancelled", n, {
                            currentWidth: a,
                            currentHeight: i,
                            cancelledTargetWidth: u,
                            cancelledTargetHeight: c
                        })
                    })), this
                }, t.dispose = function() {
                    var t = this,
                        r = {},
                        n = function(t) {
                            for (var n in t._dispose(), t._addChartDependency("dispose", {
                                    resolve: function() {
                                        return {
                                            state: 0
                                        }
                                    }
                                }), t._setState(), (0, s.triggerEvent)("disposed", t, r), (0, s.disposeEvents)(t), delete e.items[t.id], t) t.hasOwnProperty(n) && delete t[n];
                            return t.disposed = !0, {
                                state: 0
                            }
                        };
                    (0, s.triggerEvent)("beforeDispose", t, r, N, (function() {
                        t._addChartDependency("dispose", {
                            scopeOf: t,
                            resolve: n
                        })
                    }), (function() {
                        (0, s.triggerEvent)("disposeCancelled", t, r)
                    }))
                }, t._dispose = function() {
                    var e, t = this.jsVars;
                    this.apiInstance && (this.apiInstance.removeJob("resizeScheduled"), this.apiInstance.remove({
                        instant: !0
                    }), delete this.apiInstance, delete t.instanceAPI), (e = window[this.id]) && (! function r(e) {
                        var t, n, a, i = e.attributes;
                        if (i)
                            for (t = i.length - 1; t >= 0; t -= 1) "function" == typeof e[a = i[t].name] && (e[a] = null);
                        if (i = e.childNodes)
                            for (n = i.length, t = 0; t < n; t += 1) r(e.childNodes[t])
                    }(e), e.parentNode && e.parentNode.removeChild(e)), t.container = null
                }, t._config = function(e, t) {
                    var r, n, a = e,
                        i = this,
                        o = i.jsVars,
                        s = o.msgStore,
                        l = o.cfgStore,
                        c = i.options;
                    for (r in n = {
                            LoadingText: "loadMessage",
                            ChartNotSupported: "typeNotSupportedMessage",
                            RenderChartErrorText: "renderErrorMessage",
                            XMLLoadingText: "dataLoadStartMessage",
                            ChartNoDataText: "dataEmptyMessage",
                            LoadDataErrorText: "dataLoadErrorMessage",
                            InvalidXMLText: "dataInvalidMessage"
                        }, "string" == typeof a && arguments.length > 1 && (r = a, (a = {})[r] = t), a) "undefined" != typeof s[r] ? s[r] = a[r] : l[r.toLowerCase()] = a[r], n[r] ? c[n[r]] = a[r] : c[r] = a[r]
                }, t.configure = function(e, t) {
                    var r;
                    e && ("string" == typeof e ? (r = {})[e] = t : r = e, this._config(r))
                }, t.print = function(e) {
                    var t = this.apiInstance,
                        r = (0, o.extend2)({}, e);
                    if (t.config.isPrinting || !t.config.hasRendered) return !1;
                    (0, s.triggerEvent)("BeforePrint", this, r, N, (function() {
                        var e, n, a, i, l = t.getFromEnv("chart-container"),
                            c = [],
                            u = l.parentNode,
                            d = document.body || document.getElementsByTagName("body")[0],
                            h = d.childNodes;
                        if (t.config.isPrinting = !0, (0, o.fcEach)(h, (function(e, t) {
                                1 === e.nodeType && (c[t] = e.style.display, e.style.display = "none")
                            })), !1 !== r.hideButtons && (i = t.getChildren("chartMenuBar")))
                            for (a = 0, e = (n = i[0].getChildren("tool")).length; a < e; a++) n[0].getChildren("listContainer")[0].hide();
                        d.appendChild(l), window.print(), setTimeout((function() {
                            u.appendChild(l), (0, o.fcEach)(h, (function(e, t) {
                                1 === e.nodeType && (e.style.display = c[t])
                            })), r.hideButtons, t.config.isPrinting = !1, (0, s.triggerEvent)("PrintComplete", t.getFromEnv("chartInstance"), r)
                        }), 1e3)
                    }), (function() {
                        (0, s.triggerEvent)("PrintCancelled", t.getFromEnv("chartInstance"), r)
                    }))
                }, t.getSVGString = function(e, t) {
                    var r, n = this.apiInstance,
                        a = n && n.getFromEnv("paper");
                    if (t && t.keepImages && (r = !0), "function" != typeof e) return a && a.toSVG ? a.toSVG(r) : "<svg></svg>";
                    n.addJob("getSVG", (function() {
                        e(a && a.toSVG && a.toSVG(r))
                    }), f.priorityList.postRender)
                }, t.lockResize = function(e) {
                    return "boolean" != typeof e ? !!this.jsVars.resizeLocked : this.jsVars.resizeLocked = e
                }, t.showChartMessage = function(e, t, r, n) {
                    var a = e || N,
                        i = t || N,
                        o = r || N,
                        s = n || {},
                        l = this,
                        c = l.apiInstance,
                        u = function() {
                            l._showChartMessage(a, i, o, s)
                        };
                    return c && ("base" === c.getName() ? l.addEventListener("renderComplete", u) : u()), a
                }, t._showChartMessage = function(e, t, r, n) {
                    void 0 === n && (n = {});
                    var a, i = this,
                        s = e,
                        l = i.jsVars,
                        c = i.apiInstance,
                        u = i.options;
                    c._hideChartMessage(), void 0 !== s ? (a = {
                        fontFamily: (0, o.pluck)(n.font, u.baseChartMessageFont, "Verdana,sans"),
                        fontSize: (0, o.pluck)(n.fontSize, u.baseChartMessageFontSize, 10),
                        color: (0, o.pluck)(n.color && (0, o.convertColor)(n.color, n.alpha), u.baseChartMessageColor)
                    }, l.msgStore[s] && (s = l.msgStore[s]), c.addJob("showMsg", (function() {
                        t && c && c.config.hasRendered ? (c._show && c._show(), i.showMessage(s, a, r)) : (c._hide && c._hide(), c.setChartMessage(s, {
                            _chartMessageStyle: a
                        }), c.drawChartMessage())
                    }), f.priorityList.postRender)) : i.hideChartMessage()
                }, t._resize = function() {
                    var e = this.apiInstance,
                        t = this.jsVars.container;
                    this.__state.resize = !0, e ? (e.config.elScroll = !1, e.getFromEnv("animationManager").setAnimationState("resize"), e.addToEnv("chartWidth", t.offsetWidth), e.addToEnv("chartHeight", t.offsetHeight), this._addChartDependency("resize", {
                        resolve: function() {
                            return {
                                state: 3
                            }
                        }
                    })) : this._addChartDependency("resize", {
                        resolve: function() {
                            return {
                                state: 1
                            }
                        }
                    }), this._setState(), this.__state.resize = !1
                }, t.hideChartMessage = function() {
                    var e = this.apiInstance;
                    e._hideChartMessage(), e._show && e._show()
                }, t.showMessage = function(e, t, r) {
                    void 0 === e && (e = "");
                    var n, a, i, s = this.apiInstance,
                        l = s.config,
                        c = s.getFromEnv("paper"),
                        u = s.getFromEnv("smartLabel"),
                        d = s.getFromEnv("animationManager"),
                        h = s.getGraphicalElement("messageText"),
                        f = s.getGraphicalElement("messageVeil"),
                        g = c.width,
                        p = c.height;
                    a = s.getChildContainer("messageGroup"), d.setAnimationState("showmessage"), (n = d.setAnimation({
                        el: a || "group",
                        attr: {
                            name: "messageGroup"
                        },
                        component: s,
                        label: "group"
                    })).show().toFront(), a || s.addChildContainer("messageGroup", n), (f = d.setAnimation({
                        el: f || "rect",
                        attr: {
                            x: 0,
                            y: 0,
                            width: g,
                            height: p,
                            fill: "rgba(0,0,0,0.2)",
                            stroke: "none"
                        },
                        container: n,
                        component: s,
                        label: "rect"
                    })).off("fc-click", n.hide), f.show().toFront().attr("cursor", r ? o.POINTER : "default"), r && f.on("fc-click", s._hideChartMessage, s), s.addGraphicalElement("messageVeil", f), u.setStyle(t), i = u.getSmartText(e, g - (l.marginRight || 0) - (l.marginLeft || 0), p - (l.marginTop || 0) - (l.marginBotton || 0)), (h = d.setAnimation({
                        el: h || "text",
                        attr: {
                            "font-size": t.fontSize,
                            "font-family": t.fontFamily,
                            fill: t.color,
                            text: i.text,
                            "line-height": 14,
                            x: g / 2,
                            y: p / 2
                        },
                        container: n,
                        component: s,
                        label: "text"
                    })).attr("cursor", r ? o.POINTER : "default")[r ? "click" : "unclick"](s._hideChartMessage, s).show().toFront(), s.addGraphicalElement("messageText", h)
                }, t.scheduleResize = function(e) {
                    var t, r = this,
                        n = r.ref;
                    n && (r._addChartDependency("resize", {
                        resolve: function() {
                            return {
                                state: 2
                            }
                        }
                    }), r.apiInstance.addJob("resizeScheduled", (function() {
                        t = (0, o.normalizeCSSDimension)(e.width, e.height, n), "undefined" != typeof e.width && (n.style.width = t.width), "undefined" !== e.height && (n.style.height = t.height), r._resize()
                    }), f.priorityList.instant))
                }, e
            }();
            Se.id = "FusionCharts", Se.options = {
                html5ScriptNameSuffix: ".js",
                html5ScriptNamePrefix: "fusioncharts.",
                "export": {
                    useCanvas: !1
                },
                scriptBaseUri: (ke = function(e) {
                    var t, r, n = window.document.getElementsByTagName("script"),
                        a = n.length;
                    for (r = 0; r < a; r += 1)
                        if (null != (t = n[r].getAttribute("src")) && null !== t.match(e)) return t.replace(e, "$1")
                }(F), void 0 === ke ? ((0, s.raiseError)(Se, "1603111624", "run", ">GenericRuntime~scriptBaseUri", "Unable to locate FusionCharts script source location (URL)."), "") : ke)
            }, r.p = Se.getScriptBaseURI(), Se.version = D.split(/[\.\-]/g), Se.items = {}, (0, s.setRootSender)(Se), T = !1, o.hasSVG || Se.addDep({
                name: "vml",
                type: "dependency",
                extension: r.e(15).then(r.t.bind(null, 1200, 7))
            }), setTimeout((function() {
                T = !0, (0, s.triggerEvent)("ready", Se, {
                    version: Se.version,
                    now: !0
                })
            }), 1), Se.addEventListener("dependencyAdded", (function(e, t) {
                if ("maps" === t.type) {
                    var r = {};
                    r[t.name] = ["fusioncharts.maps.js"], Se.getDep("dependency") || Se.addDep({
                        name: "dependency",
                        extension: r
                    })
                }
            })), Se.addEventListener("initialized", (function Ne() {
                Se.removeEventListener("initialized", Ne), M = new h["default"](document.body || document.getElementsByTagName("body")[0]), d.globalStore.addToEnv("smartLabel", M)
            })), Se.addDep(g["default"]), Se.addDep(v["default"]), Se.addDep(C["default"]), Se.addDep(b["default"]), Se.addDep(y["default"]), Se.addDep(x["default"]), Se.addDep(w["default"]);
            var Ee = Se;
            t["default"] = Ee
        }, function(e, t) {
            e.exports = function(e) {
                if (e && e.__esModule) return e;
                var t = {};
                if (null != e)
                    for (var r in e)
                        if (Object.prototype.hasOwnProperty.call(e, r)) {
                            var n = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(e, r) : {};
                            n.get || n.set ? Object.defineProperty(t, r, n) : t[r] = e[r]
                        }
                return t["default"] = e, t
            }
        }, function(e, t) {
            e.exports = function(e, t, r) {
                return t in e ? Object.defineProperty(e, t, {
                    value: r,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                }) : e[t] = r, e
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.isInterActiveEvt = function(e) {
                return !!be[e]
            }, t.addInterActiveEvtName = function(e) {
                e && e.toLowerCase && (be[e.toLowerCase()] = !0)
            }, t.getMouseCoordinate = function(e, t, r) {
                var n, a, i, o, s, l = T.webkitIsFullScreen || T.mozFullScreen || T.msFullscreenElement || T.fullscreenElement,
                    u = {
                        scaleX: 1,
                        scaleY: 1
                    },
                    f = de(ke(t)),
                    g = l ? f.clientX : f.pageX,
                    p = l ? f.clientY : f.pageY,
                    m = r && r.config || {},
                    v = t.type,
                    b = m && m.itemFixed,
                    y = (0, c["default"])(m.applycsstransform, 0),
                    x = b ? k.pageYOffset || k.scrollY || T.documentElement.scrollTop : 0,
                    w = b ? k.pageXOffset || k.scrollX || T.documentElement.scrollLeft : 0;
                m.elScroll && m.posOb && !y ? s = m.posOb : (m.elScroll = !0, s = Ce(e), m.posOb = s);
                "touchend" === v ? (isNaN(g) && (g = d), isNaN(p) && (p = h)) : "touchmove" !== v && "touchstart" !== v || (d = g, h = p);
                n = g - s.left - w, a = p - s.top - x, y && (u = _e(r.getFromEnv("chart-container")), i = u.scaleX, o = u.scaleY, i && (n /= i), o && (a /= o));
                return {
                    chartX: n,
                    chartY: a,
                    pageX: g,
                    pageY: p,
                    clientX: f.clientX,
                    clientY: f.clientY
                }
            }, t.getScalingValue = _e, t.getTouchEvent = ke, t.imprint = function(e, t, r) {
                var n, a = e;
                if ("object" != typeof a || null === a) return a = t, t;
                if ("object" != typeof t || null === t) return a;
                for (n in t)(a[n] === u || !r && null === a[n]) && (a[n] = t[n]);
                return a
            }, t.pluck = Me, t.getFirstDefinedValue = function() {
                var e, t, r;
                for (t = 0, r = arguments.length; t < r; t += 1)
                    if ((e = arguments[t]) || !1 === e || 0 === e || "" === e) return e;
                return u
            }, t.hashify = function(e) {
                return e && e.replace(/^#?([a-f0-9]+)/gi, "#$1") || "none"
            }, t.dehashify = function(e) {
                return e && e.replace(/^#?([a-f0-9]+)/gi, "$1") || "none"
            }, t.getComparatorFN = function(e, t) {
                if (e) return t ? function(e, r) {
                    return e[t] - r[t]
                } : Re;
                return t ? function(e, r) {
                    return r[t] - e[t]
                } : Pe
            }, t.pluckFontSize = function() {
                var e, t, r;
                for (t = 0, r = arguments.length; t < r; t += 1)
                    if (((e = arguments[t]) || !1 === e || 0 === e) && !isNaN(e = Number(e))) return e < 1 ? 1 : e;
                return 1
            }, t.getValidValue = Ne, t.getPosition = Ce, t.bindSelectionEvent = function(e, t) {
                var r = t || {},
                    n = e.config,
                    a = e.getFromEnv("chart-container"),
                    s = n.zoomType,
                    l = (0, o["default"])({}, r.attr || {}),
                    u = l["stroke-width"] = (0, c["default"])(l.strokeWidth, l["stroke-width"], 1),
                    d = e.eventListeners || (e.eventListeners = []),
                    h = Ce(a);
                r = (0, o["default"])({
                    chart: e,
                    zoomX: /x/.test(s),
                    zoomY: /y/.test(s),
                    canvasY: n.canvasTop,
                    canvasX: n.canvasLeft,
                    canvasW: n.canvasWidth,
                    canvasH: n.canvasHeight,
                    canvasX2: n.canvasLeft + n.canvasWidth,
                    canvasY2: n.canvasTop + n.canvasHeight,
                    strokeWidth: u,
                    chartPosLeft: h.left,
                    chartPosTop: h.top,
                    attr: l
                }, r), l.stroke = Ae(l.stroke, "rgba(51,153,255,0.8)"), l.fill = Ae(l.fill, "rgba(185,213,241,0.3)"), a && (i["default"].unlisten(a, "pointerdrag", Se), d.push(i["default"].listen(a, "pointerdrag", Se, r)));
                n.link && (i["default"].unlisten(e.getFromEnv("chart-container"), "mouseup mousedown", Ee), d.push(i["default"].listen(e.getFromEnv("chart-container"), "mouseup mousedown", Ee, r)))
            }, t.fcEach = function(e, t, r, n) {
                var a, i = r,
                    o = n;
                i || (i = e);
                o || (o = {});
                if (ue(e)) {
                    for (a = 0; a < e.length; a += 1)
                        if (!1 === t.call(i, e[a], a, e, o)) return a
                } else if (null !== e && e !== u)
                    for (a in e)
                        if (!1 === t.call(i, e[a], a, e, o)) return a
            }, t.getDefinedColor = function(e, t) {
                return e || 0 === e || "" === e ? e : t
            }, t.getFirstValue = Ae, t.getColorCodeString = function(e, t) {
                var r, n, a = "",
                    i = 0,
                    o = t.split(",");
                for (n = o.length; i < n; i += 1) 2 === (r = o[i].split("-")).length ? "-1" !== r[0].indexOf("dark") ? a += (0, s.getLightColor)(e, 100 - parseInt(r[1], 10)) + "," : a += (0, s.getDarkColor)(e, 100 - parseInt(r[1], 10)) + "," : a += o[i] + ",";
                return a.substring(0, a.length - 1)
            }, t.clampNumber = function(e, t, r) {
                void 0 === t && (t = -Infinity);
                void 0 === r && (r = Infinity);
                if (e <= t) return t;
                if (e >= r) return r;
                return e
            }, t.fastTrim = function(e) {
                var t = e.replace(/^\s\s*/, ""),
                    r = t.length;
                for (;
                    /\s/.test(t.charAt(r -= 1)););
                return t.slice(0, r + 1)
            }, t.parseUnsafeString = function(e, t) {
                void 0 === t && (t = !0);
                var r = -1;
                if ("string" == typeof e) return t ? e.replace(/<|>|\'|\"/g, (function(e, t, n) {
                    switch (e) {
                        case "<":
                            return /^<br\s*[\/]?>/gi.test(n.slice(t, n.length)) ? (r = t, e) : "&lt;";
                        case ">":
                            return r >= 0 && /<br\s*[\/]?>$/gi.test(n.slice(r, t + 1)) ? (r = -1, e) : "&gt;";
                        case '"':
                            return "&#034;";
                        case "'":
                            return "&#039;"
                    }
                })).replace(G, "<br />") : e.replace(G, "<br />");
                return ""
            }, t.toPrecision = Ie, t.regescape = function(e) {
                return e && e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
            }, t.regReplaceEscape = Te, t.getImageURL = function(e) {
                var t = {
                        image: !1
                    },
                    r = e;
                r !== u && (r = r.replace(/^\s+/, "").replace(/\s+$/, ""), /^i\s*[\-]\s*/i.test(r) ? (t.image = !0, t.string = r.replace(/^i\s*[\-]\s*/i, "")) : t.string = r.replace(/^\\/, ""));
                return t
            }, t.getCripValues = t.getCrispValue = function(e, t, r) {
                var n = r % 2 / 2,
                    a = Y(e + n) - n,
                    i = Y(e + t + n) - n - a;
                return {
                    position: a,
                    distance: i
                }
            }, t.stableSort = function(e, t) {
                var r, n = e.length;
                for (r = 0; r < n; r++) e[r].ssI = r;
                for (e.sort((function(e, r) {
                        var n = t(e, r);
                        return 0 === n ? e.ssI - r.ssI : n
                    })), r = 0; r < n; r++) delete e[r].ssI
            }, t.getLinkAction = function(e, t) {
                return function(r) {
                    if (!r || !t.config.clickURLOverridesPlotLinks) {
                        var n, a, i, o, s, l, d, h, f, g, p = e.chart || e.map || {},
                            m = (0, c["default"])(p.unescapelinks, 1),
                            v = this.entity || u,
                            b = this.entityBox || u,
                            y = this.link,
                            x = y;
                        if (y !== u) {
                            switch (m && (y = k.decodeURIComponent ? k.decodeURIComponent(y) : k.unescape(y)), -1 !== (y = y.replace(/^\s+/, "").replace(/\s+$/, "")).search(/^[a-z]*\s*[\-\:]\s*/i) && (g = (s = y.split(/\s*[\-\:]\s*/)[0].toLowerCase()).length), r && (t.config.hotElemClicked = !0), s) {
                                case "j":
                                case "javascript":
                                    Fe(y);
                                    break;
                                case "n":
                                    y.replace(/^n\s*\-/i, "n-"), k.open(y.slice(2));
                                    break;
                                case "f":
                                    -1 !== (n = (y = y.replace(/^f\s*\-/i, "f-")).indexOf("-", 2)) ? (a = y.substr(2, n - 2)) && k.frames[a] ? k.frames[a].location = y.slice(n + 1) : k.open(y.slice(n + 1), a) : k.open(y.slice(2));
                                    break;
                                case "p":
                                    n = (y = y.replace(/p\s*\-/i, "p-")).indexOf("-", 2), i = y.indexOf(",", 2), -1 === n && (n = 1), o = y.slice(n + 1), (f = k.open(o, y.substr(2, i - 2), y.substr(i + 1, n - i - 1))) && f.focus();
                                    break;
                                case "newchart":
                                case "newmap":
                                    switch (":" === y.charAt(g) && (n = y.indexOf("-", g + 1), h = y.substring(g + 1, n), g = n), n = y.indexOf("-", g + 1), l = y.substring(g + 1, n).toLowerCase()) {
                                        case "xmlurl":
                                        case "jsonurl":
                                            d = y.substring(n + 1, y.length);
                                            break;
                                        case "xml":
                                        case "json":
                                            d = function(e, t) {
                                                var r, n = {
                                                        chart: {}
                                                    },
                                                    a = t,
                                                    i = e.toLowerCase();
                                                if (a.linkeddata)
                                                    for (r = 0; r < a.linkeddata.length; r += 1) a.linkeddata[r].id.toLowerCase() === i && (n = a.linkeddata[r].linkedchart || a.linkeddata[r].linkedmap);
                                                return n
                                            }(y.substring(n + 1, y.length), e), l = "json"
                                    }
                                    t.fireChartInstanceEvent("linkedChartInvoked", {
                                        alias: h,
                                        linkType: l.toUpperCase(),
                                        data: d,
                                        clickedEntity: v,
                                        clickedEntityBox: b
                                    });
                                    break;
                                default:
                                    k.location.href = y
                            }
                            t.fireChartInstanceEvent("linkClicked", {
                                linkProvided: x,
                                linkInvoked: y,
                                linkAction: s && s.toLowerCase()
                            })
                        }
                    }
                }
            }, t.setImageDisplayMode = function(e, t, r, n, a, i, o, s) {
                var c = s.width * (n / 100),
                    u = s.height * (n / 100),
                    d = i - 2 * a,
                    h = o - 2 * a;
                return (0, l.getAlignImage)(t, r, e, c, u, i, o, a, d, h)
            }, t.setLineHeight = Oe, t.parsexAxisStyles = function(e, t, r, n, a) {
                var i, o = Ae(e.labelbordercolor, t.bordercolor, r.labelbordercolor, ""),
                    l = Me(e.labelbgcolor, t.bgcolor, r.labelbgcolor),
                    u = (0, c["default"])(e.labelborderthickness, t.borderthickness, r.labelborderthickness, 1),
                    d = (0, c["default"])(r.usedataplotcolorforlabels, 0) && a || n.color;
                return o = o ? (0, s.convertColor)(o, (0, c["default"])(e.labelborderalpha, t.borderalpha, r.labelborderalpha, e.labelalpha, t.alpha, r.labelalpha, 100)) : "", (i = {
                    fontFamily: Me(e.labelfont, t.font, r.labelfont, n.fontFamily),
                    fontSize: Me(e.labelfontsize, t.fontsize, r.labelfontsize, parseInt(n.fontSize, 10)) + "px",
                    color: (0, s.convertColor)(Me(e.labelfontcolor, t.fontcolor, r.labelfontcolor, d), (0, c["default"])(e.labelfontalpha, t.fontalpha, r.labelfontalpha, e.labelalpha, t.alpha, r.labelalpha, 100)),
                    fontWeight: (0, c["default"])(e.labelfontbold, t.fontbold, r.labelfontbold) ? "bold" : "normal",
                    fontStyle: (0, c["default"])(e.labelfontitalic, t.fontitalic, r.labelfontitalic) ? "italic" : "normal",
                    border: o || l ? u + "px solid" : "",
                    borderColor: o,
                    borderThickness: u,
                    borderPadding: (0, c["default"])(e.labelborderpadding, t.borderpadding, r.labelborderpadding, 2),
                    borderRadius: (0, c["default"])(e.labelborderradius, t.borderradius, r.labelborderradius, 0),
                    backgroundColor: l ? (0, s.convertColor)(l, (0, c["default"])(e.labelbgalpha, t.bgalpha, r.labelbgalpha, e.labelalpha, t.alpha, r.labelalpha, 100)) : "",
                    borderDash: (0, c["default"])(e.labelborderdashed, t.borderdashed, r.labelborderdashed, 0) ? Le((0, c["default"])(e.labelborderdashlen, t.borderdashlen, r.labelborderdashlen, 4), (0, c["default"])(e.labelborderdashgap, t.borderdashgap, r.labelborderdashgap, 2)) : "none"
                }).lineHeight = Oe(i), i
            }, t.getDashStyle = Le, t.componentDispose = function Ve() {
                var e, t, r, n, a, i, o, s, l, c, u, d;
                if (this && this !== k) {
                    if (this.disposing = !0, e = this.components)
                        for (r in e)
                            if ((t = e[r]) instanceof Array)
                                for (n = t.length, a = 0; a < n; a++)(d = t[a]) && !this.disposing && (d.dispose ? d.dispose() : Ve.call(d));
                            else t && !t.disposing && (t.dispose ? t.dispose() : Ve.call(t));
                    for (s in i = this.graphics)
                        if (o = i[s])
                            if (o.hide) o.hide(), o.followers && o.followers[0] && (u = o.followers[0].el) && u.hide && u.hide();
                            else
                                for (l in o)(c = o[l]).hide && c.hide();
                    for (r in this) delete this[r]
                }
            }, t.executeJS = De, t.pseudoEval = Fe, t.getContainerBackgroundColor = function(e) {
                var t = e.options,
                    r = t.containerBackgroundColor,
                    n = t.containerBackgroundOpacity;
                we(e.jsVars.transparent) ? n = e.jsVars.transparent ? 0 : 1 : (n = parseFloat(n)) < 0 ? n = 0 : n > 1 && (n = 1);
                r || (r = "#FFFFFF");
                if (F && !M) return n ? r : "transparent";
                return r = r.replace(/^#?([a-f0-9]+)/gi, "$1"), (r = (0, s.HEXtoRGB)(r))[3] = n.toString(), "rgba(" + r.join(",") + ")"
            }, t.capitalizeString = function(e, t) {
                return e ? e.replace(t ? /(^|\s)([a-z])/g : /(^|\s)([a-z])/, (function(e, t, r) {
                    return t + r.toUpperCase()
                })) : e
            }, t.pInt = function(e, t) {
                return parseInt(e, t || 10)
            }, t.defined = we, t.trimString = function(e) {
                var t = e.replace(/^\s\s*/, ""),
                    r = t.length;
                for (;
                    /\s/.test(t.charAt(r -= 1)););
                return t.slice(0, r + 1)
            }, t.getSuggestiveRotation = function() {
                var e, t, r, n;
                e = arguments[0], 1 === arguments.length ? (t = e.angle, r = e.x, n = e.y) : (t = e, r = arguments[1], n = arguments[2]);
                return "r" + (t = t || 0) + "," + r + "," + n
            }, t.normalizeCSSDimension = function(e, t, r) {
                var n, a = void 0 === e ? r.offsetWidth || parseFloat(r.style.width) : e,
                    i = void 0 === t ? r.offsetHeight || parseFloat(r.style.height) : t,
                    o = {},
                    s = r.style;
                if (s.width = a = a.toString ? a.toString() : "0", s.height = i = i.toString ? i.toString() : "0", (o.widthIsRelative = a.match(/^\s*\d*\.?\d*\%\s*$/) && !a.match(/^\s*0\%\s*$/)) && 0 === r.offsetWidth)
                    for (n = r; n = n.offsetParent;)
                        if (n.offsetWidth > 0) {
                            a = (n.offsetWidth * parseFloat(a.match(/\d*/)[0]) / 100).toString();
                            break
                        }
                if ((o.heightIsRelative = i.match(/^\s*\d*\.?\d*\%\s*$/) && !i.match(/^\s*0\%\s*$/)) && r.offsetHeight <= 20)
                    for (n = r; n = n.offsetParent;)
                        if (n.offsetHeight > 0) {
                            i = (n.offsetHeight * parseFloat(i.match(/\d*/)[0]) / 100).toString();
                            break
                        }
                return o.width = a.replace ? a.replace(/^\s*(\d*\.?\d*)\s*$/gi, "$1px") : a, o.height = i.replace ? i.replace(/^\s*(\d*\.?\d*)\s*$/gi, "$1px") : i, s.width = o.width, s.height = o.height, o.pixelWidth = o.widthIsRelative ? r.offsetWidth : parseInt(o.width, 10) || 0, o.pixelHeight = o.heightIsRelative ? r.offsetHeight : parseInt(o.height, 10) || 0, o
            }, t._manageInteractiveSpace = function() {
                var e, t, r, n, a, i, o = this.config,
                    s = this.getChildren(),
                    l = s.xAxis[0],
                    c = s.yAxis[0],
                    u = s.canvas && s.canvas[0],
                    d = u.config,
                    h = d.canvasBorderWidth,
                    f = d.canvasPaddingTop,
                    g = d.canvasPadding || 0,
                    p = d.canvasPaddingLeft,
                    m = o.xAxisSpaceAllocation,
                    v = o.yAxisSpaceAllocation[0].spaceTaken;
                t = o.xAxisSpaceAllocation = l.placeAxis(o.availableHeight + m.bottom), r = o.yAxisSpaceAllocation[0].spaceTaken = c.placeAxis(o.availableWidth + v.left), e = t.bottom - m.bottom, a = t.top - m.top, n = r.left - v.left, i = r.right - v.right, e && this._allocateSpace({
                    top: a,
                    bottom: e
                }), (n || i) && this._allocateSpace({
                    left: n,
                    right: i
                }), l && l.setAxisDimention({
                    x: o.canvasLeft + Math.max(p, g),
                    y: l.config.isOpposit ? o.canvasTop - h : o.canvasBottom + h,
                    opposite: l.config.isOpposit ? o.canvasBottom + h : o.canvasTop - h,
                    axisLength: o.canvasWidth - Math.max(p, g) - Math.max(d.canvasPaddingRight, g)
                }), c && c.setAxisDimention({
                    x: c.config.isOpposit ? o.canvasRight + h : o.canvasLeft - h,
                    y: o.canvasTop + f,
                    opposite: c.config.isOpposit ? o.canvasLeft - h : o.canvasRight + h,
                    axisLength: o.canvasHeight - f - d.canvasPaddingBottom
                }), (a || e || n || i) && u.asyncDraw()
            }, t.removeAllTooltipOnChart = function(e, t) {
                for (var r = e.implicit, n = e.explicit, a = 0; a < r.length; a++) {
                    var i = r[a];
                    t ? i.hide() : i.element && i.element.remove()
                }
                for (var o = 0; o < n.length; o++) {
                    var s = n[o];
                    t ? s.hide() : s.element && s.element.remove()
                }
            }, t.configureDataLabelStyle = function(e, t) {
                void 0 === e && (e = {});
                var r, n, a = t || this.config.JSONData,
                    i = this.getFromEnv("chartConfig");
                return r = Me(e.valuebordercolor, a.valuebordercolor, i.valueBorderColor), n = Me(e.valuebgcolor, a.valuebgcolor, i.valueBgColor), {
                    color: (0, s.convertColor)(Me(e.valuefontcolor, a.valuefontcolor, i.valueFontColor), i.valueFontAlpha),
                    borderColor: r ? (0, s.convertColor)(r, i.valueBorderAlpha) : "",
                    backgroundColor: n ? (0, s.convertColor)(n, i.valueBgAlpha) : ""
                }
            }, t.MOUSEOUT = t.FIT = t.FILL = t.TILE = t.COMMA = t.animationObjStr = t.configStr = t.ROUND = t.BLANK = t.POINTER = t.HAND = t.BOLD = t.NORMAL = t.mathRound = t.mathAbs = t.animHelperFN = t.xssEncode = t.MathExt = t.defaultGaugePaletteOptions = t.crispBound = t.canvasBorderColorStr = t.attrTypeBool = t.canvasBGAlphaStr = t.attrTypeNum = t.DASH_DEF = t.chartPaletteStr = t.TRACKER_FILL = t.appliedCSS = t.validhexcolor = t.chartAPI = t.getAxisLimits = t.supportedStyle = t.lineHeightFactor = t.isEdge = t.isIE9 = t.isIE11 = t.isIE = t.TXT_REGEX = t.hasSVG = t.stubFN = t.preDefStr = t.isArray = t.TXT_STRING = t.TXT_HREF = t.txtLabel = t.hasTouch = t.parseTooltext = t.gradientify = t.rgbaToHex = t.toRaphaelColor = t.getViewPortDimension = t.polyPathToPath = t.createElement = t.getEventCoordinate = t.regex = t.CLICK_THRESHOLD_PIXELS = t.TOUCH_THRESHOLD_PIXELS = t.cleanColorCode = t.startsRGBA = t.visibleStr = t.hiddenStr = t.TEXTANCHOR = t.COMMASPACE = t.PXSTRING = t.HUNDREDSTRING = t.SHAPE_RECT = t.FC_CONFIG_STRING = t.INITIALSTR = t.FINALSTR = t.POSITION_END = t.POSITION_START = t.MIDDLESTR = t.POSITION_MIDDLE = t.POSITION_CENTER = t.POSITION_LEFT = t.POSITION_BOTTOM = t.POSITION_RIGHT = t.POSITION_TOP = t.POSITION_ABSOLUTE = t.STRINGUNDEFINED = t.DECIMALSTRING = t.ONESTRING = t.TESTSTR = t.SAMPLESTRING = t.ZEROSTRING = t.COMMASTRING = t.OBJECTSTRING = t.STRINGSTRING = t.BREAKSTRING = t.HASHSTRING = t.COLOR_TRANSPARENT = t.COLOR_WHITE = t.COLOR_GLASS = t.COLOR_BLACK = t.BLANKSTRING = t.UNDERSCORE = t.UNDEF = t.isFirefox = t.BLANKSTRINGPLACEHOLDER = t.getEmptyConstractor = void 0, t.removeHtmlAttrs = t.isSimilarObject = t.snapPoint = t.DEFAULT_FT_FONT = t.isIpad = t.domInsertModes = t.isXSSSafe = t.normalizeAngle = t.LINE_HEIGHT_FACTOR = t.PROJECT_VERSION = t.datasetFactory = t.componentFactory = t.dropHash = t.BGRATIOSTRING = t.VISIBLE = t.touchEnabled = t.MOUSEMOVE = void 0;
            var a = r(194);
            t.attribDefs = a.attribDefs, t.parseConfiguration = a.parseConfiguration, t.setAttribDefs = a.setAttribDefs, t.hasAttribDefs = a.hasAttribDefs;
            var i = n(r(195)),
                o = n(r(196));
            t.extend2 = o["default"];
            var s = r(197);
            t.convertColor = s.convertColor, t.getDarkColor = s.getDarkColor, t.getLightColor = s.getLightColor, t.mapSymbolName = s.mapSymbolName, t.getColumnColor = s.getColumnColor, t.getPointColor = s.getPointColor, t.getAngle = s.getAngle, t.parseColor = s.parseColor, t.getValidColor = s.getValidColor, t.RGBtoHex = s.RGBtoHex, t.rawRGBtoHEX = s.rawRGBtoHEX, t.HEXtoRGB = s.HEXtoRGB, t.parsePointValue = s.parsePointValue, t.getFirstColor = s.getFirstColor, t.getFirstAlpha = s.getFirstAlpha;
            var l = r(198),
                c = n(r(199));
            t.pluckNumber = c["default"];
            t.LINE_HEIGHT_FACTOR = 1.2, t.PROJECT_VERSION = "3.15.1-sr.1";
            var u, d, h, f, g, p, m, v, b, y, x, w, C, _, k = window,
                S = function() {},
                E = (_ = k.navigator.userAgent.toLowerCase(), !(!(C = -1 !== _.indexOf("msie") && k.parseInt(_.split("msie")[1])) || 9 !== C)),
                A = /Firefox/i.test(k.navigator.userAgent),
                T = k.document,
                N = k.navigator,
                M = Boolean(k.SVGAngle || T.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")),
                D = /trident/i.test(N.userAgent) && /rv:11/i.test(N.userAgent) && !window.opera,
                F = /msie/i.test(N.userAgent) && !k.opera,
                I = /Edge/.test(N.userAgent),
                L = !!N.platform && /iPad|iPhone|iPod/.test(N.platform),
                O = /[\\\"<>;&]/,
                R = /^[^\S]*?(sf|f|ht)(tp|tps):\/\//i,
                P = "rgba(192,192,192," + (F ? .002 : 1e-6) + ")",
                V = "http://www.sisplansistemas.com.br",
                B = "70|117|115|105|111|110|67|104|97|114|116|115|32|84|114|105|97|108".split("|").map((function(e) {
                    return String.fromCharCode(+e)
                })).join(""),
                j = parseFloat,
                H = /fusioncharts\.com|fusioncharts\.github\.io$/i,
                G = /\{br\}\s*/gi,
                U = /^#?/,
                z = /^rgba/i,
                W = /[#\s]/gi,
                X = Math.abs,
                $ = Math.pow,
                Y = Math.round,
                q = $(2, -24),
                K = "ontouchstart" in T,
                J = K && !(N.maxTouchPoints || N.msMaxTouchPoints),
                Z = !H.test(k.location.hostname),
                Q = Math,
                ee = Q.max,
                te = Q.min,
                re = {
                    pageX: 0,
                    pageY: 0
                },
                ne = ["8BBA00", "F6BD0F", "FF654F", "AFD8F8", "FDB398", "CDC309", "B1D0D2", "FAD1B9", "B8A79E", "D7CEA5", "C4B3CE", "E9D3BE", "EFE9AD", "CEA7A2", "B2D9BA"],
                ae = {
                    paletteColors: [ne, ne, ne, ne, ne],
                    bgColor: ["CBCBCB,E9E9E9", "CFD4BE,F3F5DD", "C5DADD,EDFBFE", "A86402,FDC16D", "FF7CA0,FFD1DD"],
                    bgAngle: [270, 270, 270, 270, 270],
                    bgRatio: ["0,100", "0,100", "0,100", "0,100", "0,100"],
                    bgAlpha: ["50,50", "60,50", "40,20", "20,10", "30,30"],
                    toolTipBgColor: ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                    toolTipBorderColor: ["545454", "545454", "415D6F", "845001", "68001B"],
                    baseFontColor: ["555555", "60634E", "025B6A", "A15E01", "68001B"],
                    tickColor: ["333333", "60634E", "025B6A", "A15E01", "68001B"],
                    trendDarkColor: ["333333", "60634E", "025B6A", "A15E01", "68001B"],
                    trendLightColor: ["f1f1f1", "F3F5DD", "EDFBFE", "FFF5E8", "FFD1DD"],
                    pointerBorderColor: ["545454", "60634E", "415D6F", "845001", "68001B"],
                    pointerBgColor: ["545454", "60634E", "415D6F", "845001", "68001B"],
                    canvasBgColor: ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                    canvasBgAngle: [0, 0, 0, 0, 0],
                    canvasBgAlpha: ["100", "100", "100", "100", "100"],
                    canvasBgRatio: ["", "", "", "", ""],
                    canvasBorderColor: ["545454", "545454", "415D6F", "845001", "68001B"],
                    canvasBorderAlpha: [100, 100, 100, 90, 100],
                    altHGridColor: ["EEEEEE", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"],
                    altHGridAlpha: [50, 35, 10, 20, 15],
                    altVGridColor: ["767575", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"],
                    altVGridAlpha: [10, 20, 10, 15, 10],
                    borderColor: ["767575", "545454", "415D6F", "845001", "68001B"],
                    borderAlpha: [50, 50, 50, 50, 50],
                    legendBgColor: ["ffffff", "ffffff", "ffffff", "ffffff", "ffffff"],
                    legendBorderColor: ["545454", "545454", "415D6F", "845001", "D55979"],
                    plotFillColor: ["767575", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"],
                    plotBorderColor: ["999999", "8A8A8A", "6BA9B6", "C1934D", "FC819F"],
                    msgLogColor: ["717170", "7B7D6D", "92CDD6", "965B01", "68001B"],
                    TrendLightShadeOffset: 30
                },
                ie = {
                    numDecimals: function(e) {
                        var t = e;
                        t = Ie(t, 10);
                        var r = Ie((t = Math.abs(t)) - Math.floor(t), 10),
                            n = String(r).length - 2;
                        return n = n < 0 ? 0 : n, n
                    },
                    toRadians: function(e) {
                        return e / 180 * Math.PI
                    },
                    toDegrees: function(e) {
                        return e / Math.PI * 180
                    },
                    flashToStandardAngle: function(e) {
                        return -1 * e
                    },
                    standardToFlashAngle: function(e) {
                        return -1 * e
                    },
                    flash180ToStandardAngle: function(e) {
                        var t = e,
                            r = 360 - ((t %= 360) < 0 ? t + 360 : t);
                        return 360 === r ? 0 : r
                    },
                    getAngularPoint: function(e, t, r, n) {
                        var a = n * (Math.PI / 180);
                        return {
                            x: e + r * Math.cos(a),
                            y: t - r * Math.sin(a)
                        }
                    },
                    remainderOf: function(e, t) {
                        return Math.ceil(e % t)
                    },
                    boundAngle: function(e) {
                        return e >= 0 ? ie.prototype.remainderOf(e, 360) : 360 - ie.prototype.remainderOf(Math.abs(e), 360)
                    },
                    toNearestTwip: function(e) {
                        var t = e,
                            r = t < 0 ? -1 : 1,
                            n = Math.abs(t),
                            a = Math.round(100 * n),
                            i = Math.floor(a / 5);
                        return r * ((Number(String(a - 5 * i)) > 2 ? 5 * i + 5 : 5 * i) / 100)
                    },
                    roundUp: function(e, t) {
                        var r = e,
                            n = t;
                        n = n || 2;
                        var a = Math.pow(10, n);
                        return r *= a, r = Math.round(Number(String(r))), r /= a
                    }
                },
                oe = 2 * Q.PI,
                se = {
                    chart2D: {
                        bgColor: "bgColor",
                        bgAlpha: "bgAlpha",
                        bgAngle: "bgAngle",
                        bgRatio: "bgRatio",
                        canvasBgColor: "canvasBgColor",
                        canvasBaseColor: "canvasBaseColor",
                        divLineColor: "divLineColor",
                        legendBgColor: "legendBgColor",
                        legendBorderColor: "legendBorderColor",
                        toolTipbgColor: "toolTipbgColor",
                        toolTipBorderColor: "toolTipBorderColor",
                        baseFontColor: "baseFontColor",
                        anchorBgColor: "anchorBgColor"
                    },
                    chart3D: {
                        bgColor: "bgColor3D",
                        bgAlpha: "bgAlpha3D",
                        bgAngle: "bgAngle3D",
                        bgRatio: "bgRatio3D",
                        canvasBgColor: "canvasBgColor3D",
                        canvasBaseColor: "canvasBaseColor3D",
                        divLineColor: "divLineColor3D",
                        divLineAlpha: "divLineAlpha3D",
                        legendBgColor: "legendBgColor3D",
                        legendBorderColor: "legendBorderColor3D",
                        toolTipbgColor: "toolTipbgColor3D",
                        toolTipBorderColor: "toolTipBorderColor3D",
                        baseFontColor: "baseFontColor3D",
                        anchorBgColor: "anchorBgColor3D"
                    }
                },
                le = M ? 0 : .5,
                ce = ["color"],
                ue = function() {
                    if (Array.isArray) return Array.isArray;
                    var e = Object.prototype.toString;
                    return function(t) {
                        return e.call(t) === e.call([])
                    }
                }(),
                de = function(e) {
                    return e.pageX === u && (e.pageX = e.clientX + T.body.scrollLeft + T.documentElement.scrollLeft, e.pageY = e.clientY + T.body.scrollTop + T.documentElement.scrollTop), e
                },
                he = (b = "innerWidth", y = "innerHeight", x = T.documentElement || T.body, w = x, "innerWidth" in k ? w = k : (b = "clientWidth", y = "clientHeight"), function() {
                    return {
                        width: w[b],
                        height: w[y],
                        scrollTop: x.scrollTop,
                        scrollLeft: x.scrollLeft
                    }
                }),
                fe = (v = /^@window_/g, function(e, t, r) {
                    var n, a, i, o, s = e.replace(/\[[\'\"]/g, ".").replace(/[\'\"]\]/g, "").replace(/\[/g, ".@window_").replace(/\]/g, "").split("."),
                        l = k,
                        c = "";
                    for (i = s.length, o = 0; o < i; o += 1) {
                        if (n = l, (a = s[o]).match(v)) l = l[k[a.replace(v, "")]];
                        else {
                            if (l === u || null === l) throw (c || a).replace(v, "") + " is not defined";
                            l = l[a]
                        }
                        c = a
                    }
                    if (!l || "function" != typeof l.call && l !== k.alert) {
                        if ("void" === c) return;
                        setTimeout((function() {
                            throw a.replace(v, "") + "() is not a function"
                        }), 0)
                    } else l === k.alert ? l(t) : r ? l.apply(n, t.split("__FC_ARG_SEP__")) : l.call(n, t)
                }),
                ge = (m = {}, function(e) {
                    var t, r, n, a, i, o = e || this,
                        l = o && o.FCcolor || o,
                        c = l.color,
                        d = l.ratio,
                        h = l.angle,
                        f = l.alpha,
                        g = l.r,
                        p = l.cx,
                        v = l.cy,
                        b = l.fx,
                        y = l.fy,
                        x = l.gradientUnits,
                        w = l.x1,
                        C = l.y1,
                        _ = l.x2,
                        k = l.y2,
                        S = 1;
                    if ("string" == typeof o) return m[i = "~" + o] || (m[i] = o.replace(/^#?([a-f0-9]{3,6})/gi, "#$1"));
                    if (!(c = c || "")) return t;
                    if (i = [c, f, d, h, g, p, v, x, b, y, w, _, C, k, l.radialGradient].join("_").replace(/[\(\)\s,\xb0#]/g, "_"), m[i]) return m[i];
                    if (d = d && (d + "").split(",") || [], f = (f || 0 === f) && (f + "").split(",") || [], c = c.split(","))
                        if (t = "", 1 === c.length) a = c[0].replace(/^#?([a-f0-9]{3,6})/gi, "$1"), t = f.length ? "rgba(" + (0, s.HEXtoRGB)(a).join(",") + "," + .01 * j(f[0]) + ")" : a.replace(/^#?([a-f0-9]{3,6})/gi, "#$1");
                        else {
                            for (r = 0, n = c.length; r < n; r++) a = c[r].replace(/^#?([a-f0-9]{3,6})/gi, "$1"), isNaN(d[r]) || (d[r] = j(d[r]), a += ":" + d[r], isNaN(d[r + 1]) || (d[r + 1] = j(d[r + 1]) + d[r])), isNaN(f[r]) || "" === f[r] || (S = .01 * f[r]), c[r] = "rgba(" + (0, s.HEXtoRGB)(a).join(",") + "," + S + ")", isNaN(d[r]) || (d[r] === d[r - 1] && (d[r] += .001), c[r] = c[r] + ":" + d[r]);
                            t += c.join("-"), g !== u || b !== u || p !== u || l.radialGradient ? t = "xr(" + [b, y, g, p, v, x].join(",") + ")" + t : (t = "-" + t, w === u && C === u && _ === u && k === u || (t = "(" + [w, C, _, k, x].join(",") + ")" + t), h === u && (h = 0), t = 360 - j(h) % 360 + t)
                        }
                    return m[i] = t, t
                }),
                pe = function() {
                    return ""
                },
                me = function() {
                    var e, t = [{
                            regex: /((^|[^\\])((\\)\\)*\$cleanvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$cleanvalue))/gi,
                            argIndex: 2,
                            argKey: "cleanvalue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$datavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$datavalue))/gi,
                            argIndex: 2,
                            argKey: "formattedValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$value)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$value))/gi,
                            argIndex: 3,
                            argKey: "value"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$label)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$label))/gi,
                            argIndex: 2,
                            argKey: "label"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$seriesname)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$seriesname))/gi,
                            argIndex: 5,
                            argKey: "seriesname"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$yaxisname)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$yaxisname))/gi,
                            argIndex: 2,
                            argKey: "yaxisName"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$xaxisname)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$xaxisname))/gi,
                            argIndex: 2,
                            argKey: "xaxisName"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$displayvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$displayvalue))/gi,
                            argIndex: 3,
                            argKey: "displayvalue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$xdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$xdatavalue))/gi,
                            argIndex: 2,
                            argKey: "xDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$ydatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$ydatavalue))/gi,
                            argIndex: 2,
                            argKey: "yDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$xvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$xvalue))/gi,
                            argIndex: 3,
                            argKey: "x"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$yvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$yvalue))/gi,
                            argIndex: 3,
                            argKey: "y"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$zvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$zvalue))/gi,
                            argIndex: 3,
                            argKey: "z"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$name)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$name))/gi,
                            argIndex: 3,
                            argKey: "name"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$percentValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$percentValue))/gi,
                            argIndex: 2,
                            argKey: "percentValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$startValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$startValue))/gi,
                            argIndex: 2,
                            argKey: "startValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$startDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$startDataValue))/gi,
                            argIndex: 2,
                            argKey: "startDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$endValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$endValue))/gi,
                            argIndex: 2,
                            argKey: "endValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$endDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$endDataValue))/gi,
                            argIndex: 2,
                            argKey: "endDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$axisName)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$axisName))/gi,
                            argIndex: 2,
                            argKey: "axisName"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$cumulativevalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$cumulativevalue))/gi,
                            argIndex: 2,
                            argKey: "cumulativeValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$cumulativedatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$cumulativedatavalue))/gi,
                            argIndex: 2,
                            argKey: "cumulativeDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$cumulativePercentValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$cumulativePercentValue))/gi,
                            argIndex: 2,
                            argKey: "cumulativePercentValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$cumulativepercentdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$cumulativepercentdatavalue))/gi,
                            argIndex: 2,
                            argKey: "cumulativePercentDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$sum)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$sum))/gi,
                            argIndex: 2,
                            argKey: "sum"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$unformattedsum)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedsum))/gi,
                            argIndex: 2,
                            argKey: "unformattedSum"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$targetvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$targetvalue))/gi,
                            argIndex: 2,
                            argKey: "targetValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$targetdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$targetdatavalue))/gi,
                            argIndex: 2,
                            argKey: "targetDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$processname)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$processname))/gi,
                            argIndex: 2,
                            argKey: "processName"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$start)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$start))/gi,
                            argIndex: 2,
                            argKey: "start"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$end)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$end))/gi,
                            argIndex: 2,
                            argKey: "end"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$percentcomplete)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$percentcomplete))/gi,
                            argIndex: 2,
                            argKey: "percentComplete"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$taskpercentcomplete)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$taskpercentcomplete))/gi,
                            argIndex: 2,
                            argKey: "taskPercentComplete"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$taskstartdate)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$taskstartdate))/gi,
                            argIndex: 2,
                            argKey: "taskStartDate"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$taskenddate)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$taskenddate))/gi,
                            argIndex: 2,
                            argKey: "taskEndDate"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$tasklabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tasklabel))/gi,
                            argIndex: 2,
                            argKey: "taskLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$date)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$date))/gi,
                            argIndex: 2,
                            argKey: "date"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$percentofprevvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$percentofprevvalue))/gi,
                            argIndex: 2,
                            argKey: "percentOfPrevValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$sname)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$sname))/gi,
                            argIndex: 2,
                            argKey: "sName"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$lname)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$lname))/gi,
                            argIndex: 2,
                            argKey: "lName"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromid)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromid))/gi,
                            argIndex: 2,
                            argKey: "fromId"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromlabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromlabel))/gi,
                            argIndex: 2,
                            argKey: "fromLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$toid)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toid))/gi,
                            argIndex: 2,
                            argKey: "toId"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$tolabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tolabel))/gi,
                            argIndex: 2,
                            argKey: "toLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromxvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromxvalue))/gi,
                            argIndex: 2,
                            argKey: "fromXValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromyvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromyvalue))/gi,
                            argIndex: 2,
                            argKey: "fromYValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromxdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromxdatavalue))/gi,
                            argIndex: 2,
                            argKey: "fromXDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromydatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromydatavalue))/gi,
                            argIndex: 2,
                            argKey: "fromYDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromlabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromlabel))/gi,
                            argIndex: 2,
                            argKey: "fromLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$toxvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toxvalue))/gi,
                            argIndex: 2,
                            argKey: "toXValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$toyvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toyvalue))/gi,
                            argIndex: 2,
                            argKey: "toYValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$toxdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toxdatavalue))/gi,
                            argIndex: 2,
                            argKey: "toXDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$toydatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toydatavalue))/gi,
                            argIndex: 2,
                            argKey: "toYDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$tolabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tolabel))/gi,
                            argIndex: 2,
                            argKey: "toLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$openvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$openvalue))/gi,
                            argIndex: 2,
                            argKey: "openValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$closevalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$closevalue))/gi,
                            argIndex: 2,
                            argKey: "closeValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$highvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$highvalue))/gi,
                            argIndex: 2,
                            argKey: "highValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$lowvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$lowvalue))/gi,
                            argIndex: 2,
                            argKey: "lowValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$opendatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$opendatavalue))/gi,
                            argIndex: 2,
                            argKey: "openDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$closedatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$closedatavalue))/gi,
                            argIndex: 2,
                            argKey: "closeDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$highdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$highdatavalue))/gi,
                            argIndex: 2,
                            argKey: "highDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$lowdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$lowdatavalue))/gi,
                            argIndex: 2,
                            argKey: "lowDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$maxvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$maxvalue))/gi,
                            argIndex: 2,
                            argKey: "maxValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$maxdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$maxdatavalue))/gi,
                            argIndex: 2,
                            argKey: "maxDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$minvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$minvalue))/gi,
                            argIndex: 2,
                            argKey: "minValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$mindatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$mindatavalue))/gi,
                            argIndex: 2,
                            argKey: "minDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$q1)/gi,
                            argIndex: 2,
                            argKey: "Q1"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$unformattedQ1)/gi,
                            argIndex: 2,
                            argKey: "unformattedQ1"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$q3)/gi,
                            argIndex: 2,
                            argKey: "Q3"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$unformattedQ3)/gi,
                            argIndex: 2,
                            argKey: "unformattedQ3"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$median)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$median))/gi,
                            argIndex: 2,
                            argKey: "median"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$unformattedMedian)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedMedian))/gi,
                            argIndex: 2,
                            argKey: "unformattedMedian"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$SD)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$SD))/gi,
                            argIndex: 2,
                            argKey: "SD"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$unformattedsd)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedsd))/gi,
                            argIndex: 2,
                            argKey: "unformattedsd"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$QD)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$QD))/gi,
                            argIndex: 2,
                            argKey: "QD"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$unformattedQD)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedQD))/gi,
                            argIndex: 2,
                            argKey: "unformattedQD"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$MD)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$MD))/gi,
                            argIndex: 2,
                            argKey: "MD"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$unformattedMD)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedMD))/gi,
                            argIndex: 2,
                            argKey: "unformattedMD"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$mean)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$mean))/gi,
                            argIndex: 2,
                            argKey: "mean"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$unformattedMean)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedMean))/gi,
                            argIndex: 2,
                            argKey: "unformattedMean"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$unformattedMean)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedMean))/gi,
                            argIndex: 2,
                            argKey: "unformattedMean"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$volumeValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$volumeValue))/gi,
                            argIndex: 2,
                            argKey: "volumeValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$volumeDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$volumeDataValue))/gi,
                            argIndex: 2,
                            argKey: "volumeDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromXValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromXValue))/gi,
                            argIndex: 2,
                            argKey: "fromXValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromYValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromYValue))/gi,
                            argIndex: 2,
                            argKey: "fromYValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromXDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromXDataValue))/gi,
                            argIndex: 2,
                            argKey: "fromXDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromYDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromYDataValue))/gi,
                            argIndex: 2,
                            argKey: "fromYDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$fromLabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromLabel))/gi,
                            argIndex: 2,
                            argKey: "fromLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$toXValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toXValue))/gi,
                            argIndex: 2,
                            argKey: "toXValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$toYValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toYValue))/gi,
                            argIndex: 2,
                            argKey: "toYValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$toXDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toXDataValue))/gi,
                            argIndex: 2,
                            argKey: "toXDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$toYDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toYDataValue))/gi,
                            argIndex: 2,
                            argKey: "toYDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$tolabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tolabel))/gi,
                            argIndex: 2,
                            argKey: "toLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$tlLabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tlLabel))/gi,
                            argIndex: 5,
                            argKey: "tlLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$trlabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$trlabel))/gi,
                            argIndex: 5,
                            argKey: "trLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$bllabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$bllabel))/gi,
                            argIndex: 5,
                            argKey: "blLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$brlabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$brlabel))/gi,
                            argIndex: 5,
                            argKey: "brLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$rowlabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$rowlabel))/gi,
                            argIndex: 5,
                            argKey: "rowLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$columnlabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$columnlabel))/gi,
                            argIndex: 5,
                            argKey: "columnLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$errorvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$errorvalue))/gi,
                            argIndex: 2,
                            argKey: "errorValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$errordatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$errordatavalue))/gi,
                            argIndex: 2,
                            argKey: "errorDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$errorpercentvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$errorpercentvalue))/gi,
                            argIndex: 2,
                            argKey: "errorPercentValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$errorpercentdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$errorpercentdatavalue))/gi,
                            argIndex: 2,
                            argKey: "errorPercentDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$horizontalErrorValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalErrorValue))/gi,
                            argIndex: 2,
                            argKey: "horizontalErrorValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$horizontalErrorDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalErrorDataValue))/gi,
                            argIndex: 2,
                            argKey: "horizontalErrorDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$verticalErrorValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalErrorValue))/gi,
                            argIndex: 2,
                            argKey: "verticalErrorValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$verticalErrorDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalErrorDataValue))/gi,
                            argIndex: 2,
                            argKey: "verticalErrorDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$horizontalErrorPercent)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalErrorPercentValue))/gi,
                            argIndex: 2,
                            argKey: "horizontalErrorPercentValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$horizontalErrorPercentDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalErrorPercentDataValue))/gi,
                            argIndex: 2,
                            argKey: "horizontalErrorPercentDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$verticalErrorPercent)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalErrorPercentValue))/gi,
                            argIndex: 2,
                            argKey: "verticalErrorPercentValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$verticalErrorPercentDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalErrorPercentDataValue))/gi,
                            argIndex: 2,
                            argKey: "verticalErrorPercentDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$xaxispercentvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$xaxispercentvalue))/gi,
                            argIndex: 2,
                            argKey: "xAxisPercentValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$percentdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$percentdatavalue))/gi,
                            argIndex: 2,
                            argKey: "percentDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$trType)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$trType))/gi,
                            argIndex: 4,
                            argKey: "trtype"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$tlType)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tlType))/gi,
                            argIndex: 4,
                            argKey: "tltype"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$brType)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$brType))/gi,
                            argIndex: 4,
                            argKey: "brtype"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$blType)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$blType))/gi,
                            argIndex: 4,
                            argKey: "bltype"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$colorRangeLabel)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$colorRangeLabel))/gi,
                            argIndex: 5,
                            argKey: "colorRangeLabel"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$zdatavalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$zdatavalue))/gi,
                            argIndex: 2,
                            argKey: "zDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$svalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$svalue))/gi,
                            argIndex: 3,
                            argKey: "svalue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$positiveErrorValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$positiveErrorValue))/gi,
                            argIndex: 2,
                            argKey: "positiveErrorValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$negativeErrorValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$negativeErrorValue))/gi,
                            argIndex: 2,
                            argKey: "negativeErrorValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$datasvalue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$datasvalue))/gi,
                            argIndex: 2,
                            argKey: "formattedsValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$horizontalNegativeErrorValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalNegativeErrorValue))/gi,
                            argIndex: 2,
                            argKey: "horizontalNegativeErrorValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$horizontalPositiveErrorValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalPositiveErrorValue))/gi,
                            argIndex: 2,
                            argKey: "horizontalPositiveErrorValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$verticalNegativeErrorValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalNegativeErrorValue))/gi,
                            argIndex: 2,
                            argKey: "verticalNegativeErrorValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$verticalPositiveErrorValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalPositiveErrorValue))/gi,
                            argIndex: 2,
                            argKey: "verticalPositiveErrorValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$horizontalNegativeErrorDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalNegativeErrorDataValue))/gi,
                            argIndex: 2,
                            argKey: "horizontalNegativeErrorDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$horizontalPositiveErrorDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalPositiveErrorDataValue))/gi,
                            argIndex: 2,
                            argKey: "horizontalPositiveErrorDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$verticalPositiveErrorDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalPositiveErrorDataValue))/gi,
                            argIndex: 2,
                            argKey: "verticalPositiveErrorDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$verticalNegativeErrorDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalNegativeErrorDataValue))/gi,
                            argIndex: 2,
                            argKey: "verticalNegativeErrorDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$positiveErrorDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$positiveErrorDataValue))/gi,
                            argIndex: 2,
                            argKey: "positiveErrorDataValue"
                        }, {
                            regex: /((^|[^\\])((\\)\\)*\$negativeErrorDataValue)/gi,
                            escapeRegex: /((^|[^\\])((\\)\\)*\\(\$negativeErrorDataValue))/gi,
                            argIndex: 2,
                            argKey: "negativeErrorDataValue"
                        }],
                        r = [],
                        n = t.length;
                    for (e = 0; e < n; e += 1) r.push(e);
                    return function() {
                        var e, n, a, i, o, s = arguments[0],
                            l = arguments[1];
                        if (ue(l) || (l = r), s)
                            for (o = l.length, i = 0; i < o; i += 1)(a = t[l[i]]) && (e = Te(Ne((n = arguments[a.argIndex]) && n[a.argKey], "") + ""), s = (s = s.replace(a.regex, "$2$4" + (a.parsingMethod ? a.parsingMethod(e) : e))).replace(a.escapeRegex, "$2$4$5"));
                        return s
                    }
                }(),
                ve = (f = function(e, t, r, n, a) {
                    var i, o = Math.abs(t - e),
                        s = o / (r + 1),
                        l = n;
                    return p(o, r, l) || (a && (i = l > 1 ? 2 : .5, Number(s) / Number(l) < i && (l /= 10)), o = (s = (Math.floor(s / l) + 1) * l) * (r + 1)), o
                }, g = function(e) {
                    var t = Math.abs(e),
                        r = String(t),
                        n = 0,
                        a = r.indexOf(".");
                    return -1 !== a && (n = r.length - a - 1), n
                }, p = function(e, t, r) {
                    return !(g(e / (t + 1)) > g(r))
                }, function(e, t, r, n, a, i, o, s) {
                    var l, c, d, h, g, m, v, b, y, x, w, C, _, k, S, E, A, T, N, M, D, F, I, L, O, R, P, V = 0,
                        B = e,
                        j = t,
                        H = a,
                        G = i,
                        U = o;
                    if ((B = !0 === isNaN(B) || B === u ? .1 : B) === (j = !0 === isNaN(j) || j === u ? 0 : j) && 0 === B && (B = .1), H = void 0 === H || H, G = void 0 === G || G, v = Math.floor(Math.log(Math.abs(B)) / Math.LN10), b = Math.floor(Math.log(Math.abs(j)) / Math.LN10), y = Math.max(b, v), x = Math.pow(10, y), Math.abs(B) / x < 2 && Math.abs(j) / x < 2 && (y--, x = Math.pow(10, y)), w = Math.floor(Math.log(B - j) / Math.LN10), C = Math.pow(10, w), B - j > 0 && x / C >= 10 && (x = C, y = w), _ = (Math.floor(B / x) + 1) * x, k = j < 0 ? (Math.floor(Math.abs(j / x)) + 1) * x * -1 : G ? 0 : (k = Math.floor(Math.abs(j / x) - 1) * x) < 0 ? 0 : k, H && B <= 0 && (_ = 0), c = !(!n && 0 !== n), d = !1 == (l = !(!r && 0 !== r)) || !0 === l && Number(r) < B && B - Number(r) > q ? _ : Number(r), h = !1 === c || !0 === c && Number(n) > j && Number(n) - j > q ? k : Number(n), g = Math.abs(d - h), m = x, !1 === c && !1 === l && s)
                        if (d > 0 && h < 0) {
                            for (E = !1, T = f(h, d, U, A = m > 10 ? m / 10 : m, !1) - (U + 1) * A; !1 === E;)
                                if (p(T += (U + 1) * A, U, A))
                                    if (S = T - g, N = T / (U + 1), M = (D = Math.min(Math.abs(h), d)) === Math.abs(h) ? -1 : 1, 0 === U) E = !0;
                                    else
                                        for (I = 1; I <= Math.floor((U + 1) / 2); I++)(F = N * I) - D > S || F > D && (R = T - F) / N === Math.floor(R / N) && F / N === Math.floor(F / N) && (g = T, d = -1 === M ? R : F, h = -1 === M ? -F : -R, E = !0)
                        } else S = (L = f(h, d, U, m, !0)) - g, g = L, d > 0 ? d += S : h -= S;
                    else s && (P = function(e, t, r) {
                        for (var n, a = 0, i = 1; !p(t, n = 0 === (n = e + a * i) ? 1 : n, r);) {
                            if ((a = -1 === i || a > e ? ++a : a) > 25) {
                                n = 0;
                                break
                            }
                            i = a <= e ? -1 * i : 1
                        }
                        return n
                    }, U > 0 && (0 === (O = P(U, g, m)) && (O = P(U, g + 1, m), V = 1), U = O));
                    return {
                        Max: d,
                        Min: h,
                        Range: g,
                        interval: m,
                        divGap: (d - h + V) / (U + 1)
                    }
                }),
                be = {
                    keyup: !0,
                    blur: !0,
                    click: !0,
                    load: !0,
                    dragstart: !0,
                    dragmove: !0,
                    dragend: !0,
                    dblclick: !0,
                    mousedown: !0,
                    mousemove: !0,
                    mouseout: !0,
                    mouseover: !0,
                    mouseup: !0,
                    "fc-wheel": !0,
                    "fc-click": !0,
                    "fc-dragstart": !0,
                    "fc-dragmove": !0,
                    "fc-dragend": !0,
                    "fc-dbclick": !0,
                    "fc-mousedown": !0,
                    "fc-mousemove": !0,
                    "fc-mouseout": !0,
                    "fc-mouseover": !0,
                    "fc-mouseup": !0,
                    "fc-pinchstart": K || J,
                    "fc-pinchmove": K || J,
                    "fc-pinchend": K || J,
                    touchstart: K || J,
                    touchmove: K || J,
                    touchend: K || J,
                    touchcancel: K || J
                },
                ye = {
                    stripWhitespace: /\s+/g,
                    dropHash: U,
                    startsRGBA: z,
                    cleanColorCode: W,
                    breakPlaceholder: G,
                    hexcode: /^#?[0-9a-f]{6}/i
                },
                xe = {
                    colors: {
                        B90000: "B90000",
                        FFFFFF: "FFFFFF",
                        AAAAAA: "AAAAAA",
                        c000000: "000000"
                    },
                    BLANK: "",
                    DATASET: "dataset",
                    NORMALSTRING: "normal",
                    PX: "px",
                    INPUT: "input",
                    LABEL: "label",
                    BLANKSPACE: " ",
                    COMMA: ",",
                    OBJECTBOUNDINGBOX: "objectBoundingBox",
                    GROUPID: "groupId",
                    EVENTARGS: "eventArgs",
                    CIRCLE: "circle",
                    POLYGON: "polygon",
                    SPOKE: "spoke",
                    RECTANGLE: "rectangle",
                    ROLLOUT: "rollout",
                    ROLLOVER: "rollover",
                    DATAPLOTCLICK: "dataplotclick",
                    defaultFontStr: "Verdana,sans",
                    line: "line",
                    bar: "bar",
                    column: "column",
                    volume: "volume",
                    HUNDREDSTRING: "100",
                    SEVENTYSTRING: "70",
                    NINETYSTRING: "90",
                    AUTOSTRING: "auto",
                    configStr: "config",
                    animationObjStr: "animationObj",
                    showHoverEffectStr: "showHoverEffect",
                    hiddenStr: "hidden",
                    visibleStr: "visible",
                    columnStr: "columns",
                    barStr: "bars",
                    barHotStr: "bar-hot",
                    colHotStr: "col-hot",
                    shadowStr: "shadow",
                    dataLabelStr: "datalabel",
                    errorBarStr: "errorBar",
                    errorHotStr: "error-hot",
                    errorShadowStr: "error-shadow",
                    negativeValueStr: "negative-values",
                    positiveValueStr: "positive-values",
                    zeroPlaneStr: "zero-plane",
                    categoryPlotsStr: "categoryplots",
                    noneStr: "none",
                    setRolloverAttrStr: "setRolloverAttr",
                    setRolloutAttrStr: "setRolloutAttr",
                    elementStr: "element",
                    hotElementStr: "hotElement",
                    strokeWidthStr: "stroke-width",
                    strokeDashStr: "stroke-dasharray",
                    strokeLineJoinStr: "stroke-linejoin",
                    miterStr: "miter",
                    visiblilityStr: "visibility",
                    ROUND: "round",
                    PERCENTAGESTRING: "%",
                    pStr: "p",
                    sStr: "s",
                    divLineAlpha3DStr: "divLineAlpha3D",
                    divLineAlphaStr: "divLineAlpha",
                    altVGridColorStr: "altVGridColor",
                    altVGridAlphaStr: "altVGridAlpha",
                    altHGridColorStr: "altHGridColor",
                    altHGridAlphaStr: "altHGridAlpha",
                    PLOTFILLCOLOR_STR: "plotFillColor",
                    UNDERSCORE: "_",
                    gaugeFillColorStr: "gaugeFillColor",
                    gaugeBorderColorStr: "gaugeBorderColor",
                    NORMAL: "normal",
                    BOLD: "bold",
                    POINTER: "pointer",
                    DEFAULT: "default",
                    POSITION_MIDDLE: "middle",
                    POSITION_START: "start",
                    POSITION_TOP: "top",
                    POSITION_BOTTOM: "bottom",
                    POSITION_END: "end"
                };

            function we(e) {
                return null != e
            }

            function Ce(e) {
                var t = {},
                    r = e.getBoundingClientRect();
                return t.left = r.left + (window.pageXOffset || document.documentElement.scrollLeft), t.top = r.top + (window.pageYOffset || document.documentElement.scrollTop), t
            }

            function _e(e) {
                for (var t, r, n = e, a = 1, i = 1; n && "BODY" !== n.tagName;)(r = (r = (t = window.getComputedStyle(n).getPropertyValue("transform")) && "none" !== t && -1 !== t.indexOf("(") && t.substring(t.indexOf("(") + 1)) && r.replace(/\)/, "").split(/\,/)) && "none" !== r[0] && (a *= +r[0] || 1, i *= F || D || E ? +r[5] || 1 : +r[3] || 1), n = n.parentNode;
                return {
                    scaleX: a,
                    scaleY: i
                }
            }

            function ke(e) {
                var t = e && (e.sourceEvent || e.originalEvent || e);
                return K && t && (t.touches && t.touches[0] || t.changedTouches && t.changedTouches[0]) || t || re
            }

            function Se(e) {
                var t, r, n, a = e.data,
                    i = a.chart,
                    o = i.getFromEnv("animationManager"),
                    s = de(ke(e.originalEvent)),
                    l = i.getChildren("canvas")[0],
                    u = t = l.getGraphicalElement("resizeBox"),
                    d = a.layerX = s.pageX - a.chartPosLeft,
                    h = a.layerY = s.pageY - a.chartPosTop,
                    f = d - a.ox,
                    g = h - a.oy,
                    p = a.bBox,
                    m = {
                        scaleX: 1,
                        scaleY: 1
                    },
                    v = a.ox,
                    b = a.oy,
                    y = a.zoomX,
                    x = a.zoomY,
                    w = a.canvasY,
                    C = a.canvasX,
                    _ = a.canvasX2,
                    k = a.canvasY2,
                    S = a.strokeWidth,
                    E = a.attr,
                    A = i.config && (0, c["default"])(i.config.applycsstransform, 0);
                switch (A && (v /= (m = _e(i.getFromEnv("chart-container"))).scaleX, b /= m.scaleY), e.state) {
                    case "start":
                        r = Ce(this), a.chartPosLeft = r.left, a.chartPosTop = r.top, d = s.pageX - a.chartPosLeft, h = s.pageY - a.chartPosTop, a.oy = h, a.ox = d, a.allowMove = !1, E.x = 0, E.y = 0, E.height = 0, E.width = 0, u = l.addGraphicalElement("resizeBox", o.setAnimation({
                            el: t || "rect",
                            attr: E,
                            container: i.getChildContainer("trackerGroup")
                        })).show(), t || l.addGraphicalElement("resizeBox", u), A && (d /= m.scaleX, h /= m.scaleY), d > C && d < _ && h > w && h < k && (a.allowMove = !0), e.target._isTrackerElem && (a.allowMove = !1);
                        break;
                    case "end":
                        n = {
                            chart: i,
                            selectionLeft: (p = u.getBBox()).x,
                            selectionTop: p.y,
                            selectionHeight: p.height,
                            selectionWidth: p.width,
                            originalEvent: e.originalEvent
                        }, a.isDragged && (a.selectionEnd && a.selectionEnd(n), a.isDragged = 0), u.hide(), delete a.oy, delete a.ox;
                        break;
                    default:
                        if (!a.allowMove) return;
                        f = d - a.ox, g = h - a.oy, p = a.bBox, v = a.ox, b = a.oy, A && (v /= m.scaleX, b /= m.scaleY), a.isDragged || (n = {
                            chart: i,
                            selectionLeft: (y ? te(v, v + f) : C) + .5 * S,
                            selectionTop: (x ? te(b, b + g) : w) + .5 * S,
                            selectionHeight: 0,
                            selectionWidth: 0,
                            originalEvent: e.originalEvent
                        }, a.selectionStart && a.selectionStart(n), a.isDragged = 1), A && (f /= m.scaleX, g /= m.scaleY), f = -(v - te(v - (v - ee(v + f, C)), _)), g = -(b - te(b - (b - ee(b + g, w)), k)), o.setAnimation({
                            el: u,
                            attr: {
                                x: (y ? te(v, v + f) : C) + .5 * S,
                                y: (x ? te(b, b + g) : w) + .5 * S,
                                width: y ? X(f) : a.canvasW,
                                height: x ? X(g) : a.canvasH
                            }
                        })
                }
            }

            function Ee(e) {
                var t = e.data,
                    r = e.originalEvent,
                    n = r.target || r.originalTarget || r.srcElement || r.relatedTarget || r.fromElement,
                    a = r.type,
                    i = r.layerX,
                    o = r.layerY;
                i === u && (i = r.pageX - t.chartPosLeft, o = r.pageY - t.chartPosTop), "mousedown" === a && (n.ishot = i > t.canvasX && i < t.canvasX2 && o > t.canvasY && o < t.canvasY2), "mouseup" === a && setTimeout((function() {
                    n.ishot = !1
                }), 1)
            }

            function Ae() {
                var e, t, r;
                for (t = 0, r = arguments.length; t < r; t += 1)
                    if ((e = arguments[t]) || !1 === e || 0 === e) return e;
                return ""
            }

            function Te(e) {
                return e && e.replace(/\$/g, "$$$$")
            }

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

            function Me() {
                var e, t, r;
                for (t = 0, r = arguments.length; t < r; t += 1)
                    if ((e = arguments[t]) || !1 === e || 0 === e) return e;
                return u
            }

            function De(e, t) {
                fe(e.substr(0, e.indexOf("__FC_ARG_SEP__")).replace(/\s/g, ""), e.substr(e.indexOf("__FC_ARG_SEP__")).replace(/__FC_ARG_SEP__/, ""), t)
            }

            function Fe(e) {
                /^j\s*\-/.test(e) ? De(e.replace(/^j\s*\-/, "").replace(/\-/, "__FC_ARG_SEP__")) : De(e.replace(/^javascript\s*\:/i, "").replace(/[\'\"]?\s*\,\s*[\'\"]?/g, "__FC_ARG_SEP__").replace(/\(\s*[\'\"]?(.*)\)\;?/, "__FC_ARG_SEP__$1").replace(/[\'\"]?$/, ""), !0)
            }

            function Ie(e, t) {
                var r = $(10, t);
                return Y(e * r) / r
            }

            function Le(e, t, r) {
                return r || r === u ? [e, t] : "none"
            }

            function Oe(e, t) {
                return "object" != typeof e ? "" : ((e.fontSize || e["font-size"]) && (!e.fontSize && e["font-size"] && (e.fontSize = e["font-size"], delete e["font-size"]), e.lineHeight = 1.2 * (parseFloat(e.fontSize) || t || 10) + "px", delete e["line-height"]), !e.lineHeight && e["line-height"] && (e.lineHeight = e["line-height"], delete e["line-height"]), e.lineHeight)
            }

            function Re(e, t) {
                return e - t
            }

            function Pe(e, t) {
                return t - e
            }
            t.appliedCSS = ["fontFamily", "fontSize", "fontWeight", "fontStyle"], t.preDefStr = xe, t.regex = ye, t.chartAPI = void 0, t.getAxisLimits = ve, t.parseTooltext = me, t.gradientify = pe, t.toRaphaelColor = ge, t.getViewPortDimension = he, t.getEventCoordinate = de, t.isArray = ue, t.createElement = function(e, t, r) {
                var n, a = T.createElement(e);
                for (n in t) a.setAttribute(n, t[n]);
                return r && r.appendChild && r.appendChild(a), a
            }, t.animHelperFN = {
                getTimeByValue: function(e, t, r) {
                    var n = (e.end - e.start) / (t.endPx - t.startPx);
                    return {
                        start: e.start + n * (r.startPx - t.startPx),
                        end: e.start + n * (r.endPx - t.startPx)
                    }
                },
                animByWeight: function(e, t, r, n, a) {
                    var i = n || 1,
                        o = t,
                        s = a || 0;
                    return {
                        start: e / --o * r * i + s,
                        end: e / o * r * i + r + s
                    }
                }
            }, t.rgbaToHex = function(e) {
                var t = e.replace("rgba(", "").split(",");
                return "#" + ("000000" + (t[0] << 16 | t[1] << 8 | t[2]).toString(16)).slice(-6)
            }, t.polyPathToPath = function(e) {
                var t, r, n, a, i, o = e[0],
                    s = e[1],
                    l = e[2],
                    c = e[3],
                    u = e[4],
                    d = e[5];
                if (t = [], o = k.parseInt(o, 10) || 0, s = j(s) || 0, l = j(l) || 0, c = j(c) || 0, u = null === u || isNaN(u) ? .5 * Math.PI : u % 360 * (Math.PI / 180), d = null === d || isNaN(d) ? 0 : j(d), a = u, o > 2) switch (r = 2 * Math.PI / o, d) {
                    case 0:
                        for (n = 0; n < o; n++) t.push("L", s + c * Math.cos(-a), l + c * Math.sin(-a)), a += r;
                        t[0] = "M", t.push("Z");
                        break;
                    case 1:
                        for (n = 0; n < o; n++) t.push("M", s, l, "L", s + c * Math.cos(-a), l + c * Math.sin(-a)), a += r;
                        break;
                    default:
                        for (r *= .5, i = c * Math.cos(r) * (1 - d), n = 0; n < o; n++) t.push("L", s + c * Math.cos(-a), l + c * Math.sin(-a)), a += r, t.push("L", s + i * Math.cos(-a), l + i * Math.sin(-a)), a += r;
                        t[0] = "M", t.push("Z")
                } else 0 === c ? t.push("M", s, l, "L", s, l, "Z") : t.push("M", s - c, l, "A", c, c, 0, 0, 0, s + c, l, "A", c, c, 0, 0, 0, s - c, l, "Z");
                return t
            }, t.removeHtmlAttrs = function(e) {
                return void 0 === e && (e = {}), ce.forEach((function(t) {
                    return delete e[t]
                })), e
            }, t.crispBound = function(e, t, r, n, a, i, o) {
                void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === r && (r = 0), void 0 === n && (n = 0), void 0 === a && (a = 0), void 0 === i && (i = {});
                var s = a;
                if (n < 1 || r < 1) return {
                    x: e,
                    y: t,
                    width: r,
                    height: n,
                    "stroke-width": s
                };
                (s >= r || s >= n) && (s = Math.floor(Math.min(r, n) / 2) || s);
                var l = e,
                    c = t,
                    u = e + r,
                    d = s / 2,
                    h = s % 2,
                    f = t + n;
                return c = i.top ? Math.round(c) + d - le : h ? Math.floor(c) + .5 - le : Math.round(c) - le, f = i.bottom ? Math.round(f) - d - le : o && i.top ? Math.round(f) + d - le : h ? Math.floor(f) + .5 - le : Math.round(f) - le, l = i.left ? Math.round(l) + d - le : o && i.right ? Math.round(l) - d - le : h ? Math.floor(l) + .5 - le : Math.round(l) - le, u = i.right ? Math.round(u) - d - le : h ? Math.floor(u) + .5 - le : Math.round(u) - le, {
                    x: l,
                    y: c,
                    width: Math.abs(u - l),
                    height: Math.abs(f - c),
                    "stroke-width": s
                }
            }, t.supportedStyle = {
                font: "font",
                fontFamily: "font-family",
                "font-family": "font-family",
                fontWeight: "font-weight",
                "font-weight": "font-weight",
                fontSize: "font-size",
                "font-size": "font-size",
                lineHeight: "line-height",
                "line-height": "line-height",
                textDecoration: "text-decoration",
                "text-decoration": "text-decoration",
                color: "color",
                whiteSpace: "white-space",
                "white-space": "white-space",
                padding: "padding",
                margin: "margin",
                background: "background",
                backgroundColor: "background-color",
                "background-color": "background-color",
                backgroundImage: "background-image",
                "background-image": "background-image",
                backgroundPosition: "background-position",
                "background-position": "background-position",
                backgroundPositionLeft: "background-position-left",
                "background-position-left": "background-position-left",
                backgroundPositionTop: "background-position-top",
                "background-position-top": "background-position-top",
                backgroundRepeat: "background-repeat",
                "background-repeat": "background-repeat",
                border: "border",
                borderColor: "border-color",
                "border-color": "border-color",
                borderStyle: "border-style",
                "border-style": "border-style",
                borderThickness: "border-thickness",
                "border-thickness": "border-thickness",
                borderTop: "border-top",
                "border-top": "border-top",
                borderTopColor: "border-top-color",
                "border-top-color": "border-top-color",
                borderTopStyle: "border-top-style",
                "border-top-style": "border-top-style",
                borderTopThickness: "border-top-thickness",
                "border-top-thickness": "border-top-thickness",
                borderRight: "border-right",
                "border-right": "border-right",
                borderRightColor: "border-right-color",
                "border-right-color": "border-right-color",
                borderRightStyle: "border-right-style",
                "border-right-style": "border-right-style",
                borderRightThickness: "border-right-thickness",
                "border-right-thickness": "border-right-thickness",
                borderBottom: "border-bottom",
                "border-bottom": "border-bottom",
                borderBottomColor: "border-bottom-color",
                "border-bottom-color": "border-bottom-color",
                borderBottomStyle: "border-bottom-style",
                "border-bottom-style": "border-bottom-style",
                borderBottomThickness: "border-bottom-thickness",
                "border-bottom-thickness": "border-bottom-thickness",
                borderLeft: "border-left",
                "border-left": "border-left",
                borderLeftColor: "border-left-color",
                "border-left-color": "border-left-color",
                borderLeftStyle: "border-left-style",
                "border-left-Style": "border-left-style",
                borderLeftThickness: "border-left-thickness",
                "border-left-thickness": "border-left-thickness"
            }, t.chartPaletteStr = se, t.normalizeAngle = function(e, t) {
                var r = t ? 360 : oe,
                    n = (e || 0) % r;
                return n < 0 ? r + n : n
            }, t.MathExt = ie, t.xssEncode = function(e) {
                var t = e;
                return null == t || "function" != typeof t.toString ? "" : t = t.toString().replace(/&/g, "&amp;").replace(/\'/g, "&#39;").replace(/\"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;")
            }, t.isXSSSafe = function(e, t) {
                return (!t || null === R.exec(e)) && null === O.exec(e)
            }, t.domInsertModes = {
                REPLACE: "replace",
                APPEND: "append",
                PREPEND: "prepend"
            }, t.defaultGaugePaletteOptions = ae, t.txtLabel = Z, t.hasTouch = J, t.touchEnabled = K, t.mathRound = Y, t.mathAbs = X, t.validhexcolor = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i, t.cleanColorCode = W, t.startsRGBA = z, t.dropHash = U, t.TXT_REGEX = H, t.visibleStr = "visible", t.hiddenStr = "hidden", t.animationObjStr = "animationObj", t.configStr = "config", t.lineHeightFactor = 1.2, t.CLICK_THRESHOLD_PIXELS = 5, t.TOUCH_THRESHOLD_PIXELS = 15, t.canvasBorderColorStr = "canvasBorderColor", t.TXT_STRING = B, t.TXT_HREF = V, t.FIT = "fit", t.FILL = "fill", t.TILE = "tile", t.HAND = "pointer", t.POINTER = "pointer", t.BOLD = "bold", t.NORMAL = "normal", t.UNDERSCORE = "_", t.ROUND = "round", t.canvasBGAlphaStr = "canvasBgAlpha", t.TEXTANCHOR = "text-anchor", t.COMMASPACE = ", ", t.PXSTRING = "px", t.VISIBLE = "visible", t.INITIALSTR = "initial", t.FINALSTR = "final", t.HUNDREDSTRING = "100", t.SHAPE_RECT = "rect", t.FC_CONFIG_STRING = "_FCconf", t.POSITION_END = "end", t.POSITION_START = "start", t.MIDDLESTR = t.POSITION_MIDDLE = "middle", t.POSITION_BOTTOM = "bottom", t.POSITION_TOP = "top", t.STRINGUNDEFINED = "undefined", t.DECIMALSTRING = ".", t.ONESTRING = "1", t.TESTSTR = "Ag", t.MOUSEMOVE = "fc-mousemove", t.MOUSEOUT = "fc-mouseout", t.ZEROSTRING = "0", t.COMMA = ",", t.COMMASTRING = ",", t.BLANKSTRING = "", t.BLANK = "", t.OBJECTSTRING = "object", t.STRINGSTRING = "string", t.BREAKSTRING = "<br />", t.HASHSTRING = "#", t.COLOR_TRANSPARENT = "rgba(0,0,0,0)", t.COLOR_WHITE = "FFFFFF", t.COLOR_GLASS = "rgba(255, 255, 255, 0.3)", t.COLOR_BLACK = "000000", t.SAMPLESTRING = "Ay0", t.BLANKSTRINGPLACEHOLDER = "#BLANK#", t.UNDEF = u, t.POSITION_CENTER = "center", t.POSITION_LEFT = "left", t.POSITION_RIGHT = "right", t.POSITION_ABSOLUTE = "absolute", t.TRACKER_FILL = P, t.attrTypeBool = 2, t.attrTypeNum = 1, t.DEFAULT_FT_FONT = "Helvetica, Arial, sans-serif", t.isIpad = L, t.isEdge = I, t.isIE = F, t.isIE11 = D, t.hasSVG = M, t.isFirefox = A, t.isIE9 = E, t.getEmptyConstractor = function() {
                return S
            }, t.stubFN = S, t.DASH_DEF = "none", t.BGRATIOSTRING = void 0;
            t.isSimilarObject = function(e, t) {
                if (Object.keys(e).length !== Object.keys(t).length) return !1;
                var r;
                for (r in e)
                    if (e[r] !== t[r]) return !1;
                return !0
            }, t.snapPoint = function(e, t, r) {
                for (var n = t.length, a = r.lastSnap, i = 1, o = n, s = r.config.setValue; o--;)
                    if (X(t[o] - s) < e.snapPixel) {
                        a !== o && (r.lastSnap = e.datasetConf.snapToDivOnly ? u : o, s = t[o]), i = 0;
                        break
                    }
                return i && (r.lastSnap = u), s
            }, t.datasetFactory = function(e, t, r, n, a, i) {
                if (void 0 === n && (n = 1), void 0 === i && (i = []), e && t && r) {
                    var o, s, l, c = e.getChildren(r) || [];
                    for (o = 0; o < n; o += 1) c && c[o] && !c[o].getState("removed") ? l = c[o] : (l = new t, e.attachChild(l, r)), l.config._childIndex = o, l.setState("_total", n), l.setJSONIndex && l.setJSONIndex(i[o] || o), a && a.length > o && l.configure && l.configure(a[o]);
                    if (o < (s = c && c.length))
                        for (; o < s; o += 1) c[o] && c[o].remove && c[o].remove()
                }
            }, t.componentFactory = function(e, t, r, n, a) {
                if (void 0 === n && (n = 1), e && t && r) {
                    var i, o, s, l = e.getChildren(r) || [];
                    for (i = 0; i < n; i += 1) l && l[i] && !l[i].getState("removed") ? s = l[i] : (s = new t, e.attachChild(s, r)), a && a.length > i && s.configure && s.configure(a[i]);
                    if (i < (o = l && l.length))
                        for (; i < o; i += 1) l[i] && l[i].remove && l[i].remove()
                }
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.parseConfiguration = function(e, r, i, o, s, l) {
                var c, u, d, h = 1,
                    f = o,
                    g = l,
                    p = s;
                for (c in t.attribDefs = n = n || a, f = f || a, g = g || a, p = p || {}, e)
                    if (!f[c] && ((u = e[c]) || !1 === u || 0 === u)) switch ((d = g[c] || n[c]) && d.type) {
                        case 1:
                            u = Number(u), isNaN(u) || (r[c] = u);
                            break;
                        case 2:
                            u = Number(u), isNaN(u) || (r[c] = !!u);
                            break;
                        default:
                            r[c] = u
                    }
                    if (i)
                        for (c in r) void 0 === r[c] && (d = g[c] || n[c]) && d.pAttr && (r[c] = i[d.pAttr]);
                for (; h;)
                    for (c in h = 0, r) void 0 === r[c] && (d = g[c] || n[c]) && (d.attr ? void 0 !== (u = r[d.attr]) && (r[c] = u, h += 1) : d.parser && void 0 !== (u = d.parser(r, i, p)) && (r[c] = u, h += 1))
            }, t.setAttribDefs = function(e, r) {
                var a, i;
                t.attribDefs = n = n || {}, "string" == typeof e ? (a = {})[e] = r : a = e;
                for (i in a) n[i] || (n[i] = a[i])
            }, t.hasAttribDefs = function(e) {
                return !!n[e]
            }, t.attribDefs = void 0;
            var n, a = {},
                i = Math.max;
            t.attribDefs = n, t.attribDefs = n = {
                setBorderWidth: {
                    type: 1,
                    pAttr: "plotborderthickness"
                },
                plotborderthickness: {
                    type: 1,
                    pAttr: "plotborderthickness"
                },
                showBorderEffect: {
                    parser: function() {
                        var e = arguments[1],
                            t = .1;
                        return 1 == +e.showplotborder && e.plotborderthickness === t ? 1 : 0
                    }
                },
                alphaanimation: {
                    type: 1
                },
                showplotborder: {
                    type: 1,
                    pAttr: "showplotborder"
                },
                zeroplanethickness: {
                    type: 1
                },
                showzeroplaneontop: {
                    type: 1
                },
                stickytracking: {
                    type: 1
                },
                usemessagelog: {
                    type: 1
                },
                showtooltip: {
                    type: 1,
                    pAttr: "showtooltip"
                },
                seriesnameintooltip: {
                    type: 1
                },
                plothovereffect: {
                    type: 1,
                    attr: "anchorhovereffect"
                },
                anchorhovereffect: {
                    type: 1,
                    attr: "showhovereffect"
                },
                showhovereffect: {
                    type: 1
                },
                linethickness: {
                    type: 1,
                    pAttr: "linethickness"
                },
                dashed: {
                    type: 1,
                    pAttr: "linedashed"
                },
                linedashed: {
                    type: 1,
                    attr: "plotborderdashed"
                },
                plotborderdashed: {
                    type: 1,
                    pAttr: "plotborderdashed"
                },
                linedashlen: {
                    type: 1,
                    pAttr: "linedashlen"
                },
                linedashgap: {
                    type: 1,
                    pAttr: "linedashgap"
                },
                anchoralpha: {
                    pAttr: "anchoralpha"
                },
                anchorsides: {
                    type: 1,
                    pAttr: "anchorsides"
                },
                anchorradius: {
                    type: 1,
                    pAttr: "anchorradius"
                },
                anchorbgalpha: {
                    pAttr: "anchorbgalpha"
                },
                anchorbgcolor: {
                    pAttr: "anchorbgcolor"
                },
                anchorbordercolor: {
                    pAttr: "anchorbordercolor"
                },
                anchorstartangle: {
                    type: 1,
                    pAttr: "anchorstartangle"
                },
                anchorimageurl: {
                    pAttr: "anchorimageurl"
                },
                anchorimagescale: {
                    type: 1,
                    pAttr: "anchorimagescale"
                },
                anchorimagealpha: {
                    pAttr: "anchorimagealpha"
                },
                anchorimagepadding: {
                    type: 1,
                    pAttr: "anchorimagepadding"
                },
                anchorborderthickness: {
                    type: 1,
                    pAttr: "anchorborderthickness"
                },
                anchorshadow: {
                    type: 1,
                    pAttr: "anchorshadow"
                },
                valuepadding: {
                    type: 1,
                    pAttr: "valuepadding"
                },
                valueposition: {
                    pAttr: "valueposition"
                },
                plotfillangle: {
                    type: 1,
                    pAttr: "plotfillangle"
                },
                useplotgradientcolor: {
                    type: 1
                },
                rotatevalues: {
                    type: 1,
                    pAttr: "rotatevalues"
                },
                includeinlegend: {
                    type: 1
                },
                connectnulldata: {
                    type: 1
                },
                plotfillalpha: {
                    pAttr: "plotfillalpha"
                },
                alpha: {
                    pAttr: "linealpha"
                },
                linealpha: {
                    pAttr: "plotfillalpha"
                },
                showvalues: {
                    type: 1,
                    pAttr: "showvalues"
                },
                showpercentvalues: {
                    type: 1,
                    parser: function(e) {
                        return e.isstacked && e.stack100percent ? 1 : 0
                    }
                },
                showpercentintooltip: {
                    type: 1,
                    parser: function(e) {
                        return e.isstacked && e.stack100percent ? 1 : 0
                    }
                },
                stack100percent: {
                    type: 1,
                    attr: "usepercentdistribution"
                },
                drawfullareaborder: {
                    type: 1
                },
                use3dlineshift: {
                    type: 1
                },
                parentyaxis: {
                    type: 1
                },
                radarborderthickness: {
                    type: 1
                },
                radarborderradius: {
                    type: 1
                },
                gaugeoriginx: {
                    type: 1
                },
                hasgaugeoriginx: {
                    attr: "gaugeoriginx"
                },
                gaugeoriginy: {
                    type: 1
                },
                hasgaugeoriginy: {
                    attr: "gaugeoriginy"
                },
                gaugeradius: {
                    type: 1
                },
                hasgaugeradius: {
                    attr: "gaugeradius"
                },
                showgaugeborder: {
                    type: 1
                },
                setAdaptiveMin: {
                    type: 1
                },
                adjustDiv: {
                    type: 1
                },
                axisNameWidth: {
                    type: 1
                },
                rotateAxisName: {
                    type: 1
                },
                useEllipsesWhenOverflow: {
                    type: 1
                },
                showZeroPlane: {
                    type: 1
                },
                zeroPlaneAlpha: {
                    type: 1
                },
                showZeroPlaneValue: {
                    type: 1
                },
                zeroPlaneOnTop: {
                    type: 1
                },
                trendlineThickness: {
                    type: 1
                },
                showTrendlinesOnTop: {
                    type: 1
                },
                trendlinesAreDashed: {
                    type: 1
                },
                trendlinesDashLen: {
                    type: 1
                },
                trendlinesDashGap: {
                    type: 1
                },
                showTrendlines: {
                    type: 1
                },
                showTrendlineLabels: {
                    type: 1
                },
                showLabels: {
                    type: 1
                },
                rotateLabels: {
                    type: 1
                },
                slantLabel: {
                    type: 1
                },
                showAxisValues: {
                    type: 1
                },
                showTooltip: {
                    type: 1
                },
                maxLabelHeight: {
                    type: 1
                },
                useroundedges: {
                    type: 1,
                    pAttr: "useroundedges"
                },
                placevaluesinside: {
                    type: 1
                },
                plotpaddingpercent: {
                    type: 1
                },
                use3dlighting: {
                    type: 1,
                    pAttr: "use3dlighting"
                },
                usedataplotcolorforlabels: {
                    type: 1
                },
                plotspacepercent: {
                    type: 1,
                    parser: function(e) {
                        return i(e.plotspacepercent % 100, 0)
                    }
                },
                ratio: {
                    pAttr: "plotfillratio"
                },
                base: {
                    type: 1
                },
                showMinorDivLineValues: {
                    type: 1
                },
                numMinorDivLines: {
                    type: 1
                },
                majorTMNumber: {
                    type: 1
                },
                majorTMHeight: {
                    type: 1
                },
                showTickMarks: {
                    type: 1
                },
                majorTMThickness: {
                    type: 1
                },
                adjustTM: {
                    type: 2
                },
                minorTMNumber: {
                    type: 1
                },
                minorTMThickness: {
                    type: 1
                },
                tickMarkDistance: {
                    type: 1
                },
                placeTicksInside: {
                    type: 1
                },
                placeValuesInside: {
                    type: 1
                },
                axisValuePadding: {
                    type: 1
                },
                gridLineWidth: {
                    type: 1
                },
                showRadarBorder: {
                    type: 1
                },
                radarBorderThickness: {
                    type: 1
                },
                maxcolwidth: {
                    type: 1,
                    parser: function(e) {
                        return Math.abs(e.maxcolwidth)
                    }
                },
                maxbarheight: {
                    type: 1,
                    parser: function(e) {
                        return Math.abs(e.maxbarheight)
                    }
                },
                plotborderalpha: {
                    parser: function(e, t) {
                        return t.plotborderalpha || e.plotfillalpha
                    }
                },
                autoscale: {
                    type: 1
                },
                plotborderdashlen: {
                    type: 1,
                    pAttr: "plotborderdashlen"
                },
                plotborderdashgap: {
                    type: 1,
                    pAttr: "plotborderdashgap"
                },
                plotfillratio: {
                    pAttr: "plotfillratio"
                },
                drawverticaljoins: {
                    type: 1,
                    pAttr: "drawverticaljoins"
                },
                useforwardsteps: {
                    type: 1,
                    pAttr: "useforwardsteps"
                },
                minimizetendency: {
                    type: 1
                },
                usepercentdistribution: {
                    type: 1
                },
                stepatmiddle: {
                    type: 1
                }
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a, i, o, s = n(r(196)),
                l = window,
                c = l.document,
                u = "ontouchstart" in l,
                d = "click",
                h = "touchstart",
                f = "touchend",
                g = "touchmove",
                p = "mouseout",
                m = "mouseover",
                v = "keydown",
                b = ((o = {}).pointerdrag = {
                    start: ["mousedown"],
                    end: ["mouseup"],
                    onStart: ["mousemove"],
                    postHandlers: {},
                    preHandlers: {}
                }, o.pointerhover = {
                    start: [m],
                    end: [p]
                }, o.click = {
                    start: [d]
                }, o.escape = {
                    start: [v],
                    preHandlers: {
                        start: function(e) {
                            var t = e || l.event;
                            return !(!t.keyCode || 27 !== t.keyCode)
                        }
                    }
                }, u && ((i = o.pointerdrag).start.push(h), i.end.push(f), i.onStart.push(g), i.postHandlers.onStart = function(e) {
                    e.preventDefault ? e.preventDefault() : e.returnValue = !1
                }), o);
            a = (0, s["default"])({}, b);
            var y = new function() {
                var e = {},
                    t = {},
                    r = c.addEventListener ? function(e, t, r) {
                        e.addEventListener(t, r, !1)
                    } : function(e, t, r) {
                        e.attachEvent("on" + t, r)
                    },
                    n = c.removeEventListener ? function(e, t, r) {
                        e.removeEventListener(t, r, !1)
                    } : function(e, t, r) {
                        e.detachEvent("on" + t, r)
                    },
                    i = function(e, t, a, i) {
                        var o = i || "closure";
                        return r(e, t, a[o]),
                            function() {
                                n(e, t, a[o])
                            }
                    },
                    o = function(e, t, r) {
                        var n, o, s, c, u = [];
                        if (c = a[t], r.start = function(t) {
                                for (var n = c.onStart, a = c.end, o = [], s = [], u = n && n.length || 0, d = t || l.event; u--;) o.push(i(e, n[u], r, "onStart"));
                                for (u = a && a.length || 0; u--;) s.push(i(e, a[u], r, "end"));
                                r.startUn = r.startUn ? r.startUn.concat(o) : o, r.endUn = r.endUn ? r.endUn.concat(s) : s, r.state = "start", r.closure(d)
                            }, r.onStart = function(e) {
                                var t = e || l.event;
                                r.state = "on", r.gDef && r.gDef.preHandlers && "function" == typeof r.gDef.preHandlers.onStart && r.gDef.preHandlers.onStart(t), r.closure(t), r.gDef && r.gDef.postHandlers && "function" == typeof r.gDef.postHandlers.onStart && r.gDef.postHandlers.onStart(t)
                            }, r.end = function(e) {
                                for (var t = r.startUn, n = r.endUn, a = t && t.length || 0, i = e || l.event; a--;) t[a]();
                                for (delete r.startUn, r.startUn = [], a = n && n.length || 0; a--;) n[a]();
                                delete r.endUn, r.endUn = [], r.state = "end", r.closure(i)
                            }, c)
                            for (s = (n = c.start).length; s--;)(o = n[s]) && u.push(i(e, o, r, "start"));
                        return u
                    },
                    u = function(e, t, r) {
                        var i, o, s, l;
                        if (l = a[t])
                            for (s = (i = l.start).length; s--;)(o = i[s]) && n(e, o, r.start)
                    },
                    d = function(e) {
                        return function(t) {
                            var r = e.context || e.elem,
                                n = t.originalEvent || t;
                            n = n || l.event, e.handler.call(r, {
                                data: e.data,
                                type: e.type,
                                state: e.state,
                                isGesture: e.isGesture,
                                target: n.target || n.srcElement,
                                originalEvent: n
                            })
                        }
                    };
                return {
                    listen: function(r, n, s, l, u) {
                        var h, f, g, p, m, v = this,
                            b = "string" == typeof n ? n.split(" ") : n,
                            y = b.length,
                            x = [],
                            w = function(e, t, r) {
                                x.push((function() {
                                    v.unlisten(e, t, r)
                                }))
                            };
                        if (r.ownerDocument && r.ownerDocument === c)
                            for (; y--;) f = b[y], p = Boolean(a[f]), (g = {
                                handler: m = "function" == typeof s ? s : s[y],
                                elem: r,
                                type: f,
                                isGesture: p,
                                gDef: p ? a[f] : null,
                                data: l,
                                context: u,
                                start: [],
                                end: [],
                                links: {
                                    prev: null,
                                    next: null
                                }
                            }).closure = d(g), p ? ((h = t[f]) || (h = t[f] = []), h.push(g), o(r, f, g)) : ((h = e[f]) || (h = e[f] = []), h.push(g), i(r, f, g)), w(r, f, m);
                        else
                            for (; y--;) f = b[y], (g = {
                                handler: m = "function" == typeof s ? s : s[y],
                                elem: r,
                                type: f,
                                isGesture: p,
                                data: l,
                                context: u,
                                start: [],
                                end: [],
                                links: {
                                    prev: null,
                                    next: null
                                }
                            }).closure = d(g), (h = e[f]) || (h = e[f] = []), h.push(g), i(r, f, g), w(r, f, m);
                        return {
                            unlisten: function() {
                                for (var e = x.length; e--;) x[e]();
                                x.length = 0, x = null
                            }
                        }
                    },
                    unlisten: function(r, i, o) {
                        var s, l, c, d = !1;
                        if (Boolean(a[i]))
                            for (l = (s = t[i]) && s.length || 0; l--;)(c = s[l]).handler === o && c.elem === r && (u(r, i, c), s.splice(l, 1), d = !0);
                        else
                            for (l = (s = e[i]) && s.length || 0; l--;)(c = s[l]).handler === o && c.elem === r && (n(r, i, c.closure), s.splice(l, 1), d = !0);
                        return d
                    },
                    fire: function(t, r, n, a) {
                        var i, o, l, u;
                        if (t.ownerDocument && t.ownerDocument === c) c.createEvent ? ((u = c.createEvent("HTMLEvents")).initEvent(r, !0, !0), n && n.originalEvent && (n.originalEvent = u), "function" == typeof t[r] && t[r](), t.dispatchEvent(u), a && !u.returnValue && a(u)) : ((u = c.createEventObject()).eventType = r, n && (n.originalEvent ? n.originalEvent = u : (0, s["default"])(u, n)), "function" == typeof t[r] && t[r](), t.fireEvent("on" + r, u), a && !u.returnValue && a(u));
                        else
                            for (o = (i = e[r]) && i.length || 0; o--;)(l = i[o]).elem === t && l.closure(n)
                    }
                }
            };
            t["default"] = y
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e, t, r, n) {
                var a;
                if ("object" != typeof e && "object" != typeof t) return null;
                if ("object" != typeof t || null === t) return e;
                void 0 === e && (e = t instanceof Array ? [] : {});
                if (n)
                    for (a in t) e[a] = t[a];
                else i(e, t, r);
                return e
            }, t.cacher = t.showRecursively = t.loadRefImage = t.dashedAttr2CSSMap = t.getArrayCopy = t.merge = void 0;
            var n = function(e, t) {
                    for (var r = t.length, n = -1; r--;)
                        if (e === t[r]) return n = r;
                    return n
                },
                a = function(e) {
                    var t, r, n;
                    for (t = 0, r = e.length, n = new Array(r); t < r; t++) n[t] = e[t];
                    return n
                },
                i = function o(e, t, r, a, i) {
                    var s, l, c, u, d;
                    if (i ? (a.push(e), i.push(t)) : (a = [e], i = [t]), t instanceof Array)
                        for (s = 0; s < t.length; s += 1) {
                            try {
                                l = e[s], c = t[s]
                            } catch (h) {
                                continue
                            }
                            "object" != typeof c ? r && void 0 === c || (e[s] = c) : (null !== l && "object" == typeof l || (l = e[s] = c instanceof Array ? [] : {}), -1 !== (d = n(c, i)) ? l = e[s] = a[d] : o(l, c, r, a, i))
                        } else
                            for (s in t) {
                                try {
                                    l = e[s], c = t[s]
                                } catch (h) {
                                    continue
                                }
                                null !== c && "object" == typeof c ? "[object Object]" === (u = Object.prototype.toString.call(c)) ? (null !== l && "object" == typeof l || (l = e[s] = {}), -1 !== (d = n(c, i)) ? l = e[s] = a[d] : o(l, c, r, a, i)) : "[object Array]" === u ? (null !== l && l instanceof Array || (l = e[s] = []), -1 !== (d = n(c, i)) ? l = e[s] = a[d] : o(l, c, r, a, i)) : e[s] = c : e[s] = c
                            }
                    return e
                };
            t.merge = i, t.getArrayCopy = a, t.showRecursively = function(e) {
                for (var t = {}, r = e, n = t; r;) r.node && r.node.style && "none" === r.node.style.display && (r.show(), n._doHide = !0), r = r.parent, n.parent = {}, n = n.parent;
                return function() {
                    for (var r = e, n = t; r;) n._doHide && r.hide(), r = r.parent, n = n.parent
                }
            }, t.loadRefImage = function(e, t) {
                var r = t.src,
                    n = e._.RefImg;
                n || (n = e._.RefImg = new Image), t.src !== undefined && (n.src = r, e._.RefImg = n)
            }, t.dashedAttr2CSSMap = {
                "font-family": "fontFamily",
                "font-size": "fontSize",
                "text-anchor": "textAnchor",
                "font-weight": "fontWeight",
                "letter-spacing": "letterSpacing",
                "font-style": "fontStyle"
            };
            t.cacher = function(e, t, r, n, i, o, s) {
                var l = o || {},
                    c = 0;
                return l.__start === undefined && (l.__start = null), l.__end === undefined && (l.__end = null), i = i || 1e3, n = n || "item",
                    function(o) {
                        var u, d, h, f = s ? o : a(arguments).join("␀");
                        return (u = l[f = "" === f ? "__blank" : f]) ? u.__prev && (l[u.__prev].__next = u.__next, u.__next ? u.__next.__prev = u.__prev : l.__end = u.__prev) : (u = l[f] = {}, e && (l[f][n] = r ? r(e.apply(t, arguments)) : e.apply(t, arguments)), null === l.__end && (l.__end = f), ++c > i && l.__end && (d = l[l.__end], l[d.__prev].__next = null, delete l[l.__end], l.__end = d.__prev, c--)), (h = l.__start) !== u && (u.__prev = null, u.__next = h, h && (h.__prev = f), l.__start = u), l[f][n]
                    }
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.convertColor = function(e, t, r) {
                var n, a, i = 0,
                    o = 0,
                    s = 0,
                    l = t;
                r && r.match(u) && (a = r.split(","), i = a[0].slice(a[0].indexOf("(") + 1), o = a[1], s = a[2], l || 0 === l || (l = parseInt(100 * a[3].slice(0, a[3].indexOf(")")), 10)));
                if (e)
                    if (e.match(u)) a = e.split(","), i = a[0].slice(a[0].indexOf("(") + 1), o = a[1], s = a[2];
                    else {
                        switch ((n = e.replace(d, "").split(",")[0]).length) {
                            case 3:
                                n = n.charAt(0) + n.charAt(0) + n.charAt(1) + n.charAt(1) + n.charAt(2) + n.charAt(2);
                                break;
                            case 6:
                                break;
                            default:
                                n = (n + "FFFFFF").slice(0, 6)
                        }
                        i = parseInt(n.slice(0, 2), 16) || 0, o = parseInt(n.slice(2, 4), 16) || 0, s = parseInt(n.slice(4, 6), 16) || 0
                    }
                l || 0 === l || (l = 100);
                "string" == typeof l && (l = l.split(",")[0]);
                return l = parseInt(l, 10) / 100, "rgba(" + i + "," + o + "," + s + "," + l + ")"
            }, t.getDarkColor = m, t.getLightColor = v, t.mapSymbolName = function(e, t) {
                var r = n,
                    o = e;
                (o = h(o)) >= 3 && (r = (t ? i : a) + o);
                return r
            }, t.getColumnColor = function(e, t, r, n, a, i, o, s, l) {
                var c, u, d, h, f, g, b, y = e,
                    x = t;
                u = y.split(","), d = x.split(","), h = i.split(","), b = o.split(","), y = y.replace(/\s/g, "").replace(/\,$/, ""), l ? c = {
                    FCcolor: {
                        color: u[0],
                        alpha: d[0]
                    }
                } : a ? (f = u[0], g = d[0], c = {
                    FCcolor: {
                        color: m(f, 75) + "," + v(f, 10) + "," + m(f, 90) + "," + v(f, 55) + "," + m(f, 80),
                        alpha: g + "," + g + "," + g + "," + g + "," + g,
                        ratio: "0,11,14,57,18",
                        angle: s ? "90" : "0"
                    }
                }, h = [m(f, 70)]) : (x = function(e, t, r) {
                    var n, a = e.split(","),
                        i = r;
                    void 0 !== i && (i = Number(i.split(",")[0]));
                    for (i = isNaN(i) ? void 0 : i, a[0] = p(a[0], i), n = 1; n < t; n += 1) a[n] = a[0] * p(a[n], i) / 100;
                    return a.join(",")
                }(x, u.length), c = {
                    FCcolor: {
                        color: y,
                        alpha: x,
                        ratio: r,
                        angle: s ? -n : n
                    }
                });
                return [c, {
                    FCcolor: {
                        color: h[0],
                        alpha: b[0]
                    }
                }]
            }, t.getPointColor = function(e, t) {
                var r = f(e),
                    n = g(t);
                return {
                    FCcolor: {
                        gradientUnits: "objectBoundingBox",
                        cx: .4,
                        cy: .4,
                        r: "100%",
                        color: v(r, 70) + "," + m(r, 50),
                        alpha: n + "," + n,
                        ratio: void 0,
                        radialGradient: !0
                    }
                }
            }, t.getAngle = function(e, t, r) {
                var n = 180 * Math.atan(t / e) / Math.PI;
                2 === r ? n = 180 - n : 3 === r ? n += 180 : 4 === r && (n = 360 - n);
                return n
            }, t.parseColor = b, t.getValidColor = function(e) {
                return c.test(b(e)) && e
            }, t.RGBtoHex = function(e) {
                return ("000000" + (e[0] << 16 | e[1] << 8 | e[2]).toString(16)).slice(-6)
            }, t.rawRGBtoHEX = function(e) {
                var t;
                return ("000000" + ((t = e.match(/[\d+]+/g).splice(0, 3))[0] << 16 | t[1] << 8 | t[2]).toString(16)).slice(-6)
            }, t.HEXtoRGB = function(e) {
                var t = parseInt(e, 16),
                    r = Math.floor(t / 65536),
                    n = Math.floor((t - 65536 * r) / 256),
                    a = Math.floor(t - 65536 * r - 256 * n);
                return [r, n, a]
            }, t.parsePointValue = h, t.getFirstColor = f, t.getFirstAlpha = g;
            var n = "circle",
                a = "poly_",
                i = "spoke_",
                o = Math.abs,
                s = /\s+/g,
                l = /^#?/,
                c = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i,
                u = /^rgba/i,
                d = /[#\s]/gi;

            function h(e, t) {
                var r = e;
                return r = r || !1 === r || 0 === r ? Number(r) : NaN, isNaN(r) ? null : t ? o(r) : r
            }

            function f(e, t) {
                var r = e;
                return "" === (r = (r = r.split(",")[t || 0]).replace(s, "")) && (r = "000000"), r.replace(l, "#")
            }

            function g(e) {
                var t = e;
                return t = parseInt(t, 10), (isNaN(t) || t > 100 || t < 0) && (t = 100), t
            }

            function p(e, t) {
                var r = e;
                return r = Number(r), r = isNaN(r) ? 100 : r, void 0 !== t && (r = r * t / 100), r % 101
            }

            function m(e, t) {
                var r = e,
                    n = t;
                n = n < 0 || n > 100 ? 100 : n, n /= 100, r = r.replace(d, "");
                var a = parseInt(r, 16),
                    i = Math.floor(a / 65536),
                    o = Math.floor((a - 65536 * i) / 256);
                return ("000000" + (i * n << 16 | o * n << 8 | (a - 65536 * i - 256 * o) * n).toString(16)).slice(-6)
            }

            function v(e, t) {
                var r = e,
                    n = t;
                n = n < 0 || n > 100 ? 100 : n, n /= 100, r = r.replace(d, "");
                var a = parseInt(r, 16),
                    i = Math.floor(a / 65536),
                    o = Math.floor((a - 65536 * i) / 256);
                return ("000000" + (256 - (256 - i) * n << 16 | 256 - (256 - o) * n << 8 | 256 - (256 - (a - 65536 * i - 256 * o)) * n).toString(16)).slice(-6)
            }

            function b(e) {
                return e.replace(d, "").replace(l, "#")
            }
        }, function(e, t, r) {
            "use strict";

            function n(e, t, r, n, a, i, o) {
                var s = {};
                switch (t) {
                    case "top":
                        s.y = e;
                        break;
                    case "bottom":
                        s.y = o - a - e;
                        break;
                    case "middle":
                        s.y = (o - a) / 2
                }
                switch (r) {
                    case "left":
                        s.x = e;
                        break;
                    case "right":
                        s.x = i - n - e;
                        break;
                    case "middle":
                        s.x = (i - n) / 2
                }
                return s
            }
            t.__esModule = !0, t.getAlignImage = function(e, t, r, a, i, o, s, l, c, u) {
                var d, h, f, g, p = {};
                switch (r) {
                    case "center":
                        p.width = a, p.height = i, p.y = s / 2 - i / 2, p.x = o / 2 - a / 2;
                        break;
                    case "stretch":
                        p.width = o - 2 * l, p.height = s - 2 * l, p.y = l, p.x = l;
                        break;
                    case "tile":
                        p.width = a, p.height = i, p.tileInfo = {}, p.tileInfo.xCount = h = Math.ceil(c / a), p.tileInfo.yCount = f = Math.ceil(u / i), g = n(l, e, t, a * h, i * f, o, s), p.y = g.y, p.x = g.x;
                        break;
                    case "fit":
                        d = a / i > c / u ? c / a : u / i, p.width = a * d, p.height = i * d, g = n(l, e, t, p.width, p.height, o, s), p.y = g.y, p.x = g.x;
                        break;
                    case "fill":
                        d = a / i > c / u ? u / i : c / a, p.width = a * d, p.height = i * d, g = n(l, e, t, p.width, p.height, o, s), p.y = g.y, p.x = g.x;
                        break;
                    default:
                        g = n(l, e, t, a, i, o, s), p.width = a, p.height = i, p.y = g.y, p.x = g.x
                }
                return p
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function() {
                var e, t, r;
                for (t = 0, r = arguments.length; t < r; t += 1)
                    if (((e = arguments[t]) || !1 === e || 0 === e) && !isNaN(e = Number(e))) return e;
                return
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.setRootSender = t.raiseEventGroup = t.raiseError = t.raiseWarning = t.disposeEvents = t.getListeners = t.triggerEvent = t.removeListener = t.addListener = void 0;
            var n = {},
                a = {},
                i = function(e, t, r, n) {
                    try {
                        e[0].call(t, r, n || {})
                    } catch (a) {
                        setTimeout((function() {
                            throw a
                        }), 0)
                    }
                },
                o = function(e, t, r) {
                    var n, o = 0;
                    if (e instanceof Array && !t.cancelled)
                        for (; o < e.length; o += 1)
                            if (!0 !== e[o].removed) {
                                if (e[o][1] !== t.sender && void 0 !== e[o][1] || (n = e[o][1] === t.sender ? t.sender : a, i(e[o], n, t, r), !0 === t.detached && (e.splice(o, 1), o -= 1, t.detached = !1)), !0 === t.cancelled) break
                            } else e.splice(o, 1), o -= 1
                },
                s = function() {
                    this.originalEvent && this.originalEvent.stopPropagation && this.originalEvent.stopPropagation.call && this.originalEvent.stopPropagation()
                },
                l = function() {
                    this.cancelled = !0, this.originalEvent && this.originalEvent.stopImmediatePropagation && this.originalEvent.stopImmediatePropagation.call ? this.originalEvent.stopImmediatePropagation() : this.originalEvent && this.originalEvent.stopPropagation && this.originalEvent.stopPropagation.call && this.originalEvent.stopPropagation()
                },
                c = function() {
                    return !1 == (this.detached = !0)
                },
                u = function() {
                    this.defaultPrevented = !0, this.originalEvent && this.originalEvent.preventDefault && this.originalEvent.preventDefault.call && this.originalEvent.preventDefault()
                },
                d = {},
                h = 0,
                f = function(e, t, r, n, a, i) {
                    if (!t || !t.disposed) {
                        var f, p, m, v, b, y = e;
                        return y = y.toLowerCase(), p = g(y, t), m = g("*", t), v = d[y], b = d["*"], (p && p.length || m && m.length || v && v.length || b && b.length) && (f = {
                            type: y,
                            eventType: y,
                            eventId: h += 1,
                            sender: t || new Error("Orphan Event"),
                            stopPropagation: s,
                            stopImmediatePropagation: l,
                            cancelled: !1,
                            preventDefault: u,
                            defaultPrevented: !1,
                            originalEvent: n,
                            detached: !1,
                            data: r,
                            detachHandler: c
                        }, o(b, f, r), o(v, f, r), t && (o(g("*", t), f, r), o(g(y, t), f, r))), f && f.defaultPrevented ? i && "function" == typeof i && i.call(t, f, r || {}) : a && "function" == typeof a && a.call(t, f, r || {}), !0
                    }
                },
                g = function(e, t) {
                    var r = e;
                    if ("string" == typeof r) return r = r.toLowerCase(), t ? t._evtListeners && t._evtListeners[r] : d[r];
                    v(t, "03091559", "param", "::removeListener", new Error("Unspecified Event Type"))
                },
                p = {
                    type: "TypeException",
                    range: "ValueRangeException",
                    impl: "NotImplementedException",
                    param: "ParameterException",
                    run: "RuntimeException",
                    comp: "DesignTimeError",
                    undefined: "UnspecifiedException"
                },
                m = function(e, t, r, n, a, i) {
                    var o = "#" + t + " " + (e ? e.id : "unknown-source") + n + " " + i + " >> ";
                    a instanceof Error ? (a.name = p[r], a.module = "FusionCharts" + n, a.level = i, a.message = o + a.message, o = a.message, setTimeout((function() {
                        throw a
                    }), 0)) : o += a, f(i, e, {
                        id: t,
                        nature: p[r],
                        source: "FusionCharts" + n,
                        message: o
                    })
                },
                v = function(e, t, r, n, a) {
                    m(e, t, r, n, a, "Error")
                };
            t.setRootSender = function(e) {
                void 0 === e && (e = {}), a = e
            }, t.raiseEventGroup = function(e, t, r, a, i, o, s) {
                var l = a.id,
                    c = e + l;
                n[c] ? (clearTimeout(n[c]), delete n[c]) : l && c ? n[c] = setTimeout((function() {
                    f(t, a, r, i, o, s), delete n[c]
                }), 0) : f(t, a, r, i, o, s)
            }, t.raiseWarning = function(e, t, r, n, a) {
                m(e, t, r, n, a, "Warning")
            }, t.raiseError = v, t.disposeEvents = function(e) {
                var t, r = e ? e._evtListeners : d;
                for (t in r) r[t].length && (r[t].length = 0)
            }, t.getListeners = g, t.triggerEvent = f, t.removeListener = function b(e, t, r) {
                var n, a;
                if ("function" == typeof t) {
                    if (e instanceof Array)
                        for (a = 0; a < e.length; a += 1) b(e[a], t, r);
                    else if ((n = g(e, r)) instanceof Array && n.length)
                        for (a = n.length - 1; a >= 0; a -= 1) n[a][0] === t && n[a][1] === r && (n[a].removed = !0)
                } else v(r, "03091560", "param", "::removeListener", new Error("Invalid Event Listener"))
            }, t.addListener = function y(e, t, r, n) {
                var a, i, o, s = e;
                if (s instanceof Array) {
                    for (a = [], i = 0; i < s.length; i += 1) a.push(y(s[i], t, r));
                    return a
                }
                if ("string" == typeof s) {
                    if ("function" == typeof t) return s = s.toLowerCase(), r ? (r._evtListeners || (r._evtListeners = {}), r._evtListeners[s] instanceof Array || (r._evtListeners[s] = []), o = r._evtListeners[s]) : (d[s] instanceof Array || (d[s] = []), o = d[s]), ! function(e, t, r) {
                        var n, a = e.length;
                        for (n = 0; n < a; n += 1)
                            if (e[n][0] === t && e[n][1] === r && !e[n].removed) return !0
                    }(o, t, r) && (n && n.priority ? o.unshift([t, r]) : o.push([t, r]), t);
                    v(r, "03091550", "param", "::addListener", new Error("Invalid Event Listener"))
                } else v(r, "03091549", "param", "::addListener", new Error("Unspecified Event Type"))
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.addDep = function() {
                for (var e = this, t = arguments.length, r = new Array(t), c = 0; c < t; c++) r[c] = arguments[c];
                if (!r.length) return void(0, n.raiseError)({
                    id: "Extension"
                }, "90211", "dependency", "Extension", new Error("A FusionCharts extension must have a valid extension property."));
                r.forEach((function(t) {
                    var r, c, u, d, h;
                    t ? (c = t.extension ? t.extension : t, r = o(t), u = s(t), h = t.requiresFusionCharts, u ? (!a[u] && l(u), (d = a[u][r] !== c) && (a[u][r] = c)) : r && (d = i[r] !== c) && (i[r] = c), d && (0, n.triggerEvent)("dependencyadded", e, {
                        name: r,
                        type: u
                    }), d && h && c(e)) : (0, n.raiseError)({
                        id: "Extension"
                    }, "90211", "dependency", "Extension", new Error("A FusionCharts extension must have a valid extension property."))
                }))
            }, t.getDep = function(e, t) {
                var r, n = e && e.toLowerCase();
                if (t && a[t]) return a[t][n];
                if (!t)
                    for (var o in a)
                        if (a.hasOwnProperty(o) && (r = a[o][n])) return r;
                return i[n]
            }, t.getDepsByType = function(e) {
                void 0 === e && (e = "");
                return "" === e ? a : a[e.toLowerCase()]
            };
            var n = r(200),
                a = {},
                i = {};

            function o(e) {
                void 0 === e && (e = {});
                var t = e.getName && e.getName() || e.name;
                return void 0 === t && (0, n.raiseError)({
                    id: "Extension"
                }, "90211", "extension", "Name", new Error("A FusionCharts extension must have a getName API or a name property.")), t && t.toLowerCase()
            }

            function s(e) {
                void 0 === e && (e = {});
                var t = e.getType && e.getType() || e.type;
                return t && t.toLowerCase()
            }

            function l(e) {
                "string" == typeof e && (a[e] = {})
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.onDataUpdateSuccess = function(e, t) {
                var r = e.sender,
                    a = r.__state;
                a.dataReady = void 0, a.dataAvailable = !0, !0 !== t.silent ? !0 !== r.options.safeMode || !0 !== a.rendering || r.isActive() ? delete a.args : (a.updatePending = t, (0, n.raiseWarning)(r, "23091255", "run", "::DataHandler~update", "Renderer update was postponed due to async loading.")) : r.options.dataSource = t.data;
                (0, n.triggerEvent)("dataUpdated", r, t, void 0, t.successcallback)
            }, t.onDataUpdateCancel = function(e, t) {
                (0, n.triggerEvent)("dataUpdateCancelled", e.sender, t, void 0, t.failurecallback)
            };
            var n = r(200)
        }, function(e, t, r) {
            "use strict";

            function n(e) {
                delete e.sender.jsVars._reflowData, e.sender.jsVars._reflowData = {}, delete e.sender.jsVars._reflowClean
            }
            t.__esModule = !0, t["default"] = void 0;
            var a = {
                beforeInitialize: function(e) {
                    var t, r = e.sender,
                        n = r.jsVars;
                    n.fcObj = r, n.msgStore = n.msgStore || {
                        LoadDataErrorText: "Error in loading data.",
                        XMLLoadingText: "Retrieving data. Please wait",
                        InvalidXMLText: "Invalid data.",
                        ChartNoDataText: "No data to display.",
                        ReadingDataText: "Reading data. Please wait",
                        ChartNotSupported: "Chart type not supported.",
                        PBarLoadingText: "",
                        LoadingText: "Loading chart. Please wait",
                        RenderChartErrorText: "Unable to render chart."
                    }, n.cfgStore = n.cfgStore || {}, n.previousDrawCount = -1, n.drawCount = 0, n._reflowData = {}, r.addEventListener("beforeRender", (function(e) {
                        return e.detachHandler()
                    })), n.userModules instanceof Array || (t = n.userModules, n.userModules = [], "string" == typeof t && (n.userModules = n.userModules.concat(t.split(","))))
                },
                beforeDataUpdate: n,
                beforeDispose: function(e) {
                    var t = e.sender.jsVars;
                    t.smartLabel && !t.smartLabel.disposed && t.smartLabel.dispose(), n.apply(void 0, arguments)
                },
                beforeRender: function(e) {
                    delete e.sender.jsVars.drLoadAttempted, n.apply(void 0, arguments)
                },
                dataLoadRequested: function(e) {
                    var t = e.sender,
                        r = t.jsVars;
                    delete r.loadError, t.ref && t.options.showDataLoadingMessage ? r.hcObj && !r.hasNativeMessage && r.hcObj.showLoading ? r.hcObj.showMessage(r.msgStore.XMLLoadingText) : t.ref.showChartMessage ? t.ref.showChartMessage("XMLLoadingText") : r.stallLoad = !0 : r.stallLoad = !0
                },
                dataLoadRequestCompleted: function(e) {
                    delete e.sender.jsVars.stallLoad
                }
            };
            t["default"] = a
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = t.globalStore = void 0;
            var a, i, o, s, l = r(193),
                c = r(200),
                u = r(201),
                d = r(205),
                h = n(r(206)),
                f = /\%/,
                g = new h["default"],
                p = (o = {}, s = function y() {
                    var e, t, r, n, s, l, c, u, d = 0,
                        h = parseInt(i.options.resizeTrackingInterval, 10) || 300,
                        g = {},
                        p = function() {
                            g.itemVar._containerOffsetW = g.parentEle.offsetWidth, g.itemVar._containerOffsetH = g.parentEle.offsetHeight
                        };
                    for (e in o) d += 1, r = (t = o[e]).jsVars, s = t.ref, !t.disposed && (n = s && s.parentNode) && (l = s.style) && (f.test(l.width) || f.test(l.height)) ? (c = n.offsetWidth, u = n.offsetHeight, !r.resizeLocked && (c && r._containerOffsetW !== c || u && r._containerOffsetH !== u) && (t.resizeTo && t.resizeTo(), g.itemVar = r, g.parentEle = n, setTimeout(p, 1))) : (delete o[e], d -= 1);
                    a = d ? setTimeout(y, h) : clearTimeout(a)
                }, function(e, t, r) {
                    var n = e.jsVars,
                        l = t || e.ref && e.ref.parentNode || {};
                    i = r, n._containerOffsetW = l.parentNode.offsetWidth, n._containerOffsetH = l.parentNode.offsetHeight, o[e.id] = e, a || (a = setTimeout(s, parseInt(r.options.resizeTrackingInterval, 10) || 300))
                });

            function m(e, t, r) {
                void 0 === r && (r = !1);
                var n, a = this.apiInstance,
                    i = this.getChartData((0, u.getDepsByType)("transcoder").JSON, !0, !0).data;
                r || (0, c.triggerEvent)("dataloaded", this, {}, [this.id]), this.__state && (this.__state.newDataArrived = !1), a.addToEnv("dataSource", i), a.addToEnv("chart-attrib", i.chart || {}), n = (0, l.pluckNumber)(i.chart && i.chart.applycsstransform, 0), a._checkInvalidData() || a._checkInvalidSpecificData() ? (a.getContainer("parentgroup") && a.getContainer("parentgroup").hide(), a.createBaseComponent(), a.getFromEnv("animationManager").setAnimationState("chartmessage"), a.setChartMessage(), a.drawChartMessage(), this._sudoSetState(1), (0, c.triggerEvent)("nodatatodisplay", this, {}, [this.id])) : (a.config.hasChartMessage = !1, a.getFromEnv("toolTipController").setApplyScale(n), a.setData(Object.assign({}, i)))
            }

            function v(e) {
                var t = e.sender.args,
                    r = l.BLANK,
                    n = t.dataFormat || "json";
                "jsonurl" !== n.toLowerCase() && "xmlurl" !== n.toLowerCase() || (r = t.dataSource), (0, c.triggerEvent)("dataloadcancelled", e, {
                    url: r,
                    dataFormat: n
                }, [e.id]), e.__state && (e.__state.newDataArrived = !1)
            }
            t.globalStore = g;
            var b = function(e, t, r, n, a, i, o, s) {
                var h, b, y, x, w, C = n,
                    _ = t.apiInstance,
                    k = t.jsVars,
                    S = f.test(t.width) ? r.offsetWidth : t.width,
                    E = f.test(t.height) ? r.offsetHeight : t.height;
                if (r.FusionCharts = e.items[t.id], t.__state.beforedrawFired = !0, C = C || t.chartType(), !(h = (0, u.getDep)(C, "chartapi")) && (y = (0, u.getDep)(C, "maps")) && (h = (0, u.getDep)("maps", "chartapi"), x = !0), _ && _.getName().toLowerCase() !== C.toLowerCase() && (_.remove({
                        instant: !0
                    }), _ = l.UNDEF), _ && _.getName().toLowerCase() === C.toLowerCase() || (_ = t.apiInstance = new h, g.attachChild(_, "chartAPI"), _.addToEnv("core-options", e.options), _.addToEnv("chartInstance", t), _.addToEnv("chart", _), _.addToEnv("chart-container", r), _.addToEnv("eventListeners", [])), x)
                    for (var A in y = y[0]) y.hasOwnProperty(A) && (_.config[A] = y[A]);
                if (_.addToEnv("chartWidth", Math.max(0, S)), _.addToEnv("chartHeight", Math.max(0, E)), _._removeWaitingJobs(), _.setDummyEImethods(C), _.config.origRenderWidth = t.__state.renderedWidth, _.config.origRenderHeight = t.__state.renderedHeight, "base" === C || i) ! function(e, t) {
                        void 0 === t && (t = !1);
                        var r = e.options.dataErroneous;
                        if (r) return e.__state.dataReady = !1, t || (0, c.triggerEvent)("dataInvalid", e, {
                            error: r
                        }, l.UNDEF, (function() {
                            (0, c.triggerEvent)("dataxmlinvalid", e, {}, [e.id])
                        })), !0
                    }(t, s),
                    function(e, t) {
                        void 0 === t && (t = {});
                        e._chartMessageImageStyle = t.image || {}, e._chartMessageStyle = t.message || {}
                    }(t, o), _.createBaseComponent(), _.getFromEnv("animationManager").setAnimationState("chartmessage"), _.setChartMessage(i, t, r);
                else if (t.__state.resize) _.asyncDraw();
                else {
                    if (_.getFromEnv("toolTipController") || (w = new((0, u.getDep)("ToolTipController"))(r, _), _.addToEnv("toolTipController", w)), _.disposeChartStyleSheet(), r.jsVars = t.jsVars, b = _.eiMethods, t.ref = r, k.type = C, b && "string" != typeof b)
                        for (var T in b) r[T] = b[T];
                    !s && t.__state.newDataArrived ? (0, c.triggerEvent)("beforedataload", t, {
                        data: t.getChartData((0, u.getDepsByType)("transcoder").JSON, !0, !0)
                    }, l.UNDEF, m, v) : m.call(t, l.UNDEF, l.UNDEF, s)
                }!t.disposed && function(e, t, r, n, a) {
                    var i = e.jsVars,
                        o = e.apiInstance,
                        s = i.fcObj,
                        u = i.overlayButton;
                    i.width = o.getFromEnv("chartWidth"), i.height = o.getFromEnv("chartHeight"), i.container = t, i.hcObj = e, i.hcObj.container = t, i.instanceAPI = o, e.hasRendered && i.overlayButtonActive && u && (u.innerHTML = l.BLANK, u.appendChild(document.createTextNode(i.overlayButtonMessage)), e.container.appendChild(u));
                    (/\%/g.test(s.width) || /\%/g.test(s.height)) && t && t.parentNode && !a.options.preventTrackResize && p(e, t, a);
                    ! function(e, t, r) {
                        e.apiInstance.addJob("fire-rendered", (function() {
                            if (e.apiInstance.config.hasRendered = r.hasRendered, "waiting" !== e._getState() && "function" == typeof t && t(r), "waiting" !== e._getState() && ((0, c.triggerEvent)("drawcomplete", e, {
                                    width: e.jsVars.width,
                                    height: e.jsVars.height,
                                    drawCount: e.jsVars.drawCount,
                                    displayingMessage: "waiting" === e._getState() || "error" === e._getState(),
                                    renderer: "javascript"
                                }, [e.id]), e.__state && delete e.__state.beforedrawFired), !e.disposed && "ready" === e._getState()) {
                                if (e.__state.rendering && (0, c.triggerEvent)("rendered", e, {
                                        renderer: "javascript"
                                    }, [e.id]), e.disposed) return;
                                if ((0, c.triggerEvent)("renderComplete", e, {
                                        width: e.jsVars.width,
                                        height: e.jsVars.height,
                                        drawCount: e.jsVars.drawCount,
                                        renderer: "javascript"
                                    }), e.disposed) return;
                                e.__state && delete e.__state.rendering, e.__state.renderComplete = !0
                            }
                        }), d.priorityList.postRender)
                    }(e, r, n)
                }(t, r, a, {
                    hasRendered: !0,
                    container: r
                }, e)
            };
            t["default"] = b
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.priorityList = t["default"] = void 0;
            var n = [],
                a = {},
                i = [],
                o = {},
                s = 0,
                l = window,
                c = l.navigator,
                u = /trident/i.test(c.userAgent) && /rv:11/i.test(c.userAgent) && !l.opera,
                d = /msie/i.test(c.userAgent) && !l.opera,
                h = /Edge/.test(c.userAgent),
                f = {},
                g = l.requestAnimationFrame || l.webkitRequestAnimationFrame || l.mozRequestAnimationFrame || l.oRequestAnimationFrame || l.msRequestAnimationFrame || function(e) {
                    setTimeout(e, 16)
                },
                p = !1,
                m = function b() {
                    var e, t, r, a = !0,
                        s = (new Date).getTime();
                    for (p = !0; a && (e = n[0]);) t = (new Date).getTime(), e.OIAF && r || e.executeAfter && !(e.executeAfter < t) || !(t - s < 16) ? a = !1 : (n.shift(), i[e.priority] -= 1, o[e.jobID] && !e.executed && (e.executed = !0, delete o[e.jobID], e.job(), r = e.OIAF));
                    n.length ? g(b) : p = !1
                };
            t.priorityList = {
                instant: 1,
                render: 1,
                chartEvents: 1,
                configure: 2,
                chartClick: 2,
                draw: 3,
                entitydraw: 4,
                label: 4,
                animation: 5,
                tracker: 6,
                kdTree: 6,
                postRender: 7,
                verification: 8
            }, (u || d || h) && (g = g.bind(window)), f.addJob = function(e, t, r) {
                var a, l, c, u = 0,
                    d = r && r.oneInAFrame,
                    h = r && r.addToTop ? t - 1 : t;
                for ("function" == typeof e ? (l = {
                        job: e,
                        priority: t,
                        OIAF: d,
                        jobID: a = "JOB_" + ++s + "_" + (t || 1)
                    }, r && r.executionDelay && (l.executeAfter = (new Date).getTime() + r.executionDelay)) : l = e, c = 0; c <= h; c++) u += i[c] || 0;
                return n.splice(u, 0, l), o[l.jobID] = l, i[t] = (i[t] || 0) + 1, p || 1 !== n.length || (d ? g(m) : setTimeout(m, 0)), a
            }, f.removeJob = function(e) {
                o[e] && delete o[e]
            }, f.updateJob = function(e, t, r, n) {
                return o[e] ? (o[e].job = t, e) : this.addJob(t, r, n)
            }, f.pauseExecution = function(e) {
                if (!o[e]) return !1;
                a[e] = o[e], delete o[e]
            }, f.resumeExecution = function(e) {
                var t = a[e];
                if (!t) return !1;
                f.addJob(t, t.priority), delete a[e]
            };
            var v = f;
            t["default"] = v
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "globalStore"
                    }, r.getType = function() {
                        return "globalStore"
                    }, t
                }(r(208).ComponentInterface);
            t["default"] = i
        }, function(e, t) {
            e.exports = function(e, t) {
                e.prototype = Object.create(t.prototype), e.prototype.constructor = e,
                    function(e, t) {
                        for (var r = Object.getOwnPropertyNames(t), n = 0; n < r.length; n++) {
                            var a = r[n],
                                i = Object.getOwnPropertyDescriptor(t, a);
                            i && i.configurable && e[a] === undefined && Object.defineProperty(e, a, i)
                        }
                    }(e, t)
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0;
            var a = n(r(209));
            t.ComponentInterface = a["default"];
            var i = n(r(212));
            t.SmartRenderer = i["default"]
        }, function(e, t, r) {
            "use strict";
            var n = r(191),
                a = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var i = a(r(210)),
                o = a(r(207)),
                s = n(r(211)),
                l = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var r = (0, i["default"])(t);
                        return r._components = {}, r._version = 1, r.fireEvent("instantiated"), r.__setDefaultConfig(), t
                    }(0, o["default"])(t, e);
                    var r = t.prototype;
                    return r.addGraphicalElement = function(e, t, r, n) {
                        void 0 === r && (r = !1);
                        var a = this._graphics;
                        return t && (r ? (void 0 === a[e] && (a[e] = []), n ? a[e][n] = t : a[e].push(t)) : (a[e] = t, this.fireEvent("graphicalelementattached", {
                            element: t
                        })), (0, s.addAllEventsOnGraphic)(t, this._middleListeners, this)), t
                    }, r.removeGraphicalElement = function(e) {
                        var t, r = this,
                            n = r._graphics;
                        (0, s._mapSubFnForward)(n, (function(a, i, o) {
                            a === e && (t = !0, (0, s.removeAllEventsFromGraphic)(a, r._middleListeners), r._setRemoveAnim(a, i), void 0 !== o ? n[i].splice(o, 1) : delete n[i])
                        })), t && this.fireEvent("graphicalelementremoved", {
                            element: e
                        })
                    }, r.getGraphicalElement = function(e) {
                        return void 0 !== e ? this._graphics[e] : this._graphics
                    }, r.addChildContainer = function(e, t) {
                        var r = this._childContainers;
                        return t && (void 0 === r && (r = this._childContainers = {}), r[e] = t, (0, s.addAllEventsOnGraphic)(t, this._middleListeners, this)), t
                    }, r.removeChildContainer = function(e) {
                        var t = this._childContainers;
                        t && t[e] && ((0, s.removeAllEventsFromGraphic)(t[e], this._middleListeners), this._setRemoveAnim(t[e], e), delete t[e])
                    }, r.getChildContainer = function(e) {
                        return void 0 === this._childContainers && (this._childContainers = {}), e ? this._childContainers[e] : this._childContainers
                    }, r.addContainer = function(e, t) {
                        var r = this._containers;
                        return t && (void 0 === r && (r = this._containers = {}), r[e] = t), t
                    }, r.removeContainer = function(e) {
                        var t = this._containers;
                        t && t[e] && (this._setRemoveAnim(t[e], e), delete t[e])
                    }, r.getContainer = function(e) {
                        return void 0 === this._containers && (this._containers = {}), e ? this._containers[e] : this._containers
                    }, r.addEventListener = function(t, r, n) {
                        var a = e.prototype.addEventListener.call(this, t, r, n);
                        return !0 === a ? (function(e, t, r) {
                            var n;
                            t && r && (n = function(e) {
                                e.on && e.on(t, r)
                            }, (0, s._mapSubFnForward)(e.getGraphicalElement(), n), (0, s._mapSubFnForward)(e.getChildContainer(), n))
                        }(this, t, this._middleListeners[t]), r) : !!a && r
                    }, r.removeEventListener = function(t, r) {
                        e.prototype.removeEventListener.call(this, t, r) && function(e, t, r) {
                            var n;
                            t && r && (n = function(e) {
                                e.off && e.off(t, r)
                            }, (0, s._mapSubFnForward)(e.getGraphicalElement(), n), (0, s._mapSubFnForward)(e.getChildContainer(), n))
                        }(this, t, this._middleListeners[t])
                    }, r._dispose = function() {
                        var t;
                        if (e.prototype._dispose.call(this)) {
                            for (t in this.getFromEnv("paper") && !this.getFromEnv("paper").removed && ((0, s._mapSubFnForward)(this.getChildContainer(), this.__instantRemoveFn), (0, s._mapSubFnForward)(this.getGraphicalElement(), this.__instantRemoveFn), (0, s._mapSubFnForward)(this.getContainer(), this.__instantRemoveFn)), this) this.hasOwnProperty(t) && delete this[t];
                            this.fireEvent("removed")
                        }
                    }, r.removingDraw = function() {
                        (0, s._mapSubFnForward)(this.getChildContainer(), this._setRemoveAnim), (0, s._mapSubFnForward)(this.getGraphicalElement(), this._setRemoveAnim), (0, s._mapSubFnForward)(this.getContainer(), this._setRemoveAnim)
                    }, r.attachChild = function(e, t, r) {
                        var n = t || e.getType(),
                            a = this._components;
                        return !1 === r ? a[n] = e : (a[n] && a[n] instanceof Array || (a[n] = []), a[n].push(e)), e._setLinkedParent(this), this.fireEvent("childattached", {
                            attachedChild: e
                        }), e
                    }, r.getChild = function(e) {
                        var t;
                        return void 0 === e ? this._components : (this._searchChildren(e, (function(e) {
                            t = e
                        })), t)
                    }, r._searchChildren = function(e, t) {
                        var r, n, a, i = this._components;
                        for (n in i)
                            if (i.hasOwnProperty(n))
                                if ((r = i[n]).constructor === Array) {
                                    for (a = r.length - 1; a >= 0; a--)
                                        if (r[a].getId && r[a].getId() === e) return t(r[a], a, r)
                                } else if (r.getId && r.getId() === e) return t(n, void 0, i)
                    }, r.getChildren = function(e) {
                        return e ? this._components[e] : this._components
                    }, t
                }(s["default"]);
            t["default"] = l
        }, function(e, t) {
            e.exports = function(e) {
                if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return e
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(191);
            t.__esModule = !0, t._mapSubFnForward = t.addAllEventsOnGraphic = t.removeAllEventsFromGraphic = t["default"] = void 0;
            var a = r(193),
                i = r(200),
                o = n(r(205)),
                s = function(e) {
                    e && e.draw && e.syncDraw()
                },
                l = function(e) {
                    return e.setDefaults()
                },
                c = function(e) {
                    e.prepareAttributes && e.prepareAttributes()
                },
                u = {},
                d = {
                    executionDelay: 16
                },
                h = function(e, t) {
                    var r, n, a, i;
                    if (e && e.hasOwnProperty && t && t.call)
                        for (r in e)
                            if (e.hasOwnProperty(r))
                                if ((n = e[r]) instanceof Array)
                                    for (i = n.length, a = 0; a < i; a++) t(n[a], r, a);
                                else t(n, r)
                };
            t.removeAllEventsFromGraphic = function(e, t) {
                var r, n;
                if (t && t.hasOwnProperty)
                    for (r in t) t.hasOwnProperty(r) && (n = (0, i.getListeners)(r, this)) && n.length >= 1 && e && e.off(r, t[r])
            }, t.addAllEventsOnGraphic = function(e, t, r) {
                var n, a;
                if (t && t.hasOwnProperty)
                    for (n in t) t.hasOwnProperty(n) && (a = (0, i.getListeners)(n, r)) && a.length >= 1 && e && e.on(n, t[n])
            }, t._mapSubFnForward = h;
            var f = function() {
                function e() {
                    var e = this;
                    e.config = {}, e._jobList = {}, e._env = {}, e._extListeners = {}, e._state = {}, e._factories = [], e._factoriyNames = {}, e._graphics = {}, e.__drawJob = function() {
                        e.updateVisual()
                    }, e.__remove = function() {
                        e.getState("removed") && e._dispose()
                    }, e._setRemoveAnim = function(t, r) {
                        var n = e.getFromEnv("animationManager");
                        n.setAnimation({
                            el: t,
                            component: e,
                            label: r,
                            props: t.__props
                        }), e._setRemoveAnim = function(t, r) {
                            n.setAnimation({
                                el: t,
                                component: e,
                                label: r,
                                props: t.__props
                            })
                        }
                    }, e.__instantRemoveFn = function(t) {
                        var r = e.getFromEnv("animationManager");
                        r.removeElement(t, !0), e.__instantRemoveFn = function(e) {
                            return r.removeElement(e, !0)
                        }
                    }
                }
                var t = e.prototype;
                return t.configure = function(e) {
                    this.preConfigure(e), this.configureAttributes(e), this.postConfigure(e), this.invokeFactories()
                }, t.preConfigure = function(e) {
                    this.fireEvent("preconfigure", e)
                }, t.configureAttributes = function() {
                    return this
                }, t.postConfigure = function(e) {
                    this.fireEvent("postconfigure", e)
                }, t.prepareAttributes = function() {
                    this.fireEvent("beforeattributeprepared"), this.allocatePosition && this.allocatePosition(), this._mapChildren(c), this.fireEvent("attributeprepared")
                }, t.setDefaults = function() {
                    this.__setDefaultConfig(), this._mapChildren(l)
                }, t.__setDefaultConfig = function() {
                    return this
                }, t.setData = function(e, t) {
                    void 0 === t && (t = !1);
                    var r, n = this.getLinkedParent();
                    this.asyncDraw(), !t && this.setDefaults(), this.configure && this.configure(e), (r = this.getState("change-info")) && r.hasNoExternalEffect || n && n.childChange && n.childChange(r, this.getId())
                }, t.getName = function() {
                    return "generic"
                }, t.getType = function() {
                    return "generic"
                }, t.getComponentVersion = function() {
                    return this._version
                }, t.getId = function() {
                    return this._id || this.setId(), this._id
                }, t.setId = function(e) {
                    var t, r = e;
                    r === a.UNDEF && (t = this.getType() + a.UNDERSCORE + this.getName(), u[t] || (u[t] = 1), r = t + a.UNDERSCORE + u[t], u[t] += 1), this._id = r
                }, t.iterateComponents = function(e) {
                    this._mapChildren((function t(r, n, a) {
                        !1 !== e(r, n, a) && r._mapChildren && r._mapChildren(t)
                    }))
                }, t.getFromEnv = function(e) {
                    return e ? this._env[e] : this._env
                }, t.addToEnv = function(e, t) {
                    e && (this._env[e] = t)
                }, t.deleteFromEnv = function(e) {
                    delete this._env[e]
                }, t._updateParentEnv = function() {
                    var e, t, r, n, a = this.getLinkedParent(),
                        i = this._env;
                    if (a) {
                        if (e = a.getFromEnv(), ((t = function() {}).prototype = e).constructor = t, r = new t, i)
                            for (n in i) i.hasOwnProperty(n) && (r[n] = i[n]);
                        this._env = r, this._mapChildren((function(e) {
                            e._updateParentEnv && e._updateParentEnv()
                        }))
                    }
                }, t.addJob = function(e, t, r, n) {
                    this._jobList[e] ? this._jobList[e] = o["default"].updateJob(this._jobList[e], t, r, n) : this._jobList[e] = o["default"].addJob(t, r, n)
                }, t.removeJob = function(e) {
                    var t = this._jobList[e];
                    t && (o["default"].removeJob(t), delete this._jobList[e])
                }, t.removeAllJobs = function() {
                    var e, t = this._jobList;
                    for (e in t) t.hasOwnProperty(e) && (o["default"].removeJob(t[e]), delete t[name])
                }, t.asyncDraw = function() {
                    this.addJob("draw", this.__drawJob, o.priorityList && o.priorityList.draw, d)
                }, t.syncDraw = function() {
                    var e = this;
                    e.fireEvent("predraw"), e.removeJob("draw"), e.getState("removed") ? e.removingDraw() : e.draw && e.draw(), e.addExtEventListener("animationComplete", e.__remove, e.getFromEnv("animationManager")), e.childrenSyncDraw(), e.setState("dirty", !1), e.setState("parentChanged", !1), e.addJob("draw-complete", (function() {
                        e.fireEvent("drawn")
                    }), o.priorityList.instant)
                }, t.updateVisual = function() {
                    this.fireEvent("beforevisualupdate"), this.removeJob("visualupdate"), this.manageSpace && this.manageSpace(), this.prepareAttributes(), this.syncDraw(), this.fireEvent("visualupdated")
                }, t.childrenSyncDraw = function() {
                    this._mapChildren(s)
                }, t.addEventListener = function(e, t, r) {
                    var n, o = this,
                        s = e;
                    return !!(s && s.toLowerCase && (s = s.toLowerCase(), (0, i.addListener)(s, t, o, r))) && ((0, a.isInterActiveEvt)(s) && (n = (0, i.getListeners)(s, o)) && 1 === n.length ? (o._middleListeners || (o._middleListeners = {}), o._middleListeners[s] || (o._middleListeners[s] = function(e) {
                        o.fireEvent(s, a.UNDEF, a.UNDEF, a.UNDEF, e)
                    }), !0) : t)
                }, t.removeEventListener = function(e, t) {
                    var r, n = e;
                    if (n && n.toLowerCase && (n = n.toLowerCase(), (0, i.removeListener)(n, t, this), (0, a.isInterActiveEvt)(n) && (r = (0, i.getListeners)(n, this)) && 0 === r.length && this._middleListeners && this._middleListeners[n])) return !0
                }, t.fireEvent = function(e, t, r, n, a) {
                    (0, i.triggerEvent)(e, this, t, a, r, n)
                }, t.showWarning = function(e, t, r, n) {
                    (0, i.raiseWarning)(this.getFromEnv("chartInstance"), e, t, r, n)
                }, t.showError = function(e, t, r, n) {
                    (0, i.raiseError)(this.getFromEnv("chartInstance"), e, t, r, n)
                }, t.addExtEventListener = function(e, t, r) {
                    return !!(r && r.addEventListener && r.addEventListener(e, t)) && (this._extListeners[e] || (this._extListeners[e] = []), this._extListeners[e].push({
                        fn: t,
                        component: r
                    }), t)
                }, t.removeExtEventListener = function(e, t, r) {
                    var n, a;
                    if (r && r.addEventListener && this._extListeners && this._extListeners[e])
                        for (n = (a = this._extListeners[e]).length - 1; n >= 0; n -= 1)
                            if (a[n] && a[n].fn === t && a[n].component === r) return r.removeEventListener(e, t), void a.splice(n, 1)
                }, t._setLinkedParent = function(e) {
                    var t = this._linkedParent;
                    this._linkedParent = e, t && t !== e && (this.setState("parentChanged", !0), this.fireEvent("parentdetached", {
                        oldParent: t
                    }), e && this.fireEvent("parentAttached", {
                        newParent: e
                    })), this._updateParentEnv && this._updateParentEnv()
                }, t.getLinkedParent = function() {
                    return this._linkedParent
                }, t.setLinkedItem = function(e, t) {
                    this.linkedItems || (this.linkedItems = {}), e === a.UNDEF && t === a.UNDEF || (this.linkedItems[e] = t)
                }, t.getLinkedItem = function(e) {
                    if (this.linkedItems) return e !== a.UNDEF ? this.linkedItems[e] : this.linkedItems
                }, t.removeLinkedItem = function(e) {
                    this.linkedItems && this.linkedItems[e] && delete this.linkedItems[e]
                }, t._detachChild = function(e) {
                    var t, r = e && e.getId(),
                        n = this;
                    return r === a.UNDEF ? a.UNDEF : (n._searchChildren(r, (function(e, r, i) {
                        i && i.constructor === Array ? t = i.splice(r, 1)[0] : (t = i[e], delete i[e]), t._setLinkedParent(a.UNDEF), n.fireEvent("childdetached", {
                            detachedChild: t
                        })
                    })), t)
                }, t._mapChildren = function(e, t) {
                    t ? function(e, t) {
                        var r, n, a;
                        if (e && e.hasOwnProperty && t && t.call)
                            for (r in e)
                                if (e.hasOwnProperty(r))
                                    if ((n = e[r]) instanceof Array)
                                        for (a = n.length - 1; a >= 0; a--) t(n[a], r, a);
                                    else t(n, r)
                    }(this.getChildren(), e) : h(this.getChildren(), e)
                }, t._dispose = function() {
                    var e, t, r, n;
                    if (this && this !== window && !0 !== this._disposing) {
                        if (this._disposing = !0, this.fireEvent("beforeremove"), (e = this.getLinkedParent()) && e._detachChild && !e._disposing && e._detachChild(this), this._extListeners)
                            for (r in this._extListeners)
                                for (t = (n = this._extListeners[r]).length - 1; t >= 0; t--) n[t].component && n[t].component.addEventListener && n[t].component.removeEventListener(r, n[t].fn);
                        return this.removeAllJobs(), !0
                    }
                }, t.remove = function(e) {
                    this.setState("removed", !0), this.getChildren() && this._mapChildren((function(t) {
                        t && t.remove && t.remove(e)
                    }), !0), e && e.instant && this._dispose()
                }, t.setState = function(e, t) {
                    this._state[e] = t
                }, t.getState = function(e) {
                    return this._state && this._state[e]
                }, t.registerFactory = function(e, t, r) {
                    var n = {
                        name: e,
                        factory: t,
                        dep: r
                    };
                    if (this._factoriyNames[e])
                        for (var a = 0, i = this._factories.length, o = !1; a < i && !o; a += 1) this._factories[a].name === e && (this._factories.splice(a, 1), o = !0);
                    this._factories.push(n), this._factoriyNames[e] = !0
                }, t.deregisterFactory = function(e) {
                    if (this._factoriyNames[e]) return delete this._factoriyNames[e], this._factories.splice(this._factories.findIndex((function(t) {
                        return t.name === e
                    })), 1)[0].factory
                }, t.invokeFactories = function() {
                    for (var e, t = this, r = t._factoriyNames, n = {}, a = t._factories, i = a.length + 1, o = function(a) {
                            var i;
                            a.dep && a.dep.length && a.dep.forEach((function(e) {
                                i = r[e] && !n[e]
                            })), i ? e.push(a) : (a.factory(t), n[a.name] = !0)
                        }; a.length && a.length < i;) e = [], a.forEach(o), i = a.length, a = e;
                    a.length && a.forEach((function(e) {
                        return e.factory(t)
                    })), this.fireEvent("factoriesinvoked", {})
                }, e
            }();
            t["default"] = f
        }, function(e, t, r) {
            "use strict";
            var n = r(191),
                a = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var i = a(r(210)),
                o = a(r(207)),
                s = n(r(211)),
                l = r(193),
                c = r(205),
                u = function(e, t) {
                    var r, n, a;
                    if (e && e.hasOwnProperty && t && t.call)
                        for (r in e)
                            for (a = (n = e[r].elemStore) && n.length - 1; a >= 0 && !t(n[a], r, a); a--);
                },
                d = function(e, t) {
                    var r, n, a, i;
                    if (e && e.hasOwnProperty && t && t.call)
                        for (n in e)
                            for (i = 0, r = (a = e[n].elemStore) && a.length; i < r && !t(a[i], n, i); i++);
                },
                h = function(e, t, r) {
                    var n, a, i, o;
                    for (o in void 0 === r && (r = {}), e) a = e[o], (i = (0, l.pluck)(t[o], r[o])) !== l.UNDEF ? a instanceof Array ? "text-bound" === o ? (n || (n = {}), n[o] = a, n.x = e.x, n.y = e.y) : a.toString().replace(/,/g, "") !== i.toString().replace(/,/g, "") && (n || (n = {}), n[o] = a) : "string" == typeof a ? a.replace(/,/g, "") !== i.toString().replace(/,/g, "") && (n || (n = {}), n[o] = a) : a !== i && (n || (n = {}), n[o] = a) : (n || (n = {}), n[o] = a);
                    return n
                },
                f = function(e) {
                    function t(t) {
                        var r;
                        r = e.call(this, t) || this;
                        var n = (0, i["default"])(r);
                        return n._version = 2, n._id = t, n._componentStore = {}, n._oldComponentStore = [], n.fireEvent("instantiated"), n.__setDefaultConfig(), r
                    }(0, o["default"])(t, e);
                    var r = t.prototype;
                    return r.isDrawingRequired = function() {
                        return this
                    }, r.syncDraw = function() {
                        var e = this,
                            t = e.getState("removed");
                        (e.isDrawingRequired() || t) && (e.fireEvent("predraw"), e.removeJob("draw"), e._resetGraphicalStore(), t ? e.addJob("dispose-component", (function() {
                            return e._dispose()
                        }), c.priorityList.postRender) : e.draw && e.draw(), e.childrenSyncDraw(), e._removeUnusedGraphics(), e.fireEvent("drawn"))
                    }, r._remove = function() {
                        this.onRemove && this.onRemove(), this.setState("removed", !0), this.getChildren() && this._mapChildren((function(e) {
                            e.onRemove && e.onRemove(), e && e.setState("removed", !0)
                        }), !0)
                    }, r.setDimension = function(e, t) {
                        this.config.width = e, this.config.height = t
                    }, r.setTranslation = function(e, t) {
                        var r = this.config;
                        r._translateX = e, r._translateY = t, r.translate = "t" + e + "," + t
                    }, r.getTranslation = function() {
                        return {
                            x: this.config._translateX,
                            y: this.config._translateY
                        }
                    }, r._resetGraphicalStore = function() {
                        this._oldGraphicalStore = this._graphicalStore, this._graphicalStore = {}
                    }, r._getLastUsedElem = function() {
                        return this.config.lastElemUsed
                    }, r.addGraphicalElement = function(e, t) {
                        void 0 === e && (e = {}), void 0 === t && (t = !1);
                        var r, n, a, i, o, c = e.label,
                            u = this._graphicalStore[c] || (this._graphicalStore[c] = {
                                elemStore: [],
                                idMap: {},
                                indexMap: {},
                                lastIndexUsed: -1
                            }),
                            d = !0,
                            f = this._oldGraphicalStore && this._oldGraphicalStore[c],
                            g = u.lastIndexUsed += 1,
                            p = e.attr,
                            m = e.id;
                        f && (m && f.idMap[m] !== l.UNDEF ? (i = f.idMap[m], o = f.elemStore[i], delete f.elemStore[i], delete f.indexMap[i], delete f.idMap[m]) : f.elemStore[g] && (f.indexMap[g] || (o = f.elemStore[g], delete f.elemStore[g]))), "text" === e.el && e.css && (0, l.removeHtmlAttrs)(e.css), o && (e.el = o, d = !1, (p = h(e.attr, o.attrs)) && (e.attr = p), e.css && (n = h(e.css, o.attrs, o.styles)) && (e.css = n)), (a = e.container) ? (r = a.isParent ? this.getLinkedParent() : this, e.container = r.getGraphicalElement(a.id, a.label) || r.getChildContainer(a.id)) : e.container = this.getFromEnv("chart-container"), (p || n) && (o = this.getFromEnv("animationManager").setAnimation(e)), u.elemStore[g] = o, m && (u.idMap[m] && (delete u.indexMap[u.idMap[m]], delete u.idMap[m]), u.idMap[m] = g, u.indexMap[g] = m), this.fireEvent("graphicalelementattached", {
                            element: o
                        }), o._skipEvents = t, e.shadow && o.shadow(e.shadow), e.outlineText !== l.UNDEF && o.outlineText(e.outlineText, (0, l.convertColor)((0, l.pluck)(e.css.fill, e.attr.fill))), e.tooltext !== l.UNDEF && this.getFromEnv("toolTipController").enableToolTip(o, e.tooltext), this.config.lastElemUsed = o, !t && d && (0, s.addAllEventsOnGraphic)(o, this._middleListeners, this)
                    }, r.removeGraphicalElement = function(e, t) {
                        var r, n, a = this,
                            i = a._graphicalStore;
                        u(i, "object" == typeof e ? function(t, o, s) {
                            if (e === t) return n = !0, a._setRemoveAnim(t, o), (r = i[o]).elemStore.splice(s, 1), delete r.idMap[r.indexMap[s]], delete r.indexMap[s], !0
                        } : function(o, s, l) {
                            if ((r = i[s]).indexMap[l] === e && (!t || t === s)) return n = !0, a._setRemoveAnim(o, s), r.elemStore.splice(l, 1), delete r.idMap[r.indexMap[l]], delete r.indexMap[l], !0
                        }), n && this.fireEvent("graphicalelementremoved", {
                            element: void 0
                        })
                    }, r.getChildContainer = function(e) {
                        return this.getGraphicalElement(l.UNDEF, e)
                    }, r._removeUnusedGraphics = function() {
                        var e, t = this,
                            r = t._oldGraphicalStore;
                        u(r, (function(n, a, i) {
                            n && (t._setRemoveAnim(n, a), delete(e = r[a]).idMap[e.indexMap[i]], delete e.indexMap[i])
                        }))
                    }, r.getGraphicalElement = function(e, t) {
                        var r, n, a, i, o = this._graphicalStore;
                        return t || e ? t ? (r = o[t], e ? r && r.elemStore && r.elemStore[r.idMap[e]] : r && r.elemStore && r.elemStore[0]) : (d(o, (function() {
                            if (i = arguments[2], (n = o[arguments[1]]).idMap[i] === e) return a = n.elemStore[i], !0
                        })), a) : o
                    }, r.addEventListener = function(t, r, n) {
                        var a = e.prototype.addEventListener.call(this, t, r, n);
                        return !0 === a ? (function(e, t, r) {
                            var n;
                            t && r && (n = function(e) {
                                !e._skipEvents && e.on && e.on(t, r)
                            }, d(e.getGraphicalElement(), n))
                        }(this, t, this._middleListeners[t]), r) : !!a && r
                    }, r.removeEventListener = function(t, r) {
                        e.prototype.removeEventListener.call(this, t, r) && function(e, t, r) {
                            var n;
                            t && r && (n = function(e) {
                                !e._skipEvents && e.off && e.off(t, r)
                            }, d(e.getGraphicalElement(), n))
                        }(this, t, this._middleListeners[t])
                    }, r._dispose = function() {
                        var e, t, r, n;
                        if (this && this !== window && !0 !== this._disposing) {
                            if (this._disposing = !0, this.fireEvent("beforeremove"), this._extListeners)
                                for (r in this._extListeners)
                                    for (t = (n = this._extListeners[r]).length - 1; t >= 0; t--) n[t].component && n[t].component.addEventListener && n[t].component.removeEventListener(r, n[t].fn);
                            for (e in this.removeAllJobs(), this._linkedParent && 1 === this._linkedParent.getComponentVersion() && this._linkedParent._detachChild(this), this.getFromEnv("paper") && !this.getFromEnv("paper").removed && d(this.getGraphicalElement(), this.__instantRemoveFn), this) this.hasOwnProperty(e) && delete this[e];
                            this.fireEvent("removed")
                        }
                    }, r.configure = function(t) {
                        this._resetComponentStore(), e.prototype.configure.call(this, t)
                    }, r._resetComponentStore = function() {
                        this._oldComponentStore.push(this._componentStore), this._componentStore = {}
                    }, r._mapChildren = function(e, t) {
                        t ? u(this.getChildren(), e) : d(this.getChildren(), e)
                    }, r.attachChild = function(e, t, r) {
                        var n, a, i = this._componentStore[t] || (this._componentStore[t] = {
                                elemStore: [],
                                idMap: {},
                                indexMap: {},
                                lastIndexUsed: -1
                            }),
                            o = this._oldComponentStore && this._oldComponentStore.length && this._oldComponentStore[this._oldComponentStore.length - 1][t],
                            s = i.lastIndexUsed += 1;
                        if (o) {
                            var c = o.elemStore,
                                u = c[s];
                            r && o.idMap[r] !== l.UNDEF ? (a = c[n = o.idMap[r]], delete c[n], delete o.indexMap[n], delete o.idMap[r]) : u && u.constructor === e && (o.indexMap[s] || (a = u, delete c[s]))
                        }
                        return a || (a = new e(r)), i.elemStore[s] = a, r && (i.idMap[r] = s, i.indexMap[s] = r), a._setLinkedParent(this), a
                    }, r.childrenSyncDraw = function() {
                        this._mapChildren((function(e) {
                            e && e.draw && e.syncDraw()
                        })), this._removeUnusedChildren()
                    }, r._removeUnusedChildren = function() {
                        for (var e = this._oldComponentStore, t = e.length, r = 0, n = function(e) {
                                e && (e._remove(), e.syncDraw(), e._setLinkedParent(l.UNDEF))
                            }; r < t; r += 1) u(e[r], n);
                        this._oldComponentStore.length = 0
                    }, r.getChild = function(e, t) {
                        var r;
                        return this._searchChildren(e, (function(e) {
                            r = e
                        }), t), r
                    }, r._searchChildren = function(e, t, r) {
                        var n, a, i = this._componentStore,
                            o = r;
                        if (e ? u(i, (function(t, r, s) {
                                if (i[r].indexMap[s] === e && (!o || o === r)) return a = t, n = s, o = r, !0
                            })) : a = i[o] && i[o].elemStore, a) return t(a, n, o)
                    }, r.getChildren = function(e) {
                        return e ? this._componentStore[e] && this._componentStore[e].elemStore : this._componentStore
                    }, r._detachChild = function() {
                        return this
                    }, t
                }(s["default"]);
            t["default"] = f
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(192)),
                i = n(r(214)),
                o = n(r(215));

            function s(e, t) {
                var r = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }))), r.push.apply(r, n)
                }
                return r
            }
            var l = i["default"].init(window),
                c = l.win.document,
                u = l.win.Math,
                d = u.max,
                h = u.round,
                f = {
                    " ": "&nbsp;"
                },
                g = l.getDocumentSupport(),
                p = g.isWebKit ? 0 : 4.5;

            function m(e, t, r) {
                var n, a, i, s = !1,
                    u = window.document.createElement("canvas");
                for (a in (r = r || {}).maxCacheLimit = isFinite(i = r.maxCacheLimit) ? i : l.maxDefaultCacheLimit, "string" == typeof e && (e = c.getElementById(e)), (n = l.createContainer(e)).innerHTML = l.testStrAvg, !g.isHeadLess && (g.isIE || n.offsetHeight || n.offsetWidth) || (s = !0), n.innerHTML = "", l.parentContainerStyle) n.style[a] = l.parentContainerStyle[a];
                this.parentContainer = n, this.ctx = u && u.getContext && u.getContext("2d"), this._containerManager = new o["default"](n, s, 10), this._showNoEllipses = !t, this._init = !0, this.style = {}, this.oldStyle = {}, this.options = r, this.setStyle()
            }
            m.textToLines = function(e) {
                return (e = e || {}).text ? "string" != typeof e.text && (e.text = e.text.toString()) : e.text = "", e.lines = e.text.split(/\n|<br\s*?\/?>/gi), e
            }, m.prototype._calCharDimWithCache = function(e, t, r) {
                if (void 0 === e && (e = ""), !this._init) return !1;
                var n, a, i, o, s, l, c, u, d, h = this.options.maxCacheLimit,
                    g = this.style || {};
                return l = this._advancedCache = this._advancedCache || (this._advancedCache = {}), c = this._advancedCacheKey || (this._advancedCacheKey = []), u = e + g.fontSize + g.fontFamily + g.fontWeight + g.fontStyle, d = e + "init" + g.fontSize + g.fontFamily + g.fontWeight + g.fontStyle, !this.ctx && f[e] && (e = f[e]), t ? (s = l[d]) === undefined && (a = this._getDimention(e.repeat ? e.repeat(r) : Array(r + 1).join(e)).width, i = this._getDimention(e).width, s = l[d] = (a - r * i) / (r + 1), c.push(d), c.length > h && delete l[c.shift()]) : s = 0, (o = l[u]) ? {
                    width: o.width,
                    height: o.height
                } : ((n = this._getDimention(e)).width += s, l[u] = {
                    width: n.width,
                    height: n.height
                }, c.push(u), c.length > h && delete l[c.shift()], n)
            }, m.prototype._getDimention = function(e) {
                return this.requireDiv || !this.ctx ? l._getDimentionUsingDiv(e, this) : l._getDimentionUsingCanvas(e, this)
            }, m.prototype._getWidthFn = function() {
                var e = this,
                    t = e._containerObj.svgText;
                return t ? function(e) {
                    var r, n;
                    return t.textContent = e, (n = (r = t.getBBox()).width - p) < 1 && (n = r.width), n
                } : function(t) {
                    return e.requireDiv || !e.ctx ? l._getDimentionUsingDiv(t, e).width : l._getDimentionUsingCanvas(t, e).width
                }
            }, m.prototype._isSameStyle = function() {
                var e = this.oldStyle || {},
                    t = this.style;
                return t.fontSize === e.fontSize && t.fontFamily === e.fontFamily && t.fontStyle === e.fontStyle && t.fontWeight === e.fontWeight && t.fontVariant === e.fontVariant
            }, m.prototype._setStyleOfCanvas = function() {
                if (!this._isSameStyle()) {
                    var e, t, r = this.style,
                        n = r.fontStyle,
                        a = r.fontVariant,
                        i = r.fontWeight,
                        o = r.fontSize,
                        s = r.fontFamily;
                    e = n + " " + a + " " + i + " " + (o += -1 === o.indexOf("px") ? "px" : "") + " " + s, this.ctx.font = e, t = this._containerObj = this._containerManager.get(r), this._containerObj ? (this._container = t.node, this._context = t.context, this._cache = t.charCache, this._lineHeight = t.lineHeight, this._styleNotSet = !1) : this._styleNotSet = !0, t.ellipsesWidth = this._calCharDimWithCache("...", !1).width, t.dotWidth = this._calCharDimWithCache(".", !1).width, t.lineHeight = this._lineHeight = t.lineHeight || l._getCleanHeight(r.lineHeight), this.oldStyle = r
                }
            }, m.prototype._setStyleOfDiv = function() {
                var e, t = this.style;
                this._containerObj = e = this._containerManager.get(t), e.node || this._containerManager._makeDivNode(this._containerObj), this._containerObj ? (this._container = e.node, this._context = e.context, this._cache = e.charCache, this._lineHeight = e.lineHeight, this._styleNotSet = !1) : this._styleNotSet = !0
            }, m.prototype._updateStyle = function() {
                return this.requireDiv || !this.ctx ? this._setStyleOfDiv() : this._setStyleOfCanvas()
            }, m.prototype.setStyle = function(e) {
                return this.style = l.parseStyle(e), l.setLineHeight(this.style), this
            }, m.prototype.useEllipsesOnOverflow = function(e) {
                return this._init ? (this._showNoEllipses = !e, this) : this
            }, m.prototype.getSmartText = function(e, t, r, n) {
                if (!this._init) return !1;
                e === undefined || null === e ? e = "" : "string" != typeof e && (e = e.toString());
                var a, i, o, s, u, h, f, p, m, v, b, y, x, w, C, _, k, S, E, A, T, N, M, D, F, I, L, O, R, P, V, B, j, H, G, U = 0,
                    z = -1,
                    W = -1,
                    X = -1,
                    $ = 0,
                    Y = 0,
                    q = [],
                    K = 0,
                    J = this._showNoEllipses ? "" : "...",
                    Z = this.ctx,
                    Q = [],
                    ee = -1,
                    te = -1,
                    re = -1,
                    ne = function(e) {
                        for (var t = /\s/, r = (e = e.replace(/^\s\s*/, "")).length; t.test(e.charAt(r -= 1)););
                        return e.slice(0, r + 1)
                    },
                    ae = {
                        text: e,
                        maxWidth: t,
                        maxHeight: r,
                        width: null,
                        height: null,
                        oriTextWidth: null,
                        oriTextHeight: null,
                        oriText: e,
                        isTruncated: !1
                    };
                if (L = l.xmlTagRegEx.test(e) || l.nbspRegex.test(e), H = l._hasOnlyBRTag(e), this.requireDiv = L && !H, this._updateStyle(), O = this._lineHeight, R = this._context, P = this._container, B = (V = this._containerObj).ellipsesWidth, j = V.dotWidth, h = e.replace(l.spanAdditionRegx, "$2"), y = this._getWidthFn(), O - r <= 1 && O - r >= 0 && (r *= 1.2), Z || P) {
                    if (!g.isBrowserLess) {
                        if (L ? H ? (e = e.replace(l.brRegex, "<br />"), G = l._getDimentionOfMultiLineText(e, this), ae.oriTextWidth = f = G.width, ae.oriTextHeight = p = G.height) : (P.innerHTML = e, ae.oriTextWidth = f = P.offsetWidth, ae.oriTextHeight = p = P.offsetHeight) : (s = e = e.replace(l.ltgtquotRegex, (function(e) {
                                switch (e) {
                                    case "&lt;":
                                        return "<";
                                    case "&gt;":
                                        return ">";
                                    case "&quot;":
                                    case "&#034;":
                                        return '"';
                                    case "&#039;":
                                        return "'"
                                }
                            })), C = this.getSize(s, !0, {
                                hasHTMLTag: L,
                                hasOnlyBrTag: H,
                                cleanText: !0
                            }), ae.oriTextWidth = f = C.width, ae.oriTextHeight = p = C.height), p <= r && f <= t) return ae.width = ae.oriTextWidth = f, ae.height = ae.oriTextHeight = p, ae;
                        if (O > r) return ae.text = "", ae.width = ae.oriTextWidth = 0, ae.height = ae.oriTextHeight = 0, ae
                    }
                    if (e = ne(e).replace(/(\s+)/g, " "), u = this._showNoEllipses ? t : t - B, !L || H) {
                        if (a = (q = l._getTextArray(e)).length, i = "", o = [], b = q[0], this._cache[b] ? E = this._cache[b].width : (E = y(b), this._cache[b] = {
                                width: E
                            }), u > E && !H) o = e.substr(0, l.getNearestBreakIndex(e, u, this)).split("");
                        else {
                            if (E > t) return ae.text = "", ae.width = ae.oriTextWidth = ae.height = ae.oriTextHeight = 0, ae;
                            J && ((u = t - 2 * j) > E ? J = ".." : (u = t - j) > E ? J = "." : (u = 0, J = ""))
                        }
                        if (K = o.length, $ = y(o.join("")), Y = this._lineHeight, n) {
                            for (; K < a; K += 1)
                                if (b = o[K] = q[K], "<br />" !== o[K]) {
                                    if (this._cache[b] ? E = this._cache[b].width : (C && (E = C.detailObj[b]) || (E = y(b)), this._cache[b] = {
                                            width: E
                                        }), ($ += E) > u && (i || (i = o.slice(0, -1).join("")), $ > t)) return ae.text = ne(i) + J, ae.tooltext = ae.oriText, ae.width = d(U, $), ae.height = Y, ae.isTruncated = !0, ae
                                } else Y += this._lineHeight, X = K, U = d(U, $), $ = 0, i = null;
                            return ae.text = o.join(""), ae.width = d(U, $), ae.height = Y, ae
                        }
                        for (; K < a; K += 1) {
                            if (" " !== (b = o[K] = q[K]) || R || (b = this.ctx ? " " : "&nbsp;"), "<br />" === o[K]) {
                                if (U = d(U, $), (Y += this._lineHeight) <= r) {
                                    X = K, $ = 0, i = null;
                                    continue
                                }
                                if (Y > r) return i = o.slice(0, -1).join(""), ae.text = ne(i) + J, ae.tooltext = h, ae.width = U, ae.height = Y - this._lineHeight, ae.isTruncated = !0, ae
                            }
                            if (this._cache[b] ? E = this._cache[b].width : (C && (E = C.detailObj[b]) || (E = y(b)), this._cache[b] = {
                                    width: E
                                }), ($ += E) > u && (i || (i = o.slice(0, -1).join("")), $ > t)) {
                                if ("<br />" === q[K + 1]) continue;
                                if (W = l._findLastIndex(q.slice(0, o.length), " "), z = l._findLastIndex(q.slice(0, o.length), "-"), W > X ? ($ = y(o.slice(X + 1, W).join("")), o.splice(W, 1, "<br />"), X = W, m = W + 1) : z > X ? (z === o.length - 1 ? ($ = y(o.slice(X + 1, W).join("")), o.splice(z, 1, "<br />-")) : ($ = y(o.slice(X + 1, W).join("")), o.splice(z, 1, "-<br />")), X = z, m = z + 1) : (o.splice(o.length - 1, 1, "<br />" + q[K]), re = o.length - 2, $ = y(o.slice(X + 1, re + 1).join("")), X = re, m = K), (Y += this._lineHeight) > r) return ae.text = ne(i) + J, ae.tooltext = ae.oriText, ae.width = t, ae.height = Y - this._lineHeight, ae.isTruncated = !0, ae;
                                U = d(U, $), i = null, H ? $ = l._getDimentionOfMultiLineText(o.slice(X + 1).join(""), this).width : (v = l.getNearestBreakIndex(e.substr(m), u, this), $ = y(e.substr(m, v || 1)), o.length < m + v && (K = (o = o.concat(e.substr(o.length, m + v - o.length).split(""))).length - 1))
                            }
                        }
                        return U = d(U, $), ae.text = o.join(""), ae.width = U, ae.height = Y, ae
                    }
                    for (h = e.replace(l.spanAdditionRegx, "$2"), e = (e = e.replace(l.spanAdditionRegx, l.spanAdditionReplacer)).replace(/(<br\s*\/*\>)/g, '<span class="' + [l.classNameWithTag, " ", l.classNameWithTagBR].join("") + '">$1</span>'), P.innerHTML = e, k = 0, S = (_ = P[g.childRetriverFn](g.childRetriverString)).length; k < S; k += 1) A = _[k], (g.noClassTesting || l.classNameReg.test(A.className)) && "" !== (T = A.innerHTML) && (" " === T ? te = Q.length : "-" === T && (ee = Q.length), Q.push({
                        spaceIdx: te,
                        dashIdx: ee,
                        elem: A
                    }), q.push(T));
                    if (K = 0, (E = (a = Q.length) && Q[0].elem.offsetWidth) > t || !a) return ae.text = "", ae.width = ae.oriTextWidth = ae.height = ae.oriTextHeight = 0, ae;
                    if (E > u && !this._showNoEllipses && ((u = t - 2 * j) > E ? J = ".." : (u = t - j) > E ? J = "." : (u = 0, J = "")), x = Q[0].elem.offsetLeft, w = Q[0].elem.offsetTop, n)
                        for (; K < a; K += 1)(N = (A = Q[K].elem).offsetLeft - x + A.offsetWidth) > u && (I || (I = K), P.offsetWidth > t && (F = K, K = a));
                    else
                        for (; K < a; K += 1) M = (A = Q[K].elem).offsetHeight + (A.offsetTop - w), D = null, (N = A.offsetLeft - x + A.offsetWidth) > u ? (I || (I = K), N > t && (W = Q[K].spaceIdx, z = Q[K].dashIdx, W > X ? (Q[W].elem.innerHTML = "<br/>", X = W) : z > X ? (Q[z].elem.innerHTML = z === K ? "<br/>-" : "-<br/>", X = z) : A.parentNode.insertBefore(D = c.createElement("br"), A), A.offsetHeight + A.offsetTop > r ? (D ? D.parentNode.removeChild(D) : X === z ? Q[z].elem.innerHTML = "-" : Q[W].elem.innerHTML = " ", F = K, K = a) : I = null)) : M > r && (F = K, K = a);
                    if (F < a) {
                        for (ae.isTruncated = !0, I = I || F, K = a - 1; K >= I; K -= 1)(A = Q[K].elem).parentNode.removeChild(A);
                        for (; K >= 0; K -= 1) A = Q[K].elem, l.classNameBrReg.test(A.className) ? A.parentNode.removeChild(A) : K = 0
                    }
                    return ae.text = P.innerHTML.replace(l.spanRemovalRegx, "$1").replace(/\&amp\;/g, "&"), ae.isTruncated && (ae.text += J, ae.tooltext = h), ae.height = P.offsetHeight, ae.width = P.offsetWidth, ae
                }
                return ae.error = new Error("Body Tag Missing!"), ae
            }, m.prototype.getSize = function(e, t, r) {
                if (void 0 === e && (e = ""), void 0 === t && (t = !0), void 0 === r && (r = {}), !this._init) return !1;
                e === undefined || null === e ? e = "" : "string" != typeof e && (e = e.toString());
                var n, i, o, c, u, f, g = 0,
                    p = 0,
                    m = {},
                    v = r.hasHTMLTag,
                    b = r.hasOnlyBrTag;
                if (void 0 === v && (v = l.xmlTagRegEx.test(e) || l.nbspRegex.test(e)), void 0 === b && (b = l._hasOnlyBRTag(e)), this.requireDiv = v && !b, r.cleanText || (e = e.replace(l.ltgtquotRegex, (function(e) {
                        switch (e) {
                            case "&lt;":
                                return "<";
                            case "&gt;":
                                return ">";
                            case "&quot;":
                            case "&#034;":
                                return '"';
                            case "&#039;":
                                return "'"
                        }
                    }))), this._updateStyle(), f = this._container, !t) return this._calCharDimWithCache(e);
                for (c = 0, u = (n = e.split("")).length; c < u; c++) i = n[c], o = this._calCharDimWithCache(i, !1, n.length), p = d(p, o.height), g += o.width, m[i] = o.width;
                return b ? function(e) {
                    for (var t = 1; t < arguments.length; t++) {
                        var r = null != arguments[t] ? arguments[t] : {};
                        t % 2 ? s(Object(r), !0).forEach((function(t) {
                            (0, a["default"])(e, t, r[t])
                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : s(Object(r)).forEach((function(t) {
                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t))
                        }))
                    }
                    return e
                }({}, l._getDimentionOfMultiLineText(e, this), {
                    detailObj: m
                }) : v ? (f.innerHTML = e, {
                    width: f.offsetWidth,
                    height: f.offsetHeight,
                    detailObj: m
                }) : {
                    width: h(g),
                    height: p,
                    detailObj: m
                }
            }, m.prototype.getOriSize = function(e, t, r) {
                return void 0 === e && (e = ""), void 0 === t && (t = !0), void 0 === r && (r = {}), this.getSize(e, t, r)
            }, m.prototype.dispose = function() {
                return this._init ? (this._containerManager && this._containerManager.dispose && this._containerManager.dispose(), delete this._container, delete this._context, delete this._cache, delete this._containerManager, delete this._containerObj, delete this.id, delete this.style, delete this.parentContainer, delete this._showNoEllipses, this) : this
            };
            var v = m;
            t["default"] = v
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = {
                    init: function(e) {
                        var t = e.document,
                            r = e.navigator.userAgent,
                            a = Math.ceil,
                            i = Math.floor,
                            o = "fusioncharts-smartlabel-",
                            s = o + "container",
                            l = o + "tag";
                        return n = {
                            win: e,
                            containerClass: s,
                            classNameWithTag: l,
                            classNameWithTagBR: "fusioncharts-smartlabel-br",
                            maxDefaultCacheLimit: 1e3,
                            classNameReg: /\bfusioncharts-smartlabel-tag\b/,
                            classNameBrReg: /\bfusioncharts-smartlabel-br\b/,
                            spanAdditionRegx: /(<[^<\>]+?\>)|(&(?:[a-z]+|#[0-9]+);|.)/gi,
                            spanAdditionReplacer: '$1<span class="' + l + '">$2</span>',
                            spanRemovalRegx: new RegExp("\\<span[^\\>]+?" + l + "[^\\>]{0,}\\>(.*?)\\<\\/span\\>", "ig"),
                            xmlTagRegEx: new RegExp("<[^>][^<]*[^>]+>", "i"),
                            brRegex: new RegExp("({br[ ]*})|(<br[ ]*>)|(<br[ ]*/>)|(<BR[ ]*/>)|(<br\\>)", "g"),
                            ltgtquotRegex: /&lt;|&gt;|&quot;|&#034;|&#039;/g,
                            nbspRegex: /&nbsp;|&#160;|&#xA0;/g,
                            htmlSpecialEntityRegex: /&amp;|&quot;|&lt;|&gt;/g,
                            brReplaceRegex: /<br\/>/gi,
                            testStrAvg: "WgI",
                            parentContainerStyle: {
                                position: "absolute",
                                top: "-9999em",
                                whiteSpace: "nowrap",
                                padding: "0px",
                                width: "1px",
                                height: "1px",
                                overflow: "hidden"
                            },
                            supportedStyle: {
                                font: "font",
                                fontFamily: "font-family",
                                "font-family": "font-family",
                                fontWeight: "font-weight",
                                "font-weight": "font-weight",
                                fontSize: "font-size",
                                "font-size": "font-size",
                                lineHeight: "line-height",
                                "line-height": "line-height",
                                fontStyle: "font-style",
                                "font-style": "font-style"
                            },
                            getDocumentSupport: function() {
                                var n, a, i;
                                return t.getElementsByClassName ? (n = "getElementsByClassName", a = l, i = !0) : (n = "getElementsByTagName", a = "span", i = !1), {
                                    isIE: /msie/i.test(r) && !e.opera,
                                    hasSVG: Boolean(e.SVGAngle || t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")),
                                    isHeadLess: new RegExp(" HtmlUnit").test(r),
                                    isWebKit: new RegExp(" AppleWebKit/").test(r),
                                    childRetriverFn: n,
                                    childRetriverString: a,
                                    noClassTesting: i
                                }
                            },
                            createContainer: function(e) {
                                var r, n;
                                if (e && (e.offsetWidth || e.offsetHeight)) {
                                    if (e.appendChild) return e.appendChild(n = t.createElement("DIV")), n.className = s, n.setAttribute("aria-hidden", "true"), n.setAttribute("role", "presentation"), n
                                } else if ((r = t.getElementsByTagName("body")[0]) && r.appendChild) return (n = t.createElement("DIV")).className = s, n.setAttribute("aria-hidden", "true"), n.setAttribute("role", "presentation"), r.appendChild(n), n
                            },
                            getNearestBreakIndex: function(e, t, r) {
                                if (!e || !e.length) return 0;
                                var n, o = r._getWidthFn(),
                                    s = 0,
                                    l = 0,
                                    c = o(e),
                                    u = c / e.length;
                                if (n = t, s = a(t / u), c < t) return e.length - 1;
                                for (s > e.length && (n = t - c, s = e.length); n > 0;) {
                                    if (n = t - o(e.substr(0, s)), !(l = i(n / u))) return s;
                                    s += l
                                }
                                for (; n < 0;) {
                                    if (n = t - o(e.substr(0, s)), !(l = i(n / u))) return s;
                                    s += l
                                }
                                return s
                            },
                            parseStyle: function(e) {
                                void 0 === e && (e = {});
                                var t = {};
                                return t.fontSize = (e.fontSize || e["font-size"] || "12px") + "", t.fontVariant = e.fontVariant || e["font-variant"] || "normal", t.fontWeight = e.fontWeight || e["font-weight"] || "normal", t.fontStyle = e.fontStyle || e["font-style"] || "normal", t.fontFamily = e.fontFamily || e["font-family"] || "Verdana,sans", t
                            },
                            setLineHeight: function(e) {
                                var t = e.fontSize;
                                return e.lineHeight = e.lineHeight || e["line-height"] || 1.2 * parseInt(t, 10) + "px", e
                            },
                            _getCleanHeight: function(e) {
                                return e = e.replace(/px/g, ""), Number(e)
                            },
                            _getDimentionUsingDiv: function(e, t) {
                                void 0 === e && (e = "");
                                var r = t._container;
                                return e instanceof Array && (e = e.join("")), r.innerHTML = e, {
                                    width: r.offsetWidth,
                                    height: r.offsetHeight
                                }
                            },
                            _getDimentionUsingCanvas: function(e, t) {
                                void 0 === e && (e = "");
                                var r = t.ctx,
                                    a = t.style,
                                    i = n._getCleanHeight(a.lineHeight);
                                return e = e instanceof Array ? (e = e.join("")).replace(/<br \/>/g, "") : e.replace(/<br \/>/g, ""), {
                                    width: r.measureText(e).width,
                                    height: i
                                }
                            },
                            _hasOnlyBRTag: function(e) {
                                return void 0 === e && (e = ""), !n.xmlTagRegEx.test(e) && n.brRegex.test(e)
                            },
                            _getDimentionOfMultiLineText: function(e, t) {
                                void 0 === e && (e = "");
                                var r, a, i, o = e.replace(n.brRegex, "<br />"),
                                    s = n._getTextArray(o),
                                    l = 0,
                                    c = 0,
                                    u = t._getWidthFn(),
                                    d = n._getCleanHeight(t.style.lineHeight),
                                    h = d,
                                    f = {};
                                for (r = 0, a = s.length; r < a; r++) "<br />" === s[r] ? (c = Math.max(c, l), l = 0, h += d) : (l += i = u(s[r]), f[s[r]] = i);
                                return {
                                    height: h,
                                    width: c = Math.max(c, l),
                                    detailObj: f
                                }
                            },
                            _getTextArray: function(e) {
                                void 0 === e && (e = "");
                                var t, r, n, a, i, o, s = [];
                                for (n = (i = e.split("<br />")).length, t = 0; t < n; t++) {
                                    for (a = (o = i[t].split("")).length, r = 0; r < a; r++) s.push(o[r]);
                                    t !== n - 1 && s.push("<br />")
                                }
                                return s
                            },
                            _findLastIndex: function(e, t) {
                                var r;
                                for (void 0 === e && (e = []), r = e.length - 1; r >= 0; r--)
                                    if (e[r] === t) return r;
                                return -1
                            }
                        }
                    }
                },
                a = n;
            t["default"] = a
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(214))["default"].init(window),
                i = a.win.document,
                o = a.getDocumentSupport(),
                s = o.isWebKit ? 0 : 4.5;

            function l(e, t, r) {
                var n;
                r = (r = r > 5 ? r : 5) < 20 ? r : 20, this.maxContainers = r, this.first = null, this.last = null, this.containers = {}, this.length = 0, this.rootNode = e, t && ((n = i.createElementNS("http://www.w3.org/2000/svg", "svg")).setAttributeNS("http://www.w3.org/2000/svg", "xlink", "http://www.w3.org/1999/xlink"), n.setAttributeNS("http://www.w3.org/2000/svg", "height", "0"), n.setAttributeNS("http://www.w3.org/2000/svg", "width", "0"), this.svgRoot = n, this.rootNode.appendChild(n))
            }
            l.prototype.get = function(e) {
                var t, r, n, i = this.containers,
                    o = this.length,
                    s = this.maxContainers,
                    l = "";
                for (r in a.supportedStyle) e[r] !== undefined && (l += a.supportedStyle[r] + ":" + e[r] + ";");
                if (!l) return !1;
                if (n = i[l]) this.first !== n && (n.prev && (n.prev.next = n.next), n.next && (n.next.prev = n.prev), n.next = this.first, n.next.prev = n, this.last === n && (this.last = n.prev), n.prev = null, this.first = n);
                else {
                    if (o >= s)
                        for (t = o - s + 1; t--;) this.removeContainer(this.last);
                    n = this.addContainer(l)
                }
                return n
            }, l.prototype._makeDivNode = function(e) {
                var t, r = e.keyStr;
                e.node || (e.node = i.createElement("div"), e.node.className = "fusioncharts-div", this.rootNode.appendChild(e.node)), t = e.node, o.isIE && !o.hasSVG ? t.style.setAttribute("cssText", r) : t.setAttribute("style", r), t.setAttribute("aria-hidden", "true"), t.setAttribute("role", "presentation"), t.style.display = "inline-block", t.innerHTML = a.testStrAvg, e.lineHeight = t.offsetHeight, e.avgCharWidth = t.offsetWidth / 3, o.isBrowserLess ? (e.svgText || (e.svgText = i.createElementNS("http://www.w3.org/2000/svg", "text"), this.svgRoot.appendChild(t)), (t = e.svgText).setAttribute("style", r), t.textContent = a.testStrAvg, e.lineHeight = t.getBBox().height, e.avgCharWidth = (t.getBBox().width - s) / 3, t.textContent = "...", e.ellipsesWidth = t.getBBox().width - s, t.textContent = ".", e.dotWidth = t.getBBox().width - s) : (t.innerHTML = "...", e.ellipsesWidth = t.offsetWidth, t.innerHTML = ".", e.dotWidth = t.offsetWidth, t.innerHTML = "")
            }, l.prototype.addContainer = function(e) {
                var t;
                return this.containers[e] = t = {
                    next: null,
                    prev: null,
                    node: null,
                    ellipsesWidth: 0,
                    lineHeight: 0,
                    dotWidth: 0,
                    avgCharWidth: 4,
                    keyStr: e,
                    charCache: {}
                }, t.next = this.first, t.next && (t.next.prev = t), this.first = t, this.last || (this.last = t), this.length += 1, t
            }, l.prototype.removeContainer = function(e) {
                var t = e.keyStr;
                t && this.length && e && (this.length -= 1, e.prev && (e.prev.next = e.next), e.next && (e.next.prev = e.prev), this.first === e && (this.first = e.next), this.last === e && (this.last = e.prev), e.node && e.node.parentNode.removeChild(e.node), delete this.containers[t])
            }, l.prototype.dispose = function() {
                var e, t = this.containers;
                for (e in this.maxContainers = null, t) this.removeContainer(t[e]);
                this.rootNode.parentNode.removeChild(this.rootNode), this.rootNode = null, this.first = null, this.last = null
            };
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = t.getFile = t.addFile = void 0;
            var n = {},
                a = function(e) {
                    n[e] = !0
                },
                i = function(e) {
                    return n[e]
                };
            t.getFile = i, t.addFile = a;
            var o = {
                extension: function(e) {
                    e.addFile = a, e.getFile = i
                },
                name: "fileStore",
                type: "plugin",
                requiresFusionCharts: !0
            };
            t["default"] = o
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                options: {
                    chartTypeSourcePath: ["typeSourcePath", ""],
                    product: ["product", "v3"],
                    insertMode: ["insertMode", "replace"],
                    safeMode: ["safeMode", !0],
                    overlayButton: ["overlayButton"],
                    containerBackgroundColor: ["containerBackgroundColor", "#ffffff"],
                    containerBackgroundOpacity: ["containerBackgroundOpacity", 1],
                    containerClassName: ["containerClassName", "fusioncharts-container"],
                    chartType: ["type"],
                    baseChartMessageFont: ["baseChartMessageFont", "Verdana,sans"],
                    baseChartMessageFontSize: ["baseChartMessageFontSize", "10"],
                    baseChartMessageColor: ["baseChartMessageColor", "#666666"],
                    baseChartMessageImageHAlign: ["baseChartMessageImageHAlign", "middle"],
                    baseChartMessageImageVAlign: ["baseChartMessageImageVAlign", "middle"],
                    baseChartMessageImageAlpha: ["baseChartMessageImageAlpha", 100],
                    baseChartMessageImageScale: ["baseChartMessageImageScale", 100],
                    dataLoadStartMessage: ["dataLoadStartMessage", "Retrieving data. Please wait."],
                    dataLoadErrorMessage: ["dataLoadErrorMessage", "Error in loading data."],
                    dataInvalidMessage: ["dataInvalidMessage", "Invalid data."],
                    dataEmptyMessage: ["dataEmptyMessage", "No data to display."],
                    typeNotSupportedMessage: ["typeNotSupportedMessage", "Chart type not supported."],
                    browserNotSupportedMessage: ["browserNotSupportedMessage", "This browser is not supported."],
                    loadMessage: ["loadMessage", "Loading chart. Please wait."],
                    renderErrorMessage: ["renderErrorMessage", "Unable to render chart."],
                    messageURL: ["messageURL", ""],
                    containerElementId: ["renderAt"],
                    renderer: ["renderer"],
                    containerElementType: ["containerElementType"],
                    showChartLoadingMessage: ["showChartLoadingMessage", !0],
                    visibilityTrackingInterval: 300,
                    events: ["events", {}]
                },
                jsVars: {},
                attributes: {
                    lang: ["lang", "EN"],
                    id: ["id"]
                },
                link: ["link"],
                width: ["width", "400"],
                height: ["height", "300"]
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n, a, i, o, s, l = r(193),
                c = Math.abs,
                u = Math.pow,
                d = Math.round,
                h = {
                    formatnumber: "1",
                    formatnumberscale: "1",
                    forcenumberscale: "0",
                    defaultnumberscale: "",
                    numberscaleunit: ["K", "M"],
                    numberscalevalue: [1e3, 1e3],
                    numberprefix: "",
                    numbersuffix: "",
                    decimals: "",
                    forcedecimals: "0",
                    yaxisvaluedecimals: "2",
                    decimalseparator: ".",
                    thousandseparator: ",",
                    thousandseparatorposition: [3],
                    indecimalseparator: "",
                    inthousandseparator: "",
                    sformatnumber: "1",
                    sformatnumberscale: "0",
                    sforcenumberscale: "0",
                    sdefaultnumberscale: "",
                    snumberscaleunit: ["K", "M"],
                    snumberscalevalue: [1e3, 1e3],
                    snumberprefix: "",
                    snumbersuffix: "",
                    sdecimals: "2",
                    sforcedecimals: "0",
                    syaxisvaluedecimals: "2",
                    xFormatNumber: "0",
                    xFormatNumberScale: "0",
                    xforcenumberscale: "0",
                    xDefaultNumberScale: "",
                    xNumberScaleUnit: ["K", "M"],
                    xNumberScaleValue: [1e3, 1e3],
                    xNumberPrefix: "",
                    xNumberSuffix: ""
                },
                f = {
                    mscombidy2d: {
                        formatnumberscale: "1"
                    }
                },
                g = function() {
                    function e(e, t) {
                        var r = e.getName && e.getName(),
                            n = this.csConf = (0, l.extend2)({}, h),
                            a = f[r];
                        this.cleaneValueCacheStore = {}, this.percentStrCacheStore = {}, a && (n = (0, l.extend2)(n, a)), this.linkedItems = {
                            chart: e
                        }, this.configure(t)
                    }
                    var t = e.prototype;
                    return t.setDefaults = function() {
                        var e = this.linkedItems.chart,
                            t = e.getName && e.getName(),
                            r = this.csConf = (0, l.extend2)({}, h),
                            n = f[t];
                        n && (0, l.extend2)(r, n)
                    }, t.configure = function(e) {
                        var t, r, n, a, i, o, s, c, u, d, f, g, p, m, v, b, y, x, w, C, _, k, S, E, A, T, N, M, D = this,
                            F = D.linkedItems.chart,
                            I = e || F.getFromEnv("chart-attrib"),
                            L = F.getName && F.getName(),
                            O = F.config,
                            R = D.csConf;
                        if (O || (O = F), D.csConf = R, D.useScaleRecursively = O.useScaleRecursively, (0, l.getValidValue)(I.numberscaleunit) && (t = I.numberscaleunit.split(",")), (r = (0, l.getValidValue)(I.snumberscaleunit, I.numberscaleunit)) && (r = r.split(",")), (n = (0, l.getValidValue)(I.xnumberscaleunit, I.numberscaleunit)) && (n = n.split(",")), (a = (0, l.getValidValue)(I.ticknumberscaleunit, I.numberscaleunit)) && (a = a.split(",")), (i = (0, l.getValidValue)(I.ynumberscaleunit, I.numberscaleunit)) && (i = i.split(",")), (0, l.getValidValue)(I.numberscalevalue) && (o = I.numberscalevalue.split(",")), (f = (0, l.getValidValue)(I.snumberscalevalue, I.numberscalevalue)) && (f = f.split(",")), (s = (0, l.getValidValue)(I.xnumberscalevalue, I.numberscalevalue)) && (s = s.split(",")), (c = (0, l.getValidValue)(I.ticknumberscalevalue, I.numberscalevalue)) && (c = c.split(",")), (u = (0, l.getValidValue)(I.ynumberscalevalue, I.numberscalevalue)) && (u = u.split(",")), (0, l.getValidValue)(I.thousandseparatorposition))
                            for (y = (d = I.thousandseparatorposition.split(",")).length, w = h.thousandseparatorposition[0]; y--;)(x = parseInt(d[y], 10)) <= 0 && (x = w), w = d[y] = x;
                        C = (0, l.pluckNumber)(I.scalerecursively, 0), _ = (0, l.pluckNumber)(I.sscalerecursively, C), k = (0, l.pluckNumber)(I.xscalerecursively, C), S = (0, l.pluckNumber)(I.maxscalerecursion, -1), E = (0, l.pluckNumber)(I.smaxscalerecursion, S), A = (0, l.pluckNumber)(I.xmaxscalerecursion, S), T = (0, l.getValidValue)(I.scaleseparator, " "), N = (0, l.getValidValue)(I.sscaleseparator, T), M = (0, l.getValidValue)(I.xscaleseparator, T), S || (S = -1), D.baseConf = b = {
                            cacheStore: [],
                            formatnumber: (0, l.pluck)(I.formatnumber, R.formatnumber),
                            formatnumberscale: (0, l.pluck)(I.formatnumberscale, O.formatnumberscale, R.formatnumberscale),
                            forcenumberscale: (0, l.pluck)(I.forcenumberscale, R.forcenumberscale),
                            defaultnumberscale: (0, l.getFirstValue)(I.defaultnumberscale, R.defaultnumberscale),
                            numberscaleunit: (0, l.pluck)(t, R.numberscaleunit).concat(),
                            numberscalevalue: (0, l.pluck)(o, R.numberscalevalue).concat(),
                            numberprefix: (0, l.parseUnsafeString)((0, l.getFirstValue)(I.numberprefix, R.numberprefix)),
                            numbersuffix: (0, l.parseUnsafeString)((0, l.getFirstValue)(I.numbersuffix, R.numbersuffix)),
                            decimalprecision: parseInt("auto" === I.decimals ? R.decimalprecision : (0, l.pluck)(I.decimals, I.decimalprecision, O.decimals, R.decimals, O.decimalprecision, R.decimalprecision), 10),
                            forcedecimals: (0, l.pluck)(I.forcedecimals, R.forcedecimals),
                            decimalseparator: (0, l.pluck)(I.decimalseparator, R.decimalseparator),
                            thousandseparator: (0, l.pluck)(I.thousandseparator, R.thousandseparator),
                            thousandseparatorposition: (0, l.pluck)(d, R.thousandseparatorposition),
                            indecimalseparator: (0, l.getFirstValue)(I.indecimalseparator, R.indecimalseparator),
                            inthousandseparator: (0, l.getFirstValue)(I.inthousandseparator, R.inthousandseparator),
                            scalerecursively: C,
                            maxscalerecursion: S,
                            scaleseparator: T
                        }, (0, l.getValidValue)(b.inthousandseparator) && (D.baseConf._REGinthousandseparator = new RegExp((0, l.regescape)(b.inthousandseparator), "g")), (0, l.getValidValue)(b.indecimalseparator) && (D.baseConf._REGindecimalseparator = new RegExp((0, l.regescape)(b.indecimalseparator))), D.Y = [], g = {
                            cacheStore: [],
                            formatnumber: b.formatnumber,
                            formatnumberscale: b.formatnumberscale,
                            forcenumberscale: b.forcenumberscale,
                            defaultnumberscale: b.defaultnumberscale,
                            numberscaleunit: b.numberscaleunit.concat(),
                            numberscalevalue: b.numberscalevalue.concat(),
                            numberprefix: b.numberprefix,
                            numbersuffix: b.numbersuffix,
                            decimalprecision: b.decimalprecision,
                            forcedecimals: b.forcedecimals,
                            decimalseparator: b.decimalseparator,
                            thousandseparator: b.thousandseparator,
                            thousandseparatorposition: b.thousandseparatorposition,
                            indecimalseparator: b.indecimalseparator,
                            inthousandseparator: b.inthousandseparator,
                            scalerecursively: C,
                            maxscalerecursion: S,
                            scaleseparator: T
                        }, O.useScaleRecursively && (g.numberscalevalue && g.numberscalevalue.length) === (g.numberscaleunit && g.numberscaleunit.length) || (g.scalerecursively = C = 0), m = {
                            cacheStore: [],
                            formatnumber: g.formatnumber,
                            formatnumberscale: g.formatnumberscale,
                            forcenumberscale: g.forcenumberscale,
                            defaultnumberscale: g.defaultnumberscale,
                            numberscaleunit: g.numberscaleunit.concat(),
                            numberscalevalue: g.numberscalevalue.concat(),
                            numberprefix: g.numberprefix,
                            numbersuffix: g.numbersuffix,
                            decimalprecision: parseInt((0, l.pluck)(I.yaxisvaluedecimals, g.decimalprecision, 2), 10),
                            forcedecimals: (0, l.pluck)(I.forceyaxisvaluedecimals, g.forcedecimals),
                            decimalseparator: g.decimalseparator,
                            thousandseparator: g.thousandseparator,
                            thousandseparatorposition: g.thousandseparatorposition.concat(),
                            indecimalseparator: g.indecimalseparator,
                            inthousandseparator: g.inthousandseparator,
                            scalerecursively: C,
                            maxscalerecursion: S,
                            scaleseparator: T
                        }, v = {
                            cacheStore: [],
                            formatnumber: (0, l.pluck)(I.sformatnumber, h.sformatnumber),
                            formatnumberscale: (0, l.pluck)(I.sformatnumberscale, h.sformatnumberscale),
                            forcenumberscale: (0, l.pluck)(I.sforcenumberscale, h.sforcenumberscale),
                            defaultnumberscale: (0, l.getFirstValue)(I.sdefaultnumberscale, g.defaultnumberscale),
                            numberscaleunit: (0, l.pluck)(r, h.snumberscaleunit).concat(),
                            numberscalevalue: (0, l.pluck)(f, h.snumberscalevalue).concat(),
                            numberprefix: (0, l.parseUnsafeString)((0, l.getFirstValue)(I.snumberprefix, h.snumberprefix)),
                            numbersuffix: (0, l.parseUnsafeString)((0, l.getFirstValue)(I.snumbersuffix, h.snumbersuffix)),
                            decimalprecision: parseInt((0, l.pluck)(I.syaxisvaluedecimals, I.sdecimals, I.decimals, h.sdecimals), 10),
                            forcedecimals: (0, l.pluck)(I.forcesyaxisvaluedecimals, I.sforcedecimals, I.forcedecimals, h.sforcedecimals),
                            decimalseparator: (0, l.pluck)(I.decimalseparator, h.decimalseparator),
                            thousandseparator: (0, l.pluck)(I.thousandseparator, h.thousandseparator),
                            thousandseparatorposition: g.thousandseparatorposition.concat(),
                            indecimalseparator: (0, l.parseUnsafeString)((0, l.pluck)(I.indecimalseparator, h.indecimalseparator)),
                            inthousandseparator: (0, l.parseUnsafeString)((0, l.pluck)(I.inthousandseparator, h.inthousandseparator)),
                            scalerecursively: _,
                            maxscalerecursion: E,
                            scaleseparator: N
                        }, (p = (0, l.extend2)({}, v)).decimalprecision = parseInt((0, l.pluck)(I.sdecimals, I.decimals, I.syaxisvaluedecimals, h.sdecimals), 10), p.forcedecimals = (0, l.pluck)(I.sforcedecimals, I.forcedecimals, I.forcesyaxisvaluedecimals, h.sforcedecimals), p.cacheStore = [], O.useScaleRecursively && (v.numberscalevalue && v.numberscalevalue.length) === (v.numberscaleunit && v.numberscaleunit.length) || (v.scalerecursively = _ = 0), /^(bubble|scatter|selectscatter|zoomscatter)$/gi.test(L) && (m.formatnumber = (0, l.pluck)(I.yformatnumber, m.formatnumber), m.formatnumberscale = (0, l.pluck)(I.yformatnumberscale, m.formatnumberscale), m.forcenumberscale = (0, l.pluck)(I.yforcenumberscale, m.forcenumberscale), m.defaultnumberscale = (0, l.getFirstValue)(I.ydefaultnumberscale, m.defaultnumberscale), m.numberscaleunit = (0, l.pluck)(i, m.numberscaleunit), m.numberscalevalue = (0, l.pluck)(u, m.numberscalevalue), m.numberprefix = (0, l.parseUnsafeString)((0, l.pluck)(I.ynumberprefix, m.numberprefix)), m.numbersuffix = (0, l.parseUnsafeString)((0, l.pluck)(I.ynumbersuffix, m.numbersuffix)), g.formatnumber = (0, l.pluck)(I.yformatnumber, g.formatnumber), g.formatnumberscale = (0, l.pluck)(I.yformatnumberscale, g.formatnumberscale), g.forcenumberscale = (0, l.pluck)(I.yforcenumberscale, g.forcenumberscale), g.defaultnumberscale = (0, l.getFirstValue)(I.ydefaultnumberscale, g.defaultnumberscale), g.numberscaleunit = (0, l.pluck)(I.ynumberscaleunit, g.numberscaleunit.concat()), g.numberscalevalue = (0, l.pluck)(I.ynumberscalevalue, g.numberscalevalue.concat()), g.numberprefix = (0, l.parseUnsafeString)((0, l.pluck)(I.ynumberprefix, g.numberprefix)), g.numbersuffix = (0, l.parseUnsafeString)((0, l.pluck)(I.ynumbersuffix, g.numbersuffix))), /^(pie2d|pie3d|doughnut2d|doughnut3d|marimekko|pareto2d|pareto3d)$/.test(L) && (g.decimalprecision = (0, l.pluck)(I.decimals, "2")), C && (g.numberscalevalue.push(1), g.numberscaleunit.unshift(g.defaultnumberscale), m.numberscalevalue.push(1), m.numberscaleunit.unshift(m.defaultnumberscale)), _ && (v.numberscalevalue.push(1), v.numberscaleunit.unshift(v.defaultnumberscale), p.numberscalevalue.push(1), p.numberscaleunit.unshift(p.defaultnumberscale)), D.Y[0] = {
                            yAxisLabelConf: m,
                            dataLabelConf: g
                        }, D.Y[1] = {
                            yAxisLabelConf: v,
                            dataLabelConf: p
                        }, D.paramLabels = g, D.param1 = m, D.param2 = v, D.paramLabels2 = p, D.paramX = {
                            cacheStore: [],
                            formatnumber: (0, l.pluck)(I.xformatnumber, b.formatnumber),
                            formatnumberscale: (0, l.pluck)(I.xformatnumberscale, b.formatnumberscale),
                            forcenumberscale: (0, l.pluck)(I.xforcenumberscale, b.forcenumberscale),
                            defaultnumberscale: (0, l.getFirstValue)(I.xdefaultnumberscale, b.defaultnumberscale),
                            numberscaleunit: (0, l.pluck)(n, b.numberscaleunit.concat()),
                            numberscalevalue: (0, l.pluck)(s, b.numberscalevalue.concat()),
                            numberprefix: (0, l.parseUnsafeString)((0, l.pluck)(I.xnumberprefix, b.numberprefix)),
                            numbersuffix: (0, l.parseUnsafeString)((0, l.pluck)(I.xnumbersuffix, b.numbersuffix)),
                            decimalprecision: parseInt((0, l.pluck)(I.xaxisvaluedecimals, I.xaxisvaluesdecimals, b.decimalprecision, 2), 10),
                            forcedecimals: (0, l.pluck)(I.forcexaxisvaluedecimals, 0),
                            decimalseparator: b.decimalseparator,
                            thousandseparator: b.thousandseparator,
                            thousandseparatorposition: b.thousandseparatorposition.concat(),
                            indecimalseparator: b.indecimalseparator,
                            inthousandseparator: b.inthousandseparator,
                            scalerecursively: k,
                            maxscalerecursion: A,
                            scaleseparator: M
                        }, D.paramLegend = (0, l.extend2)((0, l.extend2)({}, b), {
                            cacheStore: [],
                            decimalprecision: parseInt((0, l.pluckNumber)(I.legendvaluedecimals, b.decimalprecision, 2), 10),
                            forcedecimals: (0, l.pluckNumber)(I.legendvalueforcedecimals, b.forcedecimals, 0),
                            formatnumberscale: (0, l.pluck)(I.legendvalueformatnumberscale, b.formatnumberscale),
                            forcenumberscale: (0, l.pluck)(I.legendvalueforcenumberscale, b.forcenumberscale),
                            formatnumber: (0, l.pluck)(I.legendvalueformatnumber, b.formatnumber)
                        }), C && (D.paramLegend.numberscalevalue.push(1), D.paramLegend.numberscaleunit.unshift(D.paramLegend.defaultnumberscale)), O.useScaleRecursively && (D.paramX.numberscalevalue && D.paramX.numberscalevalue.length) === (D.paramX.numberscaleunit && D.paramX.numberscaleunit.length) || (D.paramX.scalerecursively = k = 0), k && (D.paramX.numberscalevalue.push(1), D.paramX.numberscaleunit.unshift(D.paramX.defaultnumberscale)), D.paramScale = {
                            cacheStore: [],
                            formatnumber: (0, l.pluck)(I.tickformatnumber, b.formatnumber),
                            formatnumberscale: (0, l.pluck)(I.tickformatnumberscale, b.formatnumberscale),
                            forcenumberscale: (0, l.pluck)(I.tickforcenumberscale, b.forcenumberscale),
                            defaultnumberscale: (0, l.getFirstValue)(I.tickdefaultnumberscale, b.defaultnumberscale),
                            numberscaleunit: (0, l.pluck)(a, b.numberscaleunit.concat()),
                            numberscalevalue: (0, l.pluck)(c, b.numberscalevalue.concat()),
                            numberprefix: (0, l.parseUnsafeString)((0, l.pluck)(I.ticknumberprefix, b.numberprefix)),
                            numbersuffix: (0, l.parseUnsafeString)((0, l.pluck)(I.ticknumbersuffix, b.numbersuffix)),
                            decimalprecision: parseInt((0, l.pluck)(I.tickvaluedecimals, b.decimalprecision, "2"), 10),
                            forcedecimals: (0, l.pluck)(I.forcetickvaluedecimals, b.forcedecimals, 0),
                            decimalseparator: b.decimalseparator,
                            thousandseparator: b.thousandseparator,
                            thousandseparatorposition: b.thousandseparatorposition.concat(),
                            indecimalseparator: b.indecimalseparator,
                            inthousandseparator: b.inthousandseparator,
                            scalerecursively: C,
                            maxscalerecursion: S,
                            scaleseparator: T
                        }, C && (D.paramScale.numberscalevalue.push(1), D.paramScale.numberscaleunit.unshift(D.paramScale.defaultnumberscale)), D.timeConf = {
                            inputDateFormat: (0, l.pluck)(I.inputdateformat, I.dateformat, "mm/dd/yyyy"),
                            outputDateFormat: (0, l.pluck)(I.outputdateformat, I.inputdateformat, I.dateformat, "mm/dd/yyyy"),
                            days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                            months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
                            daySuffix: ["", "st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "st"]
                        }, D.cleaneValueCacheStore = {}, D.percentStrCacheStore = {}
                    }, t.dispose = function() {
                        var e = this;
                        e.Y && delete e.Y, e.cleaneValueCacheStore && delete e.cleaneValueCacheStore, e.percentStrCacheStore && delete e.percentStrCacheStore, e.paramLabels && delete e.paramLabels, e.param1 && delete e.param1, e.param2 && delete e.param2, e.paramLabels2 && delete e.paramLabels2, e.csConf && delete e.csConf, e.chart && delete e.chart, e.baseConf && delete e.baseConf, e.timeConf && delete e.timeConf, e.paramX && delete e.paramX, e.paramScale && delete e.paramScale
                    }, t.parseMLAxisConf = function(e, t) {
                        var r, n, a, i, o, s, u, d, f = this.baseConf,
                            g = this.csConf,
                            p = (0, l.pluckNumber)(e.scalerecursively, f.scalerecursively),
                            m = (0, l.pluckNumber)(e.maxscalerecursion, f.maxscalerecursion),
                            v = (0, l.getValidValue)(e.scaleseparator, f.scaleseparator),
                            b = (0, l.pluckNumber)(t, this.Y.length);
                        if ((0, l.getValidValue)(e.numberscaleunit) && (n = e.numberscaleunit.split(",")), (0, l.getValidValue)(e.numberscalevalue) && (a = e.numberscalevalue.split(",")), m || (m = -1), (0, l.getValidValue)(e.thousandseparatorposition))
                            for (s = (o = e.thousandseparatorposition.split(",")).length, d = h.thousandseparatorposition[0]; s--;)(u = (0, l.pluckNumber)(c(o[s]))) ? d = u : u = d, o[s] = u;
                        r = {
                            cacheStore: [],
                            formatnumber: (0, l.pluck)(e.formatnumber, f.formatnumber),
                            formatnumberscale: (0, l.pluck)(e.formatnumberscale, f.formatnumberscale),
                            forcenumberscale: (0, l.pluck)(e.forcenumberscale, f.forcenumberscale),
                            defaultnumberscale: (0, l.getFirstValue)(e.defaultnumberscale, f.defaultnumberscale),
                            numberscaleunit: (0, l.pluck)(n, f.numberscaleunit).concat(),
                            numberscalevalue: (0, l.pluck)(a, f.numberscalevalue).concat(),
                            numberprefix: (0, l.parseUnsafeString)((0, l.getFirstValue)(e.numberprefix, f.numberprefix)),
                            numbersuffix: (0, l.parseUnsafeString)((0, l.getFirstValue)(e.numbersuffix, f.numbersuffix)),
                            forcedecimals: (0, l.pluck)(e.forcedecimals, f.forcedecimals),
                            decimalprecision: parseInt("auto" === e.decimals ? g.decimalprecision : (0, l.pluck)(e.decimals, f.decimalprecision), 10),
                            decimalseparator: (0, l.pluck)(e.decimalseparator, f.decimalseparator),
                            thousandseparator: (0, l.pluck)(e.thousandseparator, f.thousandseparator),
                            thousandseparatorposition: (0, l.pluck)(o, f.thousandseparatorposition),
                            indecimalseparator: (0, l.parseUnsafeString)((0, l.getFirstValue)(e.indecimalseparator, f.indecimalseparator)),
                            inthousandseparator: (0, l.parseUnsafeString)((0, l.getFirstValue)(e.inthousandseparator, f.inthousandseparator)),
                            scalerecursively: p,
                            maxscalerecursion: m,
                            scaleseparator: v
                        }, this.useScaleRecursively && (r.numberscalevalue && r.numberscalevalue.length) === (r.numberscaleunit && r.numberscaleunit.length) || (r.scalerecursively = p = 0), i = {
                            cacheStore: [],
                            formatnumber: r.formatnumber,
                            formatnumberscale: r.formatnumberscale,
                            forcenumberscale: r.forcenumberscale,
                            defaultnumberscale: r.defaultnumberscale,
                            numberscaleunit: r.numberscaleunit.concat(),
                            numberscalevalue: r.numberscalevalue.concat(),
                            numberprefix: r.numberprefix,
                            numbersuffix: r.numbersuffix,
                            decimalprecision: parseInt((0, l.pluck)(e.yaxisvaluedecimals, r.decimalprecision, 2), 10),
                            forcedecimals: (0, l.pluck)(e.forceyaxisvaluedecimals, r.forcedecimals),
                            decimalseparator: r.decimalseparator,
                            thousandseparator: r.thousandseparator,
                            thousandseparatorposition: r.thousandseparatorposition.concat(),
                            indecimalseparator: r.indecimalseparator,
                            inthousandseparator: r.inthousandseparator,
                            scalerecursively: p,
                            maxscalerecursion: m,
                            scaleseparator: v
                        }, p && (r.numberscalevalue.push(1), r.numberscaleunit.unshift(r.defaultnumberscale), i.numberscalevalue.push(1), i.numberscaleunit.unshift(i.defaultnumberscale)), this.Y[b] = {
                            dataLabelConf: r,
                            yAxisLabelConf: i
                        }
                    }, t.percentValue = function(e) {
                        var t, r = this.percentStrCacheStore[e];
                        return void 0 === r && (t = isNaN(this.paramLabels.decimalprecision) ? "2" : this.paramLabels.decimalprecision, r = this.percentStrCacheStore[e] = s(o(e, t, this.paramLabels.forcedecimals), this.paramLabels.decimalseparator, this.paramLabels.thousandseparator, this.paramLabels.thousandseparatorposition) + "%"), r
                    }, t.yAxisPercentValue = function(e, t) {
                        window.th = this;
                        var r, n, a = this.Y[t] || (t ? this.Y[1] : this.Y[0]);
                        return void 0 === (r = (a = a && a.yAxisLabelConf || this.baseConf).cacheStore[e]) && (n = isNaN(a.decimalprecision) ? "2" : a.decimalprecision, r = a.cacheStore[e] = s(o(e, n, a.forcedecimals), a.decimalseparator, a.thousandseparator, a.thousandseparatorposition) + "%"), r
                    }, t.getCleanValue = function(e, t) {
                        var r, n = this.cleaneValueCacheStore[e];
                        return (void 0 === n || t) && (r = i(e, this.baseConf), this.cleaneValueCacheStore[e] = n = isNaN(r) ? null : t ? c(r) : r), n
                    }, t.dataLabels = function(e, t) {
                        var r, a = this.Y[t] || (t ? this.Y[1] : this.Y[0]);
                        return void 0 === (r = (a = a && a.dataLabelConf || this.baseConf).cacheStore[e]) && (r = a.cacheStore[e] = n(e, a)), r
                    }, t.formatValue = function(e) {
                        var t, r = this.baseConf;
                        return void 0 === (t = r.cacheStore[e]) && (t = r.cacheStore[e] = n(e, r)), t
                    }, t.yAxis = function(e, t) {
                        var r, a = this.Y[t] || (t ? this.Y[1] : this.Y[0]);
                        return void 0 === (r = (a = a && a.yAxisLabelConf || this.baseConf).cacheStore[e]) && (r = a.cacheStore[e] = n(e, a, !0)), r
                    }, t.xAxis = function(e) {
                        var t = this.paramX.cacheStore[e];
                        return void 0 === t && (t = this.paramX.cacheStore[e] = n(e, this.paramX, !0)), t
                    }, t.sYAxis = function(e) {
                        var t, r = this.Y[1];
                        return void 0 === (t = (r = r && r.yAxisLabelConf || this.baseConf).cacheStore[e]) && (t = r.cacheStore[e] = n(e, r)), t
                    }, t.scale = function(e) {
                        var t = this.paramScale.cacheStore[e];
                        return void 0 === t && (t = this.paramScale.cacheStore[e] = n(e, this.paramScale)), t
                    }, t.legendValue = function(e) {
                        var t = this.paramLegend.cacheStore[e];
                        return void 0 === t && (t = this.paramLegend.cacheStore[e] = n(e, this.paramLegend)), t
                    }, t.legendPercentValue = function(e) {
                        var t, r = this.percentStrCacheStore[e],
                            n = this.paramLegend;
                        return void 0 === r && (t = isNaN(n.decimalprecision) ? "2" : n.decimalprecision, r = this.percentStrCacheStore[e] = s(o(e, t, n.forcedecimals), n.decimalseparator, n.thousandseparator, n.thousandseparatorposition) + "%"), r
                    }, t.getDateValue = function(e) {
                        var t, r, n, a, i, o = e;
                        return o && !/\//.test(this.timeConf.inputDateFormat) && (o = o.replace(new RegExp(this.timeConf.inputDateFormat.replace(/[a-z]/gi, "").slice(0, 1), "g"), "/")), o = /^dd/.test(this.timeConf.inputDateFormat) && o && o.replace(/(\d{1,2})\/(\d{1,2})\/(\d{2,4})/, "$2/$1/$3") || o, /\s24:/.test(o) ? (o = o.replace(/\s24:/, " 00:"), (t = new Date(o)).setDate(t.getDate() + 1)) : t = new Date(o), !(i = t.getTime()) && o && /\:/.test(o) && (o = o.split(":"), r = (0, l.pluckNumber)(o[0], 0), n = (0, l.pluckNumber)(o[1], 0), a = (0, l.pluckNumber)(o[2], 0), r = r > 23 ? 24 === r && 0 === n && 0 === a ? r : 23 : r, n = n > 59 ? 59 : n, a = a > 59 ? 59 : a, (t = new Date).setHours(r), t.setMinutes(n), t.setSeconds(a), i = t.getTime()), {
                            ms: i,
                            date: t
                        }
                    }, t.getFormattedDate = function(e, t) {
                        var r = "object" == typeof e && e || new Date(e),
                            n = this.timeConf,
                            a = (0, l.pluck)(t, n.outputDateFormat),
                            i = r.getFullYear(),
                            o = r.getMonth(),
                            s = r.getDate(),
                            c = r.getDay(),
                            u = r.getMinutes(),
                            d = r.getSeconds(),
                            h = r.getHours();
                        return u = u > 9 ? "" + u : "0" + u, d = d > 9 ? "" + d : "0" + d, h = h > 9 ? "" + h : "0" + h, a.match(/dnl/) && (a = a.replace(/dnl/gi, n.days[c])), a.match(/dns/) && (a = a.replace(/dns/gi, n.days[c] && n.days[c].substr(0, 3))), a.match(/dd/) && (a = a.replace(/dd/gi, s)), a.match(/mnl/) && (a = a.replace(/mnl/gi, n.months[o])), a.match(/mns/) && (a = a.replace(/mns/gi, n.months[o] && n.months[o].substr(0, 3))), a.match(/mm/) && (a = a.replace(/mm/gi, o + 1)), a.match(/yyyy/) && (a = a.replace(/yyyy/gi, i)), a.match(/yy/) && (a = a.replace(/yy/gi, (i % 1e3 % 100 + "").replace(/^(\d)$/, "0$1"))), a.match(/hh12/) && (a = a.replace(/hh12/gi, h % 12 || 12)), a.match(/hh/) && (a = a.replace(/hh/gi, h)), a.match(/mn/) && (a = a.replace(/mn/gi, u)), a.match(/ss/) && (a = a.replace(/ss/gi, d)), a.match(/ampm/) && (a = a.replace(/ampm/gi, h < 12 ? "AM" : "PM")), a.match(/ds/) && (a = a.replace(/ds/gi, n.daySuffix[s])), a
                    }, e
                }();
            n = function(e, t, r) {
                var n, i, c, u, d, h, f, g, p, m, v, b = e;
                if (null !== b) {
                    if (n = (b = Number(b)) + "", i = 1 === Number(t.formatnumberscale) ? t.defaultnumberscale : "", m = (p = n.split(".")[1]) ? p.length : t.forcedecimals ? "2" : "", 1 === Number(t.formatnumberscale) && (n = (v = a(b, t.defaultnumberscale, t.numberscalevalue, t.numberscaleunit, t.scalerecursively, t.forcenumberscale)).value, b = v.value, i = v.scale), t.scalerecursively && 0 !== t.formatnumberscale && "0" !== t.formatnumberscale) {
                        if (c = v.value, u = v.scale, d = -1 === Number(t.maxscalerecursion) ? c.length : Math.min(c.length, t.maxscalerecursion), 1 === Number(t.formatnumber))
                            for (n = l.BLANKSTRING, g = 0; g < d; g++) f = (h = 0 === g ? c[g] : Math.abs(c[g])) + "", g === d - 1 && (f = o(h, (0, l.pluck)(t.decimalprecision, m), t.forcedecimals)), n = n + s(f, t.decimalseparator, t.thousandseparator, t.thousandseparatorposition) + u[g] + (g < d - 1 ? t.scaleseparator : l.BLANKSTRING);
                        else
                            for (n = l.BLANKSTRING, g = 0; g < d; g++) n = n + (0 === g ? c[g] : Math.abs(c[g]) + "") + u[g] + (g < d - 1 ? t.scaleseparator : "");
                        n = (t.numberprefix || "") + n + (t.numbersuffix || "")
                    } else 1 === Number(t.formatnumber) && (n = o(b, (0, l.pluck)(t.decimalprecision, m), t.forcedecimals), n = s(n, t.decimalseparator, t.thousandseparator, t.thousandseparatorposition, r)), n = (t.numberprefix || "") + n + i + (t.numbersuffix || "");
                    return n
                }
            }, a = function(e, t, r, n, a, i) {
                var o, s, c, u, d = {},
                    h = t,
                    f = 0,
                    g = [],
                    p = [],
                    m = e,
                    v = (0, l.pluckNumber)(i) || 0;
                if (a) {
                    for (o = (0, l.pluckNumber)(r[0]) || 1e3, f = 0; f < r.length; f++) {
                        if (c = (0, l.pluckNumber)(r[f]) || 1e3, !(Math.abs(Number(m)) >= c && f < r.length - 1)) {
                            0 === f && "" === t && v ? (m = Number(m) / o, g.push(m), p.push(n[1] || "")) : (1 === f && "" === t && v ? (s = m + (g.length ? g.pop() : 0), p.pop(), g.push(s)) : g.push(m), p.push(n[f]));
                            break
                        }
                        m = (m - (u = m % c)) / c, 0 === f && 0 !== u && "" === n[f] && v ? (g.push(u / o), p.push(n[1] || "")) : 0 !== u && (1 === f && "" === t && v ? (s = u + (g.length ? g.pop() : 0), p.pop(), g.push(s)) : g.push(u), p.push(n[f]))
                    }
                    g.reverse(), p.reverse(), d.value = g, d.scale = p
                } else {
                    if (r.length === n.length)
                        for (f = 0; f < r.length; f++) {
                            if (!((c = (0, l.pluckNumber)(r[f]) || 1e3) && Math.abs(Number(m)) >= c)) {
                                0 === f && "" === t && v && (h = n[0] || "", m = Number(m) / c);
                                break
                            }
                            h = n[f] || "", m = Number(m) / c
                        }
                    d.value = m, d.scale = h
                }
                return d
            }, o = function(e, t, r) {
                var n, a, i, o, s = e,
                    l = t;
                if (l <= 0) return d(s) + "";
                if (isNaN(l)) return (s += "").length > 12 && -1 !== s.indexOf(".") && (l = 12 - s.split(".")[0].length, n = u(10, l), s = a = d(s * n) / n + ""), s;
                if (n = u(10, l), a = d(s * n) / n + "", 1 === Number(r))
                    for (-1 === a.indexOf(".") && (a += ".0"), i = l - a.split(".")[1].length, o = 1; o <= i; o++) a += "0";
                return a
            }, s = function(e, t, r, n, a) {
                var i, o, s, l, c = Number(e),
                    u = "",
                    d = !1,
                    h = "",
                    f = "",
                    g = 0,
                    p = 0;
                if (isNaN(c)) return "";
                if (c > 1e15) return i = a ? 1 : 14, c.toExponential(i);
                if (g = 0, p = e.length, -1 !== e.indexOf(".") && (u = e.substring(e.indexOf(".") + 1, e.length), p = e.indexOf(".")), c < 0 && (d = !0, g = 1), (o = (h = e.substring(g, p)).length) < (l = n[s = n.length - 1])) f = h;
                else
                    for (; o >= l;) f = (o - l ? r : "") + h.substr(o - l, l) + f, (o -= l) < (l = (s -= 1) <= 0 ? n[0] : n[s]) && (f = h.substring(o, 0) + f);
                return "" !== u && (f = f + t + u), !0 === d && (f = "-" + f), f
            }, i = function(e, t) {
                var r = e;
                return r += "", t._REGinthousandseparator && (r = r.replace(t._REGinthousandseparator, "")), t._REGindecimalseparator && (r = r.replace(t._REGindecimalseparator, ".")), r = parseFloat(r), isFinite(r) ? r : NaN
            };
            var p = g;
            t["default"] = p
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(220));
            a["default"].stopPartialEventPropagation = !0, a["default"]._stopabsolutePath = !0;
            var i = {
                extension: a["default"],
                name: "redraphael",
                type: "plugin"
            };
            t["default"] = i
        }, function(e, t, r) {
            "use strict";
            (function(e) {
                var n = r(187),
                    a = r(191);
                t.__esModule = !0, t["default"] = void 0;
                var i, o = n(r(221)),
                    s = a(r(196)),
                    l = "undefined" != typeof window ? window : void 0 !== e ? e : null;

                function c(e) {
                    var t, r, n;
                    return c._url === undefined && (c._url = g), c.is(e, _) ? u ? e() : o["default"].on("raphael.DOMload", e) : c.is(e, x) ? c._engine.create[v](c, e.splice(0, 3 + c.is(e[0], b))).add(e) : (r = (0, s.getArrayCopy)(arguments), t = Array.prototype.slice.call(r, 0), c.is(t[t.length - 1], _) ? (n = t.pop(), u ? n.call(c._engine.create[v](c, t)) : o["default"].on("raphael.DOMload", (function() {
                        n.call(c._engine.create[v](c, t))
                    }))) : c._engine.create[v](c, arguments))
                }
                c.upgrade = "1.0.0", c.version = "2.1.0", c.eve = o["default"];
                var u, d, h, f, g = "",
                    p = " ",
                    m = "hasOwnProperty",
                    v = "apply",
                    b = "number",
                    y = "string",
                    x = "array",
                    w = "object",
                    C = "none",
                    _ = "function",
                    k = /R/i,
                    S = /trident/i.test(l.navigator.userAgent),
                    E = {
                        a: 7,
                        c: 6,
                        h: 1,
                        l: 2,
                        m: 2,
                        r: 4,
                        q: 4,
                        s: 4,
                        t: 2,
                        v: 1,
                        z: 0
                    },
                    A = Array.prototype.splice,
                    T = function() {}.hasOwnProperty("prototype"),
                    N = {
                        doc: l.document,
                        win: l
                    },
                    M = N.doc,
                    D = N.win,
                    F = c.safePointerEventMapping = {
                        mouseover: "pointerover",
                        mousedown: "pointerdown",
                        mousemove: "pointermove",
                        mouseup: "pointerup",
                        mouseout: "pointerout"
                    },
                    I = D.navigator,
                    L = c.supportsTouch = "ontouchstart" in M || I.maxTouchPoints || I.msMaxTouchPoints,
                    O = c.supportsPointer = "onpointerover" in M,
                    R = c.isEdge = /Edge/.test(I.userAgent),
                    P = c.isIE11 = /trident/i.test(I.userAgent) && /rv:11/i.test(I.userAgent) && !D.opera,
                    V = (c.isIE10 = -1 !== I.appVersion.indexOf("MSIE 10"), c.isFirefox = /Firefox/.test(I.userAgent)),
                    B = c.isWindows = /Windows/.test(I.userAgent),
                    j = "L",
                    H = [],
                    G = /[a-z]/i,
                    U = function(e, t, r) {
                        var n = t.toLowerCase(),
                            a = [],
                            i = 0;
                        if (H.length = 0, r.replace(we, (function(e, t) {
                                t && H.push(+t)
                            })), "r" === n) d.push([t].concat(H));
                        else if ("z" === n) d.push([t]);
                        else if (H.length >= E[n]) {
                            for (; i < H.length;) i % E[n] ? a.push(H[i]) : (a.length && d.push(a) && (a = []), a.push(t, H[i])), i++;
                            d.push(a)
                        }
                    },
                    z = function() {},
                    W = (c.ca = c.customAttributes = z.prototype, function() {
                        this.ca = this.customAttributes = new z, this._CustomAttributes = function() {}, this._CustomAttributes.prototype = this.ca, this._elementsById = {}, this.id = c._oid++, (0, o["default"])("raphael.new", this)
                    }),
                    X = c.fn = W.prototype = c.prototype,
                    $ = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel dragstart dragmove dragend".split(p),
                    Y = {
                        dragstart: "touchstart",
                        dragmove: "touchmove",
                        dragend: "touchend"
                    },
                    q = String,
                    K = D.parseFloat,
                    J = D.parseInt,
                    Z = Math,
                    Q = Z.max,
                    ee = Z.min,
                    te = Z.abs,
                    re = Z.pow,
                    ne = Z.cos,
                    ae = Z.sin,
                    ie = Z.sqrt,
                    oe = Z.round,
                    se = Z.PI,
                    le = se / 180,
                    ce = 180 / se,
                    ue = q.prototype.toLowerCase,
                    de = q.prototype.toUpperCase,
                    he = Object.prototype.toString,
                    fe = /[, ]+/,
                    ge = /\{(\d+)\}/g,
                    pe = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,
                    me = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,
                    ve = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,
                    be = /,?([achlmqrstvxz]),?/gi,
                    ye = /([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,
                    xe = /([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,
                    we = /(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi,
                    Ce = {
                        NaN: 1,
                        Infinity: 1,
                        "-Infinity": 1
                    },
                    _e = {
                        hs: 1,
                        rg: 1
                    },
                    ke = c._availableAttrs = ((i = {
                        "arrow-end": C,
                        "arrow-start": C,
                        blur: 0,
                        "clip-rect": "0 0 1e9 1e9",
                        "clip-path": g,
                        cursor: "default",
                        cx: 0,
                        cy: 0,
                        fill: "#fff",
                        "fill-opacity": 1,
                        font: '10px "Arial"',
                        "font-family": '"Arial"',
                        "font-size": "10",
                        "font-style": "normal",
                        "font-weight": 400,
                        gradient: 0,
                        height: 0,
                        href: "about:blank",
                        "letter-spacing": 0,
                        "line-height": 12,
                        "vertical-align": "middle",
                        opacity: 1,
                        path: "M0,0",
                        r: 0,
                        rx: 0,
                        ry: 0,
                        src: g,
                        stroke: "#000",
                        "stroke-dasharray": g,
                        "stroke-linecap": "butt",
                        "stroke-linejoin": "butt",
                        "stroke-miterlimit": 0,
                        "stroke-opacity": 1,
                        "stroke-width": 1,
                        target: "_blank",
                        "text-anchor": "middle",
                        visibility: g,
                        title: g,
                        transform: g,
                        rotation: 0,
                        width: 0,
                        x: 0,
                        y: 0,
                        "shape-rendering": "auto",
                        alpha: b,
                        "font-stretch": "normal",
                        "alignment-baseline": "auto",
                        "baseline-shift": "auto",
                        "clip-rule": "nonzero",
                        "dominant-baseline": "auto",
                        "fill-rule": "nonzero",
                        filter: C,
                        "flood-color": "#000",
                        "flood-opacity": 1,
                        "font-size-adjust": C
                    })["font-stretch"] = "normal", i["font-variant"] = "normal", i.kerning = "auto", i["lighting-color"] = "white", i["marker-end"] = C, i["marker-mid"] = C, i["marker-start"] = C, i.mask = C, i["pointer-events"] = "visiblePainted", i["stop-color"] = "#000", i["stop-opacity"] = 1, i["stroke-dashoffset"] = 0, i["text-decoration"] = C, i["vector-effect"] = g, i.visibility = "visible", i["word-spacing"] = "normal", i["writing-mode"] = "lr-tb", i),
                    Se = c._availableAnimAttrs = {
                        blur: b,
                        "clip-rect": "csv",
                        "clip-path": "path",
                        cx: b,
                        cy: b,
                        fill: "colour",
                        "fill-opacity": b,
                        "font-size": b,
                        height: b,
                        opacity: b,
                        path: "path",
                        r: b,
                        rx: b,
                        ry: b,
                        stroke: "colour",
                        "stroke-opacity": b,
                        "stroke-width": b,
                        transform: "transform",
                        width: b,
                        x: b,
                        y: b,
                        color: "colour",
                        borderColor: "colour",
                        borderWidth: b,
                        alpha: b,
                        "text-bound": "text-bound"
                    },
                    Ee = {},
                    Ae = function(e, t) {
                        return K(e) - K(t)
                    },
                    Te = function(e) {
                        return e
                    },
                    Ne = c._rectPath = function(e, t, r, n, a) {
                        return a ? [
                            ["M", e + a, t],
                            ["l", r - 2 * a, 0],
                            ["a", a, a, 0, 0, 1, a, a],
                            ["l", 0, n - 2 * a],
                            ["a", a, a, 0, 0, 1, -a, a],
                            ["l", 2 * a - r, 0],
                            ["a", a, a, 0, 0, 1, -a, -a],
                            ["l", 0, 2 * a - n],
                            ["a", a, a, 0, 0, 1, a, -a],
                            ["z"]
                        ] : [
                            ["M", e, t],
                            ["l", r, 0],
                            ["l", 0, n],
                            ["l", -r, 0],
                            ["z"]
                        ]
                    },
                    Me = function(e, t, r, n) {
                        return null == n && (n = r), [
                            ["M", e, t],
                            ["m", 0, -n],
                            ["a", r, n, 0, 1, 1, 0, 2 * n],
                            ["a", r, n, 0, 1, 1, 0, -2 * n],
                            ["z"]
                        ]
                    },
                    De = c._getPath = {
                        group: function() {
                            return !1
                        },
                        path: function(e) {
                            return e.attr("path")
                        },
                        circle: function(e) {
                            var t = e.attrs;
                            return Me(t.cx, t.cy, t.r)
                        },
                        ellipse: function(e) {
                            var t = e.attrs;
                            return Me(t.cx, t.cy, t.rx, t.ry)
                        },
                        rect: function(e) {
                            var t = e.attrs;
                            return Ne(t.x, t.y, t.width, t.height, t.r)
                        },
                        image: function(e) {
                            var t = e.attrs;
                            return Ne(t.x, t.y, t.width, t.height)
                        },
                        text: function(e) {
                            var t = e._getBBox();
                            return Ne(t.x, t.y, t.width, t.height)
                        }
                    },
                    Fe = c.mapPath = function(e, t) {
                        if (!t) return e;
                        var r, n, a, i, o, s, l;
                        for (a = 0, o = (e = at(e).slice(0)).length; a < o; a++)
                            for (i = 1, s = (l = e[a] = e[a].slice(0)).length; i < s; i += 2) r = t.x(l[i], l[i + 1]), n = t.y(l[i], l[i + 1]), l[i] = r, l[i + 1] = n;
                        return e
                    },
                    Ie = c._lastArgIfGroup = function(e, t) {
                        var r = e.length - 1,
                            n = e[r];
                        if (n && n.constructor === c.el.constructor && "group" === n.type) return t && (e[r] = undefined, delete e[r], A.call(e, r, 1)), n
                    },
                    Le = c._serializeArgs = function(e) {
                        var t, r, n, a, i = e[0];
                        if (c.is(i, w) && !c.is(i, x) && "group" !== i.type)
                            for (r = i, i.path && (t = i.path) && !c.is(t, y) && !c.is(t[0], x) && (t += g), n = 1, a = arguments.length; n < a; n += 2) r[arguments[n]] || (r[arguments[n]] = arguments[n + 1]);
                        else
                            for (r = {}, n = 1, a = arguments.length; n < a; n += 2) r[arguments[n]] = e[(n - 1) / 2] || arguments[n + 1];
                        return r
                    },
                    Oe = c.is = function(e, t) {
                        return "finite" === t ? !Ce[m](+e) : t === x ? e instanceof Array : (t !== w || null != e) && ("null" === t && null === e || t === typeof e && null !== e || t === w && e === Object(e) || t === x && Array.isArray && Array.isArray(e) || he.call(e).slice(8, -1).toLowerCase() === t)
                    },
                    Re = c.clone = T ? function(e) {
                        if (Object(e) !== e) return e;
                        if (e instanceof Function) return e;
                        var t = new e.constructor;
                        for (var r in e) "prototype" !== r && e[m](r) && (t[r] = Re(e[r]));
                        return t
                    } : function(e) {
                        if (Object(e) !== e) return e;
                        if (e instanceof Function) return e;
                        var t = new e.constructor;
                        for (var r in e) e[m](r) && (t[r] = Re(e[r]));
                        return t
                    },
                    Pe = l.Node;

                function Ve(e) {
                    this._comparator = e, this._elements = []
                }
                Pe && !Pe.prototype.contains && (Pe.prototype.contains = function(e) {
                    for (; e = e.parentNode;)
                        if (e === this) return !0;
                    return !1
                }), c._g = N, c.merge = s.merge, c.extend = s["default"], c.createUUID = (h = /[xy]/g, f = function(e) {
                    var t = 16 * Z.random() | 0;
                    return ("x" === e ? t : 3 & t | 8).toString(16)
                }, function() {
                    return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(h, f).toUpperCase()
                }), c._radial_gradient = /^x?r(?:\(([^\)]*?)\))?/, c._ISURL = /^url\(['"]?([^\)]+?)['"]?\)$/i, c.getElementID = function(e) {
                    return "rr-" + e
                }, Ve.prototype.isEmpty = function() {
                    return 0 === this.size()
                }, Ve.prototype.peek = function() {
                    return this.isEmpty() ? null : this._elements[0]
                }, Ve.prototype.deq = function() {
                    var e = this.peek(),
                        t = this._elements.pop(),
                        r = this.size();
                    if (0 === r) return e;
                    this._elements[0] = t;
                    for (var n = 0; n < r;) {
                        var a = n,
                            i = 2 * n + 1,
                            o = 2 * n + 2;
                        if (i < r && this._compare(i, a) >= 0 && (a = i), o < r && this._compare(o, a) >= 0 && (a = o), a === n) break;
                        this._swap(a, n), n = a
                    }
                    return e
                }, Ve.prototype.enq = function(e) {
                    for (var t = this._elements.push(e), r = t - 1; r > 0;) {
                        var n = Math.floor((r - 1) / 2);
                        if (this._compare(r, n) <= 0) break;
                        this._swap(n, r), r = n
                    }
                    return t
                }, Ve.prototype.size = function() {
                    return this._elements.length
                }, Ve.prototype._compare = function(e, t) {
                    return this._comparator(this._elements[e], this._elements[t])
                }, Ve.prototype._swap = function(e, t) {
                    var r = this._elements[e];
                    this._elements[e] = this._elements[t], this._elements[t] = r
                }, c.type = D.ENABLE_RED_CANVAS && (D.CanvasRenderingContext2D || M.createElement("canvas").getContext) ? "CANVAS" : D.SVGAngle || M.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML", c.svg = !((c.vml = "VML" === c.type) || (c.canvas = "CANVAS" === c.type)), c._Paper = W, c._id = 0, c._oid = 0, c.rad = function(e) {
                    return e % 360 * le
                }, c.deg = function(e) {
                    return e * ce % 360
                };
                var Be = function(e) {
                        if (c.vml) {
                            var t, r = /^\s+|\s+$/g;
                            try {
                                var n = new ActiveXObject("htmlfile");
                                n.write("<body>"), n.close(), t = n.body
                            } catch (o) {
                                t = createPopup().document.body
                            }
                            var a = t.createTextRange();
                            Be = (0, s.cacher)((function(e) {
                                try {
                                    t.style.color = q(e).replace(r, g);
                                    var n = a.queryCommandValue("ForeColor");
                                    return "#" + ("000000" + (n = (255 & n) << 16 | 65280 & n | (16711680 & n) >>> 16).toString(16)).slice(-6)
                                } catch (o) {
                                    return C
                                }
                            }))
                        } else {
                            var i = N.doc.createElement("i");
                            i.title = "Raphaël Colour Picker", i.style.display = C, N.doc.body.appendChild(i), Be = (0, s.cacher)((function(e) {
                                return i.style.color = e, N.doc.defaultView.getComputedStyle(i, g).getPropertyValue("color")
                            }))
                        }
                        return Be(e)
                    },
                    je = function() {
                        return "hsb(" + [this.h, this.s, this.b] + ")"
                    },
                    He = function() {
                        return "hsl(" + [this.h, this.s, this.l] + ")"
                    },
                    Ge = function() {
                        return this.hex
                    },
                    Ue = function(e, t, r) {
                        if (null == t && Oe(e, w) && "r" in e && "g" in e && "b" in e && (r = e.b, t = e.g, e = e.r), null == t && Oe(e, y)) {
                            var n = c.getRGB(e);
                            e = n.r, t = n.g, r = n.b
                        }
                        return (e > 1 || t > 1 || r > 1) && (e /= 255, t /= 255, r /= 255), [e, t, r]
                    },
                    ze = function(e, t, r, n) {
                        var a = {
                            r: e *= 255,
                            g: t *= 255,
                            b: r *= 255,
                            hex: c.rgb(e, t, r),
                            toString: Ge
                        };
                        return Oe(n, "finite") && (a.opacity = n), a
                    };

                function We() {
                    return this.hex
                }

                function Xe(e, t) {
                    for (var r = [], n = 0, a = e.length; a - 2 * !t > n; n += 2) {
                        var i = [{
                            x: +e[n - 2],
                            y: +e[n - 1]
                        }, {
                            x: +e[n],
                            y: +e[n + 1]
                        }, {
                            x: +e[n + 2],
                            y: +e[n + 3]
                        }, {
                            x: +e[n + 4],
                            y: +e[n + 5]
                        }];
                        t ? n ? a - 4 === n ? i[3] = {
                            x: +e[0],
                            y: +e[1]
                        } : a - 2 === n && (i[2] = {
                            x: +e[0],
                            y: +e[1]
                        }, i[3] = {
                            x: +e[2],
                            y: +e[3]
                        }) : i[0] = {
                            x: +e[a - 2],
                            y: +e[a - 1]
                        } : a - 4 === n ? i[3] = i[2] : n || (i[0] = {
                            x: +e[n],
                            y: +e[n + 1]
                        }), r.push(["C", (-i[0].x + 6 * i[1].x + i[2].x) / 6, (-i[0].y + 6 * i[1].y + i[2].y) / 6, (i[1].x + 6 * i[2].x - i[3].x) / 6, (i[1].y + 6 * i[2].y - i[3].y) / 6, i[2].x, i[2].y])
                    }
                    return r
                }
                c.color = function(e) {
                    var t;
                    return c.is(e, w) && "h" in e && "s" in e && "b" in e ? (t = c.hsb2rgb(e), e.r = t.r, e.g = t.g, e.b = t.b, e.hex = t.hex) : c.is(e, w) && "h" in e && "s" in e && "l" in e ? (t = c.hsl2rgb(e), e.r = t.r, e.g = t.g, e.b = t.b, e.hex = t.hex) : (c.is(e, y) && (e = c.getRGB(e)), c.is(e, w) && "r" in e && "g" in e && "b" in e ? (t = c.rgb2hsl(e), e.h = t.h, e.s = t.s, e.l = t.l, t = c.rgb2hsb(e), e.v = t.b) : (e = {
                        hex: C
                    }).r = e.g = e.b = e.h = e.s = e.v = e.l = -1), e.toString = Ge, e
                }, c.hsb2rgb = function(e, t, r, n) {
                    var a, i, o, s, l;
                    return this.is(e, w) && "h" in e && "s" in e && "b" in e && (r = e.b, t = e.s, n = (e = e.h).o), s = (l = r * t) * (1 - te((e = (e *= 360) % 360 / 60) % 2 - 1)), a = i = o = r - l, ze(a += [l, s, 0, 0, s, l][e = ~~e], i += [s, l, l, s, 0, 0][e], o += [0, 0, s, l, l, s][e], n)
                }, c.hsl2rgb = function(e, t, r, n) {
                    var a, i, o, s, l;
                    return this.is(e, w) && "h" in e && "s" in e && "l" in e && (r = e.l, t = e.s, e = e.h), (e > 1 || t > 1 || r > 1) && (e /= 360, t /= 100, r /= 100), s = (l = 2 * t * (r < .5 ? r : 1 - r)) * (1 - te((e = (e *= 360) % 360 / 60) % 2 - 1)), a = i = o = r - l / 2, ze(a += [l, s, 0, 0, s, l][e = ~~e], i += [s, l, l, s, 0, 0][e], o += [0, 0, s, l, l, s][e], n)
                }, c.rgb2hsb = function(e, t, r) {
                    var n, a;
                    return e = (r = Ue(e, t, r))[0], t = r[1], r = r[2], {
                        h: ((0 === (a = (n = Q(e, t, r)) - ee(e, t, r)) ? null : n === e ? (t - r) / a : n === t ? (r - e) / a + 2 : (e - t) / a + 4) + 360) % 6 * 60 / 360,
                        s: 0 === a ? 0 : a / n,
                        b: n,
                        toString: je
                    }
                }, c.rgb2hsl = function(e, t, r) {
                    var n, a, i, o;
                    return e = (r = Ue(e, t, r))[0], t = r[1], r = r[2], n = ((a = Q(e, t, r)) + (i = ee(e, t, r))) / 2, {
                        h: ((0 === (o = a - i) ? null : a === e ? (t - r) / o : a === t ? (r - e) / o + 2 : (e - t) / o + 4) + 360) % 6 * 60 / 360,
                        s: 0 === o ? 0 : n < .5 ? o / (2 * n) : o / (2 - 2 * n),
                        l: n,
                        toString: He
                    }
                }, c._path2string = function() {
                    return this.join(",").replace(be, "$1")
                }, c._cacher = s.cacher, c.getRGB = (0, s.cacher)((function(e) {
                    var t, r, n, a, i, o, s;
                    return e && Oe(e, w) && "opacity" in e && (t = e.opacity), !e || (e = q(e)).indexOf("-") + 1 ? {
                        r: -1,
                        g: -1,
                        b: -1,
                        hex: C,
                        error: 1,
                        toString: We
                    } : e === C ? {
                        r: -1,
                        g: -1,
                        b: -1,
                        hex: C,
                        toString: We
                    } : (!_e[m](e.toLowerCase().substring(0, 2)) && "#" !== e.charAt() && (e = Be(e)), (s = e.match(pe)) ? (s[2] && (a = J(s[2].substring(5), 16), n = J(s[2].substring(3, 5), 16), r = J(s[2].substring(1, 3), 16)), s[3] && (a = J((i = s[3].charAt(3)) + i, 16), n = J((i = s[3].charAt(2)) + i, 16), r = J((i = s[3].charAt(1)) + i, 16)), s[4] && (o = s[4].split(ve), r = K(o[0]), "%" === o[0].slice(-1) && (r *= 2.55), n = K(o[1]), "%" === o[1].slice(-1) && (n *= 2.55), a = K(o[2]), "%" === o[2].slice(-1) && (a *= 2.55), "rgba" === s[1].toLowerCase().slice(0, 4) && (t = K(o[3])), o[3] && "%" === o[3].slice(-1) && (t /= 100)), s[5] ? (o = s[5].split(ve), r = K(o[0]), "%" === o[0].slice(-1) && (r *= 2.55), n = K(o[1]), "%" === o[1].slice(-1) && (n *= 2.55), a = K(o[2]), "%" === o[2].slice(-1) && (a *= 2.55), ("deg" === o[0].slice(-3) || "°" === o[0].slice(-1)) && (r /= 360), "hsba" === s[1].toLowerCase().slice(0, 4) && (t = K(o[3])), o[3] && "%" === o[3].slice(-1) && (t /= 100), c.hsb2rgb(r, n, a, t)) : s[6] ? (o = s[6].split(ve), r = K(o[0]), "%" === o[0].slice(-1) && (r *= 2.55), n = K(o[1]), "%" === o[1].slice(-1) && (n *= 2.55), a = K(o[2]), "%" === o[2].slice(-1) && (a *= 2.55), ("deg" === o[0].slice(-3) || "°" === o[0].slice(-1)) && (r /= 360), "hsla" === s[1].toLowerCase().slice(0, 4) && (t = K(o[3])), o[3] && "%" === o[3].slice(-1) && (t /= 100), c.hsl2rgb(r, n, a, t)) : ((s = {
                        r: r,
                        g: n,
                        b: a,
                        toString: We
                    }).hex = "#" + (16777216 | a | n << 8 | r << 16).toString(16).slice(1), c.is(t, "finite") && (s.opacity = t), s)) : {
                        r: -1,
                        g: -1,
                        b: -1,
                        hex: C,
                        error: 1,
                        toString: We
                    })
                }), c), c.tintshade = (0, s.cacher)((function(e, t) {
                    var r, n = c.getRGB(e),
                        a = 255;
                    return t < 0 && (t *= -1, a = 0), t > 1 && (t = 1), (r = 0 === t ? n : {
                        r: a - (a - n.r) * t,
                        g: a - (a - n.g) * t,
                        b: a - (a - n.b) * t,
                        toString: We
                    }).hex = c.rgb(r.r, r.g, r.b), n.error && (r.error = n.error), "opacity" in n ? (r.rgba = "rgba(" + [r.r, r.g, r.b, n.opacity].join(",") + ")", r.opacity = n.opacity) : r.rgba = "rgb(" + [r.r, r.g, r.b].join(",") + ")", r
                }), c), c.rgb = (0, s.cacher)((function(e, t, r) {
                    return "#" + (16777216 | r | t << 8 | e << 16).toString(16).slice(1)
                })), c.sanitizePath = function(e) {
                    var t;
                    return t = e.join ? e.join(",") : e, t = k.test(t) ? c._pathToAbsolute(t) : t.replace(be, "$1")
                }, c.parsePathString = function(e) {
                    if (!e || !e.length) return null;
                    var t = $e(e);
                    if (t.arr) return Je(t.arr);
                    if (d = void 0, c.is(e, x))
                        if (e = q(e).replace(/,?([A-Z]),?/g, ",$1,").replace(/(^,?)|(,?$)/g, "").replace(/,,?/g, ",").split(","), c.is(e[0], x)) d = Je(e);
                        else {
                            var r, n, a, i = [],
                                o = e.length;
                            for (d = [], r = 0; r < o; r += 1) G.test(e[r]) ? (i.length && d.push(i), i = [n = e[r]], a = E[n.toLowerCase()]) : a ? (i.push(+e[r]), a--) : e[r].length && (d.push(i), i = [n].concat(+e[r]), a = E[n.toLowerCase()] - 1);
                            d.push(i)
                        }
                    return d && d.length || (d = [], q(e).replace(ye, U)), d.toString = c._path2string, t.arr = d, t.arr
                }, c.parseTransformString = (0, s.cacher)((function(e) {
                    if (!e) return null;
                    var t = [];
                    return c.is(e, x) && c.is(e[0], x) && (t = Je(e)), t.length || q(e).replace(xe, (function(e, r, n) {
                        var a = [];
                        ue.call(r);
                        n.replace(we, (function(e, t) {
                            t && a.push(+t)
                        })), t.push([r].concat(a))
                    })), t.toString = c._path2string, t
                }));
                var $e = (0, s.cacher)((function() {
                    return {}
                }), void 0, void 0, void 0, 500, {}, !0);

                function Ye(e, t, r, n, a) {
                    return e * (e * (-3 * t + 9 * r - 9 * n + 3 * a) + 6 * t - 12 * r + 6 * n) - 3 * t + 3 * r
                }

                function qe(e, t, r, n, a, i, o, s, l) {
                    null == l && (l = 1);
                    for (var c = (l = l > 1 ? 1 : l < 0 ? 0 : l) / 2, u = [-.1252, .1252, -.3678, .3678, -.5873, .5873, -.7699, .7699, -.9041, .9041, -.9816, .9816], d = [.2491, .2491, .2335, .2335, .2032, .2032, .1601, .1601, .1069, .1069, .0472, .0472], h = 0, f = 0; f < 12; f++) {
                        var g = c * u[f] + c,
                            p = Ye(g, e, r, a, o),
                            m = Ye(g, t, n, i, s);
                        h += d[f] * ie(p * p + m * m)
                    }
                    return c * h
                }
                c.findDotsAtSegment = function(e, t, r, n, a, i, o, s, l) {
                    var c = 1 - l,
                        u = re(c, 3),
                        d = re(c, 2),
                        h = l * l,
                        f = h * l,
                        g = u * e + 3 * d * l * r + 3 * c * l * l * a + f * o,
                        p = u * t + 3 * d * l * n + 3 * c * l * l * i + f * s,
                        m = e + 2 * l * (r - e) + h * (a - 2 * r + e),
                        v = t + 2 * l * (n - t) + h * (i - 2 * n + t),
                        b = r + 2 * l * (a - r) + h * (o - 2 * a + r),
                        y = n + 2 * l * (i - n) + h * (s - 2 * i + n),
                        x = c * e + l * r,
                        w = c * t + l * n,
                        C = c * a + l * o,
                        _ = c * i + l * s,
                        k = 90 - 180 * Z.atan2(m - b, v - y) / se;
                    return (m > b || v < y) && (k += 180), {
                        x: g,
                        y: p,
                        m: {
                            x: m,
                            y: v
                        },
                        n: {
                            x: b,
                            y: y
                        },
                        start: {
                            x: x,
                            y: w
                        },
                        end: {
                            x: C,
                            y: _
                        },
                        alpha: k
                    }
                }, c._removedFactory = function(e) {
                    return function() {
                        (0, o["default"])("raphael.log", null, "Raphaël: you are calling to method “" + e + "” of removed object", e)
                    }
                };
                var Ke = c.pathBBox = function(e) {
                        var t = $e(e);
                        if (!e) return {
                            x: 0,
                            y: 0,
                            width: 0,
                            height: 0,
                            x2: 0,
                            y2: 0
                        };
                        for (var r, n = 0, a = 0, i = [], o = [], s = 0, l = (e = at(e)).length; s < l; s++)
                            if ("M" === (r = e[s])[0]) n = r[1], a = r[2], i.push(n), o.push(a);
                            else {
                                var c = nt(n, a, r[1], r[2], r[3], r[4], r[5], r[6]);
                                i = i.concat(c.min.x, c.max.x), o = o.concat(c.min.y, c.max.y), n = r[5], a = r[6]
                            }
                        var u = ee[v](0, i),
                            d = ee[v](0, o),
                            h = Q[v](0, i),
                            f = Q[v](0, o),
                            g = {
                                x: u,
                                y: d,
                                x2: h,
                                y2: f,
                                width: h - u,
                                height: f - d
                            };
                        return t.bbox = Re(g), g
                    },
                    Je = function(e) {
                        var t = Re(e);
                        return t.toString = c._path2string, t
                    },
                    Ze = c._pathToAbsolute = function(e) {
                        var t, r = $e(e);
                        if (!r.abs) {
                            if (c.is(e, x) && c.is(e && e[0], x) || (e = c.parsePathString(e)), !e || !e.length) return (t = [
                                ["M", 0, 0]
                            ]).toString = c._path2string, t;
                            var n = 0,
                                a = 0,
                                i = 0,
                                o = 0,
                                s = 0;
                            t = [], "M" === e[0][0] && (i = n = +e[0][1], o = a = +e[0][2], s++, t[0] = ["M", n, a]);
                            for (var l, u, d = 3 === e.length && "M" === e[0][0] && "R" === e[1][0].toUpperCase() && "Z" === e[2][0].toUpperCase(), h = s, f = e.length; h < f; h++) {
                                if (t.push(l = []), (u = e[h])[0] != de.call(u[0])) switch (l[0] = de.call(u[0]), l[0]) {
                                        case "A":
                                            l[1] = u[1], l[2] = u[2], l[3] = u[3], l[4] = u[4], l[5] = u[5], l[6] = +(u[6] + n), l[7] = +(u[7] + a);
                                            break;
                                        case "V":
                                            l[1] = +u[1] + a;
                                            break;
                                        case "H":
                                            l[1] = +u[1] + n;
                                            break;
                                        case "R":
                                            for (var g = [n, a].concat(u.slice(1)), p = 2, m = g.length; p < m; p++) g[p] = +g[p] + n, g[++p] = +g[p] + a;
                                            t.pop(), t = t.concat(Xe(g, d));
                                            break;
                                        case "M":
                                            i = +u[1] + n, o = +u[2] + a;
                                        default:
                                            for (p = 1, m = u.length; p < m; p++) l[p] = +u[p] + (p % 2 ? n : a), p % 2 ? n = l[p] : a = l[p]
                                    } else if ("R" === u[0]) g = [n, a].concat(u.slice(1)), t.pop(), t = t.concat(Xe(g, d)), l = ["R"].concat(u.slice(-2));
                                    else
                                        for (var v = 0, b = u.length; v < b; v++) l[v] = u[v];
                                switch (l[0]) {
                                    case "Z":
                                        n = i, a = o;
                                        break;
                                    case "H":
                                        n = l[1];
                                        break;
                                    case "V":
                                        a = l[1];
                                        break;
                                    case "M":
                                        i = l[l.length - 2], o = l[l.length - 1];
                                    default:
                                        n = l[l.length - 2], a = l[l.length - 1]
                                }
                            }
                            t.toString = c._path2string, r.abs = t
                        }
                        return Je(r.abs)
                    },
                    Qe = function(e, t, r, n) {
                        return [e, t, r, n, r, n]
                    },
                    et = function(e, t, r, n, a, i) {
                        return [1 / 3 * e + 2 / 3 * r, 1 / 3 * t + 2 / 3 * n, 1 / 3 * a + 2 / 3 * r, 1 / 3 * i + 2 / 3 * n, a, i]
                    },
                    tt = function Xt(e, t, r, n, a, i, o, l, c, u) {
                        if (o = o && +o, i = i && +i, 0 === r || 0 === n) return Qe(e, t, l, c);
                        var d, h = 120 * se / 180,
                            f = le * (+a || 0),
                            g = [],
                            p = (0, s.cacher)((function(e, t, r) {
                                return {
                                    x: e * ne(r) - t * ae(r),
                                    y: e * ae(r) + t * ne(r)
                                }
                            }));
                        if (u) k = u[0], S = u[1], C = u[2], _ = u[3];
                        else {
                            e = (d = p(e, t, -f)).x, t = d.y, l = (d = p(l, c, -f)).x, c = d.y;
                            ne(le * a), ae(le * a);
                            var m = (e - l) / 2,
                                v = (t - c) / 2,
                                b = m * m / (r * r) + v * v / (n * n);
                            b > 1 && (r *= b = ie(b), n *= b);
                            var y = r * r,
                                x = n * n,
                                w = (i === o ? -1 : 1) * ie(te((y * x - y * v * v - x * m * m) / (y * v * v + x * m * m))),
                                C = w * r * v / n + (e + l) / 2,
                                _ = w * -n * m / r + (t + c) / 2,
                                k = Z.asin(((t - _) / n).toFixed(9)),
                                S = Z.asin(((c - _) / n).toFixed(9));
                            (k = e < C ? se - k : k) < 0 && (k = 2 * se + k), (S = l < C ? se - S : S) < 0 && (S = 2 * se + S), o && k > S && (k -= 2 * se), !o && S > k && (S -= 2 * se)
                        }
                        var E = S - k;
                        if (te(E) > h) {
                            var A = S,
                                T = l,
                                N = c;
                            g = Xt(l = C + r * ne(S = k + h * (o && S > k ? 1 : -1)), c = _ + n * ae(S), r, n, a, 0, o, T, N, [S, A, C, _])
                        }
                        E = S - k;
                        var M = ne(k),
                            D = ae(k),
                            F = ne(S),
                            I = ae(S),
                            L = Z.tan(E / 4),
                            O = 4 / 3 * r * L,
                            R = 4 / 3 * n * L,
                            P = [e, t],
                            V = [e + O * D, t - R * M],
                            B = [l + O * I, c - R * F],
                            j = [l, c];
                        if (V[0] = 2 * P[0] - V[0], V[1] = 2 * P[1] - V[1], u) return [V, B, j].concat(g);
                        for (var H = [], G = 0, U = (g = [V, B, j].concat(g).join().split(",")).length; G < U; G++) H[G] = G % 2 ? p(g[G - 1], g[G], f).y : p(g[G], g[G + 1], f).x;
                        return H
                    },
                    rt = function(e, t, r, n, a, i, o, s, l) {
                        var c = 1 - l;
                        return {
                            x: re(c, 3) * e + 3 * re(c, 2) * l * r + 3 * c * l * l * a + re(l, 3) * o,
                            y: re(c, 3) * t + 3 * re(c, 2) * l * n + 3 * c * l * l * i + re(l, 3) * s
                        }
                    },
                    nt = (0, s.cacher)((function(e, t, r, n, a, i, o, s) {
                        var l, c = a - 2 * r + e - (o - 2 * a + r),
                            u = 2 * (r - e) - 2 * (a - r),
                            d = e - r,
                            h = (-u + ie(u * u - 4 * c * d)) / 2 / c,
                            f = (-u - ie(u * u - 4 * c * d)) / 2 / c,
                            g = [t, s],
                            p = [e, o];
                        return te(h) > "1e12" && (h = .5), te(f) > "1e12" && (f = .5), h > 0 && h < 1 && (l = rt(e, t, r, n, a, i, o, s, h), p.push(l.x), g.push(l.y)), f > 0 && f < 1 && (l = rt(e, t, r, n, a, i, o, s, f), p.push(l.x), g.push(l.y)), h = (-(u = 2 * (n - t) - 2 * (i - n)) + ie(u * u - 4 * (c = i - 2 * n + t - (s - 2 * i + n)) * (d = t - n))) / 2 / c, f = (-u - ie(u * u - 4 * c * d)) / 2 / c, te(h) > "1e12" && (h = .5), te(f) > "1e12" && (f = .5), h > 0 && h < 1 && (l = rt(e, t, r, n, a, i, o, s, h), p.push(l.x), g.push(l.y)), f > 0 && f < 1 && (l = rt(e, t, r, n, a, i, o, s, f), p.push(l.x), g.push(l.y)), {
                            min: {
                                x: ee[v](0, p),
                                y: ee[v](0, g)
                            },
                            max: {
                                x: Q[v](0, p),
                                y: Q[v](0, g)
                            }
                        }
                    })),
                    at = c._path2curve = (0, s.cacher)((function(e, t) {
                        var r = !t && $e(e);
                        if (!t && r.curve) return Je(r.curve);
                        for (var n = Ze(e), a = t && Ze(t), i = {
                                x: 0,
                                y: 0,
                                bx: 0,
                                by: 0,
                                X: 0,
                                Y: 0,
                                qx: null,
                                qy: null
                            }, o = {
                                x: 0,
                                y: 0,
                                bx: 0,
                                by: 0,
                                X: 0,
                                Y: 0,
                                qx: null,
                                qy: null
                            }, s = function(e, t) {
                                if (!e) return ["C", t.x, t.y, t.x, t.y, t.x, t.y];
                                switch (!(e[0] in {
                                    T: 1,
                                    Q: 1
                                }) && (t.qx = t.qy = null), e[0]) {
                                    case "M":
                                        t.X = e[1], t.Y = e[2];
                                        break;
                                    case "A":
                                        e = ["C"].concat(tt[v](0, [t.x, t.y].concat(e.slice(1))));
                                        break;
                                    case "S":
                                        e = ["C", t.x + (t.x - (t.bx || t.x)), t.y + (t.y - (t.by || t.y))].concat(e.slice(1));
                                        break;
                                    case "T":
                                        t.qx = t.x + (t.x - (t.qx || t.x)), t.qy = t.y + (t.y - (t.qy || t.y)), e = ["C"].concat(et(t.x, t.y, t.qx, t.qy, e[1], e[2]));
                                        break;
                                    case "Q":
                                        t.qx = e[1], t.qy = e[2], e = ["C"].concat(et(t.x, t.y, e[1], e[2], e[3], e[4]));
                                        break;
                                    case "L":
                                        e = ["C"].concat(Qe(t.x, t.y, e[1], e[2]));
                                        break;
                                    case "H":
                                        e = ["C"].concat(Qe(t.x, t.y, e[1], t.y));
                                        break;
                                    case "V":
                                        e = ["C"].concat(Qe(t.x, t.y, t.x, e[1]));
                                        break;
                                    case "Z":
                                        e = ["C"].concat(Qe(t.x, t.y, t.X, t.Y))
                                }
                                return e
                            }, l = function(e, t) {
                                if (e[t].length > 7) {
                                    e[t].shift();
                                    for (var r = e[t]; r.length;) e.splice(t++, 0, ["C"].concat(r.splice(0, 6)));
                                    e.splice(t, 1), d = Q(n.length, a && a.length || 0)
                                }
                            }, c = function(e, t, r, i, o) {
                                e && t && "M" === e[o][0] && "M" != t[o][0] && !o && (t.splice(o, 0, ["M", i.x, i.y]), r.bx = 0, r.by = 0, r.x = e[o][1], r.y = e[o][2], d = Q(n.length, a && a.length || 0))
                            }, u = 0, d = Q(n.length, a && a.length || 0); u < d; u++) {
                            n[u] = s(n[u], i), l(n, u), a && (a[u] = s(a[u], o)), a && l(a, u), c(n, a, i, o, u), c(a, n, o, i, u);
                            var h = n[u],
                                f = a && a[u],
                                g = h.length,
                                p = a && f.length;
                            i.x = h[g - 2], i.y = h[g - 1], i.bx = K(h[g - 4]) || i.x, i.by = K(h[g - 3]) || i.y, o.bx = a && (K(f[p - 4]) || o.x), o.by = a && (K(f[p - 3]) || o.y), o.x = a && f[p - 2], o.y = a && f[p - 1]
                        }
                        return a || (r.curve = Je(n)), a ? [n, a] : n
                    }), null, Je),
                    it = (c._parseDots = (0, s.cacher)((function(e) {
                        for (var t = [], r = 0, n = e.length; r < n; r++) {
                            var a = {},
                                i = e[r].match(/^([^:]*):?([\d\.]*)/);
                            if (a.color = c.getRGB(i[1]), a.color.error) return null;
                            a.opacity = a.color.opacity, a.color = a.color.hex, i[2] && (a.offset = i[2] + "%"), t.push(a)
                        }
                        for (r = 1, n = t.length - 1; r < n; r++)
                            if (!t[r].offset) {
                                for (var o = K(t[r - 1].offset || 0), s = 0, l = r + 1; l < n; l++)
                                    if (t[l].offset) {
                                        s = t[l].offset;
                                        break
                                    }
                                s || (s = 100, l = n);
                                for (var u = ((s = K(s)) - o) / (l - r + 1); r < l; r++) o += u, t[r].offset = o + "%"
                            }
                        return t
                    })), c._tear = function(e, t) {
                        e === t.top && (t.top = e.prev), e === t.bottom && (t.bottom = e.next), e.next && (e.next.prev = e.prev), e.prev && (e.prev.next = e.next)
                    }),
                    ot = (c._tofront = function(e, t) {
                        return t.top !== e && (it(e, t), e.next = null, e.prev = t.top, t.top.next = e, t.top = e, !0)
                    }, c._toback = function(e, t) {
                        return t.bottom !== e && (it(e, t), e.next = t.bottom, e.prev = null, t.bottom.prev = e, t.bottom = e, !0)
                    }, c._insertafter = function(e, t, r, n) {
                        it(e, r), e.parent = n, t === n.top && (n.top = e), t.next && (t.next.prev = e), e.next = t.next, e.prev = t, t.next = e
                    }, c._insertbefore = function(e, t, r, n) {
                        it(e, r), e.parent = n, t === n.bottom && (n.bottom = e), t.prev && (t.prev.next = e), e.prev = t.prev, t.prev = e, e.next = t
                    }, c._extractTransform = function(e, t) {
                        if (null == t) return e._.transform;
                        t = q(t).replace(/\.{3}|\u2026/g, e._.transform || g);
                        var r, n, a = c.parseTransformString(t),
                            i = 0,
                            o = 1,
                            s = 1,
                            l = e._,
                            u = new ct;
                        if (l.transform = a || [], a)
                            for (var d = 0, h = a.length; d < h; d++) {
                                var f, p, m, v, b, y = a[d],
                                    x = y.length,
                                    w = q(y[0]).toLowerCase(),
                                    C = y[0] != w,
                                    _ = C ? u.invert() : 0;
                                "t" === w && 3 === x ? C ? (f = _.x(0, 0), p = _.y(0, 0), m = _.x(y[1], y[2]), v = _.y(y[1], y[2]), u.translate(m - f, v - p)) : u.translate(y[1], y[2]) : "r" === w ? 2 === x ? (b = l.bb || (l.bb = e.getBBox(1)), u.rotate(y[1], b.x + b.width / 2, b.y + b.height / 2), i += y[1]) : 4 === x && (C ? (m = _.x(y[2], y[3]), v = _.y(y[2], y[3]), u.rotate(y[1], m, v)) : u.rotate(y[1], y[2], y[3]), i += y[1]) : "s" === w ? 2 === x || 3 === x ? (b = l.bb || (l.bb = e.getBBox(1)), u.scale(y[1], y[x - 1], b.x + b.width / 2, b.y + b.height / 2), o *= y[1], s *= y[x - 1]) : 5 === x && (C ? (m = _.x(y[3], y[4]), v = _.y(y[3], y[4]), u.scale(y[1], y[2], m, v)) : u.scale(y[1], y[2], y[3], y[4]), o *= y[1], s *= y[2]) : "m" === w && 7 === x && u.add(y[1], y[2], y[3], y[4], y[5], y[6]), l.dirtyT = 1, e.matrix = u
                            }
                        e.matrix = u, l.sx = o, l.sy = s, l.deg = i, l.dx = r = u.e, l.dy = n = u.f, 1 === o && 1 === s && !i && l.bbox ? (l.bbox.x += +r, l.bbox.y += +n) : l.dirtyT = 1
                    }),
                    st = function(e) {
                        var t = e[0];
                        switch (t.toLowerCase()) {
                            case "t":
                                return [t, 0, 0];
                            case "m":
                                return [t, 1, 0, 0, 1, 0, 0];
                            case "r":
                                return 4 === e.length ? [t, 0, e[2], e[3]] : [t, 0];
                            case "s":
                                return 5 === e.length ? [t, 1, 1, e[3], e[4]] : 3 === e.length ? [t, 1, 1] : [t, 1]
                        }
                    },
                    lt = c._equaliseTransform = function(e, t) {
                        t = q(t).replace(/\.{3}|\u2026/g, e), e = c.parseTransformString(e) || [], t = c.parseTransformString(t) || [];
                        for (var r, n, a, i, o = Q(e.length, t.length), s = [], l = [], u = 0; u < o; u++) {
                            if (a = e[u] || st(t[u]), i = t[u] || st(a), a[0] != i[0] || "r" === a[0].toLowerCase() && (a[2] != i[2] || a[3] != i[3]) || "s" === a[0].toLowerCase() && (a[3] != i[3] || a[4] != i[4])) return;
                            for (s[u] = [], l[u] = [], r = 0, n = Q(a.length, i.length); r < n; r++) r in a && (s[u][r] = a[r]), r in i && (l[u][r] = i[r])
                        }
                        return {
                            from: s,
                            to: l
                        }
                    };

                function ct(e, t, r, n, a, i) {
                    null != e ? (this.a = +e, this.b = +t, this.c = +r, this.d = +n, this.e = +a, this.f = +i) : (this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.e = 0, this.f = 0)
                }
                c._getContainer = function(e, t, r, n) {
                        var a;
                        if (null != (a = null != n || c.is(e, w) ? e : N.doc.getElementById(e))) return a.tagName ? null == t ? {
                            container: a,
                            width: a.style.pixelWidth || a.offsetWidth,
                            height: a.style.pixelHeight || a.offsetHeight
                        } : {
                            container: a,
                            width: t,
                            height: r
                        } : {
                            container: 1,
                            x: e,
                            y: t,
                            width: r,
                            height: n
                        }
                    }, c._engine = {}, c.path2curve = at, c.matrix = function(e, t, r, n, a, i) {
                        return new ct(e, t, r, n, a, i)
                    },
                    function(e) {
                        function t(e) {
                            return e[0] * e[0] + e[1] * e[1]
                        }

                        function r(e) {
                            var r = ie(t(e));
                            e[0] && (e[0] /= r), e[1] && (e[1] /= r)
                        }
                        e.add = function(e, t, r, n, a, i) {
                            var o, s, l, c, u = [
                                    [],
                                    [],
                                    []
                                ],
                                d = [
                                    [this.a, this.c, this.e],
                                    [this.b, this.d, this.f],
                                    [0, 0, 1]
                                ],
                                h = [
                                    [e, r, a],
                                    [t, n, i],
                                    [0, 0, 1]
                                ];
                            for (e && e instanceof ct && (h = [
                                    [e.a, e.c, e.e],
                                    [e.b, e.d, e.f],
                                    [0, 0, 1]
                                ]), o = 0; o < 3; o++)
                                for (s = 0; s < 3; s++) {
                                    for (c = 0, l = 0; l < 3; l++) c += d[o][l] * h[l][s];
                                    u[o][s] = c
                                }
                            this.a = u[0][0], this.b = u[1][0], this.c = u[0][1], this.d = u[1][1], this.e = u[0][2], this.f = u[1][2]
                        }, e.invert = function() {
                            var e = this,
                                t = e.a * e.d - e.b * e.c;
                            return new ct(e.d / t, -e.b / t, -e.c / t, e.a / t, (e.c * e.f - e.d * e.e) / t, (e.b * e.e - e.a * e.f) / t)
                        }, e.clone = function() {
                            return new ct(this.a, this.b, this.c, this.d, this.e, this.f)
                        }, e.translate = function(e, t) {
                            this.add(1, 0, 0, 1, e, t)
                        }, e.scale = function(e, t, r, n) {
                            null == t && (t = e), (r || n) && this.add(1, 0, 0, 1, r, n), this.add(e, 0, 0, t, 0, 0), (r || n) && this.add(1, 0, 0, 1, -r, -n)
                        }, e.rotate = function(e, t, r) {
                            e = c.rad(e), t = t || 0, r = r || 0;
                            var n = +ne(e).toFixed(9),
                                a = +ae(e).toFixed(9);
                            this.add(n, a, -a, n, t, r), this.add(1, 0, 0, 1, -t, -r)
                        }, e.x = function(e, t) {
                            return e * this.a + t * this.c + this.e
                        }, e.y = function(e, t) {
                            return e * this.b + t * this.d + this.f
                        }, e.get = function(e) {
                            return +this[q.fromCharCode(97 + e)].toFixed(4)
                        }, e.toString = function() {
                            return c.svg ? "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")" : [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join()
                        }, e.toMatrixString = function() {
                            return "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")"
                        }, e.toFilter = function() {
                            return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this.get(0) + ", M12=" + this.get(2) + ", M21=" + this.get(1) + ", M22=" + this.get(3) + ", Dx=" + this.get(4) + ", Dy=" + this.get(5) + ", sizingmethod='auto expand')"
                        }, e.offset = function() {
                            return [this.e.toFixed(4), this.f.toFixed(4)]
                        }, e.split = function() {
                            var e = {};
                            e.dx = this.e, e.dy = this.f;
                            var n = [
                                [this.a, this.c],
                                [this.b, this.d]
                            ];
                            e.scalex = ie(t(n[0])), r(n[0]), e.shear = n[0][0] * n[1][0] + n[0][1] * n[1][1], n[1] = [n[1][0] - n[0][0] * e.shear, n[1][1] - n[0][1] * e.shear], e.scaley = ie(t(n[1])), r(n[1]), e.shear /= e.scaley;
                            var a = -n[0][1],
                                i = n[1][1];
                            return i < 0 ? (e.rotate = c.deg(Z.acos(i)), a < 0 && (e.rotate = 360 - e.rotate)) : e.rotate = c.deg(Z.asin(a)), e.isSimple = !(+e.shear.toFixed(9) || e.scalex.toFixed(9) !== e.scaley.toFixed(9) && e.rotate), e.isSuperSimple = !+e.shear.toFixed(9) && e.scalex.toFixed(9) === e.scaley.toFixed(9) && !e.rotate, e.noRotation = !+e.shear.toFixed(9) && !e.rotate, e
                        }, e.toTransformString = function(e) {
                            var t = e || this.split();
                            return t.isSimple ? (t.scalex = +t.scalex.toFixed(4), t.scaley = +t.scaley.toFixed(4), t.rotate = +t.rotate.toFixed(4), (t.dx || t.dy ? "t" + [t.dx, t.dy] : g) + (1 != t.scalex || 1 != t.scaley ? "s" + [t.scalex, t.scaley, 0, 0] : g) + (t.rotate ? "r" + [t.rotate, 0, 0] : g)) : "m" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)]
                        }
                    }(ct.prototype);
                var ut = (I = D.navigator).userAgent.match(/Version\/(.*?)\s/) || I.userAgent.match(/Chrome\/(\d+)/);
                "Apple Computer, Inc." === I.vendor && (ut && ut[1] < 4 || "iP" === I.platform.slice(0, 2)) || "Google Inc." === I.vendor && ut && ut[1] < 8 ? X.safari = function() {
                    var e = this.rect(-99, -99, this.width + 99, this.height + 99).attr({
                        stroke: C
                    });
                    return setTimeout((function() {
                        e.remove()
                    })), !0
                } : X.safari = function() {};
                for (var dt = function() {
                        this.returnValue = !1
                    }, ht = function() {
                        return this.originalEvent.preventDefault()
                    }, ft = function() {
                        this.cancelBubble = !0
                    }, gt = function() {
                        return this.originalEvent.stopPropagation()
                    }, pt = {
                        stopPropagation: "fn",
                        stopImmediatePropagation: "fn",
                        preventDefault: "fn",
                        type: !0,
                        clientX: !0,
                        clientY: !0,
                        pageX: !0,
                        pageY: !0,
                        bubbles: !0,
                        cancelable: !0,
                        touches: !0,
                        target: !0,
                        originalTarget: !0,
                        srcElement: !0,
                        relatedTarget: !0,
                        fromElement: !0,
                        changedTouches: !0,
                        layerX: !0,
                        layerY: !0,
                        deltaX: !0,
                        deltaY: !0
                    }, mt = c.makeSelectiveCopy = function(e, t) {
                        var r = function(r) {
                            e[r] = "fn" === pt[r] ? function() {
                                t[r]()
                            } : t[r]
                        };
                        for (var n in pt) r(n);
                        e.originalEvent = t, e.type || (e.type = t.originalEvent && t.originalEvent.type)
                    }, vt = c.addEvent = N.doc.addEventListener ? function(e, t, r, n) {
                        var a, i, o = O ? F[t] : L ? Y[t] : t;
                        return S || (i = {
                                capture: !1
                            }), n.dragFn && ("pointerup" === o ? o = "mouseup" : void 0 === o && (o = "touchend")), a = function(a) {
                                var i, o = N.doc.documentElement.scrollTop || N.doc.body.scrollTop,
                                    s = N.doc.documentElement.scrollLeft || N.doc.body.scrollLeft;
                                if (L && Y[t])
                                    for (var l = 0, c = a.targetTouches && a.targetTouches.length; l < c; l++)
                                        if ((i = a.targetTouches[l].target) === e || "tspan" === i.nodeName && i.parentNode === e) {
                                            var u = a;
                                            (a = a.targetTouches[l]).originalEvent = u, a.preventDefault = ht, a.stopPropagation = gt;
                                            break
                                        }
                                return r.call(n, a, a.clientX + s, a.clientY + o)
                            }, e.addEventListener(o, a, i),
                            function() {
                                return e.removeEventListener(o, a, i), !0
                            }
                    } : N.doc.attachEvent ? function(e, t, r, n) {
                        var a = function(e) {
                            e = e || N.win.event;
                            var t = N.doc.documentElement.scrollTop || N.doc.body.scrollTop,
                                a = N.doc.documentElement.scrollLeft || N.doc.body.scrollLeft,
                                i = e.clientX + a,
                                o = e.clientY + t;
                            return e.preventDefault = e.preventDefault || dt, e.stopPropagation = e.stopPropagation || ft, r.call(n, e, i, o)
                        };
                        return e.attachEvent("on" + t, a),
                            function() {
                                return e.detachEvent("on" + t, a), !0
                            }
                    } : void 0, bt = function(e) {
                        var t, r = N.doc.documentElement.scrollTop || N.doc.body.scrollTop,
                            n = N.doc.documentElement.scrollLeft || N.doc.body.scrollLeft,
                            a = (void 0 !== e.clientX ? e.clientX : e.changedTouches && e.changedTouches[0].clientX) + n,
                            i = (void 0 !== e.clientY ? e.clientY : e.changedTouches && e.changedTouches[0].clientY) + r,
                            s = {},
                            l = this,
                            u = l.dragInfo.onmove.length;
                        if (!(l.dragStartFn && !(Math.abs(a - l._drag.x) >= 2.5 || Math.abs(i - l._drag.y) >= 2.5) || l._blockDrag || O && L && !e.isPrimary))
                            for (; u--;) {
                                if (L && "touchmove" === e.type)
                                    for (var d, h = e.touches.length; h--;)
                                        if ((d = e.touches[h]).identifier === l._drag.id) {
                                            a = d.clientX + n, i = d.clientY + r;
                                            break
                                        }
                                if (!l.removed) {
                                    if (l.dragStartFn && (l.dragStartFn(u), l.dragStartFn = undefined, l.dragInfo._dragmove = !0), N.win.opera) {
                                        var f = c._engine.getNode(l),
                                            g = f.nextSibling,
                                            p = f.parentNode,
                                            m = f.style.display;
                                        p.removeChild(f), f.style.display = C, f.style.display = m, g ? p.insertBefore(f, g) : p.appendChild(f)
                                    }
                                    mt(s, e), t = s.data = [a - l._drag.x, i - l._drag.y, a, i], (0, o["default"])("raphael.drag.move." + l.id, l.dragInfo.move_scope[u] || l, s, t)
                                }
                            }
                    }, yt = function e(t) {
                        var r = this,
                            n = r.dragInfo,
                            a = n.onend.length;
                        if (r.dragInfo._dragmove)
                            for (; a--;) r._drag = {}, (0, o["default"])("raphael.drag.end." + r.id, n.end_scope[a] || n.start_scope[a] || n.move_scope[a] || r, t);
                        r.dragInfo._dragmove = undefined, L && !P && !R && (!B || !V) && (r.paper.canvas.style["touch-action"] = "auto"), c.undragmove.call(r, bt), c.undragend.call(r, e), c.unmousemove.call(r, bt).unmouseup.call(r, e)
                    }, xt = c.el = {}, wt = $.length; wt--;) ! function(e) {
                    c[e] = xt[e] = function(t, r, n) {
                        return c.is(t, _) && (this.events = this.events || [], this.events.push({
                            name: e,
                            f: t,
                            unbind: vt(n || this.shape || this.node || N.doc, e, t, r || this)
                        })), this
                    }, c["un" + e] = xt["un" + e] = function(t) {
                        for (var r = this.events || [], n = r.length; n--;)
                            if (r[n].name === e && r[n].f === t) return r[n].unbind(), r.splice(n, 1), !r.length && delete this.events, this;
                        return this
                    }
                }($[wt]);
                xt.data = function(e, t) {
                    var r = Ee[this.id] = Ee[this.id] || {};
                    if (1 === arguments.length) {
                        if (c.is(e, w)) {
                            for (var n in e) e[m](n) && this.data(n, e[n]);
                            return this
                        }
                        return c.stopPartialEventPropagation || (0, o["default"])("raphael.data.get." + this.id, this, r[e], e), r[e]
                    }
                    return r[e] = t, c.stopPartialEventPropagation || (0, o["default"])("raphael.data.set." + this.id, this, t, e), this
                }, xt.removeData = function(e) {
                    return null == e ? delete Ee[this.id] : Ee[this.id] && delete Ee[this.id][e], this
                }, xt.dbclick = function(e, t) {
                    var r, n = this,
                        a = function(r) {
                            var a;
                            O && !r.isPrimary || (r && r.preventDefault(), (!(a = r).touches || a.touches && 1 === a.touches.length) && (n._tappedOnce ? (e.call(t || n, r), n._tappedOnce = !1) : (n._tappedOnce = !0, setTimeout((function() {
                                n._tappedOnce = !1
                            }), 500))))
                        };
                    r = O ? "pointerup" : c.supportsTouch ? "touchstart" : "mouseup", n.node.addEventListener(r, a), c.storeHandlers(n, e, a)
                }, xt.undbclick = function(e) {
                    var t = removeHandlers(this, e);
                    t && this.node.removeEventListener(O ? "pointerup" : c.supportsTouch ? "touchstart" : "mouseup", t)
                }, xt.getData = function() {
                    return Re(Ee[this.id] || {})
                };
                var Ct = [],
                    _t = function() {
                        this.untrack = vt(N.doc, "mouseup", kt, this)
                    },
                    kt = function() {
                        return this.untrack(), this.untrack = null, this.fn && this.fn.apply(this.scope || this.el, arguments)
                    };
                xt.mouseup = function(e, t, r, n) {
                    return r ? (Ct.push(r = {
                        el: this,
                        fn: e,
                        scope: t
                    }), r.unbind = vt(this.shape || this.node || N.doc, "mousedown", _t, r), this) : c.mouseup.apply(this, [e, t, n])
                }, xt.unmouseup = function(e) {
                    for (var t, r = Ct.length; r--;) Ct[r].el === this && Ct[r].fn === e && ((t = Ct[r]).unbind(), t.untrack && t.untrack(), Ct.splice(r, 1));
                    return t ? this : c.unmouseup.apply(this, arguments)
                }, xt.hover = function(e, t, r, n) {
                    return this.on("fc-mouseover", e, r).on("fc-mouseout", t, n)
                }, xt.unhover = function(e, t) {
                    return this.off("fc-mouseover", e).off("fc-mouseout", t)
                }, xt.fcclick = function(e, t) {
                    var r, n, a, i, o, s = this,
                        l = s.node,
                        u = function(e) {
                            s._lastEventTriggered = "mousedown", a = void 0 !== e.clientX ? e.clientX : e.changedTouches && e.changedTouches[0].clientX, i = void 0 !== e.clientY ? e.clientY : e.changedTouches && e.changedTouches[0].clientY
                        },
                        d = function(e) {
                            var t = void 0 !== e.clientX ? e.clientX : e.changedTouches && e.changedTouches[0].clientX,
                                r = void 0 !== e.clientY ? e.clientY : e.changedTouches && e.changedTouches[0].clientY;
                            (Math.abs(a - t) >= 2.5 || Math.abs(i - r) >= 2.5) && (s._lastEventTriggered = undefined)
                        };
                    if (s._clickStoreActual || (s._clickStoreActual = []), s._clickStoreDerived || (s._clickStoreDerived = []), !s._clickHandlerHelper) {
                        for (r in o = !O && c.supportsTouch ? {
                                touchstart: function() {
                                    s._lastEventTriggered = "touchstart", s._lastEventTriggeredAt = (new Date).getTime()
                                },
                                touchmove: d
                            } : O && c.supportsTouch ? {
                                pointerdown: u,
                                pointermove: d
                            } : {
                                mousedown: u,
                                mousemove: d
                            }) l.addEventListener ? l.addEventListener(r, o[r]) : l.attachEvent("on" + r, o[r]);
                        s._clickHandlerHelper = o
                    }
                    return !O && c.supportsTouch ? (r = "touchend", n = function(r) {
                        "touchstart" === s._lastEventTriggered && (new Date).getTime() - s._lastEventTriggeredAt <= 500 && setTimeout((function() {
                            e.call(t || s, r)
                        }), 0)
                    }) : (r = "click", n = function(r) {
                        "mousedown" === s._lastEventTriggered && e.call(t || s, r)
                    }), l.addEventListener ? l.addEventListener(r, n) : l.attachEvent("on" + r, n), s._clickStoreDerived.push(n), s._clickStoreActual.push(e), s
                }, xt.fcunclick = function(e) {
                    var t, r, n = this.node,
                        a = this._clickHandlerHelper,
                        i = this._clickStoreActual,
                        o = this._clickStoreDerived;
                    if (i) {
                        for (t = i.length - 1; t >= 0; t--) i[t] === e && (n.removeEventListener ? n.removeEventListener(!O && c.supportsTouch ? "touchend" : "click", o[t]) : n.detachEvent("onclick", o[t]), i.splice(t, 1), o.splice(t, 1));
                        if (!i.length) {
                            for (r in a) n.removeEventListener ? n.removeEventListener(r, a[r]) : n.detachEvent("on" + r, a[r]);
                            this._clickHandlerHelper = undefined
                        }
                    }
                    return this
                };
                var St = [];

                function Et() {
                    return this.x + p + this.y + p + this.width + " × " + this.height
                }
                xt.drag = function(e, t, r, n, a, i) {
                    var s = this,
                        l = s.dragInfo || (s.dragInfo = {
                            onmove: [],
                            onstart: [],
                            onend: [],
                            move_scope: [],
                            start_scope: [],
                            end_scope: []
                        });
                    return e && l.onmove.push(e) && l.move_scope.push(n), t && l.onstart.push(t) && l.start_scope.push(a), r && l.onend.push(r) && l.end_scope.push(i), s.dragFn = s.dragFn || function(e) {
                        var t, r, n, a, i, l, u, d, h, f, g = N.doc.documentElement.scrollTop || N.doc.body.scrollTop,
                            p = N.doc.documentElement.scrollLeft || N.doc.body.scrollLeft,
                            m = {},
                            v = s.dragInfo,
                            b = [bt, void 0, N.doc];
                        if (!O || e.isPrimary) {
                            for (L && (O ? P || R || B && V || (s.paper.canvas.style["touch-action"] = "none") : e.preventDefault()), s._drag.x = h = (void 0 !== e.clientX ? e.clientX : e.changedTouches && e.changedTouches[0].clientX) + p, s._drag.y = f = (void 0 !== e.clientY ? e.clientY : e.changedTouches && e.changedTouches[0].clientY) + g, s._drag.id = e.identifier, L && !O ? c.dragmove.apply(s, b) : c.mousemove.apply(s, b).mouseup.call(s, yt, void 0, void 0, N.doc), L && c.dragend.call(s, yt, void 0, N.doc), mt(m, e), t = m.data = [h, f], r = 0, i = v.onstart.length; r < i; r++) o["default"].on("raphael.drag.start." + s.id, v.onstart[r]);
                            for (n = 0, l = v.onmove.length; n < l; n++) o["default"].on("raphael.drag.move." + s.id, v.onmove[n]);
                            for (a = 0, u = v.onend.length; a < u; a++) o["default"].on("raphael.drag.end." + s.id, v.onend[a]);
                            i && !l && (d = function() {
                                s.undragmove(), v.onmove = []
                            }, v.onmove.push(d), o["default"].on("raphael.drag.end." + s.id, d)), s.dragStartFn = function(e) {
                                (0, o["default"])("raphael.drag.start." + s.id, s.dragInfo.start_scope[e] || s.dragInfo.move_scope[e] || s, m, t)
                            }
                        }
                    }, s._drag = {}, St.push({
                        el: s,
                        start: s.dragFn,
                        onstart: t,
                        onmove: e,
                        onend: r
                    }), t && !s.startHandlerAttached && (L && !O ? s.dragstart(s.dragFn) : s.mousedown(s.dragFn), s.startHandlerAttached = !0), s
                }, xt.onDragOver = function(e) {
                    e ? o["default"].on("raphael.drag.over." + this.id, e) : o["default"].unbind("raphael.drag.over." + this.id)
                }, xt.undrag = function() {
                    for (var e = St.length; e--;) St[e].el === this && (this.unmousedown(this.dragFn), St.splice(e, 1), o["default"].unbind("raphael.drag.*." + this.id), this.dragInfo = undefined, this.dragFn = undefined, this.startHandlerAttached = undefined);
                    c.unmousemove.call(this, bt).unmouseup.call(this, yt), c.undragmove.call(this, bt), c.undragend.call(this, yt), delete this._drag
                }, xt.undragstart = function(e) {
                    var t, r, n = this.dragInfo,
                        a = n && n.onstart,
                        i = n && n.start_scope;
                    if (e)
                        for (t = 0, r = a && a.length; t < r; t++)
                            if (a[t] === e) {
                                a.splice(t, 1), i.splice(t, 1), o["default"].unbind("raphael.drag.start." + this.id, e);
                                break
                            }
                    a && a.length && e || (c.undragstart.call(this, this.dragFn), c.unmousedown.call(this, this.dragFn), o["default"].unbind("raphael.drag.start." + this.id), this.startHandlerAttached = !1, n && (n.onstart = [], n.start_scope = []))
                }, xt.undragmove = function(e) {
                    var t, r, n = this.dragInfo,
                        a = n && n.onmove,
                        i = n && n.move_scope;
                    if (e)
                        for (t = 0, r = a && a.length; t < r; t++)
                            if (a[t] === e) {
                                a.splice(t, 1), i.splice(t, 1), o["default"].unbind("raphael.drag.move." + this.id, e);
                                break
                            }
                    a && a.length && e || (c.undragmove.call(this, bt), c.unmousemove.call(this, bt), n && (n.onmove = [], n.move_scope = []), o["default"].unbind("raphael.drag.move." + this.id))
                }, xt.undragend = function(e) {
                    var t, r, n = this.dragInfo,
                        a = n && n.onend,
                        i = n && n.end_scope;
                    if (e)
                        for (t = 0, r = a && a.length; t < r; t++)
                            if (a[t] === e) {
                                a.splice(t, 1), i.splice(t, 1), o["default"].unbind("raphael.drag.end." + this.id, e);
                                break
                            }
                    a && a.length && e || (c.undragend.call(this, yt), c.unmouseup.call(this, yt), n && (n.onend = [], n.end_scope = []), o["default"].unbind("raphael.drag.end." + this.id))
                }, xt.follow = function(e, t, r) {
                    return e.removed || e.constructor !== c.el.constructor ? this : (e.followers.push({
                        el: this,
                        stalk: r = {
                            before: "insertBefore",
                            after: "insertAfter"
                        }[r],
                        cb: t
                    }), r && this[r](e), this)
                }, xt.unfollow = function(e) {
                    if (e.removed || e.constructor !== c.el.constructor) return this;
                    for (var t = 0, r = e.followers.length; t < r; t++)
                        if (e.followers[t].el === this) {
                            e.followers.splice(t, 1);
                            break
                        }
                    return this
                }, X.hide = function() {
                    return this.canvas.style.visibility = "hidden", this
                }, X.show = function() {
                    return this.canvas.style.visibility = g, this
                }, X.group = function() {
                    var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Ie(t, !0),
                        n = c._engine.group(e, t[0], r, !!t[1]);
                    return e.__set__ && e.__set__.push(n), e._elementsById[n.id] = n
                }, X.circle = function() {
                    var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Ie(t, !0),
                        n = e._addDefAttribs() ? Le(t, "cx", 0, "cy", 0, "r", 0, "fill", C, "stroke", "#000") : Le(t),
                        a = c._engine.circle(e, n, r);
                    return e.__set__ && e.__set__.push(a), e._elementsById[a.id] = a
                }, X.rect = function() {
                    var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Ie(t, !0),
                        n = e._addDefAttribs() ? Le(t, "x", 0, "y", 0, "width", 0, "height", 0, "r", 0, "fill", C, "stroke", "#000") : Le(t),
                        a = c._engine.rect(e, n, r);
                    return e.__set__ && e.__set__.push(a), e._elementsById[a.id] = a
                }, X.ellipse = function() {
                    var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Ie(t, !0),
                        n = e._addDefAttribs() ? Le(t, "x", 0, "y", 0, "rx", 0, "ry", 0, "fill", C, "stroke", "#000") : Le(t),
                        a = c._engine.ellipse(this, n, r);
                    return e.__set__ && e.__set__.push(a), e._elementsById[a.id] = a
                }, X.path = function() {
                    var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Ie(t, !0),
                        n = e.config,
                        a = n && n["stroke-linecap"] || "butt",
                        i = e._addDefAttribs() ? Le(t, "path", g, "fill", C, "stroke", "#000", "stroke-linecap", a) : Le(t),
                        o = c._engine.path(e, i, r);
                    return e.__set__ && e.__set__.push(o), e._elementsById[o.id] = o
                }, X.image = function() {
                    var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Ie(t, !0),
                        n = e._addDefAttribs() ? Le(t, "x", 0, "y", 0, "width", 0, "height", 0) : Le(t),
                        a = c._engine.image(e, n, r);
                    return e.__set__ && e.__set__.push(a), e._elementsById[a.id] = a
                }, X.text = function() {
                    var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Ie(t, !0),
                        n = e._addDefAttribs() ? Le(t, "x", 0, "y", 0, "text", g, "stroke", C, "fill", "#000", "text-anchor", "middle", "vertical-align", "middle") : Le(t),
                        a = c._engine.text(e, n, r, t[1]);
                    return e.__set__ && e.__set__.push(a), e._elementsById[a.id] = a
                }, X._addDefAttribs = function() {
                    return !(c.svg && this.config && this.config.noDefaultAttribs)
                }, X.setConfig = function(e, t) {
                    return e !== undefined && t !== undefined && (this.config = this.config || {}, this.config[e] = t), this.config
                }, X._createDOMNodes = function(e, t, r) {
                    var n, a, i, o, s = {},
                        l = c._createNode,
                        u = t.tagName,
                        d = t.children || [];
                    for (o in !r && (r = {}), t) "tagName" !== o && "children" !== o && (s[o] = t[o]);
                    if (!s.id && (s.id = c.getElementID(c.createUUID())), !this.canvas.getElementById(s.id) && u)
                        for (n = e.appendChild(l(u, s)), r.element = n, r.id = s.id, (i = d.length) > 0 && (r.children = []), a = 0; a < i; a++) r.children[a] = {}, this._createDOMNodes(n, d[a], r.children[a]);
                    return r
                }, X.addDefs = function(e) {
                    if (c.svg) {
                        var t, r = {},
                            n = this.defs;
                        for (t in e) r[t] = {}, this._createDOMNodes(n, e[t], r[t]);
                        return r
                    }
                }, X.setSize = function(e, t) {
                    return c._engine.setSize.call(this, e, t)
                }, X.setDimension = function(e, t) {
                    var r;
                    typeof e === w ? (r = e.width, t = e.height, this.setSize(e.width, e.height)) : (r = e, this.setSize(r, t))
                }, X.attr = function(e) {
                    return null == e ? {
                        width: this.width,
                        height: this.height
                    } : c.is(e, y) ? this[e] : (this.setDimension(e), this)
                }, X.status = function(e, t) {
                    return xt.status.call(this, e, t)
                }, X.animateWith = function(e, t, r, n, a, i, o) {
                    return xt.animateWith.call(this, e, t, r, n, a, i, o)
                }, X.animate = function(e, t, r, n) {
                    return xt.animate.call(this, e, t, r, n)
                }, X.setViewBox = function(e, t, r, n, a) {
                    return c._engine.setViewBox.call(this, e, t, r, n, a)
                }, X.getById = function(e) {
                    return this._elementsById[e] || null
                }, X.top = X.bottom = null, X.raphael = c, xt.getBBox = function(e) {
                    if (this.removed) return {};
                    var t = this._;
                    return e ? (!t.dirty && t.bboxwt || (this.realPath = De[this.type](this), t.bboxwt = Ke(this.realPath), t.bboxwt.toString = Et, t.dirty = 0), t.bboxwt) : ((t.dirty || t.dirtyT || !t.bbox) && (!t.dirty && this.realPath || (t.bboxwt = 0, this.realPath = De[this.type](this)), t.bbox = Ke(Fe(this.realPath, this.matrix)), t.bbox.toString = Et, t.dirty = t.dirtyT = 0), t.bbox)
                }, xt.clone = function(e, t) {
                    if (this.removed) return null;
                    var r, n, a = this,
                        i = a.attr();
                    if (e) {
                        for (r in e) i[r] = e[r];
                        n = a.paper[a.type](i, t)
                    } else n = a.paper[a.type]().attr(i);
                    return a.__set__ && a.__set__.push(n), n
                };
                var At = function(e, t, r, n, a, i, o, s, l) {
                        return null == l ? qe(e, t, r, n, a, i, o, s) : c.findDotsAtSegment(e, t, r, n, a, i, o, s, function(e, t, r, n, a, i, o, s, l) {
                            if (!(l < 0 || qe(e, t, r, n, a, i, o, s) < l)) {
                                var c, u = .5,
                                    d = 1 - u;
                                for (c = qe(e, t, r, n, a, i, o, s, d); te(c - l) > .01;) c = qe(e, t, r, n, a, i, o, s, d += (c < l ? 1 : -1) * (u /= 2));
                                return d
                            }
                        }(e, t, r, n, a, i, o, s, l))
                    },
                    Tt = function(e, t) {
                        return function(r, n, a) {
                            r = at(r);
                            for (var i, o, s, l, u, d = g, h = {}, f = 0, p = 0, m = r.length; p < m; p++) {
                                if ("M" === (s = r[p])[0]) i = +s[1], o = +s[2];
                                else {
                                    if (f + (l = At(i, o, s[1], s[2], s[3], s[4], s[5], s[6])) > n) {
                                        if (t && !h.start) {
                                            if (d += ["C" + (u = At(i, o, s[1], s[2], s[3], s[4], s[5], s[6], n - f)).start.x, u.start.y, u.m.x, u.m.y, u.x, u.y], a) return d;
                                            h.start = d, d = ["M" + u.x, u.y + "C" + u.n.x, u.n.y, u.end.x, u.end.y, s[5], s[6]].join(), f += l, i = +s[5], o = +s[6];
                                            continue
                                        }
                                        if (!e && !t) return {
                                            x: (u = At(i, o, s[1], s[2], s[3], s[4], s[5], s[6], n - f)).x,
                                            y: u.y,
                                            alpha: u.alpha
                                        }
                                    }
                                    f += l, i = +s[5], o = +s[6]
                                }
                                d += s.shift() + s
                            }
                            return h.end = d, (u = e ? f : t ? h : c.findDotsAtSegment(i, o, s[0], s[1], s[2], s[3], s[4], s[5], 1)).alpha && (u = {
                                x: u.x,
                                y: u.y,
                                alpha: u.alpha
                            }), u
                        }
                    },
                    Nt = Tt(1),
                    Mt = Tt();
                Tt(0, 1);
                c.getTotalLength = Nt, c.getPointAtLength = Mt, xt.getTotalLength = function() {
                    if ("path" == this.type) return this.node.getTotalLength ? this.node.getTotalLength() : Nt(this.attrs.path)
                }, xt.getPointAtLength = function(e) {
                    if ("path" == this.type) return Mt(this.attrs.path, e)
                };
                var Dt = c.easing_formulas = {
                    linear: function(e) {
                        return e
                    },
                    "<": function(e) {
                        return re(e, 1.7)
                    },
                    ">": function(e) {
                        return re(e, .48)
                    },
                    "<>": function(e) {
                        var t = .48 - e / 1.04,
                            r = ie(.1734 + t * t),
                            n = r - t,
                            a = -r - t,
                            i = re(te(n), 1 / 3) * (n < 0 ? -1 : 1) + re(te(a), 1 / 3) * (a < 0 ? -1 : 1) + .5;
                        return 3 * (1 - i) * i * i + i * i * i
                    },
                    backIn: function(e) {
                        var t = 1.70158;
                        return e * e * ((t + 1) * e - t)
                    },
                    backOut: function(e) {
                        var t = 1.70158;
                        return (e -= 1) * e * ((t + 1) * e + t) + 1
                    },
                    elastic: function(e) {
                        return e === !!e ? e : re(2, -10 * e) * ae(2 * se * (e - .075) / .3) + 1
                    },
                    bounce: function(e) {
                        var t = 7.5625,
                            r = 2.75;
                        return e < 1 / r ? t * e * e : e < 2 / r ? t * (e -= 1.5 / r) * e + .75 : e < 2.5 / r ? t * (e -= 2.25 / r) * e + .9375 : t * (e -= 2.625 / r) * e + .984375
                    },
                    oneBounceOut: function(e) {
                        return e <= .9 ? 1.33 * Dt.easeIn(e) : 1.2 - e / 5
                    },
                    elasticOnce: function(e) {
                        return e === !!e ? e : Math.pow(2, -10 * e) * Math.sin((e - .225) * (2 * Math.PI) / .9) + 1
                    },
                    easeInQuad: function(e) {
                        return e * e
                    },
                    easeOutQuad: function(e) {
                        return e * (2 - e)
                    },
                    easeInOutQuad: function(e) {
                        return e < .5 ? 2 * e * e : (4 - 2 * e) * e - 1
                    },
                    easeInCubic: function(e) {
                        return e * e * e
                    },
                    easeOutCubic: function(e) {
                        return --e * e * e + 1
                    },
                    easeInOutCubic: function(e) {
                        return e < .5 ? 4 * e * e * e : (e - 1) * (2 * e - 2) * (2 * e - 2) + 1
                    },
                    easeInQuart: function(e) {
                        return e * e * e * e
                    },
                    easeOutQuart: function(e) {
                        return 1 - --e * e * e * e
                    },
                    easeInOutQuart: function(e) {
                        return e < .5 ? 8 * e * e * e * e : 1 - 8 * --e * e * e * e
                    },
                    easeInQuint: function(e) {
                        return e * e * e * e * e
                    },
                    easeOutQuint: function(e) {
                        return 1 + --e * e * e * e * e
                    },
                    easeInOutQuint: function(e) {
                        return e < .5 ? 16 * e * e * e * e * e : 1 + 16 * --e * e * e * e * e
                    }
                };
                Dt.easeIn = Dt["ease-in"] = Dt["<"], Dt.easeOut = Dt["ease-out"] = Dt[">"], Dt.easeInOut = Dt["ease-in-out"] = Dt["<>"], Dt["back-in"] = Dt.backIn, Dt["back-out"] = Dt.backOut;
                var Ft, It = [],
                    Lt = function $t() {
                        for (var e, t, r, n = +new Date, a = 0, i = [], s = 0; a < It.length; a++) {
                            var l = It[a];
                            if (!(l.el.removed || l.paused || l.parentEl && l.parentEl.e && l.parentEl.e.paused)) {
                                for (var u, d, h, f = n - l.start, v = l.ms, b = l.easing, y = l.from, x = l.diff, w = l.to, C = (l.t, l.el), k = {}, S = {}, E = !c.stopPartialEventPropagation, A = (s = 0, l.el && l.el.animElements && l.el.animElements.peek()); A && A.pos <= f / v;) i.push(l.el.animElements.deq()), A = l.el.animElements.peek();
                                if (l.initstatus ? (f = (l.initstatus * l.anim.top - l.prev) / (l.percent - l.prev) * v, l.status = l.initstatus, delete l.initstatus, l.stop && (delete l.el, It.splice(a--, 1))) : l.status = (l.prev + (l.percent - l.prev) * (f / v)) / l.anim.top, d = v, l.parentEl && l.parentEl.animElements ? (v = l.delayend - l.delaystart, f = l.parentEl.cPos - l.delaystart) : l.el.animElements && (l.el.cPos = f / v), !(f < 0))
                                    if (f < v) {
                                        var T = b(f / v);
                                        for (var N in v = d, y)
                                            if (y[m](N)) {
                                                switch (Se[N]) {
                                                    case "number":
                                                        u = +y[N] + T * v * x[N];
                                                        break;
                                                    case "colour":
                                                        if (x[N].length) {
                                                            for (u = [], s = 0, M = y[N].length; s < M; ++s) 0 === s ? y[N].isRadial || x[N].isRadial ? (r = "xr(", r += y[N][0].f1 * (1 - T) + x[N][0].f1 * T || g, r += ",", r += y[N][0].f2 * (1 - T) + x[N][0].f2 * T || g, r += ",", r += 100 * (y[N][0].f3 * (1 - T) + x[N][0].f3 * T) || g, r += "%,", r += y[N][0].f4 * (1 - T) + x[N][0].f4 * T || g, r += ",", r += y[N][0].f5 * (1 - T) + x[N][0].f5 * T, r += ",", r += y[N][0].f6, r += ")", u.push(r)) : (u.push(y[N][s] * (1 - T) + T * x[N][s]), u[0] <= 0 && (u[0] += 360)) : u.push("rgba(" + [Ot(oe(y[N][s].r + T * v * x[N][s].r)), Ot(oe(y[N][s].g + T * v * x[N][s].g)), Ot(oe(y[N][s].b + T * v * x[N][s].b)), y[N][s].opacity + T * v * x[N][s].opacity].join(",") + "):" + y[N][s].position);
                                                            u = u.join("-"), (y[N].isRadial || x[N].isRadial) && (u = u.replace("-", g))
                                                        } else t = y[N].opacity + T * v * x[N].opacity, isNaN(t) && (t = 1), u = "rgba(" + [Ot(oe(y[N].r + T * v * x[N].r)), Ot(oe(y[N].g + T * v * x[N].g)), Ot(oe(y[N].b + T * v * x[N].b)), t].join(",") + ")";
                                                        break;
                                                    case "path":
                                                        u = [];
                                                        s = 0;
                                                        for (var M = y[N].length; s < M; s++) {
                                                            var D;
                                                            u[s] = [y[N][s][0]], D = y[N][s] ? y[N][s].length : 0;
                                                            for (var F = 1; F < D; F++) u[s][F] = (+y[N][s][F] + T * v * x[N][s][F]).toFixed(4);
                                                            u[s] = u[s].join(p)
                                                        }
                                                        u = u.join(p);
                                                        break;
                                                    case "transform":
                                                        if (x[N].real)
                                                            for (u = [], s = 0, M = y[N].length; s < M; s++)
                                                                for (u[s] = [y[N][s][0]], F = 1, D = y[N][s].length; F < D; F++) u[s][F] = y[N][s][F] + T * v * x[N][s][F];
                                                        else {
                                                            var I = function(e) {
                                                                return +y[N][e] + T * v * x[N][e]
                                                            };
                                                            u = [
                                                                ["m", I(0), I(1), I(2), I(3), I(4), I(5)]
                                                            ]
                                                        }
                                                        break;
                                                    case "csv":
                                                        if ("clip-rect" === N)
                                                            for (u = [], s = 4; s--;) u[s] = +y[N][s] + T * v * x[N][s];
                                                        break;
                                                    case "text-bound":
                                                        u = [].concat(y[N]);
                                                        break;
                                                    default:
                                                        var L = [].concat(y[N]);
                                                        for (u = [], s = C.ca[N].length; s--;) u[s] = +L[s] + T * v * x[N][s]
                                                }
                                                k[N] = u
                                            }
                                        C.attr(k), E && function(e, t, r) {
                                            setTimeout((function() {
                                                (0, o["default"])("raphael.anim.frame." + e, t, r)
                                            }))
                                        }(C.id, C, l.anim)
                                    } else {
                                        if (function(e, t, r) {
                                                setTimeout((function() {
                                                    E && (0, o["default"])("raphael.anim.frame." + t.id, t, r), E && (0, o["default"])("raphael.anim.finish." + t.id, t, r), c.is(e, _) && e.call(t)
                                                }))
                                            }(l.callback, C, l.anim), C.attr(w), delete l.el, It.splice(a--, 1), l.repeat > 1 && !l.next) {
                                            for (h in w) w[m](h) && (S[h] = l.totalOrigin[h]);
                                            l.el.attr(S), Gt(l.anim, l.el, l.anim.percents[0], null, l.totalOrigin, l.repeat - 1)
                                        }
                                        l.next && !l.stop && Gt(l.anim, l.el, l.next, null, l.totalOrigin, l.repeat)
                                    }
                            }
                        }
                        for (c.svg && C && C.paper && C.paper.safari(), a = 0, e = i.length; a < e; ++a) c.getInstantAnimFrameFn()(function(e) {
                            return function() {
                                Gt.apply(null, i[e].params)
                            }
                        }(a));
                        It.length && (Ft || c.getAnimFrameFn())($t)
                    },
                    Ot = function(e) {
                        return e > 255 ? 255 : e < 0 ? 0 : e
                    },
                    Rt = function(e) {
                        return e > 1 && (e = 1), e < 0 && (e = 0), e
                    };

                function Pt(e, t, r, n, a, i) {
                    var o = 3 * t,
                        s = 3 * (n - t) - o,
                        l = 1 - o - s,
                        c = 3 * r,
                        u = 3 * (a - r) - c,
                        d = 1 - c - u;

                    function h(e) {
                        return ((l * e + s) * e + o) * e
                    }
                    return function(e, t) {
                        var r = function(e, t) {
                            var r, n, a, i, c, u;
                            for (a = e, u = 0; u < 8; u++) {
                                if (i = h(a) - e, te(i) < t) return a;
                                if (te(c = (3 * l * a + 2 * s) * a + o) < 1e-6) break;
                                a -= i / c
                            }
                            if (n = 1, (a = e) < (r = 0)) return r;
                            if (a > n) return n;
                            for (; r < n;) {
                                if (i = h(a), te(i - e) < t) return a;
                                e > i ? r = a : n = a, a = (n - r) / 2 + r
                            }
                            return a
                        }(e, t);
                        return ((d * r + u) * r + c) * r
                    }(e, 1 / (200 * i))
                }

                function Vt(e, t) {
                    var r = [],
                        n = {};
                    if (this.ms = t, this.times = 1, e) {
                        for (var a in e) e[m](a) && (n[K(a)] = e[a], r.push(K(a)));
                        r.sort(Ae)
                    }
                    this.anim = n, this.top = r[r.length - 1], this.percents = r
                }
                c.getAnimFrameFn = function() {
                    return Ft = c.requestAnimFrame || l.webkitRequestAnimationFrame || l.mozRequestAnimationFrame || l.oRequestAnimationFrame || l.msRequestAnimationFrame || function(e) {
                        setTimeout(e, 16)
                    }
                }, c.getInstantAnimFrameFn = function() {
                    return c.instantRequestAnimFrame || l.webkitRequestAnimationFrame || l.mozRequestAnimationFrame || l.oRequestAnimationFrame || l.msRequestAnimationFrame || function(e) {
                        setTimeout(e, 16)
                    }
                }, xt.animateWith = function(e, t, r, n, a, i, o) {
                    var s, l = this,
                        u = {};
                    for (s in o = o || {}) o.hasOwnProperty(s) && (u[s] = o[s]);
                    if (o = u, l.removed) return i && i.call(l), l;
                    if (0 === n) return c.is(i, _) && setTimeout((function() {
                        i.call(l)
                    }), 0), l.attr(r);
                    var d = r instanceof Vt ? r : c.animation(r, n, a, i);
                    o.start = Rt(o.start || 0), o.end = Rt(o.end || 1), o.start >= o.end && (o.start = o.end), !o.from && o.start > .01 ? (e.animElements = e.animElements || new Ve((function(e, t) {
                        return t.pos - e.pos
                    })), e.animElements.enq({
                        pos: o.start,
                        attr: o.start === o.end,
                        params: [d, l, d.percents[0], null, l.attr(), undefined, e, {
                            start: o.start,
                            end: o.end,
                            smartMorph: o.smartMorph,
                            hookFn: o.hookFn
                        }, r],
                        executeOb: {
                            el: this,
                            attrs: r,
                            callback: i,
                            hookFn: o.hookFn
                        }
                    })) : Gt(d, l, d.percents[0], null, l.attr(), undefined, e, o);
                    for (var h = 0, f = It.length; h < f; h++)
                        if (It[h].anim === t && It[h].el === e) {
                            It[f - 1].start = It[h].start;
                            break
                        }
                    return l
                }, xt.onAnimation = function(e) {
                    return e ? o["default"].on("raphael.anim.frame." + this.id, e) : o["default"].unbind("raphael.anim.frame." + this.id), this
                }, Vt.prototype.delay = function(e) {
                    var t = new Vt(this.anim, this.ms);
                    return t.times = this.times, t.del = +e || 0, t
                }, Vt.prototype.repeat = function(e) {
                    var t = new Vt(this.anim, this.ms);
                    return t.del = this.del, t.times = Z.floor(Q(e, 0)) || 1, t
                };

                function Bt(e, t, r) {
                    var n, a, i = 0,
                        o = 0,
                        s = [],
                        l = [],
                        c = {},
                        u = 0,
                        d = [];
                    if (e = e.constructor === Array ? e[0] : e, t = t.constructor === Array ? t[0] : t, n = e.split("-"), a = t.split("-"), 1 === n.length && 1 === a.length) return [e, t];
                    for (n = h(n), a = h(a), !n.defaultAngleSet && a.defaultAngleSet && (a[0] = n[0]), !a.defaultAngleSet && n.defaultAngleSet && (n[0] = a[0]), function e(t, r, n) {
                            t.isRadial && !r.isRadial && (+r[0], r[0] = {
                                f1: 0,
                                f2: 0,
                                f3: 0,
                                f4: 0,
                                f5: 0,
                                f6: g
                            }, r.isRadial = !0), n || e(r, t, !0)
                        }(n, a), i = 1, o = n.length; i < o; ++i) u = n[i].position, d.push(u);
                    for (i = 1, o = a.length; i < o; ++i) u = a[i].position, -1 === d.indexOf(u) && d.push(u);
                    for (d.push(0), d.sort((function(e, t) {
                            return e - t
                        })), s = [n[0]], i = 1, o = d.length; i < o; ++i) u = d[i], c = n.getColorAtPosition(u), s.push(c);
                    for (l = [a[0]], i = 1, o = d.length; i < o; ++i) u = d[i], c = a.getColorAtPosition(u), l.push(c);
                    return s.isRadial = n.isRadial, l.isRadial = a.isRadial, [s, l];

                    function h(e) {
                        var t, n = 0,
                            a = 0,
                            i = 0,
                            o = [],
                            s = {},
                            l = 0,
                            c = 0,
                            u = 0,
                            d = 0,
                            h = 0,
                            f = 0,
                            p = {
                                f1: .5,
                                f2: .5
                            };
                        for (1 === e.length && (e[0] === C && (e[0] = "rgba(0,0,0,0)"), e.unshift(0), e.defaultAngleSet = !0), isNaN(e[0]) ? ~"rx".indexOf(e[0].charAt(0)) ? (e.isRadial = !0, d = 1, -1 !== e[0].indexOf(")") && (d = e[0].indexOf(")"), h = e[0].indexOf("(") + 1, f = d, o = e[0].substr(h, f - h).split(","), p.f1 = parseFloat(o[0]) || 0, p.f2 = parseFloat(o[1]) || 0, ~o[2].indexOf("%") && (o[2] = parseFloat(o[2]) / 100), p.f3 = parseFloat(o[2]) || 0, p.f4 = parseFloat(o[3]) || 0, p.f5 = parseFloat(o[4]) || 0, p.f6 = o[5]), e[0] = e[0].substr(f + 1), e.unshift(p)) : e[0] = 0 : e[0] = +e[0], n = 1, a = e.length; n < a; ++n) o = e[n].split(":"), s = r(o[0]), e[n] = {}, e[n].r = s.r, e[n].g = s.g, e[n].b = s.b, e[n].opacity = s.opacity, e[n].opacity = +e[n].opacity, isNaN(e[n].opacity) && (e[n].opacity = 1), e[n].position = +o[1];
                        if (e.sort((function(e, t) {
                                return "number" == typeof e || e.f1 ? -1 : "number" == typeof t || e.f2 ? 1 : isNaN(e.position) && isNaN(t.position) ? 0 : isNaN(e.position) ? -1 : isNaN(t.position) ? 1 : e.position - t.position
                            })), 0 != +e[1].position)
                            if (isNaN(e[1].position)) e[1].position = 0;
                            else {
                                for (t in s = {}, e[1]) s[t] = e[1][t];
                                for (s.position = 0, e.push({}), n = e.length - 1; 1 !== n; --n) e[n] = e[n - 1];
                                e[1] = s
                            }
                        if (100 !== e[a = e.length - 1].position)
                            if (isNaN(e[a].position)) e[a].position = 100;
                            else {
                                for (t in s = {}, e[a]) s[t] = e[a][t];
                                s.position = 100, e.push(s)
                            }
                        for (n = 2, a = e.length; n < a; ++n)
                            if (!e[n].position) {
                                for (l = e[n - 1].position, u = 1, i = n + 1; i < a; ++i)
                                    if (++u, !isNaN(e[i].position)) {
                                        c = +e[i].position;
                                        break
                                    }
                                e[n].position = l + (c - l) / u
                            }
                        return e.getColorAtPosition = function(e) {
                            for (var t = -1, r = this.length, n = 1, a = this.length, i = 0, o = g, s = {
                                    r: 0,
                                    g: 0,
                                    b: 0
                                }; n < a - 1; ++n)
                                if (this[n].position <= e && (t = n, r = n + 1), !(this[n].position < e) && this[n].position >= e) {
                                    r = n;
                                    break
                                }
                            for (o in i = (e - this[t].position) / (this[r].position - this[t].position), isNaN(i) && (i = 0), s) s[o] = Ot((1 - i) * this[t][o] + i * this[r][o]);
                            return s.position = e, s.opacity = (1 - i) * this[t].opacity + i * this[r].opacity, s
                        }, e
                    }
                }

                function jt(e, t) {
                    var r, n = [],
                        a = [],
                        i = d(e),
                        o = d(t),
                        s = 0,
                        l = 0,
                        c = document.createElementNS && document.createElementNS.bind(document),
                        u = c && c("http://www.w3.org/2000/svg", "path");
                    if (!i || !o || !u) return [e, t];
                    if (function(e, t) {
                            var r, n, a = g,
                                i = g;
                            if (u.setAttribute("d", "M300 10 L300 300 C50 310,50 640,350 650C600 640,600 310,400 300 L400 10 L295 10"), r = u.getTotalLength(), n = u.getPointAtLength(10), r < 1829.1 || r > 1829.2) return !0;
                            if (300 !== Math.round(n.x) || 20 !== Math.round(n.y)) return !0;

                            function o(e) {
                                for (var t = e.length; t-- - 1 && e[t].join(g) === e[t - 1].join(g);) e.pop()
                            }

                            function s(e) {
                                for (var t = g, r = 0, n = e.length; r < n; ++r) t += e[r].join(p);
                                return t
                            }
                            if (o(e), o(t), a = s(e), i = s(t), a.split(/[Mm]/).length > 2 || i.split(/[Mm]/).length > 2) return !1;
                            if (e.length === t.length) return !0;
                            return !1
                        }(e, t)) return [e, t];
                    if (!e || !t) return [e, t];
                    if (!document.createElementNS) return [e, t];
                    if (i = d(e), o = d(t), -1 !== i.join().indexOf("undefined")) return [e, t];
                    if (-1 !== o.join().indexOf("undefined")) return [e, t];
                    if (!u.getTotalLength || !u.getPointAtLength) return [e, t];

                    function d(e) {
                        var t = [],
                            r = 0,
                            n = e.length;
                        if (typeof e === y) return e;
                        for (r = 0; r < n; ++r) {
                            if (!e[r].join) return;
                            r && e[r + 1] && "M" === e[r + 1][0] && "M" === e[r][0] || t.push(e[r].join(p))
                        }
                        for (r = 0, n = (t = (t = t.join(g)).split(/[Mm]/).slice(1)).length; r < n; ++r) t[r] = "M" + t[r];
                        return t
                    }
                    for (l = Math.max(i.length, o.length), s = 0; s < l; ++s) r = Ht(i[s], o[s]), i[s] = r[0], o[s] = r[1];

                    function h(e) {
                        var t, r = 0,
                            n = [];
                        for (t = (e = e || []).length, r = 0; r < t; ++r) e[r].length - 1 && n.push(e[r].join(p));
                        return n.join(g)
                    }

                    function f(e, t) {
                        for (var r = e.length; r-- - 1 && e[r].slice(1).toString() === e[r - 1].slice(1).toString();) e.pop();
                        1 === e.length && t && (e.length = 0)
                    }

                    function m(e, t) {
                        for (var r, n = [], a = [], i = e.length, o = 0, s = 0, l = 0, c = 0, u = t - i; u >= 0;) o = e.length - 1, e.push(e.slice(o)[0]), --u;
                        for (i = e.length, o = 0; o <= t; ++o) a.push(Math.round(o / t * i));
                        for (o = 0, r = a.length - 1; o < r; ++o) n.push(e.slice(a[o], a[o + 1])), "M" !== n[o][0][0] && "m" !== n[o][0][0] && (l = n[o - 1].length - 1, s = n[o - 1][l][1], c = n[o - 1][l][2], n[o].unshift(["M", s, c]));
                        return n
                    }
                    for (s = i.length; s--;) f(i[s], s), i[s].length || i.pop();
                    for (s = o.length; s--;) f(o[s], s), o[s].length || o.pop();
                    for (function(e) {
                            var t, r = [],
                                n = [],
                                a = [],
                                s = 0,
                                l = !0;
                            if (0 !== e) {
                                for (e > 0 ? (r = o, l = !1) : (e = -e, r = i), s = 0, t = r.length; s < t; ++s) n.push(1);
                                for (; e--;) --s < 0 && (s = t - 1), n[s]++;
                                for (s = 0; s < t; ++s) 1 === n[s] ? a.push(r[s]) : a.push.apply(a, m(r[s], n[s]));
                                l ? i = a : o = a
                            }
                        }(i.length - o.length), l = Math.max(i.length, o.length), s = 0; s < l; ++s) r = Ht(h(i[s]), h(o[s])), i[s] = r[0], o[s] = r[1];
                    for (s = 0, l = i.length; s < l; ++s) n = n.concat(i[s]);
                    for (s = 0, l = o.length; s < l; ++s) a = a.concat(o[s]);
                    return [n, a]
                }

                function Ht(e, t) {
                    var r, n, a, i = 0,
                        o = [],
                        s = [];

                    function l(e, t) {
                        var r, n, a, i, o = 0,
                            s = {},
                            l = [],
                            c = [],
                            u = 0,
                            d = Math.round;
                        for ((r = document.createElementNS("http://www.w3.org/2000/svg", "path")).setAttribute("d", e), (n = document.createElementNS("http://www.w3.org/2000/svg", "path")).setAttribute("d", t), a = r.getTotalLength(), i = n.getTotalLength(), u = .15 * Math.max(a, i), (!(u = Math.ceil(u)) || !isFinite(u) || u < 10) && (u = 10), o = 0; o <= u; ++o) s = r.getPointAtLength(o / u * a), l.push([o ? j : "M", d(s.x), d(s.y)]), s = n.getPointAtLength(o / u * i), c.push([o ? j : "M", d(s.x), d(s.y)]);
                        return [l, c]
                    }
                    for (e && "M  " !== e || (e = t.split(p).slice(0, 3).join(p).replace(/[LC]/, g)), t && "M  " !== t || (t = e.split(p).slice(0, 3).join(p).replace(/[LC]/, g)), n = function(e, t) {
                            var r, n, a, i, o = 0,
                                s = 0,
                                l = 0,
                                c = 0,
                                u = {},
                                d = {},
                                h = [],
                                f = [],
                                m = -1,
                                v = -1,
                                b = !0;

                            function y(e) {
                                var t, r = 0;
                                for (r = 0, t = (e = e.split(/[MCLmcl]/).slice(1)).length; r < t; ++r) e[r] = e[r].split(p).slice(1), r || e[r].unshift("M"), r && (2 === e[r].length && e[r].unshift(j) || e[r].unshift("C"));
                                return e
                            }

                            function x(e, t) {
                                var r, n, a = 0,
                                    i = e.length;
                                for (a = 0, i = e.length; a < i; ++a) r = e[a].join(p), "C" === (n = e[a])[0] && n[3] === n[5] && n[4] === n[6] ? e[a].stringValue = [j, n[3], n[4]].join(p) : n.stringValue = r, t[n.stringValue] && t[n.stringValue].push(a), t[n.stringValue] || (t[n.stringValue] = [a])
                            }

                            function w(e, t, r, n, a) {
                                for (var i, o = r, s = 0, l = 0; o < n; ++o)
                                    if (i = t[e[o].stringValue])
                                        for (s = 0, l = i.length; s < l; ++s)
                                            if (i[s] >= a) return {
                                                index: o,
                                                mapValue: i[s],
                                                diff: o - r
                                            };
                                return -1
                            }

                            function C(e) {
                                var t = e.length - 1;
                                return ["M", e[t - 1], e[t]].join(p)
                            }

                            function _(e) {
                                return e.join(g)
                            }
                            for (e = y(e), t = y(t), x(e, u), x(t, d), r = e.length, n = t.length, o = 0, s = 0; o < r && s < n;) {
                                if (++v, h[++m] = [], f[v] = [], b = e[o].stringValue === t[s].stringValue, o && (h[m].push(C(e[o - 1])), f[v].push(C(t[s - 1]))), b)
                                    for (; o < r && s < n && e[o].stringValue === t[s].stringValue;) h[m].push(e[o].stringValue), f[v].push(t[s].stringValue), ++o, ++s;
                                else {
                                    for (a = w(e, d, o, r, s), i = w(t, u, s, n, o), l = a.index, c = a.mapValue, (!~a || a.diff > i.diff) && (l = i.mapValue, c = i.index), ~a || ~i || (l = r - 1, c = n - 1); o <= l;) h[m].push(e[o].stringValue), ++o;
                                    for (; s <= c;) f[v].push(t[s].stringValue), ++s
                                }
                                h[m] = _(h[m]), f[v] = _(f[v])
                            }
                            if (o < r) {
                                for (h[++m] = [], h[m].push(C(e[o - 1])), f[++v] = [], f[v].push(C(t[s - 1])); o < r;) h[m].push(e[o].stringValue), ++o;
                                h[m] = _(h[m])
                            }
                            if (s < n) {
                                for (h[++m] = [], h[m].push(C(e[o - 1])), f[++v] = [], f[v].push(C(t[s - 1])); s < n;) f[v].push(t[s].stringValue), ++s;
                                f[v] = _(f[v])
                            }
                            return [h, f]
                        }(e, t), i = 0, r = n[0].length; i < r; ++i) a = l(n[0][i], n[1][i]), i ? (o = o.concat(a[0].slice(1)), s = s.concat(a[1].slice(1))) : (o = o.concat(a[0]), s = s.concat(a[1]));
                    return [o, s]
                }

                function Gt(e, t, r, n, a, i, s, l) {
                    r = K(r);
                    var u, d, h, f, g, p, v, b, x = e.ms,
                        w = {},
                        _ = {},
                        k = {};
                    if (null !== t.type) {
                        if ((l = l || {}).hookFn && l.hookFn.call(t), l.from = l.from || {}, n)
                            for (E = 0, A = It.length; E < A; E++) {
                                var S = It[E];
                                if (S.el.id === t.id && S.anim === e) {
                                    S.percent != r ? (delete S.el.e, delete S.el, It.splice(E, 1), h = 1) : d = S, t.attr(S.totalOrigin);
                                    break
                                }
                            } else n = +_;
                        for (var E = 0, A = e.percents.length; E < A; E++) {
                            if (e.percents[E] === r || e.percents[E] > n * e.top) {
                                r = e.percents[E], g = e.percents[E - 1] || 0, x = x / e.top * (r - g), f = e.percents[E + 1], u = e.anim[r];
                                break
                            }
                            n && t.attr(e.anim[e.percents[E]])
                        }
                        if (u) {
                            if (d) d.initstatus = n, d.start = new Date - d.ms * n;
                            else {
                                for (var T in u)
                                    if (u[m](T))
                                        if (Se[m](T) || t.ca[T]) {
                                            switch (w[T] = l.from[T] || t.attr(T), null == w[T] && (w[T] = ke[T]), _[T] = u[T], b = !1, Se[T]) {
                                                case "number":
                                                    ((v = _[T] - w[T]) || isNaN(v)) && (b = !0), k[T] = v / x;
                                                    break;
                                                case "colour":
                                                    if (w[T] === _[T]) break;
                                                    b = !0;
                                                    var N = Bt(w[T], _[T], c.getRGB);
                                                    w[T] = N[0];
                                                    var M = N[1];
                                                    if (typeof M === y) w[T].toLowerCase() !== C ? (w[T] = c.getRGB(w[T]), w[T].opacity || (w[T].opacity = 1)) : w[T] = {
                                                        r: 0,
                                                        g: 0,
                                                        b: 0,
                                                        opacity: 0
                                                    }, _[T].toLowerCase() !== C ? (M = c.getRGB(_[T])).opacity || (M.opacity = 1) : M = {
                                                        r: 0,
                                                        g: 0,
                                                        b: 0,
                                                        opacity: 0
                                                    }, k[T] = {
                                                        r: (M.r - w[T].r) / x,
                                                        g: (M.g - w[T].g) / x,
                                                        b: (M.b - w[T].b) / x,
                                                        opacity: (M.opacity - w[T].opacity) / x
                                                    };
                                                    else
                                                        for (k[T] = [], E = 0, A = w[T].length; E < A; ++E) 0 === E ? k[T].push(M[0]) : k[T].push({
                                                            r: (M[E].r - w[T][E].r) / x,
                                                            g: (M[E].g - w[T][E].g) / x,
                                                            b: (M[E].b - w[T][E].b) / x,
                                                            opacity: (M[E].opacity - w[T][E].opacity) / x
                                                        });
                                                    break;
                                                case "path":
                                                    var D, F = at(w[T], _[T]);
                                                    for (l.smartMorph && (F = jt(F[0], F[1])), D = F[1], w[T] = F[0], k[T] = [], E = 0, A = w[T].length; E < A; E++) {
                                                        var I;
                                                        k[T][E] = [0], I = w[T][E] ? w[T][E].length : 0;
                                                        for (var L = 1; L < I; L++) k[T][E][L] = (D[E][L] - w[T][E][L]) / x, !b && k[T][E][L] && (b = !0)
                                                    }
                                                    break;
                                                case "transform":
                                                    var O = t._,
                                                        R = lt(O[T], _[T]);
                                                    if (b = !0, R)
                                                        for (w[T] = R.from, _[T] = R.to, k[T] = [], k[T].real = !0, E = 0, A = w[T].length; E < A; E++)
                                                            for (k[T][E] = [w[T][E][0]], L = 1, I = w[T][E].length; L < I; L++) k[T][E][L] = (_[T][E][L] - w[T][E][L]) / x;
                                                    else {
                                                        var P = t.matrix || new ct,
                                                            V = {
                                                                _: {
                                                                    transform: O.transform
                                                                },
                                                                getBBox: function() {
                                                                    return t.getBBox(1)
                                                                }
                                                            };
                                                        w[T] = [P.a, P.b, P.c, P.d, P.e, P.f], ot(V, _[T]), _[T] = V._.transform, k[T] = [(V.matrix.a - P.a) / x, (V.matrix.b - P.b) / x, (V.matrix.c - P.c) / x, (V.matrix.d - P.d) / x, (V.matrix.e - P.e) / x, (V.matrix.f - P.f) / x]
                                                    }
                                                    break;
                                                case "csv":
                                                    var B = q(u[T]).split(fe),
                                                        j = q(w[T]).split(fe);
                                                    if ("clip-rect" === T)
                                                        for (w[T] = j, k[T] = [], E = j.length; E--;)((v = B[E] - w[T][E]) || isNaN(v)) && (b = !0), k[T][E] = v / x;
                                                    _[T] = B;
                                                    break;
                                                default:
                                                    for (B = [].concat(u[T]), j = [].concat(w[T]), k[T] = [], E = t.ca[T].length; E--;)((v = (B[E] || 0) - (j[E] || 0)) || isNaN(v)) && (b = !0), k[T][E] = v / x
                                            }
                                            b || (delete w[T], delete _[T], delete u[T], delete k[T])
                                        } else(c._availableAttrs[m](T) || "text" === T || t.ca[T]) && (t.attr(T, u[T]), delete u[T]);
                                var H = u.easing,
                                    G = c.easing_formulas[H];
                                if (!G)
                                    if ((G = q(H).match(me)) && 5 === G.length) {
                                        var U = G;
                                        G = function(e) {
                                            return Pt(e, +U[1], +U[2], +U[3], +U[4], x)
                                        }
                                    } else G = Te;
                                if (p = u.start || e.start || +new Date, t.e = S = {
                                        anim: e,
                                        percent: r,
                                        timestamp: p,
                                        start: p + (e.del || 0),
                                        status: 0,
                                        initstatus: n || 0,
                                        stop: !1,
                                        ms: x,
                                        easing: G,
                                        from: w,
                                        diff: k,
                                        to: _,
                                        el: t,
                                        callback: u.callback,
                                        prev: g,
                                        next: f,
                                        repeat: i || e.times,
                                        origin: t.attr(),
                                        totalOrigin: a,
                                        parentEl: s,
                                        delayend: l && l.end,
                                        delaystart: l && l.start
                                    }, It.push(S), n && !d && !h && (S.stop = !0, S.start = new Date - x * n, 1 === It.length)) return Lt();
                                h && (S.start = new Date - S.ms * n), 1 === It.length && (Ft || c.getAnimFrameFn())(Lt)
                            }(0, o["default"])("raphael.anim.start." + t.id, t, e)
                        }
                    }
                }

                function Ut(e) {
                    var t;
                    void 0 === e && (e = this);
                    for (var r = 0; r < It.length; r++)(t = It[r].el.paper) && t !== e || It.splice(r--, 1)
                }
                c.animation = function(e, t, r, n, a) {
                    if (e instanceof Vt) return e;
                    !c.is(r, _) && r || (n = n || r || null, r = null), !c.stopPartialEventPropagation && (c.stopPartialEventPropagation = a), e = Object(e), t = +t || 0;
                    var i, o, s = {};
                    for (o in e) e[m](o) && K(o) != o && K(o) + "%" != o && (i = !0, s[o] = e[o]);
                    return n && (i = !0), i ? (r && (s.easing = r), n && (s.callback = n), new Vt({
                        100: s
                    }, t)) : new Vt(e, t)
                }, xt.animate = function(e, t, r, n) {
                    if (this.removed) return n && n.call(this), this;
                    var a = e instanceof Vt ? e : c.animation(e, t, r, n);
                    return Gt(a, this, a.percents[0], null, this.attr()), this
                }, xt.status = function(e, t) {
                    var r, n, a = [],
                        i = 0;
                    if (null != t) return Gt(e, this, -1, ee(t, 1)), this;
                    for (r = It.length; i < r; i++)
                        if ((n = It[i]).el.id === this.id && (!e || n.anim === e)) {
                            if (e) return n.status;
                            a.push({
                                anim: n.anim,
                                status: n.status
                            })
                        }
                    return e ? 0 : a
                }, xt.pause = function(e, t) {
                    var r, n, a = +new Date;
                    for (n = 0; n < It.length; n++) !((r = It[n]).el.id === this.id || t && r.parentEl && r.parentEl.e.el && r.parentEl.e.el.id === this.id) || e && r.anim !== e || !1 !== (0, o["default"])("raphael.anim.pause." + this.id, this, r.anim) && (r.paused = !0, r.pauseStart = a);
                    return this
                }, xt.resume = function(e, t) {
                    var r, n, a = +new Date;
                    for (n = 0; n < It.length; n++) !((r = It[n]).el.id === this.id || t && r.parentEl && r.parentEl.e.el && r.parentEl.e.el.id === this.id) || e && r.anim !== e || !1 !== (0, o["default"])("raphael.anim.resume." + this.id, this, r.anim) && (delete r.paused, r.el.status(r.anim, r.status), r.pauseEnd = a, r.start += (r.parentEl && r.parentEl.e.pauseEnd || r.pauseEnd) - (r.parentEl && r.parentEl.e.pauseStart || r.pauseStart) || 0);
                    return this
                }, xt.stop = function(e, t, r) {
                    var n, a;
                    if (t)
                        for (i = It.length - 1; i >= 0; i--) !((n = It[i]).el.id === this.id || n.parentEl && n.parentEl.id === this.id) || e && It[i].anim !== e || (a = n.el, r && a.attr(n.to), n.callback && n.callback.call(a), delete a.e, delete n.el, It.splice(i, 1));
                    else
                        for (var i = 0; i < It.length; i++)(n = It[i]).el.id !== this.id || e && n.anim !== e || !1 !== (0, o["default"])("raphael.anim.stop." + this.id, this, n.anim) && It.splice(i--, 1);
                    return this.animElements && function(e) {
                        var t;
                        for (; t = e.deq();)(t = t.executeOb).hookFn && t.hookFn.call(t.el), t.el.attr(t.attrs), t.callback && t.callback.call(t.el)
                    }(this.animElements), this
                }, o["default"].on("raphael.remove", Ut), o["default"].on("raphael.clear", Ut), xt.toString = function() {
                    return "Raphaël’s object"
                }, xt.toFront = function() {
                    if (this.removed) return this;
                    var e, t, r, n = this,
                        a = c._engine.getNode(n),
                        i = n.parent,
                        o = n.followers;
                    for (c._tofront(n, i) && i.canvas.appendChild(a), t = 0, r = o.length; t < r; t++)(e = o[t]).stalk && e.el[e.stalk](n);
                    return n
                }, xt.toBack = function() {
                    if (this.removed) return this;
                    var e, t, r, n = this,
                        a = c._engine.getNode(n),
                        i = n.parent,
                        o = n.followers;
                    for (c._toback(n, i) && i.canvas.insertBefore(a, i.canvas.firstChild), t = 0, r = o.length; t < r; t++)(e = o[t]).stalk && e.el[e.stalk](n);
                    return n
                }, xt.insertAfter = function(e) {
                    if (this.removed) return this;
                    var t, r, n, a = this,
                        i = c._engine.getNode(a),
                        o = c._engine.getLastNode(e),
                        s = e.parent.canvas,
                        l = a.followers;
                    for (o.nextSibling ? s.insertBefore(i, o.nextSibling) : s.appendChild(i), c._insertafter(a, e, a.parent, e.parent), r = 0, n = l.length; r < n; r++)(t = l[r]).stalk && t.el[t.stalk](e);
                    return a
                }, xt.insertBefore = function(e) {
                    if (this.removed) return this;
                    var t, r, n, a = this,
                        i = c._engine.getNode(a),
                        o = c._engine.getNode(e),
                        s = a.followers;
                    for (e.parent.canvas.insertBefore(i, o), c._insertbefore(a, e, a.parent, e.parent), a.parent = e.parent, r = 0, n = s.length; r < n; r++)(t = s[r]).stalk && t.el[t.stalk](e);
                    return this
                }, xt.appendChild = function(e) {
                    if (this.removed || "group" !== this.type) return this;
                    var t, r, n, a, i = this.followers;
                    if (e.parent === this) return e.toFront(), this;
                    for (r = c._engine.getNode(e), c._tear(e, e.parent), this.canvas.appendChild(r), e.parent = this, !this.bottom && (this.bottom = e), e.prev = this.top, e.next = null, this.top && (this.top.next = e), this.top = e, n = 0, a = i.length; n < a; n++)(t = i[n]).stalk && t.el[t.stalk](e);
                    return this
                }, xt.appendTo = function(e) {
                    return e.appendChild(this)
                }, xt.removeChild = function(e) {
                    if (this.removed || "group" !== this.type || e.parent !== this) return this;
                    var t = this,
                        r = c._engine.getNode(e),
                        n = t.paper;
                    return c._tear(e, t), n.canvas.appendChild(r), t.parent = n, !n.bottom && (n.bottom = t), t.prev = n.top, n.top && (n.top.next = t), n.top = t, t.next = null, t
                }, c.format = function(e, t) {
                    var r = (0, s.getArrayCopy)(arguments),
                        n = c.is(t, x) ? [0].concat(t) : r;
                    return e && c.is(e, y) && n.length - 1 && (e = e.replace(ge, (function(e, t) {
                        return null == n[++t] ? g : n[t]
                    }))), e || g
                };
                var zt = c.vml ? .5 : 0;
                c.crispBound = (0, s.cacher)((function(e, t, r, n, a) {
                        var i, o = {};
                        return e = e || 0, t = t || 0, r = r || 0, n = n || 0, i = (a = a || 0) % 2 / 2 + zt, o.x = oe(e + i) - i, o.y = oe(t + i) - i, o.width = oe(e + r + i) - i - o.x, o.height = oe(t + n + i) - i - o.y, o["stroke-width"] = a, 0 === o.width && 0 !== r && (o.width = 1), 0 === o.height && 0 !== n && (o.height = 1), o
                    }), c), xt.crisp = function() {
                        var e, t = this,
                            r = t.attrs,
                            n = t.attr();
                        for (e in n = c.crispBound(n.x, n.y, n.width, n.height, n["stroke-width"])) r[e] === n[e] && delete n[e];
                        return t.attr(n)
                    }, c.define = function(e, t, r, n, a, i) {
                        var o, l;
                        if (c.is(e, x))
                            for (o = 0, l = e.length; o < l; o++) c.define(e[o]);
                        else if (c.is(e, w)) c.define(e.name, e[e.name], e.ca, e.fn, e.e, e.data);
                        else if (e && !c.fn[e]) return c.fn[e] = function() {
                            var i, o = (0, s.getArrayCopy)(arguments),
                                l = t.apply(this, o);
                            if (n && c.is(n, w))
                                for (i in n) l[i] = n[i];
                            if (a && c.is(a, w))
                                for (i in a) l[i] && l[i](a[i]);
                            if (r) {
                                if (c.is(r, _)) l.ca[e] = r;
                                else
                                    for (i in r) l.ca[i] = r[i];
                                l.ca[e] && (c._lastArgIfGroup(o, !0), o.length && (o[0][e] ? l.attr.apply(l, o) : l.attr(e, o[0])))
                            }
                            return l
                        }, r && (c.fn[e].ca = r), n && (c.fn[e].fn = n), a && (c.fn[e].e = a), i && (c.fn[e].data = i), c.fn[e]
                    },
                    function(e, t, r) {
                        null == e.readyState && e.addEventListener && (e.addEventListener("DOMContentLoaded", r = function() {
                                e.removeEventListener("DOMContentLoaded", r, !1), e.readyState = "complete"
                            }, !1), e.readyState = "loading"),
                            function n() {
                                /in/.test(e.readyState) ? setTimeout(n, 9) : c.eve("raphael.DOMload")
                            }()
                    }(M), o["default"].on("raphael.DOMload", (function() {
                        u = !0
                    })), c._preload = function(e, t) {
                        var r = N.doc,
                            n = r.createElement("img");
                        n.style.cssText = "position:absolute;left:-9999em;top:-9999em", n.onload = function() {
                            t.call(this), this.onload = null, r.body.removeChild(this)
                        }, n.onerror = function() {
                            r.body.removeChild(this)
                        }, r.body.appendChild(n), n.src = e
                    };
                var Wt = c;
                t["default"] = Wt
            }).call(this, r(6))
        }, function(e, t, r) {
            "use strict";
            (function(e) {
                t.__esModule = !0, t["default"] = void 0;
                var n = r(196),
                    a = function(e) {
                        var t, r, a = "hasOwnProperty",
                            i = /[\.\/]/,
                            o = /\s*,\s*/,
                            s = function(e, t) {
                                return e - t
                            },
                            l = {
                                n: {}
                            },
                            c = function() {
                                for (var e = 0, t = this.length; e < t; e++)
                                    if ("undefined" != typeof this[e]) return this[e]
                            },
                            u = function() {
                                for (var e = this.length; --e;)
                                    if ("undefined" != typeof this[e]) return this[e]
                            },
                            d = Object.prototype.toString,
                            h = String,
                            f = Array.isArray || function(e) {
                                return e instanceof Array || "[object Array]" == d.call(e)
                            };

                        function g(e, a) {
                            var i, o = r,
                                l = (0, n.getArrayCopy)(arguments),
                                d = Array.prototype.slice.call(l, 2),
                                h = g.listeners(e),
                                f = 0,
                                p = [],
                                m = {},
                                v = [],
                                b = t;
                            v.firstDefined = c, v.lastDefined = u, t = e, r = 0;
                            for (var y = 0, x = h.length; y < x; y++) "zIndex" in h[y] && (p.push(h[y].zIndex), h[y].zIndex < 0 && (m[h[y].zIndex] = h[y]));
                            for (p.sort(s); p[f] < 0;)
                                if (i = m[p[f++]], v.push(i.apply(a, d)), r) return r = o, v;
                            for (y = 0; y < x; y++)
                                if ("zIndex" in (i = h[y]))
                                    if (i.zIndex == p[f]) {
                                        if (v.push(i.apply(a, d)), r) break;
                                        do {
                                            if ((i = m[p[++f]]) && v.push(i.apply(a, d)), r) break
                                        } while (i)
                                    } else m[i.zIndex] = i;
                            else if (v.push(i.apply(a, d)), r) break;
                            return r = o, t = b, v
                        }
                        return g._events = l, g.listeners = function(e) {
                            var t, r, n, a, o, s, c, u, d = f(e) ? e : e.split(i),
                                h = l,
                                g = [h],
                                p = [];
                            for (a = 0, o = d.length; a < o; a++) {
                                for (u = [], s = 0, c = g.length; s < c; s++)
                                    for (r = [(h = g[s].n)[d[a]], h["*"]], n = 2; n--;)(t = r[n]) && (u.push(t), p = p.concat(t.f || []));
                                g = u
                            }
                            return p
                        }, g.separator = function(e) {
                            e ? (e = "[" + (e = h(e).replace(/(?=[\.\^\]\[\-])/g, "\\")) + "]", i = new RegExp(e)) : i = /[\.\/]/
                        }, g.on = function(e, t) {
                            if ("function" != typeof t) return function() {};
                            for (var r = f(e) ? f(e[0]) ? e : [e] : h(e).split(o), n = 0, a = r.length; n < a; n++) ! function(e) {
                                for (var r, n = f(e) ? e : h(e).split(i), a = l, o = 0, s = n.length; o < s; o++) a = (a = a.n).hasOwnProperty(n[o]) && a[n[o]] || (a[n[o]] = {
                                    n: {}
                                });
                                for (a.f = a.f || [], o = 0, s = a.f.length; o < s; o++)
                                    if (a.f[o] == t) {
                                        r = !0;
                                        break
                                    }!r && a.f.push(t)
                            }(r[n]);
                            return function(e) {
                                +e == +e && (t.zIndex = +e)
                            }
                        }, g.f = function(e) {
                            var t = (0, n.getArrayCopy)(arguments),
                                r = [].slice.call(t, 1);
                            return function() {
                                g.apply(null, [e, null].concat(r).concat([].slice.call(t, 0)))
                            }
                        }, g.stop = function() {
                            r = 1
                        }, g.nt = function(e) {
                            var r = f(t) ? t.join(".") : t;
                            return e ? new RegExp("(?:\\.|\\/|^)" + e + "(?:\\.|\\/|$)").test(r) : r
                        }, g.nts = function() {
                            return f(t) ? t : t.split(i)
                        }, g.off = g.unbind = function(e, t) {
                            if (e) {
                                var r = f(e) ? f(e[0]) ? e : [e] : h(e).split(o);
                                if (r.length > 1)
                                    for (var n = 0, s = r.length; n < s; n++) g.off(r[n], t);
                                else {
                                    r = f(e) ? e : h(e).split(i);
                                    var c, u, d, p, m, v = [l],
                                        b = [];
                                    for (n = 0, s = r.length; n < s; n++)
                                        for (p = 0; p < v.length; p += d.length - 2) {
                                            if (d = [p, 1], c = v[p].n, "*" != r[n]) c[r[n]] && (d.push(c[r[n]]), b.unshift({
                                                n: c,
                                                name: r[n]
                                            }));
                                            else
                                                for (u in c) c[a](u) && (d.push(c[u]), b.unshift({
                                                    n: c,
                                                    name: u
                                                }));
                                            v.splice.apply(v, d)
                                        }
                                    for (n = 0, s = v.length; n < s; n++)
                                        for (c = v[n]; c.n;) {
                                            if (t) {
                                                if (c.f) {
                                                    for (p = 0, m = c.f.length; p < m; p++)
                                                        if (c.f[p] == t) {
                                                            c.f.splice(p, 1);
                                                            break
                                                        }!c.f.length && delete c.f
                                                }
                                                for (u in c.n)
                                                    if (c.n[a](u) && c.n[u].f) {
                                                        var y = c.n[u].f;
                                                        for (p = 0, m = y.length; p < m; p++)
                                                            if (y[p] == t) {
                                                                y.splice(p, 1);
                                                                break
                                                            }!y.length && delete c.n[u].f
                                                    }
                                            } else
                                                for (u in delete c.f, c.n) c.n[a](u) && c.n[u].f && delete c.n[u].f;
                                            c = c.n
                                        }
                                    e: for (n = 0, s = b.length; n < s; n++) {
                                        for (u in (c = b[n]).n[c.name].f) continue e;
                                        for (u in c.n[c.name].n) continue e;
                                        delete c.n[c.name]
                                    }
                                }
                            } else g._events = l = {
                                n: {}
                            }
                        }, g.once = function(e, t) {
                            return g.on(e, (function r() {
                                return g.off(e, r), t.apply(this, arguments)
                            }))
                        }, g.version = "0.5.3", g.toString = function() {
                            return "You are running Eve 0.5.3"
                        }, e.eve = g, g
                    }("undefined" != typeof window ? window : void 0 !== e ? e : null);
                t["default"] = a
            }).call(this, r(6))
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(223)),
                i = {
                    extension: function(e) {
                        (0, a["default"])(e.getDep("redraphael", "plugin"))
                    },
                    name: "redraphaelSvg",
                    type: "plugin",
                    requiresFusionCharts: !0
                };
            t["default"] = i
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                if (e.svg) {
                    var t = "hasOwnProperty",
                        r = "vertical-align",
                        a = "function",
                        i = {
                            visibility: "hidden",
                            "font-size": "0px"
                        },
                        o = String,
                        s = parseFloat,
                        l = parseInt,
                        c = {
                            top: 0,
                            bottom: -1,
                            middle: -.5
                        },
                        u = e._g.win.navigator,
                        d = !!document.documentMode,
                        h = Math,
                        f = h.max,
                        g = h.abs,
                        p = h.pow,
                        m = h.sqrt,
                        v = /^xlink:/,
                        b = /[, ]+/,
                        y = /\n|<br\s*?\/?>/i,
                        x = /&lt|&gt|&quot|&#039|&#034|<br/i,
                        w = /&nbsp;|&#160;|&#xA0;/g,
                        C = Array.prototype.shift,
                        _ = !(!/AppleWebKit/.test(u.userAgent) || /Chrome/.test(u.userAgent) && !(u.appVersion.match(/Chrome\/(\d+)\./)[1] < 29)),
                        k = e.eve,
                        S = "",
                        E = " ",
                        A = "http://www.w3.org/1999/xlink",
                        T = "http://www.w3.org/2000/svg",
                        N = (!!u.platform && /iPad|iPhone|iPod/.test(u.platform), {
                            block: "M5,0 0,2.5 5,5z",
                            classic: "M5,0 0,2.5 5,5 3.5,3 3.5,2z",
                            diamond: "M2.5,0 5,2.5 2.5,5 0,2.5z",
                            open: "M6,1 1,3.5 6,6",
                            oval: "M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"
                        }),
                        M = {
                            speed: "optimizeSpeed",
                            crisp: "crispEdges",
                            precision: "geometricPrecision"
                        },
                        D = u.userAgent.toLowerCase(),
                        F = !(!(ie = -1 != D.indexOf("msie") && parseInt(D.split("msie")[1])) || 9 !== ie),
                        I = e.supportsPointer,
                        L = e.supportsTouch,
                        O = {},
                        R = function(t, r, n, a) {
                            e._preload(n[1], (function() {
                                var e = this.offsetWidth,
                                    n = this.offsetHeight;
                                U(t, {
                                    width: e,
                                    height: n
                                }), U(r, {
                                    width: e,
                                    height: n
                                }), a.safari()
                            }))
                        },
                        P = function(e, t) {
                            if (t)
                                for (var r in t) e[r] = t[r]
                        },
                        V = {
                            elementInfo: []
                        },
                        B = e._g.doc,
                        j = (e._g.win, {
                            mouseover: "touchstart",
                            mousedown: "touchstart",
                            mouseup: "touchend",
                            mousemove: "touchmove",
                            mouseout: "touchend"
                        }),
                        H = {
                            "accent-height": !0,
                            accumulate: !0,
                            additive: !0,
                            "alignment-baseline": !0,
                            alphabetic: !0,
                            amplitude: !0,
                            "arabic-form": !0,
                            ascent: !0,
                            azimuth: !0,
                            "baseline-shift": !0,
                            bbox: !0,
                            begin: !0,
                            bias: !0,
                            by: !0,
                            "cap-height": !0,
                            "class": !0,
                            clip: !0,
                            "clip-path": !0,
                            "clip-rule": !0,
                            color: !0,
                            "color-interpolation": !0,
                            "color-interpolation-filters": !0,
                            "color-profile": !0,
                            "color-rendering": !0,
                            cursor: !0,
                            cx: !0,
                            cy: !0,
                            d: !0,
                            decelerate: !0,
                            descent: !0,
                            direction: !0,
                            display: !0,
                            divisor: !0,
                            "dominant-baseline": !0,
                            dur: !0,
                            dx: !0,
                            dy: !0,
                            elevation: !0,
                            "enable-background": !0,
                            end: !0,
                            exponent: !0,
                            fill: !0,
                            "fill-opacity": !0,
                            "fill-rule": !0,
                            filter: !0,
                            "flood-color": !0,
                            "flood-opacity": !0,
                            "font-family": !0,
                            "font-size": !0,
                            "font-size-adjust": !0,
                            "font-stretch": !0,
                            "font-style": !0,
                            "font-variant": !0,
                            "font-weight": !0,
                            format: !0,
                            fr: !0,
                            from: !0,
                            fx: !0,
                            fy: !0,
                            g1: !0,
                            g2: !0,
                            "glyph-name": !0,
                            "glyph-orientation-horizontal": !0,
                            "glyph-orientation-vertical": !0,
                            hanging: !0,
                            height: !0,
                            "horiz-adv-x": !0,
                            "horiz-origin-x": !0,
                            href: !0,
                            hreflang: !0,
                            id: !0,
                            ideographic: !0,
                            "image-rendering": !0,
                            in2: !0,
                            "in": !0,
                            intercept: !0,
                            k1: !0,
                            k2: !0,
                            k3: !0,
                            k4: !0,
                            k: !0,
                            kerning: !0,
                            lang: !0,
                            "letter-spacing": !0,
                            "lighting-color": !0,
                            local: !0,
                            "marker-end": !0,
                            "marker-mid": !0,
                            "marker-start": !0,
                            mask: !0,
                            mathematical: !0,
                            max: !0,
                            media: !0,
                            method: !0,
                            min: !0,
                            mode: !0,
                            name: !0,
                            offset: !0,
                            opacity: !0,
                            operator: !0,
                            order: !0,
                            orient: !0,
                            orientation: !0,
                            origin: !0,
                            overflow: !0,
                            "overline-position": !0,
                            "overline-thickness": !0,
                            "paint-order": !0,
                            "panose-1": !0,
                            path: !0,
                            ping: !0,
                            "pointer-events": !0,
                            points: !0,
                            r: !0,
                            radius: !0,
                            rel: !0,
                            "rendering-intent": !0,
                            restart: !0,
                            result: !0,
                            rotate: !0,
                            rx: !0,
                            ry: !0,
                            scale: !0,
                            seed: !0,
                            "shape-rendering": !0,
                            slope: !0,
                            spacing: !0,
                            speed: !0,
                            stemh: !0,
                            stemv: !0,
                            "stop-color": !0,
                            "stop-opacity": !0,
                            "strikethrough-position": !0,
                            "strikethrough-thickness": !0,
                            string: !0,
                            stroke: !0,
                            "stroke-dasharray": !0,
                            "stroke-dashoffset": !0,
                            "stroke-linecap": !0,
                            "stroke-linejoin": !0,
                            "stroke-miterlimit": !0,
                            "stroke-opacity": !0,
                            "stroke-width": !0,
                            style: !0,
                            tabindex: !0,
                            target: !0,
                            "text-anchor": !0,
                            "text-decoration": !0,
                            "text-rendering": !0,
                            to: !0,
                            transform: !0,
                            type: !0,
                            u1: !0,
                            u2: !0,
                            "underline-position": !0,
                            "underline-thickness": !0,
                            unicode: !0,
                            "unicode-bidi": !0,
                            "unicode-range": !0,
                            "units-per-em": !0,
                            "v-alphabetic": !0,
                            "v-hanging": !0,
                            "v-ideographic": !0,
                            "v-mathematical": !0,
                            values: !0,
                            "vector-effect": !0,
                            version: !0,
                            "vert-adv-y": !0,
                            "vert-origin-x": !0,
                            "vert-origin-y": !0,
                            visibility: !0,
                            width: !0,
                            widths: !0,
                            "word-spacing": !0,
                            "writing-mode": !0,
                            x1: !0,
                            x2: !0,
                            x: !0,
                            "x-height": !0,
                            "xlink:actuate": !0,
                            "xlink:arcrole": !0,
                            "xlink:href": !0,
                            "xlink:role": !0,
                            "xlink:show": !0,
                            "xlink:title": !0,
                            "xlink:type": !0,
                            "xml:base": !0,
                            "xml:lang": !0,
                            "xml:space": !0,
                            y1: !0,
                            y2: !0,
                            y: !0,
                            z: !0
                        };
                    L && B.addEventListener(I ? "pointerover" : "touchstart", (function(e) {
                        if (V.srcElement && V.srcElement !== (e.srcElement || e.target)) {
                            var t, r, n, a = (t = V.elementInfo).length;
                            for (n = 0; n < a; n++)(r = t[n]).callback.call(r.el, e)
                        }
                        V = {
                            elementInfo: []
                        }
                    }), !0), e.toString = function() {
                        return "Your browser supports SVG.\nYou are running Raphaël " + this.version
                    }, e._url = S;
                    var G = function(e, t, r) {
                            void 0 === r && (r = "fill");
                            var n = "fill" === r ? e.gradient : e["stroke-gradient"];
                            if (n) {
                                if (n === t) return;
                                n.refCount--, n.refCount || n.parentNode.removeChild(n), "fill" === r ? delete e.gradient : delete e["stroke-gradient"]
                            }
                            t && ("fill" === r ? e.gradient = t : e["stroke-gradient"] = t, t.refCount++)
                        },
                        U = e._createNode = function(t, r) {
                            var n, a;
                            if ("string" == typeof t && (t = e._g.doc.createElementNS(T, t)), r)
                                for (n in r) a = F ? o(r[n]) : r[n], v.test(n) ? t.setAttributeNS(A, n.replace(v, S), a) : t.setAttribute(n, a);
                            return t
                        },
                        z = {
                            userSpaceOnUse: "userSpaceOnUse",
                            objectBoundingBox: "objectBoundingBox"
                        },
                        W = {
                            pad: "pad",
                            redlect: "reflect",
                            repeat: "repeat"
                        },
                        X = function(t, r, n) {
                            var a;
                            if (void 0 === n && (n = "fill"), !t.paper || !t.paper.defs) return 0;
                            var i, l, c, u, d, v, b = "linear",
                                y = t.paper,
                                x = e.getElementID((y.id + "-" + r).replace(/[()\s%:,\xb0#]/g, "_")),
                                w = .5,
                                C = .5,
                                _ = t.node,
                                k = _.style,
                                E = e._g.doc.getElementById(x);
                            if (!E) {
                                if (r = (r = o(r).replace(e._radial_gradient, (function(e, t) {
                                        b = "radial", t = t ? t.split(",") : [], u = t[5], d = t[6];
                                        var r, n, a = t[0],
                                            o = t[1],
                                            h = t[2],
                                            f = t[3],
                                            g = t[4],
                                            v = a && o;
                                        return h && (i = /%/.test(h) ? h : s(h)), u === z.userSpaceOnUse ? (v && (w = a, C = o), f && g && (l = f, c = g, v || (w = l, C = c)), S) : (v && (w = s(a), r = 2 * ((C = s(o)) > .5) - 1, (n = p(w - .5, 2)) + p(C - .5, 2) > .25 && n < .25 && (C = m(.25 - n) * r + .5) && .5 !== C && (C = C.toFixed(5) - 1e-5 * r)), f && g && (l = s(f), r = 2 * ((c = s(g)) > .5) - 1, (n = p(l - .5, 2)) + p(c - .5, 2) > .25 && n < .25 && (c = m(.25 - n) * r + .5) && .5 !== c && (c = c.toFixed(5) - 1e-5 * r), v || (w = l, C = c)), S)
                                    }))).split(/\s*-\s*/), "linear" === b) {
                                    var A, T = r.shift(),
                                        N = T.match(/\((.*)\)/);
                                    if (N = N && N[1] && N[1].split(/\s*,\s*/), T = -s(T), isNaN(T)) return null;
                                    N && N.length ? (N[0] in z ? (u = N.shift(), N[0] in W && (d = N.shift())) : (N[4] && (u = N[4]), N[5] && (d = N[5])), v = [N[0] || "0%", N[1] || "0%", N[2] || "100%", N[3] || "0%"]) : (v = [0, 0, h.cos(e.rad(T)), h.sin(e.rad(T))], A = 1 / (f(g(v[2]), g(v[3])) || 1), v[2] *= A, v[3] *= A, v[2] < 0 && (v[0] = -v[2], v[2] = 0), v[3] < 0 && (v[1] = -v[3], v[3] = 0))
                                }
                                var M = e._parseDots(r);
                                if (!M) return null;
                                (E = U(b + "Gradient", {
                                    id: x
                                })).refCount = 0, u in z && E.setAttribute("gradientUnits", o(u)), d in W && E.setAttribute("spreadMethod", o(d)), "radial" === b ? (i !== undefined && E.setAttribute("r", o(i)), l !== undefined && c !== undefined && (E.setAttribute("cx", o(l)), E.setAttribute("cy", o(c))), E.setAttribute("fx", o(w)), E.setAttribute("fy", o(C))) : U(E, {
                                    x1: v[0],
                                    y1: v[1],
                                    x2: v[2],
                                    y2: v[3]
                                });
                                for (var D = 0, F = M.length; D < F; D++) E.appendChild(U("stop", {
                                    offset: M[D].offset ? M[D].offset : D ? "100%" : "0%",
                                    "stop-color": M[D].color || "#fff",
                                    "stop-opacity": M[D].opacity === undefined ? 1 : M[D].opacity
                                }));
                                y.defs.appendChild(E)
                            }
                            return G(t, E, n), U(_, ((a = {})[n] = "url('" + e._url + "#" + x + "')", a[n + "-opacity"] = 1, a)), k.fill = S, 1
                        },
                        $ = function(e) {
                            var t = e.getBBox(1);
                            U(e.pattern, {
                                patternTransform: e.matrix.invert() + " translate(" + t.x + "," + t.y + ")"
                            })
                        },
                        Y = function(r, n, a) {
                            if ("path" == r.type) {
                                for (var i, s, l, c, u, d = o(n).toLowerCase().split("-"), h = r.paper, f = a ? "end" : "start", g = r.node, p = r.attrs, m = p["stroke-width"], v = d.length, b = "classic", y = 3, x = 3, w = 5; v--;) switch (d[v]) {
                                    case "block":
                                    case "classic":
                                    case "oval":
                                    case "diamond":
                                    case "open":
                                    case "none":
                                        b = d[v];
                                        break;
                                    case "wide":
                                        x = 5;
                                        break;
                                    case "narrow":
                                        x = 2;
                                        break;
                                    case "long":
                                        y = 5;
                                        break;
                                    case "short":
                                        y = 2
                                }
                                if ("open" == b ? (y += 2, x += 2, w += 2, l = 1, c = a ? 4 : 1, u = {
                                        fill: "none",
                                        stroke: p.stroke
                                    }) : (c = l = y / 2, u = {
                                        fill: p.stroke,
                                        stroke: "none"
                                    }), r._.arrows ? a ? (r._.arrows.endPath && O[r._.arrows.endPath]--, r._.arrows.endMarker && O[r._.arrows.endMarker]--) : (r._.arrows.startPath && O[r._.arrows.startPath]--, r._.arrows.startMarker && O[r._.arrows.startMarker]--) : r._.arrows = {}, "none" != b) {
                                    var C = "raphael-marker-" + b,
                                        _ = "raphael-marker-" + f + b + y + x + "-obj" + r.id;
                                    e._g.doc.getElementById(C) ? O[C]++ : (h.defs.appendChild(U(U("path"), {
                                        "stroke-linecap": "round",
                                        d: N[b],
                                        id: C
                                    })), O[C] = 1);
                                    var k, E = e._g.doc.getElementById(_);
                                    E ? (O[_]++, k = E.getElementsByTagName("use")[0]) : (E = U(U("marker"), {
                                        id: _,
                                        markerHeight: x,
                                        markerWidth: y,
                                        orient: "auto",
                                        refX: c,
                                        refY: x / 2
                                    }), k = U(U("use"), {
                                        "xlink:href": "#" + C,
                                        transform: (a ? "rotate(180 " + y / 2 + " " + x / 2 + ") " : S) + "scale(" + y / w + "," + x / w + ")",
                                        "stroke-width": (1 / ((y / w + x / w) / 2)).toFixed(4)
                                    }), E.appendChild(k), h.defs.appendChild(E), O[_] = 1), U(k, u);
                                    var A = l * ("diamond" != b && "oval" != b);
                                    a ? (i = r._.arrows.startdx * m || 0, s = e.getTotalLength(p.path) - A * m) : (i = A * m, s = e.getTotalLength(p.path) - (r._.arrows.enddx * m || 0)), (u = {})["marker-" + f] = "url('" + e._url + "#" + _ + "')", (s || i) && (u.d = e.getSubpath(p.path, i, s)), U(g, u), r._.arrows[f + "Path"] = C, r._.arrows[f + "Marker"] = _, r._.arrows[f + "dx"] = A, r._.arrows[f + "Type"] = b, r._.arrows[f + "String"] = n
                                } else a ? (i = r._.arrows.startdx * m || 0, s = e.getTotalLength(p.path) - i) : (i = 0, s = e.getTotalLength(p.path) - (r._.arrows.enddx * m || 0)), r._.arrows[f + "Path"] && U(g, {
                                    d: e.getSubpath(p.path, i, s)
                                }), delete r._.arrows[f + "Path"], delete r._.arrows[f + "Marker"], delete r._.arrows[f + "dx"], delete r._.arrows[f + "Type"], delete r._.arrows[f + "String"];
                                for (u in O)
                                    if (O[t](u) && !O[u]) {
                                        var T = e._g.doc.getElementById(u);
                                        T && T.parentNode.removeChild(T)
                                    }
                            }
                        },
                        q = {
                            "": ["none"],
                            none: ["none"],
                            "-": [3, 1],
                            ".": [1, 1],
                            "-.": [3, 1, 1, 1],
                            "-..": [3, 1, 1, 1, 1, 1],
                            ". ": [1, 3],
                            "- ": [4, 3],
                            "--": [8, 3],
                            "- .": [4, 3, 1, 3],
                            "--.": [8, 3, 1, 3],
                            "--..": [8, 3, 1, 3, 1, 3]
                        },
                        K = function(t, r, n) {
                            if (r !== undefined) {
                                var a, i, o, s, l, c = q[r.toLowerCase && r.toLowerCase()];
                                if (r = c || [].concat(r), e.is(r, "array")) {
                                    if (o = {
                                            round: i = n["stroke-width"] || t.attrs["stroke-width"] || 1,
                                            square: i,
                                            butt: 0
                                        }[n["stroke-linecap"] || t.attrs["stroke-linecap"]] || 0, s = r.length, l = c ? i : 1, "none" === r[0]) a = r;
                                    else
                                        for (a = []; s--;) a[s] = r[s] * l + (s % 2 ? 1 : -1) * o, a[s] <= 0 && (a[s] = .01 + (i <= 1 ? o : 0)), isNaN(a[s]) && (a[s] = 0);
                                    return {
                                        "stroke-dasharray": a.join(",")
                                    }
                                }
                            }
                        },
                        J = e._setFillAndStroke = function(r, a) {
                            if (r.paper.canvas) {
                                var i, s, c, u, d, h, p = r.node,
                                    m = r.attrs,
                                    v = r.paper,
                                    y = {},
                                    x = {},
                                    w = {
                                        "clip-rect": !0
                                    };
                                for (s in "image" === r.type && (0, n.loadRefImage)(r, a), a)
                                    if (s in e._availableAttrs)
                                        if ((c = a[s]) === S && s in m) delete m[s], p.removeAttribute("src" === s ? "href" : s);
                                        else if (null !== c || w[s]) switch (m[s] = c, s) {
                                    case "blur":
                                        r.blur(c);
                                        break;
                                    case "href":
                                    case "title":
                                    case "target":
                                        var C = p.parentNode;
                                        if ("a" !== C.tagName.toLowerCase()) {
                                            if (c === S) break;
                                            var k = U("a");
                                            k.raphael = !0, k.raphaelid = p.raphaelid, C.insertBefore(k, p), k.appendChild(p), C = k
                                        }
                                        "target" === s ? C.setAttributeNS(A, "show", "blank" === c ? "new" : c) : C.setAttributeNS(A, s, c), p.titleNode = C;
                                        break;
                                    case "cursor":
                                        x.cursor = c;
                                        break;
                                    case "transform":
                                        r.transform(c);
                                        break;
                                    case "rotation":
                                        e.is(c, "array") ? r.rotate.apply(r, c) : r.rotate(c);
                                        break;
                                    case "arrow-start":
                                        Y(r, c);
                                        break;
                                    case "arrow-end":
                                        Y(r, c, 1);
                                        break;
                                    case "clip-path":
                                        u = !0;
                                    case "clip-rect":
                                        if (h = !u && o(c).split(b), r._.clipispath = !!u, u || 4 === h.length) {
                                            r.clip && r.clip.parentNode.parentNode.removeChild(r.clip.parentNode);
                                            var E = U(u ? "path" : "rect");
                                            (i = U("clipPath")).id = e.getElementID(e.createUUID()), U(E, u ? {
                                                d: c ? m["clip-path"] = e._pathToAbsolute(c) : e._availableAttrs.path,
                                                fill: "none"
                                            } : {
                                                x: h[0],
                                                y: h[1],
                                                width: h[2],
                                                height: h[3],
                                                transform: r.matrix.invert()
                                            }), i.appendChild(E), v.defs.appendChild(i), y["clip-path"] = "url('" + e._url + "#" + i.id + "')", r.clip = E
                                        }
                                        if (!c) {
                                            var T = p.getAttribute("clip-path");
                                            if (T) {
                                                var N = e._g.doc.getElementById(T.replace(/(^url\(#|\)$)/g, S));
                                                N && N.parentNode.removeChild(N), y["clip-path"] = S, 11 === document.documentMode && p.removeAttribute("clip-path"), delete r.clip
                                            }
                                        }
                                        break;
                                    case "path":
                                        "path" === r.type && (y.d = c ? m.path = e._stopabsolutePath ? e.sanitizePath(c) : e._pathToAbsolute(c) : e._availableAttrs.path, r._.dirty = 1, r._.arrows && ("startString" in r._.arrows && Y(r, r._.arrows.startString), "endString" in r._.arrows && Y(r, r._.arrows.endString, 1)));
                                        break;
                                    case "width":
                                        if (y[s] = c, r._.dirty = 1, !m.fx) break;
                                        s = "x", c = m.x;
                                    case "x":
                                        m.fx && (c = -m.x - (m.width || 0));
                                    case "rx":
                                        if ("rx" === s && "rect" === r.type) break;
                                    case "cx":
                                        y[s] = c, r.pattern && $(r), r._.dirty = 1;
                                        break;
                                    case "height":
                                        if (y[s] = c, r._.dirty = 1, !m.fy) break;
                                        s = "y", c = m.y;
                                    case "y":
                                        if ("text" === r.type) break;
                                        m.fy && (c = -m.y - (m.height || 0));
                                    case "ry":
                                        if ("ry" === s && "rect" === r.type) break;
                                    case "cy":
                                        y[s] = c, r.pattern && $(r), r._.dirty = 1;
                                        break;
                                    case "r":
                                        "rect" === r.type ? y.rx = y.ry = c : y[s] = c, r._.dirty = 1;
                                        break;
                                    case "src":
                                        "image" === r.type && p.setAttributeNS(A, "href", c);
                                        break;
                                    case "stroke-width":
                                        1 === r._.sx && 1 === r._.sy || (c /= f(g(r._.sx), g(r._.sy)) || 1), v._vbSize && (c *= v._vbSize), _ && 0 === c && (c = 1e-6), y[s] = c, !a["stroke-dasharray"] && m["stroke-dasharray"] && "" !== a["stroke-dasharray"] && P(y, K(r, m["stroke-dasharray"], a)), r._.arrows && ("startString" in r._.arrows && e.addArrow && e.addArrow(r, r._.arrows.startString), "endString" in r._.arrows && e.addArrow && e.addArrow(r, r._.arrows.endString, 1));
                                        break;
                                    case "stroke-dasharray":
                                        P(y, K(r, c, a));
                                        break;
                                    case "fill":
                                        if (e._ISURL.test(c)) {
                                            d = c.split(e._ISURL), i = U("pattern");
                                            var D = U("image");
                                            i.id = e.getElementID(e.createUUID()), U(i, {
                                                x: 0,
                                                y: 0,
                                                patternUnits: "userSpaceOnUse",
                                                height: 1,
                                                width: 1
                                            }), U(D, {
                                                x: 0,
                                                y: 0,
                                                "xlink:href": d[1]
                                            }), i.appendChild(D), R(i, D, d, v), v.defs.appendChild(i), y.fill = "url('" + e._url + d[1] + "')", r.pattern = i, r.pattern && $(r);
                                            break
                                        }
                                        var F = e.getRGB(c);
                                        if (F.error) {
                                            if (("circle" === r.type || "ellipse" === r.type || "r" !== o(c).charAt()) && X(r, c)) {
                                                m.gradient = c;
                                                break
                                            }
                                        } else delete a.gradient, delete m.gradient, !e.is(m["fill-opacity"], "undefined") && e.is(a["fill-opacity"], "undefined") && (y["fill-opacity"] = m["fill-opacity"]), r.gradient && G(r);
                                        F[t]("opacity") ? (y["fill-opacity"] = F.opacity > 1 ? F.opacity / 100 : F.opacity, r._.fillOpacityDirty = !0) : r._.fillOpacityDirty && e.is(m["fill-opacity"], "undefined") && e.is(a["fill-opacity"], "undefined") && (p.removeAttribute("fill-opacity"), delete r._.fillOpacityDirty);
                                    case "stroke":
                                        (F = e.getRGB(c)).error ? "circle" !== r.type && "ellipse" !== r.type && "r" === o(c).charAt() || X(r, c, "stroke") : (y[s] = F.hex, G(r, void 0, s)), "stroke" === s && (F[t]("opacity") ? (y["stroke-opacity"] = F.opacity > 1 ? F.opacity / 100 : F.opacity, r._.strokeOpacityDirty = !0) : r._.strokeOpacityDirty && e.is(m["stroke-opacity"], "undefined") && e.is(a["stroke-opacity"], "undefined") && (p.removeAttribute("stroke-opacity"), delete r._.strokeOpacityDirty), r._.arrows && ("startString" in r._.arrows && Y(r, r._.arrows.startString), "endString" in r._.arrows && Y(r, r._.arrows.endString, 1)));
                                        break;
                                    case "gradient":
                                        ("circle" === r.type || "ellipse" === r.type || "r" !== o(c).charAt()) && X(r, c);
                                        break;
                                    case "visibility":
                                        "hidden" === c ? r.hide() : r.show();
                                        break;
                                    case "opacity":
                                        c = c > 1 ? c / 100 : c, y.opacity = c;
                                        break;
                                    case "fill-opacity":
                                        c = c > 1 ? c / 100 : c, y["fill-opacity"] = c;
                                        break;
                                    case "shape-rendering":
                                        r.attrs[s] = c = M[c] || c || "auto", y[s] = c, p.style.shapeRendering = c;
                                        break;
                                    case "line-height":
                                    case "vertical-align":
                                        break;
                                    default:
                                        "font-size" === s && (c = l(c, 10) + "px"), r._.dirty = 1, y[s] = c, n.dashedAttr2CSSMap[s] && (x[n.dashedAttr2CSSMap[s]] = c)
                                } else s in m && (delete m[s], p.removeAttribute("src" === s ? "href" : s));
                                else s in H && (c === S && s in m ? (delete m[s], p.removeAttribute(s)) : (m[s] = c, x[s] = c));
                                for (s in x) p.style[s] = x[s];
                                for (s in y) p.setAttribute(s, y[s]);
                                "text" === r.type && !a["_do-not-tune"] && Q(r, a)
                            }
                        },
                        Z = e._updateFollowers = function() {
                            var e, t, r, a = (0, n.getArrayCopy)(arguments),
                                i = C.call(a),
                                o = C.call(a);
                            for (e = 0, t = i.followers.length; e < t; e++)(r = i.followers[e].el)[o].apply(r, a)
                        },
                        Q = function(n, a) {
                            if ("text" === n.type && (a[t]("text") || a[t]("font") || a[t]("font-size") || a[t]("x") || a[t]("y") || a[t]("line-height") || a[t](r) || a[t]("textpath"))) {
                                var l, u, h, f, g, p, m, v, b, C, _, k, A = n.attrs,
                                    T = n.paper.defs,
                                    N = n.parent,
                                    M = n.node,
                                    D = n._oldAttr = n._oldAttr || {
                                        baseLineDiff: 8,
                                        valign: -.5
                                    },
                                    F = s(a["line-height"] || A["line-height"]),
                                    I = a.direction || A.direction || N && N.attrs && N.attrs.direction || D.direction || "initial",
                                    L = !1,
                                    O = !1,
                                    R = d || "rtl" !== I ? 1 : 2,
                                    P = !1,
                                    V = !1,
                                    B = function(e) {
                                        return e && w.test(e)
                                    },
                                    j = function(e) {
                                        return e.replace(/\s+/g, " ").trim().replace(w, " ")
                                    };
                                if (a[t]("textpath")) {
                                    var H, G, z, W = e.getElementID(e.createUUID()),
                                        X = a.textpath,
                                        $ = 0,
                                        Y = {};
                                    for (var q in X) X.hasOwnProperty(q) && ("path" !== q || "href" in X ? Y[q] = X[q] : D.textPathStr !== X[q] ? (n.textPathDef ? (n.textPathDef.setAttribute("d", X[q] || S), Y.href = "#" + n.textPathDef.getAttribute("id"), Y["xlink:href"] = "#" + n.textPathDef.getAttribute("id")) : (n.textPathDef = T.appendChild(U("path", {
                                        id: W,
                                        d: X[q] || S
                                    })), Y.href = "#" + W, Y["xlink:href"] = "#" + W), D.textPathStr = X[q]) : (Y.href = "#" + n.textPathDef.getAttribute("id"), Y["xlink:href"] = "#" + n.textPathDef.getAttribute("id")));
                                    for (a[t]("text") ? (z = e._g.doc.createTextNode(a.text || S), D.pathText = A.text = a.text || S) : (z = e._g.doc.createTextNode(D.pathText || D.text || S), D.pathText = D.pathText || D.text || S, delete D.text), a[t](r) ? ("middle" === a[r] ? ($ = .3, D.valign = -.5) : "bottom" === a[r] ? ($ = .7, D.valign = -1) : "top" === a[r] && (D.valign = 0), (G = U("tspan", {
                                            dy: $ + "em"
                                        })).appendChild(z), D.tSpan = G) : !D.tSpan || D.tSpan.textContent !== a.text && "string" == typeof a.text ? ($ = -.5 === D.valign ? .3 : -1 === D.valign ? .7 : 0, (G = U("tspan", {
                                            dy: $ + "em"
                                        })).appendChild(z), D.tSpan = G) : G = D.tSpan, delete D.x, delete D.y, M.removeAttribute("x"), M.removeAttribute("y"), (H = U("textPath", Y)).appendChild(G || z); M.firstChild;) M.removeChild(M.firstChild);
                                    M.appendChild(H)
                                } else {
                                    if (D.direction = I, n.textPathDef && T && (n.textPathDef.parentNode.removeChild(n.textPathDef), delete n.textPathDef), delete D.txtNode, delete D.tSpan, delete D.textPathStr, F || (F = 1.2 * (l = (l = a.fontSize || a["font-size"] || A["font-size"] || N && N.attrs && N.attrs.fontSize) ? l.toString().replace("px", S) : 10)), (a[t]("text") || D.pathText) && (_ = e.is(a.text, "array") ? a.text.join("<br>") : null == a.text ? D.pathText : a.text, delete D.pathText, _ !== D.text && (V = !0, _ && x.test(_) && (_ = _.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;|&#034;/g, '"').replace(/&#039;/g, "'").replace(/&<br\/>lt;|&l<br\/>t;|&lt<br\/>;/g, "<<br/>").replace(/&<br\/>gt;|&g<br\/>t;|&gt<br\/>;/g, "><br/>")), D.text = A.text = _, y.test(_) ? (D.noTSpan && (D.noTSpan = !(k = !0)), g = (m = o(_).split(y)).length) : (k = !0, D.noTSpan = !0, g = 1), D.lineCount !== g && (D.lineCount = g, P = !0))), F !== D.lineHeight && (D.lineHeight = F, D.baseLineDiff = .75 * F, P = !0), k)
                                        for (; M.firstChild;) M.removeChild(M.firstChild);
                                    if (D.lineCount > 1) {
                                        if ("pre" === M.style.whiteSpace && (M.style.whiteSpace = ""), h = {}, D.tspanAttr || (D.tspanAttr = {}, D.tspan0Attr = {}), D.tspanAttr.dy !== D.lineHeight && (D.tspanAttr.dy = h.dy = D.lineHeight, O = !0), a[t]("x") && D.tspanAttr.x !== a.x && (D.tspan0Attr.x = D.tspanAttr.x = h.x = A.x, O = !0), V) {
                                            for (C = M.getElementsByTagName("tspan"), f = 0; f < g; f++) {
                                                if (b = C[f * R]) {
                                                    if (b.innerHTML = S, d)
                                                        for (; b.firstChild;) b.removeChild(b.firstChild);
                                                    O && U(b, f ? h : D.tspan0Attr)
                                                } else b = U("tspan", f ? D.tspanAttr : D.tspan0Attr), M.appendChild(b), d || "rtl" !== I || ((v = U("tspan", i)).appendChild(e._g.doc.createTextNode("i")), M.appendChild(v));
                                                m[f] || (b.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), m[f] = E), B(m[f]) ? (m[f] = j(m[f]), b.style.whiteSpace = "pre") : "pre" === b.style.whiteSpace && (b.style.whiteSpace = ""), b.appendChild(e._g.doc.createTextNode(m[f]))
                                            }
                                            if (p = g * R, C.length > p)
                                                for (f = C.length - 1; f >= p; f -= 1) M.removeChild(C[f])
                                        } else if (O)
                                            for (p = (C = M.getElementsByTagName("tspan")).length, f = 0; f < p; f += R) U(C[f], f ? h : D.tspan0Attr)
                                    } else V && (B(_) ? (_ = j(_), M.style.whiteSpace = "pre") : "pre" === M.style.whiteSpace && (M.style.whiteSpace = ""), M.appendChild(e._g.doc.createTextNode(_)));
                                    a[r] && (u = c[A[r]] || 0) !== D.valign && (D.valign = u, P = !0), P && (D.shift = D.baseLineDiff + D.lineCount * D.lineHeight * D.valign, L = !0), !a.y && 0 !== a.y || D.y === a.y || (D.y = A.y, L = !0), !L || !D.y && 0 !== D.y || !D.shift && 0 !== D.shift || U(M, {
                                        y: Math.round(D.y + D.shift)
                                    })
                                }
                            }
                        },
                        ee = function(t, r, n) {
                            var a = this,
                                i = n || r;
                            /*! dontAppend && */
                            i.canvas && i.canvas.appendChild(t), a.node = a[0] = t, t.raphael = !0, t.raphaelid = a.id = e._oid++, a.matrix = e.matrix(), a.realPath = null, a.attrs = a.attrs || {}, a.followers = a.followers || [], a.paper = r, a.ca = a.customAttributes = a.customAttributes || new r._CustomAttributes, a._ = {
                                transform: [],
                                sx: 1,
                                sy: 1,
                                deg: 0,
                                dx: 0,
                                dy: 0,
                                dirty: 1
                            }, a.parent = i, !i.bottom && (i.bottom = a), a.prev = i.top, i.top && (i.top.next = a), i.top = a, a.next = null
                        },
                        te = function(e, t, r) {
                            var n = r ? "pageY" : "pageX";
                            return Math.abs(t[n] - e[n])
                        },
                        re = e.storeHandlers = function(e, t, r) {
                            e._actualListners || (e._actualListners = []), e._derivedListeners || (e._derivedListeners = []), e._actualListners.push(t), e._derivedListeners.push(r)
                        },
                        ne = function(e, t) {
                            var r, n = e._actualListners.indexOf(t);
                            return -1 !== n && (r = e._derivedListeners[n], e._actualListners.splice(n, 1), e._derivedListeners.splice(n, 1)), r
                        },
                        ae = e.el;
                    ee.prototype = ae, ae.constructor = ee, e._engine.getNode = function(e) {
                        var t = e.node || e[0].node;
                        return t.titleNode || t
                    }, e._engine.getLastNode = function(e) {
                        var t = e.node || e[e.length - 1].node;
                        return t.titleNode || t
                    }, ae.rotate = function(e, t, r) {
                        var n, a = this;
                        return a.removed ? a : (Z(a, "rotate", e, t, r), (e = o(e).split(b)).length - 1 && (t = s(e[1]), r = s(e[2])), e = s(e[0]), null == r && (t = r), null != t && null != r || (t = (n = a.getBBox(1)).x + n.width / 2, r = n.y + n.height / 2), a.transform(a._.transform.concat([
                            ["r", e, t, r]
                        ])), a)
                    }, ae.scale = function(e, t, r, n) {
                        var a, i = this;
                        return i.removed ? i : (Z(i, "scale", e, t, r, n), (e = o(e).split(b)).length - 1 && (t = s(e[1]), r = s(e[2]), n = s(e[3])), e = s(e[0]), null == t && (t = e), null == n && (r = n), null != r && null != n || (a = i.getBBox(1)), r = null == r ? a.x + a.width / 2 : r, n = null == n ? a.y + a.height / 2 : n, i.transform(i._.transform.concat([
                            ["s", e, t, r, n]
                        ])), i)
                    }, ae.translate = function(e, t) {
                        var r = this;
                        return r.removed ? r : (Z(r, "translate", e, t), (e = o(e).split(b)).length - 1 && (t = s(e[1])), e = s(e[0]) || 0, t = +t || 0, r.transform(r._.transform.concat([
                            ["t", e, t]
                        ])), r)
                    }, ae.transform = function(t) {
                        var r, n = this,
                            a = n._;
                        return null == t ? a.transform : (e._extractTransform(n, t), n.clip && !a.clipispath && U(n.clip, {
                            transform: n.matrix.invert()
                        }), n.pattern && $(n), n.node && U(n.node, {
                            transform: n.matrix
                        }), 1 === a.sx && 1 === a.sy || (r = n.attrs["stroke-width"]) && n.attr({
                            "stroke-width": r
                        }), n)
                    }, ae.hide = function() {
                        var e = this;
                        return Z(e, "hide"), !e.removed && e.paper.safari(e.node.style.display = "none"), e
                    }, ae.show = function() {
                        var e = this;
                        return Z(e, "show"), !e.removed && e.paper.safari(e.node.style.display = S), e
                    }, ae.remove = function() {
                        if (!this.removed && this.parent.canvas) {
                            var t, r = this,
                                n = e._engine.getNode(r),
                                i = r.paper,
                                o = i.defs;
                            for (i.__set__ && i.__set__.exclude(r), k.unbind("raphael.*.*." + r.id), r.gradient && o && G(r), r["stroke-gradient"] && o && G(r, void 0, "stroke"), r.textPathDef && o && (r.textPathDef.parentNode.removeChild(r.textPathDef), delete r.textPathDef); t = r.followers.pop();) t.el.remove();
                            for (; t = r.bottom;) t.remove();
                            if (r._drag && r.undrag(), r.events)
                                for (; t = r.events.pop();) t.unbind();
                            for (t in r.parent.canvas.contains(n) && r.parent.canvas.removeChild(n), r.removeData(), delete i._elementsById[r.id], e._tear(r, r.parent), r) r[t] = typeof r[t] === a ? e._removedFactory(t) : null;
                            r.removed = !0
                        }
                    }, ae._getBBox = function() {
                        var e, t, a, i = this,
                            o = i.node,
                            s = {},
                            l = i.attrs,
                            c = "text" === i.type;
                        d && c ? e = (0, n.showRecursively)(i) : "none" === o.style.display && (i.show(), a = !0);
                        try {
                            s = o.getBBox(), c && (s.x === undefined && (s.isCalculated = !0, t = l["text-anchor"], s.x = (l.x || 0) - s.width * ("start" === t ? 0 : "middle" === t ? .5 : 1)), s.y === undefined && (s.isCalculated = !0, t = l[r], s.y = (l.y || 0) - s.height * ("bottom" === t ? 1 : "middle" === t ? .5 : 0)))
                        } catch (u) {} finally {
                            s = s || {}
                        }
                        return d && c ? e && e() : a && i.hide(), s
                    }, ae.attr = function(r, n) {
                        if (this.removed) return this;
                        var i, o, s, l, c, u, d, h, f = this.attrs,
                            g = {},
                            p = this._invokedCa || (this._invokedCa = {}),
                            m = this.ca;
                        if (null == r) {
                            var v = {};
                            for (i in f) f[t](i) && (v[i] = f[i]);
                            return v.gradient && "none" === v.fill && (v.fill = v.gradient) && delete v.gradient, v.transform = this._.transform, v.visibility = "none" === this.node.style.display ? "hidden" : "visible", v
                        }
                        if (null == n) {
                            if (e.is(r, "object")) l = r;
                            else if (e.is(r, "string")) return "fill" === r && "none" === f.fill && f.gradient ? f.gradient : "transform" === r ? this._.transform : "visibility" === r ? "none" === this.node.style.display ? "hidden" : "visible" : r in f ? f[r] : e.is(m[r], a) ? m[r].def : e._availableAttrs[r]
                        } else(l = {})[r] = n;
                        if (!e.stopPartialEventPropagation)
                            for (i in l) k("raphael.attr." + i + "." + this.id, this, l[i], i);
                        for (i in l)
                            if ((h = m[i]) && !p[i] && e.is(h, a)) {
                                for (c in p[i] = !0, u = h.apply(this, [].concat(l[i])), p[i] = !1, u) g[c] = u[c];
                                f[i] = l[i]
                            } else g[i] = l[i];
                        for (J(this, g), o = 0, s = this.followers.length; o < s; o++)(d = this.followers[o]).cb && !d.cb.call(d.el, g, this) || d.el.attr(g);
                        return this
                    }, ae.pinchstart = function(t, r) {
                        var n = this,
                            a = {},
                            i = function(i) {
                                if (i.touches && 2 === i.touches.length) {
                                    var o = i.touches[0],
                                        s = i.touches[1];
                                    n._blockDrag = !0, i && i.preventDefault(), e.makeSelectiveCopy(a, i), a.data = {
                                        finger0: o,
                                        finger1: s,
                                        distanceX: te(o, s),
                                        distanceY: te(o, s, !0)
                                    }, t.call(r || n, a)
                                } else n._blockDrag = !1
                            };
                        re(n, t, i), n.node.addEventListener("touchstart", i)
                    }, ae.unpinchstart = function(e) {
                        var t = ne(this, e);
                        this.__blockDrag = !1, this._pinchDragStarted = !1, t && this.node.removeEventListener("touchstart", t)
                    }, ae.pinchmove = function(t, r) {
                        var n = this,
                            a = {},
                            i = function(i) {
                                if (i.touches && 2 === i.touches.length) {
                                    var o = i.touches[0],
                                        s = i.touches[1];
                                    i && i.preventDefault(), n._pinchDragStarted = !0, e.makeSelectiveCopy(a, i), a.data = {
                                        finger0: o,
                                        finger1: s,
                                        distanceX: te(o, s),
                                        distanceY: te(o, s, !0)
                                    }, t.call(r || n, a)
                                }
                            };
                        re(n, t, i), n.node.addEventListener("touchmove", i)
                    }, ae.unpinchmove = function(e) {
                        var t = ne(this, e);
                        t && this.node.removeEventListener("touchmove", t)
                    }, ae.pinchend = function(e, t) {
                        var r = this,
                            n = function(n) {
                                r._pinchDragStarted && (r._pinchDragStarted = !1, e.call(t || r, n))
                            };
                        re(r, e, n), r.node.addEventListener("touchend", n)
                    }, ae.unpinchend = function(e) {
                        var t = ne(this, e);
                        this._pinchDragStarted = !1, t && this.node.removeEventListener("touchend", t)
                    }, ae.pinch = function(e, t, r) {
                        ae.pinchstart.call(this, e), ae.pinchin.call(this, t), ae.pinchend.call(this, r)
                    }, ae.unpinch = function(e, t, r) {
                        ae.unpinchstart.call(this, e), ae.unpinchin.call(this, t), ae.unpinchend.call(this, r)
                    }, ae.fcwheel = function(t, r) {
                        var n = this,
                            a = {},
                            i = function(i) {
                                i && i.preventDefault(), e.makeSelectiveCopy(a, i), t.call(r || n, a)
                            };
                        re(n, t, i), n.node.addEventListener("wheel", i)
                    }, ae.fcunwheel = function(e) {
                        var t = ne(this, e);
                        t && this.node.removeEventListener("wheel", t)
                    }, ae.on = function(t, r, n) {
                        if (r && t) {
                            var a, i, o = this,
                                s = t.match(/fc-/),
                                l = r;
                            if (this.removed) return this;
                            switch (o._actualListners || (o._actualListners = []), o._derivedListeners || (o._derivedListeners = []), t) {
                                case "fc-dragstart":
                                    return o.drag(null, r), o;
                                case "fc-dragmove":
                                    return o.drag(r), o;
                                case "fc-dragend":
                                    return o.drag(null, null, r), o;
                                case "fc-dbclick":
                                    return o.dbclick(r, n), o;
                                case "fc-pinchstart":
                                    return o.pinchstart(r, n), o;
                                case "fc-pinchmove":
                                    return o.pinchmove(r, n), o;
                                case "fc-pinchend":
                                    return o.pinchend(r, n), o;
                                case "fc-click":
                                    return o.fcclick(r, n), o;
                                case "fc-wheel":
                                    return o.fcwheel(r, n), o
                            }
                            return s && (t = t.replace(/fc-/, "")), s && L && (i = t, t = (I ? e.safePointerEventMapping[t] : j[t]) || t, "mouseout" === i && (l = function(e) {
                                I && L && !e.isPrimary || (V.elementInfo.push({
                                    el: n || o,
                                    callback: r
                                }), V.srcElement = e.srcElement || e.target)
                            }, t = I ? "pointerover" : "touchstart")), this._ && this._.RefImg && ("load" === t || "error" === t) ? (a = this._.RefImg, l = function(e) {
                                !o.removed && r.call(o, e)
                            }) : a = this.node, l === r && (l = function(e) {
                                (!I || !L || e.isPrimary) && r.call(n || o, e)
                            }), o._actualListners.push(r), o._derivedListeners.push(l), a.addEventListener ? a.addEventListener(t, l) : a["on" + t] = l, this
                        }
                    }, ae.off = function(t, r) {
                        var n, a, i, o = r,
                            s = t.match(/fc-/);
                        if (this.removed || !this._actualListners || !t || !r) return this;
                        switch (t) {
                            case "fc-dragstart":
                                return this.undragstart(r), this;
                            case "fc-dragmove":
                                return this.undragmove(r), this;
                            case "fc-dragend":
                                return this.undragend(r), this;
                            case "fc-dbclick":
                                return this.undbclick(r), this;
                            case "fc-pinchstart":
                                return this.unpinchstart(r), this;
                            case "fc-pinchmove":
                                return this.unpinchmove(r), this;
                            case "fc-pinchend":
                                return this.unpinchend(r), this;
                            case "fc-click":
                                return this.fcunclick(r), this;
                            case "fc-wheel":
                                return this.fcunwheel(r), this
                        }
                        return s && (t = t.replace(/fc-/, "")), o = r, s && L && (n = t, t = (I ? e.safePointerEventMapping[t] : j[t]) || t, "mouseout" === n && (t = I ? "pointerover" : "touchstart")), i = this._ && this._.RefImg ? this._.RefImg : this.node, -1 !== (a = this._actualListners.indexOf(o)) && (o = this._derivedListeners[a], this._actualListners.splice(a, 1), this._derivedListeners.splice(a, 1)), i.removeEventListener ? i.removeEventListener(t, o) : i["on" + t] = null, this
                    }, e._engine.path = function(e, t, r) {
                        var n = U("path"),
                            a = new ee(n, e, r);
                        return a.type = "path", t && a.attr(t), a
                    }, e._engine.group = function(e, t, r, n) {
                        var a = U("g"),
                            i = new ee(a, e, r);
                        return i.type = "group", i.canvas = i.node, i.top = i.bottom = null, i._id = t || S, t && (n ? a.setAttribute("class", "raphael-group-" + t) : a.setAttribute("class", "raphael-group-" + i.id + "-" + t)), i
                    }, e._engine.circle = function(e, t, r) {
                        var n = U("circle"),
                            a = new ee(n, e, r);
                        return a.type = "circle", t && a.attr(t), a
                    }, e._engine.rect = function(e, t, r) {
                        var n = U("rect"),
                            a = new ee(n, e, r);
                        return a.type = "rect", t.rx = t.ry = t.r, t && a.attr(t), a
                    }, e._engine.ellipse = function(e, t, r) {
                        var n = U("ellipse"),
                            a = new ee(n, e, r);
                        return a.type = "ellipse", t && a.attr(t), a
                    }, e._engine.image = function(e, t, r) {
                        var n = U("image"),
                            a = new ee(n, e, r, !0);
                        return a._.group = r || e, a.type = "image", n.setAttribute("preserveAspectRatio", "none"), t && a.attr(t), a
                    }, e._engine.text = function(e, t, r, n) {
                        var a = U("text"),
                            i = new ee(a, e, r);
							if (t.text == "FusionCharts Trial") {
							t.text = "Sisplan Sistemas";}
                        return i.type = "text", n && i.css && i.css(n, undefined, !0), "gteste" && i.attr(t), i
                    }, e._engine.setSize = function(e, t) {
                        return this.width = e || this.width, this.height = t || this.height, this.canvas.setAttribute("width", this.width), this.canvas.setAttribute("height", this.height), this._viewBox && this.setViewBox.apply(this, this._viewBox), this
                    }, e._engine.create = function() {
                        var t, r = e._getContainer.apply(0, arguments),
                            n = r && r.container,
                            a = r.x,
                            i = r.y,
                            o = r.width,
                            s = r.height;
                        if (!n) throw new Error("SVG container not found.");
                        var l, c = U("svg"),
                            u = "overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:-moz-none;-khtml-user-select:none;-ms-user-select:none;user-select:none;-o-user-select:none;cursor:default;vertical-align:middle;";
                        return L && (e.isIE10 ? u += "-ms-touch-action:none;" : u += "touch-action:none;"), a = a || 0, i = i || 0, U(c, {
                            height: s = s || 342,
                            version: 1.1,
                            width: o = o || 512,
                            xmlns: T
                        }), 1 === n ? (c.style.cssText = u + "position:absolute;left:" + a + "px;top:" + i + "px", (n = e._g.doc.body).appendChild(c), l = 1) : (c.style.cssText = u + "position:relative", n.firstChild ? n.insertBefore(c, n.firstChild) : n.appendChild(c)), (t = new e._Paper).width = o, t.height = s, t.canvas = c, t.container = n, U(c, {
                            id: "raphael-paper-" + t.id
                        }), t.clear(), t._left = t._top = 0, l && (t.renderfix = function() {}), t.renderfix(), t
                    }, e._engine.setViewBox = function(e, t, r, n, a) {
                        k("raphael.setViewBox", this, this._viewBox, [e, t, r, n, a]);
                        var i, o, s = f(r / this.width, n / this.height),
                            l = this.top,
                            c = a ? "meet" : "xMinYMin";
                        if (null == e ? (this._vbSize && (s = 1), delete this._vbSize, i = "0 0 " + this.width + E + this.height) : (this._vbSize = s, i = e + E + t + E + r + E + n), U(this.canvas, {
                                viewBox: i,
                                preserveAspectRatio: c
                            }), s)
                            for (; l;) o = "stroke-width" in l.attrs ? l.attrs["stroke-width"] : 1, l.attr({
                                "stroke-width": o
                            }), l._.dirty = 1, l._.dirtyT = 1, l = l.prev;
                        return this._viewBox = [e, t, r, n, !!a], this
                    }, e.prototype.detachPaper = function() {
                        !1 !== this._detached && (this.container.removeChild(this.canvas), this._detached = !0)
                    }, e.prototype.attachPaper = function() {
                        this._detached && (this.container.appendChild(this.canvas), this._detached = !1)
                    }, e.prototype.renderfix = function() {
                        var e, t = this.canvas,
                            r = t.style;
                        try {
                            e = t.getScreenCTM() || t.createSVGMatrix()
                        } catch (i) {
                            e = t.createSVGMatrix()
                        }
                        var n = -e.e % 1,
                            a = -e.f % 1;
                        (n || a) && (n && (this._left = (this._left + n) % 1, r.left = this._left + "px"), a && (this._top = (this._top + a) % 1, r.top = this._top + "px"))
                    }, e.prototype._desc = function(t) {
                        var r = this.desc;
                        if (r)
                            for (; r.firstChild;) r.removeChild(r.firstChild);
                        else this.desc = r = U("desc"), this.canvas.appendChild(r);
                        r.appendChild(e._g.doc.createTextNode(e.is(t, "string") ? t : "Created with Red Raphaël " + e.version))
                    }, e.prototype.clear = function() {
                        var e;
                        for (k("raphael.clear", this); e = this.bottom;) e.remove();
                        for (e = this.canvas; e.firstChild;) e.removeChild(e.firstChild);
                        this.bottom = this.top = null, e.appendChild(this.desc = U("desc")), e.appendChild(this.defs = U("defs"))
                    }, e.prototype.remove = function() {
                        var t;
                        for (k("raphael.remove", this); t = this.bottom;) t.remove();
                        for (t in this.defs && this.defs.parentNode.removeChild(this.defs), this.desc && this.desc.parentNode.removeChild(this.desc), this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas), this) this[t] = typeof this[t] === a ? e._removedFactory(t) : null;
                        this.removed = !0
                    }, e.prototype.setHTMLClassName = function() {}
                }
                var ie
            };
            var n = r(196)
        }, function(e, t, r) {
            "use strict";

            function n(e) {
                var t = {
                    data: {}
                };
                if (!e) return t;
                if ("string" == typeof e) try {
                    t.data = JSON.parse(e)
                } catch (r) {
                    t.error = r
                } else t.data = e;
                return t
            }

            function a() {
                return this.getChartData("json")
            }

            function i(e) {
                this.setChartData(e, "json")
            }
            t.__esModule = !0, t["default"] = void 0;
            var o = {
                extension: function(e) {
                    return e && (e.prototype.setJSONData = i), e && (e.prototype.getJSONData = a), {
                        format: "json",
                        toJSON: n,
                        fromJSON: n
                    }
                },
                name: "JSON",
                type: "transcoder",
                requiresFusionCharts: !0
            };
            t["default"] = o
        }, function(e, t, r) {
            "use strict";
            var n = r(187),
                a = r(191);
            t.__esModule = !0, t["default"] = void 0;
            var i = a(r(205)),
                o = n(r(226)),
                s = n(r(227)),
                l = n(r(228)),
                c = n(r(229)),
                u = n(r(230)),
                d = n(r(231)),
                h = n(r(235)),
                f = {
                    oneInAFrame: !0
                },
                g = {
                    extension: function(e) {
                        var t = e.getDep("redraphael", "plugin"),
                            r = {};
                        t.fn._elementFromEvent = function(e) {
                            if (!e || this.removed) return null;
                            var t = e,
                                n = t.srcElement || t.target || (t = t.originalEvent) && (t.srcElement || t.target) || r;
                            return "tspan" === n.nodeName && (n = n.parentNode), this.getById(n.raphaelid)
                        }, t.requestAnimFrame = i["default"].addJob && function(e) {
                            i["default"].addJob(e, i.priorityList.animation, f)
                        }, t.instantRequestAnimFrame = i["default"].addJob && function(e) {
                            i["default"].addJob(e, i.priorityList.instant)
                        }, (0, h["default"])(t), (0, o["default"])(t), (0, s["default"])(t), (0, l["default"])(t), (0, c["default"])(t), (0, u["default"])(t), (0, d["default"])(t)
                    },
                    name: "redraphaelExt",
                    type: "plugin",
                    requiresFusionCharts: !0
                };
            t["default"] = g
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t, r, a = e.eve,
                    i = e._g,
                    o = e.fn,
                    s = e.el,
                    l = /[, ]+/,
                    c = "",
                    u = " ",
                    d = /\B([A-Z]{1})/g,
                    h = "fusioncharts-raphael-stylesheet";
                (r = (t = function(e) {
                    this.styleSheet = c, this.rules = {}, this.ns = e || c
                }).prototype).getSheet = function() {
                    var t = this.node;
                    return this.styleSheet = r.getStyleSheet(h), this.styleSheet || ((t = this.node = i.doc.createElement("style")).setAttribute("id", e.format("raphael-stylesheet-{0}", e._oid++)), t.setAttribute("type", "text/css"), t.setAttribute("title", h), (i.doc.head || i.doc.getElementsByTagName("head")[0]).appendChild(this.node), this.styleSheet = r.getStyleSheet(h)), this.styleSheet
                }, r.getStyleSheet = function(e) {
                    for (var t, r = i.doc.styleSheets, n = r.length; n--;)
                        if ((t = r[n]).title === e) return t
                }, r.applyCSSRule = function(e, t) {
                    var r, n = this.styleSheet;
                    if (!n) {
                        if (!e || !t) return;
                        n = this.getSheet()
                    }
                    r = (n.rules || n.cssRules || {}).length || 0, n.insertRule ? n.insertRule(e + "{" + t + "}", r) : n.addRule && n.addRule(e, t, r)
                }, r.removeCSS = function(e) {
                    var t, r = this.styleSheet,
                        n = r.rules || r.cssRules || {},
                        a = n.length || 0,
                        i = e;
                    for (i = i || this.ns; a--;) t = n[a], new RegExp(i).test(t.selectorText) && (r.removeRule ? r.removeRule(a) : r.deleteRule(a))
                }, r.destroy = function() {
                    this.removeCSS(), delete this.node, delete this.styleSheet, delete this.ns, delete this.rules
                }, r.clear = function() {
                    this.removeCSS(), this.rules = {}
                }, r.add = function(e, t, r) {
                    var n, a = c,
                        i = this.rules[e] || (this.rules[e] = {}),
                        o = r ? c : "\t",
                        s = r ? ":" : ": ";
                    for (n in t)(i[n] = t[n]) && (a += o + n.replace(d, "-$1").toLowerCase() + s + i[n] + ";");
                    this.applyCSSRule(e, a)
                }, r.render = function() {
                    this.setCssText()
                }, r.setCssText = function(e) {
                    var t, r, n = e ? c : "\t",
                        a = e ? ":" : ": ",
                        i = c,
                        o = c;
                    for (t in this.rules) {
                        for (r in i = c, o = t.replace(/(^|\,)/g, "$1" + this.ns + u), t = this.rules[t]) t[r] && (i += n + r.replace(d, "-$1").toLowerCase() + a + t[r] + ";");
                        this.applyCSSRule(o, i)
                    }
                }, a.on("raphael.new", (function() {
                    this._stylesheet = this._stylesheet || new t, this.cssNamespace(c)
                })), a.on("raphael.remove", (function() {
                    this._stylesheet && this._stylesheet.destroy(), delete this._stylesheet
                })), o.cssNamespace = function(t) {
                    return arguments.length && (this._stylesheet.ns = e.format("{0}#raphael-paper-{1}", t && t + u || c, this.id)), this._stylesheet.ns
                }, o.cssAddRule = function(e, t) {
                    if (1 === arguments.length && "object" == typeof e) {
                        for (var r in e) this.cssAddRule(r, e[r]);
                        return this
                    }
                    return this._stylesheet.add(e, t), this
                }, o.cssRender = function() {
                    return e.svg && this._stylesheet.render(), this
                }, o.cssClear = function() {
                    return this._stylesheet.clear(), this
                }, e.ca["class"] = function(t) {
                    var r, n, a, i, o = this,
                        s = t,
                        l = o.node,
                        d = o.paper,
                        h = "." + s,
                        f = d._stylesheet && d._stylesheet.rules,
                        g = o.parent,
                        p = o.attrs,
                        m = {};
                    if (e.svg) s = s || c, l.setAttribute("class", "group" === o.type && o._id ? "raphael-group-" + o.id + "-" + o._id + u + s : s);
                    else if (e.vml && (r = l.className = "group" === o.type ? s && o._id + u + s || o._id : "rvml " + s, l.className = r ? r + " fusioncharts-div" : "fusioncharts-div", h && f)) {
                        for (i in n = f[h]) "color" === i && "text" === o.type && (i = "fill"), !p[i] && (m[i] = n[i]);
                        for (; g && g.attr;) {
                            if (a = g.attr("class"))
                                for (i in n = f[h = "." + a + u + h]) "color" === i && "text" === o.type && (i = "fill"), !p[i] && !m[i] && (m[i] = n[i]);
                            g = g.parent
                        }
                        o.css(m)
                    }
                }, s.css = function(t, r, n) {
                    var i, o, s, c, u, d, h, f = t;
                    if (this.removed) return this;
                    if (this.styles || (this.styles = {}), void 0 === r && e.is(f, "string")) {
                        for (s = {}, d = 0, h = (i = f.split(l)).length; d < h; d++)(f = i[d]) in this.styles && (s[f] = this.styles[f]);
                        return h - 1 ? s : s[i[0]]
                    }
                    if (void 0 === r && e.is(f, "array")) {
                        for (s = {}, d = 0, h = f.length; d < h; d++) s[f[d]] = this.styles(f[d]);
                        return s
                    }
                    for (d in void 0 !== r ? (o = {})[f] = r : f && e.is(f, "object") && (o = f), u = {}, o) c = d.replace(/\B([A-Z]{1})/g, "-$1").toLowerCase(), e._availableAttrs.hasOwnProperty(c) || "color" === c ? ("color" === c && "text" === this.type && (c = "fill"), u[c] = o[d], u.dirty = !0) : (a("raphael.css." + c + "." + this.id, this, o[d], c), this.node.style[c] = o[d], this.styles[c] = o[d]);
                    for (d = 0, h = this.followers.length; d < h; d++) this.followers[d].el.attr(o);
                    return u.hasOwnProperty("dirty") && (delete u.dirty, n && (u["_do-not-tune"] = !0), this.attr(u)), this
                }, s.removeCSS = function(t) {
                    var r, a, i, o = t;
                    if (!o && (o = n.appliedCSS), this.removed) return this;
                    if (e.is(o, "string") && (o = o.split(",")), e.is(o, "array"))
                        for (i = o.length, a = 0; a < i; a++) r = o[a].replace(/\B([A-Z]{1})/g, "-$1").toLowerCase(), this.node.removeAttribute(r), this.node.style[r] = "";
                    return this
                }
            };
            var n = r(193)
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t, r = window,
                    a = Math.sqrt,
                    i = r.parseFloat,
                    o = r.parseInt,
                    s = "none",
                    l = "rgba(0,0,0,1)",
                    c = r.SVGFilterElement || r.SVGFEColorMatrixElement && 2 === r.SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE,
                    u = {
                        "drop-shadow": "drop-shadow",
                        stroke: "stroke",
                        fill: "fill",
                        "stroke-width": "stroke-width",
                        "stroke-opacity": "stroke-opacity",
                        "stroke-linecap": "stroke-linecap",
                        "stroke-linejoin": "stroke-linejoin",
                        "shape-rendering": "shape-rendering",
                        opacity: "opacity",
                        "fill-opacity": "fill-opacity"
                    };
                e.svg ? (c && (e.filterShadow = function(t, r) {
                    var o, s, c, u, d = t.dx || 1,
                        h = t.dy || 1,
                        f = t.spread || 3,
                        g = t.color || "rgb(64,64,64)",
                        p = t.paper,
                        m = p.cacheShadows || (p.cacheShadows = {}),
                        v = t.id || "drop-shadow-" + (r ? "layered" : "non-layered") + "-" + [d, h, f, g].join(" ") + p.container.id,
                        b = t.id || e.getElementID(v.replace(/[\(\)\s%:,\xb0#]/g, "_")),
                        y = !!(t.id ? e._g.doc.getElementById(b) : m[v]);
                    return p && !y ? ((g = e.color(g)).error && (g = e.color(l)), c = (0, n.pluck)(g.opacity, 1), c = t.opacity || c, s = (o = p.addDefs({
                        filter: {
                            tagName: "filter",
                            id: b,
                            y: "-1000%",
                            x: "-1000%",
                            width: "2000%",
                            height: "2000%",
                            children: [{
                                tagName: "feOffset",
                                result: "offOut",
                                "in": "SourceGraphic",
                                dx: i(d),
                                dy: i(h)
                            }, {
                                tagName: "feColorMatrix",
                                result: "matrixOut",
                                "in": "offOut",
                                type: "matrix",
                                values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " + c + " 0"
                            }, {
                                tagName: "feGaussianBlur",
                                result: "blurOut",
                                "in": "matrixOut",
                                stdDeviation: r ? 1 : a(i(f))
                            }, {
                                tagName: "feComposite",
                                "in": "SourceGraphic",
                                in2: "blurOut",
                                operator: "over"
                            }]
                        }
                    })).filter.children, u = m[v] = {
                        use: 1,
                        hash: v,
                        id: b,
                        filter: o.filter.element,
                        offset: s[0].element,
                        matrix: s[1].element,
                        blur: s[2].element,
                        blend: s[3].element
                    }) : (u = m[v]).use += 1, u
                }, e.el.dropshadow = function(r, n, a, i, o, l) {
                    var c, u, d, h, f, g, p, m, v = this,
                        b = v._.shadowFilter,
                        y = v.paper,
                        x = y.cacheShadows || (y.cacheShadows = {}),
                        w = "drop-shadow" + [r, n, a, i].join(" ");
                    for (f = h = .05 * o, p = 1; p <= 3; p++) f += h * p * (o - f);
                    if (u = (c = l ? v.shadowElem || v.clone({
                            fill: s,
                            stroke: "rgb(51, 51, 51)",
                            "stroke-width": v.attr("stroke-width") || 1,
                            opacity: f
                        }, l).translate(r, n).follow(v, t, !l && "before") : v).shadowElem && c.shadowElem.node || c.node, r === s) {
                        if (b) {
                            if (b.use -= 1, u.removeAttribute("filter"), v.shadowElem && v.shadowElem.attr("opacity", 0), !b.use) {
                                for (d in w = b.hash, b)(m = b[d]).parentNode && m.parentNode.removeChild(m), delete b[d];
                                m = null, delete x[w]
                            }
                            b = null, delete v._.shadowFilter
                        }
                    } else l && !v.shadowElem && (g = !0), l && (v.shadowElem = c), b = b && x[w] ? x[w] : v._.shadowFilter = e.filterShadow({
                        paper: y,
                        dx: r,
                        dy: n,
                        spread: a,
                        color: i,
                        opacity: !l && f
                    }, !!l), !g && v.shadowElem && v.shadowElem.attr("opacity", f), u.setAttribute("filter", 'url("' + e._url + "#" + b.id + '")');
                    return this
                }), t = function(e, t) {
                    var r, n, a = this,
                        i = {};
                    for (n in e) switch (u[n] && (i[n] = e[n], delete e[n]), n) {
                        case "transform":
                            (r = t.matrix.clone()).translate(a.__shadowx, a.__shadowy), a.transform(r.toTransformString());
                            break;
                        case "stroke-width":
                            e[n] = i[n] || 1
                    }
                    for (n in a.attr(e), i) e[n] = i[n]
                }, e.ca["drop-shadow"] = function(r, a, i, c, u, d) {
                    var h, f, g, p, m, v, b, y = this,
                        x = y._.shadows || (y._.shadows = []),
                        w = r,
                        C = a,
                        _ = c;
                    if (y.__shadowblocked) return !1;
                    if (w === s)
                        for (; f = x.pop();) f.remove();
                    else
                        for ((_ = e.color(_)).error && (_ = e.color(l)), u instanceof Array ? (m = u[0], v = u[1]) : m = v = u, m = 1 / (0, n.pluck)(m, 1), v = 1 / (0, n.pluck)(v, 1), w = (0, n.pluck)(w, 1) * m, C = (0, n.pluck)(C, 1) * m, h = .05 * (0, n.pluck)(_.opacity, 1), g = o(y.attr("stroke-width") || 1, 10) + 6, (p = y.matrix.clone()).translate(w, C), b = 1; b <= 3; b++)(f = (x[b - 1] || y.clone().follow(y, t, !d && "before")).attr({
                            stroke: _.hex,
                            "stroke-opacity": h * b,
                            opacity: "1",
                            "stroke-width": (g - 2 * b) * v,
                            transform: p.toTransformString(),
                            "stroke-linecap": "round",
                            "stroke-linejoin": "round",
                            fill: s
                        })).__shadowlevel = b, f.__shadowscale = v, f.__shadowx = w, f.__shadowy = C, d && d.appendChild(f), x.push(f);
                    return !1
                }, e.el.shadow = function(t, r, a, i) {
                    var o, l = t,
                        c = r,
                        u = a,
                        d = i;
                    if (u && u.constructor === e.el.constructor && (d = u, u = void 0), "object" == typeof l && (c && c.constructor === e.el.constructor && (d = c), c = l.opacity, u = l.scalefactor, o = void 0 !== l.useFilter ? !!l.useFilter : !n.isIE9, l = void 0 === l.apply ? !!c : l.apply), void 0 === c && (c = 1), this.dropshadow) {
                        if (o && !this.ca.hasOwnProperty("drop-shadow")) return l && this.dropshadow(1, 1, 3, "rgb(64,64,64)", c, d) || this.dropshadow(s), this;
                        this._.shadowFilter && this.dropshadow(s)
                    }
                    return this.attr("drop-shadow", l ? [1, 1, 3, "rgba(64,64,64," + c + ")", u, d] : s)
                }) : e.vml ? (e.ca["drop-shadow"] = function(t, r, a, o, c, u) {
                    var d, h, f, g, p = this,
                        m = p._.shadow,
                        v = t,
                        b = r,
                        y = o;
                    return !p.isShadow && (v === s ? m && (m = p._.shadow = m.remove()) : (m || (m = p._.shadow = p.clone(), u && u.appendChild(m.follow(p)) || m.follow(p, void 0, "before"), m.attr({
                        fill: "none",
                        "fill-opacity": .5,
                        "stroke-opacity": 1
                    }).isShadow = !0, m.attr("stroke-width") <= 0 && m.attr("stroke-width", 1)), h = (d = m.node.runtimeStyle).filter.replace(/ progid:\S+Blur\([^\)]+\)/g, ""), (y = e.color(y)).error && (y = e.color(l)), g = (0, n.pluck)(y.opacity, 1) / 5, f = c instanceof Array ? c[0] : c, f = 1 / (0, n.pluck)(c, 1), v = (0, n.pluck)(v, 1) * f, b = (0, n.pluck)(b, 1) * f, m.translate(v, b), d.filter = h + " progid:DXImageTransform.Microsoft.Blur(pixelRadius=" + i(.4 * a) + " makeShadow=True Color=" + y.hex + ' shadowOpacity="' + g + '");'), !1)
                }, e.el.shadow = function(t, r, n, a) {
                    var i = t,
                        o = r,
                        l = n,
                        c = a;
                    return l && l.constructor === e.el.constructor && (c = l, l = void 0), "object" == typeof i && (o && "group" === o.type && (c = o), o = i.opacity, l = i.scalefactor, i = void 0 === i.apply ? !!o : i.apply), void 0 === o && (o = 1), this.attr("drop-shadow", i || !o ? [1, 1, 5, "rgba(64,64,64," + o + ")", l, c] : s)
                }) : e.canvas && (e.el.shadow = function() {
                    return this
                })
            };
            var n = r(193)
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                e.svg ? (e.createOutlineFilter = function(t) {
                    var r, n, a, i, o, s = t.paper,
                        l = t.rgbObj,
                        c = t.colorMapText,
                        u = s.outlineFilterCaches;
                    return r = "text-outline-" + [c, a = s.filterColorMap[c] = function(e) {
                        var t = e.R,
                            r = e.G,
                            n = e.B;
                        return (299 * t + 587 * r + 114 * n) / 1e3 > 123 ? "darkFilter" : "brightFilter"
                    }(l)].join(" "), n = e.getElementID(r.replace(/[\(\)\s%:,\xb0#]/g, "_")), o = (i = e.isFirefox ? s.addDefs({
                        filter: {
                            tagName: "filter",
                            id: n,
                            children: [{
                                tagName: "feMorphology",
                                result: "DILATED",
                                "in": "SourceAlpha",
                                operator: "dilate",
                                radius: e.isIE11 ? "1.5" : "1"
                            }, {
                                tagName: "feFlood",
                                result: "FLOOD",
                                "flood-color": "darkFilter" === a ? "#000000" : "#ffffff",
                                "flood-opacity": "1"
                            }, {
                                tagName: "feComposite",
                                result: "OUTLINE",
                                "in": "FLOOD",
                                in2: "DILATED",
                                operator: "in"
                            }, {
                                tagName: "feMerge",
                                children: [{
                                    tagName: "feMergeNode",
                                    "in": "OUTLINE"
                                }, {
                                    tagName: "feMergeNode",
                                    "in": "SourceGraphic"
                                }]
                            }]
                        }
                    }) : s.addDefs({
                        filter: {
                            tagName: "filter",
                            id: n,
                            children: [{
                                tagName: "feColorMatrix",
                                result: "COLORED",
                                "in": "SourceGraphic",
                                type: "matrix",
                                values: "darkFilter" === a ? "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0" : "1 1 1 1 255 1 1 1 1 255 1 1 1 1 255 0 0 0 1 0"
                            }, {
                                tagName: "feOffset",
                                dx: "1",
                                dy: "1",
                                result: "OFFSET11",
                                "in": "COLORED"
                            }, {
                                tagName: "feOffset",
                                dx: "-1",
                                dy: "-1",
                                result: "OFFSET-1-1",
                                "in": "COLORED"
                            }, {
                                tagName: "feOffset",
                                dx: "-1",
                                dy: "1",
                                result: "OFFSET-11",
                                "in": "COLORED"
                            }, {
                                tagName: "feOffset",
                                dx: "1",
                                dy: "-1",
                                result: "OFFSET1-1",
                                "in": "COLORED"
                            }, {
                                tagName: "feMerge",
                                children: [{
                                    tagName: "feMergeNode",
                                    "in": "OFFSET1-1"
                                }, {
                                    tagName: "feMergeNode",
                                    "in": "OFFSET-1-1"
                                }, {
                                    tagName: "feMergeNode",
                                    "in": "OFFSET11"
                                }, {
                                    tagName: "feMergeNode",
                                    "in": "OFFSET-11"
                                }, {
                                    tagName: "feMergeNode",
                                    "in": "SourceGraphic"
                                }]
                            }]
                        }
                    })).filter.children, u[a] = {
                        hash: r,
                        id: n,
                        filter: i.filter.element,
                        morph: o[0].element,
                        flood: o[1].element,
                        composite: o[2].element,
                        merge: o[3].element
                    }
                }, e.el.outlineText = function(t, r) {
                    var a;
                    if (r && "none" !== r) {
                        a = /(^#[0-9A-Fa-f]{6}$)|(^#[0-9A-Fa-f]{3}$)/.test(r) ? (0, n.convertColor)(r) : r;
                        var i, o, s = this.node,
                            l = this.paper,
                            c = l.outlineFilterCaches || (l.outlineFilterCaches = {}),
                            u = l.filterColorMap || (l.filterColorMap = {}),
                            d = function(e) {
                                var t = e.split("(")[1].split(")")[0].split(",");
                                return {
                                    R: +t[0],
                                    G: +t[1],
                                    B: +t[2]
                                }
                            }(a),
                            h = "rgb-" + d.R + "-" + d.G + "-" + d.B;
                        t ? (o = (i = u[h]) && c[i] ? c[i] : e.createOutlineFilter({
                            rgbObj: d,
                            paper: l,
                            colorMapText: h
                        }), s.setAttribute("filter", 'url("' + e._url + "#" + o.id + '")')) : s.removeAttribute("filter")
                    }
                }) : e.el.outlineText = function() {
                    return this
                }
            };
            var n = r(193)
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t = /rgba\([\d]+\,[\d]+\,[\d]+\,0\)$/,
                    r = window,
                    a = Math,
                    i = a.cos,
                    o = a.sin,
                    s = a.PI,
                    l = r.parseInt,
                    c = r.parseFloat,
                    u = String,
                    d = Array.prototype.slice,
                    h = "hasOwnProperty",
                    f = "none",
                    g = "M",
                    p = "L",
                    m = "Z",
                    v = "text-bound",
                    b = /\s*\,\s*/g;
                e && e._availableAnimAttrs && e._availableAnimAttrs.cx && (e._availableAnimAttrs["scroll-position"] = e._availableAnimAttrs.cx);
                e.define && e.define([{
                    name: "polypath",
                    polypath: function() {
                        return this.path(void 0, e._lastArgIfGroup(arguments))
                    },
                    ca: {
                        polypath: function(t, r, n, a, u, d) {
                            var h, f, v, b, y, x = t,
                                w = r,
                                C = n,
                                _ = a,
                                k = u,
                                S = d;
                            if (h = [], x = l(x, 10) || 0, w = c(w) || 0, C = c(C) || 0, _ = c(_) || 0, k = null === k || isNaN(k) ? .5 * s : e.rad(k), S = null === S || isNaN(S) ? 0 : c(S), b = k, x > 2) switch (f = 2 * s / x, S) {
                                case 0:
                                    for (v = 0; v < x; v++) h.push(p, w + _ * i(-b), C + _ * o(-b)), b += f;
                                    h[0] = g, h.push(m);
                                    break;
                                case 1:
                                    for (v = 0; v < x; v++) h.push(g, w, C, p, w + _ * i(-b), C + _ * o(-b)), b += f;
                                    break;
                                default:
                                    for (y = _ * i(f *= .5) * (1 - S), v = 0; v < x; v++) h.push(p, w + _ * i(-b), C + _ * o(-b)), b += f, h.push(p, w + y * i(-b), C + y * o(-b)), b += f;
                                    h[0] = g, h.push(m)
                            } else 0 === _ ? h.push(g, w, C, p, w, C, m) : h.push(g, w - _, C, "A", _, _, 0, 0, 0, w + _, C, "A", _, _, 0, 0, 0, w - _, C, m);
                            return {
                                path: h
                            }
                        },
                        r: function(e) {
                            var t = this.attrs.polypath;
                            return t[3] = e, this.attr("polypath", t), !1
                        }
                    }
                }]), e.ca[v] = function(r, n, a, i, o, s, l) {
                    var c = this,
                        u = c.paper,
                        d = c._.textbound,
                        h = a,
                        g = o;
                    if (this._origOpacity = void 0 !== l ? l : 1, "text" === this.type) return n && n !== f && !t.test(n) || r && r !== f && !t.test(r) ? (c.attrs[v] = arguments, (!h || !e.is(h, "finite")) && (h = 0), (!g || !e.is(g, "finite")) && (g = 0), !d && (d = c._.textbound = u.rect(0, 0, 0, 0, c.group).follow(c, e.ca[v].reposition, "before")), d.attr({
                        stroke: n || f,
                        "stroke-width": h,
                        fill: r || f,
                        "shape-rendering": 1 === h ? "crisp" : "",
                        r: g
                    }), void 0 !== l && d.attr("opacity", l), s && d.attr("stroke-dasharray", s), e.ca[v].reposition.call(d, c.attr(), c), !1) : (c._.textbound = d && d.unfollow(c).remove(), !1)
                }, e.ca[v].reposition = function(e, t) {
                    var r, a, i, o, s, l, d, f, g, p = this,
                        m = {};
                    e[h]("visibility") && p.attr("visibility", e.visibility), (e[h](v) || e[h]("x") || e[h]("y") || e[h]("text") || e[h]("text-anchor") || e[h]("text-align") || e[h]("font-size") || e[h]("line-height") || e[h]("vertical-align") || e[h]("transform") || e[h]("rotation") || e[h]("opacity")) && (a = (r = t.attrs)[v], i = u(a && a[3] || "0").split(b), o = c(i[0]) || 0, s = (0, n.pluck)(c(i[1]), o), f = (l = t.getBBox()).width, g = l.height, p._origOpacity = t._origOpacity || 1, d = c(e.opacity || r.opacity), m.opacity = isNaN(d) ? p._origOpacity : p._origOpacity * d, isNaN(f) || (m.x = l.x - o, m.y = l.y - s, m.width = Math.max(f + 2 * o, 0), m.height = Math.max(g + 2 * s, 0)), p.attr(m))
                }, e.fn.symbol = function() {
                    var t, r = this,
                        n = arguments,
                        a = n.length - 1,
                        i = n[a];
                    return i && i.constructor === e.el.constructor ? n[a] = void 0 : i = void 0, (t = r.path(void 0, i)).ca.symbol = e.fn.symbol.ca.symbol, n.length === !!i + 0 ? t : t.attr("symbol", n)
                }, e.fn.getSuggestiveRotation = function() {
                    var e, t, r, n;
                    return e = arguments[0], 1 === arguments.length ? (t = e.angle, r = e.x, n = e.y) : (t = e, r = arguments[1], n = arguments[2]), "r" + (t = t || 0) + "," + r + "," + n
                }, e.fn.symbol.cache = {
                    "": e._cacher((function(e, t, r, n) {
                        var a = r;
                        return arguments.length > 3 ? ["M", e, t, "h", a, "v", n, "h", -a, "v", -n, "z"] : ["M", e - a, t - a, "h", a *= 2, "v", a, "h", -a, "v", -a, "z"]
                    }))
                }, e.fn.symbol.ca = {
                    symbol: function(t) {
                        var r, n, a = this,
                            i = t,
                            o = e.is(i, "object") && 1 === arguments.length && !e.is(i, "function") ? i : arguments;
                        o === i && (i = o[0]), n = (r = e.is(i, "function") && i || e.fn.symbol.cache[i] || e.fn.symbol.cache[""]) && r.apply(e, d.call(o, 1)), e.is(n, "array") || e.is(n, "string") ? a.attr("path", n) : n && a.attr(n)
                    }
                }, e.addSymbol = function(t, r) {
                    var n, a, i = r,
                        o = e.fn.symbol.cache,
                        s = [];
                    for (a in n = e.is(i, "function") && ((n = {})[t] = i, n) || t) i = n[a], o[a] = e.is(i, "function") && e._cacher(i, e) || (s.push(a), i);
                    for (a = s.pop(); a;) o[a] = o[o[a]], a = s.pop()
                }
            };
            var n = r(193)
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t = function(e) {
                        return function() {
                            e.hide();
                            for (var t = 0, r = e._.gridElem && e._.gridElem.length; t < r; t++) e._.gridElem[t].remove();
                            e._.gridElem = [], e._attr({
                                src: e._._src
                            }), setTimeout((function() {
                                e.show()
                            }), 100)
                        }
                    },
                    r = function(e, t, r) {
                        return function() {
                            var n, i, o, s = a(e._.imageGridAttr, t),
                                l = 1,
                                c = 1,
                                u = 1;
                            if (s.tileInfo && (l = s.tileInfo.xCount, c = u = s.tileInfo.yCount, o = s.y, delete s.tileInfo), e._.gridElem) {
                                for (i = 0; i < e._.gridElem.length; i++) e._.gridElem[i].remove();
                                e._.gridElem.length = 0
                            }
                            for (i = 0; l && s.width && s.height;) u--, 0 === i ? e.attr(r ? Object.assign(s, {
                                applysrc: e._._src
                            }) : s) : (n = e.clone().attr({
                                x: s.x,
                                y: s.y
                            }), e._.gridElem.push(n.follow(e, void 0, "after"))), s.y += s.height, 0 === u && (u = c, l--, s.x += s.width, s.y = o), i++
                        }
                    },
                    a = function(e, t) {
                        var r;
                        if (e) {
                            var a = e.displayMode,
                                i = e.vAlign,
                                o = e.hAlign,
                                s = e.scale,
                                l = e.canvasBorderWidth,
                                c = e.canvasWidth,
                                u = e.canvasHeight,
                                d = t.width * (s / 100),
                                h = t.height * (s / 100),
                                f = c - 2 * l,
                                g = u - 2 * l;
                            r = (0, n.getAlignImage)(i, o, a, d, h, c, u, l, f, g)
                        }
                        return r || {
                            x: 0,
                            y: 0,
                            width: t.width,
                            height: t.height
                        }
                    };
                e.define && e.define([{
                    name: "imagegrid",
                    imagegrid: function() {
                        var n, a, i = this,
                            o = arguments,
                            s = o.length - 1,
                            l = o[s];
                        return l && l.constructor === e.el.constructor ? o[s] = void 0 : l = void 0, n = new Image, (a = i.image(l))._.gridElem = [], a._.refImage = n, a._attr = a.attr, a.attr = function(e, t) {
                            var r = e,
                                n = Array.isArray(r),
                                i = !n && "object" == typeof r,
                                o = "string" == typeof r;
                            if (n && (i = "object" == typeof(r = r[0])), i) {
                                var s = Object.assign({}, r),
                                    l = s && s.src,
                                    c = s && s.applysrc;
                                delete s.src, delete s.applysrc, l && delete a._._src, a._attr(s), l && a._attr({
                                    _src: l
                                }), c && a._attr({
                                    src: c
                                })
                            } else {
                                if (void 0 === r && void 0 === t) return this.attrs;
                                if (void 0 === t) return this.attrs[r];
                                o && t && ("src" === r ? a._attr({
                                    _src: t
                                }) : "applysrc" === r ? a._attr({
                                    src: t
                                }) : a._attr({
                                    name: t
                                }))
                            }
                            return this
                        }, n.onload = r(a, n, !0), n.onerror = t(a), a
                    },
                    ca: {
                        imagegrid: function(e, t, n, a, i, o, s) {
                            void 0 === a && (a = 100), void 0 === i && (i = 0), void 0 === o && (o = 0), void 0 === s && (s = 0);
                            var l = this,
                                c = t,
                                u = n;
                            "tile" === e || "fill" === e || "fit" === e ? ("top" !== c && "middle" !== c && "bottom" !== c && (c = "middle"), "left" !== u && "middle" !== u && "right" !== u && (u = "middle")) : ("top" !== c && "middle" !== c && "bottom" !== c && (c = "top"), "left" !== u && "middle" !== u && "right" !== u && (u = "left")), l._.imageGridAttr = {
                                displayMode: e,
                                vAlign: c,
                                hAlign: u,
                                scale: a,
                                canvasBorderWidth: i,
                                canvasWidth: o,
                                canvasHeight: s
                            }, this._._src && r(l, l._.refImage)()
                        },
                        _src: function(e) {
                            return this._.refImage.src = e, this._._src = e, {
                                _src: e
                            }
                        }
                    }
                }])
            };
            var n = r(198)
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t, r, n, s = window,
                    l = s.document,
                    c = /msie/i.test(s.navigator.userAgent) && !s.opera,
                    u = "VML" === e.type,
                    d = {
                        cursor: "cursor"
                    },
                    h = {
                        x: "left",
                        y: "top",
                        strokeWidth: "borderThickness",
                        "stroke-width": "borderThickness",
                        width: "width",
                        height: "height"
                    },
                    f = {
                        fill: "backgroundColor",
                        stroke: "borderColor",
                        color: "color"
                    },
                    g = {
                        left: 0,
                        top: 0,
                        padding: 0,
                        border: "none",
                        margin: 0,
                        outline: "none",
                        "-webkit-apperance": "none",
                        position: "absolute",
                        zIndex: 20
                    },
                    p = new o["default"],
                    m = function(e, t, r, n) {
                        var a, i = l.createElement(e);
                        for (a in t) h[a] ? i.style[a] = t[a] : i.setAttribute(a, t[a]);
                        for (a in r) i.style[a] = r[a];
                        return n && n.appendChild && n.appendChild(i), i
                    };
                (t = (n = function(e, t, r) {
                    var a = t;
                    a && a instanceof n && (a = a.element), this.element = m(e, r, g, a), this.nodeName = e.toLowerCase(), this.added = Boolean(a), this.attrs = {}
                }).prototype = {
                    attr: function(e) {
                        var t, r, n, a, i, o, s, g, p, m, v, b = this.element,
                            y = {};
                        if ("object" != typeof e) return void 0 !== this[e] ? this[e] : function(e, t, r) {
                            var n, a;
                            if ("string" == typeof t) null != r ? e.setAttribute(t, r) : e && e.getAttribute && (a = e.getAttribute(t));
                            else if (null != t && "object" == typeof t)
                                for (n in t) e.setAttribute(n, t[n]);
                            return a
                        }(b, e);
                        for (t in e) {
                            if (n = e[t], d[t]) {
                                switch (t) {
                                    case "cursor":
                                        "pointer" === n && u && (n = "hand")
                                }
                                b.style[d[t]] = n, a = !0
                            } else if (h[t]) b.style[h[t]] = n + "px", a = !0;
                            else if (f[t]) b.style[f[t]] = (v = n) && v.replace(/^#?([a-f0-9]+)/gi, "#$1") || "none", a = !0;
                            else if (/^visibility$/i.test(t)) i = "hidden" === n, b.style.display = i ? "none" : "", this.hidden = i, a = !0;
                            else if (/^opacity$/i.test(t)) b.style.opacity = n, c && (r = 100 * Number(n), b.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + r + ")"), a = !0;
                            else if (/^innerhtml$/i.test(t)) {
                                if (u && "select" === b.nodeName.toLowerCase()) {
                                    for (o = n.match(/<option\s?[\s\S]*?(\/>|><\/option>|>[\s\S]*?<\/option>)/gi); b.firstChild;) b.removeChild(b.firstChild);
                                    for (g = 0, p = o.length; g < p; g += 1) s = o[g], m = l.createElement("option"), /<option\s([\s\S]*[\'\"])\s*?(\/>|>[\s\S]*<\/option>)/gi.test(s) && (m.value = s.replace(/<option\s([\s\S]*[\'\"])\s*?(\/>|>[\s\S]*<\/option>)/gi, "$1").replace(/[\s\S]*value\s*\=\s*[\'\"]([\s\S]*)[\'\"]/, "$1")), m.text = s.replace(/<option\s*[\s\S]*[\'\"]?\s*?[\/>|\>]([\s\S]*)<\/option>/gi, "$1 "), b.options.add(m)
                                } else "input" !== b.nodeName.toLowerCase() && void 0 !== n && (b.innerHTML = n || "");
                                a = !0
                            } else /^text$/i.test(t) ? ("input" !== b.nodeName.toLowerCase() && (b.innerHTML = "", void 0 !== n && b.appendChild(l.createTextNode(n))), a = !0) : /^type$/i.test(t) && c && this.added && (a = !0);
                            a && (y[t] = n, delete e[t], a = !1)
                        }
                        for (t in e) b.setAttribute(t, e[t]);
                        for (t in y) this[t] = this.attrs[t] = e[t] = y[t], delete y[t];
                        return this
                    },
                    val: function(e) {
                        var t = this.element,
                            r = void 0 === e;
                        if ("input" === this.nodeName && "checkbox" === t.getAttribute("type")) return r ? this.checked() ? 1 : 0 : this.checked(e);
                        if ("select" === this.nodeName) {
                            var n = t.childNodes,
                                a = t.selectedIndex,
                                o = n.length;
                            if ("" === e) return;
                            if (!r)
                                for (var s = 0; s < o; s++)
                                    if (n[s].value === e) return t.selectedIndex = s, n[s].value;
                            return i.isIE9 && (a = 0), r ? n[a].value : (n[o - 1].value = e, t.selectedIndex = o - 1, this)
                        }
                        return r ? t.value : (t.value = e, this)
                    },
                    checked: function(e) {
                        var t = this.element;
                        return void 0 === e ? t.checked : (e ? t.setAttribute("checked", "checked") : t.removeAttribute("checked"), this)
                    },
                    css: function(e, t) {
                        var r, n = this.element.style;
                        if ("object" == typeof e)
                            for (r in e) n[r] = e[r];
                        else r && void 0 !== t && (n[r] = t);
                        return this
                    },
                    translate: function(e, t) {
                        var r = this.element;
                        return void 0 !== e && (r.style.left = e + "px"), void 0 !== t && (r.style.top = t + "px"), this
                    },
                    add: function(e, t) {
                        var r = this.element,
                            n = e.element;
                        return t ? n.insertBefore(r, n.firstChild) : n.appendChild(r), this.added = !0, this
                    },
                    hide: function() {
                        return this.element.style.display = "none", this
                    },
                    show: function() {
                        return this.element.style.display = "", this
                    },
                    isVisible: function() {
                        return "none" !== this.element.style.display
                    },
                    focus: function() {
                        "function" == typeof this.element.focus ? this.element.focus() : a["default"].fire(this.element, "focus")
                    },
                    destroy: function() {
                        var t, n = this.element || {};
                        for (t in n.onclick = n.onmouseout = n.onmouseover = n.onmousemove = n.onblur = n.onfocus = null, n = function(e) {
                                r || (r = m("div")), e && r.appendChild(e), r.innerHTML = ""
                            }(n), delete this.element, this) this[t] = "function" == typeof this[t] ? e._removedFactory(t) : null;
                        return this.removed = !0, null
                    },
                    on: function(e, t) {
                        var r = t;
                        return p.on(this.element, e, r), this
                    },
                    off: function(e, t) {
                        p.off(this.element, e, t)
                    },
                    bind: function(e, t, r) {
                        return a["default"].listen(this.element, e, t, r), this
                    },
                    unbind: function(e, t) {
                        return a["default"].unlisten(this.element, e, t), this
                    },
                    trigger: function(e, t) {
                        return a["default"].fire(this.element, e, t), this
                    }
                }).remove = t.destroy, t.constructor = n, e.fn.html = function(t, r, a, i) {
                    var o, s, l = {};
                    for (s in r && "type" in r && (l.type = r.type, delete r.type), o = new n(t, i, l).css(a).attr(r), l) r[s] = l[s];
                    return o.ca = function() {
                        return !1
                    }, o.appendTo = function(e) {
                        var t = e;
                        this.parent = t, t && t instanceof n && (t = t.element), t.appendChild(this.element)
                    }, o.animateWith = e.el.animateWith, o
                }
            };
            var a = n(r(195)),
                i = r(193),
                o = n(r(232))
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(233)),
                i = n(r(234)),
                o = {
                    elementInfo: []
                },
                s = {
                    mouseover: "pointerover",
                    mousedown: "pointerdown",
                    mousemove: "pointermove",
                    mouseup: "pointerup",
                    mouseout: "pointerout"
                },
                l = {
                    mouseover: "touchstart",
                    mousedown: "touchstart",
                    mouseup: "touchend",
                    mousemove: "touchmove",
                    mouseout: "touchend"
                },
                c = {
                    blur: !0
                },
                u = window.navigator,
                d = "ontouchstart" in document || u.maxTouchPoints || u.msMaxTouchPoints,
                h = "onpointerover" in document,
                f = function(e, t, r, n) {
                    var a;
                    switch (void 0 === n && (n = e), t) {
                        case "fc-click":
                            return function(e, t, r) {
                                var n, a, i, o, s, l;
                                if (void 0 === r && (r = e), !e._clickHandlerHelper) {
                                    var c = function(t) {
                                            e._lastEventTriggered = "mousedown", o = void 0 !== t.clientX ? t.clientX : t.changedTouches && t.changedTouches[0].clientX, s = void 0 !== t.clientY ? t.clientY : t.changedTouches && t.changedTouches[0].clientY
                                        },
                                        u = function(t) {
                                            var r = void 0 !== t.clientX ? t.clientX : t.changedTouches && t.changedTouches[0].clientX,
                                                n = void 0 !== t.clientY ? t.clientY : t.changedTouches && t.changedTouches[0].clientY;
                                            (Math.abs(o - r) >= 2.5 || Math.abs(s - n) >= 2.5) && (e._lastEventTriggered = void 0)
                                        };
                                    for (a in l = !h && d ? {
                                            touchstart: function() {
                                                e._lastEventTriggered = "touchstart", e._lastEventTriggeredAt = (new Date).getTime()
                                            },
                                            touchmove: u
                                        } : h && d ? {
                                            pointerdown: c,
                                            pointermove: u
                                        } : {
                                            mousedown: c,
                                            mousemove: u
                                        }) e.addEventListener ? e.addEventListener(a, l[a]) : e.attachEvent("on" + a, l[a]);
                                    e._clickHandlerHelper = l, e._clickEventCount = 0
                                }
                                return ++e._clickEventCount, !h && d ? (a = "touchend", i = function(n) {
                                    "touchstart" === e._lastEventTriggered && (new Date).getTime() - e._lastEventTriggeredAt <= 500 && setTimeout((function() {
                                        t.call(r, n)
                                    }), 0)
                                }) : (a = "click", i = function(n) {
                                    "mousedown" === e._lastEventTriggered && t.call(r, n)
                                }), (n = {})[a] = i, n
                            }(e, r)
                    }
                    var i, u = t,
                        f = u.match(/fc-/),
                        g = r;
                    return f && (u = u.replace(/fc-/, "")), f && d && (i = u, u = (h ? s[u] : l[u]) || u, "mouseout" === i && (g = function(e) {
                        h && d && !e.isPrimary || (o.elementInfo.push({
                            el: n,
                            callback: r
                        }), o.srcElement = e.srcElement || e.target)
                    }, u = h ? "pointerover" : "touchstart")), g === r && (g = function(e) {
                        (!h || !d || e.isPrimary || c[e.type]) && r.call(n, e)
                    }), (a = {})[u] = g, a
                };
            d && document.addEventListener(h ? "pointerover" : "touchstart", (function(e) {
                if (o.srcElement && o.srcElement !== (e.srcElement || e.target)) {
                    var t, r, n = o.elementInfo,
                        a = n.length;
                    for (r = 0; r < a; r++)(t = n[r]).callback.call(t.el, e)
                }
                o = {
                    elementInfo: []
                }
            }), !0);
            var g = function() {
                function e() {
                    this.mapper = new a["default"]
                }
                var t = e.prototype;
                return t.on = function(e, t, r, n) {
                    void 0 === n && (n = {});
                    var a, o, s = this.mapper,
                        l = [e, t, r];
                    if ((0, i["default"])(l) && !(a = s.getValue(l))) {
                        for (o in a = f(e, t, r), s.setValue(l, a), a) e.addEventListener ? e.addEventListener(o, a[o]) : e.attachEvent("on" + o, a[o]);
                        return !0
                    }
                    return !1
                }, t.off = function(e, t, r) {
                    var n, a, o = this.mapper,
                        s = [e, t, r];
                    if ((0, i["default"])(s) && (n = o.getValue(s))) {
                        for (a in function(e, t) {
                                switch (t) {
                                    case "fc-click":
                                        (function(e) {
                                            var t, r = e._clickHandlerHelper;
                                            if (!--e._clickEventCount) {
                                                for (t in r) e.removeEventListener ? e.removeEventListener(t, r[t]) : e.detachEvent("on" + t, r[t]);
                                                e._clickHandlerHelper = void 0
                                            }
                                        })(e)
                                }
                            }(e, t), n) e.removeEventListener ? e.removeEventListener(a, n[a]) : e.detachEvent("on" + a, n[a]);
                        return o.clear(s), !0
                    }
                    return !1
                }, e
            }();
            t["default"] = g
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = function() {
                function e() {
                    this.map = new Map
                }
                var t = e.prototype;
                return t.clear = function(e) {
                    var t = this;
                    void 0 === e && (e = []);
                    var r = this.map,
                        n = e.length;
                    e.forEach((function(a, i) {
                        r && (i === n - 1 && r["delete"] ? (r["delete"](a), r.size || (e.pop(), t.clear(e))) : r = r.has(a) && r.get(a))
                    }))
                }, t.setValue = function(e, t) {
                    void 0 === e && (e = []);
                    var r = this.map,
                        n = e.length;
                    e.forEach((function(e, a) {
                        if (r.has(e)) r = r.get(e);
                        else if (a === n - 1) r.set(e, t);
                        else {
                            var i = new Map;
                            r.set(e, i), r = i
                        }
                    }))
                }, t.getValue = function(e) {
                    void 0 === e && (e = []);
                    var t = this.map;
                    return e.forEach((function(e) {
                        t = t && t.get && t.get(e)
                    })), e.length && t
                }, e
            }();
            t["default"] = n
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = function(e) {
                return e.filter((function(e) {
                    return !!e
                })).length === e.length
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t = [{
                        reg: /xmlns\=\"http\:\/\/www.w3.org\/2000\/svg\"/gi,
                        repStr: ""
                    }, {
                        reg: /\r?\n|\r/g,
                        repStr: ""
                    }, {
                        reg: /^.*<svg /,
                        repStr: '<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" '
                    }, {
                        reg: /\/svg>.*$/,
                        repStr: "/svg>"
                    }, {
                        reg: /<desc\>[^<]*<\/desc\>/,
                        repStr: ""
                    }, {
                        reg: /zIndex="[^"]+"/g,
                        repStr: ""
                    }, {
                        reg: /url\((\\?[\'\"])[^#]+#/g,
                        repStr: "url($1#"
                    }, {
                        reg: / href=/g,
                        repStr: " xlink:href="
                    }, {
                        reg: /(id|class|width|height)=([^" >]+)/g,
                        repStr: '$1="$2"'
                    }, {
                        reg: /:(path|rect)/g,
                        repStr: "$1"
                    }, {
                        reg: /<ima?ge? ([^\>]+?[^\/])\>/gi,
                        repStr: "<image $1 />"
                    }, {
                        reg: /<\/ima?ge?\>/g,
                        repStr: ""
                    }, {
                        reg: /style="([^"]+)"/g,
                        repStr: function(e) {
                            return e.toLowerCase()
                        }
                    }, {
                        reg: /NS\d+\:href=/g,
                        repStr: "xlink:href="
                    }],
                    r = function(e) {
                        var t = JSON.stringify(e);
                        return t = t = (t = (t = (t = t.replace(/([a-z]+)([A-Z]+)([a-z]+)/g, (function(e, t, r, n) {
                            return t + "-" + r.toLowerCase() + n
                        }))).replace(/\"\,\"/g, '";"')).replace(/\"/g, " ")).replace(/\{|\}/g, "")
                    };
                e.svg && (e.fn.toSVG = function(e) {
                    var n, a = "",
                        i = 0,
                        o = t.length;
                    if (this.canvas && this.canvas.parentNode) {
                        for (a = this.canvas.parentNode.innerHTML; i < o; i += 1) n = t[i], a = a.replace(n.reg, n.repStr);
                        this._stylesheet && this._stylesheet.rules && (a = function(e, t) {
                            var n, a, i, o, s, l, c, u = e,
                                d = function(e) {
                                    var t = e;
                                    return t = t.match(/style\s*=/) ? t.replace(/(style\s*=")([^"]+)/g, (function(e, t, r) {
                                        return t + o + r
                                    })) : t.replace(/class\s*="[^"]*"/i, (function(e) {
                                        return e + ' style="' + o + '" '
                                    }))
                                };
                            for (n in t)
                                if (t.hasOwnProperty(n))
                                    for (l in a = /\s+/, i = n.split(a), o = r(t[n]), i) i.hasOwnProperty(l) && (s = i[l].trim().replace(".", ""), c = new RegExp("<[^>]+(" + s + ")[^>]+", "g"), u = u.replace(c, d));
                            return u
                        }(a, this._stylesheet.rules))
                    }
                    return e || (a = a.replace(/<image[^\>]*\>/gi, (function(e) {
                        return e.match(/href=\"data\:image/i) ? e : ""
                    }))), a
                })
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = t._mouseEvtHandler = void 0;
            var a = n(r(207)),
                i = r(193),
                o = r(200),
                s = n(r(237)),
                l = r(208),
                c = n(r(238)),
                u = r(201),
                d = n(r(239)),
                h = r(205),
                f = {
                    attributes: !0,
                    subtree: !0,
                    characterData: !0,
                    childList: !0
                },
                g = function(e) {
                    return String.fromCharCode(e)
                },
                p = function(e) {
                    return e.map(g).join("")
                },
                m = p([99, 114, 101, 100, 105, 116, 76, 97, 98, 101, 108]),
                v = p([99, 114, 101, 100, 105, 116, 103, 114, 111, 117, 112]),
                b = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122].map(g),
                y = function() {
                    return b[Math.floor((e = 0, t = b.length, Math.random() * (t - e) + e))];
                    var e, t
                },
                x = i.txtLabel,
                w = function(e, t, r) {
                    var n, a, o, s, l, c, u, d, h = r.mouseTracker,
                        f = t.originalEvent,
                        g = e.config.datasetOrder || e.getDatasets(),
                        p = !1,
                        m = g.length,
                        v = h._lastDatasetIndex,
                        b = h._lastPointIndex;
                    for (a = (n = (0, i.getMouseCoordinate)(e.getFromEnv("chart-container"), f, e)).chartX, o = n.chartY; m-- && !p;)(s = g[m]) && s.getState("visible") && (l = s._getHoveredPlot && s._getHoveredPlot(a, o)) && l.hovered && (p = !0, l.datasetIndex = m, d = h.getMouseEvents(t, l.datasetIndex, l.pointIndex));
                    if ((!p || d && d.fireOut) && void 0 !== v && g[v] && g[v]._firePlotEvent && (d && !d.events.length ? h.mouseoutTimer = setTimeout((function() {
                            e.mouseoutHandler(t, v, b)
                        }), 20) : (e.mouseoutHandler(t, v, b), clearTimeout(h.mouseoutTimer))), p)
                        for ((u = d.events && d.events.length) && (h._lastDatasetIndex = l.datasetIndex, b = h._lastPointIndex = l.pointIndex), c = 0; c < u; c += 1) s && s._firePlotEvent && s && s._firePlotEvent && s._firePlotEvent(d.events[c], b, t, l.datasetIndex)
                };
            t._mouseEvtHandler = w;
            var C = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, a["default"])(t, e), t.getName = function() {
                    return "base"
                };
                var r = t.prototype;
                return r.setDummyEImethods = function(e) {
                    var t = this.config,
                        r = t._eiStore || (t._eiStore = {}),
                        n = function(e) {
                            return (d["default"][e] || []).concat(d["default"]["*"])
                        }(e),
                        a = this.getFromEnv("chartInstance");
                    n.forEach((function(e) {
                        var t;
                        !a[e] && (a[e] = (t = e, function() {
                            !r[t] && (r[t] = []), r[t].push(arguments)
                        }))
                    })), a.addEventListener("renderComplete", (function() {
                        var e = function(e) {
                            r[e].forEach((function(t) {
                                a[e].apply(a, t)
                            }))
                        };
                        for (var n in r) e(n);
                        t._eiStore = {}
                    }))
                }, t.getType = function() {
                    return "chartAPI"
                }, r.mouseoutHandler = function(e, t, r) {
                    var n = this.config.datasetOrder || this.getDatasets(),
                        a = this.getChildren("mouseTracker")[0];
                    n[t] && n[t].components.data[r] ? n[t]._firePlotEvent("fc-mouseout", r, e) : this.getFromEnv("toolTipController").hideAll(), delete a._lastDatasetIndex, delete a._lastPointIndex
                }, r.getName = function() {
                    return "base"
                }, r.getType = function() {
                    return "chartAPI"
                }, r._mouseEvtHandler = function(e, t) {
                    w(this, e, t)
                }, r.getComponents = function(e, t) {
                    var r = [];
                    return (e || this).iterateComponents((function(e) {
                        e.getType() === t && r.push(e)
                    })), r
                }, r.getDatasets = function(e) {
                    var t = [];
                    return (e || this).iterateComponents((function(e) {
                        "dataset" === e.getType() && t.push(e)
                    })), t
                }, r.preConfigure = function(t) {
                    e.prototype.preConfigure.call(this, t),
                        function(e, t) {
                            var r;
                            for (r in t) t.hasOwnProperty(r) && (e[r] = t[r])
                        }(this.getFromEnv("chartInstance"), this.eiMethods)
                }, r.configureAttributes = function(t) {
                    e.prototype.configureAttributes.call(this, t), this.createBaseComponent()
                }, r.createBaseComponent = function() {
                    var e, t = this;
                    (e = t.getFromEnv("animationManager")) ? e.configure(): (e = new c["default"], t.addToEnv("animationManager", e), e.addToEnv("chart", t), e.addToEnv("animationManager", e), e.configure(), t.addExtEventListener("animationstart", (function(e) {
                        var r = e.data.duration;
                        r && t.fireChartInstanceEvent("animationinvoked", {
                            duration: r
                        })
                    }), e))
                }, r.setChartMessage = function(e, t, r) {
                    var n, a, o = r;
                    (0, i.componentFactory)(this, s["default"], "chartMessage"), a = this.getChildren("chartMessage")[0], o ? this.addToEnv("chart-container", o) : o = this.getFromEnv("chart-container"), (n = this.getFromEnv("paper")) || ((n = new((0, u.getDep)("redraphael", "plugin"))(o, this.getFromEnv("chartWidth"), this.getFromEnv("chartHeight"))).setHTMLClassName("fusioncharts-div"), this.addToEnv("paper", n)), n.setConfig("stroke-linecap", i.ROUND), !this.getChildContainer("messageGroup") && this.addChildContainer("messageGroup", n.group("messageGroup")), this.config.hasChartMessage = !0, a.setData({
                        message: e,
                        chartObj: t,
                        visible: !0
                    }, !0)
                }, r.drawChartMessage = function() {
                    this.config.hasChartMessage = !0, this._drawTexts()
                }, r._dispose = function() {
                    this._clearTimers && this._clearTimers();
                    var t = this.getFromEnv("paper");
                    t && t.remove && t.remove(), e.prototype._dispose.call(this)
                }, r.fireChartInstanceEvent = function(e, t, r, n, a) {
                    var i = this.getFromEnv("chartInstance");
                    (0, o.triggerEvent)(e, i, t, r, n, a)
                }, r._hideChartMessage = function() {
                    var e = this.getChildren("chartMessage");
                    this.config.hasChartMessage = !1, e && e[0].setData({
                        visible: !1
                    }, !0), this.getGraphicalElement("messageText") && this.getGraphicalElement("messageText").hide(), this.getGraphicalElement("messageVeil") && this.getGraphicalElement("messageVeil").hide()
                }, r._removeWaitingJobs = function() {
                    this.iterateComponents((function(e) {
                        return e.removeAllJobs()
                    }))
                }, r._drawTexts = function() {
                    var e = this.getFromEnv("core-options")[m],
                        t = this.getFromEnv("chartInstance").args[m],
                        r = (0, i.pluck)(t, e, x);
                    this._crCreate(r), r && this._scheduleLabelCheck(r)
                }, r._scheduleLabelCheck = function(e) {
                    var t = this;
                    t.addJob("checker", (function() {
                        var r, n = t.getContainer(v);
                        !n || (r = n).node && r.node.parentNode && 11 !== r.node.parentNode.nodeType || t._crCreate(e), t._scheduleLabelCheck(e)
                    }), h.priorityList.verification, {
                        oneInAFrame: !0,
                        addToTop: !1,
                        executionDelay: 300
                    })
                }, r._crCreate = function(e) {
                    var t, r, n, a, o = this,
                        s = o.getFromEnv("paper"),
                        l = +o.getFromEnv("chartHeight"),
                        c = o.getGraphicalElement(m),
                        u = o.getContainer("parentgroup"),
                        d = {
                            href: i.TXT_HREF,
                            text: i.TXT_STRING
                        };
                    e ? (o.getContainer(v) && o.removeContainer(v), c && o.removeGraphicalElement(c), r = o.addContainer(v, s.group(function(e) {
                        void 0 === e && (e = 8);
                        for (var t = i.BLANK, r = 0; r < e; r++) t += y();
                        return t
                    }(), !0)), u && r.insertAfter(u), n = {
                        text: d.text,
                        x: 6,
                        y: l - 4,
                        "vertical-align": i.POSITION_BOTTOM,
                        "text-anchor": i.POSITION_START,
                        fill: "rgba(0,0,0,0.5)",
                        title: d.title || i.BLANK
                    }, a = {
                        fontSize: 9,
                        fontFamily: "Verdana,sans",
                        cursor: i.POINTER,
                        _cursor: i.HAND
                    }, t = s.text(n, a, r), o.addGraphicalElement(m, t), o.config.observer ? o.config.observer.disconnect() : o.config.observer = new MutationObserver((function() {
                        return o._crCreate(e)
                    })), o.config.observer.observe(o.getContainer(v).node, f), t.on("fc-click", (function() {
                        try {
                            open(d.href)
                        } catch (e) {
                            (top || window).location.href = d.href
                        }
                    }))) : t && t.remove && (o.config.observer && o.config.observer.disconnect(), o.removeGraphicalElement(m))
                }, r._hideModal = function() {
                    this.getChildContainer("messageGroup").hide()
                }, r.remove = function(t) {
                    var r = this.getFromEnv("animationManager");
                    this.config.observer && this.config.observer.disconnect(), e.prototype.remove.call(this, t), r && r.remove(t)
                }, t
            }(l.ComponentInterface);
            C.stringConstants = {
                BACKGROUNDLOADED: "BackgroundLoaded",
                BACKGROUNDLOADERROR: "BackgroundLoadError",
                clipRectStr: "clip-rect"
            };
            var _ = C;
            t["default"] = _
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(208),
                o = r(193),
                s = o.preDefStr.noneStr,
                l = function(e, t) {
                    e.on("fc-click", (function() {
                        try {
                            open(t)
                        } catch (e) {
                            (top || window).location.href = t
                        }
                    })), e.css({
                        cursor: "pointer",
                        _cursor: "pointer"
                    })
                },
                c = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "chartMessage"
                    }, r.configureAttributes = function(t) {
                        e.prototype.configureAttributes.call(this, t);
                        var r = this.config;
                        for (var n in t) t.hasOwnProperty(n) && (r[n] = t[n])
                    }, r._drawBackground = function(e, t) {
                        void 0 === t && (t = {});
                        var r, n, a, i, c = this,
                            u = c.config,
                            d = c.getFromEnv("paper"),
                            h = c.getFromEnv("chart"),
                            f = u.visible,
                            g = c.getGraphicalElement("backgroundElement"),
                            p = c.getGraphicalElement("backgroundImage"),
                            m = c.getFromEnv("chartWidth"),
                            v = c.getFromEnv("chartHeight"),
                            b = c.getLinkedParent().getChildContainer("messageGroup").show(),
                            y = (0, o.pluckNumber)(t.imageAlpha, 100),
                            x = 0 + o.COMMA + 0 + o.COMMA + m + o.COMMA + v,
                            w = (0, o.getValidValue)(t.imageVAlign, o.BLANKSTRING).toLowerCase(),
                            C = (0, o.pluck)(t.imageHAlign, o.BLANKSTRING).toLowerCase(),
                            _ = (0, o.pluckNumber)(t.imageScale, 100),
                            k = c.getFromEnv("chartInstance"),
                            S = u.messageURL,
                            E = (0, o.getContainerBackgroundColor)(k);
                        d.canvas.style.backgroundColor = E, w !== o.POSITION_TOP && w !== o.POSITION_MIDDLE && w !== o.POSITION_BOTTOM && (w = o.POSITION_TOP), C !== o.POSITION_LEFT && C !== o.POSITION_MIDDLE && C !== o.POSITION_RIGHT && (C = o.POSITION_LEFT), n = {
                            x: 0,
                            y: 0,
                            width: m,
                            height: v,
                            stroke: s
                        }, g || (g = d.rect(b), c.addGraphicalElement("backgroundElement", g)), g.attr(n), g && S && l(g, S), u.bgImageVAlign = w, u.bgImageHAlign = C, u.bgImageScale = _, u.bgSWFAlpha = y, u.imgClipRect = x, e && ((r = p) ? r.attr({
                            src: e
                        }) : (r = c.getFromEnv("paper").image(b), c.addGraphicalElement("backgroundImage", r), r.attr({
                            src: e
                        }), r.on("load", (function() {
                            if (!(!r || r && r.removed)) {
                                var t = r._.RefImg;
                                a = c.getFromEnv("chartConfig"), u.isImage && (void 0 === a || a.hasChartMessage) && (i = (0, o.setImageDisplayMode)(s, u.bgImageVAlign, u.bgImageHAlign, u.bgImageScale, 0, c.getFromEnv("chartWidth"), c.getFromEnv("chartHeight"), t), (0, o.extend2)(i, {
                                    opacity: .01 * u.bgSWFAlpha,
                                    visibility: "visible",
                                    "clip-rect": u.imgClipRect
                                }), r.attr(i), f ? r.show() : r.hide(), r && S && l(r, S), h.fireChartInstanceEvent("backgroundloaded", {
                                    url: e,
                                    bgImageAlpha: 100 * u.bgSWFAlpha,
                                    bgImageDisplayMode: s,
                                    bgImageVAlign: u.bgImageVAlign,
                                    bgImageHAlign: u.bgImageHAlign,
                                    bgImageScale: u.bgImageScale,
                                    imageWidth: t.width,
                                    imageHeight: t.height
                                }))
                            }
                        })), r.on("error", (function(t) {
                            r.removed || h.fireChartInstanceEvent("backgroundloaderror", {
                                url: e,
                                bgImageAlpha: 100 * u.bgSWFAlpha,
                                error: t,
                                bgImageDisplayMode: s,
                                bgImageVAlign: u.bgImageVAlign,
                                bgImageHAlign: u.bgImageHAlign,
                                bgImageScale: u.bgImageScale
                            }, k)
                        }))))
                    }, r.configure = function(t) {
                        e.prototype.configure.call(this, t);
                        var r, n = this.getFromEnv("chartInstance"),
                            a = n.options,
                            i = n.args,
                            s = this.config,
                            l = s.message,
                            c = s.chartObj;
                        (s.strObj = (0, o.getImageURL)(void 0 !== l ? l : a.dataEmptyMessage)).image ? (r = c ? {
                            imageHAlign: (0, o.pluck)(c._chartMessageImageStyle.imageHAlign, a.baseChartMessageImageHAlign).toLowerCase(),
                            imageVAlign: (0, o.pluck)(c._chartMessageImageStyle.imageVAlign, a.baseChartMessageImageVAlign).toLowerCase(),
                            imageAlpha: (0, o.pluckNumber)(c._chartMessageImageStyle.imageAlpha, a.baseChartMessageImageAlpha),
                            imageScale: (0, o.pluckNumber)(c._chartMessageImageStyle.imageScale, a.baseChartMessageImageScale)
                        } : {
                            imageHAlign: (0, o.pluck)(i.dataEmptyMessageImageHAlign, a.baseChartMessageImageHAlign).toLowerCase(),
                            imageVAlign: (0, o.pluck)(i.dataEmptyMessageImageVAlign, a.baseChartMessageImageVAlign).toLowerCase(),
                            imageAlpha: (0, o.pluckNumber)(i.dataEmptyMessageImageAlpha, a.baseChartMessageImageAlpha),
                            imageScale: (0, o.pluckNumber)(i.dataEmptyMessageImageScale, a.baseChartMessageImageScale)
                        }, s.chartMessageType = "image") : (r = c ? {
                            "font-family": c._chartMessageStyle.fontFamily || a.baseChartMessageFont,
                            "font-size": c._chartMessageStyle.fontSize || a.baseChartMessageFontSize,
                            fill: c._chartMessageStyle.color || a.baseChartMessageColor
                        } : {
                            "font-family": i.dataEmptyMessageFont || a.baseChartMessageFont,
                            "font-size": i.dataEmptyMessageFontSize || a.baseChartMessageFontSize,
                            fill: i.dataEmptyMessageColor || a.baseChartMessageColor
                        }, s.chartMessageType = "text"), s.messageURL = a.messageURL, s.chartMessageStyle = r
                    }, r.manageSpace = function() {
                        var e, t, r, n = this.config,
                            a = n.chartMessageStyle,
                            i = this.getFromEnv("smartLabel"),
                            s = n.strObj,
                            l = this.getFromEnv("chartWidth"),
                            c = this.getFromEnv("chartHeight");
                        t = n.width = Number(l), e = n.height = Number(c), s.image ? r = s.string : (i.setStyle(a), r = {
                            text: i.getSmartText((0, o.parseUnsafeString)(s.string), t, e).text,
                            x: t / 2,
                            y: e / 2
                        }), n.chartMessageAttr = r
                    }, r.draw = function() {
                        var e, t, r, n = this.config,
                            a = this.getFromEnv("paper"),
                            i = n.visible,
                            s = n.isImage = "image" === n.chartMessageType,
                            c = n.messageURL,
                            u = s ? n.chartMessageAttr : (0, o.extend2)(n.chartMessageAttr, n.chartMessageStyle);
                        e = this.getGraphicalElement("messageText"), r = this._graphics, t = this.getLinkedParent().getChildContainer("messageGroup").show(), s ? this._drawBackground(n.chartMessageAttr, n.chartMessageStyle) : e || "text" !== n.chartMessageType ? (r.message = e.attr(u), i ? e.show() : e.hide()) : e = this.addGraphicalElement("messageText", a.text(u, t)), (e || r.message) && c && l(e || r.message, c), this._hideOtherMessage(s)
                    }, r._hideOtherMessage = function(e) {
                        var t, r, n;
                        e ? (r = this.getGraphicalElement("messageText")) && r.hide() : (t = this.getGraphicalElement("backgroundImage"), n = this.getGraphicalElement("backgroundElement"), t && t.hide(), n && n.hide())
                    }, r.getType = function() {
                        return "chartMessage"
                    }, t
                }(i.ComponentInterface);
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a, i = n(r(210)),
                o = n(r(207)),
                s = r(193),
                l = r(205),
                c = r(208),
                u = r(201),
                d = !s.hasSVG,
                h = {
                    initial: 1,
                    update: 0,
                    realTimeUpdate: 0,
                    resize: 0,
                    dispose: 0,
                    legendInteraction: 0,
                    scroll: 0,
                    mouseOut: 0,
                    mouseOver: 0,
                    "default": 0,
                    slicing: .25,
                    timenavSqueeze: 0,
                    selectedRange: 0,
                    timenavScroll: 0
                },
                f = ["default", "global", "chartSpecific"],
                g = {
                    fadeIn: {
                        opacity: {
                            start: 0,
                            end: 1
                        }
                    },
                    fadeOut: {
                        opacity: {
                            start: 1,
                            end: 0
                        }
                    }
                },
                p = {
                    fadeIn: function() {
                        this && this.show()
                    },
                    fadeOut: function() {
                        this && this.hide()
                    }
                },
                m = function(e) {
                    return null === e
                },
                v = function(e, t) {
                    void 0 === t && (t = "");
                    var r = t.split(","),
                        n = [];
                    return r.forEach((function(t) {
                        e[t] && e[t].animation && n.push(e[t].animation)
                    })), n
                },
                b = function(e, t, r) {
                    var n, a = Object.assign({}, e),
                        i = r / t;
                    return i > .2 && (i = .2), n = a.end - a.start, a.start *= 1 - i, a.start += i, a.end = a.start + (1 - i) * n, a.start = Math.round(100 * a.start) / 100, a.end = Math.round(100 * a.end) / 100, a
                },
                y = function(e, t, r) {
                    var n, i = g[t],
                        o = s.BLANKSTRING,
                        l = {};
                    if (i && e && e.el && e.el[0]) {
                        for (o in i) l[o] = e.el.attrs[o], l[o] === a && (l[o] = null), e.attrs[o] = i[o].end, e.el.attr(o, i[o].start);
                        n = e.callback, e.callback = function() {
                            r && p[t] && p[t].call(this), n && n.call && n.call(this), this.attr(l)
                        }
                    }
                },
                x = function(e, t) {
                    var r, n = t,
                        a = !0;
                    if (n) {
                        for (e.attrs = e.attrs || {}, ~(n = n.split("-")).indexOf("nc") && (a = !1), r = n.length; r--;) y(e, n[r], a);
                        return e
                    }
                },
                w = function(e, t, r, n, a, i, o, s) {
                    e.animateWith(a, i, t, o, s, r, n)
                },
                C = function(e) {
                    var t = {};
                    for (var r in e)
                        if (e.hasOwnProperty(r) && "__esModule" !== r) {
                            var n = e[r];
                            _(t, n)
                        }
                    return t
                },
                _ = function(e, t) {
                    for (var r in t) t.hasOwnProperty(r) && (!e[r] && (e[r] = []), e[r].push(t[r]))
                },
                k = function(e) {
                    return "function" == typeof e
                };

            function S(e, t, r, n) {
                var a, i, o, s, l, c = e.length,
                    u = 0,
                    d = 0,
                    h = t;
                for (i = 0, o = 0, l = 0; l < c; l += 1)(a = e[l]).hasAnimation || !1 === a.collapsible ? o += 1 : i += a.duration, d += a.duration;
                for (i /= o, l = 0; l < c; l += 1)(a = e[l]).hasAnimation && (s = r - t, h = (u = h) + (a.duration / d + i) * s, n[a.name] = {
                    start: u,
                    end: h,
                    effect: a.effect,
                    transition: a.transition
                }, a.child && A(a.child, u, h, n))
            }

            function E(e, t, r, n) {
                var a, i, o;
                i = t + (i = e.start) * (a = r - t), o = t + (o = e.end) * a, n[e.name] = {
                    start: i,
                    end: o,
                    effect: e.effect,
                    transition: e.transition
                }, e.child && A(e.child, i, o, n)
            }

            function A(e, t, r, n) {
                var a, i, o = e.length;
                for (a = 0; a < o; a++) i = e[a], Array.isArray(i) ? S(i, t, r, n) : E(i, t, r, n)
            }
            g.fadein = g.fadeIn, g.fadeout = g.fadeOut;
            var T = function(e) {
                (0, o["default"])(r, e);
                var t = r.prototype;

                function r() {
                    var t;
                    t = e.call(this) || this;
                    var r = (0, i["default"])(t);
                    return r._removedGraphics = [], r._animCallBack = function() {
                        if (!r.getState("removed") && !this.removed) {
                            var e = r.getAnimationState();
                            r._removeElems(), r.reset(), r.fireEvent("animationComplete", {
                                currAnimState: e
                            })
                        }
                    }, r.startAnimation = function() {
                        r.kickStart(), r.animate()
                    }, t
                }
                return t.getType = function() {
                    return "animationManager"
                }, t.getName = function() {
                    return "animationManager"
                }, t.stopAnimation = function() {
                    if (this.getState("chartAnimating")) {
                        var e, t = this.config.animationObj,
                            r = t && t.duration;
                        r ? (e = this.getGraphicalElement().dummyObj) && e.stop(a, !0, !0) : 0 === r && (this.removeJob("anim-callBack"), this._animCallBack())
                    }
                }, t.kickStart = function() {
                    var e, t, r, n = this.config,
                        i = this.getGraphicalElement(),
                        o = this.getFromEnv("paper"),
                        s = n.animationObj,
                        l = n.animationeffect;
                    t = s.duration, s.animObj = r = (0, u.getDep)("redraphael", "plugin").animation({
                        x: 0
                    }, t, l, this._animCallBack, !0), s.animType = l, (e = i.dummyObj) ? e.attr({
                        x: 100
                    }) : (e = o.rect({
                        x: 100,
                        y: 0,
                        width: 10,
                        height: 30
                    }), this.addGraphicalElement("dummyObj", e), e.hide()), s.dummyObj = i.dummyObj, e.stop(a, !0, !0), this.fireEvent("animationStart", {
                        duration: t
                    }), this.setState("chartAnimating", !0), e.animate(r)
                }, t.setAnimationState = function(e) {
                    void 0 === e && (e = a), e && this.stopAnimation(), this.config.__state = e, this._setAnimDuration(e)
                }, t.getAnimationState = function() {
                    return this.config && this.config.__state
                }, t._setAnimDuration = function(e) {
                    void 0 === e && (e = "default");
                    var t = this.config,
                        n = t.animationObj || (t.animationObj = {}),
                        a = t.animationDuration || (t.animationDuration = {}),
                        i = this.getFromEnv("chart").getFromEnv("chart-attrib") || {},
                        o = e + "AnimDuration",
                        s = t.killSwitch ? 0 : 1e3 * (a[o] || i[o.toLowerCase()] || r.getFallbackAnimDuration(e));
                    n && (n[o] = s, n.duration = +s)
                }, t.configureAttributes = function() {
                    var e = this.getFromEnv("chart"),
                        t = e.config,
                        r = this.config,
                        n = e.getFromEnv("chart-attrib") || {};
                    r.killSwitch = !(0, s.pluckNumber)(n.animation, t.animation, 1), r.animationeffect = t.animationeffect || "linear", this.invokeAnimationRules(), !r.workingRules && (r.workingRules = {}), !r.animateArr && (r.animateArr = []), !r.animationName && (r.animationName = [])
                }, t.invokeAnimationRules = function() {
                    var e, t = this.getFromEnv("chart"),
                        n = t.getFromEnv("chart-attrib") || {},
                        a = t.config || {},
                        i = this.config,
                        o = t.getFromEnv("chartInstance").args.animation,
                        l = t.getFromEnv("core-options").defaultTheme,
                        c = function(e) {
                            var t, r = {};
                            for (var n in e) e.hasOwnProperty(n) && (r[(t = e[n]).name] = t);
                            return r
                        }((0, u.getDepsByType)("theme")),
                        d = (t.getFromEnv("core-options")._globalAnimationRule || []).concat(v(c, l)),
                        h = (o && [o] || []).concat(v(c, a.theme));
                    i.animationRules = {
                        global: C(d.map((function(e) {
                            return e && e.rule
                        })).filter((function(e) {
                            return e
                        }))),
                        chartSpecific: C(h.map((function(e) {
                            return e && e.rule
                        })).filter((function(e) {
                            return e
                        }))),
                        "default": C((0, u.getDepsByType)("animationRule"))
                    }, i.animationDuration = e = {}, d.map((function(t) {
                        return Object.assign(e, t.duration)
                    })), h.map((function(t) {
                        return Object.assign(e, t.duration)
                    })), e.initialAnimDuration = (0, s.pluckNumber)(e.initialAnimDuration, n.initialanimduration, n.animationduration), this.config.slots = r.getFallbackAnimTimeSlots().concat([].concat.apply([], d.map((function(e) {
                        return e.slots
                    }))).filter((function(e) {
                        return e
                    }))).concat([].concat.apply([], h.map((function(e) {
                        return e.slots
                    }))).filter((function(e) {
                        return e
                    })))
                }, t.reInitialize = function() {
                    var e = this.config.animationObj.duration;
                    this.setState("initialized", !0), e ? this.addJob("start-animation", this.startAnimation, l.priorityList.animation) : (this.fireEvent("animationStart", {
                        duration: e
                    }), this.setState("chartAnimating", !0), this.addJob("anim-callBack", this._animCallBack, l.priorityList.animation))
                }, t.reset = function() {
                    this.setState("initialized", !1), this.config && this.config.animateArr && (this.config.animateArr.length = 0), this.setState("chartAnimating", !1), this.setAnimationState()
                }, t.registerAnimObj = function(e) {
                    var t;
                    for (t in e) this.registerAnimation(e[t], t)
                }, t.getFinalSlots = function() {
                    var e = this.config,
                        t = e.slots,
                        r = e.workingRules = {};
                    return function n(e, t) {
                        var r, a, i, o, s, l, c = !1;
                        if (!e) return !1;
                        for (i = 0, o = e.length; i < o; i += 1)
                            if (a = e[i], Array.isArray(a))
                                for (s = 0, l = e[i].length; s < l; s += 1) a = e[i][s], r = !1, -1 !== t.indexOf(a.name) ? r = !0 : a.child && (r = a.hasAnimation = n(a.child, t)), c = c || r, a.hasAnimation = r;
                            else r = !1, -1 !== t.indexOf(a.name) ? r = !0 : a.child && (r = a.hasAnimation = n(a.child, t)), c = c || r, a.hasAnimation = r;
                        return c
                    }(t, e.animationName), A(t, 0, 1, r), r["default"] = {
                        start: 0,
                        end: 1
                    }, r
                }, t.registerOne = function(e, t) {
                    this.registerAnimation([{
                        data: [e]
                    }], t)
                }, t.registerAnimation = function(e, t) {
                    void 0 === e && (e = []);
                    var r, n, a, i = !1;
                    for (r = 0, a = e.length; r < a; r += 1)(n = e[r]).data && n.data.length && (this.config.animateArr.push((n.component = t, n)), i = !0);
                    i && this.config.animationName.push(t), !this.getState("initialized") && this.reInitialize()
                }, t.onAnimationComplete = function(e) {
                    this.addEventListener("animationComplete", (function(t) {
                        e(), t.detachHandler()
                    }))
                }, r.removeOpacityFromGroup = function(e, t) {
                    t && d && ("group" === e || "group" === e.type) && delete t.opacity
                }, t.setAnimation = function(e) {
                    void 0 === e && (e = {});
                    var t, n, i, o, l, c, u, d, h, f, g, p, m, v, b = this.config,
                        y = b.animationObj,
                        x = e.el,
                        w = e.attr || {},
                        C = {},
                        _ = {},
                        k = function(t, r, n, a) {
                            return function() {
                                n.callback && n.callback.call(this), t && this.attr(t), r && e.callback && e.callback.call(this), a && this.appendTo(a)
                            }
                        },
                        S = function(e, t, r) {
                            return function() {
                                t.hookFn && t.hookFn.call(this), e && this.attr(e), r && this.appendTo(r)
                            }
                        },
                        E = [],
                        A = y.duration,
                        T = this.getState("chartAnimating"),
                        N = "object" == typeof x && e.container && x.parent !== e.container;
                    if (this.getState("chartAnimating") && b.animationObj && b.animationObj.duration && this.setAnimationState("default"), !T && A && (h = this.getAnimAttributes(e))) {
                        for (d = h.length, v = !1, g = !(f = "appearing" === e.state || "string" == typeof x) && x.attrs, u = {}, c = 0; c < d; c++) {
                            for (o in p = c === d - 1, l = E[c] = {}, t = (m = h[c]).finalAttr, n = m.initialAttr, r.removeOpacityFromGroup(e.el, n), r.removeOpacityFromGroup(e.el, t), n) u[o] = n[o], _[o] === a && (_[o] = n[o]);
                            for (o in t) u[o] = t[o], f && _[o] === a && (_[o] = t[o]);
                            if (l.attrs = t, l.transition = m.transition, l.effect = m.effect, l.animConfig = [m.startEnd], m.callback && (l.callback = m.callback), (v = N && m.changeGroup) && (N = !1), p) {
                                if (f)
                                    for (o in w) _[o] === a && (_[o] = w[o]);
                                for (o in w) i = w[o], !u[o] && f || u[o] === i || (t && t[o] === a ? t[o] = i : C[o] = i);
                                for (o in u) C[o] === a && (i = (0, s.getFirstValue)(w[o], g[o]), u[o] !== i && (t && t[o] === a && i !== a ? t[o] = i : C[o] = i));
                                t || (l.attrs = C), l.callback = k((t || n) && C, p, m, N && e.container), x = this.setAttributes(x, {
                                    attr: _,
                                    inputJSON: e
                                })
                            }(n || m.hookFn || v) && (l.animConfig[0].hookFn = S((!f || c) && n, m, v && e.container))
                        }
                        for (c = 0; c < d; c++) E[c].el = x.el, this.registerAnimation([{
                            data: [E[c]]
                        }], h[c].slot)
                    } else T ? x = this.setAttributes(x, {
                        attr: w,
                        inputJSON: e,
                        groupChangeReq: N,
                        immediate: !0
                    }) : (this.registerAnimation(), x = this.setAttributes(x, {
                        attr: w,
                        inputJSON: e,
                        groupChangeReq: N,
                        immediate: !0
                    }));
                    return x.removed ? null : x.el
                }, t._removeElems = function() {
                    if (this.getFromEnv("paper") && !this.getFromEnv("paper").removed) {
                        this._removedGraphics.forEach((function(e) {
                            return e.remove && e.remove()
                        })), this._removedGraphics.length = 0
                    }
                }, t.removeElement = function(e, t) {
                    return t ? e.remove() : this._removedGraphics.push(e), null
                }, r._ruleSelectorQueryBuilder = function(e, t) {
                    void 0 === t && (t = !0);
                    var r = e.label,
                        n = e.state,
                        a = e.component,
                        i = a.getType(),
                        o = a.getName();
                    if (t) {
                        var s = ["*", "*.*", "*.*.*"],
                            l = ["*.*." + o, "*." + i + ".*", "*." + i + "." + o];
                        return "*" === n ? s.concat(l) : s.concat(l, [n + ".*", n + ".*.*", n + ".*." + o, n + "." + i + ".*", n + "." + i + "." + o])
                    }
                    return [r + "." + n, r + ".*", "*." + n, "*.*", "*"]
                }, t._getRulesByState = function(e) {
                    var t, n, i, o, s = e.component,
                        l = this.getAnimationState() || "*",
                        c = r._ruleSelectorQueryBuilder(Object.assign(e, {
                            state: l
                        }));
                    return (t = (o = s.getState("animRules") || {})[l]) ? t : (n = o[l] = {}, i = this.config.animationRules, f.forEach((function(e) {
                        var t = i[e];
                        t && c.forEach((function(e) {
                            t[e] && (Array.isArray(t[e]) ? t[e].forEach((function(e) {
                                n = o[l] = m(e) ? null : Object.assign(n || {}, k(e) ? e.call(s) : e)
                            })) : n = o[l] = m(t[e]) ? null : Object.assign(n || {}, k(t[e]) ? t[e].call(s) : t[e]))
                        }))
                    })), s.setState("animRules", o), !s.getState("ruleFlushAttached") && s.addExtEventListener("predraw", (function() {
                        s.setState("animRules", a), s.setState("ruleFlushAttached", !0)
                    }), s.getFromEnv("chart")), n)
                }, r._getRulesByElement = function(e, t) {
                    var n;
                    return r._ruleSelectorQueryBuilder(t, !1).forEach((function(t) {
                        n === a && (n = e[t])
                    })), n
                }, t.getAnimAttributes = function(e) {
                    var t, n, a, i, o, s = e.component || this.getFromEnv("chart"),
                        l = e.label || ("object" == typeof e.el ? e.el.type : e.el),
                        c = e.state,
                        u = this._getRulesByState({
                            label: l,
                            component: s
                        }),
                        d = [];
                    if (!m(u) && (!c && (c = "string" == typeof e.el ? "appearing" : e.attr ? "updating" : "disappearing"), t = r._getRulesByElement(u, {
                            component: s,
                            state: c,
                            label: l
                        }), !m(t))) {
                        if (!t) return r.getFallbackAnimRule(e);
                        if (!k(t) || (t = t.call(s, e), !m(t))) {
                            for (o = t.length, i = 0; i < o; i++) a = {}, (n = t[i]).initialAttr && (a.initialAttr = k(n.initialAttr) ? n.initialAttr.call(s, e) : Object.assign({}, n.initialAttr)), n.finalAttr && (a.finalAttr = k(n.finalAttr) ? n.finalAttr.call(s, e) : Object.assign({}, n.finalAttr)), a.startEnd = k(n.startEnd) ? n.startEnd.call(s, e) : n.startEnd ? Object.assign({}, n.startEnd) : {
                                start: 0,
                                end: 1
                            }, a.slot = n.slot || "default", a.callback = n.callback, a.hookFn = n.hookFn, a.transition = n.transition, a.effect = n.effect || "linear", n.groupChange && (a.groupChange = !0), d.push(a);
                            return d
                        }
                    }
                }, r.getFallbackAnimRule = function(e) {
                    if ("appearing" === e.state || "string" == typeof e.el) {
                        if ("group" !== e.el) return [{
                            initialAttr: {
                                opacity: 0
                            },
                            finalAttr: {
                                opacity: (0, s.pluckNumber)(e.attr && e.attr.opacity, 1)
                            },
                            startEnd: {
                                start: 0,
                                end: 1
                            }
                        }]
                    } else {
                        if ("updating" === e.state || e.attr) return [{
                            startEnd: {
                                start: 0,
                                end: 1
                            }
                        }];
                        if ("group" !== e.el.type) return [{
                            initialAttr: {
                                opacity: 1
                            },
                            finalAttr: {
                                opacity: 0
                            },
                            startEnd: {
                                start: 0,
                                end: 1
                            }
                        }]
                    }
                }, r.getFallbackAnimDuration = function(e) {
                    return h[e] || 0
                }, r.getFallbackAnimTimeSlots = function() {
                    return [{
                        name: "_default",
                        start: 0,
                        end: 1,
                        child: [
                            [{
                                name: "initial",
                                duration: .125
                            }, {
                                name: "middle",
                                duration: .75,
                                child: [
                                    [{
                                        name: "axis",
                                        duration: .25
                                    }, {
                                        name: "plot",
                                        duration: .75
                                    }]
                                ]
                            }, {
                                name: "final",
                                duration: .125
                            }]
                        ]
                    }]
                }, t.createElement = function(e, t, r) {
                    void 0 === t && (t = {});
                    var n = e,
                        a = this.getFromEnv("paper");
                    if (a || (a = this.getFromEnv("chart").getFromEnv("paper"), this.addToEnv("paper", a)), "group" === n)(n = a.group(r.attr && r.attr.name || "", r.container)).attr(t);
                    else if ("html" === n) n = a.html(r.attr.type, t, r.css, r.container);
                    else {
                        if ("text" === n && r.css) return a[r.el](t, r.css, r.container);
                        n = a[r.el](t, r.container)
                    }
                    return n
                }, t.setAttributes = function(e, t) {
                    var r, n = e,
                        a = t.attr,
                        i = t.inputJSON || {};
                    return "string" == typeof n ? n = this.createElement(n, a, i) : 0 !== Object.keys(a).length ? n.attr(a) : i.attr && "disappearing" !== i.state || (r = !i.doNotRemove), r ? this.removeElement(n, t.immediate) : (i.css && n.css(i.css), t.groupChangeReq && n.appendTo(i.container), t.immediate && i.callback && i.callback.call(n)), {
                        el: n,
                        removed: r
                    }
                }, t.prepareAnimateArr = function(e) {
                    var t, r, n, i, o, s, l, c, u, d = this.config.preAnimArr = [];

                    function h(e, t) {
                        var n, i, o, s = {
                            start: 0,
                            end: 1
                        };
                        for (o in e)
                            if (e.hasOwnProperty(o)) {
                                if (e[o].syncWith && !r[e[o].syncWith]) continue;
                                n = e[o].syncWith, s.start = e[o].start === a ? 0 : e[o].start, s.end = e[o].end === a ? 1 : e[o].end, s.hookFn = e[o].hookFn || e.hookFn, s.smartMorph = e[o].smartMorph || e.smartMorph;
                                break
                            }
                        return n = n && r[n] ? n : t && r[t] ? t : "default", i = r[n].end - r[n].start, s.start = r[n].start + s.start * i, s.end = r[n].start + s.end * i, s
                    }
                    for (r = this.getFinalSlots(), i = 0, o = e.length; i < o; i += 1) {
                        for (n = (t = e[i]).component, s = 0, l = t.data.length; s < l; s += 1)(c = (u = t.data[s]).transition || r[n] && r[n].transition) && x(u, c), u.preAnimFn && d.push({
                            el: u.el,
                            fn: u.preAnimFn
                        }), u.animConfig && (u.animConfig = h(u.animConfig, n));
                        t.effect || r[n] && (t.effect = r[n].effect), t.animConfig || (t.animConfig = [{}]), t.animConfig = h(t.animConfig, n)
                    }
                }, t.animate = function() {
                    var e, t, r, n, a, i, o, s, l = this.config,
                        c = this.config.animateArr,
                        u = l.animationObj,
                        d = u.animObj,
                        h = u.dummyObj,
                        f = u.duration;
                    for (this.prepareAnimateArr(c), function(e) {
                            var t = 0,
                                r = e.length;
                            for (t = 0; t < r; ++t) e[t].fn && e[t].fn.call(e[t].el)
                        }(this.config.preAnimArr), a = 0, i = c.length; a < i; a += 1)
                        for (o = 0, s = (t = c[a]).data.length - 1; o <= s; o += 1) r = t.data[o].animConfig || t.animConfig, r = b(r, f, 180), e = t.data[o].effect || t.effect || "linear", n = a === i && t.callback || t.data[o].callback, t.data[o].preAttrs && t.data[o].el.attr(t.data[o].preAttrs), t.data[o].el && w(t.data[o].el, t.data[o].attrs, n || null, r, h, d, f, e)
                }, t.remove = function(t) {
                    this.removeAllJobs(), t.instant && this.getGraphicalElement("dummyObj") && this.getGraphicalElement("dummyObj").remove(), e.prototype.remove.call(this, t)
                }, r
            }(c.ComponentInterface);
            t["default"] = T
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = {
                pie2d: ["isPlotItemSliced", "addData", "removeData", "updateData", "slicePlotItem", "startingAngle"],
                dragcolumn2d: ["getDataWithId", "getData", "setUpperLimit", "setLowerLimit", "getLowerLimit", "getUpperLimit"],
                realtimecolumn: ["feedData", "setData", "stopUpdate", "restartUpdate", "isUpdateActive", "clearChart", "getData", "getDataForId", "setDataForId", "getDataJSON", "showLog", "hideLog", "clearLog"],
                scrollcolumn2d: ["scrollTo"],
                scrollbar2d: ["scrollTo"],
                boxandwhisker2d: ["scrollTo"],
                doughnut: ["centerLabel"],
                zoomline: ["zoomOut", "zoomTo", "resetChart", "setZoomMode", "getViewStartIndex", "getViewEndIndex", "scrollTo"],
                maps: ["getMapName", "getEntityList", "getMapAttribute", "exportMap", "addMarker", "updateMarker", "removeMarker"],
                "*": ["exportChart", "getXML", "getChartAttribute", "getCSVData", "getChartData", "getDataAsCSV", "getJSONData", "getSVGString", "getXMLData"]
            };
            n.pie3d = n.pie2d, n.doughnut2d = n.doughnut3d = n.doughnut.concat(n.pie2d), n.dragarea = n.dragline = n.dragnode = n.dragcolumn2d, n.realtimearea = n.realtimeline = n.realtimelinedy = n.realtimestackedarea = n.realtimestackedcolumn = n.bulb = n.angulargauge = n.hlineargauge = n.hled = n.vled = n.vbullet = n.hbullet = n.thermometer = n.cylinder = n.realtimecolumn, n.scrollarea2d = n.scrollline2d = n.scrollcombidy2d = n.scrollcombi2d = n.scrollstackedcolumn2d = n.scrollmsstackedcolumn2d = n.scrollmsstackedcolumn2dlinedy = n.scrollcolumn2d, n.zoomlinedy = n.zoomline;
            var a = n;
            t["default"] = a
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = {
                extension: function() {
                    function e() {}
                    var t = e.prototype;
                    return t.draw = function() {}, t.drawAt = function() {}, t.hide = function() {}, t.hideAll = function() {}, t.enableToolTip = function() {}, t.disableToolTip = function() {}, t.setStyle = function() {}, t.setApplyScale = function() {}, e
                }(),
                name: "ToolTipController",
                type: "plugin"
            };
            t["default"] = n
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(242));
            t.MessageLogger = a["default"];
            var i = n(r(245));
            t.linkedChartsExtension = i["default"];
            var o = n(r(247));
            t.XMLTranscoder = o["default"];
            var s = n(r(248));
            t.CSVTranscoder = s["default"];
            var l = n(r(250));
            t.JSONUrlTranscoder = l["default"];
            var c = n(r(253));
            t.XMLUrlTranscoder = c["default"];
            var u = n(r(254));
            t.IgnoreCaseExt = u["default"];
            var d = n(r(255));
            t.ThemeEngine = d["default"];
            var h = n(r(256));
            t.DefaultTheme = h["default"];
            var f = n(r(257));
            t.PlotHighlighter = f["default"];
            var g = n(r(259));
            t.ToolTipController = g["default"];
            var p = n(r(261));
            t.ConsolidatedToolTip = p["default"];
            var m = n(r(262));
            t.AlertManager = m["default"];
            var v = n(r(264));
            t.DataSkipping = v["default"];
            var b = n(r(268));
            t.Annotation = b["default"];
            var y = n(r(293));
            t.RegressionExtension = y["default"];
            var x = n(r(299));
            t.inputAdapter = x["default"];
            var w = n(r(328));
            t.LegendEventManagerLinker = w["default"];
            var C = n(r(329));
            t.exportModule = C["default"];
            var _ = n(r(336));
            t.BatchExportLinker = _["default"];
            var k = n(r(337));
            t.LogoExtension = k["default"];
            var S = n(r(339));
            t.supportOldThemes = S["default"];
            var E = n(r(340));
            t.debug = E["default"];
            var A = n(r(341));
            t.CenterLabel = A["default"];
            var T = n(r(344));
            t.CrossLine = T["default"];
            var N = n(r(348));
            t.MultiCanvasCrossLine = N["default"];
            var M = {
                name: "features",
                type: "package",
                requiresFusionCharts: !0,
                extension: function(e) {
                    e.addDep(i["default"]), e.addDep(o["default"]), e.addDep(s["default"]), e.addDep(l["default"]), e.addDep(c["default"]), e.addDep(u["default"]), e.addDep(d["default"]), e.addDep(f["default"]), e.addDep(h["default"]), e.addDep(g["default"]), e.addDep(p["default"]), e.addDep(m["default"]), e.addDep(a["default"]), e.addDep(v["default"]), e.addDep(b["default"]), e.addDep(C["default"]), e.addDep(y["default"]), e.addDep(x["default"]), e.addDep(w["default"]), e.addDep(_["default"]), e.addDep(k["default"]), e.addDep(S["default"]), e.addDep(E["default"]), e.addDep(A["default"]), e.addDep(T["default"]), e.addDep(N["default"])
                }
            };
            t["default"] = M
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(243)),
                i = {
                    timeseries: !0
                },
                o = function(e) {
                    var t = e.sender.getName().toLowerCase();
                    "chartAPI" !== e.sender.getType() || i[t] || e.sender.registerFactory("messageLogger", (function(t) {
                        if (t.getChildren("messageLogger")) t.getChildren("messageLogger")[0].configure(t);
                        else {
                            var r = new a["default"];
                            r.configure(t), r.addToEnv("chart-container", t.getFromEnv("chart-container")), t.attachChild(r, "messageLogger"), t.getFromEnv("chartInstance").showLog = function() {
                                return r && r.show && r.show()
                            }, t.getFromEnv("chartInstance").hideLog = function() {
                                return r && r.hide && r.hide()
                            }, t.getFromEnv("chartInstance").clearLog = function() {
                                return r && r.clearLog && r.clearLog()
                            }, e.sender.addEventListener("realtimeDataUpdate", (function(e) {
                                e.sender.getChildren("messageLogger") && e.sender.getChildren("messageLogger")[0].addLog(e.data)
                            }))
                        }
                    }))
                };
            var s = {
                extension: function(e) {
                    e.addEventListener("instantiated", o)
                },
                name: "messageLoggerLinker",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(244)),
                o = r(208),
                s = r(193),
                l = Math.min,
                c = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).pIndex = 1, t.linkedItems = t.linkedItems || (t.linkedItems = {}), t.components = t.components || {}, t.components.messages = t.components.messages || [], t.graphics = t.graphics || {}, t.config = t.config || (t.config = {}), t
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getType = function() {
                        return "extension"
                    }, r.getName = function() {
                        return "MessageLogger"
                    }, r.configure = function(e) {
                        this.linkedItems.chart = e;
                        var t = e.getFromEnv("chart-attrib") || {},
                            r = this.config.usemessagelog = e.getFromEnv("chartConfig").usemessagelog;
                        this.config.messageLogWPercent = l((0, s.pluckNumber)(t.messagelogwpercent, 80), 100), this.config.messageLogHPercent = l((0, s.pluckNumber)(t.messageloghpercent, 70), 100), this.config.messageLogShowTitle = (0, s.pluckNumber)(t.messagelogshowtitle, 1), this.config.messageLogTitle = (0, s.pluck)(t.messagelogtitle, "Message Log"), this.config.messageLogColor = (0, s.pluck)(t.messagelogcolor, "#fbfbfb").replace(/^#?([a-f0-9]+)/gi, "$1"), this.config.messageLogColorRgb = (0, s.HEXtoRGB)(this.config.messageLogColor), this.config.messageGoesToJS = (0, s.pluckNumber)(t.messagegoestojs, 0), this.config.messageGoesToLog = (0, s.pluckNumber)(t.messagegoestolog, 1), this.config.messageJSHandler = (0, s.pluck)(t.messagejshandler, ""), this.config.messagePassAllToJS = (0, s.pluckNumber)(t.messagepassalltojs, 0), this.config.messagePassAsObject = (0, s.pluckNumber)(t.messagepassasobject, 0), this.config.messageLogIsCancelable = (0, s.pluckNumber)(t.messagelogiscancelable, 1), this.config.alwaysShowMessageLogMenu = (0, s.pluckNumber)(t.alwaysshowmessagelogmenu, r), e.config.useShowLogMenu = r && this.config.messageGoesToLog, this.config.dynamicScrolling = !1, this.config.scrollToBottom = !0
                    }, r._createMessage = function(e) {
                        var t = new i["default"](e, this);
                        return this.graphics.container && t.draw(), t
                    }, r.addLog = function(e) {
                        var t, r = this.components.messages,
                            n = (0, s.pluckNumber)(e.msgGoesToLog, this.config.messageGoesToLog),
                            a = (0, s.pluckNumber)(e.msgGoesToJS, this.config.messageGoesToJS),
                            i = window[this.config.messageJSHandler],
                            o = (0, s.pluck)(e.msgId, ""),
                            l = (0, s.pluck)(e.msgTitle, ""),
                            c = (0, s.pluck)(e.msgText, ""),
                            u = (0, s.pluck)(e.msgType, "literal");
                        0 !== this.config.usemessagelog && (a && i && "function" == typeof i && (this.config.messagePassAllToJS ? this.config.messagePassAsObject ? i(e) : i(o, l, c, u) : i(c)), "1" === e.clearLog && this.clearLog(), n && (e.msgTitle || e.msgText) && (t = this._createMessage(e), r.push(t), 1 !== r.length || this.config.visible || this.show()))
                    }, r.show = function() {
                        this.config.visible || 1 !== this.config.usemessagelog || (this.config.visible = !0, this.draw(), this.graphics.container || this.draw(), this.graphics.container && this.graphics.container.show())
                    }, r.hide = function() {
                        this.config.visible = !1, this.graphics.container && this.graphics.container.hide()
                    }, r.clearLog = function() {
                        var e, t = this.components.messages,
                            r = t.length;
                        for (e = 0; e < r; e += 1) t[e] && t[e].dispose && t[e].dispose();
                        t.splice(0, r)
                    }, r.isDrawn = function() {
                        return !!this.graphics.container
                    }, r.draw = function() {
                        var e, t, r = this.components.messages;
                        if (0 === this.config.usemessagelog) this.isDrawn() && (this.clearLog(), this.hide());
                        else
                            for (this._createHTMLDialogue(), this.config.visible || this.hide(), t = r.length, e = 0; e < t; e += 1) r[e] && r[e].draw && r[e].draw()
                    }, r._createHTMLDialogue = function() {
                        var e, t, r, n, a = this,
                            i = this.config,
                            o = this.graphics,
                            s = this.getFromEnv("paper"),
                            l = this.linkedItems.chart.config,
                            c = l.width,
                            u = l.height,
                            d = l.style,
                            h = d && d.inCanvasStyle,
                            f = this.config.messageLogWPercent,
                            g = this.config.messageLogHPercent,
                            p = this.config.messageLogShowTitle,
                            m = this.config.messageLogIsCancelable,
                            v = this.config.messageLogColor,
                            b = this.config.messageLogTitle,
                            y = c * (f / 100),
                            x = u * (g / 100),
                            w = (c - y) / 2,
                            C = (u - x) / 2,
                            _ = y - 18 - 22,
                            k = x - 18 - 22,
                            S = v,
                            E = v,
                            A = o.container,
                            T = this.isDrawn() && l.animation && l.animation.transposeAnimDuration;
                        A || (A = o.container = s.html("div", {
                            fill: "transparent"
                        }, {
                            fontSize: "10px",
                            lineHeight: "15px"
                        }, this.getFromEnv("chart-container")), o.veil = s.html("div", {
                            id: "veil",
                            fill: "000000",
                            opacity: .1
                        }, void 0, A).on("fc-click", (function() {
                            m && a.hide()
                        })), b && p && (o.title = s.html("p", {
                            id: "Title",
                            innerHTML: b,
                            x: 5,
                            y: 5
                        }, {
                            "font-weight": "bold"
                        }, A)), o.dialog = s.html("div", {
                            id: "dialog",
                            strokeWidth: 1
                        }, {
                            borderRadius: "5px",
                            boxShadow: "1px 1px 3px #000000",
                            "-webkit-border-radius": "5px",
                            "-webkit-box-shadow": "1px 1px 3px #000000",
                            filter: 'progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color="#000000")'
                        }, A), o.logBackground = s.html("div", {
                            id: "dialogBackground",
                            x: 0,
                            y: 0
                        }, void 0, o.dialog), m && (o.closeButton = s.html("div", {
                            id: "closeButton",
                            x: y - 11 - 3,
                            y: 2,
                            innerHTML: "<b>x</b>"
                        }, {
                            cursor: "pointer",
                            _cursor: "hand"
                        }, o.dialog).on("fc-click", (function() {
                            m && a.hide()
                        }))), o.logWrapper = s.html("div", {
                            id: "logWrapper"
                        }, {
                            overflow: "auto"
                        }, o.dialog).on("scroll", (function() {
                            var e = this && this.scrollTop,
                                t = this && this.scrollHeight,
                                r = this && this.offsetHeight;
                            i.dynamicScrolling ? i.dynamicScrolling = !1 : i.scrollToBottom = t - e === r
                        })), o.log = s.html("div", {
                            id: "log",
                            x: 0,
                            y: 0
                        }, {}, o.logWrapper)), A.css({
                            fontFamily: h.fontFamily
                        }), o.dialog.attr({
                            fill: "ffffff",
                            stroke: S
                        }), o.logBackground.attr({
                            fill: E
                        }), e = {
                            width: c,
                            height: u
                        }, t = {
                            x: w,
                            y: C,
                            width: y,
                            height: x
                        }, r = {
                            width: y,
                            height: x
                        }, n = {
                            x: (y - _) / 2,
                            y: (x - k) / 2,
                            width: _,
                            height: k
                        }, T ? (A.animate(e, T, "normal"), o.veil.animate(e, T, "normal"), o.dialog.animate(t, T, "normal"), o.logBackground.animate(r, T, "normal"), o.logWrapper.animate(n, T, "normal")) : (A.attr(e), o.veil.attr(e), o.dialog.attr(t), o.logBackground.attr(r), o.logWrapper.attr(n))
                    }, t
                }(o.ComponentInterface);
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(193),
                a = 8 === window.document.documentMode,
                i = {},
                o = {
                    display: "block",
                    paddingLeft: "10px",
                    paddingRight: "10px",
                    "font-family": "Arial",
                    "font-size": "11px"
                };
            i.literal = i.info = {
                title: '<span style="color: #005900">$titleVal$</span>',
                body: '<span">$msgVal$</span>'
            }, i.link = {
                title: i.info.title,
                body: '<a href="$msgLinkVal$">$msgVal$</a>'
            }, i.error = {
                title: '<span style="color: #CC0000">$titleVal$</span>',
                body: '<span style="color: #CC0000">$msgVal$</span>'
            };
            var s = function() {
                function e(e, t) {
                    this.config = {}, this.messageType = (e.msgType && e.msgType.replace(/^[\r\n]+|\.|[\r\n]+$/g, "") || "").toLowerCase(), this.msgTitle = e.msgTitle, this.msgText = e.msgText, this.msgLink = e.msgLink, this.graphics = {}, this.linkedItems = {
                        msgLogger: t
                    }, this.msgObj = i[this.messageType] || i.literal, this.configureMsgTextAndMsgTitle()
                }
                var t = e.prototype;
                return t.configureMsgTextAndMsgTitle = function() {
                    this.config.totalHTML = n.BLANKSTRING, this.msgTitle && (this.config.titleHTML = this.msgObj.title.replace("$titleVal$", this.msgTitle), this.config.totalHTML += this.config.titleHTML), this.msgText && (this.config.msgHTML = this.msgObj.body.replace("$msgVal$", this.msgText), this.config.msgHTML = this.config.msgHTML.replace("$msgLinkVal$", this.msgText), this.config.totalHTML += this.config.msgHTML)
                }, t.draw = function() {
                    var e, t, r, i = this.graphics.element,
                        s = this.linkedItems.msgLogger,
                        l = s.graphics,
                        c = l && l.log && l.log.element,
                        u = l.logWrapper && l.logWrapper.element,
                        d = s.config;
                    if (!i) {
                        for (e in i = this.graphics.element = window.document.createElement("span"), o) i.style[e] = o[e];
                        c.appendChild && c.appendChild(i)
                    }
                    this.graphics.element.innerHTML = this.config.totalHTML, n.isIE && a && (t = c.innerHTML, c.innerHTML = t), d.scrollToBottom && (d.dynamicScrolling = !0, r = u.scrollHeight, u.scrollTop = r)
                }, t.dispose = function() {
                    var e = this.linkedItems.msgLogger;
                    e && e.graphics && e.graphics.log && e.graphics.log.element && e.graphics.log.element.removeChild && e.graphics.log.element.removeChild(this.graphics.element), delete this.graphics.element, n.componentDispose.call(this)
                }, e
            }();
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187),
                a = r(191);
            t.__esModule = !0, t["default"] = void 0;
            var i = a(r(246)),
                o = r(200),
                s = r(193),
                l = n(r(195)),
                c = s.regex.dropHash;

            function u(e, t) {
                return (e.options.containerElement === t.options.containerElement || e.options.containerElementId === t.options.containerElementId) && e.options.insertMode === s.domInsertModes.REPLACE
            }

            function d(e) {
                var t;
                e.sender.link instanceof i["default"] && !e.sender.link.root.disposed ? e.sender.link.parent instanceof this && !(t = e.sender.link.parent.link.items)[e.sender.id] && (t[e.sender.id] = e.sender) : e.sender.link = new i["default"](e.sender)
            }

            function h(e, t) {
                var r, n = t;
                if (e instanceof Array) {
                    for (r = 0; r < e.length; r += 1) "object" != typeof i.store[this.link.root.id][r] && (i.store[this.link.root.id][r] = {}), (0, s.extend2)(i.store[this.link.root.id][r], e[r], !1, !0);
                    i.store[this.link.root.id].splice(e.length)
                } else "object" == typeof e ? ("number" != typeof n && (n = this.link.level), "undefined" == typeof i.store[this.link.root.id][n] && (i.store[this.link.root.id][n] = {}), (0, s.extend2)(i.store[this.link.root.id][n], e, !1, !0)) : (0, o.raiseError)(this, "25081731", "param", "~configureLink()", "Unable to update link configuration from set parameters")
            }

            function f(e) {
                var t, r, n, a = this.jsVars,
                    i = a.overlayButton;
                if (e && e.show) {
                    for (i || (i = a.overlayButton = document.createElement("span"), l["default"].listen(i, "click", (function() {
                            (0, o.triggerEvent)("OverlayButtonClick", a.fcObj, e)
                        }))), n = e.message ? e.message : "Back"; i.firstChild;) i.removeChild(i.firstChild);
                    for (r in i.appendChild(document.createTextNode(n)), a.overlayButtonMessage = n, t = {
                            border: "1px solid " + (e.borderColor ? e.borderColor.replace(c, s.HASHSTRING) : "#7f8975"),
                            backgroundColor: e.bgColor ? e.bgColor.replace(c, s.HASHSTRING) : "#edefec",
                            fontFamily: e.font ? e.font : "Verdana,sans",
                            color: e.fontColor,
                            fontSize: (e.fontSize ? e.fontSize : "10") + s.PXSTRING,
                            padding: (e.padding ? e.padding : "3") + s.PXSTRING,
                            fontWeight: 0 === parseInt(e.bold, 10) ? s.NORMAL : s.BOLD,
                            position: "absolute",
                            top: "0",
                            right: "0",
                            cursor: s.POINTER
                        }) i.style[r] = t[r];
                    a.hcObj.container.appendChild(i), a.overlayButtonActive = !0
                } else i && (a.overlayButton = i.parentNode.removeChild(i), a.overlayButtonActive = !1, delete a.overlayButtonMessage)
            }
            var g = {
                type: "extension",
                name: "LinkedChart",
                extension: function(e) {
                    e.prototype.configureLink = h, e.prototype.drawOverlayButton = f, e.addEventListener("beforeRender", d), e.addEventListener("beforeInitialize", d), e.addEventListener("linkedChartInvoked", (function(t, r) {
                        var n, a = t.sender,
                            l = a.clone({
                                dataSource: r.data,
                                dataFormat: r.linkType,
                                link: new i["default"](a.link.root, a, a instanceof e),
                                clickedEntity: r.clickedEntity,
                                clickedEntityBox: r.clickedEntityBox
                            }, !0),
                            c = r.alias;
                        c && (!l.typeSource && l.swfUrl && (l.typeSource = l.swfUrl.replace(/(.*?)?[^\/]*\.swf.*?/gi, "$1")), l.type = c), a.args && 0 !== parseInt(a.args.animate, 10) && delete l.animate, (0, s.extend2)(l, a.link.configuration(), !1, !0), (0, o.triggerEvent)("beforeLinkedItemOpen", a.link.root, {
                            level: a.link.level
                        }, void 0, (function() {
                            e.items[l.id] instanceof e && e.items[l.id].dispose(), u(n = new e(l), a) || a.options.overlayButton && a.options.overlayButton.message || ("object" != typeof a.options.overlayButton && (a.options.overlayButton = {}), a.options.overlayButton.message = "Close"), n.render(), (0, o.triggerEvent)("linkedItemOpened", a.link.root, {
                                level: a.link.level,
                                item: n
                            })
                        }))
                    })), e.addEventListener("overlayButtonClick", (function(t, r) {
                        var n, a, i, s;
                        "LinkManager" === r.id && (n = t.sender, a = n.link.level - 1, i = n.link.parent, s = n.link.root, (0, o.triggerEvent)("beforeLinkedItemClose", s, {
                            level: a,
                            item: n
                        }, void 0, (function() {
                            setTimeout((function() {
                                e.items[n.id] && n.dispose(), (0, o.triggerEvent)("linkedItemClosed", s, {
                                    level: a
                                })
                            }), 0), i.disposed || i.isActive() || !u(n, i) ? (i._addChartDependency("returnFromLinkedChart", {
                                resolve: function() {
                                    return {
                                        state: 3
                                    }
                                }
                            }), i._setState()) : i.render()
                        })))
                    })), e.addEventListener("DrawComplete", (function(t) {
                        var r, n = t.sender;
                        n && "undefined" != typeof n.link && n.link.root !== n && n.link.parent instanceof e && (n.ref && "function" == typeof n.drawOverlayButton ? (r = (0, s.extend2)({
                            show: !0,
                            id: "LinkManager"
                        }, n.link.parent.options.overlayButton, !1, !0), (0, s.extend2)(r, n.link.parent.link.configuration().overlayButton || {}, !1, !0), n.drawOverlayButton(r)) : (0, o.raiseWarning)(n, "04091602", "run", "::LinkManager^Loaded", "Unable to draw overlay button on object. -" + n.id))
                    })), e.addEventListener("beforeDispose", (function(t) {
                        var r = t.sender;
                        r && r.link instanceof i["default"] && (r && r.link && r.link.parent instanceof e && r.link.parent.link && r.link.parent.link.items && delete r.link.parent.link.items[t.sender.id], delete i.store[r.id])
                    }))
                },
                requiresFusionCharts: !0
            };
            t["default"] = g
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = t.store = void 0;
            var n = {};
            t.store = n;
            var a = function() {
                function e(e, t, r) {
                    this.items = {}, this.root = e, this.parent = t, r ? this.level = this.parent.link.level + 1 : (n[e.id] = [{}], this.level = 0)
                }
                return e.prototype.configuration = function() {
                    return n[this.root.id][this.level] || (n[this.root.id][this.level] = {})
                }, e
            }();
            t["default"] = a
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n, a = r(193),
                i = function(e, t, r) {
                    return "object" == typeof this.items[e][r] ? this.items[e][r][t] : this.items[e][r]
                };

            function o(e) {
                return e.replace(/</g, "&lt;").replace(/>/g, "&gt;")
            }
            var s, l, c, u, d = (u = {
                    arr: {
                        set: !0,
                        node: !0,
                        nodes: !0,
                        link: !0,
                        links: !0,
                        trendlines: !0,
                        vtrendlines: !0,
                        line: {
                            trendlines: !0,
                            vtrendlines: !0
                        },
                        data: !0,
                        dataset: !0,
                        lineset: !0,
                        categories: !0,
                        category: !0,
                        tasks: !0,
                        linkeddata: !0,
                        application: !0,
                        definition: !0,
                        axis: !0,
                        connectors: !0,
                        connector: {
                            connectors: !0
                        },
                        trendset: !0,
                        row: {
                            rows: !0
                        },
                        column: {
                            columns: !0
                        },
                        label: {
                            labels: !0
                        },
                        color: {
                            colorrange: !0
                        },
                        dial: {
                            dials: !0
                        },
                        pointer: {
                            pointers: !0
                        },
                        point: {
                            trendpoints: !0
                        },
                        process: {
                            processes: !0
                        },
                        task: {
                            tasks: !0
                        },
                        milestone: {
                            milestones: !0
                        },
                        datacolumn: {
                            datatable: !0
                        },
                        text: {
                            datacolumn: !0
                        },
                        item: {
                            legend: !0
                        },
                        alert: {
                            alerts: !0
                        },
                        groups: {
                            annotations: !0
                        },
                        items: {
                            groups: !0,
                            data: !0
                        },
                        shapes: !0,
                        shape: {
                            shapes: !0
                        },
                        entitydef: !0,
                        entity: {
                            entitydef: !0
                        }
                    },
                    tag: {
                        chart: "linkedchart",
                        map: "linkedmap",
                        set: "data",
                        node: "nodes",
                        link: "links",
                        vline: {
                            chart: "data",
                            graph: "data",
                            dataset: "data",
                            categories: "category",
                            linkedchart: "data"
                        },
                        apply: {
                            application: "application"
                        },
                        style: {
                            definition: "definition"
                        },
                        marker: {
                            application: "application",
                            definition: "definition",
                            data: "items"
                        },
                        entity: {
                            entitydef: "entitydef",
                            data: "data"
                        },
                        shape: {
                            shapes: "shapes"
                        },
                        connector: {
                            connectors: {
                                chart: "connector",
                                linkedchart: "connector",
                                map: "connectors",
                                linkedmap: "connectors"
                            }
                        },
                        annotationgroup: {
                            annotations: "groups"
                        },
                        annotation: {
                            groups: "items"
                        }
                    },
                    attr: {
                        vline: {
                            vline: "true"
                        }
                    },
                    ins: {
                        chart: !0,
                        map: !0,
                        graph: !0
                    },
                    dsv: {
                        dataset: "data",
                        categories: "category"
                    },
                    text: {
                        target: "target",
                        value: "value"
                    },
                    group: {
                        styles: {
                            definition: !0,
                            application: !0
                        },
                        chart: {
                            value: !0,
                            target: !0
                        },
                        graph: {
                            value: !0,
                            target: !0
                        },
                        linkedchart: {
                            value: !0,
                            target: !0
                        },
                        markers: {
                            definition: !0,
                            application: !0,
                            shapes: !0,
                            connectors: !0,
                            data: !0
                        },
                        map: {
                            entitydef: !0,
                            data: !0
                        },
                        linkedmap: {
                            entitydef: !0,
                            data: !0
                        }
                    }
                }, s = {
                    append: function(e, t, r, n) {
                        !u.arr[r] || !0 !== u.arr[r] && !0 !== u.arr[r][n] ? t[r] = e : (t[r] instanceof Array || (t[r] = []), t[r].push(e))
                    },
                    child: function(e, t, r, n) {
                        var i, o, l, c, d, h;
                        for (i = 0; i < t.length; i += 1) switch (o = (l = t[i]).nodeName.toLowerCase(), l.nodeType) {
                            case 1:
                                if (c = s.attr(l.attributes), !0 === (h = u.ins[o]) && (d = c, (c = {})[o] = d, d = void 0), "object" == typeof(h = u.attr[o]) && (0, a.extend2)(c, h, !1, !0), h = u.tag[o])
                                    if ("object" == typeof h && "object" == typeof h[r]) {
                                        for (d in d = void 0, h[r])
                                            if (n[d]) {
                                                o = h[r][d];
                                                break
                                            }
                                    } else "object" == typeof h && "string" == typeof h[r] ? o = h[r] : "string" == typeof h && (o = h);
                                l.childNodes.length && ((h = u.group[r]) && h[o] ? s.child(e, l.childNodes, o, n) : s.child(c, l.childNodes, o, n)), (h = u.group[r]) && h[o] || s.append(c, e, o, r);
                                break;
                            case 3:
                                (h = u.text[r]) && (o = h, c = l.data, s.append(c, e, o, r)), "string" == typeof(h = u.dsv[r]) && n.chart && parseInt(n.chart.compactdatamode, 10) && (o = h, c = l.data, e[o] = e[o] ? e[o] + c : c)
                        }
                    },
                    attr: function(e) {
                        var t, r = {};
                        if (!e || !e.length) return r;
                        for (t = 0; t < e.length; t += 1) "xml" === c && (e[t].value ? e[t].value = o(e[t].value) : e[t].nodeValue && (e[t].nodeValue = o(e[t].nodeValue))), r[e[t].nodeName.toLowerCase()] = e[t].value || e[t].nodeValue;
                        return r
                    }
                }, l = function(e) {
                    var t, r, i, o, c, u, d, h, f, g = {},
                        p = e;
                    if ("object" != typeof p && p && "function" != typeof p.toString) return l.errorObject = new TypeError("xml2json.parse()"), g;
                    if (p = p.toString().replace(/<\!--[\s\S]*?-->/g, "").replace(/<\?xml[\s\S]*?\?>/gi, "").replace(/&(?!([^;\n\r]+?;))/g, "&amp;$1"), !(p = (0, a.fastTrim)(p))) return g;
                    try {
                        if (window.DOMParser ? t = (new window.DOMParser).parseFromString(p, "text/xml") : document.body && n.options.allowIESafeXMLParsing ? ((r = document.createElement("xml")).innerHTML = p, document.body.appendChild(r), t = r.XMLDocument, document.body.removeChild(r), r = null) : ((t = new window.ActiveXObject("Microsoft.XMLDOM")).async = "false", t.loadXML(p)), !(t && t.childNodes && 1 === t.childNodes.length && (i = t.childNodes[0]) && i.nodeName && (o = i.nodeName.toLowerCase())) || "chart" !== o && "map" !== o && "graph" !== o) return l.errorObject = new TypeError("xml2json.parse()"), g;
                        if ("graph" === o) {
                            for (c = t.createElement("chart"), f = (d = i.attributes) && d.length || 0; f--;) c.setAttribute(d[f].name, d[f].value), d.removeNamedItem(d[f].name);
                            for ((f = (h = i.childNodes) && h.length || 0) && (f -= 1, u = i.removeChild(h[f]), c.appendChild(u)); f--;) u = i.removeChild(h[f]), c.insertBefore(u, c.firstChild);
                            t.replaceChild(c, i), i = c
                        }
                    } catch (m) {
                        l.errorObject = m
                    }
                    return i ? (i.attributes && (g[o] = s.attr(i.attributes)), i.childNodes && s.child(g, i.childNodes, o, g), delete l.errorObject) : l.errorObject = new TypeError("xml2json.parse()"), g
                }, function(e) {
                    return delete l.errorObject, c = arguments[arguments.length - 1], {
                        data: l(e),
                        error: l.errorObject
                    }
                }),
                h = function() {
                    var e, t;
                    return e = {
                            items: {
                                explode: {
                                    data: "set",
                                    nodes: "node",
                                    links: "link",
                                    groups: {
                                        annotations: "annotationgroup"
                                    },
                                    items: {
                                        groups: "annotation"
                                    }
                                },
                                text: {
                                    chart: {
                                        target: "target",
                                        value: "value"
                                    },
                                    graph: {
                                        target: "target",
                                        value: "value"
                                    }
                                },
                                dsv: {
                                    dataset: {
                                        data: "dataset"
                                    },
                                    categories: {
                                        category: "categories"
                                    }
                                },
                                attr: {
                                    chart: {
                                        chart: "chart"
                                    },
                                    graph: {
                                        graph: "graph"
                                    },
                                    map: {
                                        map: "map"
                                    },
                                    linkedmap: {
                                        map: "map"
                                    },
                                    linkedchart: {
                                        chart: "chart"
                                    }
                                },
                                group: {
                                    styles: {
                                        definition: "style",
                                        application: "apply"
                                    },
                                    map: {
                                        data: "entity",
                                        entitydef: "entity"
                                    },
                                    markers: {
                                        definition: "marker",
                                        application: "marker",
                                        shapes: "shape",
                                        connectors: "connector",
                                        items: "marker"
                                    }
                                },
                                tag: {
                                    markers: {
                                        items: "data"
                                    }
                                }
                            },
                            qualify: i
                        }, t = function(r, n, i, o) {
                            var s, l, c, u, d = a.BLANKSTRING,
                                h = a.BLANKSTRING,
                                f = a.BLANKSTRING,
                                g = a.BLANKSTRING,
                                p = n;
                            if (p && "function" == typeof p.toLowerCase && (p = p.toLowerCase()), void 0 === i && r[p])
                                for (l in r[p]) "compactdatamode" === (c = l.toLowerCase()) && (o.applyDSV = 1 === r[p][l]);
                            if (r instanceof Array)
                                for (l = 0; l < r.length; l += 1) "string" == typeof r[l] ? f += (0, a.xssEncode)(r[l]) : f += t(r[l], p, i, o);
                            else {
                                for (l in r) c = l.toLowerCase().replace(/[`~!@#$%^&*()|+\=?;:'", <>\{\}\[\]\\\/]/gi, ""), r[l] instanceof Array && (u = e.qualify("group", c, p)) ? h += "<" + (s = e.qualify("tag", c, p) || c) + ">" + t(r[l], u, p, o) + "</" + s + ">" : "object" == typeof r[l] ? (u = e.qualify("attr", c, p)) ? (g = t(r[l], u, p, o).replace(/\s*\/\>/gi, ""), p = c) : h += t(r[l], c, p, o) : o.applyDSV && (u = e.qualify("dsv", c, p)) ? h += r[l] : (u = e.qualify("text", c, p)) ? h += "<" + (s = e.qualify("tag", c, p) || u) + ">" + r[l] + "</" + s + ">" : "vline" === c && Boolean(r[l]) ? p = "vline" : d += " " + c + '="' + (0, a.xssEncode)(r[l]).toString().replace(/\"/gi, "&quot;") + '"';
                                (u = e.qualify("explode", i, p)) && (p = u), s = p, f = ("" !== g ? g : "<" + s) + d + ("" !== h ? ">" + h + "</" + s + ">" : " />")
                            }
                            return f
                        },
                        function(e) {
                            delete t.errorObject;
                            var r = e;
                            if (r && "string" == typeof r) try {
                                r = JSON.parse(r)
                            } catch (a) {
                                t.errorObject = a
                            }
                            var n = r && r.graph ? "graph" : r && r.map ? "map" : "chart";
                            return {
                                data: t(r, n, void 0, {}),
                                error: t.errorObject
                            }
                        }
                }(),
                f = function() {
                    return this.getChartData("xml")
                },
                g = function(e) {
                    this.setChartData(e, "xml")
                },
                p = {
                    extension: function(e) {
                        return e && (n = e, e.prototype.getXMLData = f, e.prototype.setXMLData = g), {
                            format: "xml",
                            toJSON: d,
                            fromJSON: h
                        }
                    },
                    name: "XML",
                    type: "transcoder",
                    requiresFusionCharts: !0
                };
            t["default"] = p
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(192)),
                i = r(200),
                o = r(193),
                s = n(r(249));

            function l(e, t) {
                var r = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }))), r.push.apply(r, n)
                }
                return r
            }
            var c, u, d, h, f, g, p, m, v, b, y, x, w = window,
                C = w.parseInt,
                _ = w.parseFloat,
                k = function(e) {
                    return e
                },
                S = function() {
                    function e(e) {
                        this.data = [], this.rowCount = 0, this.columnCount = 0, this.configure(e)
                    }
                    var t = e.prototype;
                    return t.set = function(e, t, r) {
                        var n;
                        if (this.rowCount <= e) {
                            for (n = this.rowCount; n <= e; n += 1) this.data[n] = [];
                            this.rowCount = e + 1
                        }
                        this.columnCount <= t && (this.columnCount = t + 1), this.data[e][t] = r
                    }, t.setRow = function(e, t) {
                        var r;
                        if (this.rowCount <= e) {
                            for (r = this.rowCount; r <= e; r += 1) this.data[r] = [];
                            this.rowCount = e + 1
                        }
                        this.columnCount < t.length && (this.columnCount = t.length), this.data[e] = t
                    }, t.get = function(e, t) {
                        var r = this.data;
                        return r[e] && r[e][t]
                    }, t.configure = function(t) {
                        var r = e.decodeLiterals;
                        this.delimiter = r(t.delimiter, ","), this.qualifier = r(t.qualifier, '"'), this.eolCharacter = r(t.eolCharacter, "\r\n"), this.numberFormatted = !!C(t.numberFormatted, 0)
                    }, t.clear = function() {
                        this.data = [], this.rowCount = 0, this.columnCount = 0
                    }, t.toString = function() {
                        var e, t, r = o.BLANKSTRING;
                        for (e = 0; e < this.rowCount; e += 1) r += '""' === (t = this.qualifier + this.data[e].join(this.qualifier + this.delimiter + this.qualifier) + this.qualifier) ? this.eolCharacter : t + this.eolCharacter;
                        return this.rowCount > 0 && (r = r.slice(0, r.length - 2)), r
                    }, e
                }();

            function E() {
                return this.getChartData("csv")
            }

            function A() {
                return this.getCSVData()
            }
            S.decodeLiterals = function(e, t) {
                return e !== u && null !== e && e.toString ? e.replace("{tab}", "\t").replace("{quot}", '"').replace("{apos}", "'") : t
            }, f = function(e) {
                var t = {},
                    r = [];
                for (var n in (0, s["default"])(e) && e.forEach((function(e) {
                        t[e.id] = function(e) {
                            for (var t = 1; t < arguments.length; t++) {
                                var r = null != arguments[t] ? arguments[t] : {};
                                t % 2 ? l(Object(r), !0).forEach((function(t) {
                                    (0, a["default"])(e, t, r[t])
                                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : l(Object(r)).forEach((function(t) {
                                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t))
                                }))
                            }
                            return e
                        }({}, e), !t[e.id].parent && (t[e.id].isRootNode = !0), !t[e.id].categories && (t[e.id].category = [])
                    })), e.forEach((function(e) {
                        var r = t[e.id],
                            n = !1;
                        !r.id || r.value && isNaN(+r.value) || (!r.parent || r.parent && t[r.parent]) && (n = !0), n || delete t[r.id]
                    })), t)
                    if (t.hasOwnProperty(n)) {
                        var i = t[n];
                        i.parent && t[i.parent].category.push(i), i.isRootNode && r.push(i)
                    }
                return {
                    category: r
                }
            }, v = function(e, t, r) {
                var n;
                if (void 0 === r && (r = "category"), g.push(e.label || e.name || o.BLANKSTRING), p.push(isNaN(+e.value) ? "" : e.value), t.setRow(y++, g.slice()), m++, x = Math.max(x, m), e[r] !== u) {
                    for (n = 0; n < e[r].length; ++n) v(e[r][n], t, r);
                    g.pop(), m--
                } else g.pop(), m--
            }, b = function(e) {
                var t, r, n, a = e,
                    i = a.chart,
                    o = a.data ? "data" : "category",
                    s = a && a[o] || [],
                    l = s.length,
                    c = [];
                for (y = 1, x = 0, m = 0, n = new S({
                        separator: i.exportdataseparator,
                        qualifier: i.exportdataqualifier,
                        numberFormatted: i.exportdataformattedval
                    }), p = [], t = 0; t < l; ++t) r = s[t], g = [], v(r, n, o);
                for (t = 0; t < x; ++t) c.push("Label " + (t + 1));
                for (c.push("Value"), n.setRow(0, c), t = p.length - 1; t >= 0; t--) n.set(t + 1, x, p[t]);
                return {
                    data: n.toString(),
                    error: u,
                    predictedFormat: {
                        multilevel: !0
                    }
                }
            }, d = function(e, t) {
                var r, n, a, i, o, s, l, d, h, g, p, m, v, y, x, w, C, E, A, T, N, M, D, F, I, L, O, R, P, V, B, j, H, G, U, z, W, X, $ = e,
                    Y = t && t.jsVars,
                    q = Y && Y.instanceAPI,
                    K = $.chart || $.map || $.graph || {},
                    J = Boolean(K.exporterrorcolumns || 0),
                    Z = $.categories && $.categories[0] && $.categories[0].category || [],
                    Q = $.map && !$.chart || Y && Y.instanceAPI && "geo" === Y.instanceAPI.defaultSeriesType,
                    ee = !1,
                    te = !1,
                    re = !1,
                    ne = !1,
                    ae = !1,
                    ie = !1,
                    oe = k,
                    se = {},
                    le = $.tasks ? Array.isArray($.tasks) ? $.tasks[0].task : $.tasks.task : u,
                    ce = $.processes ? $.processes.process : u,
                    ue = $.datatable ? Array.isArray($.datatable) ? $.datatable[0] : $.datatable : u,
                    de = ue ? ue.datacolumn : u,
                    he = le && ce,
                    fe = 0,
                    ge = -1;
                if (e.category || e.data && e.data[0].data) return b(e);
                if (r = new S({
                        separator: K.exportdataseparator,
                        qualifier: K.exportdataqualifier,
                        numberFormatted: K.exportdataformattedval
                    }), c.formatNumber && r.numberFormatted && (oe = function(e, t) {
                        return c.formatNumber(e, K, t)
                    }), Q)
                    for (O in se.geo = !0, L = (h = Y.instanceAPI.getDatasets()) && h[0] && h[0].components.data || [], r.setRow(0, ["Id", " Short Name", "Long Name", "Value", "Formatted Value"]), o = 0, L) j = (P = (R = L[O]).config).cleanValue, !0 !== R.hidden && r.setRow(++o, [O, P.shortLabel, P.label, null === j ? "" : j, P.formattedValue]);
                else if ((h = $.dials && $.dials.dial || $.pointers && $.pointers.pointer || $.value) !== u)
                    if (se.gauge = !0, "string" == typeof h) r.set(0, 0, oe(h)), se.singlevalue = !0, "string" == typeof $.target && (r.set(0, 1, oe($.target)), se.bullet = !0);
                    else
                        for (r.setRow(0, ["Id", "Value"]), se.multivalue = !0, o = 0, l = 1, s = h.length; o < s; o += 1, l += 1) r.setRow(l, [l, oe(h[o].value)]);
                else if (!he && (h = $.dataset || !($.data instanceof Array) && [])) {
                    if (se.multiseries = !0, a = 1, (g = $.lineset) && (h = h.concat(g), se.lineset = !0), (p = $.axis) && (h = h.concat(p), se.multiaxis = !0), !h.length && $.links && (h = h.concat({
                            data: $.links
                        })), y = h.length, v = Z.length, !(y = h.length)) {
                        for (o = 0; o < v; o += 1) x = Z[o], r.set(o + 1, 0, x.label || x.name);
                        se.multilevel = !0
                    }
                    for (o = 0; o < y; o += 1)
                        for ((w = h)[o].dataset ? (i = 0, m = (w = w[o].dataset).length) : (w = h, m = (i = o) + 1); i < m && !ee && !ne && !re; i += 1)
                            if (C = w[i], ge++, !(q && (D = q.getDatasets()) && D[ge] && !1 === D[ge].visible)) {
                                for (U = (V = q && D && D[ge]) && V.config && V.config.parentYAxis, r.set(0, a, C.seriesname), "string" == typeof C.data && (se.compactdata = !0, C.data = C.data.split(K.dataseparator || "|")), s = 0, l = 0, E = C.data && C.data.length || 0; s < E || s < v; s += 1) {
                                    if (x = Z[s], n = l + 1, (A = C.data && C.data[l] || {}).x !== u && A.y !== u) {
                                        ee = se.xy = !0;
                                        break
                                    }
                                    if (A.from !== u && A.to !== u) {
                                        re = se.diagram = !0;
                                        break
                                    }
                                    if (A.open !== u || A.high !== u || A.close !== u || A.low !== u) {
                                        ae = se.ohlc = !0;
                                        break
                                    }
                                    if (A.rowid !== u && A.columnid !== u) {
                                        ne = se.heatmap = !0;
                                        break
                                    }(s < v && !x.vline || !x) && (x && r.set(n, 0, x.label || x.name), T = _(A ? A.value : ""), T = isNaN(T) ? "" : oe(T, U), r.set(n, a, T), (te || J || A.errorvalue) && (te || r.set(0, a + 1, "Error"), M = 1, r.set(n, a + 1, oe(A.errorvalue))), l += 1)
                                }
                                M && (a += M, M = 0), a += 1
                            }
                    g && (h = h.slice(0, -g.length)), p && (h = h.slice(0, -p.length))
                } else if (h = $.data) {
                    for (r.set(0, 1, K.yaxisname || "Value"), se.singleseries = !0, ie = "1" == K.showsumatend, o = 0, v = h.length; o < v && (!X || !W); o += 1)(A = h[o]).vline || (T = _(A.value ? A.value : ""), z = [A.label || A.name, isNaN(T) ? "" : (fe += T, oe(T))], A.id && A.parent ? (X = !0, W = !0) : A.parent ? X = !0 : A.id ? W = !0 : r.setRow(o + 1, z));
                    if (X && W) return b({
                        chart: $.chart,
                        category: f($.data).category
                    });
                    for (X ? r.setRow(0, ["Parent Id", K.xaxisname || "Label", "Value"]) : W && r.setRow(0, ["Id", K.xaxisname || "Label", "Value"]), v = (W || X) && h.length, o = 0; o < v; o++) A = h[o], T = _(A.value ? A.value : ""), z = [A.label || A.name, isNaN(T) ? "" : (fe += T, oe(T))], W ? r.setRow(o + 1, [A.id].concat(z)) : X && r.setRow(o + 1, [A.parent].concat(z));
                    ie && (se.summation = !0, r.setRow(o + 1, [K.sumlabel || "Total", oe(fe)]))
                }
                if (ae)
                    for (r.clear(), r.setRow(0, ["Open", "Close", "High", "Low", "Volume"]), o = 0, n = 1, m = (h = $.dataset).length; o < m; o += 1)
                        for (s = 0, y = (C = h[o] && h[o].data || []).length; s < y; s += 1, n += 1) A = C[s] || {}, r.setRow(s + 1, [oe(A.open), oe(A.close), oe(A.high), oe(A.low), oe(A.volume)]);
                else if (ee) {
                    for (r.clear(), te = !1, M = 0, H = !1, G = 0, r.setRow(0, ["Series", "x", "y"]), o = 0, n = 1, m = (h = $.dataset).length; o < m; o += 1)
                        if (!(q && (D = q.getDatasets()) && D[o] && !1 === D[o].visible))
                            for (s = 0, y = (C = h[o] && h[o].data || []).length; s < y; s += 1, n += 1)(A = C[s] || {}).name && !H && (M ? r.setRow(0, ["Series", "Name", "x", "y", "z"]) : r.setRow(0, ["Series", "Name", "x", "y"]), H = !0, G = s), T = H ? [h[o].seriesname, oe(A.name), oe(A.x), oe(A.y)] : [h[o].seriesname, oe(A.x), oe(A.y)], A.z !== u && (T.push(oe(A.z)), M || (H ? r.setRow(0, ["Series", "Name", "x", "y", "z"]) : r.setRow(0, ["Series", "x", "y", "z"]), M = 1)), (te || J || A.errorvalue !== u || A.horizontalerrorvalue !== u || A.verticalerrorvalue !== u) && (N = oe(A.errorvalue), T.push(A.errorvalue, A.horizontalerrorvalue === u ? N : oe(A.horizontalerrorvalue), A.verticalerrorvalue === u ? N : oe(A.verticalerrorvalue)), te || (r.set(0, M + 3, "Error"), r.set(0, M + 4, "Horizontal Error"), r.set(0, M + 5, "Vertical Error")), te = se.error = !0), r.setRow(n, T);
                    if (H)
                        for (n = 1, s = 0; s < G; s++, n++) A = C[s] || {}, T = [h[o].seriesname, oe(A.name), oe(A.x), oe(A.y)], A.z !== u && T.push(oe(A.z)), r.setRow(n, T)
                } else if (re)
                    for (r.clear(), te = !1, M = 0, h = $ && $.links, r.setRow(0, ["from", "to", "value"]), s = 0; s < h.length; s += 1, n += 1) T = [(A = h[s] || {}).from, A.to, oe(A.value)], A.z !== u && (T.push(oe(A.z)), M || (r.set(0, 3, "z"), M = 1)), (te || J || A.errorvalue !== u || A.horizontalerrorvalue !== u || A.verticalerrorvalue !== u) && (N = oe(A.errorvalue), T.push(A.errorvalue, A.horizontalerrorvalue === u ? N : oe(A.horizontalerrorvalue), A.verticalerrorvalue === u ? N : oe(A.verticalerrorvalue)), te || (r.set(0, M + 3, "Error"), r.set(0, M + 4, "Horizontal Error"), r.set(0, M + 5, "Vertical Error")), te = se.error = !0), r.setRow(n, T);
                else if (ne) {
                    for (r.clear(), F = {}, I = {}, o = 0, s = 1, d = (Z = $.rows && $.rows.row || []).length; o < d; o += 1, s += 1)(x = Z[o]).id && (F[x.id.toLowerCase()] = s, r.set(s, 0, x.label || x.id));
                    for (o = 0, s = 1, d = (Z = $.columns && $.columns.column || []).length; o < d; o += 1, s += 1)(x = Z[o]).id && (I[x.id.toLowerCase()] = s, r.set(0, s, x.label || x.id));
                    for (C = $.dataset && $.dataset[0] && $.dataset[0].data || [], B = q && (D = q.getDatasets()) && D[0] && D[0].components && D[0].components.data || [], o = 0, d = C.length; o < d; o += 1) n = (A = C[o]).rowid.toLowerCase(), a = A.columnid.toLowerCase(), B[o] && !1 === B[o].visible || (F[n] || (F[n] = r.rowCount, r.set(r.rowCount, 0, A.rowid)), I[a] || (I[a] = r.columnCount, r.set(0, r.columnCount, A.columnid)), r.set(F[n], I[a], oe(A.value)))
                } else if (he) {
                    var pe, me, ve, be, ye, xe, we = ["Task name", "Start date", "End date", $.processes.headertext || "Process name"],
                        Ce = {};
                    de && de.forEach((function(e, t) {
                        we.push(e.headertext && e.headertext.replace(/{br}/g, " ") || "DataColumn " + t)
                    })), r.setRow(0, we), le.forEach((function(e, t) {
                        e.processid ? (be = ce.filter((function(t, r) {
                            return t.id === e.processid && (ye = r), t.id === e.processid
                        }))[0], pe = be.label || be.name || "") : (ye = t, pe = ce[t] && (ce[t].label || ce[t].name) || ""), ve = e.start || "", xe = e.end || "", me = e.label || e.name || "Task " + t, Ce = {
                            taskName: me,
                            taskStart: ve,
                            taskEnd: xe,
                            processName: pe
                        }, de && de.forEach((function(e, t) {
                            Ce["datacolumn" + t] = e.text[ye].label || ""
                        })), Object.keys(Ce).forEach((function(e, n) {
                            r.set(t + 1, n, Ce[e])
                        }))
                    }))
                }
                return p = null, g = null, Z = null, h = null, r.rowCount > 0 && r.get(0, 0) === u && r.set(0, 0, K.xaxisname || "Label"), {
                    data: r.toString(),
                    error: u,
                    predictedFormat: se
                }
            }, h = function(e, t) {
                return (0, i.raiseError)(t, "0604111215", "run", "csvToJson()", "fusionCharts CSV data-handler only supports encoding of data."), e
            };
            var T = {
                extension: function(e) {
                    return e && (c = e, e.prototype.getDataAsCSV = A, e.prototype.getCSVData = E), {
                        format: "csv",
                        toJSON: h,
                        fromJSON: d
                    }
                },
                name: "csv",
                type: "transcoder",
                requiresFusionCharts: !0
            };
            t["default"] = T
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = function(e) {
                return Array.isArray(e)
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(200),
                a = r(251);

            function i(e, t, r, i, o) {
                (0, n.triggerEvent)("dataLoadRequested", o, {
                    source: a.sourceName,
                    url: e,
                    dataFormat: "json",
                    silent: !!i,
                    config: t,
                    successcallback: r
                }, void 0, a.onDataLoadRequest, a.onDataLoadRequestCancel)
            }

            function o(e) {
                this.setChartDataUrl(e, "jsonurl")
            }
            var s = {
                extension: function(e) {
                    return e && (e.prototype.setJSONUrl = o), {
                        format: "jsonurl",
                        toJSON: i
                    }
                },
                name: "JSONUrl",
                type: "transcoder",
                requiresFusionCharts: !0
            };
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.onDataLoadRequest = function(e, t) {
                var r = e.sender,
                    n = r.__state,
                    i = t.url;
                r.options.dataSource = t.url, n.dhmXhrObj || (n.dhmXhrObj = new a["default"](l, c));
                n.dhmXhrObj.get("function" == typeof window.decodeURIComponent ? window.decodeURIComponent(i) : window.unescape(i), {
                    obj: r,
                    args: t
                })
            }, t.onDataLoadRequestCancel = function(e, t) {
                var r = e.sender,
                    n = r.__state;
                (0, i.triggerEvent)("dataLoadRequestCancelled", r, t), n && n.dhmXhrObj && n.dhmXhrObj.abort()
            }, t.sourceName = void 0;
            var a = n(r(252)),
                i = r(200);

            function o(e, t) {
                e.sender.jsVars.stallLoad = !1, e.sender.setChartData(t.dataSource, t.dataFormat, t.config, t.successcallback, t.silent)
            }

            function s(e, t) {
                (0, i.triggerEvent)("dataLoadCancelled", e.sender, t), t.xmlHttpRequestObject.abort()
            }

            function l(e, t, r, n) {
                var a = r.args;
                a.dataSource = e, a.xmlHttpRequestObject = t, a.source = "XmlHttpRequest", a.url = n, (0, i.triggerEvent)("dataLoadRequestCompleted", r.obj, a, void 0, o, s)
            }

            function c(e, t, r) {
                var n = r.obj,
                    a = r.args;
                a.error = e, a.httpStatus = t.xmlhttp && t.xmlhttp.status ? t.xmlhttp.status : -1, a.xmlHttpRequestObject = t, n._addChartDependency("data", {
                    resolve: function() {
                        return {
                            state: 1,
                            msg: n.options.dataLoadErrorMessage,
                            msgStyle: {
                                image: {
                                    imageHAlign: n.args.dataLoadErrorMessageImageHAlign || n.options.baseChartMessageImageHAlign,
                                    imageVAlign: n.args.dataLoadErrorMessageImageVAlign || n.options.baseChartMessageImageVAlign,
                                    imageAlpha: n.args.dataLoadErrorMessageImageAlpha || n.options.baseChartMessageImageAlpha,
                                    imageScale: n.args.dataLoadErrorMessageImageScale || n.options.baseChartMessageImageScale
                                },
                                message: {
                                    color: n.args.dataLoadErrorMessageColor || n.options.baseChartMessageColor,
                                    fontFamily: n.args.dataLoadErrorMessageFont || n.options.baseChartMessageFont,
                                    fontSize: n.args.dataLoadErrorMessageFontSize || n.options.baseChartMessageFontSize
                                }
                            }
                        }
                    }
                }), n._setState(), (0, i.triggerEvent)("dataLoadError", n, a)
            }
            t.sourceName = "XmlHttpRequest"
        }, function(e, t, r) {
            "use strict";
            (function(e) {
                t.__esModule = !0, t["default"] = void 0;
                var n = r(200),
                    a = r(193),
                    i = window,
                    o = parseFloat(i.navigator.appVersion.split("MSIE")[1]),
                    s = !!(o >= 5.5 && o <= 7),
                    l = "file:" === i.location.protocol,
                    c = i.ActiveXObject,
                    u = (!c || !l) && i.XMLHttpRequest,
                    d = {
                        objects: 0,
                        xhr: 0,
                        requests: 0,
                        success: 0,
                        failure: 0,
                        idle: 0
                    },
                    h = function() {
                        var e;
                        if (u) return (h = function() {
                            return d.xhr++, new u
                        })();
                        try {
                            e = new c("Msxml2.XMLHTTP"), h = function() {
                                return d.xhr++, new c("Msxml2.XMLHTTP")
                            }
                        } catch (t) {
                            try {
                                e = new c("Microsoft.XMLHTTP"), h = function() {
                                    return d.xhr++, new c("Microsoft.XMLHTTP")
                                }
                            } catch (r) {
                                e = !1
                            }
                        }
                        return e
                    },
                    f = function() {
                        function t(e, t) {
                            this.onSuccess = e, this.onError = t, this.open = !1, d.objects++, d.idle++
                        }
                        t.stats = function(e) {
                            return e ? d[e] : (0, a.extend2)({}, d)
                        };
                        var r = t.prototype;
                        return r.transact = function(r, o, c, u) {
                            var f, g, p = this,
                                m = p.xmlhttp,
                                v = t.headers,
                                b = p.onError,
                                y = p.onSuccess,
                                x = "POST" === r,
                                w = Object.prototype.hasOwnProperty; - 1 !== o.search(/^(http:\/\/|https:\/\/)/) && i.location.hostname !== /(http:\/\/|https:\/\/)([^\/\:]*)/.exec(o)[2] ? delete v["X-Requested-By"] : !w.call(v, "X-Requested-By") && (v["X-Requested-By"] = "FusionCharts"), (!m || s || a.isFirefox) && (m = h(), p.xmlhttp = m), m.onreadystatechange = function() {
                                try {
                                    4 === m.readyState && (!m.status && l || m.status >= 200 && m.status < 300 || 304 === m.status || 1223 === m.status || 0 === m.status ? (y && y(m.responseText, p, u, o), d.success++) : b && (b(new Error("XmlHttprequest Error"), p, u, o), d.failure++), d.idle--, p.open = !1)
                                } catch (e) {
                                    b && b(e, p, u, o), i.FC_DEV_ENVIRONMENT && setTimeout((function() {
                                        throw e
                                    }), 0), d.failure++
                                }
                            };
                            try {
                                if (m.open(x ? "POST" : "GET", o, !0), m.overrideMimeType && m.overrideMimeType("text/plain"), x)
                                    if ("string" == typeof c) f = c;
                                    else {
                                        for (g in f = [], c) f.push(g + "=" + (c[g] + "").replace(/\=/g, "%3D").replace(/\&/g, "%26"));
                                        f = f.join("&")
                                    } else f = null;
                                for (g in v) m.setRequestHeader(g, v[g]);
                                m.send(f), d.requests++, d.idle++, p.open = !0
                            } catch (C) {
                                (0, n.raiseError)(e.core, "1110111515A", "run", "XmlHttprequest Error", C.message)
                            }
                            return m
                        }, r.get = function(e, t) {
                            return this.transact("GET", e, void 0, t)
                        }, r.post = function(e, t, r) {
                            return this.transact("POST", e, t, r)
                        }, r.abort = function() {
                            var e = this.xmlhttp;
                            return this.open = !1, e && "function" == typeof e.abort && e.readyState && 0 !== e.readyState && e.abort()
                        }, r.dispose = function() {
                            var e = this;
                            return e.open && e.abort(), delete e.onError, delete e.onSuccess, delete e.xmlhttp, delete e.open, d.objects--, null
                        }, t
                    }();
                f.headers = {
                    "If-Modified-Since": "Sat, 29 Oct 1994 19:43:31 GMT",
                    "X-Requested-With": "XMLHttpRequest",
                    "X-Requested-By": "FusionCharts",
                    Accept: "text/plain, */*",
                    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
                };
                var g = f;
                t["default"] = g
            }).call(this, r(6))
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(200),
                a = r(251);

            function i(e, t, r, i, o) {
                void 0 === e && (e = ""), void 0 === t && (t = {}), (0, n.triggerEvent)("dataLoadRequested", o, {
                    source: a.sourceName,
                    url: e,
                    dataFormat: "xml",
                    silent: !!i,
                    config: t,
                    successcallback: r
                }, void 0, a.onDataLoadRequest, a.onDataLoadRequestCancel)
            }

            function o(e) {
                this.setChartDataUrl(e, "xmlurl")
            }

            function s() {
                (0, n.raiseWarning)(this, "11171116293", "run", "JavaScriptRenderer~setDataURL()", 'Use of deprecated "setDataURL()". Replace with "setXMLUrl()".'), this.setXMLUrl.apply(this, arguments)
            }
            var l = {
                extension: function(e) {
                    return e && (e.prototype.setXMLUrl = o), e && (e.prototype.setDataURL = s), {
                        format: "xmlurl",
                        toJSON: i
                    }
                },
                name: "XMLUrl",
                type: "transcoder",
                requiresFusionCharts: !0
            };
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(193),
                a = ["series", "styledefinition"];
            var i = {
                extension: function(e) {
                    e.addEventListener("beforedataupdate", (function(e, t) {
                        t.data = function r(e, t) {
                            void 0 === t && (t = !1);
                            var i = typeof e;
                            if ("string" === i || "number" === i || "function" === i || "boolean" === i) return e;
                            if (null === e || e === n.UNDEF) return e;
                            if (Array.isArray(e)) {
                                for (var o = [], s = 0; s < e.length; s++) o.push(r(e[s]));
                                return o
                            }
                            if ("object" == typeof e) {
                                var l = {};
                                for (var c in e) {
                                    var u = t ? c : c.toLowerCase();
                                    "data" !== u ? l[u] = r(e[c], a.includes(u)) : e[c] && e[c]._dataStore ? l[u] = e[c] : l[u] = r(e[c])
                                }
                                return l
                            }
                        }(t.data)
                    }))
                },
                name: "IgnoreCaseExt",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = i
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a, i = n(r(207)),
                o = r(208),
                s = r(201),
                l = r(200),
                c = /\s+!important$/,
                u = /\\!important$/,
                d = function(e, t) {
                    var r, n, a = t;
                    for (n in a = (a + "").toLowerCase(), e)
                        if (e.hasOwnProperty(n) && a === (n + "").toLowerCase()) {
                            r = e[n];
                            break
                        }
                    return r
                },
                h = function(e) {
                    var t, r;
                    for (t = 0, r = e.length; t < r; t++)
                        if ("function" == typeof e[t]) return !0;
                    return !1
                },
                f = function(e) {
                    var t, r = [];
                    for (t in e) r[t] = e[t];
                    return r
                },
                g = function(e) {
                    return e.replace(/^\s\s*/, "").replace(/\s\s*$/, "")
                },
                p = function(e) {
                    var t, r = {};
                    for (var n in e) e.hasOwnProperty(n) && (r[(t = e[n]).name] = t);
                    return r
                },
                m = function(e, t) {
                    for (var r = t.length, n = -1; r--;)
                        if (e === t[r]) return n = r;
                    return n
                },
                v = function(e, t, r, n) {
                    void 0 === n && (n = null);
                    var a = e;
                    return "object" != typeof a && "object" != typeof t ? null : "object" != typeof t || null === t ? a : ("object" != typeof a && (a = t instanceof Array ? [] : {}), function i(e, t, r, n, a, o) {
                        var s, l, c, u, d, h = a,
                            f = o;
                        if (f ? (h.push(e), f.push(t)) : (h = [e], f = [t]), t instanceof Array)
                            for (s = 0; s < t.length; s += 1) {
                                try {
                                    l = e[s], c = t[s]
                                } catch (g) {
                                    continue
                                }
                                "object" != typeof c ? r && void 0 === c || (e[s] = c) : (null !== l && "object" == typeof l || (l = e[s] = c instanceof Array ? [] : {}), -1 !== (d = m(c, f)) ? l = e[s] = h[d] : i(l, c, r, n, h, f))
                            } else
                                for (s in t) {
                                    try {
                                        l = e[s], c = t[s]
                                    } catch (g) {
                                        continue
                                    }
                                    null !== c && "object" == typeof c ? "[object Object]" === (u = Object.prototype.toString.call(c)) ? (null !== l && "object" == typeof l || (l = e[s] = {}), -1 !== (d = m(c, f)) ? l = e[s] = h[d] : "data" === s && c._dataStore ? e[s] = n ? n(l, c) : c : i(l, c, r, n, h, f)) : "[object Array]" === u ? (null !== l && l instanceof Array || (l = e[s] = []), -1 !== (d = m(c, f)) ? l = e[s] = h[d] : i(l, c, r, n, h, f)) : e[s] = n ? n(l, c) : c : e[s] = n ? n(l, c) : c
                                }
                        return e
                    }(a, t, r, n), a)
                },
                b = function(e) {
                    var t = e,
                        r = {
                            important: !1,
                            str: ""
                        };
                    return t ? (t = t.toString(), c.test(t) ? (t = t.replace(c, ""), r.important = !0) : (t = t.replace(u, "!imporant"), r.important = !1), r.str = t, r) : r
                },
                y = function(e, t) {
                    var r = b(e),
                        n = b(t);
                    return r.important && !n.important ? r.str : n.str
                },
                x = function(e, t) {
                    var r, n, a, i, o, s = t.getAll();
                    for (r in s) n = r.toLowerCase(), a = s[r].toString(), i = b(a), o = b(e[n]), i.important && !o.important ? e[n] = i.str : o.important ? e[n] = o.str : void 0 === e[n] && "object" != typeof s[r] ? e[n] = "object" != typeof s[r] ? i.str : s[r] : "object" == typeof s[r] && ("undefined" == typeof e[n] && (e[n] = s[r]), e[n] = v(s[r], e[n], !1, y))
                },
                w = function S(e, t) {
                    var r, n, a, i, o, s, l, c, u, d = 0,
                        g = 0,
                        p = function(e, t) {
                            var r, n = [].concat(Object.keys(e)),
                                a = t.themeArray,
                                i = Array.isArray(a),
                                o = 0;
                            for (a = i ? a : a[Symbol.iterator]();;) {
                                if (i) {
                                    if (o >= a.length) break;
                                    r = a[o++]
                                } else {
                                    if ((o = a.next()).done) break;
                                    r = o.value
                                }
                                n.push.apply(n, Object.keys(r))
                            }
                            return Array.from(new Set(n))
                        }(e, t),
                        m = Array.isArray(p),
                        v = 0;
                    for (p = m ? p : p[Symbol.iterator]();;) {
                        if (m) {
                            if (v >= p.length) break;
                            r = p[v++]
                        } else {
                            if ((v = p.next()).done) break;
                            r = v.value
                        }
                        if (void 0 === (n = e[r]) && (n = e[r] = {}), c = "timeseries" === t.type && t.themeComponents[r] && h(t.themeComponents[r]), n instanceof Array && !c)
                            for (s = n.length, o = 0; o < s; o += 1) "object" == typeof(i = n[o]) && ("category" === r ? "true" === i.vline ? (a = t.component("vline", d, i)) && (x(i, a), d += 1) : (a = t.component("category", g, i, s)) && (x(i, a), g += 1) : (a = t.component(r, o, i, s)) && (x(i, a), S(i, a)));
                        else if ("object" == typeof n)
                            if (c)
                                if (u = (a = t.component(r, null, n)).getAll(), e[r] = u, /^\d+$/.test(Object.keys(u).join("")))
                                    for (u = f(u), e[r] = u, l = 0; l < e[r].length; l++) S(e[r][l], a);
                                else S(n, a);
                        else(a = t.component(r, null, n)) && (x(n, a), S(n, a))
                    }
                },
                C = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.configure = function() {
                        !this.config.themeStore && (this.config.themeStore = {})
                    }, r.add = function(e) {
                        for (var t, r = 0, n = e.length; r < n; r += 1)(t = e[r].name) && (this.config.themeStore[t] = e[r])
                    }, r.themify = function(e, r, n, a, i) {
                        var o, c, u = r.jsVars,
                            d = e.split(","),
                            h = [],
                            f = d.length;
                        if (this.config.themeStore = p((0, s.getDepsByType)("theme")), f) {
                            for (c = 0; c < f; c += 1)(o = this.config.themeStore[g(d[c])]) && h.push(t.evaluateThemeJSON(o.theme, r, n, i));
                            h.length ? (u.themeObject = new _(h, r, !1, a, n), t.applyTheme(r)) : (0, l.raiseWarning)(r, "14051100501", "run", "api.themes~themify()", 'The theme "' + e + '" requested has not been registered.')
                        }
                    }, t.evaluateThemeJSON = function(e, t, r, n) {
                        var a, i, o = {},
                            s = t.jsVars,
                            l = r,
                            c = function(e) {
                                var t, r;
                                for (t in e) r = e[t], o[t] = r instanceof Array ? v(o[t] || [], r) : "object" == typeof r ? v(o[t] || {}, r) : r
                            };
                        return l = l || t.chartType(), s.themeObject && e !== s.themeObject && (s.themeObject.dispose(), delete s.themeObject), c(d(e, "base")), n && (a = d(e, n)), a && c(a), l && (i = d(e, l)), i && c(i), o
                    }, t.applyTheme = function(e) {
                        var t = e.jsVars.themeObject,
                            r = t.getThemedJSONData().data;
                        r && w(r, t)
                    }, t
                }(o.ComponentInterface),
                _ = function(e) {
                    function t(t, r, n, a, i) {
                        var o, s, l = 0;
                        for ((o = e.call(this) || this).themeArray = t, o.themeComponents = {}, o.base = {}, o.type = i, o.chartInstance = r, o.isChildInstance = Boolean(n), o.themedData = n ? null : a, o.length = t.length, s = t.length; l < s; l += 1) o.parse(t[l]);
                        return o
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.pushTheme = function(e, t) {
                        void 0 === t && (t = !1), e && (this.themeArray.push(e), this.parse(e, t), this.length += 1)
                    }, r.parse = function(e, t) {
                        var r, n;
                        if (e instanceof Array)
                            for (r = e.length, n = 0; n < r; n++) this._parseSubBlock(e[n], t);
                        else this._parseSubBlock(e, t)
                    }, r._parseSubBlock = function(e, r) {
                        var n, a, i, o, s = this,
                            l = s.base,
                            c = s.type,
                            u = s.themeComponents,
                            d = s.chartInstance,
                            h = s.isChildInstance;
                        for (n in e) "string" == typeof e[n] || "number" == typeof e[n] ? l[n] ? (a = b(e[n]), i = b(l[n]), !a.important && i.important || (l[n] = e[n])) : l[n] = e[n] : "timeseries" === c && h ? e[n] instanceof Array && "palettecolors" !== n && !r ? (u[n] || (u[n] = []), u[n].push(v([], e[n]))) : ("object" == typeof e[n] || r) && (l[n] = e[n]) : (u[n] || (u[n] = []), o = u[n], e[n] instanceof Array ? o.push(v([], e[n])) : "object" == typeof e[n] ? o.push(new t([e[n]], d, !0, {}, c)) : "function" == typeof e[n] && o.push(e[n]))
                    }, r.mergeWithThemeInstance = function(e) {
                        var t, r, n, a = this.base,
                            i = e.base,
                            o = this.themeComponents,
                            s = e.themeComponents;
                        for (n in i) t = b(a[n]), r = b(i[n]), t.important && !r.important || (a[n] = i[n]);
                        for (n in s) o[n] ? o[n] = o[n].concat(s[n]) : o[n] = [].concat(s[n]);
                        this.length += e.length
                    }, r.get = function(e) {
                        return this.base[e]
                    }, r.getAll = function() {
                        return v({}, this.base)
                    }, r.component = function(e, r, n, a) {
                        var i, o, s, l, c = this.chartInstance,
                            u = new t([], c, !0, {}, this.type);
                        if (!(s = this.themeComponents[e])) return null;
                        for (i = 0, o = s.length; i < o; i += 1) "function" == typeof(l = s[i]) ? "timeseries" !== this.type ? u.mergeWithThemeData(l.call(c, r, n, a), r || 0, n) : u.mergeWithThemeData(l.call(c, n), r, n, !0) : u.mergeWithThemeData(l, r, n);
                        return u
                    }, r.mergeWithThemeData = function(e, r, n, a) {
                        void 0 === a && (a = !1);
                        var i, o = this,
                            s = r;
                        e instanceof Array ? (s = s || 0, (i = e[s %= e.length]) instanceof t ? o.mergeWithThemeInstance(i) : "function" == typeof i ? o.pushTheme(i.call(parent, s, n, length), a) : o.pushTheme(i, a)) : e instanceof t ? o.mergeWithThemeInstance(e) : o.pushTheme(e, a)
                    }, r.getThemedJSONData = function() {
                        return {
                            data: this.themedData
                        }
                    }, r.dispose = function() {
                        var e, t, r = this,
                            n = r.themeComponents;
                        for (e in n)
                            if (t = n[e].length) {
                                for (; t--;) n[e][t].dispose && n[e][t].dispose();
                                delete n[e]
                            }
                        r.themeComponents = null, r.chartInstance = null, r.base = null, r.themeArray = null, r.isChildInstance = null, r.dataWithoutTheme = null
                    }, t
                }(o.ComponentInterface);
            (a = new C).configure();
            var k = {
                extension: function(e) {
                    e.addEventListener("internal.dataSanitized", (function(t) {
                        var r, n, i, o = t.sender,
                            l = o.getFromEnv("chartInstance"),
                            c = p((0, s.getDepsByType)("theme")),
                            u = o.getFromEnv("dataSource"),
                            d = e.options.defaultTheme,
                            h = u && (u.chart && u.chart.theme || u.map && u.map.theme),
                            f = (d || h) && (d || "") + "," + (h || ""),
                            m = f && f.split(","),
                            b = m && m.length,
                            y = !1;
                        for (n = 0; n < b; n++) i = g(m[n]), c && "" !== i && c.hasOwnProperty(i) && (y = !0);
                        y ? (u = v({}, o.getFromEnv("dataSource")), r = l.chartType(), u.map && (u.chart = u.map, delete u.map), a.themify(f, l, r, u, "geo" === l.apiInstance.defaultSeriesType && "geo"), o.addToEnv("dataSource", u)) : l.jsVars && l.jsVars.themeObject && (l.jsVars && l.jsVars.themeObject.dispose(), l.jsVars && delete l.jsVars.themeObject)
                    }))
                },
                name: "ThemeEngine",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = k
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(193),
                a = {
                    extension: {
                        name: "default",
                        theme: {
                            base: {
                                chart: {
                                    labelDisplay: "stagger !important",
                                    caption: "Theme Caption \\!important",
                                    canvasBgColor: "#56EF22",
                                    borderThickness: "5 !important",
                                    borderColor: "#E60539",
                                    baseFontColor: "#781129"
                                },
                                categories: [{
                                    fontColor: "#0F4F40",
                                    fontSize: 15,
                                    category: function(e) {
                                        return {
                                            showLabel: e % 2 ? 0 : 1
                                        }
                                    },
                                    vline: {
                                        color: "#000000",
                                        thickness: 2
                                    }
                                }],
                                dataset: [{
                                    color: "#8C3146",
                                    data: function(e, t) {
                                        return 8 === e && (t.value = n.BLANKSTRING), {
                                            color: Number(t.value) < 32e3 ? "#8C3146" : "#FF0000",
                                            alpha: "100"
                                        }
                                    }
                                }],
                                trendlines: [{
                                    line: function(e) {
                                        return e ? {
                                            color: "#ff0000",
                                            thickness: 3
                                        } : {
                                            color: "#ffff00",
                                            thickness: 3
                                        }
                                    }
                                }]
                            },
                            pie2d: {
                                chart: {
                                    bgColor: "#FF0000"
                                }
                            },
                            msline: {
                                chart: {
                                    canvasBgColor: "#ff0000"
                                }
                            },
                            geo: {
                                chart: {
                                    canvasBgColor: "#0000ff"
                                }
                            },
                            world: {
                                chart: {
                                    canvasBgColor: "#00ff00"
                                }
                            }
                        }
                    },
                    name: "DefaultTheme",
                    type: "theme"
                };
            /** !
             * @license FusionCharts JavaScript Library
             * Copyright FusionCharts, Inc.
             * License Information at <http://www.fusioncharts.com/license>
             */
            t["default"] = a
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a, i = r(193),
                o = n(r(258)),
                s = r(205),
                l = /^#?[0-9a-f]{6}/i,
                c = /FFFFFF/i,
                u = /255,255,255/,
                d = function(e) {
                    var t = e.replace("rgba(", "").split(",");
                    return "#" + ("000000" + (t[0] << 16 | t[1] << 8 | t[2]).toString(16)).slice(-6)
                },
                h = function(e, t) {
                    var r, n, a = [];
                    if ("number" == typeof e) return t;
                    for (n = e.split && e.split(","), r = 0; r < n.length; r++) a.push(t);
                    return a.join()
                },
                f = function(e) {
                    var t;
                    return /rgb/.test(e) ? (t = e.match(/[\d\.]+\)/g), parseFloat(t && t[0])) : e.FCcolor ? (0, i.getFirstAlpha)(e.FCcolor.alpha) : void 0
                },
                g = function(e, t, r, n, a) {
                    var o, s, l, c, u, h;
                    o = d(n.color), l = 100 * f(n.color), s = a ? (0, i.pluck)(r.valuefontcolor, o) : o, c = a ? (0, i.pluck)(r.valuefontalpha, r.alpha, l) : l, o = "" === n.backgroundColor ? "" : d(n.backgroundColor), l = "" === n.backgroundColor ? 0 : 100 * f(n.backgroundColor), isNaN(l) && (l = 0), u = (0, i.toRaphaelColor)({
                        color: a ? (0, i.pluck)(r.valuebgcolor, o) : o,
                        alpha: a ? (0, i.pluck)(r.valuebgalpha, r.alpha, l) : l
                    }), o = "" === n.borderColor ? "" : d(n.borderColor), l = "" === n.borderColor ? "" : 100 * f(n.borderColor), isNaN(l) && (l = 0), h = (0, i.toRaphaelColor)({
                        color: a ? (0, i.pluck)(r.valuebordercolor, o) : o,
                        alpha: a ? (0, i.pluck)(r.valueborderalpha, r.alpha, l) : l
                    }), t && e.setAnimation({
                        el: t,
                        label: "highlightedDataLabel",
                        attr: {
                            fill: (0, i.toRaphaelColor)({
                                color: s,
                                alpha: c
                            }),
                            "text-bound": [u, h, n.borderThickness, n.borderPadding, n.borderRadius, n.borderDash]
                        }
                    })
                },
                p = function(e) {
                    var t, r, n, a, i, o = e.split(","),
                        s = {};
                    for (t = 0, r = o.length; t < r; t++) a = (n = o[t].split("="))[0], i = n[1], s[a] = i;
                    return s
                },
                m = function(e, t, r) {
                    var n, a, o = t.color;
                    return /rgb/.test(e) ? (n = (0, i.pluck)(t.alpha, 100 * f(e)), /rgb/.test(o) && (o = d(o)), a = r ? (0, i.toRaphaelColor)({
                        color: (0, i.pluck)(o, d(e)),
                        alpha: n
                    }) : e) : e.FCcolor ? a = r ? (0, i.toRaphaelColor)(function(e, t) {
                        var r, n, a = {};
                        for (r in e) "alpha" === r ? a[r] = t.alpha ? h(e[r], t.alpha) : e[r] : "color" === r ? (-1 !== e[r].indexOf(",") && t.color && (n = t.color + "," + e[r].substring(e[r].indexOf(",") + 1)), a[r] = (0, i.pluck)(n || t.color, e[r])) : a[r] = e[r];
                        return a
                    }(e.FCcolor, t)) : (0, i.toRaphaelColor)(e.FCcolor) : l.test(e.color || e) && (a = r ? (0, i.toRaphaelColor)({
                        color: (0, i.pluck)(t.color, e.color, e),
                        alpha: (0, i.pluck)(t.alpha, e.alpha)
                    }) : (0, i.toRaphaelColor)({
                        color: e.color || e,
                        alpha: e.alpha
                    })), a
                },
                v = function(e, t, r, n, a, o) {
                    var s, l, c, u, h, g, p, v, b = {},
                        y = {};
                    a ? (s = (0, i.getColumnColor)(n.color || r.upperColorArr[0].FCcolor.color, n.alpha.toString(), r.upperColorArr[0].FCcolor.ratio, r.upperColorArr[0].FCcolor.angle, o, n.bordercolor || d(r.upperBoxBorder.color), n.borderalpha && n.borderalpha.toString() || (100 * f(r.lowerBoxBorder.color)).toString()), y = (0, i.toRaphaelColor)(s[0]), l = (0, i.getColumnColor)(n.color || r.lowerColorArr[0].FCcolor.color, n.alpha.toString(), r.lowerColorArr[0].FCcolor.ratio, r.lowerColorArr[0].FCcolor.angle, o, n.bordercolor || d(r.lowerBoxBorder.color), n.borderalpha && n.borderalpha.toString() || (100 * f(r.lowerBoxBorder.color)).toString()), b = (0, i.toRaphaelColor)(l[0]), c = m(r.median.color, n, a), g = m(r.lowerQuartile.color, n, a), p = m(r.upperQuartile.color, n, a)) : (y = (0, i.toRaphaelColor)(r.upperColorArr[0]), b = (0, i.toRaphaelColor)(r.lowerColorArr[0]), c = r.median.color, u = r.upperBoxBorder.color, h = r.lowerBoxBorder.color, p = r.upperQuartile.color, g = r.lowerQuartile.color), v = t.upperBoxElem, e.setAnimation({
                        el: v,
                        label: "highlightedBoxAnsWhiskerPlot",
                        attr: {
                            fill: y,
                            "drop-shadow": v.attrs["drop-shadow"] && "none" !== v.attrs["drop-shadow"] ? [1, 1, 3, "rgba(64,64,64," + f(y) + ")", v.attrs[4], v.attrs["drop-shadow"][5]] : "none"
                        }
                    }), v = t.lowerBoxElem, e.setAnimation({
                        el: v,
                        label: "highlightedBoxAnsWhiskerPlot",
                        attr: {
                            fill: b,
                            "drop-shadow": v.attrs["drop-shadow"] && "none" !== v.attrs["drop-shadow"] ? [1, 1, 3, "rgba(64,64,64," + f(b) + ")", v.attrs[4], v.attrs["drop-shadow"][5]] : "none"
                        }
                    }), v = t.lowerBoxBorderEle, e.setAnimation({
                        el: v,
                        label: "highlightedBoxAnsWhiskerPlot",
                        attr: {
                            stroke: h
                        }
                    }), t.upperBoxBorderEle && e.setAnimation({
                        el: t.upperBoxBorderEle,
                        label: "highlightedBoxAnsWhiskerPlot",
                        attr: {
                            stroke: u
                        }
                    }), t.lowerQuartileEle && e.setAnimation({
                        el: t.lowerQuartileEle,
                        label: "highlightedBoxAnsWhiskerPlot",
                        attr: {
                            stroke: g
                        }
                    }), t.upperQuartileEl && e.setAnimation({
                        el: t.upperQuartileEl,
                        label: "highlightedBoxAnsWhiskerPlot",
                        attr: {
                            stroke: p
                        }
                    }), t.midLineElem && e.setAnimation({
                        el: t.midLineElem,
                        label: "highlightedBoxAnsWhiskerPlot",
                        attr: {
                            stroke: c
                        }
                    })
                },
                b = function(e, t, r) {
                    var n, a, o, s, l, c, u, d, h, f = e.getFromEnv("chart"),
                        p = e.getFromEnv("animationManager"),
                        m = (f.config, f.config.dataLabelStyle),
                        v = e.components.data;
                    for (n = 0, a = v.length; n < a; n++)
                        if (u = v[n])
                            for (c in o = u.graphics, h = (s = u.config.anchorProps).enabled, l = {
                                    fillColor: {
                                        FCcolor: {
                                            alpha: r && h ? (0, i.pluck)(t.anchorbgalpha, t.alpha, s.bgAlpha) : s.bgAlpha,
                                            color: r && h ? (0, i.pluck)(t.anchorbgcolor, t.color, s.bgColor) : s.bgColor
                                        }
                                    },
                                    borderColor: {
                                        FCcolor: {
                                            alpha: r && h ? (0, i.pluck)(t.borderalpha, t.alpha, s.borderAlpha) : s.borderAlpha,
                                            color: r && h ? (0, i.pluck)(t.anchorbordercolor, t.color, s.borderColor) : s.borderColor
                                        }
                                    },
                                    imageAlpha: r ? t.alpha : s.imageAlpha,
                                    imageScale: s.imageScale
                                }, o) switch ((d = !c.match(/error/gi) && o[c]) && d.type) {
                                case "path":
                                    p.setAnimation({
                                        el: d,
                                        label: "highlightedAnchorPlot",
                                        attr: {
                                            fill: (0, i.toRaphaelColor)(l.fillColor),
                                            stroke: (0, i.toRaphaelColor)(l.borderColor)
                                        }
                                    });
                                    break;
                                case "image":
                                    p.setAnimation({
                                        el: d,
                                        label: "highlightedAnchorImagePlot",
                                        attr: {
                                            opacity: l.imageAlpha / 100
                                        }
                                    });
                                    break;
                                case "text":
                                    g(p, d, t, m, r)
                            }
                },
                y = function(e, t, r, n, a) {
                    var o, s = e.getStateCosmetics("default").symbol || {},
                        h = s.fill,
                        f = s.stroke,
                        g = a ? (0, i.pluck)(n.color, d(r.text.fill)) : d(r.text.fill),
                        p = t.legendItemLine,
                        v = r.symbol.stroke,
                        b = e.getFromEnv("animationManager");
                    p && v && (l.test(v) ? b.setAnimation({
                        el: p,
                        label: "highlightedLegendItem",
                        attr: {
                            stroke: a ? (0, i.toRaphaelColor)({
                                color: (0, i.pluck)(n.color, v),
                                alpha: n.alpha
                            }) : v
                        }
                    }) : (o = m(v, n, a), b.setAnimation({
                        el: p,
                        label: "highlightedLegendItem",
                        attr: {
                            stroke: o
                        }
                    }))), h && (h = h.match(l) ? a && !c.test(h) ? (0, i.toRaphaelColor)({
                        color: n.color || h,
                        alpha: n.alpha
                    }) : h : u.test(h) ? h : m(h, n, a)), f && (f = l.test(f) ? a && !c.test(f) ? (0, i.toRaphaelColor)({
                        color: n.color || f,
                        alpha: n.alpha
                    }) : f : a && !u.test(f) && n.color ? (0, i.toRaphaelColor)({
                        color: n.color,
                        alpha: n.alpha
                    }) : f), e.setStateCosmetics("highlight", {
                        symbol: {
                            fill: h || "none",
                            stroke: f || "none",
                            opacity: (a ? n.alpha : 100) / 100
                        },
                        text: {
                            fill: (0, i.toRaphaelColor)({
                                color: g,
                                alpha: a ? n.alpha : 100
                            })
                        }
                    }), e.hasState("hidden") || e.setLegendState("highlight", !0)
                },
                x = function(e, t) {
                    var r = e.getFromEnv("legend").getItem(t);
                    return r && r.getGraphicalElement()
                },
                w = {
                    area: function(e, t, r) {
                        var n, a, o, s, l, c, u, d, h, g, m, v, w, C, _, k = this,
                            S = k.getFromEnv("chart"),
                            E = k.getFromEnv("animationManager"),
                            A = S.getFromEnv("legend").getChildren("legendItem") || [],
                            T = arguments[4],
                            N = A.length,
                            M = p(e),
                            D = x(S, T),
                            F = S.config.dataLabelStyle,
                            I = k.getContainer("labelGroup"),
                            L = k.config,
                            O = L.shadow || {},
                            R = O.opacity > 0;
                        if (!r && k.getState("visible")) {
                            for (M.alpha = M.alpha || 30, a = 0; a < N && (n = A[a] || {}).getId() !== T; a++);
                            I && E.setAnimation({
                                el: I,
                                label: "highlightedGroup",
                                attr: {
                                    opacity: t ? M.alpha / 100 : f(F.color)
                                }
                            }), s = L.plotbordercolor, h = L.plotborderalpha, C = L.plotfillalpha, o = L.plotgradientcolor, v = k.getGraphicalElement("lineElement") || k.getGraphicalElement("splineElement"), u = t ? (0, i.pluck)(M.bordercolor, M.color, s) : s, M.color && (g = M.color + (o ? "," + o : "")), m = L.fillColor.color, l = t ? (0, i.pluck)(g, m) : m, w = L.plotfillangle, c = t ? M.alpha : C, d = t ? (0, i.pluck)(M.borderalpha, M.alpha) : h, _ = !!R && (t ? M.alpha / 100 : c / 100), E.setAnimation({
                                el: v,
                                label: "highlightedAreaPlot",
                                attr: {
                                    fill: (0, i.toRaphaelColor)({
                                        color: l,
                                        alpha: c,
                                        angle: w
                                    }),
                                    stroke: (0, i.toRaphaelColor)({
                                        color: u,
                                        alpha: d
                                    })
                                }
                            }), v.shadow(_), D && y(n, D, n.parseLegendCosmetics(), M, t), b(k, M, t)
                        }
                    },
                    bubble: function(e, t, r) {
                        var n, a, o, s, l, c, u, d, h, m, v, b, w = this,
                            C = w.getFromEnv("chart"),
                            _ = w.getFromEnv("animationManager"),
                            k = C.getFromEnv("legend").getChildren("legendItem") || [],
                            S = k.length,
                            E = arguments[4],
                            A = C.config.dataLabelStyle,
                            T = w.getContainer("labelGroup"),
                            N = p(e);
                        if (!1 === r && w.getState("visible")) {
                            for (N.alpha || (N.alpha = 30), o = w.components.data || [], a = 0; a < S && (n = k[a] || {}).getId() !== E; a++);
                            for (y(n, x(C, E), n.parseLegendCosmetics(), N, t), T && _.setAnimation({
                                    el: T,
                                    label: "highlightedGroup",
                                    attr: {
                                        opacity: t ? N.alpha / 100 : f(A.color)
                                    }
                                }), a = 0, S = o.length; a < S; a++)(s = o[a]) && (v = s.graphics, c = (l = s.config).colorObj, d = l.is3D, u = v.element, b = v.label, d ? (m = t ? (0, i.getPointColor)((0, i.pluck)(N.color, c.FCcolor.color), (0, i.pluck)(N.alpha, (0, i.getFirstAlpha)(c.alpha))) : c, m = (0, i.toRaphaelColor)(m)) : (m = t ? (0, i.pluck)(N.color, c.color) : c.color, h = t ? N.alpha : c.alpha, m = (0, i.toRaphaelColor)({
                                color: m,
                                alpha: h
                            })), u && _.setAnimation({
                                el: u,
                                label: "highlightedBubblePlot",
                                attr: {
                                    fill: m
                                }
                            }), b && g(_, b, N, A, t))
                        }
                    },
                    pie: function(e, t, r, n) {
                        var a, s, l, c, u, d, h, m, v, b, w, C, _, k, S = this,
                            E = n.getFromEnv("chart"),
                            A = n.getFromEnv("animationManager"),
                            T = this,
                            N = {},
                            M = arguments[4],
                            D = E.getFromEnv("legend").getChildren("legendItem") || [],
                            F = p(e);
                        if (!1 === r) {
                            for (F.alpha || (F.alpha = 30), s = S.graphics.element, l = S.config, w = 0, b = D.length; w < b && (_ = D[w]).getId() !== M; w++);
                            C = x(E, M), y(_, C, _.parseLegendCosmetics(), F, t), u = l.color.color, E = (T = s.data("plotItem")).chart, a = T.style, c = 90, h = E.config.is3D, (d = T.center) && (N = {
                                cx: d[0],
                                cy: d[1],
                                r: T.radius
                            }), u = t ? (0, o["default"])((0, i.pluck)(F.color, u), F.alpha, c) : l.color, k = t ? F.alpha : u.alpha, u = (0, i.extend2)(u, N), h ? s && A.setAnimation({
                                el: s,
                                label: "highlightedPiePlot",
                                attr: {
                                    color: u.color.split(",")[0],
                                    alpha: k
                                }
                            }) : s && A.setAnimation({
                                el: s,
                                label: "highlightedPiePlot",
                                attr: {
                                    fill: (0, i.toRaphaelColor)(u)
                                }
                            }), m = S.graphics.label, v = S.graphics.connector, m && g(A, m, F, a, t), v && A.setAnimation({
                                el: v,
                                label: "highlightedPieConnectorPlot",
                                attr: {
                                    opacity: t ? F.alpha / 100 : f(a.color)
                                }
                            })
                        }
                    },
                    line: function(e, t, r) {
                        var n, a, o, s, l, c, u, d = this,
                            h = d.getFromEnv("chart"),
                            g = d.getFromEnv("animationManager"),
                            m = h.getFromEnv("legend").getChildren("legendItem") || [],
                            v = m.length,
                            w = arguments[4],
                            C = h.config.dataLabelStyle,
                            _ = p(e),
                            k = x(h, w),
                            S = d.getContainer("labelGroup"),
                            E = d.getContainer("errorPlotGroup"),
                            A = d.config,
                            T = A.linecolor,
                            N = A.alpha || A.lineAlpha,
                            M = A.shadow || {},
                            D = M.opacity > 0,
                            F = d.config.lineOb,
                            I = "";
                        if (!r && d.getState("visible")) {
                            for (_.alpha || (_.alpha = 30), l = 0; l < v && (n = m[l] || {}).getId() !== w; l++);
                            if (E && (a = A.errorBarColor && f(A.errorBarColor), o = t ? (0, i.pluck)(_.alpha / 100, a) : a, g.setAnimation({
                                    el: E,
                                    label: "highlightedGroup",
                                    attr: {
                                        opacity: o
                                    }
                                })), S && g.setAnimation({
                                    el: S,
                                    label: "highlightedGroup",
                                    attr: {
                                        opacity: t ? _.alpha / 100 : f(C.color)
                                    }
                                }), s = d.getGraphicalElement("lineElement"), T = t ? (0, i.pluck)(_.color, T) : T, N = t ? (0, i.pluck)(_.alpha, N) : N, c = !!D && (t ? _.alpha / 100 : N / 100), s && g.setAnimation({
                                    el: s,
                                    label: "highlightedLinePlot",
                                    attr: {
                                        stroke: (0, i.toRaphaelColor)({
                                            color: T,
                                            alpha: N
                                        })
                                    }
                                }), s && s.shadow(c), "object" == typeof F && F)
                                for (I in F)(u = F[I] && F[I].el) && g.setAnimation({
                                    el: u,
                                    label: "highlightedLinePlot",
                                    attr: {
                                        stroke: t ? T : F[I].attr.stroke,
                                        "stroke-opacity": N / 100
                                    }
                                }), u && u.shadow(c);
                            k && y(n, k, n.parseLegendCosmetics(), _, t), b(d, _, t)
                        }
                    },
                    boxandwhisker2d: function(e, t, r) {
                        var n, a, i, o, s, l, c = this,
                            u = c.getFromEnv("chart"),
                            d = c.getFromEnv("animationManager"),
                            h = c.config.isRoundEdges,
                            f = arguments[4],
                            g = x(u, f),
                            m = c.getContainer("lowerWhiskerGroup"),
                            b = c.getContainer("upperWhiskerGroup"),
                            w = c.getContainer("labelGroup"),
                            C = u.getFromEnv("legend").getChildren("legendItem") || [],
                            _ = C.length,
                            k = p(e);
                        if (!1 === r && c.getState("visible")) {
                            for (k.alpha || (k.alpha = 30), n = 0; n < _ && (a = C[n] || {}).getId() !== f; n++);
                            for (y(a, g, a.parseLegendCosmetics(), k, t), m && d.setAnimation({
                                    el: m,
                                    label: "highlightedGroup",
                                    attr: {
                                        opacity: t ? k.alpha / 100 : 1
                                    }
                                }), b && d.setAnimation({
                                    el: b,
                                    label: "highlightedGroup",
                                    attr: {
                                        opacity: t ? k.alpha / 100 : 1
                                    }
                                }), w && d.setAnimation({
                                    el: w,
                                    label: "highlightedGroup",
                                    attr: {
                                        opacity: t ? k.alpha / 100 : 1
                                    }
                                }), n = 0, _ = (l = c.components.data).length; n < _; n++) s = (o = l[n]).config, i = o.graphics, v(d, i, s, k, t, h)
                        }
                    },
                    heatmap: function(e, t, r, n) {
                        var a, o, s, l, c, u, h, m, v, b, w, C = this,
                            _ = n.getFromEnv("chart"),
                            k = n.getFromEnv("animationManager"),
                            S = _.config,
                            E = S.dataLabelStyle,
                            A = _.getFromEnv("legend"),
                            T = arguments[4],
                            N = p(e),
                            M = A.getChildren("legendItem") || [];
                        if (!r && n.getState("visible") && !1 !== C.visible) {
                            for (N.alpha || (N.alpha = t ? 30 : 100), S = C.config, v = 0, m = M.length; v < m && (w = M[v]).getId() !== T; v++);
                            for (u in b = x(_, T), y(w, b, w.parseLegendCosmetics(), N, t), c = d(S.color), l = f(S.color), a = t ? (0, i.pluck)(N.color, c) : c, o = t ? N.alpha : 100 * l, (s = (h = C.graphics).element) && k.setAnimation({
                                    el: s,
                                    label: "highlightedHeatmapPlot",
                                    attr: {
                                        fill: (0, i.toRaphaelColor)({
                                            color: a,
                                            alpha: o
                                        })
                                    }
                                }), h) "text" === (s = h[u]).type && g(k, s, N, E, t)
                        }
                    },
                    funnelpyramid: function(e, t, r, n) {
                        var a, o, s, l, c, u, h, m, v, b, w, C, _, k, S, E = this,
                            A = n.getFromEnv("chart"),
                            T = n.getFromEnv("animationManager"),
                            N = p(e),
                            M = A.getFromEnv("legend").getChildren("legendItem") || [],
                            D = arguments[4];
                        if (!1 === r) {
                            for (N.alpha || (N.alpha = 30), l = E, _ = 0, C = M.length; _ < C && (S = M[_]).getId() !== D; _++);
                            k = x(A, D), y(S, k, S.parseLegendCosmetics(), N, t), o = l.style, w = l.color, c = d(w), b = f(w), u = t ? (0, i.pluck)(N.color, c) : c, h = t ? N.alpha : 100 * b, s = E.getGraphicalElement("graphic"), m = E.getGraphicalElement("dataLabel"), v = E.getGraphicalElement("connector"), a = E.style, s && T.setAnimation({
                                el: s,
                                label: "highlightedFunnelPyramidPlot",
                                attr: {
                                    fill: (0, i.toRaphaelColor)({
                                        color: u,
                                        alpha: h
                                    })
                                }
                            }), m && g(T, m, N, a, t), v && T.setAnimation({
                                el: v,
                                label: "highlightedFunnelPyramidConnectorPlot",
                                attr: {
                                    opacity: t ? N.alpha / 100 : f(o.color)
                                }
                            })
                        }
                    },
                    sankey: function(e, t, r) {
                        var n, a, i = e.getLinkedParent(),
                            o = i.getChildren("legend")[0];
                        e.getChildren("nodes").forEach((function(e) {
                            n = o.getItem(e.config.legendItemId), e.config.legendItemId === t ? (r ? e.onFocusCallback() : e.onFocusOutCallback(), a = !1) : a = !0, a = a && r, y(n, x(i, t), n.parseLegendCosmetics(), {
                                alpha: 30
                            }, a)
                        }))
                    },
                    "default": function(e, t, r) {
                        var n, a, o, s, l, c, u, d, h, m, v, b, w, C, _, k = this,
                            S = k.config,
                            E = k.getFromEnv("chart"),
                            A = k.getFromEnv("animationManager"),
                            T = E.config,
                            N = T.dataLabelStyle,
                            M = T.useroundedges,
                            D = E.config.is3D,
                            F = p(e),
                            I = arguments[4],
                            L = x(E, I),
                            O = k.getContainer("labelGroup"),
                            R = k.getContainer("errorPlotGroup"),
                            P = "",
                            V = E.getFromEnv("legend"),
                            B = V.getChildren("legendItem") || [],
                            j = B.length,
                            H = S.showShadow;
                        if (!1 === r && !0 === k.getState("visible")) {
                            for (F.alpha || (F.alpha = "30"), v = k.components.data || [], a = 0; a < j && (C = B[a] || {}).getId() !== I; a++);
                            for (L && y(C, L, C.parseLegendCosmetics(), F, t), O && A.setAnimation({
                                    el: O,
                                    label: "highlightedGroup",
                                    attr: {
                                        opacity: t ? F.alpha / 100 : f(N.color)
                                    }
                                }), R && (l = S.errorBarColor && f(S.errorBarColor), c = t ? (0, i.pluck)(F.alpha / 100, l) : l, A.setAnimation({
                                    el: R,
                                    label: "highlightedGroup",
                                    attr: {
                                        opacity: c
                                    }
                                })), a = 0, j = v.length; a < j; a++)(b = v[a]) && b.graphics && (m = (T = b.config).colorArr[0], _ = (o = T.colorArr[1]).FCcolor.alpha, P = -1 !== (d = (n = m.FCcolor.color).indexOf(",")) && F.color ? F.color + n.substring(d) : (0, i.pluck)(F.color, n), h = D ? _ : (0, i.pluck)(F.borderalpha, F.alpha, _), 0 === (0, i.pluckNumber)(_) && (h = "0"), u = t ? (0, i.getColumnColor)(P, F.alpha, m.FCcolor.ratio, m.FCcolor.angle, M, (0, i.pluck)(F.bordercolor, o.FCcolor.color), h, !1, D) : [m, o], (s = b.graphics.element) && (n = (0, i.toRaphaelColor)(u[0]), o = (0, i.toRaphaelColor)(u[1]), A.setAnimation({
                                el: s,
                                label: "highlightedDefaultPlot",
                                attr: {
                                    stroke: o,
                                    fill: n
                                }
                            }), s.shadow({
                                opacity: H ? (0, i.getFirstAlpha)(u[0].alpha) / 100 : 0
                            })), w = b.graphics.label, g(A, w, F, N, t))
                        }
                    }
                },
                C = function(e, t) {
                    var r = e.sender.apiInstance;
                    !1 !== r.hasInteractiveLegend && !1 !== r.highlightEnabled && a.applyEffect(r, t, !0)
                },
                _ = function(e, t) {
                    var r = e.sender.apiInstance;
                    !1 !== r.hasInteractiveLegend && !1 !== r.highlightEnabled && a.applyEffect(r, t, !1)
                },
                k = function(e, t) {
                    var r = e.sender.apiInstance;
                    r.addJob("plothighlighteffect", (function() {
                        r.config.showLegend && !1 !== r.hasInteractiveLegend && !1 !== r.highlightEnabled && a.applyEffect(r, t, !0)
                    }), s.priorityList.postRender)
                };
            var S = {
                extension: function(e) {
                    var t;
                    (a = new(function() {
                        function t() {
                            this.effectStore = {}, this.eventHandlers = {}
                        }
                        var r = t.prototype;
                        return r.add = function(e) {
                            this.effectStore[e.name] = e
                        }, r.attachEventHandlers = function(t, r) {
                            this.eventHandlers[t] || (this.eventHandlers[t] = {}, this.eventHandlers[t].listenerFn = e.addEventListener(t, r))
                        }, r.applyEffect = function(e, t, r) {
                            var n, a, o, s, l, c, u, d, h, f, g, p, m = this.effectStore,
                                v = e.getFromEnv("chart-attrib"),
                                b = e.config.defaultDatasetType,
                                y = v.plothighlighteffect && v.plothighlighteffect.toLowerCase(),
                                x = e.getDatasets(),
                                w = e.config.isSingleSeries ? x[0].components.data : x,
                                C = (0, i.pluck)(t.itemId, t.legendItemId, t.legendItemIndex),
                                _ = "";
                            if (e.getFromEnv("legend").getChildren("legendItem").forEach((function(e) {
                                    return function t(e) {
                                        e.removeStateCosmetics("highlight", t)
                                    }(e)
                                })), "funnel" !== e.getName() && "Pyramid" !== e.getName() || (w = x[0].getChildren("data")), e.getFromEnv("animationManager").setAnimationState("plotHighlighter"), y && (p = (y = y.replace(/\s+/g, "").split("|"))[0], _ = y[1] || ""), p && m[p])
                                if ("HeatMap" === e.getName())
                                    for (n = e.getFromEnv("colorRange"), g = function(e) {
                                            var t, r, n = u.getChildren("legendItem"),
                                                a = n && n.length;
                                            for (t = 0; t < a; ++t)
                                                if (n[t].config.datasetObj.code === e) {
                                                    r = n[t].getId();
                                                    break
                                                }
                                            return r
                                        }, h = (u = e.getFromEnv("legend")).getItem(C).config.datasetObj, l = 0; l < w.length; l++) a = (s = w[l]).config.value, (f = n.getColorObj(a)).outOfRange || (h.code === f.code ? m[p][b].call(s, _, r, !0, x[0], C) : m[p][b].call(s, _, r, !1, x[0], g(f.code)));
                                else if ("sankey" === e.getName()) m[p].sankey(x[0], C, r);
                            else
                                for (l = 0, d = w.length; l < d; l++) b = (b = (s = w[l]).getName && s.getName() || b).toLowerCase(), void 0 !== (o = (0, i.pluck)(s.config.itemId, s.config.legendItemId)) && (c = o === C, m[p][b] ? m[p][b].call(s, _, r, c, x[0], o) : m[p]["default"].call(s, _, r, c, x[0], o))
                        }, t
                    }())).attachEventHandlers("legenditemrollover", C), a.attachEventHandlers("legenditemrollout", _), a.attachEventHandlers("legenditemclicked", k), (t = {
                        name: "fadeout",
                        area: w.area,
                        radar: w.area,
                        bubble: w.bubble,
                        pie2d: w.pie,
                        line: w.line,
                        spline: w.line,
                        splinearea: w.area,
                        pie3d: w.pie,
                        zoomline: w.line,
                        funnelpoint: w.funnelpyramid,
                        pyramidpoint: w.funnelpyramid,
                        scatter: w.line,
                        selectscatter: w.line,
                        dragline: w.line,
                        dragarea: w.area,
                        realtimearea: w.area,
                        realtimeline: w.line,
                        realtimelinedy: w.line,
                        realtimestackedarea: w.area,
                        errorline: w.line,
                        errorscatter: w.line,
                        stepline: w.line,
                        doughnut2d: w.pie,
                        doughnut3d: w.pie,
                        heatmap: w.heatmap,
                        boxandwhisker2d: w.boxandwhisker2d,
                        multiaxisline: w.line,
                        sankey: w.sankey,
                        "default": w["default"]
                    }) && a.add(t)
                },
                name: "PlotHighlighter",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = S
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(193),
                a = function(e, t, r, a) {
                    var i, o, s, l, c, u, d = (0, n.getFirstColor)(e),
                        h = (0, n.getFirstAlpha)(t);
                    return r < 100 && n.hasSVG ? a ? (c = (0, n.getDarkColor)(d, Math.floor(100 * (85 - .2 * (100 - r))) / 100), u = (0, n.getLightColor)(d, Math.floor(100 * (100 - .5 * r)) / 100), i = {
                        color: c + n.COMMASTRING + u + n.COMMASTRING + u + n.COMMASTRING + c,
                        alpha: h + n.COMMASTRING + h + n.COMMASTRING + h + n.COMMASTRING + h,
                        radialGradient: !0,
                        gradientUnits: "userSpaceOnUse",
                        r: r
                    }) : (o = Math.floor(.85 * (100 - .35 * r) * 100) / 100, s = (0, n.getDarkColor)(d, o), l = Math.floor(.5 * (100 + r) * 100) / 100, i = {
                        color: (0, n.getLightColor)(d, l) + n.COMMASTRING + s,
                        alpha: h + n.COMMASTRING + h,
                        ratio: r + "," + (100 - r),
                        radialGradient: !0,
                        gradientUnits: "userSpaceOnUse"
                    }) : i = {
                        color: d + n.COMMASTRING + d,
                        alpha: h + n.COMMASTRING + h,
                        ratio: "0,100"
                    }, i
                };
            t["default"] = a
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(260)),
                i = r(193),
                o = "__FC_tooltipText",
                s = function(e, t, r) {
                    var n = (0, i.getMouseCoordinate)(t.universe, (0, i.getTouchEvent)(r), t.chart),
                        a = 11,
                        s = 11,
                        l = n.chartX,
                        u = n.chartY;
                    this.applyScale && (this._updateScalingValues(), a /= this.scaleFactor.scaleX, s /= this.scaleFactor.scaleY), l += a, u += s, c._draw.call(t, l, u, this.data(o), e)
                },
                l = function(e) {
                    c._hide(e)
                },
                c = function() {
                    function e(t, r) {
                        var n = this;
                        n.config = {}, n.universe = t, this.scaleFactor = (0, i.getScalingValue)(t), this.applyScale = 0, this.chart = r, this.restrictWithinCanvas = {
                            left: !1,
                            right: !1,
                            top: !1,
                            bottom: !1
                        }, n.toolTips = {
                            implicit: [],
                            explicit: []
                        }, n.hideImplicitToolTip = function(t) {
                            var r = n.lastActiveToolip;
                            r && t.target !== r.getData("targetElement").node && (e._hide(r), n.config.lastActiveToolip = i.UNDEF)
                        }, n.config.positioningArr = [], n.config.canvasArr = [], t.FusionCharts.jsVars.fcObj.addEventListener("resized", n._updateAllToolTipBounds.bind(n))
                    }
                    var t = e.prototype;
                    return t.setRestrictionWithinCanvas = function(e) {
                        void 0 === e && (e = {}), Object.assign(this.restrictWithinCanvas, e)
                    }, t.getRestrictionWithinCanvas = function() {
                        return this.restrictWithinCanvas
                    }, t._updateAllToolTipBounds = function() {
                        var e, t, r = this.config,
                            n = function(t) {
                                t.universeBounds && t.universeBounds.canvas && (e = r.canvasArr.indexOf(t.universeBounds.canvas)), t.setUniverseBounds(r.positioningArr[e])
                            },
                            a = this.toolTips;
                        for (t in a) a[t].forEach(n)
                    }, t._setRelativePosition = function(e) {
                        var t = this.config,
                            r = t.canvasArr,
                            n = t.positioningArr,
                            a = r.indexOf(e.canvas); - 1 === a ? (r.push(e.canvas), n.push(e)) : (r[a] = e.canvas, n[a] = e)
                    }, t._createToolTip = function(e, t) {
                        var r, n = this.config;
                        return (r = new a["default"](this.universe, n.positioningArr[n.canvasArr.indexOf(t)])).setRestrictionWithinCanvas(this.restrictWithinCanvas), r.setStyle(this.config.tooltipStyle), this.toolTips[e].push(r), r
                    }, t.enableToolTip = function(e, t, r) {
                        var n, a, i = this,
                            c = i.toolTips.implicit,
                            u = c.length;
                        return t ? e.data(o) ? (u > 0 && c.some((function(r) {
                            return !(!(n = r).getData("active") || n.data.targetElement !== e) && (n.show(t), !0)
                        })), e.data(o, t), i) : (n = i._getAvailableToolTip("implicit", r), i.disableToolTip(e), e.data(o, t), e.data("__FC_onTooltipMove", s.bind(e, n, i)), e.data("__FC_onTooltipOut", l.bind(e, n)), e.data("__FC_onTooltipOver", (a = e, function(t) {
                            i.draw(t, e.data(o), n), n.setData("targetElement", a), i.config.lastActiveToolip = n
                        })), e.on("fc-mousemove", e.data("__FC_onTooltipMove")), e.on("fc-mouseout", e.data("__FC_onTooltipOut")), e.on("fc-mouseover", e.data("__FC_onTooltipOver")), i) : (i.disableToolTip(e), i)
                    }, t.disableToolTip = function(e) {
                        var t = e.data("__FC_onTooltipOut"),
                            r = e.data("__FC_onTooltipMove"),
                            n = e.data("__FC_onTooltipOver");
                        return r && e.off("fc-mousemove", r), t && e.off("fc-mouseout", t), n && e.off("fc-mouseover", n), e.removeData(o), this
                    }, t._updateScalingValues = function() {
                        var e = this.universe;
                        this.scaleFactor = (0, i.getScalingValue)(e)
                    }, t.draw = function(t, r, n, a) {
                        var o, s, l = 11,
                            c = 11,
                            u = (0, i.getMouseCoordinate)(this.universe, (0, i.getTouchEvent)(t), this.chart),
                            d = n && !n.disposed ? n : this._getAvailableToolTip("explicit", a);
                        return this.applyScale && (this._updateScalingValues(), l /= this.scaleFactor.scaleX, c /= this.scaleFactor.scaleY), o = u.chartX, s = u.chartY, o += l, s += c, e._draw.call(this, o, s, r, d), d
                    }, t.drawAt = function(t, r, n, a, i) {
                        this.applyScale && this._updateScalingValues();
                        var o = a && !a.disposed ? a : this._getAvailableToolTip("explicit", i);
                        return e._draw.call(this, t, r, n, o), o
                    }, e._draw = function(e, t, r, n) {
                        var a = this.config;
                        (0, i.isSimilarObject)(n.previousStyle, a.tooltipStyle) || (n.setStyle(a.tooltipStyle), n.previousStyle = Object.assign({}, a.tooltipStyle)), n.show(r), n.update(e, t)
                    }, t._getAvailableToolTip = function(e, t) {
                        for (var r, n = this.toolTips[e], a = 0, i = n.length; a < i; a++)
                            if (!1 === (r = n[a]).getData("active")) return r;
                        return this._createToolTip(e, t)
                    }, t.setStyle = function(e) {
                        var t, r = this.config;
                        for (var n in t = r.tooltipStyle = {}, e) "showToolTipShadow" === n ? e[n] ? t.boxShadow = "1px 1px 3px rgba(64,64,64,0.4)" : t.boxShadow = "none" : t[n] = e[n]
                    }, t.hide = function(t) {
                        return e._hide(t), this
                    }, t.hideAll = function() {
                        var t, r;
                        for (t in this.toolTips)
                            for (r = 0; r < this.toolTips[t].length; r++) e._hide(this.toolTips[t][r])
                    }, t.setApplyScale = function(e) {
                        this.applyScale = e
                    }, e._hide = function(e, t) {
                        e && (t ? e.dispose() : e.hide())
                    }, e
                }(),
                u = {
                    extension: c,
                    name: "ToolTipController",
                    type: "plugin"
                };
            t["default"] = u
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(193),
                a = "fusioncharts-div",
                i = "#545454",
                o = "3px",
                s = "10px",
                l = "hidden",
                c = "1px",
                u = "#000000",
                d = "nowrap",
                h = "normal",
                f = "absolute",
                g = "solid",
                p = "#ffffff",
                m = "none",
                v = "hidden",
                b = "none",
                y = "left, top",
                x = "auto",
                w = function(e) {
                    var t = e.getBoundingClientRect();
                    return {
                        left: 0,
                        top: 0,
                        right: t.width || t.right - t.left,
                        bottom: t.height || t.bottom - t.top
                    }
                },
                C = function() {
                    function e(e, t) {
                        this.text = n.BLANKSTRING, this.x = 0, this.y = 0, this.visibleWidth = 0, this.universe = e, this.setUniverseBounds(t || w(e)), this.data = {
                            active: !1,
                            target: !1
                        }, this.createElement(e), this.previousStyle = {}, this.restrictWithinCanvas = {
                            left: !1,
                            right: !1,
                            top: !1,
                            bottom: !1
                        }
                    }
                    var t = e.prototype;
                    return t.setUniverseBounds = function(e) {
                        this.universeBounds = e || this.universe && w(this.universe)
                    }, t.setRestrictionWithinCanvas = function(e) {
                        void 0 === e && (e = {}), Object.assign(this.restrictWithinCanvas, e)
                    }, t.getRestrictionWithinCanvas = function() {
                        return this.restrictWithinCanvas
                    }, t.createElement = function(e) {
                        var t = this.element = document.createElement("div");
                        return t.setAttribute("class", "fc__tooltip"), t.className += " " + a, t.innerHTML = this.text, e.appendChild(this.setDefaultStyle()), t
                    }, t.setDefaultStyle = function() {
                        var e = this.element;
                        return e.setAttribute("style", ""), e.style.color = i, e.style.padding = o, e.style.fontSize = s, e.style.overflow = l, e.style.borderWidth = c, e.style.borderColor = u, e.style.whiteSpace = d, e.style.position = f, e.style.borderStyle = g, e.style.backgroundColor = p, e.style["user-select"] = m, e.style["-ms-user-select"] = m, e.style["-moz-user-select"] = m, e.style["-webkit-user-select"] = m, e.style["-webkit-touch-callout"] = m, e.style.top = this.x + "px", e.style.left = this.y + "px", e.style.visibility = v, e.style["pointer-events"] = b, e
                    }, t.setData = function(e, t) {
                        this.data[e] = t
                    }, t.getData = function(e) {
                        return this.data[e]
                    }, t.setStyle = function(e) {
                        var t, r = this.element.style;
                        for (t in this.setDefaultStyle(), e) r[t] = e[t]
                    }, t.show = function(e) {
                        this.text !== e && (this.text = e, this.element.innerHTML = this.text), this.setData("active", !0), "visible" !== this.element.style.visibility && (this.element.style.visibility = "visible"), this.element.style["will-change"] = y, this.element.style["max-width"] = this.universeBounds.right - this.universeBounds.left - 12 + "px"
                    }, t.update = function(e, t) {
                        void 0 === e && (e = this.x), void 0 === t && (t = this.y);
                        var r = this.universeBounds,
                            n = (this.restrictWithinCanvas.bottom ? r.bottom : this.universe.clientHeight) - 12,
                            a = (this.restrictWithinCanvas.right ? r.right : this.universe.clientWidth) - 12,
                            i = (this.restrictWithinCanvas.left ? r.left : 0) + 12,
                            o = this.element,
                            s = o.offsetWidth,
                            l = o.offsetHeight,
                            c = o.style;
                        e + s < a ? (c.left = e + "px", c.whiteSpace = d) : s < a ? e - s >= i ? c.left = e - s - 12 + "px" : (c.left = a - s + "px", c.whiteSpace = h) : (c.left = r.left + "px", c.whiteSpace = h), c.top = t + l < n ? t + "px" : l < n && t - l <= n ? t - l + "px" : n - l + "px"
                    }, t.hide = function() {
                        this.y = 0, this.x = 0, this.x = n.BLANKSTRING, this.setData("active", !1), this.setData("target", !1), this.element.style.visibility = v, this.element.style["will-change"] = x, this.element.innerHTML = n.BLANKSTRING, this.text = n.UNDEF
                    }, t.dispose = function() {
                        this.hide(), this.universe.removeChild(this.element), this.universe = n.UNDEF, this.disposed = !0
                    }, e
                }();
            t["default"] = C
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(193),
                a = {
                    treemap: !0,
                    scatter: !0,
                    bubble: !0,
                    errorscatter: !0,
                    errorline: !0,
                    errorbar2d: !0,
                    candlestick: !0,
                    stackedcolumn3d: !0,
                    stackedbar3d: !0,
                    mscolumnline3d: !0,
                    mscombi3d: !0,
                    mscolumn3dlinedy: !0,
                    stackedcolumn3dline: !0,
                    stackedcolumn3dlinedy: !0
                },
                i = function(e, t) {
                    return e + '<div style="margin: 0;">' + t + "</div>"
                },
                o = function(e, t) {
                    return t.hovered ? e + 1 : e
                },
                s = function(e) {
                    return e.originalPlotColor || e.plotColor || e.color || "#000000"
                },
                l = function(e, t) {
                    return t.getJSONIndex() - e.getJSONIndex()
                };

            function c(e) {
                var t = e.sender.getFromEnv("chart"),
                    r = t.config.tooltipgrayoutcolor,
                    a = t.config.plotcolorintooltip,
                    c = t.getFromEnv("toolTipController"),
                    u = t.getDatasets().sort(l),
                    d = t.getFromEnv("consolidated-tooltip"),
                    h = (0, n.getMouseCoordinate)(e.sender.getFromEnv("chart-container"), e.originalEvent, t),
                    f = h.chartX,
                    g = h.chartY,
                    p = !1,
                    m = u.map((function(e) {
                        return e.getPlotInCategoryAt(f, g)
                    })).filter(Boolean),
                    v = m.reduce(o, 0),
                    b = m.map((function(e) {
                        var t = e.pointObj.config,
                            i = t.finalTooltext || t.toolText,
                            o = s(t);
                        return v > 0 ? !p && e.hovered ? (i = '<div style="display: inline-block;">' + i + "</div>", p = !0) : (o = r, i = '<div style="color: ' + (0, n.hashify)(r) + '; display: inline-block;">' + i + "</div>") : i = '<div style="display: inline-block;">' + i + "</div>", a ? '<div style="color: ' + (0, n.hashify)(o) + '; display: inline-block;">&#9632&nbsp;</div>' + i : i
                    })),
                    y = [].concat(b).reverse().reduce(i, "");
                this.isWithinCanvas(f, g) && y ? d ? c.draw(e.originalEvent, y, d) : t.addToEnv("consolidated-tooltip", c.draw(e.originalEvent, y)) : d && c.hide(d)
            }

            function u(e) {
                var t = e.sender.getFromEnv("chart"),
                    r = t.getFromEnv("consolidated-tooltip");
                r && t.getFromEnv("toolTipController").hide(r)
            }

            function d(e) {
                var t = this.apiInstance,
                    r = t.getDatasets().sort(l),
                    a = t.config.plotcolorintooltip,
                    o = t.getFromEnv("toolTipController"),
                    c = t.getFromEnv("consolidated-tooltip"),
                    u = r.map((function(t) {
                        var r = t.components.data;
                        return r[e] && r[e]
                    })).filter(Boolean),
                    d = u[0] && {
                        x: u[0].config._Px - u[0]._width,
                        y: u[0].config._Py,
                        width: u[0].config._width
                    },
                    h = u.map((function(e) {
                        var t = e.config,
                            r = t.finalTooltext || t.toolText;
                        return a ? '<div style="color: ' + (0, n.hashify)(s(t)) + '; display: inline-block;">&#9632&nbsp;</div><div style="display: inline-block;">' + r + "</div>" : '<div style="display: inline-block;">' + r + "</div>"
                    })).reduce(i, "");
                h && d ? c ? o.drawAt(d.x, d.y, h, c) : t.addToEnv("consolidated-tooltip", o.drawAt(d.x, d.y, h)) : c && o.hide(c)
            }
            var h = {
                extension: function(e) {
                    e.addEventListener("predraw", (function(e) {
                        var t, r;
                        if (e.sender.getType && "chartAPI" === e.sender.getType() && (r = e.sender, !a[r.getName().toLowerCase()])) {
                            var n = (t = e.sender).getChildren("canvas");
                            t.getFromEnv("chartInstance").drawConsolidatedToolTip = d, n && n.forEach((function(e) {
                                if (!t.config.drawTrendRegion || !t.config.showtooltip) return e.removeEventListener("fc-mouseover", c), e.removeEventListener("fc-mousemove", c), e.removeEventListener("fc-mouseout", u), void e.setState("consolidatedTooltipEventListenerAttached", !1);
                                !e.getState("consolidatedTooltipEventListenerAttached") && t.config.showtooltip && (e.addEventListener("fc-mouseover", c), e.addEventListener("fc-mousemove", c), e.addEventListener("fc-mouseout", u), e.setState("consolidatedTooltipEventListenerAttached", !0))
                            }))
                        }
                    }))
                },
                name: "ConsolidatedToolTip",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = h
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(263)),
                i = r(193),
                o = function(e) {
                    e.sender.apiInstance.getChildren("alertManager") && e.sender.apiInstance.getChildren("alertManager")[0].processRTData(e.data)
                },
                s = function(e) {
                    if ("dataset" === e.sender.getType()) {
                        var t, r, n = e.sender,
                            a = n.config,
                            o = a.JSONData,
                            s = n.getFromEnv("chart").getChildren("alertManager");
                        if (!s || !o) return;
                        t = (0, i.pluckNumber)(o && o.checkforalerts, 1), (r = (s = s[0]).config || (s.config = {})).datasetMap = r.datasetMap || {}, r.datasetMap[a.index] = t
                    }
                },
                l = function(e) {
                    "chartAPI" === e.sender.getType() && e.sender.registerFactory("alertManager", (function(e) {
                        e.getChildren("alertManager") ? e.getChildren("alertManager")[0].configure() : (0, i.componentFactory)(e.getFromEnv("chart"), a["default"], "alertManager", 1, [{}])
                    }))
                };
            var c = {
                extension: function(e) {
                    e.addEventListener("instantiated", l), e.addEventListener("updateDataReceived", o), e.addEventListener("postConfigure", s)
                },
                name: "alertManagerLinker",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(193),
                o = r(208),
                s = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).pIndex = 1, t.linkedItems = {
                            chart: {}
                        }, t
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getType = function() {
                        return "extension"
                    }, r.getName = function() {
                        return "AlertManager"
                    }, r.configure = function() {
                        var e, t, r, n = this.getFromEnv("dataSource"),
                            a = n && n.alerts && n.alerts.alert,
                            i = this.getFromEnv("number-formatter"),
                            o = this.config || (this.config = {});
                        if (a && a.length)
                            for (o.alertArr = a, e = a.length, t = 0; t < e; t += 1)(r = a[t]).minvalue = i.getCleanValue(r.minvalue), r.maxvalue = i.getCleanValue(r.maxvalue);
                        else o.alertArr = []
                    }, r.processRTData = function(e) {
                        var t, r, n, a, i, o, s = this.config,
                            l = this.getFromEnv("number-formatter");
                        if (e && e.dataset && e.dataset.length)
                            for (n = e.dataset.length, t = 0; t < n; t += 1)
                                if ((a = e.dataset[t]).data && a.data.length) {
                                    if (s.datasetMap && 0 === s.datasetMap[t]) continue;
                                    for (i = a.data.length, r = 0; r < i; r += 1) null !== ((o = a.data[r]) && l.getCleanValue(o.value)) && this._doAlert(l.getCleanValue(o.value))
                                }
                    }, r._doAlert = function(e) {
                        var t, r, n, a = this.getLinkedParent(),
                            o = this.config.alertArr,
                            s = o.length;
                        for (r = 0; r < s; r += 1)
                            if (n = (t = o[r]).action && t.action.toLowerCase(), t.minvalue <= e && t.maxvalue >= e) {
                                if ("1" !== t.occuronce || !t.hasOccurred) {
                                    switch (t.hasOccurred = !0, t.state = "1", n) {
                                        case "calljs":
                                            setTimeout((0, i.pseudoEval)(t.param));
                                            break;
                                        case "showannotation":
                                            a.showAnnotation && a.showAnnotation(t.param)
                                    }
                                    a.fireChartInstanceEvent("AlertComplete", {
                                        alertValue: e,
                                        alertMaxValue: t.maxvalue,
                                        alertMinValue: t.minvalue
                                    })
                                }
                            } else "showannotation" === n && "1" === t.state && a.hideAnnotation && a.hideAnnotation(t.param), t.state = "2"
                    }, t
                }(o.ComponentInterface);
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(265)),
                i = r(267);
            var o = {
                extension: function(e) {
                    e.addEventListener("preconfigure", (function(e) {
                        var t = e.sender,
                            r = t.getFromEnv("chart");
                        i.allowedCharts[r && r.getName()] && ("dataset" === t.getType() && "cartesianStackGroup" !== t.getLinkedParent().getName() ? (t.setState("applySkippingOnConf", !0), a["default"].dataSkipping({
                            component: t,
                            datasetType: t.getName(),
                            compType: "dataset"
                        })) : "cartesianStackGroup" === t.getName() && (t.setState("applySkippingOnConf", !0), a["default"].dataSkipping({
                            component: t,
                            datasetType: t.getName(),
                            compType: "group"
                        })))
                    })), e.addEventListener("preattributeprepared", (function(e) {
                        var t = e.sender.getFromEnv && e.sender.getFromEnv("chart");
                        if (i.allowedCharts[t && t.getName()])
                            if ("dataset" === e.sender.getType()) {
                                var r = e.sender,
                                    n = r.getFromEnv("canvasConfig"),
                                    o = r.getFromEnv("chart").isBar ? n.canvasHeight : n.canvasWidth;
                                "cartesianStackGroup" !== r.getLinkedParent().getName() && (r.getState("applySkippingOnConf") ? r.setState("applySkippingOnConf", !1) : a["default"].dataSkipping({
                                    component: r,
                                    compType: "dataset",
                                    datasetType: r.getName(),
                                    width: o
                                }))
                            } else if ("cartesianStackGroup" === e.sender.getName()) {
                            var s = e.sender,
                                l = s.getFromEnv("canvasConfig"),
                                c = s.getFromEnv("chart").isBar ? l.canvasHeight : l.canvasWidth,
                                u = Object.keys(s.getChildren())[0];
                            s.getState("applySkippingOnConf") ? s.setState("applySkippingOnConf", !1) : a["default"].dataSkipping({
                                component: s,
                                compType: "group",
                                datasetType: s.getChildren(u)[0].getName(),
                                width: c
                            })
                        }
                    })), e.addEventListener("dataplotdragend", (function(e, t) {
                        if (e.sender.getType && "dataset" === e.sender.getType()) {
                            var r = e.sender,
                                n = r.getSkippingInfo && r.getSkippingInfo();
                            n && n.skippingApplied && a["default"].updateDragMap({
                                component: r,
                                compType: "dataset",
                                evenType: "dataplotdragend",
                                eventArgs: t
                            })
                        }
                    }))
                },
                name: "DataSkipping",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = o
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(266)),
                i = r(267),
                o = r(193),
                s = [],
                l = 0,
                c = {},
                u = [];

            function d(e) {
                return void 0 === e && (e = []), e.filter((function(e) {
                    return !s[e]
                }))
            }

            function h(e, t) {
                for (var r = 0, n = [], a = 1; a < c.noOfPlotBins; ++a) e(r, (r += c.plotsPerBin) - 1, t, u, n);
                return e(r, t.length - 1, t, u, n), u = [], n
            }

            function f(e) {
                var t, r, n, o, f, g, p, m = i.filterType[e.datasetType],
                    v = e.component,
                    b = v.getSkippingInfo && v.getSkippingInfo(),
                    y = b && b.draw.slice(0),
                    x = b && (b.labelDraw || []).slice(0),
                    w = {},
                    C = [],
                    _ = v.getFromEnv("xAxis").getTicksLen();
                if ((!y || !y.length) && (void 0 === (p = l) && (p = 0), y = Array.from(new Array(p), (function(e, t) {
                        return t
                    }))), (!x || !x.length) && (x = y), u = b && b.dragHashMap, "cartesianStackGroup" === v.getName()) {
                    for (o = c.jsonData.length, t = 0; t < _; ++t) {
                        for (n = 0, r = 0; r < o; ++r) g = c.jsonData[r].data, n += Number(g[t] ? g[t].value : 0);
                        C.push({
                            value: n
                        })
                    }
                    w.draw = h((0, a["default"])(m), C)
                } else w.draw = h((0, a["default"])(m), c.jsonData.data);
                return w.draw.forEach((function(e) {
                    s[e] = !0
                })), w.drawOnlyMap = s, w.hide = d(y), f = function(e) {
                    var t, r = c.labelBinSize / c.plotBinSize,
                        n = [],
                        a = [],
                        i = e.length;
                    for (t = 0; t < i; t++) t % r || (n.push(e[t]), a[e[t]] = !0);
                    return {
                        drawableLabelIndices: n,
                        labelHashMap: a
                    }
                }(w.draw), w.labelDraw = f.drawableLabelIndices, s = w.labelDrawOnlyMap = f.labelHashMap, w.hideLabel = d(x), w.plotsPerBin = c.plotsPerBin, w.skippingApplied = !0, w.dragHashMap = [], w.prevDrawInfo = y.slice(0), w
            }
            var g = {
                dataSkipping: function(e) {
                    void 0 === e && (e = {});
                    var t = e.component;
                    ! function(e) {
                        void 0 === e && (e = {});
                        var t, r, n, a, i, u = e.component,
                            d = e.compType,
                            h = u.getFromEnv("chartConfig"),
                            f = u.getFromEnv("dataSource").chart || {},
                            g = (0, o.pluckNumber)(f.plotbinsize, h.plotbinsize);
                        return c.plotBinSize = g, c.labelBinSize = (0, o.pluckNumber)(f.labelbinsize, h.labelbinsize), c.jsonData = u.config.JSONData, "group" === d ? (t = c.jsonData[0].data, l = u.config.stackValues && u.config.stackValues.length || 0) : "dataset" === d && (t = c.jsonData.data, l = u.components.data && u.components.data.length || 0), r = t && t.length, s = [], c.width = i = u.getFromEnv("chart").isBar ? e.height || u.getFromEnv("chartHeight") : e.width || u.getFromEnv("chartWidth"), n = r / i, a = Math.floor(n * g), n >= 1.5 && a > 1 && (c.plotsPerBin = a, c.noOfPlotBins = Math.ceil(r / c.plotsPerBin), !0)
                    }(e) ? t.setSkippingInfo && t.setSkippingInfo(): t.setSkippingInfo && t.setSkippingInfo(f(e))
                },
                updateDragMap: function(e) {
                    void 0 === e && (e = {});
                    var t = e.component,
                        r = e.eventArgs,
                        n = t.getSkippingInfo && t.getSkippingInfo() || {};
                    r && (n.dragHashMap[r.dataIndex] = r.endValue)
                }
            };
            t["default"] = g
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = function(e, t, r, n, a) {
                    void 0 === n && (n = []);
                    for (var i, o = r[t].value, s = t, l = t - 1; l >= e; --l)(i = void 0 !== n[l] ? n[l] : r[l].value) > o && (o = i, s = l);
                    return a.push(s), a
                },
                a = function(e, t, r, n, a) {
                    void 0 === n && (n = []);
                    for (var i, o = r[t].value, s = t, l = r[t].value, c = t, u = t - 1; u >= e; --u)(i = void 0 !== n[u] ? n[u] : r[u].value) > o ? (o = i, s = u) : i < l && (l = i, c = u);
                    var d = c < s ? [c, s] : [s, c];
                    return c = d[0], s = d[1], a.push(c), c !== s && a.push(s), a
                };
            t["default"] = function(e) {
                var t = {
                    maxOnly: n,
                    minMax: a
                };
                return t[e] || t.maxOnly
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.filterType = t.allowedCharts = void 0;
            t.filterType = {
                Column: "maxOnly",
                line: "minMax",
                area: "minMax"
            }, t.allowedCharts = {
                Column2D: !0,
                Line: !0,
                Area2D: !0,
                Bar2D: !0,
                MSColumn2D: !0,
                MSLine: !0,
                MSBar2D: !0,
                MSArea: !0,
                StackedColumn2D: !0,
                StackedBar2D: !0,
                StackedArea2D: !0,
                MSStackedColumn2D: !0,
                MSCombi2D: !0,
                StackedColumn2DLine: !0,
                MSCombidy2D: !0,
                LogMSColumn2d: !0,
                LogMSLine: !0,
                DragColumn: !0,
                DragLine: !0,
                DragArea: !0
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(269)),
                i = n(r(292)),
                o = function(e, t) {
                    return "groups" !== t && "items" !== t
                },
                s = function(e) {
                    var t = e.sender;
                    (function(e) {
                        return "chartAPI" === e.getType()
                    })(t) && t.registerFactory("annotation", (function(e) {
                        var t = e.getFromEnv("dataSource").annotations,
                            r = e.getChildren().annotation,
                            n = r && r[0];
                        delete e.getFromEnv("chartInstance").annotations, t && (n || (n = new a["default"]((0, i["default"])(o, t)), e.attachChild(n, "annotation"), n.config.drawn = !1), n._JSONData = t, n.configure(t), e.getFromEnv("chartInstance").annotations = n)
                    }))
                };
            var l = {
                extension: function(e) {
                    e.addEventListener("instantiated", s)
                },
                name: "Annotation",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(270),
                o = r(193),
                s = r(201),
                l = n(r(271)),
                c = n(r(272)),
                u = n(r(273)),
                d = n(r(274)),
                h = r(208),
                f = ["pie2d", "doughnut2d"],
                g = ["pie3d", "doughnut3d"],
                p = function(e, t) {
                    return e.getJSONIndex() - t.getJSONIndex()
                },
                m = function(e, t, r) {
                    void 0 === t && (t = {}), void 0 === r && (r = {});
                    var n, a = {};
                    for (var i in a.annotationType = "shape", a.id = e.id, a.type = e.type && e.type.toLowerCase(), a.toolText = (0, o.pluck)(e.tooltext, e.toolText), a.animationLabel = (0, o.pluck)(e.animationlabel, e.animationLabel), a.dashed = e.dashed, a.dashLen = (0, o.pluck)(e.dashlen, e.dashLen), a.dashGap = (0, o.pluck)(e.dashgap, e.dashGap), a.thickness = e.thickness, a.showBorder = (0, o.pluck)(e.showborder, e.showBorder), a.borderColor = (0, o.pluck)(e.bordercolor, e.borderColor), a.borderAlpha = (0, o.pluck)(e.borderalpha, e.borderAlpha), a.borderThickness = (0, o.pluck)(e.borderthickness, e.borderThickness), a.alpha = e.alpha, a.color = e.color, a.fillColor = (0, o.pluck)(e.fillcolor, e.fillColor), a.fontColor = (0, o.pluck)(e.fontcolor, e.fontColor), a.fillAlpha = (0, o.pluck)(e.fillalpha, e.fillAlpha), a.fillAngle = (0, o.pluck)(e.fillangle, e.fillAngle), a.fillRatio = (0, o.pluck)(e.fillratio, e.fillRatio), a.fillPattern = (0, o.pluck)(e.fillpattern, e.fillPattern), a.sides = e.sides, a.radius = e.radius, a.yRadius = (0, o.pluck)(e.yradius, e.yRadius), a.innerRadius = (0, o.pluck)(e.innerradius, e.innerRadius), a.endAngle = (0, o.pluck)(e.endangle, e.endAngle), a.startAngle = (0, o.pluck)(e.startangle, e.startAngle), a.isVisible = !0 == (n = e.visible, !(0 === parseInt(n, 10))), a.x = e.x, a.y = e.y, a.xPos = (0, o.pluck)(e.xpos, e.xPos), a.yPos = (0, o.pluck)(e.ypos, e.yPos), a.toY = (0, o.pluck)(e.toy, e.toY), a.toX = (0, o.pluck)(e.tox, e.toX), a.autoScale = (0, o.pluck)(e.autoscale, e.autoScale), a.path = e.path, a.css = e.css, a.wrap = e.wrap, a.text = e.text !== o.UNDEF && null !== e.text && e.text.toString() || o.UNDEF, a.font = (0, o.pluck)(e.font, t.font, r.basefont), a.bold = (0, o.pluck)(e.bold, e.isbold, e.bold, e.isBold), a.label = e.label, a.align = e.align, a.italic = e.italic, a.vAlign = (0, o.pluck)(e.valign, e.vAlign), a.bgColor = (0, o.pluck)(e.bgcolor, e.bgColor), a.fontSize = (0, o.pluck)(e.fontsize, e.fontSize, t.fontSize, r.basefontsize), a.wrapWidth = (0, o.pluck)(e.wrapwidth, e.wrapWidth), a.leftMargin = (0, o.pluck)(e.leftmargin, e.leftMargin), a.rotateText = (0, o.pluck)(e.rotatetext, e.rotateText), a.wrapHeight = (0, o.pluck)(e.wrapheight, e.wrapHeight), a.showShadow = (0, o.pluck)(e.showshadow, e.showShadow), a.link = e.link, a.url = e.url, a.link = e.link, a.width = e.width, a.height = e.height, a.xScale = (0, o.pluck)(e.xscale, e.xScale), a.yScale = (0, o.pluck)(e.yscale, e.yScale), a.onload = e.onload, a.onerror = e.onerror, a.outlineText = (0, o.pluckNumber)(e.outlinetext, e.outlineText, 0), "object" == typeof e.component && (a.component = e.component), a) {
                        if (a.hasOwnProperty(i)) void 0 === a[i] && delete a[i]
                    }
                    return a
                },
                v = function(e, t) {
                    return void 0 === e && (e = {
                        groups: []
                    }), void 0 === t && (t = {}), (e.groups || []).map((function(r) {
                        var n, a;
                        return n = e, (a = r).css = a.css || n.css, a.autoscale = (0, o.pluck)(a.autoscale, n.autoscale), a.animationLabel = (0, o.pluck)(a.animationLabel, n.animationLabel), a.constrainedscale = (0, o.pluck)(a.constrainedscale, n.constrainedscale), a.scaletext = (0, o.pluck)(a.scaletext, n.scaletext), a.scaleimages = (0, o.pluck)(a.scaleimages, n.scaleimages), a.xshift = (0, o.pluck)(a.xshift, n.xshift), a.yshift = (0, o.pluck)(a.yshift, n.yshift), a.grpxshift = (0, o.pluck)(a.grpxshift, n.grpxshift), a.grpyshift = (0, o.pluck)(a.grpyshift, n.grpyshift), a.origw = (0, o.pluck)(a.origw, n.origw), a.origh = (0, o.pluck)(a.origh, n.origh), a.showbelow = (0, o.pluck)(a.showbelow, n.showbelow, 1), a.onAnnotationClick = n.onAnnotationClick, a.onAnnotationRollover = n.onAnnotationRollover, a.onAnnotationRollout = n.onAnnotationRollout,
                            function(e, t) {
                                var r = {},
                                    n = e.items;
                                for (var a in n = e.items = (0, i.arrangeItems)(n), r.annotationType = "group", r.id = e.id, r.showBelow = "undefined" == typeof e.showbelow || null === e.showbelow ? 1 : Number(e.showbelow), r.x = e.x, r.y = e.y, r.animationLabel = (0, o.pluck)(e.animationlabel, e.animationLabel), r.xPos = (0, o.pluck)(e.xpos, e.xPos), r.yPos = (0, o.pluck)(e.ypos, e.yPos), r.grpXShift = (0, o.pluck)(e.grpxshift, e.grpXShift), r.grpYShift = (0, o.pluck)(e.grpyshift, e.grpYShift), r.xShift = (0, o.pluck)(e.xshift, e.xShift), r.yShift = (0, o.pluck)(e.yshift, e.yShift), r.color = e.color, r.alpha = e.alpha, r.isVisible = 1 === Number(e.visible || 1), r.font = (0, o.pluck)(e.font, t.basefont), r.link = e.link, r.fontSize = (0, o.pluck)(e.fontsize, e.fontSize, t.basefontsize), r.textAlign = (0, o.pluck)(e.textalign, e.textAlign), r.textVAlign = (0, o.pluck)(e.textvalign, e.textVAlign), r.rotateText = (0, o.pluck)(e.rotatetext, e.rotateText), r.wrapText = (0, o.pluck)(e.wraptext, e.wrapText), r.toolText = (0, o.pluck)(e.tooltext, e.toolText), r.link = e.link, r.showShadow = (0, o.pluck)(e.showshadow, e.showShadow), r.items = e.items, r.css = e.css, r.autoScale = (0, o.pluck)(e.autoscale, e.autoScale), r.scaleText = (0, o.pluck)(e.scaletext, e.scaleText), r.xScale = (0, o.pluck)(e.xscale, e.xScale), r.yScale = (0, o.pluck)(e.yscale, e.yScale), r.scaleImages = (0, o.pluck)(e.scaleimages, e.scaleImages), r.constrainedScale = (0, o.pluck)(e.constrainedscale), r.origH = (0, o.pluck)(e.origh, e.origH, t.origh), r.origW = (0, o.pluck)(e.origw, e.origW, t.origw), r.onAnnotationClick = e.onAnnotationClick, r.onAnnotationRollover = e.onAnnotationRollover, r.onAnnotationRollout = e.onAnnotationRollout, "object" == typeof e.component && (r.component = e.component), r) {
                                    if (r.hasOwnProperty(a)) void 0 === r[a] && delete r[a]
                                }
                                return Array.isArray(n) && (r.itemConfigs = n.map((function(e) {
                                    return m(e, r, t)
                                }))), r
                            }(r, t)
                    }))
                },
                b = function(e) {
                    function t(t) {
                        var r;
                        return r = e.call(this, t) || this, (0, s.addDep)({
                            name: "annotationAnimation",
                            type: "animationRule",
                            extension: l["default"]
                        }), (0, c["default"])((0, s.getDep)("redraphael", "plugin")), (0, u["default"])((0, s.getDep)("redraphael", "plugin")), r.groups = [], r.config.dependencies = {}, r._rawJSON = {
                            groups: []
                        }, r
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "annotation"
                    }, r.getType = function() {
                        return "extension"
                    }, r.configureAttributes = function(e) {
                        void 0 === e && (e = {
                            groups: []
                        });
                        var t = this,
                            r = t.config;
                        t._rawJSON = (0, o.extend2)({}, t._rawJSON, e), e.groups ? r.parsedConfigs = v(e, t.getFromEnv("chart").config) : r.parsedConfigs = [], r.parsedConfigs.forEach((function(e) {
                            t.attachChild(d["default"], "group", e.id).configure(e)
                        })), t.groups = t.getChildren("group") || []
                    }, r.addItem = function(e, t, r) {
                        void 0 === t && (t = {});
                        var n, a, i, o = this._rawJSON,
                            s = o.groups.length;
                        for (n = 0; n < s; n++)
                            if (o.groups[n].id === e) {
                                a = o.groups[n];
                                break
                            }
                        return a ? a.items = a.items || [] : (a = {
                            id: e,
                            items: []
                        }, o.groups.push(a)), a.items.push(t), this.setData(o, !0), (i = this.retrieveGroup(e).items)[i.length - 1]
                    }, r.addGroup = function(e) {
                        void 0 === e && (e = {});
                        var t = this._rawJSON;
                        return t.groups.push(e), this.setData(t, !0), this.groups[this.groups.length - 1]
                    }, r.addCustomGroup = function(e) {
                        e && (this.config.customGroup = e)
                    }, r.update = function(e, t) {
                        var r, n, a, i, o = {};
                        if (e) {
                            for (n in t) o[n.toLowerCase()] = t[n] && t[n].toString();
                            if (!(r = this.retrieveItem(e) || this.retrieveGroup(e)) || !r.getElement()) return;
                            return "undefined" == typeof o.visible && (o.visible = r.config.isVisible), a = r.rawConfig, a = Object.assign(a, o), (i = m(a)).isVisible = o.visible, r.setData(i), r
                        }
                    }, r.destroy = function(e) {
                        var t, r, n, a, i, o = this._rawJSON,
                            s = !1;
                        if (e) {
                            for (t = 0, n = o.groups.length; t < n; t++)
                                for (r = 0, a = ((i = o.groups[t]).items || []).length; r < a; r++)
                                    if (i.items[r].id === e) {
                                        i.items.splice(r, 1), s = !0;
                                        break
                                    }
                            if (!s)
                                for (t = 0, n = o.groups.length; t < n; t++)(i = o.groups[t]).id === e && o.groups.splice(t, 1)
                        } else o = this._rawJSON = {
                            groups: []
                        };
                        this.setData(o)
                    }, r.clear = function() {
                        this.destroy()
                    }, r.retrieveItem = function(e) {
                        var t, r, n, a = this.groups.length;
                        for (n = 0; n < a; n++)
                            if (t = this.groups[n].retrieveItem(e)) {
                                r = t;
                                break
                            }
                        return r
                    }, r.retrieveGroup = function(e) {
                        var t, r;
                        for (t = 0, r = this.groups.length; t < r; t++)
                            if (this.groups[t].getId() === e) return this.groups[t]
                    }, r.show = function(e) {
                        var t;
                        e ? (t = this.retrieveItem(e) || this.retrieveGroup(e)) && t.show() : this.groups.forEach((function(e) {
                            e.show()
                        }))
                    }, r.hide = function(e) {
                        var t;
                        e ? (t = this.retrieveItem(e) || this.retrieveGroup(e)) && t.hide() : this.groups.forEach((function(e) {
                            e.hide()
                        }))
                    }, r.draw = function() {
                        var e, t, r, n, a, o, s, l, c, u, d, h, m, v;
                        this.addToEnv("snapPoints", (e = this.getFromEnv("chart"), a = e.config, o = e.getChildren(), s = o.caption[0], l = o.subCaption[0], c = o.legend && o.legend[0] || {}, u = o.gLegend && o.gLegend[0] || {}, d = s.config, h = l.config, m = d.width || 0, v = h.width || 0, "end" === d.align ? (t = d.x - m, n = d.x - v) : "start" === d.align ? t = n = d.x : (t = d.x - m / 2, n = d.x - v / 2), r = a.gLegendEnabled ? u.conf : c.config, {
                            canvasendx: a.canvasRight,
                            canvasendy: a.canvasBottom,
                            canvasheight: a.canvasHeight,
                            canvasstartx: a.canvasLeft,
                            canvasstarty: a.canvasTop,
                            canvaswidth: a.canvasWidth,
                            canvascenterx: a.canvasCenterX || a.canvasLeft + (a.canvasRight - a.canvasLeft) / 2,
                            canvascentery: a.canvasCenterY || a.canvasTop + (a.canvasBottom - a.canvasTop) / 2,
                            chartcenterx: a.width / 2,
                            chartcentery: a.height / 2,
                            chartstartx: 0,
                            chartstarty: 0,
                            chartendx: a.width,
                            chartendy: a.height,
                            chartheight: a.height,
                            chartwidth: a.width,
                            chartleftmargin: a.marginLeft,
                            chartrightmargin: a.marginRight,
                            chartbottommargin: a.marginBottom,
                            charttopmargin: a.marginTop,
                            captionendx: t + d.width,
                            captionendy: d.y + d.height,
                            captionheight: d.height,
                            captionstartx: t,
                            captionstarty: d.y,
                            captionwidth: m,
                            subcaptionendx: n + h.width,
                            subcaptionendy: h.y + h.height,
                            subcaptionheight: h.height,
                            subcaptionstartx: n,
                            subcaptionstarty: h.y,
                            subcaptionwidth: v,
                            legendendx: r && r.xPos + r.width,
                            legendendy: r && r.yPos + r.height,
                            legendheight: r && r.height,
                            legendstartx: r && r.xPos,
                            legendstarty: r && r.yPos,
                            legendwidth: r && r.width,
                            dataset: function(t) {
                                var r, n, a, o = t.split(i.DEFAULT_MACRO_SEPARATOR).slice(1),
                                    s = [];
                                return e.iterateComponents((function(e) {
                                    "dataset" === e.getType() && s.push(e)
                                })), s.sort(p), n = s[Number(o[0])], r = n.components.data[Number(o[2])], f.indexOf(n.getName().toLowerCase()) > -1 ? (0, i.computeSliceBounds)(o[3], r.config) : g.indexOf(n.getName().toLowerCase()) > -1 ? (0, i.compute3DSliceBounds)(o[3], r.config) : (a = (0, i.computePlotBounds)(r, n.getName()), (0, i.xyCalculator)(o[3], a))
                            },
                            xaxis: (0, i.axisMacroParser)(e, "xAxis"),
                            yaxis: (0, i.axisMacroParser)(e, "yAxis"),
                            gaugestartx: a.gaugeStartX,
                            gaugestarty: a.gaugeStartY,
                            gaugeendx: a.gaugeEndX,
                            gaugeendy: a.gaugeEndY,
                            gaugecenterx: a.gaugeCenterX,
                            gaugecentery: a.gaugeCenterY,
                            gaugestartangle: a.gaugeStartAngle,
                            gaugeendangle: a.gaugeEndAngle,
                            gaugeradius: a.gaugeRadius,
                            plotwidth: a.plotWidth,
                            plotsemiwidth: a.plotSemiWidth
                        })), this.addGraphicalElement({
                            el: "group",
                            attr: {
                                name: "upperannotations"
                            },
                            component: this,
                            container: {
                                label: "group",
                                id: "abovePlotGroup",
                                isParent: !0
                            },
                            id: "upperAnnotationGroup",
                            label: "group"
                        }), this.addGraphicalElement({
                            el: "group",
                            attr: {
                                name: "lowerannotations"
                            },
                            component: this,
                            container: {
                                label: "group",
                                id: "belowPlotGroup",
                                isParent: !0
                            },
                            id: "lowerAnnotationGroup",
                            label: "group"
                        })
                    }, t
                }(h.SmartRenderer);
            t["default"] = b
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.getEventData = t.getScaledVal = t.parseEquation = t.solveEquation = t.isMacro = t.trim = t.pluckBoolean = t.DEFAULT_MACRO_SEPARATOR = t.DEFAULT_MACRO_PREFIX = t.UNDERSCORE = t.xyCalculator = t.axisMacroParser = t.arrangeItems = t.cleanMacro = t.compute3DSliceBounds = t.computeSliceBounds = t.computePlotBounds = t.getQuadrant = t.polarToCartesian = t.deg2Rad = void 0;
            var n = r(193);
            t.UNDEF = n.UNDEF;
            var a = 2 * Math.PI,
                i = [-a, -3 * a / 4, -a / 2, -a / 4, 0],
                o = [a, 3 * a / 4, a / 2, a / 4, 0],
                s = function(e) {
                    return e * e
                },
                l = function(e) {
                    return e * (Math.PI / 180)
                },
                c = function(e, t, r, n) {
                    void 0 === r && (r = !0), void 0 === n && (n = {});
                    var a = t;
                    return r || (a = l(t)), {
                        x: e * Math.cos(a) + (n.x || 0),
                        y: e * Math.sin(a) + (n.y || 0)
                    }
                },
                u = function(e, t, r) {
                    return 0 === e || 0 === t ? 0 : e * t / Math.sqrt(s(t) * s(Math.cos(r)) + s(e) * s(Math.sin(r)))
                },
                d = function(e) {
                    var t, r, o, s, l, u, d, h, f, g = e.ringpath,
                        p = [],
                        m = [],
                        v = Infinity,
                        b = Infinity,
                        y = -Infinity,
                        x = -Infinity;
                    for (t = (0, n.pluckNumber)(g[2]), r = (0, n.pluckNumber)(g[3]), o = (0, n.pluckNumber)(g[4]) % a, s = (0, n.pluckNumber)(g[5]) % a, l = (0, n.pluckNumber)(g[0]), u = (0, n.pluckNumber)(g[1]), h = c(t, o, !0, {
                            x: l,
                            y: u
                        }), f = c(t, s, !0, {
                            x: l,
                            y: u
                        }), m.push(h), m.push(f), d = 0; d < i.length; d++) i[d] >= o && i[d] <= s && p.push(d);
                    for (d = 0; d < p.length; d++) h = c(t, i[p[d]], !0, {
                        x: l,
                        y: u
                    }), f = c(r, i[p[d]], !0, {
                        x: l,
                        y: u
                    }), m.push(h), m.push(f);
                    for (h = c(r, o, !0, {
                            x: l,
                            y: u
                        }), f = c(r, s, !0, {
                            x: l,
                            y: u
                        }), m.push(h), m.push(f), d = 0; d < m.length; d++) y = Math.max(y, m[d].x), v = Math.min(v, m[d].x), x = Math.max(x, m[d].y), b = Math.min(b, m[d].y);
                    return {
                        x: v,
                        y: b,
                        width: Math.abs(y - v),
                        height: Math.abs(b - x)
                    }
                },
                h = function(e, t, r) {
                    var n, i, o;
                    return o = Math.tan(r), n = e * t / Math.sqrt(t * t + e * e * o * o), i = e * t / Math.sqrt(e * e + t * t / (o * o)), r > a / 4 && r < 3 * a / 4 ? n *= -1 : n = Math.abs(n), r > a / 2 && r < a ? i *= -1 : i = Math.abs(i), Math.abs(n) <= 1e-5 && (n = 0), Math.abs(i) <= 1e-5 && (i = 0), {
                        x: n,
                        y: i
                    }
                },
                f = function(e, t) {
                    var r, a, i, o, s, l = e.config || e;
                    switch (t) {
                        case "column3D":
                        case "bar2D":
                        case "bar3D":
                        case "paretoColumn":
                        case "waterFall2D":
                        case "errorBar2D":
                        case "candlestick":
                        case "heatMap":
                        case "dragColumn":
                        case "sparkColumn":
                        case "marimekko":
                        case "task":
                        case "column":
                            r = {
                                x: (a = l.props.element.attr).x + (0, n.pluckNumber)(a.xDepth, 0),
                                y: a.y - (0, n.pluckNumber)(a.yDepth, 0),
                                width: a.width,
                                height: a.height
                            };
                            break;
                        case "line":
                        case "zoomLine":
                        case "zoomScatter":
                        case "scatter":
                        case "spline":
                        case "splinearea":
                        case "multiaxisline":
                        case "stepLine":
                        case "errorScatter":
                        case "errorLine":
                        case "radar":
                        case "selectScatter":
                        case "dragLine":
                        case "dragArea":
                        case "kagi":
                        case "sparkLine":
                        case "area":
                            i = e._xPos, o = e._yPos, r = {
                                x: i - (s = Number(l.anchorProps.radius) || 0),
                                y: o - s,
                                width: 2 * s,
                                height: 2 * s
                            };
                            break;
                        case "bubble":
                            r = {
                                x: (a = l.props.element.attr).cx - a.r,
                                y: a.cy - a.r,
                                width: 2 * a.r,
                                height: 2 * a.r
                            };
                            break;
                        case "dragNode":
                            a = l.props.element.attr, "rect" === l.shapeType ? r = {
                                x: a.x,
                                y: a.y,
                                width: a.width,
                                height: a.height
                            } : (i = l._xPos, o = l._yPos, r = {
                                x: i - (s = +l.radius || 0),
                                y: o - s,
                                width: 2 * s,
                                height: 2 * s
                            });
                            break;
                        case "boxandwhisker2D":
                            r = {
                                x: (a = l.props.upperBoxElem.attr).x,
                                y: a.y,
                                width: a.width,
                                height: a.height
                            };
                            break;
                        case "category":
                        case "polarCategory":
                        case "log":
                        case "numeric":
                            r = {
                                x: (a = l.props.label.attr).x - l.width / 2,
                                y: a.y - l.height / 2,
                                width: l.width,
                                height: l.height
                            }, "end" === a["text-anchor"] || "left" === a["text-anchor"] ? r.x = a.x - l.width : "start" !== a["text-anchor"] && "right" !== a["text-anchor"] || (r.x = a.x), "top" === a["vertical-align"] ? r.y = a.y : "bottom" === a["vertical-align"] && (r.y = a.y - l.height);
                            break;
                        case "multiLevelPie":
                            a = l.props.element.attr, r = d(a)
                    }
                    return r
                },
                g = function(e, t) {
                    var r = 0;
                    switch (e) {
                        case "startx":
                            r = t.x;
                            break;
                        case "starty":
                            r = t.y;
                            break;
                        case "x":
                        case "middlex":
                        case "centerx":
                            r = t.x + t.width / 2;
                            break;
                        case "y":
                        case "middley":
                        case "centery":
                            r = t.y + t.height / 2;
                            break;
                        case "endx":
                            r = t.x + t.width;
                            break;
                        case "endy":
                            r = t.y + t.height;
                            break;
                        default:
                            r = 0
                    }
                    return r
                },
                p = function(e, t) {
                    var r;
                    switch (t.axis) {
                        case "x":
                        case "toX":
                            r = t.scaleX;
                            break;
                        case "y":
                        case "toY":
                            r = t.scaleY;
                            break;
                        default:
                            r = t.scaleValue || 1
                    }
                    return e * r
                };
            t.parseEquation = function(e, t, r, a) {
                void 0 === r && (r = !1), void 0 === a && (a = "$");
                var i, o, s, l, c = e.split(/([+])/),
                    u = [],
                    d = c.length;
                for (o = 0; o < d; o++)
                    if ("+" !== c[o]) {
                        for (s = 0, l = (i = c[o].split(/([-])/)).length; s < l; s++) "-" !== i[s] && (u.push(i[s]), s < l - 1 && u.push("-"));
                        o < d - 1 && u.push("+")
                    }
                return u.map((function(e) {
                    var i, o, s, l = n.BLANKSTRING,
                        c = n.BLANKSTRING,
                        u = n.BLANKSTRING;
                    if (e.charAt(0) === a) {
                        if (u = (c = e.replace(new RegExp("[\\$ ]", "g"), "")).split(".")[0], !isNaN(+c)) return +c;
                        for (l in t)
                            if (u === l) {
                                if (o = new RegExp(l, "g"), "function" == typeof t[l]) try {
                                    i = u.replace(o, t[l](c))
                                } catch (h) {
                                    i = u.replace(o, 0)
                                } else i = u.replace(o, t[l] || 0);
                                break
                            }
                    } else {
                        s = Number(e);
                        var d = e;
                        isNaN(s) ? "+" !== e && "-" !== e && (d = 0) : d = r ? p(s, r).toString() : s.toString(), i = d
                    }
                    return i
                }))
            }, t.getScaledVal = p, t.solveEquation = function(e) {
                for (var t, r, n = +e[0], a = 1, i = e.length; a < i; ++a)
                    if (r = e[a], a % 2) t = r;
                    else switch (t) {
                        case "+":
                            n += +r;
                            break;
                        case "-":
                            n -= +r
                    }
                    return n
            }, t.isMacro = function(e) {
                return ~e.indexOf("$")
            }, t.trim = function(e) {
                return e.replace(/^\s+|\s+$/g, "")
            }, t.pluckBoolean = function() {
                for (var e, t, r, n = arguments.length, a = new Array(n), i = 0; i < n; i++) a[i] = arguments[i];
                for (t = 0, r = a.length; t < r; t++)
                    if (!0 === (e = a[t]) || !1 === e) return e;
                return !1
            }, t.getEventData = function(e, t, r) {
                var n = r.getFromEnv("getMouseCoordinate")(r.getFromEnv("chart-container"), e, r),
                    a = t.getLinkedParent();
                return {
                    element: t.getElement(),
                    rawConfig: t.getAttribute(),
                    pageX: n.pageX,
                    pageY: n.pageY,
                    chartX: n.chartX,
                    chartY: n.chartY,
                    annotationId: t.getId(),
                    groupId: a && a.getId(),
                    annotationOptions: t.rawConfig,
                    groupOptions: a && a.rawConfig
                }
            }, t.axisMacroParser = function(e, t) {
                return function(r) {
                    var n, a, i, o, s = r.split(".").slice(1),
                        l = isNaN(Number(s[0])) ? 0 : Number(s[0]),
                        c = isNaN(Number(s[0])) ? s[1] : s[2],
                        u = isNaN(Number(s[0])) ? s[2] : s[3];
                    return o = (n = e.getChildren(t)[l]).components, c = Number(c), o.labelIndexArr && (c = o.labelIndexArr[c]), a = o.labels[c].config, i = f(a, n.getName()), g(u, i)
                }
            }, t.xyCalculator = g, t.arrangeItems = function(e) {
                void 0 === e && (e = []);
                var t, r, n = [],
                    a = [];
                for (r = e.length, t = 0; t < r; t++) "text" === e[t].type ? a.push(e[t]) : n.push(e[t]);
                return n.concat(a)
            }, t.cleanMacro = function(e) {
                var t, r, a = n.BLANKSTRING;
                for (t = 0, r = e.length; t < r; t++) " " !== e[t] && (a += e[t]);
                return a
            }, t.computePlotBounds = f, t.computeSliceBounds = function(e, t) {
                var r, n, a, i, o, s, l = t.props.element.attr,
                    u = l.ringpath;
                switch (r = u[0], n = u[1], a = u[2], o = u[4], s = u[5], e) {
                    case "slicex":
                    case "slicemiddlex":
                    case "slicecenterx":
                        i = c(a, (o + s) / 2).x + r;
                        break;
                    case "slicey":
                    case "slicemiddley":
                    case "slicecentery":
                        i = c(a, (o + s) / 2).y + n;
                        break;
                    case "slicestartx":
                        i = c(a, s).x + r;
                        break;
                    case "slicestarty":
                        i = c(a, s).y + n;
                        break;
                    case "sliceendx":
                        i = c(a, o).x + r;
                        break;
                    case "sliceendy":
                        i = c(a, o).y + n;
                        break;
                    default:
                        i = g(e, d(l))
                }
                return i
            }, t.compute3DSliceBounds = function(e, t) {
                var r, i = t.props.element.attr,
                    s = i.r,
                    l = s * i.radiusYFactor,
                    d = i.cx,
                    f = i.cy,
                    p = i.sAngle,
                    m = i.eAngle;
                switch (e) {
                    case "slicex":
                    case "slicemiddlex":
                    case "slicecenterx":
                        r = h(s, l, (p + m) / 2).x + d;
                        break;
                    case "slicey":
                    case "slicemiddley":
                    case "slicecentery":
                        r = h(s, l, (p + m) / 2).y + f;
                        break;
                    case "slicestartx":
                        r = h(s, l, p).x + d;
                        break;
                    case "slicestarty":
                        r = h(s, l, p).y + f;
                        break;
                    case "sliceendx":
                        r = h(s, l, m).x + d;
                        break;
                    case "sliceendy":
                        r = h(s, l, m).y + f;
                        break;
                    default:
                        r = g(e, function(e) {
                            var t, r, i, s, l, d, h, f, g, p = [],
                                m = [],
                                v = Infinity,
                                b = Infinity,
                                y = -Infinity,
                                x = -Infinity;
                            for (t = (0, n.pluckNumber)(e.r), r = (0, n.pluckNumber)(t * e.radiusYFactor), i = (0, n.pluckNumber)(e.sAngle) % a, s = (0, n.pluckNumber)(e.eAngle) % a, l = (0, n.pluckNumber)(e.cx), d = (0, n.pluckNumber)(e.cy), f = c(u(t, r, i), i, !0, {
                                    x: l,
                                    y: d
                                }), g = c(u(t, r, s), s, !0, {
                                    x: l,
                                    y: d
                                }), m.push(f), m.push(g), h = 0; h < o.length; h++) o[h] >= i && o[h] <= s && p.push(h);
                            for (h = 0; h < p.length; h++) f = c(u(t, r, o[p[h]]), o[p[h]], !0, {
                                x: l,
                                y: d
                            }), m.push(f);
                            for (t = (0, n.pluckNumber)(e.innerR, 0), r = (0, n.pluckNumber)(t * e.radiusYFactor, 0), f = c(u(t, r, i), i, !0, {
                                    x: l,
                                    y: d
                                }), g = c(u(t, r, s), s, !0, {
                                    x: l,
                                    y: d
                                }), m.push(f), m.push(g), h = 0; h < p.length; h++) f = c(u(t, r, o[p[h]]), o[p[h]], !0, {
                                x: l,
                                y: d
                            }), m.push(f);
                            for (h = 0; h < m.length; h++) y = Math.max(y, m[h].x), v = Math.min(v, m[h].x), x = Math.max(x, m[h].y), b = Math.min(b, m[h].y);
                            return {
                                x: v,
                                y: b,
                                width: Math.abs(y - v),
                                height: Math.abs(b - x)
                            }
                        }(i))
                }
                return r
            }, t.getQuadrant = function(e, t, r) {
                return e.x >= t ? e.y <= r ? 0 : 3 : e.y <= r ? 1 : 2
            }, t.polarToCartesian = c, t.deg2Rad = l, t.DEFAULT_MACRO_SEPARATOR = ".", t.DEFAULT_MACRO_PREFIX = "$", t.UNDERSCORE = "_"
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = function() {
                    return [{
                        initialAttr: {
                            opacity: 0
                        },
                        finalAttr: {
                            opacity: 1
                        },
                        slot: "initial"
                    }]
                },
                a = {
                    "initial.extension.annotation": function() {
                        return {
                            "polypath.appearing": n,
                            "text.appearing": n,
                            "image.appearing": n,
                            "ellipse.appearing": n,
                            "ringpath.appearing": n,
                            "path.appearing": n,
                            "rect.appearing": n,
                            "*": null
                        }
                    }
                };
            t["default"] = a
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t = Math,
                    r = t.cos,
                    n = t.sin,
                    a = t.abs,
                    i = t.pow,
                    o = t.PI,
                    s = 2 * o,
                    l = "M",
                    c = "A",
                    u = i(2, -24);
                e.define && e.define([{
                    name: "ringpath",
                    ringpath: function() {
                        return this.path(void 0, e._lastArgIfGroup(arguments))
                    },
                    ca: function(e, t, i, d, h, f, g, p) {
                        var m, v, b, y, x, w, C, _, k, S, E, A, T, N, M = f % s - h % s,
                            D = f - h,
                            F = g,
                            I = p;
                        return isNaN(F) && (F = i), isNaN(I) && (I = d), this._.ringangle = .5 * (h + f), a(D) < u ? (m = r(h), v = n(h), w = [l, e + i * m, t + F * v, "L", e + d * m, t + I * v, "Z"]) : a(D) > u && +(a(D) % s < u || s - a(D) % s < u) ? (w = [l, e - i, t, c, i, F, 0, 0, 0, e + i, t, c, i, F, 0, 0, 0, e - i, t], 0 === d && 0 === I || (w = w.concat([l, e - d, t, c, d, I, 0, 0, 1, e + d, t, c, d, I, 0, 0, 1, e - d, t])), w.push("Z")) : (m = r(h), v = n(h), b = r(f), y = n(f), (M %= s) < 0 && (M += s), x = M < o ? 0 : 1, E = t + F * v, A = t + F * y, k = e + d * b, T = t + I * y, a((C = e + i * m) - (_ = e + i * b)) < .01 && a(E - A) < .01 && (C = e + i * r(h + .0001745329), E = t + F * n(h + .0001745329)), w = [l, C, E, c, i, F, 0, x, 1, _, A, "L", k, T], 0 === d && 0 === I || (N = t + I * v, a(k - (S = e + d * m)) < .01 && a(T - N) < .01 && (S = e + d * r(h + .0001745329), N = t + I * n(h + .0001745329)), w.push(c, d, I, 0, x, 0, S, N)), w.push("Z")), {
                            path: w
                        }
                    }
                }])
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                e.define && e.define([{
                    name: "arcpath",
                    arcpath: function() {
                        return this.path(void 0, e._lastArgIfGroup(arguments))
                    },
                    ca: function(e, t, r, n) {
                        var a = n,
                            i = a - 90,
                            o = Math.PI * (i / 180);
                        return {
                            path: ["M", e, t - r, "A", r, r, 0, a > 180 ? 1 : 0, 1, e + r * Math.cos(o), t + r * Math.sin(o)]
                        }
                    }
                }])
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(193),
                o = r(270),
                s = n(r(275)),
                l = n(r(276)),
                c = n(r(287)),
                u = n(r(288)),
                d = n(r(289)),
                h = n(r(290)),
                f = n(r(291)),
                g = n(r(211)),
                p = {
                    circle: l["default"],
                    arc: l["default"],
                    line: c["default"],
                    path: c["default"],
                    rectangle: u["default"],
                    polygon: f["default"],
                    image: d["default"],
                    text: h["default"]
                },
                m = function(e) {
                    function t(t) {
                        var r;
                        return (r = e.call(this, t) || this).groups = [], r.items = [], r
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "group"
                    }, r.configureAttributes = function(e) {
                        var t, r = this,
                            n = r.config;
                        r.rawConfig = e || {}, n.id = r.rawConfig.id || r.getId("group"), n.autoScale = (0, i.pluckNumber)(r.rawConfig.autoScale, 1), n.scaleText = (0, i.pluckNumber)(r.rawConfig.scaleText, 0), n.scaleX = n.origScaleX = (0, i.pluckNumber)(r.rawConfig.xScale) / 100, n.scaleY = n.origScaleY = (0, i.pluckNumber)(r.rawConfig.yScale) / 100, n.scaleImages = (0, i.pluckNumber)(r.rawConfig.scaleImages, 0), n.constrainedScale = (0, i.pluckNumber)(r.rawConfig.constrainedScale, 1), n.origH = Number(r.rawConfig.origH), n.origW = Number(r.rawConfig.origW), n.link = r.rawConfig.link, n.color = r.rawConfig.color || "#FF0000", n.alpha = (0, i.pluckNumber)(parseFloat(r.rawConfig.alpha), 100), n.showShadow = (0, i.pluckNumber)(r.rawConfig.showShadow, 0), n.x = (0, i.pluckNumber)(r.rawConfig.x, r.rawConfig.xPos, 0), n.y = (0, i.pluckNumber)(r.rawConfig.y, r.rawConfig.yPos, 0), n.font = (0, i.pluck)(r.rawConfig.font, "Verdana, sans"), n.fontSize = (0, i.pluckFontSize)(r.rawConfig.fontSize, 10), n.textAlign = (0, i.pluck)(r.rawConfig.textAlign), n.textVAlign = (0, i.pluck)(r.rawConfig.textVAlign), n.rotateText = (0, i.pluck)(r.rawConfig.rotateText), n.wrapText = (0, i.pluck)(r.rawConfig.wrapText), n.grpXShift = (0, i.pluckNumber)(r.rawConfig.grpXShift, 0), n.grpYShift = (0, i.pluckNumber)(r.rawConfig.grpYShift, 0), n.xShift = (0, i.pluckNumber)(r.rawConfig.xShift, 0), n.yShift = (0, i.pluckNumber)(r.rawConfig.yShift, 0), n.toolText = r.rawConfig.toolText, n.isVisible = (0, o.pluckBoolean)(r.rawConfig.isVisible, !0), n.elementType = "group", n.containerConfiguration = {
                            id: r.rawConfig.showBelow ? "lowerAnnotationGroup" : "upperAnnotationGroup",
                            label: "group",
                            isParent: !0
                        }, n.animationLabel = "group", r.rawConfig.customComponent instanceof g["default"] ? n.customComponent = n.rawConfig.customComponent : delete n.customComponent, r.rawConfig.itemConfigs.forEach((function(e) {
                            t = e.type && e.type.toLowerCase(), p[t] && r.attachChild(p[t], "item", e.id).configure(e)
                        })), r.items = r.getChildren("item") || []
                    }, r.updateScale = function() {
                        var e, t, r, n, a, i = this.config,
                            o = this.getFromEnv("chart"),
                            s = +o.getFromEnv("chartHeight"),
                            l = +o.getFromEnv("chartWidth"),
                            c = i.autoScale,
                            u = i.constrainedScale;
                        this._setConfig("origW", Number(i.origW) || l), this._setConfig("origH", Number(i.origH) || s), c ? (t = l / i.origW * (Number(i.origScaleX) || 1), r = s / i.origH * (Number(i.origScaleY) || 1)) : t = r = 1, e = Math.min(t, r), this._setConfig("scaleValue", e), (c > 0 || isNaN(i.scaleX)) && (n = u ? e : t, this._setConfig("scaleX", n)), (c > 0 || isNaN(i.scaleY)) && (a = u ? e : r, this._setConfig("scaleY", a)), i.scaleFont = i.scaleText ? Math.min(i.scaleX, i.scaleY) : 1, i.scaleImageX = i.scaleImages ? i.scaleX : 1, i.scaleImageY = i.scaleImages ? i.scaleY : 1, i.scaleInfo = {
                            scaleX: i.scaleX,
                            scaleY: i.scaleY,
                            scaleValue: i.scaleValue
                        }
                    }, r.updateAttr = function() {
                        var e, t, r, n = this.config,
                            a = n.calculatedAttrs;
                        for (e in a) a[e] && (n[e] = a[e]);
                        t = this.getScaledVal(n.grpXShift) + n.xShift, r = this.getScaledVal(n.grpYShift) + n.yShift, this._setConfig("attr", {
                            transform: "T" + t + "," + r
                        })
                    }, r.retrieveItem = function(e) {
                        var t, r;
                        for (t = 0, r = this.items.length; t < r; t++)
                            if (this.items[t].getId() === e) return this.items[t]
                    }, r.getScaledVal = function(e, t) {
                        return this ? e * (t ? this._getConfig("scaleX") : (!1 === t ? this._getConfig("scaleY") : this._getConfig("scaleValue")) || 1) : e
                    }, r.getScaledFont = function(e) {
                        return this ? e * this._getConfig("scaleFont") : e
                    }, r.getScaledImageVal = function(e, t) {
                        return this ? e * ((t ? this._getConfig("scaleImageX") : this._getConfig("scaleImageY")) || 1) : e
                    }, r.getScaleInfo = function() {
                        return this.config.scaleInfo
                    }, r.draw = function() {
                        var e, t, r = this._getConfig("attr") || {};
                        this.updateScale(), this.parseAndSetAttribute(), e = this.getScaledVal(this._getConfig("grpXShift")) + this._getConfig("xShift"), t = this.getScaledVal(this._getConfig("grpYShift")) + this._getConfig("yShift"), r.name = this._getConfig("id"), r.transform = r.transform || "T" + e + "," + t, r.visibility = this.config.isVisible ? i.visibleStr : i.hiddenStr, this.addGraphicalElement({
                            el: "group",
                            attr: r,
                            container: this.config.containerConfiguration,
                            component: this.config.customComponent || this,
                            label: this.config.animationLabel,
                            id: this.config.id
                        })
                    }, t
                }(s["default"]);
            t["default"] = m
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(208),
                o = r(193),
                s = r(270),
                l = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getType = function() {
                        return "shape"
                    }, r._setConfig = function(e, t) {
                        this.config[e] = t
                    }, r._getConfig = function(e) {
                        return void 0 === e && (e = ""), "" === e ? this.config : this.config[e]
                    }, r.getElement = function() {
                        var e = this.config;
                        return this.getGraphicalElement(e.id, e.animationLabel)
                    }, r.getBounds = function() {
                        return this.getElement().getBBox()
                    }, r.data = function(e, t) {
                        if (e && "string" == typeof e) {
                            if (t === o.UNDEF) return this._data && this._data[e];
                            !this._data && (this._data = {}), this._data[e] = t
                        }
                    }, r.parseAndSetAttribute = function() {
                        var e, t, r = this.rawConfig,
                            n = this.getFromEnv("snapPoints"),
                            a = {
                                x: (0, o.pluck)(r.x, r.xPos, 0),
                                y: (0, o.pluck)(r.y, r.yPos, 0),
                                toX: (0, o.pluck)(r.toX),
                                toY: (0, o.pluck)(r.toY)
                            },
                            i = this.config.calculatedAttrs = {},
                            l = this.getScaleInfo();
                        for (var c in a) a.hasOwnProperty(c) && void 0 !== (t = a[c]) && (t = t.toString(), l.axis = c, (0, s.isMacro)(t) ? i[c] = (0, s.solveEquation)((0, s.parseEquation)((0, s.cleanMacro)(t.toLowerCase()), n, l)) : (i[c] = (0, s.solveEquation)((0, s.parseEquation)((0, s.cleanMacro)(t.toLowerCase()), n)), (0, o.pluckNumber)(r.autoscale, r.autoScale, 1) && (i[c] = (0, s.getScaledVal)(i[c], l))));
                        "group" !== this.config.elementType && (e = this.getLinkedParent().config.calculatedAttrs, i.x = i.x + (e.x || 0), i.y = i.y + (e.y || 0), isNaN(Number(i.toX)) ? i.toX = i.x : i.toX += e.x || 0, isNaN(Number(i.toY)) || (i.toY += e.y || 0)), this.updateAttr()
                    }, r.getAttribute = function(e) {
                        return void 0 === e && (e = ""), "" === e ? this.rawConfig : this.rawConfig[e]
                    }, r.show = function() {
                        var e = Object.assign({}, this.rawConfig);
                        e.isVisible = !0, this.setData(e)
                    }, r.hide = function() {
                        var e = Object.assign({}, this.rawConfig);
                        e.isVisible = !1, this.setData(e)
                    }, t
                }(i.SmartRenderer);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(193),
                o = n(r(277));

            function s(e) {
                return e * (Math.PI / 180)
            }
            var l = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, a["default"])(t, e);
                var r = t.prototype;
                return r.getName = function() {
                    return "circle"
                }, r.configureAttributes = function(t) {
                    void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                    var r, n = this.rawConfig,
                        a = this.getFromEnv("chart"),
                        o = +a.getFromEnv("chartHeight") || 700,
                        s = +a.getFromEnv("chartWidth") || 350;
                    this.config.radius = n.radius, this.config.xRadius = (0, i.pluckNumber)(parseFloat(n.radius), parseFloat(n.xRadius), Math.sqrt(Math.max(o, s))), this.config.yRadius = (0, i.pluckNumber)(parseFloat(n.yRadius), this.config.xRadius), this.config.startAngle = (0, i.pluckNumber)(parseFloat(n.startAngle), 0), this.config.endAngle = (0, i.pluckNumber)(parseFloat(n.endAngle), 360), this.config.innerRadius = (0, i.pluckNumber)(parseFloat(n.innerRadius), 0), this.config.innerYRadius = (0, i.pluckNumber)(parseFloat(n.innerYRadius), this.config.innerRadius, 0), "arc" === this.config.type ? this.config.elementType = "ringpath" : 0 !== (r = this.config).startAngle || 360 !== r.endAngle || function(e) {
                        return e.innerRadius > 0 || e.innerYRadius > 0
                    }(this.config) ? this.config.elementType = "ringpath" : this.config.elementType = "ellipse"
                }, r.updateAttr = function() {
                    var e, t = this.config,
                        r = t.calculatedAttrs,
                        n = this.getFromEnv("chart"),
                        a = +n.getFromEnv("chartHeight"),
                        o = +n.getFromEnv("chartWidth"),
                        l = this.getScaledVal(t.xRadius),
                        c = this.getScaledVal(t.yRadius),
                        u = this.getScaledVal(t.innerRadius),
                        d = this.getScaledVal(t.innerYRadius);
                    switch ((0, i.pluck)(t.radius) || (t.radius = o < a ? this.getScaledVal(o) : this.getScaledVal(a), t.radius *= .3, u > t.radius && (u += t.radius, t.radius = u - t.radius, u -= t.radius), l = c = t.radius, d = u), t.elementType) {
                        case "ringpath":
                            e = {
                                ringpath: [(0, i.pluckNumber)(r.x, this.getScaledVal(t.x, !0)), (0, i.pluckNumber)(r.y, this.getScaledVal(t.y, !1)), l, u, s(360 - t.endAngle), s(360 - t.startAngle), c, d]
                            };
                            break;
                        default:
                            e = {
                                cx: (0, i.pluckNumber)(r.x, this.getScaledVal(t.x, !0)),
                                cy: (0, i.pluckNumber)(r.y, this.getScaledVal(t.y, !1))
                            }
                    }
                    this._setConfig("attr", e)
                }, r._getAnnotationAttrs = function() {
                    var e, t = this.config,
                        r = this.config.attr || {},
                        n = t.x,
                        a = t.y,
                        i = this.getScaledVal(t.xRadius),
                        o = this.getScaledVal(t.yRadius);
                    switch (t.xRadius || (i = 0), t.yRadius || (o = 0), r.fill = t.color, r.stroke = t.borderColor, r["stroke-width"] = t.borderThickness, r["stroke-dasharray"] = t.dashArrayStr, this.config.elementType) {
                        case "ringpath":
                            e = [this.getScaledVal(n, !0), this.getScaledVal(a, !1), i, this.getScaledVal(t.innerRadius), s(360 - t.endAngle), s(360 - t.startAngle), o, this.getScaledVal(t.innerYRadius)], r.ringpath = r.ringpath || e;
                            break;
                        default:
                            r.rx = i, r.ry = o, r.cx = "undefined" == typeof r.cx ? this.getScaledVal(n, !0) : r.cx, r.cy = "undefined" == typeof r.cy ? this.getScaledVal(a, !1) : r.cy
                    }
                    return r
                }, t
            }(o["default"]);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(278)),
                o = n(r(275)),
                s = r(193),
                l = r(270),
                c = n(r(211)),
                u = function(e) {
                    return void 0 === e ? void 0 : 1
                },
                d = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.configureAttributes = function(e) {
                        var t, r, n = this,
                            a = n.config,
                            o = n.getFromEnv("chart"),
                            d = n.getLinkedParent();
                        n.groupConfig = {}, n.rawConfig = {}, null !== d && (n.groupConfig.x = d._getConfig("x"), n.groupConfig.y = d._getConfig("y"), n.groupConfig.grpXShift = d._getConfig("grpXShift"), n.groupConfig.grpYShift = d._getConfig("grpYShift"), n.groupConfig.color = d._getConfig("color"), n.groupConfig.alpha = d._getConfig("alpha"), n.groupConfig.font = d._getConfig("font"), n.groupConfig.fontSize = d._getConfig("fontSize"), n.groupConfig.textAlign = d._getConfig("textAlign"), n.groupConfig.textVAlign = d._getConfig("textVAlign"), n.groupConfig.rotateText = d._getConfig("rotateText"), n.groupConfig.wrapText = d._getConfig("wrapText"), n.groupConfig.toolText = d._getConfig("toolText"), n.groupConfig.scaleX = d._getConfig("scaleX"), n.groupConfig.scaleY = d._getConfig("scaleY"), n.groupConfig.scaleImageX = d._getConfig("scaleImageX"), n.groupConfig.scaleImageY = d._getConfig("scaleImageY"), n.groupConfig.link = d._getConfig("link")), n.rawConfig = (0, i["default"])(n.rawConfig, e) || {}, a.type = n.rawConfig.type, a.color = n._getFillColor(n.rawConfig, this.groupConfig), a.link = (0, s.pluck)(n.rawConfig.link, n.groupConfig.link), a.borderThickness = (0, s.pluckNumber)(parseFloat(n.rawConfig.borderThickness), parseFloat(n.rawConfig.thickness), 2), a.showBorder = (0, s.pluckNumber)(n.rawConfig.showBorder, parseFloat(n.rawConfig.borderThickness), parseFloat(n.rawConfig.thickness), u(n.rawConfig.borderColor), u(n.rawConfig.borderAlpha), 0), a.borderColor = n._getBorderColor(n.rawConfig), a.dashed = (0, s.pluckNumber)(n.rawConfig.dashed, 0), a.dashLen = (0, s.pluckNumber)(n.rawConfig.dashLen, 5), a.dashGap = (0, s.pluckNumber)(parseFloat(n.rawConfig.dashGap), 3), a.dashArrayStr = a.dashed ? (0, s.getDashStyle)(a.dashLen, a.dashGap) : "none", a.x = (0, s.pluckNumber)(n.rawConfig.x, n.rawConfig.xPos, 0), a.y = (0, s.pluckNumber)(n.rawConfig.y, n.rawConfig.yPos, 0), a.tox = (0, s.pluckNumber)(n.rawConfig.toX, a.x, 0), a.toy = (0, s.pluckNumber)(n.rawConfig.toY, a.y, 0), a.toy >= 0 && a.y >= 0 && a.toy < a.y && (t = [a.toy, a.y], a.y = t[0], a.toy = t[1]), a.tox >= 0 && a.x >= 0 && a.tox < a.x && (r = [a.tox, a.x], a.x = r[0], a.tox = r[1]), a.showShadow = (0, s.pluckNumber)(n.rawConfig.showShadow, d.config.showShadow, 0), a.toolText = (0, s.getFirstValue)(n.rawConfig.toolText, this.groupConfig.toolText, ""), a.isVisible = (0, l.pluckBoolean)(n.rawConfig.isVisible, !0), a.id = (0, s.pluck)(n.rawConfig.id, n.getId(n.config.elementType)), a.containerConfiguration = {
                            id: n.getLinkedParent().config.id,
                            label: "group",
                            isParent: !0
                        }, n._clickHandler = n._clickHandler || function(e) {
                            n.config.link && n.getFromEnv("linkClickFN").call({
                                link: n.config.link
                            }, !0), n.rawConfig.onAnnotationClick instanceof Function ? n.rawConfig.onAnnotationClick() : d.rawConfig.onAnnotationClick instanceof Function ? d.rawConfig.onAnnotationClick() : o.fireChartInstanceEvent("annotationclick", (0, l.getEventData)(e, n, o), void 0, void 0, e)
                        }, n._rollOverHandler = n._rollOverHandler || function(e) {
                            n.rawConfig.onAnnotationRollover instanceof Function ? n.rawConfig.onAnnotationRollover() : d.rawConfig.onAnnotationRollover instanceof Function ? d.rawConfig.onAnnotationRollover() : o.fireChartInstanceEvent("annotationrollover", (0, l.getEventData)(e, n, o), void 0, void 0, e)
                        }, n._rollOutHandler = n._rollOutHandler || function(e) {
                            n.rawConfig.onAnnotationRollout instanceof Function ? n.rawConfig.onAnnotationRollout() : d.rawConfig.onAnnotationRollout instanceof Function ? d.rawConfig.onAnnotationRollout() : o.fireChartInstanceEvent("annotationrollout", (0, l.getEventData)(e, n, o), void 0, void 0, e)
                        }, n.rawConfig.customComponent instanceof c["default"] ? a.customComponent = a.rawConfig.customComponent : delete a.customComponent
                    }, r._getBorderColor = function(e) {
                        var t = "none",
                            r = {
                                color: s.BLANKSTRING,
                                alpha: s.BLANKSTRING
                            };
                        return "line" !== this.getType() && (r.color = this.config.rawBorderColor = (0, s.pluck)(e.borderColor, e.fillColor && e.fillColor.split(",")[0], e.color && e.color.split(",")[0], "#000000"), 0 === this.config.showBorder ? (r.alpha = 1, this.config.borderThickness = 2) : r.alpha = this.config.rawBorderAlpha = (0, s.pluckNumber)(parseFloat(e.borderAlpha), parseFloat(e.alpha), 100), t = (0, s.toRaphaelColor)(r)), t
                    }, r._getFillColor = function(e, t) {
                        var r = this.config.type,
                            n = {
                                color: s.BLANKSTRING,
                                alpha: s.BLANKSTRING,
                                angle: s.BLANKSTRING,
                                ratio: s.BLANKSTRING,
                                radialGradient: "circle" === r || "arc" === r
                            };
                        return "line" === r || "image" === r ? (n.color = e.color || t.color || "#FF0000", n.alpha = (0, s.pluckNumber)(parseFloat(e.alpha), t.alpha, 100)) : (n.color = e.fillColor || e.color || t.color || "#FF0000", n.alpha = (0, s.pluck)(e.fillAlpha, parseFloat(e.alpha), t.alpha, 100), n.angle = 360 - (0, s.pluckNumber)(e.fillAngle, 0), n.ratio = (0, s.pluck)(e.fillRatio), e.fillPattern && (n.radialGradient = "radial" === e.fillPattern.toLowerCase() || (0, s.pluckNumber)(e.fillPattern)), n.radialGradient && (n.gradientUnits = "objectBoundingBox", n.cx = .5, n.cy = .5, n.fx = .5, n.fy = .5)), this.config.rawColor = n.color, this.config.rawAlpha = n.alpha, this.config.rawAngle = n.angle, this.config.rawFillPattern = n.radialGradient ? "radial" : "linear", this.config.rawRatio = n.ratio, (0, s.toRaphaelColor)(n)
                    }, t.destroySelectionBox = function() {}, r._applyAttr = function(e) {
                        var t, r = this.config.elementType,
                            n = Object.assign({}, e);
                        ("image" !== r || this.config.url) && ((t = this.rawConfig.css || {}).cursor = this.config.link ? s.POINTER : "default", this.config.isVisible ? n.visibility = s.visibleStr : n.visibility = s.hiddenStr, this.addEventListener("fc-click", this._clickHandler), this.addEventListener("fc-mouseover", this._rollOverHandler), this.addEventListener("fc-mouseout", this._rollOutHandler), this.config.animationLabel = this.rawConfig.animationLabel || this.getLinkedParent().config.animationLabel || r, this.addGraphicalElement({
                            el: r,
                            attr: n,
                            css: t,
                            container: this.config.containerConfiguration,
                            component: this.config.customComponent || this,
                            label: this.config.animationLabel,
                            id: this.config.id,
                            tooltext: this.config.toolText,
                            shadow: {
                                opacity: 0 !== this.config.showShadow ? 1 : 0,
                                useFilter: "path" === r ? 0 : 1
                            },
                            outlineText: n.outlineText
                        }))
                    }, r.getScaledVal = function(e, t) {
                        var r = this.getLinkedParent();
                        return r ? r.getScaledVal(e, t) : e
                    }, r.getScaledFont = function(e) {
                        var t = this.getLinkedParent();
                        return t ? t.getScaledFont(e) : e
                    }, r.getScaledImageVal = function(e, t) {
                        var r = this.getLinkedParent();
                        return r ? r.getScaledImageVal(e, t) : e
                    }, r.getScaleInfo = function() {
                        return this.getLinkedParent().config.scaleInfo
                    }, r.draw = function() {
                        this.parseAndSetAttribute(), this._applyAttr(this._getAnnotationAttrs() || {})
                    }, t
                }(o["default"]);
            t["default"] = d
        }, function(e, t, r) {
            var n = r(279),
                a = r(282),
                i = n((function(e, t) {
                    return a((function(e, t, r) {
                        return r
                    }), e, t)
                }));
            e.exports = i
        }, function(e, t, r) {
            var n = r(280),
                a = r(281);
            e.exports = function(e) {
                return function t(r, i) {
                    switch (arguments.length) {
                        case 0:
                            return t;
                        case 1:
                            return a(r) ? t : n((function(t) {
                                return e(r, t)
                            }));
                        default:
                            return a(r) && a(i) ? t : a(r) ? n((function(t) {
                                return e(t, i)
                            })) : a(i) ? n((function(t) {
                                return e(r, t)
                            })) : e(r, i)
                    }
                }
            }
        }, function(e, t, r) {
            var n = r(281);
            e.exports = function(e) {
                return function t(r) {
                    return 0 === arguments.length || n(r) ? t : e.apply(this, arguments)
                }
            }
        }, function(e, t) {
            e.exports = function(e) {
                return null != e && "object" == typeof e && !0 === e["@@functional/placeholder"]
            }
        }, function(e, t, r) {
            var n = r(283),
                a = r(284),
                i = r(285),
                o = n((function s(e, t, r) {
                    return i((function(t, r, n) {
                        return a(r) && a(n) ? s(e, r, n) : e(t, r, n)
                    }), t, r)
                }));
            e.exports = o
        }, function(e, t, r) {
            var n = r(280),
                a = r(279),
                i = r(281);
            e.exports = function(e) {
                return function t(r, o, s) {
                    switch (arguments.length) {
                        case 0:
                            return t;
                        case 1:
                            return i(r) ? t : a((function(t, n) {
                                return e(r, t, n)
                            }));
                        case 2:
                            return i(r) && i(o) ? t : i(r) ? a((function(t, r) {
                                return e(t, o, r)
                            })) : i(o) ? a((function(t, n) {
                                return e(r, t, n)
                            })) : n((function(t) {
                                return e(r, o, t)
                            }));
                        default:
                            return i(r) && i(o) && i(s) ? t : i(r) && i(o) ? a((function(t, r) {
                                return e(t, r, s)
                            })) : i(r) && i(s) ? a((function(t, r) {
                                return e(t, o, r)
                            })) : i(o) && i(s) ? a((function(t, n) {
                                return e(r, t, n)
                            })) : i(r) ? n((function(t) {
                                return e(t, o, s)
                            })) : i(o) ? n((function(t) {
                                return e(r, t, s)
                            })) : i(s) ? n((function(t) {
                                return e(r, o, t)
                            })) : e(r, o, s)
                    }
                }
            }
        }, function(e, t) {
            e.exports = function(e) {
                return "[object Object]" === Object.prototype.toString.call(e)
            }
        }, function(e, t, r) {
            var n = r(283),
                a = r(286),
                i = n((function(e, t, r) {
                    var n, i = {};
                    for (n in t) a(n, t) && (i[n] = a(n, r) ? e(n, t[n], r[n]) : t[n]);
                    for (n in r) a(n, r) && !a(n, i) && (i[n] = r[n]);
                    return i
                }));
            e.exports = i
        }, function(e, t) {
            e.exports = function(e, t) {
                return Object.prototype.hasOwnProperty.call(t, e)
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(193),
                o = r(270),
                s = n(r(277));

            function l(e) {
                return e <= "9" && e >= "0" || "-" === e || "." === e ? 0 : e <= "z" && e >= "a" || e <= "Z" && e >= "A" ? 1 : 2
            }
            var c = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, a["default"])(t, e);
                var r = t.prototype;
                return r.getName = function() {
                    return "path"
                }, r.configureAttributes = function(t) {
                    void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                    var r = this.rawConfig;
                    this.config.pathStr = (0, i.pluck)(r.path), this.config.x = (0, i.pluckNumber)(r.x, 0), this.config.y = (0, i.pluckNumber)(r.y, 0), this.config.tox = (0, i.pluckNumber)(r.toX, this.config.x), this.config.toy = (0, i.pluckNumber)(r.toY, this.config.y), this.config.elementType = "path"
                }, r.getScaledPath = function() {
                    var e, t, r, n, a, s = this.config.pathStr,
                        c = [],
                        u = i.BLANKSTRING;
                    for (a = s && s.length, r = 0; r < a; r++) {
                        for (n = r, t = i.BLANKSTRING, e = l(s[r]); n < a && l(s[n]) === e;) t += s[n], n++;
                        "" !== (t = (0, o.trim)(t)) && e < 2 && c.push(t), r = n === r ? n : n - 1
                    }
                    for (a = c.length, r = 0; r < a;) switch (u += c[r], c[r].toLowerCase()) {
                        case "m":
                        case "l":
                        case "t":
                            u += this.getScaledVal(Number(c[r + 1]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 2]), !1).toString(), r += 3;
                            break;
                        case "s":
                        case "q":
                            u += this.getScaledVal(Number(c[r + 1]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 2]), !1).toString() + ",", u += this.getScaledVal(Number(c[r + 3]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 4]), !1).toString(), r += 5;
                            break;
                        case "h":
                            u += this.getScaledVal(Number(c[r + 1]), !0).toString(), r += 2;
                            break;
                        case "v":
                            u += this.getScaledVal(Number(c[r + 1]), !1).toString(), r += 2;
                            break;
                        case "c":
                            u += this.getScaledVal(Number(c[r + 1]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 2]), !1).toString() + ",", u += this.getScaledVal(Number(c[r + 3]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 4]), !1).toString() + ",", u += this.getScaledVal(Number(c[r + 5]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 6]), !1).toString(), r += 7;
                            break;
                        case "a":
                            u += this.getScaledVal(Number(c[r + 1]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 2]), !1).toString() + ",", u += this.getScaledVal(Number(c[r + 3]), !0).toString() + ",", u += c[r + 4] + ",", u += c[r + 5] + ",", u += this.getScaledVal(Number(c[r + 6]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 7]), !1).toString(), r += 8;
                            break;
                        case "z":
                        default:
                            r++
                    }
                    return u.toString()
                }, r.updateAttr = function() {
                    var e, t, r = this.config,
                        n = r.calculatedAttrs,
                        a = {};
                    e = (0, i.pluckNumber)(n.x, this.getScaledVal(r.x, !0)), t = (0, i.pluckNumber)(n.y, this.getScaledVal(r.y, !1)), r.pathStr ? (a.path = this.getScaledPath(), a.transform = "T" + e + "," + t) : a.path = "M" + e + "," + t + "L" + (0, i.pluckNumber)(n.toX, e, this.getScaledVal(r.tox, !0)) + "," + (0, i.pluckNumber)(n.toY, t, this.getScaledVal(r.toy, !1)), this._setConfig("attr", a)
                }, r._getAnnotationAttrs = function() {
                    var e, t, r, n, a, i = this.config,
                        o = this._getConfig("attr") || {},
                        s = i.color;
                    return o.stroke = s, this.rawConfig.color && (o.fill = s), o["stroke-width"] = this.getScaledVal(i.borderThickness), o["stroke-dasharray"] = i.dashArrayStr, e = o.x || this.getScaledVal(i.x, !0), t = o.y || this.getScaledVal(i.y, !1), r = o.toX || this.getScaledVal(i.tox, !0), n = o.toY || this.getScaledVal(i.toy, !1), o.path ? o : ((a = this.getScaledPath()) ? (o.path = a, o.transform = o.transform || "T" + e + "," + t) : o.path = o.path || "M" + e + "," + t + "L" + r + "," + n, o)
                }, t
            }(s["default"]);
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(193),
                o = n(r(277)),
                s = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "rect"
                    }, r.configureAttributes = function(t) {
                        void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                        this.config.xRadius = (0, i.pluckNumber)(parseFloat(this.rawConfig.radius), 0), this.config.elementType = "rect"
                    }, r.updateAttr = function() {
                        var e, t, r, n, a, o, s = this.config,
                            l = s.calculatedAttrs;
                        r = (0, i.pluckNumber)(l.x, this.getScaledVal(s.x, !0)), n = (0, i.pluckNumber)(l.y, this.getScaledVal(s.y, !1)), a = (0, i.pluckNumber)(l.toX, this.getScaledVal(s.tox, !0)), (o = (0, i.pluckNumber)(l.toY, this.getScaledVal(s.toy, !1))) >= 0 && n >= 0 && o < n && (n = (e = [o, n])[0], o = e[1]), a >= 0 && r >= 0 && a < r && (r = (t = [a, r])[0], a = t[1]), this._setConfig("attr", {
                            x: r,
                            y: n,
                            width: Math.abs(a - r),
                            height: Math.abs(o - n)
                        })
                    }, r._getAnnotationAttrs = function() {
                        var e = this.config,
                            t = this._getConfig("attr") || {},
                            r = this.getScaledVal(e.x),
                            n = this.getScaledVal(e.y);
                        return t.x = "undefined" == typeof t.x ? r : t.x, t.y = "undefined" == typeof t.y ? n : t.y, t.width = "undefined" == typeof t.width ? Math.abs(this.getScaledVal(e.tox) - r) : t.width, t.height = "undefined" == typeof t.height ? Math.abs(this.getScaledVal(e.toy) - n) : t.height, t.r = this.getScaledVal(e.xRadius), t.fill = e.color, t.stroke = e.borderColor, t["stroke-width"] = e.borderThickness, t["stroke-dasharray"] = e.dashArrayStr, t
                    }, t
                }(o["default"]);
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(277)),
                o = r(193),
                s = function(e) {
                    var t = this.config,
                        r = e.originalEvent.target,
                        n = r.height,
                        a = r.width,
                        i = this._getConfig("align"),
                        o = this._getConfig("vAlign"),
                        s = this._getConfig("xScale"),
                        l = n * this._getConfig("yScale"),
                        c = a * s,
                        u = function(e) {
                            var t = e.height,
                                r = e.width,
                                n = e.vAlign,
                                a = e.align,
                                i = e.x,
                                o = e.y,
                                s = {
                                    x: i,
                                    y: o
                                };
                            switch (a) {
                                case "center":
                                    s.x = i - r / 2;
                                    break;
                                case "right":
                                    s.x = i - r
                            }
                            switch (n) {
                                case "middle":
                                    s.y = o - t / 2;
                                    break;
                                case "bottom":
                                    s.y = o - t
                            }
                            return s
                        }({
                            x: t.derivedX,
                            y: t.derivedY,
                            height: l,
                            width: c,
                            align: i,
                            vAlign: o
                        });
                    this.config.loadedWidth = a, this.config.loadedHeight = n, t = Object.assign(this.rawConfig, {
                        x: u.x,
                        y: u.y,
                        width: c,
                        height: l,
                        autoScale: 0
                    }), this.getGraphicalElement(this.config.id, this.config.animationLabel).attr(t), this.rawConfig.onload && this.rawConfig.onload.call(this, {
                        width: c,
                        height: l
                    }), e.detachHandler()
                },
                l = function(e) {
                    function t(t) {
                        var r;
                        return (r = e.call(this, t) || this)._listener = s, r
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "image"
                    }, r.configureAttributes = function(t) {
                        void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                        var r = this.rawConfig,
                            n = this.config;
                        n.url = (0, o.getValidValue)(r.url), n.xScale = n.rawXScale = (0, o.pluckNumber)(r.xScale, 100) / 100, n.yScale = n.rawYScale = (0, o.pluckNumber)(r.yScale, 100) / 100, n.width = (0, o.pluckNumber)(n.loadedWidth, r.width), n.height = (0, o.pluckNumber)(n.loadedHeight, r.height), n.align = (0, o.pluck)(r.align, "left"), n.vAlign = (0, o.pluck)(r.vAlign, "top"), n.xScale = n.xScale * (this.groupConfig.scaleX || 1), n.yScale = n.yScale * (this.groupConfig.scaleY || 1), n.elementType = "image", "undefined" == typeof n.width && "undefined" == typeof n.height && this.addEventListener("load", this._listener)
                    }, r.updateAttr = function() {
                        var e = this.getLinkedParent(),
                            t = this.config,
                            r = t.calculatedAttrs;
                        this.config.xScale = e.config.scaleX * t.rawXScale, this.config.yScale = e.config.scaleY * t.rawYScale, this._setConfig("attr", {
                            x: (0, o.pluckNumber)(r.x, this.getScaledVal(t.x, !0)),
                            y: (0, o.pluckNumber)(r.y, this.getScaledVal(t.y, !1))
                        })
                    }, r._getAnnotationAttrs = function() {
                        var e = this.config,
                            t = e.attr,
                            r = (0, o.pluckNumber)(e.attr.x, e.x),
                            n = (0, o.pluckNumber)(e.attr.y, e.y);
                        return (0, o.pluckNumber)(this.rawConfig.autoscale, this.rawConfig.autoScale, 1) || (t = {
                            x: r,
                            y: n
                        }), e.derivedX = t.x = "undefined" == typeof t.x ? this.getScaledVal(r, !0) : t.x, e.derivedY = t.y = "undefined" == typeof t.y ? this.getScaledVal(n, !1) : t.y, t.src = e.url, t.opacity = (0, o.pluckNumber)(e.rawAlpha, 100) / 100, "undefined" != typeof e.width && (t.width = e.width * e.xScale), "undefined" != typeof e.height && (t.height = e.height * e.yScale), t
                    }, t
                }(i["default"]);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(277)),
                o = r(193),
                s = {
                    left: "start",
                    right: "end",
                    center: "middle"
                },
                l = {
                    top: "bottom",
                    middle: "middle",
                    bottom: "top"
                },
                c = {
                    0: "0",
                    1: "270",
                    right: "90",
                    cw: "90",
                    left: "270",
                    ccw: "270"
                };
            var u = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, a["default"])(t, e);
                var r = t.prototype;
                return r.getName = function() {
                    return "text"
                }, r.configureAttributes = function(t) {
                    void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                    var r, n = this.rawConfig,
                        a = this.groupConfig;
                    this.config.text = (0, o.parseUnsafeString)((0, o.pluck)(n.text, n.label, "")), this.config.font = (0, o.pluck)(n.font, a.font, "Verdana, sans"), this.config.fontSize = (0, o.pluckFontSize)(n.fontSize, a.fontSize, 10), this.config.align = (0, o.pluck)(s[n.align && n.align.toLowerCase()], s[a.textAlign && a.textAlign.toLowerCase()], "middle"), this.config.vAlign = (0, o.pluck)(l[n.vAlign && n.vAlign.toLowerCase()], l[a.textVAlign && a.textVAlign.toLowerCase()], "middle"), this.config.radius = (0, o.pluckNumber)(parseFloat(n.radius), 0), this.config.fontWeight = (0, o.pluckNumber)(n.bold, 0) ? "bold" : "normal", this.config.outlineText = (0, o.pluckNumber)(t.outlineText, 0), this.config.fontStyle = (0, o.pluckNumber)(n.italic, 0) ? "italic" : "normal", this.config.bgColor = (r = n.bgColor, (/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(r) ? r : /(^[0-9A-F]{6}$)|(^[0-9A-F]{3}$)/i.test(r)) ? n.bgColor : "none"), this.config.borderThickness = (0, o.pluckNumber)(parseFloat(this.rawConfig.borderThickness), parseFloat(this.rawConfig.thickness), 1), this.config.rotateText = (0, o.pluck)(n.rotateText, a.rotateText, "0"), this.config.rotateAngle = c[this.config.rotateText && this.config.rotateText.toLowerCase()], this.config.wrap = (0, o.pluckNumber)(n.wrap, a.wrapText, n.wrapHeight, n.wrapWidth, 1), this.config.wrap && (this.config.wrapWidth = (0, o.pluckNumber)(n.wrapWidth), this.config.wrapHeight = (0, o.pluckNumber)(n.wrapHeight)), this.config.leftMargin = (0, o.pluckNumber)(n.leftMargin, 0), this.config.elementType = "text"
                }, r.getText = function() {
                    var e = this.config,
                        t = this.getFromEnv("smartLabel"),
                        r = this.getLinkedParent(),
                        n = r && r._getConfig("scaleText"),
                        a = n ? this.getScaledVal(e.wrapWidth, !0) : e.wrapWidth,
                        i = n ? this.getScaledVal(e.wrapHeight, !1) : e.wrapHeight,
                        s = {
                            fontStyle: e.fontStyle,
                            fontFamily: e.font,
                            fontWeight: e.fontWeight,
                            fontSize: e.fontSize + "px",
                            "text-anchor": e.align,
                            "vertical-align": e.vAlign
                        };
                    return (0, o.setLineHeight)(s), t && t.setStyle(s), t && e.wrap ? t.getSmartText(e.text, a, i, 0).text : e.text
                }, r._getFillColor = function(e, t) {
                    var r = this.config.type,
                        n = {
                            color: "",
                            alpha: "",
                            angle: "",
                            ratio: "",
                            radialGradient: "circle" === r || "arc" === r
                        };
                    return n.color = e.fontColor || e.fillColor || e.color || t.color || "#FF0000", n.alpha = (0, o.pluck)(e.fillAlpha, parseFloat(e.alpha), t.alpha, 100), n.angle = 360 - (0, o.pluckNumber)(e.fillAngle, 0), n.ratio = (0, o.pluck)(e.fillRatio), e.fillPattern && (n.radialGradient = "radial" === e.fillPattern || (0, o.pluckNumber)(e.fillPattern)), n.radialGradient && (n.gradientUnits = "objectBoundingBox", n.cx = .5, n.cy = .5, n.fx = .5, n.fy = .5), this.config.rawColor = n.color, this.config.rawAlpha = n.alpha, this.config.rawAngle = n.angle, this.config.rawFillPattern = n.radialGradient ? "radial" : "linear", this.config.rawRatio = n.ratio, (0, o.toRaphaelColor)(n)
                }, r.updateAttr = function() {
                    var e, t = this.config,
                        r = t.calculatedAttrs,
                        n = (0, o.pluckNumber)(r.x, this.getScaledVal(t.x, !0)),
                        a = (0, o.pluckNumber)(r.y, this.getScaledVal(t.y, !0));
                    "0" !== t.rotateText && (e = (0, o.getSuggestiveRotation)(parseFloat(t.rotateAngle), n, a)), this._setConfig("attr", {
                        x: n,
                        y: a,
                        transform: e
                    })
                }, r._getAnnotationAttrs = function() {
                    var e, t, r = this.config,
                        n = this._getConfig("attr") || {},
                        a = this.getScaledVal(r.x, !0),
                        i = this.getScaledVal(r.y, !1);
                    return n.x = ("undefined" == typeof n.x ? a : n.x) + r.leftMargin / 2, n.y = "undefined" == typeof n.y ? i : n.y, n.text = this.getText(), n.fill = r.color, n.outlineText = r.outlineText, n.text && (e = this.rawConfig.borderColor, t = this.rawConfig.borderAlpha, e && "none" !== e && 0 !== t || this.rawConfig.bgColor) ? n["text-bound"] = [(0, o.toRaphaelColor)(r.bgColor), r.borderColor, r.borderThickness, 2, r.radius, r.dashArrayStr] : n["text-bound"] = [], n["font-style"] = r.fontStyle, n["font-weight"] = r.fontWeight, n["font-family"] = r.font, n["font-size"] = this.getScaledFont(r.fontSize), n["text-anchor"] = r.align, n["vertical-align"] = r.vAlign, "0" !== r.rotateText && (n.transform = n.transform || (0, o.getSuggestiveRotation)(parseFloat(r.rotateAngle), a, i)), n
                }, t
            }(i["default"]);
            t["default"] = u
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(277)),
                o = r(193),
                s = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "polygon"
                    }, r.configureAttributes = function(t) {
                        void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                        var r = this.rawConfig;
                        this.config.sides = (0, o.pluckNumber)((0, o.clampNumber)(r.sides, 3), 5), this.config.startAngle = (0, o.pluckNumber)(parseFloat(r.startAngle), 0), this.config.xRadius = (0, o.pluckNumber)(parseFloat(r.radius), 0), this.config.elementType = "polypath"
                    }, r.updateAttr = function() {
                        var e = this.config,
                            t = e.calculatedAttrs;
                        this._setConfig("attr", {
                            polypath: [e.sides, (0, o.pluckNumber)(t.x, this.getScaledVal(e.x, !0)), (0, o.pluckNumber)(t.y, this.getScaledVal(e.y, !1)), this.getScaledVal(e.xRadius), e.startAngle, 0]
                        })
                    }, r._getAnnotationAttrs = function() {
                        var e = this.config,
                            t = this._getConfig("attr") || {};
                        return t.fill = e.color, t.stroke = e.borderColor, t["stroke-width"] = e.borderThickness, t["stroke-dasharray"] = e.dashArrayStr, t.polypath = t.polypath || [e.sides, this.getScaledVal(e.x, !0), this.getScaledVal(e.y, !1), this.getScaledVal(e.xRadius), e.startAngle, 0], t
                    }, t
                }(i["default"]);
            t["default"] = s
        }, function(e, t, r) {
            var n = r(279)((function(e, t) {
                var r = {};
                for (var n in t) e(t[n], n, t) && (r[n] = t[n]);
                return r
            }));
            e.exports = n
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(294)),
                i = r(193),
                o = r(297);

            function s(e) {
                var t = e.sender;
                (0, o.isValidDataset)(t) && t.registerFactory("regression", (function(e) {
                    var t = e.getFromEnv("chart").getFromEnv("dataSource").chart,
                        r = e.config.JSONData;
                    (0, i.componentFactory)(e, a["default"], "regression", Number((0, o.hasRegressionLine)(t, r)), [e])
                }))
            }
            var l = {
                extension: function(e) {
                    e.addEventListener("instantiated", s)
                },
                name: "Regression",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(208),
                o = n(r(295)),
                s = n(r(296)),
                l = r(193),
                c = r(297),
                u = r(201),
                d = n(r(298)),
                h = function() {
                    this.hide()
                };
            (0, u.addDep)({
                name: "regressionLineAnimation",
                type: "animationRule",
                extension: d["default"]
            });
            var f = function(e) {
                function t() {
                    var t;
                    return (t = e.call(this) || this)._config = {
                        regressionPoints: []
                    }, t.regressionLine = [], t
                }(0, a["default"])(t, e);
                var r = t.prototype;
                return r.getType = function() {
                    return "extension"
                }, r.getName = function() {
                    return "regression"
                }, r.configureAttributes = function(e) {
                    var t = this.getFromEnv("dataSource").chart,
                        r = e.config,
                        n = r.JSONData,
                        a = this._config;
                    a.regressionPoints.splice(0, a.regressionPoints.length), a.showYOnX = (0, l.pluckNumber)(n.showyonx, t.showyonx, 1), a.regressionLineColor = (0, l.toRaphaelColor)((0, l.pluck)(n.regressionlinecolor, t.regressionlinecolor, r.anchorbordercolor, r.lineColor, r.anchorBgColor, "fff000")), a.polynomialRegressionLineColor = (0, l.toRaphaelColor)((0, l.pluck)(n.polynomialregressionlinecolor, t.polynomialregressionlinecolor, a.regressionLineColor)), a.regressionLineThickness = (0, l.pluckNumber)(n.regressionlinethickness, t.regressionlinethickness, n.anchorborderthickness, 1), a.polynomialRegressionLineThickness = (0, l.pluckNumber)(n.polynomialregressionlinethickness, t.polynomialregressionlinethickness, a.regressionLineThickness), a.regressionLineAlpha = (0, l.pluckNumber)(n.regressionlinealpha, t.regressionlinealpha, 100), a.polynomialRegressionLineAlpha = (0, l.pluckNumber)(n.polynomialregressionlinealpha, t.polynomialregressionlinealpha, a.regressionLineAlpha), (0, c.createLinear)(t, n) && a.regressionPoints.push((0, o["default"])(n.data, a.showYOnX)), (0, c.createPolynomial)(t, n) && a.regressionPoints.push((0, s["default"])(n.data, a.showYOnX))
                }, r.draw = function() {
                    var e, t, r, n, a, i, o, s = this._config,
                        c = this.getFromEnv("xAxis"),
                        u = this.getFromEnv("yAxis"),
                        d = this.getFromEnv("chart"),
                        f = d.getChildren("canvas")[0].config,
                        g = this.getContainer("regressionlinecontainer"),
                        p = this.getFromEnv("animationManager"),
                        m = s.regressionPoints,
                        v = [],
                        b = [],
                        y = this.getGraphicalElement("regressionLineLinear"),
                        x = this.getGraphicalElement("regressionLinePolynomial"),
                        w = h;
                    !this.getLinkedParent().getState("visible") && (o = "disappearing"), g = this.addContainer("regressionlinecontainer", p.setAnimation({
                        el: g || "group",
                        attr: {
                            name: "regressionlinecontainer",
                            "clip-rect": [f.canvasLeft, f.canvasTop, f.canvasWidth, f.canvasHeight]
                        },
                        container: d.getChildContainer("abovePlotGroup"),
                        component: this,
                        label: "group"
                    }));
                    for (var C = 0; C < m.length; C++) {
                        var _ = l.BLANKSTRING;
                        if (v = m[C][0], e = (b = m[C][1]).length, 0 === v.length && 0 === b.length) n = !0, _ += "M0,0";
                        else if (0 !== v.length && 0 === b.length) n = !1, _ += "M0,0";
                        else if (0 === v.length) n = !0, _ += "M" + c.getPixel(b[0].x) + "," + u.getPixel(b[0].y), _ += "L" + c.getPixel(b[e - 1].x) + "," + u.getPixel(b[e - 1].y);
                        else {
                            n = !1, _ += "M" + c.getPixel(b[0].x) + "," + u.getPixel(b[0].y), _ += " R" + c.getPixel(b[1].x) + "," + u.getPixel(b[1].y);
                            for (var k = 2; k < e; k++) _ += " " + c.getPixel(b[k].x) + "," + u.getPixel(b[k].y)
                        }
                        n ? a = {
                            opacity: Number(s.regressionLineAlpha) / 100,
                            stroke: s.regressionLineColor,
                            "stroke-width": s.regressionLineThickness,
                            path: _
                        } : i = {
                            opacity: Number((0, l.pluck)(s.polynomialRegressionLineAlpha, s.regressionLineAlpha)) / 100,
                            stroke: (0, l.pluck)(s.polynomialRegressionLineColor, s.regressionLineColor),
                            "stroke-width": (0, l.pluck)(s.polynomialRegressionLineThickness, s.regressionLineThickness),
                            path: _
                        }
                    }
                    "disappearing" !== o && (y && y.show(), x && x.show()), t = p.setAnimation({
                        el: y || "path",
                        container: g,
                        component: this,
                        doNotRemove: !0,
                        attr: !("disappearing" === o) && a,
                        callback: "disappearing" === o && w,
                        label: "path"
                    }), y || this.addGraphicalElement("regressionLineLinear", t), r = p.setAnimation({
                        el: x || "path",
                        container: g,
                        component: this,
                        doNotRemove: !0,
                        attr: !("disappearing" === o) && i,
                        callback: "disappearing" === o && w,
                        label: "path"
                    }), x || this.addGraphicalElement("regressionLinePolynomial", r)
                }, t
            }(i.ComponentInterface);
            t["default"] = f
        }, function(e, t, r) {
            "use strict";

            function n(e, t, r) {
                return parseFloat(e[r]) - parseFloat(t[r])
            }

            function a(e, t) {
                return n(e, t, "x")
            }

            function i(e, t) {
                return n(e, t, "y")
            }
            t.__esModule = !0, t["default"] = function(e, t) {
                if (Number(t)) return function(e) {
                    e.sort(a);
                    for (var t, r, n, i, o = [], s = [], l = 0, c = 0, u = 0, d = 0, h = e.length, f = [], g = 0; g < e.length; g++) n = Number(e[g].x), i = Number(e[g].y), isNaN(n) || isNaN(i) || (o.push(n), s.push(i));
                    h = o.length;
                    for (var p = 0; p < h; p++) l += o[p], c += s[p];
                    l /= h, c /= h;
                    for (var m = 0; m < h; m++) u += (o[m] - l) * (s[m] - c), d += (o[m] - l) * (o[m] - l);
                    if (0 === d) return [
                        [],
                        []
                    ];
                    return r = c - (t = u / d) * l, f.push({
                        x: o[0],
                        y: t * o[0] + r
                    }), f.push({
                        x: o[h - 1],
                        y: t * o[h - 1] + r
                    }), [
                        [], f
                    ]
                }(e);
                return function(e) {
                    e.sort(i);
                    for (var t, r, n, a, o = [], s = [], l = 0, c = 0, u = 0, d = 0, h = e.length, f = [], g = 0; g < e.length; g++) n = Number(e[g].x), a = Number(e[g].y), isNaN(n) || isNaN(a) || (o.push(n), s.push(a));
                    h = o.length;
                    for (var p = 0; p < h; p++) l += o[p], c += s[p];
                    l /= h, c /= h;
                    for (var m = 0; m < h; m++) u += (o[m] - l) * (s[m] - c), d += (s[m] - c) * (s[m] - c);
                    if (0 === d) return [
                        [],
                        []
                    ];
                    return r = l - (t = u / d) * c, (f = []).push({
                        x: t * s[0] + r,
                        y: s[0]
                    }), f.push({
                        x: t * s[h - 1] + r,
                        y: s[h - 1]
                    }), [
                        [], f
                    ]
                }(e)
            }
        }, function(e, t, r) {
            "use strict";

            function n(e, t) {
                return parseFloat(e.x) - parseFloat(t.x)
            }
            t.__esModule = !0, t["default"] = function(e, t) {
                if (Number(t)) return function(e) {
                    e.sort(n);
                    for (var t, r, a, i, o, s, l, c, u, d, h = [], f = [], g = 0, p = 0, m = e.length, v = 0, b = 0, y = 0, x = 0, w = 0, C = [], _ = 0; _ < e.length; _++) u = Number(e[_].x), d = Number(e[_].y), isNaN(u) || isNaN(d) || (h.push(u), f.push(d));
                    m = h.length;
                    for (var k = 0; k < m; k++) g += f[k], p += h[k] * f[k], w += h[k] * h[k] * f[k], v += h[k], b += h[k] * h[k], x += h[k] * h[k] * h[k], y += h[k] * h[k] * h[k] * h[k];
                    if (r = p - v * g / m, i = w - b * g / m, (t = b - v * v / m) * (o = y - b * b / m) - (a = x - b * v / m) * a == 0 || 0 === m) return [e, []];
                    c = g / m - (l = (r * o - i * a) / (t * o - a * a)) * (v / m) - (s = (i * t - r * a) / (t * o - a * a)) * (b / m);
                    for (var S = 0; S < m; S++) C.push({
                        x: h[S],
                        y: s * h[S] * h[S] + l * h[S] + c
                    });
                    return [e, C]
                }(e);
                return function(e) {
                    e.sort(n);
                    for (var t, r, a, i, o, s, l, c, u, d, h = [], f = [], g = 0, p = 0, m = e.length, v = 0, b = 0, y = 0, x = 0, w = 0, C = [], _ = 0; _ < e.length; _++) u = Number(e[_].x), d = Number(e[_].y), isNaN(u) || isNaN(d) || (h.push(u), f.push(d));
                    m = h.length;
                    for (var k = 0; k < m; k++) g += h[k], p += f[k] * h[k], w += f[k] * f[k] * h[k], v += f[k], b += f[k] * f[k], x += f[k] * f[k] * f[k], y += f[k] * f[k] * f[k] * f[k];
                    if (r = p - v * g / m, i = w - b * g / m, (t = b - v * v / m) * (o = y - b * b / m) - (a = x - b * v / m) * a == 0 || 0 === m) return [e, []];
                    c = g / m - (l = (r * o - i * a) / (t * o - a * a)) * (v / m) - (s = (i * t - r * a) / (t * o - a * a)) * (b / m);
                    for (var S = 0; S < m; S++) C.push({
                        x: s * f[S] * f[S] + l * f[S] + c,
                        y: f[S]
                    });
                    return [e, C]
                }(e)
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.createPolynomial = function(e, t) {
                var r = Number(e.showpolynomialregressionline) || 0;
                return isNaN(t.showpolynomialregressionline) && r || Number(t.showpolynomialregressionline)
            }, t.createLinear = function(e, t) {
                var r = Number(e.showregressionline) || 0;
                return isNaN(t.showregressionline) && r || Number(t.showregressionline)
            }, t.isInArray = function(e, t) {
                return t.indexOf(e.toLowerCase()) > -1
            }, t.hasRegressionLine = function(e, t) {
                return t.showregressionline || e.showregressionline || t.showpolynomialregressionline || e.showpolynomialregressionline
            }, t.isValidDataset = void 0;
            var n = ["scatter", "bubble", "errorScatter", "selectScatter"];
            t.isValidDataset = function(e) {
                return function(e) {
                    return "dataset" === e.getType()
                }(e) && n.indexOf(e.getName()) >= 0
            }
        }, function(e, t, r) {
            "use strict";

            function n() {
                var e, t = this.getFromEnv("chart").getChildren("canvas")[0],
                    r = 0,
                    n = [],
                    a = [];
                for (n.push(t.config.canvasLeft), n.push(t.config.canvasTop), n.push(0), n.push(t.config.canvasHeight), e = n.length; r < e;) a.push(n[r]), r++;
                return a[2] = t.config.canvasWidth, [{
                    initialAttr: function() {
                        return {
                            "clip-rect": n
                        }
                    },
                    finalAttr: function() {
                        return {
                            "clip-rect": a
                        }
                    },
                    effect: "linear",
                    slot: "plot"
                }]
            }
            t.__esModule = !0, t["default"] = void 0;
            var a = {
                "initial.extension.regression": function() {
                    return {
                        "path.appearing": null,
                        "path.updating": null,
                        "path.disappearing": null,
                        "group.appearing": n,
                        "*": null
                    }
                }
            };
            t["default"] = a
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = r(193),
                i = n(r(300)),
                o = n(r(301)),
                s = n(r(319)),
                l = n(r(320)),
                c = n(r(321)),
                u = n(r(322)),
                d = n(r(323)),
                h = n(r(324)),
                f = n(r(325)),
                g = n(r(326)),
                p = r(201),
                m = n(r(327)),
                v = {
                    DragZoomIn: o["default"],
                    ZoomResetButton: s["default"],
                    ZoomOutButton: l["default"],
                    DbTapZoom: u["default"],
                    DragPin: d["default"],
                    ZoomInButton: c["default"],
                    DragPan: h["default"],
                    PinchZoom: f["default"],
                    SwipeGesture: g["default"]
                };
            var b = {
                extension: function(e) {
                    var t, r;
                    (0, m["default"])((0, p.getDep)("redraphael", "plugin")), e.addEventListener("instantiated", (function(e) {
                        var n, o = e.sender;
                        "canvas" === o.getType() && o.registerFactory("inputManager", (function(e) {
                            if (r = e.getFromEnv("chart"), t = r.constructor.includeInputOptions && r.constructor.includeInputOptions()) {
                                (0, a.componentFactory)(e, i["default"], "inputManager", 1, [{}]), n = e.getChildren("inputManager")[0];
                                for (var o = 0, s = t && t.length; o < s; o++)(0, a.componentFactory)(n, v[t[o]], t[o], 1, [{}])
                            }
                        }))
                    }))
                },
                name: "inputAdapter",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = b
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(208),
                o = r(193),
                s = function(e, t, r, n) {
                    var a, i;
                    (i = n[e]) && (i.some((function(e, n) {
                        return e.callback === t && e.component === r && (a = n, !0)
                    })), a !== o.UNDEF && i.splice(a, 1))
                },
                l = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.configure = function() {
                        var e = this.getFromEnv("chart"),
                            t = e.getInputConfigurations;
                        this.addToEnv("canvas", this.getLinkedParent()), this.addToEnv("inputOptions", t && t.call(e)), this.config = {
                            controlObj: {},
                            dependancyObj: {}
                        }
                    }, r.addEventToChild = function() {
                        var e = this,
                            t = e.getChildren(),
                            r = ["zoomin", "zoomout", "dragzoomenabled", "dragzoomdisabled", "pinenabled", "pindisabled", "panenabled", "pandisabled"],
                            n = function(n) {
                                r.forEach((function(r) {
                                    e.addExtEventListener(r, e.manageEvents.bind(e), t[n][0])
                                }))
                            };
                        for (var a in t) n(a)
                    }, r.manageEvents = function(e) {
                        var t = this.config.dependancyObj,
                            r = e.type;
                        t[r] && t[r].forEach((function(t) {
                            t.component !== e.sender && t.callback.call(t.component, e)
                        }))
                    }, r.fetchZoomableAxes = function() {
                        if (!this.config.axesObArr) {
                            var e = this.config.axesObArr = [];
                            this.getLinkedParent().getAxes().forEach((function(t) {
                                (t.config.zoomable || t.config.pannable) && e.push({
                                    axis: t.axis,
                                    stack: [],
                                    isY: t.isY
                                })
                            })), this.addToEnv("axesObArr", e)
                        }
                    }, r.draw = function() {
                        this.fetchZoomableAxes(), this.addEventToChild()
                    }, r.getControl = function(e, t) {
                        var r, n = this.config.controlObj,
                            a = this.getLinkedParent();
                        t || e.forEach((function(e) {
                            (r = e.nativeInteraction) instanceof Array ? r.forEach((function(t) {
                                (n[t] || (n[t] = [])).push({
                                    callback: e.callback,
                                    component: e.component
                                }), e.component.addExtEventListener(t, e.callback, a)
                            })) : ((n[r] || (n[r] = [])).push({
                                callback: e.callback,
                                component: e.component
                            }), e.component.addExtEventListener(r, e.callback, a))
                        }))
                    }, r.releaseControl = function(e) {
                        var t, r = this,
                            n = r.getLinkedParent();
                        e.forEach((function(e) {
                            (t = e.nativeInteraction) instanceof Array ? t.forEach((function(t) {
                                e.component.removeExtEventListener(t, e.callback, n), s(t, e.callback, e.component, r.config.controlObj)
                            })) : (e.component.removeExtEventListener(t, e.callback, n), s(t, e.callback, e.component, r.config.controlObj))
                        }))
                    }, r._updateControlObj = function(e, t) {
                        var r, n;
                        (n = this.config.controlObj[e]) && (n.some((function(e, n) {
                            return e.callback === t && (r = n, !0)
                        })), r !== o.UNDEF && n.splice(r, 1))
                    }, r.registerDependancy = function(e) {
                        var t, r = this.config.dependancyObj;
                        e.forEach((function(e) {
                            (t = e.derivedInteraction) instanceof Array ? t.forEach((function(t) {
                                (r[t] || (r[t] = [])).push({
                                    callback: e.callback,
                                    component: e.component,
                                    derivedInteraction: t
                                })
                            })) : (r[t] || (r[t] = [])).push(e)
                        }))
                    }, r.removeDependancy = function(e) {
                        var t, r = this;
                        e.forEach((function(e) {
                            (t = e.derivedInteraction) instanceof Array ? t.forEach((function(t) {
                                s(t, e.callback, e.component, r.config.dependancyObj)
                            })) : s(t, e.callback, e.component, r.config.dependancyObj)
                        }))
                    }, r.zoomOut = function() {
                        var e = this.getChildren("ZoomOutButton");
                        e && e[0].zoomOut()
                    }, r.zoomTo = function(e, t) {
                        var r = this.getChildren("DragZoomIn");
                        r && r[0].zoomTo(e, t)
                    }, r.resetChart = function() {
                        var e = this.getChildren("ZoomResetButton");
                        e && e[0].zoomOut()
                    }, r.setZoomMode = function(e) {
                        var t = this.getChildren("DragPin");
                        t && (e ? t[0].disable() : t[0].enable())
                    }, t
                }(i.ComponentInterface);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = n(r(302)),
                s = r(193),
                l = Math.min,
                c = Math.abs,
                u = function(e) {
                    function t() {
                        var r;
                        r = e.call(this) || this;
                        var n = (0, a["default"])(r);
                        return n.controlArr = [{
                            nativeInteraction: ["fc-dragstart"],
                            callback: n.dragStart.bind(n),
                            component: n
                        }, {
                            nativeInteraction: ["fc-dragmove"],
                            callback: n.onDrag.bind(n),
                            component: n
                        }, {
                            nativeInteraction: ["fc-dragend"],
                            callback: n.onDragEnd.bind(n),
                            component: n
                        }], s.isFirefox && n.controlArr.push({
                            nativeInteraction: ["fc-mousedown"],
                            callback: t.mousedown,
                            component: n
                        }), n._toggle = function() {
                            n._checkStackLen() && n.toggle()
                        }, r
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "dragZoomIn"
                    }, r.configure = function() {
                        e.prototype.configure.call(this);
                        var t = this.config;
                        t.boxStyle = t.boxStyle || {
                            "stroke-width": 1,
                            stroke: "red",
                            fill: "#00FF00",
                            opacity: .2,
                            cursor: "ne-resize"
                        }, !this.config.skipGraphics && this.setLinkedItem("button", this.createButton({
                            icon: "zoomModeIcon",
                            tooltext: this.config.tooltext,
                            handlers: {
                                click: this._toggle
                            },
                            state: "activated"
                        })), this.enable("pressed"), this.getLinkedParent().registerDependancy([{
                            derivedInteraction: ["pinenabled", "pindisabled", "panenabled", "pandisabled"],
                            callback: this.dependancyFn,
                            component: this
                        }])
                    }, t.mousedown = function(e) {
                        e && e.preventDefault()
                    }, r.setControl = function() {
                        var e = this.getLinkedParent(),
                            t = this.getLinkedItem("button"),
                            r = this.controlArr;
                        e.releaseControl(r), this.isEnabled() && e.getControl(r), t && t.setCurrentState(this.isEnabled() ? this.config.state : "disabled")
                    }, r.getCoordinates = function(e) {
                        var t = this.getFromEnv("chart"),
                            r = (0, s.getMouseCoordinate)(t.getFromEnv("chart-container"), e, t);
                        return {
                            x: r.chartX,
                            y: r.chartY
                        }
                    }, r.inCanvasLimit = function(e) {
                        var t = this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs,
                            r = t.x,
                            n = t.y,
                            a = e.x - t.x,
                            i = e.y - t.y,
                            o = t.width - a,
                            s = t.height - i;
                        return e.x > r && e.y > n && e.width < o && e.height < s
                    }, r.drawBox = function() {
                        var e, t = this.config,
                            r = this.getGraphicalElement("box"),
                            n = this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs;
                        r || (r = this.addGraphicalElement("box", this.getFromEnv("paper").rect())).attr(t.boxStyle), e = function(e, t, r, n) {
                            t.x < r.x && (t.x = r.x), t.y < r.y && (t.y = r.y), t.x > r.width + r.x && (t.x = r.width + r.x), t.y > r.height + r.y && (t.y = r.height + r.y);
                            var a, i = t.x - e.x,
                                o = e.y - t.y;
                            return i > 0 && o > 0 ? a = n ? "ne-resize" : "e-resize" : i < 0 && o > 0 ? a = n ? "nw-resize" : "w-resize" : i < 0 && o < 0 ? a = n ? "sw-resize" : "w-resize" : i > 0 && o < 0 && (a = n ? "se-resize" : "e-resize"), {
                                x: l(e.x, t.x),
                                y: l(e.y, t.y),
                                width: i = c(i),
                                height: o = c(o),
                                cursor: a
                            }
                        }(this.dragBoxConfig.startPos, this.dragBoxConfig.currentPos, n, this.getFromEnv("chart").isXY), t.scaleX || (e.x = n.x, e.width = n.width), t.scaleY || (e.y = n.y, e.height = n.height), r.attr(e), r.show()
                    }, r.onDragEnd = function(e) {
                        var t, r, n, a, i = this.config,
                            o = this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs,
                            s = this.getGraphicalElement("box") || {},
                            l = s.attrs;
                        l && i.dragmove && (i.dragmove = !1, s.hide(), i.startPosX = t = (l.x - o.x) / o.width, i.endPosX = r = (l.x + l.width - o.x) / o.width, i.startPosY = n = (l.y - o.y) / o.height, i.endPosY = a = (l.y + l.height - o.y) / o.height, r - t < .01 || a - n < .01 || this.zoomTo(void 0, void 0, e))
                    }, r.zoomTo = function(e, t, r) {
                        var n, a, i, o, s, l, c, u, d = this,
                            h = d.config,
                            f = !1,
                            g = {},
                            p = h.catZoomLimit - 1;
                        d.getFromEnv("axesObArr").forEach((function(m) {
                            var v = m.axis,
                                b = v.getFromEnv("chart"),
                                y = b.getChildren("scrollBar") && b.getChildren("scrollBar")[0],
                                x = v.getVisibleConfig(),
                                w = m.isY ? x.maxValue : x.minValue,
                                C = x.maxValue - x.minValue;
                            m.isY ? (o = n = void 0 === e ? w - C * h.endPosY : e, l = a = void 0 === t ? w - h.startPosY * C : t) : (s = n = void 0 === e ? w + h.startPosX * C : e, c = a = void 0 === t ? w + C * h.endPosX : t, g = d.constructor._getZoomInfo(s, c, v)), p && !v.config.isVertical && Math.round(a - n) < p && (n = Math.round(n), a = n + p), (C > 1 || a - n > 1) && (h.dragendFn && "function" == typeof h.dragendFn && h.dragendFn(r, n, a), u = v.setVisibleConfig(n, a), b.setScrollBarDimension && b.setScrollBarDimension(), y && !y.getState("removed") && y.asyncDraw(), f = f || u, m.stack.push(x), i = m.stack.length + 1)
                        })), f && d._raiseZoomEvents("zoomin", "zoomedin", Object.assign(g, {
                            level: i,
                            startX: s,
                            endX: c,
                            startY: o,
                            endY: l
                        }, {
                            originalEvent: r && r.originalEvent
                        }))
                    }, r.onDrag = function(e) {
                        var t = this.config,
                            r = this.getCoordinates(e.originalEvent);
                        t.dragmove = !0, this.getFromEnv("animationManager").setAnimationState("drag"), t.dragmoveFn && "function" == typeof t.dragmoveFn && t.dragmoveFn(e), this.dragBoxConfig.currentPos = r, this.drawBox()
                    }, r.dragStart = function(e) {
                        var t = this.config,
                            r = this.getCoordinates(e.originalEvent);
                        t.dragstartFn && "function" == typeof t.dragstartFn && t.dragstartFn(e), this.dragBoxConfig = {
                            startPos: r,
                            currentPos: r
                        }
                    }, r.enable = function() {
                        !0 !== this.config.enabled && (this.config.enabled = !0, this.config.state = "pressed", this.fireEvent("dragzoomenabled"), this.setControl())
                    }, r.disable = function() {
                        !1 !== this.config.enabled && (this.config.enabled = !1, this.config.state = "activated", this.fireEvent("dragzoomdisabled"), this.setControl())
                    }, r.dependancyFn = function(e) {
                        "pinenabled" === e.type || "panenabled" === e.type ? this.disable() : "pindisabled" !== e.type && "pandisabled" !== e.type || this.enable()
                    }, t
                }(o["default"]);
            t["default"] = u
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(208),
                o = r(303),
                s = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.configure = function() {
                        var e = this.config = {},
                            t = this.getFromEnv("inputOptions") || {};
                        Object.assign(e, t[this.getName()])
                    }, r._checkStackLen = function() {
                        var e = this.getFromEnv("axesObArr"),
                            t = 0;
                        return e && e.forEach((function(e) {
                            t += e.stack.length
                        })), t
                    }, t._getZoomInfo = function(e, t, r) {
                        var n = {
                            startIndex: Math.ceil(e),
                            endIndex: Math.floor(t)
                        };
                        return r.getLabel && (n.startLabel = r.getLabel(n.startIndex).label, n.endLabel = r.getLabel(n.endIndex).label), n
                    }, r._raiseZoomEvents = function(e, t, r, n) {
                        var a = this.getFromEnv("chart");
                        e && this.fireEvent(e), t && a.fireChartInstanceEvent(t, r, n), t && a.fireChartInstanceEvent("zoomed", r, n)
                    }, r.getType = function() {
                        return "canvasInput"
                    }, r.enable = function(e) {
                        !0 !== this.config.enabled && (this.config.enabled = !0, e && this.fireEvent(e), this.setControl())
                    }, r.disable = function(e) {
                        !1 !== this.config.enabled && (this.config.enabled = !1, e && this.fireEvent(e), this.setControl())
                    }, r.toggle = function(e) {
                        this.isEnabled() ? this.disable(e) : this.enable(e)
                    }, r.isEnabled = function() {
                        return this.config.enabled
                    }, r.setControl = function() {
                        var e = this.getLinkedItem("button");
                        e && e.setCurrentState(this.isEnabled() ? this.config.state : "disabled")
                    }, r.createButton = function(e) {
                        var t, r = this.getLinkedParent().getFromEnv("chart");
                        for (var n in (t = r.getFromEnv("toolbar").attachChild(o.Tool, "tool", this.getId())).configure(Object.assign({}, r.getFromEnv("tool-config"), {
                                name: e.icon,
                                tooltext: e.tooltext
                            })), e.handlers) e.handlers.hasOwnProperty(n) && t.addEventListener("fc-" + n, e.handlers[n]);
                        return t.setLinkedItem("input", this), t
                    }, t
                }(i.ComponentInterface);
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0;
            var a = r(304);
            t.ScrollBar = a.ScrollBar, t.Checkbox = a.Checkbox, t.Hamburger = a.Hamburger, t.Label = a.Label, t.MenuItemContainer = a.MenuItemContainer, t.Tool = a.Tool;
            var i = n(r(318));
            t.ToolBar = i["default"]
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0;
            var a = n(r(305));
            t.ScrollBar = a["default"];
            var i = n(r(312));
            t.Checkbox = i["default"];
            var o = n(r(313));
            t.Hamburger = o["default"];
            var s = n(r(316));
            t.Label = s["default"];
            var l = n(r(317));
            t.Separator = l["default"];
            var c = n(r(314));
            t.MenuItemContainer = c["default"];
            var u = n(r(307));
            t.Tool = u["default"]
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(193),
                o = n(r(306)),
                s = n(r(307)),
                l = n(r(309)),
                c = n(r(310)),
                u = n(r(311)),
                d = r(308),
                h = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this), this.config.scale = 1
                    }, r.configureAttributes = function(t) {
                        void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                        var r = this.config,
                            n = this.getFromEnv("chart-attrib");
                        r.conf = {}, r.isOpposite = t && !t.isHorizontal ? (0, o["default"])(n.scrollposition, "right") : (0, o["default"])(n.scrollposition, "top"), r.color = n.scrollcolor && (0, i.convertColor)(n.scrollcolor), r.padding = (0, i.pluckNumber)(n.scrollpadding, 0), r.height = (0, i.pluckNumber)(n.scrollheight, 12), r.width = (0, i.pluckNumber)(n.scrollwidth, 12), r.displayFlat = (0, i.pluckNumber)(n.flatscrollbars, 0), r.scrollBar3DLighting = (0, i.pluckNumber)(n.scrollbar3dlighting, 1), r.startPercent = Math.min(1, Math.max(0, parseFloat(n.scrolltoend) || 0)), r.showButtons = !!(0, i.pluckNumber)(n.scrollshowbuttons, 1), r.buttonPadding = (0, i.pluckNumber)(n.scrollbtnpadding, 0), r.style = t.style, r.drawStripes = t.drawStripes, r.restrictScrollAnchor = (0, i.pluckNumber)(t.restrictScrollAnchor, 1), this.setConfiguaration(t), r.evt = {
                            tooltext: void 0,
                            click: i.stubFN,
                            hover: [i.stubFN, i.stubFN]
                        }, this.createScrollItems()
                    }, r.createScrollItems = function() {
                        var e = this.config,
                            t = e.style || {},
                            r = this.getChildren("scrollTrack") && this.getChildren("scrollTrack")[0],
                            n = this.getChildren("scrollAnchor") && this.getChildren("scrollAnchor")[0],
                            a = this.getChildren("scrollButtons") && this.getChildren("scrollButtons")[0],
                            i = this.getChildren("scrollButtons") && this.getChildren("scrollButtons")[0];
                        r || ((r = this.attachChild(l["default"], "scrollTrack")).configure({
                            style: {
                                track: t.track
                            },
                            color: e.color,
                            displayFlat: e.displayFlat,
                            isHorizontal: e.isHorizontal
                        }), r.attachEventHandlers()), n || ((n = this.attachChild(c["default"], "scrollAnchor")).configure({
                            style: {
                                scroller: t.scroller,
                                grip: t.grip
                            },
                            drawStripes: e.drawStripes,
                            color: e.color,
                            displayFlat: e.displayFlat,
                            isHorizontal: e.isHorizontal
                        }), n.attachEventHandlers()), !a && e.showButtons && ((a = this.attachChild(u["default"], "scrollStartButton")).configure({
                            type: "start",
                            color: e.color,
                            style: {
                                button: t.button,
                                arrow: t.arrow
                            }
                        }), a.attachEventHandlers()), !i && e.showButtons && ((i = this.attachChild(u["default"], "scrollEndButton")).configure({
                            type: "end",
                            color: e.color,
                            style: {
                                button: t.button,
                                arrow: t.arrow
                            }
                        }), i.attachEventHandlers())
                    }, r.getName = function() {
                        return "scrollbar"
                    }, r.getType = function() {
                        return "scrollbar"
                    }, r.setConfiguaration = function(e) {
                        var t = this.config;
                        t.color || (t.color = "#" + this.getFromEnv("chart").getFromEnv("color-manager").getColor("altHGridColor")), (0, d.mergeConf)(e, t)
                    }, r.getLogicalSpace = function() {
                        var t = this.config,
                            r = t.conf,
                            n = {};
                        return (0, d.mergeConf)(t, n), (0, d.mergeConf)(n, r), e.prototype.getLogicalSpace.call(this)
                    }, r.setDimension = function(t) {
                        e.prototype.setDimension.call(this, t);
                        var r = this.getLinkedParent(),
                            n = r.getPosition && r.getPosition() || {},
                            a = this.getChildren("scrollTrack")[0].config;
                        a.transLateX = n.x || 0, a.transLateY = n.y || 0
                    }, r.draw = function() {
                        var e = this.config,
                            t = {};
                        e.conf.isHorizontal ? delete t.width : delete t.height, (0, d.mergeConf)(t, e, !0), this.addGraphicalElement({
                            el: "group",
                            attr: {
                                name: "scrollContainer"
                            },
                            component: this,
                            container: {
                                id: "scrollbarContainer",
                                label: "scrollbar",
                                isParent: !0
                            },
                            label: "scrollbarGroup",
                            id: "scrollbarGroup"
                        })
                    }, r.attachEventHandlers = function(e) {
                        var t = this.config.evt;
                        return e && (e.scroll && "function" == typeof e.scroll && (t.scroll = e.scroll), e.scrollStart && "function" == typeof e.scrollStart && (t.scrollStart = e.scrollStart), e.scrollEnd && "function" == typeof e.scrollEnd && (t.scrollEnd = e.scrollEnd)), this
                    }, t
                }(s["default"]);
            h.registerSymbol = void 0, h._setConfiguaration = i.stubFN;
            var f = h;
            t["default"] = f
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = function(e, t) {
                return String(e).toLowerCase() === String(t).toLowerCase()
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(208),
                o = r(193),
                s = r(308),
                l = function(e) {
                    function t(t) {
                        var r;
                        return (r = e.call(this, t) || this)._listeners = {}, r
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "button"
                    }, r.getType = function() {
                        return "tool"
                    }, r.__setDefaultConfig = function() {
                        var e = this.config;
                        e.scale = 1.15, e.width = o.touchEnabled ? 20 : 15, e.height = o.touchEnabled ? 20 : 15, e.radius = o.touchEnabled ? 4 : 2, e.spacing = 2.5, e.marginTop = 2.5, e.marginLeft = 2.5, e.marginRight = 2.5, e.marginBottom = 2.5, e.fill = "ffffff", e.fillAlpha = "cccccc", e.symbolFill = "ffffff", e.stroke = "bbbbbb", e.symbolStroke = "9a9a9a", e.strokeWidth = 1, e.symbolStrokeWidth = 1, e.symbolPadding = 5, e.symbolHPadding = 5, e.symbolVPadding = 5, e.fillAlpha = 100, e.stateStyle = {}, e.text = o.BLANKSTRING, e.marginTop = e.marginLeft = e.marginRight = e.marginBottom = 2.5, e.labelFontSize = 12
                    }, r.configureAttributes = function(e) {
                        void 0 === e && (e = {});
                        var t, r, n, a = this.config,
                            i = function(e) {
                                for (var t in e)
                                    if (e.hasOwnProperty(t)) {
                                        var r = e[t];
                                        (r === o.UNDEF || !/tooltext/.test(t) && "" === r) && delete e[t]
                                    }
                                return e
                            }(e);
                        Object.assign(a, i), a.symbolName = a.name, this.setState("visible", !0 !== a.isHidden), a.marginTop = (0, o.pluckNumber)(i.marginTop, i.spacing, a.marginTop), a.marginLeft = (0, o.pluckNumber)(i.marginLeft, i.spacing, a.marginLeft), a.marginRight = (0, o.pluckNumber)(i.marginRight, i.spacing, a.marginRight), a.marginBottom = (0, o.pluckNumber)(i.marginBottom, i.spacing, a.marginBottom), a.fill = (0, o.pluck)(i.fill, a.fill), a.fillAlpha = (0, o.pluckNumber)(i.fillAlpha, a.fillAlpha), a.labelFill = (0, o.pluck)(i.labelFill, a.labelFill), a.symbolFill = (0, o.pluck)(i.symbolFill, a.symbolFill), a.hoverFill = (0, o.pluck)(i.hoverFill, a.hoverFill), a.stroke = (0, o.pluck)(i.stroke, a.stroke), a.symbolStroke = (0, o.pluck)(i.symbolStroke, a.symbolStroke), a.strokeWidth = (0, o.pluckNumber)(i.strokeWidth, a.strokeWidth), a.symbolStrokeWidth = (0, o.pluckNumber)(i.symbolStrokeWidth, a.symbolStrokeWidth), t = a.symbolPadding = (0, o.pluckNumber)(i.symbolPadding, a.symbolPadding), a.symbolHPadding = (0, o.pluckNumber)(i.symbolHPadding, t), a.symbolVPadding = (0, o.pluckNumber)(i.symbolVPadding, t), a.hAlign = (0, o.pluck)(i.hAlign, "center").toLowerCase(), a.vAlign = (0, o.pluck)(i.vAlign, "middle").toLowerCase(), a.containerInfo = i.containerInfo || {
                            id: "group",
                            label: "group",
                            isParent: !0
                        }, r = i.x, n = i.y, void 0 === r || void 0 === n ? a.spaceNotHardCoded = !0 : (a.x = r, a.y = n, a.spaceNotHardCoded = !1)
                    }, r.setDimension = function(e) {
                        void 0 === e && (e = {});
                        var t = this.config;
                        e.x !== o.UNDEF && (t.x = e.x), e.y !== o.UNDEF && (t.y = e.y), e.width !== o.UNDEF && (t.width = t.width && t.width > e.width ? t.width : e.width), e.height !== o.UNDEF && (t.height = t.height && t.height > e.height ? t.height : e.height)
                    }, r.getAlignment = function() {
                        return {
                            hAlign: this.config.hAlign,
                            vAlign: this.config.vAlign
                        }
                    }, r.getLogicalSpace = function() {
                        var e = this.config,
                            t = e.width,
                            r = e.height,
                            n = e.marginTop,
                            a = e.marginLeft,
                            i = e.marginRight,
                            o = e.marginBottom,
                            s = e.scale;
                        return t *= s, r *= s, (this.config.skipGraphics || this.getState("removed")) && (t = r = o = a = i = n = 0), {
                            width: t,
                            height: r,
                            marginTop: n,
                            marginLeft: a,
                            marginRight: i,
                            marginBottom: o
                        }
                    }, r.setCurrentState = function(e) {
                        this.config.state = e, this.asyncDraw()
                    }, r.getCurrentState = function() {
                        return this.config.state
                    }, r.draw = function() {
                        var e, t, r, n = this.config,
                            a = n,
                            i = n.text,
                            l = this.getFromEnv("tool-config");
                        n.skipGraphics || (t = {
                            width: n.width * n.scale,
                            height: n.height * n.scale,
                            r: n.radius * n.scale,
                            verticalPadding: n.symbolVPadding * n.scale,
                            horizontalPadding: n.symbolHPadding
                        }, e = (0, o.extend2)({}, n.stateStyle[n.state] || s.preConfig[n.state] || {}), "activated" !== n.state && "disabled" !== n.state && "pressed" !== n.state || (e.config.normal.fill = (0, o.convertColor)((0, o.pluck)(l.fill, e.config.normal.fill)), e.config.normal["symbol-stroke"] = (0, o.convertColor)((0, o.pluck)(l.symbolStroke, e.config.normal["symbol-stroke"])), e.config.normal.symbolFill = (0, o.convertColor)((0, o.pluck)(l.symbolFill, e.config.normal.symbolFill)), e.config.normal.stroke = (0, o.convertColor)((0, o.pluck)(l.stroke, e.config.normal.stroke)), e.config.normal.symbolStroke = (0, o.convertColor)((0, o.pluck)(l.symbolStroke, e.config.normal.symbolStroke)), e.config.hover.fill = (0, o.convertColor)((0, o.pluck)(l.hoverFill, e.config.hover.fill))), (r = (0, o.extend2)({
                            button: [n.x, n.y, i, n.symbolName, t, n.labelFontSize, n.labelFontFamily],
                            "button-label": i,
                            "button-padding": [n.symbolHPadding, n.symbolVPadding * n.scale],
                            "button-repaint": [a.x, a.y, n.width * n.scale, n.height * n.scale, n.radius * n.scale],
                            fill: (0, o.convertColor)(n.fill),
                            labelFill: (0, o.convertColor)(n.labelFill),
                            symbolFill: (0, o.convertColor)(n.symbolFill),
                            hoverFill: n.hoverFill,
                            stroke: (0, o.convertColor)(n.stroke),
                            "symbol-stroke": (0, o.convertColor)(n.symbolStroke || n.stroke),
                            "stroke-width": n.strokeWidth,
                            "symbol-stroke-width": (0, o.pluckNumber)(n.symbolStrokeWidth, n.strokeWidth)
                        }, e)).fill = (0, o.convertColor)((0, o.pluck)(n.fill, e.fill)), !n.isHidden && this.addGraphicalElement({
                            el: "button",
                            attr: r,
                            css: n.btnTextStyle,
                            component: this,
                            container: n.containerInfo,
                            label: "button",
                            id: "button",
                            tooltext: n.tooltext
                        }))
                    }, r.hide = function() {
                        this.config.isHidden = !0, this.setState("visible", !1), this.asyncDraw()
                    }, r.show = function() {
                        this.config.isHidden = !1, this.setState("visible", !0), this.asyncDraw()
                    }, t
                }(i.SmartRenderer);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.getEventHandlersFor = function(e, t) {
                var r = function() {
                    a["default"].listen(t, "mousemove", (function(e) {
                        e.originalEvent.stopPropagation()
                    }))
                };
                switch (e) {
                    case "click":
                        return function(e) {
                            a["default"].listen(t, "click", (function(t) {
                                t.target && t.target.parentNode && e.call(t.target)
                            })), r()
                        };
                    case "hover":
                        return function(e, n) {
                            a["default"].listen(t, "pointerhover", (function(t) {
                                t.target && t.target.parentNode && ("start" === t.state ? e : n).call(t.target)
                            })), r()
                        }
                }
            }, t.mergeConf = function(e, t, r) {
                var n, a;
                for (n in e)
                    if ((a = e[n]) !== o.UNDEF && null !== a)
                        if (r) {
                            if (t[n]) continue;
                            t[n] = a
                        } else t[n] = a
            }, t.bottomPath = function(e, t, r, n, a) {
                var i = e,
                    o = t,
                    s = n / 2,
                    l = Math.round(a / 4 + 1),
                    c = o + l + 3;
                return ["M", i - s, c, "L", i + s, c]
            }, t.RSymbolFns = t.defaultTextStyle = t.SymbolStore = t.preConfig = t.DEFAULT_TIMEOUT = t.CLICK = t.HOVER = void 0;
            var a = n(r(195)),
                i = r(201),
                o = r(193),
                s = {
                    activated: {
                        config: {
                            hover: {
                                fill: "#ffffff",
                                labelFill: "#ffffff",
                                symbolFill: "#ffffff",
                                hoverFill: "#ffffff",
                                "fill-symbol": "#ffffff",
                                "stroke-width": 1,
                                stroke: "#aaaaaa",
                                "symbol-stroke": "#aaaaaa",
                                cursor: "pointer"
                            },
                            normal: {
                                fill: "#ffffff",
                                labelFill: "#ffffff",
                                symbolFill: "#ffffff",
                                hoverFill: "#ffffff",
                                "fill-symbol": "#ffffff",
                                stroke: "#c2c2c2",
                                "symbol-stroke": "#c2c2c2",
                                "stroke-width": 1,
                                cursor: "pointer"
                            },
                            disable: {
                                fill: "#ffffff",
                                labelFill: "#ffffff",
                                symbolFill: "#ffffff",
                                hoverFill: "#ffffff",
                                "fill-symbol": "#ffffff",
                                "stroke-width": 1,
                                stroke: "#e3e3e3",
                                "symbol-stroke": "#e3e3e3",
                                "stroke-opacity": 1,
                                cursor: "pointer"
                            },
                            pressed: {
                                fill: "#efefef",
                                labelFill: "#efefef",
                                symbolFill: "#efefef",
                                hoverFill: "#efefef",
                                "fill-symbol": "#efefef",
                                "stroke-width": 1,
                                stroke: "#c2c2c2",
                                "symbol-stroke": "#c2c2c2",
                                cursor: "pointer"
                            }
                        },
                        "button-disabled": !1,
                        fill: "#ffffff",
                        labelFill: "#ffffff",
                        symbolFill: "#ffffff",
                        hoverFill: "#ffffff",
                        stroke: "#c2c2c2",
                        "symbol-stroke": "#c2c2c2",
                        "stroke-opacity": 1,
                        cursor: "pointer"
                    },
                    disabled: {
                        config: {
                            hover: {
                                fill: "#ffffff",
                                labelFill: "#ffffff",
                                symbolFill: "#ffffff",
                                hoverFill: "#ffffff",
                                "fill-symbol": "#ffffff",
                                "stroke-width": 1,
                                stroke: "#e3e3e3",
                                "symbol-stroke": "#e3e3e3",
                                cursor: "default"
                            },
                            normal: {
                                fill: "#ffffff",
                                labelFill: "#ffffff",
                                symbolFill: "#ffffff",
                                hoverFill: "#ffffff",
                                "fill-symbol": "#ffffff",
                                stroke: "#e3e3e3",
                                "symbol-stroke": "#e3e3e3",
                                "stroke-width": 1,
                                cursor: "default"
                            },
                            disable: {
                                fill: "#ffffff",
                                labelFill: "#ffffff",
                                symbolFill: "#ffffff",
                                hoverFill: "#ffffff",
                                "fill-symbol": "#ffffff",
                                "stroke-width": 1,
                                stroke: "#e3e3e3",
                                "symbol-stroke": "#e3e3e3",
                                "stroke-opacity": 1,
                                cursor: "default"
                            },
                            pressed: {
                                fill: "#ffffff",
                                labelFill: "#ffffff",
                                symbolFill: "#ffffff",
                                hoverFill: "#ffffff",
                                "fill-symbol": "#ffffff",
                                "stroke-width": 1,
                                stroke: "#e3e3e3",
                                "symbol-stroke": "#e3e3e3",
                                cursor: "default"
                            }
                        },
                        fill: "#ffffff",
                        labelFill: "#ffffff",
                        symbolFill: "#ffffff",
                        hoverFill: "#ffffff",
                        "button-disabled": !1,
                        stroke: "#e3e3e3",
                        "symbol-stroke": "#e3e3e3",
                        "stroke-opacity": 1,
                        cursor: "default"
                    },
                    pressed: {
                        config: {
                            hover: {
                                fill: "#dcdcdc",
                                labelFill: "#dcdcdc",
                                symbolFill: "#ffffff",
                                hoverFill: "#dcdcdc",
                                "fill-symbol": "#ffffff",
                                "stroke-width": 1,
                                stroke: "#b7b7b7",
                                "symbol-stroke": "#b7b7b7",
                                cursor: "pointer"
                            },
                            normal: {
                                fill: "#dcdcdc",
                                labelFill: "#dcdcdc",
                                symbolFill: "#ffffff",
                                hoverFill: "#dcdcdc",
                                "fill-symbol": "#ffffff",
                                "stroke-width": 1,
                                stroke: "#b7b7b7",
                                "symbol-stroke": "#b7b7b7",
                                cursor: "pointer"
                            },
                            pressed: {
                                fill: "#dcdcdc",
                                labelFill: "#dcdcdc",
                                symbolFill: "#ffffff",
                                hoverFill: "#dcdcdc",
                                "fill-symbol": "#ffffff",
                                "stroke-width": 1,
                                stroke: "#b7b7b7",
                                "symbol-stroke": "#b7b7b7",
                                cursor: "pointer"
                            }
                        },
                        fill: "#dcdcdc",
                        labelFill: "#dcdcdc",
                        symbolFill: "#ffffff",
                        hoverFill: "#dcdcdc",
                        "fill-symbol": "#ffffff",
                        "stroke-width": 1,
                        stroke: "#b7b7b7",
                        "symbol-stroke": "#b7b7b7",
                        cursor: "pointer"
                    }
                };
            t.preConfig = s, t.CLICK = "click", t.HOVER = "hover", t.DEFAULT_TIMEOUT = 300;
            var l = (0, i.getDep)("redraphael", "plugin"),
                c = {
                    CB_NOT_CHECKED: function(e, t, r) {
                        return ["M", e - r, t - r]
                    },
                    CB_CHECKED: function(e, t, r) {
                        var n = r / 4;
                        return ["M", e - 3 * n, t, "L", e - n, t + r, e + r, t - r]
                    }
                },
                u = (l.addSymbol("Internal_CB", c.CB_NOT_CHECKED), {
                    register: function() {
                        var e, t, r, n;
                        if (1 === arguments.length) {
                            if (null === (r = arguments[0]) && r === o.UNDEF || "object" != typeof r) return;
                            n = r
                        } else {
                            if (!(arguments.length > 1)) return;
                            if (e = arguments[0], t = arguments[1], "string" != typeof e || "function" != typeof t) return;
                            (n = {})[e] = t
                        }
                        for (e in n) t = n[e], {}.hasOwnProperty.call(n, e) && l.addSymbol(e, t)
                    }
                });
            t.defaultTextStyle = {
                fill: "#555555",
                labelFill: "#555555",
                symbolFill: "#555555",
                hoverFill: "#555555",
                fontFamily: "Verdana,sans",
                fontSize: "12px",
                fontStyle: "normal",
                fontWeight: "normal",
                lineHeight: "14.399999999999999px"
            }, t.SymbolStore = u, t.RSymbolFns = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(307)),
                o = r(201),
                s = r(205),
                l = r(193),
                c = (0, o.getDep)("redraphael", "plugin"),
                u = Math.max,
                d = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this)._evtHandlers = {}, t
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.configureAttributes = function(e) {
                        void 0 === e && (e = {}), this.config.style = {
                            track: Object.assign({}, {
                                fill: e.displayFlat && e.color || [90 * e.isHorizontal, c.tintshade(e.color, .15).rgba, e.color].join("-"),
                                stroke: c.tintshade(e.color, -.75).rgba
                            }, e.style.track)
                        }
                    }, r.attachEventHandlers = function() {
                        var e, t, r, n, a, i = this,
                            o = i.config,
                            l = i.getLinkedParent(),
                            c = l.config,
                            u = function() {
                                c.scrollPosition > 1 ? (c.scrollPosition = 1, t = !1) : (c.scrollPosition < 0 || isNaN(c.scrollPosition)) && (c.scrollPosition = 0, t = !1), n.asyncDraw(), "function" == typeof c.evt.scroll && c.evt.scroll(c.scrollPosition)
                            },
                            d = function f() {
                                c.scrollPosition += .01, r >= c.scrollPosition && t && (u(), i.addJob("dragScrollAnchorRight", f, s.priorityList.draw))
                            },
                            h = function g() {
                                c.scrollPosition -= .01, r <= c.scrollPosition && t && (u(), i.addJob("dragScrollAnchorLeft", g, s.priorityList.draw))
                            };
                        i.addEventListener("fc-mousedown", i._evtHandlers.mousedown || (i._evtHandlers.mousedown = function(u) {
                            n = l.getChildren("scrollAnchor")[0], a = n.config, t = !0, e = c.isHorizontal ? u.originalEvent.layerX - (a._nodeDimensions.x + o.transLateX + a._nodeDimensions.width / 2) : u.originalEvent.layerY - (a._nodeDimensions.y + o.transLateY + a._nodeDimensions.height / 2), (r = e / a.trackLength + c.scrollPosition) >= c.scrollPosition ? i.addJob("dragScrollAnchorRight", d, s.priorityList.draw) : i.addJob("dragScrollAnchorLeft", h, s.priorityList.draw)
                        })), i.addEventListener("fc-mouseup", i._evtHandlers.mouseup || (i._evtHandlers.mouseup = function() {
                            t = !1
                        }))
                    }, r.draw = function() {
                        var e = this.config,
                            t = this.getLinkedParent().config,
                            r = (0, l.crispBound)(t.x + .5, t.y + t.padding + .5, t.width - 1, t.height - 1, t.strokeWidth);
                        this.addGraphicalElement({
                            el: "rect",
                            attr: {
                                x: r.x,
                                y: r.y,
                                width: u(r.width, 0),
                                height: u(r.height, 0),
                                r: t.roundEdges ? 2 : 0,
                                opacity: e.style.track.opacity
                            },
                            css: e.style.track,
                            container: {
                                id: "scrollbarGroup",
                                label: "scrollbarGroup",
                                isParent: !0
                            },
                            component: this,
                            label: "scrollbarTrack",
                            id: "scrollbarTrack"
                        })
                    }, t
                }(i["default"]);
            t["default"] = d
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(307)),
                o = r(193),
                s = (0, r(201).getDep)("redraphael", "plugin"),
                l = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this)._evtHandlers = {}, t
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.configureAttributes = function(e) {
                        void 0 === e && (e = {});
                        var t = this.config;
                        t.drawStripes = (0, o.pluckNumber)(e.drawStripes, 0), t._nodeDimensions = {}, t.style = {
                            scroller: Object.assign({}, {
                                fill: e.displayFlat && s.tintshade(e.color, -.6).rgba || [270 * e.isHorizontal, s.tintshade(e.color, .3).rgba + ":40", s.tintshade(e.color, -.7).rgba].join("-"),
                                stroke: s.tintshade(e.color, -.6).rgba
                            }, e.style.scroller),
                            grip: Object.assign({}, {
                                stroke: "#5F5F5F",
                                "stroke-linecap": "round",
                                "stroke-width": 2
                            }, e.style.grip)
                        }
                    }, r.attachEventHandlers = function() {
                        var e, t, r, n = this,
                            a = this.getLinkedParent().config,
                            i = a.isHorizontal;
                        n.addEventListener("fc-dragmove", n._evtHandlers.dragmove || (n._evtHandlers.dragmove = function(i) {
                            (r = e + i.originalEvent.data[t] / this.config.trackLength) >= 1 ? r = 1 : (r <= 0 || isNaN(r)) && (r = 0), a.scrollPosition = r, n.asyncDraw(), "function" == typeof a.evt.scroll && a.evt.scroll(a.scrollPosition)
                        })), n.addEventListener("fc-dragstart", n._evtHandlers.dragstart || (n._evtHandlers.dragstart = function() {
                            t = i ? 0 : 1, e = a.scrollPosition, "function" == typeof a.evt.scrollStart && a.evt.scrollStart(a.scrollPosition)
                        })), n.addEventListener("fc-dragend", n._evtHandlers.dragend || (n._evtHandlers.dragend = function() {
                            "function" == typeof a.evt.scrollEnd && a.evt.scrollEnd(a.scrollPosition)
                        }))
                    }, r.draw = function() {
                        var e, t, r = this.config,
                            n = this.getLinkedParent().config,
                            a = n.x + .5,
                            i = n.y + n.padding + .5,
                            s = n.width - 1,
                            l = n.height - 1 < 1 ? 1 : n.height - 1,
                            c = n.restrictScrollAnchor ? Math.max(n.scrollRatio, .01) : n.scrollRatio,
                            u = n.isHorizontal,
                            d = (0, o.pluckNumber)(n.scrollPosition, n.startPercent, 0),
                            h = 0,
                            f = u ? s * c : l * c;
                        d >= 1 ? d = 1 : (d <= 0 || isNaN(d)) && (d = 0), n.showButtons && (f -= 2 * (h = u ? Math.min(l, .5 * s) : Math.min(s, .5 * l)) * c), r.trackLength = e = u ? s - 2 * h - f : l - 2 * h - f, r.trackOffset = t = u ? a + h + .5 : i + h + .5, r._nodeDimensions = {
                            x: u ? t + e * d : a,
                            y: u ? i : t + e * d,
                            width: u ? f - 1 < 1 ? 1 : f - 1 : s < 1 ? 1 : s,
                            height: u ? l < 1 ? 1 : l : f - 1 < 1 ? 1 : f - 1
                        }, this.addGraphicalElement({
                            el: "rect",
                            attr: {
                                x: r._nodeDimensions.x,
                                y: r._nodeDimensions.y,
                                width: r._nodeDimensions.width,
                                height: r._nodeDimensions.height,
                                r: n.roundEdges ? 2 : 0,
                                opacity: r.style.scroller.opacity
                            },
                            css: r.style.scroller,
                            container: {
                                id: "scrollbarGroup",
                                label: "scrollbarGroup",
                                isParent: !0
                            },
                            component: this,
                            label: "scrollbarAnchor",
                            id: "scrollbarAnchor"
                        }), r.drawStripes && r._nodeDimensions.width >= 8 && this.addGraphicalElement({
                            el: "path",
                            attr: {
                                path: ["M", r._nodeDimensions.x + r._nodeDimensions.width / 2 - 3, r._nodeDimensions.y + .2 * r._nodeDimensions.height, "v", .6 * r._nodeDimensions.height, "m", 3, -.6 * r._nodeDimensions.height, "v", .6 * r._nodeDimensions.height, "m", 3, -.6 * r._nodeDimensions.height, "v", .6 * r._nodeDimensions.height],
                                opacity: r.style.grip.opacity
                            },
                            css: r.style.grip,
                            container: {
                                id: "scrollbarGroup",
                                label: "scrollbarGroup",
                                isParent: !0
                            },
                            component: this,
                            label: "scrollbarAnchorStripe",
                            id: "scrollbarAnchorStripe"
                        })
                    }, t
                }(i["default"]);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(307)),
                o = r(201),
                s = r(193),
                l = r(205),
                c = (0, o.getDep)("redraphael", "plugin"),
                u = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this)._evtHandlers = {}, t
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.configureAttributes = function(e) {
                        void 0 === e && (e = {});
                        var t = this.config;
                        t.type = e.type, t.style = {
                            button: Object.assign({}, {
                                fill: s.TRACKER_FILL,
                                stroke: "none"
                            }, e.style.button),
                            arrow: Object.assign({}, {
                                fill: c.tintshade(e.color, -.4).rgba,
                                stroke: "none"
                            }, e.style.arrow)
                        }
                    }, r.attachEventHandlers = function() {
                        var e, t, r = this,
                            n = r.config,
                            a = r.getLinkedParent(),
                            i = a.config,
                            o = a.getChildren("scrollAnchor")[0],
                            s = function() {
                                i.scrollPosition >= 1 ? i.scrollPosition = 1 : (i.scrollPosition <= 0 || isNaN(i.scrollPosition)) && (i.scrollPosition = 0), o.asyncDraw(), "function" == typeof i.evt.scroll && i.evt.scroll(i.scrollPosition)
                            },
                            c = function u() {
                                t = !0, "start" === n.type ? i.scrollPosition -= .01 : i.scrollPosition += .01, s(), r.addJob("dragScrollAnchor", u, l.priorityList.draw)
                            };
                        r.addEventListener("fc-mousedown", r._evtHandlers.mousedown || (r._evtHandlers.mousedown = function() {
                            e = setTimeout((function() {
                                r.addJob("dragScrollAnchor", c, l.priorityList.draw)
                            }), 300)
                        })), r.addEventListener("fc-mouseup", r._evtHandlers.mouseup || (r._evtHandlers.mouseup = function() {
                            clearTimeout(e), r.removeJob("dragScrollAnchor"), t || ("start" === n.type ? i.scrollPosition -= .1 : i.scrollPosition += .1, s()), t = !1
                        })), r.addEventListener("fc-mouseout", (function() {
                            t && r._evtHandlers.mouseup()
                        }))
                    }, r.draw = function() {
                        var e = this.config,
                            t = this.getLinkedParent().config,
                            r = {
                                id: "scrollbarGroup",
                                label: "scrollbarGroup",
                                isParent: !0
                            },
                            n = t.isHorizontal,
                            a = t.x + .5,
                            i = t.y + t.padding + .5,
                            o = t.width - 1 < 1 ? 1 : t.width - 1,
                            l = t.height - 1 < 1 ? 1 : t.height - 1,
                            c = n ? Math.min(l, .5 * o) : Math.min(o, .5 * l),
                            u = n ? (0, s.polyPathToPath)([3, a + .5 * c, i + .5 * l, .25 * c, 180]) : (0, s.polyPathToPath)([3, a + .5 * o, i + .5 * c, .25 * c, 90]),
                            d = n ? (0, s.polyPathToPath)([3, a + o - .5 * c, i + .5 * c, .25 * c, 0]) : (0, s.polyPathToPath)([3, a + .5 * o, i + l - .5 * c, .25 * c, -90]);
                        this.addGraphicalElement({
                            el: "rect",
                            attr: {
                                x: "start" === e.type ? a : n ? a + o - c : a,
                                y: "start" === e.type ? i : n ? i : i + l - c,
                                width: (e.type, n ? c : o),
                                height: (e.type, n ? l : c),
                                opacity: e.style.button.opacity
                            },
                            css: e.style.button,
                            container: r,
                            component: this,
                            label: "scrollbar" + e.type + "ButtonRect",
                            id: "scrollbar" + e.type + "ButtonRect"
                        }), this.addGraphicalElement({
                            el: "path",
                            attr: {
                                path: "start" === e.type ? u : d,
                                opacity: e.style.arrow.opacity
                            },
                            css: e.style.arrow,
                            container: r,
                            component: this,
                            label: "scrollbar" + e.type + "ButtonPath",
                            id: "scrollbar" + e.type + "ButtonPath"
                        })
                    }, t
                }(i["default"]);
            t["default"] = u
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(307)),
                o = r(193),
                s = r(308),
                l = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.configureAttributes = function(t) {
                        void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                        var r = this.config;
                        r.checked = !!t.isChecked, r.interPadding = 3, r.symbolName = "Internal_CB", r.text = (0, o.pluck)(t.text, ""), r.textStyle = s.defaultTextStyle
                    }, r.check = function() {
                        this.config.checked = !0, this.asyncDraw()
                    }, r.uncheck = function() {
                        this.config.checked = !1, this.asyncDraw()
                    }, r.toggle = function() {
                        this.config.checked ? this.uncheck() : this.check()
                    }, r.getContainer = function() {
                        return this.getFromEnv("chart").getChildContainer("buttonGroup")
                    }, r.draw = function() {
                        this.config.checked ? s.SymbolStore.register("Internal_CB", s.RSymbolFns.CB_CHECKED) : s.SymbolStore.register("Internal_CB", s.RSymbolFns.CB_NOT_CHECKED), e.prototype.draw.call(this)
                    }, t
                }(i["default"]);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(307)),
                o = r(193),
                s = n(r(314)),
                l = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.configureAttributes = function(t) {
                        void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                        var r = this.config,
                            n = this.getFromEnv("dataSource").chart;
                        r.baseFontFamily = (0, o.pluck)(t.baseFontFamily, n.basefont, "Verdana,sans"), r.baseFontSize = (0, o.pluckNumber)(t.baseFontSize, n.basefontsize, 10), r.baseFontColor = (0, o.pluck)(t.baseFontColor, n.basefontcolor, "595959"), r.skipGraphics = !0, this.createListContainer()
                    }, r.createListContainer = function() {
                        this.attachChild(s["default"], "listContainer", "listContainer").configure()
                    }, r.appendInMenu = function(e) {
                        void 0 === e && (e = []);
                        var t, r, n = this.getChild("listContainer");
                        for (r = e.length, t = 0; t < r; t++) n.addItem(e[t]);
                        this.config.skipGraphics = !1
                    }, t
                }(i["default"]);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(208),
                o = r(193),
                s = n(r(315)),
                l = r(308),
                c = r(201);

            function u(e, t) {
                var r, n, a, i;
                if (void 0 === t && (t = {}), (n = e.attachChild(s["default"], "item", t.id)).configure(t), t.menu instanceof Array && (i = t.menu.length))
                    for (r = n.attachChild(d, "subContainer", "subContainer"), e.config.hasSubMenu = !0, r.configure(), a = 0; a < i; a++) r.addItem(t.menu[a])
            }(0, c.addDep)({
                name: "manuItemContainerAnimation",
                type: "animationRule",
                extension: {
                    "*.menuItemContainer.menuItemContainer": null
                }
            });
            var d = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.configureAttributes = function() {
                        var e = this.config;
                        this.setStyle(), e.counter = 0, e.hasSubMenu = !1, e._defaultStyle = {
                            position: "absolute",
                            "z-index": 50,
                            top: 0 + o.PXSTRING,
                            right: "auto",
                            left: "auto",
                            overflow: "hidden",
                            background: "#ffffff",
                            border: "1px solid #646464",
                            "box-shadow": "#999999 2px 2px 5px",
                            padding: "5px 3px",
                            display: "none"
                        }
                    }, r.setStyle = function(e) {
                        void 0 === e && (e = {});
                        var t = this.config;
                        t.hoverOverStyle = e.hoverOverStyle || {
                            background: "#333333",
                            color: "#FFFFFF",
                            cursor: o.POINTER
                        }, t.hoverOutStyle = e.hoverOutStyle || {
                            background: "#FFFFFF",
                            color: "#000000"
                        }
                    }, r.show = function() {
                        var e = this.getLinkedParent().config,
                            t = (0, o.pluckNumber)(e.scale, 1.5),
                            r = e.x,
                            n = e.y,
                            a = e.width * t,
                            i = e.height * t,
                            s = +this.getFromEnv("chart").getFromEnv("chartWidth"),
                            l = this.getGraphicalElement("menu", "menu").element,
                            c = l.style;
                        clearTimeout(this.config.hideTimer), c.display = "block", l.offsetWidth + r > s ? (c.left = "auto", c.right = s - r - a + o.PXSTRING) : (c.left = r + o.PXSTRING, c.right = "auto"), c.top = n + i + 5 + o.PXSTRING, c.bottom = "auto", c.display = "block"
                    }, r.hide = function(e) {
                        void 0 === e && (e = {});
                        var t, r = this.getGraphicalElement("menu", "menu").element;
                        e.instant ? r.style.display = "none" : (t = (0, o.pluckNumber)(e.timeout, l.DEFAULT_TIMEOUT), this.config.hideTimer = setTimeout((function() {
                            r.style.display = "none"
                        }), t))
                    }, r.addItem = function(e) {
                        void 0 === e && (e = {}), u(this, e)
                    }, r.draw = function() {
                        this.addGraphicalElement({
                            el: "html",
                            attr: {
                                type: "div"
                            },
                            css: this.config._defaultStyle,
                            component: this,
                            label: "menu",
                            id: "menu"
                        }), this.addEventListener("fc-mouseover", this.show), this.addEventListener("fc-mouseout", this.hide)
                    }, r.getName = function() {
                        return "menuItemContainer"
                    }, r.getType = function() {
                        return "menuItemContainer"
                    }, t
                }(i.SmartRenderer),
                h = d;
            t["default"] = h
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(193),
                o = r(308),
                s = r(208);
            (0, r(201).addDep)({
                name: "manuItemAnimation",
                type: "animationRule",
                extension: {
                    "*.menuItem.menuItem": null
                }
            });
            var l = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, a["default"])(t, e);
                var r = t.prototype;
                return r.configureAttributes = function(e) {
                    void 0 === e && (e = {});
                    var t = this.config,
                        r = this.getLinkedParent().getLinkedParent().config;
                    t.name = e.name, t.action = e.action && e.action.toLowerCase() || o.CLICK, t.eventMap = {}, t.style = {
                        padding: "3px 8px",
                        fontFamily: r.baseFontFamily,
                        fontSize: r.baseFontSize + i.PXSTRING,
                        color: "#000000",
                        position: "static",
                        display: "inline",
                        float: "left",
                        background: "#FFFFFF"
                    }, t.pointerStyle = {
                        padding: "0px 4px 3px",
                        fontFamily: r.baseFontFamily,
                        fontSize: r.baseFontSize + 3 + i.PXSTRING,
                        color: "#000000",
                        position: "static",
                        float: "left"
                    }, t.itemType = e.menu instanceof Array && e.menu.length ? "subMenu" : "item", "item" === t.itemType ? t.handler = e.handler || i.stubFN : t.handler = i.stubFN, t.hoverOverStyle = e.hoverOverStyle || {}, t.hoverOutStyle = e.hoverOutStyle || {}
                }, r.applyStyle = function(e) {
                    void 0 === e && (e = "mouseover");
                    var t = this.getLinkedParent().config,
                        r = this.getGraphicalElement("menuItem", "menuItem"),
                        n = this.getGraphicalElement("container", "container"),
                        a = this.getGraphicalElement("menuPointer", "menuPointer");
                    switch (e) {
                        case "mouseover":
                            r.css(t.hoverOverStyle), n.css(t.hoverOverStyle), a && a.css(t.hoverOverStyle);
                            break;
                        case "mouseout":
                            r.css(t.hoverOutStyle), n.css(t.hoverOutStyle), a && a.css(t.hoverOutStyle)
                    }
                }, r.draw = function() {
                    var e = this,
                        t = e.config,
                        r = e.getLinkedParent();
                    e.addGraphicalElement({
                        el: "html",
                        attr: {
                            type: "div"
                        },
                        css: {
                            display: "block",
                            position: "static",
                            overflow: "hidden",
                            height: "100%",
                            width: "100%",
                            background: "#FFFFFF"
                        },
                        container: {
                            id: "menu",
                            label: "menu",
                            isParent: !0
                        },
                        component: e,
                        label: "container",
                        id: "container"
                    }), r.config.hasSubMenu && e.addGraphicalElement({
                        el: "html",
                        attr: {
                            type: "div",
                            text: "◂"
                        },
                        css: t.pointerStyle,
                        container: {
                            id: "container",
                            label: "container"
                        },
                        component: e,
                        label: "menuPointer",
                        id: "menuPointer"
                    }, !0), e.addGraphicalElement({
                        el: "html",
                        attr: {
                            type: "span",
                            text: t.name
                        },
                        css: t.style,
                        container: {
                            id: "container",
                            label: "container"
                        },
                        component: e,
                        label: "menuItem",
                        id: "menuItem"
                    }, !0), e._mouseOverEvent || (e._mouseOverEvent = function() {
                        e.applyStyle("mouseover")
                    }), e._mouseOutEvent || (e._mouseOutEvent = function() {
                        e.applyStyle("mouseout")
                    }), e._clickEvent || (e._clickEvent = function() {
                        "item" === e.config.itemType && (r.hide({
                            instant: !0
                        }), t.handler())
                    }), e.addEventListener("fc-mouseover", e._mouseOverEvent), e.addEventListener("fc-mouseout", e._mouseOutEvent), e.addEventListener("fc-click", e._clickEvent)
                }, r.getName = function() {
                    return "menuItem"
                }, r.getType = function() {
                    return "menuItem"
                }, t
            }(s.SmartRenderer);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(307)),
                o = r(193),
                s = {
                    left: "start",
                    right: "end",
                    center: "middle"
                },
                l = {
                    top: o.POSITION_TOP,
                    middle: o.POSITION_MIDDLE,
                    bottom: o.POSITION_BOTTOM
                },
                c = {
                    0: "0",
                    1: "270",
                    right: "90",
                    cw: "90",
                    left: "270",
                    ccw: "270"
                },
                u = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        t.font = "Verdana, sans", t.rotateText = 0
                    }, r.configureAttributes = function(t) {
                        void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                        var r = this.config;
                        r.font = (0, o.pluck)(t.font, r.font), r.fontSize = (0, o.pluckFontSize)(t["font-size"], t.fontSize, 10) * r.scale, r.fontStyle = (0, o.pluck)(t["font-style"], t.fontStyle, "normal"), r.fontWeight = (0, o.pluck)(t["font-weight"], t.fontWeight, "normal"), r.rotateText = (0, o.pluckNumber)(t.rotateText, r.rotateText), r.rotateAngle = parseFloat(c[(0, o.pluck)(t.rotateAngle && t.rotateAngle.toLowerCase(), "0")])
                    }, r.getTextBound = function() {
                        var e = this.config,
                            t = [];
                        return e.showTextBound && (t = [(0, o.convertColor)(e.fill), e.borderColor, e.borderThickness, 2, e.radius]), t
                    }, r.getLogicalSpace = function() {
                        var e, t = this.config,
                            r = (t.width, t.height, t.marginTop),
                            n = t.marginLeft,
                            a = t.marginRight,
                            i = t.marginBottom;
                        return {
                            width: (e = this.getFromEnv("smartLabel").getOriSize(this.config.text, !1)).width,
                            height: e.height,
                            marginTop: r,
                            marginLeft: n,
                            marginRight: a,
                            marginBottom: i
                        }
                    }, r.draw = function() {
                        var e, t = this.config;
                        t.text && (e = {
                            x: t.x,
                            y: t.y,
                            text: t.text,
                            fill: (0, o.convertColor)(t.labelFill),
                            "text-bound": this.getTextBound(),
                            "font-style": t.fontStyle,
                            "font-weight": t.fontWeight,
                            "font-family": t.font,
                            "font-size": t.fontSize,
                            "text-anchor": s[t.hAlign],
                            "vertical-align": l[t.vAlign],
                            transform: t.rotateText ? (0, o.getSuggestiveRotation)(t.rotateAngle, t.x, t.y) : "t0,0"
                        }, !t.isHidden && this.addGraphicalElement({
                            el: "text",
                            attr: e,
                            component: this,
                            container: {
                                id: "group",
                                label: "group",
                                isParent: !0
                            },
                            label: "text",
                            id: "label"
                        }))
                    }, t
                }(i["default"]);
            t["default"] = u
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(307)),
                o = r(193),
                s = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this), this.config.isVertical = 1
                    }, r.configureAttributes = function(t) {
                        void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                        var r = this.config;
                        r.isVertical = (0, o.pluckNumber)(t.isVertical, r.isVertical)
                    }, r.draw = function() {
                        var e = this.config,
                            t = e.x,
                            r = e.y,
                            n = e.width,
                            a = e.height,
                            i = {
                                path: e.isVertical ? ["M", t + n / 2, r, "v", a] : ["M", t, r, "h", n],
                                stroke: e.stroke,
                                "stroke-width": e.strokeWidth,
                                "stroke-linecap": "round"
                            };
                        !e.isHidden && this.addGraphicalElement({
                            el: "path",
                            attr: i,
                            component: this,
                            container: {
                                id: "group",
                                label: "group",
                                isParent: !0
                            },
                            css: e.css,
                            label: "path",
                            id: "path"
                        })
                    }, t
                }(i["default"]);
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(208),
                o = r(193),
                s = function(e) {
                    e.manageSpace && e.manageSpace()
                },
                l = function(e) {
                    function t(t) {
                        var r;
                        return (r = e.call(this, t) || this).props = {}, r
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.configureAttributes = function(e) {
                        void 0 === e && (e = {});
                        var t = this.config,
                            r = this.getFromEnv("chartConfig");
                        this.__setDefaultConfig(), this.props.width = (0, o.pluckNumber)(e.width, 0), this.props.height = (0, o.pluckNumber)(e.height, 0), t.orientation = (0, o.pluck)(e.toolbarorientation, t.orientation), t.hPadding = (0, o.pluck)(e.toolbarhpadding, t.hPadding), t.vPadding = (0, o.pluck)(e.toolbarvpadding, t.vPadding), t.backgroundcolor = (0, o.pluck)(e.toolbarbackgroundcolor, t.backgroundcolor), t.backgroundalpha = (0, o.pluck)(e.toolbarbackgroundalpha, t.backgroundalpha), t.bordercolor = (0, o.pluck)(e.toolbarbordercolor, t.bordercolor), t.borderalpha = (0, o.pluck)(e.toolbarborderalpha, t.borderalpha), t.borderthickness = (0, o.pluck)(e.toolbarborderthickness, t.borderthickness), t.hDirection = (0, o.pluckNumber)(e.toolbarhdirection, "r" === r.toolbarHAlign ? -1 : 1), t.vDirection = (0, o.pluckNumber)(e.toolbarvdirection, "b" === r.toolbarBAlign ? -1 : 1), t.hAlign = (0, o.pluck)(e.hAlign, "center").toLowerCase(), t.vAlign = (0, o.pluck)(e.vAlign, "middle").toLowerCase(), t.marginTop = (0, o.pluckNumber)(e.marginTop, e.spacing, t.marginTop), t.marginLeft = (0, o.pluckNumber)(e.marginLeft, e.spacing, t.marginLeft), t.marginRight = (0, o.pluckNumber)(e.marginRight, e.spacing, t.marginRight), t.marginBottom = (0, o.pluckNumber)(e.marginBottom, e.spacing, t.marginBottom)
                    }, r.__setDefaultConfig = function() {
                        var e = this.config;
                        e.orientation = "horizontal", e.hPadding = 0, e.vPadding = 0, e.backgroundcolor = "#eeeeee", e.backgroundalpha = 0, e.bordercolor = "#eeeeee", e.borderalpha = 0, e.borderthickness = 1, e.spacing = 2.5, e.marginTop = 2.5, e.marginLeft = 2.5, e.marginRight = 2.5, e.marginBottom = 2.5
                    }, r.getLogicalSpace = function() {
                        var e = this.config,
                            t = this.props,
                            r = 0,
                            n = 0;
                        return this.getChildren("tool") && this.getChildren("tool").length && (this.getChildren("tool").forEach((function(t) {
                            if (!t.getState("removed")) {
                                var a = t.getLogicalSpace(),
                                    i = a.width,
                                    s = a.height,
                                    l = a.marginTop,
                                    c = a.marginLeft,
                                    u = a.marginRight,
                                    d = a.marginBottom;
                                "horizontal" === e.orientation ? (i !== o.UNDEF && (r += i + (u || 0) + (c || 0)), n < (s = s + (l || 0) + (d || 0)) && (n = s)) : (s !== o.UNDEF && (n += s + (l || 0) + (d || 0)), r < (i = i + (u || 0) + (c || 0)) && (r = i))
                            }
                        })), r += 2 * e.hPadding, n += 2 * e.vPadding, t.width = t.width > r ? t.width : r, t.height = t.height > n ? t.height : n), {
                            width: r,
                            height: n,
                            marginTop: e.marginTop,
                            marginLeft: e.marginLeft,
                            marginRight: e.marginLeft,
                            marginBottom: e.marginLeft
                        }
                    }, r.manageSpace = function() {
                        var e, t = this.getChildren("tool") || [];
                        for (var r in e = "horizontal" === this.config.orientation ? this._placeToolHorizontally() : this._placeToolVertically()) e.hasOwnProperty(r) && this.getChild(r).setDimension(e[r]);
                        t.forEach(s)
                    }, r._placeToolHorizontally = function() {
                        var e, t, r, n = this,
                            a = n.config,
                            i = n.props,
                            o = a.hPadding,
                            s = i.width - a.hPadding,
                            l = {},
                            c = {
                                left: [],
                                right: [],
                                center: []
                            },
                            u = {
                                left: 0,
                                right: 0,
                                center: 0
                            };
                        return n.getChildren("tool") && n.getChildren("tool").length && ((a.hDirection > 0 ? n.getChildren("tool") : n.getChildren("tool").slice(0).reverse()).forEach((function(e) {
                            if (!e.getState("removed")) {
                                var t = e.getAlignment().hAlign,
                                    r = e.getLogicalSpace(),
                                    o = r.width,
                                    s = r.height,
                                    d = r.marginTop,
                                    h = r.marginLeft,
                                    f = r.marginRight,
                                    g = r.marginBottom,
                                    p = e.getId();
                                u[t] += o + (h || 0) + (f || 0), c[t].push(p), l[p] = {}, l[p].y = n.props.y + d + a.vPadding + (i.height - 2 * a.vPadding - (s + g + d)) / 2
                            }
                        })), c.left.forEach((function(e) {
                            var t = n.getChild(e).getLogicalSpace(),
                                r = t.width,
                                i = t.marginLeft,
                                s = t.marginRight;
                            o += i || 0, l[e].x = n.props.x + a.hPadding + o, o += r + (s || 0)
                        })), c.right.reverse().forEach((function(e) {
                            var t = n.getChild(e).getLogicalSpace(),
                                r = t.width,
                                i = t.marginLeft,
                                o = t.marginRight;
                            s -= r + (o || 0), l[e].x = n.props.x + a.hPadding + s, s -= i || 0
                        })), e = [u.left + a.hPadding, i.width - (u.right + a.hPadding)], t = Math.abs(e[0] - e[1]), r = e[0] + t / 2 - u.center / 2, c.center.forEach((function(e) {
                            var t = n.getChild(e).getLogicalSpace(),
                                i = t.width,
                                o = t.marginLeft,
                                s = t.marginRight;
                            r += o || 0, l[e].x = n.props.x + a.hPadding + r, r += i + s || 0
                        }))), l
                    }, r.getAlignment = function() {
                        return {
                            hAlign: this.config.hAlign,
                            vAlign: this.config.vAlign
                        }
                    }, r._placeToolVertically = function() {
                        var e, t, r, n = this,
                            a = n.config,
                            i = n.props,
                            o = a.vPadding,
                            s = i.height - a.vPadding,
                            l = {
                                top: [],
                                middle: [],
                                bottom: []
                            },
                            c = {
                                top: 0,
                                middle: 0,
                                bottom: 0
                            },
                            u = {};
                        return n.getChildren("tool") && n.getChildren("tool").length && ((a.vDirection > 0 ? n.getChildren("tool") : n.getChildren("tool").reverse()).forEach((function(e) {
                            if (!e.getState("removed")) {
                                var t = e.getAlignment().vAlign,
                                    r = e.getLogicalSpace(),
                                    o = r.width,
                                    s = r.height,
                                    d = r.marginTop,
                                    h = r.marginLeft,
                                    f = r.marginRight,
                                    g = r.marginBottom,
                                    p = e.getId();
                                c[t] += s + (d || 0) + (g || 0), l[t].push(e.getId()), u[p] = {}, u[p].x = n.props.x + h + a.hPadding + h + (i.width - 2 * a.hPadding - (o + h + f)) / 2
                            }
                        })), l.top.forEach((function(e) {
                            var t = n.getChild(e).getLogicalSpace(),
                                r = t.height,
                                i = t.marginTop,
                                s = t.marginBottom;
                            o += i || 0, u[e].y = n.props.y + a.vPadding + o, o += r + (s || 0)
                        })), l.bottom.reverse().forEach((function(e) {
                            var t = n.getChild(e).getLogicalSpace(),
                                r = t.height,
                                i = t.marginTop,
                                o = t.marginBottom;
                            s -= r + (o || 0), u[e].y = n.props.y + a.vPadding + s, s -= i || 0
                        })), e = [c.top + a.vPadding, i.height - (c.bottom + a.vPadding)], t = Math.abs(e[0] - e[1]), r = e[0] + t / 2 - c.middle / 2, l.middle.forEach((function(e) {
                            var t = n.getChild(e).getLogicalSpace(),
                                i = t.height,
                                o = t.marginTop,
                                s = t.marginBottom;
                            r += o || 0, u[e].y = n.props.y + a.vPadding + r, r += i + s || 0
                        }))), u
                    }, r.setDimension = function(e) {
                        void 0 === e && (e = {}), e.x !== o.UNDEF && (this.props.x = e.x), e.y !== o.UNDEF && (this.props.y = e.y), e.width !== o.UNDEF && (this.props.width = e.width), e.height !== o.UNDEF && (this.props.height = e.height)
                    }, r.getDimension = function() {
                        return this.props
                    }, r.draw = function() {
                        var e = this.config;
                        this.addGraphicalElement({
                            id: "group",
                            el: "group",
                            attr: {
                                name: "toolbar"
                            },
                            container: {
                                id: "toolbar-master",
                                isParent: !0
                            },
                            component: this,
                            label: "group"
                        }), this.addGraphicalElement({
                            id: "carpet",
                            el: "rect",
                            attr: Object.assign({
                                fill: (0, o.toRaphaelColor)({
                                    color: e.backgroundcolor,
                                    alpha: e.backgroundalpha
                                }),
                                stroke: (0, o.toRaphaelColor)({
                                    color: e.bordercolor,
                                    alpha: e.borderalpha
                                }),
                                "stroke-width": e.borderthickness
                            }, this.getDimension()),
                            container: {
                                label: "group",
                                id: "group"
                            },
                            component: this,
                            label: "carpet"
                        })
                    }, r.getName = function() {
                        return "toolbar"
                    }, r.getType = function() {
                        return "Toolbar"
                    }, t
                }(i.SmartRenderer);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = n(r(302)),
                s = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var r = (0, a["default"])(t);
                        return r._toggle = function() {
                            r.isEnabled() && r.zoomOut()
                        }, t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "zoomResetButton"
                    }, r.configure = function() {
                        e.prototype.configure.call(this);
                        var t = this.getLinkedParent();
                        this.configureButton(), this.disable(), t.registerDependancy([{
                            derivedInteraction: ["zoomin", "zoomout"],
                            callback: this.dependancyFn,
                            component: this
                        }])
                    }, r.configureButton = function() {
                        !this.config.skipGraphics && this.setLinkedItem("button", this.createButton({
                            icon: "resetIcon",
                            handlers: {
                                click: this._toggle
                            },
                            tooltext: this.config.tooltext,
                            state: "disabled"
                        })), this.disable()
                    }, r.enable = function() {
                        this.config.state = "activated", e.prototype.enable.call(this)
                    }, r.zoomOut = function() {
                        var e, t, r, n, a, i, o, s = this,
                            l = s.config.hookFn,
                            c = {};
                        s.getFromEnv("axesObArr").forEach((function(u) {
                            e = s.getFromEnv("chart"), t = e.getChildren("scrollBar") && e.getChildren("scrollBar")[0], (o = u.stack[0]) && (s.getFromEnv("chart").getFromEnv("animationManager").setAnimationState("zoomOut"), l && l(o.minValue, o.maxValue), u.isY ? (a = o.minValue, i = o.maxValue) : (r = o.minValue, n = o.maxValue, c = s.constructor._getZoomInfo(r, n, u.axis)), u.axis.setVisibleConfig(o.minValue, o.maxValue), e.setScrollBarDimension && e.setScrollBarDimension(), t && !t.getState("removed") && t.asyncDraw(), u.stack.length = 0)
                        })), s._raiseZoomEvents("zoomout", "zoomreset", Object.assign(c, {
                            level: 1,
                            startX: r,
                            endX: n,
                            startY: a,
                            endY: i
                        })), s.disable()
                    }, r.dependancyFn = function(e) {
                        "zoomin" === e.type ? this.enable() : "zoomout" === e.type && (this._checkStackLen() || this.disable())
                    }, t
                }(o["default"]);
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var r = (0, a["default"])(t);
                        return r._toggle = function() {
                            r.isEnabled() && r.zoomOut()
                        }, t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "zoomOutButton"
                    }, r.configureButton = function() {
                        !this.config.skipGraphics && this.setLinkedItem("button", this.createButton({
                            icon: "zoomOutIcon",
                            handlers: {
                                click: this._toggle
                            },
                            tooltext: this.config.tooltext,
                            state: "activated"
                        }))
                    }, r.zoomOut = function() {
                        var e, t, r, n, a, i, o, s, l = this,
                            c = l.config.hookFn,
                            u = {},
                            d = 0;
                        l.getFromEnv("axesObArr").forEach((function(h) {
                            e = l.getFromEnv("chart"), t = e.getChildren("scrollBar") && e.getChildren("scrollBar")[0], r = h.stack.pop(), n = h.stack.length, d += n, r && (h.isY ? (o = r.minValue, s = r.maxValue) : (a = r.minValue, i = r.maxValue, u = l.constructor._getZoomInfo(a, i, h.axis)), c && c(r.minValue, r.maxValue), h.axis.setVisibleConfig(r.minValue, r.maxValue), e.setScrollBarDimension && e.setScrollBarDimension(), t && !t.getState("removed") && t.asyncDraw())
                        })), l._raiseZoomEvents("zoomout", "zoomedout", Object.assign(u, {
                            level: n,
                            startX: a,
                            endX: i,
                            startY: o,
                            endY: s
                        })), d || this.disable()
                    }, t
                }(n(r(319))["default"]);
            t["default"] = o
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var r = (0, a["default"])(t);
                        return r._toggle = function() {
                            r.isEnabled() && r.zoom()
                        }, t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "zoomInButton"
                    }, r.configure = function() {
                        e.prototype.configure.call(this);
                        var t = this.config;
                        t.stepZoom = t.stepZoom || 5.33, !t.skipGraphics && this.setLinkedItem("button", this.createButton({
                            icon: "zoomInIcon",
                            handlers: {
                                click: this._toggle
                            },
                            tooltext: this.config.tooltext,
                            state: "activated"
                        })), this.enable()
                    }, r.zoom = function() {
                        var e, t, r, n, a, i, o, s, l, c = this,
                            u = {},
                            d = c.config,
                            h = d.hookFn,
                            f = !1,
                            g = Math.pow(10, d.zoomDecimalLimit) || 1;
                        c.getFromEnv("animationManager").setAnimationState("zoom"), c.getFromEnv("axesObArr").forEach((function(p) {
                            r = p.axis, e = r.getVisibleConfig(), (t = Math.round((e.maxValue - e.minValue) / d.stepZoom * g) / g) > Number.EPSILON && (p.stack.push(e), p.isY ? (i = e.minValue + t, o = e.maxValue - t) : (n = e.minValue + t, a = e.maxValue - t, u = c.constructor._getZoomInfo(n, a, r)), s = p.stack.length + 1, h && h(e.minValue, e.maxValue), l = r.setVisibleConfig(e.minValue + t, e.maxValue - t), f = f || l)
                        })), f && c._raiseZoomEvents("zoomin", "zoomedin", Object.assign(u, {
                            level: s,
                            startX: n,
                            endX: a,
                            startY: i,
                            endY: o
                        }))
                    }, t
                }(n(r(302))["default"]);
            t["default"] = o
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = n(r(302)),
                s = r(193),
                l = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var r = (0, a["default"])(t);
                        return r.controlArr = [{
                            nativeInteraction: ["fc-dbclick"],
                            callback: r.zoom.bind(r),
                            component: r
                        }], t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "dbTapZoom"
                    }, r.configure = function() {
                        e.prototype.configure.call(this), this.enable()
                    }, r.setControl = function() {
                        var e = this.controlArr,
                            t = this.getLinkedParent();
                        t.releaseControl(e), this.isEnabled() && t.getControl(e)
                    }, r.zoom = function(e) {
                        var t, r, n, a, i, o, l, c, u, d, h = this,
                            f = h.getFromEnv("chart"),
                            g = (0, s.getMouseCoordinate)(f.getLinkedItem("container"), e, f),
                            p = h.config,
                            m = p.hookFn,
                            v = {},
                            b = !1,
                            y = Math.pow(10, p.zoomDecimalLimit) || 1;
                        f.getFromEnv("animationManager").setAnimationState("zoom"), h.getFromEnv("axesObArr").forEach((function(e) {
                            t = e.axis, r = t.getValue(e.isY ? g.chartY : g.chartX), a = t.getVisibleConfig(), n = function(e, t, r, n) {
                                var a = t - e.minValue,
                                    i = e.maxValue - t;
                                return {
                                    min: Math.round((t - a / r * (r - 1)) * n) / n,
                                    max: Math.round((t + i / r * (r - 1)) * n) / n
                                }
                            }(a, r, p.stepzoom, y), e.isY ? (c = n.min, u = n.max) : (o = n.min, l = n.max, v = h.constructor._getZoomInfo(o, l, t)), t.getZoom() <= y && (m && "function" == typeof p.hookFn && m(n.min, n.max), i = t.setVisibleConfig(n.min, n.max), b = b || i, e.stack.push(a), d = e.stack.length + 1)
                        })), b && h._raiseZoomEvents("zoomin", "zoomedin", Object.assign(v, {
                            level: d,
                            startX: o,
                            endX: l,
                            startY: c,
                            endY: u
                        }, e.originalEvent))
                    }, t
                }(o["default"]);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = n(r(302)),
                s = r(193),
                l = r(205),
                c = r(201),
                u = Math,
                d = u.min,
                h = u.max,
                f = u.abs,
                g = "rgba(255,0,0," + (s.isIE ? .002 : 1e-6) + ")",
                p = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var r = (0, a["default"])(t);
                        return r.controlArr = [{
                            nativeInteraction: ["fc-dragstart"],
                            callback: r.dragstart.bind(r),
                            component: r
                        }, {
                            nativeInteraction: ["fc-dragmove"],
                            callback: r.dragmove.bind(r),
                            component: r
                        }, {
                            nativeInteraction: ["fc-dragend"],
                            callback: r.dragend.bind(r),
                            component: r
                        }], r.toggle = r.toggle.bind(r), t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "dragPin"
                    }, r.configure = function() {
                        e.prototype.configure.call(this);
                        var t = this.getFromEnv("chartConfig"),
                            r = this.getFromEnv("dataSource").chart,
                            n = this.config;
                        n.attr = n.attr || {
                            stroke: "#3399ff",
                            fill: "#b9d5f1",
                            "stroke-width": 0
                        }, n.pinAttr = n.pinAttr || {
                            "stroke-width": 0,
                            stroke: "none",
                            fill: "#b9d5f1",
                            "shape-rendering": "crisp"
                        }, n.borderWidth = t.borderWidth || (t.borderWidth = (0, s.pluckNumber)(r.showborder, 1) ? (0, s.pluckNumber)(r.borderthickness, 1) : 0), !this.config.skipGraphics && this.setLinkedItem("button", this.createButton({
                            icon: "pinModeIcon",
                            tooltext: (0, s.pluckNumber)(r.showtoolbarbuttontooltext, 1) ? (0, s.pluck)(this.config.tooltext, "Pin mode") : "",
                            handlers: {
                                click: this.toggle
                            },
                            state: "activated"
                        })), this.getLinkedParent().registerDependancy([{
                            derivedInteraction: ["zoomin", "zoomout"],
                            callback: this.dependancyFn,
                            component: this
                        }]), this.disable(void 0, !1)
                    }, r.enable = function(e, t) {
                        var r = this.config;
                        !0 !== r.enabled && (r.enabled = !0, r.state = "pressed", this.fireEvent("pinenabled"), this.setControl(), !t && this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged", {
                            pinModeActive: !0
                        }, e && e.originalEvent))
                    }, r.dependancyFn = function(e) {
                        "zoomin" !== e.type && "zoomout" !== e.type || this.disable(e)
                    }, r.draw = function() {
                        var e, t = this,
                            r = t.config;
                        t.createPin(), t.config.pinElemVisible && t.addJob("resizePinElem", (function() {
                            e = t.getFromEnv("xAxis")[0], t.pinRangePixels(e.getPixel(r.boxStartValue), e.getPixel(r.boxEndValue))
                        }), l.priorityList.postRender)
                    }, r._setConfig = function() {
                        var e = this.getFromEnv("chart"),
                            t = this.getFromEnv("chartConfig"),
                            r = this.config,
                            n = Object.assign({}, r.attr || {}),
                            a = n["stroke-width"] = (0, s.pluckNumber)(n.strokeWidth, n["stroke-width"], 1),
                            i = (0, s.getPosition)(e.getFromEnv("chart-container"), e);
                        r.zoomX = "horizontal" === r.orientation || "both" === r.orientation, r.zoomY = "vertical" === r.orientation || "both" === r.orientation, r.canvasY = t.canvasTop, r.canvasX = t.canvasLeft, r.canvasW = t.canvasWidth, r.canvasH = t.canvasHeight, r.canvasX2 = t.canvasLeft + t.canvasWidth, r.canvasY2 = t.canvasTop + t.canvasHeight, r.strokeWidth = a, r.chartPosLeft = i.left, r.chartPosTop = i.top
                    }, r.disable = function(e, t) {
                        var r = this.config,
                            n = this.getContainer("pingroup"),
                            a = this.getGraphicalElement("pintracker");
                        !1 !== r.enabled && (r.enabled = !1, r.state = "activated", n && n.hide(), a && a.hide(), this.fireEvent("pindisabled"), !t && this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged", {
                            pinModeActive: !1
                        }, e && e.originalEvent), this.setControl(), r.pinElemVisible = !1)
                    }, r.setControl = function() {
                        var e = this.getLinkedParent(),
                            t = this.controlArr,
                            r = this.getLinkedItem("button");
                        e.releaseControl(t), this.isEnabled() && e.getControl(t), r && r.setCurrentState(this.config.state)
                    }, r.createPin = function() {
                        var e, t, r, n, a, i = this,
                            o = i.getFromEnv("chart"),
                            l = i.getFromEnv("chartConfig"),
                            u = i.getFromEnv("animationManager"),
                            d = l.canvasTop,
                            h = l.canvasBottom,
                            f = l.canvasHeight,
                            p = l.canvasLeft,
                            m = i.config.borderWidth,
                            v = l["clip-pinrect"],
                            b = i.getContainer("pingroup"),
                            y = i.getContainer("pinElemGroup"),
                            x = i.getGraphicalElement("pinrect"),
                            w = i.getGraphicalElement("pintracker");
                        n = l._visw = l.canvasWidth, a = l._visx = l.canvasLeft, e = (0, c.getDep)("redraphael", "plugin").crispBound(0, d - h, 0, f, m), v = l["clip-pinrect"] = [e.x, d, e.width, e.height], b || i.addContainer("pingroup", b = u.setAnimation({
                            el: "group",
                            finalAttr: {
                                name: "zoompin"
                            },
                            component: i,
                            label: "group"
                        }).insertBefore(o.getChildContainer("plotGroup")).hide()), b.transform(l._pingrouptransform = ["T", a, h]), y || i.addContainer("pinElemGroup", y = u.setAnimation({
                            el: "group",
                            attr: {
                                name: "zoompinelements"
                            },
                            component: i,
                            container: b,
                            label: "group"
                        })), i.config.pinAttr.x = 0, i.config.pinAttr.y = d - h, i.config.pinAttr.width = n, i.config.pinAttr.height = f, t = u.setAnimation({
                            el: x || "rect",
                            attr: i.config.pinAttr,
                            container: b,
                            component: i
                        }), x || i.addGraphicalElement("pinrect", t), r = u.setAnimation({
                            el: w || "rect",
                            attr: {
                                transform: b.transform(),
                                x: 0,
                                y: d - h,
                                width: 0,
                                height: f,
                                stroke: "none",
                                fill: g,
                                cursor: s.hasSVG ? "ew-resize" : "e-resize"
                            },
                            container: o.getChildContainer("trackerGroup"),
                            component: i
                        }).hide(), w || i.addGraphicalElement("pintracker", r), r.undrag(), r.drag((function(e) {
                            var t = e.data[0],
                                n = a + t + this.__pindragdelta,
                                o = this.__pinboundleft,
                                l = this.__pinboundright,
                                c = this.data("cliprect").slice(0);
                            n < o ? n = o : n > l && (n = l), b.transform(["T", n, h]), r.transform(b.transform()), s.hasSVG || (c[0] = c[0] + n - a - this.__pindragdelta, u.setAnimation({
                                el: b,
                                attr: {
                                    "clip-rect": c
                                },
                                component: i
                            })), this.__pindragoffset = t
                        }), (function() {
                            this.__pinboundleft = 0 - v[0] + a + p, this.__pinboundright = this.__pinboundleft + n - v[2], this.data("cliprect", b.attr("clip-rect")), b._.clipispath = !0
                        }), (function() {
                            b._.clipispath = !1, this.__pindragdelta += this.__pindragoffset, delete this.__pindragoffset, delete this.__pinboundleft, delete this.__pinboundright
                        }))
                    }, r.pinRangePixels = function(e, t, r) {
                        var n, a, i, o, s, l = this.getFromEnv("chart"),
                            c = l.config,
                            u = c.canvasLeft,
                            d = this.getFromEnv("xAxis")[0],
                            h = d.getLimit(),
                            f = h.max,
                            g = h.min,
                            p = this.getContainer("pingroup"),
                            m = c["clip-pinrect"],
                            v = this.getFromEnv("animationManager"),
                            b = c._pingrouptransform,
                            y = [],
                            x = t - e,
                            w = this.getGraphicalElement("pintracker");
                        if (l.iterateComponents((function(e) {
                                e.getType && "dataset" === e.getType() && y.push(e)
                            })), p && this.getGraphicalElement("pinrect")) {
                            for (e === t && (p.hide(), w.hide()), s = y.length; s--;) y[s].fireEvent("createpinelements", {
                                group: this.getContainer("pinElemGroup")
                            });
                            m[0] = e + u, m[2] = x, v.setAnimation({
                                el: p,
                                attr: {
                                    "clip-rect": m,
                                    transform: b
                                },
                                component: this
                            }).show(), w.__pindragdelta = 0, w.show(), v.setAnimation({
                                el: w,
                                attr: {
                                    transform: b,
                                    x: e,
                                    width: x
                                },
                                component: this
                            }), this.config.pinElemVisible = !0, n = (n = Math.round(d.getValue(e + u, {
                                wrtVisible: !0
                            }))) < g ? g : n, a = (a = Math.round(d.getValue(t + u, {
                                wrtVisible: !0
                            }))) > f ? f : a, i = d.getLabel(n).label, o = d.getLabel(a).label, r && l.fireChartInstanceEvent("pinned", {
                                startIndex: n || Math.abs(n),
                                endIndex: a || Math.abs(a),
                                startLabel: i,
                                endLabel: o
                            }, r.originalEvent)
                        }
                    }, r.dragstart = function(e) {
                        this._setConfig();
                        var t, r, n = this.getFromEnv("animationManager"),
                            a = this.getFromEnv("chart-container"),
                            i = this.config,
                            o = i.attr,
                            l = this.getGraphicalElement("resizeBox"),
                            c = e.originalEvent,
                            u = i.layerX = (c.pageX || c.data[0]) - i.chartPosLeft,
                            d = i.layerY = (c.pageY || c.data[1]) - i.chartPosTop,
                            h = i.canvasY,
                            f = i.canvasX,
                            g = i.canvasX2,
                            p = i.canvasY2;
                        t = (0, s.getPosition)(a), i.chartPosLeft = t.left, i.chartPosTop = t.top, i.oy = d, i.ox = u, i.allowMove = !1, o.x = 0, o.y = 0, o.width = 0, o.height = 0, r = n.setAnimation({
                            el: l || "rect",
                            attr: o,
                            container: this.getFromEnv("chart").getChildContainer("trackerGroup"),
                            component: this,
                            callback: function() {
                                this.show()
                            }
                        }), l || this.addGraphicalElement("resizeBox", r), u > f && u < g && d > h && d < p && (i.allowMove = !0), i.dragstartFn && "function" == typeof i.dragstartFn && i.dragstartFn(e)
                    }, r.dragmove = function(e) {
                        this._setConfig();
                        var t = this.config,
                            r = this.getFromEnv("animationManager"),
                            n = e.originalEvent,
                            a = n.pageX || n.data[2],
                            i = n.page || n.data[3],
                            o = t.layerX = a - t.chartPosLeft,
                            s = t.layerY = i - t.chartPosTop,
                            l = o - t.ox,
                            c = s - t.oy,
                            u = t.ox,
                            g = t.oy,
                            p = t.zoomX,
                            m = t.zoomY,
                            v = t.strokeWidth,
                            b = t.canvasW,
                            y = t.canvasH,
                            x = t.canvasY,
                            w = t.canvasX,
                            C = t.canvasX2,
                            _ = t.canvasY2;
                        r.setAnimationState("dragMove"), t.allowMove && (t.isDragged || (t.isDragged = 1), l = -(u - d(u - (u - h(u + l, w)), C)), c = -(g - d(g - (g - h(g + c, x)), _)), r.setAnimation({
                            el: this.getGraphicalElement("resizeBox"),
                            attr: {
                                x: (p ? d(u, u + l) : w) + .5 * v,
                                y: (m ? d(g, g + c) : x) + .5 * v,
                                width: p ? f(l) : b,
                                height: m ? f(c) : y
                            },
                            component: this
                        }), t.dragmoveFn && "function" == typeof t.dragmoveFn && t.dragmoveFn(e))
                    }, r.dragend = function(e) {
                        this._setConfig();
                        var t, r, n = this.getFromEnv("chart"),
                            a = this.config,
                            i = this.getFromEnv("xAxis")[0],
                            o = this.getGraphicalElement("resizeBox"),
                            s = a.bBox;
                        n.getFromEnv("animationManager").setAnimationState("dragEnd"), s = o.getBBox(), a.isDragged && (a.dragendFn && "function" == typeof a.dragendFn && a.dragendFn(e, {
                            chart: n,
                            selectionLeft: s.x,
                            selectionTop: s.y,
                            selectionHeight: s.height,
                            selectionWidth: s.width,
                            originalEvent: e.originalEvent
                        }), a.isDragged = 0), o.hide(), delete a.oy, delete a.ox, (t = s.x - n.config.canvasLeft) !== (r = t + s.width) && (a.boxStartValue = i.getValue(t), a.boxEndValue = i.getValue(r), this.pinRangePixels(t, r, e))
                    }, t
                }(o["default"]);
            t["default"] = p
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = n(r(302)),
                s = r(193),
                l = function(e) {
                    function t() {
                        var r;
                        r = e.call(this) || this;
                        var n = (0, a["default"])(r);
                        return n.controlArr = [{
                            nativeInteraction: ["fc-dragstart", "fc-dragmove"],
                            callback: n.onDrag.bind(n),
                            component: n
                        }, {
                            nativeInteraction: ["fc-dragend"],
                            callback: n.onDragEnd.bind(n),
                            component: n
                        }], n.toggle = n.toggle.bind(n), s.isFirefox && n.controlArr.push({
                            nativeInteraction: ["fc-mousedown"],
                            callback: t.mousedown,
                            component: n
                        }), r
                    }(0, i["default"])(t, e), t.mousedown = function(e) {
                        e && e.preventDefault()
                    };
                    var r = t.prototype;
                    return r.configure = function() {
                        e.prototype.configure.call(this);
                        !this.config.skipGraphics && this.setLinkedItem("button", this.createButton({
                            icon: "panModeIcon",
                            tooltext: this.config.tooltext,
                            handlers: {
                                click: this.toggle
                            },
                            state: "activated"
                        })), this.getLinkedParent().registerDependancy([{
                            derivedInteraction: ["zoomin", "zoomout", "dragzoomenabled", "dragzoomdisabled"],
                            callback: this.dependancyFn,
                            component: this
                        }]), this.disable(s.UNDEF, !1)
                    }, r.getName = function() {
                        return "dragPan"
                    }, r.enable = function(e, t) {
                        this._checkStackLen() && !0 !== this.config.enabled && (this.config.enabled = !0, this.config.state = "pressed", this.fireEvent("panenabled"), !t && this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged", {
                            panModeActive: !0
                        }, e && e.originalEvent), this.setControl())
                    }, r.disable = function(e, t) {
                        !1 !== this.config.enabled && (this.config.enabled = !1, this.config.state = this._checkStackLen() ? "activated" : "disabled", this.fireEvent("pandisabled"), !t && this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged", {
                            panModeActive: !1
                        }, e && e.originalEvent), this.setControl())
                    }, r.setControl = function() {
                        var e = this.getLinkedParent(),
                            t = this.getLinkedItem("button"),
                            r = this.controlArr;
                        e.releaseControl(r), this.isEnabled() && e.getControl(r), t && t.setCurrentState(this.isEnabled() ? this.config.state : "disabled")
                    }, r.setDrag = function(e) {
                        this.config.isDragging = !!e
                    }, r.isDragging = function() {
                        return !!this.config.isDragging
                    }, r.onDragEnd = function() {
                        this.setDrag(!1), this.getFromEnv("chart").getContainer("parentgroup").attr({
                            cursor: "default"
                        })
                    }, r.onDrag = function(e) {
                        var t, r, n, a, i, o, s, l, c, u, d, h = function(e) {
                            var t = e;
                            return t.originalEvent && (t = t.originalEvent), t.type.match(/touch/) ? {
                                x: t.touches[0].pageX,
                                y: t.touches[0].pageY
                            } : t.type.match(/mouse|pointer/) ? {
                                x: t.pageX,
                                y: t.pageY
                            } : void 0
                        }(e.originalEvent);
                        (function(e) {
                            return !e.touches || 1 === e.touches.length
                        })(e.originalEvent) && (this.getFromEnv("chart").getContainer("parentgroup").attr({
                            cursor: "move"
                        }), this.getFromEnv("animationManager").setAnimationState("drag"), this.isDragging() ? this.getFromEnv("axesObArr").forEach((function(e) {
                            var f, g;
                            if (t = e.origConfig.minValue, r = e.origConfig.maxValue, i = e.axis, o = i.config.axisRange, s = i.getScale(), l = s.getRange(), c = s.getDomain(), u = (l[1] - l[0]) / (c[1] - c[0]), f = h, g = e.startCoord, d = {
                                    x: f.x - g.x,
                                    y: f.y - g.y
                                }, a = r - t, (n = -(n = e.isY ? d.y / u : d.x / u)) > 0) n = Math.min(o.max - r, n);
                            else {
                                if (!(n < 0)) return;
                                n = -Math.min(t - o.min, -n)
                            }
                            r = (t += n) + a, i.setVisibleConfig(t, r)
                        })) : (this.getFromEnv("axesObArr").forEach((function(e) {
                            e.origConfig = e.axis.getVisibleConfig(), e.startCoord = h
                        })), this.setDrag(!0)))
                    }, r.dependancyFn = function(e) {
                        "zoomout" === e.type ? !this._checkStackLen() && this.disable() : "zoomin" === e.type ? this.enable(e) : "dragzoomdisabled" === e.type ? this._checkStackLen() && this.enable(e) : "dragzoomenabled" === e.type && this.disable(e)
                    }, t
                }(o["default"]);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = n(r(302)),
                s = r(193),
                l = function(e) {
                    return e < 0 ? -e : e
                },
                c = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var r = (0, a["default"])(t);
                        return r.controlArr = [{
                            nativeInteraction: ["fc-pinchstart"],
                            callback: r.pinchstart.bind(r),
                            component: r
                        }, {
                            nativeInteraction: ["fc-pinchmove"],
                            callback: r.pinchmove.bind(r),
                            component: r
                        }], t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "pinchZoom"
                    }, r.configure = function() {
                        e.prototype.configure.call(this), this.enable()
                    }, r.getCenter = function(e, t) {
                        var r = this.getFromEnv("chart"),
                            n = (0, s.getMouseCoordinate)(r.getLinkedItem("container"), {
                                pageX: (e.pageX + t.pageX) / 2,
                                pageY: (e.pageY + t.pageY) / 2
                            }, r);
                        return {
                            x: n.chartX,
                            y: n.chartY
                        }
                    }, r.pinchmove = function(e) {
                        var t, r, n, a, i, o, s, c, u = this,
                            d = e.originalEvent.data,
                            h = d.distanceX,
                            f = d.distanceY,
                            g = u.config,
                            p = g.touchConfig,
                            m = {},
                            v = !1,
                            b = {},
                            y = u.getFromEnv("chart"),
                            x = u.getFromEnv("axesObArr"),
                            w = Math.pow(10, g.zoomDecimalLimit) || 1,
                            C = y.getChildContainer().plotGroup;
                        t = l(h / p.distanceX), r = l(f / p.distanceY), x.forEach((function() {
                            C.transform(""), C.scale(t, r, p.center.x, p.center.y)
                        })), clearTimeout(g.chartDraw), g.chartDraw = setTimeout((function() {
                            C.transform(""), x.forEach((function(e) {
                                var l = e.axis,
                                    d = function(e, t, r, n, a) {
                                        var i = e.getVisibleConfig(),
                                            o = e.getValue(t[n ? "y" : "x"] + e.getTranslation()),
                                            s = o - i.minValue,
                                            l = i.maxValue - o,
                                            c = e.config.axisRange;
                                        return {
                                            min: Math.round(Math.max(c.min, o - s / r) * a) / a,
                                            max: Math.round(Math.min(c.max, o + l / r) * a) / a
                                        }
                                    }(l, p.center, e.isY ? r : t, e.isY, w),
                                    h = d.min,
                                    f = d.max,
                                    g = e.stack,
                                    y = l.getVisibleConfig(),
                                    x = l.getLimit(),
                                    C = g.length - 1,
                                    _ = g[C],
                                    k = Math.floor(h) === x.min && Math.ceil(f) === x.max,
                                    S = l.getZoom() >= w;
                                if (_)
                                    if (k) e.stack = [], m.zoomout = !0;
                                    else if (_.minValue > h && _.maxValue < f) {
                                    for (; _ && _.minValue > h && _.maxValue < f;) g.pop(), _ = g[--C];
                                    m.zoomout = !0
                                } else S || (g.push(y), m.zoomin = !0);
                                else k || S || (g.push(y), m.zoomin = !0);
                                e.isY ? (o = h, s = f) : (a = h, i = f, b = u.constructor._getZoomInfo(a, i, l)), c = e.stack.length + 1, n = l.setVisibleConfig(h, f), v = v || n
                            })), v && (m.zoomout && u._raiseZoomEvents("zoomout", "zoomedout", Object.assign(b, {
                                level: c,
                                startX: a,
                                endX: i,
                                startY: o,
                                endY: s
                            })), m.zoomin && u._raiseZoomEvents("zoomin", "zoomedin", Object.assign(b, {
                                level: c,
                                startX: a,
                                endX: i,
                                startY: o,
                                endY: s
                            }))), g.chartDraw = null
                        }), 250)
                    }, r.pinchstart = function(e) {
                        var t, r = e.originalEvent.data,
                            n = r;
                        this.getFromEnv("animationManager").setAnimationState("touch"), n.center = this.getCenter(r.finger0, r.finger1), this.config.touchConfig = r, this.getFromEnv("axesObArr").forEach((function(e) {
                            t = e.axis, e.visibleConfig = t.getVisibleConfig(), e.centerVal = t.getValue(e.isY ? n.center.y : n.center.x)
                        }))
                    }, r.setControl = function() {
                        var e = this.getLinkedParent(),
                            t = this.controlArr;
                        e.releaseControl(t), this.isEnabled() && e.getControl(t)
                    }, t
                }(o["default"]);
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = n(r(302)),
                s = r(193),
                l = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var r = (0, a["default"])(t);
                        return r.controlArr = [{
                            nativeInteraction: ["fc-dragend"],
                            callback: r.end.bind(r),
                            component: r
                        }, {
                            nativeInteraction: ["fc-dragmove"],
                            callback: r.move.bind(r),
                            component: r
                        }, {
                            nativeInteraction: ["fc-dragstart"],
                            callback: r.start.bind(r),
                            component: r
                        }], t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "swipeGesture"
                    }, r.configure = function() {
                        e.prototype.configure.call(this), this.enable()
                    }, r.getPresentScrollValue = function() {
                        var e = this.config.xAxis,
                            t = e.getVisibleConfig(),
                            r = e.getLimit(),
                            n = t.maxValue - t.minValue,
                            a = r.max - r.min;
                        return (t.minValue - r.min) / (a - n)
                    }, r.start = function(e) {
                        var t, r, n = this.getFromEnv("chart"),
                            a = this.config;
                        t = (0, s.getMouseCoordinate)(n.getFromEnv("chart-container"), e.originalEvent, n), a.previousX = t.chartX, a.previousY = t.chartY, a.presentScrollValue = r = this.getPresentScrollValue(), n.fireChartInstanceEvent("scrollStart", {
                            scrollPosition: r
                        })
                    }, r.move = function(e) {
                        var t, r = this.config,
                            n = this.getFromEnv("chart"),
                            a = r.xAxis,
                            i = n.getChildren("scrollBar") && n.getChildren("scrollBar")[0],
                            o = i && i.getChildren("scrollAnchor")[0],
                            l = a.config.axisRange,
                            c = (0, s.getMouseCoordinate)(n.getFromEnv("chart-container"), e.originalEvent, n),
                            u = c.chartX,
                            d = c.chartY,
                            h = i && i.config && !i.config.isHorizontal ? (d - r.previousY) / r.plotDifference : (u - r.previousX) / r.plotDifference,
                            f = a.getVisibleConfig(),
                            g = r.previousScrollValue = r.presentScrollValue,
                            p = f.minValue - h,
                            m = r.axisMin,
                            v = r.axisMax,
                            b = f.maxValue - h;
                        p < m && m === f.minValue || b > v && v === f.maxValue || (p < m ? (b += h, b -= h = f.minValue - m, p = m) : v < b && (p += h, p += h = v - f.maxValue, b = v), t = (p - l.min) / (l.max - l.min - (b - p)), o.config.scrollPosition = t, n.getFromEnv("animationManager").setAnimationState("scroll"), a.setVisibleConfig(p, b), n.setScrollBarDimension && n.setScrollBarDimension(), i.asyncDraw(), n.fireChartInstanceEvent("onScroll", {
                            scrollPosition: g
                        }), r.previousX = u, r.previousY = d, r.presentScrollValue = this.getPresentScrollValue())
                    }, r.end = function() {
                        var e = this.config;
                        this.getFromEnv("chart").fireChartInstanceEvent("scrollEnd", {
                            previousScrollPosition: e.previousScrollValue,
                            scrollPosition: e.presentScrollValue
                        })
                    }, r.setControl = function() {
                        var e = this.getLinkedParent(),
                            t = this.controlArr;
                        e.releaseControl(t), this.isEnabled() && e.getControl(t)
                    }, r.draw = function() {
                        var e = this.config,
                            t = this.getFromEnv("canvas").getAxes().filter((function(e) {
                                return !e.isY
                            })),
                            r = e.xAxis = t && t[0] && t[0].axis,
                            n = r.config.axisRange;
                        e.plotDifference = r.getPixel(1) - r.getPixel(0), e.axisMin = n.min, e.axisMax = n.max
                    }, t
                }(o["default"]);
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t = window,
                    r = t.navigator.userAgent,
                    a = /msie/i.test(r) && !t.opera,
                    i = Math,
                    o = i.min,
                    s = i.round,
                    l = t.parseFloat,
                    c = String,
                    u = "rgba(192,192,192," + (a ? .002 : 1e-6) + ")",
                    d = {
                        enabled: !1,
                        "false": !1,
                        0: !1,
                        disabled: !0,
                        "true": !0,
                        1: !0
                    };
                e.define && e.define([{
                    name: "button",
                    button: function(t, r, n, a, i, o) {
                        var s, l = t,
                            c = r,
                            d = n,
                            h = a,
                            f = i,
                            g = o,
                            p = c,
                            m = this.group("button", p),
                            v = l.labelFill,
                            b = l.symbolFill,
                            y = l.fill,
                            x = l.button[5],
                            w = l.button[6],
                            C = l.hoverFill,
                            _ = l.stroke,
                            k = l["symbol-stroke"],
                            S = l["stroke-width"],
                            E = l["symbol-stroke-width"],
                            A = l.config;
                        if ("object" == typeof l && l.button) {
                            var T = l.button;
                            l = T[0], c = T[1], d = T[2], h = T[3], f = T[4], p = T[5]
                        }
                        for (s in p = p || g, m._.button = {
                                bound: this.rect(m),
                                tracker: this.rect(m).attr({
                                    fill: u,
                                    stroke: u,
                                    cursor: "pointer"
                                }).data("compositeButton", m)
                            }, !e.is(f, "object") && (f = {}), e.fn.button.fn) m[s] = e.fn.button.fn[s];
                        for (s in e.fn.button.ca) m.ca[s] = e.fn.button.ca[s];
                        return A && m.attr({
                            config: A
                        }), m.attr({
                            "button-padding": [f.horizontalPadding, f.verticalPadding],
                            "button-label": d,
                            "button-label-size": x,
                            "button-label-family": w,
                            "button-symbol": h,
                            "button-disabled": f.disabled || "false",
                            "button-symbol-position": f.symbolPosition,
                            "button-symbol-padding": f.symbolPadding
                        }).attr("button-repaint", [l, c, f.width, f.height, f.r]).attr({
                            labelFill: v,
                            symbolFill: b,
                            fill: y,
                            hoverFill: C,
                            stroke: _,
                            "symbol-stroke": k,
                            "stroke-width": S,
                            "stroke-linecap": "round",
                            "symbol-stroke-width": E
                        })
                    },
                    data: {
                        hoverin: function() {
                            var e = this,
                                t = e._.button,
                                r = t.hoverbackIn,
                                n = e._hover || {};
                            n.fill || n["fill-symbol"] || n.stroke || n["stroke-width"] || n.cursor || n.labelFill || n["symbol-stroke"] ? (n.fill && e.bottom.attr("fill", n.fill) && !n["fill-symbol"] && t.symbol.attr("fill", n.fill), n["fill-symbol"] && t.symbol.attr("fill", n["fill-symbol"]), n.stroke && e.bottom.attr("stroke", n.stroke) && t.symbol.attr("stroke", n.stroke), n["stroke-width"] && e.bottom.attr("stroke-width", n["stroke-width"]) && t.symbol.attr("stroke-width", n["stroke-width"]), n.cursor && t.tracker.attr("cursor", n.cursor), n.labelFill && t.label && t.label.attr("fill", n.labelFill), n["symbol-stroke"] && t.symbol.attr("stroke", n["symbol-stroke"]), r && r()) : r && !1 === r(arguments) || e.attr("fill", "hover"), e.hovered = !0
                        },
                        hoverout: function() {
                            var e = this,
                                t = e._.button,
                                r = t.hoverbackOut,
                                n = e._normal || {};
                            n.fill || n["fill-symbol"] || n.stroke || n["stroke-width"] || n.cursor || n.labelFill || n["symbol-stroke"] ? (n.fill && e.bottom.attr("fill", n.fill) && !n["fill-symbol"] && t.symbol.attr("fill", n.fill), n.stroke && e.bottom.attr("stroke", n.stroke) && t.symbol.attr("stroke", n.stroke), n["fill-symbol"] && t.symbol.attr("fill", n["fill-symbol"]), n["stroke-width"] && e.bottom.attr("stroke-width", n["stroke-width"]) && t.symbol.attr("stroke-width", n["stroke-width"]), n["symbol-stroke"] && t.symbol.attr("stroke", n["symbol-stroke"]), n.labelFill && t.label && t.label.attr("fill", n.labelFill), n.cursor && t.tracker.attr("cursor", n.cursor), r && r()) : r && !1 === r(arguments) || e.attr("fill", e.pressed || e.active ? "active" : "normal"), e.hovered = !1
                        },
                        mousedown: function() {
                            var e = this,
                                t = e._.button,
                                r = e._pressed || {};
                            r.fill || r["fill-symbol"] || r.stroke || r["stroke-width"] || r.cursor || r.labelFill || r["symbol-stroke"] ? (r.fill && e.bottom.attr("fill", r.fill) && !r["fill-symbol"] && t.symbol.attr("fill", r.fill), r.stroke && e.bottom.attr("stroke", r.stroke) && t.symbol.attr("stroke", r.stroke), r["fill-symbol"] && t.symbol.attr("fill", r["fill-symbol"]), r["stroke-width"] && e.bottom.attr("stroke-width", r["stroke-width"]) && t.symbol.attr("stroke-width", r["stroke-width"]), r.labelFill && t.label && t.label.attr("fill", r.labelFill), r["symbol-stroke"] && t.symbol.attr("stroke", r["symbol-stroke"]), r.cursor && t.tracker.attr("cursor", r.cursor)) : e.attr("fill", "active"), e.pressed = !0
                        },
                        mouseup: function() {
                            var e = this,
                                t = e._.button,
                                r = t.callback,
                                n = e._normal || {};
                            n.fill || n["fill-symbol"] || n.stroke || n["stroke-width"] || n.cursor || n.labelFill || n["symbol-stroke"] ? (n.fill && e.bottom.attr("fill", n.fill) && !n["fill-symbol"] && t.symbol.attr("fill", n.fill), n.stroke && e.bottom.attr("stroke", n.stroke) && t.symbol.attr("stroke", n.stroke), n["fill-symbol"] && t.symbol.attr("fill", n["fill-symbol"]), n["stroke-width"] && e.bottom.attr("stroke-width", n["stroke-width"]) && t.symbol.attr("stroke-width", n["stroke-width"]), n.labelFill && t.label && t.label.attr("fill", n.labelFill), n["symbol-stroke"] && t.symbol.attr("stroke", n["symbol-stroke"]), n.cursor && t.tracker.attr("cursor", n.cursor)) : e.attr("fill", (e.hovered ? "hover" : e.active && "active") || "normal"), e.pressed = !1, r && r(arguments)
                        },
                        mousemove: function() {
                            var e = this,
                                t = e._.button,
                                r = t.mousemove;
                            r && r(arguments)
                        }
                    },
                    fn: {
                        tooltip: function() {
                            return e.el.tooltip && e.el.tooltip.apply(this._.button.tracker, arguments), this
                        },
                        buttonclick: function(e, t) {
                            var r = t,
                                n = this,
                                a = n._.button;
                            return r = r || n, a.callback = function() {
                                return e.apply(r, arguments)
                            }, n
                        },
                        labelcss: function() {
                            var e = this._.button,
                                t = e.label;
                            return e.cssArg = arguments, t && t.css.apply(t, arguments), this.attr("button-repaint", this.attrs["button-repaint"])
                        },
                        buttonhover: function(e, t, r, n, a, i) {
                            var o = this,
                                s = o._.button,
                                l = r || o,
                                c = n || o,
                                u = i || o;
                            return a && (s.mousemove = function() {
                                return a.apply(u, arguments)
                            }), s.hoverbackIn = function() {
                                return e.apply(l, arguments)
                            }, s.hoverbackOut = function() {
                                return t.apply(c, arguments)
                            }, o
                        },
                        remove: function() {
                            var t, r = this,
                                n = r._.button;
                            for (t in r.attr("button-disabled", "true"), n) n[t] && n[t].remove && n[t].remove(), n[t] = null;
                            delete r._.button, e.el.remove.apply(r, arguments)
                        }
                    },
                    ca: {
                        "button-active": function(e) {
                            var t = this;
                            t.attr("fill", (t.active = !!e) ? "active" : t.hovered ? "hover" : "normal")
                        },
                        "button-disabled": function(e) {
                            var t = this,
                                r = e,
                                n = t.paper,
                                a = t._.button,
                                i = a.tracker,
                                o = t.attrs["button-disabled"],
                                s = n.button.data,
                                l = t._disabled || {};
                            if (o = d[o], void 0 !== (r = d[r]) && r !== o) switch (r) {
                                case !0:
                                    l.fill || l.stroke || l["stroke-width"] || l.cursor ? (l.fill && t.bottom.attr("fill", l.fill) && a.symbol.attr("fill", l.fill), l.stroke && t.bottom.attr("stroke", l.stroke) && a.symbol.attr("stroke", l.stroke), l["stroke-width"] && t.bottom.attr("stroke-width", l["stroke-width"] && a.symbol.attr("fill", l.fill)), l.cursor && a.tracker.attr("cursor", l.cursor)) : i.attr("fill", "rgba(204,204,205,.5)"), i.off("fc-mousedown", s.mousedown).off("fc-unmouseup", s.mouseup).unhover(s.hoverin, s.hoverout).unmousemove(s.mousemove);
                                    break;
                                case !1:
                                    i.attr("fill", u).on("fc-mousedown", s.mousedown, t).on("fc-mouseup", s.mouseup, t).hover(s.hoverin, s.hoverout, t, t).mousemove(s.mousemove, t)
                            }
                        },
                        "button-label": function(e) {
                            var t = this,
                                r = t._.button,
                                n = t.attrs,
                                a = e,
                                i = r.label,
                                o = r.cssArg,
                                s = t.attrs["button-repaint"];
                            "none" === (a = c(a || "")) ? i && (r.label = i.remove()): a && (!i && (i = r.label = t.paper.text(t).insertBefore(r.tracker)), i.attr({
                                text: a,
                                "text-anchor": "middle",
                                "vertical-align": "middle"
                            }), o && o.length && i.css.apply(i, o)), s && n["button-label"] !== a && t.attr("button-repaint", s)
                        },
                        "button-label-size": function(e) {
                            var t = this,
                                r = t._.button,
                                n = t.attrs,
                                a = r.label,
                                i = t.attrs["button-label-size"];
                            a && a.attr({
                                "font-size": e
                            }), i && n["button-label-size"] !== e && t.attr("button-label-size", i)
                        },
                        "button-label-family": function(e) {
                            var t = this,
                                r = t._.button,
                                n = t.attrs,
                                a = e,
                                i = r.label,
                                o = t.attrs["button-label-family"];
                            i && (void 0 === a && (a = "sans-serif"), i.attr({
                                "font-family": a
                            }), o && n["button-label-family"] !== a && t.attr("button-label-family", o))
                        },
                        "button-symbol": function(e) {
                            var t = this,
                                r = t._.button,
                                n = e,
                                a = r.symbol,
                                i = t.attrs["button-repaint"];
                            "none" === (n = c(n || "")) ? (a && (r.symbol = a.remove()), delete r.symbol) : n && !a && (a = r.symbol = t.paper.symbol(t).insertAfter(r.bound)), i && t.attr("button-repaint", i)
                        },
                        "button-symbol-position": function(e) {
                            return {
                                "button-symbol-position": {
                                    top: "top",
                                    right: "right",
                                    bottom: "bottom",
                                    left: "left",
                                    none: "none"
                                }[c(e).toLowerCase()] || "none"
                            }
                        },
                        "button-symbol-padding": function(e) {
                            return {
                                "button-symbol-padding": l(e)
                            }
                        },
                        "button-padding": function(e, t) {
                            var r = e,
                                n = t;
                            return {
                                "button-padding": [null == r && (r = 5) || l(r), null == n && r || l(n)]
                            }
                        },
                        "button-repaint": function(t, r, a, i, l) {
                            var c, u, d, h, f, g, p, m = this._.button,
                                v = t,
                                b = r,
                                y = a,
                                x = i,
                                w = l,
                                C = m.bound,
                                _ = m.label,
                                k = m.symbol,
                                S = this.attrs,
                                E = S["button-padding"],
                                A = E[0],
                                T = E[1];
                            if (void 0 === v && (v = 0), void 0 === b && (b = 0), void 0 !== y && void 0 !== x || (g = _ && _.getBBox() || {
                                    width: 0,
                                    height: 0
                                }, void 0 === y && (y = 2 * A + g.width), void 0 === x && (x = 2 * T + g.height)), (p = e.crispBound(v, b, y, x, C.attr("stroke-width"))).r = w = (0, n.pluck)(w, s(.1 * o(x, y))), v = p.x, b = p.y, y = p.width, x = p.height, _ && _.attr({
                                    x: v + y / 2,
                                    y: b + x / 2
                                }), k) {
                                switch (!e.is(f = S["button-symbol-padding"], "finite") && (f = .2 * x), h = .5 * (d = x - T), S["button-symbol-position"] + (_ ? "+" : "-")) {
                                    case "right+":
                                        c = v + (y += 2 * h + T) - h - A, u = b + .5 * x, _.attr("transform", ["t", -(d + f), 0]);
                                        break;
                                    case "left+":
                                        y += 2 * h + T, c = v + A + h, u = b + .5 * x, _.attr("transform", ["t", d + f, 0]);
                                        break;
                                    case "top+":
                                        x += 2 * h + f, c = v + .5 * y, u = b + E[1] + h, _.attr("transform", ["t", 0, d + f]);
                                        break;
                                    case "bottom+":
                                        c = v + .5 * y, u = b + (x += 2 * h + f) - T - h, _.attr("transform", ["t", 0, -(d + f)]);
                                        break;
                                    default:
                                        c = v + .5 * y, u = b + .5 * x
                                }
                                k.attr("symbol", [S["button-symbol"], c, u, h, y, x])
                            }
                            m.bound.attr(p), m.tracker.attr(p)
                        },
                        fill: function(t, r) {
                            void 0 === r && (r = !0);
                            var n = this,
                                a = n._.button,
                                i = a.bound,
                                o = t,
                                s = {
                                    normal: a.gradient,
                                    active: a.gradientActive,
                                    hover: a.gradientHover
                                }[o];
                            return s || (r || ((o = e.getRGB(o)).error && (o = e.color("#cccccc")), o = "opacity" in o ? "rgba(" + [o.r, o.g, o.b, o.opacity] + ")" : "rgb(" + [o.r, o.g, o.b] + ")"), a.gradient = r ? o : [90, e.tintshade(o, -.8).rgba + ":0", e.tintshade(o, .8).rgba + ":100"].join("-"), a.gradientActive = [270, e.tintshade(o, -.8).rgba + ":0", e.tintshade(o, .8).rgba + ":100"].join("-"), s = (n.pressed || n.active) && a.gradientActive || n.hovered && a.gradienthover || a.gradient), i.attr("fill", s), !1
                        },
                        hoverFill: function(t) {
                            var r = this._.button,
                                n = t;
                            return n = "opacity" in (n = e.getRGB(n)) ? "rgba(" + [n.r, n.g, n.b, n.opacity] + ")" : "rgb(" + [n.r, n.g, n.b] + ")", r.gradientHover = n, !1
                        },
                        labelFill: function(e) {
                            var t = this._.button,
                                r = t.label;
                            return r && e && (t.labelFill = e, r.attr("fill", e)), !1
                        },
                        symbolFill: function(e) {
                            var t = this._.button,
                                r = t.symbol;
                            return r && e && (t.symbolFill = e, r.attr("fill", e)), !1
                        },
                        stroke: function(t) {
                            var r = this._.button,
                                n = t;
                            return (n = e.color(n)).error && (n = e.color("#999999")), r.bound.attr("stroke", n), !1
                        },
                        "symbol-stroke": function(e) {
                            var t = this._.button.symbol;
                            return t && e && t.attr("stroke", e), !1
                        },
                        "stroke-width": function(e) {
                            var t = this._.button;
                            return t.bound.attr("stroke-width", e), t.tracker.attr("stroke-width", e), !1
                        },
                        "symbol-stroke-width": function(e) {
                            var t = this._.button.symbol;
                            return t && e && t.attr("stroke-width", e), !1
                        },
                        config: function(e) {
                            var t = this;
                            e.hover && (t._hover = {
                                fill: e.hover.fill,
                                stroke: e.hover.stroke,
                                "stroke-width": e.hover["stroke-width"],
                                cursor: e.hover.cursor,
                                "fill-symbol": e.hover["fill-symbol"],
                                "symbol-stroke": e.hover["symbol-stroke"],
                                labelFill: e.hover.labelFill
                            }), e.disabled && (t._disabled = {
                                fill: e.disabled.fill,
                                stroke: e.disabled.stroke,
                                "stroke-width": e.disabled["stroke-width"],
                                "symbol-stroke": e.disabled["symbol-stroke"],
                                cursor: e.disabled.cursor,
                                labelFill: e.disabled.labelFill
                            }), e.pressed && (t._pressed = {
                                fill: e.pressed.fill,
                                stroke: e.pressed.stroke,
                                "stroke-width": e.pressed["stroke-width"],
                                cursor: e.pressed.cursor,
                                "fill-symbol": e.pressed["fill-symbol"],
                                "symbol-stroke": e.pressed["symbol-stroke"],
                                labelFill: e.pressed.labelFill
                            }), e.normal && (t._normal = {
                                fill: e.normal.fill,
                                stroke: e.normal.stroke,
                                "stroke-width": e.normal["stroke-width"],
                                cursor: e.normal.cursor,
                                "fill-symbol": e.normal["fill-symbol"],
                                "symbol-stroke": e.normal["symbol-stroke"],
                                labelFill: e.normal.labelFill
                            }), e.symbol && (e.symbol = {
                                stroke: e.normal.stroke,
                                "stroke-width": e.normal["stroke-width"]
                            })
                        }
                    }
                }])
            };
            var n = r(193)
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(193),
                a = function(e) {
                    s(e, "legendItemClicked")
                },
                i = function(e) {
                    s(e, "legendItemRollover")
                },
                o = function(e) {
                    s(e, "legendItemRollout")
                },
                s = function(e, t) {
                    var r = e.sender,
                        a = r.getLinkedItem("owner"),
                        i = r.getFromEnv("chart"),
                        o = a && a.getEventArgs ? a.getEventArgs(r) : r.config.eventArguments,
                        s = (0, n.getMouseCoordinate)(r.getFromEnv("chart-container"), e, i);
                    /click/gi.test(t) || void 0 === o.visible || (o.visible = !o.visible), "timeseries" === i.getName().toLowerCase() && (o.visible = /click/gi.test(t) ? !i.config.legendMap[r.config.label].visibility : i.config.legendMap[r.config.label].visibility), o.chartX = s.chartX, o.chartY = s.chartY, o.pageX = s.pageX, o.pageY = s.pageY, o.id = i.getId(), o.legendItemId = r.getId(), o.legendItemIndex = r.config.index, i.fireChartInstanceEvent(t, o, e)
                },
                l = {
                    extension: function(e) {
                        var t;
                        e.addEventListener("instantiated", (function(e) {
                            var r;
                            "legendItem" === (t = e.sender).getType() && ((r = t).addEventListener("fc-click", a), r.addEventListener("fc-mouseover", i), r.addEventListener("fc-mouseout", o))
                        }))
                    },
                    name: "legendEventManagerLinker",
                    type: "extension",
                    requiresFusionCharts: !0
                };
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(330));

            function i(e) {
                void 0 === e && (e = {});
                var t = this.apiInstance.getChildren("exportModule");
                return void 0 !== (t = t && t[0]) && (t.exportChart(e), !0)
            }
            var o = {
                extension: function(e) {
                    e.addEventListener("instantiated", (function(e) {
                        var t = e.sender;
                        (function(e) {
                            return "chartAPI" === e.getType()
                        })(t) && t.registerFactory("export", (function(e) {
                            var r;
                            t.getFromEnv("chartInstance").exportChart = i, Number(e.getFromEnv("dataSource").chart.exportenabled) && (e.getChildren("exportModule") ? r = e.getChildren("exportModule")[0] : (r = new a["default"], e.attachChild(r, "exportModule"), r.addToEnv("chartInstance", e.getFromEnv("chartInstance")), r.addToEnv("chartMenuList", e.getFromEnv("chartMenuList"))), r.configure({
                                chartConfig: e.getFromEnv("dataSource").chart
                            }))
                        }), ["toolbox"])
                    }))
                },
                name: "Export",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = o
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(192)),
                i = n(r(207)),
                o = r(208),
                s = r(201),
                l = r(193),
                c = n(r(331)),
                u = r(332),
                d = r(335),
                h = r(333);

            function f(e, t) {
                var r = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }))), r.push.apply(r, n)
                }
                return r
            }
            var g = /\s\bx\b=['"][^'"]+?['"]/gi,
                p = /\s\by\b=['"][^'"]+?['"]/gi,
                m = window,
                v = m.document,
                b = "https:" === m.location.protocol ? "https://export.api3.fusioncharts.com/" : "http://export.api3.fusioncharts.com/",
                y = "https:" === m.location.protocol ? "https://export.api3.fusioncharts.com/api/v1.0/logs" : "http://export.api3.fusioncharts.com/api/v1.0/logs",
                x = m.navigator.userAgent.match(/(iPad|iPhone|iPod)/g),
                w = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).config = {
                            exportOption: {},
                            chartConfig: {
                                caption: "",
                                subcaption: "",
                                width: "",
                                height: ""
                            }
                        }, t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "exportModule"
                    }, r.getType = function() {
                        return "extension"
                    }, r.configureMenuBar = function() {
                        var e, t, r, n, i, o, c, d, h, g = this,
                            p = g.getFromEnv("toolbar"),
                            v = !!m.btoa,
                            b = g.getFromEnv("chart"),
                            y = g.getFromEnv("chart-attrib").exportformats,
                            x = p.getChild("hamburgerMenu-" + p.getId() + "-" + b.getId() + "-0"),
                            w = (0, s.getDep)("Excelexport"),
                            C = "timeseries" === b.getName(),
                            _ = {
                                PNG: "Export As " + u.EXPORTFORMAT.PNG.toUpperCase(),
                                JPG: "Export As " + u.EXPORTFORMAT.JPG.toUpperCase(),
                                PDF: "Export As " + u.EXPORTFORMAT.PDF.toUpperCase(),
                                SVG: "Export As " + u.EXPORTFORMAT.SVG.toUpperCase(),
                                CSV: "Export As " + u.EXPORTFORMAT.CSV.toUpperCase(),
                                XLSX: "Export As " + u.EXPORTFORMAT.XLSX.toUpperCase()
                            },
                            k = [];
                        if (g.config.exportOption.exportenabled) {
                            if (o = function(e) {
                                    return function() {
                                        g.config.exportOption.exportformat = e, g.exportChart({})
                                    }
                                }, y)
                                for (n = 0, i = (e = y.split("|")).length; n < i; n++) t = e[n].split("="), (r = (0, l.trimString)(t[0].toUpperCase())).toLowerCase() === u.EXPORTFORMAT.XLSX && (h = !0), _[r] && (_[r] = t[1] || _[r]), _[r] && (d || (d = {})) && (d[r] = !0);
                            for (r in g.config.exportOption.exportformats = function(e) {
                                    for (var t = 1; t < arguments.length; t++) {
                                        var r = null != arguments[t] ? arguments[t] : {};
                                        t % 2 ? f(Object(r), !0).forEach((function(t) {
                                            (0, a["default"])(e, t, r[t])
                                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : f(Object(r)).forEach((function(t) {
                                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t))
                                        }))
                                    }
                                    return e
                                }({}, _), _) "XLSX" === r && (!v || C || !w || w && w.then) || d && !d[r] || ("CSV" !== r || v && !C) && (c = {
                                name: _[r],
                                handler: o(r),
                                action: "click"
                            }, k.push(c));
                            x.appendInMenu(k), v && !C && w && w.then && w.then((function() {
                                y && !h || (x.appendInMenu([{
                                    name: _.XLSX,
                                    handler: o("XLSX"),
                                    action: "click"
                                }]), x.asyncDraw())
                            }))
                        }
                    }, r.configure = function(e) {
                        var t, r, n, a = this.getFromEnv("chartInstance"),
                            i = this.config,
                            o = i.chartConfig,
                            s = i.exportOption,
                            c = e.chartConfig;
                        c.caption && (o.caption = (0, l.pluck)(c.caption, "")), c.subcaption && (o.subcaption = (0, l.pluck)(c.subcaption, "")), s.exportenabled = (0, l.pluckNumber)(c.exportenabled, 0), s.exportshowmenuitem = (0, l.pluckNumber)(c.exportshowmenuitem, 1), s.exportformat = (0, l.pluck)(c.exportformat, u.EXPORTFORMAT.PNG), s.exporthandler = (0, l.pluck)(c.html5exporthandler, c.exporthandler, b), s.exportaction = c.exportaction && "string" == typeof c.exportaction ? (t = c.exportaction.toLowerCase(), [u.EXPORTACTION.DOWNLOAD, u.EXPORTACTION.SAVE, u.EXPORTACTION.DOWNLOADSAVE].indexOf(t) >= 0 ? t : u.EXPORTACTION.DOWNLOAD) : u.EXPORTACTION.DOWNLOAD, s.exporttargetwindow = (0, l.pluck)(c.exporttargetwindow, x ? "_parent" : "_self"), s.exportfilename = (0, l.pluck)(c.exportfilename, "FusionCharts"), s.exportparameters = (0, l.pluck)(c.exportparameters, ""), s.exportcallback = (0, l.pluck)(c.exportcallback, ""), s.exportwithimages = (0, l.pluckNumber)(c.exportwithimages, 1), s.exportmode = ("undefined" != typeof c.exportatclientside && (r = {
                            1: u.EXPORTMODE.AUTO,
                            0: u.EXPORTMODE.AUTO
                        }[c.exportatclientside]), r = (r = c.exportmode || r || u.EXPORTMODE.AUTO).toLowerCase()), s.logenabled = (0, l.pluckNumber)(c.logenabled, 0), s.loghandler = (0, l.pluck)(c.html5loghandler, c.loghandler, y), s.logmode = void 0 !== (n = c.logmode) && "string" == typeof n && n.toUpperCase() in u.LOGMODE ? u.LOGMODE[n.toUpperCase()] : u.LOGMODE.AUTO, s.bgcolor = function(e) {
                            return e.jsVars.transparent || 0 === (0, l.pluckNumber)(e.options.containerBackgroundOpacity, 1) ? l.BLANKSTRING : e.options.containerBackgroundColor || "#FFFFFF"
                        }(a), s.bgalpha = function(e) {
                            return e.jsVars.transparent ? 0 : (0, l.pluckNumber)(e.options.containerBackgroundOpacity, 1) + ""
                        }(a), s.exportshowmenuitem && this.configureMenuBar()
                    }, r.exportChart = function(e) {
                        var t, r, n, a = this,
                            i = a.getFromEnv("chartInstance"),
                            o = a.getFromEnv("chart"),
                            f = "object" == typeof e && function(e) {
                                var t, r = {};
                                for (t in e) r[t.toLowerCase()] = e[t];
                                return r
                            }(e) || {},
                            b = (0, l.extend2)((0, l.extend2)({}, a.config.exportOption), f),
                            y = (b.exportformat || u.EXPORTFORMAT.PNG).toLowerCase(),
                            x = b.exporthandler,
                            w = b.exportaction,
                            C = b.exporttargetwindow || "",
                            _ = b.exportfilename,
                            k = b.exportparameters,
                            S = b.exportcallback,
                            E = b.exportwithimages,
                            A = b.exportmode,
                            T = b.logenabled,
                            N = b.loghandler,
                            M = b.logmode,
                            D = function(e) {
                                o.fireChartInstanceEvent("exportDataReady", e)
                            };
                        o.fireChartInstanceEvent("beforeExport", b, void 0, (function() {
                            var e, f, F, I, L, O, R, P, V, B = i.id,
                                j = a.config.chartConfig.caption,
                                H = a.config.chartConfig.subcaption,
                                G = this.apiInstance.getFromEnv("paper"),
                                U = this.apiInstance.getFromEnv("core-options")["export"].useCanvas,
                                z = (0, c["default"])(o.getChildren("chartMenuBar")) ? o.getChildren("chartMenuBar")[0] : o.getChildren("actionBar")[0],
                                W = z.getChild("hamburgerMenu-" + z.getId() + "-" + o.getId() + "-0"),
                                X = {
                                    DOMId: B,
                                    height: G.height,
                                    width: G.width,
                                    fileName: _ + "." + y,
                                    statusCode: void 0,
                                    statusMessage: void 0,
                                    notice: void 0
                                },
                                $ = {
                                    exportAction: w,
                                    exportTargetWindow: C,
                                    exportCallback: S,
                                    fusionCharts: i,
                                    paper: G,
                                    chartId: B,
                                    exportHandler: x,
                                    logEnabled: T,
                                    logMode: M,
                                    logHandler: N
                                },
                                Y = function(e, t, r) {
                                    var n;
                                    return n = !!T, M === u.LOGMODE.CLIENT && (n = !1), {
                                        charttype: i.chartType(),
                                        stream_type: e || "",
                                        stream: t || "",
                                        meta_bgColor: b.bgcolor || "",
                                        meta_bgAlpha: b.bgalpha || "1",
                                        meta_DOMId: i.id,
                                        meta_width: G.width || a.config.chartConfig.width,
                                        meta_height: G.height || a.config.chartConfig.height,
                                        chart_caption: j,
                                        chart_sub_caption: H,
                                        is_single_export: !0,
                                        is_full_version: !1,
                                        version: l.PROJECT_VERSION,
                                        user_time_zone: -(new Date).getTimezoneOffset(),
                                        log_enabled: n,
                                        parameters: ["exportfilename=" + _, "exportformat=" + y, "exportaction=" + (0, u.createExportActionOldString)(w), "exportactionnew=" + w, "configuredexportaction=" + (r || w), "exportparameters=" + k].join("|")
                                    }
                                },
                                q = function() {
                                    return {
                                        chartType: i.chartType(),
                                        chartCaption: j,
                                        chartSubCaption: H,
                                        isSingleExport: !0,
                                        isFullVersion: !1,
                                        exportAction: w,
                                        userTimeZone: -(new Date).getTimezoneOffset(),
                                        exportFileName: [_, y].join("."),
                                        exportFormat: y,
                                        version: l.PROJECT_VERSION
                                    }
                                },
                                K = function(e) {
                                    (0, h.downloadCharts)(null, null, null, Y(u.EXPORTFORMAT.SVG, e), $)
                                },
                                J = function(e, t, r) {
                                    var n;
                                    (n = v.createElement("canvas")).width = G.width, n.height = G.height, (0, h.drawSvgOnCanvas)({
                                        svg: F,
                                        canvas: n,
                                        x: 0,
                                        y: 0,
                                        width: G.width,
                                        height: G.height,
                                        useCanvas: U
                                    }, (function() {
                                        switch (e) {
                                            case u.EXPORTFORMAT.PNG:
                                                t(e, n.toDataURL("image/png"), _, r);
                                                break;
                                            case u.EXPORTFORMAT.JPEG:
                                            case u.EXPORTFORMAT.PDF:
                                            default:
                                                t(e, n.toDataURL("image/jpeg"), _, r)
                                        }
                                    }))
                                },
                                Z = function(t, r, n, a, i) {
                                    var o = r;
                                    t === u.EXPORTFORMAT.PDF && ((0, d.addImage)(o, G.height, G.width), o = (0, d.getDataUrl)()), e = i === u.EXPORTMODE.AUTO ? Y("IMAGE-DATA", o) : null, (0, h.downloadCharts)("url", o, n + "." + t, e, a)
                                },
                                Q = D,
                                ee = function(e) {
                                    e === u.LOGMODE.CLIENT && (0, u.logCharts)(q(), $)
                                },
                                te = function(t, r) {
                                    if (L = "undefined" != typeof m.btoa && ("Chrome" === h.browserDetails.name || "Firefox" === h.browserDetails.name || "Safari" === h.browserDetails.name || "Edge" === h.browserDetails.name || "ie" === h.browserDetails.name), "server" !== A && L) w !== u.EXPORTACTION.DOWNLOAD && w !== u.EXPORTACTION.DOWNLOADSAVE || ((0, h.downloadCharts)("blob", t, _ + "." + y, null, $), o.fireChartInstanceEvent("exported", X)), w === u.EXPORTACTION.SAVE || w === u.EXPORTACTION.DOWNLOADSAVE ? (O = w, w === u.EXPORTACTION.DOWNLOADSAVE && (w = u.EXPORTACTION.SAVE), e = Y("IMAGE-DATA", t, O), (0, h.downloadCharts)(null, null, null, e, $), ee(M)) : M !== u.LOGMODE.SERVER && (0, u.logCharts)(q(), $);
                                    else {
                                        var n = new FileReader;
                                        n.onload = function(e) {
                                            for (var t = l.BLANKSTRING, n = new Uint8Array(e.target.result), a = n.byteLength, i = 0; i < a; i++) t += String.fromCharCode(n[i]);
                                            t = r + m.btoa(t), (0, h.downloadCharts)(null, null, null, Y("IMAGE-DATA", t), $), ee(M)
                                        }, n.readAsArrayBuffer(t)
                                    }
                                };
                            if ("xlsx" === y) {
                                if ("undefined" == typeof m.btoa) return o.fireChartInstanceEvent("exportCancelled", b), !1;
                                r = i.getCSVData(), Q(), V = 0, t = [], r.replace(/[^\r\n]+/g, (function(e) {
                                    t[V] = [], t[V] = e.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/).map((function(e) {
                                        return e.replace(/"/g, l.BLANKSTRING)
                                    })), V += 1
                                })), (R = (0, s.getDep)("ExcelExport")) && R(t).then((function(e) {
                                    te(e, "data:application/vnd.ms-excel;base64,")
                                }))
                            } else if ("csv" === y) {
                                if ("undefined" == typeof m.btoa) return o.fireChartInstanceEvent("exportCancelled", b), !1;
                                r = i.getCSVData(), Q(), n = new Blob([r], {
                                    type: "text/csv;base64;"
                                }), te(n, "data:text/csv;base64,")
                            } else(I = W.getChild("listContainer").getLinkedParent().getGraphicalElement("button", "button")) && I.attr("visibility", "hidden"), f = G.toSVG(E), F = (F = G.toSVG(E && (0, h.isCanvasElemSupported)())).replace(/&nbsp;/gi, " "), I && I.attr("visibility", "visible"), f = (f = (f = f.replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi, "$1M 0 0 L 0 0$2")).replace(/NS\d+:/gi, "xlink:")).replace(/&nbsp;/gi, " "), F = (F = (F = F.replace(/NS\d+:/gi, "xlink:")).replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi, "$1M 0 0 L 0 0$2")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi, ""), f = (f = (f = (f = (f = (f = (f = (f = f.replace(/[\w\-]+\=\"undefined\"/gi, "")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi, "")).replace(/rgba\(([^\)]+)\)/gi, (function(e) {
                                return "#" + new l.RGBtoHex(e.split(","))
                            }))).replace(/<svg[^>]+/i, (function(e) {
                                var t = e;
                                return t.match(/height/i) || !G.height && !a.config.chartConfig.height || (t += ' height="' + (G.height || a.config.chartConfig.height) + '"'), t.match(/width/i) || !G.width && !a.config.chartConfig.width || (t += ' width="' + (G.width || a.config.chartConfig.width) + '"'), t
                            }))).replace(/(([\w]+\-)?opacity\s*=\s*)['"][\d\.]+e[\-\+][\d]+["']/gi, '$1"0.001"')).replace(/(([\w]+\-)?opacity\s*:\s*)[\d\.]+e[\-\+][\d]+/gi, "$10.001")).replace(/<text[^\>]+/gi, (function(e) {
                                var t = e;
                                return t = (t = (t = (t = (t = (t = (t = (t = t.replace(/stroke\=[\"\']([a-z0-9\#]+)?[\"\']/gi, "")).replace(/stroke\s*\:\s*([a-z0-9\#]+)?;?/gi, "")).replace(/stroke-width\=[\"\']([a-z0-9\#]+)?[\"\']/gi, "")).replace(/stroke-width\s*\:\s*([a-z0-9\#]+)?;?/gi, "")).replace(/stroke-opacity\=[\"\']([a-z0-9\#]+)?[\"\']/gi, "")).replace(/stroke-opacity\s*\:\s*([a-z0-9\#]+)?;?/gi, "")).replace(/(<text[^\>]+fill\=)([\"\'][^\"\']+[\"\'])([^\>]+)/gi, '$1$2 stroke=$2 stroke-width="0.2"$3')).replace(/(<text[^\>]+fill-opacity\=)([\"\'][^\"\']+[\"\'])([^\>]+)/gi, "$1$2 stroke-opacity=$2 $3")
                            }))).replace(/<(\b[^<>s\s]+\b)[^\>]+?opacity\s*=\s*['"][^1][^\>]+?(\/>|>[\s\r\n]*?<\/\1>)/gi, (function(e, t) {
                                return ' opacity="1" stroke-opacity="1" fill="#cccccc" stroke-width="0" r="0" height="0.5" width="0.5" d="M 0 0 L 1 1" />', e + "<" + t + (g.exec(e) || "") + (p.exec(e) || "") + ' opacity="1" stroke-opacity="1" fill="#cccccc" stroke-width="0" r="0" height="0.5" width="0.5" d="M 0 0 L 1 1" />'
                            })), f = (0, u.makeImageUrlsAbsolute)(f), F = (0, u.makeImageUrlsAbsolute)(F), P = A === u.EXPORTMODE.SERVER, (0, u.cacheAllImages)(f, P, (function() {
                                e = Y(u.EXPORTFORMAT.SVG, f), Q(e), e = null;
                                var t, r, n, a, i, s, l, c, g = "undefined" != typeof m.btoa && ("Chrome" === h.browserDetails.name || "Firefox" === h.browserDetails.name || "Safari" === h.browserDetails.name || "Edge" === h.browserDetails.name || "ie" === h.browserDetails.name);
                                (A === u.EXPORTMODE.CLIENT || A === u.EXPORTMODE.AUTO && !(0, u.hasUndownloadableImage)(f)) && g ? (F = (0, u.replaceImagesWithNonDataUrl)(F), w !== u.EXPORTACTION.DOWNLOAD && w !== u.EXPORTACTION.DOWNLOADSAVE || (i = F, s = $, l = A, y === u.EXPORTFORMAT.SVG ? (c = (0, u.svgStrToDataUrl)(i), e = l === u.EXPORTMODE.AUTO ? Y("IMAGE-DATA", c) : null, (0, h.downloadCharts)("url", c, _ + "." + y, e, s)) : J(y, (function() {
                                    Z(arguments[0], arguments[1], arguments[2], arguments[3], l)
                                }), s), o.fireChartInstanceEvent("exported", X)), w === u.EXPORTACTION.SAVE || w === u.EXPORTACTION.DOWNLOADSAVE ? (t = w, w === u.EXPORTACTION.DOWNLOADSAVE && (w = u.EXPORTACTION.SAVE), function(e, t, r) {
                                    var n;
                                    y === u.EXPORTFORMAT.SVG ? (n = (0, u.svgStrToDataUrl)(e), r(n, t)) : J(y, (function() {
                                        r(arguments[1], t)
                                    }), t)
                                }(F, $, (function(r, n) {
                                    e = Y("IMAGE-DATA", r, t), (0, h.downloadCharts)(null, null, null, e, n), ee(M)
                                })), o.fireChartInstanceEvent("exported", X)) : M !== u.LOGMODE.SERVER && (0, u.logCharts)(q(), $)) : A === u.EXPORTMODE.AUTO ? (a = f, h.browserDetails.hasCanvas && "undefined" != typeof m.btoa ? ((r = v.createElement("canvas")).width = G.width, r.height = G.height, a = (0, u.embedImagesWithNonDataURL)(a), F = (0, u.replaceImagesWithNonDataUrl)(F), (0, u.hasUndownloadableImage)(a) || y === u.EXPORTFORMAT.SVG ? (n = Y(u.EXPORTFORMAT.SVG, a), (0, h.downloadCharts)(null, null, null, n, $)) : (0, h.drawSvgOnCanvas)({
                                    svg: F,
                                    canvas: r,
                                    x: 0,
                                    y: 0,
                                    width: G.width,
                                    height: G.height,
                                    useCanvas: U
                                }, (function() {
                                    var e;
                                    switch (y) {
                                        case u.EXPORTFORMAT.PNG:
                                            e = r.toDataURL("image/png");
                                            break;
                                        case u.EXPORTFORMAT.JPEG:
                                            e = r.toDataURL("image/jpeg");
                                            break;
                                        case u.EXPORTFORMAT.PDF:
                                            (0, d.addImage)(r.toDataURL("image/jpeg"), G.height, G.width), e = (0, d.getDataUrl)();
                                            break;
                                        default:
                                            e = r.toDataURL("image/jpeg")
                                    }
                                    n = Y("IMAGE-DATA", e), (0, h.downloadCharts)(null, null, null, n, $)
                                }))) : K(a), ee(M)) : A === u.EXPORTMODE.SERVER && (K(f), ee(M))
                            }))
                        }), (function() {
                            o.fireChartInstanceEvent("exportCancelled", b)
                        }))
                    }, t
                }(o.ComponentInterface);
            t["default"] = w
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(249));
            t["default"] = function(e) {
                return (0, a["default"])(e) && e.length
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.svgStrToDataUrl = t.logCharts = t.extractNonDataImageFromSVG = t.parseUrl = t.extractNonDataURLFromSVG = t.removeImagesWithNonDataURL = t.hasUndownloadableImage = t.replaceImagesWithNonDataUrl = t.embedImagesWithNonDataURL = t.makeImageUrlsAbsolute = t.isCacheAllImagesCompleted = t.getImageCachedDetails = t.cacheAllImages = t.objCacheFunctions = t.createExportActionOldString = t.LOGMODE = t.EXPORTFORMAT = t.EXPORTMODE = t.EXPORTACTION = void 0;
            var a, i = r(333),
                o = n(r(252)),
                s = r(193),
                l = function(e) {
                    var t, r, n, a, i, o;
                    t = /(<image [^\>]*href=["']([^\>'"]*)["'][^\>]*\>)/g, r = /^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i, n = [];
                    do {
                        null !== (a = t.exec(e)) && (i = a[1], o = a[2], r.test(o) || n.push(i))
                    } while (a && null !== a);
                    return n
                },
                c = function(e) {
                    var t, r, n, a = e;
                    for (t = l(a), r = 0; r < t.length; r++) n = t[r], a = a.replace(n, "");
                    return a
                },
                u = function(e, t) {
                    var r, n, a, i, o;
                    void 0 === t && (t = !0), r = /<image [^\>]*href=["']([^\>'"]*)["'][^\>]*\>/g, n = /^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i, a = [];
                    do {
                        if (null !== (i = r.exec(e))) {
                            if (o = i[1], n.test(o)) continue;
                            t && (o = d(o).href), a.push(o)
                        }
                    } while (i && null !== i);
                    return a
                },
                d = function(e) {
                    var t = document.createElement("div");
                    return t.innerHTML = "<a></a>", t.firstChild.href = e, t.innerHTML = t.innerHTML, t.firstChild
                },
                h = {
                    DOWNLOAD: "download",
                    SAVE: "save",
                    DOWNLOADSAVE: "download-save"
                },
                f = {
                    CLIENT: "client",
                    SERVER: "server",
                    AUTO: "auto"
                },
                g = ((a = {}).cacheCompleted = !1, {
                    cacheAllImages: function(e, t, r) {
                        var n, o, l, c;
                        if (void 0 === t && (t = !1), n = u(e), o = n.length, (0, i.isCanvasElemSupported)() && !t && o)
                            for (l = 0, c = 0; c < o; c++) ! function() {
                                var e, t;
                                if ((e = n[c]) in a) return l++, void(o === l && (a.cacheCompleted = !0, r()));
                                (t = new Image).crossOrigin = s.BLANKSTRING, t.onload = function() {
                                    var n, i;
                                    (n = document.createElement("canvas")).width = t.width, n.height = t.height, n.getContext("2d").drawImage(this, 0, 0);
                                    try {
                                        i = n.toDataURL("image/png"), a[e] = {
                                            loaded: !0,
                                            notCORS: !0,
                                            imageUri: i
                                        }
                                    } catch (s) {
                                        a[e] = {
                                            loaded: !0,
                                            notCORS: !1
                                        }
                                    } finally {
                                        l++, o === l && (a.cacheCompleted = !0, r())
                                    }
                                }, t.onerror = function() {
                                    a[e] = {
                                        loaded: !1
                                    }, l++, o === l && (a.cacheCompleted = !0, r())
                                }, t.src = e
                            }();
                        else r()
                    },
                    getImageCachedDetails: function(e) {
                        return a[e]
                    },
                    isCacheAllImagesCompleted: function() {
                        return a.cacheCompleted
                    }
                }),
                p = g.cacheAllImages,
                m = g.getImageCachedDetails,
                v = g.isCacheAllImagesCompleted,
                b = function(e) {
                    return e = e.replace(/(:href=")([^"]*)(")/gi, (function(e, t, r, n) {
                        return t + d(r).href + n
                    }))
                },
                y = function(e) {
                    return e.replace(/<image [^\>]*\>/gi, b)
                },
                x = function(e) {
                    var t, r, n, a, i = y(e);
                    for (t = u(i), r = 0; r < t.length; r++) n = t[r], (a = m(n)) !== s.UNDEF && a.loaded && a.notCORS && a.imageUri && (i = i.replace(n, a.imageUri));
                    return i
                };
            t.svgStrToDataUrl = function(e) {
                var t = function(e) {
                    return '<?xml version="1.0" standalone="no"?>\n      <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n       "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> ' + e
                }(e);
                return t = "data:image/svg+xml;base64," + window.btoa(window.unescape(encodeURIComponent(t)))
            }, t.logCharts = function(e, t) {
                t.logEnabled && t.logMode !== f.SERVER && function(e, t) {
                    var r = new o["default"](s.stubFN, s.stubFN);
                    for (var n in e) e.hasOwnProperty(n) && (e[n] = encodeURIComponent(e[n]));
                    r.post(t.logHandler, e)
                }(e, t)
            }, t.hasUndownloadableImage = function(e) {
                var t = x(e);
                return t !== c(t)
            }, t.replaceImagesWithNonDataUrl = function(e) {
                return c(x(e))
            }, t.embedImagesWithNonDataURL = x, t.makeImageUrlsAbsolute = y, t.isCacheAllImagesCompleted = v, t.getImageCachedDetails = m, t.cacheAllImages = p, t.objCacheFunctions = g, t.createExportActionOldString = function(e) {
                return {
                    download: h.DOWNLOAD,
                    "download-save": h.DOWNLOAD,
                    save: h.SAVE
                }[e]
            }, t.LOGMODE = f, t.EXPORTFORMAT = {
                PNG: "png",
                SVG: "svg",
                JPEG: "jpeg",
                JPG: "jpg",
                PDF: "pdf",
                XLSX: "xlsx",
                CSV: "csv"
            }, t.EXPORTMODE = {
                CLIENT: "client",
                SERVER: "server",
                AUTO: "auto"
            }, t.EXPORTACTION = h, t.parseUrl = d, t.extractNonDataURLFromSVG = u, t.removeImagesWithNonDataURL = c, t.extractNonDataImageFromSVG = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.isCanvasElemSupported = t.drawSvgOnCanvas = t.browserDetails = t.downloadCharts = void 0;
            var a = n(r(334)),
                i = r(193),
                o = r(200),
                s = n(r(252)),
                l = window,
                c = l.Image,
                u = document,
                d = "download",
                h = "download-save",
                f = function() {
                    var e = u.createElement("canvas");
                    return !(!e.getContext || !e.getContext("2d"))
                },
                g = function() {
                    var e, t = l.navigator.userAgent;
                    return -1 !== (e = t.indexOf("Edge")) ? {
                        name: "Edge",
                        version: t.substring(e + 5, e + 11)
                    } : -1 !== (e = t.indexOf("Chrome")) ? {
                        name: "Chrome",
                        version: t.substring(e + 7, e + 11)
                    } : -1 !== (e = t.indexOf("MSIE")) ? {
                        name: "ie",
                        version: t.substring(e + 5, e + 9)
                    } : -1 !== (e = t.indexOf("rv")) && -1 !== t.indexOf("Trident") ? {
                        name: "ie",
                        version: t.substring(e + 5, e + 9)
                    } : -1 !== (e = t.indexOf("Firefox")) ? {
                        name: "Firefox",
                        version: t.substring(e + 8, e + 12)
                    } : -1 !== (e = t.indexOf("Safari")) ? {
                        name: "Safari",
                        version: t.substring(e + 7, e + 11)
                    } : {
                        name: "default",
                        version: "Not Known"
                    }
                },
                p = g(),
                m = function(e, t, r, n) {
                    void 0 === n && (n = {});
                    var a, i, o = g(),
                        s = n.chartId,
                        c = n.exportCallback,
                        d = n.paper,
                        h = t;
                    "Chrome" === o.name || "Firefox" === o.name || "Safari" === o.name ? ("blob" === e && (h = l.URL.createObjectURL(h)), (i = u.createElement("a")).download = r, i.href = h, u.body.appendChild(i), i.onclick = function() {
                        c && l[c] && "function" == typeof l[c] && l[c]({
                            statusCode: 1,
                            statusMessage: "success",
                            DOMId: s,
                            width: d && d.width,
                            height: d && d.height
                        }), i.parentNode.removeChild(i)
                    }, i.click()) : "ie" !== o.name && "Edge" !== o.name || l.navigator.msSaveBlob && (a = "url" === e ? function(e) {
                        var t, r, n, a;
                        for (t = e.split(",")[0].indexOf("base64") >= 0 ? l.atob(e.split(",")[1]) : l.unescape(e.split(",")[1]), r = e.split(",")[0].split(":")[1].split(";")[0], n = new Uint8Array(t.length), a = 0; a < t.length; a++) n[a] = t.charCodeAt(a);
                        return new l.Blob([n], {
                            type: r
                        })
                    }(h) : h, l.navigator.msSaveBlob(a, r) && c && l[c] && "function" == typeof l[c] && l[c]({
                        statusCode: 1,
                        statusMessage: "success",
                        DOMId: s,
                        width: d && d.width,
                        height: d && d.height
                    }))
                };
            t.drawSvgOnCanvas = function(e, t) {
                void 0 === e && (e = {});
                var r, n, i, s, u = e,
                    d = u.svg,
                    h = u.canvas,
                    f = u.x,
                    g = u.y,
                    m = u.width,
                    v = u.height,
                    b = u.useCanvas;
                "ie" === p.name || "Edge" === p.name || b ? new a["default"](d, h, f, g, m, v, (function() {
                    t()
                })) : (s = function(e) {
                    return '<?xml version="1.0" standalone="no"?>\n      <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n       "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> ' + e
                }(d), i = s = "data:image/svg+xml;base64," + l.btoa(l.unescape(encodeURIComponent(s))), r = h.getContext("2d"), (n = new c).onload = function() {
                    r.drawImage(n, f, g, m, v), t()
                }, n.onerror = function() {
                    (0, o.raiseWarning)(this, "", "run", "libSVGToCanvas:drawSvgOnCanvas", "Unable to load image for canvas drawing. Aborting attempt.")
                }, n.src = i)
            }, t.downloadCharts = function(e, t, r, n, a) {
                var c;
                !t || (c = t, p.name.toLowerCase() === "Chrome".toLowerCase() && function(e) {
                    var t, r, n;
                    for (t = e.length, n = e.length - 1; n >= 0; n--)(r = e.charCodeAt(n)) > 127 && r <= 2047 ? t++ : r > 2047 && r <= 65535 && (t += 2), r >= 56320 && r <= 57343 && n--;
                    return t
                }(c) > void 0) ? n && function(e, t) {
                    var r, n, a, c, f, g, p, m, v = t.exportAction,
                        b = t.exportTargetWindow,
                        y = t.exportCallback,
                        x = t.fusionCharts.apiInstance,
                        w = t.paper,
                        C = t.chartId,
                        _ = t.exportHandler,
                        k = e.parameters;
                    if (v === d || v === h) {
                        for (r in /(webkit|gecko)/gi.test(l.navigator.userAgent) && "_self" === b && (b = a = C + "export_iframe", m || (m = c = (0, i.createElement)("IFRAME", {
                                name: a,
                                width: "1px",
                                height: "1px"
                            }, u.body), c.style.cssText = "position:absolute;left:-10px;top:-10px;")), n = (0, i.createElement)("form", {
                                method: "POST",
                                action: _,
                                target: b,
                                style: "display:none;"
                            }, u.body), e)(0, i.createElement)("input", {
                            type: "hidden",
                            name: r,
                            value: e[r]
                        }, n);
                        return n.submit(), u.body.removeChild(n), n = void 0, g = k.match(/exportfilename=([^|]+)/)[1], p = k.match(/exportformat=([^|]+)/)[1], (0, o.triggerEvent)("exported", x, {
                            DOMId: C,
                            height: w.height,
                            width: w.width,
                            fileName: g + "." + p,
                            statusCode: void 0,
                            statusMessage: void 0,
                            notice: void 0
                        }), y && l[y] && "function" == typeof l[y] && l[y]({
                            statusCode: 1,
                            statusMessage: "success",
                            DOMId: C,
                            width: w && w.width,
                            height: w && w.height
                        }), !0
                    }
                    for (r in f = new s["default"]((function(e) {
                            var t = {};
                            e.replace(new RegExp("([^?=&]+)(=([^&]*))?", "g"), (function(e, r, n, a) {
                                t[r] = a
                            })), y && l[y] && "function" == typeof l[y] && l[y](t), (0, o.triggerEvent)("exported", x, t)
                        }), (function(e) {
                            var t = {
                                statusCode: 0,
                                statusMessage: "failure",
                                error: e,
                                DOMId: C,
                                width: w && w.width,
                                height: w && w.height
                            };
                            y && l[y] && "function" == typeof l[y] && l[y](t), (0, o.triggerEvent)("exported", x, t, [t])
                        })), e) e.hasOwnProperty(r) && (e[r] = encodeURIComponent(e[r]));
                    f.post(_, e)
                }(n, a) : m(e, t, r, a)
            }, t.browserDetails = p, t.isCanvasElemSupported = f, p.hasCanvas = f(), p.hasSvg = i.hasSVG
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n, a = "undefined" != typeof window ? window : null,
                i = a.document,
                o = {},
                s = {};
            (n = function(e, t, r, a, i, o, s) {
                var l = {
                    svg: "",
                    context: "",
                    callBack: "",
                    imageArr: [],
                    canvas: "",
                    dimention: {}
                };
                if (!(this instanceof n)) throw new Error("This function should be used as class");
                this._getStore = function(e) {
                    return "undefined" != typeof l[e] && l[e]
                }, this._setStore = function(e, t) {
                    "undefined" != typeof l[e] && (l[e] = t)
                }, this._setStore("dimention", {
                    x: r,
                    y: a,
                    width: i,
                    height: o
                }), e && this.setSVG(e), t && this.setContext(t), s && this.setCallback(s), this.drawOnCanvas()
            }).prototype.setContext = function(e) {
                var t;
                if (!e.getContext || !e.getContext("2d")) throw new Error("Please provide valid canvas");
                t = e.getContext("2d"), this._setStore("canvas", e), this._setStore("context", t)
            }, n.prototype.getContext = function() {
                return this._getStore("context")
            }, n.prototype.setSVG = function(e) {
                var t;
                if ("undefined" != typeof e.documentElement) t = e, this._setStore("svg", t);
                else {
                    if ("<" !== e.substr(0, 1)) throw new Error("Please provide valid SVG");
                    t = s.StrToDom(e), this._setStore("svg", t)
                }
            }, n.prototype.getSVG = function() {
                return this._getStore("svg")
            }, n.prototype.setCallback = function(e) {
                "function" == typeof e && this._setStore("callBack", e)
            }, n.prototype.getCallback = function() {
                return this._getStore("callBack")
            }, n.prototype.drawOnCanvas = function(e, t, r, n, a, i, o) {
                var l, c, u, d, h, f, g, p;
                e && this.setSVG(e), t && this.setContext(t), o && this.setCallback(o), t = t || this._getStore("canvas"), g = this._getStore("dimention"), o = this.getCallback(), l = this.getContext(), (c = this.getSVG()) && l && (u = (p = s.getSvgDimention(c)).width, d = p.height, r = r || g.x || 0, n = n || g.y || 0, a = a || u || g.width, i = i || d || g.height, h = p.width ? g.width / a : 1, f = p.height ? g.height / i : 1, s.startTransform("translate(" + r + "," + n + ") scale(" + h + "," + f + ")", l), l.save(), l.fillStyle = "#ffffff", l.fillRect(0, 0, a, i), l.restore(), s.storeImagesInArr(this), s.drawNodes([c], [], this, l, (function() {
                    "function" == typeof o && o(), s.resetTransform(l)
                })))
            }, o.common = function(e, t, r, n, a) {
                var i, l, c, u, d = e.childNodes,
                    h = function() {
                        e.attributes && n.restore(), a && a()
                    };
                for (l in t) t.hasOwnProperty(l) && "class" !== t[l].name && "id" !== t[l].name && "transform" !== t[l].name && "clip-path" !== t[l].name && "object" == typeof t[l] && e.attributes && !e.attributes[t[l].name] && e.setAttribute([t[l].name], t[l].value);
                if (e.attributes && e.attributes.style)
                    for (l in c = e.attributes.style.value.replace(/;$/, "").split(";"))
                        if (c.hasOwnProperty(l) && (u = c[l].split(":")[0].trim(), !e.attributes[u] || "undefined" === e.attributes[u].value)) try {
                            e.setAttribute(u, c[l].split(":")[1].trim())
                        } catch (f) {}
                        e.attributes && (n.save(), e.attributes.transform && s.startTransform(e.attributes.transform.value, n), e.attributes["clip-path"] && s.applyClip(e.attributes["clip-path"].value, n, r)), 0 === d.length || 1 === d.length && !d[0].tagName ? "undefined" != typeof e.tagName ? (i = "draw" + e.tagName, o[i] ? e.attributes.display && "none" === e.attributes.display.value ? h() : o[i](e, n, r, "draw", h) : h()) : h() : s.drawNodes(d, "svg" === e.tagName ? [] : e.attributes, r, n, h)
            }, o.drawtext = function(e, t, r, n, a) {
                this.drawtspan(e, t, r, n, a)
            }, o.drawtspan = function(e, t, r, n, o) {
                var l, c, u, d, h, f = e.innerHTML || e.textContent,
                    g = e.attributes.x ? e.attributes.x.value : 0,
                    p = e.attributes.y ? e.attributes.y.value : 0,
                    m = e.attributes.dx ? e.attributes.dx.value : 0,
                    v = e.attributes.dy ? e.attributes.dy.value : 0,
                    b = "serief",
                    y = "normal",
                    x = "16px",
                    w = [];
                i.getElementsByTagName("body")[0] && ((l = a.getComputedStyle(i.getElementsByTagName("body")[0], null)).getPropertyValue("font-family") && (b = l.getPropertyValue("font-family")), l.getPropertyValue("font-weight") && (y = l.getPropertyValue("font-weight")), l.getPropertyValue("font-size") && (x = l.getPropertyValue("font-size"))), c = e.attributes["font-family"] ? e.attributes["font-family"].value : b, u = e.attributes["font-weight"] ? e.attributes["font-weight"].value : y, d = e.attributes["text-anchor"] ? e.attributes["text-anchor"].value : "start", h = e.attributes["font-size"] ? e.attributes["font-size"].value : x, g = Number(g) + Number(m), p = Number(p) + Number(v), f = f.trim(), d = "middle" === d ? "center" : d, t.save(), t.font = u + " " + h + " " + c, t.textAlign = d, "draw" === n && ((!e.attributes.fill || e.attributes.fill && "none" !== e.attributes.fill.value) && (s.applyFillEffect(e, t, r, w), t.fillText(f, g, p), s.endFillEffect(e, t)), (!e.attributes.stroke || e.attributes.stroke && "none" !== e.attributes.stroke.value) && (s.applyStrokeEffect(e, t, r, w), t.strokeText(f, g, p), s.endStrokeEffect(e, t))), t.restore(), "function" == typeof o && o()
            }, o.drawcircle = function(e, t, r, n, a) {
                var i = Number(e.attributes.cx.value),
                    o = Number(e.attributes.cy.value),
                    l = Number(e.attributes.r.value),
                    c = [];
                t.beginPath(), t.arc(i, o, l, 0, 2 * Math.PI), s.bBoxFromPoint([i, 1 * i + 1 * l, 1 * i - 1 * l], [o, 1 * o + 1 * l, 1 * o - 1 * l], c), "draw" === n && ((!e.attributes.fill || e.attributes.fill && "none" !== e.attributes.fill.value) && (s.applyFillEffect(e, t, r, c), t.fill(), s.endFillEffect(e, t)), (!e.attributes.stroke || e.attributes.stroke && "none" !== e.attributes.stroke.value) && (s.applyStrokeEffect(e, t, r, c), t.stroke(), s.endStrokeEffect(e, t))), t.closePath(), "function" == typeof a && a()
            }, o.drawrect = function(e, t, r, n, a) {
                var i = e.attributes.x ? Number(e.attributes.x.value) : 0,
                    o = e.attributes.y ? Number(e.attributes.y.value) : 0,
                    l = e.attributes.rx ? Number(e.attributes.rx.value) : 0,
                    c = e.attributes.ry ? Number(e.attributes.ry.value) : 0,
                    u = Number(e.attributes.height.value),
                    d = Number(e.attributes.width.value),
                    h = [],
                    f = t.lineCap;
                t.lineCap = "square", s.bBoxFromPoint([i, i + d], [o, o + u], h), t.beginPath(), t.moveTo(i + l, o), t.lineTo(i + d - l, o), t.quadraticCurveTo(i + d, o, i + d, o + c), t.lineTo(i + d, o + u - c), t.quadraticCurveTo(i + d, o + u, i + d - l, o + u), t.lineTo(i + l, o + u), t.quadraticCurveTo(i, o + u, i, o + u - c), t.lineTo(i, o + c), t.quadraticCurveTo(i, o, i + l, o), "draw" === n && ((!e.attributes.fill || e.attributes.fill && "none" !== e.attributes.fill.value) && (s.applyFillEffect(e, t, r, h), t.fill(), s.endFillEffect(e, t)), (!e.attributes.stroke || e.attributes.stroke && "none" !== e.attributes.stroke.value) && (s.applyStrokeEffect(e, t, r, h), t.stroke(), s.endStrokeEffect(e, t))), t.closePath(), t.lineCap = f, "function" == typeof a && a()
            }, o.drawellipse = function(e, t, r, n, a) {
                var i = Number(e.attributes.cx.value),
                    o = Number(e.attributes.cy.value),
                    l = Number(e.attributes.rx.value),
                    c = Number(e.attributes.ry.value),
                    u = .5522848 * l,
                    d = .5522848 * c,
                    h = i + l,
                    f = o + c,
                    g = [];
                t.beginPath(), t.moveTo(i - l, o), t.bezierCurveTo(i - l, o - d, i - u, o - c, i, o - c), t.bezierCurveTo(i + u, o - c, h, o - d, h, o), t.bezierCurveTo(h, o + d, i + u, f, i, f), t.bezierCurveTo(i - u, f, i - l, o + d, i - l, o), s.bBoxFromPoint([i + l, i - l], [o + c, o - c], g), "draw" === n && ((!e.attributes.fill || e.attributes.fill && "none" !== e.attributes.fill.value) && (s.applyFillEffect(e, t, r, g), t.fill(), s.endFillEffect(e, t)), (!e.attributes.stroke || e.attributes.stroke && "none" !== e.attributes.stroke.value) && (s.applyStrokeEffect(e, t, r, g), t.stroke(), s.endStrokeEffect(e, t))), t.closePath(), "function" == typeof a && a()
            }, o.drawimage = function(e, t, r, n, a) {
                var i, o = e.attributes.x ? Number(e.attributes.x.value) : 0,
                    s = e.attributes.y ? Number(e.attributes.y.value) : 0,
                    l = e.attributes.height ? Number(e.attributes.height.value) : 0,
                    c = e.attributes.width ? Number(e.attributes.width.value) : 0,
                    u = r._getStore("imageArr");
                t.save(), e.attributes.opacity && (t.globalAlpha = e.attributes.opacity.value), e.attributes["xlink:href"] ? (i = e.attributes["xlink:href"].value, "complete" === u[i].status ? (t.drawImage(u[i].obj, o, s, c, l), t.globalAlpha = 1, t.restore(), "function" == typeof a && a()) : "error" === u[i].status ? (t.globalAlpha = 1, t.restore(), "function" == typeof a && a()) : "progress" === u[i].status ? (u[i].callback = function() {
                    t.drawImage(u[i].obj, o, s, c, l), t.globalAlpha = 1, t.restore(), "function" == typeof a && a()
                }, u[i].errCallback = function() {
                    t.globalAlpha = 1, t.restore(), "function" == typeof a && a()
                }) : (t.globalAlpha = 1, t.restore(), "function" == typeof a && a())) : (t.globalAlpha = 1, t.restore(), "function" == typeof a && a())
            }, o.drawpath = function(e, t, r, n, a) {
                var i, o, l, c, u = e.attributes.d.value.match(/[a-z][^a-z"]*/gi),
                    d = [],
                    h = 0,
                    f = 0,
                    g = {};
                for (i in t.beginPath(), u)
                    if (u.hasOwnProperty(i)) switch (o = u[i].substring(0, 1), l = s.getArgsAsArray(u[i].substring(1, u[i].length)), o) {
                        case "M":
                            h = Number(l[0]), f = Number(l[1]), t.moveTo(h, f), g.cx = h, g.cy = f;
                            break;
                        case "m":
                            h += Number(l[0]), f += Number(l[1]), t.moveTo(h, f), g.cx = h, g.cy = f;
                            break;
                        case "L":
                            for (c = 0; l[c]; c += 2) s.bBoxFromPoint([h, l[c]], [f, l[c + 1]], d), h = Number(l[c]), f = Number(l[c + 1]), t.lineTo(h, f);
                            break;
                        case "l":
                            for (c = 0; l[c]; c += 2) s.bBoxFromPoint([h, 1 * h + 1 * l[c]], [f, 1 * f + 1 * l[c + 1]], d), h += Number(l[c]), f += Number(l[c + 1]), t.lineTo(h, f);
                            break;
                        case "V":
                            for (c = 0; l[c]; c += 1) s.bBoxFromPoint([h], [f, l[c]], d), f = Number(l[c]), t.lineTo(h, f);
                            break;
                        case "v":
                            for (c = 0; l[c]; c += 1) s.bBoxFromPoint([h], [f, 1 * f + 1 * l[c]], d), f += Number(l[c]), t.lineTo(h, f);
                            break;
                        case "H":
                            for (c = 0; l[c]; c += 1) s.bBoxFromPoint([h, l[c]], [f], d), h = Number(l[c]), t.lineTo(h, f);
                            break;
                        case "h":
                            for (c = 0; l[c]; c += 1) s.bBoxFromPoint([h, 1 * h + 1 * l[c]], [f], d), h += Number(l[c]), t.lineTo(h, f);
                            break;
                        case "Q":
                            for (c = 0; l[c]; c += 4) s.qBezierBBox(h, f, l[c], l[c + 1], l[c + 2], l[c + 3], d), t.quadraticCurveTo(Number(l[c]), Number(l[c + 1]), Number(l[c + 2]), Number(l[c + 3])), h = Number(l[c + 2]), f = Number(l[c + 3]);
                            break;
                        case "q":
                            for (c = 0; l[c]; c += 4) s.qBezierBBox(h, f, h + 1 * l[c], f + 1 * l[c + 1], 1 * h + 1 * l[c + 2], 1 * f + 1 * l[c + 3], d), t.quadraticCurveTo(h + 1 * l[c], f + 1 * l[c + 1], h += Number(l[c + 2]), f += Number(l[c + 3]));
                            break;
                        case "C":
                            for (c = 0; l[c]; c += 6) s.cBezierBBox(h, f, l[c], l[c + 1], l[c + 2], l[c + 3], l[c + 4], l[c + 5], d), t.bezierCurveTo(l[c], l[c + 1], l[c + 2], l[c + 3], l[c + 4], l[c + 5]), h = Number(l[c + 4]), f = Number(l[c + 5]);
                            break;
                        case "c":
                            for (c = 0; l[c]; c += 6) s.cBezierBBox(h, f, h + 1 * l[c], 1 * f + 1 * l[c + 1], h + 1 * l[c + 2], 1 * f + 1 * l[c + 3], h + 1 * l[c + 4], 1 * f + 1 * l[c + 5], d), t.bezierCurveTo(h + Number(l[c]), f + Number(l[c + 1]), h + Number(l[c + 2]), f + Number(l[c + 3]), h += Number(l[c + 4]), f += Number(l[c + 5]));
                            break;
                        case "a":
                        case "A":
                            for (c = 0; l[c]; c += 7) {
                                var p, m, v, b, y, x, w, C, _, k, S, E, A, T, N, M, D, F, I = Number(l[c]),
                                    L = Number(l[c + 1]);
                                if (p = Number(l[c + 2]) * (Math.PI / 180), m = Number(l[c + 3]), v = Number(l[c + 4]), b = Number(l[c + 5]), y = Number(l[c + 6]), x = Math.cos(p) * (h - b) / 2 + Math.sin(p) * (f - y) / 2, w = -Math.sin(p) * (h - b) / 2 + Math.cos(p) * (f - y) / 2, I = I < 0 ? -I : I, L = L < 0 ? -L : L, (N = Math.pow(x, 2) / Math.pow(I, 2) + Math.pow(w, 2) / Math.pow(L, 2)) > 1 && (I *= Math.sqrt(N), L *= Math.sqrt(N)), M = I > L ? I : L, D = I > L ? 1 : I / L, F = I > L ? L / I : 1, C = (m === v ? -1 : 1) * Math.sqrt((Math.pow(I, 2) * Math.pow(L, 2) - Math.pow(I, 2) * Math.pow(w, 2) - Math.pow(L, 2) * Math.pow(x, 2)) / (Math.pow(I, 2) * Math.pow(w, 2) + Math.pow(L, 2) * Math.pow(x, 2))), isNaN(C) && (C = 0), k = L * x * -C / I, S = (_ = C * (I * w) / L) * Math.cos(p) - k * Math.sin(p) + (h + b) / 2, E = _ * Math.sin(p) + k * Math.cos(p) + (f + y) / 2, A = s.angleBetweenVectors(1, 0, (x - _) / I, (w - k) / L), T = s.angleBetweenVectors((x - _) / I, (w - k) / L, (-x - _) / I, (-w - k) / L), 0 === v && T > 0 && (T -= Math.PI / 180 * 360), 1 === v && T < 0 && (T += Math.PI / 180 * 360), 0 === I && 0 === L) {
                                    t.lineTo(b, y);
                                    break
                                }
                                t.save();
                                var O = s.combineTransformMatrix([
                                    [1, 0, S, 0, 1, E],
                                    [Math.cos(p), Math.sin(p), 0, Math.sin(p), Math.cos(p), 0],
                                    [D, 0, 0, 0, F, 0]
                                ]);
                                t.transform(O[0], O[3], O[1], O[4], O[2], O[5]), t.arc(0, 0, M, A, A + T, 1 - v), t.restore(), s.arcBBox(0, 0, M, A, A + T, 1 - v, [O[0], O[3], O[1], O[4], O[2], O[5]], d), "A" === o ? (h = Number(l[c + 5]), f = Number(l[c + 6])) : (h += Number(l[c + 5]), f += Number(l[c + 6]))
                            }
                            break;
                        case "Z":
                        case "z":
                            t.closePath(), h = g.cx, f = g.cy
                    }
                    "draw" === n && ((!e.attributes.fill || e.attributes.fill && "none" !== e.attributes.fill.value) && (s.applyFillEffect(e, t, r, d), t.fill(), s.endFillEffect(e, t)), (!e.attributes.stroke || e.attributes.stroke && "none" !== e.attributes.stroke.value) && (s.applyStrokeEffect(e, t, r, d), t.stroke(), s.endStrokeEffect(e, t)), a())
            }, s.drawNodes = function(e, t, r, n, a) {
                var i = e.length,
                    s = -1,
                    l = 0,
                    c = 0;
                ! function u() {
                    var d;
                    (s += 1) < i ? ((d = e[s]).tagName && "defs" === d.tagName && (d = e[s += 1]), d.attributes && (d.attributes.dy && (c = d.attributes.dy.value = 1 * d.attributes.dy.value + 1 * c), d.attributes.dx && (l = d.attributes.dx.value = 1 * d.attributes.dx.value + 1 * l)), o.common(d, t, r, n, u)) : a && a()
                }()
            }, s.getSvgDimention = function(e) {
                var t, r = {
                    width: 0,
                    height: 0
                };
                return t = e.childNodes && e.childNodes[0] && e.childNodes[0].attributes, r.width = Number(t.width && t.width.value || 0), r.height = Number(t.height && t.height.value || 0), r
            }, s.storeImagesInArr = function(e) {
                var t, r, n, a, i = e.getSVG();
                for (a in n = e._getStore("imageArr"), t = i.getElementsByTagName("image")) t.hasOwnProperty(a) && t[a].attributes && t[a].attributes["xlink:href"] && (r = t[a].attributes["xlink:href"].value, n[r] || (n[r] = [], n[r].status = "progress", n[r].callback = null, n[r].obj = new Image, n[r].obj.onload = function(e) {
                    return function() {
                        var t = n[e].callback;
                        t ? (n[e].status = "complete", t()) : n[e].status = "complete"
                    }
                }(r), n[r].obj.onerror = function(e) {
                    return function() {
                        var t = n[e].errCallback;
                        t ? (n[e].status = "error", t()) : n[e].status = "error"
                    }
                }(r), n[r].obj.src = r))
            }, s.startTransform = function(e, t) {
                var r, n, a = e.match(/[^\s][a-z,0-9.\-(\s]+\)/gi);
                for (n in a) a.hasOwnProperty(n) && (a[n].indexOf("matrix") > -1 && (r = s.stringToArgs(a[n]), t.transform(r[0], r[1], r[2], r[3], r[4], r[5])), a[n].indexOf("translate") > -1 && (r = s.stringToArgs(a[n]), t.translate(r[0] || 0, r[1] || 0)), a[n].indexOf("rotate") > -1 && (3 === (r = s.stringToArgs(a[n])).length ? (t.translate(r[1], r[2]), t.rotate(r[0] * (Math.PI / 180)), t.translate(-r[1], -r[2])) : t.rotate(r[0] * (Math.PI / 180))), a[n].indexOf("scale") > -1 && (1 === (r = s.stringToArgs(a[n])).length ? t.scale(r[0] || 1, r[0] || 1) : t.scale(r[0] || 1, r[1] || 1)), a[n].indexOf("skewX") > -1 && (r = s.stringToArgs(a[n]), t.transform(1, 0, Math.tan(r[0] * (Math.PI / 180)), 1, 0, 0)), a[n].indexOf("skewY") > -1 && (r = s.stringToArgs(a[n]), t.transform(1, Math.tan(r[0] * (Math.PI / 180)), 0, 1, 0, 0)))
            }, s.resetTransform = function(e) {
                e.setTransform(1, 0, 0, 1, 0, 0)
            }, s.stringToArgs = function(e) {
                var t = /\(([^)]+)/.exec(e)[1];
                return s.getArgsAsArray(t)
            }, s.getArgsAsArray = function(e) {
                var t;
                for (e = e.trim().split(/[\s,]+/), t = 0; t < e.length; t++) e[t].trim(), 0 === e[t].length && e.splice(t, 1);
                return e
            }, s.applyFillEffect = function(e, t, r, n) {
                var a;
                e.attributes["fill-opacity"] && "none" !== e.attributes["fill-opacity"].value ? t.globalAlpha = e.attributes["fill-opacity"].value : t.globalAlpha = 1, e.attributes.fill && e.attributes.fill.value.indexOf("url(") > -1 ? (a = s.getFillStyleById(/url\(.*#([^)'"]+)/.exec(e.attributes.fill.value)[1], t, r, n), t.fillStyle = a) : e.attributes.fill ? t.fillStyle = e.attributes.fill.value : t.fillStyle = "#000000"
            }, s.endFillEffect = function(e, t) {
                t.globalAlpha = 1
            }, s.applyStrokeEffect = function(e, t, r, n) {
                e.attributes["stroke-opacity"] && "none" !== e.attributes["stroke-opacity"].value && (t.globalAlpha = e.attributes["stroke-opacity"].value), e.attributes["stroke-width"] && (t.lineWidth = e.attributes["stroke-width"].value, "0" === e.attributes["stroke-width"].value && (t.globalAlpha = 0)), e.attributes["stroke-linecap"] && "none" !== e.attributes["stroke-linecap"].value && (t.lineCap = e.attributes["stroke-linecap"].value), e.attributes["stroke-linejoin"] && "none" !== e.attributes["stroke-linejoin"].value && (t.lineJoin = e.attributes["stroke-linejoin"].value), e.attributes["stroke-dasharray"] && "none" !== e.attributes["stroke-dasharray"].value && t.setLineDash && t.setLineDash(s.getArgsAsArray(e.attributes["stroke-dasharray"].value)), e.attributes.stroke ? t.strokeStyle = e.attributes.stroke.value : t.strokeStyle = "#000000"
            }, s.endStrokeEffect = function(e, t) {
                e.attributes["stroke-opacity"] && "none" !== e.attributes["stroke-opacity"].value && (t.globalAlpha = 1, t.setLineDash && t.setLineDash([]), t.lineWidth = 1), t.globalAlpha = 1
            }, s.applyClip = function(e, t, r) {
                var n, a, i, l, c, u = r.getSVG();
                if (-1 !== e.indexOf("url(")) {
                    for (l in n = /url\(.*#([^)'"]+)/.exec(e)[1], (a = u.getElementById(n)).attributes && (t.save(), a.attributes.transform && s.startTransform(a.attributes.transform.value, t)), i = a.childNodes) i.hasOwnProperty(l) && i[l].tagName && i[l].constructor !== Array && (c = "draw" + i[l].tagName, i[l].attributes && (t.save(), i[l].attributes.transform && s.startTransform(i[l].attributes.transform.value, t)), o[c] && (o[c](i[l], t, r, "clip"), t.closePath()), i[l].attributes && t.restore());
                    a.attributes && t.restore(), t.clip()
                }
            }, s.getFillStyleById = function(e, t, r, n) {
                var a = r.getSVG().getElementById(e);
                return "linearGradient" === a.tagName ? s.getLinearGradient(a, t, n) : "radialGradient" === a.tagName ? s.getRadialGradient(a, t, n) : "#FFFFFF"
            }, s.getLinearGradient = function(e, t, r) {
                var n, a, i, o, l, c = e.attributes.x1 ? s.getPercentValue(e.attributes.x1.value, r.xMax - r.xMin, r.xMin) : 0,
                    u = e.attributes.y1 ? s.getPercentValue(e.attributes.y1.value, r.yMax - r.yMin, r.yMin) : 0,
                    d = e.attributes.x2 ? s.getPercentValue(e.attributes.x2.value, r.xMax - r.xMin, r.xMin) : 0,
                    h = e.attributes.y2 ? s.getPercentValue(e.attributes.y2.value, r.yMax - r.yMin, r.yMin) : 0;
                for (i in n = t.createLinearGradient(c, u, d, h), a = e.childNodes) a.hasOwnProperty(i) && a[i].attributes && a[i].attributes["stop-color"] && (o = s.toRGB(a[i].attributes["stop-color"].value), l = a[i].attributes["stop-opacity"] ? a[i].attributes["stop-opacity"].value : 1, o.status ? n.addColorStop(s.getPercentValue(a[i].attributes.offset.value, 1, 0), "rgba(" + o.r + "," + o.g + "," + o.b + "," + Number(l) + ")") : n.addColorStop(s.getPercentValue(a[i].attributes.offset.value, 1, 0), a[i].attributes["stop-color"].value));
                return n
            }, s.getRadialGradient = function(e, t, r) {
                var n, a, i, o, l, c = e.attributes.cx ? s.getPercentValue(e.attributes.cx.value, r.xMax - r.xMin, r.xMin) : r.xMin + .5 * (r.xMax - r.xMin),
                    u = e.attributes.cy ? s.getPercentValue(e.attributes.cy.value, r.yMax - r.yMin, r.yMin) : r.yMin + .5 * (r.yMax - r.yMin),
                    d = e.attributes.fx ? s.getPercentValue(e.attributes.fx.value, r.xMax - r.xMin, r.xMin) : r.xMin + .5 * (r.xMax - r.xMin),
                    h = e.attributes.fy ? s.getPercentValue(e.attributes.fy.value, r.yMax - r.yMin, r.yMin) : r.yMin + .5 * (r.yMax - r.yMin),
                    f = e.attributes.r ? s.getPercentValue(e.attributes.r.value, (r.yMax - r.yMin + r.xMax - r.xMin) / 2, 0) : s.getPercentValue("50%", (r.yMax - r.yMin + r.xMax - r.xMin) / 2, 0);
                for (i in n = t.createRadialGradient(d, h, 0, c, u, f), a = e.childNodes) a.hasOwnProperty(i) && a[i].attributes && a[i].attributes["stop-color"] && (o = s.toRGB(a[i].attributes["stop-color"].value), l = a[i].attributes["stop-opacity"] ? a[i].attributes["stop-opacity"].value : 1, o.status ? n.addColorStop(s.getPercentValue(a[i].attributes.offset.value, 1, 0), "rgba(" + o.r + "," + o.g + "," + o.b + "," + Number(l) + ")") : n.addColorStop(s.getPercentValue(a[i].attributes.offset.value, 1, 0), a[i].attributes["stop-color"].value));
                return n
            }, s.getPercentValue = function(e, t, r) {
                var n;
                return -1 !== e.indexOf("%") ? ((n = /(\d.*)%/.exec(e)[1]) > 100 && (n = 100), n * t / 100 + 1 * r) : e > 1 ? e : e * t + 1 * r
            }, s.bBoxFromPoint = function(e, t, r) {
                "undefined" != typeof r.xMin && (e.push(r.xMin, r.xMax), t.push(r.yMin, r.yMax)), r.xMin = Math.min.apply(this, e), r.xMax = Math.max.apply(this, e), r.yMin = Math.min.apply(this, t), r.yMax = Math.max.apply(this, t)
            }, s.arcBBox = function(e, t, r, n, a, i, o, s) {
                var l, c, u, d, h, f, g, p, m, v, b;
                o instanceof Array && (e = e * o[0] + e * o[2] + o[4], t = t * o[1] + t * o[3] + o[5]), b = function(e, t, r) {
                    return (e = (e + 2 * Math.PI) % (2 * Math.PI)) <= (t = (t + 2 * Math.PI) % (2 * Math.PI)) ? e <= r && r <= t : e >= t ? !(e >= r && r >= t) : void 0
                }, l = n % (2 * Math.PI), c = a % (2 * Math.PI), i && (l = a % (2 * Math.PI), c = n % (2 * Math.PI)), u = e + r * Math.cos(l), d = t + r * Math.sin(l), m = [u, e + r * Math.cos(c)], v = [d, t + r * Math.sin(c)], b(l, c, 0) && (m.push(1 * e + 1 * r), v.push(t)), b(l, c, .5 * Math.PI) && (m.push(e), v.push(1 * t + 1 * r)), b(l, c, Math.PI) && (m.push(e - 1 * r), v.push(t)), b(l, c, 1.5 * Math.PI) && (m.push(e), v.push(t - 1 * r)), g = Math.max.apply(this, m), h = Math.min.apply(this, m), p = Math.max.apply(this, v), f = Math.min.apply(this, v), "undefined" != typeof s.xMin ? (s.xMin = Math.min(h, s.xMin), s.xMax = Math.max(g, s.xMax), s.yMin = Math.min(f, s.yMin), s.yMax = Math.max(p, s.yMax)) : (s.xMin = h, s.xMax = g, s.yMin = f, s.yMax = p)
            }, s.qBezierBBox = function(e, t, r, n, a, i, o) {
                var s, l, c, u, d, h, f, g, p = 1 * e - 2 * r + 1 * a,
                    m = 1 * t - 2 * n + 1 * i;
                0 === p || 0 === m ? (d = Math.max(e, a), c = Math.min(e, a), h = Math.max(t, i), u = Math.min(t, i)) : (s = (e - r) / p, l = (t - n) / m, f = e * Math.pow(1 - s, 2) + 2 * r * (1 - s) * s + a * Math.pow(s, 2), g = t * Math.pow(1 - l, 2) + 2 * n * (1 - l) * l + i * Math.pow(l, 2), d = Math.max(e, a, f), c = Math.min(e, a, f), h = Math.max(t, i, g), u = Math.min(t, i, g)), "undefined" != typeof o.xMin ? (o.xMin = Math.min(c, o.xMin), o.xMax = Math.max(d, o.xMax), o.yMin = Math.min(u, o.yMin), o.yMax = Math.max(h, o.yMax)) : (o.xMin = c, o.xMax = d, o.yMin = u, o.yMax = h)
            }, s.cBezierBBox = function(e, t, r, n, a, i, o, s, l) {
                var c, u, d, h, f, g, p, m, v, b, y, x, w;
                null === a && null === i && (a = t + 2 / 3 * (n - t), n = (r = e + 2 / 3 * (r - e)) + 1 / 3 * (o - e), i = a + 1 / 3 * (s - t)), y = function(e, t, r, n, a) {
                    return e * Math.pow(1 - a, 3) + 3 * t * a * Math.pow(1 - a, 2) + 3 * r * a * a * (1 - a) + n * a * a * a
                }, f = 3 * o - 9 * a + 9 * r - 3 * e, g = 6 * e - 12 * r + 6 * a, p = 3 * r - 3 * e, o < (c = e) && (c = o), o > (u = e) && (u = o), (m = Math.pow(g, 2) - 4 * f * p) >= 0 && ((v = (-g + Math.sqrt(m)) / (2 * f)) > 0 && v < 1 && ((x = y(e, r, a, o, v)) < c && (c = x), x > u && (u = x)), (b = (-g - Math.sqrt(m)) / (2 * f)) > 0 && b < 1 && ((x = y(e, r, a, o, b)) < c && (c = x), x > u && (u = x))), f = 3 * s - 9 * i + 9 * n - 3 * t, g = 6 * t - 12 * n + 6 * i, p = 3 * n - 3 * t, s < (d = t) && (d = s), s > (h = t) && (h = s), (m = Math.pow(g, 2) - 4 * f * p) >= 0 && ((v = (-g + Math.sqrt(m)) / (2 * f)) > 0 && v < 1 && ((w = y(t, n, i, s, v)) < d && (d = w), w > h && (h = w)), (b = (-g - Math.sqrt(m)) / (2 * f)) > 0 && b < 1 && ((w = y(t, n, i, s, b)) < d && (d = w), w > h && (h = w))), "undefined" != typeof l.xMin ? (l.xMin = Math.min(c, l.xMin), l.xMax = Math.max(u, l.xMax), l.yMin = Math.min(d, l.yMin), l.yMax = Math.max(h, l.yMax)) : (l.xMin = c, l.xMax = u, l.yMin = d, l.yMax = h)
            }, s.combineTransformMatrix = function(e) {
                var t, r, n = e.length - 1;
                if (n <= 0) return e[0];
                for (r = e[0], t = 1; t <= n; t++) r[0] = r[0] * e[t][0] + r[1] * e[t][3], r[1] = r[0] * e[t][1] + r[1] * e[t][4], r[2] = r[0] * e[t][2] + r[1] * e[t][5] + 1 * r[2], r[3] = r[3] * e[t][0] + r[4] * e[t][3], r[4] = r[3] * e[t][1] + r[4] * e[t][4], r[5] = r[3] * e[t][2] + r[4] * e[t][5] + 1 * r[5];
                return r
            }, s.angleBetweenVectors = function(e, t, r, n) {
                var a = e * n < t * r ? -1 : 1,
                    i = e * r + t * n,
                    o = Math.sqrt(Math.pow(e, 2) + Math.pow(t, 2)),
                    s = Math.sqrt(Math.pow(r, 2) + Math.pow(n, 2));
                return a * Math.acos(i / (o * s))
            }, s.toRGB = function(e) {
                var t, r, n, a = {
                    r: 0,
                    g: 0,
                    b: 0,
                    status: 0
                };
                return r = function(e) {
                    for (n in e) e.hasOwnProperty(n) && (e[n] < 0 || isNaN(e[n]) ? e[n] = 0 : e[n] > 255 && (e[n] = 255));
                    return a = {
                        r: e[0],
                        g: e[1],
                        b: e[2],
                        status: 1
                    }
                }, (e = e.trim()).match(/^rgb\(|^rgba\(/i) ? (t = /\(\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})/.exec(e), r([parseInt(t[1]), parseInt(t[2]), parseInt(t[3])])) : e.match(/^#/) && (t = /(\w{2})(\w{2})(\w{2})/.exec(e), r([parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)])), a
            }, s.StrToDom = function(e) {
                var t;
                return a.DOMParser ? t = (new DOMParser).parseFromString(e, "text/xml") : ((t = new a.ActiveXObject("Microsoft.XMLDOM")).async = !1, t.loadXML(e)), t
            };
            var l = n;
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.addImage = function(e, t, r) {
                l = t, c = r, o = [], s = 0, n = void 0, a = void 0, i = void 0, n = l || 500, a = c || 500, i = atob(/base64,(.+?)$/g.exec(e)[1]);
                var l, c
            }, t.getDataUrl = function() {
                return "data:application/pdf;base64," + btoa(function() {
                    var e, t, r = [];
                    for (l("%PDF-1.7"), r[1] = s, l("1 0 obj"), l("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"), l("endobj"), r[4] = s, l("4 0 obj"), l("<< /Length 36>>"), l("stream"), l("q " + a + " 0 0 " + n + " 0 0 cm /Im3 Do Q"), l("endstream"), l("endobj"), r[5] = s, l("5 0 obj"), l("<</Type /Page /Parent 2 0 R /MediaBox [0 0 " + a + " " + n + "] /Contents [4 0 R ] /Resources <</ProcSet 1 0 R /Font <<>> /XObject <</Im3 3 0 R >> >> >>"), l("endobj"), r[3] = s, l("3 0 obj"), l("<</Type /XObject /Subtype /Image /Width " + a + " /Height " + n + " /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length " + i.length + ">>"), l("stream"), l(i), l("endstream"), l("endobj"), r[2] = s, l("2 0 obj"), l("<</Type /Pages /Kids [5 0 R ] /Count 1>>"), l("endobj"), r[6] = s, l("6 0 obj"), l("<</Type /Catalog /Pages 2 0 R >>"), l("endobj"), e = s, l("xref"), l("0 7"), l("0000000000 65535 f "), t = 1; t <= 6; t++) l(("0000000000" + r[t]).slice(-10) + " 00000 n ");
                    return l("trailer"), l("<</Size 7 /Root 6 0 R >>"), l("startxref"), l(e), l("%%EOF"), o.join("\n")
                }())
            };
            var n, a, i, o = [],
                s = 0;

            function l(e) {
                s += e.length + 1, o.push(e)
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n, a, i = r(333),
                o = r(335),
                s = r(193),
                l = r(332),
                c = r(200),
                u = window,
                d = Math.max,
                h = u.Image,
                f = u.navigator.userAgent.match(/(iPad|iPhone|iPod)/g),
                g = "https:" === u.location.protocol ? "https://export.api3.fusioncharts.com/api/v1.0/logs" : "http://export.api3.fusioncharts.com/api/v1.0/logs",
                p = "https:" === u.location.protocol ? "https://export.api3.fusioncharts.com/" : "http://export.api3.fusioncharts.com/",
                m = function(e) {
                    return !e.match(/http:\/\/|https:\/\//) || !/(http:\/\/|https:\/\/)([^\/\:]*)/.exec(e)[2] || u.location.hostname === /(http:\/\/|https:\/\/)([^\/\:]*)/.exec(e)[2]
                },
                v = function(e, t, r, n) {
                    var a = e,
                        i = t;
                    return isNaN(a) && (a = (0, s.pluckNumber)(t, n) * (r / n)), isNaN(i) && (i = (0, s.pluckNumber)(e, r) * (n / r)), {
                        width: a,
                        height: i
                    }
                },
                b = function() {
                    (0, c.triggerEvent)("exportcancelled")
                };

            function y() {
                var e, t, r, y, x, w, C, _, k, S, E, A, T, N = arguments[0],
                    M = N || {},
                    D = 0,
                    F = !1,
                    I = {
                        exportTargetWindow: (0, s.pluck)(M.exportTargetWindow, f ? "_parent" : "_self"),
                        exportAction: M.exportAction && "string" == typeof M.exportAction ? (A = M.exportAction.toLowerCase(), [l.EXPORTACTION.DOWNLOAD, l.EXPORTACTION.SAVE, l.EXPORTACTION.DOWNLOADSAVE].indexOf(A) >= 0 ? A : l.EXPORTACTION.DOWNLOAD) : l.EXPORTACTION.DOWNLOAD,
                        exportFileName: (0, s.pluck)(M.exportFileName, "FusionCharts"),
                        exportHandler: (0, s.pluck)(M.exportHandler, p),
                        exportParameters: (0, s.pluck)(M.exportParameters, ""),
                        exportFormat: (0, s.pluck)(M.exportFormat, l.EXPORTFORMAT.PNG),
                        exportCallback: (0, s.pluck)(M.exportCallback, ""),
                        exportAtClientSide: (0, s.pluckNumber)(M.exportAtClientSide, 1),
                        exportMode: ("undefined" != typeof M.exportAtClientSide && (E = {
                            1: l.EXPORTMODE.AUTO,
                            0: l.EXPORTMODE.SERVER
                        }[M.exportAtClientSide]), E = (E = M.exportMode || E || l.EXPORTMODE.AUTO).toLowerCase()),
                        logEnabled: (0, s.pluckNumber)(M.logEnabled, 0),
                        logMode: (S = M.logMode, void 0 !== S && "string" == typeof S && S.toUpperCase() in l.LOGMODE ? l.LOGMODE[S.toUpperCase()] : l.LOGMODE.AUTO),
                        logHandler: (0, s.pluck)(M.logHandler, g)
                    },
                    L = I.exportFormat.toLowerCase(),
                    O = 0,
                    R = 0,
                    P = 10,
                    V = P / 2,
                    B = a.items,
                    j = v,
                    H = function(e, t, r) {
                        var n;
                        return n = !!I.logEnabled, I.logMode === l.LOGMODE.CLIENT && (n = !1), {
                            charttype: "combined",
                            stream_type: e || "",
                            stream: t || "",
                            is_single_export: !1,
                            is_full_version: !1,
                            version: s.PROJECT_VERSION,
                            user_time_zone: -(new Date).getTimezoneOffset(),
                            log_enabled: n,
                            parameters: ["exportfilename=" + I.exportFileName, "exportformat=" + I.exportFormat, "exportaction=" + (0, l.createExportActionOldString)(I.exportAction), "exportactionnew=" + I.exportAction, "configuredexportaction=" + (r || I.exportAction), "exportparameters=" + I].join("|")
                        }
                    },
                    G = function() {
                        return {
                            chartType: "combined",
                            isSingleExport: !1,
                            isFullVersion: !1,
                            exportAction: I.exportAction,
                            userTimeZone: -(new Date).getTimezoneOffset(),
                            exportFileName: [I.exportFileName, I.exportFormat].join("."),
                            exportFormat: I.exportFormat,
                            version: s.PROJECT_VERSION
                        }
                    },
                    U = function(e) {
                        e === l.LOGMODE.CLIENT && (0, l.logCharts)(G(), I)
                    },
                    z = function(e) {
                        var t, r, a;
                        (0, c.triggerEvent)("beforeexport", n, n, n, (function() {
                            r = "undefined" != typeof u.btoa && ("Chrome" === i.browserDetails.name || "Firefox" === i.browserDetails.name || "Safari" === i.browserDetails.name || "Edge" === i.browserDetails.name || "ie" === i.browserDetails.name), I.exportMode === l.EXPORTMODE.CLIENT || I.exportMode === l.EXPORTMODE.AUTO && r ? (I.exportAction !== l.EXPORTACTION.DOWNLOAD && I.exportAction !== l.EXPORTACTION.DOWNLOADSAVE || (t = I.exportMode === l.EXPORTMODE.AUTO ? H("IMAGE-DATA", e) : null, (0, i.downloadCharts)("url", e, I.exportFileName + "." + L, t, I), (0, c.triggerEvent)("exported", n, {
                                fileName: I.exportFileName + "." + L
                            })), I.exportAction === l.EXPORTACTION.SAVE || I.exportAction === l.EXPORTACTION.DOWNLOADSAVE ? (a = I.exportAction, I.exportAction === l.EXPORTACTION.DOWNLOADSAVE && (I.exportAction = l.EXPORTACTION.SAVE), t = H("IMAGE-DATA", e, a), I.paper = {
                                width: n,
                                height: n
                            }, I.fusionCharts = {}, (0, i.downloadCharts)(null, null, null, t, I), delete I.paper, delete I.fusioncharts, U(I.logMode)) : I.logMode !== l.LOGMODE.SERVER && (0, l.logCharts)(G(), I)) : (t = H("IMAGE-DATA", e), I.paper = {
                                width: n,
                                height: n
                            }, I.fusionCharts = {}, (0, i.downloadCharts)(null, null, null, t, I), delete I.paper, delete I.fusioncharts, U(I.logMode))
                        }), b)
                    },
                    W = function() {
                        if (0 === (D -= 1) && F) switch (L) {
                            case "png":
                                z(r.toDataURL("image/png"));
                                break;
                            case "jpeg":
                                z(r.toDataURL("image/jpeg"));
                                break;
                            case "pdf":
                                (0, o.addImage)(r.toDataURL("image/jpeg"), O, R), z((0, o.getDataUrl)());
                                break;
                            default:
                                z(r.toDataURL("image/png"))
                        }
                    },
                    X = function() {
                        var e = this;
                        (0, i.drawSvgOnCanvas)({
                            svg: arguments[0],
                            canvas: r,
                            x: e.x,
                            y: e.y,
                            width: e.width,
                            height: e.height,
                            useCanvas: arguments[1]
                        }, W)
                    },
                    $ = function(e) {
                        var t = M.background;
                        (r = u.document.createElement("canvas")).id = "newCanvas", r.width = R, r.height = O, r.style.border = "1px solid black", (y = r.getContext("2d")).fillStyle = t && t.bgColor || "#ffffff", y.fillRect(0, 0, R, O), t && t.bgImage && m(t.bgImage) ? ((C = new h).src = t.bgImage, C._userData = t, y.globalAlpha = (0, s.pluckNumber)(t.bgImageAlpha, 100) / 100, C.onload = function() {
                            var t = this._userData,
                                r = (0, s.pluckNumber)(t.bgImageX, 0),
                                n = (0, s.pluckNumber)(t.bgImageY, 0),
                                a = j(Number(t.bgImageWidth), Number(t.bgImageHeight), this.width, this.height);
                            try {
                                y.drawImage(this, r, n, a.width, a.height)
                            } finally {
                                y.globalAlpha = 1, e()
                            }
                        }, C.onerror = function() {
                            e()
                        }) : e()
                    },
                    Y = function(t, r) {
                        var n, i;
                        (e = a.items[t]).jsVars.instanceAPI && (x = (x = (x = (x = e.jsVars.instanceAPI.getFromEnv("paper").toSVG(!0)).replace(/NS\d+:/gi, "xlink:")).replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi, "$1M 0 0 L 0 0$2")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi, ""), D += 1, n = x, i = a.options["export"].useCanvas, (0, l.cacheAllImages)(n, !1, (function() {
                            n = (0, l.replaceImagesWithNonDataUrl)(n), X.call(r || e, n, i)
                        })))
                    },
                    q = function() {
                        var e, r, n, a, i, o, s = M.charts;
                        if (t = [], s)
                            for (n in s) s.hasOwnProperty(n) && (e = B[s[n].id]) && (r = s[n], i = e.width, o = e.height, isNaN(Number(i)) && (i = e.apiInstance.getFromEnv("chartWidth")), isNaN(Number(o)) && (o = e.apiInstance.getFromEnv("chartHeight")), a = j(Number(r.width), Number(r.height), i, o), t.push({
                                id: e.id,
                                width: a.width,
                                height: a.height,
                                x: r.x,
                                y: r.y
                            }));
                        else
                            for (n in B) B.hasOwnProperty(n) && (i = (e = B[n]).width, o = e.height, isNaN(Number(i)) && (i = e.apiInstance.getFromEnv("chartWidth")), isNaN(Number(o)) && (o = e.apiInstance.getFromEnv("chartHeight")), t.push({
                                id: e.id,
                                width: i,
                                height: o
                            }))
                    };
                if ((T = {})[l.EXPORTMODE.CLIENT] = 1, T[l.EXPORTMODE.AUTO] = 0, T[l.EXPORTMODE.SERVER] = 0, I.exportatclientside = T[I.exportMode], i.browserDetails.hasCanvas) {
                    for (q(), k = 0, w = t.length; k < w; k += 1)(_ = t[k]).x = (0, s.pluckNumber)(_.x, V), _.y = (0, s.pluckNumber)(_.y, O + V), _.height = (0, s.pluckNumber)(_.height), _.width = (0, s.pluckNumber)(_.width), O = d(O, _.y + _.height), R = d(R, _.x + _.width);
                    O = M.imageHeight || O + V, R = M.imageWidth || R + V, $((function() {
                        for (k = 0, w = t.length; k < w; k += 1) _ = t[k], k === w - 1 && (F = !0), Y(_.id, _)
                    }))
                }
            }
            var x = {
                extension: function(e) {
                    e.batchExport = y, a = e
                },
                name: "batchExportLinker",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = x
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(338)),
                i = r(193),
                o = function(e) {
                    var t = e.sender;
                    (function(e, t) {
                        return e.getType() === t
                    })(t, "chartAPI") && t.registerFactory("logo", (function(e) {
                        var t = e.getFromEnv("chart-attrib");
                        (0, i.componentFactory)(e, a["default"], "logo", (0, i.getValidValue)(t.logourl, "") ? 1 : 0, [t])
                    }))
                },
                s = {
                    extension: function(e) {
                        e.addEventListener("instantiated", o)
                    },
                    name: "LogoExtension",
                    type: "extension",
                    requiresFusionCharts: !0
                };
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = r(208),
                s = r(193),
                l = {
                    vAlign: "top",
                    hAlign: "left"
                },
                c = {
                    link: {
                        cursor: "pointer",
                        _cursor: "pointer"
                    },
                    normal: {
                        cursor: "default",
                        _cursor: "normal"
                    }
                },
                u = {
                    tr: {
                        vAlign: "top",
                        hAlign: "right"
                    },
                    bl: {
                        vAlign: "bottom",
                        hAlign: "left"
                    },
                    br: {
                        vAlign: "bottom",
                        hAlign: "right"
                    },
                    cc: {
                        vAlign: "middle",
                        hAlign: "middle"
                    }
                },
                d = !(!window.SVGAngle && !document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")),
                h = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var r = (0, a["default"])(t);
                        return r.config._context = {}, r.config.handler = function(e) {
                            var t = e.config;
                            return {
                                load: function() {
                                    var r, n = e.getGraphicalElement("logoImage"),
                                        a = e.getFromEnv("chartConfig"),
                                        i = a.borderWidth || 0,
                                        o = t.logoPosition,
                                        l = t.logoScale,
                                        c = t.logoLeftMargin,
                                        u = t.logoTopMargin,
                                        h = t.logoURL,
                                        f = t.logoAlpha,
                                        g = t.logoPositionSTR,
                                        p = t.logoLink;
                                    n.show(), r = (0, s.setImageDisplayMode)("none", o.vAlign, o.hAlign, l, i, a.width, a.height, n._.RefImg), d && (r.w = r.width || 0, r.h = r.height || 0), r.transform = "T" + c + "," + u, n.attr(r), e.getFromEnv("chart").fireChartInstanceEvent("LogoLoaded", {
                                        logoURL: h,
                                        logoAlpha: f,
                                        logoPosition: g,
                                        logoScale: l,
                                        logoLink: p
                                    })
                                },
                                error: function(r) {
                                    var n = t.logoURL,
                                        a = t.logoAlpha,
                                        i = t.logoPositionSTR,
                                        o = t.logoScale,
                                        s = t.logoLink;
                                    e.getFromEnv("chart").fireChartInstanceEvent("LogoLoadError", {
                                        logoURL: n,
                                        logoAlpha: a,
                                        logoPosition: i,
                                        logoScale: o,
                                        logoLink: s,
                                        error: r
                                    })
                                },
                                mouseover: function(r) {
                                    var n = (0, s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref, r),
                                        a = t.logoURL,
                                        i = t.logoAlpha,
                                        o = t.logoPositionSTR,
                                        l = t.logoScale,
                                        c = t.logoLink;
                                    e.getFromEnv("chart").fireChartInstanceEvent("LogoRollover", {
                                        logoURL: a,
                                        logoAlpha: i,
                                        logoPosition: o || "tl",
                                        logoScale: l,
                                        logoLink: c,
                                        chartX: n.chartX,
                                        chartY: n.chartY,
                                        pageX: n.pageX,
                                        pageY: n.pageY
                                    })
                                },
                                mouseout: function(r) {
                                    var n = (0, s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref, r),
                                        a = t.logoURL,
                                        i = t.logoAlpha,
                                        o = t.logoPositionSTR,
                                        l = t.logoScale,
                                        c = t.logoLink;
                                    e.getFromEnv("chart").fireChartInstanceEvent("LogoRollout", {
                                        logoURL: a,
                                        logoAlpha: i,
                                        logoPosition: o || "tl",
                                        logoScale: l,
                                        logoLink: c,
                                        chartX: n.chartX,
                                        chartY: n.chartY,
                                        pageX: n.pageX,
                                        pageY: n.pageY
                                    })
                                },
                                click: function(r) {
                                    var n = (0, s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref, r),
                                        a = t.logoURL,
                                        i = t.logoAlpha,
                                        o = t.logoPositionSTR,
                                        l = t.logoScale,
                                        c = t.logoLink;
                                    e.getFromEnv("chart").fireChartInstanceEvent("LogoClick", {
                                        logoURL: a,
                                        logoAlpha: i,
                                        logoPosition: o || "tl",
                                        logoScale: l,
                                        logoLink: c,
                                        chartX: n.chartX,
                                        chartY: n.chartY,
                                        pageX: n.pageX,
                                        pageY: n.pageY
                                    }, void 0, t.linkClickFN)
                                }
                            }
                        }(r), r.config.linkClickFN = function() {
                            var e = r.config.logoLink;
                            e && r.getFromEnv("linkClickFN").call({
                                link: e
                            }, !0)
                        }, t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.configureAttributes = function() {
                        var e = this.config,
                            t = this.getFromEnv("chart-attrib");
                        e.logoURL = (0, s.getValidValue)(t.logourl, ""), e.logoPositionSTR = (0, s.pluck)(t.logoposition, "tl").toLowerCase(), e.logoPosition = u[e.logoPositionSTR] || l, e.logoAlpha = (0, s.pluckNumber)(t.logoalpha, 100), e.logoLink = (0, s.getValidValue)(t.logolink), e.logoScale = (0, s.pluckNumber)(t.logoscale, 100), e.logoLeftMargin = (0, s.pluckNumber)(t.logoleftmargin, 0), e.logoTopMargin = (0, s.pluckNumber)(t.logotopmargin, 0), this.setState("dirty", !0)
                    }, r._contextChanged = function() {
                        var e, t = this.config,
                            r = this.getFromEnv("chartConfig"),
                            n = r.borderWidth,
                            a = r.width,
                            i = r.height;
                        return n !== t._context.chartBorderWidth && (t._context.chartBorderWidth = n, e = !0), a !== t._context.chartWidth && (t._context.chartWidth = a, e = !0), i !== t._context.chartHeight && (t._context.chartHeight = i, e = !0), e
                    }, r.draw = function() {
                        var e = this.config,
                            t = this.getGraphicalElement("logoImage"),
                            r = e.logoURL,
                            n = !this.getState("removed");
                        (!n || this.getState("dirty") || this._contextChanged()) && r && n && (t = this.getFromEnv("animationManager").setAnimation({
                            el: t || "image",
                            attr: {
                                opacity: .01 * e.logoAlpha || 1,
                                src: r
                            },
                            component: this,
                            container: this.getLinkedParent().getChildContainer("logoGroup")
                        }), this.getGraphicalElement("logoImage") || (this.addGraphicalElement("logoImage", t), t.on("load", e.handler.load), t.on("error", e.handler.error), t.on("fc-click", e.handler.click), t.on("fc-mouseover", e.handler.mouseover), t.on("fc-mouseout", e.handler.mouseout)), t.css(c[e.logoLink ? "link" : "normal"]))
                    }, t
                }(o.ComponentInterface);
            t["default"] = h
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = {
                extension: function(e) {
                    e.addEventListener("register", (function(t, r) {
                        var n, a = r[0],
                            i = r[1];
                        if (a && "string" == typeof a && "theme" === a && i && "object" == typeof i) {
                            if (i instanceof Array)
                                for (n = 0; n < i.length; n++) e.addDep({
                                    extension: i[n],
                                    name: i[n].name + "Theme",
                                    type: "theme"
                                });
                            else e.addDep({
                                extension: i,
                                name: i.name + "Theme",
                                type: "theme"
                            });
                            t.preventDefault()
                        }
                    }))
                },
                name: "ThemeEngine",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = n
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n, a = r(200);
            (n = {
                outputHelpers: {
                    text: function(e, t) {
                        n.outputTo("#" + e.eventId + " [" + (e.sender.id || e.sender).toString() + '] fired "' + e.eventType + '" event. ' + ("error" === e.eventType || "warning" === e.eventType ? t.message : ""))
                    },
                    event: function(e, t) {
                        this.outputTo(e, t)
                    },
                    verbose: function(e, t) {
                        n.outputTo(e.eventId, e.sender.id, e.eventType, t)
                    }
                },
                outputHandler: function(e, t) {
                    "function" == typeof n.outputTo && n.currentOutputHelper(e, t)
                },
                currentOutputHelper: void 0,
                outputTo: void 0,
                enabled: !1
            }).currentOutputHelper = n.outputHelpers.text;
            var i = {
                extension: function(e) {
                    e["debugger"] = {
                        outputFormat: function(e) {
                            var t = e;
                            return !(!t || "function" != typeof t.toLowerCase || "function" != typeof n.outputHelpers[t = t.toLowerCase()]) && (n.currentOutputHelper = n.outputHelpers[t], !0)
                        },
                        outputTo: function(t) {
                            "function" == typeof t ? n.outputTo = t : null === t && (e["debugger"].enable(!1), delete n.outputTo)
                        },
                        enable: function(t, r, i) {
                            var o, s = t,
                                l = r,
                                c = i;
                            return "object" == typeof s && 1 === arguments.length && (s = (o = s).state, l = o.outputTo, c = o.outputFormat), "function" == typeof s && ("string" != typeof l || 2 !== arguments.length && !o || (c = l), l = s, s = !0), "boolean" == typeof s && s !== n.enabled && (n.enabled = s, n.enabled ? (0, a.addListener)("*", n.outputHandler) : (0, a.removeListener)("*", n.outputHandler)), "function" == typeof l && (n.outputTo = l), e["debugger"].outputFormat(c), n.enabled
                        }
                    }
                },
                name: "Debugger",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = i
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(342)),
                i = r(193),
                o = r(205),
                s = 0;

            function l(e, t) {
                var r = this.apiInstance,
                    n = e || void 0,
                    l = t || void 0,
                    c = r.getChildren("dataset")[0],
                    u = c.getChildren(),
                    d = u.centerLabel && u.centerLabel[0],
                    h = r.config;
                void 0 === d && ((0, i.componentFactory)(c, a["default"], "centerLabel", 1, [h]), d = u.centerLabel && u.centerLabel[0]), r.addJob("eiMethods-center-lebel" + s++, (function() {
                    var e, t, a = r.getDatasets()[0],
                        i = a.config.piePlotOptions.innerSize;
                    if (e = d.config, "object" != typeof l) l = e;
                    else {
                        for (t in e) void 0 === l[t] && (l[t] = e[t]);
                        e = Object.assign(e, l)
                    }
                    l.label = n, e.label = n, a.centerLabelConfig = e, i && d && d.draw(n || "")
                }), o.priorityList.postRender)
            }
            var c = {
                extension: function(e) {
                    e.addEventListener("instantiated", (function(e) {
                        var t = e.sender;
                        (function(e) {
                            var t = e.getName().toLowerCase();
                            return ("doughnut2d" === t || "multilevelpie" === t) && "dataset" === e.getType()
                        })(t) && t.registerFactory("centerLabel", (function() {
                            var e = t.getFromEnv("chartConfig"),
                                r = !(!e.centerlabel && !e.defaultcenterlabel);
                            t.getFromEnv("chartInstance").centerLabel = l, (0, i.componentFactory)(t, a["default"], "centerLabel", r ? 1 : 0, [e])
                        }))
                    }))
                },
                name: "CenterLabelExtension",
                type: "extension",
                requiresFusionCharts: !0
            };
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(208),
                o = r(193),
                s = r(201),
                l = n(r(343));
            (0, s.addDep)({
                name: "centerLabelAnimation",
                type: "animationRule",
                extension: l["default"]
            });
            var c = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, a["default"])(t, e);
                var r = t.prototype;
                return r.getName = function() {
                    return "centerLabel"
                }, r.getType = function() {
                    return "centerLabel"
                }, r.configure = function(e) {
                    var t = this.getFromEnv("chart-attrib"),
                        r = this.getFromEnv("number-formatter"),
                        n = e.dataLabelStyle,
                        a = this;
                    a.config = {
                        label: (0, o.parseUnsafeString)((0, o.pluck)(t.defaultcenterlabel, "")),
                        font: (0, o.pluck)(t.centerlabelfont, n.fontFamily),
                        fontSize: (0, o.pluckNumber)(t.centerlabelfontsize, parseInt(n.fontSize, 10)),
                        color: (0, o.getFirstColor)((0, o.pluck)(t.centerlabelcolor, t.valuefontcolor, e.style.inCanvasStyle.color, "555555")),
                        alpha: (0, o.pluckNumber)(t.centerlabelalpha, 100),
                        bold: (0, o.pluckNumber)(t.centerlabelbold, n.fontWeight),
                        italic: (0, o.pluckNumber)(t.centerlabelitalic, n.style),
                        bgColor: (0, o.pluck)(t.centerlabelbgcolor, ""),
                        bgAlpha: (0, o.pluckNumber)(t.centerlabelbgalpha, 100),
                        borderColor: (0, o.pluck)(t.centerlabelbordercolor, n.borderColor),
                        borderAlpha: (0, o.pluckNumber)(t.centerlabelborderalpha, 100),
                        borderThickness: (0, o.pluckNumber)(t.centerlabelborderthickness, n.borderThickness),
                        borderRadius: (0, o.pluckNumber)(t.centerlabelborderradius, n.borderRadius),
                        textPadding: (0, o.pluckNumber)(t.centerlabeltextpadding, n.borderPadding),
                        padding: (0, o.pluckNumber)(t.centerlabelpadding, 2),
                        bgOval: (0, o.pluckNumber)(t.centerlabelbgoval, 0),
                        shadow: (0, o.pluckNumber)(t.showcenterlabelshadow, 0),
                        hoverColor: t.centerlabelhovercolor && (0, o.getFirstColor)((0, o.pluck)(t.centerlabelhovercolor)),
                        hoverAlpha: (0, o.pluckNumber)(t.centerlabelhoveralpha),
                        toolText: (0, o.parseUnsafeString)((0, o.pluck)(t.centerlabeltooltext, o.BLANKSTRING), !1)
                    }, a.addExtEventListener("datasetrollover", (function(e) {
                        var t = e.data,
                            n = (0, o.pluck)(function(e, t, r) {
                                var n = e;
                                if (n)
                                    for (var a, i = t.length || 0; i--;) a = new RegExp(t[i], "gi"), n = n.replace(a, r[i]);
                                return n
                            }((0, o.parseUnsafeString)(e.sender.getFromEnv("dataSource").chart.centerlabel), ["\\$value", "\\$percentValue", "\\$displayValue", "\\$label"], [r.scale(t.value), t.pValue, t.displayValue, t.label]), "");
                        a.draw(n, !1)
                    }), this.getFromEnv("chart").getDatasets()[0]), a.addExtEventListener("datasetrollout", (function(e) {
                        a.draw((0, o.pluck)(e.sender.config.label, ""), !1)
                    }), this.getFromEnv("chart").getDatasets()[0])
                }, r.draw = function(e) {
                    var t, r, n = this,
                        a = n.getFromEnv("chart"),
                        i = a.config.canvasLeft + .5 * a.config.canvasWidth,
                        s = a.config.canvasTop + .5 * a.config.canvasHeight,
                        l = a.getDatasets()[0].config.innerSize,
                        c = a.getDatasets()[0].config.innerSize,
                        u = a.getDatasets()[0].config,
                        d = this.config,
                        h = n.getFromEnv("animationManager"),
                        f = n.getFromEnv("smartLabel"),
                        g = this.getGraphicalElement("centerLabel"),
                        p = g,
                        m = this.getGraphicalElement("centerLabelBg"),
                        v = a.getChildContainer("plotGroup"),
                        b = d.padding,
                        y = 2 * d.textPadding,
                        x = {
                            fontFamily: d.font,
                            fontSize: d.fontSize + "px",
                            lineHeight: 1.2 * d.fontSize + "px",
                            fontWeight: d.bold ? "bold" : "",
                            fontStyle: d.italic ? "italic" : ""
                        },
                        w = 1.414 * (.5 * l - b) - y,
                        C = 1.414 * (.5 * c - b) - y,
                        _ = n.getFromEnv("toolTipController");
                    t = (0, o.pluck)(e, d.label), f.setStyle(x), f.useEllipsesOnOverflow(a.config.useEllipsesWhenOverflow), r = f.getSmartText(t, w, C), t ? (d.bgOval && (m = h.setAnimation({
                        el: m || "circle",
                        attr: {
                            cx: i,
                            cy: s,
                            r: .5 * l - b,
                            visibility: "visible",
                            container: v,
                            fill: (0, o.hashify)(d.bgColor),
                            "fill-opacity": d.bgAlpha / 100,
                            stroke: (0, o.hashify)(d.borderColor),
                            "stroke-width": d.borderThickness,
                            "stroke-opacity": d.borderAlpha / 100
                        },
                        component: n
                    })), p = h.setAnimation({
                        el: g || "text",
                        component: n,
                        container: v,
                        css: x,
                        attr: {
                            x: i,
                            y: s,
                            text: r.text,
                            visibility: "visible",
                            direction: a.config.textDirection,
                            fill: (0, o.toRaphaelColor)({
                                FCcolor: {
                                    color: d.color,
                                    alpha: d.alpha
                                }
                            }),
                            "text-bound": d.bgOval ? "none" : [(0, o.toRaphaelColor)({
                                FCcolor: {
                                    color: d.bgColor,
                                    alpha: d.bgAlpha
                                }
                            }), (0, o.toRaphaelColor)({
                                FCcolor: {
                                    color: d.borderColor,
                                    alpha: d.borderAlpha
                                }
                            }), d.borderThickness, d.textPadding, d.borderRadius]
                        },
                        label: "text"
                    }), _.enableToolTip(p, d.toolText || r.tooltext)) : (p && h.setAnimation({
                        el: p,
                        attr: {
                            visibility: "hidden"
                        },
                        component: n
                    }), m && h.setAnimation({
                        el: m,
                        attr: {
                            visibility: "hidden"
                        },
                        component: n
                    })), g ? p.attr("text") !== t && n.centerLabelChange(t) : (n.addEventListener("fc-mouseover", (function() {
                        n._centerLabelRollover(a)
                    })), n.addEventListener("fc-mouseout", (function() {
                        n._centerLabelRollout(a)
                    })), n.addEventListener("fc-click", (function() {
                        n._centerLabelClick(a)
                    })), n.addGraphicalElement("centerLabel", p), n.addGraphicalElement("centerLabelBg", m)), u.lastCenterLabelConfig = d, u.centerLabelConfig = d
                }, r.centerLabelChange = function(e) {
                    var t = this.getFromEnv("chart"),
                        r = t.config,
                        n = this.getFromEnv("chartInstance"),
                        a = {
                            height: r.height,
                            width: r.width,
                            pixelHeight: t.getFromEnv("chartWidth"),
                            pixelWidth: t.getFromEnv("chartHeight"),
                            id: n.id,
                            renderer: n.args.renderer,
                            container: n.options.containerElement,
                            centerLabelText: e
                        };
                    t.fireChartInstanceEvent("centerLabelChanged", a)
                }, r._centerLabelRollover = function(e) {
                    var t = e.config,
                        r = e.getFromEnv("chartInstance"),
                        n = this.config,
                        a = {
                            height: t.height,
                            width: t.width,
                            pixelHeight: e.getFromEnv("chartWidth"),
                            pixelWidth: e.getFromEnv("chartHeight"),
                            id: r.id,
                            renderer: r.args.renderer,
                            container: r.options.containerElement,
                            centerLabelText: n && n.label
                        };
                    this.getFromEnv("paper").attr("text") && e.fireChartInstanceEvent("centerLabelRollover", a, void 0, this.hoverOnCenterLabel.bind(this, e))
                }, r._centerLabelRollout = function(e) {
                    var t = e.config,
                        r = e.getFromEnv("chartInstance"),
                        n = this.config,
                        a = {
                            height: t.height,
                            width: t.width,
                            pixelHeight: e.getFromEnv("chartWidth"),
                            pixelWidth: e.getFromEnv("chartHeight"),
                            id: r.id,
                            renderer: r.args.renderer,
                            container: r.options.containerElement,
                            centerLabelText: n && n.label
                        };
                    this.getFromEnv("paper").attr("text") && e.fireChartInstanceEvent("centerLabelRollout", a, void 0, this.hoverOffCenterLabel.bind(this, e))
                }, r._centerLabelClick = function(e) {
                    var t, r = e.config,
                        n = e.getFromEnv("chartInstance"),
                        a = {
                            height: r.height,
                            width: r.width,
                            pixelHeight: e.getFromEnv("chartWidth"),
                            pixelWidth: e.getFromEnv("chartHeight"),
                            id: n.id,
                            renderer: n.args.renderer,
                            container: n.options.containerElement
                        };
                    t = this.config, a.centerLabelText = t && t.label, this.getFromEnv("paper").attr("text") && e.fireChartInstanceEvent("centerLabelClick", a)
                }, r.hoverOnCenterLabel = function(e) {
                    var t = e.getChildren("dataset")[0].config.lastCenterLabelConfig;
                    (t.hoverColor || t.hoverAlpha) && this.getGraphicalElement("centerLabel").attr({
                        fill: (0, o.toRaphaelColor)({
                            FCcolor: {
                                color: t.hoverColor || t.color,
                                alpha: t.hoverAlpha || t.alpha
                            }
                        })
                    })
                }, r.hoverOffCenterLabel = function(e) {
                    var t = e.getChildren("dataset")[0].config.lastCenterLabelConfig;
                    (t.hoverColor || t.hoverAlpha) && this.getGraphicalElement("centerLabel").attr({
                        fill: (0, o.toRaphaelColor)({
                            FCcolor: {
                                color: t.color,
                                alpha: t.alpha
                            }
                        })
                    })
                }, t
            }(i.ComponentInterface);
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                "initial.centerLabel.centerLabel.text.appearing": function(e) {
                    if (e.attr) return [{
                        initialAttr: {
                            x: e.attr.x,
                            y: e.attr.y
                        }
                    }]
                }
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = r(193),
                i = n(r(345)),
                o = n(r(347)),
                s = {
                    dragnode: !0,
                    hlineargauge: !0,
                    column3d: !0,
                    mscolumn3d: !0,
                    bar3d: !0,
                    pareto3d: !0,
                    msbar3d: !0,
                    stackedcolumn3d: !0,
                    stackedbar3d: !0,
                    mscombi3d: !0,
                    mscolumnline3d: !0,
                    stackedcolumn3dline: !0,
                    mscolumn3dlinedy: !0,
                    stackedcolumn3dlinedy: !0,
                    realtimearea: !0,
                    realtimecolumn: !0,
                    realtimeline: !0,
                    realtimestackedarea: !0,
                    realtimestackedcolumn: !0,
                    angulargauge: !0,
                    realtimelinedy: !0,
                    kagi: !0,
                    treemap: !0,
                    heatmap: !0,
                    boxandwhisker2d: !0,
                    scatter: !0,
                    timeseries: !0,
                    bubble: !0,
                    errorscatter: !0,
                    sparkwinloss: !0,
                    zoomscatter: !0,
                    zoomline: !0,
                    zoomlinedy: !0,
                    chord: !0
                },
                l = function(e) {
                    if ("chartAPI" === e.sender.getType()) {
                        var t = e.sender,
                            r = t.getFromEnv("chartInstance");
                        r.drawCrossline = function(e) {
                            r.drawConsolidatedToolTip(e), t.iterateComponents((function(t) {
                                "crossline-manager" === t.getType() && (e !== a.UNDEF ? t.show({
                                    value: e
                                }) : t.hide())
                            }))
                        }
                    }
                },
                c = function(e) {
                    var t, r, n, a = e.sender.apiInstance.getChildren("canvas");
                    for (n = 0; n < a.length; n++)(t = (t = a[n].getChildren("crosslineManagerBand")) && t[0]) && (r = t._handlerAPI, t.config.axisScrolling = !0, r.onhoverout(e))
                },
                u = function(e) {
                    var t, r, n = e.sender.apiInstance.getChildren("canvas");
                    for (r = 0; r < n.length; r++)(t = n[r].getChildren("crosslineManagerBand")) && t[0] && (t[0].config.axisScrolling = !1)
                },
                d = function(e) {
                    if ("canvas" === e.sender.getName()) {
                        var t, r, n = e.sender;
                        n.registerFactory("crossLineManager", (function() {
                            var l = e.sender.getFromEnv("chart"),
                                c = l && l.getName();
                            c && !s[c.toLowerCase()] && ((0, a.componentFactory)(n, o["default"], "crosslineManagerBand"), t = n.getChildren("crosslineManagerBand")[0], r = t._handlerAPI, t.configure(), (0, a.componentFactory)(t, i["default"], "crossline"), t.addExtEventListener("fc-mouseover", r.onhover, n), t.addExtEventListener("fc-mousemove", r.onhover, n), t.addExtEventListener("fc-mouseout", r.onhoverout, n))
                        }))
                    }
                },
                h = {
                    extension: function(e) {
                        e.addEventListener("preconfigure", l), e.addEventListener("scrollstart", c), e.addEventListener("scrollend", u), e.addEventListener("instantiated", d)
                    },
                    name: "crossline-manager",
                    type: "extension",
                    requiresFusionCharts: !0
                };
            t["default"] = h
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = r(208),
                o = r(193),
                s = r(201),
                l = n(r(346)),
                c = function(e) {
                    function t() {
                        var t;
                        return t = e.call(this) || this, (0, s.addDep)({
                            name: "crosslineAnimation",
                            type: "animationRule",
                            extension: l["default"]
                        }), t
                    }(0, a["default"])(t, e);
                    var r = t.prototype;
                    return r.getName = function() {
                        return "crossline"
                    }, r.getType = function() {
                        return "crossline"
                    }, r.show = function(e) {
                        void 0 === e && (e = {});
                        var t = !!e.onTop,
                            r = e.type;
                        t !== this.config.prevRenderedOnTop && this.hide(), !this[r] && (r = "band"), this[r](e), this.config.prevRenderedOnTop = t
                    }, r.band = function(e) {
                        void 0 === e && (e = {});
                        var t, r, n = e.managerId,
                            a = e.x1,
                            i = e.y1,
                            s = e.x2,
                            l = e.y2,
                            c = (0, o.toRaphaelColor)({
                                color: (0, o.pluck)(e.fillcolor, "#EEEEEE"),
                                alpha: (0, o.pluckNumber)(e.alpha, 50)
                            }),
                            u = this.getLinkedParent().getLinkedParent().getEffectiveDimensions(),
                            d = [u.left, u.top, u.width, u.height].toString(),
                            h = this.getLinkedParent().getChildContainer("crosslineBottom"),
                            f = this.getLinkedParent().getChildContainer("crosslineTop");
                        r = e.onTop ? f : h, (t = this.getGraphicalElement("crosslineBand" + n)) ? e.animDuration ? t.animate({
                            path: ["M", a, i, "L", s, l]
                        }, e.animDuration, "ease-in") : t.attr({
                            path: ["M", a, i, "L", s, l],
                            "clip-rect": d
                        }) : this.addGraphicalElement("crosslineBand" + n, this.getFromEnv("paper").path({
                            path: ["M", a, i, "L", s, l],
                            "clip-rect": d,
                            stroke: c,
                            fill: c,
                            "stroke-width": e.thickness,
                            "stroke-linecap": "butt"
                        }, r))
                    }, r.hide = function() {
                        for (var e = this.getGraphicalElement(), t = Object.keys(e), r = t.length - 1; r > -1; r--) e[t[r]].stop(o.UNDEF, !0, !0), e[t[r]].remove(), delete e[t[r]]
                    }, t
                }(i.ComponentInterface);
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                crossline: {
                    crossline: {
                        path: {
                            updating: function(e) {
                                return [{
                                    initialAttr: {
                                        path: e.el.attr("path")
                                    },
                                    finalAttr: {
                                        path: e.attr.path
                                    }
                                }]
                            }
                        }
                    }
                }
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = r(193),
                s = r(208),
                l = o.hasSVG ? 0 : .5,
                c = function(e, t, r) {
                    return r.getFromEnv("animationManager").setAnimation({
                        el: "group",
                        attr: {
                            name: e
                        },
                        container: t,
                        state: "appearing",
                        component: r,
                        label: "group"
                    })
                },
                u = function(e) {
                    function t() {
                        var t, r;
                        return (t = e.call(this) || this)._handlerAPI = (r = (0, a["default"])(t), {
                            onhover: function(e, t) {
                                !r.config.axisScrolling && r.show(t.axes ? {
                                    axesInfo: t.axes
                                } : {
                                    event: e
                                })
                            },
                            onhoverout: function(e) {
                                r.hide({
                                    event: e
                                })
                            }
                        }), t.mouseOutTimer = o.UNDEF, t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getAttachedAxisInfo = function(e) {
                        void 0 === e && (e = {});
                        var t, r, n, a, i = this.getLinkedParent().getAxes(),
                            s = e.originalEvent && (0, o.getMouseCoordinate)(this.getLinkedParent().getFromEnv("chart-container"), e.originalEvent, this.getFromEnv("chart")),
                            l = s && s.chartX || 0,
                            c = s && s.chartY || 0;
                        for (t = i.length - 1; t >= 0; t--)
                            if (r = i[t].axis, !i[t].isY) return n = !!r.config.isVertical, a = r.getTranslation(), {
                                value: n ? r.getValue(c + a) : r.getValue(l + a),
                                axis: r,
                                isVertical: n,
                                isY: !1
                            }
                    }, r.configure = function() {
                        var e = this.config,
                            t = this.getFromEnv("chartConfig"),
                            r = this.getFromEnv("chart-attrib");
                        e.drawCrossLine = (0, o.pluckNumber)(r.drawcrossline, t.drawcrossline, 0), e.bandStyle = {
                            fillcolor: (0, o.pluck)(r.crosslinecolor, t.crosslinecolor, "#EEEEEE"),
                            alpha: (0, o.pluckNumber)(r.crosslinealpha, t.crosslinealpha, 50),
                            thickness: (0, o.pluckNumber)(t.defaultcrosslinethickness),
                            managerId: this.getId(),
                            onTop: (0, o.pluckNumber)(r.drawcrosslineontop, t.drawcrosslineontop, 0),
                            cursor: "pointer",
                            animDuration: (0, o.pluckNumber)(r.crosslineanimation, 0) && 1e3 * (0, o.pluckNumber)(r.crosslineanimationduration, .09)
                        }
                    }, r.createGroup = function() {
                        var e = this.getLinkedParent().getChildContainer("crosslineBottom"),
                            t = this.getLinkedParent().getChildContainer("crosslineTop");
                        !this.getChildContainer("crosslineTop") && this.addChildContainer("crosslineTop", c("crosslineTop", t, this)), !this.getChildContainer("crosslineBottom") && this.addChildContainer("crosslineBottom", c("crosslineBottom", e, this))
                    }, r.show = function(e) {
                        void 0 === e && (e = {});
                        var t = e.event;
                        clearTimeout(this.mouseOutTimer), this.config.attachedCanvasAxisInfo = this.getAttachedAxisInfo(t), this._setAptAxesInfo(e.axesInfo, e.value), this._show(t)
                    }, r._setAptAxesInfo = function(e, t) {
                        void 0 === e && (e = []);
                        var r, n, a = e.length,
                            i = this.config.attachedCanvasAxisInfo;
                        if (e.length)
                            for (n = 0; n < a; n++)
                                if ((r = e[n]).axis === i.axis) {
                                    i.value = r.value;
                                    break
                                }
                        t !== o.UNDEF && (i.value = t)
                    }, r._show = function(e) {
                        var t, r, n, a, i, s, c = this.config,
                            u = this.getFromEnv("chartConfig"),
                            d = this.getChildren("crossline")[0],
                            h = c.attachedCanvasAxisInfo,
                            f = h.axis,
                            g = f.getLimit().max - f.config.endPad,
                            p = Math.round(h.value),
                            m = h.axis.getPixel(p) - h.axis.getTranslation(),
                            v = Object.assign({}, c.bandStyle),
                            b = this.getFromEnv("canvasConfig"),
                            y = b.canvasTop,
                            x = b.canvasLeft;
                        p < 0 || p > g || this.config.lastIndex !== p && c.drawCrossLine && ((n = v.thickness) === o.UNDEF && (!1 === u._hascolumn ? n = 1 : (t = f.getPixel(0), r = f.getPixel(1), n = Math.abs(r - t))), i = m, s = n, a = Math.round(i + (s % 2 / 2 + l)) - (s % 2 / 2 + l), this.createGroup(), v.thickness = n, v = h.isVertical ? Object.assign(v, {
                            x1: x,
                            y1: a,
                            x2: x + b.canvasWidth,
                            y2: a
                        }) : Object.assign(v, {
                            x1: a,
                            y1: y,
                            x2: a,
                            y2: y + b.canvasHeight
                        }), d.show(v), this.getFromEnv("chart").fireChartInstanceEvent("onChangeCrossLine", {
                            currentIndex: p,
                            lastIndex: this.config.lastIndex,
                            source: e ? "mouse interaction" : "public API"
                        }), this.config.lastIndex = p)
                    }, r.hide = function(e) {
                        var t = this;
                        void 0 === e && (e = {});
                        var r = this;
                        this.mouseOutTimer = setTimeout((function() {
                            r.getFromEnv("chart").fireChartInstanceEvent("onChangeCrossLine", {
                                lastIndex: r.config.lastIndex,
                                source: e.event ? "mouse interaction" : "public API"
                            }), delete t.config.lastIndex, t.getChildren("crossline")[0].hide()
                        }), 20)
                    }, r.getType = function() {
                        return "crossline-manager"
                    }, r.getName = function() {
                        return "crossline-manager-band-category-axis"
                    }, t
                }(s.ComponentInterface);
            t["default"] = u
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(210)),
                i = n(r(207)),
                o = r(208),
                s = r(193),
                l = {
                    candlestick: !0
                },
                c = function(e) {
                    if (e.sender.getType && "chartAPI" === e.sender.getType() && l[e.sender.getName && e.sender.getName()]) {
                        var t, r, n = e.sender;
                        n.registerFactory("multiCanvasCrossline", (function() {
                            (0, s.componentFactory)(n, u, "multiCanvasCrosslineManager"), t = n.getChildren("multiCanvasCrosslineManager")[0], r = t._handlers, n.iterateComponents((function(e) {
                                "canvas" === e.getName() && (e.addEventListener("fc-mouseover", r.onhover), e.addEventListener("fc-mousemove", r.onhover), e.addEventListener("fc-mouseout", r.onhoverout))
                            }))
                        }), ["canvas"])
                    }
                },
                u = function(e) {
                    function t() {
                        var t, r;
                        return (t = e.call(this) || this)._handlers = (r = (0, a["default"])(t), {
                            onhover: function(e) {
                                e.originalEvent && r.show(e)
                            },
                            onhoverout: function(e) {
                                e.originalEvent && r.hide(e)
                            }
                        }), t
                    }(0, i["default"])(t, e);
                    var r = t.prototype;
                    return r.getAxesInfo = function(e, t) {
                        void 0 === e && (e = {});
                        var r, n, a, i, o = t.getAxes(),
                            l = [],
                            c = (0, s.getMouseCoordinate)(this.getFromEnv("chart-container"), e.originalEvent, this.getFromEnv("chart")),
                            u = c.chartX || 0,
                            d = c.chartY || 0;
                        for (r = o.length - 1; r >= 0; r--) n = o[r].axis, a = o[r].isY, i = !!n.config.isVertical, l.push({
                            value: i ? n.getValue(d) : n.getValue(u),
                            axis: n,
                            isVertical: i,
                            isY: a
                        });
                        return l
                    }, r.getName = function() {
                        return "multiCanvasCrosslineManager"
                    }, r.getType = function() {
                        return "multiCanvasCrosslineManager"
                    }, r.show = function(e) {
                        var t = this,
                            r = e.sender;
                        this.getFromEnv("chart").iterateComponents((function(n) {
                            "canvas" === n.getName() && n !== r && n.fireEvent("fc-mousemove", {
                                axes: t.getAxesInfo(e, r)
                            })
                        }))
                    }, r.hide = function(e) {
                        var t = e.sender,
                            r = (0, s.getMouseCoordinate)(t.getFromEnv("chart-container"), e && e.originalEvent, t.getFromEnv("chart"));
                        t.isWithinCanvas(r.chartX, r.chartY) || this.getFromEnv("chart").iterateComponents((function(e) {
                            "canvas" === e.getName() && e !== t && e.fireEvent("fc-mouseout")
                        }))
                    }, t
                }(o.ComponentInterface),
                d = {
                    extension: function(e) {
                        e.addEventListener("instantiated", c)
                    },
                    name: "multi-canvas-crossline-manager",
                    type: "extension",
                    requiresFusionCharts: !0
                };
            t["default"] = d
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(350)),
                i = r(357);
            t.getConfig = i.getConfig, t.setConfig = i.setConfig;
            var o = a["default"];
            t["default"] = o
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(351))["default"];
            t["default"] = a
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(352)),
                i = r(376),
                o = r(353),
                s = function() {
                    function e(e, t, r) {
                        this.dataTables = {}, this._defaultDataTable = null, this._id = +new Date + "", e && t && e.constructor === Array && t.constructor === Array && this.createDataTable(e, t, r)
                    }
                    var t = e.prototype;
                    return t.createDataTable = function(e, t, r, n) {
                        if (!e || !t) throw new Error("Both data and schema must be provided to build DataTable");
                        if (e.constructor !== Array) throw new Error("Data must be provided in 2D array format or array of json objects");
                        if (t.constructor !== Array || 0 === t.length) throw new Error("Input schema is not in a correct format - schema must be an array of column configurations");
                        var i, s, l = {},
                            c = n;
                        if (s = Object.keys(this.dataTables), c) {
                            if (s.includes(c)) throw new Error("A table with the id " + c + " already exists in the DataStore. Please use a different id.")
                        } else c = (0, o.createTableID)(s);
                        return Object.assign(l, {
                            enableIndex: !0,
                            enableUTC: !1
                        }, r), i = new a["default"](this, (0, o.parseAndIndexData)(e, t, l), t, l, null, null, c), 0 === s.length && (this._defaultDataTable = i), this.dataTables[c] = i, i
                    }, t.appendRows = function(e, t) {
                        var r, n, a, i = this.getDataTable(t),
                            s = i.getSchema();
                        a = (0, o.buildDateColumnsFormatter)(s), n = (0, o.parseData)(e, s, a), (r = i._data).push.apply(r, n), (0, o.indexData)(i._data, s, i._config, a), i.flushResults(), this.trigger("itemsAdded", {
                            rows: e,
                            parsedRows: n,
                            tableID: t
                        })
                    }, t.deleteRows = function(e, t) {
                        var r = this.getDataTable(t),
                            n = r.query(e),
                            a = n.getData().data,
                            i = r.indexOf("_row_id"),
                            o = n.indexOf("_row_id"),
                            s = a.map((function(e) {
                                return e[o]
                            }));
                        r._data = r._data.filter((function(e) {
                            return !s.includes(e[i])
                        })), r.flushResults(), this.trigger("itemsRemoved", {
                            rows: a,
                            tableID: t
                        }), n.dispose()
                    }, t.getDataTable = function(e) {
                        if (e) {
                            if (!this.dataTables[e]) throw new Error("DataTable with id " + e + " is not found in the DataStore.");
                            return this.dataTables[e]
                        }
                        return this._defaultDataTable
                    }, t.on = function(e, t) {
                        (0, i.addHandler)(e, t, this)
                    }, t.off = function(e, t) {
                        (0, i.removeHandler)(e, t, this)
                    }, t.trigger = function(e, t) {
                        (0, i.triggerEvent)(e, this, t)
                    }, t.dispose = function() {
                        var e = this;
                        for (var t in e.dataTables) e.dataTables.hasOwnProperty(t) && (e.dataTables[t].dispose(), delete e.dataTables[t]);
                        delete e._id, delete e.dataTables, delete e._defaultDataTable, this.trigger("disposed"), e = null
                    }, t._propagate = function(e) {
                        for (var t in this.trigger("payloadReceived", e), this.dataTables) this.dataTables.hasOwnProperty(t) && this.dataTables[t]._payloadReceiver(e)
                    }, e
                }();
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = r(353),
                i = r(376),
                o = n(r(377)),
                s = function() {
                    function e(e, t, r, n, a, i, o) {
                        this._dataStore = e, this._parentTable = a, this._children = [], this._childrenTableIDs = [], this._opsFunnel = i, this._data = t || [], this._schema = r, this._config = n, this._id = o;
                        var s, l = 1;
                        if (this._id || (s = this._parentTable && this._parentTable._id ? this._parentTable._id : "table_1", this._id = s + "_" + l), this._parentTable) {
                            for (; this._parentTable._childrenTableIDs.includes(this._id);) this._id = s ? s + "_" + ++l : this._id + "_1";
                            this._parentTable._children.push(this), this._parentTable._childrenTableIDs.push(this._id)
                        }
                        this._result = null
                    }
                    var t = e.prototype;
                    return t.count = function() {
                        return this._executeFunnel().data.length
                    }, t.getSchema = function() {
                        return this._executeFunnel().schema
                    }, t.getID = function() {
                        return this._id
                    }, t.getDataStore = function() {
                        return this._dataStore
                    }, t.getChildren = function(e) {
                        if (e) {
                            for (var t = 0; t < this._children.length; t++)
                                if (this._children[t]._id === e) return this._children[t];
                            return null
                        }
                        return this._children
                    }, t.getData = function(e, t) {
                        var r, n = e,
                            a = t;
                        return n = n || 0, a = a && ("string" == typeof a || a instanceof String) || null === a ? void 0 : a, {
                            data: (r = this._executeFunnel()).data && r.data.slice(n, a && a > 0 ? n + a : a),
                            schema: r.schema
                        }
                    }, t.dispose = function() {
                        var e = this;
                        if (e._parentTable && e._parentTable._children) {
                            var t;
                            for (t = 0; t < e._parentTable._children.length && ("undefined" == typeof e._id || e._id !== e._parentTable._children[t]._id); t++);
                            t !== e._parentTable._children.length && e._parentTable._children.splice(t, 1)
                        }
                        delete e._dataStore, delete e._parentTable, delete e._opsFunnel, delete e._data, delete e._schema, delete e._config, delete e._result, delete e._id, e.disposeChildren(), delete e._children, delete e._childrenTableIDs, e._trigger("disposed"), delete e._evtHandlers, e.disposed = !0, e = null
                    }, t.disposeChildren = function() {
                        for (var e = (this._children && this._children.length || 0) - 1; e >= 0; e--) this._children[e].dispose();
                        this._children = [], this._childrenTableIDs = []
                    }, t.min = function(e) {
                        var t = this.getData();
                        return (0, a.columnMinValue)(e, t.data, t.schema)
                    }, t.max = function(e) {
                        var t = this.getData();
                        return (0, a.columnMaxValue)(e, t.data, t.schema)
                    }, t.unique = function(e) {
                        var t = this.getData();
                        return (0, a.columnUnique)(e, t.data, t.schema)
                    }, t.extents = function(e) {
                        var t = this.getData();
                        return (0, a.columnExtents)(e, t.data, t.schema)
                    }, t.addColumns = function() {
                        for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r];
                        for (var n, a = t.length, i = [], s = 0; s < a; s++)(0, o["default"])(t[s]) && i.push(t[s]);
                        n = i.length, this._calcColumns = this._calcColumns || [];
                        for (var l = 0; l < n; l++) {
                            if (!i[l].name) throw new Error("name is required in column " + (l + 1));
                            if (i[l].calcFn && !(i[l].calcFn instanceof Function)) throw new Error("calcFn must be a function in column " + (l + 1));
                            i[l].calcFn || (i[l].calcFn = function() {}), this._calcColumns.push(Object.assign({}, i[l]))
                        }
                        this._trigger("updated", i)
                    }, t.query = function(t) {
                        var r = t;
                        return r && r.constructor !== Array && (r = [r]), new e(this._dataStore, this._data, this._schema, this._config, this, r)
                    }, t.indexOf = function(e) {
                        var t = this._executeFunnel();
                        return (0, a.columnIndexOf)(e, t.schema)
                    }, t.on = function(e, t) {
                        (0, i.addHandler)(e, t, this)
                    }, t.off = function(e, t) {
                        (0, i.removeHandler)(e, t, this)
                    }, t._trigger = function(e, t) {
                        (0, i.triggerEvent)(e, this, t)
                    }, t._executeFunnel = function() {
                        if (!this._result)
                            if (this._opsFunnel) {
                                var e, t, r, n, i;
                                t = (e = this._parentTable._executeFunnel()).data.slice(0), r = e.schema.slice(0), n = Object.assign({}, e.config), i = this._opsFunnel.length;
                                for (var o = 0; o < i; o++)
                                    if (this._opsFunnel[o] && this._opsFunnel[o].fn) {
                                        var s = this._opsFunnel[o].fn(t, r, n);
                                        t = s.generatorFn ? s.generatorFn() : s.data, r = s.schema, void 0 === (n = Object.assign(n, s.config)).indexBy && (n.enableIndex = !1)
                                    }
                                this._result = {
                                    data: t,
                                    schema: r,
                                    config: n
                                }
                            } else this._result = {
                                data: this._data,
                                schema: this._schema,
                                config: this._config
                            };
                        if (this._calcColumns && this._calcColumns.length > 0) {
                            var l = (0, a.addColumnsSchema)(this._result.schema, this._calcColumns);
                            this._result.schema = l.schema, this._result.data = (0, a.addColumnsData)(this._result.data, this._result.schema, l.calcColumns), delete this._calcColumns
                        }
                        return this._result
                    }, t.flushResults = function() {
                        var e = this._result && this._result.schema.length || 0,
                            t = this._children && this._children.length || 0;
                        e && (this._calcColumns = []);
                        for (var r = 0; r < e; r++) this._result.schema[r].calcFn && this._calcColumns.push(this._result.schema[r]);
                        this._result && (this._result = null);
                        for (var n = 0; n < t; n++) this._children[n].flushResults()
                    }, t.propagate = function(e) {
                        this.getDataStore()._propagate({
                            trigger: this,
                            payload: e
                        })
                    }, t._payloadReceiver = function(e) {
                        var t = this._children && this._children.length || 0;
                        e && e.trigger && e.trigger !== this && this._trigger("payloadReceived", e);
                        for (var r = 0; r < t; r++) this._children[r]._payloadReceiver(e)
                    }, t.getMinDiff = function(e) {
                        var t = this.getData();
                        return (0, a.columnMinDiff)(e, t.data, t.schema, this._config.indexBy)
                    }, t.isUTCEnabled = function(e) {
                        return (0, a.isUTCEnabled)(e, this.getSchema())
                    }, e
                }();
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.columnIndexOf = u, t.columnMinValue = function(e, t, r) {
                var n, i;
                if (null === (n = u(e, r)) || -1 === n) return null;
                if (t && t.length > 0) {
                    var o;
                    i = Number.POSITIVE_INFINITY;
                    for (var s = 0; s < t.length; s++) o = "interval" === r[n].type ? t[s][n] ? t[s][n].start : null : t[s][n], (0, a.isNumber)(o) && o < i && (i = o)
                }
                return i
            }, t.columnMaxValue = function(e, t, r) {
                var n, i;
                if (null === (n = u(e, r)) || -1 === n) return null;
                if (t && t.length > 0) {
                    var o;
                    i = Number.NEGATIVE_INFINITY;
                    for (var s = 0; s < t.length; s++) o = "interval" === r[n].type ? t[s][n] ? t[s][n].end : null : t[s][n], (0, a.isNumber)(o) && o > i && (i = o)
                }
                return i
            }, t.columnMinDiff = function(e, t, r, n) {
                var o, s, l = t,
                    c = t.length;
                if (null === (o = u(e, r)) || -1 === o) return null;
                if (r[o] && ["date", "number"].indexOf(r[o].type) < 0) throw new Error("Operation valid only on date or number columns");
                n && e === n || (l = t.slice(0)).sort((function(e, t) {
                    return (0, i.numberComparator)(e[o], t[o])
                }));
                if (l && c > 0) {
                    var d, h, f;
                    s = Number.POSITIVE_INFINITY;
                    for (var g = 0; g < l.length - 1 && (h = l[g][o], f = l[g + 1][o], (0, a.isNumber)(f) && (0, a.isNumber)(h)) && (d = f - h, 0 !== (s = (0, a.isNumber)(d) && d >= 0 && d < s ? d : s)); g++);
                }
                return s === Number.POSITIVE_INFINITY ? null : s
            }, t.columnExtents = function(e, t, r) {
                var n, i = Number.POSITIVE_INFINITY,
                    o = Number.NEGATIVE_INFINITY,
                    s = u(e, r);
                if (null === s || -1 === s) return null;
                if (t && t.length > 0)
                    for (var l = 0; l < t.length; l++) n = "interval" === r[s].type ? t[l][s] ? t[l][s].start : null : t[l][s], (0, a.isNumber)(n) && n < i && (i = n), n = "interval" === r[s].type ? t[l][s] ? t[l][s].end : null : t[l][s], (0, a.isNumber)(n) && n > o && (o = n);
                return {
                    min: i,
                    max: o
                }
            }, t.columnUnique = function(e, t, r) {
                var n, a = u(e, r),
                    i = [];
                if (null === a || -1 === a) return [];
                for (var o = 0; o < t.length; o++) i.push(t[o][a]);
                if (t && t.length > 0) return 1 === (n = Array.from(new Set(i))).length && "undefined" == typeof n[0] ? [] : n;
                return []
            }, t.addColumnsSchema = function(e, t) {
                for (var r = t.length, n = e.slice(0), a = 0; a < r; a++) {
                    var i = n.length;
                    t[a].originalName = t[a].name;
                    for (var o = 0; o < i; o++) t[a].name === n[o].name && (t[a].i = t[a].i && ++t[a].i || 1, t[a].name = t[a].originalName + " " + t[a].i), t[a].type && -1 !== ["string", "number", "date"].indexOf(t[a].type) || (t[a].type = "string");
                    delete t[a].originalName, delete t[a].i, n.push({
                        name: t[a].name,
                        type: t[a].type || "string"
                    }), t[a].calcFn && (n[n.length - 1].calcFn = t[a].calcFn), t[a].format && (n[n.length - 1].format = t[a].format), t[a].enableUTC && (n[n.length - 1].enableUTC = t[a].enableUTC), t[a].columnIndex = n.length - 1
                }
                return {
                    schema: n,
                    calcColumns: t
                }
            }, t.addColumnsData = function(e, t, r) {
                for (var n, a = e.length, i = r.length, o = t.length, s = {}, l = h(r), c = 0; c < o; c++) s[t[c].name] = c;
                for (var u = 0; u < a; u++)
                    for (var f = 0; f < i; f++) r[f].calcFn && (n = r[f].calcFn(e[u], s, u), n = d(r[f], n, l), e[u][r[f].columnIndex] = n);
                return e
            }, t.parseAndIndexData = function(e, t, r) {
                var n = h(t),
                    a = f(e, t, n);
                return g(a, t, r, n), a
            }, t.createTableID = function(e) {
                var t = e.length + 1;
                for (; e.includes("table-" + t);) t++;
                return "table-" + t
            }, t.buildDateColumnsFormatter = h, t.parseData = f, t.indexData = g, t.isUTCEnabled = function(e, t) {
                var r;
                if (null === (r = u(e, t)) || -1 === r || "date" !== t[r].type && "interval" !== t[r].type) return null;
                return void 0 !== t[r].enableUTC ? t[r].enableUTC : (0, s.getConfig)("enableUTC")
            };
            var a = r(354),
                i = r(355),
                o = n(r(356)),
                s = r(357),
                l = n(r(358)),
                c = n(r(375));

            function u(e, t) {
                if (!t || !e) return null;
                for (var r = 0; r < t.length; r++)
                    if (t[r] && t[r].hasOwnProperty("name") && t[r].name === e) return r;
                return -1
            }

            function d(e, t, r) {
                return void 0 !== r[e.name] && t ? r[e.name] ? +r[e.name].parse(t) : +new Date(t) : "number" === e.type ? (0, a.isNumber)(t) ? t : t ? parseFloat(t) : null : t
            }

            function h(e) {
                for (var t = {}, r = 0; r < e.length; r++) {
                    if (!e[r].name) throw new Error("Input schema is not in a correct format - each column must have a name");
                    e[r].type && "date" === e[r].type && (t[e[r].name] = e[r].format ? (void 0 !== e[r].enableUTC ? e[r].enableUTC : (0, s.getConfig)("enableUTC")) ? l["default"].utcParser(e[r].format) : l["default"].parser(e[r].format) : null)
                }
                return t
            }

            function f(e, t, r) {
                var n = [];
                if (e.length > 0) {
                    var a, i = r,
                        o = t.findIndex((function(e) {
                            return "_row_id" === e.name
                        }));
                    i || (i = h(t)), -1 === o && (o = t.push({
                        name: "_row_id",
                        type: "string"
                    }) - 1);
                    for (var s = 0; s < e.length; s++) e[s][o] = (0, c["default"])();
                    try {
                        for (var l, u, f, g = t.length, p = 0; p < e.length; p++) {
                            if (l = [], (u = e[p]).constructor === Array)
                                for (f = Math.min(g, u.length), a = 0; a < f; a++) l[a] = d(t[a], u[a], i);
                            else {
                                if ("object" != typeof u) continue;
                                for (a = 0; a < g; a++) u[t[a].name] && (l[a] = d(t[a], u[t[a].name], i))
                            }
                            n.push(l)
                        }
                    } catch (m) {
                        throw new Error("Error while parsing the data - " + m)
                    }
                }
                return n
            }

            function g(e, t, r, n) {
                if (r.enableIndex) {
                    var a, s, l;
                    if (!r.indexBy) {
                        (l = n) || (l = h(t));
                        var c = Object.keys(l);
                        if (c.length > 0) r.indexBy = c[0];
                        else {
                            for (a = 0; a < t.length; a++)
                                if (t[a].type && "number" === t[a].type) {
                                    r.indexBy = t[a].name;
                                    break
                                }
                            a === t.length && (r.indexBy = t[0].name)
                        }
                    }
                    for (a = 0; a < t.length && (!t[a] || t[a].name !== r.indexBy); a++);
                    if (a === t.length) throw new Error("Index column is not found in schema");
                    switch (t[a].type) {
                        case "number":
                        case "date":
                            s = i.numberComparator;
                            break;
                        default:
                            s = i.stringComparator
                    }(0, o["default"])(e, (function(e, t) {
                        return s(e[a], t[a])
                    }))
                }
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.isNumber = void 0;
            t.isNumber = function(e) {
                return "number" == typeof e && !isNaN(e - e)
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.stringComparator = t.numberComparator = void 0;
            var n = r(354);
            t.stringComparator = function(e, t) {
                return null == e ? t === e ? 0 : 1 : (0, n.isNumber)(t) ? (0, n.isNumber)(e) ? e - t : -1 : e === t ? 0 : e < t ? -1 : 1
            }, t.numberComparator = function(e, t) {
                return null == e ? t === e ? 0 : 1 : (0, n.isNumber)(t) ? e - t : isNaN(e) && isNaN(t) ? 0 : -1
            }
        }, function(e, t, r) {
            "use strict";

            function n(e, t, r, n, a) {
                var i = r || 0,
                    o = n || e.length,
                    s = a || i + 1,
                    l = t;
                for (l || (l = function(e, t) {
                        return e - t
                    }), i === s && ++s; s < o; ++s) {
                    var c = i,
                        u = s,
                        d = e[u];
                    do {
                        var h = c + (u - c >> 1);
                        l(d, e[h]) < 0 ? u = h : c = h + 1
                    } while (c < u);
                    for (var f = s; f > c; --f) e[f] = e[f - 1];
                    e[c] = d
                }
            }
            t.__esModule = !0, t.binaryInsertionSort = n, t.mergeSort = function c(e, t) {
                var r, n, a, i = t;
                if (e.constructor !== Array) throw new TypeError("Merge sort can only be applied on Array.");
                if (1 === e.length) return e;
                i || (i = function(e, t) {
                    return e - t
                });
                return r = Math.floor(e.length / 2), n = e.slice(0, r), a = e.slice(r),
                    function(e, t, r) {
                        var n = [],
                            a = 0,
                            i = 0;
                        for (; a < e.length && i < t.length;) r(e[a], t[i]) <= 0 ? (n.push(e[a]), a++) : (n.push(t[i]), i++);
                        return n.concat(e.slice(a)).concat(t.slice(i))
                    }(c(n, i), c(a, i), i)
            }, t["default"] = void 0;

            function a(e, t, r, n) {
                var a = r + 1;
                if (a === n) return 1;
                if (t(e[a++], e[r]) < 0) {
                    for (; a < n && t(e[a], e[a - 1]) < 0;) a++;
                    ! function(e, t, r) {
                        var n = r,
                            a = t;
                        for (--n; a < n;) {
                            var i = e[a];
                            e[a++] = e[n], e[n--] = i
                        }
                    }(e, r, a)
                } else
                    for (; a < n && t(e[a], e[a - 1]) >= 0;) a++;
                return a - r
            }

            function i(e, t, r, n, a, i) {
                var o, s, l = 0,
                    c = 0,
                    u = 1;
                if (i(e, t[r + a]) > 0) {
                    for (c = n - a; u < c && i(e, t[r + a + u]) > 0;) l = u, (u = 1 + (u << 1)) <= 0 && (u = c);
                    u > c && (u = c), l += a, u += a
                } else {
                    for (c = a + 1; u < c && i(e, t[r + a - u]) <= 0;) l = u, (u = 1 + (u << 1)) <= 0 && (u = c);
                    u > c && (u = c), o = l, l = a - u, u = a - o
                }
                for (l++; l < u;) i(e, t[r + (s = l + (u - l >>> 1))]) > 0 ? l = s + 1 : u = s;
                return u
            }

            function o(e, t, r, n, a, i) {
                var o, s, l = 0,
                    c = 0,
                    u = 1;
                if (i(e, t[r + a]) < 0) {
                    for (c = a + 1; u < c && i(e, t[r + a - u]) < 0;) l = u, (u = 1 + (u << 1)) <= 0 && (u = c);
                    u > c && (u = c), o = l, l = a - u, u = a - o
                } else {
                    for (c = n - a; u < c && i(e, t[r + a + u]) >= 0;) l = u, (u = 1 + (u << 1)) <= 0 && (u = c);
                    u > c && (u = c), l += a, u += a
                }
                for (l++; l < u;) i(e, t[r + (s = l + (u - l >>> 1))]) < 0 ? u = s : l = s + 1;
                return u
            }
            var s = function() {
                function e(e, t) {
                    this.arr = e, this.comparer = t, this.length = e.length, this.tmpStorageLen = this.length < 512 ? this.length >>> 1 : 256, this.tmp = new Array(this.tmpStorageLen), this.runBaseArr = new Array(40), this.runLenArr = new Array(40), this.minGallop = 7, this.stackSize = 0
                }
                var t = e.prototype;
                return t.pushRun = function(e, t) {
                    this.runBaseArr[this.stackSize] = e, this.runLenArr[this.stackSize] = t, this.stackSize++
                }, t.mergeCollapse = function() {
                    for (var e; this.stackSize > 1;) {
                        if ((e = this.stackSize - 2) >= 1 && this.runLenArr[e - 1] <= this.runLenArr[e] + this.runLenArr[e + 1] || e >= 2 && this.runLenArr[e - 2] <= this.runLenArr[e] + this.runLenArr[e - 1]) this.runLenArr[e - 1] < this.runLenArr[e + 1] && e--;
                        else if (this.runLenArr[e] > this.runLenArr[e + 1]) break;
                        this.mergeAt(e)
                    }
                }, t.mergeForceCollapse = function() {
                    for (var e; this.stackSize > 1;)(e = this.stackSize - 2) > 0 && this.runLenArr[e - 1] < this.runLenArr[e + 1] && e--, this.mergeAt(e)
                }, t.mergeAt = function(e) {
                    var t, r = this.comparer,
                        n = this.arr,
                        a = this.runBaseArr[e],
                        s = this.runLenArr[e],
                        l = this.runBaseArr[e + 1],
                        c = this.runLenArr[e + 1];
                    this.runLenArr[e] = s + c, e === this.stackSize - 3 && (this.runBaseArr[e + 1] = this.runBaseArr[e + 2], this.runLenArr[e + 1] = this.runLenArr[e + 2]), this.stackSize--, a += t = o(n[l], n, a, s, 0, r), 0 !== (s -= t) && 0 !== (c = i(n[a + s - 1], n, l, c, c - 1, r)) && (s <= c ? this.mergeLo(a, s, l, c) : this.mergeHi(a, s, l, c))
                }, t.mergeLo = function(e, t, r, n) {
                    var a, s, l, c, u = 0,
                        d = 0,
                        h = r,
                        f = e,
                        g = t,
                        p = n;
                    for (u = 0; u < g; u++) this.tmp[u] = this.arr[e + u];
                    if (this.arr[f++] = this.arr[h++], 0 != --p)
                        if (1 !== g) {
                            for (a = this.minGallop;;) {
                                s = 0, l = 0, c = !1;
                                do {
                                    if (this.comparer(this.arr[h], this.tmp[d]) < 0) {
                                        if (this.arr[f++] = this.arr[h++], l++, s = 0, 0 == --p) {
                                            c = !0;
                                            break
                                        }
                                    } else if (this.arr[f++] = this.tmp[d++], s++, l = 0, 1 == --g) {
                                        c = !0;
                                        break
                                    }
                                } while ((s | l) < a);
                                if (c) break;
                                do {
                                    if (0 !== (s = o(this.arr[h], this.tmp, d, g, 0, this.comparer))) {
                                        for (u = 0; u < s; u++) this.arr[f + u] = this.tmp[d + u];
                                        if (f += s, d += s, (g -= s) <= 1) {
                                            c = !0;
                                            break
                                        }
                                    }
                                    if (this.arr[f++] = this.arr[h++], 0 == --p) {
                                        c = !0;
                                        break
                                    }
                                    if (0 !== (l = i(this.tmp[d], this.arr, h, p, 0, this.comparer))) {
                                        for (u = 0; u < l; u++) this.arr[f + u] = this.arr[h + u];
                                        if (f += l, h += l, 0 === (p -= l)) {
                                            c = !0;
                                            break
                                        }
                                    }
                                    if (this.arr[f++] = this.tmp[d++], 1 == --g) {
                                        c = !0;
                                        break
                                    }
                                    a--
                                } while (s >= 7 || l >= 7);
                                if (c) break;
                                a < 0 && (a = 0), a += 2
                            }
                            if (this.minGallop = a, a < 1 && (this.minGallop = 1), 1 === g) {
                                for (u = 0; u < p; u++) this.arr[f + u] = this.arr[h + u];
                                this.arr[f + p] = this.tmp[d]
                            } else
                                for (u = 0; u < g; u++) this.arr[f + u] = this.tmp[d + u]
                        } else {
                            for (u = 0; u < p; u++) this.arr[f + u] = this.arr[h + u];
                            this.arr[f + p] = this.tmp[d]
                        } else
                        for (u = 0; u < g; u++) this.arr[f + u] = this.tmp[d + u]
                }, t.mergeHi = function(e, t, r, n) {
                    var a, s, l, c, u = 0,
                        d = t,
                        h = n,
                        f = e + d - 1,
                        g = h - 1,
                        p = r + h - 1,
                        m = 0,
                        v = 0;
                    for (u = 0; u < h; u++) this.tmp[u] = this.arr[r + u];
                    if (this.arr[p--] = this.arr[f--], 0 != --d)
                        if (1 !== h) {
                            for (a = this.minGallop;;) {
                                s = 0, l = 0, c = !1;
                                do {
                                    if (this.comparer(this.tmp[g], this.arr[f]) < 0) {
                                        if (this.arr[p--] = this.arr[f--], s++, l = 0, 0 == --d) {
                                            c = !0;
                                            break
                                        }
                                    } else if (this.arr[p--] = this.tmp[g--], l++, s = 0, 1 == --h) {
                                        c = !0;
                                        break
                                    }
                                } while ((s | l) < a);
                                if (c) break;
                                do {
                                    if (0 !== (s = d - o(this.tmp[g], this.arr, e, d, d - 1, this.comparer))) {
                                        for (d -= s, v = (p -= s) + 1, m = (f -= s) + 1, u = s - 1; u >= 0; u--) this.arr[v + u] = this.arr[m + u];
                                        if (0 === d) {
                                            c = !0;
                                            break
                                        }
                                    }
                                    if (this.arr[p--] = this.tmp[g--], 1 == --h) {
                                        c = !0;
                                        break
                                    }
                                    if (0 !== (l = h - i(this.arr[f], this.tmp, 0, h, h - 1, this.comparer))) {
                                        for (h -= l, v = (p -= l) + 1, m = (g -= l) + 1, u = 0; u < l; u++) this.arr[v + u] = this.tmp[m + u];
                                        if (h <= 1) {
                                            c = !0;
                                            break
                                        }
                                    }
                                    if (this.arr[p--] = this.arr[f--], 0 == --d) {
                                        c = !0;
                                        break
                                    }
                                    a--
                                } while (s >= 7 || l >= 7);
                                if (c) break;
                                a < 0 && (a = 0), a += 2
                            }
                            if (this.minGallop = a, a < 1 && (this.minGallop = 1), 1 === h) {
                                for (v = (p -= d) + 1, m = (f -= d) + 1, u = d - 1; u >= 0; u--) this.arr[v + u] = this.arr[m + u];
                                this.arr[p] = this.tmp[g]
                            } else
                                for (m = p - (h - 1), u = 0; u < h; u++) this.arr[m + u] = this.tmp[u]
                        } else {
                            for (v = (p -= d) + 1, m = (f -= d) + 1, u = d - 1; u >= 0; u--) this.arr[v + u] = this.arr[m + u];
                            this.arr[p] = this.tmp[g]
                        } else
                        for (m = p - (h - 1), u = 0; u < h; u++) this.arr[m + u] = this.tmp[u]
                }, e
            }();
            var l = function(e, t, r, i) {
                var o, l, c, u, d, h = r,
                    f = i,
                    g = t;
                if (e.constructor !== Array) throw new TypeError("Sorting can only be applied on arrays.");
                if (h = h || 0, g || (g = function(e, t) {
                        return e - t
                    }), !((o = (f = f || e.length) - h) < 2))
                    if (o < 64) n(e, g, h, f, h + (l = a(e, g, h, f)));
                    else {
                        c = function(e) {
                            for (var t = 0, r = e; r >= 64;) t |= 1 & r, r >>= 1;
                            return r + t
                        }(o), u = new s(e, g);
                        do {
                            (l = a(e, g, h, h + o)) < c && (n(e, g, h, h + (d = o <= c ? o : c), h + l), l = d), u.pushRun(h, l), u.mergeCollapse(), o -= l, h += l
                        } while (0 !== o);
                        u.mergeForceCollapse()
                    }
            };
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.getConfig = function(e) {
                if (!e) throw new Error("configName is missing");
                return n[e]
            }, t.setConfig = function(e, t) {
                if (!e) throw new Error("configName is missing");
                n[e] = t
            };
            var n = {
                enableUTC: !1
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(191),
                a = r(187);
            t.__esModule = !0, t["default"] = t.TimeConverter = void 0;
            var i = a(r(359)),
                o = n(r(361)),
                s = r(369),
                l = r(368),
                c = a(r(362)),
                u = a(r(370)),
                d = a(r(367)),
                h = a(r(372)),
                f = a(r(374)),
                g = /^\s*\d+/,
                p = /^\s*Q\d+/,
                m = /^%/,
                v = /[\\^$*+?|[\]().{}]/g,
                b = function(e, t, r) {
                    var n = e < 0 ? "-" : "",
                        a = (n ? -e : e) + "",
                        i = a.length;
                    return n + (i < r ? new Array(r - i + 1).join(t) + a : a)
                },
                y = function(e) {
                    return e.replace(v, "\\$&")
                },
                x = function(e) {
                    return new RegExp("^(?:" + e.map(y).join("|") + ")", "i")
                },
                w = function(e) {
                    for (var t = {}, r = -1, n = e.length; ++r < n;) t[e[r].toLowerCase()] = r;
                    return t
                },
                C = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 1));
                    return n ? (e.w = +n[0], r + n[0].length) : -1
                },
                _ = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 1));
                    return n ? (e.u = +n[0], r + n[0].length) : -1
                },
                k = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 2));
                    return n ? (e.U = +n[0], r + n[0].length) : -1
                },
                S = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 2));
                    return n ? (e.V = +n[0], r + n[0].length) : -1
                },
                E = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 2));
                    return n ? (e.W = +n[0], r + n[0].length) : -1
                },
                A = function(e, t, r) {
                    var n = p.exec(t.slice(r, r + 2));
                    return n ? (e.m = 3 * (n[0][1] - 1), r + n[0].length) : -1
                },
                T = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 4));
                    return n ? (e.y = +n[0], r + n[0].length) : -1
                },
                N = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 2));
                    return n ? (e.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3), r + n[0].length) : -1
                },
                M = function(e, t, r) {
                    var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r, r + 6));
                    return n ? (e.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), r + n[0].length) : -1
                },
                D = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 2));
                    return n ? (e.m = n[0] - 1, r + n[0].length) : -1
                },
                F = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 2));
                    return n ? (e.d = +n[0], r + n[0].length) : -1
                },
                I = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 3));
                    return n ? (e.m = 0, e.d = +n[0], r + n[0].length) : -1
                },
                L = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 2));
                    return n ? (e.H = +n[0], r + n[0].length) : -1
                },
                O = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 2));
                    return n ? (e.M = +n[0], r + n[0].length) : -1
                },
                R = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 2));
                    return n ? (e.S = +n[0], r + n[0].length) : -1
                },
                P = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 3));
                    return n ? (e.L = +n[0], r + n[0].length) : -1
                },
                V = function(e, t, r) {
                    var n = g.exec(t.slice(r, r + 6));
                    return n ? (e.L = Math.floor(n[0] / 1e3), r + n[0].length) : -1
                },
                B = function(e, t, r) {
                    var n = m.exec(t.slice(r, r + 1));
                    return n ? r + n[0].length : -1
                },
                j = function(e, t, r) {
                    var n = g.exec(t.slice(r));
                    return n ? (e.Q = +n[0], r + n[0].length) : -1
                },
                H = function(e, t, r) {
                    var n = g.exec(t.slice(r));
                    return n ? (e.Q = 1e3 * +n[0], r + n[0].length) : -1
                },
                G = function(e, t) {
                    return b(e.getDate(), t, 2)
                },
                U = function(e, t) {
                    return b(e.getHours(), t, 2)
                },
                z = function(e, t) {
                    return b(e.getHours() % 12 || 12, t, 2)
                },
                W = function(e, t) {
                    return b(1 + c["default"].count(u["default"].floor(e), e), t, 3)
                },
                X = function(e, t) {
                    return b(e.getMilliseconds(), t, 3)
                },
                $ = function(e, t) {
                    return X(e, t) + "000"
                },
                Y = function(e, t) {
                    return b(e.getMonth() + 1, t, 2)
                },
                q = function(e, t) {
                    return b(e.getMinutes(), t, 2)
                },
                K = function(e, t) {
                    return b(e.getSeconds(), t, 2)
                },
                J = function(e, t) {
                    return "Q" + Math.ceil((e.getMonth() + 1) / 3)
                },
                Z = function(e) {
                    var t = e.getDay();
                    return 0 === t ? 7 : t
                },
                Q = function(e, t) {
                    return b(s.sunday.count(u["default"].floor(e), e), t, 2)
                },
                ee = function(e, t) {
                    var r = e,
                        n = r.getDay();
                    return r = n >= 4 || 0 === n ? s.thursday.floor(r) : s.thursday.ceil(r), b(s.thursday.count(u["default"].floor(r), r) + (4 === u["default"].floor(r).getDay()), t, 2)
                },
                te = function(e) {
                    return e.getDay()
                },
                re = function(e, t) {
                    return b(s.monday.count(u["default"].floor(e), e), t, 2)
                },
                ne = function(e, t) {
                    return b(e.getFullYear() % 100, t, 2)
                },
                ae = function(e, t) {
                    return b(e.getFullYear() % 1e4, t, 4)
                },
                ie = function(e) {
                    var t = e.getTimezoneOffset();
                    return (t > 0 ? "-" : (t *= -1, "+")) + b(t / 60 | 0, "0", 2) + b(t % 60, "0", 2)
                },
                oe = function(e, t) {
                    return b(e.getUTCDate(), t, 2)
                },
                se = function(e, t) {
                    return b(e.getUTCHours(), t, 2)
                },
                le = function(e, t) {
                    return b(e.getUTCHours() % 12 || 12, t, 2)
                },
                ce = function(e, t) {
                    return b(1 + d["default"].count(h["default"].floor(e), e), t, 3)
                },
                ue = function(e, t) {
                    return b(e.getUTCMilliseconds(), t, 3)
                },
                de = function(e, t) {
                    return ue(e, t) + "000"
                },
                he = function(e, t) {
                    return b(e.getUTCMonth() + 1, t, 2)
                },
                fe = function(e, t) {
                    return b(e.getUTCMinutes(), t, 2)
                },
                ge = function(e, t) {
                    return b(e.getUTCSeconds(), t, 2)
                },
                pe = function(e, t) {
                    return "Q" + Math.ceil((e.getUTCMonth() + 1) / 3)
                },
                me = function(e) {
                    var t = e.getUTCDay();
                    return 0 === t ? 7 : t
                },
                ve = function(e, t) {
                    return b(l.utcSunday.count(h["default"].floor(e), e), t, 2)
                },
                be = function(e, t) {
                    var r = e,
                        n = r.getUTCDay();
                    return r = n >= 4 || 0 === n ? l.utcThursday.floor(r) : l.utcThursday.ceil(r), b(l.utcThursday.count(h["default"].floor(r), r) + (4 === h["default"].floor(r).getUTCDay()), t, 2)
                },
                ye = function(e) {
                    return e.getUTCDay()
                },
                xe = function(e, t) {
                    return b(l.utcMonday.count(h["default"].floor(e), e), t, 2)
                },
                we = function(e, t) {
                    return b(e.getUTCFullYear() % 100, t, 2)
                },
                Ce = function(e, t) {
                    return b(e.getUTCFullYear() % 1e4, t, 4)
                },
                _e = function() {
                    return "+0000"
                },
                ke = function() {
                    return "%"
                },
                Se = function(e) {
                    return +e
                },
                Ee = function(e) {
                    return Math.floor(+e / 1e3)
                },
                Ae = function() {
                    function e(e) {
                        var t = this,
                            r = e.dateTime,
                            n = e.date,
                            a = e.time,
                            s = e.periods,
                            l = e.days,
                            c = e.shortDays,
                            u = e.months,
                            d = e.shortMonths,
                            h = x(s),
                            f = w(s),
                            g = x(l),
                            p = w(l),
                            m = x(c),
                            v = w(c),
                            b = x(u),
                            y = w(u),
                            Ae = x(d),
                            Te = w(d);
                        this._formats = {
                            a: function(e) {
                                return c[e.getDay()]
                            },
                            A: function(e) {
                                return l[e.getDay()]
                            },
                            b: function(e) {
                                return d[e.getMonth()]
                            },
                            B: function(e) {
                                return u[e.getMonth()]
                            },
                            d: G,
                            e: G,
                            f: $,
                            H: U,
                            I: z,
                            j: W,
                            L: X,
                            m: Y,
                            M: q,
                            p: function(e) {
                                return s[+(e.getHours() >= 12)]
                            },
                            q: J,
                            Q: Se,
                            s: Ee,
                            S: K,
                            u: Z,
                            U: Q,
                            V: ee,
                            w: te,
                            W: re,
                            y: ne,
                            Y: ae,
                            Z: ie,
                            "%": ke
                        }, this._utcFormats = {
                            a: function(e) {
                                return c[e.getUTCDay()]
                            },
                            A: function(e) {
                                return l[e.getUTCDay()]
                            },
                            b: function(e) {
                                return d[e.getUTCMonth()]
                            },
                            B: function(e) {
                                return u[e.getUTCMonth()]
                            },
                            d: oe,
                            e: oe,
                            f: de,
                            H: se,
                            I: le,
                            j: ce,
                            L: ue,
                            m: he,
                            M: fe,
                            p: function(e) {
                                return s[+(e.getUTCHours() >= 12)]
                            },
                            q: pe,
                            Q: Se,
                            s: Ee,
                            S: ge,
                            u: me,
                            U: ve,
                            V: be,
                            w: ye,
                            W: xe,
                            y: we,
                            Y: Ce,
                            Z: _e,
                            "%": ke
                        }, this._parses = {
                            a: function(e, t, r) {
                                var n = m.exec(t.slice(r));
                                return n ? (e.w = v[n[0].toLowerCase()], r + n[0].length) : -1
                            },
                            A: function(e, t, r) {
                                var n = g.exec(t.slice(r));
                                return n ? (e.w = p[n[0].toLowerCase()], r + n[0].length) : -1
                            },
                            b: function(e, t, r) {
                                var n = Ae.exec(t.slice(r));
                                return n ? (e.m = Te[n[0].toLowerCase()], r + n[0].length) : -1
                            },
                            B: function(e, t, r) {
                                var n = b.exec(t.slice(r));
                                return n ? (e.m = y[n[0].toLowerCase()], r + n[0].length) : -1
                            },
                            c: null,
                            d: F,
                            e: F,
                            f: V,
                            H: L,
                            I: L,
                            j: I,
                            L: P,
                            m: D,
                            M: O,
                            p: function(e, t, r) {
                                var n = h.exec(t.slice(r));
                                return n ? (e.p = f[n[0].toLowerCase()], r + n[0].length) : -1
                            },
                            Q: j,
                            q: A,
                            s: H,
                            S: R,
                            u: _,
                            U: k,
                            V: S,
                            w: C,
                            W: E,
                            x: null,
                            X: null,
                            y: N,
                            Y: T,
                            Z: M,
                            "%": B
                        }, this._formats.x = function(e) {
                            return new i["default"](n, t._formats).format(e)
                        }, this._formats.X = function(e) {
                            return new i["default"](a, t._formats).format(e)
                        }, this._formats.c = function(e) {
                            return new i["default"](r, t._formats).format(e)
                        }, this._utcFormats.x = function(e) {
                            return new i["default"](n, t._utcFormats).format(e)
                        }, this._utcFormats.X = function(e) {
                            return new i["default"](a, t._utcFormats).format(e)
                        }, this._utcFormats.c = function(e) {
                            return new i["default"](r, t._utcFormats).format(e)
                        }, this._parses.c = function(e, n, a) {
                            return new o["default"](r, t._parses).parseSpecifier(e, n, a)
                        }, this._parses.x = function(e, r, a) {
                            return new o["default"](n, t._parses).parseSpecifier(e, r, a)
                        }, this._parses.X = function(e, r, n) {
                            return new o["default"](a, t._parses).parseSpecifier(e, r, n)
                        }
                    }
                    var t = e.prototype;
                    return t.formatter = function(e) {
                        return void 0 === e && (e = ""), new i["default"](e.toString(), this._formats)
                    }, t.utcFormatter = function(e) {
                        return void 0 === e && (e = ""), new i["default"](e.toString(), this._utcFormats)
                    }, t.parser = function(e) {
                        var t = e;
                        return new o["default"](t += "", this._parses, (function(e) {
                            if (e.y >= 0 && e.y < 100) {
                                var t = new Date(-1, e.m, e.d, e.H, e.M, e.S, e.L);
                                return t.setFullYear(e.y), t
                            }
                            return new Date(e.y, e.m, e.d, e.H, e.M, e.S, e.L)
                        }))
                    }, t.utcParser = function(e) {
                        var t = e;
                        return new o["default"](t += "", this._parses, o.utcDate)
                    }, e
                }();
            t.TimeConverter = Ae;
            var Te = new Ae(f["default"]);
            t["default"] = Te
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(360)),
                i = function() {
                    function e(e, t) {
                        this._specifier = e, this._formats = t
                    }
                    var t = e.prototype;
                    return t.format = function(e) {
                        var t, r, n, i = [],
                            o = e,
                            s = -1,
                            l = 0,
                            c = this._specifier,
                            u = c.length;
                        for (o instanceof Date || (o = new Date(+o)); ++s < u;) 37 === c.charCodeAt(s) && (i.push(c.slice(l, s)), t = c.charAt(++s), r = a["default"][t], null == r ? r = "e" === t ? " " : "0" : t = c.charAt(++s), n = this._formats[t], n && (t = n(o, r)), i.push(t), l = s + 1);
                        return i.push(c.slice(l, s)), i.join("")
                    }, t.toString = function() {
                        return this._specifier
                    }, e
                }();
            t["default"] = i
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                "-": "",
                _: " ",
                0: "0"
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = t.utcDate = void 0;
            var a = n(r(360)),
                i = n(r(362)),
                o = n(r(367)),
                s = r(368),
                l = r(369),
                c = function(e) {
                    return {
                        y: e,
                        m: 0,
                        d: 1,
                        H: 0,
                        M: 0,
                        S: 0,
                        L: 0
                    }
                },
                u = function(e) {
                    if (e.y >= 0 && e.y < 100) {
                        var t = new Date(Date.UTC(-1, e.m, e.d, e.H, e.M, e.S, e.L));
                        return t.setUTCFullYear(e.y), t
                    }
                    return new Date(Date.UTC(e.y, e.m, e.d, e.H, e.M, e.S, e.L))
                };
            t.utcDate = u;
            var d = function() {
                function e(e, t, r) {
                    this._specifier = e, this._parses = t, this._newDate = r
                }
                var t = e.prototype;
                return t.parseSpecifier = function(e, t, r) {
                    for (var n, i, o = 0, s = this._specifier.length, l = t.length, c = r; o < s;) {
                        if (c >= l) return -1;
                        if (37 === (n = this._specifier.charCodeAt(o++))) {
                            if (n = this._specifier.charAt(o++), !(i = this._parses[n in a["default"] ? this._specifier.charAt(o++) : n]) || (c = i(e, t, c)) < 0) return -1
                        } else if (n !== t.charCodeAt(c++)) return -1
                    }
                    return c
                }, t.parse = function(e) {
                    var t, r, n = c(1900),
                        a = e;
                    if (a += "", this.parseSpecifier(n, a, 0) !== a.length) return null;
                    if ("Q" in n) return new Date(n.Q);
                    if ("p" in n && (n.H = n.H % 12 + 12 * n.p), "V" in n) {
                        if (n.V < 1 || n.V > 53) return null;
                        "w" in n || (n.w = 1), "Z" in n ? (r = (t = u(c(n.y))).getUTCDay(), t = r > 4 || 0 === r ? s.utcMonday.ceil(t) : s.utcMonday.floor(t), t = o["default"].offset(t, 7 * (n.V - 1)), n.y = t.getUTCFullYear(), n.m = t.getUTCMonth(), n.d = t.getUTCDate() + (n.w + 6) % 7) : (r = (t = this._newDate(c(n.y))).getDay(), t = r > 4 || 0 === r ? l.monday.ceil(t) : l.monday.floor(t), t = i["default"].offset(t, 7 * (n.V - 1)), n.y = t.getFullYear(), n.m = t.getMonth(), n.d = t.getDate() + (n.w + 6) % 7)
                    } else("W" in n || "U" in n) && ("w" in n || (n.w = "u" in n ? n.u % 7 : "W" in n ? 1 : 0), r = "Z" in n ? u(c(n.y)).getUTCDay() : this._newDate(c(n.y)).getDay(), n.m = 0, n.d = "W" in n ? (n.w + 6) % 7 + 7 * n.W - (r + 5) % 7 : n.w + 7 * n.U - (r + 6) % 7);
                    return "Z" in n ? (n.H += n.Z / 100 | 0, n.M += n.Z % 100, u(n)) : this._newDate(n)
                }, t.toString = function() {
                    return this._specifier
                }, e
            }();
            t["default"] = d
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.dayObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(364),
                o = r(365),
                s = {
                    name: "day",
                    floor: function(e, t, r) {
                        return new Date(Number((0, o.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            i = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(i.date));
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + t))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), (t - e - (t.getTimezoneOffset() - e.getTimezoneOffset()) * i.durationMinute) / i.durationDay - Math.floor(a / i.durationDay)
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setDate(1), s.setHours(0, 0, 0, 0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getDate() - n.getDate() - Math.floor(l / i.durationDay)
                    }
                },
                l = new a["default"](s);
            t.dayObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = new Date,
                a = new Date,
                i = function(e) {
                    return null == e
                },
                o = function() {
                    function e(e) {
                        this._name = e.name, this._floori = e.floor, this._offseti = e.offset, this._count = e.count, this._field = e.field
                    }
                    var t = e.prototype;
                    return t.name = function() {
                        return this._name
                    }, t.floor = function(e) {
                        var t = new Date(Number(e));
                        return t = this._floori(t, this._clipDates, this._timeUniverse)
                    }, t.setClipDates = function(e) {
                        this._clipDates = e
                    }, t.setTimeUniverse = function(e) {
                        this._timeUniverse = e
                    }, t.ceil = function(e) {
                        var t = new Date(e - 1);
                        return t = this._floori(t, this._clipDates, this._timeUniverse), t = this._offseti(t, 1, this._clipDates, this._timeUniverse), t = this._floori(t, this._clipDates, this._timeUniverse)
                    }, t.round = function(e) {
                        var t = this.floor(e),
                            r = this.ceil(e);
                        return e - t < r - e ? t : r
                    }, t.offset = function(e, t) {
                        var r = new Date(Number(e));
                        return r = this._offseti(r, i(t) ? 1 : Math.floor(t), this._clipDates, this._timeUniverse)
                    }, t.range = function(e, t, r) {
                        var n, a = [],
                            o = this.ceil(e),
                            s = i(r) ? 1 : Math.floor(r);
                        if (!(o < t && s > 0)) return a;
                        do {
                            n = new Date(Number(o)), a.push(n), o = this._offseti(o, s, this._clipDates, this._timeUniverse), o = this._floori(o, this._clipDates, this._timeUniverse)
                        } while (n < o && o < t);
                        return a
                    }, t.filter = function(t) {
                        var r = this;
                        return new e({
                            name: this.name(),
                            floor: function(e) {
                                var n = e;
                                if (!Number.isNaN(Number(n)))
                                    for (; r._floori(n, r._clipDates, r._timeUniverse), !t(n);) n.setTime(n - 1);
                                return Number(n)
                            },
                            offset: function(e, n) {
                                var a = n,
                                    i = e;
                                if (!Number.isNaN(Number(i)))
                                    if (a < 0)
                                        for (; ++a <= 0;) {
                                            0;
                                            do {
                                                i = r._offseti(i, -1, r._clipDates, r._timeUniverse)
                                            } while (!t(i))
                                        } else
                                            for (; --a >= 0;)
                                                do {
                                                    i = r._offseti(i, 1, r._clipDates, r._timeUniverse)
                                                } while (!t(i));
                                return Number(i)
                            }
                        })
                    }, t.count = function(e, t) {
                        var r = 0;
                        return this._count && (n.setTime(Number(e)), a.setTime(Number(t)), n = this._floori(n, this._clipDates, this._timeUniverse), a = this._floori(a, this._clipDates, this._timeUniverse), r = Math.floor(this._count(n, a, this._clipDates))), r
                    }, t.every = function(e) {
                        var t = this,
                            r = Math.floor(e);
                        return this._count && Number.isFinite(r) && r > 0 ? r > 1 ? this.filter(this._field ? function(e) {
                            return t._field(e, t._clipDates, t._timeUniverse) % r == 0
                        } : function(e) {
                            return t.count(0, e) % r == 0
                        }) : this : null
                    }, e
                }();
            t["default"] = o
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.durationYear = t.durationQuarter = t.durationMonth = t.durationWeek = t.durationDay = t.durationHour = t.durationMinute = t.durationSecond = void 0;
            t.durationYear = 31536e6, t.durationQuarter = 78894e5, t.durationMonth = 2592e6, t.durationWeek = 6048e5, t.durationDay = 864e5, t.durationHour = 36e5, t.durationMinute = 6e4, t.durationSecond = 1e3
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.getClipArray = t.getClippedDatesWithin = t.getClampRangesAround = t.getValidDatesWithin = t.getFloor = t.clampDownDateWithinClip = t.clampUpDateWithinClip = void 0;
            var n = r(366),
                a = function(e) {
                    return e.charAt(0).toUpperCase() + e.slice(1)
                },
                i = function(e, t, r, n) {
                    if (n && Array.isArray(n) && n.length > 0) {
                        if (Number(t) >= Number(n[1])) return n[1];
                        if (Number(t) <= Number(n[0])) return n[0]
                    }
                    if (!r || r.length <= 0) return t;
                    var a = t,
                        i = r,
                        l = o(i, e, a);
                    return s(a, l, i, n)
                },
                o = function(e, t, r) {
                    var n = c(e, t, r),
                        a = [];
                    return !e || e.length <= 0 ? a : a = u(n, a)
                },
                s = function(e, t, r, n) {
                    var a, o = t,
                        s = l(r, e),
                        c = e,
                        d = 0;
                    return (o = u(s, o)).length > 0 && o.forEach((function(e) {
                        d += Number(e.to) - Number(e.from)
                    })), a = new Date(Number(c.setTime(Number(c) + d))), Number(a) === Number(c) ? c : a = i(c, a, r, n)
                },
                l = function(e, t) {
                    var r = Number(t),
                        i = e,
                        o = 0,
                        s = [];
                    if (!e || e.length <= 0) return s;
                    if (Array.isArray(i))
                        for (var l = 0; l < i.length; l++) {
                            var c = i[l],
                                u = c.from,
                                d = c.to;
                            if (o = d - u, c.hasOwnProperty("repeat")) {
                                var h = Number(u),
                                    f = Number(d),
                                    g = n.DatetimeUnits[a(String(c.repeat.unit))].ms * c.repeat.multiplier,
                                    p = Math.floor((r - h) / g),
                                    m = p,
                                    v = void 0,
                                    b = void 0;
                                if ("month" === String(c.repeat.unit).toLowerCase() ? (v = new Date(Number(new Date(h).setMonth(new Date(h).getMonth() + m))), b = new Date(Number(new Date(f).setMonth(new Date(f).getMonth() + m)))) : "year" === String(c.repeat.unit).toLowerCase() ? (v = new Date(Number(new Date(h).setFullYear(new Date(h).getFullYear() + m))), b = new Date(Number(new Date(f).setFullYear(new Date(f).getFullYear() + m)))) : (v = new Date(Number(h) + g * p), b = new Date(Number(v) + o)), p < 0) continue;
                                r >= v && r < b && s.push({
                                    from: v,
                                    to: b
                                })
                            } else u <= r && d > r && s.push(c)
                        }
                    return s
                },
                c = function(e, t, r) {
                    var i = +t,
                        o = +r,
                        s = e,
                        l = 0,
                        c = [];
                    if (Array.isArray(s))
                        for (var u = 0; u < s.length; u++) {
                            var d = s[u],
                                h = d.from,
                                f = d.to;
                            if (l = f - h, d.hasOwnProperty("repeat")) {
                                var g = Number(h),
                                    p = Number(f),
                                    m = n.DatetimeUnits[a(String(d.repeat.unit))].ms * d.repeat.multiplier,
                                    v = Math.floor((i - g) / m),
                                    b = v,
                                    y = void 0,
                                    x = void 0;
                                if ("month" === String(d.repeat.unit).toLowerCase() ? (y = new Date(Number(new Date(g).setMonth(new Date(g).getMonth() + b))), x = new Date(Number(new Date(p).setMonth(new Date(p).getMonth() + b)))) : "year" === String(d.repeat.unit).toLowerCase() ? (y = new Date(Number(new Date(g).setFullYear(new Date(g).getFullYear() + b))), x = new Date(Number(new Date(p).setFullYear(new Date(p).getFullYear() + b)))) : (y = new Date(Number(g) + m * v), x = new Date(Number(y) + l)), v < 0) continue;
                                for (; Number(y) < Number(o);) Number(y) > Number(i) && Number(x) <= Number(o) && c.push({
                                    from: y,
                                    to: x
                                }), b = Number(d.repeat.multiplier), y = +y, x = +x, "month" === String(d.repeat.unit).toLowerCase() ? (y = new Date(Number(new Date(y).setMonth(new Date(y).getMonth() + b))), x = new Date(Number(new Date(x).setMonth(new Date(x).getMonth() + b)))) : "year" === String(d.repeat.unit).toLowerCase() ? (y = new Date(Number(new Date(y).setFullYear(new Date(y).getFullYear() + b))), x = new Date(Number(new Date(x).setFullYear(new Date(x).getFullYear() + b)))) : (y = new Date(Number(y) + m), x = new Date(Number(x) + m))
                            } else h > i && f <= o && c.push(d)
                        }
                    return c
                },
                u = function(e, t) {
                    var r, n = e,
                        a = t;
                    if (!e || e.length <= 0) return a;
                    var i = function() {
                        var e = n[r];
                        a.every((function(t) {
                            return !(e.from >= t.from && e.to <= t.to) && (e.from <= t.from && e.to >= t.to ? t.entryEnabled = !1 : e.from >= t.from && e.from <= t.to && e.to >= t.to ? (e.from = t.from, t.entryEnabled = !1) : e.to >= t.from && e.to <= t.to && e.from <= t.from ? (e.to = t.to, t.entryEnabled = !1) : t.entryEnabled = !0, !0)
                        })) && (e.entryEnabled = !0, a.push(e))
                    };
                    for (r = 0; r < n.length; r++) i();
                    return a = a.filter((function(e) {
                        return !0 === e.entryEnabled
                    }))
                },
                d = function(e, t, r, n) {
                    if (n && Array.isArray(n) && n.length > 0) {
                        if (Number(t) >= Number(n[1])) return n[1];
                        if (Number(t) <= Number(n[0])) return n[0]
                    }
                    if (!r || r.length <= 0) return t;
                    var a = t,
                        i = r,
                        s = o(i, a, e);
                    return h(a, s, i, n)
                },
                h = function(e, t, r, n) {
                    var a, i = t,
                        o = l(r, e),
                        s = e,
                        c = 0;
                    return (i = u(o, i)).length > 0 && i.forEach((function(e) {
                        c += Number(e.to) - Number(e.from)
                    })), a = new Date(Number(s.setTime(Number(s) - c))), Number(a) === Number(s) ? s : a = d(s, a, r, n)
                };
            t.getFloor = function f(e, t, r) {
                if (r && Array.isArray(r) && r.length > 0) {
                    if (Number(e) >= Number(r[1])) return r[1];
                    if (Number(e) <= Number(r[0])) return r[0]
                }
                if (!t || t.length <= 0) return e;
                var n, a = e,
                    i = l(t, e),
                    o = [];
                return 0 === i.length ? a : (n = (o = u(i, o)).reduce((function(e, t) {
                    return e.to > t.to ? +new Date(Number(e.to)) : +new Date(Number(t.to))
                }), 0), Number(n) === Number(a) ? n : f(n, t, r))
            }, t.clampUpDateWithinClip = d, t.getClipArray = u, t.getClippedDatesWithin = c, t.getClampRangesAround = l, t.getValidDatesWithin = o, t.clampDownDateWithinClip = i
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.Weekdays = t.DatetimeUnits = void 0;
            var n = r(364),
                a = {
                    Millisecond: {
                        name: "Millisecond",
                        ms: 1
                    },
                    Second: {
                        name: "Second",
                        ms: n.durationSecond
                    },
                    Minute: {
                        name: "Minute",
                        ms: n.durationMinute
                    },
                    Hour: {
                        name: "Hour",
                        ms: n.durationHour
                    },
                    Day: {
                        name: "Day",
                        ms: n.durationDay
                    },
                    Week: {
                        name: "Week",
                        ms: n.durationWeek
                    },
                    Month: {
                        name: "Month",
                        ms: n.durationMonth
                    },
                    Quarter: {
                        name: "Quarter",
                        ms: n.durationQuarter
                    },
                    Year: {
                        name: "Year",
                        ms: n.durationYear
                    }
                };
            t.Weekdays = {
                Sunday: {
                    name: "Sunday",
                    id: 0
                },
                Monday: {
                    name: "Monday",
                    id: 1
                },
                Tuesday: {
                    name: "Tuesday",
                    id: 2
                },
                Wednesday: {
                    name: "Wednesday",
                    id: 3
                },
                Thursday: {
                    name: "Thursday",
                    id: 4
                },
                Friday: {
                    name: "Friday",
                    id: 5
                },
                Saturday: {
                    name: "Saturday",
                    id: 6
                }
            }, t.DatetimeUnits = a
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.utcDayObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(364),
                o = r(365),
                s = {
                    name: "day",
                    floor: function(e, t, r) {
                        return new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            i = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(i.date));
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + t))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), t - e - Math.floor(a / i.durationDay)
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setUTCDate(1), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getUTCDate() - n.getUTCDate() - Math.floor(l / i.durationDay)
                    }
                },
                l = new a["default"](s);
            t.utcDayObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.utcWeekObj = t.utcSaturday = t.utcFriday = t.utcThursday = t.utcWednesday = t.utcTuesday = t.utcMonday = t.utcSunday = t["default"] = void 0;
            var a = n(r(363)),
                i = r(364),
                o = r(365),
                s = {
                    name: "week",
                    floor: function(e, t, r) {
                        return e.setUTCDate(e.getUTCDate() - (e.getUTCDay() + 7 - 0) % 7), new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            i = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(i.date));
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + 7 * t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + 7 * t))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), t - e - Math.floor(a / i.durationWeek)
                    }
                },
                l = function(e, t) {
                    return new a["default"]({
                        name: t,
                        floor: function(t, r, n) {
                            return t.setUTCDate(t.getUTCDate() - (t.getUTCDay() + 7 - e) % 7), new Date(Number((0, o.getFloor)(new Date(Number(t.setUTCHours(0, 0, 0, 0))), r, n)))
                        },
                        offset: function(e, t, r, n) {
                            var a = t > 0,
                                i = {
                                    date: new Date(Number(e))
                                },
                                s = new Date(Number(i.date));
                            return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + 7 * t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + 7 * t))), r, n)))
                        },
                        count: function(e, t, r) {
                            var n = (0, o.getValidDatesWithin)(r, e, t),
                                a = 0,
                                s = (0, o.getClampRangesAround)(r, t);
                            return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                                a += Number(e.to) - Number(e.from)
                            })), t - e - Math.floor(a / i.durationWeek)
                        }
                    })
                },
                c = l(0, "week"),
                u = l(0, "sunday"),
                d = l(1, "monday"),
                h = l(2, "tuesday"),
                f = l(3, "wednesday"),
                g = l(4, "thursday"),
                p = l(5, "friday"),
                m = l(6, "saturday");
            t.utcSaturday = m, t.utcFriday = p, t.utcThursday = g, t.utcWednesday = f, t.utcTuesday = h, t.utcMonday = d, t.utcSunday = u, t.utcWeekObj = s;
            var v = c;
            t["default"] = v
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.weekObj = t.saturday = t.friday = t.thursday = t.wednesday = t.tuesday = t.monday = t.sunday = t["default"] = void 0;
            var a = n(r(363)),
                i = r(364),
                o = r(365),
                s = {
                    name: "week",
                    floor: function(e, t, r) {
                        return e.setDate(e.getDate() - (e.getDay() + 7 - 0) % 7), new Date(Number((0, o.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            i = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(i.date));
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + 7 * t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + 7 * t))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), (t - e - Math.floor(a / i.durationWeek) - (t.getTimezoneOffset() - e.getTimezoneOffset()) * i.durationMinute) / i.durationWeek
                    }
                },
                l = function(e, t) {
                    return new a["default"]({
                        name: t,
                        floor: function(t, r, n) {
                            return t.setDate(t.getDate() - (t.getDay() + 7 - e) % 7), new Date(Number((0, o.getFloor)(new Date(Number(t.setHours(0, 0, 0, 0))), r, n)))
                        },
                        offset: function(e, t, r, n) {
                            var a = t > 0,
                                i = {
                                    date: new Date(Number(e))
                                },
                                s = new Date(Number(i.date));
                            return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + 7 * t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + 7 * t))), r, n)))
                        },
                        count: function(e, t, r) {
                            var n = (0, o.getValidDatesWithin)(r, e, t),
                                a = 0,
                                s = (0, o.getClampRangesAround)(r, t);
                            return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                                a += Number(e.to) - Number(e.from)
                            })), (t - e - Math.floor(a / i.durationWeek) - (t.getTimezoneOffset() - e.getTimezoneOffset()) * i.durationMinute) / i.durationWeek
                        }
                    })
                },
                c = l(0, "week"),
                u = l(0, "sunday"),
                d = l(1, "monday"),
                h = l(2, "tuesday"),
                f = l(3, "wednesday"),
                g = l(4, "thursday"),
                p = l(5, "friday"),
                m = l(6, "saturday");
            t.saturday = m, t.friday = p, t.thursday = g, t.wednesday = f, t.tuesday = h, t.monday = d, t.sunday = u, t.weekObj = s;
            var v = c;
            t["default"] = v
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.yearObj = t["default"] = void 0;
            var a = n(r(371)),
                i = r(364),
                o = r(365),
                s = {
                    name: "year",
                    floor: function(e, t, r) {
                        return e.setMonth(0, 1), new Date(Number((0, o.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            i = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(i.date));
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setFullYear(s.getFullYear() + t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setFullYear(s.getFullYear() + t))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), t.getFullYear() - e.getFullYear() - Math.floor(a / i.durationYear)
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setFullYear(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getFullYear() - n.getFullYear() - Math.floor(l / i.durationYear)
                    }
                },
                l = new a["default"](s);
            t.yearObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(363)),
                o = r(365),
                s = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }
                    return (0, a["default"])(t, e), t.prototype.every = function(e) {
                        var t = Math.floor(e);
                        return this.count && Number.isFinite(t) && t > 0 ? new i["default"]({
                            name: "year",
                            floor: function(e, r, n) {
                                return e.setFullYear(Math.floor(e.getFullYear() / t) * t), e.setMonth(0, 1), new Date(Number((0, o.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0)))), r, "year", n))
                            },
                            offset: function(e, r, n, a) {
                                var i = r > 0,
                                    s = {
                                        date: new Date(Number(e))
                                    },
                                    l = new Date(Number(s.date));
                                return new Date(Number(i ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setFullYear(l.getFullYear() + r * t))), n, "year", a) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setFullYear(l.getFullYear() + r * t))), n, "year", a)))
                            }
                        }) : null
                    }, t
                }(i["default"]);
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.utcYearObj = t["default"] = void 0;
            var a = n(r(373)),
                i = r(365),
                o = r(364),
                s = {
                    name: "year",
                    floor: function(e, t, r) {
                        return e.setUTCMonth(0, 1), new Date(Number((0, i.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            o = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(JSON.parse(JSON.stringify(o)).date));
                        return new Date(Number(a ? (0, i.clampDownDateWithinClip)(o.date, new Date(Number(s.setUTCFullYear(s.getUTCFullYear() + t))), r, n) : (0, i.clampUpDateWithinClip)(o.date, new Date(Number(s.setUTCFullYear(s.getUTCFullYear() + t))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, i.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, i.getClampRangesAround)(r, t);
                        return (n = (0, i.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), t.getUTCFullYear() - e.getUTCFullYear() - Math.floor(a / o.durationYear)
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setUTCFullYear(0), n = (0, i.getFloor)(new Date(Number(s)), t, r), (0, i.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getUTCFullYear() - n.getUTCFullYear() - Math.floor(l / o.durationYear)
                    }
                },
                l = new a["default"](s);
            t.utcYearObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(363)),
                o = r(365),
                s = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }
                    return (0, a["default"])(t, e), t.prototype.every = function(e) {
                        var t = e;
                        return isFinite(t = Math.floor(t)) && t > 0 ? new i["default"]({
                            name: "year",
                            floor: function(e, r) {
                                return e.setUTCFullYear(Math.floor(e.getUTCFullYear() / t) * t), e.setUTCMonth(0, 1), new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), r)))
                            },
                            offset: function(e, r, n) {
                                var a = r > 0,
                                    i = {
                                        date: new Date(Number(e))
                                    },
                                    s = new Date(Number(i.date));
                                return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setUTCFullYear(s.getUTCFullYear() + r * t))), n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setUTCFullYear(s.getUTCFullYear() + r * t))), n)))
                            }
                        }) : null
                    }, t
                }(i["default"]);
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = {
                dateTime: "%x, %X",
                date: "%-m/%-d/%Y",
                time: "%-I:%M:%S %p",
                periods: ["AM", "PM"],
                days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
                shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
                shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
            };
            t["default"] = n
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = 0,
                a = function(e) {
                    return void 0 === e && (e = ""), e + "" + n++
                };
            t["default"] = a
        }, function(e, t, r) {
            "use strict";

            function n(e, t) {
                if ("string" != typeof e) throw new Error("eventName must be a non-empty string");
                if (!(t instanceof Object)) throw new Error("sender must be an object");
                return t._evtHandlers && t._evtHandlers[e] || []
            }
            t.__esModule = !0, t.addHandler = function a(e, t, r) {
                var n;
                if (t instanceof Array) {
                    for (var i = [], o = t.length, s = 0; s < o; s += 1) i.push(a(e, t[s], r));
                    return i
                }
                if (!e || "string" != typeof e) throw new Error("eventName must be a non-empty string");
                if ("function" != typeof t) throw new Error("handler must be a function");
                if (!(r instanceof Object)) throw new Error("sender must be an object");
                r._evtHandlers = r._evtHandlers || {}, r._evtHandlers[e] && r._evtHandlers[e] instanceof Array || (r._evtHandlers[e] = []);
                n = r._evtHandlers[e].length;
                for (var l = 0; l < n; l++)
                    if (r._evtHandlers[e][l] === t) return !1;
                return r._evtHandlers[e].push(t), !0
            }, t.getHanlders = n, t.removeHandler = function i(e, t, r) {
                var a, o;
                if (t instanceof Array) {
                    for (var s = [], l = t.length, c = 0; c < l; c += 1) s.push(i(e, t[c], r));
                    return s
                }
                if (!e || "string" != typeof e) throw new Error("eventName must be a non-empty string");
                if (t && "function" != typeof t) throw new Error("handler must be a function");
                if (!(r instanceof Object)) throw new Error("sender must be an object");
                if (!((a = n(e, r)) instanceof Array) || 0 === a.length) return;
                if (!t) return delete r._evtHandlers[e], !0;
                o = a.length;
                for (var u = 0; u < o; u++) a[u] === t && a.splice(u, 1);
                return !0
            }, t.triggerEvent = function(e, t, r) {
                var a, i, o;
                if (!e || "string" != typeof e) throw new Error("eventName must be a non-empty string");
                if (!(t instanceof Object)) throw new Error("sender must be an object");
                if (a = n(e, t), o = {
                        eventName: e,
                        sender: t,
                        data: r
                    }, !(a instanceof Array) || 0 === a.length) return;
                i = a.length;
                for (var s = 0; s < i; s++) a[s](o);
                return !0
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = function(e) {
                return null !== e && "object" == typeof e && !Array.isArray(e)
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0;
            var n = r(379);
            t.between = n.between, t.equals = n.equals, t.less = n.less, t.lessEquals = n.lessEquals, t.greater = n.greater, t.greaterEquals = n.greaterEquals, t.filter = n.filter, t.select = n.select, t.groupBy = n.groupBy, t.pipe = n.pipe, t.sort = n.sort, t.pivot = n.pivot
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0;
            var a = r(380);
            t.indexColBetween = a.indexColBetween, t.between = a.between, t.indexColEquals = a.indexColEquals, t.equals = a.equals, t.indexColLess = a.indexColLess, t.less = a.less, t.indexColLessEquals = a.indexColLessEquals, t.lessEquals = a.lessEquals, t.indexColGreater = a.indexColGreater, t.greater = a.greater, t.indexColGreaterEquals = a.indexColGreaterEquals, t.greaterEquals = a.greaterEquals;
            var i = r(383);
            t.filter = i.filter, t.select = i.select;
            var o = n(r(384));
            t.groupBy = o["default"];
            var s = n(r(403));
            t.pipe = s["default"];
            var l = n(r(404));
            t.sort = l["default"];
            var c = n(r(405));
            t.pivot = c["default"]
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.indexColBetween = s, t.between = function(e, t, r) {
                var n = t,
                    o = r;
                return {
                    ops: "between",
                    type: i.OperatorTypes.GenericFilter,
                    _updateArgs: function(e, t) {
                        n = e, o = t
                    },
                    fn: function(t, r, i, l) {
                        var c, u, d = t;
                        if (l && (d = l.call()), (c = (0, a.columnIndexOf)(e, r)) >= 0) return u = f(r, c), i && i.indexBy === e ? s(c, n, o, u).fn(d, r, i) : {
                            data: d,
                            schema: r,
                            config: i,
                            generatorFn: function() {
                                return d.filter((function(e) {
                                    return u(e, n) >= 0 && u(e, o) <= 0
                                }))
                            }
                        };
                        throw new Error("Column '" + e + "' is not found in the schema.")
                    }
                }
            }, t.indexColEquals = l, t.equals = function(e, t) {
                var r = t;
                return {
                    ops: "equals",
                    type: i.OperatorTypes.GenericFilter,
                    _updateArgs: function(e) {
                        r = e
                    },
                    fn: function(t, n, i, o) {
                        var s, c, u = t;
                        if (o && (u = o.call()), (s = (0, a.columnIndexOf)(e, n)) >= 0) return c = f(n, s), i && i.indexBy === e ? l(s, r, c).fn(u, n, i) : {
                            data: u,
                            schema: n,
                            config: i,
                            generatorFn: function() {
                                return u.filter((function(e) {
                                    return 0 === c(e, r)
                                }))
                            }
                        };
                        throw new Error("Column '" + e + "' is not found in the schema.")
                    }
                }
            }, t.indexColLess = c, t.less = function(e, t) {
                var r = t;
                return {
                    ops: "less",
                    type: i.OperatorTypes.GenericFilter,
                    _updateArgs: function(e) {
                        r = e
                    },
                    fn: function(t, n, i, o) {
                        var s, l, u = t;
                        if (o && (u = o.call()), (s = (0, a.columnIndexOf)(e, n)) >= 0) return l = f(n, s), i && i.indexBy === e ? c(s, r, l).fn(u, n, i) : {
                            data: u,
                            schema: n,
                            config: i,
                            generatorFn: function() {
                                return u.filter((function(e) {
                                    return l(e, r) < 0
                                }))
                            }
                        };
                        throw new Error("Column '" + e + "' is not found in the schema.")
                    }
                }
            }, t.indexColLessEquals = u, t.lessEquals = function(e, t) {
                var r = t;
                return {
                    ops: "lessEquals",
                    type: i.OperatorTypes.GenericFilter,
                    _updateArgs: function(e) {
                        r = e
                    },
                    fn: function(t, n, i, o) {
                        var s, l, c = t;
                        if (o && (c = o.call()), (s = (0, a.columnIndexOf)(e, n)) >= 0) return l = f(n, s), i && i.indexBy === e ? u(s, r, l).fn(c, n, i) : {
                            data: c,
                            schema: n,
                            config: i,
                            generatorFn: function() {
                                return c.filter((function(e) {
                                    return l(e, r) <= 0
                                }))
                            }
                        };
                        throw new Error("Column '" + e + "' is not found in the schema.")
                    }
                }
            }, t.indexColGreater = d, t.greater = function(e, t) {
                var r = t;
                return {
                    ops: "greater",
                    type: i.OperatorTypes.GenericFilter,
                    _updateArgs: function(e) {
                        r = e
                    },
                    fn: function(t, n, i, o) {
                        var s, l, c = t;
                        if (o && (c = o.call()), (s = (0, a.columnIndexOf)(e, n)) >= 0) return l = f(n, s), i && i.indexBy === e ? d(s, r, l).fn(c, n, i) : {
                            data: c,
                            schema: n,
                            config: i,
                            generatorFn: function() {
                                return c.filter((function(e) {
                                    return null !== e[s] && "undefined" != typeof e[s] && l(e, r) > 0
                                }))
                            }
                        };
                        throw new Error("Column '" + e + "' is not found in the schema.")
                    }
                }
            }, t.indexColGreaterEquals = h, t.greaterEquals = function(e, t) {
                var r = t;
                return {
                    ops: "greaterEquals",
                    type: i.OperatorTypes.GenericFilter,
                    _updateArgs: function(e) {
                        r = e
                    },
                    fn: function(t, n, i, o) {
                        var s, l, c = t;
                        if (o && (c = o.call()), (s = (0, a.columnIndexOf)(e, n)) >= 0) return l = f(n, s), i && i.indexBy === e ? h(s, r, l).fn(c, n, i) : {
                            data: c,
                            schema: n,
                            config: i,
                            generatorFn: function() {
                                return c.filter((function(e) {
                                    return null !== e[s] && "undefined" != typeof e[s] && l(e, r) >= 0
                                }))
                            }
                        };
                        throw new Error("Column '" + e + "' is not found in the schema.")
                    }
                }
            };
            var n = r(381),
                a = r(353),
                i = r(382),
                o = r(355);

            function s(e, t, r, a) {
                var s = t,
                    l = r,
                    c = a;
                return {
                    ops: "indexColBetween",
                    type: i.OperatorTypes.IndexOpsFilter,
                    _updateArgs: function(e, t) {
                        s = e, l = t
                    },
                    fn: function(t, r, a, i) {
                        var u, d, h, g = t;
                        return i && (g = i.call()), c || (c = f(r, e)), h = "interval" === r[e].type ? function(t, r) {
                            return (0, o.numberComparator)(t[e].end, r)
                        } : c, u = (0, n.leftMostExactOrGreater)(s, g, c, 0, g.length), d = (0, n.rightMostExactOrLesser)(l, g, h, u, g.length), {
                            data: g,
                            schema: r,
                            config: a,
                            generatorFn: function() {
                                return g.slice(u, d + 1)
                            }
                        }
                    }
                }
            }

            function l(e, t, r) {
                var a = t,
                    o = r;
                return {
                    ops: "indexColEquals",
                    type: i.OperatorTypes.IndexOpsFilter,
                    _updateArgs: function(e) {
                        a = e
                    },
                    fn: function(t, r, i, s) {
                        var l, c, u = t;
                        return s && (u = s.call()), o || (o = f(r, e)), (l = (0, n.leftMostExactOrGreater)(a, u, o, 0, u.length)) >= u.length || 0 !== o(u[l], a) ? {
                            data: [],
                            schema: r,
                            config: i
                        } : (c = (0, n.rightMostExactOrLesser)(a, u, o, l, u.length), {
                            data: u,
                            schema: r,
                            config: i,
                            generatorFn: function() {
                                return u.slice(l, c + 1)
                            }
                        })
                    }
                }
            }

            function c(e, t, r) {
                var a = t,
                    o = r;
                return {
                    ops: "indexColLess",
                    type: i.OperatorTypes.IndexOpsFilter,
                    _updateArgs: function(e) {
                        a = e
                    },
                    fn: function(t, r, i, s) {
                        var l, c = t;
                        return s && (c = s.call()), o || (o = f(r, e)), l = (0, n.leftMostExactOrGreater)(a, c, o, 0, c.length), {
                            data: c,
                            schema: r,
                            config: i,
                            generatorFn: function() {
                                return c.slice(0, l)
                            }
                        }
                    }
                }
            }

            function u(e, t, r) {
                var a = t,
                    o = r;
                return {
                    ops: "indexColLessEquals",
                    type: i.OperatorTypes.IndexOpsFilter,
                    _updateArgs: function(e) {
                        a = e
                    },
                    fn: function(t, r, i, s) {
                        var l, c = t;
                        return s && (c = s.call()), o || (o = f(r, e)), l = (0, n.rightMostExactOrLesser)(a, c, o, 0, c.length), {
                            data: c,
                            schema: r,
                            config: i,
                            generatorFn: function() {
                                return c.slice(0, l + 1)
                            }
                        }
                    }
                }
            }

            function d(e, t, r) {
                var a = t,
                    o = r;
                return {
                    ops: "indexColGreater",
                    type: i.OperatorTypes.IndexOpsFilter,
                    _updateArgs: function(e) {
                        a = e
                    },
                    fn: function(t, r, i, s) {
                        var l, c, u = t;
                        return s && (u = s.call()), o || (o = f(r, e)), l = (0, n.rightMostExactOrLesser)(a, u, o, 0, u.length), c = (0, n.leftMostExactOrGreater)(null, u, o, l, u.length), {
                            data: u,
                            schema: r,
                            config: i,
                            generatorFn: function() {
                                return u.slice(l + 1, c)
                            }
                        }
                    }
                }
            }

            function h(e, t, r) {
                var a = t,
                    o = r;
                return {
                    ops: "indexColGreaterEquals",
                    type: i.OperatorTypes.IndexOpsFilter,
                    _updateArgs: function(e) {
                        a = e
                    },
                    fn: function(t, r, i, s) {
                        var l, c, u = t;
                        return s && (u = s.call()), o || (o = f(r, e)), l = (0, n.leftMostExactOrGreater)(a, u, o, 0, u.length), c = (0, n.leftMostExactOrGreater)(null, u, o, l, u.length), {
                            data: u,
                            schema: r,
                            config: i,
                            generatorFn: function() {
                                return u.slice(l, c)
                            }
                        }
                    }
                }
            }
            var f = function(e, t) {
                switch (e[t].type) {
                    case "interval":
                        return function(e, r) {
                            return (0, o.numberComparator)(e[t].start, r)
                        };
                    case "number":
                    case "date":
                        return function(e, r) {
                            return (0, o.numberComparator)(e[t], r)
                        };
                    default:
                        return function(e, r) {
                            return (0, o.stringComparator)(String(e[t]).toLowerCase(), String(r).toLowerCase())
                        }
                }
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.leftMostExactOrGreater = function(e, t, r, n, a) {
                var i = n,
                    o = a;
                for (; i < o;) {
                    var s = i + Math.floor((o - i) / 2);
                    r(t[s], e) < 0 ? i = s + 1 : o = s
                }
                return i
            }, t.rightMostExactOrLesser = function(e, t, r, n, a) {
                var i = n,
                    o = a;
                for (; i < o;) {
                    var s = i + Math.floor((o - i) / 2);
                    r(t[s], e) > 0 ? o = s : i = s + 1
                }
                return i - 1
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.OperatorTypes = void 0;
            t.OperatorTypes = {
                IndexOpsFilter: 0,
                GenericFilter: 1,
                GroupBy: 2,
                Sort: 3,
                Select: 4
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.select = function(e, t) {
                var r = e,
                    i = t;
                return r = r && r.constructor !== Array ? [r] : r, {
                    ops: "select",
                    type: n.OperatorTypes.Select,
                    fn: function(e, t, n, o) {
                        var s, l, c = [],
                            u = [];
                        if (r)
                            if ((i = i || {
                                    exclude: !1
                                }).exclude)
                                for (s = 0; s < t.length; s++) r.includes(t[s].name) || (c.push(t[s]), u.push(s));
                            else
                                for (s = 0; s < r.length; s++)(l = (0, a.columnIndexOf)(r[s], t)) > -1 && !u.includes(l) && (c.push(t[l]), u.push(l));
                        else c = t;
                        return {
                            data: e,
                            schema: c,
                            config: n,
                            generatorFn: function() {
                                var t = u.length;
                                if (t > 0) {
                                    var r, n, a, i = [];
                                    for (r = 0; r < e.length; r++) {
                                        for (a = [], n = 0; n < t; n++) a[n] = e[r][u[n]];
                                        i[r] = a
                                    }
                                    return i
                                }
                                return e.slice(0)
                            }
                        }
                    }
                }
            }, t.filter = function(e) {
                var t = this;
                return {
                    ops: "filter",
                    type: n.OperatorTypes.GenericFilter,
                    fn: function(r, n, a, i) {
                        var o = r;
                        return {
                            data: o,
                            schema: n,
                            config: a,
                            generatorFn: function() {
                                i && (o = i.call());
                                for (var r = {}, a = 0; a < n.length; a++) r[n[a].name] = a;
                                return o.filter((function(n) {
                                    return e.call(t, n, r)
                                }))
                            }
                        }
                    }
                }
            };
            var n = r(382),
                a = r(353)
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t._singleSortedAddRow = g, t._singleSortedAddRowDate = p, t["default"] = void 0;
            var a = r(353),
                i = r(385),
                o = r(399),
                s = r(400),
                l = n(r(401)),
                c = r(357),
                u = r(382),
                d = r(381),
                h = r(355);

            function f(e, t, r, n) {
                var a, i, o, s, c, u = [],
                    d = t,
                    h = r,
                    f = d.length,
                    g = h.length;
                for (d = d instanceof Array ? d : [d], h = h instanceof Array ? h : [h], o = 0; o < f; o++) a = n(d[o].column, e), c = {
                    name: d[o].outputAs || d[o].column,
                    type: "date" === a.type ? "interval" : a.type
                }, void 0 !== a.enableUTC && (c.enableUTC = a.enableUTC), u.push(c);
                for (o = 0; o < g; o++) {
                    if (s = h[o].operation || "avg", a = n(h[o].column, e), !l["default"].resolve(s)) throw new Error(s + " is not a defined operation");
                    switch (s) {
                        case "first":
                        case "last":
                            i = a.type;
                            break;
                        case "count":
                            i = "number";
                            break;
                        default:
                            if ("number" !== a.type) throw new Error(s + " can apply only on numbers");
                            i = "number"
                    }
                    u.push({
                        name: h[o].outputAs || h[o].column + (s ? " - " + s : ""),
                        type: i
                    })
                }
                return u
            }

            function g(e, t, r) {
                var n = t;
                return n && r === n[0] || (n = [r], e.push(n)), n
            }

            function p(e, t, r, n, a) {
                var o = t;
                if (r >= o[0].end) {
                    var l;
                    switch (n.duration.Unit) {
                        case "Month":
                        case "Quarter":
                        case "Year":
                            l = (0, i.getDateStart)(r, n.duration, n.enableUTC, n.weekStartFrom, a);
                            break;
                        default:
                            l = r - (r - a) % n.duration.ms
                    }
                    o = [(0, s.interval)(l, n)], e.push(o)
                }
                return o
            }

            function m() {
                var e = {};
                return function(t, r, n) {
                    if (!e[t]) {
                        var i = (0, a.columnIndexOf)(t, r),
                            o = r[i];
                        if (void 0 === o) throw new Error("incorrect column name in config - " + t);
                        e[t] = o, e[t].column = t, e[t].index = i, "date" === o.type && n && (e[t].peaks = (0, a.columnExtents)(t, n, r))
                    }
                    return e[t]
                }
            }

            function v(e, t, r, n, a, o, l, c, u, d) {
                var h, f, g, p, m = "",
                    v = [],
                    y = r.length,
                    x = c;
                if (e.length > 0) {
                    for (h = 0; h < y; h++)
                        if ("date" === (f = a(r[h].column, t)).type) {
                            if (o[h].startValFloorVal > e[f.index]) return x;
                            switch (r[h].timeUnit.name) {
                                case "Month":
                                case "Quarter":
                                case "Year":
                                    o[h].value = (0, i.getDateStart)(e[f.index], o[h].intervalConfig.duration, o[h].intervalConfig.enableUTC, o[h].intervalConfig.weekStartFrom, o[h].startValFloorVal);
                                    break;
                                default:
                                    o[h].value = e[f.index] - (e[f.index] - o[h].startValFloorVal) % o[h].intervalConfig.duration.ms
                            }
                            m += o[h].value + "-"
                        } else v[h] = e[f.index], m += e[f.index] + "-";
                    if (l[m = m.slice(0, -1)] >= 0) v = u[l[m]], g = l[m];
                    else {
                        for (var w in l[m] = x++, o) p = (0, s.interval)(o[w].value, o[w].intervalConfig), v[w] = p;
                        u.push(v), g = u.length - 1
                    }
                    return d[g] = d[g] || {}, v && b(e, t, v, y, n, a, d[g]), x
                }
            }

            function b(e, t, r, n, a, i, o) {
                var s, c, u, d, h = a.length;
                for (d = 0; d < h; d++)
                    if (void 0 !== e[(s = i(a[d].column, t)).index] && null !== e[s.index]) {
                        switch (c = a[d].operation || "avg") {
                            case "sum":
                            case "min":
                            case "max":
                            case "first":
                            case "last":
                                u = null;
                                break;
                            default:
                                u = o[d] = o[d] && o[d] + 1 || 1
                        }
                        r[n + d] = "count" === c ? u : l["default"].resolve(c)(void 0 !== r[n + d] ? r[n + d] : null, e[s.index], u)
                    }
            }
            var y = function(e, t) {
                var r = e,
                    n = t;
                return {
                    ops: "groupBy",
                    type: u.OperatorTypes.GroupBy,
                    _updateArgs: function(e, t) {
                        r = e, n = t
                    },
                    fn: function(e, t, l, u) {
                        var y = e;
                        if (u && (y = u.call()), !r || 0 === r.length) throw new Error("groupConfigArray cannot be empty");
                        if (!n || 0 === n.length) throw new Error("aggrConfigArray cannot be empty");
                        return !(r instanceof Array) && r instanceof Object && (r = [r]), !(n instanceof Array) && n instanceof Object && (n = [n]), 1 === r.length && l && r[0].column === l.indexBy ? function(e, t, r, n, l) {
                            var u, v, y, x, w, C, _, k, S, E = [],
                                A = e.length,
                                T = 0,
                                N = m(),
                                M = [];
                            if ((v = N(n.column, t)).outputAs = n.outputAs, u = f(t, [v], l, N), A > 0) {
                                if (k = v.enableUTC || (0, c.getConfig)("enableUTC"), "date" === v.type) {
                                    var D, F, I;
                                    if (x = (0, o.duration)(n.timeUnit, Math.abs(n.binSize) || 1), e[0] && e[0][v.index] && e[A - 1] && e[A - 1][v.index] || (D = (0, a.columnExtents)(n.column, e, t, r.indexBy)), F = e[0] && e[0][v.index] || D.min, I = n.startValue && parseInt(n.startValue, 10))
                                        if (I >= F) {
                                            w = (0, i.getDateStart)(I, (0, o.duration)(n.timeUnit, 1), k, n.weekStartFrom), T = (0, d.leftMostExactOrGreater)(w, e, (function(e, t) {
                                                return (0, h.numberComparator)(e[v.index], t)
                                            }), 0, e.length)
                                        } else w = (0, i.getDateStart)(F, x, k, n.weekStartFrom, I);
                                    else w = (0, i.getDateStart)(F, (0, o.duration)(n.timeUnit, 1), k, n.weekStartFrom);
                                    y = e[A - 1] && e[A - 1][v.index] || D.max
                                }
                                if (void 0 === w || w <= y) {
                                    var L = {
                                        duration: x,
                                        outputFormat: n.outputFormat,
                                        enableUTC: k,
                                        weekStartFrom: n.weekStartFrom
                                    };
                                    for (void 0 !== w && (C = [(0, s.interval)(w, L)], E.push(C)), S = T; S < A; S++) e[S].length > 0 && ("date" === v.type ? C = p(E, C, e[S][v.index], L, w) : "string" !== v.type && "number" !== v.type || (C = g(E, C, e[S][v.index])), _ = E.length - 1, M[_] = M[_] || {}, C && b(e[S], t, C, 1, l, N, M[_]))
                                }
                            }
                            return {
                                data: E,
                                schema: u,
                                config: {
                                    indexBy: n.outputAs || n.column
                                }
                            }
                        }(y, t, l, r[0], n) : function(e, t, r, n, a) {
                            var s, l, u, d, h, g = [],
                                p = [],
                                b = !0,
                                y = e.length,
                                x = n.length,
                                w = {},
                                C = [],
                                _ = m(),
                                k = {},
                                S = 0;
                            for (h = 0; h < x; h++)(l = _(n[h].column, t, e)).outputAs = n[h].outputAs, "date" === l.type && (w[h] || (n[h].startValue >= l.peaks.max && (b = !1), w[h] = Object.assign({}, l), w[h].intervalConfig = {
                                duration: (0, o.duration)(n[h].timeUnit, Math.abs(n[h].binSize) || 1),
                                outputFormat: n[h].outputFormat,
                                enableUTC: l.enableUTC || (0, c.getConfig)("enableUTC"),
                                weekStartFrom: n[h].weekStartFrom
                            }, u = parseInt(n[h].startValue, 10) || l.peaks.min, w[h].startValFloorVal = u && (0, i.getDateStart)(u, (0, o.duration)(n[h].timeUnit, 1), w[h].intervalConfig.enableUTC, w[h].intervalConfig.weekStartFrom, parseInt(n[h].startValue, 10)), w[h].max = l.peaks.max)), p[h] = l, d || n[h].column !== r.indexBy || (d = n[h].outputAs || n[h].column);
                            if (s = f(t, p, a, _), b && y > 0)
                                for (h = 0; h < y; h++) S = v(e[h], t, n, a, _, w, k, S, g, C);
                            return {
                                data: g,
                                schema: s,
                                config: {
                                    indexBy: d
                                }
                            }
                        }(y, t, l, r, n)
                    }
                }
            };
            t["default"] = y
        }, function(e, t, r) {
            "use strict";
            var n = r(187),
                a = r(191);
            t.__esModule = !0, t.getDefaultOutputFormat = function(e) {
                switch (e) {
                    case "Millisecond":
                    case "Second":
                    case "Minute":
                    case "Hour":
                    case "Day":
                    case "Month":
                    case "Year":
                        return c[e];
                    case "Week":
                        return c.Day;
                    case "Quarter":
                        return c.Month
                }
            }, t.dateIntervalToString = function() {
                var e, t = this.config;
                switch (e = "undefined" != typeof t.enableUTC && t.enableUTC ? l["default"].utcFormatter(t.outputFormat) : l["default"].formatter(t.outputFormat), t.duration.Unit) {
                    case "Millisecond":
                    case "Second":
                    case "Minute":
                    case "Hour":
                    case "Day":
                    case "Month":
                    case "Year":
                        return e.format(new Date(this.start)) + (t.duration.number > 1 ? " - " + e.format(new Date(this.end - 1)) : "");
                    case "Week":
                    case "Quarter":
                        return e.format(new Date(this.start)) + " - " + e.format(new Date(this.end - 1))
                }
            }, t.dateRangeCaclulator = function(e, t, r, n, a) {
                void 0 === a && (a = !1);
                var i, o, s;
                i = e, a && ((s = Object.assign({}, t)).number = 1, i = h(i, s, r, n));
                return o = f(i, t.Unit, t.number, r, n), {
                    startDate: i,
                    endDate: o
                }
            }, t.getDateStart = h, t.getDateOffset = f;
            var i = a(r(386)),
                o = a(r(394)),
                s = r(366),
                l = n(r(358)),
                c = {
                    Year: "%Y",
                    Month: "%b %Y",
                    Day: "%b %d, %Y",
                    Hour: "%b %d, %Y %H hrs",
                    Minute: "%b %d, %Y %H:%M",
                    Second: "%b %d, %Y %H:%M:%S",
                    Millisecond: "%b %d, %Y %H:%M:%S:%L"
                },
                u = {
                    Millisecond: i.timeMillisecond,
                    Second: i.timeSecond,
                    Minute: i.timeMinute,
                    Hour: i.timeHour,
                    Day: i.timeDay,
                    Week: {
                        0: i.timeSunday,
                        1: i.timeMonday,
                        2: i.timeTuesday,
                        3: i.timeWednesday,
                        4: i.timeThursday,
                        5: i.timeFriday,
                        6: i.timeSaturday
                    },
                    Month: i.timeMonth,
                    Quarter: i.timeQuarter,
                    Year: i.timeYear
                },
                d = {
                    Millisecond: o.utcMillisecond,
                    Second: o.utcSecond,
                    Minute: o.utcMinute,
                    Hour: o.utcHour,
                    Day: o.utcDay,
                    Week: {
                        0: o.utcSunday,
                        1: o.utcMonday,
                        2: o.utcTuesday,
                        3: o.utcWednesday,
                        4: o.utcThursday,
                        5: o.utcFriday,
                        6: o.utcSaturday
                    },
                    Month: o.utcMonth,
                    Quarter: o.utcQuarter,
                    Year: o.utcYear
                };

            function h(e, t, r, n, a) {
                var i, o = void 0 !== r && r ? d[t.Unit] : u[t.Unit],
                    l = n;
                if (l && !s.Weekdays[l.name]) throw new Error("Invalid weekStartFrom provided: " + l);
                return 1 === t.number ? "Week" === t.Unit ? +o[(l = l || s.Weekdays.Sunday).id].floor(new Date(e)) : +o.floor(new Date(e)) : a ? "Week" === t.Unit ? (i = o[(l = l || s.Weekdays.Sunday).id].count(a, e) % t.number) ? f(+o[l.id].floor(e), t.Unit, -i, r, l) : +o[l.id].floor(e) : (i = o.count(a, e) % t.number) ? f(+o.floor(e), t.Unit, -i, r, l) : +o.floor(e) : "Week" === t.Unit ? +o[(l = l || s.Weekdays.Sunday).id].every(t.number).floor(new Date(e)) : +o.every(t.number).floor(new Date(e))
            }

            function f(e, t, r, n, a) {
                switch (t) {
                    case "Month":
                    case "Quarter":
                    case "Year":
                        return +(void 0 !== n && n ? d[t] : u[t]).offset(new Date(e), r);
                    default:
                        return e + s.DatetimeUnits[t].ms * r
                }
            }
        }, function(e, t, r) {
            "use strict";
            var n = r(191);
            t.__esModule = !0;
            var a = n(r(387));
            t.timeMillisecond = a["default"], t.millisecondObj = a.millisecondObj;
            var i = n(r(389));
            t.timeSecond = i["default"], t.secondObj = i.secondObj;
            var o = n(r(390));
            t.timeMinute = o["default"], t.minuteObj = o.minuteObj;
            var s = n(r(391));
            t.timeHour = s["default"], t.hourObj = s.hourObj;
            var l = n(r(362));
            t.timeDay = l["default"], t.dayObj = l.dayObj;
            var c = n(r(369));
            t.timeWeek = c["default"], t.timeSunday = c.sunday, t.timeMonday = c.monday, t.timeTuesday = c.tuesday, t.timeWednesday = c.wednesday, t.timeThursday = c.thursday, t.timeFriday = c.friday, t.timeSaturday = c.saturday, t.weekObj = c.weekObj;
            var u = n(r(392));
            t.timeQuarter = u["default"], t.quarterObj = u.quarterObj;
            var d = n(r(393));
            t.timeMonth = d["default"], t.monthObj = d.monthObj;
            var h = n(r(370));
            t.timeYear = h["default"], t.yearObj = h.yearObj
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.millisecondObj = t["default"] = void 0;
            var a = n(r(388)),
                i = r(365),
                o = {
                    name: "millisecond",
                    floor: function(e) {
                        return e
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            o = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(o.date));
                        return new Date(Number(a ? (0, i.clampDownDateWithinClip)(o.date, new Date(Number(s.setTime(Number(s) + Number(t)))), r, n) : (0, i.clampUpDateWithinClip)(o.date, new Date(Number(s.setTime(Number(s) + Number(t)))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, i.getValidDatesWithin)(r, e, t),
                            a = 0,
                            o = (0, i.getClampRangesAround)(r, t);
                        return (n = (0, i.getClipArray)(o, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), t - e - a
                    }
                },
                s = new a["default"](o);
            t.millisecondObj = o;
            var l = s;
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(207)),
                i = n(r(363)),
                o = r(365),
                s = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }
                    return (0, a["default"])(t, e), t.prototype.every = function(e) {
                        var t = Math.floor(e);
                        return this.count && Number.isFinite(t) && t > 0 ? t > 1 ? new i["default"]({
                            name: "millisecond",
                            floor: function(e, r, n) {
                                return new Date(Number((0, o.getFloor)(new Date(Number(e.setTime(Math.floor(e / t) * t))), r, n)))
                            },
                            offset: function(e, r, n, a) {
                                var i = r > 0,
                                    s = {
                                        date: new Date(Number(e))
                                    },
                                    l = new Date(Number(s.date));
                                return new Date(Number(i ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + r * t))), n, a) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + r * t))), n, a)))
                            },
                            count: function(e, r, n) {
                                var a = (0, o.getValidDatesWithin)(n, e, r),
                                    i = 0,
                                    s = (0, o.getClampRangesAround)(n, r);
                                return (a = (0, o.getClipArray)(s, a)).forEach((function(e) {
                                    i += Number(e.to) - Number(e.from)
                                })), r - e - Math.floor(i / t)
                            }
                        }) : this : null
                    }, t
                }(i["default"]);
            t["default"] = s
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.secondObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(364),
                o = r(365),
                s = {
                    name: "second",
                    floor: function(e, t, r) {
                        return new Date(Number((0, o.getFloor)(new Date(Number(e.setTime(Math.floor(e / i.durationSecond) * i.durationSecond))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            s = {
                                date: new Date(Number(e))
                            },
                            l = new Date(Number(s.date));
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationSecond))), r, n) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationSecond))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), (t - e) / i.durationSecond - Math.floor(a / i.durationSecond)
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setUTCSeconds(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getUTCSeconds() - n.getUTCSeconds() - l / i.durationSecond
                    }
                },
                l = new a["default"](s);
            t.secondObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.minuteObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(364),
                o = r(365),
                s = {
                    name: "minute",
                    floor: function(e, t, r) {
                        return new Date(Number((0, o.getFloor)(new Date(Number(e.setTime(Math.floor(e / i.durationMinute) * i.durationMinute))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            s = {
                                date: new Date(Number(e))
                            },
                            l = new Date(Number(s.date));
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationMinute))), r, n) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationMinute))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), (t - e) / i.durationMinute - Math.floor(a / i.durationMinute)
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setMinutes(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getMinutes() - n.getMinutes() - Math.floor(l / i.durationMinute)
                    }
                },
                l = new a["default"](s);
            t.minuteObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.hourObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(364),
                o = r(365),
                s = {
                    name: "hour",
                    floor: function(e, t, r) {
                        var n = e.getTimezoneOffset() * i.durationMinute % i.durationHour;
                        return n < 0 && (n += i.durationHour), new Date(Number((0, o.getFloor)(new Date(Number(e.setTime(Math.floor((Number(e) - n) / i.durationHour) * i.durationHour + n))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            s = {
                                date: new Date(Number(e))
                            },
                            l = new Date(Number(s.date));
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationHour))), r, n) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationHour))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), (t - e) / i.durationHour - Math.floor(a / i.durationHour)
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setHours(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getHours() - n.getHours() - l / i.durationHour
                    }
                },
                l = new a["default"](s);
            t.hourObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.quarterObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(365),
                o = r(364),
                s = {
                    name: "quarter",
                    floor: function(e, t, r) {
                        return e.setMonth(e.getMonth() - (e.getMonth() + 3) % 3, 1), new Date(Number((0, i.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            o = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(o.date));
                        return new Date(Number(a ? (0, i.clampDownDateWithinClip)(o.date, new Date(Number(s.setMonth(s.getMonth() + 3 * t))), r, n) : (0, i.clampUpDateWithinClip)(o.date, new Date(Number(s.setMonth(s.getMonth() + 3 * t))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, i.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, i.getClampRangesAround)(r, t);
                        return (n = (0, i.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), (t.getMonth() - (t.getMonth() + 3) % 3 - (e.getMonth() - (e.getMonth() + 3) % 3) - Math.floor(a / o.durationMonth)) / 3 + 4 * (t.getFullYear() - e.getFullYear())
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setMonth(0), n = (0, i.getFloor)(new Date(Number(s)), t, r), (0, i.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), Math.floor((e.getMonth() - n.getMonth() - Math.floor(l / o.durationMonth)) / 3)
                    }
                },
                l = new a["default"](s);
            t.quarterObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.monthObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(365),
                o = r(364),
                s = {
                    name: "month",
                    floor: function(e, t, r) {
                        return e.setDate(1), new Date(Number((0, i.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            o = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(o.date));
                        return new Date(Number(a ? (0, i.clampDownDateWithinClip)(o.date, new Date(Number(s.setMonth(s.getMonth() + t))), r, n) : (0, i.clampUpDateWithinClip)(o.date, new Date(Number(s.setMonth(s.getMonth() + t))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, i.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, i.getClampRangesAround)(r, t);
                        return (n = (0, i.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), t.getMonth() - e.getMonth() - Math.floor(a / o.durationMonth) + 12 * (t.getFullYear() - e.getFullYear())
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setMonth(0), n = (0, i.getFloor)(new Date(Number(s)), t, r), (0, i.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getMonth() - n.getMonth() - Math.floor(l / o.durationMonth)
                    }
                },
                l = new a["default"](s);
            t.monthObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(191);
            t.__esModule = !0, t["default"] = void 0;
            var a = n(r(387));
            t.utcMillisecond = a["default"], t.millisecondObj = a.millisecondObj;
            var i = n(r(389));
            t.utcSecond = i["default"], t.secondObj = i.secondObj;
            var o = n(r(395));
            t.utcMinute = o["default"], t.utcMinuteObj = o.utcMinuteObj;
            var s = n(r(396));
            t.utcHour = s["default"], t.utcHourObj = s.utcHourObj;
            var l = n(r(367));
            t.utcDay = l["default"], t.utcDayObj = l.utcDayObj;
            var c = n(r(368));
            t.utcWeek = c["default"], t.utcSunday = c.utcSunday, t.utcMonday = c.utcMonday, t.utcTuesday = c.utcTuesday, t.utcWednesday = c.utcWednesday, t.utcThursday = c.utcThursday, t.utcFriday = c.utcFriday, t.utcSaturday = c.utcSaturday, t.utcWeekObj = c.utcWeekObj;
            var u = n(r(397));
            t.utcQuarter = u["default"], t.utcQuarterObj = u.utcQuarterObj;
            var d = n(r(398));
            t.utcMonth = d["default"], t.utcMonthObj = d.utcMonthObj;
            var h = n(r(372));
            t.utcYear = h["default"], t.utcYearObj = h.utcYearObj;
            var f = {
                getInterval: function(e) {
                    switch (e + "") {
                        case "millisecond":
                            return a["default"];
                        case "second":
                            return i["default"];
                        case "minute":
                            return o["default"];
                        case "hour":
                            return s["default"];
                        case "day":
                            return l["default"];
                        case "week":
                            return c["default"];
                        case "sunday":
                            return c.utcSunday;
                        case "monday":
                            return c.utcMonday;
                        case "tuesday":
                            return c.utcTuesday;
                        case "wednesday":
                            return c.utcWednesday;
                        case "thursday":
                            return c.utcThursday;
                        case "friday":
                            return c.utcFriday;
                        case "saturday":
                            return c.utcSaturday;
                        case "quarter":
                            return u["default"];
                        case "month":
                            return d["default"];
                        case "year":
                            return h["default"]
                    }
                }
            };
            t["default"] = f
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.utcMinuteObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(364),
                o = r(365),
                s = {
                    name: "minute",
                    floor: function(e, t, r) {
                        return new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCSeconds(0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            s = {
                                date: new Date(e)
                            },
                            l = new Date(JSON.parse(JSON.stringify(s)).date);
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationMinute))), r, n) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationMinute))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), (t - e) / i.durationMinute - Math.floor(a / i.durationMinute)
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setUTCMinutes(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getUTCMinutes() - n.getUTCMinutes() - Math.floor(l / i.durationMinute)
                    }
                },
                l = new a["default"](s);
            t.utcMinuteObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.utcHourObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(364),
                o = r(365),
                s = {
                    name: "hour",
                    floor: function(e, t, r) {
                        return new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCMinutes(0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            s = {
                                date: new Date(Number(e))
                            },
                            l = new Date(Number(s.date));
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationHour))), r, n) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationHour))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), (t - e) / i.durationHour - Math.floor(a / i.durationHour)
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setUTChours(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getUTCHours() - n.getUTCHours() - Math.floor(l / i.durationHour)
                    }
                },
                l = new a["default"](s);
            t.utcHourObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.utcQuarterObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(365),
                o = r(364),
                s = {
                    name: "quarter",
                    floor: function(e, t, r) {
                        return e.setUTCMonth(e.getUTCMonth() - (e.getUTCMonth() + 3) % 3, 1), new Date(Number((0, i.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            o = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(o.date));
                        return new Date(Number(a ? (0, i.clampDownDateWithinClip)(o.date, new Date(Number(s.setUTCMonth(s.getUTCMonth() + 3 * t))), r, n) : (0, i.clampUpDateWithinClip)(o.date, new Date(Number(s.setUTCMonth(s.getUTCMonth() + 3 * t))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, i.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, i.getClampRangesAround)(r, t);
                        return (n = (0, i.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), (t.getUTCMonth() - (t.getUTCMonth() + 3) % 3 - (e.getUTCMonth() - (e.getUTCMonth() + 3) % 3) - Math.floor(a / o.durationMonth)) / 3 + 4 * (t.getUTCFullYear() - e.getUTCFullYear())
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setUTCMonth(0), n = (0, i.getFloor)(new Date(Number(s)), t, r), (0, i.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), Math.floor(e.getUTCMonth() - n.getUTCMonth() - Math.floor(l / o.durationMonth))
                    }
                },
                l = new a["default"](s);
            t.utcQuarterObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.utcMonthObj = t["default"] = void 0;
            var a = n(r(363)),
                i = r(364),
                o = r(365),
                s = {
                    name: "month",
                    floor: function(e, t, r) {
                        return e.setUTCDate(1), new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), t, r)))
                    },
                    offset: function(e, t, r, n) {
                        var a = t > 0,
                            i = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(i.date));
                        return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setUTCMonth(s.getUTCMonth() + t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setUTCMonth(s.getUTCMonth() + t))), r, n)))
                    },
                    count: function(e, t, r) {
                        var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t);
                        return (n = (0, o.getClipArray)(s, n)).forEach((function(e) {
                            a += Number(e.to) - Number(e.from)
                        })), t.getUTCMonth() - e.getUTCMonth() - Math.floor(a / i.durationMonth) + 12 * (t.getUTCFullYear() - e.getUTCFullYear())
                    },
                    field: function(e, t, r) {
                        var n, a = {
                                date: new Date(Number(e))
                            },
                            s = new Date(Number(a.date)),
                            l = 0;
                        return s.setUTCMonth(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) {
                            l += Number(e.to) - Number(e.from)
                        })), e.getUTCMonth() - n.getUTCMonth() - Math.floor(l / i.durationMonth)
                    }
                },
                l = new a["default"](s);
            t.utcMonthObj = s;
            var c = l;
            t["default"] = c
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.duration = function(e, t) {
                var r = t;
                if (!e || !n.DatetimeUnits[e.name]) throw new Error("Invalid Unit provided: " + e);
                return r = Math.abs(r) || 1, {
                    Unit: e.name,
                    number: r,
                    ms: e.ms * r
                }
            };
            var n = r(366)
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.interval = function(e, t, r) {
                void 0 === r && (r = !1);
                if (t.duration.ms) {
                    var i = (0, a.dateRangeCaclulator)(e, t.duration, t.enableUTC, t.weekStartFrom || n.Weekdays.Sunday, r),
                        o = i.startDate,
                        s = i.endDate;
                    return t.outputFormat = t.outputFormat || (0, a.getDefaultOutputFormat)(t.duration.Unit), {
                        start: o,
                        end: s,
                        config: t,
                        toString: a.dateIntervalToString
                    }
                }
            };
            var n = r(366),
                a = r(385)
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(402),
                a = {
                    store: {},
                    _defaultAggregators: {
                        sum: n.sum,
                        avg: n.avg,
                        count: n.count,
                        min: n.min,
                        max: n.max,
                        first: n.first,
                        last: n.last,
                        variance: n.variance,
                        stddev: n.stddev
                    },
                    register: function(e, t) {
                        return this.store[e] = t, this
                    },
                    getRegisteredAggregations: function() {
                        return Object.assign(this.store)
                    },
                    getDefaultAggregations: function() {
                        return Object.assign(this._defaultAggregators)
                    },
                    resolve: function(e) {
                        return this._defaultAggregators[e] || this.store[e]
                    }
                };
            t["default"] = a
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.stddev = t.variance = t.last = t.first = t.max = t.min = t.count = t.avg = t.sum = void 0;
            var n = function(e, t, r) {
                    return ((r - 1) * e + t) / r
                },
                a = function(e, t, r) {
                    var a, i = t,
                        o = 0;
                    return e && (i = e.avg, o = e.variance), a = i, r > 1 && (o = (o * (r - 2) + (t - (i = n(i, t, r))) * (t - a)) / (r - 1)), {
                        avg: i,
                        variance: o
                    }
                };
            t.stddev = function(e, t, r) {
                var n, i;
                return e && (n = {
                    avg: e.avg,
                    variance: e.stddev * e.stddev
                }), {
                    avg: (i = a(n, t, r)).avg,
                    stddev: Math.sqrt(i.variance)
                }
            }, t.variance = a, t.last = function(e, t) {
                return t
            }, t.first = function(e, t) {
                return null === e ? t : e
            }, t.max = function(e, t) {
                return null !== e ? e < t ? t : e : t
            }, t.min = function(e, t) {
                return null !== e ? e > t ? t : e : t
            }, t.count = function(e) {
                return e + 1
            }, t.avg = n, t.sum = function(e, t) {
                return e + t
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = function() {
                for (var e, t = [], r = [], i = [], o = function(e, t) {
                        for (var r = [], n = e.length, i = 0; i < n; i++) t[i] || r.push(e[i]);
                        return r && r.length > 0 && (0, a.binaryInsertionSort)(r, (function(e, t) {
                            return e.type - t.type
                        })), r
                    }, s = function(e) {
                        var t = [],
                            r = e.length;
                        (0, a.binaryInsertionSort)(e, (function(e, t) {
                            return e.type - t.type
                        })), t.push(e[0]);
                        for (var n = 1; n < r; n++) e[n].type >= 3 && e[n].type === t[t.length - 1].type && t.pop(), t.push(e[n]);
                        return t
                    }, l = arguments.length, c = new Array(l), u = 0; u < l; u++) c[u] = arguments[u];
                e = c.length;
                for (var d = 0; d < e; d++) switch (c[d].type) {
                    case n.OperatorTypes.IndexOpsFilter:
                    case n.OperatorTypes.GenericFilter:
                        t.push(c[d]), r.push(!1);
                        break;
                    case n.OperatorTypes.Select:
                    case n.OperatorTypes.Sort:
                        t.push(c[d]), r.push(!0);
                        break;
                    case n.OperatorTypes.GroupBy:
                        i = i.concat(o(t, r), c[d]), t = [], r = []
                }
                return i = i.concat(s(t))
            };
            var n = r(382),
                a = r(356)
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var a = r(382),
                i = r(353),
                o = r(355),
                s = n(r(356));
            var l = function(e) {
                var t = e;
                return {
                    ops: "sort",
                    type: a.OperatorTypes.Sort,
                    _updateArgs: function(e) {
                        t = e
                    },
                    fn: function(e, r, n, a) {
                        var l = e;
                        return {
                            data: l,
                            schema: r,
                            config: t.constructor === Array && t.length ? {
                                indexBy: t[0].column
                            } : t.constructor === Object ? {
                                indexBy: t.column
                            } : void 0,
                            generatorFn: function() {
                                var e;
                                if (a && (l = a.call()), t.constructor === Function) e = t;
                                else {
                                    t.constructor !== Array && (t = [t]);
                                    var n, c, u, d = [],
                                        h = [];
                                    for (n = 0; n < t.length; n++)
                                        if (t[n].column) {
                                            if (c = (0, i.columnIndexOf)(t[n].column, r), h.push(c), -1 === c) throw new Error("Sort column is not found in schema - " + t[n].column);
                                            switch (r[c].type) {
                                                case "number":
                                                case "interval":
                                                case "date":
                                                    d.push(o.numberComparator);
                                                    break;
                                                default:
                                                    d.push(o.stringComparator)
                                            }
                                        }
                                    e = function(e, a) {
                                        for (n = 0; n < t.length; n++) {
                                            if (0 !== (u = "interval" === r[h[n]].type ? "desc" === t[n].order ? d[n](a[h[n]].start, e[h[n]].start) : d[n](e[h[n]].start, a[h[n]].start) : "desc" === t[n].order ? d[n](a[h[n]], e[h[n]]) : d[n](e[h[n]], a[h[n]]))) return u;
                                            if (n === t.length - 1) return 0
                                        }
                                    }
                                }
                                return (0, s["default"])(l, e), l
                            }
                        }
                    }
                }
            };
            t["default"] = l
        }, function(e, t, r) {
            "use strict";
            var n = r(191),
                a = r(187);
            t.__esModule = !0, t["default"] = void 0;
            var i = r(353),
                o = r(385),
                s = r(399),
                l = r(400),
                c = a(r(401)),
                u = r(357),
                d = r(382),
                h = n(r(384)),
                f = r(355),
                g = r(381);

            function p(e, t, r, n, a, i, o, s, l) {
                var u, d, h, f, g, p = a.length;
                for (f = 0; f < p; f++)
                    if (void 0 !== e[u = s(a[f].column, t)] && null !== e[u]) {
                        switch (d = a[f].operation || "avg", g = o[e[i] + " - " + (a[f].outputAs || a[f].column + (d ? " - " + d : ""))], d) {
                            case "sum":
                            case "min":
                            case "max":
                            case "first":
                            case "last":
                                h = null;
                                break;
                            default:
                                h = l[g] = l[g] && l[g] + 1 || 1
                        }
                        r[n + g] = "count" === d ? h : c["default"].resolve(d)(void 0 !== r[n + g] ? r[n + g] : null, e[u], h)
                    }
            }
            var m = function(e, t, r) {
                var n = e,
                    a = t,
                    m = r;
                return {
                    ops: "pivot",
                    type: d.OperatorTypes.GroupBy,
                    _updateArgs: function(e, t, r) {
                        n = e, a = t, m = r
                    },
                    fn: function(e, t, r, d) {
                        if (0 === n.length) throw new Error("groupConfigArray cannot be empty");
                        if (0 === m.length) throw new Error("aggrConfigArray cannot be empty");
                        if (!a) throw new Error("pivotCol cannot be empty");
                        return !(n instanceof Array) && n instanceof Object && (n = [n]), !(m instanceof Array) && m instanceof Object && (m = [m]), 1 === n.length && r && n[0].column === r.indexBy ? function(e, t, r, n, a, d) {
                            var m, v, b, y, x, w, C, _, k, S, E, A, T, N, M, D = [],
                                F = e.length,
                                I = 0,
                                L = (R = {}, function(e, t) {
                                    return R[e] || (R[e] = (0, i.columnIndexOf)(e, t)), R[e]
                                }),
                                O = [];
                            var R;
                            if (-1 === (y = (0, i.columnIndexOf)(n.column, t))) throw new Error("incorrect column name in groupConfigArr - " + n);
                            if (-1 === (w = (0, i.columnIndexOf)(d, t))) throw new Error("incorrect pivot column name");
                            if (x = t[y], C = t[w], (k = Object.assign({}, n)).type = x.type, k.outputAs = n.outputAs, b = function(e, t, r, n, a) {
                                    var o, s, l, u, d, h, g, p, m, v, b, y, x, w = [],
                                        C = {},
                                        _ = 0,
                                        k = r,
                                        S = n;
                                    for (k = k instanceof Array ? k : [k], S = S instanceof Array ? S : [S], u = k.length, d = S.length, v = 0; v < u; v++) {
                                        if (h = (0, i.columnIndexOf)(k[v].column, t), g = t[h], -1 === h) throw new Error("incorrect column name in groupConfigArr - " + k[v].column);
                                        x = {
                                            name: k[v].outputAs || k[v].column,
                                            type: "date" === g.type ? "interval" : g.type
                                        }, void 0 !== g.enableUTC && (x.enableUTC = g.enableUTC), w.push(x)
                                    }
                                    switch (a.type) {
                                        case "number":
                                        case "date":
                                            o = f.numberComparator;
                                            break;
                                        default:
                                            o = f.stringComparator
                                    }
                                    for ((s = (0, i.columnUnique)(a.name, e, t)).sort((function(e, t) {
                                            return o(e, t)
                                        })), l = s.length, v = 0; v < d; v++) {
                                        if (y = S[v].operation || "avg", h = (0, i.columnIndexOf)(S[v].column, t), g = t[h], -1 === h) throw new Error("incorrect column name in aggrConfigArr - " + S[v].column);
                                        if (!c["default"].resolve(y)) throw new Error(y + " is not a defined operation");
                                        switch (y) {
                                            case "first":
                                            case "last":
                                                p = g.type;
                                                break;
                                            case "count":
                                                p = "number";
                                                break;
                                            default:
                                                if ("number" !== g.type) throw new Error(y + " can apply only on numbers");
                                                p = "number"
                                        }
                                        for (b = 0; b < l; b++) m = s[b] + " - " + (S[v].outputAs || S[v].column + (y ? " - " + y : "")), C[m] = _++, w.push({
                                            name: m,
                                            type: p
                                        })
                                    }
                                    return {
                                        schema: w,
                                        pivots: C
                                    }
                                }(e, t, k, a, C), m = b.schema, v = b.pivots, F > 0) {
                                if (N = x.enableUTC || (0, u.getConfig)("enableUTC"), "date" === x.type) {
                                    var P, V, B;
                                    if (S = (0, s.duration)(n.timeUnit, Math.abs(n.binSize) || 1), e[0] && e[0][y] && e[F - 1] && e[F - 1][y] || (P = (0, i.columnExtents)(n.column, e, t, r.indexBy)), V = e[0] && e[0][y] || P.min, B = n.startValue && parseInt(n.startValue, 10))
                                        if (B >= V) {
                                            E = (0, o.getDateStart)(B, (0, s.duration)(n.timeUnit, 1), N, n.weekStartFrom), I = (0, g.leftMostExactOrGreater)(E, e, (function(e, t) {
                                                return (0, f.numberComparator)(e[y], t)
                                            }), 0, e.length)
                                        } else E = (0, o.getDateStart)(V, S, N, n.weekStartFrom, B);
                                    else E = (0, o.getDateStart)(V, (0, s.duration)(n.timeUnit, 1), N, n.weekStartFrom);
                                    _ = e[F - 1] && e[F - 1][y] || P.max
                                }
                                if (void 0 === E || E <= _) {
                                    var j = {
                                        duration: S,
                                        outputFormat: n.outputFormat,
                                        enableUTC: N,
                                        weekStartFrom: n.weekStartFrom
                                    };
                                    for (void 0 !== E && (A = [(0, l.interval)(E, j)], D.push(A)), M = I; M < F; M++) e[M].length > 0 && ("date" === x.type ? A = (0, h._singleSortedAddRowDate)(D, A, e[M][y], j, E) : "string" !== x.type && "number" !== x.type || (A = (0, h._singleSortedAddRow)(D, A, e[M][y])), T = D.length - 1, O[T] = O[T] || {}, A && p(e[M], t, A, 1, a, w, v, L, O[T]))
                                }
                            }
                            return {
                                data: D,
                                schema: m,
                                config: {
                                    indexBy: n.outputAs || n.column
                                }
                            }
                        }(e, t, r, n[0], m, a) : function(e, t, r, n, a, o, s) {
                            var l, c, u, d, g, p, m, v, b, y, x = {},
                                w = {},
                                C = function(e) {
                                    return w.hasOwnProperty(e) ? w[e] : -1
                                },
                                _ = function(e, t) {
                                    w[e] = t
                                },
                                k = function(e, t, r, n) {
                                    return e + " - " + (t || r + (n ? " - " + n : ""))
                                },
                                S = function() {
                                    for (var e, t = [], r = function(r) {
                                            if (b.includes(p[r].name)) t.push(p[r]), x[p[r].name] = r;
                                            else {
                                                e = o.filter((function(e) {
                                                    return (e.outputAs || e.column + (e.operation ? " - " + e.operation : "")) === p[r].name
                                                }))[0];
                                                for (var n = 0; n < g.length; n++) t.push({
                                                    name: k(g[n], e.outputAs, e.column, e.operation),
                                                    type: p[r].type
                                                })
                                            }
                                        }, n = 0; n < v; n++) r(n);
                                    return t
                                },
                                E = [];
                            switch (l = (0, h["default"])(a.concat({
                                column: s
                            }), o), c = l.fn(e, t, r, n), d = (0, i.columnUnique)(s, e, t), m = (0, i.columnIndexOf)(s, c.schema), c.schema[m].type) {
                                case "number":
                                case "date":
                                    u = f.numberComparator;
                                    break;
                                default:
                                    u = f.stringComparator
                            }
                            g = d && d.sort((function(e, t) {
                                return u(e, t)
                            })) || [], p = c.schema.filter((function(e) {
                                return e.name !== s
                            })), v = p.length, b = a.map((function(e) {
                                return e.outputAs || e.column
                            })), y = S(), c.data.length > 0 && (E = function(e) {
                                var t, r, n, a, i, l = [],
                                    u = e.length,
                                    d = {},
                                    h = {},
                                    f = "";
                                for (t = 0; t < u; t++) d[e[t].name] = t;
                                for (t = 0; t < c.data.length; t++) {
                                    for (h = {}, f = "", r = 0; r < c.schema.length; r++) x.hasOwnProperty(c.schema[r].name) ? (h[d[c.schema[r].name]] = c.data[t][r], "interval" === c.schema[r].type ? f += c.data[t][r].start : f += c.data[t][r]) : c.schema[r].name !== s && (a = o.filter((function(e) {
                                        return (e.outputAs || e.column + (e.operation ? " - " + e.operation : "")) === c.schema[r].name
                                    }))[0], (i = d[k(c.data[t][m], a.outputAs, a.column, a.operation)]) && (h[i] = c.data[t][r]));
                                    if ((n = C(f)) > -1) {
                                        var g = l[n];
                                        for (var p in h) g[p] = h[p]
                                    } else {
                                        var v = new Array(u);
                                        for (var b in h) v[b] = h[b];
                                        l.push(v), _(f, l.length - 1)
                                    }
                                }
                                return l
                            }(y));
                            return {
                                data: E,
                                schema: y,
                                config: {
                                    indexBy: c.config.indexBy === s ? void 0 : c.config.indexBy
                                }
                            }
                        }(e, t, r, d, n, m, a)
                    }
                }
            };
            t["default"] = m
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0;
            var a = n(r(401));
            t.aggregatorStore = a["default"]
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0;
            var n = r(408);
            t.before = n.before, t.after = n.after;
            var a = r(409);
            t.parseDate = a.parseDate, t.formatDate = a.formatDate;
            var i = r(399);
            t.duration = i.duration;
            var o = r(366);
            t.DatetimeUnits = o.DatetimeUnits, t.Weekdays = o.Weekdays
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t.before = function(e, t, r, i) {
                if (!e) throw new Error("duration is missing");
                if (t && (isNaN(t) || isNaN(+new Date(t)))) throw new Error("timestamp is incorrect");
                return (0, n.getDateOffset)(isNaN(t) || null === t ? +new Date : t, e.Unit, -e.number, r, i || a.Weekdays.Sunday)
            }, t.after = function(e, t, r, i) {
                if (!e) throw new Error("duration is missing");
                if (t && (isNaN(t) || isNaN(+new Date(t)))) throw new Error("timestamp is incorrect");
                return (0, n.getDateOffset)(isNaN(t) || null === t ? +new Date : t, e.Unit, e.number, r, i || a.Weekdays.Sunday)
            };
            var n = r(385),
                a = r(366)
        }, function(e, t, r) {
            "use strict";
            var n = r(187);
            t.__esModule = !0, t.parseDate = function(e, t, r) {
                var n, i;
                t && (n = void 0 !== r && r ? a["default"].utcParser(t) : a["default"].parser(t), i = (i = n.parse(e)) && i.getTime());
                i || (i = void 0 !== r && r ? +new Date(e + "Z") : +new Date(e));
                if (!i) throw new Error("Incorrect string or format provided");
                return i
            }, t.formatDate = function(e, t, r) {
                var n, i, o = t;
                if (isNaN(parseInt(e, 10))) throw new Error("Timestamp must be a number: " + e);
                o || (o = "%a, %-d %b %Y, %H:%M:%S:%L");
                if (n = void 0 !== r && r ? a["default"].utcFormatter(o) : a["default"].formatter(o), !(i = n.format(new Date(e)))) throw new Error("Incorrect format provided: " + o);
                return i
            };
            var a = n(r(358))
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                column2d: "charts",
                column3d: "charts",
                bar2d: "charts",
                bar3d: "charts",
                pie2d: "charts",
                pie3d: "charts",
                line: "charts",
                area2d: "charts",
                doughnut2d: "charts",
                doughnut3d: "charts",
                pareto2d: "charts",
                pareto3d: "charts",
                mscolumn2d: "charts",
                mscolumn3d: "charts",
                msline: "charts",
                msarea: "charts",
                msbar2d: "charts",
                msbar3d: "charts",
                stackedcolumn2d: "charts",
                marimekko: "charts",
                stackedcolumn3d: "charts",
                stackedarea2d: "charts",
                stackedcolumn2dline: "charts",
                stackedcolumn3dline: "charts",
                stackedbar2d: "charts",
                stackedbar3d: "charts",
                msstackedcolumn2d: "charts",
                mscombi2d: "charts",
                mscombi3d: "charts",
                mscolumnline3d: "charts",
                mscombidy2d: "charts",
                mscombidy3d: "charts",
                mscolumn3dlinedy: "charts",
                stackedcolumn2dlinedy: "charts",
                stackedarea2dlinedy: "charts",
                stackedcolumn3dlinedy: "charts",
                msstackedcolumn2dlinedy: "charts",
                scatter: "charts",
                bubble: "charts",
                ssgrid: "charts",
                scrollbar2d: "charts",
                scrollcolumn2d: "charts",
                scrollcolumn3d: "charts",
                scrollline2d: "charts",
                scrollarea2d: "charts",
                scrollstackedcolumn2d: "charts",
                scrollstackedbar2d: "charts",
                scrollcombi2d: "charts",
                scrollmsstackedcolumn2d: "charts",
                scrollmsstackedcolumn2dlinedy: "charts",
                scrollcombidy2d: "charts",
                spline: "charts",
                splinearea: "charts",
                msspline: "charts",
                mssplinearea: "charts",
                mssplinedy: "charts",
                multiaxisline: "powercharts",
                multilevelpie: "powercharts",
                sunburst: "powercharts",
                waterfall2d: "powercharts",
                msstepline: "powercharts",
                inversemsline: "powercharts",
                inversemscolumn2d: "powercharts",
                inversemsarea: "powercharts",
                errorbar2d: "powercharts",
                errorscatter: "powercharts",
                errorline: "powercharts",
                logmsline: "powercharts",
                logmscolumn2d: "powercharts",
                logstackedcolumn2d: "powercharts",
                radar: "powercharts",
                chord: "powercharts",
                dragnode: "powercharts",
                candlestick: "powercharts",
                selectscatter: "powercharts",
                dragcolumn2d: "powercharts",
                dragline: "powercharts",
                dragarea: "powercharts",
                boxandwhisker2d: "powercharts",
                kagi: "powercharts",
                heatmap: "powercharts",
                sankey: "powercharts",
                angulargauge: "widgets",
                bulb: "widgets",
                cylinder: "widgets",
                drawingpad: "widgets",
                funnel: "widgets",
                hbullet: "widgets",
                hled: "widgets",
                hlineargauge: "widgets",
                vlineargauge: "widgets",
                pyramid: "widgets",
                realtimearea: "widgets",
                realtimecolumn: "widgets",
                realtimeline: "widgets",
                realtimelinedy: "widgets",
                realtimestackedarea: "widgets",
                realtimestackedcolumn: "widgets",
                sparkcolumn: "widgets",
                sparkline: "widgets",
                sparkwinloss: "widgets",
                thermometer: "widgets",
                vbullet: "widgets",
                vled: "widgets",
                zoomline: "zoomline",
                zoomlinedy: "zoomline",
                gantt: "gantt",
                treemap: "treemap",
                zoomscatter: "zoomscatter",
                overlappedbar2d: "overlappedbar2d",
                overlappedcolumn2d: "overlappedcolumn2d",
                msstackedcolumn2dsplinedy: "msstackedcolumn2dsplinedy",
                timeseries: "timeseries"
            }
        }, function(e, t, r) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var n = r(193),
                a = {};
            var i = function(e) {
                var t = e;
                if (!a[t]) {
                    var r = document.getElementsByTagName("head")[0],
                        i = document.createElement("script"),
                        o = setTimeout((function() {
                            i.onerror({
                                type: "timeout",
                                target: i
                            })
                        }), 12e4);
                    i.charset = "utf-8", i.timeout = 12e4, a[t] = new Promise((function(e, t) {
                        i.onreadystatechange = function() {
                            "loaded" === i.readyState && i.onload({})
                        }, i.onload = function(t) {
                            i.onerror = i.onload = null, clearTimeout(o), e(t)
                        }, i.onerror = function(e) {
                            i.onerror = i.onload = null, clearTimeout(o), t(e)
                        }
                    })), (0, n.isXSSSafe)(t, !1) || (t = "function" == typeof window.encodeURIComponent ? window.encodeURIComponent(t) : window.escape(t)), i.src = t, r.appendChild(i)
                }
                return a[t]
            };
            t["default"] = i
        }, function(e, t) {
            (function(t) {
                e.exports = t
            }).call(this, {})
        }])["default"]
    }));
//# sourceMappingURL=http://localhost:3052/3.15.1-sr.1/map/eval/fusioncharts.js.map
(window.webpackJsonpFusionCharts = window.webpackJsonpFusionCharts || []).push([
    [2], {
        1006: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                ! function(e) {
                    var t = e.getChildren("colorManager");
                    if (!e.getFromEnv("dataSource").colorrange) return t && (t[0].config.legendItemIds = []), void e.deleteFromEnv("colorManager");
                    if (t) return e.addToEnv("colorManager", t[0]), void t[0].configure();
                    t = new n["default"], e.attachChild(t, "colorManager"), e.addToEnv("colorManager", t), t.configure()
                }(e)
            };
            var n = i(a(1007))
        },
        1007: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(208),
                r = i(a(1008)),
                l = i(a(1009)),
                s = a(193);

            function c(e) {
                var t = e || g;
                return (0, s.getValidColor)(t) || g
            }
            var h, u, d = "rgba(192,192,192," + (s.isIE ? .002 : 1e-6) + ")",
                g = "#000000",
                p = ((u = {}).legendCarpetConf = {
                    spreadFactor: .85,
                    allowDrag: !1,
                    captionAlignment: "center",
                    padding: {
                        v: 3,
                        h: 3
                    },
                    style: {
                        fill: "#e4d9c1",
                        stroke: "#c4b89d"
                    }
                }, u.legendCaptionConf = {
                    spreadFactor: .2,
                    padding: {
                        v: 2,
                        h: 2
                    },
                    style: {
                        fill: "#786B50",
                        fontFamily: "sans-serif",
                        fontSize: "12px",
                        fontWeight: "bold",
                        fontStyle: "normal"
                    },
                    bound: {
                        style: {
                            stroke: "none"
                        }
                    }
                }, u.legendBodyConf = {
                    spreadFactor: .8,
                    padding: {
                        v: 2,
                        h: 2
                    },
                    bound: {
                        style: {
                            stroke: "none"
                        }
                    }
                }, u.legendAxisConf = {
                    legendAxisHeight: 11,
                    spreadFactor: .4,
                    padding: {
                        v: 1,
                        h: 1
                    },
                    style: {
                        stroke: "none",
                        "stroke-opacity": 0,
                        "stroke-width": 1
                    },
                    line: {
                        grooveLength: 3,
                        offset: 8,
                        style: {
                            stroke: "rgba(255, 255, 255, 0.65)",
                            "stroke-width": 1.5
                        }
                    },
                    shadow: {
                        style: {
                            stroke: "none",
                            fill: (0, s.toRaphaelColor)({
                                FCcolor: {
                                    alpha: "25,0,0",
                                    angle: 360,
                                    color: "000000,FFFFFF,FFFFFF",
                                    ratio: "0,30,40"
                                }
                            })
                        }
                    },
                    bound: {
                        style: {
                            stroke: "none"
                        }
                    }
                }, u.sliderGroupConf = {
                    showTooltip: 1,
                    outerCircle: {
                        rFactor: 1.4,
                        style: {
                            fill: d,
                            stroke: "#757575",
                            "stroke-width": 3
                        }
                    },
                    innerCircle: {
                        rFactor: .65,
                        style: {
                            fill: d,
                            stroke: "#FFFFFF"
                        }
                    }
                }, u.axisTextItemConf = {
                    spreadFactor: .3,
                    padding: {
                        v: 1,
                        h: 1
                    },
                    style: {
                        fill: "#786B50",
                        fontFamily: "sans-serif",
                        fontSize: "12px",
                        fontWeight: "normal",
                        fontStyle: "normal"
                    }
                }, {
                    init: function(e) {
                        h = e.chart
                    },
                    legacyDataParser: function(e, t) {
                        var a, i, n, o, r, l, u, d, g, p, f, m, v, b = {},
                            x = h.getFromEnv("number-formatter"),
                            y = h.getFromEnv("dataSource"),
                            C = y.data,
                            k = t || {};
                        if (!e) return !1;
                        for ("maps" !== h.defaultDatasetType || void 0 !== k.min && void 0 !== k.max ? "HeatMap" !== h.getName() || void 0 !== k.min && void 0 !== k.max || (k = {
                                min: Infinity,
                                max: -Infinity
                            }, y.dataset.forEach((function(e) {
                                e.data && e.data.forEach((function(e) {
                                    k.min = Math.min(k.min, (0, s.pluckNumber)(e.value, k.min)), k.max = Math.max(k.max, (0, s.pluckNumber)(e.value, k.max))
                                }))
                            }))) : (k = {
                                min: Infinity,
                                max: -Infinity
                            }, C && C.forEach((function(e) {
                                k.min = Math.min(k.min, (0, s.pluckNumber)(e.value, k.min)), k.max = Math.max(k.max, (0, s.pluckNumber)(e.value, k.min))
                            }))), b.mapByPercent = f = !!(0, s.pluckNumber)(e.mapbypercent, 0), a = e.color || [], void 0 === e.minvalue && (e.minvalue = void 0 !== k.min ? f ? 0 : k.min : 0), void 0 === e.maxvalue && (e.maxvalue = void 0 !== k.max ? f ? 100 : k.max : 100), e.maxvalue !== e.minvalue && k.min !== Infinity && k.max !== -Infinity || (e.minvalue = 0, e.maxvalue = 100), m = !1, r = 0, u = a.length; r < u; r++)
                            if (a[r].maxvalue) {
                                m = !0;
                                break
                            }
                        for (m || (a = []), n = e.code, d = b.colorRange = [], b.gradient = !!(0, s.pluckNumber)(e.gradient, 1), a.length ? n = c(n) : (n ? (o = c(n), n = c()) : (n = c(), v = n, o = (0, s.getLightColor)(v, 1)), a.push({
                                code: o,
                                maxvalue: e.maxvalue,
                                label: void 0
                            })), function(e) {
                                var t, a, i, n = h.getFromEnv("number-formatter");
                                for (t = 0, a = e.length; t < a; t++)(i = e[t].maxvalue) && (e[t].maxvalue = n.getCleanValue(i))
                            }(a), a = a.sort((function(e, t) {
                                return e.maxvalue - t.maxvalue
                            })), g = p = e.minvalue && x.getCleanValue(e.minvalue), p = (void 0 !== g || null !== g) && (f ? g + "%" : x.legendValue(g)), d.push({
                                code: (0, s.dehashify)(n),
                                value: g,
                                displayValue: p,
                                label: e.startlabel
                            }), r = 0, u = a.length; r < u; r++) l = c((i = a[r]).code || i.color), g = p = i.maxvalue, isNaN(parseInt(g, 10)) || (p = (void 0 !== g || null !== g) && (f ? g + "%" : x.legendValue(g)), d.push({
                            code: (0, s.dehashify)(l),
                            value: g,
                            displayValue: p,
                            label: i.label || i.displayvalue
                        }));
                        return d[d.length - 1].label = e.endlabel || i.label, b
                    },
                    getDefaultConf: function(e) {
                        return u[e]
                    }
                }),
                f = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).datasource = {}, t.config.legendItemIds = [], t
                    }(0, n["default"])(t, e);
                    var a = t.prototype;
                    return a.configure = function() {
                        var e, t, a = this.getFromEnv("chart"),
                            i = this.getFromEnv("dataSource").chart.mapbycategory,
                            n = a.config.showLegend,
                            o = a.getChildren("colorRange") && a.getChildren("colorRange")[0];
                        switch (a.addToEnv("colorManager", this), this.datasource = a.getFromEnv("dataSource"), e = this.datasource.colorrange, o && o.remove({
                            instant: !0
                        }), n || (this.config.legendItemIds = []), "maps" === a.defaultDatasetType ? e.gradient && Number(e.gradient) ? "gradient" : e.color ? "icon" : "none" : "TreeMap" === a.getName() ? "gradient" : e.gradient && "0" !== e.gradient && !Number(i) ? "gradient" : "icon") {
                            case "gradient":
                                p.init({
                                    chart: a
                                }), t = p.legacyDataParser(e), (0, s.componentFactory)(a, l["default"], "colorRange", 1, [t]), o = a.getChildren("colorRange")[0], a.addToEnv("colorRange", o), t || (o._dontPlot = !0), this.config.legendItemIds = [], this._configureGradientLegend(o);
                                break;
                            case "icon":
                                (0, s.componentFactory)(a, r["default"], "colorRange", 1, [{
                                    colorRange: e,
                                    sortLegend: 0,
                                    mapByCategory: (0, s.pluckNumber)(i, 0),
                                    defaultColor: "cccccc",
                                    numberFormatter: a.getFromEnv("number-formatter")
                                }]), a.addToEnv("colorRange", a.getChildren("colorRange")[0]), n && this._addLegendItems();
                                break;
                            case "none":
                                a.deleteFromEnv("colorManager"), this.config.legendItemIds = []
                        }
                    }, a._configureGradientLegend = function(e) {
                        var t = this,
                            a = t.getFromEnv("chart").getFromEnv("gLegend");
                        a && (a.setColorRange(e), t.addExtEventListener("rangeUpdated", (function(e, a) {
                            t.fireEvent("legendUpdate", {
                                "original-event": e,
                                maxMinArray: a,
                                component: "gradientlegend"
                            })
                        }), a))
                    }, a._addLegendItems = function() {
                        var e, t, a, i, n, o = this.config,
                            r = this.getFromEnv("chart"),
                            l = r.getChildren("legend")[0],
                            c = r.getFromEnv("colorRange").colorArr,
                            h = c.length;
                        for (i = 0; i < h; i++) n = {
                            label: (0, s.pluck)(c[i].label, c[i].displayvalue),
                            datasetObj: c[i],
                            index: i
                        }, t = (0, s.getLightColor)(c[i].code, 40), e = {
                            FCcolor: {
                                color: c[i].code + "," + c[i].code + "," + t,
                                ratio: "0,70,30",
                                angle: 270,
                                alpha: "100,100,100"
                            }
                        }, (a = l.getItem(o.legendItemIds[i])) || (o.legendItemIds.push(l.createItem(this)), (a = l.getItem(o.legendItemIds[i])).addEventListener("fc-click", a.itemClickFn)), a.removeLegendState("hidden"), c[i].legendItemId = a && a.getId(), a.configure(n), a.setStateCosmetics("default", {
                            symbol: {
                                fill: (0, s.toRaphaelColor)(e),
                                rawFillColor: c[i].code
                            }
                        });
                        for (i = h; i < o.legendItemIds.length; i++) l.disposeItem(o.legendItemIds[i]);
                        o.legendItemIds.splice(h)
                    }, a.legendInteractivity = function(e) {
                        var t = this.getFromEnv("colorRange").colorArr[e.config.index];
                        this.fireEvent("legendUpdate", {
                            legendItem: e,
                            colorObj: t,
                            component: "legend"
                        })
                    }, a.getColor = function(e) {
                        return !Number(this.datasource.chart.mapbycategory) && Number(this.datasource.colorrange.gradient) ? {
                            code: this.getColorByValue(e),
                            label: this.getLabelByValue(e)
                        } : this.getColorObj(e)
                    }, a.getValueRatio = function() {
                        return this.getFromEnv("colorRange").getValueRatio()
                    }, a.getCumulativeValueRatio = function() {
                        return this.getFromEnv("colorRange").getCumulativeValueRatio()
                    }, a.getBoxFill = function(e) {
                        return this.getFromEnv("colorRange").getBoxFill(e)
                    }, a.getColorByValue = function(e) {
                        return this.getFromEnv("colorRange").getColorByValue(e)
                    }, a.getColorObj = function(e) {
                        return this.getFromEnv("colorRange").getColorObj(e)
                    }, a.getLabelByValue = function(e) {
                        return this.getFromEnv("colorRange").getLabelByValue(e)
                    }, t
                }(o.ComponentInterface);
            t["default"] = f
        },
        1008: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(210)),
                o = i(a(207)),
                r = a(193),
                l = a(208),
                s = function(e, t) {
                    return +e.minvalue == +t.minvalue ? e.maxvalue - t.maxvalue : e.minvalue - t.minvalue
                },
                c = function(e, t, a) {
                    var i = e[0],
                        n = e[1],
                        o = e[2],
                        l = i + (t[0] - i) * a,
                        s = n + (t[1] - n) * a,
                        c = o + (t[2] - o) * a;
                    return {
                        hex: (r.COLOR_BLACK + (l << 16 | s << 8 | c).toString(16)).slice(-6),
                        rgb: [l, s, c]
                    }
                },
                h = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var a = (0, n["default"])(t);
                        return a.mapByCategory = !1, a.colorArr = [], a.noValidRange = !0, a.sortLegend = !1, t
                    }(0, o["default"])(t, e);
                    var a = t.prototype;
                    return a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this), this.config.defaultObj = {
                            code: "CCCCCC",
                            alpha: "100"
                        }
                    }, a.getType = function() {
                        return "colorComponent"
                    }, a.getName = function() {
                        return "colorBucket"
                    }, a.configure = function(e) {
                        if (e) {
                            var t, a, i, n, o, l, c, h, u, d, g, p = this.mapByCategory,
                                f = e.numberFormatter,
                                m = e.colorRange || {},
                                v = (0, r.extend2)([], m.color),
                                b = this.getLinkedParent(),
                                x = Math.min(Math.max((0, r.pluckNumber)(this.getFromEnv("dataSource").chart.palette, 0) - 1, 0), 4),
                                y = b.defaultPaletteOptions && b.defaultPaletteOptions.paletteColors[x],
                                C = (0, r.pluckNumber)(f.getCleanValue(m.maxvalue), Infinity),
                                k = (0, r.pluckNumber)(f.getCleanValue(m.minvalue), -Infinity),
                                S = this.colorArr;
                            if (void 0 !== e.mapByCategory && (p = this.mapByCategory = !!Number(e.mapByCategory)), (v = p ? v.filter((function(e) {
                                    return e.code || e.color
                                })) : v.filter((function(e) {
                                    return e.minvalue || e.maxvalue
                                }))).forEach((function(e) {
                                    e.minvalue && e.maxvalue && +e.maxvalue < +e.minvalue && (h = e.maxvalue, e.maxvalue = e.minvalue, e.minvalue = h), e.minvalue ? e.maxvalue ? (d = f.getCleanValue(e.minvalue), u = f.getCleanValue(e.maxvalue), e.rangeLabel = f.dataLabels(d) + "-" + f.dataLabels(u)) : (d = f.getCleanValue(e.minvalue), e.maxvalue = u = C, e.rangeLabel = u === Infinity ? ">" + f.dataLabels(d) : f.dataLabels(d) + "-" + f.dataLabels(u)) : (e.minvalue = d = k, u = f.getCleanValue(e.maxvalue), e.rangeLabel = d === -Infinity ? "<" + f.dataLabels(u) : f.dataLabels(d) + "-" + f.dataLabels(u))
                                })), v.sort(s), v && (t = v.length)) {
                                for (S.length = 0, a = 0; a < t; a += 1) c = v[a], i = (0, r.pluck)(c.color, c.code, y && y[a]), n = (0, r.pluck)(c.alpha), l = (0, r.pluck)(c.bordercolor), o = (0, r.pluck)(c.borderalpha, 100), u = (0, r.pluckNumber)(c.maxvalue), d = (0, r.pluckNumber)(c.minvalue), g = (0, r.pluck)(c.label, c.displayvalue, c.rangeLabel), (i && u >= d || p && g) && S.push({
                                    code: i,
                                    alpha: n || "100",
                                    oriAlpha: n,
                                    maxvalue: u,
                                    minvalue: d,
                                    label: (0, r.parseUnsafeString)(g),
                                    labelId: g.toLowerCase(),
                                    bordercolor: l,
                                    borderAlpha: o,
                                    name: c.name
                                });
                                this.sortedColorArr = this.colorArr.slice(0)
                            } else this.noValidRange = !0, this.colorArr = [], this.sortedColorArr = []
                        }
                    }, a.getColorObj = function(e) {
                        if (void 0 === e) return {
                            outOfRange: !0
                        };
                        var t, a, i = this.sortedColorArr,
                            n = this.gradient ? 1 : 0,
                            o = i[n],
                            l = e;
                        if (this.mapByCategory) {
                            for (l = (0, r.parseUnsafeString)(l).toLowerCase() || l.toString().toLowerCase(); o;) {
                                if (o.labelId === l || o.maxvalue >= l && o.minvalue <= l) return {
                                    code: o.code,
                                    alpha: o.alpha || "100",
                                    oriAlpha: o.oriAlpha,
                                    seriesIndex: n,
                                    legendItemId: o.legendItemId
                                };
                                o = i[n += 1]
                            }
                            return {
                                outOfRange: !0
                            }
                        }
                        if (this.gradient) {
                            if (this.scaleMin <= l && this.scaleMax >= l) {
                                for (; o && o.maxvalue < l;) o = i[n += 1];
                                return a = (l - o.minvalue) / o.range, {
                                    code: c(i[n - 1].codeRGB, o.codeRGB, a).hex
                                }
                            }
                            return {
                                outOfRange: !0
                            }
                        }
                        for (; o;) {
                            if (l < o.minvalue && !t) return 0 === n ? {
                                code: o.code,
                                alpha: o.alpha || "100",
                                oriAlpha: o.oriAlpha,
                                seriesIndex: n,
                                name: o.name,
                                label: o.label,
                                outOfRange: !0,
                                bordercolor: o.bordercolor,
                                borderalpha: o.borderAlpha
                            } : {
                                code: i[n - 1].code,
                                alpha: i[n - 1].alpha || "100",
                                oriAlpha: i[n - 1].oriAlpha,
                                seriesIndex: n,
                                name: i[n - 1].name,
                                label: i[n - 1].label,
                                outOfRange: !0,
                                bordercolor: i[n - 1].bordercolor,
                                borderalpha: i[n - 1].borderAlpha
                            };
                            if (l > o.maxvalue && n === i.length - 1) return {
                                code: o.code,
                                alpha: o.alpha || "100",
                                oriAlpha: o.oriAlpha,
                                seriesIndex: n,
                                name: o.name,
                                label: o.label,
                                outOfRange: !0,
                                bordercolor: o.bordercolor,
                                borderalpha: o.borderAlpha
                            };
                            if (o.maxvalue > l && o.minvalue <= l) return {
                                code: o.code,
                                alpha: o.alpha || "100",
                                oriAlpha: o.oriAlpha,
                                seriesIndex: n,
                                name: o.name,
                                label: o.label,
                                bordercolor: o.bordercolor,
                                borderalpha: o.borderAlpha
                            };
                            if (l === o.maxvalue && (t = {
                                    code: o.code,
                                    alpha: o.alpha || "100",
                                    oriAlpha: o.oriAlpha,
                                    seriesIndex: n,
                                    name: o.name,
                                    label: o.label,
                                    bordercolor: o.bordercolor,
                                    borderalpha: o.borderAlpha
                                }), n === i.length - 1 && t) return t;
                            o = i[n += 1]
                        }
                        return i.length ? void 0 : {
                            outOfRange: !0
                        }
                    }, a.getColorRangeArr = function(e, t) {
                        var a, i, n, o, l, s, c, h, u = [],
                            d = e,
                            g = t;
                        if (!this.defaultAsigned && (d > g && (a = d, d = g, g = a), d < g && (o = this.getColorObj(d), s = this.getColorObj(g), o && s))) {
                            for (l = d, i = o.seriesIndex, n = s.seriesIndex; i <= n; i += 1)(c = (0, r.extend2)({}, this.colorArr[i])).minvalue !== l && (c.minvalue = l), u.push(c), h = c, l = c.maxvalue;
                            h && (h.maxvalue = g)
                        }
                        return u
                    }, t
                }(l.ComponentInterface);
            t["default"] = h
        },
        1009: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(208),
                r = a(193),
                l = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).colorRange = {}, t.valueRatio = {}, t.data = {}, t.mapByPercent = r.UNDEF, t
                    }(0, n["default"])(t, e);
                    var a = t.prototype;
                    return a.getType = function() {
                        return "colorComponent"
                    }, a.getName = function() {
                        return "gradientColorRange"
                    }, a.configure = function(e) {
                        if (e) {
                            var t, a, i;
                            for (this.data = e, this.appender = r.BLANKSTRING, i = this.colorRange = e.colorRange.sort((function(e, t) {
                                    return e.value - t.value
                                })), this.valueRatio = r.UNDEF, this.values = [], t = 0, a = i.length; t < a; t++) this.values.push(i[t].value)
                        }
                    }, a.getValueRatio = function() {
                        var e, t, a = this.colorRange,
                            i = a.length,
                            n = this.valueRatio,
                            o = a[i - 1].value,
                            r = a[0].value,
                            l = o - r,
                            s = 0;
                        if (n) return n;
                        for (n = this.valueRatio = [], e = 0; e < i; e++) t = (a[e].value - r) / l, n.push(100 * (t - s)), s = t;
                        return n
                    }, a.getCumulativeValueRatio = function() {
                        var e, t, a = this.colorRange,
                            i = a.length,
                            n = a[0].value,
                            o = a[i - 1].value,
                            r = [];
                        for (t = 0; t < i; t++) e = a[t], r.push((e.value - n) / (o - n) * 100);
                        return r
                    }, a.getBoxFill = function(e) {
                        var t, a, i, n = this.colorRange,
                            o = n.length,
                            l = [];
                        for (i = e ? 90 : 0, a = 0; a < o; a++) t = n[a], l.push(t.code);
                        return (0, r.toRaphaelColor)({
                            FCcolor: {
                                alpha: "100,100,100",
                                angle: i,
                                color: l.join(","),
                                ratio: this.getValueRatio().join(",")
                            }
                        })
                    }, a.getColorByValue = function(e) {
                        var t, a, i, n, o = this.values,
                            l = this.colorRange;
                        if (e !== r.UNDEF && null !== e) {
                            for (a = 0, t = o.length; a < t; a++) {
                                if (e === o[a]) {
                                    n = l[a].code;
                                    break
                                }
                                if (!a && e < o[a]) {
                                    i = !0;
                                    break
                                }
                                if (a === t - 1 && e > o[a]) {
                                    i = !0;
                                    break
                                }
                                if (e > o[a] && e < o[a + 1]) {
                                    s = l[a], c = l[a + 1], h = e, u = void 0, d = void 0, g = void 0, p = void 0, d = s.value, g = (0, r.HEXtoRGB)(s.code), p = (0, r.HEXtoRGB)(c.code), u = c.value - d, n = (0, r.RGBtoHex)([Math.round(g[0] + (p[0] - g[0]) / u * (h - d)), Math.round(g[1] + (p[1] - g[1]) / u * (h - d)), Math.round(g[2] + (p[2] - g[2]) / u * (h - d))]);
                                    break
                                }
                            }
                            var s, c, h, u, d, g, p;
                            if (!i) return n
                        }
                    }, a.getLabelByValue = function(e) {
                        var t, a, i, n, o = this.values,
                            l = this.colorRange;
                        if (e !== r.UNDEF && null !== e) {
                            for (a = 0, t = o.length; a < t; a++) {
                                if (e === o[a]) {
                                    n = l[a].label;
                                    break
                                }
                                if (!a && e < o[a]) {
                                    i = !0;
                                    break
                                }
                                if (a === t - 1 && e > o[a]) {
                                    i = !0;
                                    break
                                }
                                if (e > o[a] && e < o[a + 1]) {
                                    n = l[a].label;
                                    break
                                }
                            }
                            if (!i) return n
                        }
                    }, t
                }(o.ComponentInterface);
            t["default"] = l
        },
        1010: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                ! function(e) {
                    var t, a = e.getFromEnv("dataSource").colorrange,
                        i = e.getFromEnv("dataSource").chart.mapbycategory,
                        l = "maps" === e.defaultDatasetType,
                        s = "TreeMap" === e.getName(),
                        c = e.getFromEnv("legend"),
                        h = e.getFromEnv("gLegend");
                    t = a && e.config.showLegend ? l ? a.gradient && Number(a.gradient) ? "gradient" : a.color ? "icon" : "none" : s ? a.gradient && "0" !== a.gradient ? "gradient" : "none" : a.gradient && "0" !== a.gradient && !Number(i) ? "gradient" : "icon" : "none";
                    switch (t) {
                        case "gradient":
                            e.deleteFromEnv("legend"), c && c.remove(), (0, n.componentFactory)(e, o["default"], "gLegend", 1), (h = e.getChildren("gLegend")[0]).configure(), e.addToEnv("gLegend", h);
                            break;
                        case "icon":
                            e.deleteFromEnv("gLegend"), h && h.remove(), (0, n.componentFactory)(e, r["default"], "legend", 1, {
                                showLegend: !0
                            }), (c = e.getChildren("legend")[0]).configure(), e.addToEnv("legend", c);
                            break;
                        case "none":
                            e.deleteFromEnv("gLegend"), e.deleteFromEnv("legend"), h && h.remove(), c && c.remove()
                    }
                }(e)
            };
            var n = a(193),
                o = i(a(1011)),
                r = i(a(523))
        },
        1011: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n, o, r, l, s, c = i(a(210)),
                h = i(a(207)),
                u = a(193),
                d = a(208),
                g = {},
                p = "rgba(192,192,192," + (u.isIE ? .002 : 1e-6) + ")",
                f = {}.hasOwnProperty,
                m = "M",
                v = "L";

            function b(e, t) {
                return function a(e, t) {
                    var i, o;
                    for (o in e) f.call(e, o) && (i = e[o], t[o] === n ? t[o] = i : "object" == typeof i && null !== i && a(i, t[o]))
                }(e, t), t
            }

            function x(e) {
                var t = e || "#000000";
                return (0, u.getValidColor)(t) || "#000000"
            }

            function y(e) {
                var t, a = e.fontSize + "";
                return a ? (t = a.replace(/(\d+)(px)*/, "$1px"), e.fontSize = t, e) : e
            }

            function C(e) {
                return !(e !== n && null != e && !isNaN(e))
            }
            g.CAPTION = "CAPTION", g.LEGEND_BODY = "LEGEND_BODY", g.AXIS_LABEL = "LEGEND_LABEL", g.LEGEND_AXIS = "LEGEND_AXIS", g.RANGE = "RANGE", g.AXIS_VALUE = "AXIS_VALUE", (s = {}).legendCarpetConf = {
                spreadFactor: .85,
                allowDrag: !1,
                captionAlignment: "center",
                padding: {
                    v: 3,
                    h: 3
                },
                style: {
                    fill: "#e4d9c1",
                    stroke: "#c4b89d"
                }
            }, s.legendCaptionConf = {
                spreadFactor: .2,
                padding: {
                    v: 2,
                    h: 2
                },
                style: {
                    fill: "#786B50",
                    fontFamily: "sans-serif",
                    fontSize: "12px",
                    fontWeight: "bold",
                    fontStyle: "normal"
                },
                bound: {
                    style: {
                        stroke: "none"
                    }
                }
            }, s.legendBodyConf = {
                spreadFactor: .8,
                padding: {
                    v: 2,
                    h: 2
                },
                bound: {
                    style: {
                        stroke: "none"
                    }
                }
            }, s.legendAxisConf = {
                legendAxisHeight: 11,
                spreadFactor: .4,
                padding: {
                    v: 1,
                    h: 1
                },
                style: {
                    stroke: "none",
                    "stroke-opacity": 0,
                    "stroke-width": 1
                },
                line: {
                    grooveLength: 3,
                    offset: 8,
                    style: {
                        stroke: "rgba(255, 255, 255, 0.65)",
                        "stroke-width": 1.5
                    }
                },
                shadow: {
                    style: {
                        stroke: "none",
                        fill: (0, u.toRaphaelColor)({
                            FCcolor: {
                                alpha: "25,0,0",
                                angle: 360,
                                color: "000000,FFFFFF,FFFFFF",
                                ratio: "0,30,40"
                            }
                        })
                    }
                },
                bound: {
                    style: {
                        stroke: "none"
                    }
                }
            }, s.sliderGroupConf = {
                showTooltip: 1,
                outerCircle: {
                    rFactor: 1.4,
                    style: {
                        fill: p,
                        stroke: "#757575",
                        "stroke-width": 3
                    }
                },
                innerCircle: {
                    rFactor: .65,
                    style: {
                        fill: p,
                        stroke: "#FFFFFF"
                    }
                }
            }, s.axisTextItemConf = {
                spreadFactor: .3,
                padding: {
                    v: 1,
                    h: 1
                },
                style: {
                    fill: "#786B50",
                    fontFamily: "sans-serif",
                    fontSize: "12px",
                    fontWeight: "normal",
                    fontStyle: "normal"
                }
            }, o = {
                init: function(e) {
                    l = e.chart
                },
                legacyDataParser: function(e, t) {
                    var a, i, o, r, s, c, h, d, g, p, f, m, v, b = {},
                        y = l.getFromEnv("number-formatter");
                    if (!e) return !1;
                    for (b.mapByPercent = f = !!(0, u.pluckNumber)(e.mapbypercent, 0), a = e.color || [], e.minvalue === n && (e.minvalue = t.min !== n ? f ? 0 : t.min : 0), e.maxvalue === n && (e.maxvalue = t.max !== n ? f ? 100 : t.max : 100), m = !1, s = 0, h = a.length; s < h; s++)
                        if (a[s].maxvalue) {
                            m = !0;
                            break
                        }
                    for (m || (a = []), o = e.code, d = b.colorRange = [], b.gradient = !!(0, u.pluckNumber)(e.gradient, 1), a.length ? o = x(o) : (o ? (r = x(o), o = x()) : (o = x(), v = o, r = (0, u.getLightColor)(v, 1)), a.push({
                            code: r,
                            maxvalue: e.maxvalue,
                            label: n
                        })), function(e) {
                            var t, a, i, n = l.getFromEnv("number-formatter");
                            for (t = 0, a = e.length; t < a; t++)(i = e[t].maxvalue) && (e[t].maxvalue = n.getCleanValue(i))
                        }(a), a = a.sort((function(e, t) {
                            return e.maxvalue - t.maxvalue
                        })), g = p = e.minvalue && y.getCleanValue(e.minvalue), p = (g !== n || null !== g) && (f ? g + "%" : y.legendValue(g)), d.push({
                            code: (0, u.dehashify)(o),
                            value: g,
                            displayValue: p,
                            label: e.startlabel
                        }), s = 0, h = a.length; s < h; s++) c = x((i = a[s]).code || i.color), g = p = i.maxvalue, isNaN(parseInt(g, 10)) || (p = (g !== n || null !== g) && (f ? g + "%" : y.legendValue(g)), d.push({
                        code: (0, u.dehashify)(c),
                        value: g,
                        displayValue: p,
                        label: (0, u.parseUnsafeString)(i.label || i.displayvalue)
                    }));
                    return d[d.length - 1].label = (0, u.parseUnsafeString)(e.endlabel || i.label), b
                },
                getDefaultConf: function(e) {
                    return s[e]
                }
            };
            var k = function(e) {
                    (0, h["default"])(a, e);
                    var t = a.prototype;

                    function a() {
                        var t;
                        return t = e.call(this) || this, r = (0, c["default"])(t), t.enabled = !1, t.drawOptions = {}, t.components = {}, t
                    }
                    return t.getType = function() {
                        return "gradientLegend"
                    }, t.getName = function() {
                        return "gLegend"
                    }, t.setColorRange = function(e) {
                        var t = this.drawOptions.colorRange = e;
                        t && t._preparationGoneWrong && (this._dontPlot = !0)
                    }, t.configureAttributes = function() {
                        var e, t, a, i, r, l, s, c, h, d, g = this.getFromEnv("chart"),
                            p = this.getFromEnv("dataSource").chart,
                            f = this.conf = {},
                            m = p.outcnvbasefont,
                            v = p.outcnvbasefontsize,
                            b = p.outcnvbasefontcolor,
                            x = g.config.dataLabelStyle;
                        o.init({
                            chart: g
                        }), this.data = this.getFromEnv("dataSource").colorrange, this._dontPlot || (this.drawOptions = {
                            smartLabel: this.getFromEnv("smartLabel"),
                            gLegend: this
                        }, this._dontPlot = !1, this._recalculateLogicalSpace = !0, f.caption = (0, u.parseUnsafeString)((0, u.pluck)(p.legendcaption)), f.legendPosition = (0, u.pluck)(p.legendposition, "bottom").toLowerCase(), f.legendXPosition = (0, u.pluckNumber)(p.legendxposition, 0), f.legendYPosition = (0, u.pluckNumber)(p.legendyposition, 0), f.legendMaxHeight = (0, u.pluckNumber)(p.legendmaxheight, 0), f.legendMaxWidth = (0, u.pluckNumber)(p.legendmaxwidth, 0), f.legendVertical = "string" == typeof p.legendorientation && "vertical" === p.legendorientation.toLowerCase(), f.showLegend = (0, u.pluckNumber)(p.showlegend, 1), f.interactiveLegend = (0, u.pluckNumber)(p.interactivelegend, 1), f.showLegendLabels = (0, u.pluckNumber)(p.showlegendlabels, 1), e = p.legenditemfontcolor || b, t = p.legenditemfont || m, a = p.legenditemfontsize || v, i = (0, u.pluckNumber)(p.legenditemfontbold, 0), r = p.legendcaptionfontcolor || b, l = p.legendcaptionfont || m, s = p.legendcaptionfontsize || v, c = (0, u.pluckNumber)(p.legendcaptionfontbold, 1), d = (h = p.legendaxisbordercolor ? (0, u.hashify)((0, u.dehashify)(p.legendaxisbordercolor)) : n) ? (0, u.pluckNumber)(p.legendaxisborderalpha, 100) / 100 : n, f.axisTextItemConf = {
                            style: {
                                fill: e ? (0, u.convertColor)((0, u.pluck)(e)) : x.color,
                                fontFamily: t ? (0, u.pluck)(t) : x.fontFamily,
                                fontSize: a ? (0, u.pluckNumber)(a) : x.fontSize.match(/\d+/)[0],
                                fontWeight: i ? "bold" : x.fontWeight
                            }
                        }, f.legendCaptionConf = {
                            style: {
                                fill: r ? (0, u.convertColor)((0, u.pluck)(r)) : x.color,
                                fontFamily: l ? (0, u.pluck)(l) : x.fontFamily,
                                fontSize: s ? (0, u.pluckNumber)(s) : x.fontSize.match(/\d+/)[0],
                                fontWeight: c ? "bold" : x.fontWeight,
                                fontStyle: "normal"
                            }
                        }, f.legendAxisConf = {
                            legendAxisHeight: 11,
                            style: {
                                stroke: h,
                                "stroke-opacity": d
                            },
                            line: {
                                style: {
                                    stroke: (0, u.convertColor)((0, u.pluck)(p.legendscalelinecolor, "FFF8E9"), (0, u.pluckNumber)(p.legendscalelinealpha, 100)),
                                    "stroke-width": (0, u.pluckNumber)(p.legendscalelinethickness)
                                }
                            }
                        }, f.sliderGroupConf = {
                            showTooltip: (0, u.pluckNumber)(p.showtooltip, 1),
                            outerCircle: {
                                rFactor: (0, u.pluckNumber)(p.sliderdiameterfactor),
                                style: {
                                    stroke: (0, u.convertColor)((0, u.pluck)(p.legendpointerbordercolor, "757575"), (0, u.pluckNumber)(p.legendpointerborderalpha, 100))
                                }
                            },
                            innerCircle: {
                                rFactor: (0, u.pluckNumber)(p.sliderholediameterfactor),
                                style: {
                                    stroke: (0, u.convertColor)((0, u.pluck)(p.legendpointercolor, "FFFFFF"), (0, u.pluckNumber)(p.legendpointeralpha, 100))
                                }
                            }
                        }, f.legendCarpetConf = {
                            spreadFactor: (0, u.pluckNumber)(p.legendspreadfactor),
                            allowDrag: !!(0, u.pluckNumber)(p.legendallowdrag, 0),
                            captionAlignment: (0, u.pluck)(p.legendcaptionalignment, "center"),
                            style: {
                                fill: (0, u.convertColor)((0, u.pluck)(p.legendbgcolor, "e4d9c1"), (0, u.pluckNumber)(p.legendbgalpha, 100)),
                                stroke: (0, u.convertColor)((0, u.pluck)(p.legendbordercolor, "c4b89d"), (0, u.pluckNumber)(p.legendborderalpha, 100)),
                                "stroke-width": (0, u.pluckNumber)(p.legendborderthickness, 1)
                            }
                        })
                    }, t.postConfigureInit = function() {
                        var e, t, a, i, n, r, l, s, c, h, u, d = this.conf,
                            p = d.legendPosition ? d.legendPosition.split("-") : [];
                        this.elem = {}, d.interactiveLegend ? (i = b(o.getDefaultConf("sliderGroupConf"), d.sliderGroupConf), this.sGroup ? ((a = this.elem.sGroup = this.sGroup).configure(i), this.elem.sGroup.gLegend = this) : (this.sGroup = this.elem.sGroup = a = new F(i), a.configure(i), this.elem.sGroup.gLegend = this)) : (this.sGroup && this.sGroup.dispose(), this.sGroup && delete this.sGroup), (i = b(o.getDefaultConf("legendCarpetConf"), d.legendCarpetConf)).legendPosition = "absolute" === p[0] && !d.legendVertical || "top" === p[0] || "bottom" === p[0] ? "bottom" : "right", u = o.getDefaultConf("legendBodyConf"), "absolute" === p[0] && !d.legendVertical || "top" === p[0] || "bottom" === p[0] ? (this.drawOptions.refSideKey = "canvasWidth", this.drawOptions.refOffsetKey = "canvasLeft", n = b(o.getDefaultConf("axisTextItemConf"), d.axisTextItemConf), u.legendPosition = "bottom", (h = b(o.getDefaultConf("legendAxisConf"), d.legendAxisConf)).legendPosition = "bottom", n.legendPosition = "bottom") : (this.drawOptions.refSideKey = "canvasHeight", this.drawOptions.refOffsetKey = "canvasTop", n = b(o.getDefaultConf("axisTextItemConf"), d.axisTextItemConf), u.legendPosition = "right", (h = b(o.getDefaultConf("legendAxisConf"), d.legendAxisConf)).legendPosition = "right", n.legendPosition = "right"), Object.keys(this.components).length || (this.components.LegendCarpet = new w, this.components.LegendBody = new A, this.components.LegendAxis = new T, this.components.LegendValues = new _, d.showLegendLabels && (this.components.LegendLabels = new N)), t = this.components.LegendAxis, s = this.components.LegendValues, e = this.components.LegendCarpet, r = this.components.LegendBody, d.showLegendLabels && (l = this.components.LegendLabels), this.components.LegendCarpet.configure(i), this.components.LegendValues.configure(n), this.components.LegendAxis.configure(h), this.components.LegendBody.configure(this.drawOptions.colorRange, u, n), d.showLegendLabels && l.configure(n), d.caption ? (c = b(o.getDefaultConf("legendCaptionConf"), d.legendCaptionConf), this.componentCaption && Object.keys(this.componentCaption).length ? this.componentCaption.configure(d.caption, c) : (this.componentCaption = new L).configure(d.caption, c), e.addCompositions(this.componentCaption, g.CAPTION)) : (e.removeCompositions(g.CAPTION), this.componentCaption && this.componentCaption.dispose(), delete this.componentCaption), a && t.addCompositions(a, g.RANGE), l && r.addCompositions(l, g.AXIS_LABEL), r.addCompositions(t, g.LEGEND_AXIS), r.addCompositions(s, g.AXIS_VALUE), e.addCompositions(r, g.LEGEND_BODY), this.elem.gl = new S(e)
                    }, t.getValueRange = function() {
                        var e, t, a = this.elem && this.elem.sGroup,
                            i = a.sliders,
                            n = a.extremes;
                        return e = i["false"].currPos, t = n[1] - n[0] + i["true"].currPos, [{
                            min: a.getValueFormPixel(e),
                            max: a.getValueFormPixel(t)
                        }]
                    }, t._dispose = function() {
                        this.elem && this.elem.gl && this.elem.gl.dispose(), this.elem = {}, e.prototype._dispose.call(this)
                    }, t.getCalculatedLogicalSpace = function() {
                        return this._logicalArea
                    }, t.setCalculatedLogicalSpace = function(e) {
                        this._logicalArea = e
                    }, t.getLogicalSpace = function(e) {
                        var t, a, i, n, o, r = this.conf,
                            l = {
                                height: 0,
                                width: 0
                            },
                            s = this.drawOptions,
                            c = this.getFromEnv("chartConfig"),
                            h = "absolute" === r.legendPosition.split("-")[0];
                        return this._recalculateLogicalSpace ? this._dontPlot ? l : (this._recalculateLogicalSpace = !1, this.postConfigureInit(), r.showLegend ? (a = s.refSideKey, i = s.refOffsetKey, this.drawOptions.refSide = c[a], this.drawOptions.refOffset = c[i], this.drawOptions.maxOtherSide = e || this.drawOptions.maxOtherSide, this.elem.gl && (t = this.elem.gl.getLogicalSpace(this.drawOptions, !0), this.elem.gl && this.setCalculatedLogicalSpace(t)), this.getCalculatedLogicalSpace()) : l) : (a = s.refSideKey, i = s.refOffsetKey, this.drawOptions.refSide = c[a], h ? (n = r.legendMaxHeight <= 0 ? .8 * c.height : r.legendMaxHeight <= c.height ? r.legendMaxHeight : c.height, o = r.legendMaxWidth <= 0 ? .8 * c.width : r.legendMaxWidth <= c.width ? r.legendMaxWidth : c.width, r.legendVertical ? (this.drawOptions.refSide = n, this.drawOptions.maxOtherSide = o) : (this.drawOptions.refSide = o, this.drawOptions.maxOtherSide = n)) : (this.drawOptions.refOffset = c[i], this.drawOptions.maxOtherSide = e || this.drawOptions.maxOtherSide), t = this.elem.gl.getLogicalSpace(this.drawOptions, !0), this.setCalculatedLogicalSpace(t), this.getCalculatedLogicalSpace() || l)
                    }, t.resetLegend = function() {
                        var e;
                        (e = this.elem && this.elem.sGroup) && e.reset()
                    }, t._calculateTopPosition = function(e) {
                        var t = this.getFromEnv("chart"),
                            a = t.config,
                            i = e,
                            n = t.getChildren("caption") && t.getChildren("caption")[0],
                            o = t.getChildren("subCaption") && t.getChildren("subCaption")[0],
                            r = t.getChildren("chartMenuBar") && t.getChildren("chartMenuBar")[0],
                            l = a.oriTopSpace;
                        return !a.toolbarY && r && r.props && r.props.height && (l > r.props.height + r.props.y || (i = r.props.y + r.props.height)), n && n.config && n.config.text && n.config.text !== u.BLANKSTRING && n.config.height && 1 === n.config.isOnTop && (i = n.config.height + n.config.y + n.config.captionPadding), o && o.config && o.config.height && 1 === o.config.isOnTop && (i = o.config.y + o.config.height + (n && n.config && n.config.captionPadding || 0)), i > e ? i : e
                    }, t.allocatePosition = function() {
                        var e, t, a, i, n, o, r, l, s = this.getFromEnv("chart"),
                            c = s.config,
                            h = this.conf || {},
                            u = h.legendPosition.split("-"),
                            d = c.canvasLeft,
                            g = c.canvasTop,
                            p = c.canvasWidth,
                            f = c.canvasHeight,
                            m = c.marginTop,
                            v = c.marginBottom,
                            b = c.marginRight,
                            x = c.marginLeft;
                        s.config.gLegendEnabled && (e = this.getCalculatedLogicalSpace(), a = h.width = e.width, i = h.height = e.height, "absolute" === u[0] ? (r = c.width - a, l = c.height - i, n = h.legendXPosition < 0 ? 0 : h.legendXPosition > r ? r : h.legendXPosition, o = h.legendYPosition < 0 ? 0 : h.legendYPosition > l ? l : h.legendYPosition) : "top" === u[0] || "bottom" === u[0] ? (t = p - a, n = "left" === u[1] ? d : "right" === u[1] ? d + (t > 0 ? t : 0) : d + (t < 0 ? 0 : t / 2), o = "top" === u[0] ? this._calculateTopPosition(m) : c.height - e.height - v - (c.actionBarHeight || 0)) : (t = f - i, o = "top" === u[1] ? g : "bottom" === u[1] ? g + t : g + (t < 0 ? 0 : t / 2), n = "left" === u[0] ? x : c.width - e.width - b), h.xPos = n, h.yPos = o)
                    }, t.draw = function() {
                        var e = this.getFromEnv("chart"),
                            t = e.getFromEnv("dataSource").colorrange,
                            a = this.conf || {},
                            i = e.hasGradientLegend;
                        e.config.gLegendEnabled && t && i && this.drawLegendComponent(a.xPos, a.yPos, {
                            parentGroup: e.getContainer("parentgroup"),
                            animationManager: e.getFromEnv("animationManager")
                        })
                    }, t.drawLegendComponent = function(e, t, a) {
                        var i, n = this.conf;
                        this._dontPlot || (n.showLegend ? (this.drawOptions.animationManager = a.animationManager, this.drawOptions.parentGroup = a.parentGroup, this.drawOptions.x = e, this.drawOptions.y = t, this.drawOptions.maxOtherSide = this.drawOptions.maxOtherSide || a.maxOtherSide, i = this.elem.gl.draw(this.drawOptions).getBBox(), n.xPos = i.x, n.yPos = i.y, n.height = i.height, n.width = i.width, this.enabled = !0) : this.enabled = !1)
                    }, a
                }(d.ComponentInterface),
                S = function() {
                    function e(e) {
                        this.carpet = e
                    }
                    var t = e.prototype;
                    return t.draw = function(e) {
                        return this.carpet.draw(e)
                    }, t.getLogicalSpace = function(e, t) {
                        return this.carpet.getLogicalSpace(e, t)
                    }, t.dispose = function() {
                        this.carpet && this.carpet.group && this.carpet.group.remove()
                    }, e
                }(),
                w = function() {
                    function e(e) {
                        this.conf = e, this._id = "GL_CARPET", this.compositionsByCategory = {}, this.node = n, this.group = n, this._lSpace = n, this.autoRecalculate = !1, this.groupName = "fc-gradient-legend", this.moveInstructions = {}
                    }
                    var t = e.prototype;
                    return t.configure = function(e) {
                        this.conf = e
                    }, t.getName = function() {
                        return "LegendCarpet"
                    }, t.getType = function() {
                        return "legend"
                    }, t.addCompositions = function(e, t) {
                        this.compositionsByCategory[t] = e
                    }, t.removeCompositions = function(e) {
                        delete this.compositionsByCategory[e]
                    }, t.getBoundingBox = function(e) {
                        var t, a, i = this.conf,
                            o = i.spreadFactor,
                            r = e.refSide,
                            l = e.alignment,
                            s = e.refOffset,
                            c = e.x,
                            h = e.y;
                        return "bottom" === this.conf.legendPosition ? (t = i.width = r * o, a = e.maxOtherSide, !l || c !== n && null !== c || (c = (s + r) / 2 - t / 2)) : (a = i.height = r * o, t = e.maxOtherSide, !l || h !== n && null !== h || (h = (s + r) / 2 - a / 2)), {
                            width: t,
                            height: a,
                            x: c,
                            y: h
                        }
                    }, t.getPostCalcDecisionsH = function(e, t) {
                        var a, i = this.conf.padding,
                            n = 0;
                        for (a in this.moveInstructions = {}, t) n += t[a].height || 0;
                        e.height = n + 2 * i.v
                    }, t.getLogicalSpace = function(e, t) {
                        var a, i, n, o, r, l = this._lSpace,
                            s = ["CAPTION", "LEGEND_BODY"],
                            c = this.conf.padding,
                            h = this.compositionsByCategory,
                            u = 0,
                            d = {},
                            g = 0;
                        if (l && !t) return l.isImpure = !0, l;
                        (C((l = this._lSpace = i = this.getBoundingBox(e)).x) || C(l.y) || C(l.height) || C(l.width)) && (this.autoRecalculate = !0), (n = b(i, {})).height -= 2 * c.v, n.width -= 2 * c.h, n.x += c.h, n.y += c.v;
                        for (var p = 0; p < s.length; p++)(a = h[s[p]]) && ((r = b(n, {})).y += u, u = n.height * a.conf.spreadFactor, r.height = u + g, o = a.getLogicalSpace(b(r, {}), e, t), g = r.height - o.height, d[s[p]] = o, u = o.height);
                        return this.getPostCalcDecisions(i, d), this._lSpace = i, i
                    }, t.setupDragging = function() {
                        var e = this.group,
                            t = 0,
                            a = 0,
                            i = 0,
                            n = 0;
                        e.css({
                            cursor: "move"
                        }), e.drag((function(o, r) {
                            t = o, a = r, e.attr({
                                transform: "t" + (i + t) + "," + (n + a)
                            })
                        }), (function() {
                            i += t, n += a
                        }), u.stubFN)
                    }, t.draw = function(e) {
                        var t, a, i, n = this.conf,
                            o = ["CAPTION", "LEGEND_BODY"],
                            l = this.compositionsByCategory,
                            s = e.animationManager,
                            c = e.parentGroup;
                        this.getLogicalSpace(e, this.autoRecalculate), i = this._lSpace, this.group = t = s.setAnimation({
                            el: this.group || "group",
                            attr: {
                                name: this.groupName
                            },
                            component: r,
                            container: c,
                            label: "carpetGroup"
                        }), this.node = s.setAnimation({
                            el: this.node || "rect",
                            attr: i,
                            css: n.style,
                            component: r,
                            container: t,
                            label: "rect"
                        });
                        for (var h = 0; h < o.length; h++)(a = l[o[h]]) && a.draw(n.captionAlignment, i, {
                            animationManager: s,
                            colorRange: e.colorRange,
                            numberFormatter: e.numberFormatter,
                            parentLayer: t,
                            smartLabel: e.smartLabel,
                            moveInstructions: this.moveInstructions[void 0],
                            gLegend: e.gLegend
                        });
                        return n.allowDrag && this.setupDragging(), this.node
                    }, t.getPostCalcDecisions = function(e, t) {
                        return "bottom" === this.conf.legendPosition ? this.getPostCalcDecisionsH(e, t) : this.getPostCalcDecisionsV(e, t)
                    }, t.getPostCalcDecisionsV = function(e, t) {
                        var a, i, n, o = this.conf.padding,
                            r = Number.NEGATIVE_INFINITY,
                            l = this.moveInstructions;
                        for (i in this.getPostCalcDecisionsH(e, t), t) r = r < (a = t[i].width) ? a : r;
                        for (i in e.width = r + 2 * o.h, t)(n = r - (a = t[i].width)) && (l[i] = "t" + n / 2 + ",0")
                    }, e
                }(),
                L = function() {
                    function e(e, t) {
                        this.rawText = e, this.conf = t, this._id = "GL_CAPTION", this.node = n, this.bound = n, this._lSpace = n, this.LegendCaption = {}, this.LegendCaption.LEFT = {
                            x: function(e, t) {
                                return t.x + e.width / 2 + 2
                            }
                        }, this.LegendCaption.RIGHT = {
                            x: function(e, t) {
                                return t.x + t.width - e.width / 2 - 2
                            }
                        }, this.LegendCaption.CENTER = {
                            x: function() {
                                var e = arguments[1];
                                return e.x + e.width / 2
                            }
                        }
                    }
                    var t = e.prototype;
                    return t.configure = function(e, t) {
                        this.rawText = e, this.conf = t
                    }, t.getName = function() {
                        return "LegendCaption"
                    }, t.getType = function() {
                        return "caption"
                    }, t.getLogicalSpace = function(e, t, a) {
                        var i, o, r, l, s = this.conf.padding,
                            c = this._lSpace,
                            h = this.rawText,
                            u = t.gLegend.getFromEnv("chartConfig");
                        return c && !a ? (c.isImpure = !0, c) : (c = this._lSpace = {
                            bound: {
                                height: 0,
                                width: 0
                            },
                            node: {
                                logicArea: n,
                                smartText: n
                            }
                        }, i = t.smartLabel, h ? ((o = b(e, {})).height -= 2 * s.v, o.width -= 2 * s.h, o.x += s.h, o.y += s.v, i.useEllipsesOnOverflow(u.useEllipsesWhenOverflow), y(l = b(this.conf.style, {})), i.setStyle(this._metaStyle = l), r = i.getSmartText(h, o.width, o.height), o.height = r.height, o.width = r.width, e.height = r.height + 2 * s.v, e.width = r.width + 2 * s.h, c.node.smartText = r, c.node.logicArea = o, c.bound = e, e) : c.bound)
                    }, t.draw = function() {
                        var e, t, a, i, n, o, l, s, c, h, u, d = this.conf,
                            g = d.bound || {};
                        return arguments.length >= 3 ? (l = arguments[0], s = arguments[1], c = arguments[2]) : arguments.length >= 2 && (l = arguments[0], c = arguments[1]), e = c.parentLayer, u = c.animationManager, this.group = t = u.setAnimation({
                            el: this.group || "group",
                            attr: {
                                name: "legend-caption"
                            },
                            css: d.style,
                            component: r,
                            container: e
                        }), this.getLogicalSpace(s, c), h = (n = this._lSpace).node, i = n.bound, this.bound = a = u.setAnimation({
                            el: this.bound || "rect",
                            attr: i,
                            css: g.style,
                            container: t,
                            component: r
                        }), o = "string" == typeof l ? this.LegendCaption[l.toUpperCase()].x(h.smartText, s || h.logicArea) : l, this.node = u.setAnimation({
                            el: this.node || "text",
                            attr: {
                                text: h.smartText.text,
                                x: o,
                                y: h.logicArea.y + h.smartText.height / 2,
                                lineHeight: this._metaStyle.lineHeight,
                                fill: d.style.fill
                            },
                            container: t,
                            component: r
                        }), {
                            group: t,
                            bound: a,
                            node: this.node
                        }
                    }, t.dispose = function() {
                        this.group.remove(), this.bound.remove(), this.node.remove()
                    }, e
                }(),
                A = function() {
                    function e(e, t, a) {
                        this.colorRange = e, this.conf = t, this.childTextConf = a, this._id = "GL_BODY", this.bound = n, this.group = n, this.compositionsByCategory = {}, this._lSpace = n, this.SC_STACK = [g.AXIS_LABEL, g.LEGEND_AXIS, g.AXIS_VALUE], this.DARW_STACK = [g.AXIS_VALUE, g.LEGEND_AXIS, g.AXIS_LABEL]
                    }
                    var t = e.prototype;
                    return t.configure = function(e, t, a) {
                        this.colorRange = e, this.conf = t, this.childTextConf = a, this.compositionsByCategory = {}
                    }, t.getName = function() {
                        return "LegendBody"
                    }, t.getType = function() {
                        return "legend"
                    }, t.addCompositions = function(e, t) {
                        this.compositionsByCategory[t] = e
                    }, t.getSpaceTaken = function(e) {
                        return "bottom" === this.conf.legendPosition ? e.height : e.width
                    }, t.getLogicalSpace = function(e, t, a) {
                        var i, o, r, l, s, c, h, u = this._lSpace,
                            d = this.conf.padding,
                            g = this.compositionsByCategory,
                            p = 0;
                        if (u && !a) return u.isImpure = !0, u;
                        for (u = this._lSpace = {
                                bound: {
                                    height: 0,
                                    width: 0
                                },
                                node: {
                                    logicArea: n
                                }
                            }, (l = b(e, {})).height -= 2 * d.v, l.width -= 2 * d.h, l.x += d.h, l.y += d.v, s = this.getCompositionPlotAreaFor(l), t.colorRange = this.colorRange, c = 0, h = this.SC_STACK.length; c < h; c++)(i = g[this.SC_STACK[c]]) && (o = s(r, i.conf.spreadFactor), r = i.getLogicalSpace(b(o, {}), t, a), p += this.getSpaceTaken(r));
                        return this.updateEffectivePlotArea(e, l, p), u.node.logicArea = l, u.bound = e, e
                    }, t.draw = function() {
                        var e, t, a, i, n, o, l, s, c, h, u = this.childTextConf,
                            d = this.conf,
                            g = d.bound.style || {},
                            p = this.compositionsByCategory;
                        for (arguments.length >= 3 ? (o = arguments[1], s = arguments[2]) : arguments.length >= 2 && (s = arguments[1]), t = s.parentLayer, e = s.animationManager, this.getLogicalSpace(o, s), l = this._lSpace, this.group = n = e.setAnimation({
                                el: this.group || "group",
                                attr: {
                                    name: "legend-body",
                                    transform: "t0,0"
                                },
                                css: u.style,
                                container: t,
                                component: r
                            }), this.bound = a = e.setAnimation({
                                el: this.bound || "rect",
                                attr: l.bound,
                                css: g,
                                container: n,
                                component: r
                            }), s.colorRange = this.colorRange, s.parentLayer = n, c = 0, h = this.DARW_STACK.length; c < h; c++)(i = p[this.DARW_STACK[c]]) && i.draw(s);
                        return s.moveInstructions && n.attr({
                            transform: s.moveInstructions
                        }), {
                            bound: a,
                            group: n
                        }
                    }, t.getCompositionPlotAreaFor = function(e) {
                        var t, a = "bottom" === this.conf.legendPosition;
                        return t = b(e, {}),
                            function(i, n) {
                                var o = i;
                                return o = o || {}, a ? (t.y += o.height || 0, t.height = e.height * n) : (t.x += o.width || 0, t.width = e.width * n), t
                            }
                    }, t.updateEffectivePlotArea = function(e, t, a) {
                        var i = this.conf.padding;
                        "bottom" === this.conf.legendPosition ? (t.height = a, e.height = a + 2 * i.v) : (t.width = a, e.width = a + 2 * i.h)
                    }, e
                }(),
                N = function() {
                    function e(e) {
                        this.conf = e, this.node = [], this._id = "GL_LABELS"
                    }
                    var t = e.prototype;
                    return t.configure = function(e) {
                        this.conf = e
                    }, t.getType = function() {
                        return "label"
                    }, t.getName = function() {
                        return "LegendLabel"
                    }, t.getEffectivePlotArea = function(e) {
                        var t = this.conf.padding;
                        return e.height -= 2 * t.v, e.width -= 2 * t.h, e.x += t.h, e.y += t.v, e
                    }, t.getLogicalSpace = function(e, t, a) {
                        var i, o, r, l, s, c, h, d, g, p, f, m, v, x, C, k, S, w, L, A, N, T, E, F = "bottom" === this.conf.legendPosition,
                            _ = this._lSpace,
                            P = this.conf,
                            D = P.padding,
                            I = [],
                            M = t.gLegend.getFromEnv("chartConfig"),
                            O = [];
                        if (_ && !a) return _.isImpure = !0, _;
                        for (i = t.colorRange, o = t.smartLabel, p = i.getCumulativeValueRatio(), r = i.colorRange, v = (_ = this._lSpace = {
                                bound: {
                                    height: 0,
                                    width: 0
                                },
                                node: {
                                    logicArea: n,
                                    smartTexts: []
                                }
                            }).node.smartTexts, d = b(e, {}), C = this.getEffectivePlotArea(d), E = F ? C.width : C.height, o.useEllipsesOnOverflow(M.useEllipsesWhenOverflow), T = b(P.style, {}), y(this._metaStyle = T), o.setStyle(T), k = o.getSmartText("W"), l = 0, s = r.length; l < s; l++)(g = (0, u.parseUnsafeString)(r[l].label)) ? O.push({
                            oriIndex: l,
                            label: g
                        }) : v[l] = n;
                        if (0 === (s = O.length)) return {
                            height: 0,
                            width: 0
                        };
                        for (m = f = s > 1 ? (p[O[s - 1].oriIndex] - p[O[0].oriIndex]) / 2 * E / 100 : Math.max(p[O[0].oriIndex], 100 - p[O[0].oriIndex]) / 2 * E / 100, F ? ((A = o.getSmartText(O[0].label, m, C.height)).x = p[O[0].oriIndex] * C.width / 100, c = A.x + A.width) : ((A = o.getSmartText(O[0].label, m, C.width)).y = p[O[0].oriIndex] * C.height / 100, c = A.y + A.width), I.push(A.height), v[O[0].oriIndex] = A, F ? ((A = o.getSmartText(O[s - 1].label, m, C.height)).x = p[O[s - 1].oriIndex] * C.width / 100, h = A.x - A.width) : ((A = o.getSmartText(O[s - 1].label, m, C.width)).y = p[O[s - 1].oriIndex] * C.height / 100, h = A.y - A.width), I.push(A.height), v[O[s - 1].oriIndex] = A, L = c, l = 1; l < s - 1; l++) g = O[l].label, N = O[l].oriIndex, A = n, S = l + 1 === s - 1 ? h : p[O[l + 1].oriIndex] * E / 100, w = p[O[l].oriIndex] * E / 100, (f = Math.min(w - L, S - w)) > 2 * k.width && (F ? (A = o.getSmartText(g, f, C.height)).x = p[N] * C.width / 100 : (A = o.getSmartText(g, f, C.width)).y = p[N] * C.height / 100, L = f, I.push(A.height)), v[O[l].oriIndex] = A;
                        return x = Math.max.apply(Math, I), F ? (C.height = x, e.height = x + 2 * D.v) : (C.width = x, e.width = x + 2 * D.v), _.node.logicArea = C, _.bound = e, e
                    }, t.draw = function() {
                        var e, t, a, i, n, o, l, s, c, h, u, d, g = "bottom" === this.conf.legendPosition,
                            p = this.conf,
                            f = p.bound && p.bound.style || {
                                stroke: "none"
                            },
                            m = {};
                        arguments.length >= 2 && arguments[1] ? (i = arguments[0], l = arguments[1]) : arguments.length >= 1 && (l = arguments[0]), d = l.animationManager, e = l.parentLayer, this.getLogicalSpace(i, l), c = (o = this._lSpace).node.logicArea, h = o.node.smartTexts, this.group = a = d.setAnimation({
                            el: this.group || "group",
                            attr: {
                                name: "legend-labels"
                            },
                            container: e,
                            component: r
                        }), this.bound = t = d.setAnimation({
                            el: this.bound || "rect",
                            attr: o.bound,
                            css: f,
                            container: a,
                            component: r
                        });
                        for (var v = 0; v < this.node.length; v++) this.node[v].remove();
                        for (this.node = [], s = 0, u = h.length; s < u; s++)(n = h[s]) && (g ? (m.y = c.y + n.height / 2, m.x = s === u - 1 ? c.x + n.x - n.width / 2 : s ? c.x + n.x : c.x + n.x + n.width / 2) : (m.x = c.x + n.height / 2, m.y = s === u - 1 ? c.y + n.y - n.width / 2 : s ? c.y + n.y : c.y + n.y + n.width / 2), this.node.push(d.setAnimation({
                            el: "text",
                            attr: {
                                text: n.text,
                                x: m.x,
                                y: m.y,
                                lineHeight: this._metaStyle.lineHeight,
                                fill: p.style.fill,
                                transform: g ? "R0" : "R270," + m.x + "," + m.y
                            },
                            container: a,
                            component: r
                        })));
                        return {
                            group: a,
                            bound: t,
                            node: this.node
                        }
                    }, e
                }(),
                T = function() {
                    function e(e) {
                        this.conf = e, this._id = "FL_AXIS", this.node = n, this.group = n, this.shadow = n, this.markerLine = n, this.compositionsByCategory = {}
                    }
                    var t = e.prototype;
                    return t.configure = function(e) {
                        this.conf = e
                    }, t.getName = function() {
                        return "LegendAxis"
                    }, t.getType = function() {
                        return "axis"
                    }, t.addCompositions = function(e, t) {
                        this.compositionsByCategory[t] = e
                    }, t.getLogicalSpace = function() {
                        var e, t, a, i, o, r, l = "bottom" === this.conf.legendPosition,
                            s = arguments[0],
                            c = arguments[2],
                            h = this._lSpace,
                            u = this.conf,
                            d = u.padding,
                            p = u.legendAxisHeight,
                            f = this.compositionsByCategory,
                            m = 0;
                        return h && !c ? (h.isImpure = !0, h) : (h = this._lSpace = {
                            bound: {
                                height: 0,
                                width: 0
                            },
                            node: {
                                logicArea: n
                            }
                        }, (o = b(s, {})).height -= 2 * d.v, o.width -= 2 * d.h, o.x += d.h, o.y += d.v, e = p / 2 + u.line.offset, t = p / 2, (i = f[g.RANGE]) && (r = i.sliders["false"].conf.outerCircle.rFactor * p, t += m = Math.max(r / 2 - p / 2, 0)), l ? (o.y += m, o.height = a = t + e + m, s.height = a + 2 * d.v) : (o.x += m, o.width = a = t + e + m, s.width = a + 2 * d.v), h.node.logicArea = o, h.bound = s, s)
                    }, t.getDrawableAxisArea = function(e) {
                        var t = this.conf,
                            a = "bottom" === this.conf.legendPosition;
                        return {
                            x: e.x,
                            y: e.y,
                            width: a ? e.width : t.legendAxisHeight,
                            height: a ? t.legendAxisHeight : e.height,
                            r: t.legendAxisHeight / 2
                        }
                    }, t.preDrawingRangeParamV = function(e) {
                        return {
                            x: e.x + e.width / 2,
                            calculationBase: e.width,
                            rangeStart: e.y,
                            rangeEnd: e.y + e.height,
                            prop: "x"
                        }
                    }, t.preDrawingRangeParamH = function(e) {
                        return {
                            y: e.y + e.height / 2,
                            calculationBase: e.height,
                            rangeStart: e.x,
                            rangeEnd: e.x + e.width,
                            prop: "y"
                        }
                    }, t.preDrawingRangeParam = function(e) {
                        return "bottom" === this.conf.legendPosition ? this.preDrawingRangeParamH(e) : this.preDrawingRangeParamV(e)
                    }, t.getScaleMarkerPathStrH = function(e, t) {
                        var a, i, n, o, r, l = b(e, {}),
                            s = this.conf.line,
                            c = u.BLANKSTRING,
                            h = u.BLANKSTRING;
                        for (l.x += l.r, l.width -= 2 * l.r, r = l.y + l.height, a = 0, i = t.length; a < i; a++) n = t[a], o = l.x + n * l.width / 100, c += m + o + "," + (r - s.grooveLength) + v + o + "," + (r + s.offset);
                        return c + (h += m + l.x + "," + (r + s.offset) + v + (l.x + l.width) + "," + (r + s.offset))
                    }, t.getColorGradientH = function(e) {
                        return {
                            axis: e.getBoxFill(),
                            shadow: (0, u.toRaphaelColor)({
                                FCcolor: {
                                    alpha: "25,0,0",
                                    angle: 90,
                                    color: "000000,FFFFFF,FFFFFF",
                                    ratio: "0,30,40"
                                }
                            })
                        }
                    }, t.draw = function() {
                        var e, t, a, i, n, o, l, s, c, h, u, d, p, f, m = this.conf,
                            v = m.bound || {},
                            b = m.line,
                            x = v.style || {},
                            y = this.compositionsByCategory;
                        for (a in arguments.length >= 2 ? (t = arguments[0], d = arguments[1]) : arguments.length >= 1 && (d = arguments[0]), p = d.animationManager, e = d.parentLayer, n = (i = d.colorRange).getCumulativeValueRatio(), this.getLogicalSpace(t, d), u = this._lSpace, this.group = l = p.setAnimation({
                                el: this.group || "group",
                                attr: {
                                    name: "legend-axis"
                                },
                                container: e,
                                component: r
                            }), this.bound = p.setAnimation({
                                el: this.bound || "rect",
                                attr: u.bound,
                                css: x,
                                component: r,
                                container: l
                            }), h = this.getDrawableAxisArea(u.node.logicArea), c = this.getColorGradient(i), m.style.fill = c.axis, m.shadow.style.fill = c.shadow, this.node = p.setAnimation({
                                el: this.node || "rect",
                                attr: h,
                                css: m.style,
                                container: l,
                                component: r
                            }), this.shadow = p.setAnimation({
                                el: this.shadow || "rect",
                                attr: h,
                                css: m.shadow.style,
                                container: l,
                                component: r
                            }), f = this.getScaleMarkerPathStr(h, n), this.path = p.setAnimation({
                                el: this.path || "path",
                                attr: {
                                    path: f
                                },
                                css: b.style,
                                container: l,
                                component: r
                            }), y) switch (o = y[a], a) {
                            case g.RANGE:
                                d[(s = this.preDrawingRangeParam(h)).prop] = s[s.prop], d.key = s.prop, d.rCalcBase = s.calculationBase, d.parentLayer = l, o.draw(s.rangeStart, s.rangeEnd, d)
                        }
                    }, t.getScaleMarkerPathStr = function(e, t) {
                        return "bottom" === this.conf.legendPosition ? this.getScaleMarkerPathStrH(e, t) : this.getScaleMarkerPathStrV(e, t)
                    }, t.getColorGradient = function(e) {
                        return "bottom" === this.conf.legendPosition ? this.getColorGradientH(e) : this.getColorGradientV(e)
                    }, t.getScaleMarkerPathStrV = function(e, t) {
                        var a, i, n, o, r, l = b(e, {}),
                            s = this.conf.line,
                            c = u.BLANKSTRING,
                            h = u.BLANKSTRING;
                        for (l.y += l.r, l.height -= 2 * l.r, o = l.x + l.width, a = 0, n = t.length; a < n; a++) i = t[a], r = l.y + i * l.height / 100, c += m + (o - s.grooveLength) + "," + r + v + (o + s.offset) + "," + r;
                        return c + (h += m + (o + s.offset) + "," + l.y + v + (o + s.offset) + "," + (l.y + l.height))
                    }, t.getColorGradientV = function(e) {
                        return {
                            axis: e.getBoxFill(!0),
                            shadow: (0, u.toRaphaelColor)({
                                FCcolor: {
                                    alpha: "25,0,0",
                                    angle: 360,
                                    color: "000000,FFFFFF,FFFFFF",
                                    ratio: "0,30,40"
                                }
                            })
                        }
                    }, e
                }(),
                E = function() {
                    function e(e, t, a) {
                        this.conf = t.conf, this.sliderIndex = e, this.rangeGroup = t.sliderGroup, this._id = a, this.node = n, this.tracker = n, this.currPos = 0, this.swing = []
                    }
                    var t = e.prototype;
                    return t.configure = function(e, t, a) {
                        this.conf = t.conf, this.sliderIndex = e, this.rangeGroup = t.sliderGroup, this._id = a, this.currPos = 0, this.swing = []
                    }, t.getType = function() {
                        return "slider"
                    }, t.getName = function() {
                        return "Slider"
                    }, t.updateSwingRange = function(e, t) {
                        this.swing[+e] = t
                    }, t.draw = function(e, t, a, i) {
                        var n, o, l, s, c, h, u, d = i.parentLayer,
                            g = i.animationManager,
                            f = this.conf,
                            m = f.outerCircle,
                            v = f.innerCircle,
                            b = g.getFromEnv("chart").config,
                            x = Math.ceil(m.rFactor * i.rCalcBase / 2),
                            y = Math.ceil(v.rFactor * i.rCalcBase / 2),
                            C = x - y,
                            k = i.gLegend.getFromEnv("toolTipController"),
                            S = this.sliderIndex;
                        return f.outerRadius = x, f.innerRadius = y, this._scaleVal = t, v.style["stroke-width"] = C, y += s = Math.ceil(m.style["stroke-width"] / 2), o = this.node = g.setAnimation({
                            el: this.node || "group",
                            attr: {
                                name: "fc-gl-slider",
                                cursor: "pointer",
                                transform: "t0,0"
                            },
                            container: d,
                            component: r
                        }), "x" === i.key ? (c = a, h = e, h += S ? -y : +y) : (c = e, h = a, c += S ? -y : +y), this.oCircle = g.setAnimation({
                            el: this.oCircle || "circle",
                            attr: {
                                cx: c,
                                cy: h,
                                r: x
                            },
                            css: m.style,
                            container: o,
                            component: r
                        }), this.iCircle = g.setAnimation({
                            el: this.iCircle || "circle",
                            attr: {
                                cx: c,
                                cy: h,
                                r: y
                            },
                            css: v.style,
                            container: o,
                            component: r
                        }), u = this.tracker = g.setAnimation({
                            el: this.tracker || "circle",
                            attr: {
                                cx: c,
                                cy: h,
                                r: x + 5,
                                fill: p,
                                stroke: p,
                                cursor: "pointer"
                            },
                            container: o,
                            component: r
                        }), o.attr({
                            transform: "x" === i.key ? "t0," + this.currPos : "t" + this.currPos + ",0"
                        }), n = b.showToolTip ? t : "", k.enableToolTip(u, n), this._dragAPI = l = this.getDragAPI("x" === i.key), u.undrag(), u.drag(l.dragging, l.dragStart, l.dragEnd), {
                            translateAscending: x + s
                        }
                    }, t.getDragAPI = function(e) {
                        var t, a, i, n, o = this,
                            r = o.node,
                            l = o.sliderIndex,
                            s = o.rangeGroup,
                            c = o.conf.innerRadius;
                        return {
                            dragging: function(h) {
                                var u, d, g, p, f;
                                return h.stopPropagation(), g = e ? h.data[1] : h.data[0], l ? (u = t[0] - t[1] + c, d = 0) : (u = 0, d = t[1] - t[0] - c), (f = o.currPos + g) < u ? g += u - f : f > d && (g -= f - d), r.attr({
                                    transform: e ? "t0," + (o.currPos + g) : "t" + (o.currPos + g) + ",0"
                                }), a = g, i && clearTimeout(i), i = setTimeout((function() {
                                    s.updateWhenInRest(o, o.currPos + g)
                                }), 100), p = s.updateWhenInMove(o, o.currPos + g), o.conf.showTooltip && o.tracker.data("__FC_tooltipText", p), n = !0, !0
                            },
                            dragStart: function(e) {
                                e.stopPropagation(), t = o.swing, n = !1, s.dragStarted(o)
                            },
                            dragEnd: function() {
                                var e;
                                s.dragCompleted(o, n, o.currPos + a), n && (i && clearTimeout(i), i = setTimeout((function() {
                                    s.updateWhenInRest(o, o.currPos)
                                }), 100), o.currPos += a, e = t[+l] + o.currPos, s.updateRange(o, e))
                            }
                        }
                    }, t.dispose = function() {
                        this.node.remove(), this.oCircle.remove(), this.iCircle.remove(), this.tracker.remove()
                    }, e
                }(),
                F = function() {
                    function e(e) {
                        var t = e,
                            a = {};
                        this._id = "GL_SG1", this.conf = e, a.conf = t, this.extremes = [], this.sliders = {}, this.min = n, this.max = n, a.sliderGroup = this, this.valueRange = [], this.callbacks = [], this.sliders[!1] = new E(!1, a, this._id + "_0"), this.sliders[!0] = new E(!0, a, this._id + "_1")
                    }
                    var t = e.prototype;
                    return t.configure = function(e) {
                        var t = e,
                            a = {};
                        this.min = n, this.max = n, this.conf = e, a.conf = t, a.sliderGroup = this, this.sliders[!1].configure(!1, a, this._id + "_0"), this.sliders[!0].configure(!0, a, this._id + "_1")
                    }, t.getType = function() {
                        return "slider"
                    }, t.getName = function() {
                        return "SliderGroup"
                    }, t.initRange = function(e, t) {
                        var a = e.sliderIndex;
                        this.extremes[+a] = t
                    }, t.updateRange = function(e, t) {
                        var a = e.sliderIndex;
                        this.sliders[!a].updateSwingRange(a, t)
                    }, t.reset = function() {
                        var e = {};
                        e.conf = this.conf, e.sliderGroup = this, this.min = n, this.max = n, this.sliders[!1].configure(!1, e, this._id + "_0"), this.sliders[!0].configure(!0, e, this._id + "_1"), this.draw.apply(this, this._drawParams)
                    }, t.draw = function(e, t, a) {
                        var i, n, o, r, l, s, c = this.sliders,
                            h = c[!1],
                            u = c[!0],
                            d = a.colorRange,
                            g = d.colorRange,
                            p = d.data.mapByPercent,
                            f = a.gLegend.getFromEnv("number-formatter");
                        return this._fcChart = a.gLegend.getFromEnv("chart"), this.getValueFormPixel = function(e, t, a, i) {
                            var n = (t - e) / (i - a);
                            this.getValueFormPixel = function(t) {
                                return e + n * t
                            }
                        }, this.updateWhenInMove = function(e, t) {
                            this.updateWhenInMove = function(a, i) {
                                var n, o, r = this.extremes;
                                return n = a.sliderIndex ? r[1] - r[0] + i : i, o = this.getValueFormPixel(n), o = t ? parseFloat(o).toFixed(2) + "%" : e.legendValue(o)
                            }
                        }, this._drawParams = [e, t, a], this.updateWhenInMove(f, p), o = h.conf.outerCircle, n = h.conf.innerCircle, r = Math.ceil(n.rFactor * a.rCalcBase / 2), r += Math.ceil(o.style["stroke-width"] / 2), this.extremes[0] = e + r, this.extremes[1] = t - r, l = this.extremes[1] - this.extremes[0], this.min = this.min ? this.min : g[0].value, this.max = this.max ? this.max : g[g.length - 1].value, s = g[g.length - 1].value - g[0].value, h.currPos = l * (this.min - g[0].value) / s, u.currPos = l * (this.max - g[0].value) / s - l, h.draw(e, p ? f.legendPercentValue(this.min) : f.legendValue(this.min), a[a.key], a), i = u.draw(t, p ? f.legendPercentValue(this.max) : f.legendValue(this.max), a[a.key], a), h.swing = this.extremes.slice(0), u.swing = this.extremes.slice(0), h.swing[1] += u.currPos, u.swing[0] += h.currPos, this.getValueFormPixel(g[0].value, g[g.length - 1].value, this.extremes[0], this.extremes[1]), i
                    }, t.updateWhenInRest = function(e, t) {
                        var a, i, n = this.sliders,
                            o = this.extremes,
                            r = e.sliderIndex;
                        r ? (a = n[!r].currPos, i = o[1] - o[0] + t) : (a = t, i = o[1] - o[0] + n[!r].currPos), this.min = Number(this.getValueFormPixel(a).toFixed(2)), this.max = Number(this.getValueFormPixel(i).toFixed(2)), this.gLegend.fireEvent("rangeUpdated", [{
                            min: this.min,
                            max: this.max
                        }])
                    }, t.dragStarted = function(e) {
                        var t = this.sliders,
                            a = this.extremes,
                            i = e.conf,
                            n = this._fcChart;
                        n.fireChartInstanceEvent("legendpointerdragstart", {
                            pointerIndex: +e.sliderIndex,
                            pointers: [{
                                value: this.getValueFormPixel(t["false"].currPos)
                            }, {
                                value: this.getValueFormPixel(a[1] - a[0] + t["true"].currPos)
                            }],
                            legendPointerHeight: i.outerRadius,
                            legendPointerWidth: i.innerRadius,
                            outerRadius: i.outerRadius,
                            innerRadius: i.innerRadius
                        }, [n.id])
                    }, t.dragCompleted = function(e, t, a) {
                        var i, n, o = this.sliders,
                            r = this.extremes,
                            l = e.conf,
                            s = this.getValueFormPixel(o["false"].currPos),
                            c = this.getValueFormPixel(r[1] - r[0] + o["true"].currPos),
                            h = this._fcChart;
                        e.sliderIndex ? (i = s, n = this.getValueFormPixel(r[1] - r[0] + a)) : (i = this.getValueFormPixel(a), n = c), t && h.fireChartInstanceEvent("legendrangeupdated", {
                            previousMinValue: s,
                            previousMaxValue: c,
                            minValue: i,
                            maxValue: n
                        }, [h.id]), h.fireChartInstanceEvent("legendpointerdragstop", {
                            pointerIndex: +e.sliderIndex,
                            pointers: [{
                                value: i
                            }, {
                                value: n
                            }],
                            legendPointerHeight: l.outerRadius,
                            legendPointerWidth: l.innerRadius,
                            outerRadius: l.outerRadius,
                            innerRadius: l.innerRadius
                        }, [h.id])
                    }, t.dispose = function() {
                        this.sliders[!1].dispose(), this.sliders[!0].dispose()
                    }, e
                }(),
                _ = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this, arguments[0]) || this)._id = "GL_VALUES", t.node = [], t
                    }(0, h["default"])(t, e);
                    var a = t.prototype;
                    return a.configure = function(e) {
                        this.conf = e
                    }, a.getName = function() {
                        return "LegendValues"
                    }, a.getType = function() {
                        return "legend"
                    }, a.getLogicalSpace = function(e, t, a) {
                        var i, o, r, l, s, c, h, u, d, g, p, f, m, v, x, C, k, S, w, L, A, N, T, E, F, _ = "bottom" === this.conf.legendPosition,
                            P = this._lSpace,
                            D = this.conf,
                            I = D.padding,
                            M = t.gLegend.getFromEnv("chartConfig"),
                            O = [],
                            R = [];
                        if (P && !a) return P.isImpure = !0, P;
                        for (i = t.colorRange, o = t.smartLabel, r = i.colorRange, h = i.getCumulativeValueRatio(), F = (P = this._lSpace = {
                                bound: {
                                    height: 0,
                                    width: 0
                                },
                                node: {
                                    logicArea: n,
                                    smartTexts: []
                                }
                            }).node.smartTexts, (L = b(e, {})).height -= 2 * I.v, L.width -= 2 * I.h, L.x += I.h, L.y += I.v, o.useEllipsesOnOverflow(M.useEllipsesWhenOverflow), E = b(D.style, {}), y(this._metaStyle = E), o.setStyle(E), T = o.getSmartText("W"), c = r.length, _ ? (p = u = (h[c - 1] - h[0]) / 2 * L.width / 100, N = r[0].displayValue, (l = o.getSmartText("string" != typeof N && N !== n && N.toString() || N, p, L.height)).x = h[0] * L.width / 100, f = l.x + l.width, O.push(l.height)) : (p = u = (h[c - 1] - h[0]) / 2 * L.height / 100, (l = o.getSmartText(r[0].displayValue, L.width, p)).y = h[0] * L.height / 100, x = l.y + l.width, R.push(l.width)), F[0] = l, _ ? ((l = o.getSmartText(r[c - 1].displayValue, p, L.height)).x = h[c - 1] * L.width / 100, v = l.x - l.width, O.push(l.height), m = f) : ((l = o.getSmartText(r[c - 1].displayValue, L.width, p)).y = h[c - 1] * L.height / 100, k = l.y - l.height, R.push(l.width), C = x), F[c - 1] = l, s = 1; s < c - 1; s++) l = n, A = r[s].displayValue, _ ? (d = s + 1 === c - 1 ? v : h[s + 1] * L.width / 100, g = h[s] * L.width / 100, (u = Math.min(g - m, d - g)) > 1.5 * T.width && ((l = o.getSmartText(A, 2 * u, L.height)).x = h[s] * L.width / 100, m = u, O.push(l.height))) : (d = s + 1 === c - 1 ? k : h[s + 1] * L.height / 100, g = h[s] * L.height / 100, (u = Math.min(g - C, d - g)) > 2 * T.height && ((l = o.getSmartText(A, L.width, 2 * u)).y = h[s] * L.height / 100, C = u, R.push(l.width))), F[s] = l;
                        return _ ? (S = Math.max.apply(Math, O), L.height = S, e.height = S + 2 * I.v) : (w = Math.max.apply(Math, R), L.width = w, e.width = w + 2 * I.h), P.node.logicArea = L, P.bound = e, e
                    }, a.draw = function() {
                        var e, t, a, i, n, o, l, s, c, h, u, d, g, p = this.conf,
                            f = "bottom" === p.legendPosition,
                            m = p.bound && p.bound.style || {
                                stroke: "none"
                            },
                            v = {};
                        arguments.length >= 2 && arguments[1] ? (i = arguments[0], l = arguments[1]) : arguments.length >= 1 && (l = arguments[0]), g = l.animationManager, e = l.parentLayer, s = l.colorRange.getCumulativeValueRatio(), this.getLogicalSpace(i, l), o = (n = this._lSpace).node.logicArea, u = n.node.smartTexts, this.group = a = g.setAnimation({
                            el: this.group || "group",
                            attr: {
                                name: "legend-values"
                            },
                            container: e,
                            component: r
                        }), this.bound = t = g.setAnimation({
                            el: this.bound || "rect",
                            attr: n.bound,
                            css: m,
                            container: a,
                            component: r
                        });
                        for (var b = 0; b < this.node.length; b++) this.node[b].remove();
                        for (this.node = [], c = 0, h = s.length; c < h; c++)(d = u[c]) && (f ? (v.y = o.y + d.height / 2, v.x = c === h - 1 ? o.x + d.x - d.width / 2 : c ? o.x + d.x : o.x + d.x + d.width / 2) : (v.x = o.x + d.width / 2, v.y = c === h - 1 ? o.y + d.y - d.height / 2 : c ? o.y + d.y : o.y + d.y + d.height / 2), this.node.push(g.setAnimation({
                            el: "text",
                            attr: {
                                text: d.text,
                                x: v.x,
                                y: v.y,
                                lineHeight: this._metaStyle.lineHeight,
                                fill: p.style.fill
                            },
                            container: a,
                            component: r
                        })));
                        return {
                            group: a,
                            bound: t
                        }
                    }, t
                }(N),
                P = k;
            t["default"] = P
        },
        1016: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t.getCoordinates = t.getPlotFromPixel = t.polarToCartesian = t.cartesianToPolar = t.rad2Deg = t.deg2Rad = void 0;
            var n = i(a(199)),
                o = function(e) {
                    return e * (Math.PI / 180)
                },
                r = function(e) {
                    return e * (180 / Math.PI)
                },
                l = function(e, t) {
                    var a, i;
                    return a = Math.sqrt(e * e + t * t), i = r(Math.atan(t / e)), e < 0 && t >= 0 ? i += 180 : e < 0 && t < 0 ? i += 180 : e > 0 && t < 0 && (i += 360), {
                        radius: a,
                        theta: o(i)
                    }
                },
                s = function(e, t, a) {
                    void 0 === a && (a = !0);
                    var i = t;
                    return a || (i = o(i)), {
                        x: e * Math.cos(i),
                        y: e * Math.sin(i)
                    }
                };
            t.getPlotFromPixel = function(e, t) {
                var a, i, n = e.x,
                    o = e.y,
                    s = t.getScale();
                return i = l(n, o), a = s.getDomainValue(i.theta), r(a)
            }, t.getCoordinates = function(e, t) {
                var a, i, o = t.getScale(),
                    r = e.radius,
                    l = t.config,
                    c = l.axisDimention.centerX,
                    h = l.axisDimention.centerY;
                return r = (0, n["default"])(r, l.radius, 0), a = o.getRangeValue(e.theta), (i = s(r, a)).x += c, i.y += h, i
            }, t.polarToCartesian = s, t.cartesianToPolar = l, t.rad2Deg = r, t.deg2Rad = o
        },
        1020: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = [{
                initialAttr: {
                    opacity: 0
                },
                finalAttr: {
                    opacity: 1
                },
                slot: "axis"
            }];
            t["default"] = i
        },
        1036: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(344))["default"];
            t["default"] = n
        },
        1138: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.symbolList = void 0;
            var i, n = (0, a(201).getDep)("redraphael", "plugin"),
                o = Math.cos,
                r = Math.sin,
                l = Math.PI;
            t.symbolList = i, t.symbolList = i = {
                pinModeIcon: function(e, t, a) {
                    var i = .5 * a,
                        n = e - a,
                        o = e + a,
                        r = e - i,
                        l = e + i,
                        s = e + .5,
                        c = s + 1,
                        h = s + 1.5,
                        u = t - a,
                        d = t + i,
                        g = t - i,
                        p = t + (a - i);
                    return ["M", n, u, "L", r, g, r, p, n, d, e - .5, d, e, t + a + .5, s, d, o, d, l, p, l, g, o, u, h, u, h, g, h, p, c, p, c, g, h, g, h, u, "Z"]
                },
                zoomOutIcon: function(e, t, a) {
                    var i = e - .2 * a,
                        l = t - .2 * a,
                        s = .8 * a,
                        c = n.rad(43),
                        h = n.rad(48),
                        u = i + s * o(c),
                        d = l + s * r(c),
                        g = i + s * o(h),
                        p = l + s * r(h),
                        f = a,
                        m = n.rad(45);
                    return ["M", u, d, "A", s, s, 0, 1, 0, g, p, "Z", "M", u + 1, d + 1, "L", u + f * o(m), d + f * r(m), g + f * o(m), p + f * r(m), g + 1, p + 1, "Z", "M", i - 2, l, "L", i + 2, l, "Z"]
                },
                resetIcon: function(e, t, a) {
                    var i = a,
                        n = e - i,
                        s = t,
                        c = (l / 2 + l) / 2,
                        h = e + i * o(c),
                        u = t + i * r(c),
                        d = 2 * i / 3;
                    return ["M", n, s, "A", i, i, 0, 1, 1, h, u, "L", h + d, u - 1, h + 2, u + d - .5, h, u]
                },
                zoomInIcon: function(e, t, a) {
                    var i = e - .2 * a,
                        l = t - .2 * a,
                        s = .8 * a,
                        c = n.rad(43),
                        h = n.rad(48),
                        u = i + s * o(c),
                        d = l + s * r(c),
                        g = i + s * o(h),
                        p = l + s * r(h),
                        f = a,
                        m = n.rad(45);
                    return ["M", u, d, "A", s, s, 0, 1, 0, g, p, "Z", "M", u + 1, d + 1, "L", u + f * o(m), d + f * r(m), g + f * o(m) - 1, p + f * r(m) - 1, g + 1, p + 1, "Z", "M", i - 2, l, "L", i + 2, l, "Z", "M", i, l - 2, "L", i, l + 2, "Z"]
                },
                zoomModeIcon: function(e, t, a) {
                    var i = [],
                        l = e - .2 * a,
                        s = t - .2 * a,
                        c = .8 * a,
                        h = n.rad(43),
                        u = n.rad(48),
                        d = l + c * o(h),
                        g = s + c * r(h),
                        p = l + c * o(u),
                        f = s + c * r(u),
                        m = a,
                        v = n.rad(45),
                        b = d + m * o(v),
                        x = g + m * r(v),
                        y = p + m * o(v) - 1,
                        C = f + m * r(v) - 1;
                    return i = i.concat(["M", d, g, "A", c, c, 0, 1, 0, p, f, "Z", "M", d + 1, g + 1, "L", b, x, y, C, y + 1, C - 1, y + 1.5, C + 1.5, y - 1, C + 1, y, C, p + 1, f + 1, "Z", "M", l - 2, s, "L", l + 2, s, "Z", "M", l, s - 2, "L", l, s + 2, "Z"])
                },
                panModeIcon: function(e, t, a) {
                    var i, n = a;
                    return [].concat(["M", (i = e) - (n *= 2.5) / 16, t - n / 8, "L", i + n / 16, t - n / 8, "L", i + n / 16, t - n / 3.2, "L", i + 6 * n / 32, t - 10 * n / 32, "L", i, t - n / 2, "L", i - 6 * n / 32, t - 10 * n / 32, "L", i - n / 16, t - n / 3.2, "Z", "M", i + 4 * n / 32, t - 2 * n / 32, "L", i + 10 * n / 32, t - 2 * n / 32, "L", i + 10 * n / 32, t - 6 * n / 32, "L", i + 16 * n / 32, t, "L", i + 10 * n / 32, t + 6 * n / 32, "L", i + 10 * n / 32, t + 2 * n / 32, "L", i + 4 * n / 32, t + 2 * n / 32, "Z", "M", i + 2 * n / 32, t + 5 * n / 32, "L", i + 2 * n / 32, t + 10 * n / 32, "L", i + 6 * n / 32, t + 10 * n / 32, "L", i, t + 16 * n / 32, "L", i - 6 * n / 32, t + 10 * n / 32, "L", i - 2 * n / 32, t + 10 * n / 32, "L", i - 2 * n / 32, t + 5 * n / 32, "Z", "M", i - 4 * n / 32, t - 2 * n / 32, "L", i - 10 * n / 32, t - 2 * n / 32, "L", i - 10 * n / 32, t - 6 * n / 32, "L", i - 16 * n / 32, t, "L", i - 10 * n / 32, t + 6 * n / 32, "L", i - 10 * n / 32, t + 2 * n / 32, "L", i - 4 * n / 32, t + 2 * n / 32, "Z"])
                }
            }
        },
        1179: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(582)),
                r = a(193),
                l = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, n["default"])(t, e);
                    var a = t.prototype;
                    return a.getType = function() {
                        return "group"
                    }, a.getName = function() {
                        return "columnOverlappedGroup"
                    }, a.setColumnPosition = function() {
                        var e, t = this.getFromEnv("chart-attrib"),
                            a = this.getFromEnv("xAxis"),
                            i = this.getFromEnv("chart"),
                            n = this.getFromEnv("numOfColumns"),
                            o = Math.max((0, r.pluckNumber)(t.plotspacepercent), 0),
                            l = Math.max((0, r.pluckNumber)(o, 20) % 100, 0),
                            s = l / 200,
                            c = a.getPixel(0),
                            h = a.getPixel(1),
                            u = i.isBar ? i.config.maxBarHeight : i.config.maxColWidth,
                            d = Math.abs(h - c),
                            g = !0,
                            p = 0,
                            f = 0;
                        this.addToEnv("groupMaxWidth", d), this._mapChildren((function(e) {
                            e.getState("removed") || !1 === e.getState("visible") || f++
                        })), this.addToEnv("numOfColumns", f), this.addToEnv("numColDiff", (0, r.pluckNumber)(n - f, 0)), void 0 === (e = this.getFromEnv("plotWidth")) && (e = (1 - .01 * o) * d || Math.min(d * (1 - 2 * s), u * (f || 1))), this._mapChildren((function(t) {
                            t.getState("removed") || !1 === t.getState("visible") || (t.addToEnv("plotWidth", e - e / f * p), p++)
                        })), h - NaN - (c - NaN + void 0) < 4 && (g = !1), 0 === l && (g = !0), this.addToEnv("isCrisp", g)
                    }, t
                }(o["default"]);
            t["default"] = l
        },
        1189: function(e, t, a) {
            "use strict";
            (function(e) {
                /*!
                 * The buffer module from node.js, for the browser.
                 *
                 * @author   Feross Aboukhadijeh <http://feross.org>
                 * @license  MIT
                 */
                var i = a(1190),
                    n = a(1191),
                    o = a(1192);

                function r() {
                    return s.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823
                }

                function l(e, t) {
                    if (r() < t) throw new RangeError("Invalid typed array length");
                    return s.TYPED_ARRAY_SUPPORT ? (e = new Uint8Array(t)).__proto__ = s.prototype : (null === e && (e = new s(t)), e.length = t), e
                }

                function s(e, t, a) {
                    if (!(s.TYPED_ARRAY_SUPPORT || this instanceof s)) return new s(e, t, a);
                    if ("number" == typeof e) {
                        if ("string" == typeof t) throw new Error("If encoding is specified then the first argument must be a string");
                        return u(this, e)
                    }
                    return c(this, e, t, a)
                }

                function c(e, t, a, i) {
                    if ("number" == typeof t) throw new TypeError('"value" argument must not be a number');
                    return "undefined" != typeof ArrayBuffer && t instanceof ArrayBuffer ? function(e, t, a, i) {
                        if (t.byteLength, a < 0 || t.byteLength < a) throw new RangeError("'offset' is out of bounds");
                        if (t.byteLength < a + (i || 0)) throw new RangeError("'length' is out of bounds");
                        t = a === undefined && i === undefined ? new Uint8Array(t) : i === undefined ? new Uint8Array(t, a) : new Uint8Array(t, a, i);
                        s.TYPED_ARRAY_SUPPORT ? (e = t).__proto__ = s.prototype : e = d(e, t);
                        return e
                    }(e, t, a, i) : "string" == typeof t ? function(e, t, a) {
                        "string" == typeof a && "" !== a || (a = "utf8");
                        if (!s.isEncoding(a)) throw new TypeError('"encoding" must be a valid string encoding');
                        var i = 0 | p(t, a),
                            n = (e = l(e, i)).write(t, a);
                        n !== i && (e = e.slice(0, n));
                        return e
                    }(e, t, a) : function(e, t) {
                        if (s.isBuffer(t)) {
                            var a = 0 | g(t.length);
                            return 0 === (e = l(e, a)).length ? e : (t.copy(e, 0, 0, a), e)
                        }
                        if (t) {
                            if ("undefined" != typeof ArrayBuffer && t.buffer instanceof ArrayBuffer || "length" in t) return "number" != typeof t.length || (i = t.length) != i ? l(e, 0) : d(e, t);
                            if ("Buffer" === t.type && o(t.data)) return d(e, t.data)
                        }
                        var i;
                        throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")
                    }(e, t)
                }

                function h(e) {
                    if ("number" != typeof e) throw new TypeError('"size" argument must be a number');
                    if (e < 0) throw new RangeError('"size" argument must not be negative')
                }

                function u(e, t) {
                    if (h(t), e = l(e, t < 0 ? 0 : 0 | g(t)), !s.TYPED_ARRAY_SUPPORT)
                        for (var a = 0; a < t; ++a) e[a] = 0;
                    return e
                }

                function d(e, t) {
                    var a = t.length < 0 ? 0 : 0 | g(t.length);
                    e = l(e, a);
                    for (var i = 0; i < a; i += 1) e[i] = 255 & t[i];
                    return e
                }

                function g(e) {
                    if (e >= r()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + r().toString(16) + " bytes");
                    return 0 | e
                }

                function p(e, t) {
                    if (s.isBuffer(e)) return e.length;
                    if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(e) || e instanceof ArrayBuffer)) return e.byteLength;
                    "string" != typeof e && (e = "" + e);
                    var a = e.length;
                    if (0 === a) return 0;
                    for (var i = !1;;) switch (t) {
                        case "ascii":
                        case "latin1":
                        case "binary":
                            return a;
                        case "utf8":
                        case "utf-8":
                        case undefined:
                            return G(e).length;
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return 2 * a;
                        case "hex":
                            return a >>> 1;
                        case "base64":
                            return z(e).length;
                        default:
                            if (i) return G(e).length;
                            t = ("" + t).toLowerCase(), i = !0
                    }
                }

                function f(e, t, a) {
                    var i = !1;
                    if ((t === undefined || t < 0) && (t = 0), t > this.length) return "";
                    if ((a === undefined || a > this.length) && (a = this.length), a <= 0) return "";
                    if ((a >>>= 0) <= (t >>>= 0)) return "";
                    for (e || (e = "utf8");;) switch (e) {
                        case "hex":
                            return E(this, t, a);
                        case "utf8":
                        case "utf-8":
                            return A(this, t, a);
                        case "ascii":
                            return N(this, t, a);
                        case "latin1":
                        case "binary":
                            return T(this, t, a);
                        case "base64":
                            return L(this, t, a);
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return F(this, t, a);
                        default:
                            if (i) throw new TypeError("Unknown encoding: " + e);
                            e = (e + "").toLowerCase(), i = !0
                    }
                }

                function m(e, t, a) {
                    var i = e[t];
                    e[t] = e[a], e[a] = i
                }

                function v(e, t, a, i, n) {
                    if (0 === e.length) return -1;
                    if ("string" == typeof a ? (i = a, a = 0) : a > 2147483647 ? a = 2147483647 : a < -2147483648 && (a = -2147483648), a = +a, isNaN(a) && (a = n ? 0 : e.length - 1), a < 0 && (a = e.length + a), a >= e.length) {
                        if (n) return -1;
                        a = e.length - 1
                    } else if (a < 0) {
                        if (!n) return -1;
                        a = 0
                    }
                    if ("string" == typeof t && (t = s.from(t, i)), s.isBuffer(t)) return 0 === t.length ? -1 : b(e, t, a, i, n);
                    if ("number" == typeof t) return t &= 255, s.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? n ? Uint8Array.prototype.indexOf.call(e, t, a) : Uint8Array.prototype.lastIndexOf.call(e, t, a) : b(e, [t], a, i, n);
                    throw new TypeError("val must be string, number or Buffer")
                }

                function b(e, t, a, i, n) {
                    var o, r = 1,
                        l = e.length,
                        s = t.length;
                    if (i !== undefined && ("ucs2" === (i = String(i).toLowerCase()) || "ucs-2" === i || "utf16le" === i || "utf-16le" === i)) {
                        if (e.length < 2 || t.length < 2) return -1;
                        r = 2, l /= 2, s /= 2, a /= 2
                    }

                    function c(e, t) {
                        return 1 === r ? e[t] : e.readUInt16BE(t * r)
                    }
                    if (n) {
                        var h = -1;
                        for (o = a; o < l; o++)
                            if (c(e, o) === c(t, -1 === h ? 0 : o - h)) {
                                if (-1 === h && (h = o), o - h + 1 === s) return h * r
                            } else -1 !== h && (o -= o - h), h = -1
                    } else
                        for (a + s > l && (a = l - s), o = a; o >= 0; o--) {
                            for (var u = !0, d = 0; d < s; d++)
                                if (c(e, o + d) !== c(t, d)) {
                                    u = !1;
                                    break
                                }
                            if (u) return o
                        }
                    return -1
                }

                function x(e, t, a, i) {
                    a = Number(a) || 0;
                    var n = e.length - a;
                    i ? (i = Number(i)) > n && (i = n) : i = n;
                    var o = t.length;
                    if (o % 2 != 0) throw new TypeError("Invalid hex string");
                    i > o / 2 && (i = o / 2);
                    for (var r = 0; r < i; ++r) {
                        var l = parseInt(t.substr(2 * r, 2), 16);
                        if (isNaN(l)) return r;
                        e[a + r] = l
                    }
                    return r
                }

                function y(e, t, a, i) {
                    return H(G(t, e.length - a), e, a, i)
                }

                function C(e, t, a, i) {
                    return H(function(e) {
                        for (var t = [], a = 0; a < e.length; ++a) t.push(255 & e.charCodeAt(a));
                        return t
                    }(t), e, a, i)
                }

                function k(e, t, a, i) {
                    return C(e, t, a, i)
                }

                function S(e, t, a, i) {
                    return H(z(t), e, a, i)
                }

                function w(e, t, a, i) {
                    return H(function(e, t) {
                        for (var a, i, n, o = [], r = 0; r < e.length && !((t -= 2) < 0); ++r) a = e.charCodeAt(r), i = a >> 8, n = a % 256, o.push(n), o.push(i);
                        return o
                    }(t, e.length - a), e, a, i)
                }

                function L(e, t, a) {
                    return 0 === t && a === e.length ? i.fromByteArray(e) : i.fromByteArray(e.slice(t, a))
                }

                function A(e, t, a) {
                    a = Math.min(e.length, a);
                    for (var i = [], n = t; n < a;) {
                        var o, r, l, s, c = e[n],
                            h = null,
                            u = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1;
                        if (n + u <= a) switch (u) {
                            case 1:
                                c < 128 && (h = c);
                                break;
                            case 2:
                                128 == (192 & (o = e[n + 1])) && (s = (31 & c) << 6 | 63 & o) > 127 && (h = s);
                                break;
                            case 3:
                                o = e[n + 1], r = e[n + 2], 128 == (192 & o) && 128 == (192 & r) && (s = (15 & c) << 12 | (63 & o) << 6 | 63 & r) > 2047 && (s < 55296 || s > 57343) && (h = s);
                                break;
                            case 4:
                                o = e[n + 1], r = e[n + 2], l = e[n + 3], 128 == (192 & o) && 128 == (192 & r) && 128 == (192 & l) && (s = (15 & c) << 18 | (63 & o) << 12 | (63 & r) << 6 | 63 & l) > 65535 && s < 1114112 && (h = s)
                        }
                        null === h ? (h = 65533, u = 1) : h > 65535 && (h -= 65536, i.push(h >>> 10 & 1023 | 55296), h = 56320 | 1023 & h), i.push(h), n += u
                    }
                    return function(e) {
                        var t = e.length;
                        if (t <= 4096) return String.fromCharCode.apply(String, e);
                        var a = "",
                            i = 0;
                        for (; i < t;) a += String.fromCharCode.apply(String, e.slice(i, i += 4096));
                        return a
                    }(i)
                }
                t.Buffer = s, t.SlowBuffer = function(e) {
                    +e != e && (e = 0);
                    return s.alloc(+e)
                }, t.INSPECT_MAX_BYTES = 50, s.TYPED_ARRAY_SUPPORT = e.TYPED_ARRAY_SUPPORT !== undefined ? e.TYPED_ARRAY_SUPPORT : function() {
                    try {
                        var e = new Uint8Array(1);
                        return e.__proto__ = {
                            __proto__: Uint8Array.prototype,
                            foo: function() {
                                return 42
                            }
                        }, 42 === e.foo() && "function" == typeof e.subarray && 0 === e.subarray(1, 1).byteLength
                    } catch (t) {
                        return !1
                    }
                }(), t.kMaxLength = r(), s.poolSize = 8192, s._augment = function(e) {
                    return e.__proto__ = s.prototype, e
                }, s.from = function(e, t, a) {
                    return c(null, e, t, a)
                }, s.TYPED_ARRAY_SUPPORT && (s.prototype.__proto__ = Uint8Array.prototype, s.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && s[Symbol.species] === s && Object.defineProperty(s, Symbol.species, {
                    value: null,
                    configurable: !0
                })), s.alloc = function(e, t, a) {
                    return function(e, t, a, i) {
                        return h(t), t <= 0 ? l(e, t) : a !== undefined ? "string" == typeof i ? l(e, t).fill(a, i) : l(e, t).fill(a) : l(e, t)
                    }(null, e, t, a)
                }, s.allocUnsafe = function(e) {
                    return u(null, e)
                }, s.allocUnsafeSlow = function(e) {
                    return u(null, e)
                }, s.isBuffer = function(e) {
                    return !(null == e || !e._isBuffer)
                }, s.compare = function(e, t) {
                    if (!s.isBuffer(e) || !s.isBuffer(t)) throw new TypeError("Arguments must be Buffers");
                    if (e === t) return 0;
                    for (var a = e.length, i = t.length, n = 0, o = Math.min(a, i); n < o; ++n)
                        if (e[n] !== t[n]) {
                            a = e[n], i = t[n];
                            break
                        }
                    return a < i ? -1 : i < a ? 1 : 0
                }, s.isEncoding = function(e) {
                    switch (String(e).toLowerCase()) {
                        case "hex":
                        case "utf8":
                        case "utf-8":
                        case "ascii":
                        case "latin1":
                        case "binary":
                        case "base64":
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return !0;
                        default:
                            return !1
                    }
                }, s.concat = function(e, t) {
                    if (!o(e)) throw new TypeError('"list" argument must be an Array of Buffers');
                    if (0 === e.length) return s.alloc(0);
                    var a;
                    if (t === undefined)
                        for (t = 0, a = 0; a < e.length; ++a) t += e[a].length;
                    var i = s.allocUnsafe(t),
                        n = 0;
                    for (a = 0; a < e.length; ++a) {
                        var r = e[a];
                        if (!s.isBuffer(r)) throw new TypeError('"list" argument must be an Array of Buffers');
                        r.copy(i, n), n += r.length
                    }
                    return i
                }, s.byteLength = p, s.prototype._isBuffer = !0, s.prototype.swap16 = function() {
                    var e = this.length;
                    if (e % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits");
                    for (var t = 0; t < e; t += 2) m(this, t, t + 1);
                    return this
                }, s.prototype.swap32 = function() {
                    var e = this.length;
                    if (e % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits");
                    for (var t = 0; t < e; t += 4) m(this, t, t + 3), m(this, t + 1, t + 2);
                    return this
                }, s.prototype.swap64 = function() {
                    var e = this.length;
                    if (e % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits");
                    for (var t = 0; t < e; t += 8) m(this, t, t + 7), m(this, t + 1, t + 6), m(this, t + 2, t + 5), m(this, t + 3, t + 4);
                    return this
                }, s.prototype.toString = function() {
                    var e = 0 | this.length;
                    return 0 === e ? "" : 0 === arguments.length ? A(this, 0, e) : f.apply(this, arguments)
                }, s.prototype.equals = function(e) {
                    if (!s.isBuffer(e)) throw new TypeError("Argument must be a Buffer");
                    return this === e || 0 === s.compare(this, e)
                }, s.prototype.inspect = function() {
                    var e = "",
                        a = t.INSPECT_MAX_BYTES;
                    return this.length > 0 && (e = this.toString("hex", 0, a).match(/.{2}/g).join(" "), this.length > a && (e += " ... ")), "<Buffer " + e + ">"
                }, s.prototype.compare = function(e, t, a, i, n) {
                    if (!s.isBuffer(e)) throw new TypeError("Argument must be a Buffer");
                    if (t === undefined && (t = 0), a === undefined && (a = e ? e.length : 0), i === undefined && (i = 0), n === undefined && (n = this.length), t < 0 || a > e.length || i < 0 || n > this.length) throw new RangeError("out of range index");
                    if (i >= n && t >= a) return 0;
                    if (i >= n) return -1;
                    if (t >= a) return 1;
                    if (this === e) return 0;
                    for (var o = (n >>>= 0) - (i >>>= 0), r = (a >>>= 0) - (t >>>= 0), l = Math.min(o, r), c = this.slice(i, n), h = e.slice(t, a), u = 0; u < l; ++u)
                        if (c[u] !== h[u]) {
                            o = c[u], r = h[u];
                            break
                        }
                    return o < r ? -1 : r < o ? 1 : 0
                }, s.prototype.includes = function(e, t, a) {
                    return -1 !== this.indexOf(e, t, a)
                }, s.prototype.indexOf = function(e, t, a) {
                    return v(this, e, t, a, !0)
                }, s.prototype.lastIndexOf = function(e, t, a) {
                    return v(this, e, t, a, !1)
                }, s.prototype.write = function(e, t, a, i) {
                    if (t === undefined) i = "utf8", a = this.length, t = 0;
                    else if (a === undefined && "string" == typeof t) i = t, a = this.length, t = 0;
                    else {
                        if (!isFinite(t)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
                        t |= 0, isFinite(a) ? (a |= 0, i === undefined && (i = "utf8")) : (i = a, a = undefined)
                    }
                    var n = this.length - t;
                    if ((a === undefined || a > n) && (a = n), e.length > 0 && (a < 0 || t < 0) || t > this.length) throw new RangeError("Attempt to write outside buffer bounds");
                    i || (i = "utf8");
                    for (var o = !1;;) switch (i) {
                        case "hex":
                            return x(this, e, t, a);
                        case "utf8":
                        case "utf-8":
                            return y(this, e, t, a);
                        case "ascii":
                            return C(this, e, t, a);
                        case "latin1":
                        case "binary":
                            return k(this, e, t, a);
                        case "base64":
                            return S(this, e, t, a);
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return w(this, e, t, a);
                        default:
                            if (o) throw new TypeError("Unknown encoding: " + i);
                            i = ("" + i).toLowerCase(), o = !0
                    }
                }, s.prototype.toJSON = function() {
                    return {
                        type: "Buffer",
                        data: Array.prototype.slice.call(this._arr || this, 0)
                    }
                };

                function N(e, t, a) {
                    var i = "";
                    a = Math.min(e.length, a);
                    for (var n = t; n < a; ++n) i += String.fromCharCode(127 & e[n]);
                    return i
                }

                function T(e, t, a) {
                    var i = "";
                    a = Math.min(e.length, a);
                    for (var n = t; n < a; ++n) i += String.fromCharCode(e[n]);
                    return i
                }

                function E(e, t, a) {
                    var i = e.length;
                    (!t || t < 0) && (t = 0), (!a || a < 0 || a > i) && (a = i);
                    for (var n = "", o = t; o < a; ++o) n += V(e[o]);
                    return n
                }

                function F(e, t, a) {
                    for (var i = e.slice(t, a), n = "", o = 0; o < i.length; o += 2) n += String.fromCharCode(i[o] + 256 * i[o + 1]);
                    return n
                }

                function _(e, t, a) {
                    if (e % 1 != 0 || e < 0) throw new RangeError("offset is not uint");
                    if (e + t > a) throw new RangeError("Trying to access beyond buffer length")
                }

                function P(e, t, a, i, n, o) {
                    if (!s.isBuffer(e)) throw new TypeError('"buffer" argument must be a Buffer instance');
                    if (t > n || t < o) throw new RangeError('"value" argument is out of bounds');
                    if (a + i > e.length) throw new RangeError("Index out of range")
                }

                function D(e, t, a, i) {
                    t < 0 && (t = 65535 + t + 1);
                    for (var n = 0, o = Math.min(e.length - a, 2); n < o; ++n) e[a + n] = (t & 255 << 8 * (i ? n : 1 - n)) >>> 8 * (i ? n : 1 - n)
                }

                function I(e, t, a, i) {
                    t < 0 && (t = 4294967295 + t + 1);
                    for (var n = 0, o = Math.min(e.length - a, 4); n < o; ++n) e[a + n] = t >>> 8 * (i ? n : 3 - n) & 255
                }

                function M(e, t, a, i, n, o) {
                    if (a + i > e.length) throw new RangeError("Index out of range");
                    if (a < 0) throw new RangeError("Index out of range")
                }

                function O(e, t, a, i, o) {
                    return o || M(e, 0, a, 4), n.write(e, t, a, i, 23, 4), a + 4
                }

                function R(e, t, a, i, o) {
                    return o || M(e, 0, a, 8), n.write(e, t, a, i, 52, 8), a + 8
                }
                s.prototype.slice = function(e, t) {
                    var a, i = this.length;
                    if ((e = ~~e) < 0 ? (e += i) < 0 && (e = 0) : e > i && (e = i), (t = t === undefined ? i : ~~t) < 0 ? (t += i) < 0 && (t = 0) : t > i && (t = i), t < e && (t = e), s.TYPED_ARRAY_SUPPORT)(a = this.subarray(e, t)).__proto__ = s.prototype;
                    else {
                        var n = t - e;
                        a = new s(n, undefined);
                        for (var o = 0; o < n; ++o) a[o] = this[o + e]
                    }
                    return a
                }, s.prototype.readUIntLE = function(e, t, a) {
                    e |= 0, t |= 0, a || _(e, t, this.length);
                    for (var i = this[e], n = 1, o = 0; ++o < t && (n *= 256);) i += this[e + o] * n;
                    return i
                }, s.prototype.readUIntBE = function(e, t, a) {
                    e |= 0, t |= 0, a || _(e, t, this.length);
                    for (var i = this[e + --t], n = 1; t > 0 && (n *= 256);) i += this[e + --t] * n;
                    return i
                }, s.prototype.readUInt8 = function(e, t) {
                    return t || _(e, 1, this.length), this[e]
                }, s.prototype.readUInt16LE = function(e, t) {
                    return t || _(e, 2, this.length), this[e] | this[e + 1] << 8
                }, s.prototype.readUInt16BE = function(e, t) {
                    return t || _(e, 2, this.length), this[e] << 8 | this[e + 1]
                }, s.prototype.readUInt32LE = function(e, t) {
                    return t || _(e, 4, this.length), (this[e] | this[e + 1] << 8 | this[e + 2] << 16) + 16777216 * this[e + 3]
                }, s.prototype.readUInt32BE = function(e, t) {
                    return t || _(e, 4, this.length), 16777216 * this[e] + (this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3])
                }, s.prototype.readIntLE = function(e, t, a) {
                    e |= 0, t |= 0, a || _(e, t, this.length);
                    for (var i = this[e], n = 1, o = 0; ++o < t && (n *= 256);) i += this[e + o] * n;
                    return i >= (n *= 128) && (i -= Math.pow(2, 8 * t)), i
                }, s.prototype.readIntBE = function(e, t, a) {
                    e |= 0, t |= 0, a || _(e, t, this.length);
                    for (var i = t, n = 1, o = this[e + --i]; i > 0 && (n *= 256);) o += this[e + --i] * n;
                    return o >= (n *= 128) && (o -= Math.pow(2, 8 * t)), o
                }, s.prototype.readInt8 = function(e, t) {
                    return t || _(e, 1, this.length), 128 & this[e] ? -1 * (255 - this[e] + 1) : this[e]
                }, s.prototype.readInt16LE = function(e, t) {
                    t || _(e, 2, this.length);
                    var a = this[e] | this[e + 1] << 8;
                    return 32768 & a ? 4294901760 | a : a
                }, s.prototype.readInt16BE = function(e, t) {
                    t || _(e, 2, this.length);
                    var a = this[e + 1] | this[e] << 8;
                    return 32768 & a ? 4294901760 | a : a
                }, s.prototype.readInt32LE = function(e, t) {
                    return t || _(e, 4, this.length), this[e] | this[e + 1] << 8 | this[e + 2] << 16 | this[e + 3] << 24
                }, s.prototype.readInt32BE = function(e, t) {
                    return t || _(e, 4, this.length), this[e] << 24 | this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3]
                }, s.prototype.readFloatLE = function(e, t) {
                    return t || _(e, 4, this.length), n.read(this, e, !0, 23, 4)
                }, s.prototype.readFloatBE = function(e, t) {
                    return t || _(e, 4, this.length), n.read(this, e, !1, 23, 4)
                }, s.prototype.readDoubleLE = function(e, t) {
                    return t || _(e, 8, this.length), n.read(this, e, !0, 52, 8)
                }, s.prototype.readDoubleBE = function(e, t) {
                    return t || _(e, 8, this.length), n.read(this, e, !1, 52, 8)
                }, s.prototype.writeUIntLE = function(e, t, a, i) {
                    (e = +e, t |= 0, a |= 0, i) || P(this, e, t, a, Math.pow(2, 8 * a) - 1, 0);
                    var n = 1,
                        o = 0;
                    for (this[t] = 255 & e; ++o < a && (n *= 256);) this[t + o] = e / n & 255;
                    return t + a
                }, s.prototype.writeUIntBE = function(e, t, a, i) {
                    (e = +e, t |= 0, a |= 0, i) || P(this, e, t, a, Math.pow(2, 8 * a) - 1, 0);
                    var n = a - 1,
                        o = 1;
                    for (this[t + n] = 255 & e; --n >= 0 && (o *= 256);) this[t + n] = e / o & 255;
                    return t + a
                }, s.prototype.writeUInt8 = function(e, t, a) {
                    return e = +e, t |= 0, a || P(this, e, t, 1, 255, 0), s.TYPED_ARRAY_SUPPORT || (e = Math.floor(e)), this[t] = 255 & e, t + 1
                }, s.prototype.writeUInt16LE = function(e, t, a) {
                    return e = +e, t |= 0, a || P(this, e, t, 2, 65535, 0), s.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8) : D(this, e, t, !0), t + 2
                }, s.prototype.writeUInt16BE = function(e, t, a) {
                    return e = +e, t |= 0, a || P(this, e, t, 2, 65535, 0), s.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 8, this[t + 1] = 255 & e) : D(this, e, t, !1), t + 2
                }, s.prototype.writeUInt32LE = function(e, t, a) {
                    return e = +e, t |= 0, a || P(this, e, t, 4, 4294967295, 0), s.TYPED_ARRAY_SUPPORT ? (this[t + 3] = e >>> 24, this[t + 2] = e >>> 16, this[t + 1] = e >>> 8, this[t] = 255 & e) : I(this, e, t, !0), t + 4
                }, s.prototype.writeUInt32BE = function(e, t, a) {
                    return e = +e, t |= 0, a || P(this, e, t, 4, 4294967295, 0), s.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e) : I(this, e, t, !1), t + 4
                }, s.prototype.writeIntLE = function(e, t, a, i) {
                    if (e = +e, t |= 0, !i) {
                        var n = Math.pow(2, 8 * a - 1);
                        P(this, e, t, a, n - 1, -n)
                    }
                    var o = 0,
                        r = 1,
                        l = 0;
                    for (this[t] = 255 & e; ++o < a && (r *= 256);) e < 0 && 0 === l && 0 !== this[t + o - 1] && (l = 1), this[t + o] = (e / r >> 0) - l & 255;
                    return t + a
                }, s.prototype.writeIntBE = function(e, t, a, i) {
                    if (e = +e, t |= 0, !i) {
                        var n = Math.pow(2, 8 * a - 1);
                        P(this, e, t, a, n - 1, -n)
                    }
                    var o = a - 1,
                        r = 1,
                        l = 0;
                    for (this[t + o] = 255 & e; --o >= 0 && (r *= 256);) e < 0 && 0 === l && 0 !== this[t + o + 1] && (l = 1), this[t + o] = (e / r >> 0) - l & 255;
                    return t + a
                }, s.prototype.writeInt8 = function(e, t, a) {
                    return e = +e, t |= 0, a || P(this, e, t, 1, 127, -128), s.TYPED_ARRAY_SUPPORT || (e = Math.floor(e)), e < 0 && (e = 255 + e + 1), this[t] = 255 & e, t + 1
                }, s.prototype.writeInt16LE = function(e, t, a) {
                    return e = +e, t |= 0, a || P(this, e, t, 2, 32767, -32768), s.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8) : D(this, e, t, !0), t + 2
                }, s.prototype.writeInt16BE = function(e, t, a) {
                    return e = +e, t |= 0, a || P(this, e, t, 2, 32767, -32768), s.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 8, this[t + 1] = 255 & e) : D(this, e, t, !1), t + 2
                }, s.prototype.writeInt32LE = function(e, t, a) {
                    return e = +e, t |= 0, a || P(this, e, t, 4, 2147483647, -2147483648), s.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8, this[t + 2] = e >>> 16, this[t + 3] = e >>> 24) : I(this, e, t, !0), t + 4
                }, s.prototype.writeInt32BE = function(e, t, a) {
                    return e = +e, t |= 0, a || P(this, e, t, 4, 2147483647, -2147483648), e < 0 && (e = 4294967295 + e + 1), s.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e) : I(this, e, t, !1), t + 4
                }, s.prototype.writeFloatLE = function(e, t, a) {
                    return O(this, e, t, !0, a)
                }, s.prototype.writeFloatBE = function(e, t, a) {
                    return O(this, e, t, !1, a)
                }, s.prototype.writeDoubleLE = function(e, t, a) {
                    return R(this, e, t, !0, a)
                }, s.prototype.writeDoubleBE = function(e, t, a) {
                    return R(this, e, t, !1, a)
                }, s.prototype.copy = function(e, t, a, i) {
                    if (a || (a = 0), i || 0 === i || (i = this.length), t >= e.length && (t = e.length), t || (t = 0), i > 0 && i < a && (i = a), i === a) return 0;
                    if (0 === e.length || 0 === this.length) return 0;
                    if (t < 0) throw new RangeError("targetStart out of bounds");
                    if (a < 0 || a >= this.length) throw new RangeError("sourceStart out of bounds");
                    if (i < 0) throw new RangeError("sourceEnd out of bounds");
                    i > this.length && (i = this.length), e.length - t < i - a && (i = e.length - t + a);
                    var n, o = i - a;
                    if (this === e && a < t && t < i)
                        for (n = o - 1; n >= 0; --n) e[n + t] = this[n + a];
                    else if (o < 1e3 || !s.TYPED_ARRAY_SUPPORT)
                        for (n = 0; n < o; ++n) e[n + t] = this[n + a];
                    else Uint8Array.prototype.set.call(e, this.subarray(a, a + o), t);
                    return o
                }, s.prototype.fill = function(e, t, a, i) {
                    if ("string" == typeof e) {
                        if ("string" == typeof t ? (i = t, t = 0, a = this.length) : "string" == typeof a && (i = a, a = this.length), 1 === e.length) {
                            var n = e.charCodeAt(0);
                            n < 256 && (e = n)
                        }
                        if (i !== undefined && "string" != typeof i) throw new TypeError("encoding must be a string");
                        if ("string" == typeof i && !s.isEncoding(i)) throw new TypeError("Unknown encoding: " + i)
                    } else "number" == typeof e && (e &= 255);
                    if (t < 0 || this.length < t || this.length < a) throw new RangeError("Out of range index");
                    if (a <= t) return this;
                    var o;
                    if (t >>>= 0, a = a === undefined ? this.length : a >>> 0, e || (e = 0), "number" == typeof e)
                        for (o = t; o < a; ++o) this[o] = e;
                    else {
                        var r = s.isBuffer(e) ? e : G(new s(e, i).toString()),
                            l = r.length;
                        for (o = 0; o < a - t; ++o) this[o + t] = r[o % l]
                    }
                    return this
                };
                var B = /[^+\/0-9A-Za-z-_]/g;

                function V(e) {
                    return e < 16 ? "0" + e.toString(16) : e.toString(16)
                }

                function G(e, t) {
                    var a;
                    t = t || Infinity;
                    for (var i = e.length, n = null, o = [], r = 0; r < i; ++r) {
                        if ((a = e.charCodeAt(r)) > 55295 && a < 57344) {
                            if (!n) {
                                if (a > 56319) {
                                    (t -= 3) > -1 && o.push(239, 191, 189);
                                    continue
                                }
                                if (r + 1 === i) {
                                    (t -= 3) > -1 && o.push(239, 191, 189);
                                    continue
                                }
                                n = a;
                                continue
                            }
                            if (a < 56320) {
                                (t -= 3) > -1 && o.push(239, 191, 189), n = a;
                                continue
                            }
                            a = 65536 + (n - 55296 << 10 | a - 56320)
                        } else n && (t -= 3) > -1 && o.push(239, 191, 189);
                        if (n = null, a < 128) {
                            if ((t -= 1) < 0) break;
                            o.push(a)
                        } else if (a < 2048) {
                            if ((t -= 2) < 0) break;
                            o.push(a >> 6 | 192, 63 & a | 128)
                        } else if (a < 65536) {
                            if ((t -= 3) < 0) break;
                            o.push(a >> 12 | 224, a >> 6 & 63 | 128, 63 & a | 128)
                        } else {
                            if (!(a < 1114112)) throw new Error("Invalid code point");
                            if ((t -= 4) < 0) break;
                            o.push(a >> 18 | 240, a >> 12 & 63 | 128, a >> 6 & 63 | 128, 63 & a | 128)
                        }
                    }
                    return o
                }

                function z(e) {
                    return i.toByteArray(function(e) {
                        if ((e = function(e) {
                                return e.trim ? e.trim() : e.replace(/^\s+|\s+$/g, "")
                            }(e).replace(B, "")).length < 2) return "";
                        for (; e.length % 4 != 0;) e += "=";
                        return e
                    }(e))
                }

                function H(e, t, a, i) {
                    for (var n = 0; n < i && !(n + a >= t.length || n >= e.length); ++n) t[n + a] = e[n];
                    return n
                }
            }).call(this, a(6))
        },
        1190: function(e, t, a) {
            "use strict";
            t.byteLength = function(e) {
                var t = c(e),
                    a = t[0],
                    i = t[1];
                return 3 * (a + i) / 4 - i
            }, t.toByteArray = function(e) {
                var t, a, i = c(e),
                    r = i[0],
                    l = i[1],
                    s = new o(function(e, t, a) {
                        return 3 * (t + a) / 4 - a
                    }(0, r, l)),
                    h = 0,
                    u = l > 0 ? r - 4 : r;
                for (a = 0; a < u; a += 4) t = n[e.charCodeAt(a)] << 18 | n[e.charCodeAt(a + 1)] << 12 | n[e.charCodeAt(a + 2)] << 6 | n[e.charCodeAt(a + 3)], s[h++] = t >> 16 & 255, s[h++] = t >> 8 & 255, s[h++] = 255 & t;
                2 === l && (t = n[e.charCodeAt(a)] << 2 | n[e.charCodeAt(a + 1)] >> 4, s[h++] = 255 & t);
                1 === l && (t = n[e.charCodeAt(a)] << 10 | n[e.charCodeAt(a + 1)] << 4 | n[e.charCodeAt(a + 2)] >> 2, s[h++] = t >> 8 & 255, s[h++] = 255 & t);
                return s
            }, t.fromByteArray = function(e) {
                for (var t, a = e.length, n = a % 3, o = [], r = 0, l = a - n; r < l; r += 16383) o.push(h(e, r, r + 16383 > l ? l : r + 16383));
                1 === n ? (t = e[a - 1], o.push(i[t >> 2] + i[t << 4 & 63] + "==")) : 2 === n && (t = (e[a - 2] << 8) + e[a - 1], o.push(i[t >> 10] + i[t >> 4 & 63] + i[t << 2 & 63] + "="));
                return o.join("")
            };
            for (var i = [], n = [], o = "undefined" != typeof Uint8Array ? Uint8Array : Array, r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", l = 0, s = r.length; l < s; ++l) i[l] = r[l], n[r.charCodeAt(l)] = l;

            function c(e) {
                var t = e.length;
                if (t % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
                var a = e.indexOf("=");
                return -1 === a && (a = t), [a, a === t ? 0 : 4 - a % 4]
            }

            function h(e, t, a) {
                for (var n, o, r = [], l = t; l < a; l += 3) n = (e[l] << 16 & 16711680) + (e[l + 1] << 8 & 65280) + (255 & e[l + 2]), r.push(i[(o = n) >> 18 & 63] + i[o >> 12 & 63] + i[o >> 6 & 63] + i[63 & o]);
                return r.join("")
            }
            n["-".charCodeAt(0)] = 62, n["_".charCodeAt(0)] = 63
        },
        1191: function(e, t) {
            t.read = function(e, t, a, i, n) {
                var o, r, l = 8 * n - i - 1,
                    s = (1 << l) - 1,
                    c = s >> 1,
                    h = -7,
                    u = a ? n - 1 : 0,
                    d = a ? -1 : 1,
                    g = e[t + u];
                for (u += d, o = g & (1 << -h) - 1, g >>= -h, h += l; h > 0; o = 256 * o + e[t + u], u += d, h -= 8);
                for (r = o & (1 << -h) - 1, o >>= -h, h += i; h > 0; r = 256 * r + e[t + u], u += d, h -= 8);
                if (0 === o) o = 1 - c;
                else {
                    if (o === s) return r ? NaN : (g ? -1 : 1) * Infinity;
                    r += Math.pow(2, i), o -= c
                }
                return (g ? -1 : 1) * r * Math.pow(2, o - i)
            }, t.write = function(e, t, a, i, n, o) {
                var r, l, s, c = 8 * o - n - 1,
                    h = (1 << c) - 1,
                    u = h >> 1,
                    d = 23 === n ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
                    g = i ? 0 : o - 1,
                    p = i ? 1 : -1,
                    f = t < 0 || 0 === t && 1 / t < 0 ? 1 : 0;
                for (t = Math.abs(t), isNaN(t) || t === Infinity ? (l = isNaN(t) ? 1 : 0, r = h) : (r = Math.floor(Math.log(t) / Math.LN2), t * (s = Math.pow(2, -r)) < 1 && (r--, s *= 2), (t += r + u >= 1 ? d / s : d * Math.pow(2, 1 - u)) * s >= 2 && (r++, s /= 2), r + u >= h ? (l = 0, r = h) : r + u >= 1 ? (l = (t * s - 1) * Math.pow(2, n), r += u) : (l = t * Math.pow(2, u - 1) * Math.pow(2, n), r = 0)); n >= 8; e[a + g] = 255 & l, g += p, l /= 256, n -= 8);
                for (r = r << n | l, c += n; c > 0; e[a + g] = 255 & r, g += p, r /= 256, c -= 8);
                e[a + g - p] |= 128 * f
            }
        },
        1192: function(e, t) {
            var a = {}.toString;
            e.exports = Array.isArray || function(e) {
                return "[object Array]" == a.call(e)
            }
        },
        416: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(417)),
                r = i(a(491)),
                l = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).registerFactory("dataset", r["default"], ["vCanvas"]), t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "SSCartesian"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "SSCartesian"
                    }, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        t.hasLegend = !1, t.linethickness = 4
                    }, a._checkInvalidSpecificData = function() {
                        var e = this.getFromEnv("dataSource").data;
                        if (!e || !e.length) return !0
                    }, a._setCategories = function() {
                        var e = this.getFromEnv("dataSource"),
                            t = this.getChildren("xAxis"),
                            a = e.dataset,
                            i = e.data || a && a[0].data;
                        t[0].setTickValues(i)
                    }, t
                }(o["default"]);
            t["default"] = l
        },
        417: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(418)),
                r = a(193),
                l = i(a(433)),
                s = i(a(434)),
                c = i(a(484)),
                h = i(a(487)),
                u = i(a(489)),
                d = i(a(306)),
                g = a(304),
                p = Math.max,
                f = Math.min,
                m = function(e, t) {
                    return e < t && t > 0 ? t - e : 0
                },
                v = function(e) {
                    var t = e.sender,
                        a = e.data.scrollPosition,
                        i = t.getChildren("xAxis")[0],
                        n = i.config,
                        o = i.getVisibleConfig(),
                        r = o.maxValue - o.minValue,
                        s = n.axisRange.max - r,
                        c = (0, l["default"])(n.axisRange.min, s),
                        h = n.isReverse ? c(1 - a) : c(a);
                    i.setVisibleConfig(h, h + r)
                },
                b = {
                    wrtVisible: !0
                },
                x = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).registerFactory("axis", s["default"], ["canvas"]), t.registerFactory("canvas", c["default"]), t.registerFactory("vCanvas", h["default"], ["axis"]), t.registerFactory("mouseTracker", u["default"], ["canvas"]), t.addEventListener("onScroll", v), t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "Cartesian"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "Cartesian"
                    }, a.getType = function() {
                        return "chartAPI"
                    }, a._allocateXAxisLabelSpace = function(e) {
                        var t, a = this.config,
                            i = e.getAxisEndLabelDisplaySpace(),
                            n = i.left,
                            o = i.right,
                            r = i.top,
                            l = i.bottom,
                            s = a.availableWidth,
                            c = a.availableHeight,
                            h = a.canvasLeft,
                            u = a.canvasRight,
                            d = a.canvasTop,
                            g = a.canvasBottom,
                            p = a.width,
                            f = a.height;
                        r + l > c && (r = c * r / (t = r + l), l = c * l / t), n + o > s && (n = s * n / (t = n + o), o = s * o / t), n = m(h, n), o = m(p - u, o), r = m(d, r), l = m(f - g, l), this._allocateSpace({
                            left: n,
                            right: o,
                            top: r,
                            bottom: l
                        })
                    }, a._setCategories = function() {
                        var e = this.getFromEnv("dataSource"),
                            t = this.getChildren("xAxis"),
                            a = e.categories && e.categories.length && e.categories[0].category;
                        t && t[0].setTickValues(a)
                    }, a._feedAxesRawData = function() {
                        var e, t, a = this.config,
                            i = this.getFromEnv("dataSource");
                        return e = this.getSpecificxAxisConf(), t = this.getSpecificyAxisConf(), e.vtrendlines = (0, r.extend2)([], i.vtrendlines), t.trendlines = (0, r.extend2)([], i.trendlines), a.isstacked && (t.isPercent = (0, r.pluckNumber)(a.stack100percent, 0)), {
                            yAxisConf: [t],
                            xAxisConf: [e]
                        }
                    }, a.allocatePosition = function() {
                        this.setScrollBarDimension()
                    }, a.setScrollBarDimension = function() {
                        this.getChildren("scrollBar") && this.getChildren("scrollBar")[0] && this.getChildren("scrollBar")[0].setDimension(this.getScrollbarDimension())
                    }, a.getSpecificxAxisConf = function() {
                        var e = this.getFromEnv("chart-attrib"),
                            t = this.config,
                            a = this.config.is3D,
                            i = this.getBasexAxisConf();
                        return i.isReverse = t.reverseXAxis, i.axisLineColor = (0, r.pluck)(e.xaxislinecolor, e.axislinecolor, "#000000"), i.showAlternateGridColor = (0, r.pluckNumber)(e.showalternatevgridcolor, 0), i.numDivLines = (0, r.pluckNumber)(e.numvdivlines, t.numVDivLines), i.axisName = e.xaxisname, i.setAdaptiveMin = (0, r.pluckNumber)(e.setadaptivexmin, t.setadaptivexmin, t.setadaptivexmin), i.showLimits = (0, r.pluckNumber)(e.showvlimits, t.showvlimits), i.showDivLineValues = (0, r.pluckNumber)(e.showvdivlinevalues, e.showvdivlinevalues, t.showvdivlinevalues), i.zeroPlaneThickness = (0, r.pluckNumber)(e.vzeroplanethickness, e.vdivlinethickness, t.zeroplanethickness, 2), i.zeroPlaneAlpha = (0, r.pluckNumber)(e.vzeroplanealpha, e.vdivlinealpha, t.zeroplanealpha), i.showZeroPlaneValue = (0, r.pluckNumber)(e.showvzeroplanevalue, t.showzeroplanevalue), i.showAxisLine = a ? 0 : (0, r.pluckNumber)(e.showxaxisline, e.showaxislines, e.drawAxisLines, t.showxaxisline, 0), i.maxLabelHeight = e.maxlabelheight, i.showZeroPlane = (0, r.pluckNumber)(e.showvzeroplane, t.showzeroplane), i
                    }, a.getSpecificyAxisConf = function() {
                        var e = this.getFromEnv("chart-attrib"),
                            t = this.config,
                            a = this.config.is3D,
                            i = a ? r.chartPaletteStr.chart3D : r.chartPaletteStr.chart2D,
                            n = t.isInverse,
                            o = this.getFromEnv("color-manager"),
                            l = (0, r.pluckNumber)(e.showzeroplane, t.showzeroplane, 1),
                            s = (0, r.pluckNumber)(e.showzeroplanevalue, t.showzeroplanevalue);
                        return l || void 0 !== s || (s = 0), {
                            isVertical: !0,
                            isReverse: !n,
                            isOpposit: (0, d["default"])(e.yaxisposition, "right"),
                            outCanfontFamily: (0, r.pluck)(e.outcnvbasefont, e.basefont, "Verdana,sans"),
                            outCanfontSize: (0, r.pluckFontSize)(e.outcnvbasefontsize, e.basefontsize, 10),
                            outCancolor: (0, r.pluck)(e.outcnvbasefontcolor, e.basefontcolor, o.getColor(i.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"),
                            axisBreaks: e.yaxisbreaks,
                            axisNamePadding: e.yaxisnamepadding,
                            axisValuePadding: e.yaxisvaluespadding,
                            axisNameFont: e.yaxisnamefont,
                            axisNameFontSize: e.yaxisnamefontsize,
                            axisNameFontColor: e.yaxisnamefontcolor,
                            axisNameFontBold: e.yaxisnamefontbold,
                            axisNameFontItalic: e.yaxisnamefontitalic,
                            axisNameBgColor: e.yaxisnamebgcolor,
                            axisNameBorderColor: e.yaxisnamebordercolor,
                            axisNameAlpha: e.yaxisnamealpha,
                            axisNameFontAlpha: e.yaxisnamefontalpha,
                            axisNameBgAlpha: e.yaxisnamebgalpha,
                            axisNameBorderAlpha: e.yaxisnameborderalpha,
                            axisNameBorderPadding: e.yaxisnameborderpadding,
                            axisNameBorderRadius: e.yaxisnameborderradius,
                            axisNameBorderThickness: e.yaxisnameborderthickness,
                            axisNameBorderDashed: e.yaxisnameborderdashed,
                            axisNameBorderDashLen: e.yaxisnameborderdashlen,
                            axisNameBorderDashGap: e.yaxisnameborderdashgap,
                            axisNameWidth: e.yaxisnamewidth,
                            useEllipsesWhenOverflow: e.useellipseswhenoverflow,
                            rotateAxisName: (0, r.pluckNumber)(e.rotateyaxisname, 1),
                            axisName: e.yaxisname,
                            divLineColor: (0, r.pluck)(e.divlinecolor, o.getColor(i.divLineColor)),
                            divLineAlpha: (0, r.pluck)(e.divlinealpha, a ? o.getColor("divLineAlpha3D") : o.getColor("divLineAlpha")),
                            divLineThickness: (0, r.pluckNumber)(e.divlinethickness, 1),
                            divLineIsDashed: Boolean((0, r.pluckNumber)(e.divlinedashed, e.divlineisdashed, 0)),
                            divLineDashLen: (0, r.pluckNumber)(e.divlinedashlen, 4),
                            divLineDashGap: (0, r.pluckNumber)(e.divlinedashgap, 2),
                            showAlternateGridColor: (0, r.pluckNumber)(e.showalternatehgridcolor, 1),
                            alternateGridColor: (0, r.pluck)(e.alternatehgridcolor, o.getColor("altHGridColor")),
                            alternateGridAlpha: (0, r.pluck)(e.alternatehgridalpha, o.getColor("altHGridAlpha")),
                            numDivLines: (0, r.pluckNumber)(e.numdivlines, t.numDivLines),
                            axisMinValue: t.yRangeMin || e.yaxisminvalue,
                            axisMaxValue: t.yRangeMax || e.yaxismaxvalue,
                            setAdaptiveMin: (0, r.pluckNumber)(e.setadaptivesymin, e.setadaptiveymin, t.setAdaptiveMin),
                            adjustDiv: e.adjustdiv,
                            labelStep: e.yaxisvaluesstep,
                            showAxisValues: (0, r.pluckNumber)(e.showyaxisvalues, e.showyaxisvalue, t.showyaxisvalues),
                            showLimits: (0, r.pluckNumber)(e.showyaxislimits, e.showlimits, this.showLimits),
                            showDivLineValues: (0, r.pluckNumber)(e.showdivlinevalues, e.showdivlinevalue, t.showdivlinevalues),
                            showZeroPlane: l,
                            zeroPlaneColor: e.zeroplanecolor,
                            zeroPlaneThickness: (0, r.pluckNumber)(e.zeroplanethickness, e.divlinethickness, t.zeroplanethickness, 2),
                            zeroPlaneAlpha: (0, r.pluckNumber)(e.zeroplanealpha, e.divlinealpha, t.zeroplanealpha),
                            showZeroPlaneValue: s,
                            showZeroPlaneOnTop: t.showzeroplaneontop,
                            trendlineColor: e.trendlinecolor,
                            trendlineToolText: e.trendlinetooltext,
                            trendlineThickness: e.trendlinethickness,
                            trendlineAlpha: e.trendlinealpha,
                            showTrendlinesOnTop: e.showtrendlinesontop,
                            showAxisLine: a ? 0 : (0, r.pluckNumber)(e.showyaxisline, e.showaxislines, e.drawAxisLines, t.showyaxisline, 0),
                            axisLineThickness: (0, r.pluckNumber)(e.yaxislinethickness, e.axislinethickness, 1),
                            axisLineAlpha: (0, r.pluckNumber)(e.yaxislinealpha, e.axislinealpha, 100),
                            axisLineColor: (0, r.pluck)(e.yaxislinecolor, e.axislinecolor, "#000000"),
                            forceTrendBelow: !!t.is3D,
                            labelFont: e.yaxisvaluefont,
                            labelFontSize: e.yaxisvaluefontsize,
                            labelFontColor: e.yaxisvaluefontcolor,
                            labelAlpha: e.yaxisvaluealpha,
                            labelFontBold: e.yaxisvaluefontbold,
                            labelFontItalic: e.yaxisvaluefontitalic,
                            labelBdrColor: e.yaxisvaluebordercolor,
                            labelBdrAlpha: e.yaxisvalueborderalpha,
                            labelBgAlpha: e.yaxisvaluebgalpha,
                            labelLink: e.yaxisvaluelink,
                            labelBgColor: e.yaxisvaluebgcolor,
                            labelBdrThickness: e.yaxisvalueborderthickness,
                            labelBdrPadding: e.yaxisvalueborderpadding,
                            labelBdrRadius: e.yaxisvalueborderradius,
                            labelBdrDashed: e.yaxisvalueborderdashed,
                            labelBdrDashLen: e.yaxisvalueborderdashlen,
                            labelBdrDashGap: e.yaxisvalueborderdashgap
                        }
                    }, a.getBasexAxisConf = function() {
                        var e = this.getFromEnv("chart-attrib"),
                            t = this.config.is3D,
                            a = t ? r.chartPaletteStr.chart3D : r.chartPaletteStr.chart2D,
                            i = this.getFromEnv("color-manager");
                        return {
                            isVertical: !1,
                            isOpposit: (0, d["default"])(e.xaxisposition, "top"),
                            outCanfontFamily: (0, r.pluck)(e.outcnvbasefont, e.basefont, "Verdana,sans"),
                            outCanfontSize: (0, r.pluckFontSize)(e.outcnvbasefontsize, e.basefontsize, 10),
                            outCancolor: (0, r.pluck)(e.outcnvbasefontcolor, e.basefontcolor, i.getColor(a.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"),
                            axisNamePadding: e.xaxisnamepadding,
                            axisValuePadding: e.labelpadding,
                            axisNameFont: e.xaxisnamefont,
                            axisNameFontSize: e.xaxisnamefontsize,
                            axisNameFontColor: e.xaxisnamefontcolor,
                            axisNameFontBold: e.xaxisnamefontbold,
                            axisNameFontItalic: e.xaxisnamefontitalic,
                            axisNameBgColor: e.xaxisnamebgcolor,
                            axisNameBorderColor: e.xaxisnamebordercolor,
                            axisNameAlpha: e.xaxisnamealpha,
                            axisNameFontAlpha: e.xaxisnamefontalpha,
                            axisNameBgAlpha: e.xaxisnamebgalpha,
                            axisNameBorderAlpha: e.xaxisnameborderalpha,
                            axisNameBorderPadding: e.xaxisnameborderpadding,
                            axisNameBorderRadius: e.xaxisnameborderradius,
                            axisNameBorderThickness: e.xaxisnameborderthickness,
                            axisNameBorderDashed: e.xaxisnameborderdashed,
                            axisNameBorderDashLen: e.xaxisnameborderdashlen,
                            axisNameBorderDashGap: e.xaxisnameborderdashgap,
                            useEllipsesWhenOverflow: e.useellipseswhenoverflow,
                            divLineColor: (0, r.pluck)(e.vdivlinecolor, e.divlinecolor, i.getColor(a.divLineColor)),
                            divLineAlpha: (0, r.pluck)(e.vdivlinealpha, e.divlinealpha, t ? i.getColor("divLineAlpha3D") : i.getColor("divLineAlpha")),
                            divLineThickness: (0, r.pluckNumber)(e.vdivlinethickness, e.divlinethickness, 1),
                            divLineIsDashed: Boolean((0, r.pluckNumber)(e.vdivlinedashed, e.vdivlineisdashed, e.divlinedashed, e.divlineisdashed, 0)),
                            divLineDashLen: (0, r.pluckNumber)(e.vdivlinedashlen, e.divlinedashlen, 4),
                            divLineDashGap: (0, r.pluckNumber)(e.vdivlinedashgap, e.divlinedashgap, 2),
                            alternateGridColor: (0, r.pluck)(e.alternatevgridcolor, i.getColor("altVGridColor")),
                            alternateGridAlpha: (0, r.pluck)(e.alternatevgridalpha, i.getColor("altVGridAlpha")),
                            labelFont: e.labelfont,
                            labelFontSize: e.labelfontsize,
                            labelFontColor: e.labelfontcolor,
                            labelAlpha: e.labelalpha,
                            labelFontBold: e.labelfontbold,
                            labelFontItalic: e.labelfontitalic,
                            labelBdrColor: e.labelbordercolor,
                            labelBdrAlpha: e.labelborderalpha,
                            labelLink: e.labellink,
                            labelBgColor: e.labelbgcolor,
                            labelBdrThickness: e.labelborderthickness,
                            labelBdrPadding: e.labelborderpadding,
                            labelBdrRadius: e.labelborderradius,
                            labelBdrDashed: e.labelborderdashed,
                            labelBgAlpha: e.labelbgalpha,
                            labelBdrDashLen: e.labelborderdashlen,
                            labelBdrDashGap: e.labelborderdashgap,
                            axisMinValue: e.xaxisminvalue,
                            axisMaxValue: e.xaxismaxvalue,
                            adjustDiv: e.adjustvdiv,
                            labelDisplay: e.labeldisplay,
                            showLabels: e.showlabels,
                            rotateLabels: e.rotatelabels,
                            slantLabel: (0, r.pluckNumber)(e.slantlabels, e.slantlabel),
                            labelStep: (0, r.pluckNumber)(e.labelstep, e.xaxisvaluesstep),
                            showAxisValues: (0, r.pluckNumber)(e.showxaxisvalues, e.showxaxisvalue),
                            zeroPlaneColor: e.vzeroplanecolor,
                            trendlineColor: e.trendlinecolor,
                            trendlineToolText: e.trendlinetooltext,
                            trendlineThickness: e.trendlinethickness,
                            trendlineAlpha: e.trendlinealpha,
                            showTrendlinesOnTop: e.showtrendlinesontop,
                            axisLineThickness: (0, r.pluckNumber)(e.xaxislinethickness, e.axislinethickness, 1),
                            axisLineAlpha: (0, r.pluckNumber)(e.xaxislinealpha, e.axislinealpha, 100)
                        }
                    }, a.getConfig = function(e) {
                        return e ? this.config[e] : this.config
                    }, a._getSumValueSpace = function(e) {
                        var t, a = {},
                            i = this.config,
                            n = this.isBar,
                            o = this.getFromEnv("dataSource").chart,
                            l = i.showSum = (0, r.pluckNumber)(o.showsum, i.showSum, 0),
                            s = (0, r.pluckNumber)(i.stack100percent),
                            c = i.isstacked,
                            h = 0,
                            u = [],
                            d = 0;
                        if (this.iterateComponents((function(e) {
                                "cartesianStackGroup" !== e.getName() && "marimekkoStackgroup" !== e.getName() || u.push(e)
                            })), l && s && c && u.length) {
                            for (t = u.length - 1; t >= 0; t--) a = u[t].getMaxSumValueSpace(), n ? h = Math.max(h, a.maxWidth) : d = Math.max(d, a.maxHeight);
                            d > e && (d = e), h > e && (h = e)
                        }
                        return {
                            top: d,
                            right: h
                        }
                    }, a.setAxisDimention = function() {
                        var e, t, a = this.getChildren("xAxis") && this.getChildren("xAxis")[0],
                            i = this.getChildren("yAxis") && this.getChildren("yAxis")[0],
                            n = this.getChildren("scrollBar") && this.getChildren("scrollBar")[0] && this.getChildren("scrollBar")[0].config,
                            o = this.config,
                            l = o.xDepth || 0,
                            s = this.getFromEnv("chart-attrib"),
                            c = (0, r.pluckNumber)(s.canvasleftpadding),
                            h = (0, r.pluckNumber)(s.canvasrightpadding),
                            u = this.getChildren("canvas") && this.getChildren("canvas")[0].config,
                            d = u && u.canvasBorderWidth,
                            g = this.isScrollEnabled(),
                            p = (g || o.is3D) && o.shift || 0,
                            f = u.canvasPadding,
                            m = u.canvasLeft,
                            v = m + u.canvasWidth,
                            b = u.canvasPaddingLeft,
                            x = u.canvasPaddingRight,
                            y = u.canvasTop,
                            C = o.sumValueSpace && o.sumValueSpace.top || 0,
                            k = u.canvasPaddingTop;
                        e = null == c ? Math.max(b, f) : c, t = null == h ? Math.max(x, f) : h, a && a.setAxisConfig({
                            canvasPaddingLeft: e,
                            canvasPaddingRight: t
                        }), a && a.setAxisDimention({
                            x: m + l + e,
                            y: a.config.isOpposit ? y - d - (g && +n.isOpposite === a.config.isOpposit ? p : 0) - C : o.canvasBottom + (o.is3D || g && +n.isOpposite === a.config.isOpposit ? p : 0) + d,
                            opposite: a.config.isOpposit ? o.canvasBottom + p + d : y - d - p,
                            axisLength: u.canvasWidth - l - e - t
                        }), i && i.setAxisDimention({
                            x: i.config.isOpposit ? v + d : m - d,
                            y: y + k,
                            opposite: i.config.isOpposit ? m - d : v + d,
                            axisLength: u.canvasHeight - k - u.canvasPaddingBottom
                        })
                    }, a._getTrendLineMinMax = function(e, t) {
                        var a, i, n, o, r, l = t,
                            s = "v" === e ? this.getFromEnv("dataSource").vtrendlines : this.getFromEnv("dataSource").trendlines,
                            c = {
                                max: -Infinity,
                                min: Infinity
                            };
                        if (l = l || "p", s)
                            for (i = 0, o = s.length; i < o; i += 1)
                                for (n = 0, r = s[i].line ? s[i].line.length : 0; n < r; n += 1) a = s[i].line[n], "s" === l && "s" !== a.parentyaxis || "s" !== l && "s" === a.parentyaxis || (c.max = p(a.startvalue || -Infinity, a.endvalue || -Infinity, c.max), c.min = f(a.startvalue || Infinity, a.endvalue || Infinity, c.min));
                        return c
                    }, a.setScrollType = function(e) {
                        "none" !== e && "smart" !== e && "always" !== e || (this.config.scrollType = e, "none" === e ? this.disableScroll() : this.enableScroll())
                    }, a.getScrollType = function() {
                        return this.config.scrollType
                    }, a._createScrollBar = function() {
                        var e, t = this,
                            a = t.getFromEnv("animationManager"),
                            i = t.getChildren("scrollBar") && t.getChildren("scrollBar")[0];
                        i || (i = t.attachChild(new g.ScrollBar, "scrollBar")), i.configure({
                            isHorizontal: !t.isBar
                        }), i.attachEventHandlers({
                            scrollStart: function(a) {
                                e = a, t.fireChartInstanceEvent("scrollstart", {
                                    scrollPosition: a
                                })
                            },
                            scroll: function(e) {
                                a.setAnimationState("scroll"), t.fireChartInstanceEvent("onScroll", {
                                    scrollPosition: e
                                }), t.fireEvent("onScroll", {
                                    scrollPosition: e
                                })
                            },
                            scrollEnd: function(a) {
                                t.fireChartInstanceEvent("scrollend", {
                                    scrollPosition: a,
                                    prevScrollPosition: e
                                })
                            }
                        })
                    }, a._disposeScrollBar = function() {
                        var e = this.getChildren("scrollBar") && this.getChildren("scrollBar")[0];
                        e && e.remove()
                    }, a.getScrollbarDimension = function() {
                        var e, t, a, i, n, o, l, s, c, h, u, d, g, p, f, m, v, x = this.getChildren("xAxis")[0],
                            y = x.config,
                            C = y.axisRange,
                            k = y.scrollOptions || (y.scrollOptions = {}),
                            S = C.max,
                            w = C.min,
                            L = k.vxLength,
                            A = this.getChildren("scrollBar")[0],
                            N = this.getChildren("canvas")[0].config;
                        if (A) return e = A.config, t = N.canvasLeft, a = N.canvasTop, i = N.canvasHeight, n = N.canvasWidth, o = N.canvasBorderWidth, l = y.showAxisLine && y.axisLineThickness || 0, s = (0, r.pluckNumber)(o, y.lineStartExtension), c = (0, r.pluckNumber)(o, y.lineEndExtension), k.viewPortMin = w, k.viewPortMax = S, h = (f = (g = x.getVisibleConfig()).maxValue - (p = g.minValue)) / (m = C.max - C.min), v = (p - C.min) / (m - f), u = k.windowedCanvasWidth = x.getPixel(L, b), d = k.fullCanvasWidth = x.getPixel(S - w, b) - u, e.scrollRatio = h, e.roundEdges = N.isRoundEdges, e.fullCanvasWidth = d, e.windowedCanvasWidth = u, e.scrollPosition = v, e.isHorizontal ? (e.scrollPosition = v, {
                            x: t - s,
                            y: e.isOpposite ? a - o - l - (this.config.shift || 0) - (e.padding || 0) : a + i + o + l,
                            width: n + s + c
                        }) : (e.scrollPosition = y.isReverse ? 1 - v : v, {
                            x: e.isOpposite ? t + n + o + (e.padding || 0) : t - this.config.shift - o,
                            y: a - o - (e.padding || 0),
                            height: i + 2 * o
                        })
                    }, a.enableScroll = function() {
                        this._createScrollBar()
                    }, a.disableScroll = function() {
                        this._disposeScrollBar()
                    }, a.isScrollEnabled = function() {
                        var e = this.getChildren("scrollBar");
                        return !(!e || !e[0] || e[0].getState("removed"))
                    }, a.decideScroll = function() {
                        var e = this.getScrollType();
                        "always" === e || "smart" === e && 1 !== this.getFromEnv("axis").getZoom() ? this.enableScroll() : this.disableScroll()
                    }, t
                }(o["default"]);
            t["default"] = x
        },
        418: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(419)),
                r = a(193),
                l = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, n["default"])(t, e);
                    var a = t.prototype;
                    return a._spaceManager = function() {
                        var e, t, a, i, n, o, l, s, c, h, u, d, g, p, f = this.config,
                            m = this.getChildren("xAxis") && this.getChildren("xAxis")[0],
                            v = f.legendposition ? f.legendposition.split("-") : [],
                            b = f.xDepth,
                            x = f.yDepth,
                            y = f.canvasBgDepth,
                            C = f.canvasBaseDepth,
                            k = f.canvasBasePadding,
                            S = this.getChildren("canvas")[0],
                            w = S.config.canvasBorderWidth,
                            L = f.realTimeConfig && f.realTimeConfig.showRTValue,
                            A = f.borderWidth,
                            N = f.canvasMarginTop,
                            T = f.canvasMarginBottom,
                            E = f.canvasMarginLeft,
                            F = f.canvasMarginRight,
                            _ = f.minCanvasHeight,
                            P = f.minCanvasWidth,
                            D = f.minChartWidth,
                            I = f.minChartHeight,
                            M = f.height,
                            O = f.width,
                            R = !1,
                            B = !1,
                            V = f.origCanvasTopMargin,
                            G = f.origCanvasBottomMargin,
                            z = f.origCanvasLeftMargin,
                            H = f.origCanvasRightMargin;
                        f.canvasWidth - 2 * A < D && (h = (f.canvasWidth - D) / 2), f.canvasHeight - 2 * A < I && (c = (f.canvasHeight - I) / 2), this._allocateSpace({
                            top: c || A,
                            bottom: c || A,
                            left: h || A,
                            right: h || A
                        }), this._manageYAxisSpace(), this._allocateSpace(this._manageActionBarSpace && this._manageActionBarSpace(.225 * f.availableHeight) || {}), this._manageLegendSpace && f.showLegend && this._manageLegendSpace(void 0), e = v[0] === r.POSITION_TOP || v[0] === r.POSITION_BOTTOM ? .6 * f.availableHeight : .6 * f.availableWidth, x && (this._allocateSpace({
                            bottom: x
                        }), f.shift = b + k + C), y && this._allocateSpace({
                            right: y
                        }), f.canvasWidth - 2 * w < P && (d = (f.canvasWidth - P) / 2), this._allocateSpace({
                            left: d || w,
                            right: d || w
                        }), P > O - E - F && (B = !0, t = f.canvasWidth - P, p = E + F, E = f.canvasMarginLeft = t * E / p, F = f.canvasMarginRight = t * F / p), n = E > f.canvasLeft ? E - f.canvasLeft : 0, o = F > O - f.canvasRight ? F + f.canvasRight - O : 0, this._allocateSpace({
                            left: n,
                            right: o
                        }), B && (p = z + H, (s = f.canvasWidth) > P && (n = (t = s - P) * z / p, o = t * H / p), this._allocateSpace({
                            left: n,
                            right: o
                        })), f.actualCanvasMarginRight = o, f.actualCanvasMarginBottom = i, this._manageChartMenuBar(e), e = .2 * f.availableHeight, this._getSumValueSpace ? (f.sumValueSpace = this._getSumValueSpace(e), this._allocateSpace(f.sumValueSpace)) : f.sumValueSpace = {
                            top: 0,
                            right: 0
                        }, e = .3 * f.availableHeight, f.realtimeEnabled && (L ? this._allocateSpace(this._realTimeValuePositioning(e)) : this._hideRealTimeValue()), this._resetViewPortConfig && this._resetViewPortConfig(), this._setAxisScale && this._setAxisScale(), e = .6 * f.availableHeight, m && this._calculateChartShift("xAxis"), f.xAxisSpaceAllocation = g = m && m.placeAxis(e), m && this._allocateSpace(g), f.canvasHeight - 2 * w < _ && (u = (f.canvasHeight - _) / 2), this._allocateSpace({
                            top: u || w,
                            bottom: u || w
                        }), this._allocateSpace({
                            bottom: C
                        }), _ > M - N - T && (R = !0, t = f.canvasHeight - _, p = N + T, N = f.canvasMarginTop = t * N / p, T = f.canvasMarginBottom = t * T / p), a = N > f.canvasTop ? N - f.canvasTop : 0, i = T > M - f.canvasBottom ? T + f.canvasBottom - M : 0, this._allocateSpace({
                            top: a,
                            bottom: i
                        }), R && (p = V + G, (l = f.canvasHeight) > _ && (a = (t = l - _) * V / p, i = t * G / p), this._allocateSpace({
                            top: a,
                            bottom: i
                        })), f.actualCanvasMarginTop = a, f.actualCanvasMarginLeft = n, S.setDimension({
                            top: f.canvasTop,
                            left: f.canvasLeft,
                            width: f.canvasWidth,
                            height: f.canvasHeight
                        })
                    }, a._manageYAxisSpace = function() {
                        var e, t, a, i = this.config,
                            n = this.getChildren("yAxis"),
                            o = [];
                        for (t = 0; t < (n && n.length); t++)(e = n[t]) && this._calculateChartShift("yAxis"), a = e && e.placeAxis(.7 * i.availableWidth) || {}, o.push({
                            axisIndex: t,
                            spaceTaken: a
                        }), e && this._allocateSpace(a);
                        i.yAxisSpaceAllocation = o
                    }, a._postSpaceManagement = function() {
                        var e, t = this.config,
                            a = this.getChildren(),
                            i = a.xAxis && a.xAxis[0],
                            n = a.legend && a.legend[0],
                            o = t.xDepth,
                            r = this.getChildren("canvas");
                        for (this.setAxisDimention && this.setAxisDimention(), i && this._allocateXAxisLabelSpace(i), i && i.shiftLabels(-o, 0), n && n.postSpaceManager(), e = 0; e < (r && r.length); e++) r[e].setCanvasPadding();
                        this.setAxisDimention && this.setAxisDimention(), this.allocateDimensionOfChartMenuBar()
                    }, a._calculateChartShift = function(e) {
                        var t, a = this.getChildren("scrollBar") && this.getChildren("scrollBar")[0],
                            i = this.getChildren(e) && this.getChildren(e)[0],
                            n = a && a.config,
                            o = i.config.isVertical,
                            r = {};
                        a && !a.getState("removed") && (t = a.getLogicalSpace()) && (o && !n.isHorizontal ? (this.config.shift = t.width + n.conf.padding, r[n.isOpposite ? "right" : "left"] = this.config.shift, this._allocateSpace(r)) : !o && n.isHorizontal && (this.config.shift = t.height + n.conf.padding, r[n.isOpposite ? "top" : "bottom"] = this.config.shift, this._allocateSpace(r)))
                    }, t
                }(o["default"]);
            t["default"] = l
        },
        419: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t._drawDataset = M, t.configurer = O, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(236)),
                r = i(a(420)),
                l = i(a(423)),
                s = a(201),
                c = i(a(424)),
                h = a(303),
                u = i(a(426)),
                d = i(a(428)),
                g = i(a(430)),
                p = i(a(218)),
                f = a(200),
                m = i(a(432)),
                v = a(193),
                b = i(a(195)),
                x = (0, s.getDep)("redraphael", "plugin"),
                y = "VML" === x.type,
                C = Math.max,
                k = Math.min,
                S = Math.round,
                w = {
                    datalabelclick: !0,
                    connectorclick: !0,
                    categoryclick: !0,
                    processclick: !0,
                    milestoneclick: !0,
                    labelclick: !0,
                    dataplotclick: !0
                },
                L = v.preDefStr.SEVENTYSTRING,
                A = v.preDefStr.AUTOSTRING,
                N = "onpointerover" in window.document,
                T = function(e, t, a) {
                    return a.getFromEnv("animationManager").setAnimation({
                        el: "group",
                        attr: e,
                        container: t,
                        state: "appearing",
                        component: a,
                        label: "group"
                    })
                },
                E = function(e) {
                    var t = e.data.config;
                    t._containerMouseState = "mousedown", t._mdx1 = e.clientX !== v.UNDEF ? e.clientX : e.changedTouches && e.changedTouches[0].clientX, t.mdy1 = e.clientY !== v.UNDEF ? e.clientY : e.changedTouches && e.changedTouches[0].clientY, "touchstart" === e.type && (t._touchStartedAt = (new Date).getTime())
                },
                F = function(e) {
                    var t = e.data.config,
                        a = e.clientX !== v.UNDEF ? e.clientX : e.changedTouches && e.changedTouches[0].clientX,
                        i = e.clientY !== v.UNDEF ? e.clientY : e.changedTouches && e.changedTouches[0].clientY;
                    (Math.abs(t._mdx1 - a) >= 2.5 || Math.abs(t.mdy1 - i) >= 2.5) && (e.data.config._containerMouseState = v.UNDEF)
                },
                _ = function(e) {
                    (new Date).getTime() - e.data.config._touchStartedAt < 500 && setTimeout((function() {
                        P(e)
                    }))
                },
                P = function(e) {
                    var t, a = e.data,
                        i = a.getFromEnv("chartInstance"),
                        n = e.originalEvent,
                        o = a.config,
                        r = (0, v.getMouseCoordinate)(a.getFromEnv("chart-container"), n, a);
                    i.ref && "mousemove" !== o._containerMouseState && (t = (0, v.extend2)({
                        height: i.args.height,
                        width: i.args.width,
                        pixelHeight: a.getFromEnv("chartHeight"),
                        pixelWidth: a.getFromEnv("chartWidth"),
                        id: i.args.id,
                        renderer: i.args.renderer,
                        container: i.options.containerElement
                    }, r), a.fireChartInstanceEvent("chartclick", t), o.link && (!o.hotElemClicked || o.clickURLOverridesPlotLinks) && a.getFromEnv("linkClickFN").call({
                        link: o.link
                    }), o.hotElemClicked = !1)
                },
                D = function(e) {
                    var t = e.type,
                        a = e.data,
                        i = a.getFromEnv("eventListeners");
                    "mouseover" !== t && "touchstart" !== t || !1 !== a.config.mouseStateIn ? "mouseout" !== t && "touchend" !== t || (a.config.posOb = !1) : (a.config.mouseStateIn = !0, R.onContainerRollOver(e), i.push(b["default"].listen(y ? document : window, "mouseover", R.winMouseHover, a)))
                };

            function I() {
                var e, t, a, i, n = this,
                    o = n,
                    r = n.config,
                    l = "t" === r.toolbarVAlign ? "chartMenuBar" : "actionBar",
                    s = n.getFromEnv("tool-config");
                e = n.getChildren(l)[0], t = r.printOption.enabled, a = o.config.realTimeConfig || {}, i = e.attachChild(h.Hamburger, "tool", "hamburgerMenu-" + e.getId() + "-" + n.getId() + "-0"), n.addToEnv("hamburger", i), i.configure(Object.assign({}, s, {
                    name: "ContextIcon"
                })), i._mouseOutEvent || (i._mouseOutEvent = function() {
                    this.getChild("listContainer").hide()
                }), i._mouseOverEvent || (i._mouseOverEvent = function() {
                    this.getChild("listContainer").show()
                }), i.addEventListener("fc-mouseover", i._mouseOverEvent), i.addEventListener("fc-mouseout", i._mouseOutEvent), t && i.appendInMenu([{
                    name: "Print",
                    action: "click",
                    handler: function() {
                        n.getFromEnv("chartInstance").print()
                    }
                }]), o._setRTmenu && o._setRTmenu(a.showRTmenuItem, a.useMessageLog)
            }

            function M() {
                this.getChildren("canvas")[0]._mapChildren((function(e) {
                    e.syncDraw()
                }))
            }

            function O(e) {
                this.config.skipConfigureIteration = {}, this.parseChartAttr(e), this.createComponent(e), this.setTooltipStyle(), this.configureChildren()
            }(0, s.addDep)({
                name: "commonAnimation",
                type: "animationRule",
                extension: m["default"]
            });
            var R = function(e) {
                    (0, n["default"])(a, e), a.getName = function() {
                        return "CommonAPI"
                    };
                    var t = a.prototype;

                    function a() {
                        var t;
                        return (t = e.call(this) || this).addToEnv("stringConstants", {
                            COMPONENT: "component",
                            CANVAS: "canvas",
                            CAPTION: "caption"
                        }), t.addToEnv("getMouseCoordinate", v.getMouseCoordinate), t._drawDataset = M, t.config.mouseStateIn = !1, t.registerFactory("toolbox", l["default"]), t.registerFactory("canvas", r["default"]), t._firstConfigure = !0, t
                    }
                    return t.plotEventHandler = function(e, t, a, i) {
                        void 0 === t && (t = {});
                        var n, o, r = t.type,
                            l = a,
                            s = (0, v.getMouseCoordinate)(this.getFromEnv("chart-container"), t, this),
                            c = e && e.data("eventArgs") || i,
                            h = (0, v.extend2)(s, c),
                            u = this.fireGroupEvent,
                            d = e && e.data("groupId"),
                            g = function(e, a) {
                                t.FusionChartsPreventEvent = !0
                            };
                        "index" in h && !("dataIndex" in h) && (h.dataIndex = h.index), "value" in h && !("dataValue" in h) && (h.dataValue = h.value), "dataplotrollover" === (l = (0, v.pluck)(l, "dataplotclick").toLowerCase()) ? (t.FusionChartsPreventEvent = !1, u ? (0, f.raiseEventGroup)(d, l, h, this.getFromEnv("chartInstance"), v.UNDEF, v.UNDEF, g) : this.fireChartInstanceEvent(l, h, v.UNDEF, v.UNDEF, g)) : u && !w[l] ? (0, f.raiseEventGroup)(d, l, h, this.getFromEnv("chartInstance")) : this.fireChartInstanceEvent(l, h), "fc-click" !== r && "click" !== r && "mouseup" !== r && "touchend" !== r || !/click/i.test(l) || (o = (n = this.getFromEnv()) && n.linkClickFN, h.link && o && o.call({
                            link: h.link
                        }, !0))
                    }, t.getName = function() {
                        return "Cartesian"
                    }, t.preConfigure = function(t) {
                        var a = this.getFromEnv("number-formatter");
                        this.addToEnv("chart-attrib", t.chart), a ? a.configure() : this.addToEnv("number-formatter", new p["default"](this)), e.prototype.preConfigure.call(this, t)
                    }, t.postConfigure = function(t) {
                        e.prototype.postConfigure.call(this, t), this._firstConfigure = !1
                    }, t.setDefaults = function() {
                        e.prototype.setDefaults.call(this);
                        var t = this.getFromEnv("number-formatter");
                        t && t.setDefaults && t.setDefaults()
                    }, t.getType = function() {
                        return "chartAPI"
                    }, t.parseChartAttr = function(e) {
                        var t, a, i, n, o, r, l, s, c, h, u, d, p, f, m = e || this.getFromEnv("dataSource"),
                            b = this.config.is3D,
                            x = b ? v.chartPaletteStr.chart3D : v.chartPaletteStr.chart2D,
                            y = this.isBar,
                            S = this.getFromEnv("color-manager");
                        S || (S = new g["default"](this), this.addToEnv("color-manager", S)), m.chart = m.chart || m.graph || m.map || {}, delete m.map, delete m.graph, !(t = m.chart) && (t = m.chart = {}), a = this.config || (this.config = {}), (0, v.parseConfiguration)(t, a, {}, {
                            showvalues: !0,
                            crosslinecolor: !0,
                            drawcrosslineontop: !0,
                            crosslinealpha: !0,
                            drawcrossline: !0
                        }), a.showValues = (0, v.pluckNumber)(t.showvalues, a.showvalues), a.viewPortConfig = {
                            scaleY: 1,
                            scaleX: 1,
                            x: 0,
                            y: 0
                        }, this.addToEnv("tool-config", function() {
                            for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a];
                            var i = t[0],
                                n = t.slice(1);
                            return n.forEach((function(e) {
                                for (var t in e) e.hasOwnProperty(t) && e[t] !== v.UNDEF && (i[t] = e[t])
                            })), i
                        }({}, {
                            scale: t.toolbarbuttonscale,
                            width: t.toolbarbuttonwidth,
                            height: t.toolbarbuttonheight,
                            radius: t.toolbarbuttonradius,
                            spacing: t.toolbarbuttonspacing,
                            marginTop: t.toolbarbuttonmargintop,
                            marginLeft: t.toolbarbuttonmarginleft,
                            marginRight: t.toolbarbuttonmarginright,
                            marginBottom: t.toolbarbuttonmarginbottom,
                            fill: t.toolbarbuttoncolor,
                            labelFill: t.toolbarlabelcolor,
                            symbolFill: t.toolbarsymbolcolor,
                            hoverFill: t.toolbarbuttonhovercolor,
                            stroke: t.toolbarbuttonbordercolor,
                            symbolStroke: t.toolbarsymbolbordercolor,
                            strokeWidth: t.toolbarbuttonborderthickness,
                            symbolStrokeWidth: t.toolbarsymbolborderthickness,
                            bSymbolPadding: t.toolbarsymbolpadding,
                            symbolHPadding: t.toolbarsymbolhpadding,
                            symbolVPadding: t.toolbarsymbolvpadding,
                            hAlign: t.toolbarhalign,
                            vAlign: t.toolbarvalign
                        })), b && (y ? (a.xDepth = 5, a.yDepth = 5) : (a.xDepth = 10, a.yDepth = 10), a.showCanvasBase = f = Boolean((0, v.pluckNumber)(t.showcanvasbase, 1)), a.canvasBasePadding = (0, v.pluckNumber)(t.canvasbasepadding, 2), a.canvasBaseDepth = f ? (0, v.pluckNumber)(t.canvasbasedepth, 10) : 0, a.canvasBgDepth = (0, v.pluckNumber)(t.canvasbgdepth, 3)), S && S.configure(), a.placeAxisLabelsOnTop = (0, v.pluckNumber)(t.placexaxislabelsontop, 0), a.enableAnimation = (0, v.pluckNumber)(t.animation, t.defaultanimation, 1), a.showToolTip = (0, v.pluckNumber)(t.showtooltip, 1), a.printOption = {
                            enabled: (0, v.pluckNumber)(t.printshowbutton, t.showprintmenuitem, 0)
                        }, a.drawCrossLineOnTop = (0, v.pluckNumber)(t.drawcrosslineontop, 1), l = a.style = {}, this.addToEnv("style", l), a.textDirection = "1" === t.hasrtltext ? "rtl" : v.BLANKSTRING, l.inCanfontFamily = i = (0, v.pluck)(t.basefont, "Verdana,sans"), l.inCanfontSize = n = (0, v.pluckFontSize)(t.basefontsize, 10), l.inCancolor = o = (0, v.pluck)(t.basefontcolor, S.getColor(x.baseFontColor)), l.outCanfontFamily = (0, v.pluck)(t.outcnvbasefont, i), l.fontSize = r = (0, v.pluckFontSize)(t.outcnvbasefontsize, n), l.outCanfontSize = r + v.PXSTRING, l.outCancolor = (0, v.pluck)(t.outcnvbasefontcolor, o).replace(/^#? ([a-f0-9]+)/gi, "#$1"), l.baseFontSize = n, l.inCanfontSize = n + v.PXSTRING, l.inCancolor = o.replace(/^#? ([a-f0-9]+)/gi, "#$1"), l.inCanvasStyle = h = {
                            fontFamily: i,
                            fontSize: n,
                            color: o
                        }, a.valueFontAlpha = (0, v.pluckNumber)(t.valuefontalpha, t.valuealpha, 100), a.valueBgAlpha = (0, v.pluckNumber)(t.valuebgalpha, t.valuealpha, 100), a.valueBorderAlpha = (0, v.pluckNumber)(t.valueborderalpha, t.valuealpha, 100), a.valueFontColor = (0, v.pluck)(t.valuefontcolor, o), a.valueBgColor = (0, v.pluck)(t.valuebgcolor) || v.BLANKSTRING, l.inCanLineHeight = u = (0, v.setLineHeight)(h), p = (0, v.getFirstValue)(t.valuebordercolor, v.BLANKSTRING), p = a.valueBorderColor = p ? (0, v.convertColor)(p, a.valueBorderAlpha) : v.BLANKSTRING, a.reverseXAxis = this.config.allowreversexaxis && (0, v.pluckNumber)(t.reversexaxis, 0), a.showBorder = (0, v.pluckNumber)(t.showborder, a.showBorder, b ? 0 : 1), a.borderWidth = C(a.showBorder ? (0, v.pluckNumber)(t.borderthickness, 1) : 0, 0), a.useplotgradientcolor = (0, v.pluckNumber)(t.plotgradientcolor, a.useplotgradientcolor, 0), a.valuefontbold = (0, v.pluckNumber)(t.valuefontbold, a.valuefontbold), a.dataLabelStyle = d = {
                            fontFamily: (0, v.pluck)(t.valuefont, i),
                            fontSize: (0, v.pluck)(t.valuefontsize, (0, v.pInt)(n, 10)) + v.PXSTRING,
                            lineHeight: u,
                            color: (0, v.convertColor)((0, v.pluck)(t.valuefontcolor, o), a.valueFontAlpha),
                            fontWeight: a.valuefontbold ? "bold" : "normal",
                            fontStyle: (0, v.pluckNumber)(t.valuefontitalic) ? "italic" : "normal",
                            border: p || t.valuebgcolor ? (0, v.pluckNumber)(t.valueborderthickness, 1) + "px solid" : v.BLANKSTRING,
                            borderColor: p,
                            borderThickness: (0, v.pluckNumber)(t.valueborderthickness, 1),
                            borderPadding: (0, v.pluckNumber)(t.valueborderpadding, 2),
                            borderRadius: (0, v.pluckNumber)(t.valueborderradius, 0),
                            backgroundColor: t.valuebgcolor ? (0, v.convertColor)(t.valuebgcolor, a.valueBgAlpha) : v.BLANKSTRING,
                            borderDash: (0, v.pluckNumber)(t.valueborderdashed, 0) ? (0, v.getDashStyle)((0, v.pluckNumber)(t.valueborderdashlen, 4), (0, v.pluckNumber)(t.valueborderdashgap, 2)) : v.DASH_DEF
                        }, (0, v.setLineHeight)(d), a.legendposition = (0, v.pluck)(t.legendposition, v.POSITION_BOTTOM), a.alignLegendWithCanvas = (0, v.pluckNumber)(t.alignlegendwithcanvas, 1), a.origMarginTop = (0, v.pluckNumber)(t.charttopmargin, this.chartTopMargin, 15), a.origMarginLeft = (0, v.pluckNumber)(t.chartleftmargin, this.chartLeftMargin, 15), a.origMarginBottom = (0, v.pluckNumber)(t.chartbottommargin, this.chartBottomMargin, 15), a.origMarginRight = (0, v.pluckNumber)(t.chartrightmargin, this.chartRightMargin, 15), a.origCanvasLeftMargin = (0, v.pluckNumber)(t.canvasleftmargin, 0), a.origCanvasRightMargin = (0, v.pluckNumber)(t.canvasrightmargin, 0), a.origCanvasTopMargin = (0, v.pluckNumber)(t.canvastopmargin, 0), a.origCanvasBottomMargin = (0, v.pluckNumber)(t.canvasbottommargin, 0), a.minChartWidthPercent = (0, v.pluckNumber)(t.minchartwidth, this.minChartWidth, 50) / 100, a.minChartHeightPercent = (0, v.pluckNumber)(t.minchartheight, this.minChartHeight, 50) / 100, a.minCanvasWidthPercent = (0, v.pluckNumber)(t.mincanvaswidth, this.minCanvasWidth, 60) / 100, a.minCanvasHeightPercent = (0, v.pluckNumber)(t.mincanvasheight, this.minCanvasHeight, 30) / 100, s = (0, v.pluck)(t.zeroplanecolor, t.divlinecolor, S.getColor(x.divLineColor)), c = (0, v.pluck)(t.zeroplanealpha, t.divlinealpha, S.getColor("divLineAlpha")), a.zeroPlaneColor = (0, v.convertColor)(s, c), a.zeroPlaneBorderColor = (0, v.convertColor)((0, v.pluck)(t.zeroplanebordercolor, s), (0, v.pluckNumber)(t.zeroplaneshowborder, 1) ? c : 0), a.zeroPlaneShowBorder = (0, v.pluckNumber)(t.zeroplaneshowborder, 1), a.realtimeEnabled = (0, v.pluckNumber)(t.realtimeenabled, this.isRealTime), a.showLegend = (0, v.pluckNumber)(t.showlegend, this.showLegend, 1), a.link = t.clickurl, a.transposeAxis = (0, v.pluckNumber)(this.transposeAxis, t.transposeaxis, 0), a.useEllipsesWhenOverflow = (0, v.pluckNumber)(t.useellipseswhenoverflow, t.useellipsewhenoverflow, 1), a.drawTrendRegion = (0, v.pluckNumber)(t.drawcrossline, 0), a.plotcolorintooltip = (0, v.pluckNumber)(t.plotcolorintooltip, this.config.singleseries ? 0 : 1), a.plotbinsize = k((0, v.pluckNumber)(t.plotbinsize, this.plotbinsize, .5), 1), a.labelbinsize = k((0, v.pluckNumber)(t.labelbinsize, 1), 1), a.labelbinsize = a.plotbinsize > a.labelbinsize ? a.plotbinsize : a.labelbinsize, a.enableMouseOutEvent = (0, v.pluckNumber)(t.enablemouseoutevent, this.enableMouseOutEvent, 1), a.plotSpacePercent = Math.max((0, v.pluckNumber)(t.plotspacepercent, this.plotSpacePercent), 0), a.maxColWidth = Math.abs((0, v.pluckNumber)(t.maxcolwidth, 50)), a.maxBarHeight = Math.abs((0, v.pluckNumber)(t.maxbarheight, 50)), a.overlapColumns = (0, v.pluckNumber)(t.overlapcolumns, t.overlapbars, a.is3D ? 0 : 1), a.plotPaddingPercent = t.plotpaddingpercent, a.tooltipgrayoutcolor = (0, v.pluck)(t.tooltipgrayoutcolor, v.preDefStr.colors.AAAAAA), a.clickURLOverridesPlotLinks = (0, v.pluckNumber)(t.clickurloverridesplotlinks, 0), a.toolbarX = (0, v.pluckNumber)(t.toolbarx), a.toolbarY = (0, v.pluckNumber)(t.toolbary), a.toolbarPosition = function(e) {
                            var t = e;
                            switch (t) {
                                case "tr":
                                case "rt":
                                case "top right":
                                case "right top":
                                    t = "tr";
                                    break;
                                case "br":
                                case "rb":
                                case "bottom right":
                                case "right bottom":
                                    t = "br";
                                    break;
                                case "tl":
                                case "lt":
                                case "top left":
                                case "left top":
                                    t = "tl";
                                    break;
                                case "bl":
                                case "lb":
                                case "bottom left":
                                case "left bottom":
                                    t = "bl";
                                    break;
                                default:
                                    t = "tr"
                            }
                            return t
                        }((0, v.pluck)(t.toolbarposition, "tr").toLowerCase()), a.toolbarHAlign = "left" === (v.BLANKSTRING + t.toolbarhalign).toLowerCase() ? "l" : a.toolbarPosition.charAt(1), a.toolbarVAlign = "bottom" === (v.BLANKSTRING + t.toolbarvalign).toLowerCase() ? "b" : a.toolbarPosition.charAt(0), a.toolbarVMargin = (0, v.pluckNumber)(t.toolbarvmargin, 6), a.toolbarHMargin = (0, v.pluckNumber)(t.toolbarhmargin, 10), this.addToEnv("chartConfig", a), this.addToEnv("linkClickFN", (0, v.getLinkAction)(this.getFromEnv("dataSource"), this)), this.addToEnv("dataLabelStyle", d)
                    }, t.createComponent = function() {
                        var e;
                        e = this.config.skipConfigureIteration, this.createBaseComponent(), this.getFromEnv("animationManager").setAnimationState(this._firstConfigure ? "initial" : "update"), (0, v.componentFactory)(this, c["default"], "caption"), e.caption = !0, (0, v.componentFactory)(this, u["default"], "subCaption"), e.subCaption = !0, (0, v.componentFactory)(this, d["default"], "background"), e.background = !0, this._createConfigurableComponents && this._createConfigurableComponents(), this.config.realtimeEnabled && this._realTimeConfigure && this._realTimeConfigure()
                    }, t.configureChildren = function() {
                        var e = this;
                        e._mapChildren((function(t) {
                            !t.getState("removed") && e.config.skipConfigureIteration[t.getName()] && t.configure && t.configure()
                        }))
                    }, t.attachMenuButtons = function() {
                        I.call(this)
                    }, t.configureAttributes = function(e) {
                        O.call(this, e)
                    }, t.setTooltipStyle = function() {
                        var e = this.config;
                        this.getFromEnv("toolTipController").setStyle({
                            backgroundColor: v.hasSVG ? (0, v.convertColor)(e.tooltipbgcolor || "FFF", e.tooltipbgalpha || 100) : (e.tooltipbgcolor || "FFF").replace(/\s+/g, "").replace(/^#?([a-f0-9]+)/gi, "#$1"),
                            color: (e.tooltipcolor || e.basefontcolor || "545454").replace(/\s+/g, "").replace(/^#?([a-f0-9]+)/gi, "#$1"),
                            borderColor: v.hasSVG ? (0, v.convertColor)(e.tooltipbordercolor || "666", e.tooltipborderalpha || 100) : (e.tooltipbordercolor || "666").replace(/\s+/g, "").replace(/^#?([a-f0-9]+)/gi, "#$1"),
                            borderWidth: (0, v.pluckNumber)(e.tooltipborderthickness, 1) + "px",
                            showToolTipShadow: (0, v.pluckNumber)(e.showtooltipshadow, e.showshadow, 1),
                            borderRadius: (0, v.pluckNumber)(e.tooltipborderradius, 0) + "px",
                            fontSize: (0, v.pluckNumber)(e.basefontsize, 10) + "px",
                            fontFamily: e.basefont || this.getFromEnv("style").inCanfontFamily,
                            padding: (0, v.pluckNumber)(e.tooltippadding || 3) + "px"
                        })
                    }, t.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        t.valuefontbold = 0, t.stickytracking = 1, t.usemessagelog = 0, t.zeroplanethickness = v.UNDEF, t.animationeffect = "linear", t.showshadow = 1, t.showhovereffect = v.UNDEF, t.plothovereffect = v.UNDEF, t.anchorhovereffect = v.UNDEF, t.plotborderdashed = v.UNDEF, t.stack100percent = v.UNDEF, t.showpercentvalues = v.UNDEF, t.showpercentintooltip = v.UNDEF, t.plotbordercolor = v.UNDEF, t.showtooltip = 1, t.seriesnameintooltip = 1, t.rotatevalues = 0, t.minimizetendency = 0, t.plotfillangle = 270, t.valuepadding = 2, t.useplotgradientcolor = 1, t.plotborderthickness = 1, t.plotfillalpha = L, t.showvalues = 1, t.valueposition = A, t.drawcrossline = v.UNDEF, t.tooltipsepchar = ", ", t.usedataplotcolorforlabels = 0, t.placevaluesinside = 0, t.showplotborder = 1, t.use3dlighting = 1, t.useroundedges = 0, t.plotspacepercent = 20, t.plotpaddingpercent = v.UNDEF, t.plotfillratio = v.UNDEF, t.maxcolwidth = 50, t.plotborderdashlen = 5, t.plotborderdashgap = 4, t.useScaleRecursively = !0, t.formatnumberscale = 1, t.decimals = 2, t.decimalprecision = 10, t.tooltipbgcolor = "FFF", t.tooltipcolor = v.UNDEF, t.tooltipbordercolor = "666", t.tooltipbgalpha = 100, t.tooltipborderthickness = 1, t.showtooltipshadow = v.UNDEF, t.basefontsize = 10, t.basefont = "Verdana, sans", t.tooltipborderradius = 0, t.tooltippadding = 3, t.tooltipborderalpha = 100, t.origw = v.UNDEF, t.origh = v.UNDEF, t.showBorder = v.UNDEF
                    }, t.configure = function(t) {
                        var a = t;
                        this.sanitizeData(a), this.addToEnv("dataSource", a), this.fireEvent("internal.dataSanitized", {}), a = this.getFromEnv("dataSource"), e.prototype.configure.call(this, a)
                    }, t._checkInvalidData = function() {
                        var e = this.getFromEnv("dataSource"),
                            t = this.getFromEnv("chartInstance");
                        if (!(this.isWidget || this.isMap || e.data && 0 !== e.data.length || e.dataset || e.value || e.lineset || e.annotations || e.category || e.tasks || e.process || e.axis)) return t.__state.dataReady = !1, t.jsVars.hasNativeMessage = !0, t.jsVars.drawCount += 1, !0
                    }, t._checkInvalidSpecificData = function() {
                        var e = this.getFromEnv("dataSource"),
                            t = e.dataset,
                            a = e.categories;
                        if (!t || !a || 0 === a.length || !a[0].category) return !0
                    }, t.sanitizeData = function(e) {
                        e.chart = e.chart || e.graph || e.map || {}
                    }, t.setChartEvents = function() {
                        var e = this.getFromEnv("eventListeners"),
                            t = this.getFromEnv("dataSource"),
                            i = t && t.chart,
                            n = this.getFromEnv("paper") && this.getFromEnv("paper").canvas,
                            o = this.getFromEnv("chart-container"),
                            r = i && (0, v.pluckNumber)(i.enablechartmousemoveevent, 0);
                        (i || n) && (b["default"].unlisten(o, N ? "click" : "touchend", N ? P : _), e.push(b["default"].listen(o, "mousedown touchstart", E, this)), e.push(b["default"].listen(o, "mousemove touchmove", F, this)), e.push(b["default"].listen(o, N ? "click" : "touchend", N ? P : _, this)), b["default"].unlisten(n, "mouseover", D, this), b["default"].unlisten(n, "touchstart", D, this), b["default"].unlisten(n, "mouseout", D, this), b["default"].unlisten(n, "touchend", D, this), e.push(b["default"].listen(n, "mouseover touchstart mouseout touchend", D, this)), b["default"].unlisten(o, "mousemove", a.onContainerMouseMove, this), b["default"].unlisten(o, "touchmove", a.onContainerMouseMove, this), r && e.push(b["default"].listen(o, "mousemove touchmove", a.onContainerMouseMove, this)))
                    }, t.get = function(e, t) {
                        var a = this[e];
                        return t ? a && a[t] : a
                    }, t.prepareAttributes = function() {
                        this.config.hasChartMessage || e.prototype.prepareAttributes.call(this)
                    }, t.disposeChartStyleSheet = function() {
                        var e = this.getFromEnv("paper");
                        e && e.cssClear()
                    }, t.createChartStyleSheet = function() {
                        this.getFromEnv("paper").cssRender()
                    }, t._dispose = function() {
                        for (var t = this.getFromEnv("eventListeners"), a = t && t.length; a--;) t[a].unlisten();
                        e.prototype._dispose.call(this)
                    }, t._allocateSpace = function(e) {
                        var t, a, i = this.getChildren("canvas"),
                            n = i && i[0].config,
                            o = this.config,
                            r = o.canvasHeight,
                            l = o.canvasWidth,
                            s = o.availableHeight,
                            c = o.availableWidth;
                        a = o.canvasLeft += e.left || 0, t = o.canvasTop += e.top || 0, l = o.canvasWidth = C(l - ((e.left || 0) + (e.right || 0)), 0), r = o.canvasHeight = C(r - ((e.top || 0) + (e.bottom || 0)), 0), o.availableHeight = C(s - ((e.top || 0) + (e.bottom || 0)), 0), o.availableWidth = C(c - ((e.left || 0) + (e.right || 0)), 0), o.canvasRight = a + l, o.canvasBottom = t + r, n && (n.canvasPaddingLeft = C(n.canvasPaddingLeft, e.paddingLeft || 0), n.canvasPaddingRight = C(n.canvasPaddingRight, e.paddingRight || 0), n.canvasPaddingTop = C(n.canvasPaddingTop, e.paddingTop || 0), n.canvasPaddingBottom = C(n.canvasPaddingBottom, e.paddingBottom || 0)), i && i[0].setDimension({
                            top: t,
                            left: a,
                            width: l,
                            height: r
                        })
                    }, t._fetchCaptionPos = function(e) {
                        var t = this.config,
                            a = t.width,
                            i = this.getChildren("chartMenuBar") && this.getChildren("chartMenuBar")[0],
                            n = (i ? i.getLogicalSpace() : {}).width || 0,
                            o = (this.getChildren("caption") && this.getChildren("caption")[0]).config,
                            r = o.width,
                            l = "l" === t.toolbarHAlign,
                            s = t.width - e,
                            c = l ? e : s,
                            h = t.origMarginRight,
                            u = t.origMarginLeft,
                            d = l ? u : h;
                        return o.align === v.POSITION_MIDDLE ? c - r / 2 - d - n : "start" === o.align ? l ? -1 : a - t.canvasLeft - d - r - n + o.horizontalPadding : l ? a - (h + u + n + r) : -1
                    }, t._manageCaptionSpacing = function(e, t) {
                        return this.getChildren("caption")[0].manageSpace(e, t)
                    }, t._manageChartMenuBar = function(e) {
                        var t, a, i, n = this.config,
                            o = this.getChildren("chartMenuBar") && this.getChildren("chartMenuBar")[0],
                            r = n.toolbarY !== v.UNDEF,
                            l = o ? o.getLogicalSpace() : {
                                height: 0,
                                width: 0
                            },
                            s = (this.getChildren("caption") && this.getChildren("caption")[0]).config,
                            c = s.isOnTop,
                            h = n.width / 2,
                            u = n.canvasRight,
                            d = this.getFromEnv("gLegend") || {},
                            g = !!(d.conf || {}).showLegend,
                            p = 0,
                            f = u ? (n.canvasLeft + u) / 2 : h,
                            m = 0,
                            b = s.alignWithCanvas ? f : h;
                        return r && (l.height = 0), o && o.setDimension({
                            x: n.toolbarX !== v.UNDEF ? n.toolbarX : (0, v.pluckNumber)("l" === n.toolbarHAlign ? 0 : +n.width),
                            y: n.toolbarY !== v.UNDEF ? n.toolbarY : (0, v.pluckNumber)("t" === n.toolbarVAlign ? 0 : +n.height),
                            width: l.width,
                            height: l.height
                        }), delete s._offsetHeight, i = s.alignWithCanvas ? n.canvasWidth : n.width - n.origMarginLeft - n.origMarginRight, c ? (t = this._manageCaptionSpacing(e, i), m = this._fetchCaptionPos(b), s._offsetHeight = m < 0 ? l.height : 0, t.top = m < 0 ? (0, v.pluckNumber)(t.top, 0) + l.height : C(t.top, l.height), this._allocateSpace(t)) : (this._allocateSpace({
                            top: l.height
                        }), t = this._manageCaptionSpacing(e, i), this._allocateSpace(t)), g && this.config.gLegendEnabled && (p = d.getCalculatedLogicalSpace().width - d.getLogicalSpace().width, "left" === (a = d.conf.legendPosition ? d.conf.legendPosition.split("-") : [])[0] ? this._allocateSpace({
                            left: -p
                        }) : "right" === a[0] && this._allocateSpace({
                            right: -p
                        })), {
                            top: l ? C(l.height, t.top) : t.top,
                            bottom: t.bottom
                        }
                    }, t._manageSpace = function() {
                        var e, t, a, i, n, o, r, l, s, c, h, u, d = this.getChildren("canvas") && this.getChildren("canvas")[0],
                            g = d && d.config,
                            p = this.config,
                            f = this.getFromEnv("chartWidth"),
                            m = this.getFromEnv("chartHeight");
                        p.width = f, p.height = m, p.minChartHeight = s = p.minChartHeightPercent * m, p.minChartWidth = c = p.minChartWidthPercent * f, p.minCanvasWidth = e = p.minCanvasWidthPercent * c, p.minCanvasHeight = t = p.minCanvasHeightPercent * s, p.marginTop = a = p.origMarginTop, p.marginLeft = i = p.origMarginLeft, p.marginBottom = n = p.origMarginBottom, p.marginRight = o = p.origMarginRight, p.canvasMarginTop = p.origCanvasTopMargin, p.canvasMarginLeft = p.origCanvasLeftMargin, p.canvasMarginBottom = p.origCanvasBottomMargin, p.canvasMarginRight = p.origCanvasRightMargin, p.canvasHeight = r = p.height - p.marginTop - p.marginBottom, p.canvasWidth = l = p.width - p.marginLeft - p.marginRight, p.availableHeight = r - t, p.availableWidth = l - e, r < s && (h = m - s, p.canvasHeight = s, u = a + n, p.marginTop = h * a / u, p.marginBottom = h * n / u, p.availableHeight = s - t), l < c && (h = f - c, u = o + i, p.canvasWidth = c, p.marginLeft = h * i / u, p.marginRight = h * o / u, p.availableWidth = c - e), p.canvasLeft = p.marginLeft, p.canvasTop = p.marginTop, g && (g.canvasPaddingLeft = k(g.origCanvasLeftPad, S(.1 * p.height)), g.canvasPaddingRight = k(g.origCanvasRightPad, S(.1 * p.height)), g.canvasPaddingTop = k(g.origCanvasTopPad, S(.1 * p.height)), g.canvasPaddingBottom = k(g.origCanvasBottomPad, S(.1 * p.height))), this._spaceManager()
                    }, t._preDraw = function() {
                        this._mapChildren((function(e) {
                            e.getState("removed") || e.preDraw && e.preDraw()
                        })), this._setAxisLimits && this._setAxisLimits(), this._createToolBoxGantt && this._createToolBoxGantt()
                    }, t._clearTimers = function() {
                        var e, t = this.config && this.config.realTimeConfig,
                            a = this.config.timers,
                            i = a && a.setTimeout,
                            n = a && a.setInterval;
                        for (e in t && (t.refreshIntervalFlag = !1), i) clearTimeout(i[e]);
                        for (e in n) clearInterval(n[e])
                    }, t.setChartCursor = function() {
                        var e = this.config.link,
                            t = this.getFromEnv("paper").canvas.style;
                        x.svg ? t.cursor = e ? v.POINTER : "default" : this.getFromEnv("paper").canvas.style.cursor = e ? v.HAND : "default"
                    }, t._createLayers = function() {
                        var e, t = this.getFromEnv("animationManager");
                        e = this.getContainer("parentgroup") || this.addContainer("parentgroup", t.setAnimation({
                            el: "group",
                            attr: {
                                name: "parentgroup"
                            },
                            component: this
                        })), !this.getChildContainer("backgroundGroup") && this.addChildContainer("backgroundGroup", T({
                            name: "background"
                        }, e, this)), !this.getChildContainer("axisBottomGroup") && this.addChildContainer("axisBottomGroup", T({
                            name: "axisbottom"
                        }, e, this)), !this.getChildContainer("belowPlotGroup") && this.addChildContainer("belowPlotGroup", T({
                            name: "belowplot"
                        }, e, this)), !this.getChildContainer("plotGroup") && this.addChildContainer("plotGroup", T({
                            name: "plots"
                        }, e, this)), !this.getChildContainer("scrollbarContainer") && this.addChildContainer("scrollbarContainer", T({
                            name: "scrollbar-container"
                        }, e, this)), !this.getChildContainer("axisTopGroup") && this.addChildContainer("axisTopGroup", T({
                            name: "axistop"
                        }, e, this)), !this.getChildContainer("sumLabelsLayer") && this.addChildContainer("sumLabelsLayer", T({
                            name: "sumlabels",
                            "class": "fusioncharts-datalabels"
                        }, e, this)), !this.getChildContainer("datalabelsGroup") && this.addChildContainer("datalabelsGroup", T({
                            name: "datalabel"
                        }, e, this)), !this.getChildContainer("abovePlotGroup") && this.addChildContainer("abovePlotGroup", T({
                            name: "aboveplot"
                        }, e, this)), !this.getChildContainer("captionGroup") && this.addChildContainer("captionGroup", T({
                            name: "caption"
                        }, e, this)), !this.getChildContainer("defaultGroup") && this.addChildContainer("defaultGroup", T({
                            name: "chartdefault"
                        }, e, this)), !this.getChildContainer("defaultShadowGroup") && this.addChildContainer("defaultShadowGroup", T({
                            name: "chartdefault-shadow"
                        }, e, this)), !this.getChildContainer("trackerGroup") && this.addChildContainer("trackerGroup", T({
                            name: "tracker"
                        }, e, this)), !this.getChildContainer("logoGroup") && this.addChildContainer("logoGroup", T({
                            name: "logo"
                        }, e, this)), !this.getChildContainer("selectorGroup") && this.addChildContainer("selectorGroup", T({
                            name: "selectorGroup"
                        }, e, this)), this.getChildren("legend") !== v.UNDEF && !this.getChildContainer("legendGroup") && this.addChildContainer("legendGroup", T({
                            name: "legend"
                        }, e, this)), !this.getChildContainer("toolbar-master") && this.addChildContainer("toolbar-master", T({
                            name: "toolbar-master"
                        }, e, this))
                    }, t._setDataLabelStyle = function() {
                        var e = this.config.dataLabelStyle,
                            t = {
                                fontFamily: e.fontFamily,
                                fontSize: e.fontSize,
                                fontWeight: e.fontWeight,
                                fontStyle: e.fontStyle
                            };
                        this.getChildContainer("datalabelsGroup").css(t)
                    }, t._manageCaptionPosition = function() {
                        var e, t, a, i = this.config,
                            n = this.getChildren(),
                            o = n.caption && n.caption[0],
                            r = n.subCaption && n.subCaption[0],
                            l = o.config,
                            s = l.widgetValueHeight || 0,
                            c = r.config,
                            h = i.canvasWidth,
                            u = l.align,
                            d = l.text,
                            g = l.alignWithCanvas,
                            p = l.horizontalPadding,
                            f = i.width,
                            m = i.canvasLeft,
                            b = i.canvasRight,
                            x = i.marginRight,
                            y = i.marginLeft,
                            C = i.marginTop,
                            k = (S(m) || 0) + (0, v.pluckNumber)(h, f) / 2,
                            w = l.height,
                            L = c.height,
                            A = n.legend && n.legend[0] && n.legend[0].config || {},
                            N = A.height || 0,
                            T = A.legendPadding || 0,
                            E = i.legendposition ? i.legendposition.toLowerCase().split("-") : [],
                            F = this.getFromEnv("gLegend") || {},
                            _ = 0,
                            P = !!(F.conf || {}).showLegend,
                            D = this.config.borderWidth,
                            I = n.actionBar,
                            M = 0;
                        switch (A.isActive || (N = 0), P && this.config.gLegendEnabled && (_ = F.getCalculatedLogicalSpace().height), u) {
                            case "end":
                                e = g ? b - p : f - p;
                                break;
                            case "start":
                                e = g ? m + p : p;
                                break;
                            default:
                                e = g ? k : y + .5 * (f - y - x) || f / 2
                        }
                        l.isOnTop ? t = (D || 0) + (C || 0) : ("left" !== E[0] && "right" !== E[0] && "top" !== E[0] && "absolute" !== E[0] || (T = 0, N = 0, _ = 0), I && I.length && ((M = (I[0].getLogicalSpace && I[0].getLogicalSpace() || {}).height) === v.UNDEF || M === Infinity || M < 0) && (M = 0), t = this.config.height - this.config.marginBottom - w - (L || 0) - (D || 0) - (T || 0) - (N || 0) - _ - s - M), t += l._offsetHeight || 0, o.setDimention({
                            x: e,
                            y: t
                        }), a = d ? t + w + 2 : t || C || 0, r.setDimention({
                            x: e,
                            y: a
                        })
                    }, t.resizeCanvas = function() {
                        var e = this.getFromEnv("paper"),
                            t = this.config,
                            a = this.getFromEnv("animationManager"),
                            i = this.getFromEnv("chartWidth"),
                            n = this.getFromEnv("chartHeight");
                        v.hasSVG || !t._prevWidth && !t._prevHeight || e.setSize(t._prevWidth, t._prevHeight), a.setAnimation({
                            el: e,
                            attr: {
                                width: i,
                                height: n
                            },
                            component: this
                        })
                    }, t._updateVisuals = function() {
                        var e = this.getFromEnv("core-options"),
                            t = this.getFromEnv("paper"),
                            a = this.config,
                            i = this.getFromEnv("chartWidth"),
                            n = this.getFromEnv("chartHeight");
                        e && !e._SVGDefinitionURLUpdated && (/^\s*absolute\s*$/i.test(e.SVGDefinitionURL) && (x._url = (x._g && x._g.win || window).location.href.replace(/#.*?$/, v.BLANKSTRING)), e._SVGDefinitionURLUpdated = !0), t ? this.resizeCanvas() : ((t = new x(this.getFromEnv("chart-container"), i, n)).setHTMLClassName("fusioncharts-div"), this.addToEnv("paper", t), t.setConfig("stroke-linecap", v.ROUND), this.setChartEvents()), a._prevWidth = i, a._prevHeight = n, this.setChartCursor(), this._createLayers(), this._setDataLabelStyle(), this._drawTexts()
                    }, t.allocateDimensionOfChartMenuBar = function() {
                        var e = this.config,
                            t = this.getFromEnv("toolbar"),
                            a = t.config,
                            i = a.hDirection,
                            n = a.vDirection,
                            o = t.getLogicalSpace(),
                            r = t.getDimension(),
                            l = r.y,
                            s = r.x;
                        "t" === e.toolbarVAlign ? (l += e.toolbarVMargin * n + k(0, o.height * n), s += e.toolbarHMargin * i - C(0, o.width * i), s = "l" === e.toolbarHAlign ? s + o.width : s - o.width) : (l = e.height - e.marginBottom - o.height, s = "b" === e.toolbarVAlign && "r" === e.toolbarHAlign ? e.width - e.marginRight - o.width : e.marginLeft), e.toolbarX !== v.UNDEF && (s = e.toolbarX), e.toolbarY !== v.UNDEF && (l = e.toolbarY), t.setDimension({
                            x: s,
                            y: l,
                            width: o.width,
                            height: o.height
                        }), t.manageSpace()
                    }, t.draw = function() {
                        var e = this.getFromEnv("chartInstance");
                        this.config.hasChartMessage ? (this._hide(), this.resizeCanvas(), this.drawChartMessage(), this.fireChartInstanceEvent("nodatatodisplay", {}, [e.id]), e.jsVars.drawCount += 1, e.__state.dataReady = !1, e.jsVars.hasNativeMessage = !0) : (this._hideChartMessage(), this._clearTimers && this._clearTimers(), this.config.plotOverFlow = !1, this._show(), this._updateVisuals(), this.setState("initiated", !0), e.jsVars.drawCount += 1, e.jsVars.hasNativeMessage = !1)
                    }, t.manageSpace = function() {
                        this.config.hasChartMessage ? this.getChildren("chartMessage")[0].manageSpace() : (this._preDraw(), this.addToolbar && this.addToolbar(), this._manageSpace(), this._postSpaceManagement && this._postSpaceManagement())
                    }, t._show = function() {
                        this.getContainer("parentgroup") && this.getContainer("parentgroup").show()
                    }, t._manageActionBarSpace = function() {
                        var e = this.config,
                            t = this.getChildren("actionBar"),
                            a = (t && t[0] && t[0].getLogicalSpace() || {}).height || 0;
                        return e.actionBarHeight = a, {
                            bottom: a
                        }
                    }, t._hide = function() {
                        this.getContainer("parentgroup") && this.getContainer("parentgroup").hide()
                    }, a.onContainerMouseMove = function(e) {
                        var t, a = e.data,
                            i = a.getFromEnv("chartInstance"),
                            n = e.originalEvent,
                            o = (0, v.getMouseCoordinate)(a.getFromEnv("chart-container"), n, a);
                        i.ref && (t = (0, v.extend2)({
                            height: i.args.height,
                            width: i.args.width,
                            pixelHeight: a.getFromEnv("chartHeight"),
                            pixelWidth: a.getFromEnv("chartWidth"),
                            id: i.args.id,
                            renderer: i.args.renderer,
                            container: i.options.containerElement
                        }, o), a.fireChartInstanceEvent("chartMouseMove", t))
                    }, a.onContainerRollOver = function(e) {
                        var t, a = e.data,
                            i = a.getFromEnv("chartInstance"),
                            n = e.originalEvent,
                            o = (0, v.getMouseCoordinate)(a.getFromEnv("chart-container"), n, a);
                        i.ref && (t = (0, v.extend2)({
                            height: i.args.height,
                            width: i.args.width,
                            pixelHeight: a.getFromEnv("chartHeight"),
                            pixelWidth: a.getFromEnv("chartWidth"),
                            id: i.args.id,
                            renderer: i.args.renderer,
                            container: i.options.containerElement
                        }, o), a.fireChartInstanceEvent("chartRollOver", t))
                    }, a.onContainerRollOut = function(e) {
                        var t, a = e.chart,
                            i = a.getFromEnv("chartInstance"),
                            n = e.event,
                            o = (0, v.getMouseCoordinate)(a.getFromEnv("chart-container"), n, a);
                        i.ref && (t = (0, v.extend2)({
                            height: i.args.height,
                            width: i.args.width,
                            pixelHeight: a.getFromEnv("chartHeight"),
                            pixelWidth: a.getFromEnv("chartWidth"),
                            id: i.args.id,
                            renderer: i.args.renderer,
                            container: i.options.containerElement
                        }, o), a.fireChartInstanceEvent("chartRollOut", t))
                    }, a.winMouseHover = function(e) {
                        var t = e.originalEvent,
                            i = t.target || t.originalTarget || t.srcElement || t.relatedTarget || t.fromElement,
                            n = e.data,
                            o = n.getFromEnv("paper"),
                            r = {
                                chart: n,
                                event: e.originalEvent
                            };
                        y ? o.getById(i.parentNode.raphaelid) || (a.onContainerRollOut(r), n.config.mouseStateIn = !1, b["default"].unlisten(document, "mouseover", a.winMouseHover)) : i.viewportElement || (n.config.mouseStateIn = !1, a.onContainerRollOut(r), b["default"].unlisten(window, "mouseover", a.winMouseHover))
                    }, a
                }(o["default"]),
                B = R;
            t["default"] = B
        },
        420: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t;
                (0, o.componentFactory)(e, n["default"], "canvas", e.config.showVolumeChart ? 2 : 1), t = e.getChildren("canvas");
                for (var a = 0, i = t.length; a < i; a++) t[a].configure()
            };
            var n = i(a(421)),
                o = a(193)
        },
        421: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(210)),
                o = i(a(207)),
                r = a(208),
                l = a(193),
                s = a(201),
                c = i(a(422)),
                h = Math.max,
                u = l.preDefStr.miterStr,
                d = l.preDefStr.noneStr,
                g = l.preDefStr.ROUND,
                p = function(e, t, a) {
                    return a.getFromEnv("animationManager").setAnimation({
                        el: "group",
                        attr: {
                            name: e
                        },
                        container: t,
                        component: a,
                        label: "group"
                    })
                };
            (0, s.addDep)({
                name: "canvasAnimation",
                type: "animationRule",
                extension: c["default"]
            });
            var f = function(e) {
                function t() {
                    var t;
                    t = e.call(this) || this;
                    var a = (0, n["default"])(t);
                    return a.config = {}, a.config.axes = a.config.axes || [], a.setLinkedItem("axes", []), a.setLinkedItem("primaryAxis", {}), a.addToEnv("canvasConfig", t.config), t
                }(0, o["default"])(t, e);
                var a = t.prototype;
                return a.getName = function() {
                    return "canvas"
                }, a.getType = function() {
                    return "canvas"
                }, a.createGroup = function() {
                    var e = this.config,
                        t = this.getFromEnv("chart"),
                        a = t.getChildContainer(),
                        i = t.getContainer("parentgroup"),
                        n = this.getEffectiveDimensions(),
                        o = this.getFromEnv("chart-attrib"),
                        r = (0, l.pluckNumber)(o.areaovercolumns, 1),
                        s = this.getChildContainer("axisReferenceVisualsFloor"),
                        c = this.getChildContainer("axisReferenceVisualsBottom"),
                        h = this.getChildContainer("axisReferenceVisualsMiddle"),
                        u = this.getChildContainer("axisReferenceVisualsTop"),
                        d = this.getChildContainer("axisReferenceVisualsCeil"),
                        g = this.getChildContainer("areaGroup"),
                        f = this.getChildContainer("areaShadowGroup"),
                        m = this.getChildContainer("columnGroup"),
                        v = this.getChildContainer("columnShadowGroup"),
                        b = a.plotGroup,
                        x = [n.left, n.top, n.width, n.height].toString();
                    !this.getContainer("canvasGroup") && this.addContainer("canvasGroup", p("canvas", i, this)).insertAfter(a.backgroundGroup), c || (c = this.addChildContainer("axisReferenceVisualsBottom", p("axisReferenceVisualsBottom", i, this)).insertAfter(a.axisBottomGroup)), c.attr({
                        "clip-rect": e.canvasBorderWidth > 0 ? x : null
                    }), s || (s = this.addChildContainer("axisReferenceVisualsFloor", p("axisReferenceVisualsFloor", i, this)).insertAfter(a.axisBottomGroup)), s.attr({
                        "clip-rect": x
                    }), !this.getChildContainer("crossline") && this.addChildContainer("crossline", p("crossline", i, this)).insertBefore(a.plotGroup), !this.getChildContainer("crosslineBottom") && this.addChildContainer("crosslineBottom", p("crosslineBottom", i, this)).insertBefore(a.plotGroup), !this.getChildContainer("crosslineTop") && this.addChildContainer("crosslineTop", p("crosslineTop", i, this)).insertBefore(a.abovePlotGroup), !this.getChildContainer("datalabelsGroup") && this.addChildContainer("datalabelsGroup", p("canvasdatalabel", t.getChildContainer("datalabelsGroup"), this)), h || (h = this.addChildContainer("axisReferenceVisualsMiddle", p("axisReferenceVisualsMiddle", i, this)).insertBefore(a.plotGroup)), h.attr({
                        "clip-rect": x
                    }), u || (u = this.addChildContainer("axisReferenceVisualsTop", p("axisReferenceVisualsTop", i, this)).insertBefore(a.datalabelsGroup)), !this.getChildContainer("quadrantGroup") && this.addChildContainer("quadrantGroup", p("quadrant", i, this)).insertAfter(h), d || this.addChildContainer("axisReferenceVisualsCeil", p("axisReferenceVisualsCeil", i, this)).insertBefore(a.datalabelsGroup), !this.getChildContainer("sumLabelsLayer") && this.addChildContainer("sumLabelsLayer", a.sumLabelsLayer), v || (v = this.addChildContainer("columnShadowGroup", p("column-shadow-group", b, this))), m || (m = this.addChildContainer("columnGroup", p("column", b, this))), f || (f = this.addChildContainer("areaShadowGroup", p("area-shadow-group", b, this))), g || (g = this.addChildContainer("areaGroup", p("area", b, this))), r ? (v.insertBefore(f), m.insertBefore(f)) : (f.insertBefore(v), g.insertBefore(v)), !this.getChildContainer("lineShadowGroup") && this.addChildContainer("lineShadowGroup", p("line-shadow-group", b, this)), !this.getChildContainer("lineGroup") && this.addChildContainer("lineGroup", p("line", b, this)), !this.getChildContainer("defaultShadowGroup") && this.addChildContainer("defaultShadowGroup", p("default-shadow-group", b, this)), !this.getChildContainer("defaultGroup") && this.addChildContainer("defaultGroup", p("default", b, this))
                }, a.isWithinCanvas = function(e, t) {
                    var a = this.config,
                        i = a.canvasLeft,
                        n = i + a.canvasWidth,
                        o = a.canvasTop,
                        r = o + a.canvasHeight;
                    return e >= i && e <= n && t >= o && t <= r
                }, a.setCanvasPadding = function() {
                    var e, t = this.config;
                    e = this.getCanvasPadding(), t.canvasPaddingLeft = h(t.canvasPaddingLeft, e.paddingLeft || 0), t.canvasPaddingRight = h(t.canvasPaddingRight, e.paddingRight || 0), t.canvasPaddingTop = h(t.canvasPaddingTop, e.paddingTop || 0), t.canvasPaddingBottom = h(t.canvasPaddingBottom, e.paddingBottom || 0)
                }, a.getEffectiveDimensions = function() {
                    var e = this.config;
                    return {
                        left: e.canvasLeft,
                        top: e.canvasTop,
                        width: e.canvasWidth,
                        height: e.canvasHeight,
                        paddingLeft: e.canvasPaddingLeft,
                        paddingTop: e.canvasPaddingTop,
                        paddingRight: e.canvasPaddingRight,
                        paddingBottom: e.canvasPaddingBottom
                    }
                }, a.setDimension = function(e) {
                    var t = this.config;
                    t.canvasTop = e.top, t.canvasLeft = e.left, t.canvasWidth = e.width, t.canvasHeight = e.height
                }, a.getCanvasPadding = function() {
                    var e, t, a, i, n = this.getFromEnv("chartConfig").canvasWidth,
                        o = this.config.maxPaddingPercent * n / 100,
                        r = {
                            paddingLeft: 0,
                            paddingRight: 0,
                            paddingTop: 0,
                            paddingBottom: 0
                        };
                    return this._mapChildren((function(a) {
                        for (t in e = a.getCanvasPadding && a.getCanvasPadding() || {}) e.hasOwnProperty(t) && (r[t] = h(e[t], r[t]))
                    })), a = r.paddingLeft || 0, i = r.paddingRight || 0, o < a && (r.paddingLeft = o), o < i && (r.paddingRight = o), r
                }, a.configureAttributes = function(e) {
                    void 0 === e && (e = {});
                    var t, a, i, n, o, r = this.getLinkedParent(),
                        s = this.getFromEnv("chartConfig"),
                        c = this.config,
                        u = this.getFromEnv("chart-attrib"),
                        d = this.getFromEnv("color-manager"),
                        g = s.is3D,
                        p = g ? l.chartPaletteStr.chart3D : l.chartPaletteStr.chart2D,
                        f = c.isRoundEdges = (0, l.pluckNumber)(u.useroundedges, 0),
                        m = (0, l.pluckNumber)(u.showxaxisline, u.showyaxisline, u.showaxislines, 0) ? 0 : 1;
                    c.canvasBorderRadius = (0, l.pluckNumber)(u.plotborderradius, f ? 2 : 0), i = c.showCanvasBorder = Boolean((0, l.pluckNumber)(u.showcanvasborder, m, t, f ? 0 : 1)), o = c.oriCanvasBorderThickness = h((0, l.pluckNumber)(u.canvasborderthickness, f ? 0 : (0, l.pluckNumber)(r.config.canvasborderthickness, 2), 0)), t = c.canvasBorderWidth = g ? 0 : i ? o : 0, c.canvasBorderColor = (0, l.convertColor)((0, l.pluck)(u.canvasbordercolor, d.getColor(l.canvasBorderColorStr)), (0, l.pluck)(u.canvasborderalpha, d.getColor("canvasBorderAlpha"))), a = c.canBGAlpha = (0, l.pluck)(u.canvasbgalpha, d.getColor(l.canvasBGAlphaStr)), c.canBGColor = {
                        FCcolor: {
                            color: (0, l.pluck)(u.canvasbgcolor, d.getColor(p.canvasBgColor)),
                            alpha: (0, l.pluck)(u.canvasbgalpha, 100),
                            angle: (0, l.pluck)(u.canvasbgangle, 0),
                            ratio: (0, l.pluck)(u.canvasbgratio)
                        }
                    }, n = c.shadow = (0, l.pluckNumber)(u.showshadow, f, 0) && f ? {
                        enabled: !0,
                        opacity: a / 100
                    } : 0, c.shadowOnCanvasFill = n && n.enabled, c.canvasPadding = (0, l.pluckNumber)(u.canvaspadding, 0), c.origCanvasTopPad = (0, l.pluckNumber)(u.canvastoppadding, 0), c.origCanvasBottomPad = (0, l.pluckNumber)(u.canvasbottompadding, 0), c.origCanvasLeftPad = (0, l.pluckNumber)(u.canvasleftpadding, 0), c.origCanvasRightPad = (0, l.pluckNumber)(u.canvasrightpadding, 0), Object.assign(c, e), this.config.inputComponents = [], this.config.maxPaddingPercent = 12.5, this._mapChildren((function(e) {
                        e.getState("removed") || e.getType && "dataset" === e.getType() || "axisRefVisuals" === e.getType() || e.configure && e.configure()
                    }))
                }, a.disposeAllInputs = function() {
                    this.config.inputComponents.forEach((function(e) {
                        e.dispose()
                    })), this.config.inputComponents.length = 0
                }, a.axisExists = function(e) {
                    var t, a, i = this.getLinkedItem("axes"),
                        n = !1;
                    for (t = 0, a = i.length; t < a; t++)
                        if (i[t].axis === e) {
                            n = !0;
                            break
                        }
                    return n
                }, a.attachAxis = function(e, t, a) {
                    var i = this.getLinkedItem("axes"),
                        n = t ? "yAxis" : "xAxis",
                        o = this.getFromEnv(n) || [];
                    return this.axisExists(e) || (i.push({
                        axis: e,
                        isY: t,
                        config: a || {}
                    }), o.push(e), this.addToEnv(n, o)), this
                }, a.setPrimaryAxis = function(e, t) {
                    this.getLinkedItem("primaryAxis")[e] = this.getLinkedItem("axes").find((function(e) {
                        return e.axis === t
                    }))
                }, a.getAxes = function() {
                    var e;
                    return Object.keys(e = this.getLinkedItem("primaryAxis")).length ? [e.xAxis, e.yAxis] : this.getLinkedItem("axes").slice(0)
                }, a.detachAxis = function(e, t) {
                    var a = this.getLinkedItem("axes"),
                        i = Infinity;
                    return t ? a.splice(t, 1) : (a.forEach((function(t, a) {
                        t.axis === e && (i = a)
                    })), a.splice(i, 1))
                }, a.preDraw = function() {
                    this._mapChildren((function(e) {
                        e.getState("removed") || e.preDraw && e.preDraw()
                    }))
                }, a.draw = function() {
                    this.createGroup(), !this.getFromEnv("chart").config.skipCanvasDrawing && this.drawCanvas()
                }, a.drawCanvas = function() {
                    var e, t, a, i, n, o, r, s = this,
                        c = s.getFromEnv("chart"),
                        p = c.isBar,
                        f = s.getFromEnv("chart-attrib"),
                        m = s.getFromEnv("animationManager"),
                        v = c.config,
                        b = s.config,
                        x = b.clip = {},
                        y = c.getChildContainer("plotGroup"),
                        C = c.getChildContainer("datalabelsGroup"),
                        k = s.getGraphicalElement("canvasBorderElement"),
                        S = s.getGraphicalElement("canvasElement"),
                        w = b.canvasLeft || (b.canvasLeft = v.canvasLeft),
                        L = b.canvasTop || (b.canvasTop = v.canvasTop),
                        A = b.canvasWidth || (b.canvasWidth = v.canvasWidth),
                        N = b.canvasHeight || (b.canvasHeight = v.canvasHeight),
                        T = b.xDepth = v.xDepth || 0,
                        E = b.yDepth = v.yDepth || 0,
                        F = s.getContainer("canvasGroup"),
                        _ = s.getChildContainer("quadrantGroup"),
                        P = b.canvasBorderRadius,
                        D = b.canvasBorderWidth,
                        I = .5 * D,
                        M = b.canvasBorderColor,
                        O = b.canBGColor,
                        R = b.canBGAlpha,
                        B = b.shadow,
                        V = b.showCanvasBG = Boolean((0, l.pluckNumber)(f.showcanvasbg, 1)),
                        G = b.shadowOnCanvasFill,
                        z = b.showCanvasBorder;
                    i = O, n = {
                        x: w - I,
                        y: L - I,
                        width: A + D,
                        height: N + D,
                        r: P,
                        "stroke-width": D,
                        stroke: M,
                        "stroke-linejoin": D > 2 ? g : u
                    }, z ? (k && k.show(), t = m.setAnimation({
                        el: k || "rect",
                        component: s,
                        attr: {
                            x: w - I,
                            y: L - I,
                            width: A + D,
                            height: N + D,
                            r: P,
                            "stroke-width": D,
                            stroke: M,
                            "stroke-linejoin": D > 2 ? g : u
                        },
                        label: "rect",
                        container: F
                    }).shadow(B), k || s.addGraphicalElement("canvasBorderElement", t)) : k && (s.removeGraphicalElement(k), m.setAnimation({
                        el: k,
                        component: s,
                        callback: function() {
                            k.hide()
                        }
                    })), o = z ? 0 : b.oriCanvasBorderThickness, x["clip-canvas"] = [h(0, w - T - o), h(0, L - E - o), h(1, A + 2 * T + 2 * o), h(1, N + E + 2 * o)], x["clip-sum-value"] = [h(0, w - T), p ? L : 0, h(1, p ? v.width - w : A + 2 * T), h(1, p ? N + E : L + N)], x["clip-canvas-init"] = [h(0, w - T), h(0, L - E), 1, h(1, N + 2 * E)], e = x["clip-canvas"].slice(0), r = function(e, t) {
                        m.setAnimation({
                            el: e,
                            attr: {
                                "clip-rect": t
                            },
                            label: "container",
                            component: s,
                            state: e.attrs["clip-rect"] ? "updating" : "appearing"
                        })
                    }, v.skipClipping || (r(y, e), r(C, e), r(_, e), r(s.getChildContainer("sumLabelsLayer"), x["clip-sum-value"])), V ? (n = {
                        x: w,
                        y: L,
                        width: A,
                        height: N,
                        r: P,
                        "stroke-width": 0,
                        stroke: d,
                        fill: (0, l.toRaphaelColor)(i)
                    }, S && S.show(), a = m.setAnimation({
                        el: S || "rect",
                        attr: n,
                        label: "rect",
                        container: F,
                        component: s
                    }), S || s.addGraphicalElement("canvasElement", a), G ? a.shadow({
                        opacity: R / 100
                    }) : a.shadow(!1)) : S && m.setAnimation({
                        el: S,
                        component: s,
                        callback: function() {
                            S.hide()
                        }
                    })
                }, t
            }(r.ComponentInterface);
            t["default"] = f
        },
        422: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                "initial.canvas.canvas": function() {
                    return {
                        "rect.appearing": function() {
                            return [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "initial"
                            }]
                        },
                        "*": null
                    }
                },
                "update.canvas.canvas": {
                    "rect.updating": [{
                        slot: "middle"
                    }]
                }
            }
        },
        423: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t, a = e,
                    l = a.config,
                    s = a.getFromEnv("chart-attrib"),
                    c = "t" === l.toolbarVAlign ? "chartMenuBar" : "actionBar",
                    h = "t" === l.toolbarVAlign ? "actionBar" : "chartMenuBar";
                (0, i.componentFactory)(a, n.ToolBar, h, 0, [s]), (0, i.componentFactory)(a, n.ToolBar, c, 1, [s]), t = a.getChildren(c)[0], a.addToEnv("toolbar", t), o.SymbolStore.register("ContextIcon", (function(e, t, a) {
                    var i = e,
                        n = t,
                        o = 2 * a,
                        l = r(o / 4),
                        s = .7 * r(o / 2),
                        c = i - s,
                        h = i + s,
                        u = n + l,
                        d = n - l;
                    return ["M", c, n, "L", h, n, "M", c, u, "L", h, u, "M", c, d, "L", h, d]
                })), a.attachMenuButtons()
            };
            var i = a(193),
                n = a(303),
                o = a(308),
                r = Math.round
        },
        424: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(193),
                r = a(208),
                l = a(201),
                s = i(a(425)),
                c = Math.max,
                h = Math.min,
                u = Math.ceil;
            (0, l.addDep)({
                name: "captionAnimation",
                type: "animationRule",
                extension: s["default"]
            });
            var d = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "caption"
                }, a.getName = function() {
                    return "caption"
                }, a.configure = function() {
                    var e = this.getFromEnv("chart"),
                        t = e.getFromEnv("chart-attrib"),
                        a = this.config || {},
                        i = e.getFromEnv("style"),
                        n = i.outCanfontFamily,
                        r = i.outCancolor,
                        l = i.fontSize,
                        s = ["top", "center"];
                    switch (this.config.text = (0, o.parseUnsafeString)(t.caption), a.style = {
                        fontFamily: (0, o.pluck)(t.captionfont, n),
                        color: (0, o.convertColor)((0, o.pluck)(t.captionfontcolor, r).replace(/^#? ([a-f0-9]+)/gi, "#$1")),
                        fontSize: (0, o.pluckNumber)(t.captionfontsize, l + 3) + "px",
                        fontWeight: 0 === (0, o.pluckNumber)(t.captionfontbold) ? o.NORMAL : o.BOLD
                    }, a.align || (a.align = o.BLANKSTRING), a.align = (0, o.pluck)(t.captionposition, t.captionalignment, "center"), a.align && ((s = a.align.split("-"))[0] && (s[0] = s[0].toLowerCase()), s[1] && (s[1] = s[1].toLowerCase()), s.length < 2 && (s[1] = s[0])), s[0]) {
                        case "top":
                            a.isOnTop = 1;
                            break;
                        case "bottom":
                            a.isOnTop = 0;
                            break;
                        default:
                            a.isOnTop = (0, o.pluckNumber)(t.captionontop, 1)
                    }
                    switch (s[1]) {
                        case "right":
                            a.align = "end";
                            break;
                        case "left":
                            a.align = "start";
                            break;
                        default:
                            a.align = "middle"
                    }
                    a.isOnLeft = !(0, o.pluckNumber)(t.captiononright, 0), a.captionPosition = (0, o.getValidValue)(t.captionposition, "top").toLowerCase(), a.alignWithCanvas = (0, o.pluckNumber)(t.aligncaptionwithcanvas, e.config.alignCaptionWithCanvas, 1), a.horizontalPadding = (0, o.pluckNumber)(t.captionhorizontalpadding, a.alignWithCanvas ? 0 : 15), a.drawCaption = !0, (0, o.setLineHeight)(a.style)
                }, a.allocatePosition = function() {
                    this.getFromEnv("chart")._manageCaptionPosition()
                }, a.draw = function() {
                    var e, t = this.getFromEnv("chart"),
                        a = t.config,
                        i = t.getFromEnv("animationManager"),
                        n = t.config.textDirection,
                        r = t.getChildContainer().captionGroup,
                        l = t.getFromEnv("smartLabel"),
                        s = this.getGraphicalElement("captionElement"),
                        c = this.getFromEnv("toolTipController"),
                        h = this.config,
                        u = h.style,
                        d = h.text,
                        g = h.x,
                        p = h.align;
                    d ? (e = {
                        text: h.text,
                        fill: u.color,
                        x: g,
                        y: h.y,
                        "text-anchor": p || "middle",
                        "vertical-align": h.verticalAlign || "top",
                        visibility: h.drawCaption ? o.visibleStr : o.hiddenStr,
                        direction: n
                    }, (s = this.addGraphicalElement("captionElement", i.setAnimation({
                        el: s || "text",
                        attr: e,
                        container: r,
                        state: void 0,
                        component: this,
                        label: "text"
                    }))).css(u), a.showtooltip ? c.enableToolTip(s, h.originalText) : c.disableToolTip(s), l && (l.useEllipsesOnOverflow(a.useEllipsesWhenOverflow), l.setStyle(u))) : s && i.setAnimation({
                        el: s,
                        component: this,
                        callback: function() {
                            this.hide()
                        },
                        doNotRemove: !0
                    }), a.savedCaption = s
                }, a.manageSpace = function(e, t) {
                    var a, i, n, r, l, s = this.getFromEnv("chart"),
                        d = s.config,
                        g = s.getChildren("caption")[0],
                        p = s.getChildren("subCaption")[0],
                        f = g.config,
                        m = p.config,
                        v = s.getFromEnv("dataSource").chart,
                        b = s.getFromEnv("smartLabel"),
                        x = e,
                        y = (0, o.parseUnsafeString)(v.caption),
                        C = (0, o.parseUnsafeString)(v.subcaption),
                        k = (0, o.pluckNumber)(v.captionpadding, 10),
                        S = k,
                        w = !1,
                        L = 0,
                        A = 0,
                        N = 0,
                        T = 0,
                        E = 0,
                        F = s.getChildren("canvas"),
                        _ = c(F && F[0].config.canvasBorderThickness, 0),
                        P = 0,
                        D = 0;
                    return x > 3 ? (k < _ && (k = _ + 2), y !== o.BLANKSTRING && (n = f.style, T = u((0, o.pluckNumber)(parseFloat(n.fontHeight, 10), parseFloat(n.lineHeight, 10), 12))), C !== o.BLANKSTRING && (l = m.style, E = (0, o.pluckNumber)(parseInt(l.fontHeight, 10), parseInt(l.lineHeight, 10), 12)), T > 0 || E > 0 ? ((L = T + E + k) > (x = c(x, 0)) ? (w = !0, (A = L - x) < k ? k = c(A, 5) : (A -= k, k = 0, E > A ? (N = E - A + 10, E = 0, m._originalText = m.text, m.text = o.BLANKSTRING) : (A -= E, E = 0, T > A && (N = T - A)))) : N = x - L, b.useEllipsesOnOverflow(d.useEllipsesWhenOverflow), T > 0 && (b.setStyle(n), N = (T += N) - (a = b.getSmartText(y, t, T)).height, f.height = T = a.height, f.text = a.text, f.originalText = !!a.tooltext && a.tooltext, P = a.width), E > 0 && (b.setStyle(l), N = (E += N) - (i = b.getSmartText(C, t, E)).height, E = i.height, m.text = i.text, m.height = i.height, m.originalText = !!i.tooltext && i.tooltext, D = i.width), w && N > 0 && (k += h(S - k, N)), f.captionPadding = k, f.height = T, f.width = P, m.width = D, m.height = E, L = T + E + k) : (f.height = 0, m.height = 0), L > d.canvasHeight ? (L = 0, f.drawCaption = !1) : f.drawCaption = !0, r = f.isOnTop ? {
                        top: L
                    } : {
                        bottom: L,
                        top: 5
                    }) : (r = {
                        bottom: 0,
                        top: 0
                    }, f.drawCaption = !1), r
                }, a.setDimention = function(e) {
                    var t = this.config;
                    t.x = e.x, t.y = e.y
                }, t
            }(r.ComponentInterface);
            t["default"] = d
        },
        425: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                "initial.caption.caption": function() {
                    return {
                        "text.appearing": function() {
                            return [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "initial"
                            }]
                        }
                    }
                }
            }
        },
        426: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(193),
                r = i(a(424)),
                l = a(201),
                s = i(a(427)),
                c = Math.max;
            (0, l.addDep)({
                name: "subcaptionAnimation",
                type: "animationRule",
                extension: s["default"]
            });
            var h = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "caption"
                }, a.getName = function() {
                    return "subCaption"
                }, a.configure = function() {
                    var e = this.getFromEnv("chart"),
                        t = e.getFromEnv("chart-attrib"),
                        a = this.config || {},
                        i = e.getFromEnv("style"),
                        n = e.getChildren("caption")[0],
                        r = i.outCanfontFamily,
                        l = i.outCancolor,
                        s = i.fontSize,
                        h = ["top", "center"];
                    switch (a.text = (0, o.parseUnsafeString)(t.subcaption), a.align || (a.align = o.BLANKSTRING), a.align = (0, o.pluck)(t.captionposition, t.captionalignment, "center"), n.config.align && ((h = n.config.align.split("-"))[0] && (h[0] = h[0].toLowerCase()), h[1] && (h[1] = h[1].toLowerCase()), h.length < 2 && (h[1] = h[0])), h[0]) {
                        case "top":
                            a.isOnTop = 1;
                            break;
                        case "bottom":
                            a.isOnTop = 0;
                            break;
                        default:
                            a.isOnTop = (0, o.pluckNumber)(t.captionontop, 1)
                    }
                    a.alignWithCanvas = (0, o.pluckNumber)(e.aligncaptionwithcanvas, t.aligncaptionwithcanvas, 1), a.horizontalPadding = (0, o.pluckNumber)(t.captionhorizontalpadding, n.config.alignWithCanvas ? 0 : 15), a.style = {
                        fontFamily: (0, o.pluck)(t.subcaptionfont, t.captionfont, r),
                        color: (0, o.convertColor)((0, o.pluck)(t.subcaptionfontcolor, t.captionfontcolor, l).replace(/^#? ([a-f0-9]+)/gi, "#$1")),
                        fontSize: (0, o.pluckNumber)(t.subcaptionfontsize, (0, o.pluckNumber)(c((0, o.pluckNumber)(t.captionfontsize) - 3, -1), s) + (0, o.pluckNumber)(e.subTitleFontSizeExtender, 1)) + "px",
                        fontWeight: 0 === (0, o.pluckNumber)(t.subcaptionfontbold, e.subTitleFontWeight, t.captionfontbold) ? o.NORMAL : o.BOLD
                    }, (0, o.setLineHeight)(a.style)
                }, a.draw = function() {
                    var e, t = this.getFromEnv("chart"),
                        a = t.getFromEnv("animationManager"),
                        i = t.getChildren("caption")[0],
                        n = t.config,
                        r = n.textDirection,
                        l = t.getChildContainer().captionGroup,
                        s = this.getGraphicalElement("subCaptionElement"),
                        c = this.getFromEnv("toolTipController"),
                        h = this.config,
                        u = h.style,
                        d = h.text,
                        g = i.config.align;
                    d ? (e = {
                        text: h.text,
                        fill: u.color,
                        x: h.x,
                        y: h.y,
                        "text-anchor": g || "middle",
                        "vertical-align": "top",
                        direction: r,
                        visibility: i.config.drawCaption ? o.visibleStr : o.hiddenStr
                    }, (s = this.addGraphicalElement("subCaptionElement", a.setAnimation({
                        el: s || "text",
                        attr: e,
                        container: l,
                        state: void 0,
                        component: this,
                        hookFn: function() {
                            this.css(u)
                        },
                        label: "text"
                    }))).css(u), n.showtooltip ? c.enableToolTip(s, h.originalText) : c.disableToolTip(s)) : s && this.removeGraphicalElement(s), n.savedSubCaption = s
                }, a.setDimention = function(e) {
                    this.config.x = e.x, this.config.y = e.y
                }, t
            }(r["default"]);
            t["default"] = h
        },
        427: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = {
                "initial.caption.subCaption": i(a(425))["default"]["initial.caption.caption"]
            };
            t["default"] = n
        },
        428: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(210)),
                o = i(a(207)),
                r = a(208),
                l = a(193),
                s = a(201),
                c = i(a(429)),
                h = "BackgroundLoaded",
                u = "BackgroundLoadError",
                d = "none";
            (0, s.addDep)({
                name: "backgroundAnimation",
                type: "animationRule",
                extension: c["default"]
            });
            var g = function(e) {
                function t() {
                    var t, a, i;
                    return (t = e.call(this) || this).config.handler = (a = (0, n["default"])(t), i = a.config, {
                        load: function() {
                            var e = i.bgImageDisplayMode,
                                t = i.bgImageVAlign,
                                n = i.bgImageHAlign,
                                o = i.bgImageScale,
                                r = i.bgSWFAlpha,
                                l = i.bgSWF,
                                s = a.getGraphicalElement("backgroundImage")._.RefImg;
                            a.getFromEnv("chart").fireChartInstanceEvent(h, {
                                url: l,
                                bgImageAlpha: r,
                                bgImageDisplayMode: e,
                                bgImageVAlign: t,
                                bgImageHAlign: n,
                                bgImageScale: o,
                                imageheight: s.height,
                                imagewidth: s.width
                            })
                        },
                        error: function(e) {
                            var t = i.bgImageDisplayMode,
                                n = i.bgImageVAlign,
                                o = i.bgImageHAlign,
                                r = i.bgImageScale,
                                l = i.bgSWFAlpha,
                                s = i.bgSWF;
                            a.getFromEnv("chart").fireChartInstanceEvent(u, {
                                url: s,
                                bgImageAlpha: l,
                                error: e,
                                bgImageDisplayMode: t,
                                bgImageVAlign: n,
                                bgImageHAlign: o,
                                bgImageScale: r
                            })
                        }
                    }), t
                }(0, o["default"])(t, e);
                var a = t.prototype;
                return a.getName = function() {
                    return "background"
                }, a.getType = function() {
                    return "background"
                }, a._getBackgroundCosmetics = function() {
                    var e = this.getFromEnv("chart-attrib"),
                        t = this.getFromEnv("color-manager"),
                        a = this.getFromEnv("chartConfig").is3D ? l.chartPaletteStr.chart3D : l.chartPaletteStr.chart2D;
                    return {
                        FCcolor: {
                            color: (0, l.pluck)(e.bgcolor, t.getColor(a.bgColor)),
                            alpha: (0, l.pluck)(e.bgalpha, t.getColor(a.bgAlpha)),
                            angle: (0, l.pluck)(e.bgangle, t.getColor(a.bgAngle)),
                            ratio: (0, l.pluck)(e.bgratio, t.getColor(a.bgRatio))
                        }
                    }
                }, a.configureAttributes = function() {
                    var e, t, a, i = this.config,
                        n = this.getFromEnv("chart-attrib"),
                        o = this.getFromEnv("chartConfig"),
                        r = o.is3D,
                        s = this.getFromEnv("color-manager"),
                        c = i.bgImageDisplayMode = (0, l.pluck)(n.bgimagedisplaymode, "none").toLowerCase();
                    i.bgSWF = (0, l.pluck)(n.bgimage, n.bgswf), i.bgSWFAlpha = (0, l.pluckNumber)(n.bgimagealpha, n.bgswfalpha, 100), e = i.showBorder = (0, l.pluckNumber)(n.showborder, o.showBorder, r ? 0 : 1), i.borderWidth = Math.max(e ? (0, l.pluckNumber)(n.borderthickness, 1) : 0, 0), i.borderRadius = (0, l.pluckNumber)(n.borderradius, 0), i.borderDashStyle = (0, l.pluckNumber)(n.borderdashed, 0) ? (0, l.getDashStyle)((0, l.pluckNumber)(n.borderdashlen, 4), (0, l.pluckNumber)(n.borderdashgap, 2), void 0) : d, i.borderAlpha = (0, l.pluck)(n.borderalpha, r ? "100" : s && s.getColor("borderAlpha")), i.borderColor = (0, l.convertColor)((0, l.pluck)(n.bordercolor, r ? "#666666" : s && s.getColor("borderColor")), i.borderAlpha), i.bgImageVAlign = t = (0, l.getValidValue)(n.bgimagevalign, "").toLowerCase(), i.bgImageHAlign = a = (n.bgimagehalign || "").toLowerCase(), i.bgImageScale = (0, l.pluckNumber)(n.bgimagescale, 100), i.containerBackgroundColor = (0, l.getContainerBackgroundColor)(this.getFromEnv("chartInstance")), i.backgroundColor = this._getBackgroundCosmetics(), "tile" === c || "fill" === c || "fit" === c ? ("top" !== t && "middle" !== t && "bottom" !== t && (i.bgImageVAlign = "middle"), "left" !== a && "middle" !== a && "right" !== a && (i.bgImageHAlign = "middle")) : ("top" !== t && "middle" !== t && "bottom" !== t && (i.bgImageVAlign = "top"), "left" !== a && "middle" !== a && "right" !== a && (i.bgImageHAlign = "left"))
                }, a.draw = function() {
                    var e, t, a, i, n, o, r = this.getFromEnv("paper"),
                        s = this.getGraphicalElement("backgroundElement"),
                        c = this.getGraphicalElement("borderElement"),
                        h = this.config,
                        u = this.getFromEnv("chart"),
                        d = this.getFromEnv("chartConfig"),
                        g = h.backgroundColor,
                        p = this.getFromEnv("animationManager"),
                        f = this.getGraphicalElement("backgroundImage"),
                        m = h.bgSWF,
                        v = u.getChildContainer("backgroundGroup"),
                        b = d.width,
                        x = d.height,
                        y = h.borderWidth || 0,
                        C = h.borderRadius,
                        k = h.borderDashStyle,
                        S = h.borderColor,
                        w = h.bgSWFAlpha,
                        L = y + "," + y + "," + (b - 2 * y) + "," + (x - 2 * y),
                        A = h.bgImageDisplayMode,
                        N = h.bgImageVAlign,
                        T = h.bgImageHAlign,
                        E = h.bgImageScale;
                    r.canvas.style.backgroundColor = h.containerBackgroundColor, a = {
                        x: y,
                        y: y,
                        width: (o = b - 2 * y) < 0 ? 0 : o,
                        height: (n = x - 2 * y) > 0 ? n : 0,
                        stroke: l.preDefStr.noneStr,
                        fill: (0, l.toRaphaelColor)(g)
                    }, (e = p.setAnimation({
                        el: s || "rect",
                        attr: a,
                        container: v,
                        component: this,
                        label: "rect"
                    })).show(), s || this.addGraphicalElement("backgroundElement", e), a = {
                        x: y / 2,
                        y: y / 2,
                        width: (o = b - y) < 0 ? 0 : o,
                        height: (n = x - y) > 0 ? n : 0,
                        stroke: S,
                        "stroke-width": y,
                        "stroke-dasharray": k,
                        fill: l.preDefStr.noneStr,
                        r: C || 0
                    }, (t = p.setAnimation({
                        el: c || "rect",
                        attr: a,
                        container: v,
                        component: this,
                        label: "rect"
                    })).show(), c || this.addGraphicalElement("borderElement", t), m && !this.getState("removed") ? ((i = p.setAnimation({
                        el: f || "imagegrid",
                        attr: {
                            imagegrid: [A, N, T, E, y, b, x],
                            src: m,
                            opacity: .01 * w,
                            "clip-rect": L
                        },
                        container: v,
                        component: this,
                        label: "imagegrid"
                    })).show(), f || (this.addGraphicalElement("backgroundImage", i), i.on("load", h.handler.load), i.on("error", h.handler.error))) : f && this.removeGraphicalElement(f)
                }, t
            }(r.ComponentInterface);
            t["default"] = g
        },
        429: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                "initial.background.background": function() {
                    return {
                        "rect.appearing": function() {
                            return [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "initial"
                            }]
                        }
                    }
                }
            }
        },
        430: function(e, t, a) {
            "use strict";
            var i = a(187),
                n = a(191);
            t.__esModule = !0, t["default"] = void 0;
            var o = a(193),
                r = n(a(431)),
                l = i(a(249));

            function s(e, t) {
                var a, i, n, r, l, s, c, h, d, g, p, f = u.stringConstants,
                    m = t.replace(/\s/g, f.BLANK).toLowerCase(),
                    v = [];
                if (m === f.BLANK || null == m) v = [e];
                else
                    for (n = m.split(f.COMMASTRING), r = e.split(f.COMMASTRING), l = Math.max(n.length, r.length, 1), s = n[0], c = r[0], g = /[\{\}]/gi, p = 0; p < l; p++) h = (n[p] || s).replace(g, ""), d = r[p] || c, "color" === h ? v.push(d) : "light" === h.substr(0, 5) ? (i = 100 - (i = -1 === (a = h.indexOf("-")) ? 1 : h.substr(a + 1, h.length - a)), v.push((0, o.getLightColor)(d, i))) : "dark" === h.substr(0, 4) ? (i = 100 - (i = -1 === (a = h.indexOf("-")) ? 1 : h.substr(a + 1, h.length - a)), v.push((0, o.getDarkColor)(d, i))) : v.push(h);
                return v
            }

            function c(e, t) {
                var a, i, n = e.toString().split(u.stringConstants.COMMASTRING),
                    r = [],
                    l = 100;
                for (i = 0; i < t; i++) a = (0, o.pluckNumber)(n[i]), u.defined(a) && (l = a), r[i] = l;
                return r.join()
            }

            function h(e, t) {
                var a, i, n = e.split(u.stringConstants.COMMASTRING),
                    o = [],
                    r = 0;
                for (i = 0; i < t; i++) a = n[i], a = (a = isNaN(a) || void 0 === a ? 0 : Math.abs(Number(a))) > 100 ? 100 : a, o[i] = a, r += a;
                if (r = r > 100 ? 100 : r, n.length < t)
                    for (i = n.length; i < t; i++) o[i] = (100 - r) / (t - n.length);
                return o[-1] = 0, o.join()
            }
            var u = function() {
                function e(e) {
                    this.parseColorMix = s, this.parseAlphaList = c, this.parseRatioList = h, this.linkedItems = {
                        iapi: e
                    }, this.configure(), this.paletteColors = ["AFD8F8", "F6BD0F", "8BBA00", "FF8E46", "008E8E", "D64646", "8E468E", "588526", "B3AA00", "008ED6", "9D080D", "A186BE", "CC6600", "FDC689", "ABA000", "F26D7D", "FFF200", "0054A6", "F7941C", "CC3300", "006600", "663300", "6DCFF6"]
                }
                var t = e.prototype;
                return t.configure = function() {
                    var t = this,
                        a = e.stringConstants,
                        i = t.linkedItems.iapi,
                        n = i.getFromEnv("dataSource").chart || {},
                        s = t.paletteOptions = (0, o.extend2)((0, o.extend2)({}, r), i.defaultPaletteOptions || {}, !1, !0),
                        c = t.themeEnabled = n.palettethemecolor;
                    t.paletteIndex = (n.palette > 0 && n.palette < 6 ? n.palette : (0, o.pluckNumber)(i.paletteIndex, 1)) - 1, t.iterator = 0, t.paletteColors = s.paletteColors[t.themeEnabled ? 0 : t.paletteIndex], e.defined(n.palettecolors) && n.palettecolors !== a.BLANK && (t.paletteColors = (0, l["default"])(n.palettecolors) ? n.palettecolors.slice() : n.palettecolors.split(/\s*\,\s*/)), t.paletteLen = t.paletteColors.length, t.useFlatColors = (0, o.pluckNumber)(n.useflatdataplotcolor, i.useFlatColor, 0), c && (t.paletteIndex = 5, s.bgColor[5] = (0, o.getLightColor)(c, 35) + a.COMMASTRING + (0, o.getLightColor)(c, 10), s.bgAngle[5] = 270, s.bgRatio[5] = a.BGRATIOSTRING, s.bgAlpha[5] = "50,50", s.canvasBgColor[5] = a.COLOR_WHITE, s.canvasBgAngle[5] = 0, s.canvasBgAlpha[5] = a.HUNDREDSTRING, s.canvasBgRatio[5] = a.BLANK, s.canvasBorderColor[5] = (0, o.getDarkColor)(c, 80), s.canvasBorderAlpha[5] = 100, s.showShadow[5] = 1, s.divLineColor[5] = (0, o.getDarkColor)(c, 20), s.divLineAlpha[5] = 40, s.altHGridColor[5] = (0, o.getLightColor)(c, 20), s.altHGridAlpha[5] = 15, s.altVGridColor[5] = (0, o.getLightColor)(c, 80), s.altVGridAlpha[5] = 10, s.anchorBgColor[5] = a.COLOR_WHITE, s.toolTipBgColor[5] = a.COLOR_WHITE, s.toolTipBorderColor[5] = (0, o.getDarkColor)(c, 80), s.baseFontColor[5] = c.split && c.split(a.COMMASTRING)[0], s.borderColor[5] = (0, o.getDarkColor)(c, 60), s.borderAlpha[5] = 50, s.legendBgColor[5] = a.COLOR_WHITE, s.legendBorderColor[5] = (0, o.getDarkColor)(c, 80), s.plotGradientColor[5] = a.COLOR_WHITE, s.plotBorderColor[5] = (0, o.getDarkColor)(c, 85), s.plotFillColor[5] = (0, o.getDarkColor)(c, 85), s.bgColor3D[5] = a.COLOR_WHITE, s.bgAlpha3D[5] = a.HUNDREDSTRING, s.bgAngle3D[5] = 90, s.bgRatio3D[5] = a.BLANK, s.canvasBgColor3D[5] = (0, o.getLightColor)(c, 20), s.canvasBaseColor3D[5] = (0, o.getLightColor)(c, 40), s.divLineColor3D[5] = (0, o.getDarkColor)(c, 20), s.divLineAlpha3D[5] = 40, s.legendBgColor3D[5] = a.COLOR_WHITE, s.legendBorderColor3D[5] = (0, o.getDarkColor)(c, 80), s.toolTipbgColor3D[5] = a.COLOR_WHITE, s.toolTipBorderColor3D[5] = (0, o.getDarkColor)(c, 80), s.baseFontColor3D[5] = c.split && c.split(a.COMMASTRING)[0], s.anchorBgColor3D[5] = a.COLOR_WHITE, s.tickColor && (s.tickColor[5] = (0, o.getDarkColor)(c, 90)), s.trendDarkColor && (s.trendDarkColor[5] = (0, o.getDarkColor)(c, 90)), s.trendLightColor && (s.trendLightColor[5] = (0, o.getLightColor)(c, s.TrendLightShadeOffset)), s.msgLogColor && (s.msgLogColor[5] = (0, o.getLightColor)(c, 80)), s.dialColor && (s.dialColor[5] = (0, o.getDarkColor)(c, 95) + ",FFFFFF," + (0, o.getDarkColor)(c, 95)), s.dialBorderColor && (s.dialBorderColor[5] = (0, o.getDarkColor)(c, 95) + ",FFFFFF," + (0, o.getDarkColor)(c, 95)), s.pivotColor && (s.pivotColor[5] = (0, o.getLightColor)(c, 95) + ",FFFFFF," + (0, o.getLightColor)(c, 95)), s.pivotBorderColor && (s.pivotBorderColor[5] = (0, o.getDarkColor)(c, 95) + ",FFFFFF," + (0, o.getDarkColor)(c, 95)), s.pointerBorderColor && (s.pointerBorderColor[5] = (0, o.getDarkColor)(c, 75)), s.pointerBgColor && (s.pointerBgColor[5] = (0, o.getDarkColor)(c, 75)), s.thmBorderColor && (s.thmBorderColor[5] = (0, o.getDarkColor)(c, 90)), s.thmFillColor && (s.thmFillColor[5] = (0, o.getLightColor)(c, 55)), s.gaugeBorderColor && (s.gaugeBorderColor[5] = (0, o.getDarkColor)(c, 90)), s.gaugeFillColor && (s.gaugeFillColor[5] = (0, o.getLightColor)(c, 55)), s.cylFillColor && (s.cylFillColor[5] = (0, o.getLightColor)(c, 55)), s.periodColor && (s.periodColor[5] = (0, o.getLightColor)(c, 10)), s.winColor && (s.winColor[5] = "666666"), s.lossColor && (s.lossColor[5] = "CC0000"), s.drawColor && (s.drawColor[5] = "666666"), s.scorelessColor && (s.scorelessColor[5] = "FF0000"), s.gridColor && (s.gridColor[5] = (0, o.getLightColor)(c, 30)), s.categoryBgColor && (s.categoryBgColor[5] = (0, o.getLightColor)(c, 10)), s.dataTableBgColor && (s.dataTableBgColor[5] = (0, o.getLightColor)(c, 10)), s.gridResizeBarColor && (s.gridResizeBarColor[5] = (0, o.getDarkColor)(c, 90)), s.scrollBarColor && (s.scrollBarColor[5] = (0, o.getLightColor)(c, 50)))
                }, t.getColor = function(e) {
                    return this.paletteOptions[e][this.paletteIndex]
                }, t.getPlotColor = function(e) {
                    var t = this,
                        a = t.paletteColors,
                        i = t.useFlatColors ? t.getColor("plotFillColor") : a[e % t.paletteLen];
                    return i || (t.iterator === t.paletteLen && (t.iterator = 0), i = a[t.iterator], t.iterator += 1), i
                }, e
            }();
            u.stringConstants = {
                BLANK: "",
                COMMASTRING: ",",
                BGRATIOSTRING: "0,100",
                COLOR_WHITE: "FFFFFF",
                HUNDREDSTRING: "100"
            }, u.defined = function(e) {
                return null != e
            };
            var d = u;
            t["default"] = d
        },
        431: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.anchorBgColor3D = t.baseFontColor3D = t.toolTipBorderColor3D = t.toolTipbgColor3D = t.legendBorderColor3D = t.legendBgColor3D = t.divLineAlpha3D = t.divLineColor3D = t.canvasBaseColor3D = t.canvasBgColor3D = t.bgRatio3D = t.bgAngle3D = t.bgAlpha3D = t.bgColor3D = t.plotFillColor = t.plotBorderColor = t.plotGradientColor = t.legendBorderColor = t.legendBgColor = t.borderAlpha = t.borderColor = t.baseFontColor = t.toolTipBorderColor = t.toolTipBgColor = t.anchorBgColor = t.altVGridAlpha = t.altVGridColor = t.altHGridAlpha = t.altHGridColor = t.divLineAlpha = t.divLineColor = t.showShadow = t.canvasBorderAlpha = t.canvasBorderColor = t.canvasBgRatio = t.canvasBgAlpha = t.canvasBgAngle = t.canvasBgColor = t.bgAlpha = t.bgRatio = t.bgAngle = t.bgColor = t.paletteColors = void 0;
            var i = ["AFD8F8", "F6BD0F", "8BBA00", "FF8E46", "008E8E", "D64646", "8E468E", "588526", "B3AA00", "008ED6", "9D080D", "A186BE", "CC6600", "FDC689", "ABA000", "F26D7D", "FFF200", "0054A6", "F7941C", "CC3300", "006600", "663300", "6DCFF6"],
                n = [i, i, i, i, i],
                o = [270, 270, 270, 270, 270],
                r = ["0,100", "0,100", "0,100", "0,100", "0,100"],
                l = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                s = ["100", "100", "100", "100", "100"],
                c = ["", "", "", "", ""],
                h = [100, 100, 100, 90, 100],
                u = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                d = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                g = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                p = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                f = ["333333", "8A8A8A", "FFFFFF", "FFFFFF", "FFFFFF"],
                m = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                v = ["100", "100", "100", "100", "100"],
                b = ["", "", "", "", ""],
                x = [100, 100, 100, 100, 100],
                y = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                C = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"];
            t.anchorBgColor3D = C, t.baseFontColor3D = ["49563A", "4A4A4A", "49351D", "48505A", "681C09"], t.toolTipBorderColor3D = ["49563A", "666666", "49351D", "576373", "681C09"], t.toolTipbgColor3D = y, t.legendBorderColor3D = ["C6CFB8", "C8C8C8", "DFC29C", "CFD5DA", "FAD1C7"], t.legendBgColor3D = ["F0F3ED", "F3F3F3", "F7F0E8", "EEF0F2", "FEF8F5"], t.divLineAlpha3D = x, t.divLineColor3D = ["ACBB99", "A4A4A4", "BE9B6B", "7C8995", "D49B8B"], t.canvasBaseColor3D = ["ACBB99", "BCBCBD", "C8A06C", "96A4AF", "FAC7BC"], t.canvasBgColor3D = ["DDE3D5", "D8D8D7", "EEDFCA", "CFD2D8", "FEE8E0"], t.bgRatio3D = b, t.bgAngle3D = [90, 90, 90, 90, 90], t.bgAlpha3D = v, t.bgColor3D = m, t.plotFillColor = ["767575", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"], t.plotBorderColor = f, t.plotGradientColor = p, t.legendBorderColor = ["545454", "545454", "415D6F", "845001", "D55979"], t.legendBgColor = g, t.borderAlpha = [50, 50, 50, 50, 50], t.borderColor = ["767575", "545454", "415D6F", "845001", "68001B"], t.baseFontColor = ["555555", "60634E", "025B6A", "A15E01", "68001B"], t.toolTipBorderColor = ["545454", "545454", "415D6F", "845001", "68001B"], t.toolTipBgColor = d, t.anchorBgColor = u, t.altVGridAlpha = [10, 20, 10, 15, 10], t.altVGridColor = ["767575", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"], t.altHGridAlpha = [50, 35, 10, 20, 15], t.altHGridColor = ["EEEEEE", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"], t.divLineAlpha = [40, 45, 65, 40, 30], t.divLineColor = ["717170", "7B7D6D", "92CDD6", "965B01", "68001B"], t.showShadow = [0, 1, 1, 1, 1], t.canvasBorderAlpha = h, t.canvasBorderColor = ["545454", "545454", "415D6F", "845001", "68001B"], t.canvasBgRatio = c, t.canvasBgAlpha = s, t.canvasBgAngle = [0, 0, 0, 0, 0], t.canvasBgColor = l, t.bgAlpha = ["50,50", "60,50", "40,20", "20,10", "30,30"], t.bgRatio = r, t.bgAngle = o, t.bgColor = ["CBCBCB,E9E9E9", "CFD4BE,F3F5DD", "C5DADD,EDFBFE", "A86402,FDC16D", "FF7CA0,FFD1DD"], t.paletteColors = n
        },
        432: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                "*.*.*": {
                    "*.disappearing": [{
                        finalAttr: {
                            opacity: 0
                        },
                        slot: "initial",
                        callback: function() {
                            this.hide()
                        }
                    }]
                }
            }
        },
        433: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e, t) {
                var a = Number(e),
                    i = Number(t) - a;
                return function(e) {
                    return i * e + a
                }
            };
            t["default"] = i
        },
        434: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t, a, i = e.getChildren("canvas")[0],
                    l = i.getChildren("axisRefVisualCartesian")[0],
                    s = {
                        zoomable: !0,
                        pannable: !0
                    },
                    c = e._feedAxesRawData(),
                    h = function(e) {
                        var t = e.sender;
                        l.addexplicitDrawItems(t.getId(), t), l.asyncDraw()
                    };
                (0, n.componentFactory)(e, o["default"], "yAxis", 1, c.yAxisConf), (0, n.componentFactory)(e, r["default"], "xAxis", 1, c.xAxisConf), t = e.getChildren("yAxis")[0], a = e.getChildren("xAxis")[0], t.setLinkedItem("canvas", i), a.setLinkedItem("canvas", i), l.setLinkedItem(t.getId(), t), l.setLinkedItem(a.getId(), a), l.addExtEventListener("visiblerangeset", h, a), l.addExtEventListener("visiblerangeset", h, t), i.attachAxis(a, !1, e.zoomX ? s : {}), i.attachAxis(t, !0, e.zoomY ? s : {}), e._setCategories()
            };
            var n = a(193),
                o = i(a(435)),
                r = i(a(482))
        },
        435: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(436)),
                r = i(a(439)),
                l = i(a(461)),
                s = i(a(462)),
                c = i(a(463)),
                h = a(470),
                u = a(193),
                d = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).config.scale = new r["default"], t
                    }(0, n["default"])(t, e);
                    var a = t.prototype;
                    return a.getName = function() {
                        return "numeric"
                    }, a.generateTicks = function() {
                        var e, t, a, i = this.getScale(),
                            n = this.config,
                            o = n.numDivLines + 1,
                            r = i.getDomain(),
                            c = r[0],
                            h = r[1],
                            u = n.axisRange,
                            d = u.min,
                            g = u.max,
                            p = n.dataLimit;
                        return c === d && h === g ? ((0, s["default"])(p.min, p.max, i, n), n.ticks) : (e = i.ticks(o), t = Math.abs(e[1] - e[0]), c === d && -1 === e.indexOf(d) && e.unshift(d), h === g && -1 === e.indexOf(g) && e.push(g), (a = Math.abs(d % t)) && (d -= a), (a = Math.abs(g % t)) && (g -= a), n._allTicks = (0, l["default"])(d, g, t).concat(g), u.tickInterval = t, e)
                    }, a.setTickValues = function(e) {
                        this.config.userTicks = e || [], this.config.tickValues = {
                            tickValue: []
                        }
                    }, a._parseTickValues = function(e) {
                        var t, a, i, n, o = this.getFromEnv("chart"),
                            r = this.config,
                            l = e && e.length,
                            s = 0;
                        for (r.tickValues = {}, t = r.tickValues.tickValue = [], i = 0; i < l; i += 1)
                            if (a = (0, u.extend2)({}, e[i]), n = Number(a.x), !a.vline) {
                                if ((0, h.extractStyleInfo)(a, o), !n && 0 !== n) continue;
                                a.x = n, r.irregularCatAxis = !0, t.push(a), t[s].label = (0, u.parseUnsafeString)(t[s].label), s += 1
                            }
                        r.oriCatLen = s
                    }, a.calculateTicksOnLabelMode = function() {
                        var e, t, a, i, n, o, r, l = this.config,
                            s = l.xAxisLabelMode,
                            c = Object.assign([], l.userTicks),
                            h = this.getFromEnv("number-formatter");
                        if ("mixed" === s || "auto" === s) {
                            if (t = [], e = h.xAxis, "mixed" === s)
                                for (a = 0, n = c.length; a < n; a += 1) t[c[a].x || c[a].y || a] = !0;
                            else c = [];
                            for (r = this.getAxisConfig(), o = l.ticks, i = 0; i < o.length; ++i) t[a = o[i]] || c.push({
                                label: u.BLANKSTRING + e.call(h, a),
                                x: a,
                                showverticalline: 0 === a ? r.showZeroPlane : 1,
                                isNumeric: !0,
                                linecolor: 0 === a ? r.zeroPlaneColor : r.divLineColor,
                                linealpha: 0 === a ? r.zeroPlaneAlpha : r.divLineAlpha,
                                linethickness: 0 === a ? r.zeroPlaneThickness : r.divLineThickness,
                                linedashed: r.divLineIsDashed,
                                linedashLen: r.divLineDashLen,
                                linedashgap: r.divLineDashGap
                            })
                        }
                        this._parseTickValues(c)
                    }, a.getInterval = function() {
                        return this.config.axisRange.tickInterval
                    }, a._setAxisRange = function(e) {
                        var t, a, i, n = e.min,
                            r = e.max,
                            l = this.config,
                            c = l.axisRange,
                            h = l.dataLimit,
                            u = l.dependentInfo;
                        if (!(n > r))
                            if (h.min === n && h.max === r || (a = !0), void 0 === l.visibleMin || l.setPadding || a) {
                                var d = (0, o["default"])([n, r, h.min, h.max]);
                                if (n = d[0], r = d[1], h.min = n, h.max = r, this.fireEvent("dataLimitSet", Object.assign({}, h)), u) {
                                    if (u.limit) {
                                        if (!(t = u.dataLimit)) return;
                                        var g = (0, o["default"])([n, r, t.min, t.max]);
                                        n = g[0], r = g[1], l.isDataLimitSet = !0
                                    }
                                    if (u.count && void 0 === u.numDivLines) return
                                }(0, s["default"])(n, r, this.getScale(), l), i = l.isZeroTickForced ? 3 : 2, this.fireEvent("divlinesSet", l.ticks.length - i), l.tickValues && this.calculateTicksOnLabelMode(), this.setVisibleConfig(c.min, c.max)
                            } else l.setPadding = !1
                    }, a.getTicks = function() {
                        return this.config.ticks
                    }, t
                }(c["default"]);
            d.prototype.setDataLimit = h.setDataLimit;
            var g = d;
            t["default"] = g
        },
        436: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(437)),
                o = i(a(438)),
                r = function(e, t) {
                    return void 0 === e && (e = []), [(0, n["default"])(e, t), (0, o["default"])(e, t)]
                };
            t["default"] = r
        },
        437: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e, t) {
                void 0 === e && (e = []);
                var a, i, n = e.length,
                    o = -1;
                if ("function" == typeof t) {
                    for (; ++o < n;)
                        if (null != (a = t(e[o], o, e)) && a <= a)
                            for (i = a; ++o < n;) null != (a = t(e[o], o, e)) && a < i && (i = a)
                } else
                    for (; ++o < n;)
                        if (null != (a = e[o]) && a <= a)
                            for (i = a; ++o < n;) null != (a = e[o]) && a < i && (i = a); return i
            };
            t["default"] = i
        },
        438: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e, t) {
                void 0 === e && (e = []);
                var a, i, n = e.length,
                    o = -1;
                if ("function" == typeof t) {
                    for (; ++o < n;)
                        if (null != (a = t(e[o], o, e)) && a >= a)
                            for (i = a; ++o < n;) null != (a = t(e[o], o, e)) && a > i && (i = a)
                } else
                    for (; ++o < n;)
                        if (null != (a = e[o]) && a >= a)
                            for (i = a; ++o < n;) null != (a = e[o]) && a > i && (i = a); return i
            };
            t["default"] = i
        },
        439: function(e, t, a) {
            "use strict";
            var i = a(191),
                n = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var o = n(a(207)),
                r = i(a(440)),
                l = i(a(456)),
                s = n(a(433)),
                c = a(457),
                h = function(e) {
                    function t() {
                        return e.call(this, r.deInterpolateLinear, s["default"]) || this
                    }(0, o["default"])(t, e);
                    var a = t.prototype;
                    return a.ticks = function(e) {
                        void 0 === e && (e = 7);
                        var t = this.getDomain();
                        return this.majorTicks = (0, l["default"])(t[0], t[t.length - 1], e)
                    }, a.tickFormat = function(e, t) {
                        return (0, c.tickFormat)(this.getDomain(), e, t, this._localeConverter)
                    }, a.nice = function(e) {
                        void 0 === e && (e = 7);
                        var t, a = this.getDomain(),
                            i = 0,
                            n = a.length - 1,
                            o = a[i],
                            r = a[n];
                        return r < o && (t = o, o = r, r = t, t = i, i = n, n = t), (t = (0, l.tickIncrement)(o, r, e)) > 0 ? (o = Math.floor(o / t) * t, r = Math.ceil(r / t) * t, t = (0, l.tickIncrement)(o, r, e)) : t < 0 && (o = Math.ceil(o * t) / t, r = Math.floor(r * t) / t, t = (0, l.tickIncrement)(o, r, e)), t > 0 ? (a[i] = Math.floor(o / t) * t, a[n] = Math.ceil(r / t) * t, this.setDomain(a)) : t < 0 && (a[i] = Math.ceil(o * t) / t, a[n] = Math.floor(r * t) / t, this.setDomain(a)), this
                    }, a.copy = function() {
                        return (0, r.copyScale)(this, new t)
                    }, a.minorTicks = function(e, t) {
                        void 0 === e && (e = 4), void 0 === t && (t = this.majorTicks || this.ticks());
                        var a, i, n, o, r = t.length,
                            l = t[1] - t[0],
                            s = [];
                        for (o = 0; o < r - 1; ++o)
                            for (n = t[o], i = l / (Number(e) + 1), a = 1; a <= e; a += 1) s.push(n + i * a);
                        return s
                    }, a.contextTicks = function() {
                        return this.contextTicksArr || []
                    }, a.getType = function() {
                        return "linear"
                    }, t
                }(r["default"]);
            t["default"] = h
        },
        440: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t.copyScale = function(e, t) {
                return t.setInterpolate(e.getInterpolate()).setClamp(e.getClamp()).setDomain(e.getDomain()).setRange(e.getRange())
            }, t.deInterpolateLinear = d, t.bimap = u, t["default"] = void 0;
            var n = i(a(441)),
                o = i(a(443)),
                r = i(a(442)),
                l = i(a(444)),
                s = a(445),
                c = 0,
                h = [0, 1];

            function u(e, t, a, i) {
                var n, o;
                return e[0] > e[1] ? (n = a(e[1], e[0]), o = i(t[1], t[0])) : (n = a(e[0], e[1]), o = i(t[0], t[1])),
                    function(e) {
                        return o(n(e))
                    }
            }

            function d(e, t) {
                var a = Number(e),
                    i = Number(t) - a;
                return i ? function(e) {
                    return (e - a) / i
                } : (0, r["default"])(i)
            }
            var g = function() {
                function e(e, t) {
                    this.domain = h, this.range = h, this.deInterpolate = e, this.reInterpolate = t, this.interpolate = n["default"], this.clamp = !1, this.input = null, this.output = null, this.locale = l["default"], this._localeConverter = new s.NumberConverter(l["default"]), this._rescale(), this._id = "scale_" + c++
                }
                var t = e.prototype;
                return t._rescale = function() {
                    return this.input = null, this.output = null, this
                }, t.setDomain = function(e) {
                    return void 0 === e && (e = h), this.domain = e.map(Number), this._rescale()
                }, t.getDomain = function() {
                    return this.domain.slice()
                }, t.setRange = function(e) {
                    return void 0 === e && (e = h), this.range = e.slice(), this._rescale()
                }, t.getRange = function() {
                    return this.range.slice()
                }, t.setInterpolate = function(e) {
                    return void 0 === e && (e = n["default"]), this.interpolate = e, this._rescale()
                }, t.getInterpolate = function() {
                    return this.interpolate
                }, t.setClamp = function(e) {
                    return void 0 === e && (e = !1), this.clamp = !!e, this._rescale()
                }, t.getClamp = function() {
                    return this.clamp
                }, t.rangeRound = function(e) {
                    return void 0 === e && (e = h), this.range = e.slice(), this.interpolate = o["default"], this._rescale()
                }, t.getRangeValue = function(e) {
                    var t = null !== e ? e : void 0,
                        a = this.getClamp() ? function(e) {
                            return function(t, a) {
                                var i = Number(t),
                                    n = Number(a),
                                    o = e(i, n);
                                return function(e) {
                                    return e <= i ? 0 : e >= n ? 1 : o(e)
                                }
                            }
                        }(this.deInterpolate) : this.deInterpolate;
                    return this.output || (this.output = u(this.getDomain(), this.getRange(), a, this.interpolate)), this.output(Number(t))
                }, t.getDomainValue = function(e) {
                    var t = this.getClamp() ? function(e) {
                        return function(t, a) {
                            var i = Number(t),
                                n = Number(a),
                                o = e(i, n);
                            return function(e) {
                                return e <= 0 ? i : e >= 1 ? n : o(e)
                            }
                        }
                    }(this.reInterpolate) : this.reInterpolate;
                    return this.input || (this.input = u(this.getRange(), this.getDomain(), d, t)), this.input(Number(e))
                }, t.setLocale = function(e) {
                    return void 0 === e && (e = l["default"]), this.locale = e, this._localeConverter = new s.NumberConverter(e), this
                }, t.getLocale = function() {
                    return this.locale
                }, t.getId = function() {
                    return this._id
                }, e
            }();
            t["default"] = g
        },
        441: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(433)),
                o = i(a(442));

            function r(e) {
                return null != e
            }
            var l = function(e, t) {
                var a = n["default"];
                return r(t) && r(e) && "boolean" != typeof t ? a(e, t) : (0, o["default"])(t)
            };
            t["default"] = l
        },
        442: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e) {
                return function() {
                    return e
                }
            };
            t["default"] = i
        },
        443: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e, t) {
                var a = Number(e),
                    i = Number(t) - a;
                return function(e) {
                    return Math.round(i * e + a)
                }
            };
            t["default"] = i
        },
        444: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = {
                decimal: ".",
                thousands: ",",
                grouping: [3],
                prefix: "$",
                suffix: ""
            };
            t["default"] = i
        },
        445: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = t.NumberConverter = void 0;
            var n = i(a(444)),
                o = i(a(446)),
                r = i(a(448)),
                l = i(a(454)),
                s = i(a(455)),
                c = i(a(449)),
                h = function(e) {
                    return e
                },
                u = function() {
                    function e(e) {
                        this.localeInfo = {
                            group: e.grouping && e.thousands ? (0, l["default"])(e.grouping, e.thousands) : h,
                            prefix: e.prefix,
                            suffix: e.suffix,
                            decimal: e.decimal,
                            numerals: e.numerals ? (0, s["default"])(e.numerals) : h,
                            percent: e.percent || "%",
                            prefixes: e.prefixes || ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"]
                        }
                    }
                    var t = e.prototype;
                    return t.formatter = function(e) {
                        return new r["default"](e, this.localeInfo)
                    }, t.formatPrefix = function(e, t) {
                        var a = new c["default"](e);
                        a.type = "f";
                        var i = this.localeInfo.prefix,
                            n = this.localeInfo.suffix,
                            l = Object.assign({}, this.localeInfo, {
                                prefix: "",
                                suffix: ""
                            }),
                            s = new r["default"](a, l),
                            h = 3 * Math.max(-8, Math.min(8, Math.floor((0, o["default"])(t) / 3))),
                            u = Math.pow(10, -h),
                            d = this.localeInfo.prefixes[8 + h / 3];
                        return {
                            format: function(e) {
                                return i + s.format(u * e) + d + n
                            },
                            setCustomPrefix: function(e) {
                                return s.setCustomPrefix(e), this
                            },
                            getCustomPrefix: function(e) {
                                return s.getCustomPrefix(e)
                            },
                            setCustomSuffix: function(e) {
                                return s.setCustomSuffix(e), this
                            },
                            getCustomSuffix: function(e) {
                                return s.getCustomSuffix(e)
                            }
                        }
                    }, e
                }();
            t.NumberConverter = u;
            var d = new u(n["default"]);
            t["default"] = d
        },
        446: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(447)),
                o = function(e) {
                    var t = (0, n["default"])(Math.abs(e));
                    return t ? t[1] : NaN
                };
            t["default"] = o
        },
        447: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e, t) {
                var a, i, n;
                return (a = (n = t ? e.toExponential(t - 1) : e.toExponential()).indexOf("e")) < 0 ? null : [(i = n.slice(0, a)).length > 1 ? i[0] + i.slice(2) : i, +n.slice(a + 1)]
            };
            t["default"] = i
        },
        448: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(449)),
                o = i(a(450)),
                r = i(a(453)),
                l = a(451),
                s = function(e) {
                    return null == e
                },
                c = function() {
                    function e(e, t) {
                        this.specifier = new n["default"](e), this.localeInfo = t;
                        var a = this.specifier.symbol;
                        this.fill = this.specifier.fill, this.align = this.specifier.align, this.sign = this.specifier.sign, this.zero = this.specifier.zero, this.width = this.specifier.width, this.comma = this.specifier.comma, this.precision = this.specifier.precision, this.trim = this.specifier.trim, this.type = this.specifier.type, "n" === this.type ? (this.comma = !0, this.type = "g") : o["default"][this.type] || (s(this.precision) && (this.precision = 12), this.trim = !0, this.type = "g"), (this.zero || "0" === this.fill && "=" === this.align) && (this.zero = !0, this.fill = "0", this.align = "="), "$" === a ? this.prefix = this.localeInfo.prefix : "#" === a && /[boxX]/.test(this.type) ? this.prefix = "0" + this.type.toLowerCase() : this.prefix = "", "$" === a ? this.suffix = this.localeInfo.suffix : /[%p]/.test(this.type) ? this.suffix = this.localeInfo.percent : this.suffix = "", this.formatType = o["default"][this.type], this.mayHaveSuffix = /[defgprs%]/.test(this.type), s(this.precision) ? this.precision = 6 : /[gprs]/.test(this.type) ? this.precision = Math.max(1, Math.min(21, this.precision)) : this.precision = Math.max(0, Math.min(20, this.precision)), this.setCustomPrefix(""), this.setCustomSuffix("")
                    }
                    var t = e.prototype;
                    return t.format = function(e) {
                        var t, a, i, n, o, s, c = this.prefix,
                            h = this.suffix,
                            u = this.formatType,
                            d = e;
                        if ("c" === this.type) h = u(d) + h, d = "";
                        else if (t = (d = +d) < 0, d = u(Math.abs(d), this.precision), this.trim && (d = (0, r["default"])(d)), t && 0 == +d && (t = !1), c = t ? ("(" === this.sign ? this.sign : "-") + c : "-" === this.sign || "(" === this.sign ? "" + c : this.sign + c, h = "s" === this.type ? this.localeInfo.prefixes[8 + l.prefixExponent / 3] + h : "" + h, h += t && "(" === this.sign ? ")" : "", this.mayHaveSuffix)
                            for (n = -1, o = d.length; ++n < o;)
                                if ((s = d.charCodeAt(n)) < 48 || s > 57) {
                                    h = (46 === s ? this.localeInfo.decimal + d.slice(n + 1) : d.slice(n)) + h, d = d.slice(0, n);
                                    break
                                }
                        switch (this.comma && !this.zero && (d = this.localeInfo.group(d, Infinity)), i = (a = c.length + d.length + h.length) < this.width ? new Array(this.width - a + 1).join(this.fill) : "", this.comma && this.zero && (d = this.localeInfo.group(i + d, i.length ? this.width - h.length : Infinity), i = ""), this.align) {
                            case "<":
                                d = c + d + h + i;
                                break;
                            case "=":
                                d = c + i + d + h;
                                break;
                            case "^":
                                a = i.length / 2, d = i.slice(0, a) + c + d + h + i.slice(a);
                                break;
                            default:
                                d = i + c + d + h
                        }
                        return this.getCustomPrefix() + this.localeInfo.numerals(d) + this.getCustomSuffix()
                    }, t.setCustomPrefix = function(e) {
                        return this._customPrefix = e + "", this
                    }, t.getCustomPrefix = function() {
                        return this._customPrefix
                    }, t.setCustomSuffix = function(e) {
                        return this._customSuffix = e + "", this
                    }, t.getCustomSuffix = function() {
                        return this._customSuffix
                    }, t.toString = function() {
                        return this.specifier.toString()
                    }, e
                }();
            t["default"] = c
        },
        449: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = /^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i,
                n = function(e) {
                    return null == e
                },
                o = function() {
                    function e(e) {
                        var t = i.exec(e);
                        if (!t) throw new Error("Invalid number format specifier: " + e);
                        this.fill = t[1] || " ", this.align = t[2] || ">", this.sign = t[3] || "-", this.symbol = t[4] || "", this.zero = Boolean(t[5]), this.width = t[6] && Number(t[6]), this.comma = Boolean(t[7]), this.precision = t[8] && Number(t[8].slice(1)), this.trim = Boolean(t[9]), this.type = t[10] || ""
                    }
                    return e.prototype.toString = function() {
                        return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (n(this.width) ? "" : Math.max(1, 0 | this.width)) + (this.comma ? "," : "") + (n(this.precision) ? "" : "." + Math.max(0, 0 | this.precision)) + (this.trim ? "~" : "") + this.type
                    }, e
                }();
            t["default"] = o
        },
        450: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(451)),
                o = i(a(452)),
                r = {
                    "%": function(e, t) {
                        return (100 * e).toFixed(t)
                    },
                    b: function(e) {
                        return Math.round(e).toString(2)
                    },
                    c: function(e) {
                        return e + ""
                    },
                    d: function(e) {
                        return Math.round(e).toString(10)
                    },
                    e: function(e, t) {
                        return e.toExponential(t)
                    },
                    f: function(e, t) {
                        return e.toFixed(t)
                    },
                    g: function(e, t) {
                        return e.toPrecision(t)
                    },
                    o: function(e) {
                        return Math.round(e).toString(8)
                    },
                    p: function(e, t) {
                        return (0, o["default"])(100 * e, t)
                    },
                    r: o["default"],
                    s: n["default"],
                    X: function(e) {
                        return Math.round(e).toString(16).toUpperCase()
                    },
                    x: function(e) {
                        return Math.round(e).toString(16)
                    }
                };
            t["default"] = r
        },
        451: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = t.prefixExponent = void 0;
            var n, o = i(a(447));
            t.prefixExponent = n;
            var r = function(e, a) {
                var i, r, l, s, c = (0, o["default"])(e, a);
                return c ? (i = c[0], (l = (r = c[1]) - (t.prefixExponent = n = 3 * Math.max(-8, Math.min(8, Math.floor(r / 3)))) + 1) === (s = i.length) ? i : l > s ? i + new Array(l - s + 1).join("0") : l > 0 ? i.slice(0, l) + "." + i.slice(l) : "0." + new Array(1 - l).join("0") + (0, o["default"])(e, Math.max(0, a + l - 1))[0]) : e + ""
            };
            t["default"] = r
        },
        452: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(447)),
                o = function(e, t) {
                    var a, i, o = (0, n["default"])(e, t);
                    return o ? (a = o[0], i = o[1], Number(i) < 0 ? "0." + new Array(-i).join("0") + a : a.length > i + 1 ? a.slice(0, i + 1) + "." + a.slice(i + 1) : a + new Array(i - a.length + 2).join("0")) : e + ""
                };
            t["default"] = o
        },
        453: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e) {
                for (var t, a = e.length, i = 1, n = -1; i < a; ++i)
                    if ("." === e[i]) n = t = i;
                    else if ("0" === e[i]) 0 === n && (n = i), t = i;
                else if (n > 0) {
                    if (!+e[i]) break;
                    n = 0
                }
                return n > 0 ? e.slice(0, n) + e.slice(t + 1) : e
            };
            t["default"] = i
        },
        454: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e, t) {
                return function(a, i) {
                    for (var n = a.length, o = [], r = 0, l = e[0], s = 0; n > 0 && l > 0 && (s + l + 1 > i && (l = Math.max(1, i - s)), o.push(a.substring(n -= l, n + l)), !((s += l + 1) > i));) l = e[r = (r + 1) % e.length];
                    return o.reverse().join(t)
                }
            };
            t["default"] = i
        },
        455: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e) {
                return function(t) {
                    return t.replace(/[0-9]/g, (function(t) {
                        return e[+t]
                    }))
                }
            };
            t["default"] = i
        },
        456: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.tickIncrement = l, t.tickStep = function(e, t, a) {
                void 0 === e && (e = 0);
                void 0 === t && (t = 1);
                void 0 === a && (a = 7);
                var r = Math.abs(t - e) / Math.max(0, a),
                    l = Math.floor(Math.log(r) / Math.LN10),
                    s = Math.pow(10, l),
                    c = r / s;
                c >= i ? s *= 10 : c >= n ? s *= 5 : c >= o && (s *= 2);
                return t < e ? -s : s
            }, t["default"] = void 0;
            var i = Math.sqrt(50),
                n = Math.sqrt(10),
                o = Math.sqrt(2);

            function r(e) {
                return e >= i ? 10 : e >= n ? 5 : e >= o ? 2 : 1
            }

            function l(e, t, a) {
                void 0 === e && (e = 0), void 0 === t && (t = 1), void 0 === a && (a = 7);
                var i = (t - e) / Math.max(0, a),
                    n = Math.floor(Math.log(i) / Math.LN10),
                    o = i / Math.pow(10, n);
                return n >= 0 ? r(o) * Math.pow(10, n) : -Math.pow(10, -n) / r(o)
            }
            var s = function(e, t, a) {
                void 0 === e && (e = 0), void 0 === t && (t = 1), void 0 === a && (a = 7);
                var i, n, o, r = -1,
                    s = [],
                    c = +t,
                    h = +e,
                    u = +a;
                if (h === c && u > 0) return [h];
                if ((i = c < h) && (n = h, h = c, c = n), 0 === (o = l(h, c, u)) || !isFinite(o)) return [];
                if (o > 0)
                    for (h = Math.ceil(h / o), c = Math.floor(c / o), n = Math.ceil(c - h + 1); ++r < n;) s[r] = (h + r) * o;
                else
                    for (h = Math.floor(h * o), c = Math.ceil(c * o), n = Math.ceil(h - c + 1); ++r < n;) s[r] = (h - r) / o;
                return i && s.reverse(), s
            };
            t["default"] = s
        },
        457: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t.tickIncrement = p, t.tickStep = f, t.tickFormat = function(e, t, a, i) {
                void 0 === i && (i = n["default"]);
                var c, h, u, g = e[0],
                    p = e[e.length - 1],
                    m = f(g, p, d(t) ? 7 : t);
                switch ((u = new l["default"](d(a) ? ",f" : a)).type) {
                    case "s":
                        return h = Math.max(Math.abs(g), Math.abs(p)), c = (0, s["default"])(m, h), d(u.precision) && !isNaN(c) && (u.precision = c),
                            function(e) {
                                return i.formatPrefix(u, h).format(e)
                            };
                    case "":
                    case "e":
                    case "g":
                    case "p":
                    case "r":
                        c = (0, r["default"])(m, Math.max(Math.abs(g), Math.abs(p))), d(u.precision) && !isNaN(c) && (u.precision = c - ("e" === u.type));
                        break;
                    case "f":
                    case "%":
                        c = (0, o["default"])(m), d(u.precision) && !isNaN(c) && (u.precision = c - 2 * ("%" === u.type))
                }
                return function(e) {
                    return i.formatter(u).format(e)
                }
            }, t["default"] = void 0;
            var n = i(a(445)),
                o = i(a(458)),
                r = i(a(459)),
                l = i(a(449)),
                s = i(a(460)),
                c = Math.sqrt(50),
                h = Math.sqrt(10),
                u = Math.sqrt(2),
                d = function(e) {
                    return null == e
                };

            function g(e) {
                return e >= c ? 10 : e >= h ? 5 : e >= u ? 2 : 1
            }

            function p(e, t, a) {
                void 0 === e && (e = 0), void 0 === t && (t = 1), void 0 === a && (a = 7);
                var i = (t - e) / Math.max(0, a),
                    n = Math.floor(Math.log(i) / Math.LN10),
                    o = i / Math.pow(10, n);
                return n >= 0 ? g(o) * Math.pow(10, n) : -Math.pow(10, -n) / g(o)
            }

            function f(e, t, a) {
                void 0 === e && (e = 0), void 0 === t && (t = 1), void 0 === a && (a = 7);
                var i = Math.abs(t - e) / Math.max(0, a),
                    n = Math.floor(Math.log(i) / Math.LN10),
                    o = Math.pow(10, n),
                    r = i / o;
                return r >= c ? o *= 10 : r >= h ? o *= 5 : r >= u && (o *= 2), t < e ? -o : o
            }
            var m = function(e, t, a) {
                void 0 === e && (e = 0), void 0 === t && (t = 1), void 0 === a && (a = 7);
                var i, n, o, r, l, s, c = -1,
                    h = [];
                if (s = +a, (r = +e) === (l = +t) && s > 0) return [r];
                if ((i = l < r) && (n = r, r = l, l = n), 0 === (o = p(r, l, s)) || !isFinite(o)) return [];
                if (o > 0)
                    for (r = Math.ceil(r / o), l = Math.floor(l / o), n = Math.ceil(l - r + 1); ++c < n;) h[c] = (r + c) * o;
                else
                    for (r = Math.floor(r * o), l = Math.ceil(l * o), n = Math.ceil(r - l + 1); ++c < n;) h[c] = (r - c) / o;
                return i && h.reverse(), h
            };
            t["default"] = m
        },
        458: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(446)),
                o = function(e) {
                    return Math.max(0, -(0, n["default"])(Math.abs(e)))
                };
            t["default"] = o
        },
        459: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(446)),
                o = function(e, t) {
                    var a = Math.abs(e),
                        i = Math.abs(t) - a;
                    return Math.max(0, (0, n["default"])(i) - (0, n["default"])(a)) + 1
                };
            t["default"] = o
        },
        460: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(446)),
                o = function(e, t) {
                    return Math.max(0, 3 * Math.max(-8, Math.min(8, Math.floor((0, n["default"])(t) / 3))) - (0, n["default"])(Math.abs(e)))
                };
            t["default"] = o
        },
        461: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function() {
                var e, t, a, i, n, o = [];
                if (arguments.length > 2 ? (e = arguments.length <= 0 ? undefined : arguments[0], t = arguments.length <= 1 ? undefined : arguments[1], a = arguments.length <= 2 ? undefined : arguments[2]) : 1 === arguments.length ? (e = 0, t = arguments.length <= 0 ? undefined : arguments[0], a = 1) : (e = arguments.length <= 0 ? undefined : arguments[0], t = arguments.length <= 1 ? undefined : arguments[1], a = 1), i = Math.floor(Math.max(0, Math.ceil((t - e) / a))), isFinite(i))
                    for (n = 0; n < i; ++n) o.push(a * n + e);
                return o
            };
            t["default"] = i
        },
        462: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(461)),
                o = a(440),
                r = i(a(433)),
                l = i(a(437)),
                s = a(193),
                c = (0, o.bimap)([2, 100], [80, 20], o.deInterpolateLinear, r["default"]),
                h = function(e, t, a, i) {
                    var o, r, h, u, d, g, p, f, m, v, b, x, y, C, k, S, w, L, A, N, T, E, F, _ = t,
                        P = e,
                        D = i.isPercent ? 0 : i.axisMinValue,
                        I = i.isPercent ? 100 : i.axisMaxValue,
                        M = !!i.adjustDiv,
                        O = i.numDivLines,
                        R = !!i.setAdaptiveMin,
                        B = i.axisRange,
                        V = Math.pow(2, -24),
                        G = !0,
                        z = .2,
                        H = !0,
                        W = i.xAxisLabelMode,
                        j = i.dependentInfo;
                    if (o = i.majorTMNumber !== s.UNDEF ? Math.max(0, O - 2) : O, j && j.count && !j.limit && j.numDivLines !== s.UNDEF && (o = O = j.numDivLines, M = !1), r = o + 1, P === s.UNDEF && _ === s.UNDEF && (P = 0, _ = 1, G = !1), _ === P && 0 === _ && (_ = 1, G = !1), "categories" !== W && "mixed" !== W || (G = !1), G ? (u = Math.floor(Math.log(Math.abs(_)) / Math.LN10), h = Math.floor(Math.log(Math.abs(P)) / Math.LN10), d = Math.max(h, u), g = Math.pow(10, d), Math.abs(_) / g < 2 && Math.abs(P) / g < 2 && (d--, g = Math.pow(10, d)), x = Math.floor(Math.log(_ - P) / Math.LN10), y = Math.pow(10, x), _ - P > 0 && g / y >= 10 && (g = y, d = x), f = (Math.floor(_ / g) + 1) * g, m = P < 0 ? (Math.floor(Math.abs(P / g)) + 1) * g * -1 : R ? (m = Math.floor(Math.abs(P / g) - 1) * g) < 0 ? 0 : m : 0, !R && _ <= 0 && (f = 0), v = !(!I && 0 !== I), b = !(!D && 0 !== D), i.freezeLimit || (!1 === v || !0 === v && Number(I) < _ && _ - Number(I) > V ? (_ = f, v = !1) : _ = Number(I), !1 === b || !0 === b && Number(D) > P && Number(D) - P > V ? (P = m, b = !1) : P = Number(D))) : (b = !(!D && 0 !== D), !0 === (v = !(!I && 0 !== I)) && (Number(I) >= _ || t === s.UNDEF) ? _ = Number(I) : v = !1, !0 === b && (Number(D) <= P || e === s.UNDEF) ? P = Number(D) : b = !1), b && !v && t === s.UNDEF && (_ = P < 0 ? 0 : P + 1), v && !b && e === s.UNDEF && (P = _ > 0 ? 0 : _ - 1), w = [P, _], a.setDomain(w), M && !i.freezeLimit) v || b ? (T = (C = (N = function(e, t, a, i, n, o) {
                        for (var r, l, c, h, u, d, g, p, f, m, v, b, x = t - e, y = e, C = Math.ceil(a * (1 - i)), k = Math.floor(a * (1 + i)), S = [], w = -1, L = function(e) {
                                return function(e) {
                                    var t, a, i = [10, 5, 2, 1],
                                        n = i.length;
                                    for (t = 0; t < n; ++t)
                                        if (e % i[t] % 1 == 0) {
                                            a = !0;
                                            break
                                        }
                                    return a
                                }(r = x / (e + 1)) ? e : s.UNDEF
                            }; !(m && v || ((b = a + ++w) >= k && (v = !0), h = L(b)) || ((b = a - w) <= C && (m = !0), h = L(b))););
                        for (e < 0 && t > 0 && n && (c = !0), l = 0; l < h; l++) c && y < 0 && y + r > 0 && (S.push(0), u = !0), y += r, S.push(y);
                        return h === s.UNDEF && n && ((g = (S = o.ticks(a)).length) > 1 ? (d = .2 * (r = Math.abs(S[0] - S[1])), p = S[0], f = S[g - 1], Math.abs(e - p) <= d && 0 !== p && S.shift(), Math.abs(t - f) <= d && 0 !== f && S.pop(), 0 !== p && 0 !== f || (u = !0)) : 0 === S[0] && (u = !0)), c && !u && -1 === S.indexOf(0) && (e < 0 && S[0] > 0 ? S = [0].concat(S) : t > 0 && S[S.length - 1] < 0 ? S.push(0) : S = [0], u = !0), {
                            output: S,
                            interval: r,
                            isZeroTickForced: u
                        }
                    }(P, _, o, z = (F = o) >= 100 ? .2 : F <= 1 ? 0 : c(F) / 100, i.forceZeroTick, a)).output).length, E = N.isZeroTickForced, Math.abs((o - T + (E ? 1 : 0)) / o) > z ? p = (_ - P) / r : (p = 0 === T || 1 === T && E ? _ - P : N.interval, i.isZeroTickForced = E, i.ticks = E && 0 === P ? C.concat(_) : [P].concat(C, _), H = !1)) : (i.ticks = o ? a.nice(r).ticks(r) : a.getDomain(), p = Math.abs(i.ticks[1] - i.ticks[0]), H = !1);
                    else if (v || b || i.freezeLimit) p = (_ - P) / r;
                    else {
                        var U = a.nice(r).getDomain();
                        ((S = (k = U[0]) + (p = function(e) {
                            if (e <= 1) return 1;
                            var t = [],
                                a = Math.ceil(e);
                            return t[2] = a % 2, t[5] = a % 5, t[10] = a % 10, (0, l["default"])(t) + a
                        }(g = ((S = U[1]) - k) / r)) * r) - _) / _ > z || (k - P) / P > z ? (a.setDomain([P, _]), p = (_ - P) / r) : (P = k, _ = S, a.setDomain([P, _]))
                    }
                    H && (P < 0 && _ > 0 && i.forceZeroTick ? (0 === (A = (L = (0, n["default"])(P, 0, p))[L.length - 1] + p) ? A += p : i.isZeroTickForced = !0, i.ticks = L.concat(0, (0, n["default"])(A, _, p), _)) : i.ticks = (0, n["default"])(P, _, p).concat(_));
                    var q = a.getDomain();
                    P = q[0], _ = q[1], i._allTicks = i.ticks.slice(), B.tickInterval = p, B.min = P, B.max = _
                };
            t["default"] = h
        },
        463: function(e, t, a) {
            "use strict";
            var i = a(191),
                n = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var o = n(a(207)),
                r = i(a(464)),
                l = a(193),
                s = a(470),
                c = n(a(438)),
                h = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, o["default"])(t, e);
                    var a = t.prototype;
                    return a._getHMaxLabelDimention = function(e) {
                        var t, a, i, n, o, s, h, u, d, g, p, f, m, v, b, x, y, C, k, S, w, L, A, N, T, E, F, _, P, D, I, M, O, R, B, V = this,
                            G = e,
                            z = V.config,
                            H = V.getFromEnv("chart"),
                            W = H.config,
                            j = H.getFromEnv("smartLabel"),
                            U = z.axisRange,
                            q = z.labels,
                            Y = z.labelDisplay,
                            X = z.slantLabel,
                            K = q.style,
                            Z = z.maxLabelHeight,
                            J = V.getInterval(),
                            $ = z.staggerLines,
                            Q = z.labelStep,
                            ee = W.canvasLeft,
                            te = W.canvasRight,
                            ae = $ - 2,
                            ie = U.max,
                            ne = U.min,
                            oe = 0,
                            re = z.tickValues && z.tickValues.tickValue,
                            le = re && re.length,
                            se = H.distributedColumns,
                            ce = 0,
                            he = {
                                text: l.UNDEF,
                                width: 0,
                                style: l.UNDEF
                            },
                            ue = 0,
                            de = 4,
                            ge = l.stubFN,
                            pe = l.stubFN,
                            fe = l.stubFN,
                            me = {},
                            ve = 0,
                            be = !1,
                            xe = 0,
                            ye = !1,
                            Ce = Number.POSITIVE_INFINITY,
                            ke = z.ticks,
                            Se = Number.POSITIVE_INFINITY;
                        if (se)
                            for (x = 0; x < le; x++) re[x + 1] ? re[x].x && (re[x].plotWidth = V.getPixel(re[x + 1].x - re[x].x) - V.getPixel(0)) : re[x].plotWidth = V.getPixel(W.canvasRight - re[x].x) - V.getPixel(0);
                        if (z.tickValues && (!re || 0 === re.length)) return {
                            width: 0,
                            height: 0
                        };

                        function we(e, t) {
                            switch (t.toLowerCase()) {
                                case "left":
                                    return Math.abs(V._getCustomPixel(e));
                                case "right":
                                    return Math.abs(W.width - V._getCustomPixel(e))
                            }
                        }
                        if ("rotate" === Y && (z.rotateLabels = 1), z.tickValues || (z.irregularCatAxis = !1), z.sWidthAdjstFactor = a = 0 === ae ? 1 : 1 === ae ? 1.5 : ae, j.useEllipsesOnOverflow(W.useEllipsesWhenOverflow), j.setStyle({
                                fontSize: K.fontSize,
                                fontFamily: K.fontFamily,
                                lineHeight: K.lineHeight,
                                fontWeight: K.fontWeight
                            }), z.irregularCatAxis) {
                            for (re.sort((function(e, t) {
                                    return e.x - t.x
                                })), x = 0, ce = re.length; x < ce; x++) {
                                if (o = re[x], void 0 !== L) {
                                    if (Se = Math.abs(o.x - L), N = Math.abs(V._getCustomPixel(ne) - V._getCustomPixel(ne + Se)), j.setStyle(Object.assign({}, o.style)), N < 1.2 * j.getOriSize("W").width) {
                                        o.label = l.BLANKSTRING, Se = Ce;
                                        continue
                                    }
                                    T._individualIWR = N, o._individualIWL = N, Ce = Se
                                }
                                T = o, L = o.x
                            }
                            for (Se === Number.POSITIVE_INFINITY && (Se = Math.floor(Math.min(o.x, ie - o.x)), Se = Math.max(Se, 4)), x = 0, ce = re.length; x < ce; x++) o = re[x], x || (o._individualIWL = Infinity), x === ce - 1 && (o._individualIWR = Infinity), o.individualIW = Math.min(o._individualIWL, o._individualIWR);
                            h = Math.abs(V._getCustomPixel(ne) - V._getCustomPixel(ne + Se)), h = Math.min(2 * we(re[0].x, "left"), 2 * we(re[ce - 1].x, "right"), h)
                        } else h = Math.abs(V._getCustomPixel(ne) - V._getCustomPixel(ne + J));
                        if (G = Z || G, me.__root__ = {
                                getHeight: function(e) {
                                    var t = re[e]._ovrStyle.lineHeight;
                                    return parseInt(t.replace(/(\d+)px/, "$1"), 10)
                                },
                                getWidth: function() {
                                    return G
                                },
                                getCalculatedLabelStep: function(e) {
                                    var t, a, i, n, o, r, d, g, p, f, m, v = 0,
                                        b = e.length,
                                        x = Number.NEGATIVE_INFINITY,
                                        y = {},
                                        C = 0,
                                        k = z.rotateLabels,
                                        S = "wrap" === Y || "auto" === Y;
                                    for (v = 0; v < b; v++)(n = e[v]).style = n.style || {};
                                    if (z.irregularCatAxis) return z.labelStep;
                                    for (v = 0; v < b; v++)(n = e[v]) && (n.label || (n.label = ""), o = n.oriLabel || n.label, s = {
                                        fontSize: K.fontSize,
                                        fontFamily: K.fontFamily,
                                        lineHeight: K.lineHeight,
                                        fontWeight: K.fontWeight
                                    }, C++, n.style = n.style || {}, (0, l.extend2)(s, n.style), y[t = s.fontSize + s.fontFamily + s.lineHeight + s.fontWeight] ? o.length > y[t].label.length && (y[t].label = o) : y[t] = {
                                        label: o,
                                        style: s
                                    });
                                    for (r in y) y.hasOwnProperty(r) && (a = y[r].style, i = y[r].label, a.lineHeight = (0, l.setLineHeight)(a), j.setStyle(a), k && (p = parseInt(a.lineHeight, 10)), u = j.getSmartText(i, l.UNDEF, p), (g = 0 === k ? u.width > 60 ? 60 : u.width : u.height) > x && (x = g, f = y[r]));
                                    if ((S && (x = Math.min(R, x)), d = Math.floor(Math.abs(V._getCustomPixel(ie) - V._getCustomPixel(ne)) / x), m = Math.max(Math.ceil(C / d), z.labelStep), h = Math.abs(V._getCustomPixel(ne) - V._getCustomPixel(ne + m)), S && 0 === k) && (j.setStyle(f.style), (0, c["default"])(Object.values(j.getOriSize(f.label).detailObj)) > h - 2 * de)) return m += 1, h = Math.abs(V._getCustomPixel(ne) - V._getCustomPixel(ne + m)), m;
                                    return C <= d ? z.labelStep : m
                                }
                            }, me._inProp = {}, me.getCopyById = function(e) {
                                var t, a = this._inProp,
                                    i = this.__root__,
                                    n = a.copyStore;
                                return (t = (n = n || {})[e]) ? t : ((0, l.extend2)(t = n[e] = {}, i), t)
                            }, z.tickValues) {
                            switch (Y) {
                                case "rotate":
                                    q.rotation = X ? 300 : 270, p = me.getCopyById("rotate");
                                    break;
                                case "stagger":
                                    (p = me.getCopyById("stagger")).getHeight = function(e) {
                                        var t, a;
                                        return a = (t = z.tickValues.tickValue[e]) && t.style || (t.style = {}), s = {
                                            fontSize: K.fontSize,
                                            fontFamily: K.fontFamily,
                                            lineHeight: K.lineHeight,
                                            fontWeight: K.fontWeight
                                        }, (0, l.extend2)(s, a), j.setStyle(s), j.getOriSize(t.label).height
                                    }, p.getWidth = function(e) {
                                        return de = 1, e.individualIW ? e.individualIW : 2 * h * a - de
                                    }, fe = function(e) {
                                        var t, a, i, n, o, r, l = e.length,
                                            s = 0;
                                        if (j.setStyle(K), i = j.getOriSize("WWW").height, a = e[l - 1], Math.floor(a._cumulativeSum) <= Math.ceil(l * (i + 2))) o = Math.floor(G / i), $ = o - $ < 0 ? o : $;
                                        else {
                                            o = Math.floor(G / (i + 4));
                                            do {
                                                for (s = 0, n = (r = o) - 1, l = e.length; n < l;) {
                                                    if (l - n < o && (n = l - 1), ~~((t = e[n])._cumulativeSum - s) > -~G) {
                                                        be = !0;
                                                        break
                                                    }
                                                    be = !1, s = t._cumulativeSum, n += r
                                                }
                                            } while (o-- && be);
                                            o++, $ = Math.min($, o)
                                        }
                                        z.drawnStaggerLines = $
                                    }, ge = function(e) {
                                        var t, a, n, o, r = 0;
                                        for (o = 0, a = e.length; o < a; o++)(t = e[o]).stepSkipped || ((n = (t && t.style || {}).lineHeight) || (n = K.lineHeight), i = r++ % $, t.labelPadding = i ? n.replace(/px/i, "") * i : 0)
                                    };
                                    break;
                                case "none":
                                    (p = me.getCopyById("none")).getHeight = l.stubFN, p.getWidth = l.stubFN, pe = l.stubFN, z.rotateLabels && (q.rotation = X ? 300 : 270, A = G), p.getCalculatedLabelStep = function() {
                                        return z.labelStep
                                    };
                                    break;
                                default:
                                    (p = me.getCopyById("auto")).getHeight = function() {
                                        return G
                                    }, p.getWidth = function(e) {
                                        return e.individualIW ? e.individualIW : h - 2 * de
                                    }, j.setStyle(he.style), B = j.getOriSize("WWW"), R = B.width, pe = function(e, t) {
                                        var a, i, n, o;
                                        if (!z.irregularCatAxis && (j.setStyle(e), B = j.getOriSize("WWW"), (R = B.width) >= h && 0 !== z.rotateLabels)) {
                                            for (q.rotation = X ? 300 : 270, q.forceRotate = !0, p = me.getCopyById("rotate"), d = p.getWidth, g = p.getHeight, he.width = 0, a = 0, i = t.length; a < i; a++)(n = t[a]) && (n.label || n.oriLabel) && 0 !== (0, l.pluckNumber)(n.showlabel, z.showLabels, 1) && !0 !== n.stepSkipped && (o = n._ovrStyle, j.setStyle({
                                                fontSize: o.fontSize,
                                                fontFamily: o.fontFamily,
                                                lineHeight: o.lineHeight,
                                                fontWeight: o.fontWeight
                                            }), u = j.getSmartText(n.oriLabel, d(n), g(a)), n.label = u.text, n.labelTooltext = u.tooltext, n._sLabel = u, he.width < u.width && (he.text = u.text, he.width = u.width, he.height = u.height, he.style = o));
                                            f = he.text
                                        }
                                    }
                            }
                            for (d = p.getWidth, g = p.getHeight, Q = z.labels.step = z.labelStep = z._oriLabelStep, Q = z.labels.step = z.labelStep = p.getCalculatedLabelStep(re), x = (0, r.minimumEnquiry)(re), m = 0, y = 0, ce = re.length; x < ce; x++, m++)(o = re[x]) && (o.label || o.oriLabel) && 0 !== (0, l.pluckNumber)(o.showlabel, z.showLabels, 1) && (ye = !0, s = {
                                fontSize: K.fontSize,
                                fontFamily: K.fontFamily,
                                lineHeight: K.lineHeight,
                                fontWeight: K.fontWeight
                            }, (0, l.extend2)(s, o.style), s.lineHeight = (0, l.setLineHeight)(s), (I = s.fontSize + s.fontFamily + s.lineHeight + s.fontWeight) !== D && (j.setStyle(s), D = I), m % Q ? (o.stepSkipped = !0, o.appliedSmartLabel = !1, xe++) : (o.appliedSmartLabel = !0, o.stepSkipped = !1, o._ovrStyle = s, re[x].plotWidth ? t = Math.max("rotate" === Y ? re[x].plotWidth - 6 : 0, g(x)) : ("rotate" === Y ? x < ce - 1 && (n = V.getPixel(x + 1) - V.getPixel(x) - 10) : n = 0, "rotate" === Y && isNaN(+n) && (n = W.canvasWidth / V.getVisibleLength() - 3), t = Math.max(n, g(x))), ve += (u = j.getSmartText(o.oriLabel || o.label, d(o), t)).height + 2, V.components.labels[y++] = {
                                config: {
                                    width: u.width,
                                    height: u.height,
                                    props: {
                                        label: {}
                                    }
                                }
                            }, o._cumulativeSum = ve, o.oriLabel = o.oriLabel || o.label, o.label = u.text, o.labelTooltext = u.tooltext, o._sLabel = u, he.width < u.width && ((0, l.extend2)(he, u), he.style = s), ue < u.height && (ue = u.height)));
                            if (!ye) return {
                                height: 0,
                                width: 0
                            };
                            if (fe(re, xe), ge(re, xe), pe(he.style, re), f = he.text || "", "mixed" === z.xAxisLabelMode)
                                for (S = z.isPercent ? H.getFromEnv("number-formatter").percentValue : H.getFromEnv("number-formatter").xAxis, oe = f.length, x = 0, M = ke && ke.length; x < M; ++x) k = ke[x], (C = "" + S.call(H.getFromEnv("number-formatter"), k, z.axisIndex)).length > oe && (f = C, oe = C.length);
                            for (he.height = Math.max(ue, he.height || 0), _ = re.length, x = 0, ce = re.length; x < ce && !(E = re[x])._sLabel; x++);
                            for (x = (ce = re.length) - 1; x >= 0 && !(F = re[x])._sLabel; x--);
                            P = 1 !== V.getZoom(), q.rotation || P || !E._sLabel ? (z.axisEndLabelDisplaySpace.left = 0, z.axisEndLabelDisplaySpace.right = 0) : (z.axisEndLabelDisplaySpace.left = Math.max(ee - (V._getCustomPixel(E.x || 0) - E._sLabel.width / 2), 0), z.axisEndLabelDisplaySpace.right = Math.max(V._getCustomPixel(F.x || _ - 1) + F._sLabel.width / 2 - te, 0)), w = he
                        } else {
                            for (S = z.numberFormatterFn ? H.getFromEnv("number-formatter")[z.numberFormatterFn] : z.isPercent ? H.getFromEnv("number-formatter").percentValue : H.getFromEnv("number-formatter").xAxis, x = 0, M = ke && ke.length; x < M; ++x) O = ke[x], k = (0, l.toPrecision)(O, 10), C = "" + S.call(H.getFromEnv("number-formatter"), k, z.axisIndex), O === ne && (v = C), O === ie && (b = C), w = j.getOriSize(C), V.components.labels[x] = {
                                config: {
                                    width: w.width,
                                    height: w.height,
                                    props: {
                                        label: {}
                                    }
                                }
                            }, C.length > oe && (f = C, oe = C.length);
                            j.setStyle({
                                fontSize: K.fontSize,
                                fontFamily: K.fontFamily,
                                lineHeight: K.lineHeight,
                                fontWeight: K.fontWeight
                            }), w = j.getOriSize(f || ""), "rotate" === Y && (q.rotation = 270), z.rotateLabels && (q.rotation = X ? 300 : 270), q.rotation || (v = j.getOriSize(v || ""), b = j.getOriSize(b || ""), z.axisEndLabelDisplaySpace.left = v.width / 2 + 2, z.axisEndLabelDisplaySpace.right = b.width / 2 + 2)
                        }
                        return z.tickValues && "stagger" === Y && (w.height = $ * he.height), w.width = A ? Math.min(A, w.width) : w.width, w.width = (0, l.pluckNumber)(w.width), w.maxWidth = (0, l.pluckNumber)(w.maxWidth), w
                    }, a._getVMaxLabelDimention = function(e) {
                        var t, a, i, n, o, r, s, c, h, u, d, g, p, f, m = e,
                            v = this.config,
                            b = this.getFromEnv("chart"),
                            x = b.config,
                            y = b.getFromEnv("smartLabel"),
                            C = v.labels.style,
                            k = v.useEllipsesWhenOverflow,
                            S = v.maxLabelWidthPercent,
                            w = v.minLabelWidthPercent,
                            L = 0,
                            A = b.getFromEnv("dataSource").categories,
                            N = {
                                height: 0,
                                width: 0
                            },
                            T = v.ticks,
                            E = {};
                        if (y.useEllipsesOnOverflow(x.useEllipsesWhenOverflow), y.setStyle({
                                fontSize: C.fontSize,
                                fontFamily: C.fontFamily,
                                lineHeight: C.lineHeight,
                                fontWeight: C.fontWeight
                            }), v.tickValues) {
                            for (A && (E = {
                                    fontFamily: A[0].font,
                                    fontSize: A[0].fontsize,
                                    color: A[0].fontcolor
                                }), S && (a = S / 100 * x.width) < m && (m = a), w && (i = w / 100 * x.width) > m && (m = i), n = 0, h = (c = v.tickValues.tickValue).length; n < h; n++) u = c[n], 0 !== (0, l.pluckNumber)(u.showlabel, v.showLabels) && (p = {
                                fontFamily: (0, l.pluck)(u.font, u.labelfont, E.fontFamily, C.fontFamily),
                                fontSize: (0, l.pluck)(u.fontsize, u.labelfontsize, E.fontSize, C.fontSize).replace(/px/i, "") + "px",
                                fontWeight: "normal" === C.fontWeight ? (0, l.pluckNumber)(u.fontbold, u.labelfontbold, 0) ? "bold" : "normal" : C.fontWeight,
                                fontStyle: "normal" === C.fontStyle ? (0, l.pluckNumber)(u.fontitalic, u.labelfontitalic, 0) ? "italic" : "normal" : C.fontStyle
                            }, (f = {
                                fontFamily: (0, l.pluck)(p.fontFamily, E.fontFamily, C.fontFamily),
                                fontSize: (0, l.pluck)(p.fontSize, E.fontSize, C.fontSize),
                                fontWeight: (0, l.pluck)(p.fontWeight, C.fontWeight),
                                fontStyle: (0, l.pluck)(p.fontStyle, C.fontStyle)
                            }).lineHeight = (0, l.setLineHeight)(f), y.setStyle(f), d = y.getSmartText(u.oriLabel || u.label, m, C.lineHeight, k), this.components.labels[n] = {
                                config: {
                                    width: d.width,
                                    height: d.height,
                                    props: {
                                        label: {}
                                    }
                                }
                            }, u.oriLabel = u.oriLabel || u.label, u.label = s = d.text, u.labelTooltext = d.tooltext, d.width > L && (N = d, L = d.width));
                            return N
                        }
                        for (g = v.numberFormatterFn ? b.getFromEnv("number-formatter")[v.numberFormatterFn] : v.isPercent ? b.getFromEnv("number-formatter").yAxisPercentValue : b.getFromEnv("number-formatter").yAxis, n = 0, o = T && T.length; n < o; ++n) r = (0, l.toPrecision)(T[n], 10), s = "" + g.call(b.getFromEnv("number-formatter"), r, v.axisIndex), d = y.getSmartText(s), this.components.labels[n] = {
                            config: {
                                width: d.width,
                                height: d.height,
                                props: {
                                    label: {}
                                }
                            }
                        }, s.length > L && (t = s, L = s.length);
                        return y.getOriSize(t)
                    }, a.getCleanValue = function(e, t) {
                        return this.getFromEnv("number-formatter").getCleanValue(e, t)
                    }, a.generateMinorTicks = function() {
                        if (this) return []
                    }, a.setCanvas = function(e) {
                        this.config.canvas = e
                    }, a._adjustNumberFormatter = function(e) {
                        var t, a, i = this.config,
                            n = i.axisIndex,
                            o = i.isVertical,
                            r = this.getFromEnv("chart").getFromEnv("number-formatter"),
                            s = i._defaultDecimalPrecision,
                            c = i._defaultForceDecimal,
                            h = 0;
                        a = o || "yAxis" === i.numberFormatterFn ? (r.Y[n] || r.Y[0]).yAxisLabelConf : r.paramX, s !== l.UNDEF ? a.decimalprecision = s : i._defaultDecimalPrecision = a.decimalprecision, c !== l.UNDEF ? a.forcedecimals = c : i._defaultForceDecimal = a.forcedecimals, parseInt(e, 10) > 0 || (t = e.toString().split(".")[1]) && ((h = t.match(/^[0]*/)[0].length + 1) > a.decimalprecision && (a.forcedecimals = 1), a.decimalprecision = Math.max(h, a.decimalprecision))
                    }, a.setLabelConfig = function(e) {
                        var t, a = this.config.labels;
                        for (t in e) e.hasOwnProperty(t) && (a[t] = e[t])
                    }, t
                }(r["default"]);
            h.prototype._parseLabel = s._parseLabel, h.prototype._drawLabel = s._drawLabel, h.prototype.getTrendLineLimits = s.getTrendLineLimits, h.prototype.setAxisPadding = s.setAxisPadding, h.prototype.getLabel = s.getLabel;
            var u = h;
            t["default"] = u
        },
        464: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t.minimumEnquiry = t.getCrispPath = t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(465)),
                r = a(193),
                l = i(a(466)),
                s = i(a(467)),
                c = i(a(468)),
                h = a(201),
                u = a(470),
                d = function(e, t) {
                    var a, i, n = !1,
                        o = t % 2;
                    return e[1] === e[4] && (a = e[1], i = Math.round(a), e[1] = e[4] = o ? i > a ? i - .5 : i + .5 : i, n = !0), e[2] === e[5] && (a = e[2], i = Math.round(a), e[2] = e[5] = o ? i > a ? i - .5 : i + .5 : i, n = !0), {
                        path: e,
                        isCrisped: n
                    }
                },
                g = function(e) {
                    return function(t, a) {
                        return !!(e.minValue <= t && e.maxValue >= t || e.minValue <= a && e.maxValue >= a)
                    }
                },
                p = function(e) {
                    return function(t) {
                        return !!(e.minValue <= t && e.maxValue >= t)
                    }
                },
                f = {
                    wrtVisible: !0
                },
                m = function(e) {
                    for (var t = 0, a = e.length; t < a; t++)
                        if (e[t].label || e[t].oriLabel) return t
                };
            t.minimumEnquiry = m, t.getCrispPath = d, (0, h.addDep)({
                name: "cartesianAxisAnimation",
                type: "animationRule",
                extension: l["default"]
            });
            var v = function(e) {
                function t() {
                    var t;
                    return (t = e.call(this) || this).config.referenceInfo = [], t.config.prevTicks = [], t.config.prevIntervalArr = [], t.config.prevTrendLabels = [], t.config.prevCategoryIntervalArr = [], t
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.placeAxis = function(e) {
                    var t = this.getScale(),
                        a = this.getFromEnv("chart"),
                        i = this.config.isVertical,
                        n = this.config.isReverse,
                        o = a.config;
                    return i ? (n ? t.setRange([o.canvasBottom, o.canvasTop]) : t.setRange([o.canvasTop, o.canvasBottom]), this._placeVerticalAxis(e)) : (n ? t.setRange([o.canvasRight, o.canvasLeft]) : t.setRange([o.canvasLeft, o.canvasRight]), this._placeHorizontalAxis(e))
                }, a._placeVerticalAxis = function(e) {
                    var t, a, i, n, o, l, s, c, h, u, d, g, p, f, m, v, b, x, y = e,
                        C = this.config,
                        k = this.getFromEnv("chart"),
                        S = k.config,
                        w = k.getFromEnv("smartLabel"),
                        L = C.axisRange,
                        A = C.minLabelWidthPercent,
                        N = C.name,
                        T = C.isOpposit,
                        E = this.getFromEnv("number-formatter"),
                        F = S.canvasHeight,
                        _ = C.labelPadding = (0, r.pluckNumber)(C.rawAttr.axisValuePadding, 4),
                        P = (0, r.pluckNumber)(C.rawAttr.axisNamePadding, 5),
                        D = C.useEllipsesWhenOverflow,
                        I = C.name.style,
                        M = C.trend.trendStyle,
                        O = C.axisName,
                        R = C.trendLines,
                        B = C.drawLabelsOpposit,
                        V = C.drawAxisNameOpposit,
                        G = 0,
                        z = 0,
                        H = 0,
                        W = 0,
                        j = 0,
                        U = 0,
                        q = {
                            left: 0,
                            right: 0
                        },
                        Y = r.BLANKSTRING,
                        X = r.BLANKSTRING,
                        K = 0,
                        Z = -1;
                    if (A && (Z = A / 100 * S.width), C.oriCanvasHeight = F, _ < 0 && (C.labelPadding = 2), v = C.drawTick && C.tickLength ? C.axisLineThickness + C.tickLength : C.axisLineThickness, C.showAxisLine ? (C.labelPadding = (0, r.pluckNumber)(_, 2) + v, C.labelPadding < 0 && (C.labelPadding = (C.axisLineThickness < 0 ? 0 : v) + 2), y -= C.axisLineThickness) : (C.labelPadding = (0, r.pluckNumber)(_, 2), C.labelPadding < 0 && (C.labelPadding = 2)), h = L.max, u = L.min, C.name.rotation = 0, C.labels.step = C.labelStep, C.labels.isDraw = 1, C.labels.drawNormalVal = C.showDivLineValues, C.labels.drawLimitVal = C.showLimits, K = I.lineHeight, K = Number(K.replace(/px/i, "")), O && K < y && (y -= K), 1 !== C.showLimits && 1 !== C.showDivLineValues && (C.labels.isDraw = 0), ((g = C.drawLabels ? this._getVMaxLabelDimention(y - C.labelPadding) : {
                            width: 0,
                            height: 0
                        }).width + C.labelPadding > y && !C.tickValues || 0 === g.width) && (C.labels.isDraw = 0), C.labels.isDraw && (C.labelMaxW = g.width > Z ? g.width : Z, C.labelMaxH = g.height, H = G = C.labelMaxW + C.labelPadding), C.drawTrendLines && C.drawTrendLabels && R && R.length) {
                        for (n = C.isPercent ? E.percentValue : C.isVertical ? E.yAxis : E.xAxis, w.useEllipsesOnOverflow(S.useEllipsesWhenOverflow), w.setStyle({
                                fontSize: M.fontSize,
                                fontFamily: M.fontFamily,
                                lineHeight: M.lineHeight,
                                fontWeight: M.fontWeight
                            }), t = 0, a = R.length; t < a; t += 1)
                            for (c = 0, p = R[t].line && R[t].line.length; c < p; c += 1) f = R[t].line[c], b = E.getCleanValue((0, r.pluck)(f.startvalue, f.value, 0)), x = (0, r.pluckNumber)(f.endvalue, b), b <= h && b >= u && x <= h && x >= u && (s = 1 === (m = (0, r.pluckNumber)(f.valueonright, T ? 1 : 0)) ? f.endvalue || f.startvalue : f.startvalue || f.endvalue, (d = (0, r.parseUnsafeString)(f.origText || f.displayvalue || s || "")) === s && (d = "" + n.call(E, d)), m ? d.length > X.length && (X = d) : d.length > Y.length && (Y = d));
                        for (U = (g = w.getOriSize(X)).width ? g.width + C.labelPadding : 0, j = (g = w.getOriSize(Y)).width ? g.width + C.labelPadding : 0, T ? (U > H && U > y && (U = y), j > y - (H = Math.max(H, U + C.labelPadding)) && (j = Math.min(j, y - H))) : (j > H && j > y && (j = y), U > y - (H = Math.max(H, j + C.labelPadding)) && (U = Math.min(U, y - H))), t = 0, a = R.length; t < a; t += 1)
                            for (c = 0, p = R[t].line && R[t].line.length; c < p; c += 1) f = R[t].line[c], b = E.getCleanValue((0, r.pluck)(f.startvalue, f.value, 0)), x = (0, r.pluckNumber)(f.endvalue, b), d = 1 === Number(f.valueonright) ? f.origText || f.displayvalue || "" + x || "" : f.origText || f.displayvalue || "" + b || "", (d = (0, r.parseUnsafeString)("" + d)) !== f.endvalue && d !== f.startvalue || (d = "" + n.call(E, d)), f.origText = d, l = (m = (0, r.pluckNumber)(f.valueonright, T ? 1 : 0)) ? w.getSmartText(d, U, k.config.canvasHeight, D) : w.getSmartText(d, j, k.config.canvasHeight, D), (i = C.parsedTrendLabels[z++]) && (i.attr.text = f.displayvalue = l.text), l.tooltext ? (f.valueToolText = l.tooltext, i && (i.valueToolText = f.valueToolText)) : (delete f.valueToolText, i && delete i.valueToolText)
                    }
                    return y += K, !C.drawAxisName || y - H - U <= 0 || "" === O ? (N.isDraw = !1, N.value = r.BLANKSTRING) : (w.setStyle({
                        fontSize: I.fontSize,
                        fontFamily: I.fontFamily,
                        lineHeight: I.lineHeight,
                        fontWeight: I.fontWeight
                    }), N.isDraw = !0, C.rotateAxisName ? (C.name.rotation = T ? 90 : 270, o = w.getSmartText(O, F, y - H - U), N.value = O, C.nameMaxW = Math.min(o.height), W = C.nameMaxW + P) : (o = w.getSmartText(O, y - H - U, F), N.value = O, C.nameMaxW = Math.min(o.width, y - H), C.nameMaxH = o.height, C.axisNameWidth >= 0 && (C.nameMaxW = Math.min(C.nameMaxW, C.axisNameWidth)), W = C.nameMaxW + P)), T ? (B ? (q.left += Math.max(G, j), q.right += U) : (q.left += j, q.right += Math.max(G, U)), V ? (C.axisNamePadding = q.left + P, q.left += W) : (C.axisNamePadding = q.right + P, q.right += W)) : (B ? (q.left += j, q.right += Math.max(G, U)) : (q.left += Math.max(G, j), q.right += U), V ? (C.axisNamePadding = q.right + P, q.right += W) : (C.axisNamePadding = q.left + P, q.left += W)), N.isDraw && C.axisNamePadding + C.nameMaxW > y && (C.axisNamePadding = y - C.nameMaxW, W = C.nameMaxW + C.axisNamePadding - H), q
                }, a._placeHorizontalAxis = function(e) {
                    var t, a, i, n, o, l, s, c, h, u, d, g, p, f, m, v, b, x, y = e,
                        C = this.config,
                        k = this.getFromEnv("chart"),
                        S = k.config,
                        w = k.getFromEnv("smartLabel"),
                        L = C.axisRange,
                        A = C.name,
                        N = C.isOpposit,
                        T = k.getFromEnv("number-formatter"),
                        E = C.drawLabelsOpposit,
                        F = C.drawAxisNameOpposit,
                        _ = 0,
                        P = S.canvasWidth,
                        D = C.labelPadding = (0, r.pluckNumber)(C.rawAttr.axisValuePadding, 4),
                        I = (0, r.pluckNumber)(C.rawAttr.axisNamePadding, 5),
                        M = C.useEllipsesWhenOverflow,
                        O = C.name.style,
                        R = C.trend.trendStyle,
                        B = C.axisName,
                        V = C.vTrendLines,
                        G = 0,
                        z = 0,
                        H = 0,
                        W = {
                            top: 0,
                            bottom: 0
                        },
                        j = 0,
                        U = 0;
                    if (D < 0 && (C.labelPadding = 2), v = C.drawTick && C.tickLength ? C.axisLineThickness + C.tickLength : C.axisLineThickness, C.showAxisLine ? (C.labelPadding = (0, r.pluckNumber)(D, 2) + v, C.labelPadding < 0 && (C.labelPadding = (C.axisLineThickness < 0 ? 0 : v) + 2), y -= C.axisLineThickness) : (C.labelPadding = (0, r.pluckNumber)(D, 2), C.labelPadding < 0 && (C.labelPadding = 2)), s = L.max, c = L.min, C.labels.rotation = 0, C.labels.step = C.labelStep, C.labels.isDraw = 1, C.labels.drawNormalVal = C.showDivLineValues, C.labels.drawLimitVal = C.showLimits, U = O.lineHeight, U = Number(U.replace(/px/i, "")), B && U < y && (y -= U), C.rotateLabels && "stagger" !== C.labelDisplay && "none" !== C.labelDisplay && (C.labelDisplay = "rotate"), 1 !== C.showLimits && 1 !== C.showDivLineValues && (C.labels.isDraw = 0), f = C.drawLabels ? this._getHMaxLabelDimention(y - C.labelPadding) : {
                            width: 0,
                            height: 0
                        }, C.labels.rotation ? f.width + C.labelPadding > y && !C.tickValues && (C.labels.isDraw = 0) : f.height + C.labelPadding > y && !C.tickValues && (C.labels.isDraw = 0), C.labels.isDraw && (C.labels.rotation ? (C.labelMaxW = f.height, C.labelMaxH = f.width, _ = f.width + C.labelPadding) : (C.labelMaxW = f.width, C.labelMaxH = f.height, _ = f.height + C.labelPadding), G = _), d = (G = Math.max(G, C.labelPadding)) <= y ? y - G : y, C.drawTrendLines && C.drawTrendLabels && V && C.isActive)
                        for (m = C.isPercent ? this.getFromEnv("number-formatter").percentValue : C.isVertical ? this.getFromEnv("number-formatter").yAxis : this.getFromEnv("number-formatter").xAxis, w.useEllipsesOnOverflow(S.useEllipsesWhenOverflow), w.setStyle({
                                fontSize: R.fontSize,
                                fontFamily: R.fontFamily,
                                lineHeight: R.lineHeight,
                                fontWeight: R.fontWeight
                            }), a = 0, i = V.length; a < i; a += 1)
                            for (l = 0, u = V[a].line && V[a].line.length; l < u; l += 1) g = V[a].line[l], b = T.getCleanValue((0, r.pluck)(g.startvalue, g.value, 0)), x = (0, r.pluckNumber)(g.endvalue, b), b <= s && b >= c && x <= s && x >= c && (t = 1 === (0, r.pluckNumber)(g.valueonright, 0) ? g.endvalue || g.startvalue : g.startvalue || g.endvalue, (h = (0, r.parseUnsafeString)(g.origText || g.displayvalue || t || "")) === t && (h = "" + m.call(k.getFromEnv("number-formatter"), h)), g.origText = h, d - ((p = w.getSmartText(h, k.canvasWidth, R.lineHeight, M)).height + 2) < 0 ? g.displayvalue = r.BLANKSTRING : ((n = C.parsedTrendLabels[z++]) && (n.attr.text = g.displayvalue = p.text), j = j < p.height ? p.height : j), p.tooltext ? (g.valueToolText = p.tooltext, n && (n.valueToolText = g.valueToolText)) : (delete g.valueToolText, n && delete n.valueToolText));
                    return d -= j, G += N ? 0 : j, d += U, y += U, !C.drawAxisName || d <= 0 || "" === B ? (A.isDraw = !1, A.value = r.BLANKSTRING) : (w.setStyle({
                        fontSize: O.fontSize,
                        fontFamily: O.fontFamily,
                        lineHeight: O.lineHeight,
                        fontWeight: O.fontWeight
                    }), A.isDraw = !0, o = w.getSmartText(B, P, d), A.value = B, C.nameMaxW = P, C.nameMaxH = o.height, H = o.height + I, C.axisNamePadding = I + G, C.axisNamePadding + o.height > y && (C.axisNamePadding = y - o.height, H = o.height + C.axisNamePadding - G)), N ? (E ? W.bottom += _ + j : (W.top += _, W.bottom += j), C.trendBottomPadding = W.bottom - j + 2, F ? W.bottom += H : W.top += H) : (E ? (W.top += _, W.bottom += j) : W.bottom += _ + j, C.trendBottomPadding = W.bottom - j + 2, F ? W.top += H : W.bottom += H), W
                }, a._parseCategoryPlotLine = function() {
                    var e, t, a, i = this.config,
                        n = i.axisRange,
                        o = i.tickValues.tickValue,
                        l = (0, r.convertColor)(i.divLineColor, i.divLineAlpha),
                        s = i.divLineThickness,
                        c = i.divLineIsDashed ? (0, r.getDashStyle)(i.divLineDashLen, i.divLineDashGap, s) : r.DASH_DEF,
                        h = p(this.getVisibleConfig()),
                        u = i._allTicks,
                        d = u.length;
                    if (e = {
                            stroke: l,
                            "stroke-width": s,
                            "stroke-dasharray": c
                        }, (!o[0] || o[0].x === r.UNDEF && o[0].y === r.UNDEF) && i.lines.isDraw && i.categoryNumDivLines)
                        for (t = 0; t < d; ++t) h(a = u[t]) && a !== n.min && a !== n.max && this.setReferenceInfo({
                            from: a,
                            type: "line",
                            layer: 1,
                            attr: e
                        })
                }, a._drawComponents = function() {
                    var e = this.config;
                    e.drawAxisName && this._drawAxisName(), e.drawAxisLine && this._drawAxisLine(), e.tickValues ? e.drawLabels && this._drawCategory() : e.drawLabels && this._drawLabel(), e.drawTrendLines && this.drawTrendLabel()
                }, a.drawTrendLabel = function() {
                    var e, t, a, i, n, o, l, s, h, u, d, g, p, m, v, b, x = this.config,
                        y = x.parsedTrendLabels,
                        C = this.getFromEnv("animationManager"),
                        k = this.getFromEnv("toolTipController"),
                        S = x.axisTrendLabelContainer,
                        w = x.isOpposit,
                        L = x.labelPadding,
                        A = x.vTrendLines,
                        N = x.trendLines,
                        T = x.axisDimention,
                        E = this.getVisibleConfig(),
                        F = E.minValue,
                        _ = E.maxValue,
                        P = !0;
                    for (v = 0, b = y.length; v < b; v++) y[v].id = v + "_trend";
                    for (A ? i = w ? T.opposite + (x.trendBottomPadding || 0) : T.y + (x.trendBottomPadding || 0) : (i = w ? T.opposite - (L || 0) : T.x - (L || 0), n = w ? T.x + (L || 0) : T.opposite + (L || 0)), v = 0, b = (p = (0, c["default"])((function(e, t) {
                            return e.attr.text === t.attr.text
                        }), x.prevTrendLabels, y)).length; v < b; v++)(g = this.getGraphicalElement(p[v].id)) && this.removeGraphicalElement(g);
                    if (x.prevTrendLabels = (0, r.extend2)([], y), x.drawTrendLabels)
                        for (v = 0, b = y.length; v < b; v++) t = y[v], a = this.getGraphicalElement(v + "_trend"), l = +t.from, h = +t.to, P = !0, (m = !isNaN(h)) ? (F > (s = l + (h - l) / 2) || _ < s) && (P = !1) : (F > l || _ < l) && (P = !1), P ? (A ? (u = this.getPixel(l, f), d = h ? this.getPixel(h, f) : 0, o = (0, r.pluckNumber)(t.isTrendZone, x.isTrendZone, 1), m && h !== l && o ? (t.attr.x = u + (d - u) / 2, t.attr.y = i) : (t.attr.x = h ? d : u, t.attr.y = i)) : N && (u = this.getPixel(l, f), d = h ? this.getPixel(h, f) : 0, e = (0, r.pluckNumber)(t.valueOnRight, x.isOpposit ? 1 : 0), o = (0, r.pluckNumber)(t.isTrendZone, x.isTrendZone, 0), m && h !== l && o ? (t.attr.x = e ? n : i, t.attr.y = u + (d - u) / 2) : (t.attr.x = e ? n : i, t.attr.y = h && e ? d : u)), a = this.addGraphicalElement(v + "_trend", C.setAnimation({
                            container: S,
                            el: a || "text",
                            attr: t.attr,
                            css: t.css,
                            data: {
                                value: s || l
                            },
                            component: this,
                            label: "text"
                        })), x.showTooltip && t.valueToolText ? k.enableToolTip(a, t.valueToolText) : k.disableToolTip(a)) : a && this.removeGraphicalElement(a);
                    else
                        for (v = 0, b = y.length; v < b; v++)(g = this.getGraphicalElement(y[v].id)) && this.removeGraphicalElement(g)
                }, a._drawAxisName = function() {
                    var e, t, a, i, n, o, l = this.config,
                        s = this.getFromEnv("toolTipController"),
                        c = this.getLinkedItem("canvas").getEffectiveDimensions(),
                        h = this.getFromEnv("animationManager"),
                        u = c.left,
                        d = c.top,
                        g = c.width,
                        p = c.height,
                        f = d + p,
                        m = u + g,
                        v = this.getFromEnv("chart").config,
                        b = l.name.style,
                        x = l.name.value,
                        y = l.isOpposit,
                        C = l.isVertical,
                        k = this.getFromEnv("smartLabel"),
                        S = l.axisNameContainer,
                        w = l.axisNamePadding,
                        L = l.nameMaxH,
                        A = l.nameMaxW,
                        N = l.axisDimention,
                        T = C ? N.x : N.y,
                        E = N.opposite,
                        F = this.getGraphicalElement("axisName"),
                        _ = (0, r.pluckNumber)(l.name.rotation, C ? 90 : 270),
                        P = this.getFromEnv("paper"),
                        D = {
                            fontFamily: b.fontFamily,
                            fontSize: b.fontSize,
                            lineHeight: b.lineHeight,
                            fontWeight: b.fontWeight,
                            fontStyle: b.fontStyle
                        };
                    l.name.isDraw ? (e = {
                        fontFamily: b.fontFamily,
                        fill: b.color,
                        "vertical-align": "middle",
                        "font-size": b.fontSize,
                        "line-height": b.lineHeight
                    }, k.useEllipsesOnOverflow(v.useEllipsesWhenOverflow), k.setStyle({
                        fontSize: b.fontSize,
                        fontFamily: b.fontFamily,
                        lineHeight: b.lineHeight,
                        fontWeight: b.fontWeight
                    }), l.drawAxisNameOpposit && (y = !y, T = E), C ? (w = Math.max(w, function(e, t) {
                        var a = 0;
                        return e.relativeAxis && e.relativeAxis.config && e.relativeAxis.config.axisNamePadding && (a = Math.max(e.relativeAxis.config.axisNamePadding, a)), e.isOpposit && t.canvasMarginRight && (a = Math.max(a, t.canvasMarginRight - t.marginLeft - e.nameMaxW)), !e.isOpposit && t.canvasMarginLeft && (a = Math.max(a, t.canvasMarginLeft - t.marginRight - e.nameMaxW)), a
                    }(l, v)), i = l.axisNameAlignCanvas || v.captionalignment && "left" === v.captionalignment ? p : Math.max(p, l.oriCanvasHeight || 0), _ ? (a = (t = k.getSmartText(x, i, A)).tooltext, n = t.width) : (a = (t = k.getSmartText(x, A, i)).tooltext, n = t.height), o = l.drawAxisNameFromBottom ? f - n / 2 : n > p ? v.height / 2 : d + p / 2, e.text = t.text, e.x = y ? (T || m) + w + A / 2 : (T || u) - w - A / 2, e.y = o) : (a = (t = k.getSmartText(x, g, L)).tooltext, y && v.canvasMarginTop && (w = Math.max(w, v.canvasMarginTop - v.marginTop - L)), !y && v.canvasMarginBottom && (w = Math.max(w, v.canvasMarginBottom - v.marginBottom - L)), e.text = t.text, e.x = u + g / 2, e.y = y ? (T || d) - w - L / 2 : (T || f) + w + L / 2), e["text-bound"] = "" === t.text ? [] : [b.backgroundColor, b.borderColor, b.borderColor ? b.borderThickness : 0, b.borderPadding, b.borderRadius, b.borderDash], e.transform = P.getSuggestiveRotation(C ? _ : 0, e.x, e.y), F = this.addGraphicalElement("axisName", h.setAnimation({
                        css: D,
                        el: F || "text",
                        attr: e,
                        container: S,
                        component: this,
                        label: "text"
                    })), l.showTooltip ? s.enableToolTip(F, a) : s.disableToolTip(F)) : F && this.removeGraphicalElement(F)
                }, a._drawAxisLine = function() {
                    var e, t, a, i, n, o, l, c, h, u, g, p, m, v, b, x, y, C, k = this.config,
                        S = k.isVertical,
                        w = k.isOpposit,
                        L = this.getFromEnv("chart"),
                        A = this.getLinkedItem("canvas").getEffectiveDimensions(),
                        N = this.getFromEnv("animationManager"),
                        T = A.top,
                        E = A.left,
                        F = T + A.height,
                        _ = E + A.width,
                        P = k.axisDimention,
                        D = S ? P.x : P.y,
                        I = k.drawAxisLineWRTCanvas,
                        M = L.getFromEnv("chart-attrib"),
                        O = k.axisAxisLineContainerBottom,
                        R = this.getGraphicalElement("axisLine"),
                        B = [];
                    if (i = 1 === (0, r.pluckNumber)(M.showyaxisline, M.showyaxisline) ? (0, r.pluckNumber)(M.yaxislinethickness, M.pyaxislinethickness, 1) : 0, k.showAxisLine) {
                        if (S ? (n = w ? (D = I ? _ : D) + k.axisLineThickness / 2 : (D = I ? E : D) - k.axisLineThickness / 2, a = (x = d(["M", n, F, "L", n, T], k.axisLineThickness)).path) : (n = w ? (D = I ? T : D) - k.axisLineThickness / 2 : (D = I ? F : D) + k.axisLineThickness / 2, a = (x = d(["M", E - i, n, "L", _, n], k.axisLineThickness)).path), c = {
                                path: a,
                                stroke: k.axisLineColor,
                                "stroke-linecap": "butt",
                                "stroke-width": k.axisLineThickness,
                                "shape-rendering": x.isCrisped ? "crisp" : r.UNDEF
                            }, k.drawTick && k.tickLength)
                            for (e = {
                                    stroke: k.tickColor,
                                    "stroke-width": k.tickWidth
                                }, o = S ? w ? n + k.tickLength : n - k.tickLength : w ? n - k.tickLength : n + k.tickLength, b = 0, C = (y = k.tickValues ? k.tickValues.tickValue.map((function(e) {
                                    return S ? e.y : e.x
                                })) : k.ticks).length; b < C; b += 1) m = (p = y[b]) + "_tick", u = this.getGraphicalElement(m), l = this.getPixel(p, f), e.path = d(S ? ["M", n, l, "L", o, l] : ["M", l, n, "L", l, o], k.tickWidth).path, h = N.setAnimation({
                                el: u || "path",
                                attr: e,
                                data: {
                                    value: p,
                                    path: e.path
                                },
                                container: O,
                                component: this,
                                label: "path"
                            }), u || this.addGraphicalElement(m, h), B.push(m);
                        t = N.setAnimation({
                            el: R || "path",
                            attr: c,
                            container: O,
                            component: this,
                            label: "path"
                        }), R || this.addGraphicalElement("axisLine", t), B.push("axisLine")
                    }
                    for (b = 0, C = (v = (0, s["default"])(k.prevTicks, B)).length; b < C; b++)(g = this.getGraphicalElement(v[b])) && this.removeGraphicalElement(g);
                    k.prevTicks = B
                }, a._parseCategory = function() {
                    var e, t, a, i, n, o, l, s, c, h, u, d, g, p, m, v, b, x, y, C, k, S, w, L, A, N, T, E, F, _ = this.config,
                        P = _.axisDimention || {},
                        D = this.getFromEnv("chart"),
                        I = D.getFromEnv("smartLabel"),
                        M = this.components,
                        O = M.labels,
                        R = this.getLinkedItem("canvas").getEffectiveDimensions(),
                        B = D.config,
                        V = _.isOpposit,
                        G = _.labels,
                        z = G.style,
                        H = _.isVertical,
                        W = R.top,
                        j = R.left,
                        U = W + R.height,
                        q = j + R.width,
                        Y = _.labelPadding,
                        X = H ? P.x : P.y,
                        K = P.opposite,
                        Z = D.getFromEnv("dataSource").categories,
                        J = {},
                        $ = _.tickValues.tickValue,
                        Q = _.axisRange.min,
                        ee = _.drawnStaggerLines,
                        te = (_.labelStep !== _.labels.step || 1 !== this.getZoom()) && "stagger" === _.labelDisplay;
                    if (_.labels.isDraw)
                        for (H && (A = Math.abs(this.getPixel(0, f) - this.getPixel(0 + _.axisRange.tickInterval, f)), _.labelMaxH > A && (k = Math.ceil(_.labelMaxH / A)), k > _.labels.step && (_.labels.step = k)), te && (L = 2 * Math.abs(this.getPixel(Q, f) - this.getPixel(Q + _.labels.step, f)) * _.sWidthAdjstFactor - 1), T = (i = _.labels.rotation) ? _.labelMaxH : _.labelMaxW, E = i ? _.labelMaxW : _.labelMaxH, _.drawLabelsOpposit && (V = !V, X = K), Z && Z[0] && "auto" !== _.xAxisLabelMode && (J.fontFamily = Z[0].font, J.fontSize = Z[0].fontsize, J.color = Z[0].fontcolor), _.ParentCss = g = {
                                fontFamily: (0, r.pluck)(J.fontFamily, z.fontFamily),
                                fontSize: (0, r.pluck)(J.fontSize, z.fontSize),
                                fontWeight: (0, r.pluck)(z.fontWeight),
                                fontStyle: (0, r.pluck)(z.fontStyle)
                            }, g.lineHeight = (0, r.setLineHeight)(g), y = this._getCategoryArr(), M.labelIndexArr = [], e = 0, C = y.length; e < C; e += 1) t = $[F = y[e].index], b = y[e].value, M.labelIndexArr.push(F), c = (0, r.pluck)(t.font, t.labelfont), h = (0, r.pluck)(t.fontsize, t.labelfontsize), u = (0, r.pluck)(t.fontbold, t.labelfontbold) ? (0, r.pluckNumber)(t.fontbold, t.labelfontbold, 0) ? "bold" : r.NORMAL : r.UNDEF, d = (0, r.pluck)(t.fontitalic, t.labelfontitalic) ? (0, r.pluckNumber)(t.fontitalic, t.labelfontitalic, 0) ? "italic" : r.NORMAL : r.UNDEF, m = (0, r.convertColor)((0, r.pluck)(t.fontcolor, t.labelfontcolor, J.color, z.color), (0, r.pluckNumber)(t.labelalpha, _.rawAttr.labelAlpha, D.config.singleseries ? r.UNDEF : t.alpha, 100)), c || h || u || d ? (s = {}, c && (s.fontFamily = c), h && (s.fontSize = h), u && (s.fontWeight = u), d && (s.fontStyle = d), s.lineHeight = h ? (0, r.setLineHeight)(s) : g.lineHeight) : s = r.UNDEF, (s || g) && -1 !== (o = (s || g).lineHeight).indexOf("px") && (n = o.replace(/px/i, ""), n = parseFloat(n)), !1 === t.appliedSmartLabel && (I.setStyle(t._ovrStyle || g), N = I.getSmartText(t.oriLabel || t.label, T, E), t.oriLabel = t.oriLabel || t.label, t.label = N.text, t.labelTooltext = N.labelTooltext, t.appliedSmartLabel = !0), v = this.getPixel(b, f), H ? (a = t.label || "", l = Number(t.labelPadding) || 0, p = {
                            fill: m,
                            "line-height": n,
                            opacity: 1,
                            "text-anchor": V ? r.POSITION_START : r.POSITION_END,
                            text: a,
                            cursor: !B.singleseries && t.link || t.labellink || z.labelLink ? r.POINTER : "",
                            x: V ? (X || q) + Y : (X || j) - Y,
                            y: l ? v + l : v
                        }) : (a = t.label || "", l = Number(t.labelPadding) || 0, p = {
                            fill: m,
                            "line-height": n,
                            opacity: 1,
                            text: a,
                            cursor: !B.singleseries && t.link || t.labellink || z.labelLink ? r.POINTER : "",
                            x: v,
                            y: V ? (X || W) - Y : (X || U) + Y
                        }, i ? (p["text-anchor"] = V ? r.POSITION_START : r.POSITION_END, p["vertical-align"] = r.POSITION_MIDDLE) : (p["text-anchor"] = r.POSITION_MIDDLE, p["vertical-align"] = V ? r.POSITION_BOTTOM : r.POSITION_TOP), te ? ((S = t.labelCount % ee) && ((n = t.style.lineHeight) || (n = _.labels.style.lineHeight), w = n.replace(/px/i, "") * S, p.y = V ? p.y - w : p.y + w), I.setStyle(t._ovrStyle || g), N = I.getSmartText(t.oriLabel || t.label, L, E), t.oriLabel = t.oriLabel || t.label, p.text = t.label = N.text, t.labelTooltext = N.labelTooltext, t.appliedSmartLabel = !0) : l && (V ? p.y -= l : p.y += l)), x = {
                            label: t.label,
                            lineHeight: o,
                            border: (0, r.pluckNumber)(t.borderthickness, t.labelborderthickness) ? (0, r.pluckNumber)(t.borderthickness, t.labelborderthickness, 1) + "px solid" : "",
                            borderColor: t.bordercolor || t.labelbordercolor ? (0, r.convertColor)(t.bordercolor || t.labelbordercolor, (0, r.pluckNumber)(t.borderalpha, t.labelborderalpha, t.alpha, t.labelalpha, 100)) : r.BLANKSTRING,
                            borderThickness: (0, r.pluckNumber)(t.borderthickness, t.labelborderthickness),
                            borderPadding: (0, r.pluckNumber)(t.borderpadding, t.labelborderpadding),
                            borderRadius: (0, r.pluckNumber)(t.borderradius, t.labelborderradius),
                            backgroundColor: t.bgcolor || t.labelbgcolor ? (0, r.convertColor)(t.bgcolor || t.labelbgcolor, (0, r.pluckNumber)(t.bgalpha, t.labelbgalpha, t.alpha, t.labelalpha, _.rawAttr.labelAlpha, 100)) : r.BLANKSTRING,
                            borderDash: (0, r.pluckNumber)(t.borderdashed, t.labelborderdashed, 0) ? (0, r.getDashStyle)((0, r.pluckNumber)(t.borderdashlen, t.labelborderdashlen, 4), (0, r.pluckNumber)(t.borderdashgap, t.labelborderdashgap, 2)) : 0 === (0, r.pluckNumber)(t.borderdashed, t.labelborderdashed) ? r.DASH_DEF : z.borderDash
                        }, t.label ? p["text-bound"] = [(0, r.pluck)(x.backgroundColor, z.backgroundColor), (0, r.pluck)(x.borderColor, z.borderColor), (0, r.pluck)(x.borderThickness, z.borderThickness), (0, r.pluck)(x.borderPadding, z.borderPadding), (0, r.pluck)(x.borderRadius, z.borderRadius), (0, r.pluck)(x.borderDash, z.borderDash)] : p["text-bound"] = [], G.shiftX && (p.x += G.shiftX), G.shiftY && (p.y += G.shiftY), p.transform = (0, r.getSuggestiveRotation)(i, p.x, p.y), O[F] = O[F] || {
                            config: {
                                props: {
                                    label: {}
                                }
                            }
                        }, O[F].config.props.label.attr = p, O[F].config.props.label.css = s
                }, a.allocatePosition = function() {
                    var e = this.config;
                    e.tickValues ? e.drawLabels && this._parseCategory() : e.drawLabels && this._parseLabel()
                }, a._drawCategory = function() {
                    var e, t, a, i, n, o, l, s, h, u, d, g = this.config,
                        p = this.getFromEnv("chart"),
                        f = p.config,
                        m = g.labels,
                        v = this.getFromEnv("animationManager"),
                        b = m.style,
                        x = this.getFromEnv("toolTipController"),
                        y = g.axisContainer,
                        C = this.config.categoryLabel || (this.config.categoryLabel = []),
                        k = function(e) {
                            return function(t) {
                                p.plotEventHandler(this, t, e)
                            }
                        },
                        S = g.tickValues.tickValue,
                        w = [];
                    if (g.labels.isDraw) {
                        for (y.css(g.ParentCss), o = this._getCategoryArr(), e = 0, s = (n = (0, c["default"])((function(e, t) {
                                return e.value === t.value
                            }), g.prevCategoryIntervalArr, o)).length; e < s; e++)(u = this.getGraphicalElement(n[e].value + "_label")) && this.removeGraphicalElement(u);
                        for (g.prevCategoryIntervalArr = (0, r.extend2)([], o), e = 0, s = o.length; e < s; e += 1) w[e] = o[e].value + "_label";
                        for (e = 0, s = o.length; e < s; e += 1) t = S[d = o[e].index], i = (h = this.components.labels[d].config).props.label.attr, l = this.getGraphicalElement(w[e]), a = v.setAnimation({
                            el: l || "text",
                            attr: i,
                            container: y,
                            data: {
                                value: void 0
                            },
                            component: this,
                            label: "text",
                            css: h.props.label.css
                        }), l || (this.addGraphicalElement(w[e], a), a.on("fc-click", k("dataLabelClick")).hover(k("dataLabelRollOver"), k("dataLabelRollOut"))), a.data("eventArgs", {
                            link: !f.singleseries && t.link || t.labellink || b.labelLink,
                            text: i.text,
                            index: d
                        }), t.labelTooltext ? x.enableToolTip(a, t.labelTooltext) : x.disableToolTip(a), C[d] = a
                    } else
                        for (e = 0, s = g.prevCategoryIntervalArr.length; e < s; e++)(u = this.getGraphicalElement(g.prevCategoryIntervalArr[e].value + "_label")) && this.removeGraphicalElement(u)
                }, a._getCategoryArr = function() {
                    var e, t, a, i, n, o, l, s, c, h, u = this.config,
                        d = u.isVertical,
                        g = 0,
                        p = 0,
                        v = [];
                    for (e = u.tickValues.tickValue, i = m(e), a = e ? e.length - 1 : 0, d && (c = Math.abs(this.getPixel(0, f) - this.getPixel(1, f)), u.labelMaxH > c && (g = Math.ceil(u.labelMaxH / c)), g > u.labels.step && (u.labels.step = g)), s = u.labels.step > 0 ? u.labels.step : 1, h = 1 !== this.getZoom(), o = this.getVisibleConfig(), t = i; t <= a; t += s)(n = e[t]) && (l = (0, r.pluckNumber)(n.x, n.y, t), 0 !== (0, r.pluckNumber)(n.showlabel, u.showLabels, 1) && (h && (l < o.minValue || l > o.maxValue) ? n.labelCount = p++ : ("auto" !== u.xAxisLabelMode && "mixed" !== u.xAxisLabelMode || 0 !== u.showZeroPlane && 0 !== u.showZeroPlaneValue || 0 !== l) && (u.labels.drawNormalVal || u.labels.drawLimitVal && (t === i || t === a)) && (u.labels.drawNormalVal || t === i || t === a) && (u.labels.drawLimitVal || t !== i && t !== a) && (n.labelCount = p++, v.push({
                        index: t,
                        value: l
                    }))));
                    return v
                }, a.getValue = function(e, t) {
                    void 0 === t && (t = {
                        wrtVisible: !1
                    });
                    var a = this.getScale(),
                        i = this.getTranslation();
                    return a.getDomainValue(t.wrtVisible ? e : e - i)
                }, a.getPixel = function(e, t) {
                    void 0 === t && (t = {
                        wrtVisible: !1
                    });
                    var a = this.getScale(),
                        i = this.getTranslation(),
                        n = a.getRangeValue(e);
                    return t.wrtVisible ? n : n + i
                }, a._getCustomPixel = function(e, t, a) {
                    if (void 0 === a && (a = {
                            wrtVisible: !1
                        }), !t) return this.getPixel(e, a);
                    var i = this.getScale().copy(),
                        n = i.getRange(),
                        o = n[0],
                        r = n[1],
                        l = Math.min(o, r),
                        s = i.getRangeValue(e),
                        c = this.getTranslation();
                    return i.setRange([l, l + t]), a.wrtVisible ? s : s + c
                }, a.getTranslation = function() {
                    return this.config.translation || 0
                }, a.setVisibleConfig = function(e, t) {
                    var a, i = this.config,
                        n = this.getZoom(),
                        o = this.getScale();
                    return !(e >= t || e < i.axisRange.min || t > i.axisRange.max) && (a = o.setDomain([e, t]).getDomain(), i.visibleMin = a[0], i.visibleMax = a[1], i.zoom = this._computeZoom(), i.translation = this._computeTranslation(), 1 === n && 1 === this.getZoom() || (i.ticks = this.generateTicks(), i.minorTicks = this.generateMinorTicks(), i.tickValues && this.calculateTicksOnLabelMode && this.calculateTicksOnLabelMode()), this.clearReferenceInfo(), this._parseReferenceVisuals(), this.fireEvent("visiblerangeset", {
                        minValue: e,
                        maxValue: t
                    }), this.asyncDraw(), !0)
                }, a.hide = function() {
                    var e = this.config;
                    e.axisContainer && (e.axisLabelContainerTop.hide(), e.axisContainer.hide(), e.axisNameContainer.hide(), e.axisTrendLabelContainer.hide(), e.axisAxisLineContainer.hide(), e.axisAxisLineContainerBottom.hide())
                }, a.show = function() {
                    var e = this.config;
                    e.axisContainer && (e.axisLabelContainerTop.show(), e.axisContainer.show(), e.axisNameContainer.show(), e.axisTrendLabelContainer.show(), e.axisAxisLineContainer.show(), e.axisAxisLineContainerBottom.show())
                }, a.getZoom = function() {
                    return this.config.zoom || 1
                }, a._computeTranslation = function() {
                    var e = this.config,
                        t = this.getVisibleConfig(),
                        a = (0, r.pluckNumber)(t.minValue, e.axisRange.min, 0),
                        i = (0, r.pluckNumber)(e.axisRange.min, t.minValue, 0);
                    return this.getPixel(a) - this.getPixel(i)
                }, a._computeZoom = function() {
                    var e = this.config,
                        t = this.getVisibleConfig(),
                        a = (0, r.pluckNumber)(t.minValue, e.axisRange.min, 0),
                        i = (0, r.pluckNumber)(t.maxValue, e.axisRange.max, 1),
                        n = (0, r.pluckNumber)(e.axisRange.min, t.minValue, 0),
                        o = (0, r.pluckNumber)(e.axisRange.max, t.maxValue, 1),
                        l = e.maxZoomLimit,
                        s = (o - n) / (i - a);
                    return s > l ? l : s
                }, a.getTickValues = function() {
                    var e = this.config.tickValues;
                    return e && e.tickValue || []
                }, a.dataLabels = function(e) {
                    var t = this.config.axisIndex;
                    return this.getFromEnv("number-formatter").dataLabels(e, t)
                }, a.getAxisBase = function() {
                    var e = this.getVisibleConfig(),
                        t = e.minValue,
                        a = e.maxValue;
                    return t < 0 && a > 0 ? 0 : a <= 0 ? a : t
                }, a._parseReferenceVisuals = function() {
                    var e, t, a = this.config,
                        i = this.getTickValues(),
                        n = i.length,
                        o = this.getFromEnv("chartConfig").is3D;
                    a.isActive || (e = a.lines.isDraw, t = a.band.isDraw, a.lines.isDraw = 0, a.band.isDraw = 0), a.tickValues ? a.drawLabels && this._parseCategoryLine(i, 0, n) : a.drawPlotlines && this._parsePlotLine(), a.tickValues && "auto" !== a.xAxisLabelMode ? (a.drawPlotlines && !o && this._parseCategoryPlotLine(), a.drawPlotBands && !o && this._parseCategoryPlotBand(), "mixed" === a.xAxisLabelMode && a.drawPlotBands && !o && this._parsePlotBand()) : a.drawPlotBands && !o && this._parsePlotBand(), a.isActive || (a.lines.isDraw = e, a.band.isDraw = t), a.drawTrendLines && this._parseTrendLine()
                }, a._parseCategoryPlotBand = function() {
                    var e, t, a, i, n, o = this.config,
                        l = o.tickValues.tickValue,
                        s = o.showAlternateGridColor,
                        c = o.alternateGridColor,
                        h = o.alternateGridAlpha,
                        u = o._allTicks,
                        d = this.getLimit(),
                        p = d.min,
                        f = d.max,
                        m = g(this.getVisibleConfig());
                    if ((!l[0] || l[0].x === r.UNDEF && l[0].y === r.UNDEF) && s && o.band.isDraw && o.categoryNumDivLines)
                        for (e = {
                                fill: (0, r.toRaphaelColor)((0, r.convertColor)(c, h)),
                                "stroke-width": 0
                            }, t = 0, n = 0; n < u.length; ++t, ++n) m(u[n], u[n + 1]) && (a = u[n], t % 2 == 0 && (i = u[n + 1]) !== r.UNDEF && (a === p && (a = "canvasStart"), i === f && (i = "canvasEnd"), this.setReferenceInfo({
                            from: a,
                            to: i,
                            layer: 0,
                            type: "band",
                            attr: e
                        })))
                }, a._parseTrendLine = function() {
                    var e, t, a, i, n, o, l, s, c, h, u, d, g, p, f, m, v, b, x, y, C = this.config,
                        k = C.isVertical,
                        S = C.axisIndex,
                        w = this.getFromEnv("chart-attrib"),
                        L = this.getFromEnv("number-formatter"),
                        A = C.axisRange,
                        N = A.max,
                        T = A.min,
                        E = C.trend.trendStyle,
                        F = {
                            fontFamily: E.fontFamily,
                            fontSize: E.fontSize,
                            lineHeight: E.lineHeight,
                            fontWeight: E.fontWeight,
                            fontStyle: E.fontStyle
                        },
                        _ = C.vTrendLines,
                        P = C.trendLines,
                        D = 0;
                    if (l = P || _)
                        for (a = 0, i = l.length; a < i; a += 1)
                            for (e = 0, t = l[a].line && l[a].line.length; e < t; e += 1) v = k ? "yAxis" : "xAxis", (u = l[a].line[e]).startvalue || u.value || 0, p = L.getCleanValue((0, r.pluck)(u.startvalue, u.value, 0)), f = Number(u.endvalue) || r.UNDEF, n = (0, r.getValidValue)((0, r.parseUnsafeString)((0, r.pluck)(l[a].line[e].tooltext, l[0].tooltext, C.trendlineToolText), !1)), n = (0, r.parseTooltext)(n, [7, 15, 16, 17, 18, 19], {
                                startValue: p,
                                startDataValue: L[v](p, S),
                                endValue: f || p,
                                endDataValue: L[v](f || p, S),
                                axisName: C.axisName
                            }, u), p > N || p < T || f > N || f < T || (_ ? (d = (0, r.parseUnsafeString)(u.displayvalue || ""), s = (0, r.pluckNumber)(u.istrendzone, C.isTrendZone, 1), f !== r.UNDEF && "" !== f && f !== p && s ? (c = {
                                fill: (0, r.convertColor)((0, r.pluck)(u.color, C.trendlineColor), (0, r.pluck)(u.alpha, C.trendlineAlpha, 40)),
                                "stroke-width": 0
                            }, h = {
                                fill: (0, r.convertColor)((0, r.pluck)(u.color, E.color), (0, r.pluck)(E.valueAlpha, u.alpha, C.trendlineAlpha, 99)),
                                "vertical-align": r.POSITION_TOP,
                                text: d
                            }) : (m = (0, r.pluckNumber)(u.thickness, C.trendlineThickness, 1), c = {
                                stroke: (0, r.convertColor)((0, r.pluck)(u.color, C.trendlineColor), (0, r.pluck)(u.alpha, C.trendlineAlpha, 99)),
                                "stroke-width": m,
                                "stroke-dasharray": (0, r.pluck)(u.dashed, C.trendlinesAreDashed) === r.ONESTRING ? (0, r.getDashStyle)((0, r.pluckNumber)(u.dashlen, C.trendlinesDashLen), (0, r.pluckNumber)(u.dashgap, C.trendlinesDashGap)) : r.DASH_DEF
                            }, h = {
                                fill: (0, r.convertColor)((0, r.pluck)(u.color, E.color), (0, r.pluck)(E.valueAlpha, u.alpha, C.trendlineAlpha, 99)),
                                "vertical-align": r.POSITION_TOP,
                                text: d
                            })) : P && (d = (0, r.pluck)((0, r.parseUnsafeString)(u.displayvalue), u.startvalue, ""), g = (0, r.pluckNumber)(u.valueonright, C.isOpposit ? 1 : 0), s = (0, r.pluckNumber)(u.istrendzone, C.isTrendZone, 0), f !== r.UNDEF && "" !== f && f !== p && s ? (c = {
                                fill: (0, r.convertColor)((0, r.pluck)(u.color, C.trendlineColor), (0, r.pluck)(u.alpha, C.trendlineAlpha, 40)),
                                "stroke-width": 0
                            }, h = {
                                "text-anchor": g ? r.POSITION_START : r.POSITION_END,
                                fill: (0, r.convertColor)((0, r.pluck)(u.color, E.color), (0, r.pluck)(E.valueAlpha, u.alpha, C.trendlineAlpha, 99)),
                                text: d
                            }) : (m = (0, r.pluckNumber)(u.thickness, C.trendlineThickness, 1), c = {
                                stroke: (0, r.convertColor)((0, r.pluck)(u.color, C.trendlineColor), (0, r.pluck)(u.alpha, C.trendlineAlpha, 99)),
                                "stroke-width": m,
                                "stroke-dasharray": (0, r.pluck)(u.dashed, C.trendlinesAreDashed) === r.ONESTRING ? (0, r.getDashStyle)((0, r.pluckNumber)(u.dashlen, C.trendlinesDashLen), (0, r.pluckNumber)(u.dashgap, C.trendlinesDashGap)) : r.DASH_DEF
                            }, h = {
                                "text-anchor": g ? r.POSITION_START : r.POSITION_END,
                                fill: (0, r.convertColor)((0, r.pluck)(u.color, E.color), (0, r.pluck)(E.valueAlpha, u.alpha, C.trendlineAlpha, 99)),
                                text: d
                            })), h["text-bound"] = h.text ? [E.backgroundColor, E.borderColor, E.borderThickness, E.borderPadding, E.borderRadius, E.borderDash] : [], C.showTooltip && n || (n = r.BLANKSTRING), o = C.forceTrendBelow ? 0 : (0, r.pluckNumber)(u.showontop, w.showtrendlinesontop, 0), k ? (b = p, y = f !== r.UNDEF ? f : p) : (b = f !== r.UNDEF ? f : p, y = p), x = s && b !== y ? "band" : "line", b !== r.UNDEF && this.setReferenceInfo({
                                from: b,
                                to: y,
                                toolText: n,
                                attr: c,
                                layer: o ? 3 : 2,
                                type: x,
                                id: "trend" + D + x
                            }), C.parsedTrendLabels.push({
                                css: F,
                                valueOnRight: g,
                                isTrendZone: s,
                                from: p,
                                to: f,
                                attr: h
                            }), D += 1)
                }, a._parsePlotLine = function() {
                    var e, t, a, i, n, o = this.config,
                        l = o.axisRange,
                        s = l.max,
                        c = l.min,
                        h = p(this.getVisibleConfig()),
                        u = o.showCanvasBorder,
                        d = (0, r.convertColor)(o.divLineColor, o.divLineAlpha),
                        g = o.divLineThickness,
                        f = o.divLineIsDashed ? (0, r.getDashStyle)(o.divLineDashLen, o.divLineDashGap) : r.DASH_DEF,
                        m = (0, r.convertColor)(o.zeroPlaneColor, o.zeroPlaneAlpha),
                        v = o.zeroPlaneThickness,
                        b = o._allTicks,
                        x = b.length,
                        y = o.showZeroPlaneOnTop,
                        C = o.minorTicks,
                        k = C && C.length;
                    if (o.lines.isDraw)
                        for (t = 0; t < x; ++t) h(e = b[t]) && (i = {
                            "stroke-dasharray": f
                        }, 0 === o.showZeroPlane && 0 === e || u && (e === s || e === c) || (0 === e && e !== c && e !== s ? (i.stroke = m, i["stroke-width"] = v, y = o.showZeroPlaneOnTop) : (y = 0, i.stroke = d, i["stroke-width"] = g), this.setReferenceInfo({
                            type: "line",
                            from: e,
                            layer: 0 === e && y ? 3 : 1,
                            attr: i
                        })));
                    for (n = {
                            stroke: o.minorDivlinecolor,
                            "stroke-width": o.minorDivLineThickness,
                            "stroke-dasharray": f
                        }, t = 0; t < k; ++t) a = C[t], this.setReferenceInfo({
                        type: "line",
                        from: a,
                        layer: 1,
                        attr: n
                    })
                }, a._parseCategoryLine = function(e, t, a) {
                    var i, n, o, l, s, c, h = t,
                        u = a,
                        d = this.config,
                        g = this.getFromEnv("color-manager"),
                        p = this.getFromEnv("chartInstance").getJSONData().categories,
                        f = {};
                    if (h = h || 0, u = u || e ? e.length - 1 : 0, d.drawPlotlines)
                        for (c = 1 !== this.getZoom(), o = this.getVisibleConfig(), p && p[0] && (f.verticalLineColor = p[0].verticallinecolor, f.verticalLineAlpha = p[0].verticallinealpha, f.verticalLineThickness = p[0].verticallinethickness, f.verticalLineDashed = p[0].verticallinedashed, f.verticalLineDashLen = p[0].verticallinedashlen, f.verticalLineDashGap = p[0].verticallinedashgap), i = h; i <= u; i += 1)(n = e[i]) && (s = (0, r.pluckNumber)(n.x, n.y, i), 1 === Number(n.showverticalline) && (c && (s < o.minValue || s > o.maxValue) || ((l = {
                            stroke: (0, r.convertColor)((0, r.pluck)(n.linecolor, f.verticalLineColor, d.divLineColor, g.getColor("divLineColor")), (0, r.pluck)(n.linealpha, f.verticalLineAlpha, g.getColor("divLineAlpha"))),
                            "stroke-width": (0, r.pluckNumber)(n.linethickness, f.verticalLineThickness, 1)
                        })["stroke-dasharray"] = (0, r.pluckNumber)(n.linedashed, f.verticalLineDashed, 0) ? (0, r.getDashStyle)((0, r.pluckNumber)(n.linedashLen, f.verticalLineDashLen, 4), (0, r.pluckNumber)(n.linedashgap, f.verticalLineDashGap, 2), l["stroke-width"]) : r.DASH_DEF, this.setReferenceInfo({
                            type: "line",
                            from: s,
                            layer: 1,
                            attr: l
                        }))))
                }, a._parsePlotBand = function() {
                    var e, t, a, i, n, o, l = this.config,
                        s = l.showAlternateGridColor,
                        c = l.alternateGridColor,
                        h = l.alternateGridAlpha,
                        u = l._allTicks,
                        d = g(this.getVisibleConfig()),
                        p = l.isReverse;
                    if (s && l.band.isDraw)
                        for (t = 1, e = {
                                fill: (0, r.toRaphaelColor)((0, r.convertColor)(c, h)),
                                "stroke-width": 0
                            }, i = 0, a = u.length; i < a; ++i, ++t) d(u[i], u[i + 1]) && t % 2 == 0 && u[i + 1] !== r.UNDEF && (o = p ? Math.max(u[i], u[i + 1]) : Math.min(u[i], u[i + 1]), n = p ? Math.min(u[i], u[i + 1]) : Math.max(u[i], u[i + 1]), this.setReferenceInfo({
                            from: o,
                            to: n,
                            type: "band",
                            layer: 0,
                            attr: e
                        }))
                }, a.getReferenceInfo = function() {
                    return this.config.referenceInfo
                }, a.setReferenceInfo = function(e) {
                    this.config.referenceInfo.push(e)
                }, a.clearReferenceInfo = function() {
                    var e = this.config;
                    e.referenceInfo = [], e.parsedTrendLabels = [], e.parsedVlineInfo = []
                }, a.resetStoredLimits = function() {
                    this.config.dataLimit = {}
                }, a.getAxisDimension = function() {
                    var e = this.config.axisDimention;
                    return {
                        x: e.x,
                        y: e.y,
                        opposite: e.opposite,
                        axisLength: e.axisLength
                    }
                }, t
            }(o["default"]);
            v.prototype.setAxisDimention = u.setAxisDimention, v.prototype.shiftLabels = u.shiftLabels, v.prototype._createContainer = u._createContainer;
            var b = v;
            t["default"] = b
        },
        465: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(208),
                r = a(193),
                l = function(e, t) {
                    return e < t ? t : e
                },
                s = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, n["default"])(t, e);
                    var a = t.prototype;
                    return a.getType = function() {
                        return "axis"
                    }, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this), this.components = {
                            labels: []
                        };
                        var t = this.config;
                        t.setAdaptiveMin = 0, t.adjustDiv = 1, t.axisNameWidth = r.UNDEF, t.rotateAxisName = 0, t.useEllipsesWhenOverflow = 1, t.divLineColor = r.UNDEF, t.divLineAlpha = r.UNDEF, t.divLineThickness = r.UNDEF, t.divLineIsDashed = r.UNDEF, t.divLineDashLen = r.UNDEF, t.divLineDashGap = r.UNDEF, t.showAlternateGridColor = r.UNDEF, t.alternateGridColor = r.UNDEF, t.alternateGridAlpha = r.UNDEF, t.showZeroPlane = 1, t.zeroPlaneAlpha = 80, t.showZeroPlaneValue = 1, t.showZeroPlaneOnTop = 1, t.showAxisLine = r.UNDEF, t.axisLineThickness = r.UNDEF, t.axisLineAlpha = r.UNDEF, t.tickLength = 0, t.trendlineToolText = r.UNDEF, t.trendlineColor = "333333", t.trendlineThickness = 1, t.trendlineAlpha = r.UNDEF, t.showTrendlinesOnTop = 0, t.trendlinesAreDashed = 0, t.trendlinesDashLen = 5, t.trendlinesDashGap = 2, t.isTrendZone = r.UNDEF, t.showTrendlines = 1, t.showTrendlineLabels = 1, t.showLabels = 1, t.maxLabelHeight = r.UNDEF, t.rotateLabels = r.UNDEF, t.slantLabel = 0, t.showAxisValues = 1, t.showTooltip = 1, t.isActive = !0, t.drawLabels = !0, t.drawOnlyCategoryLine = !1, t.drawLabelsOpposit = !1, t.drawPlotlines = !0, t.drawAxisLine = !0, t.drawPlotBands = !0, t.drawAxisName = !0, t.drawAxisNameOpposit = !1, t.axisNameAlignCanvas = !1, t.drawAxisNameFromBottom = !1, t.drawTrendLines = !0, t.drawTrendLabels = !0, t.drawTick = !0, t.drawTickMinor = !0, t.animateAxis = !0, t.drawAxisLineWRTCanvas = !0, t.isRelativeAxisInverse = !1, t.axisIndex = 0, t.uniqueClassName = 0, t.viewPortRatio = {}, t.canvas = {}, t.axisRange = {}, t.drawnStaggerLines = r.UNDEF, t.axisDimention = {}, t.forceZeroTick = !0, t.isZeroTickForced = !1, t.extremeLabels = {
                            firstLabel: {},
                            lastLabel: {}
                        }, t._setRangeAgain = !1, t._defaultForceDecimal = r.UNDEF, t._defaultDecimalPrecision = r.UNDEF, t.rangeChanged = !1, t.dimensionChanged = !1, t.apparentScrollPos = 0, t.visibleMin = r.UNDEF, t.visibleMax = r.UNDEF, t.setPadding = !1, t.trendLimits = r.UNDEF
                    }, a.configureAttributes = function(e) {
                        var t, a, i, n, o = this.config,
                            s = this.getFromEnv("chart"),
                            c = this.getFromEnv("dataSource"),
                            h = s.config.is3D,
                            u = c.chart,
                            d = this.getFromEnv("number-formatter");
                        t = o.rawAttr = e, o.referenceInfo = [], o.parsedTrendLabels = [], o.parsedVlineInfo = [], o.trendLines = t.trendlines, o.vTrendLines = t.vtrendlines, (0, r.parseConfiguration)(t, o), o.axisName = (0, r.parseUnsafeString)(t.axisName), o.axisValuePadding = o.axisNamePadding || (0, r.pluckNumber)(t.axisValuePadding, 4), o.axisNamePadding = o.axisNamePadding || (0, r.pluckNumber)(t.axisNamePadding, 5), o.maxLabelWidthPercent = (0, r.pluckNumber)(t.maxLabelWidthPercent), o.maxLabelWidthPercent = Math.abs(o.maxLabelWidthPercent), o.minLabelWidthPercent = Math.abs((0, r.pluckNumber)(t.minLabelWidthPercent)), o.numDivLines = (0, r.pluckNumber)(t.numDivLines, 4), o.numDivLines = l(o.numDivLines, 0), o.categoryNumDivLines = (0, r.pluckNumber)(t.numDivLines, 0), o.axisValuePadding = l(o.axisValuePadding, 0), o.isReverse = (0, r.pluckNumber)(t.isReverse, 0), o.isOpposit = (0, r.pluckNumber)(t.isOpposit, 0), o.isVertical = (0, r.pluckNumber)(t.isVertical, 0), o.categoryDivLinesFromZero = 1, o.axisMinValue = d.getCleanValue(t.axisMinValue), o.axisMaxValue = d.getCleanValue(t.axisMaxValue), o.zeroPlaneColor = (0, r.pluck)(t.zeroPlaneColor, t.divLineColor), o.zeroPlaneThickness = (0, r.pluck)(t.zeroPlaneThickness, t.divLineThickness), o.axisLineColor = (0, r.convertColor)(t.axisLineColor, t.axisLineAlpha), o.tickAlpha = (0, r.pluckNumber)(t.tickAlpha, o.axisLineAlpha), o.tickColor = (0, r.convertColor)((0, r.pluck)(t.tickColor, t.axisLineColor), o.tickAlpha), o.tickWidth = (0, r.pluckNumber)(t.tickWidth, o.axisLineThickness), o.maxZoomLimit = (0, r.pluckNumber)(u.maxzoomlimit, s.maxzoomlimit, 1e3), o.showVLines = (0, r.pluckNumber)(u.showvlines, 1), o.showVLinesOnTop = (0, r.pluckNumber)(u.showvlinesontop, 0), o.showVLineLabels = (0, r.pluckNumber)(u.showvlinelabels, this.showVLineLabels, 1), o.showVLineLabelBorder = (0, r.pluckNumber)(u.showvlinelabelborder, 1), o.rotateVLineLabels = (0, r.pluckNumber)(u.rotatevlinelabels, 0), o.vLineColor = (0, r.pluck)(u.vlinecolor, "333333"), o.vLineLabelColor = (0, r.pluck)(u.vlinelabelcolor), o.vLineThickness = (0, r.pluck)(u.vlinethickness, 1), o.vLineAlpha = (0, r.pluckNumber)(u.vlinealpha, 80), o.vLineLabelBgColor = (0, r.pluck)(u.vlinelabelbgcolor, "ffffff"), o.vLineLabelBgAlpha = (0, r.pluckNumber)(u.vlinelabelbgalpha, h ? 50 : 100), o.staggerLines = Math.max((0, r.pluckNumber)(u.staggerlines, 2), 2), o.staggerLines = l(o.staggerLines, 1), o.trendlineValuesOnOpp = (0, r.pluck)(t.trendlineValuesOnOpp, t.trendlineValuesOnOpp, 0), o.labelDisplay = (0, r.pluck)(t.labelDisplay, "auto").toLowerCase(), o.labelStep = (0, r.pluckNumber)(t.labelStep, 1), o.labelStep = Math.round(o.labelStep), o.labelStep = l(o.labelStep, 1), o.startPad = 0, o.endPad = 0, o._oriLabelStep = o.labelStep, o.showLimits = (0, r.pluckNumber)(t.showLimits, o.showAxisValues), o.showUpperLimit = t.showLimits, o.showDivLineValues = (0, r.pluckNumber)(t.showDivLineValues, o.showAxisValues), o.showCanvasBorder = s.getChildren("canvas")[0].config.showCanvasBorder ? 1 : 0, o.axisBreak = t.axisBreaks, o.isBreak = !!o.axisBreak, o.isBreak && this._processAxisBreak(), a = (a = (0, r.getFirstValue)(t.axisNameBorderColor, r.BLANKSTRING)) ? (0, r.convertColor)(a, (0, r.pluckNumber)(t.axisNameBorderAlpha, t.axisNameAlpha, 100)) : r.BLANKSTRING, o.name = o.name || {}, o.name.style = {
                            fontFamily: (0, r.pluck)(t.axisNameFont, t.outCanfontFamily),
                            fontSize: (0, r.pluck)(t.axisNameFontSize, (0, r.pInt)(t.outCanfontSize)) + r.PXSTRING,
                            color: (0, r.convertColor)((0, r.pluck)(t.axisNameFontColor, t.outCancolor), (0, r.pluckNumber)(t.axisNameFontAlpha, t.axisNameAlpha, 100)),
                            fontWeight: (0, r.pluckNumber)(t.axisNameFontBold, 1) ? "bold" : r.NORMAL,
                            fontStyle: (0, r.pluckNumber)(t.axisNameFontItalic) ? "italic" : r.NORMAL,
                            border: a || t.axisNameBgColor ? (0, r.pluckNumber)(t.axisNameBorderThickness, 1) + "px solid" : r.UNDEF,
                            borderColor: a,
                            borderThickness: (0, r.pluckNumber)(t.axisNameBorderThickness, 1),
                            borderPadding: (0, r.pluckNumber)(t.axisNameBorderPadding, 2),
                            borderRadius: (0, r.pluckNumber)(t.axisNameBorderRadius, 0),
                            backgroundColor: t.axisNameBgColor ? (0, r.convertColor)(t.axisNameBgColor, (0, r.pluckNumber)(t.axisNameBgAlpha, t.axisNameAlpha, 100)) : r.BLANKSTRING,
                            borderDash: (0, r.pluckNumber)(t.axisNameBorderDashed, 0) ? (0, r.getDashStyle)((0, r.pluckNumber)(t.axisNameBorderDashLen, 4), (0, r.pluckNumber)(t.axisNameBorderDashGap, 2)) : r.DASH_DEF
                        }, o.name.style.lineHeight = (0, r.setLineHeight)(o.name.style), i = (i = (0, r.getFirstValue)(u.trendvaluebordercolor, r.BLANKSTRING)) ? (0, r.convertColor)(i, (0, r.pluckNumber)(u.trendvalueborderalpha, u.trendvaluealpha, 100)) : r.BLANKSTRING, o.trend = o.trend || {}, o.trend.trendStyle = {
                            fontFamily: (0, r.pluck)(u.trendvaluefont, t.outCanfontFamily),
                            color: (0, r.pluck)(u.trendvaluefontcolor, t.trendlineColor, t.outCancolor, "333333"),
                            valueAlpha: u.trendvaluealpha,
                            fontSize: (0, r.pluckFontSize)(u.trendvaluefontsize, (0, r.pInt)(t.outCanfontSize)) + r.PXSTRING,
                            fontWeight: (0, r.pluckNumber)(u.trendvaluefontbold) ? "bold" : r.NORMAL,
                            fontStyle: (0, r.pluckNumber)(u.trendvaluefontitalic) ? "italic" : r.NORMAL,
                            border: i || u.trendvaluebgcolor ? (0, r.pluckNumber)(u.trendvalueborderthickness, 1) + "px solid" : "",
                            borderColor: i,
                            borderThickness: (0, r.pluckNumber)(u.trendvalueborderthickness, 1),
                            borderPadding: (0, r.pluckNumber)(u.trendvalueborderpadding, 2),
                            borderRadius: (0, r.pluckNumber)(u.trendvalueborderradius, 0),
                            backgroundColor: u.trendvaluebgcolor ? (0, r.convertColor)(u.trendvaluebgcolor, (0, r.pluckNumber)(u.trendvaluebgalpha, u.trendvaluealpha, 100)) : r.BLANKSTRING,
                            borderDash: (0, r.pluckNumber)(u.trendvalueborderdashed, 0) ? (0, r.getDashStyle)((0, r.pluckNumber)(u.trendvalueborderdashlen, 4), (0, r.pluckNumber)(u.trendvalueborderdashgap, 2)) : r.DASH_DEF
                        }, o.trend.trendStyle.lineHeight = (0, r.setLineHeight)(o.trend.trendStyle), o.labels = o.labels || {}, o.lines = o.lines || {}, o.band = o.band || {}, n = (n = (0, r.getFirstValue)(t.labelBdrColor, r.BLANKSTRING)) ? (0, r.convertColor)(n, (0, r.pluckNumber)(t.labelBdrAlpha, t.labelAlpha, 100)) : r.BLANKSTRING, o.labels.style = {
                            fontFamily: (0, r.pluck)(t.labelFont, t.outCanfontFamily),
                            fontSize: (0, r.pluckNumber)(t.labelFontSize, (0, r.pInt)(t.outCanfontSize)) + r.PXSTRING,
                            fontWeight: (0, r.pluckNumber)(t.labelFontBold) ? "bold" : r.NORMAL,
                            fontStyle: (0, r.pluckNumber)(t.labelFontItalic) ? "italic" : r.NORMAL,
                            color: (0, r.convertColor)((0, r.pluck)(t.labelFontColor, t.outCancolor), (0, r.pluckNumber)(t.labelAlpha, 100)),
                            labelLink: t.labelLink,
                            border: n || t.labelBgColor ? (0, r.pluckNumber)(t.labelBdrThickness, 1) + "px solid" : "",
                            borderColor: n,
                            borderThickness: (0, r.pluckNumber)(t.labelBdrThickness, 1),
                            borderPadding: (0, r.pluckNumber)(t.labelBdrPadding, 2),
                            borderRadius: (0, r.pluckNumber)(t.labelBdrRadius, 0),
                            backgroundColor: t.labelBgColor ? (0, r.convertColor)(t.labelBgColor, (0, r.pluckNumber)(t.labelBgAlpha, t.labelAlpha, 100)) : r.BLANKSTRING,
                            borderDash: (0, r.pluckNumber)(t.labelBdrDashed, 0) ? (0, r.getDashStyle)((0, r.pluckNumber)(t.labelBdrDashLen, 4), (0, r.pluckNumber)(t.labelBdrDashGap, 2)) : r.DASH_DEF
                        }, o.labels.style.lineHeight = (0, r.setLineHeight)(o.labels.style), o.numberFormatterFn = (0, r.pluck)(t.numberFormatterFn), o.apparentScrollPos = t.apparentScrollPos || o.apparentScrollPos, o.axisRange = {}, o.dataLimit = {}, o.axisEndLabelDisplaySpace = {
                            left: 0,
                            right: 0,
                            top: 0,
                            bottom: 0
                        }, o.isConfigured = !0, o._defaultForceDecimal = r.UNDEF, o._defaultDecimalPrecision = r.UNDEF, o.lines.isDraw = (0, r.pluckNumber)(t.lines && t.lines.isDraw, 1), o.band.isDraw = (0, r.pluckNumber)(t.band && t.band.isDraw, 1)
                    }, a.createContainer = function(e, t, a) {
                        var i = this.getFromEnv("animationManager");
                        return this.addContainer(e, i.setAnimation({
                            container: a,
                            attr: t,
                            el: this.getContainer(e) || "group",
                            component: this,
                            label: "group"
                        }))
                    }, a.createGroup = function(e, t, a, i) {
                        return void 0 === i && (i = "group"), this.getFromEnv("animationManager").setAnimation({
                            container: a,
                            attr: t,
                            el: this.config[e] || "group",
                            component: this,
                            label: i
                        })
                    }, a.getValuePadding = function() {
                        var e = this.config;
                        return {
                            left: e.startPad,
                            right: e.endPad
                        }
                    }, a.draw = function() {
                        var e, t, a, i, n = this.config,
                            o = this.getFromEnv("chart").config,
                            r = n.isVertical,
                            l = o.viewPortConfig,
                            s = this.getChildren().limitUpdater,
                            c = n.viewPortRatio || {};
                        this._createContainer(), a = l.y * l.scaleY, i = l.x * l.scaleX, c.scaleX && c.scaleY && (c.scaleX !== l.scaleX || c.scaleY !== l.scaleY) ? (c.scaleX = l.scaleX, c.scaleY = l.scaleY, this._drawComponents()) : (r ? (t = a - l.y * l.scaleY, n.axisContainer.transform("t0," + t), n.axisLabelContainerTop.transform("t0," + t)) : (e = i - l.x * l.scaleX, n.axisContainer.transform("t" + e + ",0"), n.axisLabelContainerTop.transform("t" + e + ",0")), this._drawComponents()), this.addExtEventListener("animationcomplete", (function() {
                            s && s.forEach((function(e) {
                                e.draw()
                            }))
                        }), this.getFromEnv("animationmanager")), this.addToEnv("prevScale", this.getScale().copy())
                    }, a.setScale = function(e) {
                        this.config.scale = e
                    }, a.getScale = function() {
                        return this.config.scale
                    }, a.getLimit = function() {
                        var e = this.config.axisRange;
                        return {
                            min: e.min,
                            max: e.max,
                            tickInterval: e.tickInterval
                        }
                    }, a.getVisibleConfig = function() {
                        var e = this.config;
                        return {
                            minValue: e.visibleMin,
                            maxValue: e.visibleMax
                        }
                    }, a.setAxisConfig = function(e) {
                        var t, a = this.config;
                        for (t in e) e.hasOwnProperty(t) && (a[t] = e[t])
                    }, a.getAxisConfig = function(e) {
                        var t = this.config;
                        return e ? t[e] : t
                    }, a.getVisibleLength = function() {
                        var e = this.getVisibleConfig();
                        return Math.abs(e.maxValue - e.minValue)
                    }, a.getAxisEndLabelDisplaySpace = function() {
                        return this.config.axisEndLabelDisplaySpace || {}
                    }, a.getTicksLen = function() {
                        var e = this.config.tickValues;
                        return e && e.tickValue.length || 0
                    }, t
                }(o.ComponentInterface);
            t["default"] = s
        },
        466: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.axisAnimationFinal = t.axisAnimationAxis = t.appearingFinal = t.appearingAxis = t["default"] = void 0;
            var i = [{
                    initialAttr: {
                        opacity: 0
                    },
                    finalAttr: {
                        opacity: 1
                    },
                    slot: "axis"
                }],
                n = [{
                    initialAttr: {
                        opacity: 0
                    },
                    finalAttr: {
                        opacity: 1
                    },
                    slot: "final"
                }],
                o = {
                    "text.appearing": n,
                    "path.appearing": n,
                    "rect.appearing": n
                },
                r = {
                    "text.appearing": i,
                    "path.appearing": i,
                    "rect.appearing": i,
                    "scrollbar.appearing": i
                };
            t.axisAnimationAxis = r, t.axisAnimationFinal = o, t.appearingFinal = n, t.appearingAxis = i;
            var l = {
                "initial.axis.numeric": r,
                "initial.axis.category": r,
                "initial.axis.log": r,
                "update.axis.numeric": o,
                "update.axis.category": o,
                "update.axis.log": o
            };
            t["default"] = l
        },
        467: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e, t) {
                return e.filter((function(e) {
                    return t.indexOf(e) < 0
                }))
            };
            t["default"] = i
        },
        468: function(e, t, a) {
            var i = a(469),
                n = a(283)((function(e, t, a) {
                    for (var n = [], o = 0, r = t.length; o < r;) i(e, t[o], a) || i(e, t[o], n) || n.push(t[o]), o += 1;
                    return n
                }));
            e.exports = n
        },
        469: function(e, t) {
            e.exports = function(e, t, a) {
                for (var i = 0, n = a.length; i < n;) {
                    if (e(t, a[i])) return !0;
                    i += 1
                }
                return !1
            }
        },
        470: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t._parseLabel = t.extractStyleInfo = t.getLabel = t.setAxisPadding = t._createContainer = t.shiftLabels = t.setTickValues = t._drawLabel = t.getPixel = t.getTrendLineLimits = t.setDataLimit = t.setAxisDimention = void 0;
            var n = i(a(471)),
                o = i(a(436)),
                r = a(193),
                l = {
                    wrtVisible: !0
                },
                s = function(e, t) {
                    var a, i, n, o, l, s, c, h = {
                            labelfont: ["fontFamily"],
                            labelfontcolor: ["fontColor"],
                            labelfontsize: ["fontSize", function(e) {
                                return e ? (0, r.pluckNumber)(e) + "px" : r.UNDEF
                            }],
                            labelfontbold: ["fontWeight", function(e) {
                                return e ? "bold" : "normal"
                            }],
                            labelfontitalic: ["fontStyle", function(e) {
                                return e ? "italic" : "normal"
                            }],
                            labelfontalpha: ["fontAlpha"]
                        },
                        u = t.getFromEnv("dataSource").categories,
                        d = u && u[0] || {},
                        g = function(e) {
                            return e
                        },
                        p = !1,
                        f = {};
                    for (a in d) "category" === a || a in e || (i = d[a], e[a] = i);
                    for (a in h) l = (o = h[a])[0], s = o[1] || g, i = e[a], n = e[l.toLowerCase()], i === r.UNDEF && n === r.UNDEF || (c = s(i)) === r.UNDEF && (c = s(n)) === r.UNDEF || (f[l] = c, p = !0), p && (e.style = f)
                };
            t.getLabel = function(e) {
                var t = this.config,
                    a = t.tickValues && t.tickValues.tickValue[e],
                    i = {};
                return a && a.tooltext && (i.label = a.label, a.tooltext = (0, r.parseTooltext)(a.tooltext, [3], i)), {
                    label: a && (a.oriLabel || a.label),
                    tooltext: a && a.tooltext
                }
            }, t.setAxisPadding = function(e, t) {
                void 0 === e && (e = 0), void 0 === t && (t = 0);
                var a, i = this.config,
                    n = e,
                    o = t,
                    r = this.getScale().getDomain(),
                    l = r[0],
                    s = r[1];
                1 === i.oriCatLen && (0 === n && (n = .5), 0 === o && (o = .5)), a = n - i.startPad, i.startPad = Math.max(i.startPad, n), i.endPad = Math.max(i.endPad, o), a > 0 && (i.setPadding = !0, this._setAxisRange({
                    min: l - a,
                    max: s + a
                })), i.tickValues || i.originalMax && i.originalMin && this.setDataLimit(i.originalMax, i.originalMin)
            }, t._createContainer = function() {
                var e, t, a, i, n, o = this.config,
                    r = o.isVertical,
                    l = this.getLinkedParent().getChildContainer(),
                    s = l.axisBottomGroup,
                    c = l.axisTopGroup,
                    h = -this.getTranslation(),
                    u = r ? "T0," + h : "T" + h + ",0";
                t = this.createContainer("axisNameGroup", {
                    name: "dataset-Name-group"
                }, s), e = this.createContainer("axisLineGroup", {
                    name: "axis-Line-group"
                }, c), a = this.createContainer("axisTrendGroupTop", {
                    name: "dataset-Trend-group-top"
                }, c), i = this.createContainer("axisLabelGroup", {
                    name: "dataset-Label-group"
                }, s), n = this.createContainer("axisLabelGroupTop", {
                    name: "dataset-Label-group"
                }, c), o.axisContainer = this.createGroup("axisContainer", {
                    name: "dataset-axis",
                    transform: u
                }, i), o.axisLabelContainerTop = this.createGroup("axisLabelContainerTop", {
                    name: "dataset-top-label",
                    transform: u
                }, n), o.axisAxisLineContainer = this.createGroup("axisAxisLineContainer", {
                    name: "axis-line-tick"
                }, e), o.axisTrendLabelContainer = this.createGroup("axisTrendLabelContainer", {
                    name: "dataset-axis-trend-label"
                }, a), o.axisNameContainer = this.createGroup("axisNameContainer", {
                    name: "dataset-axis-name"
                }, t), o.axisAxisLineContainerBottom = this.createGroup("axisAxisLineContainerBottom", {
                    name: "axis-line-tick-bottom"
                }, s)
            }, t.shiftLabels = function(e, t) {
                var a = this.config.labels;
                a.shiftX = e, a.shiftY = t
            }, t.setTickValues = function(e) {
                var t, a, i, n = e && e.length,
                    o = this.config,
                    l = o.startPad || 0,
                    c = this.getFromEnv("chart"),
                    h = 0,
                    u = o.tickValues = {},
                    d = u.tickValue = [],
                    g = u.vline = [],
                    p = u.tickIdMap = {},
                    f = o.endPad || 0;
                for (o.hasCategory = 1, t = 0; t < n; t += 1) i = (a = (0, r.extend2)({}, e[t])).id || "" === a.id, a.vline ? (a.startIndex = d.length - 1, g.push(a)) : (i && (p[a.id.toLowerCase()] = {
                    tickObj: a,
                    index: h
                }), (o.mapTickValuesById && i || !o.mapTickValuesById) && (s(a, c), d.push(a), d[h].label = (0, r.parseUnsafeString)(d[h].label), h += 1));
                o.oriCatLen = h, this._setAxisRange({
                    max: Number((0, r.toPrecision)(h - 1 + f, 10)),
                    min: Number((0, r.toPrecision)(0 - l, 10)),
                    tickInterval: Number((0, r.toPrecision)(1, 10))
                })
            }, t._parseLabel = function() {
                var e, t, a, i, n, o, s, c, h, u, d, g, p, f, m, v, b = this,
                    x = b.config,
                    y = b.getLinkedItem("canvas").getEffectiveDimensions(),
                    C = x.axisDimention,
                    k = b.getFromEnv("chart"),
                    S = k.config,
                    w = x.axisRange,
                    L = x.isOpposit,
                    A = x.labels,
                    N = b.components,
                    T = N.labels,
                    E = A.style,
                    F = k.getFromEnv("smartLabel"),
                    _ = x.isVertical,
                    P = w.max,
                    D = w.min,
                    I = b.getFromEnv("number-formatter"),
                    M = y.top,
                    O = y.left,
                    R = M + y.height,
                    B = O + y.width,
                    V = x.labelPadding,
                    G = x.extremeLabels,
                    z = _ ? C.x : C.y,
                    H = C.opposite,
                    W = x.labelMaxH,
                    j = x.labelMaxW,
                    U = w.tickInterval,
                    q = Math.abs(b.getPixel(D, l) - b.getPixel(D + U, l)),
                    Y = [],
                    X = x.ticks,
                    K = 0,
                    Z = x.isReverse,
                    J = (0, r.pluckNumber)(b.getFromEnv("chart-attrib").showzeroplanevalue),
                    $ = !0,
                    Q = b.getLimit();
                if (F.useEllipsesOnOverflow(S.useEllipsesWhenOverflow), F.setStyle({
                        fontSize: E.fontSize,
                        fontFamily: E.fontFamily,
                        lineHeight: E.lineHeight,
                        fontWeight: E.fontWeight
                    }), (i = E.lineHeight) && -1 !== i.indexOf("px") && (i = parseFloat(i.replace("px", ""))), 0 === J && ($ = !1), x.labels.isDraw) {
                    var ee;
                    if (x.drawLabelsOpposit && (L = !L, z = H), h = {
                            fill: E.color,
                            "line-height": i,
                            "font-size": E.fontSize,
                            opacity: 1,
                            cursor: E.labelLink ? "pointer" : ""
                        }, a = x.labels.rotation, _ ? (x.labelMaxH > q && !x.tickValues && (s = Math.ceil(x.labelMaxH / q)), h["text-anchor"] = L ? r.POSITION_START : r.POSITION_END) : (x.labelMaxW > q && !x.tickValues && (s = Math.ceil(x.labelMaxW / q)), a ? (h["text-anchor"] = L ? r.POSITION_START : r.POSITION_END, h["vertical-align"] = "middle") : h["vertical-align"] = L ? r.POSITION_BOTTOM : r.POSITION_TOP, d = O, g = S.width - B), s > x.labels.step && (x.labels.step = s), c = x.numberFormatterFn ? I[x.numberFormatterFn] : x.isPercent ? I.yAxisPercentValue : _ ? I.yAxis : I.xAxis, G.firstLabel = {}, G.lastLabel = {}, v = X.filter((function(e, t, a) {
                            return 0 !== e || x.showZeroPlaneValue ? !(!_ && (x.isReverse ? 0 !== t : t !== a.length - 1) && b.getPixel(e, l) + x.labelMaxW > B) && (t % x.labels.step == 0 ? (Y[K++] = t, !0) : !(!x.labels.drawLimitVal || 0 !== t && t !== a.length - 1) && (Y[K++] = t, !0)) : !(!$ || $ && Q.max !== e && Q.min !== e) && (Y[K++] = t, !0)
                        })), x.isZeroTickForced && -1 !== v.indexOf(0)) K = 0, Y = [], m = b.getPixel(0), v = v.filter((function(e, t, a) {
                        return ee = b.getPixel(e), 0 === a[t + 1] || 0 === a[t - 1] ? _ ? !(ee + W >= m && m >= ee - W) && (Y[K++] = t, !0) : !(ee + j >= m && m >= ee - j) && (Y[K++] = t, !0) : (Y[K++] = t, !0)
                    }));
                    for (n = (_ ? j : q / 2) * x.labels.step, o = _ ? q / 2 : W, N.labelIndexArr = Y.slice(), e = 0, t = v.length; e < t; e += 1) p = v[e], T[Y[e]] = T[Y[e]] || {
                        config: {
                            props: {
                                label: {}
                            }
                        }
                    }, u = Object.assign({}, h), f = r.UNDEF, (x.labels.drawNormalVal || p === D || p === P) && (x.labels.drawLimitVal || p !== D && p !== P) ? p === D && x.lowerLimitDisplay && x.labels.drawLimitVal ? (f = F.getSmartText(x.lowerLimitDisplay, n, o + i / 2), u.text = f.text, u.tooltext = f.tooltext) : p === P && x.upperLimitDisplay && x.labels.drawLimitVal ? (f = F.getSmartText(x.upperLimitDisplay, n, o + i / 2), u.text = f.text, u.tooltext = f.tooltext) : (u.text = r.BLANKSTRING + c.call(I, p, x.axisIndex), f = F.getOriSize(u.text)) : u.text = r.BLANKSTRING, _ ? (u.x = L ? (z || B) + V : (z || O) - V, u.y = b.getPixel(p, l), (Z && p === D && x.lowerLimitDisplay || !Z && p === P && x.upperLimitDisplay) && f && f.height > i && (u["vertical-align"] = r.POSITION_BOTTOM), (Z && p === P && x.upperLimitDisplay || !Z && p === D && x.lowerLimitDisplay) && f && f.height > i && (u["vertical-align"] = r.POSITION_TOP), x.placeValuesInside && (u["text-anchor"] = L ? r.POSITION_END : r.POSITION_START)) : (u.x = b.getPixel(p, l), u.y = L ? (z || M) - V : (z || R) + V, (!Z && p === D || Z && p === P) && f && f.width > 2 * d && (u["text-anchor"] = r.POSITION_START), (!Z && p === P || Z && p === D) && f && f.width > 2 * g && (u["text-anchor"] = r.POSITION_END), x.placeValuesInside ? u["vertical-align"] = L ? r.POSITION_TOP : r.POSITION_BOTTOM : u["vertical-align"] = L ? r.POSITION_BOTTOM : r.POSITION_TOP), u["text-bound"] = void 0 === p ? [] : [(0, r.pluck)(E.backgroundColor, r.BLANKSTRING), (0, r.pluck)(E.borderColor, r.BLANKSTRING), (0, r.pluck)(E.borderThickness, r.BLANKSTRING), (0, r.pluck)(E.borderPadding, 0), (0, r.pluck)(E.borderRadius, 0), (0, r.pluck)(E.borderDash, "none")], A.shiftX && (u.x += A.shiftX), A.shiftY && (u.y += A.shiftY), u.transform = (0, r.getSuggestiveRotation)(a, u.x, u.y), T[Y[e]].config.props.label.attr = u
                }
            }, t._drawLabel = function() {
                var e, t, a, i, o, r, l, s, c, h, u, d = this.config,
                    g = this.getFromEnv("animationManager"),
                    p = this.getFromEnv("toolTipController"),
                    f = d.axisRange,
                    m = d.labels.style,
                    v = this.components,
                    b = f.max,
                    x = f.min,
                    y = d.axisContainer,
                    C = d.extremeLabels,
                    k = d.ticks,
                    S = [],
                    w = {
                        fontFamily: m.fontFamily,
                        fontSize: m.fontSize,
                        fontWeight: m.fontWeight,
                        fontStyle: m.fontStyle,
                        lineHeight: m.lineHeight
                    };
                if (d.labels.isDraw)
                    for (u = v.labels, h = v.labelIndexArr, y.css(w), t = 0, a = h && h.length; t < a; t += 1) o = (s = k[e = h[t]]) + "_label", i = this.getGraphicalElement(o), l = u[e].config.props.label.attr, i = this.addGraphicalElement(o, g.setAnimation({
                        el: i || "text",
                        attr: l,
                        container: y,
                        data: {
                            value: s
                        },
                        component: this,
                        label: "text"
                    })), l.tooltext ? p.enableToolTip(i, l.tooltext) : p.disableToolTip(i), s === b ? C.lastLabel.graphic = i : s === x && (C.firstLabel.graphic = i), S.push(o);
                for (e = 0, a = (c = (0, n["default"])(d.prevIntervalArr, S)).length; e < a; e++)(r = this.getGraphicalElement(c[e])) && this.removeGraphicalElement(r);
                d.prevIntervalArr = S
            }, t.getPixel = function(e) {
                return this.getScale().getRangeValue(e)
            }, t.getTrendLineLimits = function() {
                var e, t, a, i, n = this.config,
                    l = n.trendLines || n.vTrendLines || n.trendPoints,
                    s = l && l[0] && l[0].line || l && l.point;
                if (n.trendLimits) return n.trendLimits;
                var c = (0, o["default"])(s, (function(e) {
                    return "" === e.startvalue ? r.UNDEF : Number(e.startvalue)
                }));
                e = c[0], t = c[1];
                var h = (0, o["default"])(s, (function(e) {
                    return "" === e.endvalue ? r.UNDEF : Number(e.endvalue)
                }));
                return a = h[0], i = h[1], n.trendLimits = (0, o["default"])([e, t, a, i], (function(e) {
                    return Number(e)
                })), n.trendLimits
            }, t.setDataLimit = function(e, t) {
                var a, i, n, l, s = e,
                    c = t,
                    h = this.config,
                    u = this.getFromEnv("dataSource").categories,
                    d = u && u[0] && u[0].category,
                    g = h.startPad || 0,
                    p = h.endPad || 0,
                    f = h.xAxisLabelMode;
                if ("categories" === f || "mixed" === f) {
                    var m = (0, o["default"])(d, (function(e) {
                        return Number(e.x)
                    }));
                    a = m[0], i = m[1]
                }
                var v = this.getTrendLineLimits();
                n = v[0], l = v[1];
                var b = (0, o["default"])([n, l, a, i, c, s], (function(e) {
                    return Number(e)
                }));
                c = b[0], s = b[1], h.originalMax = s, h.originalMin = c, s = h.isPercent ? 100 : s + p, c = h.isPercent ? 0 : c - g, this._setAxisRange({
                    min: c,
                    max: s
                }), h.axisRange.tickInterval !== r.UNDEF && this._adjustNumberFormatter(h.axisRange.tickInterval)
            }, t.setAxisDimention = function(e) {
                var t = this.getScale(),
                    a = this.config,
                    i = this.getFromEnv("chart").config,
                    n = a.axisDimention || (a.axisDimention = {}),
                    o = a.isReverse;
                n.opposite = (0, r.pluckNumber)(e.opposite, n.opposite), n.x = (0, r.pluckNumber)(e.x, n.x, i.canvasLeft), n.y = (0, r.pluckNumber)(e.y, n.y, i.canvasTop), n.axisLength = (0, r.pluckNumber)(e.axisLength, n.axisLength), a.isVertical ? o ? t.setRange([n.y + n.axisLength, n.y]) : t.setRange([n.y, n.y + n.axisLength]) : o ? t.setRange([n.x + n.axisLength, n.x]) : t.setRange([n.x, n.x + n.axisLength]), a.translation = this._computeTranslation()
            }, t.extractStyleInfo = s
        },
        471: function(e, t, a) {
            var i = a(472),
                n = a(279)((function(e, t) {
                    for (var a = [], n = 0, o = e.length; n < o;) i(e[n], t) || i(e[n], a) || (a[a.length] = e[n]), n += 1;
                    return a
                }));
            e.exports = n
        },
        472: function(e, t, a) {
            var i = a(473);
            e.exports = function(e, t) {
                return i(t, e, 0) >= 0
            }
        },
        473: function(e, t, a) {
            var i = a(474);
            e.exports = function(e, t, a) {
                var n, o;
                if ("function" == typeof e.indexOf) switch (typeof t) {
                    case "number":
                        if (0 === t) {
                            for (n = 1 / t; a < e.length;) {
                                if (0 === (o = e[a]) && 1 / o === n) return a;
                                a += 1
                            }
                            return -1
                        }
                        if (t != t) {
                            for (; a < e.length;) {
                                if ("number" == typeof(o = e[a]) && o != o) return a;
                                a += 1
                            }
                            return -1
                        }
                        return e.indexOf(t, a);
                    case "string":
                    case "boolean":
                    case "function":
                    case "undefined":
                        return e.indexOf(t, a);
                    case "object":
                        if (null === t) return e.indexOf(t, a)
                }
                for (; a < e.length;) {
                    if (i(e[a], t)) return a;
                    a += 1
                }
                return -1
            }
        },
        474: function(e, t, a) {
            var i = a(279),
                n = a(475),
                o = i((function(e, t) {
                    return n(e, t, [], [])
                }));
            e.exports = o
        },
        475: function(e, t, a) {
            var i = a(476),
                n = a(469),
                o = a(477),
                r = a(286),
                l = a(478),
                s = a(479),
                c = a(481);

            function h(e, t, a, o) {
                var r = i(e),
                    l = i(t);

                function s(e, t) {
                    return u(e, t, a.slice(), o.slice())
                }
                return !n((function(e, t) {
                    return !n(s, t, e)
                }), l, r)
            }

            function u(e, t, a, i) {
                if (l(e, t)) return !0;
                var n = c(e);
                if (n !== c(t)) return !1;
                if (null == e || null == t) return !1;
                if ("function" == typeof e["fantasy-land/equals"] || "function" == typeof t["fantasy-land/equals"]) return "function" == typeof e["fantasy-land/equals"] && e["fantasy-land/equals"](t) && "function" == typeof t["fantasy-land/equals"] && t["fantasy-land/equals"](e);
                if ("function" == typeof e.equals || "function" == typeof t.equals) return "function" == typeof e.equals && e.equals(t) && "function" == typeof t.equals && t.equals(e);
                switch (n) {
                    case "Arguments":
                    case "Array":
                    case "Object":
                        if ("function" == typeof e.constructor && "Promise" === o(e.constructor)) return e === t;
                        break;
                    case "Boolean":
                    case "Number":
                    case "String":
                        if (typeof e != typeof t || !l(e.valueOf(), t.valueOf())) return !1;
                        break;
                    case "Date":
                        if (!l(e.valueOf(), t.valueOf())) return !1;
                        break;
                    case "Error":
                        return e.name === t.name && e.message === t.message;
                    case "RegExp":
                        if (e.source !== t.source || e.global !== t.global || e.ignoreCase !== t.ignoreCase || e.multiline !== t.multiline || e.sticky !== t.sticky || e.unicode !== t.unicode) return !1
                }
                for (var d = a.length - 1; d >= 0;) {
                    if (a[d] === e) return i[d] === t;
                    d -= 1
                }
                switch (n) {
                    case "Map":
                        return e.size === t.size && h(e.entries(), t.entries(), a.concat([e]), i.concat([t]));
                    case "Set":
                        return e.size === t.size && h(e.values(), t.values(), a.concat([e]), i.concat([t]));
                    case "Arguments":
                    case "Array":
                    case "Object":
                    case "Boolean":
                    case "Number":
                    case "String":
                    case "Date":
                    case "Error":
                    case "RegExp":
                    case "Int8Array":
                    case "Uint8Array":
                    case "Uint8ClampedArray":
                    case "Int16Array":
                    case "Uint16Array":
                    case "Int32Array":
                    case "Uint32Array":
                    case "Float32Array":
                    case "Float64Array":
                    case "ArrayBuffer":
                        break;
                    default:
                        return !1
                }
                var g = s(e);
                if (g.length !== s(t).length) return !1;
                var p = a.concat([e]),
                    f = i.concat([t]);
                for (d = g.length - 1; d >= 0;) {
                    var m = g[d];
                    if (!r(m, t) || !u(t[m], e[m], p, f)) return !1;
                    d -= 1
                }
                return !0
            }
            e.exports = u
        },
        476: function(e, t) {
            e.exports = function(e) {
                for (var t, a = []; !(t = e.next()).done;) a.push(t.value);
                return a
            }
        },
        477: function(e, t) {
            e.exports = function(e) {
                var t = String(e).match(/^function (\w*)/);
                return null == t ? "" : t[1]
            }
        },
        478: function(e, t, a) {
            var i = a(279)((function(e, t) {
                return e === t ? 0 !== e || 1 / e == 1 / t : e != e && t != t
            }));
            e.exports = i
        },
        479: function(e, t, a) {
            var i = a(280),
                n = a(286),
                o = a(480),
                r = !{
                    toString: null
                }.propertyIsEnumerable("toString"),
                l = ["constructor", "valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"],
                s = function() {
                    "use strict";
                    return arguments.propertyIsEnumerable("length")
                }(),
                c = function(e, t) {
                    for (var a = 0; a < e.length;) {
                        if (e[a] === t) return !0;
                        a += 1
                    }
                    return !1
                },
                h = i("function" != typeof Object.keys || s ? function(e) {
                    if (Object(e) !== e) return [];
                    var t, a, i = [],
                        h = s && o(e);
                    for (t in e) !n(t, e) || h && "length" === t || (i[i.length] = t);
                    if (r)
                        for (a = l.length - 1; a >= 0;) n(t = l[a], e) && !c(i, t) && (i[i.length] = t), a -= 1;
                    return i
                } : function(e) {
                    return Object(e) !== e ? [] : Object.keys(e)
                });
            e.exports = h
        },
        480: function(e, t, a) {
            var i = a(286),
                n = Object.prototype.toString;
            e.exports = function() {
                return "[object Arguments]" === n.call(arguments) ? function(e) {
                    return "[object Arguments]" === n.call(e)
                } : function(e) {
                    return i("callee", e)
                }
            }
        },
        481: function(e, t, a) {
            var i = a(280)((function(e) {
                return null === e ? "Null" : e === undefined ? "Undefined" : Object.prototype.toString.call(e).slice(8, -1)
            }));
            e.exports = i
        },
        482: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(463)),
                r = i(a(461)),
                l = i(a(483)),
                s = a(193),
                c = a(470),
                h = s.preDefStr.POSITION_START,
                u = s.preDefStr.POSITION_MIDDLE,
                d = s.preDefStr.POSITION_TOP,
                g = s.preDefStr.POSITION_BOTTOM,
                p = s.preDefStr.POSITION_END,
                f = {
                    wrtVisible: !0
                },
                m = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).config.scale = new l["default"], t
                    }(0, n["default"])(t, e);
                    var a = t.prototype;
                    return a.getName = function() {
                        return "category"
                    }, a.getCategoryFromId = function(e) {
                        var t = this.config.tickValues;
                        return (t && t.tickIdMap)[e] || {}
                    }, a.generateTicks = function() {
                        var e = this.getScale(),
                            t = this.config,
                            a = e.getDomain(),
                            i = t.categoryNumDivLines + 1,
                            n = (a[1] - a[0]) / i,
                            o = t.axisRange,
                            l = o.min,
                            s = o.max,
                            c = (s - l) / i;
                        return t._allTicks = (0, r["default"])(l, s, c).concat(s), o.tickInterval = c, (0, r["default"])(a[0], a[1], n).concat(a[1])
                    }, a._parseCategoryVline = function() {
                        var e, t, a, i, n, o, r, l, c, f, m, v, b, x, y, C, k, S, w, L, A, N, T, E, F, _, P, D, I, M, O = this.config,
                            R = O.axisRange,
                            B = R.min,
                            V = R.max,
                            G = this.getFromEnv("chart").config,
                            z = G.style || {},
                            H = O.isVertical,
                            W = {
                                fontFamily: G.style.inCanfontFamily,
                                fontSize: G.style.inCanfontSize,
                                color: G.style.inCancolor,
                                lineHeight: G.style.inCanLineHeight
                            };
                        for (a = (t = O.tickValues.vline).length, P = 1 !== this.getZoom(), D = this.getVisibleConfig(), o = 0; o < a; o++) i = t[o], n = (0, s.parseUnsafeString)(i.label), r = Boolean((0, s.pluckNumber)(i.showlabelborder, O.showVLineLabelBorder, 1)), e = Boolean((0, s.pluckNumber)(i.showlabelbackground, 1)), "center" === (l = (0, s.pluck)(i.labelhalign, H ? h : u)) ? l = u : "left" === l ? l = h : "right" === l && (l = p), (c = (0, s.pluck)(i.labelvalign, H ? u : g).toLowerCase()) === u ? c = u : c === d ? c = g : c === g && (c = d), f = (0, s.pluckNumber)(i.labelposition, 0), m = (0, s.pluckNumber)(i.lineposition, .5), v = (0, s.pluckNumber)(i.showvlines, O.showVLines, 1), b = (0, s.pluckNumber)(i.alpha, O.vLineAlpha, 80), x = (0, s.pluck)(i.color, O.vLineColor).replace(/^#?/, "#"), y = e ? (0, s.pluck)(i.labelbgcolor, O.vLineLabelBgColor, "333333").replace(/^#?/, "#") : s.BLANKSTRING, E = (0, s.pluck)(i.labelcolor, O.vLineLabelColor, i.color, z.inCancolor, O.vLineColor).replace(/^#?/, "#"), C = (0, s.pluckNumber)(i.thickness, O.vLineThickness, 1), 2, k = Boolean(Number((0, s.pluck)(i.dashed, 0))), S = (0, s.pluckNumber)(i.dashlen, 5), L = (0, s.pluckNumber)(i.dashgap, 2), w = W.fontSize, w = parseInt(w.replace(/px/i, ""), 10), F = (0, s.pluckNumber)(i.rotatelabel, O.rotateVLineLabels) ? 270 : 0, m = m < 0 || m > 1 ? .5 : m, f = f < 0 || f > 1 ? 0 : f, x = (0, s.convertColor)(x, v ? b : "0"), M = i.animate && !H ? i.startIndex + 1 : i.startIndex, _ = this._getVlinePos(M, m) - (i.animate ? i.leftShift : 0), P && (_ < D.minValue || _ > D.maxValue) || _ < B || _ > V || (A = {
                            opacity: 1,
                            stroke: x,
                            "stroke-width": C,
                            "stroke-dasharray": k ? (0, s.getDashStyle)(S, L) : "none"
                        }, T = {
                            opacity: 1,
                            text: n,
                            "text-anchor": l,
                            "vertical-align": c,
                            "text-bound": []
                        }, N = {
                            fontSize: W.fontSize,
                            fontFamily: W.fontFamily,
                            lineHeight: W.lineHeight
                        }, I = {
                            from: _,
                            layer: (0, s.pluckNumber)(i.showontop, O.showVLinesOnTop, 0) ? 3 : 2,
                            attr: A,
                            type: "line",
                            startIndex: i.startIndex,
                            linePosition: m
                        }, n && (T["text-bound"] = [y, v && r ? x : s.BLANKSTRING, v && r ? 1 : 0, 2, s.UNDEF, v && r ? "solid" : s.BLANKSTRING], T.fill = v ? E : x, I.text = {
                            label: n,
                            attr: T,
                            layer: 4,
                            labelRotation: F,
                            labelPosition: f,
                            css: N
                        }), this.setReferenceInfo(I), this.config.parsedVlineInfo.push(I))
                    }, a._parseReferenceVisuals = function() {
                        e.prototype._parseReferenceVisuals.call(this), this.config.drawPlotlines && this._parseCategoryVline()
                    }, a.categoryInsert = function(e, t, a) {
                        var i, n, o, r, l, c = e,
                            h = this.config,
                            u = h.axisRange.min,
                            d = t.length,
                            g = h.endPad || 0;
                        for (i = h.tickValues.tickValue, o = h.tickValues.tickIdMap, n = h.tickValues.vline, r = 0; r < d; r += 1) "true" !== (l = (0, s.extend2)({}, t[r])).vline && !0 !== l.vline && 1 !== l.vline && "1" !== l.vline ? (l.id && (o[l.id] = {
                            tickObj: l,
                            i: c
                        }), i.splice(c, 0, l), c += 1) : (l.startIndex = c - 2, n.push(l));
                        a && this._setAxisRange({
                            min: u,
                            max: Number((0, s.toPrecision)(i.length - 1 + g, 10))
                        })
                    }, a.categoryDelete = function(e, t, a) {
                        var i, n, o, r = this.config,
                            l = r.axisRange,
                            s = l.min;
                        for (n = 0, o = (i = r.tickValues.vline).length; n < o; n++) i[n].animate = !0, i[n].leftShift = t;
                        r.tickValues.tickValue.splice(e, t), this._shiftVline(e, t, "left"), a && this._setAxisRange({
                            min: s,
                            max: l.max - t
                        })
                    }, a._shiftVline = function(e, t, a) {
                        var i, n, o = this.config,
                            r = o.tickValues.vline,
                            l = o.tickValues.tickValue.length,
                            s = r.length;
                        for (i = 0; i < s; i += 1)(n = r[i]).startIndex >= e && ("right" === a ? n.startIndex += t : n.startIndex -= t, (n.startIndex < 0 || n.startIndex >= l) && (r.splice(i, 1), s -= 1, i -= 1))
                    }, a.categoryTranslate = function(e) {
                        var t, a = e,
                            i = this.config;
                        a = (a || 0) * (this.getPixel(1, f) - this.getPixel(0, f)), i.isReverse && (a = -a), t = ["T", a, ",", "0"].join(""), this.realTimeTranslatableGroups = [{
                            group: i.axisContainer,
                            translationStr: t
                        }, {
                            group: i.axisTrendLabelContainer,
                            translationStr: t
                        }]
                    }, a.updateTicksValues = function(e, t) {
                        var a, i, n, o, r, l, s, c = this.config,
                            h = c.parsedVlineInfo;
                        if ((a = c.tickValues.tickValue)[e])
                            for (s in t) t.hasOwnProperty(s) && ("x" === s && (i = !0), a[e][s] = t[s]);
                        if (i)
                            for (o = 0, r = h.length; o < r; ++o)
                                if ((l = (n = h[o]).startIndex) === e) n.from = this._getVlinePos(l, n.linePosition);
                                else if (l + 1 === e) {
                            n.from = this._getVlinePos(l, n.linePosition);
                            break
                        }
                    }, a._getVlinePos = function(e, t) {
                        var a, i, n, o = this.getTickValues(),
                            r = this.config,
                            l = this.getLimit(),
                            c = l.min,
                            h = l.max,
                            u = o[e],
                            d = o[e + 1];
                        return u ? d || (a = o[0] && o[0].x ? h : r.oriCatLen - 1, n = !0) : (a = o[0] && o[0].x ? c : -1, n = !0), i = n ? t : ((a = (0, s.pluckNumber)(u.x, u.y, e)) - (0, s.pluckNumber)(d.x, d.y, e + 1)) * t, a + Math.abs(i)
                    }, a.getInterval = function() {
                        if (this) return 1
                    }, a._setAxisRange = function(e) {
                        var t, a, i = e.min,
                            n = e.max,
                            o = this.config,
                            l = o.axisRange,
                            c = o.periodLength,
                            h = o.dataLimit,
                            u = h.max,
                            d = h.min;
                        i > n || (u === n && d === i || (t = !0), o.visibleMin === s.UNDEF || o.setPadding || t ? (h.max = n, h.min = i, c && (o.categoryNumDivLines = (n - i) / c - 1), a = (n - i) / (o.categoryNumDivLines + 1), this.getScale().setDomain([i, n]), o.ticks = (0, r["default"])(i, n, a).concat(n), o._allTicks = o.ticks.slice(), l.min = i, l.max = n, l.tickInterval = a, this.setVisibleConfig(l.min, l.max)) : o.setPadding = !1)
                    }, t
                }(o["default"]);
            m.prototype.setTickValues = c.setTickValues;
            var v = m;
            t["default"] = v
        },
        483: function(e, t, a) {
            "use strict";
            var i = a(191),
                n = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var o = n(a(207)),
                r = i(a(440)),
                l = n(a(433)),
                s = function(e) {
                    function t() {
                        return e.call(this, r.deInterpolateLinear, l["default"]) || this
                    }
                    return (0, o["default"])(t, e), t.prototype.copy = function() {
                        return (0, r.copyScale)(this, new t)
                    }, t
                }(r["default"]);
            t["default"] = s
        },
        484: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t, a = e._parseCanvasCosmetics && e._parseCanvasCosmetics();
                if ((0, r.componentFactory)(e, n["default"], "canvas", e.config.showVolumeChart ? 2 : 1), t = e.getChildren("canvas"))
                    for (var i = 0, l = t.length; i < l; i++) t[i].configure(a), (0, r.componentFactory)(t[i], o["default"], "axisRefVisualCartesian")
            };
            var n = i(a(421)),
                o = i(a(485)),
                r = a(193)
        },
        485: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(208),
                r = i(a(433)),
                l = i(a(467)),
                s = a(464),
                c = i(a(486)),
                h = a(201);
            (0, h.addDep)({
                name: "cartesianAxisRefAnimation",
                type: "animationRule",
                extension: c["default"]
            });
            var u = function(e) {
                function t() {
                    var t;
                    return (t = e.call(this) || this).config.map = {}, t.config.explicitDrawItems = {}, t
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "axisRefVisuals"
                }, a.getName = function() {
                    return "axisRefVisualsCartesian"
                }, a.draw = function() {
                    var e, t, a, i, n, o, r, l = this.getDrawingInfo(),
                        s = this.getexplicitDrawItems(),
                        c = this.config,
                        h = c.map,
                        u = {},
                        d = this.getLinkedParent(),
                        g = d.getAxes(),
                        p = [],
                        f = d.getChildContainer("axisReferenceVisualsFloor"),
                        m = d.getChildContainer("axisReferenceVisualsBottom"),
                        v = d.getChildContainer("axisReferenceVisualsMiddle"),
                        b = d.getChildContainer("axisReferenceVisualsTop"),
                        x = d.getChildContainer("axisReferenceVisualsCeil");
                    for (d.config.trendlines = [], d.config.vtrendlines = [], t = 0; t < g.length; ++t) p.push(g[t].axis.getId());
                    for (i in c.containers = [f, m, v, b, x], l)
                        if (l.hasOwnProperty(i) && (n = this.getLinkedItem(i), p.indexOf(n.getId()) >= 0))
                            for ((o = u[i]) || (o = u[i] = []), e = l[i], t = 0; t < e.length; ++t) "band" === (a = (r = e[t]).type) ? o.push.apply(o, this.createBand(r, n)) : "line" === a && o.push.apply(o, this.createLine(r, n));
                    if (c.isSmartDrawing)
                        for (i in h) h.hasOwnProperty(i) && !s[i] && this.getLinkedItem(i) && (u[i] = h[i]);
                    this.resetexplicitDrawItems(), this.removeExtraElements(u)
                }, a.getDrawingInfo = function() {
                    var e, t, a = {},
                        i = this.getexplicitDrawItems(),
                        n = this.isCanvasChnaged(),
                        o = (this.config.isSmartDrawing = Object.keys(i).length && !n) ? i : this.getLinkedItem();
                    for (e in o) o.hasOwnProperty(e) && (t = o[e], a[e] = t.getReferenceInfo());
                    return a
                }, a.createLine = function(e, t) {
                    var a, i, n, o, l = this.config.containers,
                        c = l[e.layer],
                        h = t.config,
                        u = this.getFromEnv("paper"),
                        d = this.getFromEnv("chart").getName(),
                        g = this.getLinkedParent(),
                        p = this.getFromEnv("animationManager"),
                        f = this.getFromEnv("toolTipController"),
                        m = g.config,
                        v = m.trendlines,
                        b = h.isVertical,
                        x = m.canvasLeft,
                        y = m.canvasTop,
                        C = y + m.canvasHeight,
                        k = x + m.canvasWidth,
                        S = (0, r["default"])(x, k),
                        w = (0, r["default"])(y, C),
                        L = t.getScale(),
                        A = L.getRangeValue(e.from),
                        N = void 0 !== e.to && L.getRangeValue(e.to) || A,
                        T = b ? ["M", x, A, "L", k, N] : ["M", A, C, "L", N, y],
                        E = e.attr,
                        F = e.text,
                        _ = F && F.attr,
                        P = F && F.labelPosition || 0,
                        D = t.getId(),
                        I = e.id || e.from,
                        M = D + "_" + I,
                        O = this.getGraphicalElement(M),
                        R = e.handlers,
                        B = {
                            start: e.from,
                            end: e.to
                        };
                    for (n in E.path = (0, s.getCrispPath)(T, (o = E["stroke-width"], null !== o ? E["stroke-width"] : 1)).path.toString(), /trend/.test(e.id) && v.push({
                            x1: T[1],
                            y1: T[2],
                            x2: T[4],
                            y2: T[5],
                            tooltext: e.toolText,
                            tolerance: E["stroke-width"] < 5 ? 2.5 : E["stroke-width"] / 2
                        }), E["stroke-linecap"] = "butt", (O = this.addGraphicalElement(M, p.setAnimation({
                            container: c,
                            el: O || "path",
                            attr: E,
                            component: this,
                            axis: t,
                            data: {
                                value: B,
                                path: T
                            },
                            label: "path"
                        }))).data("data", B), F && (a = D + "_" + I + _.text, i = this.getGraphicalElement(a), b ? (_.x = S(P), _.y = A) : (_.x = A, _.y = w(P)), _.text = F.label, _.transform = u.getSuggestiveRotation(F.labelRotation, _.x, _.y), (i = this.addGraphicalElement(a, p.setAnimation({
                            container: l[F.layer],
                            el: i || "text",
                            attr: _,
                            component: this,
                            axis: t,
                            data: {
                                value: e.from
                            },
                            label: "text",
                            css: F.css
                        }))).data("data", e.from)), /zoomscatter/i.test(d) || (e.toolText ? f.enableToolTip(O, e.toolText) : f.disableToolTip(O)), R) R.hasOwnProperty(n) && (O.on(n, R[n].bind(t)), i && i.on(n, R[n].bind(t)));
                    return F ? [M, a] : [M]
                }, a.createBand = function(e, t) {
                    var a, i, n, o, r, l, s = this.config.containers[e.layer],
                        c = t.config,
                        h = this.getFromEnv("animationManager"),
                        u = this.getFromEnv("toolTipController"),
                        d = this.getLinkedParent(),
                        g = this.getFromEnv("chart").getName(),
                        p = d.config,
                        f = c.isVertical,
                        m = p.canvasLeft,
                        v = p.canvasTop,
                        b = v + p.canvasHeight,
                        x = m + p.canvasWidth,
                        y = t.getScale(),
                        C = e.from,
                        k = void 0 !== e.to ? e.to : C,
                        S = t.getId(),
                        w = e.attr,
                        L = e.handlers;
                    for (r in a = "canvasStart" === C ? f ? v : m : y.getRangeValue(C), i = "canvasEnd" === k ? f ? b : x : y.getRangeValue(k), l = Math.abs(a - i), f ? (w.x = m, w.y = Math.min(a, i), w.width = x - m, w.height = l) : (w.x = Math.min(a, i), w.y = v, w.width = l, w.height = b - v), n = S + "_" + (e.id || w.x + "_" + w.y), o = this.getGraphicalElement(n), /trend/.test(e.id) && d.config.vtrendlines.push({
                            x1: w.x,
                            y1: w.y,
                            x2: w.x + w.width,
                            y2: w.y + w.height,
                            tooltext: e.toolText,
                            tolerance: w["stroke-width"] < 5 ? 2.5 : w["stroke-width"] / 2,
                            isTrendZone: 1
                        }), o = this.addGraphicalElement(n, h.setAnimation({
                            container: s,
                            el: o || "rect",
                            attr: w,
                            component: this,
                            label: "rect"
                        })), /zoomscatter/i.test(g) || (e.toolText ? u.enableToolTip(o, e.toolText) : u.disableToolTip(o)), L) L.hasOwnProperty(r) && o.on(r, L[r].bind(t));
                    return [n]
                }, a.removeExtraElements = function(e) {
                    var t, a, i, n, o, r, s = this.config.map;
                    for (t in s)
                        if (e[t])
                            for (n = (r = (0, l["default"])(s[t], e[t])).length, i = 0; i < n; ++i)(o = this.getGraphicalElement(r[i])) && this.removeGraphicalElement(o);
                        else
                            for (n = (a = s[t]).length, i = 0; i < n; ++i)(o = this.getGraphicalElement(a[i])) && this.removeGraphicalElement(o);
                    this.config.map = e
                }, a.setLinkedItem = function(t, a) {
                    e.prototype.setLinkedItem.call(this, t, a);
                    var i, n = this;
                    "axis" === a.getType() && n.addExtEventListener("predraw", (function(e) {
                        (i = e.sender).getState("removed") && (n.removeLinkedItem(i.getId()), n.asyncDraw())
                    }), a)
                }, a.addexplicitDrawItems = function(e, t) {
                    this.config.explicitDrawItems[e] = t
                }, a.getexplicitDrawItems = function() {
                    return this.config.explicitDrawItems
                }, a.resetexplicitDrawItems = function() {
                    this.config.explicitDrawItems = {}
                }, a.isCanvasChnaged = function() {
                    var e, t = this.getLinkedParent().getEffectiveDimensions(),
                        a = this.config;
                    return e = JSON.stringify(t) !== JSON.stringify(a.canvasDim), a.canvasDim = t, e
                }, t
            }(o.ComponentInterface);
            t["default"] = u
        },
        486: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = a(466),
                n = {
                    "initial.axisRefVisuals.axisRefVisualsCartesian": i.axisAnimationAxis,
                    "update.axisRefVisuals.axisRefVisualsCartesian": i.axisAnimationFinal
                };
            t["default"] = n
        },
        487: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t, a, i, r, l, s, c, h = e.getChildren("canvas"),
                    u = h.length,
                    d = [],
                    g = [];
                for (r = 0; r < u; r++, d = [], g = [])
                    if (!(t = h[r]).getState("removed")) {
                        for (i = t.getFromEnv("xAxis"), s = 0; s < (i && i.length); s++) i[s].getState("removed") || d.push(i[s]);
                        for (i = t.getFromEnv("yAxis"), s = 0; s < (i && i.length); s++) i[s].getState("removed") || g.push(i[s]);
                        for ((0, o.componentFactory)(t, n["default"], "vCanvas", d.length * g.length), a = t.getChildren("vCanvas"), l = 0, s = 0; l < (d && d.length); l++)
                            for (c = 0; c < (g && g.length); c++, s++) a[s].xAxis(d[l]).yAxis(g[c]).canvas(t), a[s].configure(), a[s].addToEnv("vCanvas", a[s])
                    }
            };
            var n = i(a(488)),
                o = a(193)
        },
        488: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(208),
                r = a(193),
                l = function(e, t) {
                    var a = e;
                    return a = "comp_" + a, t && (this.config[a] = t), (t || !this.config[a]) && this || this.config[a]
                },
                s = function(e, t) {
                    return ["T", e, ",", t].join("")
                },
                c = function(e) {
                    return -e.getTranslation()
                },
                h = function(e, t) {
                    return {
                        h: e,
                        v: t
                    }
                },
                u = ["columnShadowVcanvasGroup", "columnVcanvasGroup", "areaShadowVcanvasGroup", "areaVcanvasGroup", "lineShadowVcanvasGroup", "lineVcanvasGroup", "defaultShadowVcanvasGroup", "defaultVcanvasGroup", "sumLabelsLayer", "vcanvasLabelGroup"],
                d = function(e, t, a) {
                    return a.getFromEnv("animationManager").setAnimation({
                        el: "group",
                        attr: {
                            name: e
                        },
                        container: t,
                        state: "appearing",
                        component: a,
                        label: "group"
                    })
                },
                g = function(e) {
                    return !/category/i.test(e.getName())
                },
                p = function(e) {
                    function t() {
                        return e.apply(this, arguments) || this
                    }(0, n["default"])(t, e);
                    var a = t.prototype;
                    return a.getName = function() {
                        return "virtualCanvas"
                    }, a.getType = function() {
                        return "canvas"
                    }, a.xAxis = function(e) {
                        var t = l.call(this, "xAxis", e);
                        return e && this.listenToAxis(e), e && this.addToEnv("xAxis", e), t
                    }, a.yAxis = function(e) {
                        var t = l.call(this, "yAxis", e);
                        return e && this.listenToAxis(e), e && this.addToEnv("yAxis", e), t
                    }, a.paper = function(e) {
                        return l.call(this, "paper", e)
                    }, a.canvas = function(e) {
                        return l.call(this, "canvas", e)
                    }, a.configure = function(e) {
                        void 0 === e && (e = {});
                        var t = this.getFromEnv("chartConfig"),
                            a = this.config;
                        Object.assign(a, e), a.transposeAxis = t.transposeAxis, this._mapChildren((function(e) {
                            e.getState("removed") || "dataset" === e.getType() || e.configure && e.configure()
                        }))
                    }, a.getHorizontalVerticalAxes = function() {
                        var e = this.xAxis(),
                            t = this.yAxis();
                        return t.config.isVertical ? h(e, t) : h(t, e)
                    }, a.preDraw = function() {
                        this._mapChildren((function(e) {
                            e.getState("removed") || "dataset" === e.getType() || e.setVisibility && e.setVisibility()
                        }));
                        var e, t = this.config.transposeAxis,
                            a = this.getFromEnv("chart"),
                            i = this.getAxisValuePadding(),
                            n = i.left,
                            o = i.right,
                            r = i.top,
                            l = i.bottom;
                        (e = this.getDataLimits(!t)).min !== Infinity || e.max !== -Infinity ? (this._setYAxisLimits(e.min, e.max), a._storeIntialLimit && a._storeIntialLimit(e.min, e.max)) : (this._setYAxisLimits(void 0, void 0), a._storeIntialLimit && a._storeIntialLimit(void 0, void 0)), this._setXAxisLimits(e.xMin, e.xMax), this._setAxisValuePadding(n, o, r, l)
                    }, a.childChanged = function(e) {
                        void 0 === e && (e = {});
                        var t, a = this.config,
                            i = a.transposeAxis;
                        !1 !== e.dataLimitChanged && (t = this.getDataLimits(!i), !i || t.min === a.range.min && t.max === a.range.max || (a.range.min = t.min, a.range.max = t.max, this.getFromEnv("yAxis").resetStoredLimits(), t.min !== Infinity || t.max !== -Infinity ? this._setYAxisLimits(t.min, t.max) : this._setYAxisLimits(void 0, void 0)), t.xMin === a.range.xMin && t.xMax === a.range.xMax || (a.range.xMin = t.xMin, a.range.xMax = t.xMax, this.getFromEnv("xAxis").resetStoredLimits(), this._setXAxisLimits(t.xMin, t.xMax))), this.asyncDraw()
                    }, a._setAxisValuePadding = function(e, t, a, i) {
                        this.getFromEnv("xAxis").setAxisPadding(e, t), a && i && this.getFromEnv("yAxis").setAxisPadding(e, t)
                    }, a.getAxisValuePadding = function() {
                        var e = {},
                            t = -Infinity,
                            a = -Infinity,
                            i = -Infinity,
                            n = -Infinity;
                        return this._mapChildren((function(o) {
                            o.getState("removed") || (e = o.getAxisValuePadding && o.getAxisValuePadding() || {}, t = Math.max(t, e.left || -Infinity), a = Math.max(a, e.right || -Infinity), i = Math.max(i, e.top || -Infinity), n = Math.max(n, e.bottom || -Infinity))
                        })), t === -Infinity && (t = 0), a === -Infinity && (a = 0), i === -Infinity && (i = 0), n === -Infinity && (n = 0), this.config.padding || (this.config.padding = {}, this.config.padding.left = t, this.config.padding.right = a, this.config.padding.top = i, this.config.padding.bottom = n), {
                            left: t,
                            right: a,
                            top: i,
                            bottom: n
                        }
                    }, a._setYAxisLimits = function(e, t) {
                        var a = this.getFromEnv("yAxis");
                        g(a) && a.setDataLimit(t, e)
                    }, a._setXAxisLimits = function(e, t) {
                        var a = this.getFromEnv("xAxis");
                        g(a) && (t !== -Infinity || e !== +Infinity ? a.setDataLimit(t, e) : a.setDataLimit(void 0, void 0))
                    }, a.getDataLimits = function(e) {
                        var t, a, i, n = this.getFromEnv("chart"),
                            o = -Infinity,
                            l = +Infinity,
                            s = o,
                            c = l,
                            h = l,
                            u = o;
                        return this._mapChildren((function(n) {
                            var d;
                            n.getDataLimits && !n.getState("removed") && (e || n.getState("visible")) && (t = n.getDataLimits(e), d = t, a = (0, r.pluck)(d.xMax, o), i = (0, r.pluck)(d.xMin, l), s = Math.max(s, d.max), c = Math.min(c, d.min), u = Math.max(u, a), h = Math.min(h, i))
                        })), this.config.range || (this.config.range = {}, this.config.range.min = c, this.config.range.max = s, this.config.range.xMin = h, this.config.range.xMax = u), n.config.yMax = s, n.config.yMin = c, {
                            min: c,
                            max: s,
                            xMin: h,
                            xMax: u
                        }
                    }, a.listenToAxis = function(e) {
                        var t, a = this;
                        t = function() {
                            a.getState("drawn") && a.asyncDraw()
                        }, this.getState("visiblerangeset" + e.getId()) || (this.setState("visiblerangeset" + e.getId(), !0), a.addExtEventListener("visiblerangeset", t, e))
                    }, a.createContainer = function() {
                        var e = this.getLinkedParent();
                        !this.getChildContainer("columnShadowVcanvasGroup") && this.addChildContainer("columnShadowVcanvasGroup", d("vcanvas-column-shadow", e.getChildContainer("columnShadowGroup"), this)), !this.getChildContainer("columnVcanvasGroup") && this.addChildContainer("columnVcanvasGroup", d("vcanvas-column-plot", e.getChildContainer("columnGroup"), this)), !this.getChildContainer("areaShadowVcanvasGroup") && this.addChildContainer("areaShadowVcanvasGroup", d("vcanvas-area-shadow", e.getChildContainer("areaShadowGroup"), this)), !this.getChildContainer("areaVcanvasGroup") && this.addChildContainer("areaVcanvasGroup", d("vcanvas-area-plot", e.getChildContainer("areaGroup"), this)), !this.getChildContainer("lineShadowVcanvasGroup") && this.addChildContainer("lineShadowVcanvasGroup", d("vcanvas-line-shadow", e.getChildContainer("lineShadowGroup"), this)), !this.getChildContainer("lineVcanvasGroup") && this.addChildContainer("lineVcanvasGroup", d("vcanvas-line-plot", e.getChildContainer("lineGroup"), this)), !this.getChildContainer("defaultShadowVcanvasGroup") && this.addChildContainer("defaultShadowVcanvasGroup", d("vcanvas-default-shadow", e.getChildContainer("defaultShadowGroup"), this)), !this.getChildContainer("defaultVcanvasGroup") && this.addChildContainer("defaultVcanvasGroup", d("vcanvas-default-plot", e.getChildContainer("defaultGroup"), this)), !this.getChildContainer("vcanvasLabelGroup") && this.addChildContainer("vcanvasLabelGroup", d("vcanvas-label", e.getChildContainer("datalabelsGroup"), this)), !this.getChildContainer("columnTrendGroup") && this.addChildContainer("columnTrendGroup", d("columnTrendGroup", this.getChildContainer("columnVcanvasGroup"), this)), !this.getChildContainer("sumLabelsLayer") && this.addChildContainer("sumLabelsLayer", d("vcanvas-sumLabelsLayer", e.getChildContainer("sumLabelsLayer"), this))
                    }, a.applyTranslation = function() {
                        var e = this,
                            t = function(e) {
                                return s(c(e.h), c(e.v))
                            }(e.getHorizontalVerticalAxes());
                        e.createContainer(), u.forEach((function(a) {
                            var i;
                            i = a, (i = e.getChildContainer(i)).attr({
                                transform: t
                            })
                        }))
                    }, a.draw = function() {
                        this.applyTranslation(), this.setState("drawn", !0)
                    }, a.getCanvasPadding = function() {
                        var e, t, a = {
                            paddingLeft: 0,
                            paddingRight: 0,
                            paddingTop: 0,
                            paddingBottom: 0
                        };
                        return this._mapChildren((function(i) {
                            if (i.getCanvasPadding && !i.getState("removed") && i.getState("visible"))
                                for (t in e = i.getCanvasPadding() || {}) e.hasOwnProperty(t) && (a[t] = Math.max(e[t], a[t]))
                        })), a
                    }, a.rtShiftAnim = function(e, t) {
                        var a, i = this,
                            n = e,
                            o = t,
                            r = i.getFromEnv("xAxis"),
                            l = i.getFromEnv("yAxis"),
                            c = r.getPixel(1) - r.getPixel(0),
                            h = l.getPixel(1) - l.getPixel(0),
                            d = i.getFromEnv("animationManager");
                        a = s(n = (n || 0) * c, o = (o || 0) * h), u.forEach((function(e) {
                            i.getChildContainer(e).attr({
                                transform: a
                            }), d.setAnimation({
                                el: i.getChildContainer(e),
                                attrs: {
                                    transform: "T0,0"
                                }
                            })
                        }))
                    }, t
                }(o.ComponentInterface);
            t["default"] = p
        },
        489: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t;
                e.config.enablemousetracking ? ((0, o.componentFactory)(e, n["default"], "mouseTracker"), t = e.getChildren("mouseTracker")[0], e.config.mouseTrackerEventAdded || (t.addEvents(), e.config.mouseTrackerEventAdded = !0)) : ((t = e.getChildren("mouseTracker") && e.getChildren("mouseTracker")[0]) && t._removeListners(), e.config.mouseTrackerEventAdded = !1)
            };
            var n = i(a(490)),
                o = a(193)
        },
        490: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(210)),
                o = i(a(207)),
                r = a(208),
                l = function(e) {
                    function t() {
                        var t, a;
                        return (t = e.call(this) || this).pIndex = 1, t.handler = (a = (0, n["default"])(t), function(e) {
                            e.originalEvent && a.getFromEnv("chart")._mouseEvtHandler(e, a.config.evtData)
                        }), t.eventsList = ["fc-mousedown", "fc-mouseup", "fc-mousemove", "fc-click", "fc-mouseover"], t.config = {}, t.config.evtData = {}, t
                    }(0, o["default"])(t, e);
                    var a = t.prototype;
                    return a.getMouseEvents = function(e, t, a) {
                        var i = this._lastDatasetIndex,
                            n = this._lastPointIndex,
                            o = {
                                fireOut: !1,
                                events: []
                            };
                        switch (e.type) {
                            case "fc-click":
                                o.events.push("fc-click");
                                break;
                            case "fc-mousemove":
                                i === t && n === a ? (clearTimeout(this.mouseoutTimer), o.events.push("fc-mousemove")) : (o.events.push("fc-mouseover"), o.fireOut = !0);
                                break;
                            case "fc-mousedown":
                                i === t && n === a || (o.fireOut = !0, o.events.push("fc-mouseover")), o.events.push("fc-mousedown");
                                break;
                            case "fc-mouseover":
                                i === t && n === a ? clearTimeout(this.mouseoutTimer) : (o.fireOut = !0, o.events.push("fc-mouseover"));
                                break;
                            case "fc-mouseup":
                                this.hasTouchEvent = !1, o.events.push("fc-mouseup");
                                break;
                            case "fc-mouseout":
                                o.fireOut = !0
                        }
                        return o
                    }, a.addEvents = function() {
                        var e, t, a, i = this.getFromEnv("chart"),
                            n = i.getChildren("canvas"),
                            o = this.config.evtData,
                            r = this.eventsList;
                        for (i.config.enableMouseOutEvent && r.push("fc-mouseout"), this._removeListners(), o.chart = i, o.mouseTracker = this, t = 0; t < n.length; t++)
                            for (a in e = n[t], r) e.addEventListener(r[a], this.handler)
                    }, a._removeListners = function() {
                        var e, t, a, i = this.getFromEnv("chart").getChildren("canvas"),
                            n = this.eventsList;
                        for (a = 0; a < i.length; a++)
                            for (t in e = i[a], n) e.removeEventListener(n[t], this.handler);
                        this._removeDocEvents()
                    }, a._removeDocEvents = function() {
                        this.eventOutput && this.eventOutput.unlisten(), this.eventOutput = void 0
                    }, a._dispose = function() {
                        this._removeListners(), e.prototype._dispose.call(this)
                    }, t
                }(r.ComponentInterface);
            t["default"] = l
        },
        491: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t, a, i = e.getChildren(),
                    c = i.canvas && i.canvas[0],
                    h = c && c.getChildren("vCanvas"),
                    u = h && h[0] || c || e,
                    d = e.getFromEnv("dataSource"),
                    g = d.dataset,
                    p = (0, r["default"])(g) && g[0].data,
                    f = d.data || p;
                a = p ? function(e) {
                    for (var t = 1; t < arguments.length; t++) {
                        var a = null != arguments[t] ? arguments[t] : {};
                        t % 2 ? l(Object(a), !0).forEach((function(t) {
                            (0, n["default"])(e, t, a[t])
                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : l(Object(a)).forEach((function(t) {
                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t))
                        }))
                    }
                    return e
                }({}, g[0], {}, s(f)) : s(f);
                if (!f || 0 === f.length) return void e.setChartMessage();
                t = e.getDSdef(), (0, o.datasetFactory)(u, t, "dataset", 1, [a])
            };
            var n = i(a(192)),
                o = a(193),
                r = i(a(331));

            function l(e, t) {
                var a = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var i = Object.getOwnPropertySymbols(e);
                    t && (i = i.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }))), a.push.apply(a, i)
                }
                return a
            }
            var s = function(e) {
                var t = [],
                    a = [];
                return (0, o.fcEach)(e, (function(e, i) {
                    "true" !== e.vline && !0 !== e.vline && 1 !== e.vline && "1" !== e.vline ? t.push(e) : a.push({
                        index: i,
                        data: e
                    })
                })), {
                    catData: a,
                    data: t
                }
            }
        },
        492: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = t._removePlots = void 0;
            var n, o = i(a(210)),
                r = i(a(207)),
                l = a(193),
                s = a(208),
                c = a(201),
                h = i(a(493)),
                u = a(205),
                d = l.hasTouch ? l.TOUCH_THRESHOLD_PIXELS : l.CLICK_THRESHOLD_PIXELS,
                g = l.regex.dropHash,
                p = l.preDefStr.DEFAULT,
                f = l.preDefStr.showHoverEffectStr,
                m = l.preDefStr.setRolloverAttrStr,
                v = l.preDefStr.setRolloutAttrStr,
                b = Math,
                x = b.min,
                y = b.max,
                C = b.abs,
                k = {
                    top: !0
                },
                S = {
                    right: !0
                },
                w = {
                    left: !0
                },
                L = {
                    bottom: !0
                },
                A = b.ceil,
                N = b.round,
                T = function(e, t) {
                    if (void 0 === e && (e = {}), "function" == typeof t) {
                        var a = function(a) {
                            if (e.hasOwnProperty(a)) {
                                var i = e[a];
                                Array.isArray(i) ? i.forEach((function(e) {
                                    return t(e, a)
                                })) : e[a] && t(e[a], a)
                            }
                        };
                        for (var i in e) a(i)
                    }
                },
                E = function(e, t, a) {
                    return a.getFromEnv("animationManager").setAnimation({
                        el: "group",
                        attr: {
                            name: e
                        },
                        container: t,
                        state: "appearing",
                        component: a,
                        label: "group"
                    })
                },
                F = function(e, t) {
                    void 0 === e && (e = []), e.forEach((function(e) {
                        return T(e && e.graphics, t)
                    })), e.length = 0
                };
            t._removePlots = F, (0, c.addDep)({
                name: "columnAnimation",
                type: "animationRule",
                extension: h["default"]
            });
            var _ = function(e) {
                function t() {
                    var t;
                    t = e.call(this) || this;
                    var a = (0, o["default"])(t);
                    return a.components = {}, a.components.removeDataArr = [], a.__hideElem = function(e, t) {
                        a._setRemoveAnim(e, "label" === t ? "plotLabel" : "rect")
                    }, a.__removeElem = function(e, t) {
                        a.__hideElem(e, t)
                    }, a.config.primitiveType = "column", t
                }(0, r["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "dataset"
                }, a.getName = function() {
                    return "column"
                }, a.__setDefaultConfig = function() {
                    e.prototype.__setDefaultConfig.call(this);
                    var t = this.config;
                    t.showvalues = n, t.includeinlegend = 1, t.plotfillalpha = n, t.plotfillangle = n, t.ratio = n
                }, a.preConfigure = function(t) {
                    if (!t) return !1;
                    this.trimData(t), this.config.JSONData = t, e.prototype.preConfigure.call(this, t)
                }, a.setSkippingInfo = function(e) {
                    this.addToEnv("skipInfo", e || {
                        plotsPerBin: 1,
                        drawOnlyMap: [],
                        draw: [],
                        hide: [],
                        skippingApplied: !1,
                        dragHashMap: []
                    })
                }, a.getSkippingInfo = function() {
                    return this.getFromEnv("skipInfo") || {
                        plotsPerBin: 1,
                        drawOnlyMap: [],
                        draw: [],
                        hide: [],
                        skippingApplied: !1,
                        dragHashMap: []
                    }
                }, a.configure = function(t) {
                    if (!t) return !1;
                    e.prototype.configure.call(this, t)
                }, a.configureAttributes = function() {
                    var e = this.getFromEnv("chart"),
                        t = this.config;
                    this.parseAttributes(), this._setConfigure(), this.getState("visible") && !1 === t.oldVisible && (t.appearing = !0), t.oldVisible = this.getState("visible"), this._realTimeConfigure && this._realTimeConfigure(), !1 !== e.config.hasLegend && e.config.showLegend && this._addLegend(), this.ErrorValueConfigure && this.ErrorValueConfigure(), this.config.YForStackUpdated = !1, this.setState("dirty", !0)
                }, a.parseAttributes = function() {
                    var e, t, a, i = this.getFromEnv("chart"),
                        n = i.getChildren("yAxis")[0].config.isReverse,
                        o = this.config,
                        r = this.config.JSONData,
                        s = i.config.singleseries,
                        c = i.config,
                        h = i.getFromEnv("chart-attrib"),
                        u = this.getFromEnv("color-manager"),
                        d = this.getJSONIndex(),
                        g = o.plotColor = u.getPlotColor(d),
                        p = (0, l.pluckNumber)(r.dashed, h.plotborderdashed, 0),
                        f = (0, l.pluckNumber)(h.useplotgradientcolor, 1),
                        m = i.isBar,
                        v = i.config.is3D,
                        b = i.config.isdual;
                    o.showTextOutline = (0, l.pluckNumber)(h.textoutline, 0), o.dashed = p, o.parentYAxis = b && "s" === (0, l.pluck)(r.parentyaxis && r.parentyaxis.toLowerCase(), "p") ? 1 : 0, o.maxValue = -Infinity, o.minValue = Infinity, o.defaultPadding = {
                        left: .5,
                        right: .5
                    }, (0, l.parseConfiguration)(r, o, c, {
                        data: !0
                    }), o.seriesname = (0, l.parseUnsafeString)(r.seriesname), o.showValues = (0, l.pluckNumber)(r.showvalues, h.showvalues, 1), o.minplotheightforvalue = (0, l.pluckNumber)(r.minplotheightforvalue, h.minplotheightforvalue, 0), o.showplotborder = (0, l.pluckNumber)(h.showplotborder, v ? 0 : 1), e = c.plotborderdashlen, t = c.plotborderdashgap, o.plotfillangle = (0, l.pluckNumber)(360 - h.plotfillangle, m ? 180 : n ? 90 : 270), o.plotfillalpha = a = (0, l.pluck)(r.alpha, h.plotfillalpha, l.HUNDREDSTRING), o.plotColor = g = (0, l.pluck)(r.color, g), o.legendSymbolColor = (0, l.getFirstColor)(o.plotColor), o.plotgradientcolor = (0, l.getDefinedColor)(h.plotgradientcolor, u.getColor("plotGradientColor")), !f && (o.plotgradientcolor = ""), o.plotborderalpha = (0, l.pluck)(h.plotborderalpha, a, l.HUNDREDSTRING), o.plotbordercolor = (0, l.pluck)(h.plotbordercolor, v && !s ? "#ffffff" : u.getColor("plotBorderColor")), o.plotborderdashstyle = p ? (0, l.getDashStyle)(e, t, void 0) : "none", o.showShadow = v ? (0, l.pluckNumber)(h.showshadow, 1) : (0, l.pluckNumber)(h.showshadow, u.getColor("showShadow")), o.definedGroupPadding = y(c.plotSpacePercent, 0), o.includeinlegend = (0, l.pluckNumber)(r.includeinlegend, o.seriesname ? 1 : 0), this.setState("visible", 1 === (0, l.pluckNumber)(r.visible, !Number(r.initiallyhidden), 1)), !0 === this.getState("visible") ? this._conatinerHidden = !1 : this._containerHidden = !0, o.legendInteractivity = !1, this.setState("visible", 1 === (0, l.pluckNumber)(this.getState("visible"), o.JSONData.visible, !Number(o.JSONData.initiallyhidden), 1))
                }, a.trimData = function(e) {
                    if (this.components || !this.components.data || !this.components.data.length) {
                        var t, a, i = this.components,
                            n = this.config,
                            o = n && n.context,
                            r = this.getFromEnv("chart").isRealTime,
                            l = o && o.prevCatlen,
                            s = this.getFromEnv("xAxis"),
                            c = r ? 0 : s.getTicksLen(),
                            h = l - c,
                            u = i && i.data,
                            d = u && u.length,
                            g = e.data && e.data.length || 0,
                            p = d - g;
                        h > p ? (t = h, a = c) : (t = p, a = g), t > 0 && this.removeData(a, t, !1)
                    }
                }, a.hidePlots = function() {
                    var e, t = this,
                        a = t.components.data,
                        i = t.getSkippingInfo(),
                        n = i.hide,
                        o = i.hideLabel;
                    n.forEach((function(i) {
                        (e = a[i]) && e.graphics && (T(e.graphics, t.__removeElem), e && (e.graphics = {}))
                    })), o.forEach((function(i) {
                        (e = a[i]) && e.graphics && (T(e.graphics, t.__removeElem), e && (e.graphics = {}))
                    }))
                }, a._setConfigure = function(e, t) {
                    var a, i, o, r, s, c, h, g, p = this,
                        f = p.getFromEnv("chart"),
                        m = f.config,
                        v = p.config,
                        b = p.getFromEnv("xAxis"),
                        x = f.isRealTime,
                        y = m.realTimeConfig && m.realTimeConfig.numDisplaySets,
                        C = p.getFromEnv("dataSource").categories && p.getFromEnv("dataSource").categories[0] && p.getFromEnv("dataSource").categories[0].category,
                        k = v.initCatLen = x ? C && Array.isArray(C) && C.filter((function(e) {
                            return !e.vline
                        })).length || 0 : b.getTicksLen(),
                        S = v.JSONData || [],
                        w = e || S.data,
                        L = e && e.data.length,
                        A = v.showplotborder,
                        N = m.plotborderthickness,
                        T = p.components.data,
                        E = m.isDrag,
                        F = p.getSkippingInfo && p.getSkippingInfo(),
                        _ = F && F.draw || [],
                        P = F && F.skippingApplied;
                    for (h = L === n && k > y ? k - y : 0, a = x ? (0, l.pluckNumber)(L, k) : Math.min(k, w && w.length), m.dragTolerance = E ? (A && N > 5 ? N / 2 + 1 : 5) + d : 0, T || (T = p.components.data = []), P && (a = _.length), c = h; c < a; c++) s = _[c] || c, e ? (i = e && e.data[s] || {}, r = t !== n ? T[g = t + s] : T[g = T.length - a + s], o = g) : (i = w && w[s] || {}, r = T[s -= h], o = s), r || (r = T[o] = {}), r.config || (r.config = {}, r.graphics = {}), p._plotConfigure(o, i, L), g && g++;
                    P && p.addJob("configureRestID", (function() {
                        p._configureRestData()
                    }), u.priorityList.postRender)
                }, a._configureRestData = function() {
                    var e, t, a, i, o, r = this.config,
                        s = this.config.JSONData,
                        c = s.data,
                        h = this.getFromEnv("chart-attrib"),
                        u = this.getFromEnv("xAxis").getTicksLen(),
                        d = (this.getSkippingInfo && this.getSkippingInfo()).drawOnlyMap,
                        g = this.components.data;
                    for (g || (g = this.components.data = []), r.maxValue = -Infinity, r.minValue = Infinity, i = 0; i < u; i++) d[i] || (a = g[i], t = i, (e = c && c[i] || {}).tooltext !== n && (e.tooltext = (0, l.parseTooltext)(e.tooltext, [3], {
                        label: e.label
                    }, e, h, s)), a || (a = g[i] = {}), a.config || (g[i].config = {}), this._plotConfigure(t, e), o && o++)
                }, a._plotConfigure = function(e, t, a) {
                    var i, o, r, s, c, h, u, d, g, p, f, m, v, b, C, k, S, w, L, A, N, T, E, F, _, P, D, I, M, O, R, B, V, G, z = this.getFromEnv("chart"),
                        H = z.config,
                        W = this.config,
                        j = W.JSONData,
                        U = z.config.singleseries,
                        q = this.getFromEnv("yAxis"),
                        Y = this.getFromEnv("xAxis"),
                        X = this.components.data[e],
                        K = z.getFromEnv("dataSource").chart,
                        Z = this.getFromEnv("color-manager"),
                        J = W.showplotborder,
                        $ = W.plotColor,
                        Q = H.showtooltip,
                        ee = H.yaxisname,
                        te = H.xaxisname,
                        ae = H.tooltipsepchar,
                        ie = H.seriesnameintooltip,
                        ne = H.plotborderdashlen,
                        oe = H.plotborderdashgap,
                        re = H.plotborderthickness,
                        le = (0, l.pluckNumber)(H.useroundedges, 0),
                        se = H.plothovereffect,
                        ce = W.plotfillangle,
                        he = W.plotborderdashstyle,
                        ue = X.config,
                        de = z.isBar,
                        ge = z.config.is3D,
                        pe = H.use3dlighting,
                        fe = H.realTimeConfig && H.realTimeConfig.numDisplaySets,
                        me = fe - W.initCatLen,
                        ve = fe && me >= 0 ? me : 0,
                        be = H.usedataplotcolorforlabels;
                    G = Y.getLabel(a ? e - a : ve + e), ue.origLabel = V = (0, l.getValidValue)((0, l.parseUnsafeString)(G.label)), v = ue.label = (0, l.getValidValue)((0, l.parseUnsafeString)(G.tooltext)) || V, t.tooltext !== n && (t.tooltext = (0, l.parseTooltext)(t.tooltext, [3], {
                        label: G.label
                    }, t, K, j)), ue.dataLabelStyle = this._configureDataLabelStyle(t), ue.minplotheightforvalue = (0, l.pluckNumber)(t.minplotheightforvalue, W.minplotheightforvalue), ue.showValue = (0, l.pluckNumber)(t.showvalue, W.showValues), ue.givenPlotShowValue = (0, l.pluckNumber)(t.showvalue), ue.setValue = m = q.getCleanValue(t.value, (0, l.pluckNumber)(H.stack100percent)), ue.setLink = (0, l.pluck)(t.link), ue.toolTipValue = I = q.dataLabels(m), ue.setDisplayValue = M = (0, l.parseUnsafeString)(t.displayvalue), ue.displayValue = (0, l.pluck)(M, I), ue.dashed = O = (0, l.pluckNumber)(t.dashed, W.dashed), R = (0, l.pluckNumber)(t.dashlen, ne), B = oe = (0, l.pluckNumber)(t.dashgap, oe), null !== m && (W.maxValue = y(W.maxValue, m), W.minValue = x(W.minValue, m)), ue.plotBorderDashStyle = f = 1 === O ? (0, l.getDashStyle)(R, B) : 0 === O ? "none" : he, U ? ($ = Z.getPlotColor((0, l.pluckNumber)(e - a, e)), $ = (0, l.pluck)(t.color, $), be && Y.updateTicksValues(e, {
                        labelfontcolor: (0, l.convertColor)($)
                    }), p = (0, l.pluck)(t.alpha, t.borderalpha, W.plotborderalpha, d).toString()) : ($ = (0, l.pluck)(t.color, W.plotColor), p = (0, l.pluck)(t.alpha, W.plotborderalpha, d).toString()), g = (0, l.pluck)(t.ratio, W.ratio), d = (0, l.pluck)(t.alpha, W.plotfillalpha), ue.plotFillAlpha = d, ue.plotBorderAlpha = p, ue.shadow = {
                        opacity: W.showShadow ? d / 100 : 0
                    }, m < 0 && !le && (h = W.plotfillangle, ce = de ? 180 - ce : 360 - ce), ue.colorArr = b = (0, l.getColumnColor)($ + "," + W.plotgradientcolor, d, g, ce, le, W.plotbordercolor, p, de ? 1 : 0, !!ge), ue.originalPlotColor = $, 0 !== se && (C = (0, l.pluck)(t.hovercolor, j.hovercolor, K.plotfillhovercolor, K.columnhovercolor, $), k = (0, l.pluck)(t.hoveralpha, j.hoveralpha, K.plotfillhoveralpha, K.columnhoveralpha, d), !(S = (0, l.pluck)(t.hovergradientcolor, j.hovergradientcolor, K.plothovergradientcolor, W.plotgradientcolor)) && (S = ""), w = (0, l.pluck)(t.hoverratio, j.hoverratio, K.plothoverratio, g), L = (0, l.pluckNumber)(360 - t.hoverangle, 360 - j.hoverangle, 360 - K.plothoverangle, ce), A = (0, l.pluck)(t.borderhovercolor, j.borderhovercolor, K.plotborderhovercolor, W.plotbordercolor), N = (0, l.pluck)(t.borderhoveralpha, j.borderhoveralpha, K.plotborderhoveralpha, K.plotfillhoveralpha, K.columnhoveralpha, p, d), T = (0, l.pluckNumber)(t.borderhoverthickness, j.borderhoverthickness, K.plotborderhoverthickness, W.showplotborder && re), E = t.borderhoverdashed || j.borderhoverdashed || K.plotborderhoverdashed, F = (0, l.pluckNumber)(t.borderhoverdashgap, j.borderhoverdashgap, K.plotborderhoverdashgap, ne), _ = (0, l.pluckNumber)(t.borderhoverdashlen, j.borderhoverdashlen, K.plotborderhoverdashlen, oe), P = E !== n ? Number(E) ? (0, l.getDashStyle)(_, F) : "" : f, (H.drawTrendRegion && !ge || 1 === se && C === $) && (C = (0, l.getLightColor)(C, 70)), D = (0, l.getColumnColor)(C + "," + S, k, w, L, le, A, N.toString(), de ? 1 : 0, !!ge), ue.setRolloutAttr = {
                        fill: ge ? [(0, l.toRaphaelColor)(b[0]), !pe] : (0, l.toRaphaelColor)(b[0]),
                        stroke: J ? (0, l.toRaphaelColor)(b[1]) : l.TRACKER_FILL,
                        "stroke-width": J ? re : 0,
                        "stroke-dasharray": f
                    }, ue.setRolloverAttr = {
                        fill: ge ? [(0, l.toRaphaelColor)(D[0]), !pe] : (0, l.toRaphaelColor)(D[0]),
                        stroke: A ? (0, l.toRaphaelColor)(D[1]) : l.TRACKER_FILL,
                        "stroke-width": T,
                        "stroke-dasharray": P
                    }, ue.hoverColor = C, ue.hoverAlpha = k, ue.hoverBorderColor = A, ue.hoverBorderAlpha = N), i = ue.toolTipValue, ue.origToolText = r = (0, l.getValidValue)((0, l.parseUnsafeString)((0, l.pluck)(t.tooltext, j.plottooltext, K.plottooltext), !1)), Q ? null === i ? u = !1 : r !== n ? (c = [1, 2, 3, 4, 5, 6, 7], o = {
                        yaxisName: ee,
                        xaxisName: te,
                        formattedValue: i,
                        label: v
                    }, u = (0, l.parseTooltext)(r, c, o, t, K, j)) : (ie && (s = (0, l.getFirstValue)(j && j.seriesname)), u = s ? s + ae : "", u += v ? v + ae : "") : u = !1, ue.toolText = u, ue.setTooltext = u, h && (ce = h), ue._x = e, ue._y = m
                }, a.updateYForStack = function() {
                    var e, t, a, i, o, r, s = this.getFromEnv("chartConfig"),
                        c = (0, l.pluckNumber)(s.showpercentvalues),
                        h = (0, l.pluckNumber)(s.showpercentintooltip),
                        u = this.config.JSONData,
                        d = this.getFromEnv("chart-attrib"),
                        g = this.getFromEnv("xAxis").getTicksLen(),
                        p = this.components.data,
                        f = this.getFromEnv("stackValues"),
                        m = c || h ? -1 : 1,
                        v = this.getSkippingInfo && this.getSkippingInfo(),
                        b = v && v.skippingApplied,
                        x = v && v.draw || [],
                        y = x && x.length;
                    for (b && (g = y), i = 0; i < g; i++) t = (e = p[a = x[i] || i]) && e.config, e !== n && (o = (0, l.getValidValue)((0, l.parseUnsafeString)((0, l.pluck)(t.origToolText, u.plottooltext, d.plottooltext), !1)), r = f[a] && f[a].positive + m * f[a].negative || 1, t._b = this._parseValues(a, t._b, r, o), s.stack100percent && (t._y = t.value + t._b))
                }, a._parseValues = function(e, t, a, i) {
                    var n, o, r = t,
                        s = this.getFromEnv("chartConfig"),
                        c = this.components.data[e].config,
                        h = (0, l.pluckNumber)(s.showpercentvalues),
                        u = (0, l.pluckNumber)(s.showpercentintooltip),
                        d = this.getState("visible"),
                        g = c.setValue,
                        p = (0, l.pluckNumber)(s.stack100percent),
                        f = this.getFromEnv("number-formatter"),
                        m = this.getFromEnv("yAxis"),
                        v = c.setDisplayValue;
                    return o = (d && g || 0) / a * 100, n = f.percentValue(o), p && (c.value = o, r = (r || 0) / a * 100), u && (c.toolTipValue = n), h && !v && (c.displayValue = n), i && (c.toolText = (0, l.parseTooltext)(c.setTooltext, [14, 24, 25, 112], {
                        percentValue: n,
                        sum: m.dataLabels(a),
                        unformattedSum: a
                    })), r
                }, a._addLegend = function() {
                    var e, t, a, i = this.getFromEnv("chart").isBar,
                        n = this.getFromEnv("chart-attrib"),
                        o = this.config,
                        r = (0, l.getFirstColor)(o.legendSymbolColor),
                        s = this.getFromEnv("legend"),
                        c = (0, l.pluckNumber)(n.use3dlighting, n.useplotgradientcolor, 1),
                        h = (0, l.getLightColor)(r, 60).replace(g, l.HASHSTRING);
                    o.includeinlegend ? (e = c ? {
                        FCcolor: {
                            color: r + "," + r + "," + (0, l.getLightColor)(r, 40) + "," + r + "," + r,
                            ratio: "0,30,30,30,10",
                            angle: i ? 0 : 270,
                            alpha: "100,100,100,100,100"
                        }
                    } : {
                        FCcolor: {
                            color: r,
                            angle: i ? 0 : 270,
                            ratio: "0",
                            alpha: "100"
                        }
                    }, a = s.getItem(this.config.legendItemId), t = {
                        type: this.getName(),
                        index: this.getJSONIndex(),
                        label: (0, l.getFirstValue)(this.config.JSONData.seriesname)
                    }, a || (this.config.legendItemId = s.createItem(this), a = s.getItem(this.config.legendItemId), this.addExtEventListener("fc-click", (function() {
                        a.itemClickFn()
                    }), a)), a.configure(t), a.setStateCosmetics("default", {
                        symbol: {
                            fill: (0, l.toRaphaelColor)(e),
                            rawFillColor: r,
                            stroke: (0, l.toRaphaelColor)(h)
                        }
                    }), this.getState("visible") ? a.removeLegendState("hidden") : a.setLegendState("hidden")) : this.config.legendItemId && s.disposeItem(this.config.legendItemId)
                }, a.legendInteractivity = function(e) {
                    var t = e.getLinkedParent().getFromEnv("chart"),
                        a = this.getState("visible"),
                        i = this.config;
                    if (t.getFromEnv("animationManager").setAnimationState("legendInteraction"), i.legendInteractivity = !0, a ? this.hide() : this.show(), l.isFirefox) {
                        var n = t.getChildContainer("plotGroup");
                        n.attrs["clip-rect"] && n.attr({
                            "clip-rect": n.attrs["clip-rect"]
                        })
                    }
                    i.drawnEvtListenerAttached || (i.drawnEvtListenerAttached = !0, this.addEventListener("drawn", (function() {
                        i.legendInteractivity = !1
                    })))
                }, a.createPinElem = function() {
                    var e, t, a, i = this,
                        n = i.getFromEnv("chart"),
                        o = arguments[1].group,
                        r = i.components.data,
                        l = i.graphics.pinElems || (i.graphics.pinElems = []),
                        s = i.getLinkedParent().getChildContainer().columnVcanvasGroup;
                    for (e = l.length - 1; e >= 0; e--) l[e].remove(), l.pop();
                    if (i.getState("visible"))
                        for (e = i.config.scrollMinVal; e < i.config.scrollMaxVal; e++)(a = r[e]) && a.graphics && (t = a.graphics.element.clone().attr({
                            transform: ["T", -(n.config._visx + C(s.transform()[0][1])), -n.config.canvasBottom]
                        }), o.appendChild(t), l.push(t))
                }, a._checkPointerOverColumn = function(e, t, a) {
                    var i, o, r, l, s, c, h, u, g, p = this.getFromEnv("chart").config,
                        f = p.plotborderthickness,
                        m = p.showplotborder,
                        v = this.components.data,
                        b = v && v.length,
                        x = 0,
                        y = 0,
                        C = p.dragTolerance || 0,
                        k = (this.getSkippingInfo && this.getSkippingInfo()).plotsPerBin;
                    for (h = g = (g = (u = (A(e / k) - 1) * k + 1) + k - 1) < b ? g : b; h >= u; h--) {
                        if (!(i = v[h])) return;
                        if (i._height < d && (x = d), i._width < d && (y = d), (i._xPos || i._yPos) && (o = i.config.setValue, m && f !== n ? c = f / 2 : f = c = 0, null !== o && (r = t - i._xPos + c, l = a - i._yPos + c + (o >= 0 ? C : 0), s = r >= -y / 2 && r <= (y || i._width) + f && l >= -x / 2 && l <= (x || i._height) + f + (o < 0 ? 2 * C : C)))) return {
                            pointIndex: h,
                            hovered: s,
                            pointObj: v[h]
                        }
                    }
                }, a._getHoveredPlot = function(e, t) {
                    var a, i, n = e,
                        o = t,
                        r = this.getFromEnv("chart").isBar,
                        l = this.getFromEnv("xAxis");
                    return r ? o += l.getTranslation() : n += l.getTranslation(), a = l.getValue(r ? o : n), (i = Math.round(a)) - a > 0 ? this._checkPointerOverColumn(i, n, o) || this._checkPointerOverColumn(i - 1, n, o) : this._checkPointerOverColumn(i + 1, n, o) || this._checkPointerOverColumn(i, n, o)
                }, a.getPlotInCategoryAt = function(e, t) {
                    void 0 === e && (e = 0), void 0 === t && (t = 0);
                    var a, i, n, o, r = this.components.data,
                        l = this.getFromEnv("xAxis"),
                        s = this.getFromEnv("yAxis"),
                        c = l.getTranslation() || 0,
                        h = s.getTranslation() || 0,
                        u = this.getState("visible"),
                        d = e + c,
                        g = t + h;
                    if ("category" === l.getName() && l.config.hasCategory) i = l;
                    else {
                        if ("category" !== s.getName() || !s.config.hasCategory) return !1;
                        i = s
                    }
                    return null != (n = i.config.isVertical) && (a = r[Math.round(i.getValue(n ? g : d))], o = this._getHoveredPlot(e, t), u && o ? o : !(!u || !a) && {
                        pointIndex: a._index,
                        hovered: !1,
                        pointObj: a
                    })
                }, a._decideTooltipType = function(e, t) {
                    var a = this.getFromEnv("chart").config.drawTrendRegion,
                        i = this.components,
                        n = this.getFromEnv("toolTipController"),
                        o = i.data[e],
                        r = o && (o.config.finalTooltext || o.config.toolText),
                        l = this.config.currentToolTip,
                        s = t.originalEvent;
                    r && !a && (l ? n.draw(s, r, l) : l = this.config.currentToolTip = n.draw(s, r))
                }, a._firePlotEvent = function(e, t, a) {
                    var i, o = this.getFromEnv("chart"),
                        r = this.components,
                        l = this.getFromEnv("toolTipController"),
                        s = r.data[t],
                        c = s.graphics && s.graphics.element,
                        h = s.graphics && s.graphics.label,
                        u = this.config.currentToolTip;
                    if (c) switch (i = s.config.setLink, e) {
                        case "fc-mouseover":
                            this._decideTooltipType(t, a),
                                function(e, t, a, i, n) {
                                    var o = t.graphics,
                                        r = o && o.element,
                                        l = e.getFromEnv("animationManager"),
                                        s = r && r.getData();
                                    !0 !== s.draged && (r && 0 !== s.showHoverEffect && (l.setAnimationState("mouseOver"), l.setAnimation({
                                        el: r,
                                        label: "rect",
                                        component: n,
                                        attr: r.getData().setRolloverAttr
                                    })), !i && r && e.plotEventHandler(r, a, "DataPlotRollOver"))
                                }(o, s, a, n, this), i && (c.css({
                                    cursor: "pointer"
                                }), h && h.css({
                                    cursor: "pointer"
                                }));
                            break;
                        case "fc-mouseout":
                            l.hide(u),
                                function(e, t, a, i, n) {
                                    var o = t.graphics,
                                        r = o && o.element,
                                        l = e.getFromEnv("animationManager"),
                                        s = r && r.getData();
                                    !0 !== s.draged && (r && 0 !== s.showHoverEffect && (l.setAnimationState("mouseOut"), l.setAnimation({
                                        el: r,
                                        label: "rect",
                                        component: n,
                                        attr: r.getData().setRolloutAttr
                                    })), !i && r && e.plotEventHandler(r, a, "DataPlotRollOut"))
                                }(o, s, a, n, this), i && (c.css({
                                    cursor: p
                                }), h && h.css({
                                    cursor: p
                                }));
                            break;
                        case "fc-click":
                            o.plotEventHandler(c, a);
                            break;
                        case "fc-mousemove":
                            this._decideTooltipType(t, a)
                    }
                }, a.createContainer = function() {
                    var e, t, a, i, n, o = this.getType(),
                        r = this.getFromEnv("chart"),
                        l = this.getLinkedParent(),
                        s = this.config.primitiveType || o;
                    !l.getChildContainer(s + "VcanvasGroup") && (s = "default"), e = l.getChildContainer(s + "VcanvasGroup"), n = l.getChildContainer(s + "ShadowVcanvasGroup"), t = l.getChildContainer("commonElemGroup") || e, i = l.getChildContainer("commonElemGroupLine"), a = l.getChildContainer("anchorGroup") || e, !this.getContainer("shadowGroup") && this.addContainer("shadowGroup", E("shadow-group", n, this)), !this.getContainer("errorShadowGroup") && this.addContainer("errorShadowGroup", E("error-shadow-group", n, this)), !this.getContainer("commonElemsGroup") && this.addContainer("commonElemsGroup", E("common-elems-group", t, this)), i ? !this.getContainer("commonElemsGroupLine") && this.addContainer("commonElemsGroupLine", E("common-elems-group", i, this)) : this.removeContainer("commonElemsGroupLine"), !this.getContainer("plotGroup") && this.addContainer("plotGroup", E("plot-group", a, this)), !this.getContainer("errorPlotGroup") && this.addContainer("errorPlotGroup", E("error-plot-group", e, this)), r.hasAnchor && this.getContainer("errorPlotGroup").insertBefore(this.getContainer("plotGroup")), !this.getContainer("labelGroup") && this.addContainer("labelGroup", E("label-group", l.getChildContainer("vcanvasLabelGroup"), this).attr("class", "fusioncharts-datalabels"))
                }, a.createCoordinates = function() {
                    var e, t, a, i, o, r, l, s, c, h, u = this.config,
                        d = this.components.data,
                        g = this.getFromEnv("chart"),
                        p = g.isBar,
                        f = this.getFromEnv("yAxis"),
                        m = this.getFromEnv("xAxis"),
                        v = f.getAxisBase(),
                        b = f.getPixel(v),
                        x = m.config.isVertical,
                        y = g.config.xDepth || 0,
                        C = g.config.yDepth || 0,
                        k = d.length,
                        S = this.components,
                        w = this.getLinkedParent(),
                        L = w.getstackConf && w.getstackConf(),
                        A = S.data,
                        N = this.getSkippingInfo && this.getSkippingInfo(),
                        T = N && N.skippingApplied,
                        E = N && N.draw || [],
                        F = E && E.length;
                    for (!p && (y = -y), p && (C = -C), T && (k = F), o = 0; o < k; o++) t = (e = A[i = E[o] || o]) && e.config, e !== n && (a = t._b, c = m.getPixel(L && L[i] && L[i].x || t._x), r = (isFinite(c) ? c : 0) + y, h = f.getPixel(t._y), l = (isFinite(h) ? h : 0) + C, s = (a ? f.getPixel(a) : b) + C, x ? (t._Px = l, t._Py = r, t._Pby = r, t._Pbx = s) : (t._Px = r, t._Py = l, t._Pby = s, t._Pbx = r), 0 === t.givenPlotShowValue ? t.showValue = 0 : 1 === t.givenPlotShowValue ? t.showValue = 1 : 1 !== t.givenPlotShowValue && u.showValues && (Math.sqrt((s - l) * (s - l)) < t.minplotheightforvalue ? t.showValue = 0 : t.showValue = 1), this.getLineShift && (t._Py += this.getLineShift("y")))
                }, a.setContainerVisibility = function(e) {
                    var t, a = this.getContainer();
                    for (t in a) a.hasOwnProperty(t) && (!1 !== this.getState("visible") || !1 !== this._conatinerHidden && this._conatinerHidden !== n || e ? (a[t].show(), this._conatinerHidden = !1) : (a[t].hide(), this._conatinerHidden = !0))
                }, a.plotAnimManager = function(e, t, a, i) {
                    var n, o, r, l, s, c, h = this.getFromEnv("chart"),
                        u = h.getFromEnv("animationManager"),
                        d = h.config.is3D,
                        g = h.config,
                        p = this.getState("visible"),
                        f = t.x,
                        m = this.getSkippingInfo && this.getSkippingInfo(),
                        v = m && m.draw || [],
                        b = this.getFromEnv("plotGroup3d");
                    c = ((r = e && e.config) && r.setValue) < 0, s = d ? (o = c ? b.negativeGroupArray : b.positiveGroupAarray)[h.isBar ? o.length - 1 - a : a] : this.getContainer("plotGroup"), l = {
                        el: (n = e.graphics.element) || (d ? "cubepath" : "rect"),
                        container: s,
                        attr: p && t,
                        doNotRemove: !0,
                        props: {
                            originalIndex: v[a] || a
                        },
                        index: a,
                        length: i,
                        component: this,
                        label: "rect"
                    }, p || (l.callback = function() {
                        this.hide()
                    }), e.graphics.element = n = u.setAnimation(l), d && (n.appendTo(s), (g.isstacked && c || !g.isstacked && h.isBar) && n.toBack()), null !== e.config.setValue ? this.getState("visible") && n.show() : (n.remove(), delete e.graphics.element), r._oldPx = r._Px, r._oldX = f, p && (e.oldPrevDataObj = e.prevDataObj)
                }, a.flushOnScroll = function(e, t) {
                    for (var a, i = this.components.data, n = e, o = t - 1; n <= o; n++)(a = i[n]) && a.graphics && (T(a.graphics, this.__removeElem), a.graphics = {})
                }, a.removingDraw = function() {
                    var t = this;
                    t.components.data.forEach((function(e) {
                        T(e.graphics, t.__removeElem), delete e.graphics
                    })), e.prototype.removingDraw.call(this)
                }, a._contextChanged = function() {
                    var e;
                    this.config.context || (this.config.context = {});
                    var t, a = this.config.context,
                        i = a.shift,
                        n = this.getFromEnv("xAxis"),
                        o = this.getFromEnv("yAxis"),
                        r = a.axisLimit,
                        l = !1,
                        s = {
                            yAxis: {
                                limit: o.getVisibleConfig()
                            },
                            xAxis: {
                                limit: n.getVisibleConfig()
                            }
                        };
                    return s.yAxis.limitPixel = {
                        min: o.getPixel(s.yAxis.limit.minValue),
                        max: o.getPixel(s.yAxis.limit.maxValue)
                    }, s.xAxis.limitPixel = {
                        min: n.getPixel(s.xAxis.limit.minValue),
                        max: n.getPixel(s.xAxis.limit.maxValue)
                    }, r !== (t = JSON.stringify(s)) && (a.axisLimit = t, l = !0), i !== this.getFromEnv("shift") && (a.shift = this.getFromEnv("shift"), l = !0), a.prevColNum !== this.getFromEnv("numOfColumns") && (a.prevColNum = this.getFromEnv("numOfColumns"), l = !0), n.getProcessLen ? e = n.getProcessLen() : n.getTicksLen && (e = n.getTicksLen()), a.prevCatlen !== e && (a.prevCatlen = e, l = !0), !!this.getFromEnv("chart").isRealTime || l
                }, a.calculateScrollRange = function() {
                    var e, t = this.config,
                        a = this.getFromEnv("xAxis"),
                        i = a.getTicksLen(),
                        n = this.getSkippingInfo && this.getSkippingInfo() || {},
                        o = n.skippingApplied,
                        r = n.draw || [],
                        l = n.labelDraw || [],
                        s = r.length;
                    e = o ? s - 1 : i, t.scrollMinVal = y(N(a.getVisibleConfig().minValue), 0) - 1, t.scrollMaxVal = x(N(a.getVisibleConfig().maxValue) + 1, e) + 1, e = o ? l.length - 1 : i, t.scrollMinValForLabel = y(N(a.getVisibleConfig().minValue), 0) - 1, t.scrollMaxValForLabel = x(N(a.getVisibleConfig().maxValue) + 1, e) + 1
                }, a.drawPlots = function() {
                    var e, t, a, i, n, o, r, l, s, c = this.getFromEnv("chart"),
                        h = this.config,
                        u = c.config.plothovereffect,
                        d = this.components.data,
                        g = this.getContainer("shadowGroup"),
                        p = h._oldStartIndex,
                        b = h._oldEndIndex,
                        x = this.getSkippingInfo && this.getSkippingInfo(),
                        y = x && x.draw;
                    for (r = h.scrollMinVal, l = h.scrollMaxVal, r > p && this.flushOnScroll(p, r > b ? b : r), l < b && this.flushOnScroll(l < p ? p : l, b), h._oldStartIndex = r, h._oldEndIndex = l, e = r, s = l - 1; e < l; e++, s--)(t = d[y[e] || e]) && (o = (i = t.config).props.element.attr, this.plotAnimManager(t, o, e, l), n = t.trackerConfig, (a = t.graphics.element) && (a.shadow(i.shadow, g).data("BBox", void 0), c.config.enablemousetracking && a.data("eventArgs", n.eventArgs).data(f, u).data(m, i.setRolloverAttr || {}).data(v, i.setRolloutAttr || {})));
                    h.appearing && (h.appearing = !1)
                }, a.setColumnPosition = function() {
                    var e, t;
                    if ((e = this.getFromEnv("plotWidth")) === n) {
                        var a, i, o = this.getFromEnv("xAxis"),
                            r = this.getFromEnv("chartConfig"),
                            s = this.getSkippingInfo().plotsPerBin,
                            c = y(r.plotSpacePercent, 0),
                            h = y((0, l.pluckNumber)(c, 20) % 100, 0),
                            u = 1 === s ? h / 200 : 0,
                            d = o.getPixel(0),
                            g = o.getPixel(s),
                            p = this.getFromEnv("chart"),
                            f = p.isBar ? p.config.maxBarHeight : p.config.maxColWidth,
                            m = C(g - d),
                            v = !0;
                        e = (a = (1 - .01 * c) * m || x(m * (1 - 2 * u), 1 * f)) / 1, g - (i = a / 2) - (d - i + a) < 4 && (v = !1), 0 === h && (v = !0), this.addToEnv("isCrisp", v)
                    }
                    this.addToEnv("columnWidth", e), t = this.getFromEnv("shift") || 0, this.addToEnv("columnXShift", t - this.getFromEnv("columnWidth") / 2)
                }, a.addDatasetSpecificEvtArgs = function(e) {
                    var t = this.config,
                        a = e,
                        i = a.config,
                        n = this.getFromEnv("chart").config,
                        o = a.trackerConfig.eventArgs;
                    Object.assign(o, {
                        color: i.originalPlotColorl,
                        gradientColor: t.plotgradientcolor,
                        alpha: i.plotFillAlpha,
                        borderColor: i.plotbordercolor || t.plotbordercolor,
                        borderAlpha: i.plotBorderAlpha,
                        borderThickness: n.plotborderthickness,
                        borderDashed: i.dashed,
                        hoverColor: i.hoverColor,
                        hoverAlpha: i.hoverAlpha,
                        borderHoverColor: i.hoverBorderColor,
                        borderHoverAlpha: i.hoverBorderAlpha
                    })
                }, a.parsePlotAttributes = function(e, t) {
                    var a, i, n, o, r, s, c, h, u, g, p, f, m, v, b, y, A, N, T, E, F, _, P, D, I = this.config,
                        M = this.config.JSONData,
                        O = this.getFromEnv("chart"),
                        R = O.getFromEnv("dataSource").chart,
                        B = O.config.isstacked,
                        V = this.config,
                        G = this.groupManager,
                        z = this.getJSONIndex(),
                        H = t,
                        W = this.getState("visible"),
                        j = O.config,
                        U = O.config.is3D,
                        q = O.isBar,
                        Y = j.xDepth || 0,
                        X = j.yDepth || 0,
                        K = this.getFromEnv("yAxis"),
                        Z = this.getFromEnv("xAxis"),
                        J = j.showtooltip,
                        $ = !1 !== this.getState("visible"),
                        Q = this.components.data,
                        ee = e.config,
                        te = K.getAxisBase(),
                        ae = K.yBasePos = K.getPixel(te),
                        ie = (0, l.pluckNumber)(V.plotborderthickness, j.plotborderthickness),
                        ne = (0, l.pluckNumber)(j.useroundedges, 0),
                        oe = V.use3dlighting,
                        re = x(I.yAxisMinPixel, I.yAxisMaxPixel),
                        le = G && G.stackConf,
                        se = this.getFromEnv("columnXShift"),
                        ce = O.config.viewPortConfig,
                        he = ce.x,
                        ue = ce.scaleX,
                        de = (0, l.pluckNumber)(j.showplotborder);
                    m = ee.setLink, b = ee.colorArr || [], Z.config.isVertical ? (h = this.getFromEnv("columnWidth"), c = se) : (r = this.getFromEnv("columnWidth"), s = se), e.graphics || (Q[H].graphics = {}), v = ee.displayValue, !$ && (ee._Py = ee._Pby), T = x(ee._Px, ee._Pbx) + (s || 0) + he * ue, E = x(ee._Py, ee._Pby) + (c || 0), le && (T -= r / 2), F = r || C(ee._Px - ee._Pbx), _ = h || C(ee._Py - ee._Pby), a = q ? ee._Px - ee._Pbx > 0 ? S : w : ee._Py - ee._Pby > 0 ? L : k, f = (0, l.getValidValue)((0, l.parseUnsafeString)((0, l.pluck)(ee.origToolText, M.plottooltext, R.plottooltext), !1)), this.fineTunePlotDimension && (T = (D = this.fineTunePlotDimension(T, E, _, F, H)).xPos, E = D.yPos, F = D.width, _ = D.height), i = T, n = E, u = F, g = _, o = Z.getPixel(1) - Z.getPixel(0) - (q ? g : u), !isFinite(g) && (g = 0), W && (o < 5 && this.getFromEnv("columnWidth") < 5 || (A = (0, l.crispBound)(T, E, u, g, ie, a, B)), A ? (i = A.x, n = A.y, ie = A["stroke-width"], u = A.width, g = A.height || 1) : (i = T, n = E), Z.config.isVertical ? i === re && (i -= ie, u += ie) : n + g === re ? g += ie : n === re && (n -= ie, g += ie), ee.setRolloutAttr && (ee.setRolloutAttr["stroke-width"] = I.showplotborder ? ie : 0)), p = ee.finalTooltext = !1 !== ee.toolText ? ee.toolText + (f ? "" : ee.toolTipValue) : "", y = ee.plotBorderDashStyle, (N = e.trackerConfig = {}).eventArgs = {
                        index: H,
                        link: m,
                        value: ee.setValue,
                        displayValue: v,
                        categoryLabel: ee.origLabel,
                        toolText: p,
                        id: "",
                        datasetIndex: z,
                        datasetName: M.seriesname,
                        visible: W
                    }, this.addDatasetSpecificEvtArgs(e), P = ae === n + 0, ee.props = {
                        element: {
                            attr: {
                                x: i || 0,
                                width: u || 0,
                                height: g || 0,
                                y: n || 0,
                                r: ne,
                                fill: (0, l.toRaphaelColor)(b[0]) || "",
                                stroke: de ? (0, l.toRaphaelColor)(b[1]) || "" : l.TRACKER_FILL,
                                "stroke-width": de ? ie : 0,
                                "stroke-dasharray": y,
                                "stroke-linejoin": "miter",
                                visibility: W,
                                cursor: m ? "pointer" : ""
                            }
                        }
                    }, U && (ee.props.element.attr.noGradient = !oe, ee.props.element.attr.xDepth = Y, ee.props.element.attr.yDepth = X), e._xPos = i + Y, e._width = u, e._yPos = n - X, e._height = g, e._index = H, e._plotBorderThickness = ie, (m || J) && (g < d && (n -= (d - g) / 2, g = d), N.attr = {
                        x: i,
                        y: n,
                        width: u,
                        height: g,
                        r: ne,
                        cursor: m ? "pointer" : "",
                        stroke: l.TRACKER_FILL,
                        "stroke-width": de ? ie : 0,
                        fill: l.TRACKER_FILL,
                        visibility: W
                    }), ee.oldValue = void 0, e._oldYBaseTouched = P
                }, a.parseLabelAttributes = function(e) {
                    var t, a, i, o, r, l, s, c, h, u, d, g, p, f = this.getFromEnv("chart"),
                        m = f.config,
                        v = f.getFromEnv("smartLabel"),
                        b = f.config.dataLabelStyle,
                        x = this.config.legendInteractivity,
                        y = this.getState("visible"),
                        C = m.rotatevalues ? 270 : 0;
                    if (u = (d = e && e.config) && d.setValue, e === n || u === n || null === u || !0 === d.labelSkip) return d && delete d.labelSkip, void((p = e && e.graphics) && p.label && p.label.hide());
                    (r = e.graphics) && (c = e._yPos, h = e._xPos, i = d.displayValue, d.showValue && null !== u ? (x && d._state || (v.setStyle(b), o = v.getOriSize(i), d._state = C ? {
                        labelWidth: o.height,
                        labelHeight: o.width
                    } : {
                        labelWidth: o.width,
                        labelHeight: o.height
                    }), s = (g = this._getValuePosition({
                        labelWidth: d._state.labelWidth,
                        labelHeight: d._state.labelHeight,
                        width: e._width,
                        height: e._height,
                        yPos: c,
                        xPos: h,
                        value: u
                    })).textX, l = g.textY, d.props || (d.props = {}), t = d.dataLabelStyle, d.props.label = {
                        attr: {
                            x: s,
                            y: l,
                            text: i,
                            "text-bound": [t.backgroundColor, t.borderColor, b.borderThickness, b.borderPadding, b.borderRadius, b.borderDash],
                            opacity: y ? 1 : 0
                        }
                    }, a = d.props.label.attr, x || (a["line-height"] = b.lineHeight, a.fill = t.color)) : r.label && (r.label.attr({
                        "text-bound": []
                    }), r.label.hide()))
                }, a.allocatePosition = function() {
                    var e, t, a, i, n, o, r, l, s = this.getFromEnv("chart"),
                        c = s.config,
                        h = this.config,
                        u = this.components.data.length,
                        d = this.getFromEnv("yAxis"),
                        g = this.components.data,
                        p = c.isstacked,
                        f = this.getSkippingInfo && this.getSkippingInfo(),
                        m = f && f.draw;
                    for (this.deleteFromEnv("columnWidth"), this.setColumnPosition(), this.calculateScrollRange(), p && this.updateYForStack(), this.createCoordinates(), i = d.getLimit(), r = d.getPixel(i.max), l = d.getPixel(i.min), n = h.scrollMinVal, o = h.scrollMaxVal, r > l ? (h.yAxisMaxPixel = r, h.yAxisMinPixel = l) : (h.yAxisMaxPixel = l, h.yAxisMinPixel = r), t = 0; t < u; t++) e = m[t] || t, s.hasScroll && (e < n || e > o) || (a = g[e]) && (this.parsePlotAttributes(a, e), this.parseLabelAttributes(a))
                }, a.draw = function() {
                    var e, t, a = this,
                        i = a.config,
                        n = a.getState("visible"),
                        o = a.getFromEnv("xAxis"),
                        r = o.getPixel(0),
                        l = o.getPixel(1),
                        s = a.getFromEnv("groupMaxWidth"),
                        c = a.getFromEnv("chart").config.xDepth || 0,
                        h = a.getFromEnv("yAxis"),
                        d = i.drawn,
                        g = h.getLimit(),
                        p = g.max,
                        f = g.min,
                        m = p > 0 && f < 0,
                        v = a._contextChanged(),
                        b = (a.getSkippingInfo && a.getSkippingInfo() || {}).skippingApplied;
                    s || (s = C(l - r), a.addToEnv("groupMaxWidth", s)), (a.getState("removed") || a.getState("dirty") || v && n) && (!d && a.createContainer(), a.setContainerVisibility(!0), b && a.hidePlots(), a.drawPlots(), a.drawCommonElements && !a.config.skipCommonElements && a.drawCommonElements(), e = i.scrollMinValForLabel, t = i.scrollMaxValForLabel, i.drawn ? a.drawLabel(e, t) : a.addJob("labelDrawID", (function() {
                        a.drawLabel(e, t)
                    }), u.priorityList.label), i.drawn = !0, a.removePlots(), i.oldGroupMaxWidth = s, i.oldDataIsPositiveNegative = m, i.oldZeroAxisPos = h.getPixel(h.getAxisBase()) + c, a.drawErrorValue && a.drawErrorValue(), i.prevVisible = n, i.catDiff = 0)
                }, a.show = function() {
                    var e = this.getLinkedParent(),
                        t = this.getFromEnv("legend");
                    t && t.getItem(this.config.legendItemId) && t.getItem(this.config.legendItemId).removeLegendState("hidden"), this.setState("visible", !0), this.config.appearing = !0, this._conatinerHidden = !1, this.setState("dirty", !0), e.childChanged(), this.config.appearing = !1, this.asyncDraw()
                }, a.hide = function() {
                    var e = this.getLinkedParent(),
                        t = this.getFromEnv("legend");
                    t && t.getItem(this.config.legendItemId) && t.getItem(this.config.legendItemId).setLegendState("hidden"), this.setState("dirty", !0), this.setState("visible", !1), e.childChanged(), this.asyncDraw()
                }, a.drawLabel = function(e, t) {
                    var a, i, o, r, s, c, h, u, d, g, p, f, m = this.getFromEnv("chart"),
                        v = this.getFromEnv("animationManager"),
                        b = m.config,
                        x = this.getFromEnv("xAxis"),
                        y = this.getFromEnv("paper"),
                        C = this.getState("visible"),
                        k = m.getFromEnv("smartLabel"),
                        S = m.config.dataLabelStyle,
                        w = this.config,
                        L = x.getTicksLen(),
                        A = this.components,
                        N = A.data,
                        T = A.pool,
                        E = b.rotatevalues ? 270 : 0,
                        F = w.labelDrawn,
                        _ = this.getSkippingInfo && this.getSkippingInfo(),
                        P = _ && _.skippingApplied,
                        D = _ && _.labelDraw || [],
                        I = D.length,
                        M = (0, l.pluckNumber)(e, 0),
                        O = (0, l.pluckNumber)(t, P ? I : L),
                        R = I === Math.abs(O - (M + 1)),
                        B = function() {
                            this.attr({
                                "text-bound": []
                            }), this.hide()
                        };
                    for ((f = this.getContainer("labelGroup")).css({
                            fontFamily: S.fontFamily,
                            fontSize: S.fontSize,
                            fontWeight: S.fontWeight,
                            fontStyle: S.fontStyle
                        }), f.show(), k.useEllipsesOnOverflow(m.config.useEllipsesWhenOverflow), k.setStyle(S), r = M; r < O; r++) h = (u = (a = N[o = P && R ? D[r] : r]) && a.config) && u.setValue, a !== n && h !== n && null !== h && !0 !== u.labelSkip ? (s = a.graphics) && (u.showValue && null !== h ? (i = u.props.label.attr, c = a._xPos, !s.label && F && m.isRealTime && ((d = (0, l.extend2)({}, i)).x = i.x - c + (a._newXPos || 0), d.transform = y.getSuggestiveRotation(E, d.x, i.y), T && T.label[0] && (s.label = T.label[0], T.label.splice(0, 1))), i.transform = y.getSuggestiveRotation(E, i.x, i.y), (g = s.label) || T && T.label[0] && (g = s.label = T.label[0], T.label.splice(0, 1)), (g = v.setAnimation({
                        el: s.label || "text",
                        attr: i,
                        component: this,
                        label: "plotLabel",
                        index: o,
                        container: f,
                        callback: !C && B
                    })) && g.show(), g && g.outlineText(w.showTextOutline, i.fill), s.label || (s.label = this.addGraphicalElement("plotLabel", g, !0))) : s.label && (s.label.attr({
                        "text-bound": []
                    }), s.label.hide())) : (u && delete u.labelSkip, (p = a && a.graphics) && p.label && p.label.hide());
                    w.labelDrawn = !0
                }, a._getValuePosition = function(e) {
                    var t, a, i, n, o, r, s, c, h, u = this.getFromEnv("chart"),
                        d = u.getChildren(),
                        g = u.config,
                        p = d.yAxis[0],
                        f = g.xDepth || 0,
                        m = g.yDepth || 0,
                        v = g.canvasTop,
                        b = g.canvasHeight + m,
                        C = e.yPos,
                        k = u.config.is3D,
                        S = u.config.isstacked,
                        w = g.valuepadding + 2,
                        L = e.height,
                        A = e.width,
                        N = g.placevaluesinside,
                        T = e.labelHeight,
                        E = p.getAxisConfig("isReverse"),
                        F = e.value;
                    return E || (c = !(F < 0)), r = h = T + w, n = L, i = C - (s = .5 * h + w), a = e.xPos + .5 * A, (o = (0, l.pluck)(c, F < 0)) ? (t = v + b - (C + L + m), i = C) : t = C - v, S ? (i = x(v + b - .5 * r, i = C + .5 * L + (m || 0)), i = y(v + .5 * r, i), a -= f) : N ? n >= r ? (i = C + (o ? L - s : s), k && (a -= f, i += m)) : t >= r ? (i = C + (o ? L + s : -s), k && o && (a -= f, i += m)) : (i = C + (o ? L - s : s), k && (a -= f, i += m)) : t >= r ? (i = C + (o ? L + s : -s), k && (o ? (a -= f, i += m) : a -= f / 2)) : (i = C + (o ? L - s : s), k && (a -= f, i += m)), {
                        textX: a,
                        textY: i
                    }
                }, a.getDataLimits = function() {
                    return {
                        max: this.config.maxValue,
                        min: this.config.minValue
                    }
                }, a.addData = function(e, t, a) {
                    var i, o = this.components,
                        r = o.data,
                        l = e.data.length;
                    for (o.addDataArr = e.data, 0 === t ? this.startPosition = !0 : t + l !== r.length && t !== n || (this.startPosition = !1), i = 0; i < l; i++) t !== n ? r.splice(t + i, 0, {
                        config: {}
                    }) : r.push({
                        config: {}
                    });
                    this._setConfigure(e, t), a && this.asyncDraw()
                }, a.removeData = function(e, t, a) {
                    var i, o, r = e,
                        l = t,
                        s = this.getFromEnv("chart"),
                        c = this.components,
                        h = c.data,
                        u = c.removeDataArr || (c.removeDataArr = []);
                    for (l === n && (l = 1), (r = r || 0) + l !== h.length && s.isRealTime ? 0 !== r && r !== n || (this.endPosition = !1) : this.endPosition = !0, c.removeDataArr = u = u.concat(h.splice(r, l)), i = (o = u.length) - 1; i >= 0; i--) u[i] || u.splice(i, 1);
                    this.removeDataLen = o, a && this.asyncDraw()
                }, a.updateData = function(e, t, a) {
                    var i = this.config,
                        n = i.maxValue,
                        o = i.prevMin,
                        r = this.getFromEnv("chart"),
                        l = this.groupManager || this,
                        s = r.getFromEnv("xAxis"),
                        c = r.getFromEnv("yAxis");
                    this._setConfigure(e, t), this.getDataLimits(), i.maxValue === n && i.minValue === o || (this.maxminFlag = !0), a && (r._setAxisLimits(), s && s[0].asyncDraw(), c && c[0].asyncDraw(), l.asyncDraw())
                }, a.removePlots = function() {
                    var e = this.components,
                        t = e && e.removeDataArr;
                    F(t, this.__removeElem)
                }, a.removeGraphicElem = function(e, t) {
                    this.__removeElem(e, t)
                }, a.getAxisValuePadding = function() {
                    return this.config.defaultPadding
                }, a.getCanvasPadding = function() {
                    var e, t, a, i, o, r, s = this.config || (this.config = {}),
                        c = this.components || {},
                        h = this.getFromEnv("chart"),
                        u = h.config.rotatevalues,
                        d = this.getFromEnv("xAxis"),
                        g = this.getFromEnv("yAxis"),
                        p = h.config.dataLabelStyle,
                        f = this.getSkippingInfo(),
                        m = f.skippingApplied,
                        v = f.draw,
                        b = c.data || [],
                        x = m ? v[0] : 0,
                        C = m ? v[v.length - 1] : b.length - 1,
                        k = s.leftMostData || b[x],
                        S = s.rightMostData || b[C],
                        w = {},
                        L = {},
                        A = 0,
                        N = 0,
                        T = 0,
                        E = d.getPixel(0),
                        F = this.getFromEnv("smartLabel"),
                        _ = {
                            paddingLeft: 0,
                            paddingRight: 0,
                            paddingTop: 0,
                            paddingBottom: 0
                        },
                        P = 0,
                        D = d.getValuePadding(),
                        I = s.topMostData,
                        M = s.bottomMostData;
                    return this.setColumnPosition(), r = {
                        xPosOffset: this.getFromEnv("columnXShift"),
                        columnWidth: this.getFromEnv("columnWidth"),
                        height: n
                    }, k && (i = (e = k.config).showValue, a = e && e.anchorProps || {}, i && (t = e.displayValue, F.useEllipsesOnOverflow(h.config.useEllipsesWhenOverflow), F.setStyle(p), L = F.getOriSize(t), P = u ? L.height : L.width), null !== e.setValue && (o = d.getPixel(D.left), (T = (A = a.enabled && (0, l.pluckNumber)(a.radius, 0) + (0, l.pluckNumber)(a.borderThickness, 0) / 2 || 0) - (o - E)) < 0 && (T = 0), (N = (P || 0) / 2 - (o - E) - (r && r.xPosOffset + r.columnWidth / 2 || 0)) < 0 && (N = 0)), _.paddingLeft = y(T, N)), T = N = 0, S && (i = (e = S.config).showValue, a = e && e.anchorProps || {}, i && !u && (t = e.displayValue, F.setStyle(p), w = F.getOriSize(t), P = u ? w.height : w.width), null !== e.setValue && (o = d.getPixel(D.right), (T = (A = a.enabled && (0, l.pluckNumber)(a.radius, 0) + (0, l.pluckNumber)(a.borderThickness, 0) / 2 || 0) - (o - E)) < 0 && (T = 0), (N = (P || 0) / 2 - (o - E) + (r && r.xPosOffset + r.columnWidth / 2 || 0)) < 0 && (N = 0)), _.paddingRight = y(T, N)), I && (i = (e = I.config).showValue, a = e && e.anchorProps || {}, null !== e.setValue && (A = (0, l.pluckNumber)(a.radius, 0) + (0, l.pluckNumber)(a.borderThickness, 0) / 2, N = Math.max(A - (g.getPixel(e.setValue.y) - g.getPixel(g.getLimit().max)), 0)), _.paddingTop = N), M && (a = (e = M.config) && e.anchorProps || {}, null !== e.setValue && (A = (0, l.pluckNumber)(a.radius, 0) + (0, l.pluckNumber)(a.borderThickness, 0) / 2, N = Math.max(A - (g.getPixel(g.getLimit().min) - g.getPixel(e.setValue.y)), 0)), _.paddingBottom = N), _
                }, a.getEventArgs = function() {
                    var e = this.config || {};
                    return {
                        datasetName: (this.config.JSONData || {}).seriesname,
                        datasetIndex: this.getJSONIndex(),
                        id: e.userID,
                        visible: !this.getState("visible")
                    }
                }, a.getData = function() {
                    return this.components.data
                }, a.setJSONIndex = function(e) {
                    this.config.index = e
                }, a.getJSONIndex = function() {
                    return this.config.index || 0
                }, a.remove = function(t) {
                    var a = this.config.legendItemId,
                        i = this.getFromEnv("chart").getChildren("legend"),
                        n = this.getFromEnv("legend");
                    i && i.length && n && a && n.disposeItem(a), e.prototype.remove.call(this, t)
                }, a.setMaxMin = function(e) {
                    var t, a, i, o = this.components,
                        r = o.data,
                        l = o.removeDataArr,
                        s = this.config,
                        c = r.length,
                        h = -Infinity,
                        u = +Infinity,
                        d = s.maxValue,
                        g = s.minValue,
                        p = l.length,
                        f = !1;
                    if (e) f = d === e.startValue || g === e.startValue || d < e.config.setValue || g > e.config.setValue;
                    else if (p)
                        for (t = 0; t < p; ++t)
                            if (d === (i = l[t] && l[t].config && l[t].config.setValue) || g === i) {
                                f = !0;
                                break
                            }
                    if (f) {
                        for (t = 0; t < c; t++) r[t] && (a = r[t].config.setValue) !== n && (h = y(h, a), u = x(u, a));
                        s.maxValue = h, s.minValue = u
                    }
                }, t
            }(s.ComponentInterface);
            _.prototype._configureDataLabelStyle = l.configureDataLabelStyle;
            var P = _;
            t["default"] = P
        },
        493: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = a(193),
                n = {
                    "initial.dataset.column": function() {
                        var e = this,
                            t = e.getFromEnv("chart"),
                            a = t.config.yDepth || 0,
                            n = "y",
                            o = "height",
                            r = "x",
                            l = "width",
                            s = e.getFromEnv("yAxis"),
                            c = e.getFromEnv("xAxis"),
                            h = function(i, c) {
                                var h, u, d, g, p = e.config,
                                    f = c && c.graphics && c.graphics.element,
                                    m = i.attr,
                                    v = s.getPixel(s.getAxisBase()) + (t.isBar ? -a : a),
                                    b = {},
                                    x = p.oldZeroAxisPos;
                                if (h = f.attr(), b[n] = u = h[n], b[o] = h[o], b[r] = h[r], b[l] = h[l], d = h[n] + h[o], v !== x && (x - v >= 0 ? (u > v && u <= x + .7 && (b[n] = v, d > x && (b[o] = d - b[n])), d > v && d <= x + .7 && (b[o] = v - (b[n] || 0 === b[n] ? b[n] : u))) : (u < v && u >= x - .7 && (b[n] = v, d > v && (b[o] = d - b[n])), d < v && d >= x - .7 && (b[o] = v - (b[n] || 0 === b[n] ? b[n] : u))), g = !0), e.config.catDiff && (b[r] = m[r], b[l] = m[l], g = !0), c._plot_1Start = b, g) return {
                                    finalAttr: b,
                                    slot: "axis"
                                }
                            };
                        return {
                            "rect.appearing": function(h) {
                                var u, d, g, p, f = s.getPixel(s.getAxisBase()) + (t.isBar ? -a : a),
                                    m = h.props && h.props.originalIndex || h.index,
                                    v = e.components.data[m],
                                    b = h.attr;
                                return c.config.isVertical && (n = "x", o = "width", r = "y", l = "height"), u = b[n], d = b[o], p = Math.sign(u + d / 2 - f), g = 1 === p ? u : u + d, v._posWRT0 = p, [{
                                    initialAttr: function() {
                                        var e = {};
                                        return e[n] = g, e.opacity = 0, e[o] = 0, e
                                    },
                                    finalAttr: {
                                        opacity: 1
                                    },
                                    startEnd: function() {
                                        var t = h.length;
                                        return i.animHelperFN.getTimeByValue(i.animHelperFN.animByWeight(h.index, t, .6), {
                                            startPx: f,
                                            endPx: 1 === p ? e.config.yAxisMaxPixel : e.config.yAxisMinPixel
                                        }, {
                                            startPx: g,
                                            endPx: 1 === p ? b[n] + b[o] : b[n]
                                        })
                                    },
                                    hookFn: function() {
                                        this.attr({
                                            opacity: 1
                                        })
                                    },
                                    effect: "linear",
                                    slot: "plot"
                                }]
                            },
                            "rect.updating": function(i) {
                                var u, d, g, p, f, m, v, b, x, y, C, k, S, w, L, A, N, T, E, F, _, P, D, I, M, O, R, B, V = [],
                                    G = e.components.data[i.props && i.props.originalIndex || i.index],
                                    z = i.attr,
                                    H = G && G.graphics && G.graphics.element,
                                    W = s.getPixel(s.getAxisBase()) + (t.isBar ? -a : a),
                                    j = 0,
                                    U = e.getFromEnv("numColDiff");
                                return c.config.isVertical && (n = "x", o = "width", r = "y", l = "height"), (B = h(i, G)) && V.push(B), S = (k = G.prevDataObj) && k._plot_1Start, E = k && k._plot_1End, w = k && k._plot_2Start, L = G.oldPrevDataObj, A = G.oldPrevDataObj && G.oldPrevDataObj._plot_1End, g = (u = (b = G._plot_1Start)[n]) + (d = b[o]), p = u + d / 2, v = (f = z[n]) + (m = z[o]) / 2, N = (g + (f + m)) / 2, F = Math.sign(p - W), _ = Math.sign(v - W), (C = {})[n] = (y = {})[n] = (u + f) / 2, C[o] = y[o] = (d + m) / 2, d ? F !== _ ? (C[o] = y[o] = 0, y[n] = L && L._oldPosWRT0 === F ? A[n] + (1 === F ? A[o] : 0) : W, C[n] = w ? w[n] + (1 === _ ? w[o] : 0) : W, T = x = !0) : k !== L && (D = (P = A || !(!E || Math.sign(E[n] + E[o] / 2 - W) !== F) && E) ? P[n] + (1 === F ? P[o] : 0) : W, 1 === F ? (C[n] = y[n] = D, C[o] = y[o] = N - y[n]) : C[o] = y[o] = D - y[n], x = !0) : k && k._oldPosWRT0 === _ || 0 === e.stackIndex ? ((O = {})[o] = 0, O[n] = S ? S[n] + (k._posWRT0 > 0 ? S[o] : 0) : W, G._posWRT0 = _, G._plot_1Start = O, C[n] = y[n] = (O[n] + f) / 2, C[o] = y[o] = m / 2) : p === W && (_ !== G._posWRT0 ? j = .5 : (x = !0, y[n] = 1 === _ ? W : W - y[o])), U < 0 ? (y[r] = z[r], y[l] = z[l], x = !0) : U > 0 ? j = .5 : b[r] === z[r] && b[l] === z[l] || (.5 === j ? ((O = {})[r] = z[r], O[l] = z[l], I = function() {
                                    T && H.attr(C), H.attr(O)
                                }) : (y[r] = z[r], y[l] = z[l], x = !0, I && (M = function() {
                                    H.attr(O)
                                }, I = void 0))), x && (V.push({
                                    finalAttr: y,
                                    startEnd: {
                                        start: 0,
                                        end: .5
                                    },
                                    hookFn: M,
                                    slot: "plot"
                                }), j = .5), !I && (I = function() {
                                    T && H.attr(C)
                                }), V.push({
                                    effect: "linear",
                                    startEnd: {
                                        start: j,
                                        end: 1
                                    },
                                    finalAttr: {
                                        x: z.x,
                                        y: z.y,
                                        width: z.width,
                                        height: z.height
                                    },
                                    callback: function() {
                                        null !== G.config.setValue && void 0 !== G.config.setValue || this.hide()
                                    },
                                    hookFn: I,
                                    slot: "plot"
                                }), delete(R = Object.assign({}, z)).x, delete R.y, delete R.width, delete R.height, V.push({
                                    finalAttr: R,
                                    effect: "linear",
                                    slot: "plot"
                                }), G._plot_1End = y, G._plot_2Start = C, G._oldPosWRT0 = G._posWRT0, G._posWRT0 = _, V
                            },
                            "rect._disappearing": function(i) {
                                var r, l, c, u, d, g = s.getPixel(s.getAxisBase()) + (t.isBar ? -a : a),
                                    p = e.components.removeDataArr,
                                    f = p && p[i.props && i.props.originalIndex || i.index] || e.components.data[i.props && i.props.originalIndex || i.index],
                                    m = f && f.graphics && f.graphics.element,
                                    v = f.oldPrevDataObj && f.oldPrevDataObj._plot_1End,
                                    b = [];
                                if (m) return (u = h(i, f)) && b.push(u), s.config.isVertical || (n = "x", o = "width"), r = (l = (d = f._plot_1Start)[n]) + d[o] / 2 > g ? v ? v[n] + v[o] : l : v ? v[n] : g, (c = {})[n] = r, c[o] = 0, c.width = f._width, c.x = f._xPos, b.push({
                                    startEnd: {
                                        start: 0,
                                        end: e.getFromEnv("numOfColumns") < 1 ? 1 : .5
                                    },
                                    finalAttr: c,
                                    slot: "plot"
                                }), f._plot_1End = i.finalAttr, b
                            },
                            "plotLabel.appearing": [{
                                initialAttr: {
                                    opacity: 0
                                },
                                slot: "final"
                            }],
                            "plotLabel._disappearing": [{
                                hookFn: function() {
                                    this.hide()
                                },
                                slot: "initial"
                            }],
                            "plotLabel.updating": [{
                                hookFn: function() {
                                    this.hide()
                                },
                                slot: "initial"
                            }, {
                                hookFn: function() {
                                    this.show()
                                },
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "final"
                            }],
                            "group.appearing": function(e) {
                                return "label-group" === e.attr.name ? [{
                                    initialAttr: {
                                        opacity: 0
                                    },
                                    finalAttr: {
                                        opacity: 1
                                    },
                                    slot: "final"
                                }] : [{
                                    initialAttr: {
                                        opacity: 1
                                    },
                                    finalAttr: {
                                        opacity: 1
                                    },
                                    slot: "final"
                                }]
                            },
                            "*": null
                        }
                    }
                };
            t["default"] = n
        },
        509: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(510)),
                r = a(193),
                l = a(201),
                s = i(a(512)),
                c = Math.abs;
            (0, l.addDep)({
                name: "lineAnimation",
                type: "animationRule",
                extension: s["default"]
            });
            var h = function(e) {
                function t() {
                    var t;
                    return (t = e.call(this) || this).updateYForStack = r.stubFN, t.config.primitiveType = "line", t
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "dataset"
                }, a.getName = function() {
                    return "line"
                }, a.createPinElem = function() {
                    var e, t, a, i = this,
                        n = i.getFromEnv("chart"),
                        o = arguments[1].group,
                        r = i.config.lineOb,
                        l = i.getGraphicalElement("pinElems") || i.addGraphicalElement("pinElems", []),
                        s = i.getFromEnv("paper"),
                        h = i.getLinkedParent().getChildContainer("lineVcanvasGroup");
                    for (t = l.length - 1; t >= 0; t--) l[t].remove(), l.pop();
                    if (i.getState("visible"))
                        for (a in r) e = r[a].el, l.push(s.path(o).attr({
                            path: e.attrs.path,
                            transform: ["T", -(n.config._visx + c(h.transform()[0][1])), -n.config.canvasBottom]
                        }).attr(i.config.pin))
                }, a._addLegend = function() {
                    var e, t, a, i = this.getFromEnv("chart"),
                        n = this.config,
                        o = i.getChildren("legend")[0],
                        l = (0, r.pluckNumber)(n.drawanchors, 1);
                    n.includeinlegend ? (a = {
                        enabled: n.includeinlegend,
                        type: this.getName(),
                        drawLine: (0, r.pluck)(n.drawLine, !0),
                        index: this.getJSONIndex(),
                        anchorSide: l ? n.anchorsides : 0,
                        label: (0, r.getFirstValue)(this.config.JSONData.seriesname)
                    }, (e = o.getItem(this.config.legendItemId)) || (this.config.legendItemId = o.createItem(this), e = o.getItem(this.config.legendItemId), this.addExtEventListener("fc-click", (function() {
                        e.itemClickFn()
                    }), e)), t = {
                        symbol: {
                            fill: (0, r.toRaphaelColor)({
                                color: n.anchorbgcolor,
                                alpha: n.anchorbgalpha
                            }),
                            rawFillColor: n.anchorbgcolor,
                            rawStrokeColor: n.anchorbordercolor,
                            stroke: (0, r.toRaphaelColor)({
                                color: n.anchorbordercolor,
                                alpha: "100"
                            }),
                            "stroke-width": n.anchorborderthickness,
                            lineWidth: n.linethickness
                        }
                    }, e.setStateCosmetics("default", t), this.getState("visible") ? e.removeLegendState("hidden") : e.setLegendState("hidden"), e.configure(a)) : this.config.legendItemId && o.disposeItem(this.config.legendItemId)
                }, a._getDataLimits = function() {
                    var e = this.config,
                        t = this.getFromEnv("chart").config,
                        a = e.maxValue,
                        i = e.minValue,
                        n = -Infinity,
                        o = +Infinity,
                        r = t.transposeAxis;
                    return !1 === this.getState("visible") && r && (a = n, i = o), {
                        max: a,
                        min: i
                    }
                }, a._drawCommonElementsHelper = function(e) {
                    var t, a, i, n = this,
                        o = r.BLANKSTRING,
                        l = {},
                        s = n.getFromEnv("animationManager"),
                        c = n.config,
                        h = c.shadow,
                        u = c.linethickness,
                        d = n.getContainer("commonElemsGroup"),
                        g = function() {
                            !1 === n.getState("visible") && this.hide()
                        };
                    for (o in e) {
                        for (t = ["M0,0"], a = 0, i = (l = e[o]).path && l.path.length; a < i; ++a) t = t.concat(l.path[a].getPathArr());
                        n.config.drawLine ? (l.el = s.setAnimation({
                            el: l.el || "path",
                            container: d,
                            component: n,
                            attr: !1 !== n.getState("visible") && Object.assign({
                                path: t
                            }, l.attr),
                            label: "line",
                            callback: g
                        }), n.getState("visible") && l.el && l.el.show()) : l.el && (l.el = s.setAnimation({
                            el: l.el,
                            component: n,
                            doNotRemove: !0,
                            callback: function() {
                                this.hide()
                            }
                        })), !l.used && delete e[o], l.el && (u ? l.el.shadow(h, d) : l.el.shadow({
                            opacity: 0
                        }, d), l.el.toFront()), l.old = !0, l.used = !1, l.prevPath = l.path, l.attrs = void 0, l.path = void 0
                    }
                }, a.getLineShift = function(e) {
                    var t = this.getFromEnv("chart"),
                        a = t.config.is3D,
                        i = t.config.use3dlineshift;
                    return "y" === e ? a ? i ? 0 : -10 : 0 : a ? 10 : 0
                }, a.drawCommonElements = function() {
                    var e, t, a, i, n, o, l, s, c, h, u = this.components.data,
                        d = this.config,
                        g = this.getFromEnv("xAxis"),
                        p = this.getFromEnv("yAxis"),
                        f = d.lineDashStyle,
                        m = d.linethickness,
                        v = {
                            color: d.linecolor,
                            alpha: d.alpha
                        },
                        b = [(0, r.toRaphaelColor)(v), f].join(":"),
                        x = b,
                        y = {
                            x: g.getLimit(),
                            y: p.getLimit()
                        },
                        C = u.length,
                        k = this.config.lineOb || {},
                        S = 0,
                        w = !1,
                        L = this.getSkippingInfo && this.getSkippingInfo(),
                        A = L && L.draw || [],
                        N = A.length,
                        T = L && L.skippingApplied,
                        E = function(e, t, a) {
                            var i = k[e];
                            i || (i = k[e] = {}), e !== x && (i.hasDifferentColor = !0), i.used = !0, i.pathWithNull = a, i.path = i.path || [], i.stroke = e.split(":")[0], i.dashStyle = e.split(":")[1], i.path.push(t), i.dashStyle = i.dashStyle && i.dashStyle.split(","), i.attr = {
                                "stroke-dasharray": i.dashStyle,
                                "stroke-width": m,
                                stroke: i.stroke,
                                "stroke-linecap": "round",
                                "stroke-linejoin": m > 2 ? "round" : "miter"
                            }
                        },
                        F = [];
                    for (y.x.minPixel = g.getPixel(y.x.min), y.x.maxPixel = g.getPixel(y.x.max), y.y.minPixel = p.getPixel(y.y.min), y.y.maxPixel = p.getPixel(y.y.max), y.y.base = p.getPixel(0), y.x.base = g.getPixel(0), T && (C = N), i = 0; i < C; ++i)(n = u[a = A[i] || i]) && ((l = n.config || {})._Pbx = void 0, l._Pby = void 0, F[a] = {
                        config: {
                            _Px: l._Px,
                            _Py: l._Py,
                            setValue: l.setValue
                        }
                    }, t = {
                        color: l.setColor,
                        alpha: l.setAlpha
                    }, e = l.dashStyle, b !== (o = [(0, r.toRaphaelColor)({
                        color: (0, r.pluck)(t.color, v.color),
                        alpha: (0, r.pluck)(t.alpha, v.alpha)
                    }), e || f].join(":")) && null !== n._yVal && (w = !0, s = a, c = this.getLinePath(u, {
                        begin: S,
                        end: s + 1
                    }), h = this.getLinePath(u, {
                        begin: S,
                        end: s + 1
                    }, void 0), l.connStartIndex = S, l.connEndIndex = s, E(b, c, h.getPathArr()), b = o, S = a, s = null), null !== n._yVal && (b = o));
                    o || (o = r.BLANKSTRING), d.pathStartIndex = S, d.pathEndIndex = s, E(o, c = this.getLinePath(u, {
                        begin: w ? S : d.scrollMinVal,
                        end: w ? s : d.scrollMaxVal
                    }), (h = this.getLinePath(u, {
                        begin: S,
                        end: s
                    }, void 0)).getPathArr()), this._drawCommonElementsHelper(k), this.config.lineOb = k, d.prevLim = y, d.prevDataStore = F
                }, a.show = function() {
                    e.prototype.show.call(this), this.fireEvent("datasetVisibilityChanged", {
                        dataset: this,
                        state: "show"
                    })
                }, a.hide = function() {
                    e.prototype.hide.call(this), this.fireEvent("datasetVisibilityChanged", {
                        dataset: this,
                        state: "hide"
                    })
                }, t
            }(o["default"]);
            t["default"] = h
        },
        510: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n, o = i(a(210)),
                r = i(a(207)),
                l = i(a(492)),
                s = a(193),
                c = a(205),
                h = a(201),
                u = i(a(511)),
                d = !s.hasSVG,
                g = "DataPlotRollOver",
                p = "DataPlotRollOut",
                f = "L",
                m = "Z",
                v = s.hasTouch ? s.TOUCH_THRESHOLD_PIXELS : s.CLICK_THRESHOLD_PIXELS,
                b = s.preDefStr.DEFAULT,
                x = s.preDefStr.setRolloverAttrStr,
                y = s.preDefStr.setRolloutAttrStr,
                C = function(e) {
                    void 0 === e && (e = "full");
                    var t = this.pathMap,
                        a = this.path2Map,
                        i = [],
                        n = [],
                        o = !0;
                    switch (e) {
                        case "detailed":
                            for (var r in t)
                                if (t.hasOwnProperty(r) && (i.push(t[r]), a[r].length)) {
                                    var l = t[r],
                                        s = Object.assign([], a[r]);
                                    if (s[s.length - 1] === m && s.pop(), s.length) {
                                        var c = Object.assign([], l[l.length - 1]),
                                            h = Object.assign([], l[0]);
                                        c[0] = "M", h[0] = f, s.unshift(c), s.push(h)
                                    }
                                    n.push(s)
                                }
                            return (i = i.flat()).length ? {
                                top: i,
                                bottom: n.flat()
                            } : {
                                top: ["M0,0"],
                                bottom: ["M0,0"]
                            };
                        case "top":
                            o = !1;
                        default:
                            for (var u in t) t.hasOwnProperty(u) && (i.push(t[u]), o && i.push(a[u]));
                            return (i = i.flat()).length ? i : ["M0,0"]
                    }
                },
                k = function(e) {
                    return e !== n && null !== e && "" !== e
                },
                S = Math,
                w = S.min,
                L = S.max,
                A = S.ceil,
                N = function(e, t) {
                    var a, i, n, o, r, l, c, h, u, g, p, f, m, v, b, C, k = e.getFromEnv("chart").config,
                        S = t.config,
                        A = t.graphics,
                        N = A.image || A.element,
                        T = S.eventArgs,
                        E = N._.RefImg,
                        F = t._xPos,
                        _ = t._yPos,
                        P = S.anchorProps,
                        D = e.getContainer("shadowGroup"),
                        I = S.hoverEffects,
                        M = S.setLink,
                        O = P.imageScale,
                        R = P.imageAlpha,
                        B = I.imageHoverAlpha,
                        V = I.imageHoverScale,
                        G = E.height * O * .01,
                        z = E.width * O * .01,
                        H = E.width * V * .01,
                        W = E.height * V * .01;
                    v = P.isAnchorRadius, P.markerRadius = i = P.radius = v ? P.radius : w(z, G) / 2, d ? (f = {
                        x: F - E.width * O * .005,
                        y: _ - E.height * O * .005,
                        width: z,
                        height: G
                    }, p = {
                        x: F - E.width * V * .005,
                        y: _ - E.height * V * .005,
                        width: H,
                        height: E.height * V * .01,
                        alpha: B
                    }, S.isAnchorsDrawn = !0, k.dragTolerance = k.dragTolerance < G ? G + .5 : k.dragTolerance, N.data("alwaysInvisible", !O).data("setRolloverProperties", I).data("hoverEnabled", I).data(x, p).data(y, f).data("imgRef", E).data("anchorRadius", O).data("anchorHoverRadius", V), N.attr(f), f.alpha = R) : (a = P.symbol[1], b = I.isAnchorHoverRadius, n = P.shadow, h = P.imagePadding, I.radius = b ? I.anchorRadius : i + 1, r = I.radius - h - .5 * I.anchorBorderThickness, c = i - h - .5 * P.borderThickness, p = f = {}, k.dragTolerance = k.dragTolerance < i ? i + .5 : k.dragTolerance, C = {
                        fill: (0, s.toRaphaelColor)({
                            color: P.bgColor,
                            alpha: P.bgAlpha
                        }),
                        "stroke-width": P.borderThickness,
                        stroke: (0, s.toRaphaelColor)({
                            color: P.borderColor,
                            alpha: P.borderAlpha
                        })
                    }, f = (0, s.extend2)({
                        path: (0, s.polyPathToPath)([a || 2, F, _, i, P.startAngle, void 0])
                    }, C), I && (p = {
                        path: (0, s.polyPathToPath)([I.anchorSides || 2, F, _, I.radius, I.startAngle, I.dip]),
                        fill: (0, s.toRaphaelColor)({
                            color: I.anchorColor,
                            alpha: I.anchorBgAlpha
                        }),
                        "stroke-width": I.anchorBorderThickness,
                        stroke: (0, s.toRaphaelColor)({
                            color: I.anchorBorderColor,
                            alpha: I.anchorBorderAlpha
                        })
                    }, B > (g = L(I.anchorAlpha, I.anchorBorderAlpha)) && (B = g)), P.bgAlpha && P.borderAlpha && R > (u = L(P.bgAlpha, P.borderAlpha)) && (R = u), (m = A.element).attr(Object.assign(C, {
                        path: f.path
                    })), m.attr({
                        cursor: M ? "pointer" : ""
                    }).data("alwaysInvisible", !i).data("setRolloverProperties", I).data("hoverEnabled", I.enabled).data(x, p).data(y, f).data("anchorRadius", i).data("anchorHoverRadius", I && I.radius).data("eventArgs", T).shadow(n, D), l = (0, s.polyPathToPath)([a || 2, F, _, c > 0 ? c : 0, P.startAngle, void 0]), o = (0, s.polyPathToPath)([a || 2, F, _, r > 0 ? r : 0, I.startAngle, I.dip]), P.imgRefWidth = E.width, P.imgRefHeight = E.height, P.imgRefScale = O, P.rolloutClipRadius = c, f = {
                        x: F - E.width * O * .005,
                        y: _ - E.height * O * .005,
                        width: z,
                        height: G,
                        "clip-path": l
                    }, p = {
                        x: F - E.width * V * .005,
                        y: _ - E.height * V * .005,
                        width: H,
                        height: W,
                        alpha: B,
                        "clip-path": o
                    }, N.attr({
                        x: f.x,
                        y: f.y,
                        width: f.width,
                        height: f.height,
                        "clip-path": f["clip-path"]
                    }).data("alwaysInvisible", !O).data("setRolloverProperties", I).data(x, p).data(y, f).data("anchorRadius", O).data("imgRef", E).data("anchorHoverRadius", V), S.isAnchorsDrawn = !0, i = L(i, I && I.anchorRadius || 0, 2)), t._xPos = F, t._yPos = _, e.parseLabelAttributes(t, t._index)
                };
            (0, h.addDep)({
                name: "areaAnimation",
                type: "animationRule",
                extension: u["default"]
            });
            var T = function(e) {
                function t() {
                    var t;
                    t = e.call(this) || this;
                    var a = (0, o["default"])(t);
                    return a.__removeElem = function(e, t) {
                        a._setRemoveAnim(e, "element" === t || "image" === t ? "anchor" : "label")
                    }, a.config.primitiveType = "area", t
                }(0, r["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "dataset"
                }, a.getName = function() {
                    return "area"
                }, a.__setDefaultConfig = function() {
                    e.prototype.__setDefaultConfig.call(this);
                    var t = this.config;
                    t.valueposition = n, t.plotborderdashlen = n, t.plotborderdashgap = n, t.plotborderdashstyle = n, t.plotborderthickness = n, t.linethickness = n, t.linedashlen = n, t.linedashgap = n, t.dashed = n, t.linedashstyle = n, t.linecolor = n, t.linealpha = n, t.anchorbgcolor = n, t.anchorbordercolor = n, t.anchorradius = n, t.anchoralpha = n, t.anchorimageurl = n, t.anchorsides = n, t.anchorbgalpha = n, t.anchorborderthickness = n, t.anchorshadow = n, t.anchorstartangle = n, t.anchorimagealpha = n, t.anchorimagescale = n, t.anchorimagepadding = n, t.alpha = n, t.parentyaxis = n, t.inheritplotbordercolor = n
                }, a._getHoveredPlot = function(e, t) {
                    var a, i, n, o, r, l, s = e,
                        c = this.getFromEnv("xAxis"),
                        h = this.components.data,
                        u = h.length,
                        d = this.config,
                        g = this.getFromEnv("chartConfig").viewPortConfig.step || 1,
                        p = d && d.radius || 0,
                        f = (this.getSkippingInfo && this.getSkippingInfo()).plotsPerBin;
                    for (s += c.getTranslation(), i = Math.floor(Math.max(c.getValue(s - p), 0)), n = Math.ceil(Math.min(c.getValue(s + p), u - 1)), r + f - 1, f > 1 && (i = r = (A(i / f) - 1) * f + 1, n = A(n / f) * f), l = n; l >= i && (!(a = h[l]) || l % g || !(o = this.isWithinShape(a, l, s, t))); l--);
                    return o
                }, a.getClip = function(e) {
                    var t = this.getFromEnv("xAxis"),
                        a = this.getFromEnv("yAxis"),
                        i = a.getLimit(),
                        n = t.getLimit(),
                        o = t.getPixel(n.min),
                        r = a.getPixel(i.min),
                        l = a.getPixel(i.max),
                        s = Math.abs(t.getPixel(n.max) - o),
                        c = r - l,
                        h = [];
                    return h.push(o), h.push(c < 0 ? r : l), "init" === e ? h.push(0) : "canvas" === e && h.push(s), h.push(Math.abs(c)), h
                }, a.isWithinShape = function(e, t, a, i, n) {
                    var o, r, l, c, h, u, d, g, p, f, m, b, x, y, C = n;
                    if (e && ((C = e.config.setValue) || 0 === C)) return o = e.config.anchorProps, r = e.config, c = o && o.borderThickness, this, h = this.getFromEnv("chart").config.viewPortConfig, u = this.components.data, d = (0, s.pluckNumber)(r.dragTolerance, 0), y = h ? h.x * h.scaleX : 0, g = e._xPos - y, null !== (p = e._yPos) ? (x = e.config.hoverEffects, (l = Math.max(o && o.radius, x && x.anchorRadius || 0, v) + c / 2) || (l = 3), f = a - g, m = i - p, ((b = Math.sqrt(Math.pow(f, 2) + Math.pow(m, 2))) <= l || b <= d) && {
                        pointIndex: t,
                        hovered: !0,
                        pointObj: u[t]
                    }) : void 0
                }, a._parseShadowOptions = function() {
                    var e = this.getFromEnv("chart"),
                        t = this.config,
                        a = e.getFromEnv("dataSource").chart,
                        i = this.getFromEnv("color-manager"),
                        n = (0, s.pluckNumber)(e.defaultPlotShadow, i.getColor("showShadow"));
                    return {
                        opacity: (0, s.pluckNumber)(a.showshadow, n) ? t.alpha / 100 : 0
                    }
                }, a._firePlotEvent = function(e, t, a) {
                    var i, o, r, l = this.getFromEnv("chart"),
                        s = this.components,
                        c = this.getFromEnv("toolTipController"),
                        h = s.data[t] || {},
                        u = this.getGraphicalElement("sharedAnchor"),
                        d = h.graphics && h.graphics.element || (h.config && h.config.setValue) !== n && u,
                        g = this.config.currentToolTip,
                        p = l.getFromEnv("paper").canvas.style;
                    if (d) switch (r = (i = h.config).setLink, o = i.eventArgs, e) {
                        case "fc-mouseover":
                            this._decideTooltipType(t, a), this._rolloverResponseSetter(l, h, a), r && (p.cursor = "pointer");
                            break;
                        case "fc-mouseout":
                            c.hide(g), this._rolloutResponseSetter(l, h, a), p.cursor = b;
                            break;
                        case "fc-click":
                            l.plotEventHandler(d, a, "dataplotclick", o);
                            break;
                        case "fc-mousemove":
                            this._decideTooltipType(t, a)
                    }
                }, a._rolloverResponseSetter = function(e, t, a, i) {
                    var n = t.graphics,
                        o = n && (n.element || this.getAnchor(t)),
                        r = o && o.data("draged"),
                        l = o && o.data("hoverEnabled");
                    !0 !== r && (this._hoverFunc(t, g, l, e.getFromEnv("dataSource").chart), !i && o && e.plotEventHandler(o, a, g))
                }, a._rolloutResponseSetter = function(e, t, a, i) {
                    var n = t.graphics,
                        o = n && (n.element || this.getAnchor(t)),
                        r = o && o.data("draged"),
                        l = o && o.data("hoverEnabled"),
                        s = this.type,
                        c = t.config,
                        h = c.anchorProps,
                        u = h.radius && h.anchorAlpha;
                    !0 !== r && (this._hoverFunc(t, p, l, e.getFromEnv("dataSource").chart), !i && o && e.plotEventHandler(o, a, p)), c.isAnchorsDrawn && !u && "area" === s && o && o.hide()
                }, a.getAnchor = function(e) {
                    void 0 === e && (e = {});
                    var t, a, i, n, o, r, l, s, c, h = this.getFromEnv("animationManager"),
                        u = this.getGraphicalElement("sharedAnchor"),
                        d = e.config;
                    return u ? (t = d.anchorProps, a = d.eventArgs, (r = (o = d.hoverEffects).enabled) && (i = o.attrs && o.attrs.setRolloutAttr, n = o.attrs && o.attrs.setRolloverAttr), l = t.radius, s = t.shadow, c = this.getFromEnv("chartConfig").prevAnchorHovered, o.anchorAnimation = 0, e._index !== c && (u.shadow(s, this.getContainer("shadowGroup")).data("anchorRadius", l).data("anchorHoverRadius", o.anchorRadius).data("hoverEnabled", r).data("eventArgs", a), r && u.data(x, n).data(y, i)), this.getFromEnv("chartConfig").prevAnchorHovered = e._index, u) : (u = h.setAnimation({
                        el: "path",
                        container: this.getContainer("plotGroup"),
                        label: "anchor",
                        doNotRemove: !0,
                        component: this
                    }), this.addGraphicalElement("sharedAnchor", u), u)
                }, a.configureAttributes = function(e) {
                    if (!e) return !1;
                    this.trimData(e);
                    var t = this.getFromEnv("chart");
                    this.config.JSONData = e, this.parseAttributes(), this._setConfigure(), this._realTimeConfigure && this._realTimeConfigure(), !1 !== t.config.hasLegend && t.config.showLegend && this._addLegend(), this.setState("dirty", !0)
                }, a.parseAttributes = function() {
                    var e, t, a = this.getFromEnv("chart"),
                        i = a.config,
                        o = this.config,
                        r = this.getName(),
                        l = this.config.JSONData,
                        c = a.getFromEnv("chart-attrib"),
                        h = a.config.singleseries,
                        u = this.getFromEnv("color-manager"),
                        d = Math.floor(this.getJSONIndex()),
                        g = (0, s.pluckNumber)(l.showplotborder, c.showplotborder || 1),
                        p = (0, s.getFirstColor)(!h || (0, s.getValidValue)(c.palettecolors) ? u.getPlotColor(d) : u.getColor("plotFillColor").split(/\s*\,\s*/)[0]),
                        f = i.isdual,
                        m = i.haslineset;
                    o.showTextOutline = (0, s.pluckNumber)(c.textoutline, 0), o.maxValue = -Infinity, o.minValue = Infinity, (0, s.parseConfiguration)(l, o, a.config, {
                        data: !0
                    }), o.inheritplotbordercolor = (0, s.pluckNumber)(l.inheritplotbordercolor, c.inheritplotbordercolor, 0), o.showValues = (0, s.pluckNumber)(l.showvalues, c.showvalues, "radar" === r ? 0 : 1), o.anchorimageurl = (0, s.pluck)(l.anchorimageurl, c.anchorimageurl, n), o.plotColor = p, o.parentYAxis = f ? m ? 1 : "s" === (0, s.pluck)(l.parentyaxis && l.parentyaxis.toLowerCase(), "p") ? 1 : 0 : 0, o.valueposition = o.valueposition.toLowerCase(), o.plotfillcolor = (0, s.pluck)(l.color, c.plotfillcolor, p), o.seriesname = (0, s.parseUnsafeString)(l.seriesname), e = i.useplotgradientcolor, o.plotgradientcolor = 0 !== e ? (0, s.getDefinedColor)(c.plotgradientcolor, u.getColor("plotGradientColor")) : "", o.plotfillalpha = (0, s.pluck)(l.alpha, i.plotfillalpha), o.fillColor = {
                        color: o.plotfillcolor + (o.plotgradientcolor ? "," + o.plotgradientcolor : ""),
                        alpha: o.plotfillalpha,
                        angle: o.plotfillangle
                    }, o.plotborderalpha = g ? (0, s.pluck)(l.plotborderalpha, c.plotborderalpha, l.alpha, o.inheritplotbordercolor ? "100" : c.plotfillalpha, "95") : 0, o.plotbordercolor = (0, s.pluck)(l.plotbordercolor, c.plotbordercolor, c.areabordercolor, o.inheritplotbordercolor ? o.fillColor.color : h ? (0, s.getValidValue)(c.palettecolors) ? u.getPlotColor(0) : u.getColor("plotBorderColor").split(/\s*\,\s*/)[0] : "666666"), o.plotborderColorObject = {
                        color: o.plotbordercolor,
                        alpha: o.plotborderalpha,
                        angle: o.plotfillangle
                    }, o.drawLine = (0, s.pluckNumber)(l.drawline, c.drawlines, 1), o.plotborderdashstyle = o.dashed ? (0, s.getDashStyle)(o.plotborderdashlen, o.plotborderdashgap) : "none", o.linecolor = (0, s.pluck)(l.color, c.linecolor, o.plotColor), o.legendSymbolColor = "line" === this.type ? o.linecolor : o.plotfillcolor, o.includeinlegend = (0, s.pluckNumber)(l.includeinlegend, o.seriesname ? 1 : 0), t = (0, s.getDashStyle)(o.linedashlen, o.linedashgap), o.lineDashStyle = o.dashed ? t : "none", o.defaultPadding = {
                        left: 0,
                        right: 0
                    }, o.shadow = this._parseShadowOptions(), o.drawanchors = (0, s.pluckNumber)(l.drawanchors, l.showanchors, c.showanchors, c.drawanchors), o.anchorbgcolor = (0, s.getFirstColor)((0, s.pluck)(l.anchorbgcolor, i.anchorbgcolor, u.getColor("anchorBgColor"))), o.anchorbordercolor = (0, s.getFirstColor)((0, s.pluck)(l.anchorbordercolor, i.anchorbordercolor, o.linecolor, o.plotColor)), this.setState("visible", 1 === (0, s.pluckNumber)(l.visible, !Number(l.initiallyhidden), 1) && o.drawLine)
                }, a._setConfigure = function(e, t) {
                    var a, i, o, r, l, h, u, d, g, p = this.getFromEnv("chart"),
                        f = this.config,
                        m = p.config,
                        b = this.config.JSONData || [],
                        x = this.getFromEnv("xAxis"),
                        y = p.isRealTime,
                        C = m.realTimeConfig && m.realTimeConfig.numDisplaySets,
                        k = this.getFromEnv("dataSource").categories && this.getFromEnv("dataSource").categories[0] && this.getFromEnv("dataSource").categories[0].category,
                        S = f.initCatLen = y ? k && Array.isArray(k) && k.filter((function(e) {
                            return !e.vline
                        })).length || 0 : x.getTicksLen(),
                        w = e || b.data,
                        L = e && e.data.length,
                        A = m.isDrag,
                        N = this.getSkippingInfo && this.getSkippingInfo(),
                        T = N && N.draw || [],
                        E = T.length,
                        F = N && N.skippingApplied;
                    for (g = L === n && S > C ? S - C : 0, o = y ? (0, s.pluckNumber)(L, S) : Math.min(S, w && w.length), f.imageCount = 0, (r = this.components.data) || (r = this.components.data = []), f.maxRadius = -Infinity, m.dragTolerance = m.dragTolerance || -Infinity, F && (o = E), h = g; h < o; h++) l = T[h] || h, e ? (a = e && e.data[l] || {}, i = t !== n ? r[d = t + l] : r[d = r.length - o + l], u = d) : (a = w && w[l] || {}, i = r[l -= g], u = l), i || (i = r[u] = {}), i.config || (i.config = {}), i.graphics || (i.graphics = {}), this._plotConfigure(u, a, L), d && d++;
                    F && this.addJob("configureRestID", this._configureRestData.bind(this), c.priorityList.postRender), m.dragTolerance = A ? (m.dragTolerance > 5 ? m.dragTolerance : 5.5) + v : 0, this.ErrorValueConfigure && this.ErrorValueConfigure()
                }, a._configureRestData = function() {
                    var e, t, a, i, n, o, r = this.getFromEnv("chart"),
                        l = this.config,
                        s = r.config,
                        c = this.config.JSONData.data || [],
                        h = (this.getSkippingInfo && this.getSkippingInfo()).drawOnlyMap,
                        u = this.getFromEnv("xAxis").getTicksLen();
                    for (l.imageCount = 0, (a = this.components.data) || (a = this.components.data = []), l.maxRadius = -Infinity, s.dragTolerance = s.dragTolerance || -Infinity, l.maxValue = -Infinity, l.minValue = Infinity, i = 0; i < u; i++) h[i] || (t = a[i], e = c && c[i] || {}, n = i, t || (t = a[i] = {}), t.config || (a[i].config = {}), t.graphics || (t.graphics = {}), this._plotConfigure(n, e), o && o++)
                }, a._plotConfigure = function(e, t, a) {
                    var i, o, r, l, c, h, u, d, g, p, f = this.getFromEnv("chart"),
                        m = this.config,
                        b = f.config,
                        x = this.config.JSONData,
                        y = f.getFromEnv("dataSource").chart,
                        C = this.components.data[e],
                        k = this.getFromEnv("xAxis"),
                        S = this.getFromEnv("yAxis"),
                        A = b.isDrag,
                        N = C && C.config,
                        T = (0, s.parseUnsafeString)(b.yaxisname),
                        E = (0, s.parseUnsafeString)(b.xaxisname),
                        F = b.tooltipsepchar,
                        _ = m.dashed,
                        P = b.realTimeConfig && b.realTimeConfig.numDisplaySets,
                        D = P - m.initCatLen,
                        I = P && D >= 0 ? D : 0;
                    g = k.getLabel(a ? e - a : I + e), N.label = (0, s.getValidValue)((0, s.parseUnsafeString)(g.tooltext || g.label)), t.tooltext !== n && (t.tooltext = (0, s.parseTooltext)(t.tooltext, [3], {
                        label: g.label
                    }, t, y, x)), N.dataLabelStyle = this._configureDataLabelStyle(t), N.setValue = r = S.getCleanValue(t.value, m.stack100percent), N.setLink = (0, s.pluck)(t.link), N.anchorProps = this._parseAnchorProperties(e), m.maxRadius = L(N.anchorProps.radius + N.anchorProps.borderThickness / 2, m.maxRadius), p = N.anchorProps.radius + N.anchorProps.borderThickness / 2, N.dragTolerance = A ? (p < 6 ? 5.5 : p + .5) + v : 0, N.label = (0, s.getValidValue)((0, s.parseUnsafeString)(g.tooltext || g.label)), N.showValue = (0, s.pluckNumber)(t.showvalue, m.showValues), N.givenPlotShowValue = (0, s.pluckNumber)(t.showvalue), N.dashed = (0, s.pluckNumber)(t.dashed, _), N.dashStyle = N.dashed ? (0, s.getDashStyle)(m.linedashlen, m.linedashgap) : "none", N.color = (0, s.pluck)(t.color, m.linecolor), N.setColor = t.color, N.setAlpha = t.alpha, N.setDashed = t.dashed, N.alpha = (0, s.pluck)(t.alpha, t.linealpha, m.alpha, m.linealpha), N.origLabel = (0, s.getValidValue)((0, s.parseUnsafeString)(g.label)), null !== r && (m.maxValue = L(m.maxValue, r), m.minValue = w(m.minValue, r)), N.setTooltext = (0, s.parseUnsafeString)(t.toolText, !1), N.toolTipValue = o = S.dataLabels(r), N.setDisplayValue = l = (0, s.parseUnsafeString)(t.displayvalue), N.displayValue = (0, s.pluck)(l, o), N.formatedVal = u = N.toolTipValue, N.setTooltext = (0, s.getValidValue)((0, s.parseUnsafeString)((0, s.pluck)(t.tooltext, x.plottooltext, y.plottooltext), !1)), N.valuePosition = (0, s.pluck)(t.valueposition, m.valueposition), N.valuePosition && (N.valuePosition = N.valuePosition.toLowerCase()), b.showtooltip ? null === u ? i = !1 : N.setTooltext !== n ? (c = [1, 2, 3, 4, 5, 6, 7], h = {
                        yaxisName: T,
                        xaxisName: E,
                        formattedValue: u,
                        label: N.label
                    }, i = (0, s.parseTooltext)(N.setTooltext, c, h, t, y, x)) : (b.seriesnameintooltip && (d = (0, s.getFirstValue)(x && x.seriesname)), i = d ? d + F : "", i += N.label ? N.label + F : "", i += N.setTooltext ? "" : N.toolTipValue) : i = !1, N.toolText = i, N.setTooltext = i, N.setLevelTooltext = N.setTooltext, N._x = t.index === n ? e : t.index, N._y = r, N.finalTooltext = N.setTooltext = i, N.hoverEffects = this._parseHoverEffectOptions(C, t), N.anchorProps.isAnchorHoverRadius = N.hoverEffects.anchorRadius, b.dragTolerance = L(b.dragTolerance, m.maxRadius, N.hoverEffects.anchorRadius)
                }, a.drawCommonElements = function() {
                    var e, t, a, i, o, r, l, c, h, u, d, g, p, f = this,
                        m = f.components.data,
                        v = f.getFromEnv("chart"),
                        b = f.config,
                        x = v.config,
                        y = f.getLinkedParent(),
                        C = f.getJSONIndex(),
                        k = y.config.firstDataSetIndex,
                        S = f.getFromEnv("xAxis"),
                        w = f.getFromEnv("yAxis"),
                        L = b.scrollMinVal,
                        A = b.scrollMaxVal,
                        N = !x.drawfullareaborder,
                        T = b.plotborderColorObject,
                        E = b.plotborderdashstyle,
                        F = b.plotborderthickness,
                        _ = b.fillColor,
                        P = f.getFromEnv("animationManager"),
                        D = {
                            x: S.getLimit(),
                            y: w.getLimit()
                        },
                        I = [],
                        M = b.shadow,
                        O = f.getContainer("shadowGroup"),
                        R = S.getState("scrolling"),
                        B = f.getSkippingInfo && f.getSkippingInfo(),
                        V = B && B.draw || [],
                        G = V.length,
                        z = B && B.skippingApplied;
                    for (D.x.minPixel = S.getPixel(D.x.min), D.x.maxPixel = S.getPixel(D.x.max), D.y.minPixel = w.getPixel(D.y.min), D.y.maxPixel = w.getPixel(D.y.max), D.y.base = w.getPixel(0), D.x.base = S.getPixel(0), z && (L = 0, A = G), g = L; g < A; g++) m[d = V[g] || g] && m[d].config && (I[d] = {
                        config: {
                            _Px: m[d].config._Px,
                            _Pbx: m[d].config._Pbx,
                            _Py: m[d].config._Py,
                            _Pby: m[d].config._Pby,
                            setValue: m[d].config.setValue
                        }
                    });
                    if (p = {
                            begin: L,
                            end: A
                        }, r = {
                            path: (a = this.getLinePath(m, R ? p : null, !f.getState("visible") && "base")).getPathArr(),
                            stroke: "none",
                            fill: (0, s.toRaphaelColor)(_)
                        }, t = f.getGraphicalElement("lineElement"), e = P.setAnimation({
                            el: t || "path",
                            container: f.getContainer("commonElemsGroup"),
                            attr: f.getState("visible") && r,
                            component: f,
                            doNotRemove: !0,
                            label: "line",
                            callback: function() {
                                !f.getState("visible") && this.hide()
                            }
                        }), !t && e && f.addGraphicalElement("lineElement", e), f.getState("visible") && e && e.show(), f.getState("visible") && !R && e.shadow(M, O), l = f.getGraphicalElement("connector"), u = f.getGraphicalElement("bottomConnector"), f.getState("visible") && l && l.show(), N) i = a.getPathArr("top"), o = "topBorderPath";
                    else if (k === n || C === k) i = a.getPathArr(), o = "line";
                    else {
                        var H = a.getPathArr("detailed");
                        i = H.top, c = H.bottom, o = "topBorderPath", f.getState("visible") && u && u.show(), h = f.addGraphicalElement("bottomConnector", P.setAnimation({
                            attr: {
                                path: c,
                                stroke: (0, s.toRaphaelColor)(T),
                                "stroke-width": F,
                                "stroke-linecap": "round",
                                "stroke-linejoin": F > 2 ? "round" : "miter",
                                "stroke-dasharray": E
                            },
                            el: u || "path",
                            container: f.getContainer("commonElemsGroup"),
                            component: f,
                            label: "bottomPath",
                            callback: function() {
                                !f.getState("visible") && this.hide()
                            }
                        }))
                    }
                    u && !h && f.removeGraphicalElement(u), l = f.addGraphicalElement("connector", P.setAnimation({
                        attr: {
                            path: i,
                            stroke: (0, s.toRaphaelColor)(T),
                            "stroke-width": F,
                            "stroke-linecap": "round",
                            "stroke-linejoin": F > 2 ? "round" : "miter",
                            "stroke-dasharray": E
                        },
                        el: l || "path",
                        container: f.getContainer("commonElemsGroupLine") || f.getContainer("commonElemsGroup"),
                        component: f,
                        label: o,
                        callback: function() {
                            !f.getState("visible") && this.hide()
                        }
                    })), b.prevLim = D, b.prevDataStore = I, "realTimeUpdate" === v.state && (f.realTimeUpdated = !0), x.connectnulldataOld = x.connectnulldata
                }, a.addDatasetSpecificEvtArgs = function(e) {
                    var t = e.config,
                        a = t.anchorProps,
                        i = t.eventArgs,
                        n = t.hoverEffects;
                    Object.assign(i, {
                        color: t.color,
                        alpha: t.alpha,
                        anchorBgColor: a.bgColor,
                        anchorBgAlpha: a.anchorBgAlpha,
                        anchorAlpha: a.anchorAlpha,
                        anchorBorderColor: a.borderColor,
                        anchorBorderThickness: a.borderThickness,
                        anchorRadius: a.radius,
                        anchorSides: a.sides,
                        anchorStartAngle: a.startAngle,
                        anchorHoverColor: n.anchorColor,
                        anchorHoverAlpha: n.anchorAlpha,
                        anchorHoverSides: n.anchorSides,
                        dashed: t.dashed,
                        valuePosition: t.valuePosition
                    })
                }, a.parsePlotAttributes = function(e, t) {
                    var a, i, n, o, r, l, c, h, u, d, g, p = this.getJSONIndex(),
                        f = this.getState("visible"),
                        m = this.config,
                        v = this.config.JSONData,
                        b = t,
                        C = {},
                        k = {},
                        S = {};
                    h = (g = e.config)._Px, u = g._Py, a = g._x, i = g._y, o = g.setLink, n = g.setValue, C = g.anchorProps, d = g.displayValue, c = g.hoverEffects, l = g.finalTooltext = g.toolText, g.eventArgs = {
                        index: b,
                        link: o,
                        value: n,
                        displayValue: d,
                        categoryLabel: g.origLabel,
                        toolText: l,
                        id: m.userID,
                        datasetIndex: p || 0,
                        datasetName: v.seriesname,
                        visible: f
                    }, this.addDatasetSpecificEvtArgs(e), r = C.symbol, e._xPos = h, e._yPos = u, e._xVal = a, e._yVal = i, e._index = b, null !== i && null !== a ? (g.eventArgs.x = a, g.eventArgs.y = i, c.enabled && (S = {
                        path: (0, s.polyPathToPath)([c.anchorSides || 2, h, u, c.anchorRadius, c.startAngle, c.dip ? c.dip : +("spoke" === m.dip)]),
                        fill: (0, s.toRaphaelColor)({
                            color: c.anchorColor,
                            alpha: c.anchorBgAlpha
                        }),
                        stroke: (0, s.toRaphaelColor)({
                            color: c.anchorBorderColor,
                            alpha: c.anchorBorderAlpha
                        }),
                        "stroke-width": c.anchorBorderThickness
                    }, k = {
                        path: (0, s.polyPathToPath)([r[1] || 2, h, u, C.radius, C.startAngle, g.dip || 0]),
                        fill: (0, s.toRaphaelColor)({
                            color: C.bgColor,
                            alpha: C.bgAlpha
                        }),
                        stroke: (0, s.toRaphaelColor)({
                            color: C.borderColor,
                            alpha: C.borderAlpha
                        }),
                        "stroke-width": C.borderThickness
                    }, c.attrs = {
                        hoverEnabled: c.enabled,
                        anchorRadius: C.radius,
                        anchorHoverRadius: c.anchorRadius
                    }, c.attrs[x] = S, c.attrs[y] = k, C.isAnchorHoverRadius = c.attrs.anchorRadius), C.imageUrl && (g.anchorImageLoaded = !1), g.props = {
                        element: {
                            attr: {
                                path: (0, s.polyPathToPath)([r[1] || 2, h, u, C.radius, C.startAngle, g.dip || 0]),
                                fill: (0, s.toRaphaelColor)({
                                    color: C.bgColor,
                                    alpha: C.bgAlpha
                                }),
                                stroke: (0, s.toRaphaelColor)({
                                    color: C.borderColor,
                                    alpha: C.borderAlpha
                                }),
                                "stroke-width": C.borderThickness
                            }
                        }
                    }) : n && (n.isNull = !0)
                }, a.parseLabelAttributes = function(e, t) {
                    var a, i, o, r, l, s, c, h, u, d, g, p, f, m, v, b, x, y, C, S, w, L, A, N, T = this.getFromEnv("chart"),
                        E = T.config,
                        F = this.getFromEnv("smartLabel"),
                        _ = T.config.dataLabelStyle,
                        P = this.components.data,
                        D = E.stack100percent,
                        I = E.rotatevalues ? 270 : 0,
                        M = E.canvasTop,
                        O = E.canvasHeight,
                        R = T.config.isstacked,
                        B = t;
                    if (L = (m = e && e.config) && m.setValue, e !== n && L !== n && null !== L && !0 !== m.labelSkip) {
                        switch (d = m.anchorProps, b = e._yPos || e.config._Py, v = e._xPos || e.config._Px, w = d.markerRadius || d.radius - 3, o = E.valuepadding + 2 + w, m.valuePosition) {
                            case "above":
                                g = 0;
                                break;
                            case "below":
                                g = 1;
                                break;
                            default:
                                x = P[B - 1] && P[B - 1].config || {}, R && D ? (y = x.value, C = m.value) : (y = x.setValue, C = m.setValue), g = B && y > C ? 1 : 0
                        }
                        if (a = m.displayValue, S = m.showValue, i = m.dataLabelStyle, k(a) && "" !== a && null !== C && S) {
                            if (N = {
                                    text: a,
                                    fill: i.color,
                                    "text-bound": [i.backgroundColor, i.borderColor, _.borderThickness, _.borderPadding, _.borderRadius, _.borderDash]
                                }, r = F.getOriSize(a), m._state = m._state || {}, I ? (m._state.labelWidth = r.height, m._state.labelHeight = r.width, m._rotated = !0) : (m._state.labelWidth = r.width, m._state.labelHeight = r.height, m._rotated = !1), l = s = m._state.labelHeight, u = .5 * s + o, p = b - M, f = M + O - b, c = b, h = v, A = (l += o) + 4, g ? f > A ? (c += u, m._valueBelowPoint = 1) : p > A && (c -= u, m._valueBelowPoint = 0) : p > A ? (c -= u, m._valueBelowPoint = 0) : f > A && (c += u, m._valueBelowPoint = 1), this.getFromEnv("useImprovedLabelPlacement") && E.showSum && !D) {
                                var V = l + 2;
                                c < M + V + l / 2 ? c = M + V + l / 2 : c > M + O - V - l / 2 + u && (c = M + O - V - l / 2 + u)
                            }
                            N.x = h, N.y = c
                        }
                        m.props = m.props || {}, m.props.label = {
                            attr: N
                        }
                    } else m && delete m.labelSkip
                }, a.allocatePosition = function() {
                    var e, t, a = this,
                        i = a.config,
                        o = a.getFromEnv("chart"),
                        r = o.config,
                        l = a.components,
                        s = l.data,
                        c = a.getFromEnv("xAxis"),
                        h = 0,
                        u = 0,
                        d = r.isstacked,
                        g = r.viewPortConfig.step || 1,
                        p = o.hasScroll,
                        f = a.getSkippingInfo && a.getSkippingInfo(),
                        m = f && f.labelDraw || [],
                        v = f && f.draw || [];
                    for (t = l.animAttrs = [], a.calculateScrollRange(), c.getState("scrolling") || d && a.updateYForStack(), a.createCoordinates(), u = i.scrollMinVal; u < i.scrollMaxVal; u += g) h = v[u] || u, p && !r.skipAttr && (h < void 0 || h > void 0) || ((e = s[h]) && e.config ? a.parsePlotAttributes(e, h) : t[h] = n);
                    for (g > 1 && i.skipIgnorerIndices.map((function(e) {
                            return s[e]
                        })).filter((function(e) {
                            return e || e.config
                        })).forEach((function(e) {
                            return a.parsePlotAttributes(e, h)
                        })), u = i.scrollMinValForLabel; u < i.scrollMaxValForLabel; u += g) h = m[u] || u, e = s[h], a.parseLabelAttributes(e, h)
                }, a.drawPlot = function(e, t) {
                    var a, i, o, r = this.config,
                        l = e.config,
                        s = e.graphics,
                        c = l.anchorProps,
                        h = this.getState("visible"),
                        u = c.radius,
                        d = c.shadow,
                        g = c.anchorAlpha,
                        p = u && g,
                        f = this.getContainer("plotGroup"),
                        m = this.getContainer("shadowGroup"),
                        v = this.getFromEnv("animationManager");
                    null !== l._y && null !== l._x ? (c.imageUrl ? this.drawAnchorImage(e) : (a = s.element, (o = s.image) && o.remove(), delete s.image, (r.drawanchors || p) && h && null !== e.config.setValue ? (a = s.element = v.setAnimation({
                        el: a || "path",
                        container: f,
                        attr: l.props.element.attr,
                        index: t,
                        length: length,
                        callback: function() {
                            this.show()
                        },
                        component: this,
                        label: "anchor"
                    })).shadow(d, m) : a && (this.__removeElem(s.element, "element"), delete s.element, a = n)), i = l.hoverEffects, a && (i.enabled ? a.data("hoverEnabled", i.attrs.hoverEnabled).data("anchorRadius", i.attrs.anchorRadius).data("anchorHoverRadius", i.attrs.anchorHoverRadius).data(x, i.attrs[x]).data(y, i.attrs[y]) : a.data("hoverEnabled", !1), a.data("eventArgs", l && l.eventArgs))) : s.element && (s.element = v.setAnimation({
                        el: s.element,
                        component: this
                    }))
                }, a.drawPlots = function() {
                    var e, t, a, i = this,
                        o = i.getFromEnv("chart").config,
                        r = i.components,
                        l = i.config,
                        s = r.data,
                        c = 0,
                        h = 0,
                        u = r.animAttrs,
                        d = l._oldStartIndex,
                        g = l._oldEndIndex,
                        p = i.getGraphicalElement("sharedAnchor"),
                        f = o.viewPortConfig.step || 1,
                        m = i.getSkippingInfo && i.getSkippingInfo(),
                        v = m && m.draw || [];
                    for (u = r.animAttrs = [], t = l.scrollMinVal, a = l.scrollMaxVal, t > d && i.flushOnScroll(d, t > g ? g : t), a < g && i.flushOnScroll(a < d ? d : a, g), l._oldStartIndex = t, l._oldEndIndex = a, i.hideAllAnchors && i.hideAllAnchors(), h = t; h < a; h += f) c = v[h] || h, (e = s[c]) && e.config ? i.drawPlot(e, c) : u[c] = n;
                    f > 1 && l.skipIgnorerIndices.map((function(e) {
                        return s[e]
                    })).filter((function(e) {
                        return e || e.config
                    })).forEach((function(e) {
                        return i.drawPlot(e, c)
                    })), 0 === c || l.drawanchors ? p && p.hide() : p ? p.hide() : i.getAnchor()
                }, a.drawAnchorImage = function(e) {
                    var t, a = this.getContainer("plotGroup"),
                        i = e.graphics,
                        n = this.getFromEnv("animationManager"),
                        o = d ? i.element : i.image,
                        r = e.config.anchorProps,
                        l = r.anchorAlpha && r.radius,
                        s = r.imageAlpha;
                    this.getState("visible") && l ? (d || (i.element = n.setAnimation({
                        el: i.element || "path",
                        container: a,
                        attr: e.config.props.element.attr,
                        label: "anchor",
                        component: this
                    }).show()), e.config.props.element.attr.opacity = .01 * s, t = n.setAnimation({
                        el: o || "image",
                        container: a,
                        component: this,
                        label: "anchor",
                        attr: {
                            opacity: .01 * s
                        }
                    }), d ? i.element = t : i.image = t, o ? t.attrs.src !== r.imageUrl ? t.attr("src", r.imageUrl) : t._.RefImg && N(this, e) : (t.on("load", this._onAnchorImageLoad(e)), t.attr("src", r.imageUrl)), t.show()) : (i.image && n.setAnimation({
                        el: i.image,
                        state: "disappearing",
                        component: this,
                        doNotRemove: !0,
                        callback: function() {
                            this.hide()
                        }
                    }), i.element && n.setAnimation({
                        el: i.element,
                        state: "disappearing",
                        component: this,
                        doNotRemove: !0,
                        callback: function() {
                            this.hide()
                        }
                    }))
                }, a.getLineSegment = function(e, t, a) {
                    var i = t._Px,
                        o = t._Py,
                        r = t._Pbx,
                        l = t._Pby,
                        s = this.getFromEnv("yAxis").getPixel(0),
                        c = t.setValue,
                        h = "path-" + e.pathCount,
                        u = this.getFromEnv("chart").config.connectnulldata;
                    return "zero" === a ? (o = s, l = s) : "base" === a && (o = t._Pby), e.pathMap[h] || (e.pathMap[h] = []), e.path2Map[h] || (e.path2Map[h] = []), null === c || c.isNull ? u || (e.pointsJoined > 0 && e.path2Map[h][e.path2Map[h].length - 1] !== m && l !== n && e.path2Map[h].push(m), e.temp = [], e.temp2 = [], e.lastValidValue = !1) : e.lastValidValue ? (e.temp.length && (e.pathMap[h] = e.pathMap[h].concat(e.temp), r !== n && (e.path2Map[h] = e.temp2, e.temp2 = []), e.temp = [], e.pointsJoined++), e.pathMap[h].push([f, i, o]), l !== n && e.path2Map[h].unshift([f, i, l])) : (e.temp.push(["M", i, o]), l !== n && e.temp2.push([f, r, l]), e.pointsJoined = 0, e.lastValidValue = !0, e.pathCount++), e
                }, a.getLinePath = function(e, t, a) {
                    var i, o, r, l, s, c, h, u, d, g = this,
                        p = g.getFromEnv("chart").config,
                        f = e.length,
                        v = t && t.begin || 0,
                        b = g.getState("visible") ? t && t.end || f : 0,
                        x = p.viewPortConfig.step || 1,
                        y = (g.removeDataLen, []),
                        k = g.getSkippingInfo && g.getSkippingInfo(),
                        S = k && k.draw || [],
                        w = S.length,
                        L = k && k.skippingApplied,
                        A = g.config.skipIgnorerIndices,
                        N = [],
                        T = {},
                        E = 0;
                    for (0, y = y.concat(e), L && (v = 0, b = w), o = v + 0; o < b + 0; o += x)
                        if (s = y[i = S[o] || o])
                            if ((r = s.config).setValue === n || r && !0 === r.isSkipped) r && delete r.isSkipped;
                            else {
                                if (x > 1)
                                    for (; A[E] < o;)(h = y[A[E]]) && ((u = h.config).setValue === n || u && !0 === u.isSkipped ? u && delete u.isSkipped : (N = N.concat(u), E++));
                                N = N.concat(r), l = r._Pby, c = o
                            }
                    if (x > 1)
                        for (i = c + 1; i <= o; i++)(s = y[S[i] || i]) && ((r = s.config).setValue === n || r && !0 === r.isSkipped ? r && delete r.isSkipped : A.includes(i) && (N = N.concat(r), l = r._Pby));
                    return d = "path-" + (T = N.reduce((function(e, t) {
                        return g.getLineSegment(e, t, a)
                    }), {
                        temp: [],
                        temp2: [],
                        pathMap: {},
                        path2Map: {},
                        pointsJoined: 0,
                        lastValidValue: !1,
                        getPathArr: C,
                        pathCount: 0
                    })).pathCount, T.path2Map[d] && T.path2Map[d][T.path2Map[d].length - 1] !== m && T.pointsJoined > 0 && l !== n && T.path2Map[d].push(m), T
                }, a._removeDataVisuals = function(e) {
                    var t, a, i, n, o = this.components.pool || (this.components.pool = {});
                    if (e)
                        for (a in i = e.graphics) t = o[a] || (o[a] = []), (n = i[a]).hide && "function" == typeof n.hide && (n.attr({
                            "text-bound": []
                        }), n.hide(), n.shadow && n.shadow(!1)), t.push(i[a])
                }, a._parseAnchorProperties = function(e, t) {
                    var a, i, o, r = this.config,
                        l = this.getName(),
                        c = this.getFromEnv("chart"),
                        h = c.config.anchoralpha,
                        u = !c.config.anchoralpha && /area/gi.test(l) ? 0 : 1,
                        d = r.JSONData,
                        g = c.getFromEnv("dataSource").chart,
                        p = (t || d.data || [])[e] || {},
                        f = {};
                    return i = (0, s.pluck)(p.anchorstartangle, d.anchorstartangle, g.anchorstartangle, p.anchorimagealpha, d.anchorimagealpha, g.anchorimagealpha, p.anchorimagescale, d.anchorimagescale, g.anchorimagescale, p.anchorimagepadding, d.anchorimagepadding, g.anchorimagepadding, p.anchorimageurl, d.anchorimageurl, g.anchorimageurl, p.anchorradius, d.anchorradius, g.anchorradius, p.anchorbgcolor, d.anchorbgcolor, g.anchorbgcolor, p.anchorbordercolor, d.anchorbordercolor, g.anchorbordercolor, p.anchoralpha, d.anchoralpha, g.anchoralpha, p.anchorsides, d.anchorsides, g.anchorsides, p.anchorborderthickness, d.anchorborderthickness, g.anchorborderthickness, n) !== n, o = (0, s.pluckNumber)(p.drawanchors, r.drawanchors), f.enabled = i ? (0, s.pluckNumber)(o, i) : (0, s.pluckNumber)(o, u), f.startAngle = (0, s.pluckNumber)(p.anchorstartangle, r.anchorstartangle), f.imageAlpha = (0, s.pluckNumber)(p.anchorimagealpha, r.anchorimagealpha), f.imageScale = (0, s.pluckNumber)(p.anchorimagescale, r.anchorimagescale), f.imagePadding = (0, s.pluckNumber)(p.anchorimagepadding, r.anchorimagepadding), f.imagePadding < 0 && (f.imagePadding = 0), f.imageUrl = (0, s.pluck)(p.anchorimageurl, r.anchorimageurl), f.imageUrl && r.imageCount++, f.radius = f.enabled ? (0, s.pluckNumber)(p.anchorradius, r.anchorradius) : 0, f.isAnchorRadius = (0, s.pluck)(p.anchorradius, d.anchorradius, g.anchorradius), f.bgColor = (0, s.pluck)(p.anchorbgcolor, r.anchorbgcolor), h = f.enabled ? (0, s.getFirstAlpha)((0, s.pluck)(p.anchoralpha, r.anchoralpha, f.enabled ? s.HUNDREDSTRING : "0")) : 0, f.anchorAlpha = h, f.anchorBgAlpha = (0, s.pluckNumber)(p.anchorbgalpha, r.anchorbgalpha, h), f.bgAlpha = (0, s.getFirstAlpha)(f.anchorBgAlpha) * h / 100, f.imageAlpha = f.imageAlpha * h / 100, f.borderColor = (0, s.pluck)(p.anchorbordercolor, r.anchorbordercolor), f.borderAlpha = h, f.sides = (0, s.pluck)(p.anchorsides, r.anchorsides), f.borderThickness = (0, s.pluck)(p.anchorborderthickness, r.anchorborderthickness), f.symbol = (0, s.mapSymbolName)(f.sides).split("_"), a = (0, s.pluckNumber)(p.anchorshadow, r.anchorshadow) && f.radius >= 1, f.shadow = {
                        opacity: a ? h / 100 : 0
                    }, f
                }, a._hideGraphics = function(e) {
                    var t, a;
                    for (a in e)
                        if (e.hasOwnProperty(a)) {
                            if (!(t = e[a])) continue;
                            t.hide ? t.hide() : this._hideGraphics(t)
                        }
                }, a._parseHoverEffectOptions = function(e, t) {
                    var a = t,
                        i = this.config.JSONData,
                        o = this.getFromEnv("chart"),
                        r = o.getFromEnv("dataSource").chart,
                        l = o.config,
                        c = e.config,
                        h = this.config,
                        u = c.anchorProps || {},
                        d = l.plothovereffect,
                        g = h.drawanchors,
                        p = {
                            enabled: !1
                        };
                    return a = a || {}, 0 !== d && 0 !== g && (p.enabled = (0, s.pluck)(a.hovercolor, a.anchorhovercolor, a.hovercolor, i.hovercolor, a.anchorbghovercolor, i.anchorbghovercolor, r.anchorbghovercolor, i.anchorhovercolor, r.anchorhovercolor, a.hoveralpha, a.anchorhoveralpha, i.anchorhoveralpha, r.anchorhoveralpha, a.bghoveralpha, a.anchorbghoveralpha, i.anchorbghoveralpha, r.anchorbghoveralpha, a.anchorborderhovercolor, a.borderhovercolor, i.anchorborderhovercolor, r.anchorborderhovercolor, a.anchorborderhoverthickness, a.borderhoverthickness, i.anchorborderhoverthickness, r.anchorborderhoverthickness, a.anchorborderhoveralpha, a.borderhoveralpha, i.anchorborderhoveralpha, r.anchorborderhoveralpha, a.hoverdip, a.anchorhoverdip, i.anchorhoverdip, r.anchorhoverdip, a.anchorhoverstartangle, i.anchorhoverstartangle, r.anchorhoverstartangle, a.hoversides, a.anchorhoversides, i.anchorhoversides, r.anchorhoversides, a.hoverradius, a.anchorhoverradius, i.anchorhoverradius, r.anchorhoverradius, i.plotfillhovercolor, r.plotfillhovercolor, l.plothovereffect, n) !== n, p.startAngle = (0, s.pluckNumber)(a.anchorhoverstartangle, i.anchorhoverstartangle, r.anchorhoverstartangle, u.startAngle), p.hoverColor = (0, s.pluck)(a.hovercolor, a.anchorhovercolor, i.hovercolor, a.anchorbghovercolor, i.anchorbghovercolor, r.anchorbghovercolor, i.anchorhovercolor, r.anchorhovercolor, r.plotfillhovercolor), p.hoverAlpha = (0, s.pluck)(a.hoveralpha, a.anchorhoveralpha, i.anchorhoveralpha, r.anchorhoveralpha, a.bghoveralpha, a.anchorbghoveralpha, i.anchorbghoveralpha, r.anchorbghoveralpha, i.hoveralpha, r.plotfillhoveralpha), p.anchorSides = (0, s.pluckNumber)(a.hoversides, a.anchorhoversides, i.anchorhoversides, r.anchorhoversides, u.sides), p.anchorRadius = (0, s.pluckNumber)(a.anchorhoverradius, i.anchorhoverradius, r.anchorhoverradius), p.isAnchorHoverRadius = p.anchorRadius, p.anchorRadius = (0, s.pluckNumber)(p.anchorRadius, u.radius + (d ? 2 : 0)), p.anchorScale = (0, s.pluck)(a.hoverscale, i.anchorscale, r.anchorscale), p.imageHoverScale = (0, s.pluckNumber)(a.anchorimagehoverScale, i.anchorimagehoverscale, r.anchorimagehoverscale, 110), p.imageHoverAlpha = (0, s.pluckNumber)(a.anchorimagehoveralpha, i.anchorimaghoverealpha, r.anchorimagehoveralpha), p.anchorAlpha = (0, s.pluck)(a.anchorhoveralpha, a.hoveralpha, i.anchorhoveralpha, r.anchorhoveralpha, u.anchorAlpha), p.anchorColor = (0, s.getFirstColor)((0, s.pluck)(a.hovercolor, a.anchorhovercolor, a.hoverColor, a.anchorbghovercolor, i.anchorbghovercolor, i.anchorhovercolor, i.hovercolor, r.anchorbghovercolor, r.anchorhovercolor, r.plotfillhovercolor, u.bgColor)), p.anchorBgAlpha = (0, s.pluck)(a.bghoveralpha, a.anchorbghoveralpha, i.anchorbghoveralpha, r.anchorbghoveralpha, r.plotfillhoveralpha, u.bgAlpha), p.anchorBgAlpha = p.anchorBgAlpha * p.anchorAlpha / 100, p.anchorBorderColor = (0, s.pluck)(a.borderhovercolor, a.anchorborderhovercolor, i.anchorborderhovercolor, r.anchorborderhovercolor, u.borderColor), p.anchorBorderAlpha = (0, s.pluck)(a.borderhoveralpha, a.anchorborderhoveralpha, i.anchorborderhoveralpha, r.anchorborderhoveralpha, p.anchorAlpha, u.borderAlpha), p.anchorBorderThickness = (0, s.pluckNumber)(a.borderhoverthickness, a.anchorborderhoverthickness, i.anchorborderhoverthickness, r.anchorborderhoverthickness, r.anchorBorderThickness, u.borderThickness), p.dip = (0, s.pluck)(a.hoverdip, a.anchorhoverdip, i.anchorhoverdip, r.anchorhoverdip, u.dip), p.anchorAnimation = (0, s.pluckNumber)(a.anchorhoveranimation, i.anchorhoveranimation, r.anchorhoveranimation, 1)), p
                }, a._hoverPlotAnchor = function(e, t) {
                    var a, i, n, o, r, l = this.getFromEnv("smartLabel"),
                        s = this.getFromEnv("chart").getChildren("canvas")[0].getEffectiveDimensions(),
                        c = s.top,
                        h = c + s.height,
                        u = e.config._Py,
                        f = this.getFromEnv("animationManager"),
                        m = this.getGraphicalElement("sharedAnchor"),
                        v = e.graphics.element || m,
                        b = e.graphics.label,
                        C = e.config || {},
                        k = C.anchorProps.anchorAlpha,
                        S = C && C.anchorProps.imageUrl,
                        w = d && S ? e.graphics.element : e.graphics.image,
                        L = "image" === v.type,
                        A = v.data("anchorRadius"),
                        N = v.data("anchorHoverRadius"),
                        T = v.data(x),
                        E = v.data(y),
                        F = b && (b.data("isBelow") ? 1 : -1) * (L ? .5 * (T.height - E.height) : N - A),
                        _ = t === g ? T : E,
                        P = !0,
                        D = {
                            path: _.path
                        },
                        I = {
                            fill: _.fill,
                            "stroke-width": _["stroke-width"],
                            stroke: _.stroke
                        },
                        M = b && b.data("rotation") || "";
                    u - 3 * (a = l.getOriSize(C.displayValue).height) / 2 + F < c ? F = c - u + 3 * a / 2 : u + 3 * a / 2 + F > h && (F = h - u - 3 * a / 2), r = {
                        transform: "T0," + (t === g ? F : 0) + M
                    }, f.setAnimationState(t === g ? "mouseOver" : "mouseOut"), w && (n = w.data(x), o = w.data(y), (i = t === g ? n : o).alpha *= .01), L ? D.alpha *= .01 : Object.assign(D, I), (t === g && !N || t === p && !A) && (P = !1), f.setAnimation({
                        el: v,
                        label: "anchor",
                        component: this,
                        doNotRemove: !0,
                        callback: function() {
                            !P && v.hide()
                        },
                        attr: P && D
                    }), P && v.show(), w && (f.setAnimation({
                        el: w,
                        label: "anchor",
                        component: this,
                        attr: P && i
                    }), P && w.show()), (e.graphics && e.graphics.element || m && m.element) && k && b && f.setAnimation({
                        el: b,
                        label: "label",
                        component: this,
                        doNotRemove: !0,
                        attr: r
                    })
                }, a.drawLabel = function(e, t) {
                    var a, i, o, r, l, c, h, u, d, g, p, f, m = this.config,
                        v = this.getFromEnv("chart"),
                        b = v.config,
                        x = this.getFromEnv("smartLabel"),
                        y = v.config.dataLabelStyle,
                        C = this.components.data,
                        S = this.getFromEnv("paper"),
                        w = this.getFromEnv("animationManager"),
                        L = "",
                        A = b.rotatevalues ? 270 : 0,
                        N = this.getContainer("labelGroup"),
                        T = this.getState("visible"),
                        E = C.length,
                        F = this.getSkippingInfo && this.getSkippingInfo(),
                        _ = F && F.skippingApplied,
                        P = F && F.labelDraw || [],
                        D = P.length,
                        I = (0, s.pluckNumber)(e, 0),
                        M = (0, s.pluckNumber)(t, _ ? D : E),
                        O = D === Math.abs(M - (I + 1));
                    for (h = {
                            "font-weight": y.fontWeight,
                            "font-style": y.fontStyle,
                            "font-family": y.fontFamily,
                            "font-size": y.fontSize,
                            "line-height": y.lineHeight
                        }, x.setStyle(h), d = I; d < M; d++) g = (r = (u = C[_ && O ? P[d] : d]) && u.config) && r.setValue, u !== n && g !== n && null !== g && !0 !== r.labelSkip ? (a = u.graphics, L = r.displayValue, l = r.showValue, c = a.label, p = r.props.label.attr, k(L) && l && T ? (o = r.props.label.attr.x, i = r.props.label.attr.y, p.transform = S.getSuggestiveRotation(A, o, i), a.label = c = w.setAnimation({
                        el: c || "text",
                        container: N,
                        component: this,
                        attr: p,
                        label: "label"
                    }), c.data("isBelow", r._valueBelowPoint), c.data("rotation", p.transform), c && c.outlineText(m.showTextOutline, p.fill)) : c && (a.label = w.setAnimation({
                        el: c,
                        component: this,
                        label: "label"
                    }))) : (r && delete r.labelSkip, (f = u && u.graphics) && f.label && (f.label = w.setAnimation({
                        el: f.label,
                        component: this
                    })))
                }, a.getAxisValuePadding = function() {
                    return this.config.defaultPadding
                }, a._hoverFunc = function(e, t, a, i) {
                    if (a) return this._hoverPlotAnchor(e, t, i)
                }, a._onAnchorImageLoad = function(e) {
                    var t = this;
                    return function() {
                        var a = e._index;
                        N(t, e), t.config.drawn ? t.drawLabel(a, a + 1) : t.addJob("labelUpdateOnImageLoadID" + a, (function() {
                            t.drawLabel(a, a + 1)
                        }), c.priorityList.label)
                    }
                }, t
            }(l["default"]);
            t["default"] = T
        },
        511: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function(e) {
                    var t = e.component,
                        a = t.components.data,
                        i = t.getFromEnv("chartConfig").isstacked,
                        n = t.getLinePath(a).getPathArr("detailed").bottom,
                        o = t.getState("_total"),
                        r = t.config._childIndex;
                    if (n.length && Array.isArray(n[0])) {
                        var l = n.length;
                        n[0] = Object.assign([], n[1]), n[0][0] = "M", n[l - 1] = Object.assign([], n[l - 2])
                    }
                    return [{
                        initialAttr: {
                            opacity: 0,
                            path: n
                        },
                        finalAttr: {
                            opacity: 1,
                            path: e.attr.path
                        },
                        startEnd: {
                            start: i ? .5 / o * r : 0,
                            end: i ? .5 / o * (r + 1) : .5
                        },
                        slot: "plot",
                        hookFn: function() {
                            this.attr({
                                opacity: 1
                            })
                        }
                    }]
                },
                n = function(e) {
                    var t = e.component,
                        a = t.components.data,
                        i = t.getFromEnv("chartConfig").isstacked,
                        n = t.getFromEnv("chartConfig").is3D,
                        o = t.getLinePath(a, null, i || n ? "base" : "zero").getPathArr("top"),
                        r = e.attr,
                        l = t.getState("_total"),
                        s = t.config._childIndex;
                    return [{
                        initialAttr: {
                            opacity: 0,
                            path: o
                        },
                        finalAttr: {
                            opacity: 1,
                            path: r.path
                        },
                        startEnd: {
                            start: i ? .5 / l * s : 0,
                            end: i ? .5 / l * (s + 1) : .5
                        },
                        slot: "plot",
                        hookFn: function() {
                            this.attr({
                                opacity: 1
                            })
                        }
                    }]
                },
                o = function() {
                    return [{
                        initialAttr: {
                            opacity: 0
                        },
                        finalAttr: {
                            opacity: 1
                        },
                        slot: "final"
                    }]
                },
                r = function(e) {
                    return "label-group" === e.attr.name ? [{
                        initialAttr: {
                            opacity: 0
                        },
                        finalAttr: {
                            opacity: 1
                        },
                        slot: "final"
                    }] : "plot-group" === e.attr.name ? [{
                        initialAttr: {
                            opacity: 0
                        },
                        finalAttr: {
                            opacity: 1
                        },
                        startEnd: {
                            start: .5,
                            end: 1
                        },
                        slot: "plot"
                    }] : [{
                        initialAttr: {
                            opacity: 1
                        },
                        finalAttr: {
                            opacity: 1
                        },
                        slot: "final"
                    }]
                },
                l = function(e) {
                    var t = e.component,
                        a = t.components.data,
                        i = t.getFromEnv("chartConfig").isstacked,
                        n = t.getFromEnv("chartConfig").is3D,
                        o = t.getLinePath(a, null, i || n ? "base" : "zero"),
                        r = e.attr,
                        l = t.getState("_total"),
                        s = t.config._childIndex;
                    return [{
                        initialAttr: {
                            opacity: 0,
                            path: o.getPathArr()
                        },
                        finalAttr: {
                            opacity: 1,
                            path: r.path
                        },
                        startEnd: {
                            start: i ? .5 / l * s : 0,
                            end: i ? .5 / l * (s + 1) : .5
                        },
                        slot: "plot",
                        hookFn: function() {
                            this.attr({
                                opacity: 1
                            })
                        }
                    }]
                },
                s = {
                    "*.dataset.area": function() {
                        return {
                            "anchor.appearing": [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                startEnd: {
                                    start: .5,
                                    end: 1
                                },
                                slot: "plot"
                            }],
                            "anchor.updating": [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "final"
                            }],
                            "anchor.disappearing": [{
                                finalAttr: {
                                    opacity: 0,
                                    "fill-opacity": 0,
                                    "stroke-opacity": 0
                                },
                                slot: "final"
                            }],
                            "line.appearing": l,
                            "topBorderPath.appearing": n,
                            "bottomPath.appearing": i,
                            "label.appearing": [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "final"
                            }],
                            "label.updating": o,
                            "group.appearing": r,
                            "*": null
                        }
                    }
                };
            t["default"] = s
        },
        512: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                "*.dataset.line": function() {
                    var e = this.getClip("canvas"),
                        t = this.getClip("init");
                    return {
                        "anchor.appearing": function() {
                            return [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "final"
                            }]
                        },
                        "anchor.updating": function() {
                            return [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "plot"
                            }]
                        },
                        "anchor.disappearing": function() {
                            return [{
                                finalAttr: {
                                    opacity: 0,
                                    "fill-opacity": 0,
                                    "stroke-opacity": 0
                                },
                                slot: "plot"
                            }]
                        },
                        "line.appearing": function() {
                            return [{
                                initialAttr: {
                                    "clip-rect": t
                                },
                                finalAttr: {
                                    "clip-rect": e
                                },
                                slot: "middle",
                                callback: function() {
                                    this.attr({
                                        "clip-rect": null
                                    })
                                }
                            }]
                        },
                        "line.updating": function() {
                            return [{
                                initialAttr: {
                                    opacity: 1,
                                    "clip-rect": t
                                },
                                finalAttr: {
                                    opacity: 1,
                                    "clip-rect": e
                                },
                                slot: "plot"
                            }]
                        },
                        "label.appearing": [{
                            initialAttr: {
                                opacity: 0
                            },
                            finalAttr: {
                                opacity: 1
                            },
                            slot: "final"
                        }],
                        "group.appearing": function(e) {
                            return "label-group" === e.attr.name ? [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "final"
                            }] : "plot-group" === e.attr.name ? [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                startEnd: {
                                    start: .5,
                                    end: 1
                                },
                                slot: "plot"
                            }] : [{
                                initialAttr: {
                                    opacity: 1
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "final"
                            }]
                        },
                        "*": null
                    }
                }
            }
        },
        518: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t.__feedAxesRawData = c, t.__spaceManager = h, t.__postSpaceManagement = u, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(519)),
                r = i(a(492)),
                l = a(193),
                s = i(a(306));

            function c() {
                var e, t, a = this.config,
                    i = this.getFromEnv("color-manager"),
                    n = this.getFromEnv("dataSource"),
                    o = n.chart,
                    r = this.config.is3D,
                    c = r ? l.chartPaletteStr.chart3D : l.chartPaletteStr.chart2D;
                return e = {
                    isVertical: !0,
                    isReverse: !1,
                    isOpposit: (0, s["default"])(o.xaxisposition, "right"),
                    outCanfontFamily: (0, l.pluck)(o.outcnvbasefont, o.basefont, "Verdana,sans"),
                    outCanfontSize: (0, l.pluckFontSize)(o.outcnvbasefontsize, o.basefontsize, 10),
                    outCancolor: (0, l.pluck)(o.outcnvbasefontcolor, o.basefontcolor, i.getColor(c.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"),
                    axisNamePadding: o.xaxisnamepadding,
                    maxLabelWidthPercent: o.maxlabelwidthpercent,
                    minLabelWidthPercent: o.minlabelwidthpercent,
                    axisValuePadding: o.labelpadding,
                    axisNameFont: o.xaxisnamefont,
                    axisNameFontSize: o.xaxisnamefontsize,
                    axisNameFontColor: o.xaxisnamefontcolor,
                    axisNameFontBold: o.xaxisnamefontbold,
                    axisNameFontItalic: o.xaxisnamefontitalic,
                    axisNameBgColor: o.xaxisnamebgcolor,
                    axisNameBorderColor: o.xaxisnamebordercolor,
                    axisNameAlpha: o.xaxisnamealpha,
                    axisNameFontAlpha: o.xaxisnamefontalpha,
                    axisNameBgAlpha: o.xaxisnamebgalpha,
                    axisNameBorderAlpha: o.xaxisnameborderalpha,
                    axisNameBorderPadding: o.xaxisnameborderpadding,
                    axisNameBorderRadius: o.xaxisnameborderradius,
                    axisNameBorderThickness: o.xaxisnameborderthickness,
                    axisNameBorderDashed: o.xaxisnameborderdashed,
                    axisNameBorderDashLen: o.xaxisnameborderdashlen,
                    axisNameBorderDashGap: o.xaxisnameborderdashgap,
                    axisNameWidth: o.xaxisnamewidth,
                    useEllipsesWhenOverflow: o.useellipseswhenoverflow,
                    divLineColor: (0, l.pluck)(o.vdivlinecolor, o.divlinecolor, i.getColor(c.divLineColor)),
                    divLineAlpha: (0, l.pluck)(o.vdivlinealpha, o.divlinealpha, r ? i.getColor("divLineAlpha3D") : i.getColor("divLineAlpha")),
                    divLineThickness: (0, l.pluckNumber)(o.vdivlinethickness, o.divlinethickness, 1),
                    divLineIsDashed: Boolean((0, l.pluckNumber)(o.vdivlinedashed, o.vdivlineisdashed, o.divlinedashed, o.divlineisdashed, 0)),
                    divLineDashLen: (0, l.pluckNumber)(o.vdivlinedashlen, o.divlinedashlen, 4),
                    divLineDashGap: (0, l.pluckNumber)(o.vdivlinedashgap, o.divlinedashgap, 2),
                    showAlternateGridColor: 0,
                    alternateGridColor: (0, l.pluck)(o.alternatehgridcolor, i.getColor("altHGridColor")),
                    alternateGridAlpha: (0, l.pluck)(o.alternatehgridalpha, i.getColor("altHGridAlpha")),
                    numDivLines: o.numvdivlines,
                    labelFont: o.labelfont,
                    labelFontSize: o.labelfontsize,
                    labelFontColor: o.labelfontcolor,
                    labelAlpha: o.labelalpha,
                    labelFontBold: o.labelfontbold,
                    labelFontItalic: o.labelfontitalic,
                    labelBdrColor: o.labelbordercolor,
                    labelBdrAlpha: o.labelborderalpha,
                    labelLink: o.labellink,
                    labelBgColor: o.labelbgcolor,
                    labelBgAlpha: o.labelbgalpha,
                    labelBdrThickness: o.labelborderthickness,
                    labelBdrPadding: o.labelborderpadding,
                    labelBdrRadius: o.labelborderradius,
                    labelBdrDashed: o.labelborderdashed,
                    labelBdrDashLen: o.labelborderdashlen,
                    labelBdrDashGap: o.labelborderdashgap,
                    axisName: o.xaxisname,
                    axisMinValue: o.xaxisminvalue,
                    axisMaxValue: o.xaxismaxvalue,
                    setAdaptiveMin: o.setadaptivexmin,
                    adjustDiv: o.adjustvdiv,
                    labelDisplay: o.labeldisplay,
                    showLabels: o.showlabels,
                    rotateLabels: o.rotatelabels,
                    slantLabel: (0, l.pluckNumber)(o.slantlabels, o.slantlabel),
                    labelStep: (0, l.pluckNumber)(o.labelstep, o.xaxisvaluesstep),
                    showAxisValues: (0, l.pluckNumber)(o.showxaxisvalues, o.showxaxisvalue),
                    showLimits: o.showvlimits,
                    showDivLineValues: (0, l.pluckNumber)(o.showvdivlinevalues, o.showvdivlinevalues),
                    zeroPlaneColor: o.vzeroplanecolor,
                    zeroPlaneThickness: (0, l.pluckNumber)(o.vzeroplanethickness, o.vdivlinethickness, 2),
                    zeroPlaneAlpha: (0, l.pluckNumber)(o.vzeroplanealpha, o.vdivlinealpha, a.zeroplanealpha),
                    showZeroPlaneValue: o.showvzeroplanevalue,
                    trendlineColor: o.trendlinecolor,
                    trendlineToolText: o.trendlinetooltext,
                    trendlineThickness: o.trendlinethickness,
                    rotateAxisName: (0, l.pluckNumber)(o.rotatexaxisname, 1),
                    trendlineAlpha: o.trendlinealpha,
                    showTrendlinesOnTop: o.showtrendlinesontop,
                    showAxisLine: r ? 0 : (0, l.pluckNumber)(o.showxaxisline, o.showaxislines, o.drawAxisLines, 0),
                    axisLineThickness: (0, l.pluckNumber)(o.xaxislinethickness, o.axislinethickness, 1),
                    axisLineAlpha: (0, l.pluckNumber)(o.xaxislinealpha, o.axislinealpha, 100),
                    axisLineColor: (0, l.pluck)(o.xaxislinecolor, o.axislinecolor, "#000000")
                }, (t = {
                    isVertical: !1,
                    isReverse: !1,
                    isOpposit: (0, s["default"])(o.yaxisposition, "top"),
                    outCanfontFamily: (0, l.pluck)(o.outcnvbasefont, o.basefont, "Verdana,sans"),
                    outCanfontSize: (0, l.pluckFontSize)(o.outcnvbasefontsize, o.basefontsize, 10),
                    outCancolor: (0, l.pluck)(o.outcnvbasefontcolor, o.basefontcolor, i.getColor(c.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"),
                    axisNamePadding: o.yaxisnamepadding,
                    axisValuePadding: o.yaxisvaluespadding,
                    axisNameFont: o.yaxisnamefont,
                    axisNameFontSize: o.yaxisnamefontsize,
                    axisNameFontColor: o.yaxisnamefontcolor,
                    axisNameFontBold: o.yaxisnamefontbold,
                    axisNameFontItalic: o.yaxisnamefontitalic,
                    axisNameBgColor: o.yaxisnamebgcolor,
                    axisNameBorderColor: o.yaxisnamebordercolor,
                    axisNameAlpha: o.yaxisnamealpha,
                    axisNameFontAlpha: o.yaxisnamefontalpha,
                    axisNameBgAlpha: o.yaxisnamebgalpha,
                    axisNameBorderAlpha: o.yaxisnameborderalpha,
                    axisNameBorderPadding: o.yaxisnameborderpadding,
                    axisNameBorderRadius: o.yaxisnameborderradius,
                    axisNameBorderThickness: o.yaxisnameborderthickness,
                    axisNameBorderDashed: o.yaxisnameborderdashed,
                    axisNameBorderDashLen: o.yaxisnameborderdashlen,
                    axisNameBorderDashGap: o.yaxisnameborderdashgap,
                    axisNameWidth: o.yaxisnamewidth,
                    useEllipsesWhenOverflow: o.useellipseswhenoverflow,
                    axisName: o.yaxisname,
                    divLineColor: (0, l.pluck)(o.divlinecolor, i.getColor(c.divLineColor)),
                    divLineAlpha: (0, l.pluck)(o.divlinealpha, r ? i.getColor("divLineAlpha3D") : i.getColor("divLineAlpha")),
                    divLineThickness: (0, l.pluckNumber)(o.divlinethickness, 1),
                    divLineIsDashed: Boolean((0, l.pluckNumber)(o.divlinedashed, o.divlineisdashed, 0)),
                    divLineDashLen: (0, l.pluckNumber)(o.divlinedashlen, 4),
                    divLineDashGap: (0, l.pluckNumber)(o.divlinedashgap, 2),
                    showAlternateGridColor: (0, l.pluckNumber)(o.showalternatevgridcolor, 1),
                    alternateGridColor: (0, l.pluck)(o.alternatevgridcolor, i.getColor("altVGridColor")),
                    alternateGridAlpha: (0, l.pluck)(o.alternatevgridalpha, i.getColor("altVGridAlpha")),
                    numDivLines: o.numdivlines,
                    axisMinValue: o.yaxisminvalue,
                    axisMaxValue: o.yaxismaxvalue,
                    setAdaptiveMin: o.setadaptiveymin,
                    adjustDiv: o.adjustdiv,
                    labelStep: o.yaxisvaluesstep,
                    showAxisValues: (0, l.pluckNumber)(o.showyaxisvalues, o.showyaxisvalue),
                    showLimits: (0, l.pluckNumber)(o.showyaxislimits, o.showlimits, this.showLimits),
                    showDivLineValues: (0, l.pluckNumber)(o.showdivlinevalues, o.showdivlinevalue),
                    zeroPlaneColor: o.zeroplanecolor,
                    zeroPlaneThickness: (0, l.pluckNumber)(o.zeroplanethickness, o.divlinethickness, 2),
                    zeroPlaneAlpha: (0, l.pluckNumber)(o.zeroplanealpha, o.divlinealpha, a.zeroplanealpha),
                    showZeroPlaneValue: o.showzeroplanevalue,
                    trendlineColor: o.trendlinecolor,
                    trendlineToolText: o.trendlinetooltext,
                    trendlineThickness: o.trendlinethickness,
                    trendlineAlpha: o.trendlinealpha,
                    isTrendZone: 0,
                    showTrendlinesOnTop: o.showtrendlinesontop,
                    showAxisLine: r ? 0 : (0, l.pluckNumber)(o.showyaxisline, o.showaxislines, o.drawAxisLines, 0),
                    axisLineThickness: (0, l.pluckNumber)(o.yaxislinethickness, o.axislinethickness, 1),
                    axisLineAlpha: (0, l.pluckNumber)(o.yaxislinealpha, o.axislinealpha, 100),
                    axisLineColor: (0, l.pluck)(o.yaxislinecolor, o.axislinecolor, "#000000"),
                    numberFormatterFn: "yAxis",
                    showZeroPlaneOnTop: a.showzeroplaneontop,
                    forceTrendBelow: !!a.is3D,
                    labelFont: o.yaxisvaluefont,
                    labelFontSize: o.yaxisvaluefontsize,
                    labelFontColor: o.yaxisvaluefontcolor,
                    labelAlpha: o.yaxisvaluealpha,
                    labelFontBold: o.yaxisvaluefontbold,
                    labelFontItalic: o.yaxisvaluefontitalic,
                    labelBdrColor: o.yaxisvaluebordercolor,
                    labelBdrAlpha: o.yaxisvalueborderalpha,
                    labelBgAlpha: o.yaxisvaluebgalpha,
                    labelLink: o.yaxisvaluelink,
                    labelBgColor: o.yaxisvaluebgcolor,
                    labelBdrThickness: o.yaxisvalueborderthickness,
                    labelBdrPadding: o.yaxisvalueborderpadding,
                    labelBdrRadius: o.yaxisvalueborderradius,
                    labelBdrDashed: o.yaxisvalueborderdashed,
                    labelBdrDashLen: o.yaxisvalueborderdashlen,
                    labelBdrDashGap: o.yaxisvalueborderdashgap
                }).vtrendlines = n.trendlines, e.trendlines = n.vtrendlines, a.isstacked && (t.isPercent = (0, l.pluckNumber)(a.stack100percent, 0)), {
                    xAxisConf: [e],
                    yAxisConf: [t]
                }
            }

            function h() {
                var e, t, a, i, n, o, r, s, c, h, u, d, g, p, f, m, v, b, x, y = this.config,
                    C = this.getChildren(),
                    k = C.yAxis && C.yAxis[0],
                    S = C.xAxis && C.xAxis || [],
                    w = l.preDefStr.POSITION_BOTTOM,
                    L = l.preDefStr.POSITION_TOP,
                    A = y.legendposition ? y.legendposition.split("-") : [],
                    N = y.xDepth,
                    T = y.yDepth,
                    E = C.canvas[0],
                    F = y.canvasBgDepth,
                    _ = y.canvasBaseDepth,
                    P = y.canvasBasePadding,
                    D = C.canvas[0].config.canvasBorderWidth,
                    I = y.realTimeConfig && y.realTimeConfig.showRTValue,
                    M = y.borderWidth,
                    O = y.canvasMarginTop,
                    R = y.canvasMarginBottom,
                    B = y.canvasMarginLeft,
                    V = y.canvasMarginRight,
                    G = y.minCanvasHeight,
                    z = y.minCanvasWidth,
                    H = y.minChartWidth,
                    W = y.minChartHeight,
                    j = y.height,
                    U = y.width,
                    q = !1,
                    Y = !1,
                    X = y.origCanvasTopMargin,
                    K = y.origCanvasBottomMargin,
                    Z = y.origCanvasLeftMargin,
                    J = y.origCanvasRightMargin;
                y.canvasWidth - 2 * M < H && (d = (y.canvasWidth - H) / 2), y.canvasHeight - 2 * M < W && (u = (y.canvasHeight - W) / 2), this._allocateSpace({
                    top: u || M,
                    bottom: u || M,
                    left: d || M,
                    right: d || M
                }), a = S[0], this._resetViewPortConfig && this._resetViewPortConfig(), this._setAxisScale && this._setAxisScale(), e = .7 * y.availableWidth, this._calculateChartShift("yAxis"), y.yAxisSpaceAllocation = v = a && a.placeAxis(e), a && this._allocateSpace(v), f = .225 * y.availableHeight, p = this._manageActionBarSpace && this._manageActionBarSpace(f) || {}, this._allocateSpace(p), this._manageLegendSpace && this._manageLegendSpace(), t = A[0] === w || A[0] === L ? .6 * y.availableHeight : .6 * y.availableWidth, T && (this._allocateSpace({
                    left: T
                }), y.shift = N + P + _), F && this._allocateSpace({
                    top: F
                }), y.canvasWidth - 2 * D < z && (m = (y.canvasWidth - z) / 2), this._allocateSpace({
                    left: m || D,
                    right: m || D
                }), z > U - B - V && (Y = !0, i = y.canvasWidth - z, x = B + V, B = y.canvasMarginLeft = i * B / x, V = y.canvasMarginRight = i * V / x), r = B > y.canvasLeft ? B - y.canvasLeft : 0, s = V > U - y.canvasRight ? V + y.canvasRight - U : 0, this._allocateSpace({
                    left: r,
                    right: s
                }), this._allocateSpace({
                    left: _
                }), Y && (x = Z + J, (h = y.canvasWidth) > z && (r = (i = h - z) * Z / x, s = i * J / x), this._allocateSpace({
                    left: r,
                    right: s
                })), y.actualCanvasMarginRight = s, y.actualCanvasMarginBottom = o, this._manageChartMenuBar(t), t = .2 * y.availableHeight, y.sumValueSpace = this._getSumValueSpace(t), this._allocateSpace(y.sumValueSpace), t = .3 * y.availableHeight, y.realtimeEnabled && (I ? this._allocateSpace(this._realTimeValuePositioning(t)) : this._hideRealTimeValue()), t = .6 * y.availableHeight, this._calculateChartShift("xAxis"), y.xAxisSpaceAllocation = b = k && k.placeAxis(t), k && this._allocateSpace(b), t = .3 * y.availableHeight, this._manageScrollbarPosition && this._manageScrollbarPosition(t), y.canvasHeight - 2 * D < G && (g = (y.canvasHeight - G) / 2), this._allocateSpace({
                    top: g || D,
                    bottom: g || D
                }), G > j - O - R && (q = !0, i = y.canvasHeight - G, x = O + R, O = y.canvasMarginTop = i * O / x, R = y.canvasMarginBottom = i * R / x), n = O > y.canvasTop ? O - y.canvasTop : 0, o = R > j - y.canvasBottom ? R + y.canvasBottom - j : 0, this._allocateSpace({
                    top: n,
                    bottom: o
                }), q && (x = X + K, (c = y.canvasHeight) > G && (n = (i = c - G) * X / x, o = i * K / x), this._allocateSpace({
                    top: n,
                    bottom: o
                })), y.actualCanvasMarginTop = n, y.actualCanvasMarginLeft = r, E.setDimension({
                    top: y.canvasTop,
                    left: y.canvasLeft,
                    width: y.canvasWidth,
                    height: y.canvasHeight
                })
            }

            function u() {
                var e, t, a, i, n = this.config,
                    o = this.getChildren(),
                    r = o.xAxis && o.xAxis[0],
                    l = o.yAxis && o.yAxis[0],
                    s = o.scrollBar && o.scrollBar[0] && o.scrollBar[0].config,
                    c = o.legend && o.legend[0],
                    h = n.xDepth || 0,
                    u = o.canvas[0].config,
                    d = u.canvasBorderWidth,
                    g = u.canvasPadding,
                    p = u.canvasTop,
                    f = u.canvasLeft,
                    m = p - d,
                    v = p + u.canvasHeight + d,
                    b = f - (n.shift || 0) - d,
                    x = f + u.canvasWidth + d + n.sumValueSpace.right;
                l && this._allocateXAxisLabelSpace(l), e = u.canvasPaddingLeft, t = u.canvasPaddingRight, a = u.canvasPaddingTop, i = u.canvasPaddingBottom, l && l.setAxisDimention({
                    x: u.canvasLeft + e,
                    y: l.config.isOpposit ? m : v,
                    opposite: l.config.isOpposit ? v : m,
                    axisLength: u.canvasWidth - e - t
                }), r && r.setAxisDimention({
                    x: (r.config.isOpposit ? x : b) + (this.isScrollEnabled() && s.isOpposite && n.shift || 0),
                    y: p + h + Math.max(a, g),
                    opposite: r.config.isOpposit ? b : x,
                    axisLength: u.canvasHeight - h - Math.max(a, g) - Math.max(i, g)
                }), c && c.postSpaceManager(), this.allocateDimensionOfChartMenuBar()
            }
            var d = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getName = function() {
                    return "MSBarCartesian"
                }, t.getName = function() {
                    return "MSBarCartesian"
                }, a.__setDefaultConfig = function() {
                    e.prototype.__setDefaultConfig.call(this), this.config.enablemousetracking = !0
                }, a._feedAxesRawData = function() {
                    return c.call(this)
                }, a._spaceManager = function() {
                    h.call(this)
                }, a._postSpaceManagement = function() {
                    u.call(this)
                }, a.getDSdef = function() {
                    return r["default"]
                }, a.getDSGroupdef = function() {}, t
            }(o["default"]);
            t["default"] = d
        },
        519: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(417)),
                r = a(520),
                l = i(a(521)),
                s = i(a(522)),
                c = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).registerFactory("dataset", l["default"], ["vCanvas"]), t.registerFactory("legend", s["default"]), t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "MSCartesian"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "MSCartesian"
                    }, a.getType = function() {
                        return "chartAPI"
                    }, a._manageLegendSpace = function() {
                        r._manageLegendSpace.call(this)
                    }, a.manageGradientLegendSpace = function(e) {
                        return r.manageGradientLegendSpace.call(this, e)
                    }, t
                }(o["default"]);
            t["default"] = c
        },
        520: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t._manageLegendSpace = function() {
                var e, t, a, n, o = this.config,
                    r = this.getChildren("legend") && this.getChildren("legend")[0],
                    l = this.getChildren("gLegend") && this.getChildren("gLegend")[0],
                    s = this.getFromEnv("dataSource").colorrange,
                    c = o.hasLegend,
                    h = {},
                    u = this.hasGradientLegend,
                    d = this.getFromEnv("dataSource").chart,
                    g = (0, i.pluckNumber)(d.mapbycategory, 0);
                u && s && (0, i.pluckNumber)(s.gradient) && !g ? (e = l.conf, u = !0, o.gLegendEnabled = !0, t = e.legendPosition ? e.legendPosition.split("-") : [], n = t[0] === i.POSITION_RIGHT || t[0] === i.POSITION_LEFT ? .4 : .5) : (e = r && r.config, u = !1, o.gLegendEnabled = !1, t = e && e.legendPos ? e.legendPos.split("-") : [i.POSITION_BOTTOM], n = t[0] === i.POSITION_RIGHT || t[0] === i.POSITION_LEFT ? .8 : .4);
                a = t[0] === i.POSITION_ABSOLUTE ? .4 * o.availableHeight : t[0] === i.POSITION_RIGHT || t[0] === i.POSITION_LEFT ? o.availableWidth * n : o.availableHeight * n;
                u ? h = this.manageGradientLegendSpace(a) : !1 !== c && r && !r.getState("removed") && (h = r && r._manageLegendPosition(a));
                h && this._allocateSpace(h)
            }, t.manageGradientLegendSpace = function(e) {
                var t, a, n, o = this.config,
                    r = this.getFromEnv("gLegend"),
                    l = r && r.conf,
                    s = {
                        top: 0,
                        bottom: 0,
                        left: 0,
                        right: 0
                    };
                o.gLegendPadding = (0, i.pluckNumber)(this.getFromEnv("chart-attrib").legendpadding, 10), a = Math.min(o.gLegendPadding, .5 * e), l && (t = l.legendPosition ? l.legendPosition.split("-") : [], n = r.getLogicalSpace(e), t[0] === i.POSITION_BOTTOM ? s.bottom = (n.height || 0) + a : t[0] === i.POSITION_TOP ? s.top = (n.height || 0) + a : t[0] === i.POSITION_LEFT ? s.left = (n.width || 0) + a : t[0] !== i.POSITION_ABSOLUTE && (s.right = (n.width || 0) + a));
                return s
            };
            var i = a(193)
        },
        521: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t, a, n, o, r = e.getFromEnv("dataSource").dataset,
                    l = e.getChildren().canvas[0],
                    s = t = l.getChildren("vCanvas")[0],
                    c = e.config.defaultDatasetType || "";
                if (!r) return void e.setChartMessage();
                (n = e.getDSGroupdef()) && ((0, i.componentFactory)(t, n, "datasetGroup_" + c, 1, [r]), o = t.getChildren("datasetGroup_" + c));
                o && (s = o[0]), a = e.getDSdef(), (0, i.datasetFactory)(s, a, "dataset", r.length, r)
            };
            var i = a(193)
        },
        522: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t;
                (0, n.componentFactory)(e, o["default"], "legend"), (t = e.getChildren("legend")[0]).configure(), e.addToEnv("legend", t), e.config.showLegend || t.remove()
            };
            var n = a(193),
                o = i(a(523))
        },
        523: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(192)),
                o = i(a(210)),
                r = i(a(207)),
                l = a(193),
                s = a(208),
                c = i(a(524)),
                h = a(201),
                u = a(303),
                d = i(a(526)),
                g = a(205),
                p = a(527);

            function f(e, t) {
                var a = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var i = Object.getOwnPropertySymbols(e);
                    t && (i = i.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }))), a.push.apply(a, i)
                }
                return a
            }
            var m = {
                    left: l.POSITION_START,
                    right: l.POSITION_END,
                    center: l.POSITION_MIDDLE
                },
                v = Math,
                b = v.min,
                x = v.max,
                y = v.floor,
                C = v.ceil,
                k = l.preDefStr.NORMAL,
                S = {
                    fontWeight: {
                        1: l.preDefStr.BOLD,
                        0: k
                    },
                    fontStyle: {
                        1: "italic",
                        0: k
                    },
                    textDecoration: {
                        1: "underline",
                        0: l.preDefStr.noneStr
                    }
                };
            (0, h.addDep)({
                name: "legendAnimation",
                type: "animationRule",
                extension: d["default"]
            });
            var w = function(e) {
                    return Array(e).fill()
                },
                L = function(e) {
                    function t() {
                        var t;
                        t = e.call(this) || this;
                        var a = (0, o["default"])(t);
                        return a._stateCosmetics = {}, a._legendState = [], a.dragDraw = function() {
                            a.draw()
                        }, a.drawScroll = function() {
                            a.createItemGroup(), a.createCaptionGroup()
                        }, a.config.handlers = function(e) {
                            var t, a;
                            return {
                                dragstart: function() {
                                    t = e.config.xL || e.config.xPos, a = e.config.yL || e.config.yPos
                                },
                                dragmove: function(i) {
                                    var n, o, r = i.originalEvent.data[0],
                                        l = i.originalEvent.data[1],
                                        s = e.config,
                                        c = e.getFromEnv("chartConfig"),
                                        h = (s.borderWidth || 0) + 2;
                                    n = b(x(t + r, h), c.width - s.width - h), o = b(x(a + l, h), c.height - s.height - h), s.xPos = s.xL = n, s.yPos = s.yL = o, e.addJob("draw", e.dragDraw, g.priorityList && g.priorityList.draw)
                                }
                            }
                        }(a), t
                    }(0, r["default"])(t, e);
                    var a = t.prototype;
                    return a.createItem = function(e) {
                        var t;
                        return t = new c["default"], this.attachChild(t, "legendItem"), t.setLinkedItem("owner", e), t.addEventListener("mouseover", (function() {
                            t.setLegendState("hover", !0)
                        })), t.addEventListener("mouseout", (function() {
                            t.removeLegendState("hover")
                        })), t.getId()
                    }, a.getItem = function(e) {
                        var t = this.getChildren().legendItem;
                        if (void 0 === e) return !1;
                        if (t)
                            for (var a = 0; a < t.length; a++)
                                if (t[a].getId() === e) return t[a]
                    }, a.getSortedLegendItems = function() {
                        var e, t, a = this.getChildren("legendItem") || [],
                            i = this.config.reverselegend,
                            n = {},
                            o = [];
                        for (e = 0, t = a.length; e < t; e++) void 0 === a[e].config.index ? n[t + e] = a[e] : n[a[e].config.index] = a[e];
                        return Object.keys(n).sort((function(e, t) {
                            return i ? t - e : e - t
                        })).forEach((function(e) {
                            o.push(n[e])
                        })), o
                    }, a.disposeItem = function(e) {
                        var t = this.getItem(e);
                        t && t.remove()
                    }, a.getName = function() {
                        return "legend"
                    }, a.getType = function() {
                        return "legend"
                    }, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        t.enabled = !0, t.symbolWidth = 12, t.borderRadius = 1, t.lastScrollPos = 0, t.oriSymbolPadding = 3, t.textPadding = 4, t.scrollY = 0, t.scrollX = 0, t.backgroundColor = "#ffffff", t.initialItemX = 0, t.title = {
                            text: l.BLANKSTRING,
                            x: 0,
                            y: 0,
                            padding: 2
                        }, t.scroll = {}, t.horizontalScroll = {}, t.itemStyle = {}
                    }, a.createLegendGroup = function() {
                        var e, t = this.config,
                            a = this.getFromEnv("chart"),
                            i = a.config,
                            n = this.getFromEnv("animationManager"),
                            o = .5 * (t.borderWidth || 0) + 2,
                            r = this.getContainer("legendGroup");
                        t.xL && (t.xL = b(x(t.xL, o), i.width - t.width - o)), t.yL && (t.yL = b(x(t.yL, o), i.height - t.height - o)), e = n.setAnimation({
                            el: r || "group",
                            attr: {
                                name: "legendGroup",
                                transform: ["T", t.xL || t.xPos, t.yL || t.yPos]
                            },
                            container: a.getChildContainer("legendGroup"),
                            component: this
                        }), r || this.addContainer("legendGroup", e)
                    }, a.drawDualScrollRect = function() {
                        var e = this.getGraphicalElement("dualScrollRect"),
                            t = this.getGraphicalElement("scrollbarContainer"),
                            a = this.getFromEnv("animationManager");
                        this.config.scroll.enabled && this.config.horizontalScroll.enabled ? (e = a.setAnimation({
                            el: e || "rect",
                            attr: {
                                x: this.config.width - 12,
                                y: this.config.height - 12,
                                height: 12,
                                width: 12,
                                fill: this.config.legendScrollBgColor,
                                stroke: "none"
                            },
                            component: this,
                            container: t
                        }), e = this.addGraphicalElement("dualScrollRect", e)) : e && e.remove()
                    }, a.draw = function() {
                        this.createLegendGroup(), this.drawLegendBox(), this.createItemGroup(), this.createCaptionGroup(), this.drawCaption(), this.createScrollGroup(), this.decideScroll(), this.drawDualScrollRect()
                    }, a.decideScroll = function() {
                        var e = this.config,
                            t = e.scroll.enabled,
                            a = e.horizontalScroll.enabled;
                        t ? this.createScrollBar() : e.hasScroll && (this.getChildren("legendScrollBar")[0].remove(), e.hasScroll = !1), a ? this.createScrollBar(a) : e.hasHorizontalScroll && (this.getChildren("legendHorizontalScrollBar")[0].remove(), e.hasHorizontalScroll = !1)
                    }, a.createCaptionGroup = function() {
                        var e, t = this.getChildContainer("captionGroup"),
                            a = this.getFromEnv("animationManager"),
                            i = this.getContainer("legendGroup"),
                            n = (0, l.pluckNumber)(this.config.padding, 4),
                            o = .5 * n,
                            r = x(this.config.height - n, 0),
                            s = x(this.config.width - n, 0),
                            c = "," + (this.config.horizontalScroll.enabled ? s : this.config.width) + "," + (this.config.scroll.enabled ? r : this.config.height);
                        this.config.horizontalScroll.enabled ? (e = this.addChildContainer("captionGroup", a.setAnimation({
                            el: t && null !== t[0] ? t : "group",
                            attr: {
                                name: "captionGroup",
                                transform: ["T", 0, this.config.scrollY || 0]
                            },
                            container: i,
                            component: this
                        })), this.config.scroll.enabled ? e.attr({
                            "clip-rect": "0," + o + c
                        }) : e.attr({
                            "clip-rect": null
                        })) : t && t.remove()
                    }, a.createItemGroup = function() {
                        var e, t = this.getFromEnv("animationManager"),
                            a = this.getContainer("legendGroup"),
                            i = this.getChildContainer("itemGroup"),
                            n = (0, l.pluckNumber)(this.config.padding, 4),
                            o = .5 * n,
                            r = x(this.config.height - n, 0),
                            s = x(this.config.width - n, 0),
                            c = "," + (this.config.horizontalScroll.enabled ? s : this.config.width) + "," + (this.config.scroll.enabled ? r : this.config.height);
                        return e = t.setAnimation({
                            el: i || "group",
                            attr: {
                                name: "item",
                                transform: ["T", this.config.scrollX || 0, this.config.scrollY || 0]
                            },
                            container: a,
                            component: this
                        }), i || this.addChildContainer("itemGroup", e), this.config.scroll.enabled || this.config.horizontalScroll.enabled ? e.attr({
                            "clip-rect": "0," + o + c
                        }) : e.attr({
                            "clip-rect": null
                        }), e
                    }, a.createScrollGroup = function() {
                        var e = this.getFromEnv("animationManager"),
                            t = this.getChildContainer("scrollGroup"),
                            a = this.getContainer("legendGroup");
                        !this.config.scroll.enabled && !this.config.horizontalScroll.enabled || this.getGraphicalElement("scrollbarContainer") || this.addGraphicalElement("scrollbarContainer", e.setAnimation({
                            el: t || "group",
                            attr: {
                                name: "scrollGroup"
                            },
                            container: a,
                            component: this,
                            label: "scrollbar"
                        }))
                    }, a.createScrollBar = function(e) {
                        void 0 === e && (e = !1);
                        var t, a, i, n, o, r, s, c, h = this,
                            d = h.config,
                            p = h.getFromEnv("chart-attrib"),
                            f = e ? "legendHorizontalScrollBar" : "legendScrollBar",
                            m = h.getChildren(f) && h.getChildren(f)[0],
                            v = d.borderWidth || 0,
                            b = .5 * v,
                            y = (0, l.pluckNumber)(d.padding, 4),
                            C = d.width,
                            k = d.height;
                        t = {
                            conf: {
                                isHorizontal: e
                            },
                            handler: {
                                scroll: function(t) {
                                    d.lastScrollPos = t, e ? d.scrollX = (n - d.totalWidth) * t : d.scrollY = (i - d.totalHeight) * t, h.addJob("scrollDraw", h.drawScroll, g.priorityList && g.priorityList.draw)
                                },
                                mousedown: function(e) {
                                    e.preventDefault(), e.stopPropagation()
                                }
                            }
                        }, p.legendscrollbgcolor && (t.conf.color = (0, l.convertColor)(p.legendscrollbgcolor)), m || (m = h.attachChild(new u.ScrollBar, f), e ? this.config.hasHorizontalScroll = !0 : this.config.hasScroll = !0), m.configure(t.conf), m.attachEventHandlers(t.handler), a = m.config, e ? (o = b, r = k - m.getLogicalSpace().height - v + .5 * y, c = C - v, this.config.scroll.enabled && this.config.horizontalScroll.enabled && (c -= 12), c = x(c, 0), n = x(C - y, 0), a.scrollRatio = (n + y) / d.totalWidth) : (i = x(k - y, 0), o = C - m.getLogicalSpace().width - v + .5 * y, r = b, s = k - v, this.config.scroll.enabled && this.config.horizontalScroll.enabled && (s -= 12), s = x(s, 0), a.scrollRatio = (i + y) / d.totalHeight), a.startPercent = 0, a.scrollPosition = d.lastScrollPos, a.parentLayer = h.getChildContainer("scrollGroup"), m.setDimension({
                            x: o,
                            y: r,
                            height: s,
                            width: c
                        })
                    }, a.drawCaption = function() {
                        var e, t, a, i, n = this.getGraphicalElement("caption"),
                            o = this.config.horizontalScroll.enabled ? this.getChildContainer("captionGroup") : this.getChildContainer("itemGroup"),
                            r = this.getFromEnv("animationManager"),
                            s = this.config,
                            c = (0, l.pluckNumber)(s.padding, 4),
                            h = s.scroll.enabled,
                            u = s.width;
                        if (s.title && s.title.text !== l.BLANKSTRING && s.validLegendItem) {
                            switch (s.title.align) {
                                case l.POSITION_START:
                                    a = c;
                                    break;
                                case l.POSITION_END:
                                    a = u - c - (h ? 10 : 0);
                                    break;
                                default:
                                    a = .5 * u
                            }
                            t = s.title.style, e = {
                                text: s.title.text,
                                title: s.title.originalText || l.BLANKSTRING,
                                x: a,
                                y: c,
                                fill: s.title.style.color,
                                direction: s.textDirection,
                                "line-height": t.lineHeight,
                                "vertical-align": l.POSITION_TOP,
                                "text-anchor": s.title.align,
                                opacity: 1
                            }, i = {
                                "font-weight": t.fontWeight,
                                "font-style": t.fontStyle,
                                "font-family": t.fontFamily,
                                "font-size": t.fontSize
                            }, n && n.show(), n && n[0] ? r.setAnimation({
                                el: n,
                                attr: e,
                                component: this,
                                container: o,
                                css: i
                            }) : (n = r.setAnimation({
                                el: "text",
                                attr: e,
                                component: this,
                                container: o,
                                css: i
                            }), n = this.addGraphicalElement("caption", n)), this.getFromEnv("toolTipController").enableToolTip(n, s.title.originalText)
                        } else n && r.setAnimation({
                            el: n,
                            component: this,
                            doNotRemove: !0,
                            callback: function() {
                                n.hide()
                            }
                        })
                    }, a.drawLegendBox = function() {
                        var e, t = this.getFromEnv("animationManager"),
                            a = this.config,
                            i = this.getContainer("legendGroup"),
                            n = a.width,
                            o = this.getGraphicalElement("box"),
                            r = a.height,
                            l = a.borderRadius,
                            s = a.backgroundColor,
                            c = a.borderColor,
                            h = a.borderAlpha,
                            u = a.backgroundAlpha,
                            d = a.borderWidth || 0;
                        return e = t.setAnimation({
                            el: o || "rect",
                            attr: {
                                x: 0,
                                y: 0,
                                width: n,
                                height: r,
                                r: l,
                                stroke: c,
                                "stroke-width": d,
                                fill: s || "none",
                                "stroke-opacity": h / 100,
                                "fill-opacity": u / 100,
                                cursor: a.legendAllowDrag ? "move" : "default"
                            },
                            container: i,
                            component: this,
                            label: "legendGroup"
                        }), o || (this.addGraphicalElement("box", e), e.shadow(a.shadow)), e
                    }, a._calculateTopPosition = function(e) {
                        var t = this.getFromEnv("chart"),
                            a = t.config,
                            i = e,
                            n = t.getChildren("caption") && t.getChildren("caption")[0],
                            o = t.getChildren("subCaption") && t.getChildren("subCaption")[0],
                            r = t.getChildren("chartMenuBar") && t.getChildren("chartMenuBar")[0],
                            s = a.oriTopSpace;
                        return !a.toolbarY && r && r.props && r.props.height && (s > r.props.height + r.props.y || (i = r.props.y + r.props.height)), n && n.config && n.config.text && n.config.text !== l.BLANKSTRING && n.config.height && 1 === n.config.isOnTop && (i = n.config.height + n.config.y + n.config.captionPadding), o && o.config && o.config.height && 1 === o.config.isOnTop && (i = o.config.y + o.config.height + (n && n.config && n.config.captionPadding || 0)), x(i, e)
                    }, a.getPosition = function() {
                        var e, t, a, i, n, o, r, s, c, h, u = this.getFromEnv("chart"),
                            d = u.config,
                            g = this.config,
                            p = u.getChildren("canvas"),
                            f = p && p.length > 1 ? d.height - p[0].config.canvasBottom : d.height - d.canvasBottom,
                            m = d.canvasLeft,
                            v = d.canvasRight,
                            b = d.canvasWidth,
                            x = g.chartMarginLeft || 0,
                            y = g.chartMarginRight || 0,
                            C = g.chartMarginTop || 0,
                            k = g.chartMarginBottom || 0,
                            S = d.actionBarHeight || 0,
                            w = g.actualCanvasMarginLeft || 0,
                            L = d.actualCanvasMarginTop || 0,
                            A = d.actualCanvasMarginBottom || 0,
                            N = d.actualCanvasMarginRight || 0,
                            T = g.alignLegendWithCanvas,
                            E = d.height,
                            F = d.canvasTop,
                            _ = g.width || 0,
                            P = g.height || 0,
                            D = d.borderWidth,
                            I = d.oriCanvasLeft,
                            M = d.oriCanvasRight,
                            O = d.oriTopSpace,
                            R = d.oriBottomSpace,
                            B = 0,
                            V = 0,
                            G = g.borderWidth || 0,
                            z = g.legendPos ? g.legendPos.split("-") : [],
                            H = u.getChildren("caption") && u.getChildren("caption")[0],
                            W = u.getChildren("subCaption") && u.getChildren("subCaption")[0];
                        return z[0] !== l.POSITION_LEFT && z[0] !== l.POSITION_RIGHT || (g.align = z[0], g.verticalAlign = l.POSITION_MIDDLE, c = g.layout = "vertical"), z[0] === l.POSITION_ABSOLUTE ? (e = g.legendXPosition, t = g.legendYPosition, e > (a = d.width - _ - D) && (e = a), t > (i = d.height - P - D) && (t = i)) : c ? (z[0] === l.POSITION_LEFT ? e = x + w + D : z[0] === l.POSITION_RIGHT && (e = d.width - y - N - _ - D), B = (0, l.pluckNumber)(O, F), V = (0, l.pluckNumber)(R, f), z[1] === l.POSITION_TOP ? (t = B + (g.y || 0), t = this._calculateTopPosition(t)) : z[1] === l.POSITION_BOTTOM ? (t = E - V - P + (g.y || 0), (h = V - (D + k + S + (H && 0 === H.config.isOnTop && H.config.height ? H.config.height + H.config.captionPadding : 0) + (W && 0 === H.config.isOnTop ? W.config.height : 0))) < 0 && (t += h)) : t = B + .5 * (E - V - B - P) + (g.y || 0)) : (r = d.width - (x + w + (y + N)), s = T ? b - _ : r - _, n = T ? (0, l.pluckNumber)(I, m) : x + w, o = T ? d.width - (0, l.pluckNumber)(M, v) : y + N, e = z[1] === l.POSITION_LEFT ? n : z[1] === l.POSITION_RIGHT ? d.width - (_ + o) : n + s / 2, z[0] === l.POSITION_TOP ? (t = C + L, t = this._calculateTopPosition(t)) : t = E - P - A - k - S), (0, l.crispBound)(e, t, _, P, G)
                    }, a.setTranslation = function(e, t) {
                        var a = this.config;
                        a._translateX = e, a._translateY = t, a.translate = "t" + e + "," + t
                    }, a.allocatePosition = function() {
                        var e, t = this.config;
                        e = t.translate ? (0, l.crispBound)(t._translateX, t._translateY, t.width, t.height, t.borderWidth) : this.getPosition(), t.xPos = e.x, t.yPos = e.y, t.width = e.width, t.height = e.height
                    }, a._manageLegendPosition = function(e) {
                        var t, a = this.config,
                            i = a.legendPos ? a.legendPos.split("-") : [],
                            n = {
                                left: 0,
                                right: 0,
                                top: 0,
                                bottom: 0
                            };
                        return a.padding = 4, a.textPadding = 4, t = i[0] === l.POSITION_ABSOLUTE ? this._placeLegendBlockBottom(e, .6) : i[0] === l.POSITION_LEFT || i[0] === l.POSITION_RIGHT ? this._placeLegendBlockRight(e) : this._placeLegendBlockBottom(e), i[0] === l.POSITION_LEFT ? n.left = t && t.right || 0 : i[0] === l.POSITION_RIGHT ? n.right = t && t.right || 0 : i[0] === l.POSITION_TOP ? n.top = t && t.bottom || 0 : i[0] !== l.POSITION_ABSOLUTE && (n.bottom = t && t.bottom || 0, n.right = t && t.right || 0), n
                    }, a.setDimension = function(e) {
                        var t, a, i, o, r, s, c, h, u, d, g, m, v, k, S, L, A, N, T, E, F, _, P, D, I, M, O, R = this.config,
                            B = this.getSortedLegendItems(),
                            V = B.length,
                            G = e.width,
                            z = e.height,
                            H = z,
                            W = 0,
                            j = 0,
                            U = 0,
                            q = 0,
                            Y = 0,
                            X = 0,
                            K = 0,
                            Z = [],
                            J = R.padding,
                            $ = R.textPadding,
                            Q = this.getFromEnv("smartLabel"),
                            ee = this.getStateCosmetics("default"),
                            te = parseInt(ee.text["font-size"], 10) || 10,
                            ae = R.title,
                            ie = ae.padding,
                            ne = 0,
                            oe = R.minimiseWrappingInLegend,
                            re = R.legendPadding,
                            le = R.legendScale,
                            se = R.alignLegendWithCanvas,
                            ce = R.numColumns,
                            he = R.numRows,
                            ue = R.oriSymbolPadding,
                            de = Number.MAX_SAFE_INTEGER,
                            ge = G,
                            pe = !1,
                            fe = !!he,
                            me = 0;
                        for (g = {
                                width: 2 * J,
                                height: 2 * J
                            }, (d = te + 1) <= 0 && (d = 1), G = Math.max(G - 2 * J, 0), ue *= le, (d = b(d *= le, G)) <= 0 && (ue = d = 0), R.symbolWidth = d, R.textPadding = 4, R.legendHeight = u = d + 2 * ue, R.rowHeight = s = x(parseInt(ee.text["line-height"], 10) || 12, u), r = $ + ue + J, Q.setStyle((0, l.extend2)({}, ee.text)), m = Q.getOriSize(l.TESTSTR).height, c = re + R.borderWidth / 2 + 1, c = x(b(c, z - m - 8), 0), re = .05 * s, R.initialItemY = 0, R.initialItemX = 0, I = u + re + $ + ue + 2 * J, v = 0; v < V; v += 1) a = t = (o = B[v]).config || (o.config = {}), (i = t.name = (0, l.parseUnsafeString)(a.label)) === l.BLANKSTRING || 0 === a.enabled || !1 === a.enabled || o.getState("removed") ? t.enabled = 0 : (t.enabled = 1, U += 1, F = !0, _ = Q.getOriSize(i), W = x(W, b(_.width, G - I)), X = x(X, b(_.height, H)), t._selfTotalWidth = _.width + I, j += _.width);
                        if (R.validLegendItem = F, q = j / U, j += I * U, R.x = !se && j > ge ? 0 : R.x, F) {
                            if (q += I, W += I, ae.oriText !== l.BLANKSTRING && (pe = !0, Q.setStyle(ae.style), _ = Q.getSmartText(ae.oriText, G - 2 * J), ae.text = _.text, _.tooltext && (ae.originalText = _.tooltext), ne = _.width + 2 * J, K = _.height + ie), S = W, he ? !ce && he ? (me = 1, U < he && (he = U), ce = C(U / he)) : C(U / ce) < he && C(U / he) < ce || U > ce * he ? he = C(U / ce) : ce === C(U / he) && (me = 1) : j <= G ? S = 1 === (he = C(U / (ce = ce || U))) ? j / U : W : !ce && G > W && (oe || 1.5 * q > W) ? (U < (ce = y(G / W)) && (ce = U), S = W) : ce && G / ce > q ? (S = G / ce) > W && (S = W) : !ce && G >= 2 * q ? (U < (ce = y(G / q)) && (ce = U), (S = y(G / ce)) > W && (S = W)) : ce || (ce = 1, S = G), Y = fe ? W : S, !fe && 1.5 * q < W && (S = q), he && !oe) {
                                var ve, be, xe = Y;
                                W > 1.5 * q && (xe = q), be = b(U, y(G / xe)), ve = C(U / be), R.numRows && ve !== he || R.numColumns && be !== ce || 1 === he && 1 !== ve || (Y = xe, ce = be, he = ve)
                            }
                            for (Q.setStyle((0, l.extend2)({}, ee.text)), v = 0; v < V; v++) t = B[v].config, 1 === he && (Y = W > 2.5 * q ? q : t._selfTotalWidth), 0 === (h = Math.ceil(Y - I)) ? (t.name = l.BLANKSTRING, t._totalWidth = d + ue, t._selfTotalWidth = t._totalWidth, t._selfTotalHeight = s) : (_ = Q.getSmartText(t.name, h + J), t.name = _.text, t._textHeight = _.height, _.tooltext && (t.originalText = _.tooltext), t._selfTotalHeight = _.height + $ > s ? $ + _.height : s, t._totalWidth = d + r + _.width, t._selfTotalWidth = I + _.width, t._legendTestY = s > _.height ? (s - _.height) / 2 : 0, X = x(X, t._textHeight), de = x(1, b(de, t._textHeight)));
                            if (L = {
                                    style: {
                                        display: "grid",
                                        justifyItems: "center",
                                        alignItems: "start"
                                    }
                                }, A = [], pe && A.push({
                                    style: {
                                        width: ne,
                                        height: K,
                                        gridRowStart: 1,
                                        gridRowEnd: 2,
                                        gridColumnStart: 1,
                                        gridColumnEnd: 2
                                    }
                                }), A.push({
                                    style: {
                                        display: "grid",
                                        justifyItems: "start",
                                        alignItems: "start",
                                        width: b(j, G, Y * ce),
                                        paddingEnd: J,
                                        paddingTop: J,
                                        gridRowStart: A.length + 1,
                                        gridRowEnd: A.length + 2,
                                        gridColumnStart: 1,
                                        gridColumnEnd: 2
                                    }
                                }), N = [], fe || 1 === he)
                                for (k = 0, v = 1; k < V; k++) 1 === (t = (o = B[k]).config).enabled && (0 === me ? (M = C(v / ce), O = v % ce == 0 ? ce : v % ce) : (M = v % he == 0 ? he : v % he, O = C(v / he)), N.push({
                                    style: {
                                        width: 1 === he ? t._selfTotalWidth : O === ce ? t._selfTotalWidth : Y,
                                        height: t._selfTotalHeight,
                                        gridRowStart: M,
                                        gridRowEnd: M + 1,
                                        gridColumnStart: O,
                                        gridColumnEnd: O + 1
                                    }
                                }), v += 1);
                            else {
                                for (he = 0, de = x(de, s), k = 0; k < V; k++) 1 === (t = (o = B[k]).config).enabled && (he += Math.ceil(t._selfTotalHeight / de));
                                0 === he && (he = Math.max(1, Math.ceil(U / ce))), Z = w(he).map((function() {
                                    return w(ce)
                                }));
                                var ye, Ce = 0,
                                    ke = 0;
                                for (k = 0, v = 1; k < V; k++)
                                    if (1 === (t = (o = B[k]).config).enabled) {
                                        for (; Ce < he;) {
                                            for (; ke < ce;) {
                                                if (void 0 === Z[Ce][ke]) {
                                                    O = ke + 1, M = Ce + 1, ye = +(t._selfTotalHeight / de).toFixed(0), Z[Ce][ke] = !0;
                                                    for (var Se = Ce; Se < Ce + ye; Se++) Z[Se][ke] = !0
                                                }
                                                if (ke++, Z[Ce][ke - 1]) break
                                            }
                                            if (ke >= ce && (ke = 0, Ce++), ye) break
                                        }
                                        N.push({
                                            style: {
                                                width: O === ce ? t._selfTotalWidth : S,
                                                height: t._selfTotalHeight,
                                                gridRowStart: M,
                                                gridRowEnd: M + ye,
                                                gridColumnStart: O,
                                                gridColumnEnd: O + 1
                                            }
                                        }), v += 1, ye = void 0
                                    }
                                for (v = he = 0; v < Z.length; v++)
                                    for (k = 0; k < ce; k++)
                                        if (Z[v][k]) {
                                            he++;
                                            break
                                        }
                                A[A.length - 1].style.gridTemplateRows = (de + " ").repeat(he).slice(0, -1)
                            }
                            for (A[A.length - 1].children = N, T = (0, p.computeLayout)(function(e) {
                                    for (var t = 1; t < arguments.length; t++) {
                                        var a = null != arguments[t] ? arguments[t] : {};
                                        t % 2 ? f(Object(a), !0).forEach((function(t) {
                                            (0, n["default"])(e, t, a[t])
                                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : f(Object(a)).forEach((function(t) {
                                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t))
                                        }))
                                    }
                                    return e
                                }({}, L, {
                                    children: A
                                })), R.itemWidth = Y, (h = C(Y - I)) < 0 && (ue = h = $ = 0), R.symbolPadding = ue, R.textPadding = $, R.width = R.totalWidth = x(T.layout.width, T.children[T.children.length - 1].layout.width), Q.setStyle((0, l.extend2)({}, ee.text)), k = 0, v = 0; k < V; k++) t = (o = B[k]).config, 1 === he && (h = t._selfTotalWidth) < 0 && (ue = h = $ = 0), 1 === t.enabled && (0 === h && (t.name = l.BLANKSTRING, t._totalWidth = d + ue), t._legendX = T.children[T.children.length - 1].children[v].layout.x, t._legendY = T.children[T.children.length - 1].children[v].layout.y, t._legendH = T.children[T.children.length - 1].children[v].layout.height, v += 1);
                            if (E = he, g.height += E * s + K, R.height = R.totalHeight = T.layout.height + 2 * J, R.rowHeight = s, R.legendNumColumns = ce, R.initialItemX = pe && ne > T.children[T.children.length - 1].layout.width && G > R.width ? T.children[T.children.length - 1].layout.x : 0, R.initialItemY = T.children[T.children.length - 1].layout.y, R.height - 2 * ue > z ? (R.height = z, (P = R.scroll || (R.scroll = {})).enabled = !0, P.flatScrollBars = R.flatScrollBars, P.scrollBar3DLighting = R.scrollBar3DLighting, R.width = R.width + 12 > G ? R.width : R.width + 12) : R.scroll.enabled = !1, R.width > G ? (R.width = G, (D = R.horizontalScroll || (R.horizontalScroll = {})).enabled = !0, D.flatScrollBars = R.flatScrollBars, D.scrollBar3DLighting = R.scrollBar3DLighting, R.height + 12 <= z ? R.height = R.height + 12 : (R.height = z, R.totalHeight += 4, (P = R.scroll || (R.scroll = {})).enabled = !0, P.flatScrollBars = R.flatScrollBars, P.scrollBar3DLighting = R.scrollBar3DLighting, R.scroll.enabled = !0)) : R.horizontalScroll.enabled = !1, R.totalWidth > R.width && R.totalWidth - R.width <= 4) {
                                for (k = 0, v = 0; k < V; k++) 1 === (t = (o = B[k]).config).enabled && (T.children[T.children.length - 1].children[v].style.gridColumnStart % ce != 1 && (t._legendX += 4, 1 === T.children[T.children.length - 1].children[v].style.gridRowStart && (R.totalWidth += 4)), v += 1);
                                R.totalHeight += 4
                            }
                            c += R.height, R.isActive = !0, R.enabled = !0
                        } else R.enabled = !1, R.width = 0, c = 0;
                        return {
                            width: R.width,
                            height: c
                        }
                    }, a._placeLegendBlockBottom = function(e, t) {
                        void 0 === t && (t = 1);
                        var a, i, n, o, r, s = this.getFromEnv("chart"),
                            c = s.config,
                            h = s.getFromEnv("chartWidth"),
                            u = s.getFromEnv("chartHeight"),
                            d = c.canvasLeft,
                            g = c.width - (c.canvasRight || 0),
                            p = s.getFromEnv("smartLabel"),
                            f = this.config,
                            m = f.chartMarginLeft,
                            v = f.chartMarginRight,
                            b = f.chartMarginTop,
                            x = f.alignLegendWithCanvas,
                            y = this.getSortedLegendItems().length,
                            C = f.legendPadding,
                            k = c.canvasMarginRight,
                            S = c.canvasMarginLeft,
                            w = s.getChildren("yAxis"),
                            L = w && w[0].config.isVertical ? w : s.getChildren("xAxis"),
                            A = L && L[0],
                            N = L && L[1],
                            T = A && A.config || {},
                            E = N && N.config || {},
                            F = T.nameMaxW,
                            _ = E.nameMaxW,
                            P = T.name && T.name.style || {},
                            D = E.name && E.name.style || {},
                            I = T.axisName || l.BLANKSTRING,
                            M = E.axisName || l.BLANKSTRING,
                            O = c.canvasWidth - c.canvasMarginLeft - c.canvasMarginRight,
                            R = c.width,
                            B = c.height,
                            V = f.legendPos ? f.legendPos.split("-") : [];
                        return f.paddingBottom = c.height - c.canvasBottom, p.useEllipsesOnOverflow(c.useEllipsesWhenOverflow), p.setStyle(P), o = p.getOriSize(I), p.setStyle(D), r = p.getOriSize(M), O < C && (f.padding = C = O = 0), (o || r) && (i = (0, l.pluckNumber)(o.height, 0) > (0, l.pluckNumber)(r.height, 0) ? (n = F) && o.width : (n = _) && r.width), O = x ? O : h - (i + b > u - e ? 2 * n + v + m + k + S : v + m + S + k), V[0] === l.POSITION_ABSOLUTE && (O = R, f.legendMaxWidth < R ? O = f.legendMaxWidth : O *= t), f.showLegend && 0 !== y ? (f.x = (d - m - g + v) / 2, a = this.setDimension({
                            width: O,
                            height: V[0] === l.POSITION_ABSOLUTE ? f.legendMaxHeight < B ? f.legendMaxHeight : B : e
                        }).height) : (a = 0, f.height = 0, f.width = 0), {
                            bottom: a,
                            right: 0
                        }
                    }, a._placeLegendBlockRight = function(e) {
                        var t, a = e,
                            i = this.config,
                            n = this.getFromEnv("chart"),
                            o = n.config,
                            r = n.getFromEnv("smartLabel"),
                            s = i.legendPadding,
                            c = this.getStateCosmetics("default"),
                            h = o.canvasHeight,
                            u = {},
                            d = this.getSortedLegendItems().length;
                        return a < s && (i.padding = s = a = 0), r.useEllipsesOnOverflow(o.useEllipsesWhenOverflow), r.setStyle((0, l.extend2)({}, c.text)), i.numColumns || i.numRows || (i.numColumns = 1), i.showLegend && 0 !== d ? (t = this.setDimension({
                            width: a - s,
                            height: h
                        }).width, u.right = t + s, u.right + 10 <= a && (u.right += 10)) : (u.right = 0, i.height = 0, i.width = 0), u
                    }, a.postSpaceManager = function() {
                        var e = this.config,
                            t = e.legendPos ? e.legendPos.split("-") : [],
                            a = this.getFromEnv("chart").config.canvasHeight;
                        t[0] !== l.POSITION_RIGHT && t[0] !== l.POSITION_LEFT || (e.totalHeight > a ? (e.totalHeight <= e.height && (e.scroll.enabled = !0, e.scroll.flatScrollBars = e.flatScrollBars, e.scroll.scrollBar3DLighting = e.scrollBar3DLighting, e.width += (e.scroll.scrollBarWidth = 10) + (e.scroll.scrollBarPadding = 2)), e.height = a) : e.scroll.enabled = !1)
                    }, a.configureAttributes = function(t) {
                        void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                        var a, i, n, o, r, s = this.config,
                            c = this.getFromEnv("chart"),
                            h = c.config,
                            u = this.getFromEnv("style"),
                            d = c.getFromEnv("chart-attrib"),
                            g = c.config.is3D,
                            p = this.getFromEnv("color-manager"),
                            f = g ? l.chartPaletteStr.chart3D : l.chartPaletteStr.chart2D,
                            v = s.interactiveLegend = !1 !== c.hasInteractiveLegend && Boolean((0, l.pluckNumber)(d.interactivelegend, 1)),
                            b = (0, l.pluckNumber)(d.useroundedges, 0),
                            y = u.outCancolor,
                            C = t.style && t.style.text,
                            k = (0, l.pluck)(d.legenditemfont, C && C["font-family"], u.outCanfontFamily),
                            w = (0, l.pluckNumber)(d.legendiconscale, 1),
                            L = (0, l.pluckFontSize)(d.legenditemfontsize, C && C["font-size"], u.fontSize) + "px",
                            A = (0, l.pluck)(d.legenditemfontcolor, C && C.color, y).replace(/^#?([a-f0-9]+)/gi, "#$1"),
                            N = (0, l.getFirstColor)((0, l.pluck)(d.legenditemhoverfontcolor, A));
                        s.isActive = !1, s.chartMarginTop = h.origMarginTop, s.chartMarginRight = h.origMarginRight, s.chartMarginBottom = h.origMarginBottom, s.chartMarginLeft = h.origMarginLeft, s.reverselegend = (0, l.pluckNumber)(d.reverselegend, 0), s.showLegend = (0, l.pluckNumber)(d.showlegend, !c.dontShowLegendByDefault, 1), a = (0, l.setLineHeight)({
                            fontSize: L
                        }), s.legendPos = (0, l.pluck)(d.legendposition, c.legendposition, t.legendPosition, l.POSITION_BOTTOM).toLowerCase(), s.numColumns = (0, l.pluckNumber)(Math.floor(d.legendnumcolumns)), s.numRows = (0, l.pluckNumber)(Math.floor(d.legendnumrows)), s.numColumns < 0 && (s.numColumns = void 0), s.numRows < 0 && (s.numRows = void 0), s.legendXPosition = x((0, l.pluckNumber)(d.legendxposition, c.legendxposition, t.legendXPosition, 0), 0), s.legendYPosition = x((0, l.pluckNumber)(d.legendyposition, c.legendyposition, t.legendYPosition, 0), 0), s.legendMaxWidth = (0, l.pluckNumber)(d.legendmaxwidth, c.legendmaxwidth, t.legendMaxWidth), s.legendMaxHeight = (0, l.pluckNumber)(d.legendmaxheight, c.legendmaxheight, t.legendMaxHeight), s.legendMaxWidth < 0 && (s.legendMaxWidth = void 0), s.legendMaxHeight < 0 && (s.legendMaxHeight = void 0), s.xL = s.yL = 0, (w <= 0 || w > 5) && (w = 1), s.drawCustomLegendIcon = (0, l.pluckNumber)(d.drawcustomlegendicon, t.drawcustomlegendicon, 0), s.legendScale = w, s.legendPadding = (0, l.pluckNumber)(d.legendpadding, 7), s.alignLegendWithCanvas = (0, l.pluckNumber)(t.alignlegendwithcanvas, h.alignLegendWithCanvas), s.title.style = {
                            fontFamily: (0, l.pluck)(d.legendcaptionfont, k),
                            fontSize: (0, l.pluckFontSize)(d.legendcaptionfontsize, u.fontSize) + "px",
                            color: (0, l.pluck)(d.legendcaptionfontcolor, y).replace(/^#?([a-f0-9]+)/gi, "#$1"),
                            fontWeight: S.fontWeight[(0, l.pluckNumber)(d.legendcaptionfontbold, 1)] || l.BLANKSTRING
                        }, r = d.legendcaptionalignment ? d.legendcaptionalignment.toLowerCase() : m.center, s.title.align = m[r] || m.center, s.title.style["text-anchor"] = s.title.align, s.padding = 4, i = (0, l.pluck)(d.legendbordercolor, p.getColor(f.legendBorderColor)), n = s.borderAlpha = (0, l.pluckNumber)(d.legendborderalpha, 100), s.borderColor = (0, l.convertColor)(i, n), s.borderWidth = (0, l.pluckNumber)(d.legendborderthickness, t.legendborderthickness, !b || d.legendbordercolor ? 1 : 0), s.borderRadius = (0, l.pluckNumber)(b, 0), s.backgroundAlpha = o = (0, l.pluckNumber)(d.legendbgalpha, t.legendbgalpha, 100), s.backgroundColor = (0, l.convertColor)((0, l.pluck)(d.legendbgcolor, p.getColor(f.legendBgColor)), o), s.symbol3DLighting = Boolean((0, l.pluckNumber)(d.use3dlighting, d.useplotgradientcolor, 1)), s.shadow = Boolean((0, l.pluckNumber)(d.legendshadow, 1)), s.shadow && (s.shadow = {
                            enabled: s.shadow,
                            opacity: x(n, o) / 100
                        }), s.prevReversed = Boolean((0, l.pluckNumber)(s.reversed, 0)), s.reversed = Boolean((0, l.pluckNumber)(d.reverselegend, 0)), s.lineWidth = (0, l.pluckNumber)(d.linethickness, 2), s.borderRadius = (0, l.pluckNumber)(d.legendborderradius, b ? 3 : 0), s.legendAllowDrag = Boolean((0, l.pluckNumber)(d.legendallowdrag, 0)), s.title.oriText = (0, l.parseUnsafeString)((0, l.getFirstValue)(d.legendcaption, l.BLANKSTRING)), s.legendScrollBgColor = (0, l.getFirstColor)((0, l.pluck)(d.legendscrollbgcolor, d.scrollcolor, p.getColor("altHGridColor"))), s.legendScrollBarColor = (0, l.pluck)(d.legendscrollbarcolor, i), s.legendScrollBtnColor = (0, l.pluck)(d.legendscrollbtncolor, i), s.minimiseWrappingInLegend = (0, l.pluckNumber)(d.minimisewrappinginlegend, 0), s.flatScrollBars = (0, l.pluckNumber)(d.flatscrollbars, 0), s.scrollBar3DLighting = (0, l.pluckNumber)(d.scrollbar3dlighting, 1), s.orderReversed = !1, this.setStateCosmetics("hidden", {
                            symbol: {
                                fill: (0, l.convertColor)((0, l.pluck)(d.legenditemhiddencolor, "cccccc").replace(/^#?([a-f0-9]+)/gi, "#$1")),
                                stroke: (0, l.convertColor)((0, l.pluck)(d.legenditemhiddencolor, "cccccc").replace(/^#?([a-f0-9]+)/gi, "#$1"))
                            },
                            text: {
                                fill: (0, l.convertColor)((0, l.pluck)(d.legenditemhiddencolor, "cccccc").replace(/^#?([a-f0-9]+)/gi, "#$1"))
                            }
                        }), this.setStateCosmetics("default", {
                            text: {
                                fill: (0, l.convertColor)(A),
                                "font-family": k,
                                cursor: v ? l.preDefStr.POINTER : "default",
                                "font-size": L,
                                "line-height": a,
                                "vertical-align": l.POSITION_TOP,
                                "text-anchor": l.POSITION_START,
                                direction: "rtl" === h.textDirection ? "rtl" : "initial",
                                "font-weight": S.fontWeight[(0, l.pluckNumber)(d.legenditemfontbold, 0)] || l.BLANKSTRING
                            },
                            symbol: {
                                bgColor: (0, l.pluck)(d.legendiconbgcolor),
                                cursor: v ? l.preDefStr.POINTER : "default",
                                borderColor: (0, l.pluck)(d.legendiconbordercolor),
                                bgAlpha: (0, l.pluck)(d.legendiconbgalpha, d.legendiconalpha, 100),
                                borderAlpha: (0, l.pluck)(d.legendiconborderalpha, d.legendiconalpha, 100),
                                borderThickness: (0, l.pluckNumber)(d.legendiconborderthickness),
                                startAngle: (0, l.pluckNumber)(d.legendiconstartangle, 45),
                                sides: (0, l.pluckNumber)(d.legendiconsides, t.legendiconsides, 4)
                            }
                        }), this.setStateCosmetics("hover", (function(e, t) {
                            return t.hasState("hidden") || (e.text || (e.text = {}), e.text.fill = (0, l.convertColor)(N.replace(/^#?([a-f0-9]+)/gi, "#$1")), e.text.cursor = "inherit"), e
                        })), s.legendAllowDrag && !s._dragEvtListenerBinded ? (this.addEventListener("fc-dragstart", s.handlers.dragstart), this.addEventListener("fc-dragmove", s.handlers.dragmove), s._dragEvtListenerBinded = !0) : !s.legendAllowDrag && s._dragEvtListenerBinded && (this.removeEventListener("fc-dragstart", s.handlers.dragstart), this.removeEventListener("fc-dragmove", s.handlers.dragmove), s._dragEvtListenerBinded = !1)
                    }, a.getLegendState = function() {
                        return this._legendState
                    }, a.hasState = function(e) {
                        var t, a, i = this.getLegendState();
                        for (t = 0, a = i.length; t < a; t++)
                            if (i[t] === e) return !0;
                        return !1
                    }, a.setLegendState = function(e, t) {
                        this.hasState(e) || (t ? this._legendState.push(e) : this._legendState.unshift(e)), this.asyncDraw()
                    }, a.removeLegendState = function(e) {
                        var t, a, i = 1;
                        if (e)
                            for (t = 0, a = this._legendState.length; t < a && i; t++) e === this._legendState[t] && (this._legendState.splice(t, 1), i = 0);
                        else this._legendState.length = 0;
                        this.asyncDraw()
                    }, a.setStateCosmetics = function(e, t) {
                        this._stateCosmetics[e] = t
                    }, a.removeStateCosmetics = function(e) {
                        delete this._stateCosmetics[e]
                    }, a.getStateCosmetics = function(e) {
                        return this._stateCosmetics[e]
                    }, a.hide = function() {
                        var e = this.getFromEnv("chart").getChildContainer("legendGroup");
                        e && e.hide()
                    }, t
                }(s.ComponentInterface);
            t["default"] = L
        },
        524: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(193),
                r = a(208),
                l = a(201),
                s = i(a(525)),
                c = o.preDefStr.POINTER,
                h = "M",
                u = "L",
                d = "Z",
                g = function(e, t) {
                    var a = e.config,
                        i = e.getLinkedParent().config,
                        n = .5 * i.symbolWidth,
                        r = (i.initialItemX || 0) + a._legendX,
                        l = (i.initialItemY || 0) + a._legendY,
                        s = r + i.symbolPadding + n,
                        h = l + (a._markerYGutter || 0) + i.symbolPadding + n,
                        u = (0, o.mapSymbolName)(a.anchorSide),
                        d = a.symbol = u && u.split("_") || [],
                        g = "spoke" === d[0] ? 1 : 0;
                    return ("line" === a.type || a.drawLine) && (n *= .6), {
                        path: (0, o.polyPathToPath)([d[1] || 2, s, h, n, a.startAngle, a.spoke || g]),
                        cursor: t.cursor || c,
                        stroke: t.stroke,
                        fill: t.fill,
                        "stroke-width": t["stroke-width"] || .5
                    }
                };
            (0, l.addDep)({
                name: "legendItemAnimation",
                type: "animationRule",
                extension: s["default"]
            });
            var p = function(e) {
                function t() {
                    var t;
                    return (t = e.call(this) || this)._stateCosmetics = {}, t._legendState = [], t
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getName = function() {
                    return "legendItem"
                }, a.parseLegendCosmetics = function() {
                    var e, t, a, i = this.getLinkedParent(),
                        n = i.getLegendState(),
                        r = this.getLegendState(),
                        l = ["default"],
                        s = {};
                    for (l = l.concat(n, r), a = 0; a < l.length; a++) e = i.getStateCosmetics(l[a]), t = this.getStateCosmetics(l[a]), e && ("function" == typeof e ? s = e(s, this) : (0, o.extend2)(s, e)), t && ("function" == typeof t ? s = t(s, this) : (0, o.extend2)(s, t));
                    return s
                }, a.getType = function() {
                    return "legendItem"
                }, a.configure = function(e) {
                    var t, a, i = this.config;
                    for (t in e)
                        if (e.hasOwnProperty(t))
                            if ("object" != typeof e[t]) i[t] = e[t];
                            else {
                                var n = i[t] ? i[t] : {};
                                for (a in e[t]) n[a] = e[t][a];
                                i[t] = n
                            }
                }, a.itemClickFn = function() {
                    var e = this.getFromEnv("chart-attrib"),
                        t = (0, o.pluckNumber)(e.interactivelegend, 1),
                        a = this.getLinkedItem("owner");
                    t && a.legendInteractivity(this)
                }, a.dispose = function() {
                    this.removeEventListener("fc-click", this.click), this.removeEventListener("fc-mouseover", this.mouseover), this._dispose()
                }, a.getLegendState = function() {
                    return this._legendState
                }, a.hasState = function(e) {
                    var t, a, i = this.getLegendState();
                    for (t = 0, a = i.length; t < a; t++)
                        if (i[t] === e) return !0;
                    return !1
                }, a.setLegendState = function(e, t) {
                    this.hasState(e) || (t ? this._legendState.push(e) : this._legendState.unshift(e)), this.asyncDraw()
                }, a.__setDefaultConfig = function() {
                    e.prototype.__setDefaultConfig.call(this), this.config.eventArguments = {}
                }, a.removeLegendState = function(e) {
                    var t, a, i = 1;
                    if (e)
                        for (t = 0, a = this._legendState.length; t < a && i; t++) e === this._legendState[t] && (this._legendState.splice(t, 1), i = 0);
                    else this._legendState.length = 0;
                    this.asyncDraw()
                }, a.removeStateCosmetics = function(e) {
                    delete this._stateCosmetics[e]
                }, a.setStateCosmetics = function(e, t) {
                    this._stateCosmetics[e] = t
                }, a.getStateCosmetics = function(e) {
                    return this._stateCosmetics[e]
                }, a.draw = function() {
                    var e, t, a, i, n, r, l, s, p, f, m, v, b, x, y, C, k, S, w, L, A, N, T, E, F, _, P, D, I, M, O, R, B, V, G, z, H, W, j = this.getLinkedParent(),
                        U = j.getFromEnv("chart").config,
                        q = this.getFromEnv("animationManager"),
                        Y = this.config,
                        X = j.config,
                        K = X.legendHeight,
                        Z = X.symbolPadding,
                        J = X.symbolWidth,
                        $ = X.interactiveLegend,
                        Q = X.textPadding || 2,
                        ee = X.itemHoverStyle,
                        te = j.getChildContainer("itemGroup"),
                        ae = X.drawCustomLegendIcon,
                        ie = this.hasState("hidden"),
                        ne = {};
                    a = (e = this.parseLegendCosmetics()).symbol, i = X.initialItemX || 0, n = X.initialItemY || 0, p = Y.type, w = e.symbol.stroke || "000000", L = e.symbol.fill, t = e.symbol.lineWidth || X.lineWidth, N = Y.anchorSide, T = Y.drawLine, f = i + Y._legendX, m = n + Y._legendY, O = this.getGraphicalElement("legendItemBackground"), s = this.getGraphicalElement("legendItemText"), v = this.getGraphicalElement("legendItemLine"), x = this.getGraphicalElement("legendItemSymbol"), !($ = (0, o.pluck)(Y.interactiveLegend, $)) && (e.cursor = "default"), R = e.text, H = f + K + Q - 2, W = m + (Y._legendTestY || 0), R.text = Y.name, R.x = H, R.y = W, l = q.setAnimation({
                        el: s || "text",
                        attr: R,
                        component: this,
                        container: te,
                        label: "icon"
                    }), s || (l = this.addGraphicalElement("legendItemText", l)), l.data("legendItem", Y), B = !1, ae && !1 !== Y.customLegendIcon ? (_ = !ie && a.borderColor, P = (0, o.pluck)(a.borderAlpha), E = !ie && a.bgColor, F = (0, o.pluck)(a.bgAlpha, "100"), D = e.symbol.rawFillColor, L = ie ? e.symbol.fill : E || D, L = (0, o.convertColor)(L, F), I = e.symbol.rawStrokeColor, w = ie ? e.symbol.stroke : _ || I || D, w = (0, o.convertColor)(w, P), y = f + Z + (C = .5 * J), r = m + (Y._markerYGutter || 0) + Z + C, k = "spoke" === (S = (0, o.mapSymbolName)(a.sides) && (0, o.mapSymbolName)(a.sides).split("_") || [])[0] ? 1 : 0, V = {
                        path: (0, o.polyPathToPath)([S[1] || 2, y, r, C, a.startAngle || 0, k]),
                        cursor: e.symbol.cursor || c,
                        stroke: w,
                        fill: L,
                        "stroke-width": (0, o.pluckNumber)(a.borderThickness, 1)
                    }) : "line" === p || T ? (r = m + (Y._markerYGutter || 0) + Z + .5 * J, z = {
                        path: [h, f + Z, r, u, f + Z + J, r]
                    }, B = !0, ne = {
                        opacity: U.legendiconalpha || 1,
                        "stroke-width": t,
                        stroke: w,
                        cursor: e.cursor || c
                    }, N && (V = g(this, e.symbol))) : N ? V = g(this, e.symbol) : "line" !== p && (w = Y.symbolStroke || w, V = {
                        path: function(e, t, a, i, n) {
                            var o, r, l, s, c, g, p, f, m, v = [h];
                            switch (n) {
                                case "column":
                                case "dragColumn":
                                case "column3D":
                                case "realtimeColumn":
                                case "errorBar2D":
                                    r = .5 * (o = .25 * a), l = .7 * i, s = .4 * i, v = v.concat([e, t + i, "l", 0, -l, o, 0, 0, l, "z", "m", o + r, 0, "l", 0, -i, o, 0, 0, i, "z", "m", o + r, 0, "l", 0, -s, o, 0, 0, s, "z"]);
                                    break;
                                case "bar2D":
                                case "bar3D":
                                    o = .3 * a, r = .6 * a, s = (l = i / 4) / 2, v = v.concat([e, t, u, e + r, t, e + r, t + l, e, t + l, d, h, e, t + l + s, u, e + a, t + l + s, e + a, t + l + s + l, e, t + 2 * l + s, d, h, e, t + 2 * (l + s), u, e + o, t + 2 * (l + s), e + o, t + i, e, t + i, d]);
                                    break;
                                case "area":
                                case "area3d":
                                case "areaspline":
                                case "dragArea":
                                case "realTimeArea":
                                case "splinearea":
                                    o = .3 * a, r = .6 * a, l = .6 * i, s = .2 * i, c = .8 * i, v = v.concat([e, t + c, u, e, t + l, e + o, t + s, e + r, t + l, e + a, t + s, e + a, t + c, d]);
                                    break;
                                case "pie2D":
                                case "pie3d":
                                case "doughnut2D":
                                case "doughnut3D":
                                    r = .9 * (o = .5 * a), 1, 1, g = e + o + 1, f = t + o - 1, p = e + o - 1, m = t + o + 1, v = v.concat([g, f, u, g, f - r + 1, "A", r - 1, r - 1, 0, 0, 1, g + r - 1, f, d, h, p, m, u, p, m - r, "A", r, r, 0, 1, 0, p + r, m, d]);
                                    break;
                                case "boxandwhisker2d":
                                    v = v.concat([e, t, u, e + a, t, e + a, t + i, e, t + i, d]);
                                    break;
                                default:
                                    v = v.concat([e, t, u, e + a, t, e + a, t + i, e, t + i, d])
                            }
                            return {
                                path: v
                            }
                        }(f + Z, m + (Y._markerYGutter || 0) + Z, J, J, p).path,
                        "stroke-width": .5,
                        stroke: w,
                        fill: L,
                        cursor: e.cursor || c
                    }), z && B ? (Object.assign(z, ne), v = q.setAnimation({
                        el: v || "path",
                        attr: z,
                        component: this,
                        callback: function() {
                            this.show()
                        },
                        container: te
                    }), this.getGraphicalElement("legendItemLine") || (v = this.addGraphicalElement("legendItemLine", v))) : v && v.hide(), V ? (V.opacity = (0, o.pluckNumber)(e.symbol.opacity, 1), b = q.setAnimation({
                        el: x || "path",
                        attr: V,
                        component: this,
                        callback: function() {
                            this.show()
                        },
                        container: te,
                        label: "icon"
                    }), x && x.node || (b = this.addGraphicalElement("legendItemSymbol", b)), b.data("legendItem", Y)) : x && x.hide(), A = e.background && e.background.legendBackgroundColor ? (0, o.convertColor)(e.background.legendBackgroundColor, e.background.alpha) : o.TRACKER_FILL, G = {
                        x: f,
                        y: m,
                        width: Y._totalWidth,
                        height: Y._legendH,
                        r: 0,
                        fill: A,
                        opacity: 1,
                        "stroke-width": 1,
                        stroke: "none",
                        cursor: e.symbol.cursor || c
                    }, M = q.setAnimation({
                        el: O || "rect",
                        attr: G,
                        css: void 0,
                        component: this,
                        label: "background",
                        container: te
                    }), O || this.addGraphicalElement("legendItemBackground", M), M.data("legendItem", this).data("interactive", $).data("itemHoverStyle", ee).data("itemStyle", e)
                }, t
            }(r.ComponentInterface);
            t["default"] = p
        },
        525: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = a(193),
                n = {
                    "*.legendItem.legendItem": function() {
                        return {
                            "icon.appearing": function(e) {
                                return [{
                                    initialAttr: {
                                        opacity: 0
                                    },
                                    slot: "plot",
                                    startEnd: {
                                        start: .5,
                                        end: 1
                                    },
                                    finalAttr: {
                                        opacity: (0, i.pluckNumber)(e.attr.opacity, 1)
                                    }
                                }]
                            },
                            "background.appearing": function(e) {
                                return [{
                                    initialAttr: {
                                        opacity: 0
                                    },
                                    slot: "plot",
                                    startEnd: {
                                        start: .5,
                                        end: 1
                                    },
                                    finalAttr: {
                                        opacity: e.attr.opacity
                                    }
                                }]
                            },
                            "icon.disappearing": function() {
                                return [{
                                    finalAttr: {
                                        opacity: 0
                                    },
                                    slot: "initial"
                                }]
                            }
                        }
                    }
                };
            t["default"] = n
        },
        526: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = [{
                    initialAttr: {
                        opacity: 0
                    },
                    finalAttr: {
                        opacity: 1
                    },
                    slot: "plot"
                }],
                n = [{
                    slot: "plot",
                    startEnd: {
                        start: 0,
                        end: .5
                    }
                }],
                o = [{
                    slot: "intial"
                }],
                r = {
                    "*.legend.legend": function() {
                        return {
                            "legendGroup.appearing": i,
                            "legendGroup.updating": n,
                            "legendGroup.disappearing": o,
                            "scrollbar.appearing": i,
                            "scrollbar.updating": n,
                            "scrollbar.disappearing": o
                        }
                    }
                };
            t["default"] = r
        },
        527: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.computeLayout = void 0;
            var i = a(528),
                n = a(529),
                o = a(530),
                r = function() {
                    function e() {
                        this.gridLayoutEngine = o.computeGridLayout
                    }
                    return e.prototype.compute = function(e) {
                        switch ((0, i.getDisplayProperty)(e)) {
                            case n.DISPLAY_GRID:
                            case n.DISPLAY_FLEX:
                            default:
                                return this.gridLayoutEngine(e)
                        }
                    }, e
                }();
            t.computeLayout = function(e) {
                var t, a = new r,
                    n = (0, i.cloneObject)(e);
                return n.root = !0, t = a.compute(n), (0, i.attachLayoutInformation)(e, t), e
            }
        },
        528: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.pluckNumber = t.getDisplayProperty = t.attachLayoutInformation = t.cloneObject = void 0;
            var i = a(529);
            t.pluckNumber = function() {
                var e, t, a;
                for (t = 0, a = arguments.length; t < a; t += 1)
                    if (((e = arguments[t]) || !1 === e || 0 === e) && !isNaN(e = Number(e))) return e
            }, t.attachLayoutInformation = function n(e, t) {
                var a, i;
                for (void 0 === e && (e = {}), void 0 === t && (t = {}), e.layout = t.layout, a = 0, i = (e.children || []).length; a < i; a++) n(e.children[a], t.children[a])
            }, t.cloneObject = function o(e) {
                if (i.ATOMIC_DATA_TYPE.indexOf(typeof e) > -1 || null === e) return e;
                if (Array.isArray(e)) {
                    var t, a, n = [];
                    for (t = 0, a = e.length; t < a; t++) n.push(o(e[t]));
                    return n
                }
                if ("object" == typeof e) {
                    var r, l = {};
                    for (r in e) l[r] = o(e[r]);
                    return l
                }
            }, t.getDisplayProperty = function(e) {
                return e.style && e.style.display
            }
        },
        529: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.ATOMIC_DATA_TYPE = t.STRETCH = t.END = t.START = t.CENTER = t.DISPLAY_FLEX = t.DISPLAY_GRID = void 0;
            t.ATOMIC_DATA_TYPE = ["string", "number", "function", "boolean", "undefined"], t.STRETCH = "stretch", t.END = "end", t.START = "start", t.CENTER = "center", t.DISPLAY_FLEX = "flex", t.DISPLAY_GRID = "grid"
        },
        530: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t.computeGridLayout = function(e, t) {
                void 0 === t && (t = 1);
                var a, i, n, r, l = e.style;
                if (!e || !e.style) return;
                e.userGivenStyles || (e.style.width = isNaN(e.style.width) ? "auto" : e.style.width, e.style.height = isNaN(e.style.height) ? "auto" : e.style.height, l.paddingStart = (0, o.pluckNumber)(l.paddingStart, l.padding, 0), l.paddingEnd = (0, o.pluckNumber)(l.paddingEnd, l.padding, 0), l.paddingTop = (0, o.pluckNumber)(l.paddingTop, l.padding, 0), l.paddingBottom = (0, o.pluckNumber)(l.paddingBottom, l.padding, 0), e.userGivenStyles = {
                    gridTemplateColumns: e.style.gridTemplateColumns,
                    gridTemplateRows: e.style.gridTemplateRows,
                    width: e.style.width,
                    height: e.style.height
                });
                for (e.unResolvedChildren = [], a = 0, i = e.children && e.children.length; a < i; a++) n = e.children[a], (0, o.getDisplayProperty)(n) && (f(n) ? this.compute(n) : e.unResolvedChildren.push(n));
                (r = new y).set("domTree", e).set("parent", this).compute(), t < 2 && this.gridLayoutEngine(function(e, t) {
                    var a, i, n, r, l, s, c, h, u, d, g = e.style,
                        p = t.getConfig("rowTracks"),
                        f = t.getConfig("colTracks"),
                        m = t.getConfig("mapping"),
                        v = g.gridTemplateRows,
                        b = g.gridTemplateColumns;
                    for (e.style.gridTemplateRows = C(v, p), e.style.gridTemplateColumns = C(b, f), i = 0, r = (e.children || []).length; i < r; i++)
                        if (a = e.children[i], (0, o.getDisplayProperty)(a)) {
                            if (a.style.gridTemplateColumns = a.userGivenStyles.gridTemplateColumns, a.style.gridTemplateRows = a.userGivenStyles.gridTemplateRows, isNaN(a.userGivenStyles.width)) {
                                for (u = a.style.gridColumnStart, d = a.style.gridColumnEnd, u = m.col.nameToLineMap[u], d = m.col.nameToLineMap[d], n = u, s = 0; n < d; n++) s += f[n].calculatedStyle.baseSize;
                                a.style.width = s
                            }
                            if (isNaN(a.userGivenStyles.height)) {
                                for (c = a.style.gridRowStart, h = a.style.gridRowEnd, c = m.row.nameToLineMap[c], h = m.row.nameToLineMap[h], n = c, l = 0; n < h; n++) l += p[n].calculatedStyle.baseSize;
                                a.style.height = l
                            }
                        }
                    return e
                }(e, r), 2);
                return e
            };
            var n = i(a(192)),
                o = a(528),
                r = i(a(531)),
                l = a(529),
                s = a(532);

            function c(e, t) {
                var a = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var i = Object.getOwnPropertySymbols(e);
                    t && (i = i.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }))), a.push.apply(a, i)
                }
                return a
            }

            function h(e) {
                for (var t = 1; t < arguments.length; t++) {
                    var a = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? c(Object(a), !0).forEach((function(t) {
                        (0, n["default"])(e, t, a[t])
                    })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : c(Object(a)).forEach((function(t) {
                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t))
                    }))
                }
                return e
            }
            var u = ["auto", "none"],
                d = /minmax/,
                g = /(?:[^\s[\]()]+|\[[^[\]]*\]|\([^()]*\))+/g,
                p = function(e) {
                    return e.charAt(0).toUpperCase() + e.slice(1)
                },
                f = function(e) {
                    var t = e.style || {},
                        a = t.gridTemplateColumns,
                        i = t.gridTemplateRows;
                    return !/repeat\(/g.test(a) && !/repeat\(/g.test(i)
                },
                m = function(e) {
                    return e.split(/\(|\)/g)[1].split(",").map((function(e) {
                        return e && e.trim()
                    }))
                },
                v = function(e, t) {
                    var a, i, n = p(t),
                        r = "width" === t ? "col" : "row";
                    return e.map((function(e) {
                        return a = e.style["gridTemplate" + p("col" === r ? "columns" : "rows")], i = "grid" === (0, o.getDisplayProperty)(e) && /repeat\(/g.test(a) ? m(a)[1] : e.style["min" + n + "Contribution"] || e.style[t] || "auto", {
                            start: e[r + "Start"],
                            end: e[r + "End"],
                            size: i
                        }
                    }))
                },
                b = function(e, t, a) {
                    var i, n;
                    for (i = t.x; i < a.x; i++)
                        for (n = t.y; n < a.y; n++) e[i][n] = !0
                },
                x = function(e, t) {
                    var a = e.gridRowStart,
                        i = e.gridRowEnd,
                        n = e.gridColumnStart,
                        o = e.gridColumnEnd;
                    if (e.gridColumn) {
                        var r = e.gridColumn.split("/").map((function(e) {
                            return e.trim()
                        }));
                        n = r[0], o = r[1], n = t ? t.col.nameToLineMap[n] : 1, /span\s+\d+/g.test(o) && (o = n + +o.match(/span\s+(\d+)/)[1]), o = t ? t.col.nameToLineMap[o] : 1
                    }
                    if (e.gridRow) {
                        var l = e.gridRow.split("/").map((function(e) {
                            return e.trim()
                        }));
                        a = l[0], i = l[1], a = t ? t.row.nameToLineMap[a] : 1, /span\s\d+/g.test(i) && (i = a + +i.match(/span\s(\d+)/)[1]), i = t ? t.row.nameToLineMap[i] : 1
                    }
                    return {
                        gridRowStart: a,
                        gridRowEnd: i,
                        gridColumnStart: n,
                        gridColumnEnd: o
                    }
                },
                y = function() {
                    function e() {
                        this.setup()
                    }
                    var t = e.prototype;
                    return t.setup = function() {
                        return this._tsa = new r["default"], this.props = {}, this._config = {
                            mapping: {}
                        }, this
                    }, t.set = function(e, t) {
                        return this.props[e] = t, this
                    }, t.getProps = function(e) {
                        return this.props[e]
                    }, t.getConfig = function(e) {
                        return this._config[e]
                    }, t.compute = function(e) {
                        var t = e || this.props.domTree;
                        this._sanitizeTracks(t)._sanitizeItems(t)._inflateTracks()._assignCoordinatesToCells(t)
                    }, t._sanitizeTracks = function(e) {
                        void 0 === e && (e = {});
                        var t, a = e.style,
                            i = a.gridTemplateRows,
                            n = a.gridTemplateColumns,
                            o = this._config,
                            r = function(e) {
                                var t, a = 1,
                                    i = 1;
                                return e.forEach((function(e) {
                                    t = x(e.style), i = Math.max(isNaN(+t.gridColumnStart) ? 0 : +t.gridColumnStart, i, isNaN(+t.gridColumnEnd - 1) ? 0 : +t.gridColumnEnd - 1), a = Math.max(isNaN(+t.gridRowStart) ? 0 : +t.gridRowStart, a, isNaN(+t.gridRowEnd - 1) ? 0 : +t.gridRowEnd - 1)
                                })), {
                                    maxRow: a,
                                    maxColumn: i
                                }
                            }(e.children),
                            l = r.maxColumn,
                            s = r.maxRow;
                        return this.set("maxTracks", s), t = this._fetchTrackInformation(i), o.mapping.row = {
                            nameToLineMap: t.nameToLineMap,
                            lineToNameMap: t.lineToNameMap
                        }, o.rowTracks = t.tracks, this.set("maxTracks", l), t = this._fetchTrackInformation(n), o.mapping.col = {
                            nameToLineMap: t.nameToLineMap,
                            lineToNameMap: t.lineToNameMap
                        }, o.colTracks = t.tracks, this
                    }, t._fetchTrackInformation = function(e) {
                        void 0 === e && (e = "none");
                        var t, a, i, n, o, r, l = e.match(g),
                            s = [{}],
                            c = {},
                            h = {};
                        for (i = l.filter((function(e) {
                                return !e || "string" != typeof e || !e.length || (a = e.length, "[" === e[0] && "]" === e[a - 1])
                            })), n = l.filter((function(e) {
                                return !!e && (a = (e + "").toLowerCase().replace(/px|fr/, ""), !(!(u.indexOf(a) >= 0 || d.test(a)) && isNaN(a)))
                            })).map((function(e) {
                                return function(e) {
                                    if ("auto" === (e = e.trim())) return e;
                                    if (!isNaN(+e)) return +e;
                                    if (d.test(e)) {
                                        var t = e.split(/\(|\)/g)[1].split(",");
                                        return [t[0].trim(), t[1].trim()]
                                    }
                                    return e
                                }(e)
                            })), a = n.length, "none" === e && (a = this.getProps("maxTracks")), t = 0; t < a; t++) o = i[t] && i[t].replace(/\[|\]/g, "").split(" ").filter((function(e) {
                            return e.length
                        })).map((function(e) {
                            return e.trim()
                        })) || [t + 1 + ""], r = i[t + 1] && i[t + 1].replace(/\[|\]/g, "").split(" ").filter((function(e) {
                            return e.length
                        })).map((function(e) {
                            return e.trim()
                        })) || [t + 2 + ""], s.push({
                            start: t + 1,
                            end: t + 2,
                            size: n[t] || "auto"
                        }), h[t + 1] = o, h[t + 2] = r, o.forEach((function(e) {
                            return c[e] = t + 1
                        })), r.forEach((function(e) {
                            return c[e] = t + 2
                        })), c[t + 1] = t + 1, c[t + 2] = t + 2;
                        return {
                            tracks: s,
                            nameToLineMap: c,
                            lineToNameMap: h
                        }
                    }, t._sanitizeItems = function(e) {
                        var t, a, i, n, o, r, l, s = e || this.props.domTree,
                            c = s.children || [],
                            u = this._config.mapping,
                            d = s.style.gridAutoFlow || "row",
                            g = Object.keys(u.row.lineToNameMap).length,
                            p = Object.keys(u.col.lineToNameMap).length,
                            f = [],
                            m = [],
                            v = [
                                []
                            ],
                            y = [];
                        for (o = 1; o <= g; o++) v.push([]);
                        for (o = 0, l = c.length; o < l; o++) t = x(c[o].style, u), f.push(h({}, c[o], {
                            rowStart: u.row.nameToLineMap[t.gridRowStart],
                            rowEnd: u.row.nameToLineMap[t.gridRowEnd],
                            colStart: u.col.nameToLineMap[t.gridColumnStart],
                            colEnd: u.col.nameToLineMap[t.gridColumnEnd]
                        })), i = f[o], b(v, {
                            x: i.rowStart,
                            y: i.colStart
                        }, {
                            x: i.rowEnd,
                            y: i.colEnd
                        });
                        if ((m = f.filter((function(e) {
                                return !e.colStart || !e.rowStart
                            }))) && "row" === d) {
                            for (o = 1; o < g; o++)
                                for (r = 1; r < p; r++) v[o][r] || y.push({
                                    row: o,
                                    col: r
                                });
                            for (; m.length && y.length;) i = m.shift(), a = y.shift(), i.rowStart = a.row, i.colStart = a.col, i.rowEnd = a.row + 1, i.colEnd = a.col + 1;
                            if (n = Math.ceil(m.length / p)) {
                                for (; n--;) s.style.gridTemplateRows += "auto ", u.row.nameToLineMap[g + 1] = g + 1, u.row.nameToLineMap[g + 2] = g + 2, g++, v.push([]);
                                for (s.style.gridTemplateRows = s.style.gridTemplateRows.trim(), y = [], o = 1; o <= g; o++)
                                    for (r = 1; r <= p; r++) v[o][r] || y.push({
                                        row: o,
                                        col: r
                                    });
                                for (; m.length;) i = m.shift(), a = y.shift(), i.rowStart = a.row, i.colStart = a.col, i.rowEnd = a.row + 1, i.colEnd = a.col + 1
                            }
                        }
                        return this._config.sanitizedItems = f, this
                    }, t._inflateTracks = function() {
                        var e, t = this._config,
                            a = t.sanitizedItems,
                            i = t.colTracks,
                            n = t.rowTracks,
                            o = 0,
                            l = 0,
                            s = this.props.domTree,
                            c = s.style || {},
                            h = c.paddingStart,
                            u = c.paddingEnd,
                            d = c.paddingTop,
                            g = c.paddingBottom,
                            p = c.width,
                            f = c.height,
                            m = new r["default"];
                        return isNaN(+p) || (p -= h + u), e = m.clear().set("tracks", i).set("items", v(a, "width")).set("containerSize", p || "auto").resolveTracks(), i.forEach((function(t, a) {
                            t.calculatedStyle = e[a], l += e[a].baseSize || 0
                        })), this._solveUnresolvedChildren(), isNaN(+f) || (f -= d + g), e = m.clear().set("tracks", n).set("items", v(a, "height")).set("containerSize", f || "auto").resolveTracks(), n.forEach((function(t, a) {
                            t.calculatedStyle = e[a], o += e[a].baseSize || 0
                        })), s.style.minHeightContribution = o, s.style.minWidthContribution = l, this
                    }, t._solveUnresolvedChildren = function(e) {
                        var t, a, i, n, o, r, l, c, h = ((e || this.props.domTree).unResolvedChildren || []).filter((function(e) {
                                return /repeat\(/g.test(e.style.gridTemplateColumns) || /repeat\(/g.test(e.style.gridTemplateRows)
                            })),
                            u = this._config,
                            d = u.colTracks,
                            g = u.mapping,
                            p = this.getProps("parent"),
                            f = [0];
                        if (!h.length) return this;
                        for (a = 1, i = d.length; a < i; a++) f[a] = f[a - 1] + d[a].calculatedStyle.baseSize;
                        return h.forEach((function(e) {
                            r = m(e.style.gridTemplateColumns)[1], l = g.col.nameToLineMap[e.style.gridColumnStart], c = g.col.nameToLineMap[e.style.gridColumnEnd], n = f[c - 1] - f[l - 1], o = {
                                itemWidth: r,
                                width: n
                            }, t = (0, s.repeatResolver)(e, o), e.style.gridTemplateColumns = t.gridTemplateColumns, e.style.gridTemplateRows = t.gridTemplateRows, p.gridLayoutEngine(e)
                        })), this
                    }, t._assignCoordinatesToCells = function(e) {
                        var t, a, i, n, r, s, c, h, u, d = e || this.props.domTree,
                            g = this._config,
                            p = g.sanitizedItems,
                            f = g.rowTracks,
                            m = g.colTracks,
                            v = d.style,
                            b = v.justifyItems,
                            x = v.alignItems,
                            y = v.paddingStart,
                            C = v.paddingTop,
                            k = [y],
                            S = [C];
                        for (i = 1, a = f.length; i < a; i++) k[i] = k[i - 1] + f[i].calculatedStyle.baseSize;
                        for (i = 1, a = m.length; i < a; i++) S[i] = S[i - 1] + m[i].calculatedStyle.baseSize;
                        return d.layout = {
                            x: 0,
                            y: 0,
                            width: isNaN(d.style.width) ? S[S.length - 1] : d.style.width,
                            height: isNaN(d.style.height) ? k[k.length - 1] : d.style.height
                        }, (d.children || []).forEach((function(e, a) {
                            switch (t = p[a], n = S[t.colEnd - 1] - S[t.colStart - 1], r = k[t.rowEnd - 1] - k[t.rowStart - 1], s = isNaN(+e.style.width) ? n : +e.style.width, c = isNaN(+e.style.height) ? r : +e.style.height, b || e.style.justifySelf) {
                                case l.CENTER:
                                    h = S[t.colStart - 1] + n / 2 - s / 2;
                                    break;
                                case l.END:
                                    h = S[t.colEnd - 1] - s;
                                    break;
                                case l.STRETCH:
                                    s = n, h = S[t.colStart - 1];
                                    break;
                                default:
                                    h = S[t.colStart - 1]
                            }
                            switch (x || e.style.alignSelf) {
                                case l.CENTER:
                                    u = k[t.rowStart - 1] + r / 2 - c / 2;
                                    break;
                                case l.END:
                                    u = k[t.rowEnd - 1] - c;
                                    break;
                                case l.STRETCH:
                                    c = r, u = k[t.rowStart - 1];
                                    break;
                                default:
                                    u = k[t.rowStart - 1]
                            }
                            h += (0, o.pluckNumber)(t.style.paddingStart, t.style.padding, 0), u += (0, o.pluckNumber)(t.style.paddingTop, t.style.padding, 0), e.layout = {
                                x: h,
                                y: u,
                                x2: h + s,
                                y2: u + c,
                                width: s,
                                height: c
                            }
                        })), this
                    }, e
                }(),
                C = function(e, t) {
                    void 0 === e && (e = "");
                    var a = (e.match(g) || []).filter((function(e) {
                            return e && !!e.trim()
                        })),
                        i = "",
                        n = 1;
                    return a.length && !/repeat\(/.test(e) ? a.forEach((function(e) {
                        u.indexOf(e) > -1 || /[0-9]fr/.test(e) || d.test(e) || !isNaN(e) ? (i += t[n].calculatedStyle.baseSize + " ", n++) : i += e + " "
                    })) : t.forEach((function(e) {
                        isNaN(e.calculatedStyle.baseSize) || (i += e.calculatedStyle.baseSize + " ")
                    })), i.trim()
                }
        },
        531: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(192));

            function o(e, t) {
                var a = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var i = Object.getOwnPropertySymbols(e);
                    t && (i = i.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }))), a.push.apply(a, i)
                }
                return a
            }

            function r(e) {
                for (var t = 1; t < arguments.length; t++) {
                    var a = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? o(Object(a), !0).forEach((function(t) {
                        (0, n["default"])(e, t, a[t])
                    })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : o(Object(a)).forEach((function(t) {
                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t))
                    }))
                }
                return e
            }
            var l = function(e) {
                    return +e.replace(/fr/, "")
                },
                s = function() {
                    function e(e, t, a) {
                        return void 0 === e && (e = []), void 0 === t && (t = []), void 0 === a && (a = 600), this.clear(), this.set("tracks", e), this.set("items", t), this.set("containerSize", a), this
                    }
                    var t = e.prototype;
                    return t.set = function(e, t) {
                        switch (this.props[e] = t, e) {
                            case "tracks":
                                this._initTrackSize();
                                break;
                            case "items":
                                this._initItems();
                                break;
                            case "containerSize":
                                this.props[e] = isNaN(+t) ? 0 : +t
                        }
                        return this
                    }, t.get = function(e) {
                        return this.props[e]
                    }, t._initTrackSize = function(e) {
                        var t, a, i, n, o, s, c, h = e || this.props.tracks || [],
                            u = this._config,
                            d = [{}];
                        for (u.frTracks = [], u.intrinsicTracks = [], t = 1, a = h.length; t < a; t++) i = h[t].size, o = 1, Array.isArray(i) ? (s = +i[0] || 0, i[1].indexOf("fr") > 0 || i[0].indexOf("fr") > 0 ? (c = Infinity, u.frTracks.push(t), n = "minmax") : "auto" === i[1] || "auto" === i[0] ? (c = Infinity, u.intrinsicTracks.push(t), n = "minmax") : isNaN(+i[0]) || isNaN(+i[1]) || (c = Math.max(+i[0], +i[1]), s = Math.min(+i[0], +i[1]), u.intrinsicTracks.push(t), n = "minmax")) : isNaN(+i) ? i.indexOf("fr") > 0 ? (s = 0, c = Infinity, u.frTracks.push(t), n = "flex", o = l(i)) : (s = 0, c = Infinity, n = "intrinsic", u.intrinsicTracks.push(t)) : (s = c = +i, n = "fixed"), d.push(r({}, h[t], {
                            type: n,
                            multiplier: o,
                            baseSize: s,
                            growthLimit: c
                        }));
                        return u.sanitizedTracks = d
                    }, t._initItems = function(e) {
                        var t, a, i, n, o = e || this.props.items || [],
                            l = this._config,
                            s = [],
                            c = 0;
                        for (i = 0, n = o.length; i < n; i++) isNaN(o[i].start) || isNaN(o[i].end) ? l.autoFlow.push(o[i]) : (s.push(r({}, o[i])), a = s[c], c++, a.size = isNaN(a.size) ? this._getParentSize(a) : +a.size);
                        for (s.sort((function(e, t) {
                                var a = e.end - e.start,
                                    i = t.end - t.start;
                                return a === i ? e.start - t.start : a - i
                            })), i = 0, t = n = s.length; i < n; i++)
                            if (s[i].end - s[i].start > 1) {
                                t = i;
                                break
                            }
                        return this._config.nonSpanningItemStartIndex = t, this._config.sanitizedItems = s
                    }, t._getParentSize = function(e) {
                        var t = this._config.sanitizedTracks,
                            a = 0;
                        return t.filter((function(t) {
                            return t.start >= e.start && t.end <= e.end
                        })).forEach((function(e) {
                            return a += e.baseSize
                        })), a || 0
                    }, t.resolveTracks = function() {
                        return this._placeNonSpanningItems()._placeSpanningItems()._distributeFreeSpace(), this._config.sanitizedTracks
                    }, t._placeNonSpanningItems = function() {
                        var e, t, a = this._config,
                            i = a.sanitizedItems,
                            n = a.sanitizedTracks,
                            o = a.nonSpanningItemStartIndex;
                        return i.slice(0, o).forEach((function(a) {
                            t = a.start, "fixed" !== (e = n[t]).type && (e.baseSize = Math.max(e.baseSize, a.size), e.growthLimit = Math.max(e.growthLimit, e.baseSize))
                        })), this
                    }, t._placeSpanningItems = function() {
                        var e, t, a, i, n, o, r, l = this._config,
                            s = l.sanitizedItems,
                            c = l.sanitizedTracks,
                            h = l.nonSpanningItemStartIndex,
                            u = l.frTracks,
                            d = s.slice(h),
                            g = [0];
                        if (!d.length) return this;
                        for (o = 1, r = c.length; o < r; o++) g[o] = g[o - 1] + (c[o].baseSize || 0);
                        return d.forEach((function(r) {
                            if (e = g[r.end - 1] - g[r.start - 1], t = Math.max(0, r.size - e)) {
                                for (o = r.start, n = !1, i = 0; o < r.end; o++) u.indexOf(o) >= 0 && (n = !0), "fixed" !== c[o].type && i++;
                                if (i && !n)
                                    for (a = t / i, o = r.start; o < r.end; o++) "fixed" !== c[o].type && (c[o].baseSize += a)
                            }
                        })), this
                    }, t._distributeFreeSpace = function() {
                        var e = this._config,
                            t = e.frTracks,
                            a = e.intrinsicTracks,
                            i = e.sanitizedTracks,
                            n = this.props.containerSize,
                            o = 0;
                        return i.forEach((function(e) {
                            return o += e.baseSize || 0
                        })), o < n && (t.length ? (t.forEach((function(e, a) {
                            t[a] = i[e]
                        })), t.forEach((function(e) {
                            return o -= e.baseSize
                        })), function r(e, t, a) {
                            var i, n, o = 0;
                            if (e.length) {
                                if (e.forEach((function(e) {
                                        return o += e.multiplier
                                    })), i = (a - t) / o, (n = e.filter((function(e) {
                                        return e.baseSize <= e.multiplier * i
                                    }))).length < e.length) return e.filter((function(e) {
                                    return e.baseSize > e.multiplier * i
                                })).forEach((function(e) {
                                    return t += e.baseSize
                                })), r(n, t, a);
                                n.forEach((function(e) {
                                    return e.baseSize = e.multiplier * i
                                }))
                            }
                        }(t, o, n)) : a.length && (a.forEach((function(e, t) {
                            a[t] = i[e]
                        })), function(e, t, a) {
                            var i, n, o, r, l, s, c, h = 0;
                            if (e.length) {
                                for (i = a - t, (l = e.filter((function(e) {
                                        return "minmax" === e.type && e.growthLimit !== Infinity
                                    }))).sort((function(e, t) {
                                        return e.growthLimit - e.baseSize - (t.growthLimit - t.baseSize)
                                    })), r = l.length; h < r && i;)
                                    for (n = i / (l.length - h || 1), o = 0, r = l.length; o < r; o++) s = l[o].growthLimit, i -= (c = Math.min(n + l[o].baseSize, s)) - l[o].baseSize, l[o].baseSize = c, s !== c || l[o].frozen || (l[o].frozen = !0, h++);
                                e = e.filter((function(e) {
                                    return "minmax" === e.type && e.growthLimit === Infinity || "minmax" !== e.type
                                })), n = i / e.length, e.forEach((function(e) {
                                    return e.baseSize += n
                                }))
                            }
                        }(a, o, n))), this
                    }, t.clear = function() {
                        return this.props = {}, this._config = {
                            frTracks: [],
                            intrinsicTracks: [],
                            autoFlow: []
                        }, this
                    }, e
                }();
            t["default"] = s
        },
        532: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.repeatResolver = function(e, t) {
                var a, i, n, o = e.children,
                    r = 0,
                    l = 0,
                    s = "",
                    c = "",
                    h = 0,
                    u = t.itemWidth,
                    d = t.width;
                for (d = isNaN(+d) ? 0 : +d, o.forEach((function(e) {
                        return h = Math.max(h, +e.style.height || 0)
                    })), r += u = +u, s += u + " ", l = 1, i = 1, n = o.length; i < n && !(r + u > d); i++) r += u, s += u + " ";
                for (l = i, a = Math.ceil(n / l); a--;) c += h + " ";
                return {
                    gridTemplateColumns: s.trim(),
                    gridTemplateRows: c.trim()
                }
            }
        },
        533: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = t.drawLabel = void 0;
            var n = i(a(207)),
                o = i(a(492)),
                r = a(193),
                l = a(201),
                s = i(a(534)),
                c = r.preDefStr.visibleStr,
                h = r.preDefStr.hiddenStr,
                u = r.preDefStr.POSITION_MIDDLE,
                d = r.preDefStr.POSITION_START,
                g = r.preDefStr.POSITION_END,
                p = Math,
                f = p.min,
                m = p.max,
                v = function(e, t) {
                    var a, i, n, o, l, s, p, v, b, x, y, C, k, S, w, L, A, N, T, E, F, _, P, D = this.getFromEnv("chart"),
                        I = D.config,
                        M = this.config,
                        O = M.JSONData,
                        R = this.getFromEnv("animationManager"),
                        B = D.getChildren("canvas")[0].config,
                        V = D.config.dataLabelStyle,
                        G = O.data,
                        z = D.config.categories,
                        H = D.config.is3D,
                        W = D.config.isstacked,
                        j = z && z.length,
                        U = G && G.length,
                        q = this.getData(),
                        Y = D.getFromEnv("smartLabel"),
                        X = B.yDepth,
                        K = B.xDepth,
                        Z = D.getFromEnv("number-formatter"),
                        J = r.BLANKSTRING,
                        $ = I.placevaluesinside,
                        Q = I.canvasWidth,
                        ee = I.canvasLeft,
                        te = I.valuepadding + 2,
                        ae = this.getContainer("labelGroup"),
                        ie = this.getSkippingInfo && this.getSkippingInfo(),
                        ne = ie && ie.skippingApplied,
                        oe = ie && ie.labelDraw || [],
                        re = oe.length,
                        le = (0, r.pluckNumber)(e, 0),
                        se = (0, r.pluckNumber)(t, ne ? re : j < U ? j : U),
                        ce = re === Math.abs(se - (le + 1)),
                        he = this.getState("visible"),
                        ue = function() {
                            this.hide()
                        };
                    for (he && ae.show(), Y.setStyle(V), l = le; l < se; l++) L = (E = (i = q[o = ne && ce ? oe[l] : l]) && i.config) && E.setValue, void 0 !== i && null != L && !0 !== E.labelSkip ? (p = i.graphics) && (s = G[o], k = i._yPos, S = i._xPos, L = Z.getCleanValue(s.value), C = (0, r.pluckNumber)(L) < 0, v = i._height, w = i._width, A = W ? u : C ? $ ? d : g : $ ? g : d, J = E.displayValue, _ = p.label, E.showValue && null != J && J !== r.BLANKSTRING && null !== L ? (n = {
                        text: J,
                        fill: (a = E.dataLabelStyle).color,
                        "text-bound": [a.backgroundColor, a.borderColor, V.borderThickness, V.borderPadding, V.borderRadius, V.borderDash],
                        "line-height": V.lineHeight,
                        visibility: this.getState("visible") ? c : h
                    }, N = Y.getOriSize(J).width, N += te, T = te, b = k + .5 * v, x = S + (C ? 0 : w), y = C ? S - ee : ee + Q - (S + w), W ? (x = m(ee + .5 * N, x += .5 * (C ? w : -w)), x = f(ee + Q - .5 * N, x), x -= H ? K : 0, b += H ? X : 0) : $ ? w >= N ? (x += C ? T : -T, H && (b += X, x -= K)) : N < y ? (x += C ? -T : T, A = C ? g : d, H && C && (x -= K)) : (C ? (x = S + w + m(N - S - w + ee, 0) - T, A = g) : (x = S - m(N - (ee + Q - S), 0) + T, A = d), H && (x -= K, b += X)) : y >= N ? (x += C ? -T : T, H && C && (x -= K, b += K)) : (x += C ? T + N : -(T + N), H && (x -= K, b += X)), (x > ee + Q || x < ee) && (x = ee + 4, A = d), n["text-anchor"] = A, n.x = x, n.y = b, n.opacity = he ? 1 : 0, (F = R.setAnimation({
                        el: _ || "text",
                        container: ae,
                        component: this,
                        attr: n,
                        callback: !he && ue,
                        label: "plotLabel"
                    })).outlineText(M.showTextOutline, n.fill), _ || (p.label = F)) : p.label && (p.label = R.setAnimation({
                        el: p.label,
                        component: this
                    }))) : ((P = i && i.graphics) && P.label && P.label.hide(), E && delete E.labelSkip);
                    this.config.labelDrawn = !0
                };
            t.drawLabel = v, (0, l.addDep)({
                name: "barAnimation",
                type: "animationRule",
                extension: s["default"]
            });
            var b = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "dataset"
                }, a.getName = function() {
                    return "bar2D"
                }, a.drawLabel = function() {
                    var e = this.config;
                    v.call(this, e.scrollMinValForLabel, e.scrollMaxValForLabel)
                }, t
            }(o["default"]);
            t["default"] = b
        },
        534: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = a(193),
                n = {
                    "initial.dataset.bar2D": function() {
                        var e = this,
                            t = e.getFromEnv("chart"),
                            a = t.config.yDepth || 0,
                            n = e.getFromEnv("yAxis");
                        return {
                            "rect.appearing": function(o) {
                                var r, l, s, c, h = n.getPixel(n.getAxisBase()) + (t.isBar ? -a : a),
                                    u = o.index,
                                    d = e.components.data[u],
                                    g = o.attr;
                                return r = g.x, l = g.width, c = Math.sign(r + l / 2 - h), s = 1 === c ? r : r + l, d._posWRT0 = c, [{
                                    initialAttr: function() {
                                        var e = {};
                                        return e.x = s, e.width = 0, e.opacity = 0, e
                                    },
                                    finalAttr: {
                                        opacity: 1
                                    },
                                    startEnd: function() {
                                        var t = o.length;
                                        return i.animHelperFN.getTimeByValue(i.animHelperFN.animByWeight(u, t, .6), {
                                            startPx: h,
                                            endPx: 1 === c ? e.config.yAxisMaxPixel : e.config.yAxisMinPixel
                                        }, {
                                            startPx: s,
                                            endPx: 1 === c ? g.x + g.width : g.x
                                        })
                                    },
                                    hookFn: function() {
                                        this.attr({
                                            opacity: 1
                                        })
                                    },
                                    effect: "linear",
                                    slot: "plot"
                                }]
                            },
                            "plotLabel.appearing": function() {
                                return [{
                                    initialAttr: {
                                        opacity: 0
                                    },
                                    slot: "final"
                                }]
                            },
                            "*": null
                        }
                    }
                };
            t["default"] = n
        },
        542: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t.trimData = X, t.hideFn = t.plotClickHandler = t.labelClickFn = t.plotGraphicClick = t["default"] = void 0;
            var n, o = i(a(192)),
                r = i(a(210)),
                l = i(a(207)),
                s = i(a(510)),
                c = a(193),
                h = a(201),
                u = i(a(543)),
                d = i(a(272)),
                g = a(205),
                p = i(a(258)),
                f = a(544);

            function m(e, t) {
                var a = Object.keys(e);
                if (Object.getOwnPropertySymbols) {
                    var i = Object.getOwnPropertySymbols(e);
                    t && (i = i.filter((function(t) {
                        return Object.getOwnPropertyDescriptor(e, t).enumerable
                    }))), a.push.apply(a, i)
                }
                return a
            }

            function v(e) {
                for (var t = 1; t < arguments.length; t++) {
                    var a = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? m(Object(a), !0).forEach((function(t) {
                        (0, o["default"])(e, t, a[t])
                    })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : m(Object(a)).forEach((function(t) {
                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t))
                    }))
                }
                return e
            }
            var b = (0, h.getDep)("redraphael", "plugin"),
                x = window,
                y = x.document,
                C = !c.hasSVG,
                k = "createTouch" in y,
                S = k && !(x.navigator.maxTouchPoints || x.navigator.msMaxTouchPoints),
                w = Math,
                L = w.atan2,
                A = w.sin,
                N = w.cos,
                T = w.max,
                E = w.min,
                F = w.abs,
                _ = w.floor,
                P = w.PI,
                D = 180 / w.PI,
                I = 2 * P,
                M = function(e) {
                    var t, a, i, n = [
                        [],
                        [],
                        [],
                        []
                    ];
                    for (t = 0, a = e.length; t < a; t++) i = (0, f.getCleanAngle)(e[t].point.config.angle), n[(0, f.getQuadrant)(i)].push({
                        point: e[t].point,
                        angle: i
                    });
                    return n
                },
                O = function(e, t, a) {
                    return a.getFromEnv("animationManager").setAnimation({
                        el: "group",
                        attr: {
                            name: e
                        },
                        container: t,
                        component: a,
                        label: "group"
                    })
                },
                R = function(e, t) {
                    var a = t ? 1 : n;
                    return (0, c.toRaphaelColor)({
                        color: (0, c.getFirstColor)(e.color, a),
                        alpha: (0, c.getFirstAlpha)(e.alpha, a)
                    })
                },
                B = function(e, t, a, i, n) {
                    return L((t - a[1] - i.top) / n, e - a[0] - i.left)
                },
                V = function(e, t) {
                    return function(a) {
                        !t.data("plotItem").seriesData.isRotating && e.plotGraphicClick.call(t, a)
                    }
                },
                G = function(e) {
                    return function(t) {
                        var a, i, n, o, r, l, s, c, h, u, d, g, p, f = this.element || this,
                            m = f.plotItem || f.data("plotItem"),
                            v = f.data("eventArgs") || {},
                            b = m.chart,
                            x = e.getFromEnv("animationManager"),
                            y = m.index,
                            C = e.config,
                            w = C.enableMultiSlicing,
                            L = e.components.data[y],
                            A = L.graphics,
                            N = L.config,
                            T = N.doNotSlice,
                            E = N.slicedTranslation;
                        if (!C.isRotating && t && b.plotEventHandler(f, t), !(C.isRotating || C.singletonCase || T) && b.config && (i = !w && e.sliceInOtherPies(y), !(l = N.sliced) || !i)) {
                            if (k && !S) {
                                if (d = (new Date).getTime(), m.lastSliceTimeStamp && d - m.lastSliceTimeStamp < 400) return;
                                m.lastSliceTimeStamp = d
                            }
                            return n = A.element, h = A.connector, o = A.label || A.dataLabel, r = A.innerLabel, E = "object" == typeof E ? "t" + E : E, u = N.connectorPath, s = (l ? -1 : 1) * N.transX, c = (l ? -1 : 1) * N.transY, g = n.data("eventArgs") || n.data("eventArgs", {}), b.fireChartInstanceEvent("slicingStart", {
                                slicedState: l,
                                dataIndex: "index" in v && v.index,
                                data: e.getPlotData(y, l)
                            }), x.setAnimationState("slicing"), x.setAnimation({
                                el: n,
                                attr: {
                                    transform: l ? "t0,0" : E
                                },
                                component: e,
                                label: "slice",
                                callback: function() {
                                    b.fireChartInstanceEvent("slicingEnd", {
                                        slicedState: l,
                                        dataIndex: "index" in v && v.index,
                                        data: e.getPlotData(y, !l)
                                    })
                                }
                            }), o && o.x && ((a = o.data("textPos")) || (a = o.data("textPos", {
                                x: o.x,
                                y: o.y
                            })), x.setAnimation({
                                el: o,
                                attr: {
                                    x: o.x + (l ? 0 : s),
                                    y: o.y + (l ? 0 : c)
                                },
                                label: "label-sliced",
                                component: e
                            }), a.x = o.x + (l ? 0 : s)), r && x.setAnimation({
                                el: r,
                                attr: {
                                    x: r.x + (l ? 0 : s),
                                    y: r.y + (l ? 0 : c)
                                },
                                label: "label-sliced",
                                component: e
                            }), h && u && ((p = u.slice(0))[1] += s, p[2] += c, p[4] += s, p[5] += c, p[6] += s, p[7] += c, x.setAnimation({
                                el: h,
                                attr: {
                                    path: p
                                },
                                label: "connector-sliced",
                                component: e
                            }), N.connectorPath = p), g.isSliced = l = N.sliced = !l, l
                        }
                    }
                },
                z = function(e) {
                    var t = e.getFromEnv("animationManager");
                    return {
                        plotDragMove: function(t) {
                            var a, i = this.data("plotItem"),
                                n = i.chart,
                                o = t.data,
                                r = o[0],
                                l = o[1],
                                s = o[2],
                                c = o[3],
                                h = i.seriesData,
                                u = e.config;
                            isNaN(r) || isNaN(l) || !u.enableRotation || h.singletonCase || h.isRightClicked || (a = B.call(t, s, c, h.pieCenter, h.chartPosition, 1), h.dragStartAngle === a || h.isRotating || (h.isRotating = !0, n.fireChartInstanceEvent("RotationStart", {
                                startingAngle: h._rotationalStartAngle = n._startingAngle()
                            })), u.startAngle += a - h.dragStartAngle, h.dragStartAngle = a, h.moveDuration = 0, u.updateInited || (u.updateInited = !0, n.addJob("pie_batch_rotate", n._batchRotate || (n._batchRotate = function() {
                                e._rotate(), u.updateInited = !1
                            }), g.priorityList.draw, {
                                oneInAFrame: !0
                            })))
                        },
                        plotDragStart: function(t) {
                            var a, i = this.data("plotItem"),
                                n = i.chart,
                                o = i.seriesData,
                                r = e.config,
                                l = (0, c.pluckNumber)(t.button, t.originalEvent.button),
                                s = -r.startAngle * D,
                                h = t.data[0],
                                u = t.data[1];
                            o.isRightClicked = !(c.touchEnabled || 0 === l || 1 === l), r.enableRotation && !o.isRightClicked && (o.isRotating = !1, o.chartPosition = function(e, t) {
                                var a, i = {
                                        left: 0,
                                        top: 0
                                    },
                                    n = e;
                                if (n.getBoundingClientRect) a = n.getBoundingClientRect(), i.top = a.top + (x.pageYOffset || y.scrollTop || 0) - (y.clientTop || 0), i.left = a.left + (x.pageXOffset || y.scrollLeft || 0) - (y.clientLeft || 0);
                                else
                                    for (; n;) i.left += n.offsetLeft || 0, i.top += n.offsetTop || 0, n === y.body || n === y.documentElement || t || (i.left -= n.scrollLeft || 0, i.top -= n.scrollTop || 0), n = n.offsetParent;
                                return i
                            }(n.getFromEnv("chart-container")), a = B.call(t, h, u, o.pieCenter, o.chartPosition, 1), o.dragStartAngle = a, o.startingAngleOnDragStart = s)
                        },
                        plotDragEnd: function() {
                            var t = this.data("plotItem"),
                                a = t.chart,
                                i = a.getChildren("dataset")[0].config,
                                n = a.config,
                                o = t.seriesData,
                                r = -i.startAngle * D;
                            o.isRightClicked || (n.clicked = !0, a.disposed || e._rotate(), delete n.clicked, o.isRotating && (setTimeout((function() {
                                o.isRotating = !1
                            }), 0), a.fireChartInstanceEvent("RotationEnd", {
                                startingAngle: (0, c.normalizeAngle)(r, !0),
                                changeInAngle: r - i.startingAngleOnDragStart
                            })), !o.isHovered && e.config.handlersAPI.onPlotHover(this, !1))
                        },
                        plotRollOver: function(e) {
                            var t = this.plotItem || this.data("plotItem"),
                                a = t.chart,
                                i = t.seriesData,
                                n = a.getDatasets()[0],
                                o = n.getFromEnv("animationManager");
                            i.isRotating || (a.plotEventHandler(this, e, "DataPlotRollOver"), n.config.handlersAPI.onPlotHover(this, !0, o)), n.fireEvent("datasetrollover", t), i.isHovered = !0
                        },
                        plotRollOut: function(e) {
                            var t = this.plotItem || this.data("plotItem"),
                                a = t.chart,
                                i = t.seriesData,
                                n = a.getDatasets()[0];
                            i.isRotating || (a.plotEventHandler(this, e, "DataPlotRollOut"), n.config.handlersAPI.onPlotHover(this, !1)), n.fireEvent("datasetrollout", t), i.isHovered = !1
                        },
                        onPlotHover: function(a, i) {
                            var n = a.data("plotItem"),
                                o = n.center,
                                r = n.rolloverProperties || {},
                                l = i ? r.color : n.color,
                                s = i ? r.borderWidth : n.borderWidth,
                                h = i ? r.borderColor : n.borderColor;
                            l && (i && (l.cx = o[0], l.cy = o[1], l.r = n.radius), r.enabled && t.setAnimation({
                                el: n.graphic,
                                component: e,
                                attr: {
                                    fill: (0, c.toRaphaelColor)(l),
                                    "stroke-width": s,
                                    stroke: h
                                }
                            }))
                        }
                    }
                },
                H = function(e, t) {
                    return e.point.config.value - t.point.config.value
                },
                W = function(e, t) {
                    return e.angle - t.angle
                },
                j = function(e, t) {
                    t && e.getFromEnv("linkClickFN") && e.getFromEnv("linkClickFN").call({
                        link: t
                    }, !0)
                },
                U = function() {
                    this.remove()
                },
                q = [1, 1, -1, -1],
                Y = [1, -1, -1, 1];

            function X(e) {
                if (this.config.JSONData) {
                    var t, a, i, n, o = this.getFromEnv("legend"),
                        r = this.config.JSONData,
                        l = r.data && r.data.length,
                        s = e.data && e.data.length || 0,
                        c = l - s;
                    for (c > 0 && this.removeData(s, c, !1), t = 0, a = (i = this.components.removeDataArr || []).length; t < a; t++)(n = i[t].config).legendItemId && o.disposeItem(n.legendItemId)
                }
            }
            t.hideFn = function() {
                this.hide()
            }, t.labelClickFn = j, t.plotGraphicClick = G, t.plotClickHandler = V, (0, h.addDep)({
                name: "pie2dAnimation",
                type: "animationRule",
                extension: u["default"]
            }), (0, d["default"])(b);
            var K = function(e) {
                function t() {
                    var t;
                    return (t = e.call(this) || this).plotGraphicClick = G((0, r["default"])(t)), t
                }(0, l["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "dataset"
                }, a.getName = function() {
                    return "pie2D"
                }, a.__setDefaultConfig = function() {
                    e.prototype.__setDefaultConfig.call(this), this.config.doughnutradius = 0
                }, a.configureAttributes = function(e) {
                    if (!e) return !1;
                    this.trimData(e), this.config.JSONData = e;
                    var t, a, i, o, r, l = this.getFromEnv("chart"),
                        s = l.config,
                        h = this.config,
                        u = this.config.JSONData,
                        d = this.getFromEnv("chart-attrib"),
                        g = l.config.is3D,
                        p = /pie/.test(this.getName());
                    h.handlersAPI = z(this), this.setState("visible", 1 === (0, c.pluckNumber)(this.config.JSONData.visible, !Number(this.config.JSONData.initiallyhidden), 1)), (0, c.parseConfiguration)({}, this.config, l && l.config), r = h.enableAnimation = (0, c.pluckNumber)(d.animation, d.defaultanimation, 1), h.animation = !!r && {
                        duration: 1e3 * (0, c.pluckNumber)(d.animationduration, d.moveduration, 1)
                    }, h.transposeAnim = !(!r && !(0, c.pluckNumber)(h.transposeanimation, 1)) && {
                        duration: 1e3 * (0, c.pluckNumber)(d.transposeanimduration, .2)
                    }, h.showPlotBorder = (0, c.pluckNumber)(d.showplotborder, 1), h.showHoverEffect = (0, c.pluckNumber)(d.plothovereffect, d.showhovereffect, n), h.showTooltip = (0, c.pluckNumber)(d.showtooltip, 1), h.toolText = (0, c.getValidValue)((0, c.parseUnsafeString)((0, c.pluck)(u.plottooltext, d.plottooltext), !1)), o = h.enableMultiSlicing = (0, c.pluckNumber)(d.enablemultislicing, 1), a = h.use3DLighting = (0, c.pluckNumber)(d.use3dlighting, 1), t = h.radius3D = a ? (0, c.pluckNumber)(d.radius3d, 90) : 100, h.showZeroPies = (0, c.pluckNumber)(d.showzeropies, 1), h.showPercentInToolTip = (0, c.pluckNumber)(d.showpercentintooltip, 1), h.showLabels = (0, c.pluckNumber)(d.showlabels, 1), h.showTextOutline = (0, c.pluckNumber)(d.textoutline, 0), h.labelFontColor = (0, c.pluck)(u.labelfontcolor, d.labelfontcolor, s.labelfontcolor), h.labelFont = (0, c.pluck)(u.labelfont, d.labelfont, s.basefont), h.showValues = (0, c.pluckNumber)(u.showvalues, d.showvalues, 1), h.showPercentValues = (0, c.pluckNumber)(d.showpercentvalues, d.showpercentagevalues, 0), i = h.toolTipSepChar = (0, c.pluck)(d.tooltipsepchar, d.hovercapsepchar, c.COMMASPACE), h.labelSepChar = (0, c.parseUnsafeString)((0, c.pluck)(d.labelsepchar, i)), h.pieBorderColor = (0, c.pluck)(d.plotbordercolor, d.piebordercolor), h.pieBorderAlpha = (0, c.pluckNumber)(d.plotborderalpha, d.pieborderalpha), h.pieBorderThickness = h.showPlotBorder ? (0, c.pluckNumber)(d.plotborderthickness, d.pieborderthickness, s.plotborderthickness, 1) : 0, h.plotDashLen = (0, c.pluckNumber)(d.plotborderdashlen, 5), h.plotDashGap = (0, c.pluckNumber)(d.plotborderdashgap, 4), h.showValueInLegend = (0, c.pluckNumber)(d.showvalueinlegend, 0), h.showLabelInLegend = (0, c.pluckNumber)(d.showlabelinlegend, 1), h.valueBeforeLabelInLegend = (0, c.pluckNumber)(d.valuebeforelabelinlegend, 0), h.showValueAsPercentInLegend = (0, c.pluckNumber)(d.showvalueaspercentinlegend, 1), h.legendSepChar = (0, c.pluck)(d.legendsepchar, ", "), h.showvalues = (0, c.pluckNumber)(d.showvalues, 1), h.chartPosition = (0, c.getPosition)(l.getFromEnv("chart-container"), l), h.timerThreshold = 30, t > 100 && (t = 100), t < 0 && (t = 0), h.showLegend = (0, c.pluckNumber)(d.showlegend, 0), h.reverselegend = !(0, c.pluckNumber)(d.reverselegend, 0), l.config.is3D = g, h.pieYScale = (0, c.pluckNumber)(d.pieyscale, 40), h.pieYScale < 1 && (h.pieYScale = 1), h.pieYScale >= 100 && (h.pieYScale = 80), h.pieYScale /= 100, h.pieSliceDepth = (0, c.pluckNumber)(d.pieslicedepth, 15), h.pieSliceDepth < 1 && (h.pieSliceDepth = 1), h.managedPieSliceDepth = h.pieSliceDepth, h.enableMultiSlicing = !!o, h.startAngle = (0, c.pluckNumber)(d.startingangle, 0) % 360 * (-P / 180), h.usePerPointLabelColor = d.colorlabelsfromplot === c.ONESTRING, h.reversePlotOrder = (0, c.pluckNumber)(d.reverseplotorder, 0), h.animateClockWise = (0, c.pluckNumber)(d.animateclockwise, h.reversePlotOrder), h.showShadow = (0, c.pluckNumber)(d.showshadow, 1), h.innerLabelRadiusPercent = (0, c.pluckNumber)(d.innerlabelradiuspercent, 67) / 100, h.minAngleForValue = (0, c.pluckNumber)(d.minangleforvalue, 0) * (P / 180), h.minAngleForLabel = (0, c.pluckNumber)(d.minangleforlabel, 0) * (P / 180), h.singletonCase = 1 === u.data.length, h.labelPosition = (0, c.pluck)(d.labelposition, h.singletonCase && p ? "inside" : "outside").toLowerCase(), h.valuePosition = (0, c.pluck)(d.valueposition, h.singletonCase && p ? "inside" : "outside").toLowerCase(), h.valueTotal = 0, this._setConfigure(), s.showLegend && this._addLegend()
                }, a.trimData = function(e) {
                    X.call(this, e)
                }, a._parseDisplayProperties = function(e, t) {
                    var a, i, o, r, l, s, h, u, d, g, p, f, m = c.BLANKSTRING,
                        v = this.getFromEnv("chart"),
                        b = this.getFromEnv("number-formatter"),
                        x = v.getFromEnv("chart-attrib"),
                        y = this.config,
                        C = (0, c.pluckNumber)(t.y, b.getCleanValue(e.value, !0)),
                        k = y.valueTotal,
                        S = y.showLabels,
                        w = (0, c.parseUnsafeString)((0, c.pluck)(t.seriesName, e.label, e.name, c.BLANKSTRING)),
                        L = y.showPercentValues,
                        A = y.showPercentInToolTip,
                        N = y.labelSepChar,
                        T = y.toolTipSepChar,
                        E = y.showTooltip;
                    a = (0, c.getValidValue)((0, c.parseUnsafeString)((0, c.pluck)(e.tooltext, y.toolText), !1)), i = t.pValue = b.percentValue(C / k * 100), r = t.value = b.dataLabels(C) || c.BLANKSTRING, d = t.showLabel = (0, c.pluckNumber)(e.showlabel, S), g = t.showValue = (0, c.pluckNumber)(e.showvalue, y.showValues), t.labelFontColor = (0, c.pluck)(e.labelfontcolor, y.labelFontColor), t.labelFont = (0, c.pluck)(e.labelfont, y.labelFont), l = t.labelText = 1 === d ? w : c.BLANKSTRING, s = t.valueText = 1 === g ? 1 === L ? i : r : c.BLANKSTRING, o = A ? i : r, h = (0, c.getValidValue)((0, c.parseUnsafeString)(e.displayvalue)), t.labelPosition = (0, c.pluck)(e.labelposition, y.labelPosition).toLowerCase(), t.valuePosition = (0, c.pluck)(e.valueposition, y.valuePosition).toLowerCase(), p = (0, c.pluckNumber)(e.minangleforlabel), isNaN(p) ? t.minAngleForLabel = y.minAngleForLabel : t.minAngleForLabel = p % 360 * (P / 180), f = (0, c.pluckNumber)(e.minangleforvalue), isNaN(f) ? t.minAngleForValue = y.minAngleForValue : t.minAngleForValue = f % 360 * (P / 180), t.innerLabelRadiusPercent = (0, c.pluckNumber)(e.innerlabelradiuspercent, y.innerLabelRadiusPercent), u = (0, c.pluck)(h, w + N + (L ? i : r), c.BLANKSTRING), h !== n && g ? (s = t.labelText = h, t.valueText = c.BLANKSTRING) : s = s !== c.BLANKSTRING && l !== c.BLANKSTRING ? l + N + s : (0, c.pluck)(l, s), E && (m = a !== n ? (0, c.parseTooltext)(a, [1, 2, 3, 5, 6, 7, 14, 24, 25], {
                        formattedValue: r,
                        label: w,
                        yaxisName: (0, c.parseUnsafeString)(x.yaxisname),
                        xaxisName: (0, c.parseUnsafeString)(x.xaxisname),
                        percentValue: i,
                        sum: b.dataLabels(k),
                        unformattedSum: k
                    }, e, x) : (m = w) !== c.BLANKSTRING ? m + T + o : o), t.displayValue = s, t.displayValueArgs = u, t.toolText = m, t.seriesName = w, t.categoryLabel = w
                }, a._isStyled = function(e) {
                    if (this.getFromEnv("chart").config.usedataplotcolorforlabels || e.labelbordercolor || e.labelbgcolor || e.labelborderthickness || e.labelborderalpha || e.labelalpha || e.labelfont || e.labelfontsize || e.labelfontcolor || e.labelfontalpha || e.labelalpha || e.labelfontbold || e.labelfontitalic || e.labelborderpadding || e.labelborderradius || e.labelbgalpha || e.labelborderdashed || e.labelborderdashlen || e.labelborderdashgap) return !0
                }, a._setConfigure = function(e, t) {
                    var a, i, o, r, l, s, h, u, d, g, f, m, v, b, x, y, C, k, S, w = this.components,
                        L = w.removeDataArr = w.removeDataArr || [],
                        A = this.getFromEnv("chart"),
                        N = A.getFromEnv("dataSource").chart,
                        E = A.config,
                        F = this.config,
                        _ = this.config.JSONData,
                        P = (e || _).data,
                        D = P && P.length,
                        I = F.showZeroPies,
                        M = F.valueTotal || 0,
                        O = [],
                        R = (0, c.pluckNumber)(N.plotborderdashed, 0),
                        B = this.components.data || (this.components.data = []),
                        V = this.getFromEnv("number-formatter"),
                        G = this.getFromEnv("color-manager"),
                        z = F.labelInLeg,
                        H = F.valInLeg,
                        W = F.pieBorderThickness,
                        j = F.reversePlotOrder,
                        U = F.radius3D,
                        q = F.enableMultiSlicing,
                        Y = F.lastSlicedid || 0,
                        X = (0, c.pluckNumber)(N.plotBorderDashed, 5),
                        K = (0, c.pluckNumber)(N.plotborderdashgap, 4),
                        Z = (0, c.pluckNumber)(N.valuebeforelabelinlegend, 0),
                        J = (0, c.pluckNumber)(N.showvalueaspercentinlegend, 1),
                        $ = 0,
                        Q = [],
                        ee = (0, c.pluck)(N.legendsepchar, ", ");
                    for (E.dataLabelStyle = (0, c.parsexAxisStyles)({}, {}, N, E.dataLabelStyle, o), a = 0; a < D; a += 1) b = P[a], null === (C = V.getCleanValue(b.value, !0)) || !I && 0 === C ? $ += 1 : (O.push(b), Q.push(a), M += C);
                    if (!F.singletonCase && (F.singletonCase = D - $ == 1), $ && B.length > D - $)
                        for (a = B.length - 1; $ > 0; a -= 1, $ -= 1) B[a] && (k = (b = B[a]).config, L.push(b), k.y = null);
                    for (0 === M && (O = []), F.valueTotal = M, F.dataLabelCounter = 0, E.allPlotSliceEnabled = E.enableslicing, a = (D = O.length) - 1; a >= 0; a -= 1) x = a, e ? (S = O[a], b = t !== n ? B[x = t + a] : B[x = B.length - D + a]) : (b = B[a] || (B[a] = {
                        graphics: {},
                        config: {}
                    }), S = O[a]), (y = b && b.config) || (y = B[x].config = {}), b.graphics || (B[x].graphics = {}), y.y = C = V.getCleanValue(S.value, !0), y.seriesName = i = (0, c.parseUnsafeString)((0, c.pluck)(S.label, S.name, c.BLANKSTRING)), y.labellink = (0, c.pluck)(S.labellink, N.labellink), o = (0, c.pluck)(S.color, G.getPlotColor(Q[a])), r = (0, c.pluck)(S.alpha, N.plotfillalpha, c.HUNDREDSTRING), s = (l = y.borderConfig = this._parseBorderConfig(o, r, S)).setPlotBorderColor, h = l.setPlotBorderAlpha, u = {
                        opacity: T(r, h) / 100
                    }, (f = Boolean((0, c.pluckNumber)(S.issliced, N.issliced, 0))) && (q || (-1 !== Y && (B[B.length - Y - 1].sliced = !1), F.lastSlicedid = a), F.preSliced = f), v = (m = (0, c.pluckNumber)(S.dashed, R)) ? (0, c.getDashStyle)((0, c.pluck)(S.dashlen, X), (0, c.pluck)(S.dashgap, K), W) : "none", this._parseDisplayProperties(S, y), d = z ? i : c.BLANKSTRING, H && (g = J ? V.legendPercentValue(C / M * 100) : V.legendValue(C), d = Z ? g + (d && ee + d) : (d && d + ee) + g), F.dataLabelCounter += 1, this._isStyled(S) ? y.style = (0, c.parsexAxisStyles)(S, {}, N, E.dataLabelStyle, o) : y.style && delete y.style, y.showInLegend = d !== c.BLANKSTRING, y.isVisible = !0, y.name = d, y.shadow = u, y.setColor = o, y.setAlpha = r, y.color = (0, p["default"])(o, r, U, F.doughnutradius), y._3dAlpha = r, y.borderColor = (0, c.convertColor)(s, h), y.borderWidth = W, y.link = (0, c.getValidValue)(S.link), y.sliced = f, y.dashStyle = v, y.setBorderDashed = m, (y.doNotSlice = (0, c.pluck)(S.enableslicing, E.enableslicing) !== c.ONESTRING) || E.allPlotSliceEnabled !== c.ZEROSTRING || (E.allPlotSliceEnabled = c.ONESTRING), this._parseHoverEffectOptions(a), y.centerLabelConfig = void 0, y.radius3D = U;
                    j && B && B.reverse(), F.dataArr = O, F.enableRotation = B.length > 1 ? (0, c.pluckNumber)(N.enablerotation, 1) : 0
                }, a._parseHoverEffectOptions = function(e) {
                    var t, a, i, o, r, l, s, h, u, d, g = this.getFromEnv("chart").getFromEnv("dataSource").chart,
                        p = this.config,
                        f = this.components.data[e].config,
                        m = this.config.JSONData,
                        v = m.data[e],
                        b = f.setColor,
                        x = f._3dAlpha,
                        y = p.radius3D,
                        C = f.borderConfig,
                        k = C.setPlotBorderAlpha,
                        S = C.setPlotBorderColor,
                        w = p.setBorderWidth,
                        L = (0, c.pluckNumber)(f.hovereffect, p.showHoverEffect),
                        A = f.hoverEffects = {
                            enabled: L
                        };
                    if (L === n && (L = A.enabled = (0, c.pluck)(v.hovercolor, m.hovercolor, g.plotfillhovercolor, v.hoveralpha, m.hoveralpha, g.plotfillhoveralpha, v.borderhovercolor, m.borderhovercolor, g.plotborderhovercolor, v.borderhoveralpha, m.borderhoveralpha, g.plotborderhoveralpha, g.plotfillhoveralpha, v.borderhoverthickness, m.borderhoverthickness, g.plotborderhoverthickness, n) !== n), L) {
                        if (t = (0, c.pluckNumber)(v.highlightonhover, m.highlight, g.highlight, 1), (a = (0, c.pluck)(v.hovercolor, m.hovercolor, g.plotfillhovercolor)) && t && (t = 0), a = (0, c.pluck)(a, b), i = (0, c.pluck)(v.hoveralpha, m.hoveralpha, g.plotfillhoveralpha, x), o = (0, c.pluck)(v.borderhovercolor, m.borderhovercolor, g.plotborderhovercolor, S), f.hoverBorderColor = o, r = (0, c.pluck)(v.borderhoveralpha, m.borderhoveralpha, g.plotborderhoveralpha, g.plotfillhoveralpha, k), l = (0, c.pluckNumber)(v.borderhoverthickness, m.borderhoverthickness, g.plotborderhoverthickness, w), a.replace(/,+?$/, ""), 1 === t) {
                            for (u = (h = (s = "string" == typeof a) ? a.split(/\s{0,},\s{0,}/) : a.color.split(/\s{0,},\s{0,}/)).length, d = 0; d < u; d++) h[d] = (0, c.getLightColor)(h[d], 70);
                            s ? a = h.join(",") : a.color = h.join(",")
                        }
                        this._setHoverColor(A, a, i, y), A.hoverColor = a, A.alpha = i, A.borderColor = (0, c.convertColor)(o, r), A.borderAlpha = r, A.borderWidth = l
                    } else A.enabled = !1
                }, a.organizeDatalabels = function() {
                    var e, t, a, i, n, o = this.config,
                        r = this.components.data,
                        l = [],
                        s = [],
                        c = r.length;
                    for (e = 0; e < c; e++) i = (t = r[e].config).labelPosition, n = t.valuePosition, null !== t.y && "undefined" != typeof t.y && !1 !== t.isVisible && ("outside" === i && "outside" === n ? l.push({
                        point: r[e]
                    }) : "inside" === i && "inside" === n ? s.push({
                        point: r[e]
                    }) : (l.push({
                        point: r[e]
                    }), s.push({
                        point: r[e]
                    })));
                    a = M(l), o.labelsPlacedOutside = this.skipOverlappingLabels(a), o.labelsPlacedInside = s, this.rotateDataLabels()
                }, a.skipOverlappingLabels = function(e) {
                    var t, a, i, n, o, r, l = e,
                        s = this.config,
                        c = s.dataLabelOptions,
                        h = c.distance + s.pieMinRadius,
                        u = [];
                    for (o = s.labelLineHeight = parseInt(c.style.fontSize, 10), s.labelsMaxInQuadrant = r = _(h / o), a = 0; a < 4; a++)
                        if (c.skipOverlapLabels && (t = l[a].length - r) > 0)
                            for (l[a].sort(H), i = 0, n = (t = l[a].splice(0, t)).length; i < n; i++) this.disposeLabelAndConnector(t[i].point.graphics, [{
                                el: "label",
                                animLabel: "label"
                            }, {
                                el: "innerLabel",
                                animLabel: "label"
                            }, {
                                el: "connector",
                                animLabel: "connector"
                            }]);
                    for (a = 0; a < 4; a++)
                        for (i = 0, n = l[a].length; i < n; i++) u.push(l[a][i]);
                    return u
                }, a.rotateDataLabels = function() {
                    this.rotateOuterLabels(), this.rotateInnerLabels()
                }, a.rotateOuterLabels = function() {
                    var e, t, a, i, n, o, r, l, s, h, u, d, g, p, m, b, x, y, C, k, S, w, L, _, P, D = this.config,
                        I = this.getFromEnv("chart"),
                        O = I.getFromEnv("animationManager"),
                        R = I.getChildren("legend")[0],
                        B = R && R.config || {},
                        G = this.getFromEnv("smartLabel"),
                        z = I.config,
                        H = D.dataLabelOptions,
                        U = D.labelLineHeight,
                        X = D.pieMinRadius,
                        K = I.config,
                        Z = K.canvasLeft,
                        J = K.canvasWidth,
                        $ = K.useEllipsesWhenOverflow,
                        Q = H.connectorPadding,
                        ee = H.manageLabelOverflow,
                        te = H.distance,
                        ae = H.enableSmartLabels,
                        ie = M(D.labelsPlacedOutside),
                        ne = te + X,
                        oe = T(ie[0].length, ie[1].length, ie[2].length, ie[3].length),
                        re = Z + .5 * J,
                        le = z.canvasTop + .5 * z.canvasHeight,
                        se = D.handlersAPI,
                        ce = se.plotDragStart,
                        he = se.plotDragEnd,
                        ue = se.plotDragMove,
                        de = se.plotRollOver,
                        ge = se.plotRollOut,
                        pe = [],
                        fe = [],
                        me = this.getFromEnv("toolTipController"),
                        ve = this.getContainer("label-group");
                    for (t = T(E(oe, D.labelsMaxInQuadrant) * U, ne + U), a = 0; a < 4; a++) ie[a].sort(W);
                    for (ie[0].reverse(), ie[2].reverse(), i = 0; i < 4; i++) {
                        for (k = t, C = ie[i].length * U, pe = [], a = 0, n = ie[i].length; a < n; a++) x = ie[i][a], (r = F(t * A(x.angle))) > k ? r = k : r < C && (r = C), C -= U, k = r - U, pe.push(r);
                        for (C = 0, k = t - (n - 1) * U, fe = [], a = ie[i].length - 1; a >= 0; a--) x = ie[i][a], (r = F(t * A(x.angle))) < C ? r = C : r > k && (r = k), C = r + U, k += U, fe.push(r);
                        for (a = 0; a < n; a++) r = E(t, (pe[a] + fe[n - 1 - a]) / 2), l = t * N(Math.asin(r / t)), g = (o = (x = ie[i][a]).point).config, p = o.graphics, m = g.props.connector.attr, d = c.BLANKSTRING, (S = Object.assign({}, g.props.label.attr))["text-anchor"] = 0 === i || 3 === i ? "start" : "end", S.y = h = le + q[i] * r, S.x = s = re + Y[i] * (l + 2 * Q), g.sliced && (S.y += g.transY, S.x += g.transX), "outside" === g.labelPosition && "outside" === g.valuePosition ? this.disposeLabelAndConnector(p, [{
                            el: "innerLabel",
                            animLabel: "label"
                        }]) : S.text = "outside" === g.labelPosition ? g.labelText : g.valueText, S.text ? (y = {
                            x: re + X * N(x.angle),
                            y: le + X * A(x.angle)
                        }, b = g.connectorPath = (0, f.getConnectorPath)(y, {
                            x: re + Y[i] * l,
                            y: le + q[i] * r
                        }, {
                            isSlanted: H.isSmartLineSlanted,
                            padding: Q,
                            quadrant: i,
                            transX: g.sliced ? g.transX : 0,
                            transY: g.sliced ? g.transY : 0
                        }), ee && (u = 1 === i || 2 === i ? S.x - Z : Z + J - S.x, "right" !== B.align && "left" !== B.align || (u -= B.symbolWidth + 2 * B.borderWidth), G.useEllipsesOnOverflow($), G.setStyle(g.style), e = G.getSmartText(S.text, u, parseFloat(G.style.lineHeight)), S.text = e.text, d = e.tooltext), P = p.label, p.label = _ = O.setAnimation({
                            el: P || "text",
                            attr: S,
                            css: g.props.label.css,
                            component: this,
                            container: ve,
                            label: "label"
                        }), _.outlineText(D.showTextOutline, S.fill), P || _.on("fc-dragstart", ce).on("fc-dragmove", ue).on("fc-dragend", he).on("fc-click", j.bind(_, I, g.labellink)).on("fc-click", V(this, _)).on("fc-mouseover", de).on("fc-mouseout", ge), d ? d && me.enableToolTip(_, d) : me.disableToolTip(_), _.x = s, _.y = h, _ && _.data("textPos", {
                            x: S.x,
                            y: S.y
                        }).data("plotItem", g.plotItem).data("eventArgs", g.eventArgs), L = p.connector, ae ? (p.connector = w = O.setAnimation({
                            el: L || "path",
                            attr: v({
                                path: b
                            }, m),
                            container: ve,
                            component: this,
                            label: "connector"
                        }), L || w.on("fc-dragstart", ce).on("fc-dragmove", ue).on("fc-dragend", he).on("fc-mouseover", de).on("fc-mouseout", ge), w.data("connectorPath", {
                            path: b
                        }).data("plotItem", g.plotItem).data("eventArgs", g.eventArgs)) : L && this.disposeLabelAndConnector(p, [{
                            el: "connector",
                            animLabel: "connector"
                        }])) : this.disposeLabelAndConnector(p, [{
                            el: "label",
                            animLabel: "label"
                        }, {
                            el: "connector",
                            animLabel: "connector"
                        }])
                    }
                }, a.rotateInnerLabels = function() {
                    var e, t, a, i, n, o, r, l, s, h, u, d, g, p, m = this.config,
                        v = m.labelsPlacedInside,
                        b = m.pieCenter,
                        x = this.getFromEnv("animationManager"),
                        y = b[0],
                        C = b[1],
                        k = v.length,
                        S = this.components.data.length,
                        w = m.handlersAPI,
                        L = w.plotDragStart,
                        T = w.plotDragEnd,
                        E = w.plotDragMove,
                        _ = w.plotRollOver,
                        P = w.plotRollOut;
                    for (a = 0; a < k; a++) n = (i = v[a].point).config, o = i.graphics, d = Object.assign({}, n.props.label.attr), u = F(n.startAngle - n.endAngle), s = n.minAngleForLabel, h = n.minAngleForValue, "inside" === n.valuePosition && "inside" === n.labelPosition ? (this.disposeLabelAndConnector(o, [{
                        el: "label",
                        animLabel: "label"
                    }, {
                        el: "connector",
                        animLabel: "connector"
                    }]), u >= h && u < s ? d.text = n.valueText : u < h && u >= s ? d.text = n.labelText : u < h && u < s && (d.text = c.BLANKSTRING)) : "inside" === n.valuePosition ? d.text = u >= h ? n.valueText : c.BLANKSTRING : d.text = u >= s ? n.labelText : c.BLANKSTRING, d.text ? (l = m.pieMinRadius * n.innerLabelRadiusPercent, r = (0, f.getCleanAngle)(n.angle), d.x = e = y + (S > 1 ? l * N(r) : 0), d.y = t = C + (S > 1 ? l * A(r) : 0), n.sliced && (d.y += n.transY, d.x += n.transX), d["text-anchor"] = "middle", p = o.innerLabel, o.innerLabel = g = x.setAnimation({
                        el: p || "text",
                        attr: d,
                        css: n.props.label.css,
                        component: this,
                        container: this.getContainer("label-group"),
                        label: "label"
                    }), g.outlineText(m.showTextOutline, d.fill), p || g.on("fc-dragstart", L).on("fc-dragmove", E).on("fc-dragend", T).on("fc-click", j.bind(g, this.getFromEnv("chart"), n.labellink)).on("fc-click", V(this, g)).on("fc-mouseover", _).on("fc-mouseout", P), g.x = e, g.y = t, g && g.data("textPos", {
                        x: d.x,
                        y: d.y
                    }).data("plotItem", n.plotItem).data("eventArgs", n.eventArgs)) : this.disposeLabelAndConnector(o, [{
                        el: "innerLabel",
                        animLabel: "label"
                    }])
                }, a.disposeLabelAndConnector = function(e, t) {
                    void 0 === t && (t = []);
                    var a, i, n, o = this.getFromEnv("animationManager"),
                        r = t.length;
                    for (a = 0; a < r; a++) e[n = (i = t[a]).el] && (e[n] = o.setAnimation({
                        el: e[n],
                        component: this,
                        label: i.animLabel
                    })), delete e[n]
                }, a._setHoverColor = function(e, t, a, i) {
                    i ? e.color = (0, p["default"])(t, a, i, this.config.doughnutradius) : (e.color = t, e.alpha = a)
                }, a.updateData = function() {
                    var t = this,
                        a = t.config,
                        i = t.components.data;
                    a.valueTotal -= i[arguments[1]].config.y, e.prototype.updateData.call(this, arguments)
                }, a._rotate = function() {
                    var e, t, a, i, o, r, l, s, h, u = this.getFromEnv("chart"),
                        d = this.config,
                        g = this.components.data,
                        p = u.config,
                        f = d.piePlotOptions,
                        m = (d.startAngle || 0) % I,
                        v = d.slicingDistance,
                        b = d.valueTotal,
                        x = I / b,
                        y = p.canvasLeft + .5 * p.canvasWidth,
                        C = p.canvasTop + .5 * p.canvasHeight,
                        k = d.pieMinRadius,
                        S = .5 * (f.innerSize || 0);
                    for (o = r = m, h = 0; h < g.length; h += 1) l = g[h].config, s = g[h].graphics, null !== (a = l.y) && a !== n && (r = o, i = .5 * ((o -= d.singletonCase ? I : a * x) + r), l.angle = i, l.transX = N(i) * v, l.transY = A(i) * v, l.slicedTranslation = "t" + N(i) * v + c.COMMASTRING + A(i) * v, (t = l._rotateAttrs) || (t = l._rotateAttrs = {
                        ringpath: [],
                        transform: c.BLANKSTRING
                    }), (e = t.ringpath)[0] = y, e[1] = C, e[2] = k, e[3] = S, e[4] = o, e[5] = r, s.element.attr({
                        ringpath: t.ringpath,
                        transform: l.sliced ? l.slicedTranslation : ""
                    }));
                    this.organizeDatalabels()
                }, a._parsePiePlotOptions = function() {
                    var e = this.config;
                    return {
                        size: e.pieMinRadius,
                        slicedOffset: e.slicingDistance
                    }
                }, a._parseDataLabelOptions = function() {
                    return {
                        style: this.getFromEnv("chart").config.dataLabelStyle
                    }
                }, a._addLegend = function() {
                    var e, t, a, i, n = this.getFromEnv("legend"),
                        o = this.components.data;
                    for (e = 0; e < o.length; e++)
                        if (null !== (t = o[e].config).y && t.seriesName) i = {
                            index: e,
                            type: this.getName(),
                            label: t.seriesName,
                            enabled: (0, c.pluckNumber)(t.includeInLegend, 1)
                        }, (a = n.getItem(t.legendItemId)) || (t.legendItemId = n.createItem(this), a = n.getItem(t.legendItemId), this.addExtEventListener("fc-click", a.itemClickFn, a)), a.configure(i), a.setStateCosmetics("default", {
                            symbol: {
                                fill: (0, c.toRaphaelColor)(t.setColor),
                                rawFillColor: t.setColor,
                                stroke: (0, c.toRaphaelColor)(t.borderColor)
                            }
                        });
                        else {
                            if (!t.legendItemId) continue;
                            (a = n.getItem(t.legendItemId)) && n.disposeItem(a.getId()), delete t.legendItemId
                        }
                }, a.getPlotData = function(e, t) {
                    var a, i, n, o = this.components.data[e].config,
                        r = this.config.userData || (this.config.userData = []);
                    if (r[e]) a = r[e];
                    else {
                        for (n in a = r[e] = {}, o) "object" != typeof(i = o[n]) && "function" != typeof i && 0 !== n.indexOf("_") && (a[n] = i);
                        a.value = a.y, a.categoryLabel = a.label = a.seriesName, delete a.y, delete a.total, delete a.doNotSlice, delete a.name, delete a.seriesName, delete a.centerAngle, delete a.showInLegend, delete a.angle, delete a.endAngle, delete a.isVisible, delete a.setColor, delete a.slicedTranslation, delete a.startAngle, delete a.transX, delete a.transY, delete a.pValue
                    }
                    return a.sliced = t, a
                }, a._parseBorderConfig = function(e, t, a) {
                    var i = this.config.pieBorderColor,
                        n = this.getFromEnv("chart").getFromEnv("dataSource").chart,
                        o = (0, c.pluck)(a.bordercolor, i),
                        r = (0, c.pluck)(a.borderalpha, n.plotborderalpha, n.pieborderalpha);
                    return {
                        setPlotBorderColor: o = (0, c.pluck)(o, (0, c.getLightColor)(e, 25)).split(c.COMMASTRING)[0],
                        setPlotBorderAlpha: r = n.showplotborder === c.ZEROSTRING ? c.ZEROSTRING : (0, c.pluck)(r, t, "80")
                    }
                }, a.legendInteractivity = function(e) {
                    var t, a, i, n = this.components.data,
                        o = e.getId();
                    for (a = 0, t = n.length; a < t; a++) n[a].config.legendItemId === o && (i = n[a].graphics, this.plotGraphicClick.call(i.element))
                }, a._createContainer = function() {
                    var e, t, a, i, n = this.getName(),
                        o = this.groupName,
                        r = this.getLinkedParent(),
                        l = o || this.dsGroup || n;
                    !r.getChildContainer(l + "Group") && (l = "default"), e = r.getChildContainer("datalabelsGroup"), t = this.getContainer("pie-groups") || this.addContainer("pie-groups", O("pie", e, this)), a = this.getContainer("pie-plot-groups") || this.addContainer("pie-plot-groups", O("pie-plot", t, this)), i = this.getContainer("pie-label-groups") || this.addContainer("pie-label-groups", O("pie-label", t, this)), this.getContainer("plot-group") || this.addContainer("plot-group", O("plots", a, this)), this.getContainer("plot-shadow-group") || this.addContainer("plot-shadow-group", O("plot-shadows", a, this).toBack()), this.getContainer("label-group") || this.addContainer("label-group", O("labels", i, this)), this.getContainer("connector-shadow-group") || this.addContainer("connector-shadow-group", O("connector-shadows", i, this)), this.getContainer("anchor-shadow-group") || this.addContainer("anchor-shadow-group", O("anchor-shadows", i, this))
                }, a.allocatePosition = function() {
                    var e, t, a = this.components.data,
                        i = a.length;
                    for (e = 0; e < i; e++) t = a[e], this.parsePlotAttributes(t, e), this.parseLabelAttributes(t, e)
                }, a.parsePlotAttributes = function(e, t) {
                    var a, i, o, r, l, s, h, u, d, g, p, f, m, v, b = this.components.data,
                        x = this.getFromEnv("chart"),
                        y = x.config,
                        k = this.config,
                        S = t,
                        w = b.length,
                        L = y.canvasWidth,
                        T = y.canvasHeight,
                        E = y.canvasLeft + .5 * L,
                        F = y.canvasTop + .5 * T,
                        _ = k.valueTotal,
                        P = k.piePlotOptions = this._parsePiePlotOptions(),
                        D = P.slicedOffset,
                        M = P.size,
                        O = .5 * (k.innerSize || 0),
                        B = (k.startAngle || 0) % I,
                        V = B - I,
                        G = k.animateClockWise;
                    m = _ && I / _, k.pieCenter = [E, F], r = B, l = B, t > 0 && (r = b[t - 1].config.startAngle, l = b[t - 1].config.endAngle), h = (s = e.config).y, u = s.displayValue, d = s.sliced, a = s.toolText, i = !!s.link, null !== h && h !== n && !1 !== s.isVisible && ((g = s.color).r = M, g.cx = E, g.cy = F, l = r, p = .5 * ((r -= k.singletonCase ? I : h * m) + l), G ? V : B, f = k.previousData = {
                        cx: E,
                        cy: F,
                        r: M,
                        r2: O
                    }, o = this.config.drawn ? [f.cx, f.cy, f.r, f.r2, r, l] : [E, F, M, O, r, l], d && (s.slicedTranslation = "t" + N(p) * D + "," + A(p) * D), v = {
                        "stroke-width": s.borderWidth,
                        stroke: s.borderColor,
                        fill: C ? R(s.color, k.doughnutradius) : (0, c.toRaphaelColor)(s.color),
                        transform: d ? s.slicedTranslation : "",
                        "stroke-dasharray": s.dashStyle,
                        redrawDataLabels: B,
                        ringpath: o,
                        cursor: i ? "pointer" : ""
                    }, s.props = {
                        element: {
                            attr: v
                        }
                    }, s.eventArgs = {
                        index: k.reversePlotOrder ? w - 1 - S : S,
                        link: s.link,
                        value: s.y,
                        displayValue: s.displayValueArgs,
                        categoryLabel: s.categoryLabel,
                        isSliced: d,
                        toolText: a,
                        pValue: s.pValue,
                        color: s.setColor,
                        alpha: s.setAlpha,
                        borderColor: s.borderConfig.setPlotBorderColor,
                        borderAlpha: s.borderConfig.setPlotBorderAlpha,
                        dashed: s.setBorderDashed,
                        showLabel: s.showLabel,
                        showValue: s.showValue,
                        labelPosition: s.labelPosition,
                        valuePosition: s.valuePosition,
                        labelFont: s.labelFont,
                        labelFontColor: s.labelFontColor || "#555555",
                        labelLink: s.labellink,
                        hoverColor: s.hoverEffects.hoverColor,
                        hoverAlpha: s.hoverEffects.alpha,
                        borderHoverColor: s.hoverBorderColor,
                        borderHoverAlpha: s.hoverEffects.borderAlpha
                    }, s.plotItem = {
                        chart: x,
                        index: S,
                        seriesData: k,
                        value: h,
                        pValue: s.pValue,
                        displayValue: s.displayValue || "",
                        angle: s.angle = p,
                        angle1: s.startAngle = r,
                        angle2: s.endAngle = l,
                        slicedX: N(p) * D,
                        slicedY: A(p) * D,
                        sliced: d,
                        labelText: u,
                        toolText: a,
                        name: s.name,
                        link: s.link,
                        percentage: _ ? h * _ / 100 : 0,
                        originalIndex: w - S - 1,
                        style: s.style,
                        color: (0, c.toRaphaelColor)(s.color),
                        borderColor: s.borderColor,
                        borderWidth: s.borderWidth,
                        rolloverProperties: s.hoverEffects,
                        radius: M,
                        center: [E, F],
                        innerDiameter: 2 * O,
                        centerLabelConfig: s.centerLabelConfig,
                        isVisible: s.isVisible,
                        label: s.seriesName,
                        connector: void 0,
                        transX: s.transX = N(p) * D,
                        transY: s.transY = A(p) * D,
                        slicedTranslation: s.slicedTranslation = "t" + N(p) * D + "," + A(p) * D
                    })
                }, a.parseLabelAttributes = function(e) {
                    var t, a, i, o, r, l = this.getFromEnv("chart").config,
                        s = l.dataLabelStyle,
                        h = this.config,
                        u = l.style,
                        d = l.textDirection,
                        g = h.dataLabelOptions;
                    (o = (t = e.config)._textAttrs) || (o = t._textAttrs = {}), a = t.y, i = t.displayValue, u = t.style, null !== a && a !== n && !1 !== t.isVisible && (i !== n ? (u && ((r = t._textCss) || (r = t._textCss = {}), r.fontFamily = u.fontFamily, r.fontSize = u.fontSize, r.lineHeight = u.lineHeight, r.fontWeight = u.fontWeight, r.fontStyle = u.fontStyle), t.plotItem.style = t.style = u || (u = s), o.text = i, o.fill = u.color || "#000000", o.cursor = e.config.link ? "pointer" : "", o["text-bound"] = [u.backgroundColor, u.borderColor, u.borderThickness, u.borderPadding, u.borderRadius, u.borderDash], o.direction = d, o["line-height"] = u.lineHeight) : o.text = c.BLANKSTRING, t.props.label = {
                        attr: o,
                        css: r
                    }, t.props.connector = {
                        attr: {
                            "stroke-width": g.connectorWidth,
                            stroke: g.connectorColor || "#606060"
                        }
                    })
                }, a.draw = function() {
                    var e, t, a, i, o, r, l, s, h, u, d, g, p, f, m, v, b, x = this.getFromEnv("animationManager"),
                        y = this.getFromEnv("chart").config,
                        C = y.dataLabelStyle,
                        k = this.config,
                        S = k.showShadow,
                        w = this.components,
                        L = w.removeDataArr = w.removeDataArr || [],
                        A = this.getState("visible"),
                        N = w.data || [],
                        T = N.length,
                        E = y.canvasWidth,
                        _ = y.canvasHeight,
                        P = y.canvasLeft + .5 * E,
                        D = y.canvasTop + .5 * _,
                        I = k.handlersAPI.plotDragStart,
                        M = k.handlersAPI.plotDragEnd,
                        O = k.handlersAPI.plotDragMove,
                        R = k.handlersAPI.plotRollOver,
                        B = k.handlersAPI.plotRollOut,
                        G = function() {
                            var e = k.pieCenter || [],
                                t = k.piePlotOptions || [],
                                a = {
                                    cx: e[0],
                                    cy: e[1],
                                    r: t.size,
                                    r2: .5 * (k.innerSize || 0)
                                };
                            return function(e) {
                                var t, i = !1;
                                for (t in e)
                                    if (F(e[t] - a[t]) > 5) {
                                        i = !0;
                                        break
                                    }
                                return i
                            }
                        }(),
                        z = (k.piePlotOptions = this._parsePiePlotOptions()).size,
                        H = .5 * (k.innerSize || 0),
                        W = this.getFromEnv("toolTipController");
                    for (this.getContainer("pie-groups") || this._createContainer(), s = this.getContainer("plot-group"), h = this.getContainer("plot-shadow-group"), u = this.getContainer("label-group"), d = this.getContainer("connector-shadow-group"), g = this.getContainer("anchor-shadow-group"), this.config.drawn && (e = G({
                            cx: P,
                            cy: D,
                            r: z,
                            r2: H
                        }) && !1), u.css(C), b = k.valueTotal, A && b ? (s.show(), h.show(), u.show(), d.show(), g.show()) : (s.hide(), h.hide(), u.hide(), d.hide(), g.hide()), L.length && this.removeElement(), t = 0; t < T; t += 1) p = (a = N[t]).graphics, m = (f = a.config).y, i = f.toolText, null !== m && m !== n && !1 !== f.isVisible && (r = p.element, o = x.setAnimation({
                        el: r || "ringpath",
                        attr: f.props.element.attr,
                        label: "ringpath",
                        props: {
                            startAngle: this.config.startAngle
                        },
                        container: s,
                        component: this
                    }), r || (p.element = o, o.on("fc-dragstart", I).on("fc-dragmove", O).on("fc-dragend", M).on("fc-click", V(this, o)).on("fc-mouseover", R).on("fc-mouseout", B)), v = f.plotItem, l = f.eventArgs, v.graphic = o, o.show().shadow(S && f.shadow, h).data("plotItem", v).data("dataset", this).data("eventArgs", l), W.enableToolTip(o, i));
                    this.organizeDatalabels(), !this.config.__attachRestoreColor && this.addExtEventListener("animationComplete", (function() {
                        var t, a;
                        if (e)
                            for (t = 0; t < T; t += 1)(a = N[t]).graphics.element && a.graphics.element.attr({
                                fill: (0, c.toRaphaelColor)(a.config.color)
                            })
                    }), x), this.config.__attachRestoreColor = !0, this.config.drawn = !0
                }, a.sliceInOtherPies = function(e) {
                    var t, a = this.components.data,
                        i = a.length,
                        n = 0;
                    for (this.enableMultiSlicing = !0; i--;) i !== e && (t = a[i]).config.sliced && ++n && this.plotGraphicClick.call(t.graphics);
                    return this.enableMultiSlicing = !1, !!n
                }, a.removeElement = function() {
                    var e, t, a, i, n = this.getFromEnv("animationManager"),
                        o = this.getFromEnv("chart").config,
                        r = this.components.removeDataArr || [],
                        l = r.length,
                        s = this.config,
                        c = o.canvasWidth,
                        h = o.canvasHeight,
                        u = o.canvasLeft + .5 * c,
                        d = o.canvasTop + .5 * h,
                        g = s.pieMinRadius,
                        p = .5 * (s.innerSize || 0),
                        f = s.startAngle - I;
                    for (i = 0; i < l; i++) {
                        for (t in a = r[0].graphics)
                            if (a.hasOwnProperty(t)) {
                                if (!(e = a[t])) continue;
                                "element" === t ? (n.setAnimation({
                                    el: e,
                                    attr: {
                                        ringpath: [u, d, g, p, f, f + .01],
                                        transform: ""
                                    },
                                    callback: U,
                                    component: this
                                }), delete a[t]) : this.disposeLabelAndConnector(a, [{
                                    el: "label",
                                    animLabel: "label"
                                }, {
                                    el: "innerLabel",
                                    animLabel: "label"
                                }, {
                                    el: "connector",
                                    animLabel: "connector"
                                }])
                            }
                        r.splice(0, 1)
                    }
                }, a.getEventArgs = function(e) {
                    var t = e.config.index,
                        a = this.components.data[t].config || {};
                    return {
                        datasetName: a.seriesName,
                        datasetIndex: t,
                        id: a.userID,
                        visible: a.isVisible,
                        label: a.seriesName,
                        value: a.value,
                        percentValue: a.pValue,
                        tooltext: a.toolText,
                        link: a.link,
                        sliced: a.sliced
                    }
                }, a.remove = function(t) {
                    var a = this.config.legendItemId,
                        i = this.getFromEnv("legend");
                    i && a && i.disposeItem(a), e.prototype.remove.call(this, t)
                }, t
            }(s["default"]);
            t["default"] = K
        },
        543: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = {
                "initial.dataset.pie2D": function() {
                    return {
                        "group.appearing": function(e) {
                            return [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: e.component.getFromEnv("chartConfig").alphaanimation ? "plot" : "initial"
                            }]
                        },
                        "ringpath.appearing": function(e) {
                            var t = e.component,
                                a = e.attr.ringpath.slice(0),
                                i = e.attr.ringpath.slice(0),
                                n = e.props.startAngle,
                                o = e.component.config,
                                r = t.getFromEnv("chartConfig"),
                                l = o.animateClockWise;
                            return r.alphaanimation ? [{}] : (l && (i[4] += 2 * Math.PI, i[5] += 2 * Math.PI), a[4] = n, a[5] = n, [{
                                initialAttr: {
                                    ringpath: a
                                },
                                finalAttr: {
                                    ringpath: i,
                                    transform: ""
                                },
                                startEnd: {
                                    start: 0,
                                    end: .75
                                },
                                effect: "linear",
                                slot: "plot"
                            }, {
                                initialAttr: {
                                    transform: "",
                                    ringpath: i
                                },
                                finalAttr: {
                                    ringpath: i
                                },
                                startEnd: {
                                    start: .75,
                                    end: 1
                                },
                                effect: "linear",
                                slot: "plot"
                            }])
                        },
                        "label.appearing": [{
                            initialAttr: {
                                opacity: "0"
                            },
                            finalAttr: {
                                opacity: "1"
                            },
                            slot: "final"
                        }],
                        "connector.appearing": function(e) {
                            return [{
                                initialAttr: {
                                    path: e.attr.path,
                                    opacity: "0"
                                },
                                finalAttr: {
                                    opacity: "1"
                                },
                                slot: "final"
                            }]
                        },
                        "label.updating": function(e) {
                            return [{
                                initialAttr: {
                                    x: e.el.attrs.x
                                },
                                slot: "plot"
                            }]
                        }
                    }
                },
                "slicing.dataset.pie2D": function() {
                    return {
                        "slice.updating": function(e) {
                            return "t0,0" !== (e.attr && e.attr.transform) ? [{
                                initialAttr: {
                                    transform: "t0,0"
                                },
                                slot: "plot"
                            }] : [{
                                finalAttr: {
                                    transform: "t0,0"
                                },
                                slot: "plot"
                            }]
                        }
                    }
                }
            };
            t["default"] = i
        },
        544: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.getConnectorPath = t.getQuadrant = t.getCleanAngle = void 0;
            var i = Math.PI,
                n = i / 2,
                o = 3 * i / 2,
                r = 2 * i,
                l = function(e) {
                    var t = e % r;
                    return t < 0 ? t + r : t
                };
            t.getConnectorPath = function(e, t, a) {
                void 0 === a && (a = {});
                var i = a,
                    n = i.isSlanted,
                    o = i.quadrant,
                    r = i.padding,
                    l = i.transX,
                    s = i.transY,
                    c = e.x + l,
                    h = e.y + s,
                    u = t.x + l,
                    d = t.y + s;
                return ["M", c, h, "L", n ? u : c, d, u + (1 === o || 2 === o ? -1 : 1) * (r || 0), d]
            }, t.getQuadrant = function(e) {
                var t = l(e);
                return t >= 0 && t < n ? 0 : t < i ? 1 : t < o ? 2 : 3
            }, t.getCleanAngle = l
        },
        552: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t, a, i, n = window.parseFloat,
                    o = e._createNode,
                    r = e._setFillAndStroke,
                    l = e.el.constructor,
                    s = {
                        Q: "L",
                        Z: "X",
                        q: "l",
                        z: "x",
                        ",": " "
                    },
                    c = /,?([achlmqrstvxz]),?/gi,
                    h = function() {
                        return this.join(",").replace(c, t)
                    };
                e.svg ? (t = "$1", a = function() {
                    var a = this,
                        i = e.is(arguments[0], "array") ? arguments[0] : Array.prototype.slice.call(arguments);
                    i ? "string" == typeof i ? i = i.replace(c, t) : i.toString = h : i = "M0,0", a.node.setAttribute("d", i.toString())
                }, e._engine.litepath = function(t, a, i, n, s) {
                    var c, h = o("path");
                    return (n || a).canvas.appendChild(h), (c = new l(h, a, n)).type = "litepath", c.id = h.raphaelid = e._oid++, h.raphael = !0, r(c, s || {
                        fill: "none",
                        stroke: "#000"
                    }), c
                }, e._getPath.litepath = function(t) {
                    return e.parsePathString(t.node.getAttribute("d"))
                }) : e.vml && (t = function(e, t) {
                    return s[t] || t
                }, i = function() {
                    var e = this;
                    return e._transform.apply(e, arguments), e._.bcoord && (e.node.coordsize = e._.bcoord), e
                }, a = function(e) {
                    var a = e;
                    return a ? "string" == typeof a ? a = a.replace(c, t) : a.toString = h : a = "M0,0", this.node.path = a, this
                }, e._engine.litepath = function(t, a, r, s, c) {
                    var h, u = o("shape"),
                        d = u.style,
                        g = new l(u, a, s),
                        p = c || {
                            fill: "none",
                            stroke: "#000"
                        },
                        f = r;
                    return d.cssText = "position:absolute;left:0;top:0;width:21600px;height:21600px;", f = n(f), isNaN(f) ? u.coordsize = "21600 21600" : (g._.bzoom = f, d.width = "1px", d.height = "1px", u.coordsize = g._.bcoord = f + " " + f), u.coordorigin = a.coordorigin, g.type = "litepath", g.id = u.raphaelid = e._oid++, u.raphael = !0, g._transform = g.transform, g.transform = i, e._setFillAndStroke(g, p), (s || a).canvas.appendChild(u), (h = o("skew")).on = !0, u.appendChild(h), g.skew = h, g
                }, e._getPath.litepath = function(t) {
                    return e.parsePathString(t.node.path || "")
                });
                e.fn.litepath = function(t, i, n) {
                    var o, r, s, c = t,
                        h = i,
                        u = n;
                    return "object" == typeof c && c.constructor !== l && (o = c, r = (c = c.litepath).zoom, u = c.group), h && h.constructor === l ? (u = h, r = void 0) : r = h, c && c.constructor === l && (u = c, c = ""), (s = e._engine.litepath(c, this, r, u, o)).ca.litepath = a, c && s.attr("litepath", e.is(c, "array") ? [c] : c), this.__set__ && this.__set__.push(s), this._elementsById[s.id] = s
                }
            }
        },
        561: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = t.setAxisDimention = t.getSpecificyAxisConf = t.getSpecificxAxisConf = t._feedAxesRawData = void 0;
            var n, o, r, l, s = i(a(207)),
                c = i(a(519)),
                h = i(a(562)),
                u = a(193),
                d = i(a(563)),
                g = i(a(306)),
                p = i(a(438)),
                f = Math.max;
            t.setAxisDimention = l, t.getSpecificyAxisConf = r, t.getSpecificxAxisConf = o, t._feedAxesRawData = n;
            var m = function(e) {
                function t() {
                    var t;
                    return (t = e.call(this) || this).registerFactory("axis", h["default"], ["canvas"]), t.registerFactory("dataset", d["default"], ["vCanvas"]), t
                }(0, s["default"])(t, e), t.getName = function() {
                    return "MSDyBaseCartesian"
                };
                var a = t.prototype;
                return a.__setDefaultConfig = function() {
                    e.prototype.__setDefaultConfig.call(this), this.config.syncaxislimits = 0
                }, a._feedAxesRawData = function() {
                    var e, t, a, i, n, o, r, l, s, c = this.config,
                        h = this.getFromEnv("color-manager"),
                        d = this.getFromEnv("dataSource"),
                        p = this.getFromEnv("chart-attrib"),
                        f = this.config.is3D,
                        m = f ? u.chartPaletteStr.chart3D : u.chartPaletteStr.chart2D,
                        v = c.primaryAxisOnleft = (0, u.pluckNumber)(p.primaryaxisonleft, 1),
                        b = (0, u.pluckNumber)(p.syncaxislimits, 0),
                        x = [{
                            line: []
                        }],
                        y = [{
                            line: []
                        }],
                        C = d.trendlines || [],
                        k = (0, u.pluckNumber)(p.showzeroplane, 1),
                        S = (0, u.pluckNumber)(p.showzeroplanevalue);
                    for (k || S !== u.UNDEF || (S = 0), e = this.getSpecificxAxisConf(), t = this.getSpecificyAxisConf(), a = {
                            isActive: !1,
                            isPercent: this.isPercentage,
                            axisIndex: 1,
                            uniqueClassName: 1,
                            outCanfontFamily: (0, u.pluck)(p.outcnvbasefont, p.basefont, "Verdana,sans"),
                            outCanfontSize: (0, u.pluckFontSize)(p.outcnvbasefontsize, p.basefontsize, 10),
                            outCancolor: (0, u.pluck)(p.outcnvbasefontcolor, p.basefontcolor, h.getColor(m.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"),
                            axisNamePadding: p.yaxisnamepadding,
                            axisValuePadding: p.yaxisvaluespadding,
                            axisNameFont: p.syaxisnamefont,
                            axisNameFontSize: p.syaxisnamefontsize,
                            axisNameFontColor: p.syaxisnamefontcolor,
                            axisNameFontBold: p.syaxisnamefontbold,
                            axisNameFontItalic: p.syaxisnamefontitalic,
                            axisNameBgColor: p.syaxisnamebgcolor,
                            axisNameBorderColor: p.syaxisnamebordercolor,
                            axisNameAlpha: p.syaxisnamealpha,
                            axisNameFontAlpha: p.syaxisnamefontalpha,
                            axisNameBgAlpha: p.syaxisnamebgalpha,
                            axisNameBorderAlpha: p.syaxisnameborderalpha,
                            axisNameBorderPadding: p.syaxisnameborderpadding,
                            axisNameBorderRadius: p.syaxisnameborderradius,
                            axisNameBorderThickness: p.syaxisnameborderthickness,
                            axisNameBorderDashed: p.syaxisnameborderdashed,
                            axisNameBorderDashLen: p.syaxisnameborderdashlen,
                            axisNameBorderDashGap: p.syaxisnameborderdashgap,
                            axisNameWidth: p.syaxisnamewidth,
                            useEllipsesWhenOverflow: p.useellipseswhenoverflow,
                            rotateAxisName: (0, u.pluckNumber)(p.rotateyaxisname, 1),
                            axisName: p.syaxisname,
                            divLineColor: (0, u.pluck)(p.divlinecolor, h.getColor(m.divLineColor)),
                            divLineAlpha: (0, u.pluck)(p.divlinealpha, h.getColor("divLineAlpha")),
                            divLineThickness: (0, u.pluckNumber)(p.divlinethickness, 1),
                            divLineIsDashed: Boolean((0, u.pluckNumber)(p.divlinedashed, p.divlineisdashed, 0)),
                            divLineDashLen: (0, u.pluckNumber)(p.divlinedashlen, 4),
                            divLineDashGap: (0, u.pluckNumber)(p.divlinedashgap, 2),
                            showAlternateGridColor: (0, u.pluckNumber)(p.showalternatehgridcolor, 1),
                            alternateGridColor: (0, u.pluck)(p.alternatehgridcolor, h.getColor("altHGridColor")),
                            alternateGridAlpha: (0, u.pluck)(p.alternatehgridalpha, h.getColor("altHGridAlpha")),
                            numDivLines: p.numdivlines,
                            axisMinValue: b ? (0, u.pluckNumber)(p.syaxisminvalue, p.pyaxisminvalue, p.yaxisminvalue) : p.syaxisminvalue,
                            axisMaxValue: b ? (0, u.pluckNumber)(p.syaxismaxvalue, p.pyaxismaxvalue, p.yaxismaxvalue) : p.syaxismaxvalue,
                            setAdaptiveMin: p.setadaptivesymin || p.setadaptiveymin,
                            adjustDiv: p.adjustdiv,
                            labelStep: p.yaxisvaluesstep,
                            showAxisValues: (0, u.pluckNumber)(p.showsyaxisvalues, p.showsyaxisvalue, p.showyaxisvalues, p.showyaxisvalue),
                            showLimits: (0, u.pluckNumber)(p.showsecondarylimits, p.showyaxislimits, p.showlimits),
                            showDivLineValues: (0, u.pluckNumber)(p.showdivlinesecondaryvalue, p.showyaxisvalues, p.showyaxisvalue, 1),
                            showZeroPlane: k,
                            zeroPlaneColor: p.zeroplanecolor,
                            zeroPlaneThickness: (0, u.pluckNumber)(p.zeroplanethickness, p.divlinethickness, 2),
                            zeroPlaneAlpha: p.zeroplanealpha,
                            showZeroPlaneValue: S,
                            trendlineColor: p.trendlinecolor,
                            trendlineToolText: p.trendlinetooltext,
                            trendlineThickness: p.trendlinethickness,
                            trendlineAlpha: p.trendlinealpha,
                            showTrendlinesOnTop: p.showtrendlinesontop,
                            showAxisLine: f ? 0 : (0, u.pluckNumber)(p.showsyaxisline, p.showaxislines, p.drawAxisLines, 0),
                            axisLineThickness: (0, u.pluckNumber)(p.syaxislinethickness, p.axislinethickness, 1),
                            axisLineAlpha: (0, u.pluckNumber)(p.syaxislinealpha, p.axislinealpha, 100),
                            axisLineColor: (0, u.pluck)(p.syaxislinecolor, p.axislinecolor, "#000000"),
                            labelFont: p.yaxisvaluefont,
                            labelFontSize: p.yaxisvaluefontsize,
                            labelFontColor: p.yaxisvaluefontcolor,
                            labelAlpha: p.yaxisvaluealpha,
                            labelFontBold: p.yaxisvaluefontbold,
                            labelFontItalic: p.yaxisvaluefontitalic,
                            labelBdrColor: p.yaxisvaluebordercolor,
                            labelBdrAlpha: p.yaxisvalueborderalpha,
                            labelBgAlpha: p.yaxisvaluebgalpha,
                            labelLink: p.yaxisvaluelink,
                            labelBgColor: p.yaxisvaluebgcolor,
                            labelBdrThickness: p.yaxisvalueborderthickness,
                            labelBdrPadding: p.yaxisvalueborderpadding,
                            labelBdrRadius: p.yaxisvalueborderradius,
                            labelBdrDashed: p.yaxisvalueborderdashed,
                            labelBdrDashLen: p.yaxisvalueborderdashlen,
                            labelBdrDashGap: p.yaxisvalueborderdashgap
                        }, e.vtrendlines = (0, u.extend2)([], d.vtrendlines), l = 0, r = C.length; l < r; l++)
                        for (o = (i = C[l] && C[l].line || []).length, s = 0; s < o; s++) n = i[s] || {}, (0, g["default"])(n.parentyaxis, "s") ? x[0].line.push(n) : y[0].line.push(n);
                    return t.trendlines = (0, u.extend2)([], y), a.trendlines = (0, u.extend2)([], x), 1 === v ? (t.isVertical = !0, t.isReverse = !0, t.isOpposit = !1, a.isVertical = !0, a.isReverse = !0, a.isOpposit = !0) : (t.isVertical = !0, t.isReverse = !0, t.isOpposit = !0, a.isVertical = !0, a.isReverse = !0, a.isOpposit = !1), {
                        yAxisConf: [t, a],
                        xAxisConf: [e]
                    }
                }, a.getSpecificxAxisConf = function() {
                    var e = this.getFromEnv("chart-attrib"),
                        t = this.config.is3D,
                        a = this.getBasexAxisConf(),
                        i = this.config;
                    return a.zeroPlaneThickness = (0, u.pluckNumber)(e.vzeroplanethickness, e.vdivlinethickness, 2), a.zeroPlaneAlpha = (0, u.pluckNumber)(e.vzeroplanealpha, e.vdivlinealpha, i.zeroplanealpha), a.showZeroPlaneValue = e.showvzeroplanevalue, a.showAxisLine = t ? 0 : (0, u.pluckNumber)(e.showxaxisline, e.showaxislines, e.drawAxisLines, 0), a.axisLineColor = (0, u.pluck)(e.xaxislinecolor, e.axislinecolor, "#000000"), a.isReverse = !1, a.showAlternateGridColor = (0, u.pluckNumber)(e.showalternatevgridcolor, 0), a.numDivLines = e.numvdivlines, a.maxLabelHeight = e.maxlabelheight, a.axisName = e.xaxisname, a.setAdaptiveMin = e.setadaptivexmin, a.showLimits = e.showvlimits, a.showDivLineValues = (0, u.pluckNumber)(e.showvdivlinevalues, e.showvdivlinevalues), a
                }, a.getSpecificyAxisConf = function() {
                    var e = this.getFromEnv("chart-attrib"),
                        t = this.config.is3D,
                        a = t ? u.chartPaletteStr.chart3D : u.chartPaletteStr.chart2D,
                        i = this.config,
                        n = this.getFromEnv("color-manager"),
                        o = (0, u.pluckNumber)(e.syncaxislimits, 0),
                        r = (0, u.pluckNumber)(e.showzeroplane, 1),
                        l = (0, u.pluckNumber)(e.showzeroplanevalue);
                    return r || l !== u.UNDEF || (l = 0), {
                        outCanfontFamily: (0, u.pluck)(e.outcnvbasefont, e.basefont, "Verdana,sans"),
                        outCanfontSize: (0, u.pluckFontSize)(e.outcnvbasefontsize, e.basefontsize, 10),
                        outCancolor: (0, u.pluck)(e.outcnvbasefontcolor, e.basefontcolor, n.getColor(a.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"),
                        axisNamePadding: (0, u.pluckNumber)(e.pyaxisnamepadding, e.yaxisnamepadding),
                        axisValuePadding: (0, u.pluckNumber)(e.pyaxisvaluespadding, e.yaxisvaluespadding),
                        axisNameFont: (0, u.pluck)(e.pyaxisnamefont, e.yaxisnamefont),
                        axisNameFontSize: (0, u.pluckNumber)(e.pyaxisnamefontsize, e.yaxisnamefontsize),
                        axisNameFontColor: (0, u.pluck)(e.pyaxisnamefontcolor, e.yaxisnamefontcolor),
                        axisNameFontBold: (0, u.pluckNumber)(e.pyaxisnamefontbold, e.yaxisnamefontbold),
                        axisNameFontItalic: (0, u.pluckNumber)(e.pyaxisnamefontitalic, e.yaxisnamefontitalic),
                        axisNameBgColor: (0, u.pluck)(e.pyaxisnamebgcolor, e.yaxisnamebgcolor),
                        axisNameBorderColor: (0, u.pluck)(e.pyaxisnamebordercolor, e.yaxisnamebordercolor),
                        axisNameAlpha: (0, u.pluckNumber)(e.pyaxisnamealpha, e.yaxisnamealpha),
                        axisNameFontAlpha: (0, u.pluckNumber)(e.pyaxisnamefontalpha, e.yaxisnamefontalpha),
                        axisNameBgAlpha: (0, u.pluckNumber)(e.pyaxisnamebgalpha, e.yaxisnamebgalpha),
                        axisNameBorderAlpha: (0, u.pluckNumber)(e.pyaxisnameborderalpha, e.yaxisnameborderalpha),
                        axisNameBorderPadding: (0, u.pluckNumber)(e.pyaxisnameborderpadding, e.yaxisnameborderpadding),
                        axisNameBorderRadius: (0, u.pluckNumber)(e.pyaxisnameborderradius, e.yaxisnameborderradius),
                        axisNameBorderThickness: (0, u.pluckNumber)(e.pyaxisnameborderthickness, e.yaxisnameborderthickness),
                        axisNameBorderDashed: (0, u.pluckNumber)(e.pyaxisnameborderdashed, e.yaxisnameborderdashed),
                        axisNameBorderDashLen: (0, u.pluckNumber)(e.pyaxisnameborderdashlen, e.yaxisnameborderdashlen),
                        axisNameBorderDashGap: (0, u.pluckNumber)(e.pyaxisnameborderdashgap, e.yaxisnameborderdashgap),
                        axisNameWidth: (0, u.pluckNumber)(e.pyaxisnamewidth, e.yaxisnamewidth),
                        useEllipsesWhenOverflow: e.useellipseswhenoverflow,
                        rotateAxisName: (0, u.pluckNumber)(e.rotateyaxisname, 1),
                        axisName: (0, u.pluck)(e.pyaxisname, e.yaxisname),
                        divLineColor: (0, u.pluck)(e.divlinecolor, n.getColor(a.divLineColor)),
                        divLineAlpha: (0, u.pluck)(e.divlinealpha, n.getColor("divLineAlpha")),
                        divLineThickness: (0, u.pluckNumber)(e.divlinethickness, 1),
                        divLineIsDashed: Boolean((0, u.pluckNumber)(e.divlinedashed, e.divlineisdashed, 0)),
                        divLineDashLen: (0, u.pluckNumber)(e.divlinedashlen, 4),
                        divLineDashGap: (0, u.pluckNumber)(e.divlinedashgap, 2),
                        showAlternateGridColor: (0, u.pluckNumber)(e.showalternatehgridcolor, 1),
                        alternateGridColor: (0, u.pluck)(e.alternatehgridcolor, n.getColor("altHGridColor")),
                        alternateGridAlpha: (0, u.pluck)(e.alternatehgridalpha, n.getColor("altHGridAlpha")),
                        numDivLines: e.numdivlines,
                        axisMinValue: o ? (0, u.pluckNumber)(e.syaxisminvalue, e.pyaxisminvalue, e.yaxisminvalue) : (0, u.pluckNumber)(e.pyaxisminvalue, e.yaxisminvalue),
                        axisMaxValue: o ? (0, u.pluckNumber)(e.syaxismaxvalue, e.pyaxismaxvalue, e.yaxismaxvalue) : (0, u.pluckNumber)(e.pyaxismaxvalue, e.yaxismaxvalue),
                        setAdaptiveMin: e.setadaptiveymin,
                        adjustDiv: e.adjustdiv,
                        labelStep: e.yaxisvaluesstep,
                        showAxisValues: (0, u.pluckNumber)(e.showyaxisvalues, e.showyaxisvalue),
                        showLimits: (0, u.pluckNumber)(e.showyaxislimits, e.showlimits, this.showLimits),
                        showDivLineValues: (0, u.pluckNumber)(e.showdivlinevalues, e.showdivlinevalue),
                        showZeroPlane: r,
                        zeroPlaneColor: e.zeroplanecolor,
                        zeroPlaneThickness: (0, u.pluckNumber)(e.zeroplanethickness, e.divlinethickness, i.zeroplanethickness, 2),
                        zeroPlaneAlpha: (0, u.pluckNumber)(e.zeroplanealpha, e.divlinealpha, i.zeroplanealpha),
                        showZeroPlaneValue: l,
                        showZeroPlaneOnTop: i.showzeroplaneontop,
                        trendlineColor: e.trendlinecolor,
                        trendlineToolText: e.trendlinetooltext,
                        trendlineThickness: e.trendlinethickness,
                        trendlineAlpha: e.trendlinealpha,
                        showTrendlinesOnTop: e.showtrendlinesontop,
                        showAxisLine: t ? 0 : (0, u.pluckNumber)(e.showyaxisline, e.showaxislines, e.drawAxisLines, 0),
                        axisLineThickness: (0, u.pluckNumber)(e.yaxislinethickness, e.axislinethickness, 1),
                        axisLineAlpha: (0, u.pluckNumber)(e.yaxislinealpha, e.axislinealpha, 100),
                        axisLineColor: (0, u.pluck)(e.yaxislinecolor, e.axislinecolor, "#000000"),
                        forceTrendBelow: !!i.is3D,
                        labelFont: e.yaxisvaluefont,
                        labelFontSize: e.yaxisvaluefontsize,
                        labelFontColor: e.yaxisvaluefontcolor,
                        labelAlpha: e.yaxisvaluealpha,
                        labelFontBold: e.yaxisvaluefontbold,
                        labelFontItalic: e.yaxisvaluefontitalic,
                        labelBdrColor: e.yaxisvaluebordercolor,
                        labelBgAlpha: e.yaxisvaluebgalpha,
                        labelBdrAlpha: e.yaxisvalueborderalpha,
                        labelLink: e.yaxisvaluelink,
                        labelBgColor: e.yaxisvaluebgcolor,
                        labelBdrThickness: e.yaxisvalueborderthickness,
                        labelBdrPadding: e.yaxisvalueborderpadding,
                        labelBdrRadius: e.yaxisvalueborderradius,
                        labelBdrDashed: e.yaxisvalueborderdashed,
                        labelBdrDashLen: e.yaxisvalueborderdashlen,
                        labelBdrDashGap: e.yaxisvalueborderdashgap
                    }
                }, a.setAxisDimention = function() {
                    var e, t, a = this.config,
                        i = this.getChildren(),
                        n = this.getChildren("scrollBar") && this.getChildren("scrollBar")[0] && this.getChildren("scrollBar")[0].config,
                        o = i.yAxis,
                        r = i.xAxis && i.xAxis[0],
                        l = o[0],
                        s = o[1],
                        c = a.xDepth || 0,
                        h = i.canvas[0].config,
                        u = h.canvasBorderWidth,
                        d = h.canvasPadding,
                        g = h.canvasPaddingLeft,
                        p = h.canvasPaddingRight,
                        m = h.canvasPaddingTop,
                        v = this && this.isScrollEnabled(),
                        b = a.shift && (a.is3D || v && +n.isOpposite === r.config.isOpposit) ? a.shift : 0,
                        x = a.sumValueSpace && a.sumValueSpace.top || 0,
                        y = a.primaryAxisOnleft,
                        C = h.canvasPaddingBottom,
                        k = f(g, d);
                    r && r.setAxisDimention({
                        x: a.canvasLeft + c + k,
                        y: r.config.isOpposit ? a.canvasTop - u - (a.is3D ? 0 : b) - x : a.canvasBottom + b + u,
                        opposite: r.config.isOpposit ? a.canvasBottom + b + u : a.canvasTop - u,
                        axisLength: a.canvasWidth - c - k - f(p, d)
                    }), y ? (a.yAxisStartXPos = a.canvasLeft - u, a.sYAxisStartXPos = a.canvasRight + u) : (a.yAxisStartXPos = a.canvasRight + u, a.sYAxisStartXPos = a.canvasLeft - u), e = a.yAxisStartXPos, t = a.sYAxisStartXPos, l && l.setAxisDimention({
                        x: e,
                        y: a.canvasTop + m,
                        opposite: t,
                        axisLength: a.canvasHeight - m - C
                    }), s && s.setAxisDimention({
                        x: t,
                        y: a.canvasTop + m,
                        opposite: e,
                        axisLength: a.canvasHeight - m - C
                    })
                }, a._manageYAxisSpace = function() {
                    var e, t, a, i = this.config,
                        n = this.getChildren("yAxis"),
                        o = [],
                        r = 0;
                    for (t = 0; t < (n && n.length); t++) a = (e = n[t]) && e.placeAxis(.7 * (i.availableWidth - r)) || {}, 0 === t && (r = a.left), o.push({
                        axisIndex: t,
                        spaceTaken: a
                    });
                    n && n[0] && this._allocateSpace({
                        left: (0, p["default"])(o, (function(e) {
                            return e.spaceTaken.left
                        })),
                        right: (0, p["default"])(o, (function(e) {
                            return e.spaceTaken.right
                        }))
                    }), i.yAxisSpaceAllocation = o
                }, t
            }(c["default"]);
            t._feedAxesRawData = n = m.prototype._feedAxesRawData, t.getSpecificxAxisConf = o = m.prototype.getSpecificxAxisConf, t.getSpecificyAxisConf = r = m.prototype.getSpecificyAxisConf, t.setAxisDimention = l = m.prototype.setAxisDimention;
            var v = m;
            t["default"] = v
        },
        562: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t, a, i, l = e.getChildren("canvas")[0],
                    s = function(e, t) {
                        return JSON.stringify(e) !== JSON.stringify(t)
                    },
                    c = {
                        zoomable: !0,
                        pannable: !0
                    },
                    h = !!Number(e.config.syncaxislimits),
                    u = l.getChildren("axisRefVisualCartesian")[0],
                    d = e._feedAxesRawData(),
                    g = function(e) {
                        var t = e.sender;
                        u.addexplicitDrawItems(t.getId(), t), u.asyncDraw()
                    };
                (0, n.componentFactory)(e, r["default"], "xAxis", 1, d.xAxisConf), (0, n.componentFactory)(e, o["default"], "yAxis", 2, d.yAxisConf), t = e.getChildren(), a = t.xAxis[0], (i = t.yAxis).forEach((function(t) {
                    t.setLinkedItem("canvas", l), u.setLinkedItem(t.getId(), t), u.addExtEventListener("visiblerangeset", g, t), l.attachAxis(t, !0, e.zoomY ? c : {})
                })), a.setLinkedItem("canvas", l), u.setLinkedItem(a.getId(), a), i[1].setAxisConfig({
                    dependentInfo: {
                        id: i[0].getId(),
                        count: !0,
                        limit: h
                    }
                }), i[1].getState("divlineEventAdded") || (i[1].addExtEventListener("divlinesSet", (function(e) {
                    var t = i[1].config.dependentInfo;
                    e.sender.getId() === t.id && (t.numDivLines = e.data)
                }), i[0]), i[1].setState("divlineEventAdded", !0));
                h && (i[1].getState("dataLimitEventAdded") || (i[1].addExtEventListener("dataLimitSet", (function(e) {
                    var t = i[1].config.dependentInfo;
                    e.sender.getId() === t.id && s(t.dataLimit, e.data) && (t.dataLimit = e.data, i[1].config.isDataLimitSet && i[1].setDataLimit())
                }), i[0]), i[1].setState("dataLimitEventAdded", !0)), i[0].setAxisConfig({
                    dependentInfo: {
                        id: i[1].getId(),
                        limit: !0
                    }
                }), i[0].getState("dataLimitEventAdded") || (i[0].addExtEventListener("dataLimitSet", (function(e) {
                    var t = i[0].config.dependentInfo;
                    e.sender.getId() === t.id && s(t.dataLimit, e.data) && (t.dataLimit = e.data, i[0].setDataLimit())
                }), i[1]), i[0].setState("dataLimitEventAdded", !0)));
                u.addExtEventListener("visiblerangeset", g, a), l.attachAxis(a, !1, e.zoomX ? c : {}), e._setCategories()
            };
            var n = a(193),
                o = i(a(435)),
                r = i(a(482))
        },
        563: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = function(e) {
                var t, a, o, r, l, s, c, h, u, d, g = e.getFromEnv("dataSource").dataset,
                    p = e.getChildren().canvas[0].getChildren("vCanvas"),
                    f = p[0],
                    m = p[1],
                    v = e.getFromEnv("chartConfig").isdual,
                    b = {
                        vCanvasDatasetsDef0: {},
                        vCanvasDatasetsDef1: {}
                    },
                    x = {
                        vCanvas0: {},
                        vCanvas1: {}
                    };
                g || e.setChartMessage();
                for (a = 0; a < g.length; a++) t = g[a], "s" === (h = t.parentyaxis || "").toLowerCase() && v ? (c = (0, i.pluck)(t.renderas, e.config.sDefaultDatasetType), u = m, d = x.vCanvas1, r = b.vCanvasDatasetsDef1) : (c = (0, i.pluck)(t.renderas, e.config.defaultDatasetType), u = f, d = x.vCanvas0, r = b.vCanvasDatasetsDef0), c = e.getDSType(c, "s" === h.toLowerCase()), (s = e.getDSGroupdef(c, "s" === h.toLowerCase())) && ((0, i.componentFactory)(u, s, "multiseriesColumnManager"), d[s.getName().toLowerCase()] = !0), d[c.toLowerCase()] = !0, r[c] ? (r[c].conf.push(t), r[c].indices.push(a)) : (r[c] = {}, r[c].indices = [a], r[c].classDef = e.getDSdef(c), r[c].conf = [t], r[c].pYAxis = h.toLowerCase(), r[c].parent = s ? u.getChildren("multiseriesColumnManager")[0] : u);
                for (var y in e.config._hascolumn = !1, b)
                    if (b.hasOwnProperty(y))
                        for (c in r = b[y]) r.hasOwnProperty(c) && ("group" === (l = r[c]).parent.getType() && l.parent.configure(l.conf), (0, i.datasetFactory)(l.parent, l.classDef, "dataset_" + c, l.conf.length, l.conf, l.indices), "column" === c && (e.config._hascolumn = !0));
                    (o = e.getDatasets()).sort((function(e, t) {
                    var a = e.getName(),
                        i = t.getName(),
                        n = {
                            line: 1,
                            area: 2,
                            column: 3
                        };
                    return n[a] > n[i] ? -1 : n[a] < n[i] ? 1 : 0
                })), e.config.datasetOrder = o, (0, n.removeComponents)(p[0], Object.keys(x.vCanvas0)), (0, n.removeComponents)(p[1], Object.keys(x.vCanvas1))
            };
            var i = a(193),
                n = a(564)
        },
        564: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.removeComponents = void 0;
            t.removeComponents = function(e, t) {
                e && e.iterateComponents((function(e) {
                    -1 !== t.indexOf(e.getName().toLowerCase()) || e.getLinkedParent().getState("removed") || e.remove()
                }))
            }
        },
        576: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(510)),
                r = a(193),
                l = i(a(577)),
                s = a(201),
                c = a(578),
                h = i(a(579)),
                u = r.preDefStr.setRolloverAttrStr,
                d = r.preDefStr.setRolloutAttrStr;
            (0, s.addDep)({
                name: "mssplineareaAnimation",
                type: "animationRule",
                extension: h["default"]
            });
            var g = function(e) {
                function t() {
                    var t;
                    return (t = e.call(this) || this).drawCommonElements = r.stubFN, t
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "dataset"
                }, a.configureAttributes = function(t) {
                    e.prototype.configureAttributes && e.prototype.configureAttributes.call(this, t), l["default"].call(this)
                }, a.getDataLimits = function() {
                    return {
                        max: this.config.maxValue,
                        min: this.config.minValue
                    }
                }, a.drawPlots = function() {
                    var e, t, a, i, n, o, l, s, h, g, p, f, m, v, b, x, y, C, k, S, w, L, A, N, T, E = this.config,
                        F = this.getFromEnv("chart"),
                        _ = F.config,
                        P = this.getFromEnv("xAxis"),
                        D = null,
                        I = [],
                        M = this.components.data,
                        O = _.connectnulldata,
                        R = _.minimizetendency,
                        B = E.plotBorderDashStyle,
                        V = E.plotborderthickness,
                        G = this.getContainer(),
                        z = [],
                        H = this.getGraphicalElement("splineElement"),
                        W = E.fillColor,
                        j = this.components.removeDataArr || [],
                        U = j.length,
                        q = G && G.shadowGroup,
                        Y = E.shadow,
                        X = this.getState("visible"),
                        K = {},
                        Z = !_.drawfullareaborder,
                        J = E.plotborderColorObject,
                        $ = this.getGraphicalElement("connector"),
                        Q = this.getFromEnv("animationManager"),
                        ee = E._oldStartIndex,
                        te = E._oldEndIndex,
                        ae = this.config.JSONData.renderas || F.config.defaultDatasetType,
                        ie = /area/gi.test(ae);
                    for (E.imagesLoaded = 0, M || (M = this.components.data), e = P.getTicksLen(), N = E.scrollMinVal, T = E.scrollMaxVal, N > ee && this.flushOnScroll(ee, N > te ? te : N), T < te && this.flushOnScroll(T < ee ? ee : T, te), E._oldStartIndex = N, E._oldEndIndex = T, t = N; t < T; t++)(h = M[t]) && (f = (s = h && h.config).setValue, k = (K = s.anchorProps).shadow, g = h.graphics.element, p = h.graphics.hotElement, w = h.graphics.image, null === f ? (g && g.hide(), p && p.hide(), w && w.hide(), O || (D = null)) : (n = s._Py, i = s._Px, !1 === X && (n = s._Pby), I.push({
                        x: i,
                        y: n,
                        lastXPos: o,
                        lastYPos: D
                    }), o = i, D = n, b = K.anchorAlpha, C = K.radius && b, v = s.hoverEffects, y = g ? X && C ? "updating" : "disappearing" : "appearing", K.imageUrl ? this.drawAnchorImage(h) : (x = Object.assign({}, s.props.element.attr), "disappearing" !== y && X || (x = r.UNDEF), g = h.graphics.element = Q.setAnimation({
                        el: g || "path",
                        attr: x,
                        container: G.plotGroup,
                        component: this,
                        label: "anchor"
                    }), w && w.hide(), g && g.show().shadow(k, G.anchorShadowGroup).data("anchorRadius", K.radius).data("anchorHoverRadius", v.anchorRadius).data("eventArgs", s.eventArgs), v.enabled && g && g.data("anchorRadius", K.radius).data("anchorHoverRadius", v.anchorRadius).data("hoverEnabled", v.enabled).data(u, v.attrs.setRolloverAttr).data(d, v.attrs.setRolloutAttr))));
                    for (a = e, L = {
                            path: z = (z = (l = (0, c.getSplinePath)(I, s && s._Pby, R, ie, a)).closedPath).join(),
                            stroke: (0, r.toRaphaelColor)(J),
                            "stroke-width": Z ? 0 : V,
                            fill: (0, r.toRaphaelColor)(W),
                            "stroke-linecap": "round",
                            "stroke-linejoin": V > 2 ? "round" : "miter",
                            "stroke-dasharray": B
                        }, this.getState("visible") || (L = r.UNDEF), !(m = Q.setAnimation({
                            el: H || "path",
                            attr: L,
                            container: G.commonElemsGroup,
                            component: this,
                            label: "line"
                        })) && H && this.removeGraphicalElement(H), H || this.addGraphicalElement("splineElement", m), "" !== z && this.getState("visible") ? m.show().shadow(Y, q) : m && m.hide(), Z ? (A = {
                            path: l.openPath.join(),
                            stroke: (0, r.toRaphaelColor)(J),
                            "stroke-width": V,
                            "stroke-linecap": "round",
                            "stroke-linejoin": V > 2 ? "round" : "miter",
                            "stroke-dasharray": B,
                            name: "connector"
                        }, S = Q.setAnimation({
                            el: $ || "path",
                            attr: A,
                            container: G.commonElemsGroup,
                            state: $ ? this.getState("visible") ? "updating" : "disappearing" : "appearing",
                            component: this,
                            label: "connectorLine"
                        }), $ || this.addGraphicalElement("connector", S)) : S && this.removeGraphicalElement(S), t = 0; t < U; t++) this._removeDataVisuals(j.shift())
                }, a.getName = function() {
                    return "splinearea"
                }, t
            }(o["default"]);
            t["default"] = g
        },
        577: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = a(193),
                n = function(e, t, a) {
                    var i, n, r, l, s = {};
                    for (n = 0; n < e.length; ++n) s["D" + e[n].index] = 0;
                    for (i = 0; i < 10; ++i)
                        for (n = 0; n < e.length; ++n) r = 0 === n ? (3 * (e[n + 1].y - e[n].y) - s["D" + e[n + 1].index]) / 2 : n === e.length - 1 ? (3 * (e[n].y - e[n - 1].y) - s["D" + e[n - 1].index]) / 2 : (3 * (e[n + 1].y - e[n - 1].y) - s["D" + e[n + 1].index] - s["D" + e[n - 1].index]) / 4, s["D" + e[n].index] = r;
                    for (l = Math.round(t / (e.length - 1)), n = 1; n < e.length; ++n) o(n, e, s, a, l)
                },
                o = function(e, t, a, i, n) {
                    var o, r, l, s, c, h, u, d, g, p, f, m, v = t,
                        b = e;
                    for (o = a["D" + v[0].index], r = a["D" + v[b].index], l = v[0].y, s = o, c = 3 * (v[b].y - v[0].y) - 2 * o - r, h = 2 * (v[0].y - v[b].y) + o + r, u = i.max, d = i.min, g = 0, p = n; g <= p; g++)(m = l + s * (f = g / p) + c * f * f + h * f * f * f) < d && (d = m), m > u && (u = m);
                    i.max = u, i.min = d
                },
                r = function() {
                    var e, t = this.config,
                        a = this.getFromEnv("chart"),
                        o = this.getFromEnv("chartConfig"),
                        r = a.config.origRenderWidth,
                        l = o.connectnulldata,
                        s = o.minimizetendency,
                        c = this.components.data,
                        h = Number.MIN_VALUE,
                        u = Number.MAX_VALUE;
                    0 === s && (e = function d(e, t, a, i, o) {
                        var r = [],
                            l = !1,
                            s = i || 0,
                            c = o;
                        for (c = c || {
                                max: Number.MIN_VALUE,
                                min: Number.MAX_VALUE
                            }; s < e.length; ++s)
                            if (l) {
                                if (isNaN(e[s].config.setValue) || null === e[s].config.setValue) {
                                    if (a) continue;
                                    break
                                }
                                r.push({
                                    index: s,
                                    y: e[s].config.setValue
                                })
                            } else {
                                if (isNaN(e[s].config.setValue) || null === e[s].config.setValue) continue;
                                l = !0, r.push({
                                    index: s,
                                    y: e[s].config.setValue
                                })
                            }
                        return r.length > 2 && n(r, t, c), s < e.length && !a && d(e, t, a, s, c), c
                    }(c, r, l), t.maxValue = Math.max(t.maxValue, e.max), t.minValue = Math.min(t.minValue, e.min), t.maxValue === h && (t.maxValue = i.UNDEF), t.minValue === u && (t.minValue = i.UNDEF))
                };
            t["default"] = r
        },
        578: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.getSplinePath = function(e, t, a, r, l) {
                var s, p, f, m, v, b, x, y, C, k, S, w, L, A, N, T, E, F, _, P, D, I, M, O, R, B, V = a,
                    G = [null],
                    z = [],
                    H = [];
                for (R = 0, B = e.length; R < B; R += 1) L = e[R], M = e[R - 1] || {}, O = e[R + 1] || {}, b = L.x, f = L.y, x = M.x, m = M.y, y = O.x, v = O.y, C = L.lastYPos, k = L.lastXPos, _ = z.length, S = H.length, V ? null !== C ? (p = D, R === e.length - 1 ? (F = G[R - P - 1], E = h(T = A = (b + x) / 2, F, x, m), (m > f && E < f || m < f && E > f) && (T = u(E = f, F, x, m)), D.push(T, E, A, (f + m) / 2, b, f), z.push(D), H.push(D), r && g(z, !0, I, t), r && g(H, !1)) : (F = G[R - P - 1], m > f && v >= f || m < f && v <= f ? (w = 0, A = d(x, m, b, f), N = f, R - P != 1 ? (E = h(T = A, F, x, m), (m > f && E < f || m < f && E > f) && (T = u(E = f, F, x, m)), D.push(T, E, A, N, b, f)) : D.push((b + x) / 2, (f + m) / 2, A, N, b, f)) : m === f ? (w = 0, D.push(x, m, b, f, b, f)) : (m > f && f > v || m < f && f < v) && (w = c(x, m, y, v), A = d(x, m, b, f), N = h(A, w, b, f), (m > f && N > m || m < f && N < m) && (A = u(N = m, w, b, f)), R - P != 1 ? (E = h(T = A, F, x, m), (m > f && E < f || m < f && E > f) && (T = u(E = f, F, x, m)), D.push(T, E, A, N, b, f)) : D.push((b + x) / 2, (f + m) / 2, A, N, b, f)), G.push(w))) : null === C && 0 !== R ? (p || (p = []), p[0] === o && (z.push(D), H.push(D), r && g(z, !0, I, t), r && g(H, !1)), z.push([i, b, f]), H.push([i, b, f]), I = b, D = [o], P = R, G = [null]) : (z.push([i, b, f]), H.push([i, b, f]), I = b, D = [o], P = R) : null !== C ? _ >= 2 ? (z[_ - 1][0] === i && z.push([n]), H[S - 1][0] === i && H.push([n]), _ = z.length, S = H.length, p = z[_ - 1], s = p.length, z[_ - 1].push(b), z[_ - 1].push(f), H[S - 1].push(b), H[S - 1].push(f), R === l - 1 && p[0] === n && (g(z, !0, I, t), g(H, !1))) : (z.push([i, k, C]), z.push([n, b, f]), H.push([i, k, C]), H.push([n, b, f]), I = k) : null === C && _ >= 2 && ((p = z[_ - 1])[0] === n && (g(z, !0, I, t), g(H, !1)), z.push([i, b, f]), H.push([i, b, f]), I = b);
                p = z[z.length - 1], r && p && (s = p.length, "Z" === p[s - 1] || p[0] !== n && p[0] !== o || (g(z, !0, I, t), g(H, !1)));
                r || (z = V ? z : H).length >= 2 && g(z, !1);
                return {
                    closedPath: z,
                    openPath: H
                }
            };
            var i = "M",
                n = "R",
                o = "C",
                r = Math,
                l = r.sqrt,
                s = r.abs,
                c = function(e, t, a, i) {
                    return (i - t) / (a - e)
                },
                h = function(e, t, a, i) {
                    return (e - a) * t + i
                },
                u = function(e, t, a, i) {
                    return (e - i) / t + a
                },
                d = function(e, t, a, i) {
                    var n = (i - t) / l((a - e) * (a - e) + (i - t) * (i - t)),
                        o = s(.5 * n);
                    return e * o + a * (1 - o)
                },
                g = function(e, t, a, i) {
                    var r = e.length,
                        l = e[r - 1],
                        s = l.length,
                        c = l[0],
                        h = l[s - 2];
                    s < 3 || (c !== n && c !== o || 3 !== s || (e[r - 1][0] = "L"), t && e.push(["L", h, i, a, i, "Z"]))
                }
        },
        579: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = a(193);

            function n(e) {
                var t, a, n, o = e.length,
                    r = [],
                    l = !1,
                    s = !0;
                for (n = 0; n < o; ++n) t = e[n], s ? (r.push(t), a = (0, i.extend2)([], t), s = !1) : "Z" !== t ? l || (r.push(t), t.toString() === e[n - 1].toString() && (l = !0)) : (s = !0, l = !1, a[0] = "L", r.push(a, "Z"));
                return r
            }

            function o(e) {
                var t = e.component,
                    a = t.components.data,
                    i = t.getLinePath(a, null, "zero"),
                    n = i.getPathArr().slice(0, i.getPathArr().length / 2),
                    o = e.attr;
                return [{
                    initialAttr: {
                        opacity: 0,
                        path: n
                    },
                    finalAttr: {
                        opacity: 1,
                        path: o && o.path
                    },
                    startEnd: {
                        start: 0,
                        end: .5
                    },
                    slot: "plot",
                    hookFn: function() {
                        this.attr({
                            opacity: 1
                        })
                    }
                }]
            }

            function r(e) {
                return "label-group" === e.attr.name ? [{
                    initialAttr: {
                        opacity: 0
                    },
                    finalAttr: {
                        opacity: 1
                    },
                    slot: "final"
                }] : "plot-group" === e.attr.name ? [{
                    initialAttr: {
                        opacity: 0
                    },
                    finalAttr: {
                        opacity: 1
                    },
                    startEnd: {
                        start: .5,
                        end: 1
                    },
                    slot: "plot"
                }] : [{
                    initialAttr: {
                        opacity: 1
                    },
                    finalAttr: {
                        opacity: 1
                    },
                    slot: "final"
                }]
            }

            function l() {
                return [{
                    initialAttr: {
                        opacity: 0
                    },
                    finalAttr: {
                        opacity: 1
                    },
                    slot: "final"
                }]
            }

            function s(e) {
                var t = e.component,
                    a = t.components.data,
                    i = t.getLinePath(a, null, "zero"),
                    o = e.attr;
                return [{
                    initialAttr: {
                        opacity: 0,
                        path: n(i.getPathArr())
                    },
                    finalAttr: {
                        opacity: 1,
                        path: o && o.path
                    },
                    startEnd: {
                        start: 0,
                        end: .5
                    },
                    slot: "plot",
                    hookFn: function() {
                        this.attr({
                            opacity: 1
                        })
                    }
                }]
            }
            var c = {
                "*.dataset.splinearea": function() {
                    return {
                        "anchor.appearing": [{
                            initialAttr: {
                                opacity: 0
                            },
                            finalAttr: {
                                opacity: 1
                            },
                            startEnd: {
                                start: .5,
                                end: 1
                            },
                            slot: "plot"
                        }],
                        "anchor.updating": [{
                            initialAttr: {
                                opacity: 0
                            },
                            finalAttr: {
                                opacity: 1
                            },
                            slot: "final"
                        }],
                        "anchor.disappearing": [{
                            finalAttr: {
                                opacity: 0,
                                "fill-opacity": 0,
                                "stroke-opacity": 0
                            },
                            slot: "final"
                        }],
                        "line.appearing": s,
                        "label.appearing": [{
                            initialAttr: {
                                opacity: 0
                            },
                            finalAttr: {
                                opacity: 1
                            },
                            slot: "final"
                        }],
                        "label.updating": l,
                        "group.appearing": r,
                        "connectorLine.appearing": o
                    }
                }
            };
            t["default"] = c
        },
        580: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(509)),
                r = a(193),
                l = i(a(577)),
                s = a(201),
                c = a(578),
                h = i(a(581));
            (0, s.addDep)({
                name: "mssplineAnimation",
                type: "animationRule",
                extension: h["default"]
            });
            var u = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "dataset"
                }, a.getName = function() {
                    return "spline"
                }, a.configureAttributes = function(t) {
                    e.prototype.configureAttributes && e.prototype.configureAttributes.call(this, t), l["default"].call(this)
                }, a.getDataLimits = function() {
                    return {
                        max: this.config.maxValue,
                        min: this.config.minValue
                    }
                }, a.drawCommonElements = function() {
                    var e, t, a, i, n, o = this.components.data,
                        l = this.config,
                        s = Number(this.getFromEnv("chartConfig").connectnulldata),
                        h = this.getFromEnv("xAxis"),
                        u = this.getFromEnv("yAxis"),
                        d = l.lineDashStyle,
                        g = l.linethickness,
                        p = [],
                        f = null,
                        m = {
                            color: l.linecolor,
                            alpha: l.alpha
                        },
                        v = {
                            x: h.getLimit(),
                            y: u.getLimit()
                        },
                        b = this.getState("visible") ? o.length : 0,
                        x = l.lineOb || {},
                        y = [],
                        C = this.getFromEnv("chart"),
                        k = /area/gi.test(C.defaultDatasetType);
                    for (v.x.minPixel = h.getPixel(v.x.min), v.x.maxPixel = h.getPixel(v.x.max), v.y.minPixel = u.getPixel(v.y.min), v.y.maxPixel = u.getPixel(v.y.max), v.y.base = u.getPixel(0), v.x.base = h.getPixel(0), t = 0; t < b; ++t)(a = o[t]) && (n = (i = a.config || {}).setValue, i._Pbx = void 0, i._Pby = void 0, y[t] = {
                        config: {
                            _Px: i._Px,
                            _Py: i._Py,
                            setValue: i.setValue
                        }
                    }, null != n ? (p.push({
                        x: i._Px,
                        y: i._Py,
                        lastYPos: f,
                        lastXPos: e
                    }), f = i._Py, e = i._Px) : s || (f = null));
                    l.pathStartIndex = 0, l.pathEndIndex = void 0, x["default"] = x["default"] || {}, x["default"].used = !0, x["default"].path = [{
                        pathArr: (0, c.getSplinePath)(p, u.getPixel(u.getAxisBase()), C.config.minimizetendency, k).closedPath,
                        path2Arr: [],
                        getPathArr: function() {
                            var e = this.pathArr,
                                t = this.path2Arr;
                            return e.length || t.length ? e.concat(t) : []
                        }
                    }], x["default"].attr = {
                        "stroke-dasharray": d,
                        "stroke-width": g,
                        stroke: (0, r.toRaphaelColor)(m),
                        "stroke-linecap": "round"
                    }, this._drawCommonElementsHelper(x), this.config.lineOb = x, l.prevLim = v, l.prevDataStore = y
                }, t
            }(o["default"]);
            t["default"] = u
        },
        581: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = {
                "*.dataset.spline": i(a(512))["default"]["*.dataset.line"]
            };
            t["default"] = n
        },
        582: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(208),
                r = a(193),
                l = Math,
                s = l.min,
                c = l.max,
                h = l.abs,
                u = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).setState("visible", !0), t
                    }(0, n["default"])(t, e);
                    var a = t.prototype;
                    return a.getType = function() {
                        return "group"
                    }, t.getName = function() {
                        return "columnMultiSeriesgroup"
                    }, a.getName = function() {
                        return "columnMultiSeriesgroup"
                    }, a.preConfigure = function(t) {
                        if (!t) return !1;
                        this.config.JSONData = t, e.prototype.preConfigure.call(this, t)
                    }, a.configure = function(t) {
                        if (!t) return !1;
                        e.prototype.configure.call(this, t)
                    }, a.setVisibility = function() {
                        var e = 0;
                        this._mapChildren((function(e) {
                            e.setVisibility && e.setVisibility()
                        })), this._mapChildren((function(t) {
                            t.getState("visible") && e++
                        })), this.setState("visible", !!e)
                    }, a.createContainer = function() {
                        var e, t, a = this.getFromEnv("animationManager"),
                            i = this.getLinkedParent().getChildContainer();
                        for (e in i) t = i[e], !this.getChildContainer(e) && this.addChildContainer(e, a.setAnimation({
                            el: "group",
                            attr: {
                                name: "manager-" + e
                            },
                            component: this,
                            container: t
                        }))
                    }, a.allocatePosition = function() {
                        this.setColumnPosition()
                    }, a.draw = function() {
                        this.createContainer()
                    }, a.getCanvasPadding = function() {
                        var e, t, a = {
                            paddingLeft: 0,
                            paddingRight: 0,
                            paddingTop: 0,
                            paddingBottom: 0
                        };
                        return this.setColumnPosition(), this._mapChildren((function(i) {
                            for (t in e = !i.getState("removed") && i.getState("visible") && i.getCanvasPadding && i.getCanvasPadding() || {}) e.hasOwnProperty(t) && (a[t] = Math.max(e[t], a[t]))
                        })), a
                    }, a.setColumnPosition = function() {
                        var e, t, a, i, n, o = this.getFromEnv("chartConfig"),
                            l = this.getFromEnv("chart-attrib"),
                            u = this.getFromEnv("xAxis"),
                            d = this.getFromEnv("numOfColumns"),
                            g = o.plotSpacePercent,
                            p = c((0, r.pluckNumber)(g, 20) % 100, 0),
                            f = p / 200,
                            m = u.getPixel(0),
                            v = u.getPixel(1),
                            b = this.getFromEnv("chart").isBar ? o.maxBarHeight : o.maxColWidth,
                            x = h(v - m),
                            y = o.plotPaddingPercent,
                            C = !0,
                            k = o.overlapColumns,
                            S = 0,
                            w = 0;
                        this.addToEnv("groupMaxWidth", x), this._mapChildren((function(e) {
                            e.getState("removed") || !1 === e.getState("visible") || w++
                        })), this.addToEnv("numOfColumns", w), this.addToEnv("numColDiff", (0, r.pluckNumber)(d - w, 0)), e = (1 - .01 * g) * x || s(x * (1 - 2 * f), b * (w || 1)), void 0 === l.plotspacepercent && e >= o.canvasWidth / 2 && (e = x - b / 2), i = s((t = 0 === w ? e : e / w) - 1, w > 1 ? k || void 0 !== y ? y > 0 ? t * y / 100 : 0 : 4 : 0), this.addToEnv("plotWidth", t - i), a = -(w / 2 * t - t / 2), this._mapChildren((function(e) {
                            !e.getState("removed") && e.getState("visible") && (e.addToEnv("shift", a + S * t + i / 2), S++)
                        })), v - (n = e / 2) - (m - n + e) < 4 && (C = !1), 0 === p && (C = !0), this.addToEnv("isCrisp", C)
                    }, a.childChanged = function(e) {
                        void 0 === e && (e = {});
                        var t, a, i = this.config,
                            n = this.getLinkedParent(),
                            o = 0,
                            r = this.getState("visible"),
                            l = {};
                        this._mapChildren((function(e) {
                            e.getState("visible") && o++
                        })), this.setState("visible", !!o), r !== !!o && (a = !0), !1 !== e.dataLimitChanged && ((t = this.getDataLimits()).min === i.range.min && t.max === i.range.max || (i.range.min = t.min, i.range.max = t.max, l.dataLimitChanged = !0, a = !0)), a ? n.childChanged && n.childChanged(l) : this.asyncDraw()
                    }, a.getAxisValuePadding = function() {
                        var e = {},
                            t = -Infinity,
                            a = -Infinity;
                        return this._mapChildren((function(i) {
                            i.getState("removed") || (e = i.getAxisValuePadding && i.getAxisValuePadding() || {}, t = Math.max(t, e.left || -Infinity), a = Math.max(a, e.right || -Infinity))
                        })), t === -Infinity && (t = 0), a === -Infinity && (a = 0), this.config.padding || (this.config.padding = {}, this.config.padding.left = t, this.config.padding.right = a), {
                            left: t,
                            right: a
                        }
                    }, a.getDataLimits = function(e) {
                        var t, a = +Infinity,
                            i = -Infinity,
                            n = 0,
                            o = function(e) {
                                i = Math.max(i, e.max), a = Math.min(a, e.min)
                            };
                        return this._mapChildren((function(a) {
                            a.getState("removed") || (!1 !== a.getState("visible") ? (n++, t = a.getDataLimits(e), o(t)) : e && (t = a.getDataLimits(e), o(t)))
                        })), n ? this.setState("visible", !0) : this.setState("visible", !1), this.config.range || (this.config.range = {}, this.config.range.min = this.config.dataMin, this.config.range.max = this.config.dataMax), {
                            max: i,
                            min: a
                        }
                    }, a.isVisible = function() {
                        return !this.isNotVisible
                    }, t
                }(o.ComponentInterface);
            t["default"] = u
        },
        583: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t.scrollTo = function(e) {
                var t = this.apiInstance;
                t.addJob("scrollToAPoint", (function() {
                    if (e >= 0 && e <= 1) {
                        var a = t.getChildren && t.getChildren(),
                            i = a.xAxis[0],
                            n = a.scrollBar && a.scrollBar[0],
                            o = n && n.getChildren("scrollAnchor")[0],
                            r = i.getLimit && i.getLimit(),
                            l = i.getVisibleConfig && i.getVisibleConfig(),
                            s = l.maxValue - l.minValue,
                            c = r.max - r.min,
                            h = e * (c - s) + r.min,
                            u = h + s,
                            d = (l.minValue - r.min) / (c - s);
                        o.config.scrollPosition = e, t.fireChartInstanceEvent("scrollStart", {
                            scrollPosition: d
                        }), i.setVisibleConfig(h, u), t.fireChartInstanceEvent("scrollEnd", {
                            previousScrollPosition: d,
                            scrollPosition: e
                        })
                    }
                }), i.priorityList.postRender)
            }, t.setAxisScale = function(e) {
                void 0 === e && (e = "column");
                var t, a, i, r, l, s = this.config,
                    c = this.getChildren("xAxis")[0],
                    h = c.getTicksLen(),
                    u = "bar2d" === e,
                    d = u ? "bar2D" : e,
                    g = this.getFromEnv("dataSource").chart,
                    p = u ? s.height : s.width,
                    f = 0,
                    m = s.scrollToEnd,
                    v = (0, n.pluckNumber)(g.numvisibleplot, o(p / s.avgScrollPointWidth));
                s.isstacked ? this.iterateComponents((function(e) {
                    "cartesianStackGroup" === e.getName() && !e.getState("removed") && f++
                })) : this.iterateComponents((function(e) {
                    e.getType && "dataset" === e.getType() && e.getName && e.getName().toLowerCase() === d && !e.getState("removed") && f++
                }));
                i = h * (f = f || 1);
                var b = c.getVisibleConfig();
                a = b.maxValue, t = b.minValue, v >= 2 && v < i ? (r = v / f, this.setScrollType("always"), m ? t = a - r : a = t + r, 0 === t && (a -= 1), c.setVisibleConfig(t, a)) : (l = c.getLimit(), c.setVisibleConfig(l.min, l.max), this.setScrollType("none"))
            }, t.resetViewPortConfig = function() {
                this.config.viewPortConfig = {
                    scaleX: 1,
                    scaleY: 1,
                    x: 0,
                    y: 0
                }
            }, t.configurer = function() {
                var e, t = this.getFromEnv("dataSource").chart;
                (e = this.config).scrollToEnd = (0, n.pluckNumber)(t.scrolltoend, 0), e.lastScrollPosition = void 0
            };
            var i = a(205),
                n = a(193),
                o = Math.floor
        },
        588: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(519)),
                r = i(a(492)),
                l = i(a(582)),
                s = function(e) {
                    (0, n["default"])(a, e), a.getName = function() {
                        return "MSColumn2D"
                    };
                    var t = a.prototype;

                    function a() {
                        var t;
                        return (t = e.call(this) || this).eiMethods = {}, t
                    }
                    return t.getName = function() {
                        return "MSColumn2D"
                    }, t.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this), this.config.friendlyName = "Multi-series Column Chart", this.config.defaultDatasetType = "column", this.config.enablemousetracking = !0
                    }, t.getDSdef = function() {
                        return r["default"]
                    }, t.getDSGroupdef = function() {
                        return l["default"]
                    }, a
                }(o["default"]);
            t["default"] = s
        },
        591: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(208),
                r = a(193),
                l = a(201),
                s = i(a(592)),
                c = r.preDefStr.visibleStr,
                h = Math,
                u = h.min,
                d = h.max;
            (0, l.addDep)({
                name: "cartesianStackAnimation",
                type: "animationRule",
                extension: s["default"]
            });
            var g = function(e) {
                function t() {
                    var t;
                    return (t = e.call(this) || this).setState("visible", !0), t
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "group"
                }, t.getName = function() {
                    return "cartesianStackGroup"
                }, a.getName = function() {
                    return "cartesianStackGroup"
                }, a.preConfigure = function(t) {
                    if (!t) return !1;
                    this.config.JSONData = t, e.prototype.preConfigure.call(this, t)
                }, a.configure = function(t) {
                    if (!t) return !1;
                    e.prototype.configure.call(this, t)
                }, a.configureAttributes = function(t) {
                    e.prototype.configureAttributes.call(this, t);
                    var a = this.config,
                        i = this.getFromEnv("chartConfig"),
                        n = this.getFromEnv("chart-attrib");
                    a.showTextOutline = (0, r.pluckNumber)(n.textoutline, 0), a.showSum = (0, r.pluckNumber)(n.showsum, i.showSum, 0), a.sumInside = 0
                }, a.setSkippingInfo = function(e) {
                    this.addToEnv("skipInfo", e || {
                        drawOnlyMap: [],
                        plotsPerBin: 1,
                        draw: [],
                        hide: [],
                        skippingApplied: !1,
                        dragHashMap: [],
                        prevDrawArray: []
                    })
                }, a.getSkippingInfo = function() {
                    return this.getFromEnv("skipInfo") || {
                        drawOnlyMap: [],
                        plotsPerBin: 1,
                        draw: [],
                        hide: [],
                        skippingApplied: !1,
                        dragHashMap: [],
                        prevDrawArray: []
                    }
                }, a.setVisibility = function() {
                    var e = 0;
                    this._mapChildren((function(t) {
                        t.getState("visible") && e++
                    })), this.setState("visible", !!e)
                }, a.createContainer = function() {
                    var e, t, a = this.getFromEnv("animationManager"),
                        i = this.getLinkedParent(),
                        n = i.getChildContainer();
                    for (e in n) t = n[e], !this.getChildContainer(e) && this.addChildContainer(e, a.setAnimation({
                        el: "group",
                        attr: {
                            name: "manager-" + e
                        },
                        container: t,
                        component: this
                    }));
                    !this.getContainer("sumLabelsLayer") && this.addContainer("sumLabelsLayer", a.setAnimation({
                        el: "group",
                        attr: {
                            name: "manager-sumLabelsLayer",
                            "class": "fusioncharts-datalabels"
                        },
                        label: "group",
                        container: i.getChildContainer("sumLabelsLayer"),
                        component: this
                    })), !this.getChildContainer("commonElemGroupLine") && this.addChildContainer("commonElemGroupLine", a.setAnimation({
                        el: "group",
                        attr: {
                            name: "manager-common-elem-group"
                        },
                        label: "group",
                        container: i.getChildContainer("lineVcanvasGroup"),
                        component: this
                    })), !this.getChildContainer("commonElemGroup") && this.addChildContainer("commonElemGroup", a.setAnimation({
                        el: "group",
                        attr: {
                            name: "manager-common-elem-group"
                        },
                        label: "group",
                        container: i.getChildContainer("areaVcanvasGroup"),
                        component: this
                    })), !this.getChildContainer("anchorGroup") && this.addChildContainer("anchorGroup", a.setAnimation({
                        el: "group",
                        attr: {
                            name: "manager-anchor-group"
                        },
                        label: "group",
                        container: this.getFromEnv("useLinePlotGroupForAnchorPlacement") ? i.getChildContainer("lineVcanvasGroup") : i.getChildContainer("areaVcanvasGroup"),
                        component: this
                    }))
                }, a.draw = function() {
                    this.createContainer(), this.getFirstDataSet(), this.drawSumValue()
                }, a._setStackPosition = function() {
                    var e, t = +Infinity,
                        a = -Infinity,
                        i = this.getFromEnv("numOfColumns"),
                        n = 0,
                        o = [],
                        l = [],
                        s = this.getSkippingInfo && this.getSkippingInfo() || {},
                        c = s.draw || [],
                        h = c.length,
                        g = s.skippingApplied;
                    this._mapChildren((function(i) {
                        if (!i.getState("removed") && !1 !== i.getState("visible")) {
                            n++;
                            var r, s, p, f, m = i.getData(),
                                v = 0,
                                b = m && m.length,
                                x = 0;
                            for (g && (b = h), p = 0; p < b; p++)(r = m[s = c[p] || p]) && r.config && void 0 !== r.config.setValue && (o[s] || (o[s] = {}), f = r.config.setValue, e = r.config.setLink, o[s].positive || (o[s].positive = 0), o[s].negative || (o[s].negative = 0), f >= 0 ? (v = f + (x = o[s].positive), o[s].positive = v) : f < 0 && (v = f + (x = o[s].negative), o[s].negative = v), null !== f && (o[s].isNotNull = !0), l[s] = e, a = d(v, a), t = u(v, t), r.config._y = v, r.config._b = x)
                        }
                    })), this.config.setLink = l, this.config.stackValues = o, this.config.dataMin = t, this.config.dataMax = a, n ? this.setState("visible", !0) : this.setState("visible", !1), this.addToEnv("stackValues", o), this.addToEnv("numOfColumns", n), this.addToEnv("numColDiff", (0, r.pluckNumber)(i - n, 0))
                }, a.allocatePosition = function() {
                    this._setStackPosition()
                }, a._getXpos = function(e) {
                    var t = this.getFromEnv("shift") || 0;
                    return this.getFromEnv("xAxis").getPixel(e) + t
                }, a.drawSumValue = function(e, t) {
                    void 0 === e && (e = 0);
                    var a, i, n, o, l, s, h, u, d, g, p, f, m, v, b, x, y = this.config,
                        C = this.getFromEnv("yAxis"),
                        k = this.getFromEnv("paper"),
                        S = this.getFromEnv("animationManager"),
                        w = this.getFromEnv("chart"),
                        L = w.isBar,
                        A = this.getFromEnv("smartLabel"),
                        N = w.config,
                        T = N.canvasRight,
                        E = (0, r.pluckNumber)(N.stack100percent),
                        F = N.rotatevalues ? 270 : 0,
                        _ = y.stackValues,
                        P = y.setLink,
                        D = t || _ && _.length,
                        I = N.dataLabelStyle,
                        M = this.getContainer("sumLabelsLayer"),
                        O = this.getGraphicalElement("sumLabels");
                    if (this.config.showSum) {
                        if (M.css(I), A.setStyle(I), (v = O && O.length) > (b = _.length))
                            for (; v >= b;) x = O[v], v--, x && (x.hide(), this.removeGraphicalElement(x));
                        for (a = e; a < D; a++) h = Array.isArray(O) && O[a], _[a] && _[a].isNotNull ? (p = (m = (d = _[a].positive) + (g = _[a].negative)) < 0 ? g : d, (f = C.dataLabels(m)) && (o = I.backgroundColor, l = I.borderColor, s = A.getOriSize(f), L ? (n = this._getXpos(a), i = C.getPixel(E ? 100 : p), E ? i += s.width / 2 : i -= i + s.width > T ? i + s.width - T : 0) : (i = this._getXpos(a), n = C.getPixel(E ? 100 : p)), (u = this.getSumValuePosition(s, {
                            stack100percent: E,
                            rotateValues: F,
                            xPos: i,
                            yPos: n,
                            offsetY: p,
                            index: a
                        })).text = f, u.cursor = P[a] && 1 === this.config.sumInside ? r.POINTER : "", u.fill = I.color, u["text-bound"] = [o, l, I.borderThickness, I.borderPadding, I.borderRadius, I.borderDash], u["line-height"] = I.lineHeight, u.visibility = c, u.transform = k.getSuggestiveRotation(F, u.x, u.y), u["text-anchor"] && delete u["text-bound"], M && M.show(), (h = S.setAnimation({
                            el: h || "text",
                            attr: u,
                            label: "text",
                            container: M,
                            component: this
                        })).show(), h.outlineText(y.showTextOutline, u.fill), Array.isArray(O) && O[a] || this.addGraphicalElement("sumLabels", h, !0))) : h && h.hide()
                    } else M.hide()
                }, a.getSumValuePosition = function(e, t) {
                    var a, i, n, o, r, l, s, c = this.getFromEnv("chart"),
                        h = c.config,
                        u = this.getFromEnv("xAxis"),
                        d = c.getChildren("scrollBar") && c.getChildren("scrollBar")[0],
                        g = h.canvasBottom,
                        p = h.canvasTop,
                        f = c.config.is3D,
                        m = c.isBar,
                        v = t.stack100percent,
                        b = h.yDepth,
                        x = h.xDepth,
                        y = t.yPos,
                        C = t.xPos,
                        k = this.getFromEnv("canvasConfig").canvasBorderWidth,
                        S = t.offsetY;
                    if (t.rotateValues ? (l = e.width, s = e.height) : (l = e.height, s = e.width), o = (o = a = l) / 2 + 2, r = (r = i = s) / 2 + 2, v)
                        if (p <= a) y = o;
                        else {
                            var w = u.getAxisConfig("isOpposit"),
                                L = f ? 0 : w ? u.getAxisConfig("axisLineThickness") : 0,
                                A = d && d.config.isOpposite,
                                N = c.isScrollEnabled() && A ? c.config.shift : 0;
                            y = m ? t.yPos : p - o - k - N - L, C += m ? k + L + N : 0
                        } else S >= 0 && (m ? ((n = h.canvasLeft + h.canvasWidth - C) < i ? (C = C - r + n, this.config.sumInside = 1) : C += r, f && (y += b / 2)) : (n = y - p) < a ? (this.config.sumInside = 1, y = y + o - n) : (y -= m ? 0 : o, C += m ? 2 : 0, this.getFromEnv("useImprovedLabelPlacement") && (y = this._adjustSumValuePosition(t.index, !0, y, o)) - o < p && (y = p + o))), S < 0 && (m ? C = (n = C - h.canvasLeft) < i ? C + r + 2 - n : C - r - 2 : (n = g - y) < a ? y -= o : (y += o, this.getFromEnv("useImprovedLabelPlacement") && (y = this._adjustSumValuePosition(t.index, !1, y, o)) + o > g && (y = g - o)), f && (C -= x, y += b));
                    return {
                        x: C,
                        y: y
                    }
                }, a.childChanged = function(e) {
                    void 0 === e && (e = {});
                    var t, a, i = this.config,
                        n = this.getLinkedParent(),
                        o = this.getState("visible"),
                        r = 0,
                        l = {};
                    this._mapChildren((function(e) {
                        e.getState("visible") && r++
                    })), this.setState("visible", !!r), o !== !!r && (a = !0), !1 !== e.dataLimitChanged && ((t = this.getDataLimits()).min === i.range.min && t.max === i.range.max || (i.range.min = t.min, i.range.max = t.max, l.dataLimitChanged = !0, a = !0)), a ? n.childChanged && n.childChanged(l) : this.asyncDraw()
                }, a.getAxisValuePadding = function() {
                    var e = {},
                        t = -Infinity,
                        a = -Infinity;
                    return this._mapChildren((function(i) {
                        i.getState("removed") || (e = i.getAxisValuePadding && i.getAxisValuePadding() || {}, t = Math.max(t, e.left || -Infinity), a = Math.max(a, e.right || -Infinity))
                    })), t === -Infinity && (t = 0), a === -Infinity && (a = 0), this.config.padding || (this.config.padding = {}, this.config.padding.left = t, this.config.padding.right = a), {
                        left: t,
                        right: a
                    }
                }, a.getDataLimits = function(e) {
                    return this._setStackPosition(), this.config.range || (this.config.range || (this.config.range = {}), this.config.range.min = this.config.dataMin, this.config.range.max = this.config.dataMax), e ? this._getStackLimit() : {
                        max: this.config.dataMax,
                        min: this.config.dataMin
                    }
                }, a._getStackLimit = function() {
                    var e = +Infinity,
                        t = -Infinity,
                        a = [],
                        i = this.getSkippingInfo && this.getSkippingInfo() || {},
                        n = i.draw || [],
                        o = n.length,
                        r = i.skippingApplied;
                    return this._mapChildren((function(i) {
                        if (!i.getState("removed")) {
                            var l, s, c, h, g = i.getData(),
                                p = 0,
                                f = g && g.length;
                            for (r && (f = o), c = 0; c < f; c++)(l = g[s = n[c] || c]) && l.config && void 0 !== l.config.setValue && null !== l.config.setValue && (a[s] || (a[s] = {}), h = l.config.setValue, a[s].positive || (a[s].positive = 0), a[s].negative || (a[s].negative = 0), h > 0 ? (p = h + a[s].positive, a[s].positive = p) : h < 0 && (p = h + a[s].negative, a[s].negative = p), t = d(p, t), e = u(p, e))
                        }
                    })), {
                        max: t,
                        min: e
                    }
                }, a.isVisible = function() {
                    return !this.isNotVisible
                }, a.getMaxSumValueSpace = function() {
                    var e, t, a, i, n, o = this.config.stackValues,
                        r = this.getFromEnv("chart"),
                        l = {},
                        s = o && o.length,
                        c = this.getFromEnv("number-formatter"),
                        h = 0,
                        u = 0,
                        g = this.getFromEnv("smartLabel"),
                        p = r.config.dataLabelStyle;
                    for (g.useEllipsesOnOverflow(r.config.useEllipsesWhenOverflow), g.setStyle(p), e = 0; e < s; e++) o[e] && (n = o[e].positive + o[e].negative, t = c.dataLabels(n), a = (l = g.getOriSize(t)).width, i = l.height, u = d(u, a), h = d(h, i));
                    return {
                        maxWidth: u,
                        maxHeight: h
                    }
                }, a.getCanvasPadding = function() {
                    var e, t, a, i, n, o = this.getSkippingInfo(),
                        r = o.skippingApplied,
                        l = o.draw,
                        s = this.config.stackValues,
                        c = s[r ? l[0] : 0],
                        h = s[r ? l[l.length - 1] : s.length - 1],
                        u = this.getFromEnv("xAxis"),
                        g = this.getFromEnv("yAxis"),
                        p = this.getFromEnv("chartConfig"),
                        f = this.getFromEnv("smartLabel"),
                        m = u.getValuePadding(),
                        v = 0,
                        b = u.getPixel(0),
                        x = p.rotatevalues,
                        y = {
                            paddingLeft: 0,
                            paddingRight: 0,
                            paddingTop: 0,
                            paddingBottom: 0
                        };
                    return this._setStackPosition(), this._mapChildren((function(a) {
                        for (t in e = a.getCanvasPadding && a.getCanvasPadding() || {}) e.hasOwnProperty(t) && (y[t] = Math.max(e[t], y[t]))
                    })), this.config.showSum && (c && (a = g.dataLabels(c.positive + c.negative), f.useEllipsesOnOverflow(p.useEllipsesWhenOverflow), f.setStyle(p.dataLabelStyle), i = f.getOriSize(a), n = x ? i.height : i.width, c.isNotNull && (v = (n || 0) / 2 - (u.getPixel(m.left) - b)) < 0 && (v = 0), y.paddingLeft = d(y.paddingLeft, v)), v = 0, h && (a = g.dataLabels(h.positive + h.negative), f.setStyle(p.dataLabelStyle), i = f.getOriSize(a), n = x ? i.height : i.width, h.isNotNull && (v = (n || 0) / 2 - (u.getPixel(m.right) - b)) < 0 && (v = 0), y.paddingRight = d(y.paddingRight, v))), y
                }, a.getFirstDataSet = function() {
                    var e = this.getChildren("dataset");
                    if (e)
                        for (var t = 0; t < e.length; t++) {
                            var a = e[t];
                            if (a.getState("visible") && !a.getState("removed")) {
                                this.config.firstDataSetIndex = t;
                                break
                            }
                            this.config.firstDataSetIndex = null
                        }
                }, a._adjustSumValuePosition = function(e, t, a, i) {
                    var n, o, r = [],
                        l = a,
                        s = this.getChildren();
                    for (n in s) s.hasOwnProperty(n) && (o = s[n], r = r.concat(o.filter((function(e) {
                        return "dataset" === e.getType()
                    }))));
                    return r.forEach((function(a) {
                        var n, o, r = a.components.data[e],
                            s = r && r.config,
                            h = s && s._state,
                            u = s && s.props && s.props.label && s.props.label.attr;
                        !a.getState("removed") && a.getState(c) && u && h && (n = {
                            y: u.y,
                            height: h.labelHeight
                        }, o = {
                            y: l,
                            height: i
                        }, (n.y <= o.y && o.y <= n.y + n.height || n.y <= o.y + o.height && o.y + o.height <= n.y + n.height) && (l = t ? u.y - .6 * h.labelHeight - .6 * i : u.y + .6 * h.labelHeight + .6 * i))
                    })), l
                }, t
            }(o.ComponentInterface);
            t["default"] = g
        },
        592: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function() {
                    return [{
                        initialAttr: {
                            opacity: 1
                        },
                        finalAttr: {
                            opacity: 1
                        },
                        slot: "plot"
                    }]
                },
                n = function() {
                    return [{
                        initialAttr: {
                            opacity: 0
                        },
                        finalAttr: {
                            opacity: 1
                        },
                        slot: "final"
                    }]
                },
                o = {
                    "initial.group.cartesianStackGroup": function() {
                        return {
                            "group.appearing": i,
                            "text.appearing": n,
                            "*": null
                        }
                    },
                    "initial.group.marimekkoStackgroup": function() {
                        return {
                            "text.appearing": n,
                            "*": null
                        }
                    }
                };
            t["default"] = o
        },
        595: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t._checkInvalidSpecificData = t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(519)),
                r = i(a(492)),
                l = i(a(591)),
                s = i(a(596)),
                c = function() {
                    var e, t = this.getFromEnv("dataSource"),
                        a = t.dataset,
                        i = t.categories;
                    if (!a || !i) return !0;
                    if (e = a.length)
                        for (; e--;)
                            if (!a[e].dataset) return !0
                };
            t._checkInvalidSpecificData = c;
            var h = function(e) {
                function t() {
                    var t;
                    return (t = e.call(this) || this).registerFactory("dataset", s["default"], ["vCanvas"]), t
                }(0, n["default"])(t, e), t.getName = function() {
                    return "MSStackedColumn2D"
                };
                var a = t.prototype;
                return a._checkInvalidSpecificData = function() {
                    return c.call(this)
                }, a.getName = function() {
                    return "MSStackedColumn2D"
                }, a.__setDefaultConfig = function() {
                    e.prototype.__setDefaultConfig.call(this);
                    var t = this.config;
                    t.friendlyName = "Multi-series Stacked Column Chart", t.defaultDatasetType = "column", t.isstacked = !0, t.showSum = 0, t.enablemousetracking = !0
                }, a.getDSdef = function() {
                    return r["default"]
                }, a.getDSGroupdef = function() {
                    return l["default"]
                }, t
            }(o["default"]);
            t["default"] = h
        },
        596: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t, a, i, r, l, s, c = e.getFromEnv("dataSource").dataset,
                    h = c && c.length,
                    u = 0,
                    d = e.getChildren("canvas")[0].getChildren("vCanvas")[0],
                    g = [];
                if (!c) return void e.setChartMessage();
                for ((0, n.componentFactory)(d, o["default"], "multiSeriesGroup_column"), s = d.getChildren("multiSeriesGroup_column")[0], t = 0; t < h; t++) g.push(c[t].dataset);
                for ((0, n.componentFactory)(s, e.getDSGroupdef(), "stackedGroup_column", h, g), l = s.getChildren("stackedGroup_column"), t = 0; t < l.length; t++)
                    if (!0 !== l[t].getState("removed")) {
                        if (!(i = c[t].dataset)) return void e.setChartMessage();
                        a = i && i.length, r = Array(a).fill(u).map((function(e, t) {
                            return e + t
                        })), (0, n.datasetFactory)(l[t], e.getDSdef(), "dataset_column", a, i, r), u += a
                    }
                e.config._lastDatasetIndex = r[r.length - 1]
            };
            var n = a(193),
                o = i(a(582))
        },
        599: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(193),
                r = i(a(561)),
                l = a(595),
                s = i(a(509)),
                c = i(a(492)),
                h = i(a(591)),
                u = i(a(600)),
                d = o.preDefStr.SEVENTYSTRING,
                g = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).stack100percent = 0, t.hasLineSet = !0, t.lineset = !0, t.registerFactory("dataset", u["default"], ["vCanvas"]), t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "MSStackedColumn2DLineDy"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "MSStackedColumn2DLineDy"
                    }, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        t.sDefaultDatasetType = "line", t.friendlyName = "Multi-series Dual Y-Axis Stacked Column and Line Chart", t.defaultDatasetType = "column", t.isdual = !0, t.haslineset = !0, t.isstacked = !0, t.enablemousetracking = !0, t.anchorborderthickness = 1, t.anchorimageurl = void 0, t.anchorimagepadding = 1, t.anchorsides = 1, t.anchoralpha = void 0, t.anchorbgalpha = o.HUNDREDSTRING, t.anchorimagealpha = o.HUNDREDSTRING, t.anchorimagescale = 100, t.anchorstartangle = 90, t.anchorshadow = 0, t.anchorbgcolor = void 0, t.anchorbordercolor = void 0, t.anchorradius = 3, t.showvalues = 1, t.plotfillalpha = d, t.linedashlen = 5, t.linedashgap = 4, t.linedashed = void 0, t.linealpha = o.HUNDREDSTRING, t.linethickness = 2, t.drawfullareaborder = 1, t.connectnulldata = 0, t.showSum = 0
                    }, a._checkInvalidSpecificData = function() {
                        return l._checkInvalidSpecificData.call(this)
                    }, a.getDSdef = function(e) {
                        return "line" === e ? s["default"] : c["default"]
                    }, a.getDSGroupdef = function() {
                        return h["default"]
                    }, t
                }(r["default"]);
            t["default"] = g
        },
        600: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t, a, i = e.getFromEnv("dataSource"),
                    r = i.dataset,
                    l = i.lineset,
                    s = e.getChildren("canvas")[0].getChildren("vCanvas")[1];
                if (!r && 0 === l.length) return void e.setChartMessage();
                (0, n["default"])(e), t = e.config._lastDatasetIndex + 1, l && l.length ? (a = Array(l.length).fill(t).map((function(e, t) {
                    return e + t
                })), (0, o.datasetFactory)(s, e.getDSdef("line"), "dataset_line", l.length, l, a)) : function(e) {
                    var t, a = e.getChildren("dataset_line");
                    for (t = a && a.length - 1; t > -1; t--) a[t].remove()
                }(s)
            };
            var n = i(a(596)),
                o = a(193)
        },
        612: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(588)),
                r = i(a(613)),
                l = i(a(615)),
                s = i(a(522)),
                c = a(193),
                h = function(e, t, a) {
                    var i, n, o, r, l, s, c, h, u, d, g = a && a.length,
                        p = e,
                        f = t;
                    if (g)
                        for (i = g - 1; i >= 0; i--)
                            if (c = (o = a[i]).x1, h = o.y1, u = o.x2, d = o.y2, o.isTrendZone) {
                                if (p >= c && p <= u && f >= h && f <= d) return o
                            } else if (h !== d && c !== u ? (r = n = (h - d) / (c - u), -1, l = h - n * c, s = Math.abs(r * p + -1 * f + l) / Math.sqrt(Math.pow(r, 2) + Math.pow(-1, 2))) : c === u ? s = Math.abs(c - p) : h === d && (s = Math.abs(h - f)), s <= o.tolerance) return o
                },
                u = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).registerFactory("axis", l["default"], ["canvas"]), t.registerFactory("legend", s["default"]), t.registerFactory("quadrant", (function(e) {
                            var t, a = e.getChildren("canvas")[0],
                                i = e.getChildren(),
                                n = function() {
                                    return t.asyncDraw()
                                };
                            (0, c.componentFactory)(a, r["default"], "quadrant"), (t = a.getChildren("quadrant")[0]).addExtEventListener("visiblerangeset", n, i.xAxis[0]), t.addExtEventListener("visiblerangeset", n, i.yAxis[0]), t.configure()
                        }), ["dataset"]), t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "ScatterBase"
                    };
                    var a = t.prototype;
                    return a.mouseoutHandler = function(e, t, a) {
                        var i = this.config.datasetOrder || this.getDatasets(),
                            n = this.getChildren("mouseTracker")[0];
                        i[t] && i[t].components.data[a] ? i[t]._firePlotEvent("fc-mouseout", a, e) : this.getFromEnv("toolTipController").hideAll(), delete n._lastDatasetIndex, delete n._lastPointIndex
                    }, a.parseChartAttr = function(t) {
                        e.prototype.parseChartAttr.call(this, t), this.config.drawTrendRegion = 0
                    }, a.__setDefaultConfig = function() {
                        var t = this.config;
                        e.prototype.__setDefaultConfig && e.prototype.__setDefaultConfig.call(this), t.valuefontbold = 0, t.stickytracking = 1, t.usemessagelog = 0, t.animationeffect = "linear", t.showshadow = 1, t.showhovereffect = void 0, t.plothovereffect = void 0, t.anchorhovereffect = void 0, t.plotborderdashed = void 0, t.stack100percent = void 0, t.showpercentvalues = void 0, t.showpercentintooltip = void 0, t.plotbordercolor = void 0, t.showtooltip = 1, t.seriesnameintooltip = 1, t.rotatevalues = 0, t.minimizetendency = 0, t.plotfillangle = 270, t.valuepadding = 2, t.useplotgradientcolor = 1, t.plotborderthickness = 1, t.plotfillalpha = "70", t.showvalues = 1, t.valueposition = "auto", t.tooltipsepchar = ", ", t.usedataplotcolorforlabels = 0, t.placevaluesinside = 0, t.showplotborder = 1, t.use3dlighting = 1, t.useroundedges = 0, t.plotspacepercent = 20, t.plotpaddingpercent = void 0, t.plotfillratio = void 0, t.maxcolwidth = 50, t.plotborderdashlen = 5, t.plotborderdashgap = 4, t.useScaleRecursively = !0, t.zeroplanethickness = 1, t.zeroplanealpha = 40, t.showzeroplaneontop = 0, t.setadaptivexmin = 1
                    }, a._drawTrendTooltip = function(e, t) {
                        var a = this.getFromEnv("toolTipController"),
                            i = this.config.currentTrendToolTip,
                            n = e.tooltext,
                            o = t.originalEvent;
                        i ? a.draw(o, n, i) : i = this.config.currentTrendToolTip = a.draw(o, n)
                    }, a._mouseEvtHandler = function(e, t) {
                        var a, i, n, o, r, l, s, u, d, g, p = this,
                            f = t.mouseTracker,
                            m = p.getChildren("canvas")[0],
                            v = p.getFromEnv("toolTipController"),
                            b = e.originalEvent,
                            x = p.config,
                            y = x.canvasBaseDepth || 0,
                            C = x.canvasLeft - (x.toleranceLeft || 0),
                            k = x.canvasRight + (x.toleranceRight || 0),
                            S = x.canvasBottom + (x.toleranceBottom || 0),
                            w = x.canvasTop - (x.toleranceTop || 0),
                            L = x.datasetOrder || p.getDatasets(),
                            A = !1,
                            N = L.length,
                            T = f._lastDatasetIndex,
                            E = f._lastPointIndex;
                        if (o = (n = (0, c.getMouseCoordinate)(p.getFromEnv("chart-container"), b, p)).chartX, r = n.chartY, o > C - y && o < k && r > w && r < S + y) {
                            for (; N-- && !A;)(l = L[N]) && l.getState("visible") && ((s = l._getHoveredPlot && l._getHoveredPlot(o, r)) && s.hovered || a) && (A = !0, s.datasetIndex = N, g = f.getMouseEvents(e, s.datasetIndex, s.pointIndex));
                            a = h(o, r, m.config.vtrendlines), i = h(o, r, m.config.trendlines)
                        }
                        if ((!A || g && g.fireOut) && void 0 !== T && L[T] && L[T]._firePlotEvent && (g && !g.events.length ? f.mouseoutTimer = setTimeout((function() {
                                p.mouseoutHandler(e, T, E)
                            }), 20) : (p.mouseoutHandler(e, T, E), clearTimeout(f.mouseoutTimer))), A)
                            for (p.config.currentTrendToolTip && v.hide(p.config.currentTrendToolTip), (d = g.events && g.events.length) && (f._lastDatasetIndex = s.datasetIndex, E = f._lastPointIndex = s.pointIndex), u = 0; u < d; u += 1) l && l._firePlotEvent && l._firePlotEvent(g.events[u], E, e, s.datasetIndex);
                        else a && a.tooltext ? p._drawTrendTooltip(a, e) : i && i.tooltext ? p._drawTrendTooltip(i, e) : p.config.currentTrendToolTip && v.hide(p.config.currentTrendToolTip)
                    }, a._setCategories = function() {
                        var e = this.getFromEnv("dataSource"),
                            t = this.getChildren("xAxis"),
                            a = String((0, c.pluck)(e.chart.xaxislabelmode, "categories")).toLowerCase(),
                            i = e.categories,
                            n = i && i[0] && i[0].category;
                        t[0].setAxisConfig({
                            xAxisLabelMode: "categories"
                        }), "auto" !== a && "mixed" !== a && n && n.length > 0 ? t[0].setTickValues(n) : "auto" !== a ? (t[0].setTickValues(n), t[0].setAxisConfig({
                            xAxisLabelMode: "mixed"
                        })) : (t[0].setTickValues(n), t[0].setAxisConfig({
                            xAxisLabelMode: "auto"
                        }))
                    }, a._allocateSpace = function(e) {
                        var t = this.getChildren("canvas"),
                            a = t && t[0].config,
                            i = this.config,
                            n = i.canvasHeight,
                            o = i.canvasWidth,
                            r = i.availableHeight,
                            l = i.availableWidth;
                        i.canvasLeft += e.left || 0, i.canvasTop += e.top || 0, o = i.canvasWidth = Math.max(o - ((e.left || 0) + (e.right || 0)), 0), n = i.canvasHeight = Math.max(n - ((e.top || 0) + (e.bottom || 0)), 0), i.availableHeight = Math.max(r - ((e.top || 0) + (e.bottom || 0)), 0), i.availableWidth = Math.max(l - ((e.left || 0) + (e.right || 0)), 0), i.canvasRight = i.canvasLeft + o, i.canvasBottom = i.canvasTop + n, a && (a.canvasPaddingLeft = Math.max(a.canvasPaddingLeft, e.paddingLeft || 0), a.canvasPaddingRight = Math.max(a.canvasPaddingRight, e.paddingRight || 0), a.canvasPaddingTop = Math.max(a.canvasPaddingTop, e.paddingTop || 0), a.canvasPaddingBottom = Math.max(a.canvasPaddingBottom, e.paddingBottom || 0)), t[0].setDimension({
                            top: i.canvasTop,
                            left: i.canvasLeft,
                            width: i.canvasWidth,
                            height: i.canvasHeight
                        })
                    }, a._postSpaceManagement = function() {
                        var e, t = this.config,
                            a = this.getChildren(),
                            i = a.xAxis && a.xAxis[0],
                            n = a.legend && a.legend[0],
                            o = t.xDepth,
                            r = this.getChildren("canvas");
                        for (this.setAxisDimention(), i && this._allocateXAxisLabelSpace(i), i && i.shiftLabels(-o, 0), n && n.postSpaceManager(), e = 0; e < (r && r.length); e++) r[e].setCanvasPadding();
                        this.setAxisDimention(), this.allocateDimensionOfChartMenuBar()
                    }, a._checkInvalidSpecificData = function() {
                        if (!this.getFromEnv("dataSource").dataset) return !0
                    }, t
                }(o["default"]);
            t["default"] = u
        },
        613: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(210)),
                o = i(a(207)),
                r = a(208),
                l = a(193),
                s = a(201),
                c = i(a(614)),
                h = l.preDefStr.POSITION_START,
                u = l.preDefStr.POSITION_TOP,
                d = l.preDefStr.POSITION_BOTTOM,
                g = l.preDefStr.POSITION_END;
            (0, s.addDep)({
                name: "quadrantAnimation",
                type: "animationRule",
                extension: c["default"]
            });
            var p = function(e) {
                function t() {
                    var t;
                    t = e.call(this) || this;
                    var a = (0, n["default"])(t);
                    return a.pIndex = 1, a.components = {}, a.conf = {}, a.graphics = {}, t
                }(0, o["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "canvas"
                }, a.getName = function() {
                    return "quadrant"
                }, a.configure = function() {
                    var e, t, a, i, n, o, r, s, c, h, u, d, g, p, f, m, v, b, x, y, C, k, S, w, L = this.conf,
                        A = this.getFromEnv("chart"),
                        N = A.config,
                        T = A.getFromEnv("dataSource").chart,
                        E = A.getChildren("canvas")[0].config,
                        F = N.dataLabelStyle,
                        _ = A.getFromEnv("smartLabel");
                    (L.enabled = (0, l.pluckNumber)(T.drawquadrant, 0)) && (v = (0, l.pluckNumber)(T.quadrantxval), b = (0, l.pluckNumber)(T.quadrantyval), x = (0, l.convertColor)((0, l.pluck)(T.quadrantlinecolor, E.canvasBorderColor), (0, l.pluck)(T.quadrantlinealpha, T.quadrantlinealpha, l.HUNDREDSTRING)), y = (0, l.pluckNumber)(T.quadrantlinethickness, E.canvasBorderThickness), k = (0, l.pluckNumber)(T.quadrantlinedashed, T.quadrantlineisdashed, 0), C = (0, l.pluckNumber)(T.quadrantlinedashlen, 4), S = (0, l.pluckNumber)(T.quadrantlinedashgap, 2), w = k ? (0, l.getDashStyle)(C, S) : "none", L.xVal = v, L.yVal = b, L.quadrantLineColor = x, L.quadrantLineThickness = y, L.dashStyle = w, g = (0, l.parseUnsafeString)((0, l.getValidValue)(T.quadrantlabeltl, "")), p = (0, l.parseUnsafeString)((0, l.getValidValue)(T.quadrantlabeltr, "")), f = (0, l.parseUnsafeString)((0, l.getValidValue)(T.quadrantlabelbl, "")), m = (0, l.parseUnsafeString)((0, l.getValidValue)(T.quadrantlabelbr, "")), L.quadrantLabelPadding = (0, l.pluckNumber)(T.quadrantlabelpadding, 3), _.useEllipsesOnOverflow(N.useEllipsesWhenOverflow), _.setStyle(F), "" !== g ? (o = (0, l.getFirstValue)(T.quadrantlabeltlbordercolor, T.quadrantlabelbordercolor, ""), r = (0, l.pluck)(T.quadrantlabeltlbgcolor, T.quadrantlabelbgcolor), s = (0, l.pluckNumber)(T.quadrantlabeltlborderthickness, T.quadrantlabelborderthickness, 1), o = o ? (0, l.convertColor)(o, (0, l.pluckNumber)(T.quadrantlabeltlborderalpha, T.quadrantlabelborderalpha, T.quadrantlabeltlalpha, T.quadrantlabelalpha, 100)) : "", (c = L.tlConfig) || (c = L.tlConfig = {
                        enabled: !0,
                        styleObj: {}
                    }), c.label = g, c.styleObj.fontSize = (0, l.pluck)((0, l.pluckNumber)(T.quadrantlabeltlfontsize, T.quadrantlabelfontsize), parseInt(F.fontSize, 10)) + "px", c.styleObj.lineHeight = F.lineHeight, c.styleObj.fontFamily = (0, l.pluck)(T.quadrantlabeltlfont, T.quadrantlabelfont, F.fontFamily), c.styleObj.color = (0, l.convertColor)((0, l.pluck)(T.quadrantlabeltlfontcolor, T.quadrantlabelfontcolor, F.color), (0, l.pluckNumber)(T.quadrantlabeltlfontalpha, T.quadrantlabelfontalpha, 100)), c.styleObj.fontWeight = (0, l.pluckNumber)(T.quadrantlabeltlfontbold, T.quadrantlabelfontbold) ? "bold" : "normal", c.styleObj.fontStyle = (0, l.pluckNumber)(T.quadrantlabeltlfontitalic, T.quadrantlabelfontitalic) ? "italic" : "normal", (0, l.setLineHeight)(c.styleObj), e = o, t = (0, l.pluckNumber)(T.quadrantlabeltlborderpadding, T.quadrantlabelborderpadding, 2), a = (0, l.pluckNumber)(T.quadrantlabeltlborderradius, T.quadrantlabelborderradius, 0), i = r ? (0, l.convertColor)(r, (0, l.pluckNumber)(T.quadrantlabeltlbgalpha, T.quadrantlabelbgalpha, T.quadrantlabeltlalpha, T.quadrantlabelalpha, 100)) : "", n = (0, l.pluckNumber)(T.quadrantlabeltlborderdashed, T.quadrantlabelborderdashed, 0) ? (0, l.getDashStyle)((0, l.pluckNumber)(T.quadrantlabeltlborderdashlen, T.quadrantlabelborderdashlen, 4), (0, l.pluckNumber)(T.quadrantlabeltlborderdashgap, T.quadrantlabelborderdashgap, 2)) : "none", c["text-bound"] = [i, e, s, t, a, n]) : L.tlConfig && (L.tlConfig.label = g), "" !== p ? (o = (0, l.getFirstValue)(T.quadrantlabeltrbordercolor, T.quadrantlabelbordercolor, ""), r = (0, l.pluck)(T.quadrantlabeltrbgcolor, T.quadrantlabelbgcolor), s = (0, l.pluckNumber)(T.quadrantlabeltrborderthickness, T.quadrantlabelborderthickness, 1), o = o ? (0, l.convertColor)(o, (0, l.pluckNumber)(T.quadrantlabeltrborderalpha, T.quadrantlabelborderalpha, T.quadrantlabeltralpha, T.quadrantlabelalpha, 100)) : "", (h = L.trConfig) || (h = L.trConfig = {
                        enabled: !0,
                        styleObj: {}
                    }), h.label = (0, l.parseUnsafeString)((0, l.getValidValue)(T.quadrantlabeltr, "")), h.styleObj.fontSize = (0, l.pluck)((0, l.pluckNumber)(T.quadrantlabeltrfontsize, T.quadrantlabelfontsize), parseInt(F.fontSize, 10)) + "px", h.styleObj.lineHeight = F.lineHeight, h.styleObj.fontFamily = (0, l.pluck)(T.quadrantlabeltrfont, T.quadrantlabelfont, F.fontFamily), h.styleObj.color = (0, l.convertColor)((0, l.pluck)(T.quadrantlabeltrfontcolor, T.quadrantlabelfontcolor, F.color), (0, l.pluckNumber)(T.quadrantlabeltrfontalpha, T.quadrantrabelfontalpha, 100)), h.styleObj.fontWeight = (0, l.pluckNumber)(T.quadrantlabeltrfontbold, T.quadrantlabelfontbold) ? "bold" : "normal", h.styleObj.fontStyle = (0, l.pluckNumber)(T.quadrantlabeltrfontitalic, T.quadrantlabelfontitalic) ? "italic" : "normal", (0, l.setLineHeight)(h.styleObj), e = o, t = (0, l.pluckNumber)(T.quadrantlabeltrborderpadding, T.quadrantlabelborderpadding, 2), a = (0, l.pluckNumber)(T.quadrantlabeltrborderradius, T.quadrantlabelborderradius, 0), i = r ? (0, l.convertColor)(r, (0, l.pluckNumber)(T.quadrantlabeltrbgalpha, T.quadrantlabelbgalpha, T.quadrantlabeltralpha, T.quadrantlabelalpha, 100)) : "", n = (0, l.pluckNumber)(T.quadrantlabeltrborderdashed, T.quadrantlabelborderdashed, 0) ? (0, l.getDashStyle)((0, l.pluckNumber)(T.quadrantlabeltrborderdashlen, T.quadrantlabelborderdashlen, 4), (0, l.pluckNumber)(T.quadrantlabeltrborderdashgap, T.quadrantlabelborderdashgap, 2)) : "none", h["text-bound"] = [i, e, s, t, a, n]) : L.trConfig && (L.trConfig.label = p), "" !== f ? (o = (0, l.getFirstValue)(T.quadrantlabelblbordercolor, T.quadrantlabelbordercolor, ""), r = (0, l.pluck)(T.quadrantlabelblbgcolor, T.quadrantlabelbgcolor), s = (0, l.pluckNumber)(T.quadrantlabelblborderthickness, T.quadrantlabelborderthickness, 1), o = o ? (0, l.convertColor)(o, (0, l.pluckNumber)(T.quadrantlabelblborderalpha, T.quadrantlabelborderalpha, T.quadrantlabelblalpha, T.quadrantlabelalpha, 100)) : "", (u = L.blConfig) || (u = L.blConfig = {
                        enabled: !0,
                        styleObj: {}
                    }), u.label = f, u.styleObj.fontSize = (0, l.pluck)((0, l.pluckNumber)(T.quadrantlabelblfontsize, T.quadrantlabelfontsize), parseInt(F.fontSize, 10)) + "px", u.styleObj.lineHeight = F.lineHeight, u.styleObj.fontFamily = (0, l.pluck)(T.quadrantlabelblfont, T.quadrantlabelfont, F.fontFamily), u.styleObj.color = (0, l.convertColor)((0, l.pluck)(T.quadrantlabelblfontcolor, T.quadrantlabelfontcolor, F.color), (0, l.pluckNumber)(T.quadrantlabelblfontalpha, T.quadrantlabelfontalpha, 100)), u.styleObj.fontWeight = (0, l.pluckNumber)(T.quadrantlabelblfontbold, T.quadrantlabelfontbold) ? "bold" : "normal", u.styleObj.fontStyle = (0, l.pluckNumber)(T.quadrantlabelblfontitalic, T.quadrantlabelfontitalic) ? "italic" : "normal", (0, l.setLineHeight)(u.styleObj), e = o, t = (0, l.pluckNumber)(T.quadrantlabelblborderpadding, T.quadrantlabelborderpadding, 2), a = (0, l.pluckNumber)(T.quadrantlabelblborderradius, T.quadrantlabelborderradius, 0), i = r ? (0, l.convertColor)(r, (0, l.pluckNumber)(T.quadrantlabelblbgalpha, T.quadrantlabelbgalpha, T.quadrantlabelblalpha, T.quadrantlabelalpha, 100)) : "", n = (0, l.pluckNumber)(T.quadrantlabelblborderdashed, T.quadrantlabelborderdashed, 0) ? (0, l.getDashStyle)((0, l.pluckNumber)(T.quadrantlabelblborderdashlen, T.quadrantlabelborderdashlen, 4), (0, l.pluckNumber)(T.quadrantlabelblborderdashgap, T.quadrantlabelborderdashgap, 2)) : "none", u["text-bound"] = [i, e, s, t, a, n]) : L.blConfig && (L.blConfig.label = f), "" !== m ? (o = (0, l.getFirstValue)(T.quadrantlabelbrbordercolor, T.quadrantlabelbordercolor, ""), r = (0, l.pluck)(T.quadrantlabelbrbgcolor, T.quadrantlabelbgcolor), s = (0, l.pluckNumber)(T.quadrantlabelbrborderthickness, T.quadrantlabelborderthickness, 1), o = o ? (0, l.convertColor)(o, (0, l.pluckNumber)(T.quadrantlabelbrborderalpha, T.quadrantlabelborderalpha, T.quadrantlabelbralpha, T.quadrantlabelalpha, 100)) : "", (d = L.brConfig) || (d = L.brConfig = {
                        enabled: !0,
                        styleObj: {}
                    }), d.label = (0, l.parseUnsafeString)((0, l.getValidValue)(T.quadrantlabelbr, "")), d.styleObj.fontSize = (0, l.pluck)((0, l.pluckNumber)(T.quadrantlabelbrfontsize, T.quadrantlabelfontsize), parseInt(F.fontSize, 10)) + "px", d.styleObj.lineHeight = F.lineHeight, d.styleObj.fontFamily = (0, l.pluck)(T.quadrantlabelbrfont, T.quadrantlabelfont, F.fontFamily), d.styleObj.color = (0, l.convertColor)((0, l.pluck)(T.quadrantlabelbrfontcolor, T.quadrantlabelfontcolor, F.color), (0, l.pluckNumber)(T.quadrantlabelbrfontalpha, T.quadrantrabelfontalpha, 100)), d.styleObj.fontWeight = (0, l.pluckNumber)(T.quadrantlabelbrfontbold, T.quadrantlabelfontbold) ? "bold" : "normal", d.styleObj.fontStyle = (0, l.pluckNumber)(T.quadrantlabelbrfontitalic, T.quadrantlabelfontitalic) ? "italic" : "normal", (0, l.setLineHeight)(d.styleObj), i = r ? (0, l.convertColor)(r, (0, l.pluckNumber)(T.quadrantlabelbrbgalpha, T.quadrantlabelbgalpha, T.quadrantlabelbralpha, T.quadrantlabelalpha, 100)) : "", e = o, t = (0, l.pluckNumber)(T.quadrantlabelbrborderpadding, T.quadrantlabelborderpadding, 2), a = (0, l.pluckNumber)(T.quadrantlabelbrborderradius, T.quadrantlabelborderradius, 0), n = (0, l.pluckNumber)(T.quadrantlabelbrborderdashed, T.quadrantlabelborderdashed, 0) ? (0, l.getDashStyle)((0, l.pluckNumber)(T.quadrantlabelbrborderdashlen, T.quadrantlabelborderdashlen, 4), (0, l.pluckNumber)(T.quadrantlabelbrborderdashgap, T.quadrantlabelborderdashgap, 2)) : "none", d["text-bound"] = [i, e, s, t, a, n]) : L.brConfig && (L.brConfig.label = m))
                }, a._preDraw = function() {
                    var e, t, a, i, n, o, r = this.conf,
                        l = this.getFromEnv("chart"),
                        s = l.getChildren("xAxis")[0],
                        c = l.getChildren("yAxis")[0],
                        h = s.getLimit(),
                        u = c.getLimit(),
                        d = h.max,
                        g = u.max,
                        p = h.min,
                        f = u.min,
                        m = l.config,
                        v = m.canvasWidth,
                        b = m.canvasHeight,
                        x = r.quadrantLabelPadding,
                        y = r.tlConfig,
                        C = r.trConfig,
                        k = r.blConfig,
                        S = r.brConfig;
                    return e = r.xVal || (r.xVal = (p + d) / 2), (t = r.yVal || (r.yVal = (f + g) / 2)) >= f && t <= g && e >= p && e <= d ? (i = v - (a = v / (d - p) * (e - p)), n = b - (o = b / (g - f) * (t - f)), a -= x, i -= x, o -= x, ((n -= x) < 0 || a < 0) && (y.enabled = !1), (n < 0 || i < 0) && (C.enabled = !1), (o < 0 || a < 0) && (k.enabled = !1), (o < 0 || a < 0) && (S.enabled = !1), r.enabled && (r.drawQuadrant = !0)) : r.drawQuadrant = !1, this
                }, a._createGroups = function() {
                    var e, t = this.getFromEnv("chart"),
                        a = t.getFromEnv("animationManager"),
                        i = t.getChildren("canvas")[0].getChildContainer("quadrantGroup"),
                        n = this.getContainer("quadrantChildContainer"),
                        o = this.getContainer("quadrantLineGroup"),
                        r = this.getContainer("quadrantTLGroup"),
                        l = this.getContainer("quadrantTRGroup"),
                        s = this.getContainer("quadrantBLGroup"),
                        c = this.getContainer("quadrantBRGroup");
                    e = a.setAnimation({
                        el: n || "group",
                        attr: {
                            name: "quadrant-child-container"
                        },
                        container: i,
                        component: this,
                        label: "group"
                    }), n || this.addContainer("quadrantChildContainer", e), this.addContainer("quadrantLineGroup", a.setAnimation({
                        el: o || "group",
                        attr: {
                            name: "quadrantLineGroup"
                        },
                        container: e,
                        component: this,
                        label: "group"
                    })), this.addContainer("quadrantTLGroup", a.setAnimation({
                        el: r || "group",
                        attr: {
                            name: "quadrantTLGroup"
                        },
                        container: e,
                        component: this,
                        label: "group"
                    })), this.addContainer("quadrantTRGroup", a.setAnimation({
                        el: l || "group",
                        attr: {
                            name: "quadrantTRGroup"
                        },
                        container: e,
                        component: this,
                        label: "group"
                    })), this.addContainer("quadrantBLGroup", a.setAnimation({
                        el: s || "group",
                        attr: {
                            name: "quadrantBLGroup"
                        },
                        container: e,
                        component: this,
                        label: "group"
                    })), this.addContainer("quadrantBRGroup", a.setAnimation({
                        el: c || "group",
                        attr: {
                            name: "quadrantBRGroup"
                        },
                        container: e,
                        component: this,
                        label: "group"
                    }))
                }, a.draw = function() {
                    var e, t, a, i, n, o, r, l = this._preDraw(),
                        s = l.conf,
                        c = l.getFromEnv("chart"),
                        p = c.config,
                        f = p.reverseXAxis,
                        m = {
                            wrtVisible: !0
                        },
                        v = l.getFromEnv("smartLabel"),
                        b = l.getFromEnv("animationManager"),
                        x = l.graphics,
                        y = x.tlLabel,
                        C = x.trLabel,
                        k = x.blLabel,
                        S = x.brLabel,
                        w = p.textDirection,
                        L = c.getChildren("xAxis")[0],
                        A = c.getChildren("yAxis")[0],
                        N = s.tlConfig || {},
                        T = s.trConfig || {},
                        E = s.blConfig || {},
                        F = s.brConfig || {},
                        _ = N.enabled && N.label,
                        P = T.enabled && T.label,
                        D = E.enabled && E.label,
                        I = F.enabled && F.label,
                        M = p.canvasLeft,
                        O = p.canvasTop,
                        R = s.quadrantLabelPadding,
                        B = L.getLimit(),
                        V = A.getLimit(),
                        G = f ? B.min : B.max,
                        z = f ? B.max : B.min,
                        H = V.max,
                        W = V.min,
                        j = L.getPixel(z, m) + R,
                        U = L.getPixel(G, m) - R,
                        q = A.getPixel(W, m) - R,
                        Y = A.getPixel(H, m) + R,
                        X = L.getPixel(s.xVal, m),
                        K = A.getPixel(s.yVal, m),
                        Z = X - j,
                        J = U - X,
                        $ = K - Y,
                        Q = q - K,
                        ee = x.horizontalQuadLine,
                        te = x.verticalQuadLine,
                        ae = function() {
                            this.hide()
                        };
                    l._createGroups(), t = l.getContainer("quadrantChildContainer"), a = l.getContainer("quadrantLineGroup"), i = l.getContainer("quadrantTLGroup"), n = l.getContainer("quadrantTRGroup"), o = l.getContainer("quadrantBLGroup"), r = l.getContainer("quadrantBRGroup"), s.enabled && s.drawQuadrant ? (t.show(), x.horizontalQuadLine = b.setAnimation({
                        el: ee || "path",
                        container: a,
                        attr: {
                            path: "M" + M + " " + K + "h" + p.canvasWidth,
                            stroke: s.quadrantLineColor,
                            "stroke-dasharray": s.dashStyle,
                            "stroke-width": s.quadrantLineThickness,
                            "stroke-linecap": "butt"
                        },
                        component: l,
                        label: "path"
                    }), x.verticalQuadLine = b.setAnimation({
                        el: te || "path",
                        container: a,
                        attr: {
                            path: "M" + X + " " + O + "v" + p.canvasHeight,
                            stroke: s.quadrantLineColor,
                            "stroke-width": s.quadrantLineThickness,
                            "stroke-dasharray": s.dashStyle,
                            "stroke-linecap": "butt"
                        },
                        component: l,
                        label: "path"
                    }), _ ? (v.useEllipsesOnOverflow(p.useEllipsesWhenOverflow), v.setStyle(s.tlConfig.styleObj), e = v.getSmartText(_, Z, $), (y = x.tlLabel = b.setAnimation({
                        el: y || "text",
                        attr: {
                            "text-anchor": h,
                            "vertical-align": u,
                            x: j,
                            y: Y,
                            text: e.text,
                            direction: w,
                            "text-bound": s.tlConfig["text-bound"]
                        },
                        container: i,
                        component: l,
                        label: "text"
                    })).css(s.tlConfig.styleObj)) : y && b.setAnimation({
                        el: y,
                        callback: ae,
                        component: this,
                        label: "text"
                    }), P ? (v.setStyle(s.trConfig.styleObj), e = v.getSmartText(P, J, $), (C = x.trLabel = b.setAnimation({
                        el: C || "text",
                        attr: {
                            "text-anchor": g,
                            "vertical-align": u,
                            direction: w,
                            x: U,
                            y: Y,
                            text: e.text,
                            "text-bound": s.trConfig["text-bound"]
                        },
                        container: n,
                        component: l,
                        label: "text"
                    })).css(s.trConfig.styleObj)) : C && b.setAnimation({
                        el: C,
                        callback: ae,
                        component: this,
                        label: "text"
                    }), D ? (v.setStyle(s.blConfig.styleObj), e = v.getSmartText(D, Z, Q), (k = x.blLabel = b.setAnimation({
                        el: k || "text",
                        attr: {
                            "text-anchor": h,
                            "vertical-align": d,
                            direction: w,
                            x: j,
                            y: q,
                            text: e.text,
                            "text-bound": s.blConfig["text-bound"]
                        },
                        container: o,
                        component: l,
                        label: "text"
                    })).css(s.blConfig.styleObj)) : k && b.setAnimation({
                        el: k,
                        callback: ae,
                        component: this,
                        label: "text"
                    }), I ? (v.setStyle(s.brConfig.styleObj), e = v.getSmartText(I, J, Q), (S = x.brLabel = b.setAnimation({
                        el: S || "text",
                        attr: {
                            "text-anchor": g,
                            "vertical-align": d,
                            direction: w,
                            x: U,
                            y: q,
                            text: e.text,
                            "text-bound": s.brConfig["text-bound"]
                        },
                        container: r,
                        component: l,
                        label: "text"
                    })).css(s.brConfig.styleObj)) : S && b.setAnimation({
                        el: S,
                        callback: ae,
                        component: this,
                        label: "text"
                    })) : t && b.setAnimation({
                        el: t,
                        component: l,
                        doNotRemove: !0,
                        callback: function() {
                            this.hide()
                        },
                        label: "group"
                    })
                }, t
            }(r.ComponentInterface);
            t["default"] = p
        },
        614: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = {
                "initial.canvas.quadrant": function() {
                    return {
                        "path.appearing": function() {
                            return [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "axis"
                            }]
                        },
                        "text.appearing": function() {
                            return [{
                                initialAttr: {
                                    opacity: 0
                                },
                                finalAttr: {
                                    opacity: 1
                                },
                                slot: "plot"
                            }]
                        }
                    }
                }
            }
        },
        615: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = function(e) {
                var t, a, i = e.getChildren("canvas")[0],
                    r = i.getChildren("axisRefVisualCartesian")[0],
                    l = {
                        zoomable: !0,
                        pannable: !0
                    },
                    s = e._feedAxesRawData(),
                    c = function(e) {
                        var t = e.sender;
                        r.addexplicitDrawItems(t.getId(), t), r.asyncDraw()
                    };
                (0, n.componentFactory)(e, o["default"], "yAxis", 1, s.yAxisConf), (0, n.componentFactory)(e, o["default"], "xAxis", 1, s.xAxisConf), t = e.getChildren("yAxis")[0], a = e.getChildren("xAxis")[0], t.setLinkedItem("canvas", i), a.setLinkedItem("canvas", i), r.setLinkedItem(t.getId(), t), r.setLinkedItem(a.getId(), a), r.addExtEventListener("visiblerangeset", c, a), r.addExtEventListener("visiblerangeset", c, t), i.attachAxis(a, !1, e.zoomX ? l : {}), i.attachAxis(t, !0, e.zoomY ? l : {}), e._setCategories()
            };
            var n = a(193),
                o = i(a(435))
        },
        616: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(509)),
                r = a(193),
                l = a(201),
                s = i(a(617)),
                c = i(a(618)),
                h = Math,
                u = h.max,
                d = h.min,
                g = h.round;
            (0, l.addDep)({
                name: "scatterAnimation",
                type: "animationRule",
                extension: c["default"]
            });
            var p = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }(0, n["default"])(t, e);
                var a = t.prototype;
                return a.getType = function() {
                    return "dataset"
                }, a.setupHoverTracker = function() {
                    var e, t, a, i, n, o, r, l = this.config.searchDataArr = [],
                        c = this.components.data,
                        h = {},
                        u = this.getSkippingInfo && this.getSkippingInfo(),
                        d = u && u.draw || [],
                        g = d.length,
                        p = u && u.skippingApplied;
                    for (a = c.length, p && (a = g), t = 0; t < a; t++)(o = c[e = d[t] || [t]]) && (i = (r = o.config)._Px, n = r._Py, h = r.anchorProps, l.push({
                        x: i,
                        y: n,
                        index: e,
                        data: o,
                        r: h.radius || 0
                    }));
                    this.config.dataTree = (new s["default"]).buildKdTree(l)
                }, a.getName = function() {
                    return "scatter"
                }, a.addDatasetSpecificEvtArgs = function(e) {
                    var t = e.config,
                        a = t.anchorProps,
                        i = t.eventArgs;
                    Object.assign(i, {
                        showValue: t.showValue,
                        hoverColor: !0 === t.hoverEffects.enabled ? t.hoverEffects.hoverColor || a.bgColor : void 0,
                        hoverAlpha: !0 === t.hoverEffects.enabled ? t.hoverEffects.hoverAlpha || "100" : void 0,
                        anchorBgColor: a.bgColor,
                        anchorBgAlpha: a.anchorBgAlpha,
                        anchorAlpha: a.anchorAlpha,
                        anchorBorderColor: a.borderColor,
                        anchorBorderThickness: a.borderThickness,
                        anchorRadius: a.radius,
                        anchorSides: a.sides,
                        anchorStartAngle: a.startAngle,
                        anchorHoverSides: t.hoverEffects.anchorSides
                    })
                }, a.configureAttributes = function(e) {
                    if (!e) return !1;
                    this.trimData(e), this.config.JSONData = e;
                    var t, a, i, n, o, l = this.getFromEnv("chart"),
                        s = this.config,
                        c = s.JSONData,
                        h = l.areaAlpha,
                        u = l.getFromEnv("dataSource").chart,
                        d = this.getFromEnv("color-manager"),
                        g = (0, r.pluckNumber)(c.showplotborder, u.showplotborder || 1),
                        p = d.getPlotColor(this.index),
                        f = s.lineDashed = (0, r.pluckNumber)(c.linedashed, c.dashed, u.linedashed, 0),
                        m = this.isLineSet;
                    s.plotColor = p, n = (0, r.pluckNumber)(l.defaultPlotShadow, d.getColor("showShadow")), s.toolTipSepChar = (0, r.pluck)(u.tooltipsepchar, ", "), s.defaultValuePadding = {
                        left: 0,
                        right: 0
                    }, s.parentYAxis = a = m ? 1 : "s" === (0, r.pluck)(c.parentyaxis && c.parentyaxis.toLowerCase(), "p") ? 1 : 0, this.config.yAxis = this.getFromEnv("yAxis")[a], s.connectNullData = (0, r.pluckNumber)(u.connectnulldata, 0), s.seriesname = (0, r.parseUnsafeString)(c.seriesname), s.includeinlegend = (0, r.pluckNumber)(c.includeinlegend, s.seriesname ? 1 : 0), s.showTextOutline = (0, r.pluckNumber)(u.textoutline, 0), s.enableAnimation = i = (0, r.pluckNumber)(u.animation, u.defaultanimation, 1), s.animation = !!i && {
                        duration: 1e3 * (0, r.pluckNumber)(u.animationduration, 1)
                    }, s.transposeanimation = (0, r.pluckNumber)(u.transposeanimation, i), s.transposeanimduration = 1e3 * (0, r.pluckNumber)(u.transposeanimduration, .2), s.showvalues = (0, r.pluckNumber)(c.showvalues, u.showvalues), s.valuePadding = (0, r.pluckNumber)(u.valuepadding, 2), s.valuePosition = (0, r.pluck)(c.valueposition, u.valueposition, "auto"), s.showTooltip = (0, r.pluckNumber)(u.showtooltip, 1), s.seriesNameInTooltip = (0, r.pluckNumber)(u.seriesnameintooltip, 1), s.plotFillColor = s.plotfillcolor = (0, r.pluck)(c.color, u.plotfillcolor, p), s.plotFillAngle = s.plotFillAngle = (0, r.pluck)(u.plotfillangle, 270), s.plotFillAlpha = s.plotfillalpha = (0, r.pluck)(c.alpha, u.plotfillalpha, h, "70"), o = (0, r.pluckNumber)(u.useplotgradientcolor, 1), s.plotGradientColor = s.plotgradientcolor = 0 !== o ? (0, r.getDefinedColor)(u.plotgradientcolor, d.getColor("plotGradientColor")) : "", s.fillColor = s.fillcolor = {
                        color: s.plotfillcolor + (s.plotgradientcolor ? "," + s.plotgradientcolor : r.BLANKSTRING),
                        alpha: s.plotfillalpha,
                        angle: s.plotFillAngle
                    }, s.plotBorderAlpha = s.plotborderalpha = g ? (0, r.pluck)(c.plotborderalpha, u.plotborderalpha, c.alpha, "95") : 0, s.plotBorderColor = s.plotbordercolor = (0, r.pluck)(c.plotbordercolor, u.plotbordercolor, u.areabordercolor, "666666"), s.dashed = t = (0, r.pluckNumber)(c.dashed, u.plotborderdashed), s.plotBorderDashLen = s.plotborderdashlen = (0, r.pluck)(c.plotborderdashlen, u.plotborderdashlen, 5), s.plotBorderDashGap = s.plotborderdashgap = (0, r.pluck)(c.plotborderdashgap, u.plotborderdashgap, 4), s.plotBorderThickness = s.plotborderthickness = (0, r.pluckNumber)(c.plotborderthickness, u.plotborderthickness, 1), s.plotBorderDashStyle = s.plotborderdashstyle = t ? (0, r.getDashStyle)(s.plotborderdashlen, s.plotborderdashgap) : "none", s.showHoverEffect = s.showhovereffect = (0, r.pluckNumber)(u.plothovereffect, u.anchorhovereffect, u.showhovereffect, void 0), s.rotateValues = (0, r.pluckNumber)(u.rotatevalues) ? 270 : 0, s.drawLine = (0, r.pluckNumber)(c.drawline, u.drawlines, 0), s.lineThickness = s.linethickness = (0, r.pluckNumber)(c.linethickness, u.linethickness, 2), s.lineDashLen = s.linedashlen = (0, r.pluckNumber)(c.linedashlen, u.linedashlen, 5), s.lineDashGap = s.linedashgap = (0, r.pluckNumber)(c.linedashgap, u.linedashgap, 4), s.lineAlpha = s.linealpha = (0, r.pluckNumber)(c.linealpha, u.linealpha, c.alpha, r.HUNDREDSTRING), s.lineColor = s.linecolor = (0, r.pluck)(c.linecolor, u.linecolor, c.color, s.plotColor), s.lineDashStyle = s.linedashstyle = (0, r.getDashStyle)(s.linedashlen, s.linedashgap), s.lineDashStyle = s.linedashstyle = f ? s.linedashstyle : "none", s.shadow = {
                        opacity: (0, r.pluckNumber)(u.showshadow, n) ? s.linealpha / 100 : 0
                    }, s.drawanchors = (0, r.pluckNumber)(c.drawanchors, c.showanchors, u.drawanchors, u.showanchors), s.anchorbgcolor = (0, r.getFirstColor)((0, r.pluck)(c.anchorbgcolor, u.anchorbgcolor, d.getColor("anchorBgColor"))), s.anchorbordercolor = (0, r.getFirstColor)((0, r.pluck)(c.anchorbordercolor, c.color, u.anchorbordercolor, s.linecolor)), s.anchorradius = (0, r.pluckNumber)(c.anchorradius, u.anchorradius, 3), s.anchoralpha = (0, r.pluck)(c.anchoralpha, c.alpha, u.anchoralpha, r.HUNDREDSTRING), s.anchorbgalpha = (0, r.pluck)(c.anchorbgalpha, c.alpha, u.anchorbgalpha, r.HUNDREDSTRING), s.anchorborderthickness = (0, r.pluck)(c.anchorborderthickness, u.anchorborderthickness, 1), s.anchorsides = (0, r.pluckNumber)(c.anchorsides, u.anchorsides, s.index + 3), s.anchorimageurl = (0, r.pluck)(c.anchorimageurl, u.anchorimageurl), s.anchorimagealpha = (0, r.pluckNumber)(c.anchorimagealpha, u.anchorimagealpha, 100), s.anchorimagescale = (0, r.pluckNumber)(c.anchorimagescale, u.anchorimagescale, 100), s.anchorimagepadding = (0, r.pluckNumber)(c.anchorimagepadding, u.anchorimagepadding, 1), s.anchorstartangle = (0, r.pluckNumber)(c.anchorstartangle, u.anchorstartangle, 90), s.anchorshadow = (0, r.pluckNumber)(c.anchorshadow, u.anchorshadow, 0), s.plotToolText = (0, r.getValidValue)((0, r.parseUnsafeString)((0, r.pluck)(c.plottooltext, u.plottooltext), !1)), this.setState("visible", 1 === (0, r.pluckNumber)(c.visible, !Number(c.initiallyhidden), 1)), this._setConfigure(), !1 !== l.config.hasLegend && l.config.showLegend && this._addLegend(), this.setState("dirty", !0)
                }, a.calculateScrollRange = function() {
                    var e = this.config,
                        t = this.getFromEnv("chart"),
                        a = this.getFromEnv("xAxis"),
                        i = t.hasScroll,
                        n = this.components.data.length;
                    e.scrollMinVal = i ? u(g(a.getVisibleConfig().minValue) - 1, 0) : 0, e.scrollMaxVal = i ? d(g(a.getVisibleConfig().maxValue) + 2, n) : n, e.scrollMinValForLabel = e.scrollMinVal, e.scrollMaxValForLabel = e.scrollMaxVal
                }, a._setConfigure = function() {
                    var e, t, a, i, n, o, l, s, c, h, u, d, g = -Infinity,
                        p = +Infinity,
                        f = g,
                        m = p,
                        v = p,
                        b = g,
                        x = this.components.data || (this.components.data = []),
                        y = this.getFromEnv("chart"),
                        C = this.config,
                        k = C.JSONData,
                        S = y.getFromEnv("dataSource").chart,
                        w = k.data || [],
                        L = w.length,
                        A = this.getFromEnv("number-formatter"),
                        N = (0, r.parseUnsafeString)(S.yaxisname),
                        T = (0, r.parseUnsafeString)(S.xaxisname),
                        E = C.lineDashed,
                        F = C.linedashstyle,
                        _ = C.parentYAxis,
                        P = C.toolTipSepChar,
                        D = C.seriesname;
                    for (C.imageCount = 0, e = 0; e < L; e += 1) i = w[e], (t = (a = x[e] || (x[e] = {})).config || (a.config = {})).setValue = n = {
                        x: A.getCleanValue(i.x),
                        y: A.getCleanValue(i.y)
                    }, null !== n.x && null !== n.y && (n.x > b && (b = n.x, C.rightMostData = a), n.x < v && (v = n.x, C.leftMostData = a), n.y > f && (f = n.y, C.topMostData = a), n.y < m && (m = n.y, C.bottomMostData = a)), t._x = n.x, t._y = n.y, t.dataLabelStyle = this._configureDataLabelStyle(i), t.setLink = (0, r.pluck)(i.link), t.anchorProps = this._parseAnchorProperties(e), t.showValue = (0, r.pluckNumber)(i.showvalue, C.showvalues), t.dashed = (0, r.pluckNumber)(i.dashed, E), t.color = (0, r.pluck)(i.color, C.linecolor), t.alpha = (0, r.pluck)(i.alpha, C.linealpha), t.dashStyle = t.dashed ? F : "none", t.toolTipValue = l = A.dataLabels(n.y, _), t.setDisplayValue = d = (0, r.parseUnsafeString)(i.displayvalue), h = t.formatedVal = (0, r.pluck)(i.toolTipValue, A.dataLabels(n.y, _)), u = A.xAxis(n.x), t.displayValue = (0, r.pluck)(d, l), t.setTooltext = (0, r.getValidValue)((0, r.parseUnsafeString)((0, r.pluck)(i.tooltext, C.plotToolText), !1)), C.showTooltip ? void 0 !== t.setTooltext ? (s = [4, 5, 6, 7, 8, 9, 10, 11], c = {
                        yaxisName: N,
                        xaxisName: T,
                        yDataValue: h,
                        xDataValue: u
                    }, o = (0, r.parseTooltext)(t.setTooltext, s, c, i, S, k)) : null === h ? o = !1 : (o = D ? D + P : r.BLANKSTRING, o += n.x ? u + P : r.BLANKSTRING, o += l) : o = !1, t.toolText = o, a ? a.graphics || (x[e].graphics = {}) : a = x[e] = {
                        graphics: {}
                    }, t.hoverEffects = this._parseHoverEffectOptions(a, i), t.anchorProps.isAnchorHoverRadius = t.hoverEffects.anchorRadius;
                    C.xMax = b, C.xMin = v, C.yMin = m, C.yMax = f, this.ErrorValueConfigure && this.ErrorValueConfigure()
                }, a._getHoveredPlot = function(e, t) {
                    var a = this.config.dataTree.getNeighbour({
                        x: e,
                        y: t
                    }, !0);
                    if (a) return {
                        pointIndex: a.index || a.i,
                        hovered: !0,
                        pointObj: a.data
                    }
                }, a.drawPlots = function() {
                    e.prototype.drawPlots.call(this), this.setupHoverTracker()
                }, a.getRegressionPoints = function() {
                    var e, t, a, i, n, o, r, l, s = this.getChildren("regression"),
                        c = -Infinity,
                        h = Infinity,
                        u = -Infinity,
                        d = Infinity;
                    if (s && s.length && !s[0].getState("removed")) {
                        for (r = (e = s[0]._config.regressionPoints || []).length, t = 0; t < r; t++)
                            for (n = e[t], a = 0; a < n.length; a++)
                                for (l = (o = n[a] || []).length, i = 0; i < l; i++) c = Math.max(c, o[i].x), h = Math.min(h, o[i].x), u = Math.max(u, o[i].y), d = Math.min(d, o[i].y);
                        return {
                            max: u,
                            min: d,
                            xMax: c,
                            xMin: h
                        }
                    }
                }, a.getDataLimits = function() {
                    var e = this.config,
                        t = this.getFromEnv("chart").config,
                        a = e.yMax,
                        i = e.yMin,
                        n = e.xMax,
                        o = e.xMin,
                        r = -Infinity,
                        l = +Infinity,
                        s = t.transposeAxis,
                        c = this.getRegressionPoints();
                    return !1 === this.getState("visible") && s && (a = r, i = l, n = r, o = l), c && (a = Math.max(a, c.max), i = Math.min(i, c.min), n = Math.max(n, c.xMax), o = Math.min(o, c.xMin)), {
                        max: a,
                        min: i,
                        xMax: n,
                        xMin: o
                    }
                }, a.getAxisValuePadding = function() {
                    return this.config.defaultValuePadding
                }, a.getCanvasPadding = function() {
                    var e, t, a, i, n, o, l, s, c, h, g, p, f, m, v, b, x, y = this.config || (this.config = {}),
                        C = this.components || {},
                        k = this.getFromEnv("chartConfig"),
                        S = k.rotatevalues,
                        w = this.getFromEnv("xAxis"),
                        L = this.getFromEnv("yAxis"),
                        A = w.config.isReverse,
                        N = this.getFromEnv("dataLabelStyle"),
                        T = C.data || [],
                        E = T.length,
                        F = y.leftMostData || T[0],
                        _ = y.rightMostData || T[T.length - 1],
                        P = y.topMostData,
                        D = y.bottomMostData,
                        I = d(k.canvasHeight, k.canvasWidth) / 8,
                        M = w.getValue(0),
                        O = 1,
                        R = 1,
                        B = k.zMax,
                        V = y.bubbleScale,
                        G = {},
                        z = {},
                        H = 0,
                        W = 0,
                        j = w.config.axisRange,
                        U = j.min,
                        q = j.max,
                        Y = L.config.axisRange,
                        X = Y.min,
                        K = Y.max,
                        Z = w.getPixel(U),
                        J = w.getPixel(q),
                        $ = this.getFromEnv("smartLabel"),
                        Q = {
                            paddingLeft: 0,
                            paddingRight: 0
                        },
                        ee = 0;
                    for (e = I / Math.sqrt(B), c = 0; c < E; c++) t = T[c].config, a = F.config, i = _.config, l = Math.sqrt(t.z), m = Math.round(l * e) * V || 0, v = w.getValue(m) - M, h = t.x - v / 2, 1 === O && (l = Math.sqrt(a.z), m = Math.round(l * e) * V || 0, v = w.getValue(m) - M, g = a.x - v / 2), 1 === R && (l = Math.sqrt(i.z), m = Math.round(l * e) * V || 0, v = w.getValue(m) - M, p = i.x - v / 2), O = 0, R = 0, g > h && (F = T[c], O = 1), p < h && (_ = T[c], R = 1);
                    return F && (o = (n = F.config).anchorProps.radius, (b = n.showValue) && (f = n.displayValue, $.useEllipsesOnOverflow(k.useEllipsesWhenOverflow), $.setStyle(N), z = $.getOriSize(f), ee = S ? z.height : z.width), null !== n.setValue && (h = w.getPixel(n.setValue.x), W = A ? J - (s = h - .5 * ee) : Z - (s = h - .5 * ee), H = !A && h - o <= Z || A && h - o <= J ? A ? J - (h - o) : Z - (h - o) : 0), Q.paddingLeft = u(W, H)), _ && (b = (n = _.config).showValue, o = n.anchorProps.radius, b && (f = n.displayValue, $.setStyle(N), G = $.getOriSize(f), ee = S ? G.height : G.width), null !== n.setValue && (W = (s = (h = w.getPixel(n.setValue.x)) - Z + .5 * ee) - J + Z, A && (W = s), H = !A && h + o >= J || A && h + o >= Z ? A ? h + o - Z : h + o - J : 0), Q.paddingRight = u(W, H)), P && (o = (n = P.config).anchorProps.radius || 0, K = L.getPixel(K), null !== n.setValue && (x = L.getPixel(n.setValue.y), H = (0, r.pluckNumber)(o, 0) + (0, r.pluckNumber)(n.anchorProps.borderThickness, 0) / 2), Q.paddingTop = K - (x - H) > 0 ? K - (x - H) : 0), D && (o = (n = D.config).anchorProps.radius || 0, X = L.getPixel(X), null !== n.setValue && (x = L.getPixel(n.setValue.y), H = (0, r.pluckNumber)(o, 0) + (0, r.pluckNumber)(n.anchorProps.borderThickness, 0) / 2), Q.paddingBottom = x + H - X > 0 ? x + H - X : 0), Q
                }, a._addLegend = function() {
                    var e, t, a, i, n, o, l, s, c, h = this.getFromEnv("chart"),
                        u = this.config,
                        d = h.getChildren("legend")[0],
                        g = (0, r.pluckNumber)(u.drawanchors, 1),
                        p = {
                            fillColor: (o = u.anchorbgcolor, l = r.HUNDREDSTRING, s = o, c = l, s = (0, r.getFirstColor)(s), c = (0, r.getFirstAlpha)(c), {
                                FCcolor: {
                                    gradientUnits: "objectBoundingBox",
                                    cx: .4,
                                    cy: .4,
                                    r: "100%",
                                    color: (0, r.getLightColor)(s, 70) + "," + (0, r.getDarkColor)(s, 50),
                                    alpha: c + "," + c,
                                    ratio: r.BGRATIOSTRING,
                                    radialGradient: !0
                                }
                            }),
                            lineColor: {
                                FCcolor: {
                                    color: u.anchorbordercolor,
                                    alpha: u.anchoralpha
                                }
                            },
                            lineWidth: u.anchorborderthickness
                        };
                    d.config.symbol3DLighting ? p.fillcolor && p.fillcolor.FCcolor ? (e = (0, r.extend2)({}, p.fillcolor)).FCcolor.alpha = r.HUNDREDSTRING : e = (0, r.pluck)(p.fillColor) : e = {
                        FCcolor: {
                            color: (0, r.pluck)((t = p.fillColor) && (t.FCcolor && t.FCcolor.color.split(",")[0] || t)),
                            angle: 0,
                            ratio: "0",
                            alpha: "100"
                        }
                    }, i = {
                        enabled: u.includeInLegend,
                        type: this.type,
                        drawLine: (0, r.pluck)(u.drawLine, !0),
                        anchorSide: g ? u.anchorsides : 0,
                        label: (0, r.getFirstValue)(this.config.JSONData.seriesname)
                    }, u.includeinlegend ? ((n = d.getItem(this.config.legendItemId)) ? n.configure({
                        style: d.config.itemStyle,
                        hiddenStyle: d.config.itemHiddenStyle,
                        datasetVisible: d.config.datasetVisible,
                        hoverStyle: d.config.itemHoverStyle
                    }) : (this.config.legendItemId = d.createItem(this), n = d.getItem(this.config.legendItemId), this.addExtEventListener("fc-click", (function() {
                        n.itemClickFn()
                    }), n)), n.configure(i), n.setStateCosmetics("default", {
                        symbol: {
                            fill: (0, r.toRaphaelColor)(e),
                            rawFillColor: u.anchorbgcolor,
                            rawStrokeColor: u.lineColor,
                            stroke: (0, r.toRaphaelColor)((0, r.pluck)((a = p.lineColor) && (a.FCcolor && a.FCcolor.color.split(",")[0] || a))),
                            "stroke-width": u.anchorborderthickness
                        }
                    }), this.getState("visible") ? n.removeLegendState("hidden") : n.setLegendState("hidden")) : this.config.legendItemId && d.disposeItem(this.config.legendItemId)
                }, a.getDSGroupdef = function() {}, a.trimData = function(e) {
                    if (this.config.JSONData) {
                        var t, a, i = this.config,
                            n = i && i.context,
                            o = n && n.prevCatlen,
                            r = this.getFromEnv("xAxis").getTicksLen(),
                            l = o - r,
                            s = i.JSONData,
                            c = s.data && s.data.length,
                            h = e.data && e.data.length || 0,
                            u = c - h;
                        l > u ? (t = l, a = r) : (t = u, a = h), t > 0 && this.removeData(a, t, !1)
                    }
                }, t
            }(o["default"]);
            t["default"] = p
        },
        617: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            /** !
             * @license FusionCharts JavaScript Library - KDtree
             * Copyright FusionCharts, Inc.
             * License Information at <http://www.fusioncharts.com/license>
             *
             * @version //? write(JSON.parse(require('fs').readFileSync('./package.json')).version);
             */
            var i = function(e, t, a, i, n) {
                    return Math.pow(a - e, 2) + Math.pow(i - t, 2) <= Math.pow(n, 2)
                },
                n = Math.PI,
                o = Math.cos,
                r = Math.sin,
                l = Math.max,
                s = Math.min,
                c = n / 180,
                h = function(e, t, a, i, n, o) {
                    var r, l, s;
                    return r = (i - t) * (n - a), l = (a - e) * (o - i), isNaN(r) && (r = 0), isNaN(l) && (l = 0), 0 === (s = r - l) ? 0 : s > 0 ? 1 : 2
                },
                u = function(e, t, a, i, n, o) {
                    return a <= l(e, n) && a >= s(e, n) && i <= l(t, o) && i >= s(t, o)
                },
                d = function(e, t, a, i, n, o, r, l) {
                    var s = h(e, t, a, i, n, o),
                        c = h(e, t, a, i, r, l),
                        d = h(n, o, r, l, e, t),
                        g = h(n, o, r, l, a, i);
                    return s !== c && d !== g || (!(0 !== s || !u(e, t, n, o, a, i)) || (!(0 !== c || !u(e, t, r, l, a, i)) || (!(0 !== d || !u(n, o, e, t, r, l)) || !(0 !== g || !u(n, o, a, i, r, l)))))
                },
                g = function(e, t, a, l, s, g, p) {
                    var f, m, v, b, x, y, C, k = Infinity,
                        S = 0,
                        w = !1;
                    if (i(e, t, a, l, s) && g >= 3) {
                        for (m = void 0 === p ? .5 * n : p % 360 * c, C = 2 * n / g, v = a + s * o(-m), y = l + s * r(-m), f = 0; f < g; f++) {
                            if (b = a + s * o(-(m += C)), x = l + s * r(-m), d(v, y, b, x, e, t, k, t)) {
                                if (0 === h(v, y, e, t, b, x)) return u(v, y, e, t, b, x);
                                S++
                            }
                            v = b, y = x
                        }
                        w = S % 2 != 0
                    }
                    return w
                },
                p = function(e, t) {
                    return !e || e && t && t.i > e.i ? t : e
                };
            var f = function() {
                function e(e) {
                    this.configure(e)
                }
                var t = e.prototype;
                return t.configure = function(e) {
                    this.validatorFn = e ? this.shapeValidator() : this.defaultValidator()
                }, t.defaultValidator = function() {
                    var e = this;
                    return function(t) {
                        var a = e.mousePoint;
                        return !!(t && Math.pow((t.x - a.x) / e.xLimit, 2) + Math.pow((t.y - a.y) / e.yLimit, 2) <= 1)
                    }
                }, t.shapeValidator = function() {
                    var e = this;
                    return function(t) {
                        var a, n, o, r, l, s, c, h, u = e.mousePoint,
                            d = t && t.shapeInfo,
                            p = !1,
                            f = u.x,
                            m = u.y;
                        switch (d && d.type) {
                            case "circle":
                                n = d.radius, p = i(f, m, t.x, t.y, n);
                                break;
                            case "arc":
                                a = d.innerradius, n = d.radius, p = !i(f, m, t.x, t.y, a) && i(f, m, t.x, t.y, n);
                                break;
                            case "polygon":
                                n = d.radius, r = d.startAngle, o = d.sides, p = g(f, m, t.x, t.y, n, o, r);
                                break;
                            case "rect":
                            case "rectangle":
                                l = t.x, c = t.y, s = l + (d.width || 0), h = c + (d.height || 0), p = f >= l && f <= s && m >= c && m <= h;
                                break;
                            case "default":
                                p = !1
                        }
                        return p
                    }
                }, t.buildKdTree = function(e) {
                    return this.kdTree = function(e) {
                        var t, a, i, n = e,
                            o = n && n[0] && n[0].r || 5,
                            r = Math.max,
                            l = Math.floor,
                            s = Math.sqrt,
                            c = Math.min,
                            h = Math.log,
                            u = Math.exp,
                            d = Math.pow;

                        function g(e, t, a) {
                            var i = e[t];
                            e[t] = e[a], e[a] = i
                        }
                        for (a = function(e, t, i, n) {
                                for (var o, d, p, f, m, v, b, x, y, C, k = i, S = n; S > k;) {
                                    for (S - k > 600 && (d = t - k + 1, p = h(o = S - k + 1), f = .5 * u(2 * p / 3), m = .5 * s(p * f * (o - f) / o) * (d - o / 2 < 0 ? -1 : 1), v = r(k, l(t - d * f / o + m)), b = c(S, l(t + (o - d) * f / o + m)), a(e, t, v, b)), x = e[t], y = k, C = S, g(e, k, t), e[S].x > x.x && g(e, k, S); y < C;) {
                                        for (g(e, y, C), y++, C--; e[y].x < x.x;) y++;
                                        for (; e[C].x > x.x;) C--
                                    }
                                    e[k].x === x.x ? g(e, k, C) : g(e, ++C, S), C <= t && (k = C + 1), t <= C && (S = C - 1)
                                }
                            }, i = function(e, t, a, n) {
                                for (var o, d, p, f, m, v, b, x, y, C, k = a, S = n, w = e; S > k;) {
                                    for (S - k > 600 && (d = t - k + 1, p = h(o = S - k + 1), f = .5 * u(2 * p / 3), m = .5 * s(p * f * (o - f) / o) * (d - o / 2 < 0 ? -1 : 1), v = r(k, l(t - d * f / o + m)), b = c(S, l(t + (o - d) * f / o + m)), i(w, t, v, b)), x = w[t], y = k, C = S, g(w, k, t), w[S].y > x.y && g(w, k, S); y < C;) {
                                        for (g(w, y, C), y++, C--; w[y].y < x.y;) y++;
                                        for (; w[C].y > x.y;) C--
                                    }
                                    w[k].y === x.y ? g(w, k, C) : g(w, ++C, S), C <= t && (k = C + 1), t <= C && (S = C - 1)
                                }
                            }, t = (n = n || []).length; t--;) n[t].r > o && (o = n[t].r), n[t].i = t, n[t].x = +n[t].x, n[t].y = +n[t].y;
                        return {
                            tree: 0 === n.length ? {} : function p(e, t, n, o) {
                                var r, l = {},
                                    s = o ? "y" : "x";
                                return t === n ? (l.point = e[t], l) : n - t == 1 ? (e[t][s] > e[n][s] ? (l.point = e[t], l.left = {
                                    point: e[n]
                                }) : (l.point = e[n], l.left = {
                                    point: e[t]
                                }), l) : (r = t + n >> 1, o ? i(e, r, t, n) : a(e, r, t, n), l.point = e[r], l.left = p(e, t, r - 1, !o), l.right = p(e, r + 1, n, !o), l)
                            }(n, 0, n.length - 1, !1),
                            search: function(e, t, a, i) {
                                var n, r, l, c = this.tree,
                                    h = i,
                                    u = e - o,
                                    g = e + o,
                                    p = t - o,
                                    f = t + o,
                                    m = !1,
                                    v = 0;

                                function b(e, t, a, i) {
                                    return s(d(e - a, 2) + d(t - i, 2))
                                }

                                function x(i, n) {
                                    return "circle" === a ? b(i, n, e, t) <= u : i >= u && i <= g && n >= p && n <= f
                                }

                                function y(e, t, a) {
                                    return e >= t && e <= a
                                }

                                function C(a) {
                                    var i = y(e, a.x1, a.x2) && y(t, a.y1, a.y2),
                                        o = b(e, t, a.point.x, a.point.y);
                                    if (!n) return n = a, m = i, void(v = o);
                                    i ? m ? a.point.i > n.point.i && (n = a, m = i, v = o) : (n = a, m = i, v = o) : m || o < v && (n = a, m = i, v = o)
                                }

                                function k(i, n) {
                                    "circle" === a ? u = i : (u = e - i || 0, g = e + i || 0, p = t - n || 0, f = t + n || 0)
                                }
                                return h = h || {}, l = function(e) {
                                    e && e.point && (k(h.rx || e.point.r, h.ry || e.point.r), x(e.point.x, e.point.y) && C(e), p <= e.point.y && r(e.left), f >= e.point.y && r(e.right))
                                }, (r = function(e) {
                                    e && e.point && (k(h.rx || e.point.r, h.ry || e.point.r), x(e.point.x, e.point.y) && C(e), u <= e.point.x && l(e.left), g >= e.point.x && l(e.right))
                                })(c), n && n.point || n
                            }
                        }
                    }(e), this.tree = this.kdTree.tree, this
                }, t.getNeighbour = function(e, t, a) {
                    var i = this.tree,
                        n = {
                            x1: e.x - this.xLimit,
                            x2: e.x + this.xLimit,
                            y1: e.y - this.yLimit,
                            y2: e.y + this.yLimit
                        },
                        o = this.validatorFn;
                    return this.mousePoint = e, t ? this.kdTree && this.kdTree.search(e.x, e.y, a, e.options) : i ? this._searchBtwnLimit(n, i, !0, o) : void 0
                }, t._searchBtwnLimit = function(e, t, a, i) {
                    var n, o, r = a ? "x" : "y",
                        l = a ? e.x1 : e.y1,
                        s = a ? e.x2 : e.y2;
                    if (void 0 !== (n = t && t.point && t.point[r])) return i(t.point) && (o = t.point), n >= l && t.left && (o = p(o, this._searchBtwnLimit(e, t.left, !a, i))), n <= s && t.right && (o = p(o, this._searchBtwnLimit(e, t.right, !a, i))), o
                }, t._setSearchLimit = function(e, t) {
                    this.xLimit = e, this.yLimit = t
                }, e
            }();
            f.prototype.constructor = f;
            var m = f;
            t["default"] = m
        },
        618: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = {
                "*.dataset.scatter": i(a(512))["default"]["*.dataset.line"]
            };
            t["default"] = n
        },
        626: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(510)),
                r = i(a(627)),
                l = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).defaultPlotShadow = 0, t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "MSArea"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "MSArea"
                    }, a.getDSdef = function() {
                        return o["default"]
                    }, a.getDSGroupdef = function() {}, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        t.friendlyName = "Multi-series Area Chart", t.defaultDatasetType = "area", t.defaultcrosslinethickness = 1
                    }, t
                }(r["default"]);
            t["default"] = l
        },
        627: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t._setDefaultConfig = t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(588)),
                r = a(193),
                l = r.preDefStr.SEVENTYSTRING,
                s = function() {
                    var e = this.config;
                    e.anchorborderthickness = 1, e.anchorimageurl = void 0, e.anchorimagepadding = 1, e.anchorsides = 1, e.anchoralpha = void 0, e.anchorbgalpha = r.HUNDREDSTRING, e.anchorimagealpha = r.HUNDREDSTRING, e.anchorimagescale = 100, e.anchorstartangle = 90, e.anchorshadow = 0, e.anchorbgcolor = void 0, e.anchorbordercolor = void 0, e.anchorradius = 3, e.showvalues = 1, e.plotfillalpha = l, e.linedashlen = 5, e.linedashgap = 4, e.linedashed = void 0, e.linealpha = r.HUNDREDSTRING, e.linethickness = 2, e.drawfullareaborder = 1, e.connectnulldata = 0
                };
            t._setDefaultConfig = s;
            var c = function(e) {
                function t() {
                    return e.apply(this, arguments) || this
                }
                return (0, n["default"])(t, e), t.getName = function() {
                    return "AreaBase"
                }, t.prototype.__setDefaultConfig = function() {
                    e.prototype.__setDefaultConfig.call(this), s.call(this)
                }, t
            }(o["default"]);
            t["default"] = c
        },
        671: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(627)),
                r = i(a(509)),
                l = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).defaultPlotShadow = 1, t.axisPaddingLeft = 0, t.axisPaddingRight = 0, t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "MSLine"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "MSLine"
                    }, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        t.friendlyName = "Multi-series Line Chart", t.defaultDatasetType = "line", t.zeroplanethickness = 1, t.zeroplanealpha = 40, t.showzeroplaneontop = 0, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1
                    }, a.getDSdef = function() {
                        return r["default"]
                    }, a.getDSGroupdef = function() {}, t
                }(o["default"]);
            t["default"] = l
        },
        674: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(675))["default"];
            t["default"] = n
        },
        675: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(676))["default"];
            t["default"] = n
        },
        676: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(627),
                r = i(a(580)),
                l = i(a(416)),
                s = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).defaultPlotShadow = 1, t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "Spline"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "Spline"
                    }, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        t.friendlyName = "Spline Chart", t.singleseries = !0, t.defaultDatasetType = "msspline", t.minimizetendency = 0, t.zeroplanethickness = 1, t.zeroplanealpha = 40, t.showzeroplaneontop = 0, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1, o._setDefaultConfig.call(this)
                    }, a.getDSdef = function() {
                        return r["default"]
                    }, t
                }(l["default"]);
            t["default"] = s
        },
        677: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(678))["default"];
            t["default"] = n
        },
        678: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(676)),
                r = a(627),
                l = i(a(576)),
                s = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).defaultPlotShadow = 0, t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "SplineArea"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "SplineArea"
                    }, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        r._setDefaultConfig.call(this), t.friendlyName = "Spline Area Chart", t.singleseries = !0, t.hasLegend = !1, t.defaultDatasetType = "mssplinearea", t.anchoralpha = "100", t.minimizetendency = 0, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1, t.showzeroplaneontop = 1, t.inheritplotbordercolor = 0
                    }, a.getDSdef = function() {
                        return l["default"]
                    }, a.getDSGroupdef = function() {}, t
                }(o["default"]);
            t["default"] = s
        },
        679: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(680))["default"];
            t["default"] = n
        },
        680: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(681))["default"];
            t["default"] = n
        },
        681: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(627),
                r = i(a(580)),
                l = i(a(519)),
                s = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).defaultPlotShadow = 1, t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "MSSpline"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "MSSpline"
                    }, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        t.friendlyName = "Multi-series Spline  Chart", t.defaultDatasetType = "msspline", t.minimizetendency = 0, t.zeroplanethickness = 1, t.zeroplanealpha = 40, t.showzeroplaneontop = 0, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1, o._setDefaultConfig.call(this)
                    }, a.getDSdef = function() {
                        return r["default"]
                    }, a.getDSGroupdef = function() {}, t
                }(l["default"]);
            t["default"] = s
        },
        682: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(683))["default"];
            t["default"] = n
        },
        683: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = a(627),
                r = i(a(561)),
                l = i(a(580)),
                s = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).isDual = !0, t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "MSSplineDy"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "MSSplineDy"
                    }, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        t.friendlyName = "Multi-series Dual Y-Axis Spline Chart", t.defaultDatasetType = "msspline", t.minimizetendency = 0, t.zeroplanethickness = 1, t.zeroplanealpha = 40, t.showzeroplaneontop = 0, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1, t.isdual = !0, o._setDefaultConfig.call(this)
                    }, a.getDSdef = function() {
                        return l["default"]
                    }, a.getDSGroupdef = function() {}, a.getDSType = function() {
                        return "spline"
                    }, t
                }(r["default"]);
            t["default"] = s
        },
        684: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(685))["default"];
            t["default"] = n
        },
        685: function(e, t, a) {
            "use strict";
            var i = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var n = i(a(207)),
                o = i(a(681)),
                r = a(627),
                l = i(a(576)),
                s = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this) || this).friendlyName = "Multi-series Spline Area Chart", t.defaultPlotShadow = 0, t
                    }(0, n["default"])(t, e), t.getName = function() {
                        return "MSSplineArea"
                    };
                    var a = t.prototype;
                    return a.getName = function() {
                        return "MSSplineArea"
                    }, a.__setDefaultConfig = function() {
                        e.prototype.__setDefaultConfig.call(this);
                        var t = this.config;
                        r._setDefaultConfig.call(this), t.defaultDatasetType = "mssplinearea", t.minimizetendency = 0, t.zeroplanethickness = 2, t.zeroplanealpha = 80, t.showzeroplaneontop = 1, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1
                    }, a.getDSdef = function() {
                        return l["default"]
                    }, a.getDSGroupdef = function() {}, t
                }(o["default"]);
            t["default"] = s
        },
        694: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(695),
                n = a(698),
                o = a(701),
                r = a(704),
                l = a(712),
                s = Object(i["default"])(Object(n["default"])(["fantasy-land/chain", "chain"], r["default"], (function(e, t) {
                    return "function" == typeof t ? function(a) {
                        return e(t(a))(a)
                    } : Object(o["default"])(!1)(Object(l["default"])(e, t))
                })));
            t["default"] = s
        },
        695: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return o
            }));
            var i = a(696),
                n = a(697);

            function o(e) {
                return function t(a, o) {
                    switch (arguments.length) {
                        case 0:
                            return t;
                        case 1:
                            return Object(n["default"])(a) ? t : Object(i["default"])((function(t) {
                                return e(a, t)
                            }));
                        default:
                            return Object(n["default"])(a) && Object(n["default"])(o) ? t : Object(n["default"])(a) ? Object(i["default"])((function(t) {
                                return e(t, o)
                            })) : Object(n["default"])(o) ? Object(i["default"])((function(t) {
                                return e(a, t)
                            })) : e(a, o)
                    }
                }
            }
        },
        696: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return n
            }));
            var i = a(697);

            function n(e) {
                return function t(a) {
                    return 0 === arguments.length || Object(i["default"])(a) ? t : e.apply(this, arguments)
                }
            }
        },
        697: function(e, t, a) {
            "use strict";

            function i(e) {
                return null != e && "object" == typeof e && !0 === e["@@functional/placeholder"]
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        698: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return o
            }));
            var i = a(699),
                n = a(700);

            function o(e, t, a) {
                return function() {
                    if (0 === arguments.length) return a();
                    var o = Array.prototype.slice.call(arguments, 0),
                        r = o.pop();
                    if (!Object(i["default"])(r)) {
                        for (var l = 0; l < e.length;) {
                            if ("function" == typeof r[e[l]]) return r[e[l]].apply(r, o);
                            l += 1
                        }
                        if (Object(n["default"])(r)) {
                            var s = t.apply(null, o);
                            return s(r)
                        }
                    }
                    return a.apply(this, arguments)
                }
            }
        },
        699: function(e, t, a) {
            "use strict";
            a.r(t), t["default"] = Array.isArray || function(e) {
                return null != e && e.length >= 0 && "[object Array]" === Object.prototype.toString.call(e)
            }
        },
        700: function(e, t, a) {
            "use strict";

            function i(e) {
                return "function" == typeof e["@@transducer/step"]
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        701: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return n
            }));
            var i = a(702);

            function n(e) {
                return function t(a) {
                    for (var n, o, r, l = [], s = 0, c = a.length; s < c;) {
                        if (Object(i["default"])(a[s]))
                            for (r = 0, o = (n = e ? t(a[s]) : a[s]).length; r < o;) l[l.length] = n[r], r += 1;
                        else l[l.length] = a[s];
                        s += 1
                    }
                    return l
                }
            }
        },
        702: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(696),
                n = a(699),
                o = a(703),
                r = Object(i["default"])((function(e) {
                    return !!Object(n["default"])(e) || !!e && ("object" == typeof e && (!Object(o["default"])(e) && (1 === e.nodeType ? !!e.length : 0 === e.length || e.length > 0 && (e.hasOwnProperty(0) && e.hasOwnProperty(e.length - 1)))))
                }));
            t["default"] = r
        },
        703: function(e, t, a) {
            "use strict";

            function i(e) {
                return "[object String]" === Object.prototype.toString.call(e)
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        704: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(695),
                n = a(705),
                o = a(712),
                r = Object(i["default"])((function(e, t) {
                    return Object(o["default"])(e, Object(n["default"])(t))
                }));
            t["default"] = r
        },
        705: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(706),
                n = a(702),
                o = a(707),
                r = a(711);
            t["default"] = function(e) {
                var t = function(e) {
                    return {
                        "@@transducer/init": r["default"].init,
                        "@@transducer/result": function(t) {
                            return e["@@transducer/result"](t)
                        },
                        "@@transducer/step": function(t, a) {
                            var n = e["@@transducer/step"](t, a);
                            return n["@@transducer/reduced"] ? Object(i["default"])(n) : n
                        }
                    }
                }(e);
                return {
                    "@@transducer/init": r["default"].init,
                    "@@transducer/result": function(e) {
                        return t["@@transducer/result"](e)
                    },
                    "@@transducer/step": function(e, a) {
                        return Object(n["default"])(a) ? Object(o["default"])(t, e, a) : Object(o["default"])(t, e, [a])
                    }
                }
            }
        },
        706: function(e, t, a) {
            "use strict";

            function i(e) {
                return {
                    "@@transducer/value": e,
                    "@@transducer/reduced": !0
                }
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        707: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return c
            }));
            var i = a(702),
                n = a(708),
                o = a(709);

            function r(e, t, a) {
                for (var i = a.next(); !i.done;) {
                    if ((t = e["@@transducer/step"](t, i.value)) && t["@@transducer/reduced"]) {
                        t = t["@@transducer/value"];
                        break
                    }
                    i = a.next()
                }
                return e["@@transducer/result"](t)
            }

            function l(e, t, a, i) {
                return e["@@transducer/result"](a[i](Object(o["default"])(e["@@transducer/step"], e), t))
            }
            var s = "undefined" != typeof Symbol ? Symbol.iterator : "@@iterator";

            function c(e, t, a) {
                if ("function" == typeof e && (e = Object(n["default"])(e)), Object(i["default"])(a)) return function(e, t, a) {
                    for (var i = 0, n = a.length; i < n;) {
                        if ((t = e["@@transducer/step"](t, a[i])) && t["@@transducer/reduced"]) {
                            t = t["@@transducer/value"];
                            break
                        }
                        i += 1
                    }
                    return e["@@transducer/result"](t)
                }(e, t, a);
                if ("function" == typeof a["fantasy-land/reduce"]) return l(e, t, a, "fantasy-land/reduce");
                if (null != a[s]) return r(e, t, a[s]());
                if ("function" == typeof a.next) return r(e, t, a);
                if ("function" == typeof a.reduce) return l(e, t, a, "reduce");
                throw new TypeError("reduce: list must be array or iterable")
            }
        },
        708: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return n
            }));
            var i = function() {
                function e(e) {
                    this.f = e
                }
                return e.prototype["@@transducer/init"] = function() {
                    throw new Error("init not implemented on XWrap")
                }, e.prototype["@@transducer/result"] = function(e) {
                    return e
                }, e.prototype["@@transducer/step"] = function(e, t) {
                    return this.f(e, t)
                }, e
            }();

            function n(e) {
                return new i(e)
            }
        },
        709: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(710),
                n = a(695),
                o = Object(n["default"])((function(e, t) {
                    return Object(i["default"])(e.length, (function() {
                        return e.apply(t, arguments)
                    }))
                }));
            t["default"] = o
        },
        710: function(e, t, a) {
            "use strict";

            function i(e, t) {
                switch (e) {
                    case 0:
                        return function() {
                            return t.apply(this, arguments)
                        };
                    case 1:
                        return function(e) {
                            return t.apply(this, arguments)
                        };
                    case 2:
                        return function(e, a) {
                            return t.apply(this, arguments)
                        };
                    case 3:
                        return function(e, a, i) {
                            return t.apply(this, arguments)
                        };
                    case 4:
                        return function(e, a, i, n) {
                            return t.apply(this, arguments)
                        };
                    case 5:
                        return function(e, a, i, n, o) {
                            return t.apply(this, arguments)
                        };
                    case 6:
                        return function(e, a, i, n, o, r) {
                            return t.apply(this, arguments)
                        };
                    case 7:
                        return function(e, a, i, n, o, r, l) {
                            return t.apply(this, arguments)
                        };
                    case 8:
                        return function(e, a, i, n, o, r, l, s) {
                            return t.apply(this, arguments)
                        };
                    case 9:
                        return function(e, a, i, n, o, r, l, s, c) {
                            return t.apply(this, arguments)
                        };
                    case 10:
                        return function(e, a, i, n, o, r, l, s, c, h) {
                            return t.apply(this, arguments)
                        };
                    default:
                        throw new Error("First argument to _arity must be a non-negative integer no greater than ten")
                }
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        711: function(e, t, a) {
            "use strict";
            a.r(t), t["default"] = {
                init: function() {
                    return this.xf["@@transducer/init"]()
                },
                result: function(e) {
                    return this.xf["@@transducer/result"](e)
                }
            }
        },
        712: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(695),
                n = a(698),
                o = a(713),
                r = a(707),
                l = a(714),
                s = a(715),
                c = a(717),
                h = Object(i["default"])(Object(n["default"])(["fantasy-land/map", "map"], l["default"], (function(e, t) {
                    switch (Object.prototype.toString.call(t)) {
                        case "[object Function]":
                            return Object(s["default"])(t.length, (function() {
                                return e.call(this, t.apply(this, arguments))
                            }));
                        case "[object Object]":
                            return Object(r["default"])((function(a, i) {
                                return a[i] = e(t[i]), a
                            }), {}, Object(c["default"])(t));
                        default:
                            return Object(o["default"])(e, t)
                    }
                })));
            t["default"] = h
        },
        713: function(e, t, a) {
            "use strict";

            function i(e, t) {
                for (var a = 0, i = t.length, n = Array(i); a < i;) n[a] = e(t[a]), a += 1;
                return n
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        714: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(695),
                n = a(711),
                o = function() {
                    function e(e, t) {
                        this.xf = t, this.f = e
                    }
                    return e.prototype["@@transducer/init"] = n["default"].init, e.prototype["@@transducer/result"] = n["default"].result, e.prototype["@@transducer/step"] = function(e, t) {
                        return this.xf["@@transducer/step"](e, this.f(t))
                    }, e
                }(),
                r = Object(i["default"])((function(e, t) {
                    return new o(e, t)
                }));
            t["default"] = r
        },
        715: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(710),
                n = a(696),
                o = a(695),
                r = a(716),
                l = Object(o["default"])((function(e, t) {
                    return 1 === e ? Object(n["default"])(t) : Object(i["default"])(e, Object(r["default"])(e, [], t))
                }));
            t["default"] = l
        },
        716: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return o
            }));
            var i = a(710),
                n = a(697);

            function o(e, t, a) {
                return function() {
                    for (var r = [], l = 0, s = e, c = 0; c < t.length || l < arguments.length;) {
                        var h;
                        c < t.length && (!Object(n["default"])(t[c]) || l >= arguments.length) ? h = t[c] : (h = arguments[l], l += 1), r[c] = h, Object(n["default"])(h) || (s -= 1), c += 1
                    }
                    return s <= 0 ? a.apply(this, r) : Object(i["default"])(s, o(e, r, a))
                }
            }
        },
        717: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(696),
                n = a(718),
                o = a(719),
                r = !{
                    toString: null
                }.propertyIsEnumerable("toString"),
                l = ["constructor", "valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"],
                s = function() {
                    return arguments.propertyIsEnumerable("length")
                }(),
                c = function(e, t) {
                    for (var a = 0; a < e.length;) {
                        if (e[a] === t) return !0;
                        a += 1
                    }
                    return !1
                },
                h = "function" != typeof Object.keys || s ? function(e) {
                    if (Object(e) !== e) return [];
                    var t, a, i = [],
                        h = s && Object(o["default"])(e);
                    for (t in e) !Object(n["default"])(t, e) || h && "length" === t || (i[i.length] = t);
                    if (r)
                        for (a = l.length - 1; a >= 0;) t = l[a], Object(n["default"])(t, e) && !c(i, t) && (i[i.length] = t), a -= 1;
                    return i
                } : function(e) {
                    return Object(e) !== e ? [] : Object.keys(e)
                },
                u = Object(i["default"])(h);
            t["default"] = u
        },
        718: function(e, t, a) {
            "use strict";

            function i(e, t) {
                return Object.prototype.hasOwnProperty.call(t, e)
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        719: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(718),
                n = Object.prototype.toString;
            t["default"] = function() {
                return "[object Arguments]" === n.call(arguments) ? function(e) {
                    return "[object Arguments]" === n.call(e)
                } : function(e) {
                    return Object(i["default"])("callee", e)
                }
            }
        },
        720: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(721),
                n = a(696),
                o = Object(n["default"])((function(e) {
                    return null != e && "function" == typeof e.clone ? e.clone() : Object(i["default"])(e, [], [], !0)
                }));
            t["default"] = o
        },
        721: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return o
            }));
            var i = a(722),
                n = a(723);

            function o(e, t, a, r) {
                var l = function(i) {
                    for (var n = t.length, l = 0; l < n;) {
                        if (e === t[l]) return a[l];
                        l += 1
                    }
                    for (var s in t[l + 1] = e, a[l + 1] = i, e) i[s] = r ? o(e[s], t, a, !0) : e[s];
                    return i
                };
                switch (Object(n["default"])(e)) {
                    case "Object":
                        return l({});
                    case "Array":
                        return l([]);
                    case "Date":
                        return new Date(e.valueOf());
                    case "RegExp":
                        return Object(i["default"])(e);
                    default:
                        return e
                }
            }
        },
        722: function(e, t, a) {
            "use strict";

            function i(e) {
                return new RegExp(e.source, (e.global ? "g" : "") + (e.ignoreCase ? "i" : "") + (e.multiline ? "m" : "") + (e.sticky ? "y" : "") + (e.unicode ? "u" : ""))
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        723: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(696),
                n = Object(i["default"])((function(e) {
                    return null === e ? "Null" : e === undefined ? "Undefined" : Object.prototype.toString.call(e).slice(8, -1)
                }));
            t["default"] = n
        },
        724: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(725),
                n = a(727),
                o = Object(n["default"])(i["default"]);
            t["default"] = o
        },
        725: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(696),
                n = a(726),
                o = Object(i["default"])(n["default"]);
            t["default"] = o
        },
        726: function(e, t, a) {
            "use strict";

            function i(e) {
                return e
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        727: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(728),
                n = a(695),
                o = Object(n["default"])((function(e, t) {
                    for (var a, n, o = new i["default"], r = [], l = 0; l < t.length;) a = e(n = t[l]), o.add(a) && r.push(n), l += 1;
                    return r
                }));
            t["default"] = o
        },
        728: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(729),
                n = function() {
                    function e() {
                        this._nativeSet = "function" == typeof Set ? new Set : null, this._items = {}
                    }
                    return e.prototype.add = function(e) {
                        return !o(e, !0, this)
                    }, e.prototype.has = function(e) {
                        return o(e, !1, this)
                    }, e
                }();

            function o(e, t, a) {
                var n, o = typeof e;
                switch (o) {
                    case "string":
                    case "number":
                        return 0 === e && 1 / e == -Infinity ? !!a._items["-0"] || (t && (a._items["-0"] = !0), !1) : null !== a._nativeSet ? t ? (n = a._nativeSet.size, a._nativeSet.add(e), a._nativeSet.size === n) : a._nativeSet.has(e) : o in a._items ? e in a._items[o] || (t && (a._items[o][e] = !0), !1) : (t && (a._items[o] = {}, a._items[o][e] = !0), !1);
                    case "boolean":
                        if (o in a._items) {
                            var r = e ? 1 : 0;
                            return !!a._items[o][r] || (t && (a._items[o][r] = !0), !1)
                        }
                        return t && (a._items[o] = e ? [!1, !0] : [!0, !1]), !1;
                    case "function":
                        return null !== a._nativeSet ? t ? (n = a._nativeSet.size, a._nativeSet.add(e), a._nativeSet.size === n) : a._nativeSet.has(e) : o in a._items ? !!Object(i["default"])(e, a._items[o]) || (t && a._items[o].push(e), !1) : (t && (a._items[o] = [e]), !1);
                    case "undefined":
                        return !!a._items[o] || (t && (a._items[o] = !0), !1);
                    case "object":
                        if (null === e) return !!a._items["null"] || (t && (a._items["null"] = !0), !1);
                    default:
                        return (o = Object.prototype.toString.call(e)) in a._items ? !!Object(i["default"])(e, a._items[o]) || (t && a._items[o].push(e), !1) : (t && (a._items[o] = [e]), !1)
                }
            }
            t["default"] = n
        },
        729: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return n
            }));
            var i = a(730);

            function n(e, t) {
                return Object(i["default"])(t, e, 0) >= 0
            }
        },
        730: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return n
            }));
            var i = a(731);

            function n(e, t, a) {
                var n, o;
                if ("function" == typeof e.indexOf) switch (typeof t) {
                    case "number":
                        if (0 === t) {
                            for (n = 1 / t; a < e.length;) {
                                if (0 === (o = e[a]) && 1 / o === n) return a;
                                a += 1
                            }
                            return -1
                        }
                        if (t != t) {
                            for (; a < e.length;) {
                                if ("number" == typeof(o = e[a]) && o != o) return a;
                                a += 1
                            }
                            return -1
                        }
                        return e.indexOf(t, a);
                    case "string":
                    case "boolean":
                    case "function":
                    case "undefined":
                        return e.indexOf(t, a);
                    case "object":
                        if (null === t) return e.indexOf(t, a)
                }
                for (; a < e.length;) {
                    if (Object(i["default"])(e[a], t)) return a;
                    a += 1
                }
                return -1
            }
        },
        731: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(695),
                n = a(732),
                o = Object(i["default"])((function(e, t) {
                    return Object(n["default"])(e, t, [], [])
                }));
            t["default"] = o
        },
        732: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return u
            }));
            var i = a(733),
                n = a(734),
                o = a(735),
                r = a(718),
                l = a(736),
                s = a(717),
                c = a(723);

            function h(e, t, a, o) {
                var r = Object(i["default"])(e),
                    l = Object(i["default"])(t);

                function s(e, t) {
                    return u(e, t, a.slice(), o.slice())
                }
                return !Object(n["default"])((function(e, t) {
                    return !Object(n["default"])(s, t, e)
                }), l, r)
            }

            function u(e, t, a, i) {
                if (Object(l["default"])(e, t)) return !0;
                var n = Object(c["default"])(e);
                if (n !== Object(c["default"])(t)) return !1;
                if (null == e || null == t) return !1;
                if ("function" == typeof e["fantasy-land/equals"] || "function" == typeof t["fantasy-land/equals"]) return "function" == typeof e["fantasy-land/equals"] && e["fantasy-land/equals"](t) && "function" == typeof t["fantasy-land/equals"] && t["fantasy-land/equals"](e);
                if ("function" == typeof e.equals || "function" == typeof t.equals) return "function" == typeof e.equals && e.equals(t) && "function" == typeof t.equals && t.equals(e);
                switch (n) {
                    case "Arguments":
                    case "Array":
                    case "Object":
                        if ("function" == typeof e.constructor && "Promise" === Object(o["default"])(e.constructor)) return e === t;
                        break;
                    case "Boolean":
                    case "Number":
                    case "String":
                        if (typeof e != typeof t || !Object(l["default"])(e.valueOf(), t.valueOf())) return !1;
                        break;
                    case "Date":
                        if (!Object(l["default"])(e.valueOf(), t.valueOf())) return !1;
                        break;
                    case "Error":
                        return e.name === t.name && e.message === t.message;
                    case "RegExp":
                        if (e.source !== t.source || e.global !== t.global || e.ignoreCase !== t.ignoreCase || e.multiline !== t.multiline || e.sticky !== t.sticky || e.unicode !== t.unicode) return !1
                }
                for (var d = a.length - 1; d >= 0;) {
                    if (a[d] === e) return i[d] === t;
                    d -= 1
                }
                switch (n) {
                    case "Map":
                        return e.size === t.size && h(e.entries(), t.entries(), a.concat([e]), i.concat([t]));
                    case "Set":
                        return e.size === t.size && h(e.values(), t.values(), a.concat([e]), i.concat([t]));
                    case "Arguments":
                    case "Array":
                    case "Object":
                    case "Boolean":
                    case "Number":
                    case "String":
                    case "Date":
                    case "Error":
                    case "RegExp":
                    case "Int8Array":
                    case "Uint8Array":
                    case "Uint8ClampedArray":
                    case "Int16Array":
                    case "Uint16Array":
                    case "Int32Array":
                    case "Uint32Array":
                    case "Float32Array":
                    case "Float64Array":
                    case "ArrayBuffer":
                        break;
                    default:
                        return !1
                }
                var g = Object(s["default"])(e);
                if (g.length !== Object(s["default"])(t).length) return !1;
                var p = a.concat([e]),
                    f = i.concat([t]);
                for (d = g.length - 1; d >= 0;) {
                    var m = g[d];
                    if (!Object(r["default"])(m, t) || !u(t[m], e[m], p, f)) return !1;
                    d -= 1
                }
                return !0
            }
        },
        733: function(e, t, a) {
            "use strict";

            function i(e) {
                for (var t, a = []; !(t = e.next()).done;) a.push(t.value);
                return a
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        734: function(e, t, a) {
            "use strict";

            function i(e, t, a) {
                for (var i = 0, n = a.length; i < n;) {
                    if (e(t, a[i])) return !0;
                    i += 1
                }
                return !1
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        735: function(e, t, a) {
            "use strict";

            function i(e) {
                var t = String(e).match(/^function (\w*)/);
                return null == t ? "" : t[1]
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        736: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(695),
                n = Object(i["default"])((function(e, t) {
                    return e === t ? 0 !== e || 1 / e == 1 / t : e != e && t != t
                }));
            t["default"] = n
        },
        737: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(695),
                n = Object(i["default"])((function(e, t) {
                    for (var a, i = 0, n = e.length, o = t.length, r = []; i < n;) {
                        for (a = 0; a < o;) r[r.length] = [e[i], t[a]], a += 1;
                        i += 1
                    }
                    return r
                }));
            t["default"] = n
        },
        738: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(739),
                n = a(696),
                o = a(715),
                r = Object(n["default"])((function(e) {
                    return Object(o["default"])(e.length, (function() {
                        var t = 0,
                            a = arguments[0],
                            n = arguments[arguments.length - 1],
                            o = Array.prototype.slice.call(arguments, 0);
                        return o[0] = function() {
                            var e = a.apply(this, Object(i["default"])(arguments, [t, n]));
                            return t += 1, e
                        }, e.apply(this, o)
                    }))
                }));
            t["default"] = r
        },
        739: function(e, t, a) {
            "use strict";

            function i(e, t) {
                var a;
                t = t || [];
                var i = (e = e || []).length,
                    n = t.length,
                    o = [];
                for (a = 0; a < i;) o[o.length] = e[a], a += 1;
                for (a = 0; a < n;) o[o.length] = t[a], a += 1;
                return o
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        751: function(e, t, a) {
            "use strict";
            var i = a(191),
                n = a(187);
            t.__esModule = !0, t["default"] = void 0;
            var o = n(a(207)),
                r = n(a(442)),
                l = i(a(440)),
                s = n(a(752)),
                c = n(a(199)),
                h = function(e, t) {
                    var a = t,
                        i = e;
                    return (a = Math.log(a / i)) ? function(e) {
                        return Math.log(e / i) / a
                    } : (0, r["default"])(a)
                },
                u = function(e, t) {
                    return e < 0 ? function(a) {
                        return -Math.pow(-t, a) * Math.pow(-e, 1 - a)
                    } : function(a) {
                        return Math.pow(t, a) * Math.pow(e, 1 - a)
                    }
                },
                d = function(e) {
                    return isFinite(e) ? +("1e" + e) : e < 0 ? 0 : e
                },
                g = function(e) {
                    return 10 === e ? d : e === Math.E ? Math.exp : function(t) {
                        return Math.pow(e, t)
                    }
                },
                p = function(e) {
                    return e === Math.E ? Math.log : 10 === e ? Math.log10 : 2 === e ? Math.log2 : function(t) {
                        return Math.log(t) / Math.log(e)
                    }
                },
                f = function(e) {
                    return function(t) {
                        return -e(-t)
                    }
                },
                m = function(e) {
                    function t() {
                        var t;
                        return (t = e.call(this, h, u) || this).setDomain([1, 10]), t.base = 10, t.logs = p(t.base), t.pows = g(t.base), t
                    }(0, o["default"])(t, e);
                    var a = t.prototype;
                    return a._rescaleLog = function() {
                        return this.logs = p(this.base), this.pows = g(this.base), this.getDomain()[0] < 0 && (this.logs = f(this.logs), this.pows = f(this.pows)), this
                    }, a.setBase = function(e) {
                        return void 0 === e && (e = 10), this.base = Number(e), this._rescaleLog()
                    }, a.getBase = function() {
                        return this.base
                    }, a.setDomain = function(t) {
                        return void 0 === t && (t = [1, 10]), e.prototype.setDomain.call(this, t), this._rescaleLog()
                    }, a.nice = function() {
                        var e, t, a = this.getDomain(),
                            i = a[0],
                            n = a[1],
                            o = this.base;
                        return i === n && (i -= i / 100), e = Math.log(i) / Math.log(o), t = Math.log(n) / Math.log(o), (e % 1 || t % 1) && (i <= n ? (i = this.pows(Math.floor(e)), n = this.pows(Math.ceil(t))) : (i = this.pows(Math.ceil(e)), n = this.pows(Math.floor(t))), this.setDomain([i, n])), this
                    }, a.tickFormat = function(e, t) {
                        var a = this.base,
                            i = t,
                            n = e;
                        return null == i && (i = 10 === a ? ".0e" : ","), "function" != typeof i && (i = this._localeConverter.formatter(i)), null == n && (n = 10),
                            function(e) {
                                return i.format(e)
                            }
                    }, a.ticks = function() {
                        var e, t, a, i, n, o, r = this.getDomain(),
                            l = r[0],
                            s = r[1],
                            c = 1,
                            h = 0,
                            u = [],
                            d = this.base;
                        if (l <= 0 || s <= 0) return u;
                        if (l > s) {
                            var g = this.getDomain();
                            s = g[0], l = g[1], c = 0
                        }
                        for (d > 1 ? (t = e = Math.ceil(Math.log(s) / Math.log(d)), a = Math.floor(Math.log(l) / Math.log(d))) : d > 0 && d < 1 && (e = Math.floor(Math.log(s) / Math.log(d)), t = Math.ceil(Math.log(l) / Math.log(d)), a = e), n = e, o = t; o >= a; --o) l <= (i = this.pows(n)) && s >= i && (u[h++] = i), d > 1 ? n-- : n++;
                        return this.majorTicks = c ? u.reverse() : u
                    }, a.copy = function() {
                        return (0, l.copyScale)(this, (new t).setBase(this.base))
                    }, a.minorTicks = function(e, t) {
                        void 0 === t && (t = this.majorTicks || this.ticks());
                        var a, i, n, o, r, l = this.base,
                            h = (0, s["default"])(t),
                            u = [],
                            d = Math.log(l) / Math.log(10),
                            g = l > 1 ? -1 : 1,
                            p = e;
                        return p = (0, c["default"])(Number(p), d % 1 ? 4 : 8), h.forEach((function(e) {
                            var t = e[0],
                                s = e[1];
                            for (l > 1 ? i = Math.ceil(Math.log(s) / Math.log(l)) : l > 0 && l < 1 && (i = Math.floor(Math.log(s) / Math.log(l))), o = Math.pow(l, i) - Math.pow(l, i + g), n = o / (p + 1), a = 1; a <= p; ++a) t <= (r = Math.pow(l, i + g) + n * a) && s >= r && u.push(r)
                        })), u
                    }, a.contextTicks = function() {
                        return this.contextTicksArr || []
                    }, a.getType = function() {
                        return "log"
                    }, t
                }(l["default"]);
            t["default"] = m
        },
        752: function(e, t, a) {
            "use strict";

            function i(e, t) {
                return [e, t]
            }
            t.__esModule = !0, t["default"] = void 0;
            var n = function(e, t) {
                var a = t,
                    n = 0,
                    o = e.length - 1,
                    r = e[0],
                    l = new Array(o < 0 ? 0 : o);
                for (null == a && (a = i); n < o;) l[n] = a(r, r = e[++n]);
                return l
            };
            t["default"] = n
        },
        767: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(768),
                n = a(695),
                o = Object(n["default"])((function(e, t) {
                    return Object(i["default"])({}, e, t)
                }));
            t["default"] = o
        },
        768: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(769);
            t["default"] = "function" == typeof Object.assign ? Object.assign : i["default"]
        },
        769: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return n
            }));
            var i = a(718);

            function n(e) {
                if (null == e) throw new TypeError("Cannot convert undefined or null to object");
                for (var t = Object(e), a = 1, n = arguments.length; a < n;) {
                    var o = arguments[a];
                    if (null != o)
                        for (var r in o) Object(i["default"])(r, o) && (t[r] = o[r]);
                    a += 1
                }
                return t
            }
        },
        792: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(696),
                n = Object(i["default"])((function(e) {
                    for (var t = 0, a = []; t < e.length;) {
                        for (var i = e[t], n = 0; n < i.length;) "undefined" == typeof a[n] && (a[n] = []), a[n].push(i[n]), n += 1;
                        t += 1
                    }
                    return a
                }));
            t["default"] = n
        },
        795: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(695),
                n = a(796),
                o = Object(i["default"])((function(e, t) {
                    return Object(n["default"])((function(e, t, a) {
                        return a
                    }), e, t)
                }));
            t["default"] = o
        },
        796: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(797),
                n = a(798),
                o = a(799),
                r = Object(i["default"])((function l(e, t, a) {
                    return Object(o["default"])((function(t, a, i) {
                        return Object(n["default"])(a) && Object(n["default"])(i) ? l(e, a, i) : e(t, a, i)
                    }), t, a)
                }));
            t["default"] = r
        },
        797: function(e, t, a) {
            "use strict";
            a.r(t), a.d(t, "default", (function() {
                return r
            }));
            var i = a(696),
                n = a(695),
                o = a(697);

            function r(e) {
                return function t(a, r, l) {
                    switch (arguments.length) {
                        case 0:
                            return t;
                        case 1:
                            return Object(o["default"])(a) ? t : Object(n["default"])((function(t, i) {
                                return e(a, t, i)
                            }));
                        case 2:
                            return Object(o["default"])(a) && Object(o["default"])(r) ? t : Object(o["default"])(a) ? Object(n["default"])((function(t, a) {
                                return e(t, r, a)
                            })) : Object(o["default"])(r) ? Object(n["default"])((function(t, i) {
                                return e(a, t, i)
                            })) : Object(i["default"])((function(t) {
                                return e(a, r, t)
                            }));
                        default:
                            return Object(o["default"])(a) && Object(o["default"])(r) && Object(o["default"])(l) ? t : Object(o["default"])(a) && Object(o["default"])(r) ? Object(n["default"])((function(t, a) {
                                return e(t, a, l)
                            })) : Object(o["default"])(a) && Object(o["default"])(l) ? Object(n["default"])((function(t, a) {
                                return e(t, r, a)
                            })) : Object(o["default"])(r) && Object(o["default"])(l) ? Object(n["default"])((function(t, i) {
                                return e(a, t, i)
                            })) : Object(o["default"])(a) ? Object(i["default"])((function(t) {
                                return e(t, r, l)
                            })) : Object(o["default"])(r) ? Object(i["default"])((function(t) {
                                return e(a, t, l)
                            })) : Object(o["default"])(l) ? Object(i["default"])((function(t) {
                                return e(a, r, t)
                            })) : e(a, r, l)
                    }
                }
            }
        },
        798: function(e, t, a) {
            "use strict";

            function i(e) {
                return "[object Object]" === Object.prototype.toString.call(e)
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        799: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(797),
                n = a(718),
                o = Object(i["default"])((function(e, t, a) {
                    var i, o = {};
                    for (i in t) Object(n["default"])(i, t) && (o[i] = Object(n["default"])(i, a) ? e(i, t[i], a[i]) : t[i]);
                    for (i in a) Object(n["default"])(i, a) && !Object(n["default"])(i, o) && (o[i] = a[i]);
                    return o
                }));
            t["default"] = o
        },
        839: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(695),
                n = a(698),
                o = a(840),
                r = Object(i["default"])(Object(n["default"])(["all"], o["default"], (function(e, t) {
                    for (var a = 0; a < t.length;) {
                        if (!e(t[a])) return !1;
                        a += 1
                    }
                    return !0
                })));
            t["default"] = r
        },
        840: function(e, t, a) {
            "use strict";
            a.r(t);
            var i = a(695),
                n = a(841),
                o = a(711),
                r = function() {
                    function e(e, t) {
                        this.xf = t, this.f = e, this.all = !0
                    }
                    return e.prototype["@@transducer/init"] = o["default"].init, e.prototype["@@transducer/result"] = function(e) {
                        return this.all && (e = this.xf["@@transducer/step"](e, !0)), this.xf["@@transducer/result"](e)
                    }, e.prototype["@@transducer/step"] = function(e, t) {
                        return this.f(t) || (this.all = !1, e = Object(n["default"])(this.xf["@@transducer/step"](e, !1))), e
                    }, e
                }(),
                l = Object(i["default"])((function(e, t) {
                    return new r(e, t)
                }));
            t["default"] = l
        },
        841: function(e, t, a) {
            "use strict";

            function i(e) {
                return e && e["@@transducer/reduced"] ? e : {
                    "@@transducer/value": e,
                    "@@transducer/reduced": !0
                }
            }
            a.r(t), a.d(t, "default", (function() {
                return i
            }))
        },
        906: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            var i = function() {
                var e, t, a, i, n, o = this.getChildren(),
                    r = this.getDatasets(),
                    l = o.xAxis && o.xAxis[0] || o.scale,
                    s = [],
                    c = 0;
                if (r) {
                    for (e = r.length, t = 0; t < e; t++) c = Math.max(c, r[t].components.data.length);
                    for (t = 0; t < c; t++)
                        for ((n = s[t] = [])[0] = l.getLabel(t).label, a = 1; a <= e; a++) i = r[a - 1].components.data[t], n[a] = i && i.config.setValue;
                    return s
                }
            };
            t["default"] = i
        }
    }
]);
//# sourceMappingURL=http://localhost:3052/3.15.1-sr.1/map/eval/fusioncharts.common.js.map