/* * jscharting.js v3.0.2.20210127 * (c) 2009-2021 Corporate Web Solutions Ltd. * All client side / JavaScript code may not be used in any way without a valid JSCharting license. * License holder usage is governed by the license.txt terms included with the distribution. * To license JSCharting for your own use, please visit jscharting.com */ "use strict"; (function (aa, K) { "object" === typeof exports && "undefined" !== typeof module ? K(exports) : "function" === typeof define && define.amd ? define(["exports"], K) : ((aa = aa || self), K((aa.JSC = {}))); })(this, function (aa) { function K(a, c) { function b() { this.constructor = a; } nj(a, c); a.prototype = null === c ? Object.create(c) : ((b.prototype = c.prototype), new b()); } function Eb(a, c, b, d) { var e = arguments.length, f = 3 > e ? c : null === d ? (d = Object.getOwnPropertyDescriptor(c, b)) : d, g; if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) f = Reflect.decorate(a, c, b, d); else for (var h = a.length - 1; 0 <= h; h--) if ((g = a[h])) f = (3 > e ? g(f) : 3 < e ? g(c, b, f) : g(c, b)) || f; return 3 < e && f && Object.defineProperty(c, b, f), f; } function ya(a) { var c = "function" === typeof Symbol && a[Symbol.iterator], b = 0; return c ? c.call(a) : { next: function () { a && b >= a.length && (a = void 0); return { value: a && a[b++], done: !a }; }, }; } function G(a, c) { var b = "function" === typeof Symbol && a[Symbol.iterator]; if (!b) return a; a = b.call(a); var d, e = []; try { for (; (void 0 === c || 0 < c--) && !(d = a.next()).done; ) e.push(d.value); } catch (g) { var f = { error: g }; } finally { try { d && !d.done && (b = a["return"]) && b.call(a); } finally { if (f) throw f.error; } } return e; } function H() { for (var a = [], c = 0; c < arguments.length; c++) a = a.concat(G(arguments[c])); return a; } function t(a) { return void 0 !== a; } function J(a, c) { return ou.call(a, c); } function pb(a, c) { c = a && a.indexOf(c); -1 < c && a.splice(c, 1); return c; } function C(a, c) { if (c) { c = c.split("."); for (var b = 0; void 0 !== a && b < c.length; b++) a = a[c[b]]; } return a; } function N(a, c) { if (c) for (var b = 0; void 0 !== a && b < c.length; b++) a = a[c[b]]; return a; } function an(a) { return null === a; } function I(a) { var c = typeof a; if ("undefined" !== c) { if ("boolean" === c) return "boolean"; if ("number" === c) return "number"; if ("function" === c) return "function"; if (a && a.pop) return "array"; if ("string" === c) return "string"; if (null === a) return "null"; if ("object" === c) return a && a.getUTCMilliseconds ? "date" : "object"; } return "undefined"; } function ud(a) { return null == a ? (void 0 === a ? "[object Undefined]" : "[object Null]") : pu.call(a); } function bn(a, c) { return function (b) { return a(c(b)); }; } function Pc(a) { return null != a && "object" == typeof a; } function Ke(a) { return null == a ? "" : Mf(a); } function Wg(a) { if (!Pc(a) || "[object Object]" != ud(a)) return !1; a = oj(a); if (null === a) return !0; a = qb.call(a, "constructor") && a.constructor; return "function" == typeof a && a instanceof a && Xg.call(a) == qu; } function pj(a, c) { for (var b = -1, d = null == a ? 0 : a.length, e = 0, f = []; ++b < d; ) { var g = a[b]; c(g, b, a) && (f[e++] = g); } return f; } function qj(a, c) { for (var b = -1, d = Array(a); ++b < a; ) d[b] = c(b); return d; } function cn(a) { return Pc(a) && "[object Arguments]" == ud(a); } function ru() { return !1; } function Yg(a, c) { c = null == c ? 9007199254740991 : c; return !!c && ("number" == typeof a || su.test(a)) && -1 < a && 0 == a % 1 && a < c; } function rj(a) { return "number" == typeof a && -1 < a && 0 == a % 1 && 9007199254740991 >= a; } function tu(a) { return Pc(a) && rj(a.length) && !!Ca[ud(a)]; } function dn(a) { return function (c) { return a(c); }; } function en(a, c) { var b = Za(a), d = !b && Le(a), e = !b && !d && Me(a), f = !b && !d && !e && Zg(a); d = (b = b || d || e || f) ? qj(a.length, String) : []; var g = d.length, h; for (h in a) (!c && !qb.call(a, h)) || (b && ("length" == h || (e && ("offset" == h || "parent" == h)) || (f && ("buffer" == h || "byteLength" == h || "byteOffset" == h)) || Yg(h, g))) || d.push(h); return d; } function $g(a) { var c = a && a.constructor; return a === (("function" == typeof c && c.prototype) || Nf); } function fn(a) { if (!$g(a)) return uu(a); var c = [], b; for (b in Object(a)) qb.call(a, b) && "constructor" != b && c.push(b); return c; } function xb(a) { var c = typeof a; return null != a && ("object" == c || "function" == c); } function Fb(a) { if (!xb(a)) return !1; a = ud(a); return "[object Function]" == a || "[object GeneratorFunction]" == a || "[object AsyncFunction]" == a || "[object Proxy]" == a; } function vd(a) { return null != a && rj(a.length) && !Fb(a); } function Ne(a) { return vd(a) ? en(a) : fn(a); } function vu(a, c) { var b = []; ah(a, function (a, e, f) { c(a, e, f) && b.push(a); }); return b; } function Pd(a, c) { return a === c || (a !== a && c !== c); } function bh(a, c) { for (var b = a.length; b--; ) if (Pd(a[b][0], c)) return b; return -1; } function Qc(a) { var c = -1, b = null == a ? 0 : a.length; for (this.clear(); ++c < b; ) { var d = a[c]; this.set(d[0], d[1]); } } function Qd(a) { if (null != a) { try { return Xg.call(a); } catch (c) {} return a + ""; } return ""; } function Rd(a, c) { a = null == a ? void 0 : a[c]; return (c = !xb(a) || (gn && gn in a) ? !1 : (Fb(a) ? wu : xu).test(Qd(a))) ? a : void 0; } function Sd(a) { var c = -1, b = null == a ? 0 : a.length; for (this.clear(); ++c < b; ) { var d = a[c]; this.set(d[0], d[1]); } } function ch(a, c) { a = a.__data__; var b = typeof c; return ("string" == b || "number" == b || "symbol" == b || "boolean" == b ? "__proto__" !== c : null === c) ? a["string" == typeof c ? "string" : "hash"] : a.map; } function Rc(a) { var c = -1, b = null == a ? 0 : a.length; for (this.clear(); ++c < b; ) { var d = a[c]; this.set(d[0], d[1]); } } function kc(a) { this.size = (this.__data__ = new Qc(a)).size; } function Td(a) { var c = -1, b = null == a ? 0 : a.length; for (this.__data__ = new Rc(); ++c < b; ) this.add(a[c]); } function yu(a, c) { for (var b = -1, d = null == a ? 0 : a.length; ++b < d; ) if (c(a[b], b, a)) return !0; return !1; } function hn(a, c) { return a.has(c); } function jn(a, c, b, d, e, f) { var g = b & 1, h = a.length, k = c.length; if (h != k && !(g && k > h)) return !1; if ((k = f.get(a)) && f.get(c)) return k == c; k = -1; var l = !0, m = b & 2 ? new Td() : void 0; f.set(a, c); for (f.set(c, a); ++k < h; ) { var n = a[k], p = c[k]; if (d) var q = g ? d(p, n, k, c, a, f) : d(n, p, k, a, c, f); if (void 0 !== q) { if (q) continue; l = !1; break; } if (m) { if ( !yu(c, function (c, a) { if (!m.has(a) && (n === c || e(n, c, b, d, f))) return m.push(a); }) ) { l = !1; break; } } else if (n !== p && !e(n, p, b, d, f)) { l = !1; break; } } f["delete"](a); f["delete"](c); return l; } function sj(a) { var c = -1, b = Array(a.size); a.forEach(function (a, e) { b[++c] = [e, a]; }); return b; } function Of(a) { var c = -1, b = Array(a.size); a.forEach(function (a) { b[++c] = a; }); return b; } function zu(a, c, b, d, e, f, g) { switch (b) { case "[object DataView]": if (a.byteLength != c.byteLength || a.byteOffset != c.byteOffset) break; a = a.buffer; c = c.buffer; case "[object ArrayBuffer]": if (a.byteLength != c.byteLength || !f(new dh(a), new dh(c))) break; return !0; case "[object Boolean]": case "[object Date]": case "[object Number]": return Pd(+a, +c); case "[object Error]": return a.name == c.name && a.message == c.message; case "[object RegExp]": case "[object String]": return a == c + ""; case "[object Map]": var h = sj; case "[object Set]": h || (h = Of); if (a.size != c.size && !(d & 1)) break; if ((b = g.get(a))) return b == c; d |= 2; g.set(a, c); c = jn(h(a), h(c), d, e, f, g); g["delete"](a); return c; case "[object Symbol]": if (Pf) return Pf.call(a) == Pf.call(c); } return !1; } function tj(a, c) { for (var b = -1, d = c.length, e = a.length; ++b < d; ) a[e + b] = c[b]; return a; } function kn(a, c, b) { c = c(a); return Za(a) ? c : tj(c, b(a)); } function ln() { return []; } function uj(a) { return kn(a, Ne, vj); } function vc(a, c, b, d, e) { if (a === c) return !0; if (null == a || null == c || (!Pc(a) && !Pc(c))) return a !== a && c !== c; a: { var f = Za(a), g = Za(c), h = f ? "[object Array]" : wc(a), k = g ? "[object Array]" : wc(c); h = "[object Arguments]" == h ? "[object Object]" : h; k = "[object Arguments]" == k ? "[object Object]" : k; var l = "[object Object]" == h; g = "[object Object]" == k; if ((k = h == k) && Me(a)) { if (!Me(c)) { c = !1; break a; } f = !0; l = !1; } if (k && !l) e || (e = new kc()), (c = f || Zg(a) ? jn(a, c, b, d, vc, e) : zu(a, c, h, b, d, vc, e)); else if (b & 1 || ((f = l && qb.call(a, "__wrapped__")), (h = g && qb.call(c, "__wrapped__")), !f && !h)) if (k) b: if ((e || (e = new kc()), (f = b & 1), (h = uj(a)), (g = h.length), (k = uj(c).length), g == k || f)) { for (l = g; l--; ) { var m = h[l]; if (!(f ? m in c : qb.call(c, m))) { c = !1; break b; } } if ((k = e.get(a)) && e.get(c)) c = k == c; else { k = !0; e.set(a, c); e.set(c, a); for (var n = f; ++l < g; ) { m = h[l]; var p = a[m], q = c[m]; if (d) var r = f ? d(q, p, m, c, a, e) : d(p, q, m, a, c, e); if (void 0 === r ? p !== q && !vc(p, q, b, d, e) : !r) { k = !1; break; } n || (n = "constructor" == m); } k && !n && ((b = a.constructor), (d = c.constructor), b != d && "constructor" in a && "constructor" in c && !("function" == typeof b && b instanceof b && "function" == typeof d && d instanceof d) && (k = !1)); e["delete"](a); e["delete"](c); c = k; } } else c = !1; else c = !1; else (a = f ? a.value() : a), (c = h ? c.value() : c), e || (e = new kc()), (c = vc(a, c, b, d, e)); } return c; } function Au(a, c, b, d) { var e = b.length, f = e, g = !d; if (null == a) return !f; for (a = Object(a); e--; ) { var h = b[e]; if (g && h[2] ? h[1] !== a[h[0]] : !(h[0] in a)) return !1; } for (; ++e < f; ) { h = b[e]; var k = h[0], l = a[k], m = h[1]; if (g && h[2]) { if (void 0 === l && !(k in a)) return !1; } else { h = new kc(); if (d) var n = d(l, m, k, a, c, h); if (void 0 === n ? !vc(m, l, 3, d, h) : !n) return !1; } } return !0; } function Bu(a) { for (var c = Ne(a), b = c.length; b--; ) { var d = c[b], e = a[d]; c[b] = [d, e, e === e && !xb(e)]; } return c; } function mn(a, c) { return function (b) { return null == b ? !1 : b[a] === c && (void 0 !== c || a in Object(b)); }; } function Cu(a) { var c = Bu(a); return 1 == c.length && c[0][2] ? mn(c[0][0], c[0][1]) : function (b) { return b === a || Au(b, a, c); }; } function Ud(a) { return "symbol" == typeof a || (Pc(a) && "[object Symbol]" == ud(a)); } function wj(a, c) { if (Za(a)) return !1; var b = typeof a; return "number" == b || "symbol" == b || "boolean" == b || null == a || Ud(a) ? !0 : Du.test(a) || !Eu.test(a) || (null != c && a in Object(c)); } function Vd(a, c) { for (var b = -1, d = null == a ? 0 : a.length, e = Array(d); ++b < d; ) e[b] = c(a[b], b, a); return e; } function Mf(a) { if ("string" == typeof a) return a; if (Za(a)) return Vd(a, Mf) + ""; if (Ud(a)) return nn ? nn.call(a) : ""; var c = a + ""; return "0" == c && 1 / a == -Qf ? "-0" : c; } function eh(a, c) { return Za(a) ? a : wj(a, c) ? [a] : Fu(Ke(a)); } function Rf(a) { if ("string" == typeof a || Ud(a)) return a; var c = a + ""; return "0" == c && 1 / a == -Qf ? "-0" : c; } function xj(a, c) { c = eh(c, a); for (var b = 0, d = c.length; null != a && b < d; ) a = a[Rf(c[b++])]; return b && b == d ? a : void 0; } function Gu(a, c) { return wj(a) && c === c && !xb(c) ? mn(Rf(a), c) : function (b) { var d = null == b ? void 0 : xj(b, a); d = void 0 === d ? void 0 : d; if (void 0 === d && d === c) { if ((d = null != b)) { d = a; d = eh(d, b); for (var e = -1, f = d.length, g = !1; ++e < f; ) { var h = Rf(d[e]); if (!(g = null != b && null != b && h in Object(b))) break; b = b[h]; } g || ++e != f ? (d = g) : ((f = null == b ? 0 : b.length), (d = !!f && rj(f) && Yg(h, f) && (Za(b) || Le(b)))); } h = d; } else h = vc(c, d, 3); return h; }; } function Wd(a) { return a; } function on(a) { return function (c) { return null == c ? void 0 : c[a]; }; } function Hu(a) { return function (c) { return xj(c, a); }; } function Xd(a, c) { return "function" == typeof a ? a : null == a ? Wd : "object" == typeof a ? (Za(a) ? Gu(a[0], a[1]) : Cu(a)) : wj(a) ? on(Rf(a)) : Hu(a); } function pn(a, c, b, d) { var e = a.length; for (b += d ? 1 : -1; d ? b-- : ++b < e; ) if (c(a[b], b, a)) return b; return -1; } function fh(a) { if ("number" == typeof a) return a; if (Ud(a)) return yj; xb(a) && ((a = "function" == typeof a.valueOf ? a.valueOf() : a), (a = xb(a) ? a + "" : a)); if ("string" != typeof a) return 0 === a ? a : +a; a = a.replace(qn, ""); var c = Iu.test(a); return c || Ju.test(a) ? Ku(a.slice(2), c ? 2 : 8) : Lu.test(a) ? yj : +a; } function Oe(a) { a ? ((a = fh(a)), (a = a === Qf || a === -Qf ? 1.7976931348623157e308 * (0 > a ? -1 : 1) : a === a ? a : 0)) : (a = 0 === a ? a : 0); var c = a % 1; return a === a ? (c ? a - c : a) : 0; } function Sf(a, c, b) { var d = null == a ? 0 : a.length; if (!d) return -1; b = null == b ? 0 : Oe(b); 0 > b && (b = gh(d + b, 0)); return pn(a, Xd(c), b); } function zj(a, c, b) { switch (b.length) { case 0: return a.call(c); case 1: return a.call(c, b[0]); case 2: return a.call(c, b[0], b[1]); case 3: return a.call(c, b[0], b[1], b[2]); } return a.apply(c, b); } function Aj(a, c, b) { "__proto__" == c && hh ? hh(a, c, { configurable: !0, enumerable: !0, value: b, writable: !0 }) : (a[c] = b); } function rn(a, c, b) { var d = a[c]; (qb.call(a, c) && Pd(d, b) && (void 0 !== b || c in a)) || Aj(a, c, b); } function Yd(a, c, b, d) { var e = !b; b || (b = {}); for (var f = -1, g = c.length; ++f < g; ) { var h = c[f], k = d ? d(b[h], a[h], h, b, a) : void 0; void 0 === k && (k = a[h]); e ? Aj(b, h, k) : rn(b, h, k); } return b; } function sn(a, c, b) { c = gh(void 0 === c ? a.length - 1 : c, 0); return function () { for (var d = arguments, e = -1, f = gh(d.length - c, 0), g = Array(f); ++e < f; ) g[e] = d[c + e]; e = -1; for (f = Array(c + 1); ++e < c; ) f[e] = d[e]; f[c] = b(g); return zj(a, this, f); }; } function Mu(a) { return function () { return a; }; } function Zd(a, c) { return tn(sn(a, c, Wd), a + ""); } function ih(a, c, b) { if (!xb(b)) return !1; var d = typeof c; return ("number" == d ? vd(b) && Yg(c, b.length) : "string" == d && c in b) ? Pd(b[c], a) : !1; } function Bj(a) { return Zd(function (c, b) { var d = -1, e = b.length, f = 1 < e ? b[e - 1] : void 0, g = 2 < e ? b[2] : void 0; f = 3 < a.length && "function" == typeof f ? (e--, f) : void 0; g && ih(b[0], b[1], g) && ((f = 3 > e ? void 0 : f), (e = 1)); for (c = Object(c); ++d < e; ) (g = b[d]) && a(c, g, d, f); return c; }); } function $d(a) { if (vd(a)) a = en(a, !0); else if (xb(a)) { var c = $g(a), b = []; for (d in a) ("constructor" != d || (!c && qb.call(a, d))) && b.push(d); a = b; } else { var d = []; if (null != a) for (c in Object(a)) d.push(c); a = d; } return a; } function Nu(a, c, b, d) { return void 0 === a || (Pd(a, Nf[b]) && !qb.call(d, b)) ? c : a; } function un(a, c, b) { ((void 0 === b || Pd(a[c], b)) && (void 0 !== b || c in a)) || Aj(a, c, b); } function vn(a, c) { if (c) return a.slice(); c = a.length; c = wn ? wn(c) : new a.constructor(c); a.copy(c); return c; } function Cj(a) { var c = new a.constructor(a.byteLength); new dh(c).set(new dh(a)); return c; } function xn(a, c) { c = c ? Cj(a.buffer) : a.buffer; return new a.constructor(c, a.byteOffset, a.length); } function yn(a, c) { var b = -1, d = a.length; for (c || (c = Array(d)); ++b < d; ) c[b] = a[b]; return c; } function zn(a) { return "function" != typeof a.constructor || $g(a) ? {} : Ou(oj(a)); } function Tf(a) { return Pc(a) && vd(a); } function jh(a, c, b, d, e) { a !== c && Dj( c, function (f, g) { if (xb(f)) { e || (e = new kc()); f = e; var h = a[g], k = c[g], l = f.get(k); if (!l) { l = d ? d(h, k, g + "", a, c, f) : void 0; var m = void 0 === l; if (m) { var n = Za(k), p = !n && Me(k), q = !n && !p && Zg(k); l = k; if (n || p || q) Za(h) ? (l = h) : Tf(h) ? (l = yn(h)) : p ? ((m = !1), (l = vn(k, !0))) : q ? ((m = !1), (l = xn(k, !0))) : (l = []); else if (Wg(k) || Le(k)) if (((l = h), Le(h))) l = Yd(h, $d(h)); else { if (!xb(h) || (b && Fb(h))) l = zn(k); } else m = !1; } m && (f.set(k, l), jh(l, k, b, d, f), f["delete"](k)); } un(a, g, l); } else (h = d ? d(a[g], f, g + "", a, c, e) : void 0), void 0 === h && (h = f), un(a, g, h); }, $d ); } function An(a, c, b, d, e, f) { xb(a) && xb(c) && (f.set(c, a), jh(a, c, void 0, An, f), f["delete"](c)); return a; } function Bn(a, c) { for (var b = -1, d = null == a ? 0 : a.length; ++b < d && !1 !== c(a[b], b, a); ); return a; } function Pu(a, c) { return a && Yd(c, Ne(c), a); } function Qu(a, c) { return a && Yd(c, $d(c), a); } function Ru(a, c) { return Yd(a, vj(a), c); } function Su(a, c) { return Yd(a, Cn(a), c); } function Dn(a) { return kn(a, $d, Cn); } function Tu(a) { var c = a.length, b = a.constructor(c); c && "string" == typeof a[0] && qb.call(a, "index") && ((b.index = a.index), (b.input = a.input)); return b; } function Uu(a, c) { a.set(c[0], c[1]); return a; } function Ej(a, c, b, d) { var e = -1, f = null == a ? 0 : a.length; for (d && f && (b = a[++e]); ++e < f; ) b = c(b, a[e], e, a); return b; } function Vu(a, c) { a.add(c); return a; } function Wu(a, c, b, d) { var e = a.constructor; switch (c) { case "[object ArrayBuffer]": return Cj(a); case "[object Boolean]": case "[object Date]": return new e(+a); case "[object DataView]": return (c = d ? Cj(a.buffer) : a.buffer), new a.constructor(c, a.byteOffset, a.byteLength); case "[object Float32Array]": case "[object Float64Array]": case "[object Int8Array]": case "[object Int16Array]": case "[object Int32Array]": case "[object Uint8Array]": case "[object Uint8ClampedArray]": case "[object Uint16Array]": case "[object Uint32Array]": return xn(a, d); case "[object Map]": return (c = d ? b(sj(a), 1) : sj(a)), Ej(c, Uu, new a.constructor()); case "[object Number]": case "[object String]": return new e(a); case "[object RegExp]": return (c = new a.constructor(a.source, Xu.exec(a))), (c.lastIndex = a.lastIndex), c; case "[object Set]": return (c = d ? b(Of(a), 1) : Of(a)), Ej(c, Vu, new a.constructor()); case "[object Symbol]": return Pf ? Object(Pf.call(a)) : {}; } } function Uf(a, c, b, d, e, f) { var g, h = c & 1, k = c & 2, l = c & 4; b && (g = e ? b(a, d, e, f) : b(a)); if (void 0 !== g) return g; if (!xb(a)) return a; if ((d = Za(a))) { if (((g = Tu(a)), !h)) return yn(a, g); } else { var m = wc(a), n = "[object Function]" == m || "[object GeneratorFunction]" == m; if (Me(a)) return vn(a, h); if ("[object Object]" == m || "[object Arguments]" == m || (n && !e)) { if (((g = k || n ? {} : zn(a)), !h)) return k ? Su(a, Qu(g, a)) : Ru(a, Pu(g, a)); } else { if (!za[m]) return e ? a : {}; g = Wu(a, m, Uf, h); } } f || (f = new kc()); if ((e = f.get(a))) return e; f.set(a, g); k = l ? (k ? Dn : uj) : k ? $d : Ne; var p = d ? void 0 : k(a); Bn(p || a, function (d, e) { p && ((e = d), (d = a[e])); rn(g, e, Uf(d, c, b, e, a, f)); }); return g; } function Fj(a) { return "function" == typeof a ? a : Wd; } function En(a, c) { var b = -1, d = vd(a) ? Array(a.length) : []; ah(a, function (a, f, g) { d[++b] = c(a, f, g); }); return d; } function Yu(a, c, b, d, e) { e(a, function (a, e, h) { b = d ? ((d = !1), a) : c(b, a, e, h); }); return b; } function Zu(a) { return a !== a; } function Gj(a, c, b) { if (c === c) a: { --b; for (var d = a.length; ++b < d; ) if (a[b] === c) { a = b; break a; } a = -1; } else a = pn(a, Zu, b); return a; } function kh(a, c) { return !(null == a || !a.length) && -1 < Gj(a, c, 0); } function $u() {} function av(a) { return Za(a) || Le(a) || !!(Fn && a && a[Fn]); } function lh(a, c, b, d, e) { var f = -1, g = a.length; b || (b = av); for (e || (e = []); ++f < g; ) { var h = a[f]; 0 < c && b(h) ? (1 < c ? lh(h, c - 1, b, d, e) : tj(e, h)) : d || (e[e.length] = h); } return e; } function bv(a, c) { var b = a.length; for (a.sort(c); b--; ) a[b] = a[b].value; return a; } function cv(a, c, b) { var d = -1; c = Vd(c.length ? c : [Wd], dn(Xd)); a = En(a, function (b, a, g) { return { criteria: Vd(c, function (a) { return a(b); }), index: ++d, value: b, }; }); return bv(a, function (a, c) { a: { for (var d = -1, e = a.criteria, f = c.criteria, l = e.length, m = b.length; ++d < l; ) { b: { var n = e[d], p = f[d]; if (n !== p) { var q = void 0 !== n, r = null === n, u = n === n, x = Ud(n), v = void 0 !== p, y = null === p, D = p === p, E = Ud(p); if ((!y && !E && !x && n > p) || (x && v && D && !y && !E) || (r && v && D) || (!q && D) || !u) { n = 1; break b; } if ((!r && !x && !E && n < p) || (E && q && u && !r && !x) || (y && q && u) || (!v && u) || !D) { n = -1; break b; } } n = 0; } if (n) { if (d >= m) { a = n; break a; } a = n * ("desc" == b[d] ? -1 : 1); break a; } } a = a.index - c.index; } return a; }); } function Hj(a, c, b) { var d = -1, e = a.length; 0 > c && (c = -c > e ? 0 : e + c); b = b > e ? e : b; 0 > b && (b += e); e = c > b ? 0 : (b - c) >>> 0; c >>>= 0; for (b = Array(e); ++d < e; ) b[d] = a[d + c]; return b; } function Gn(a, c) { c = eh(c, a); a = 2 > c.length ? a : xj(a, Hj(c, 0, -1)); var b; (b = null == a) || ((b = null == c ? 0 : c.length), (b = delete a[Rf(b ? c[b - 1] : void 0)])); return b; } function dv(a) { return Tf(a) ? a : []; } function ev(a) { return Wg(a) ? void 0 : a; } function fv(a) { return (null == a ? 0 : a.length) ? lh(a, 1) : []; } function Ij(a, c, b) { a === a && (void 0 !== b && (a = a <= b ? a : b), void 0 !== c && (a = a >= c ? a : c)); return a; } function Hn(a, c) { for (var b, d = -1, e = a.length; ++d < e; ) { var f = c(a[d]); void 0 !== f && (b = void 0 === b ? f : b + f); } return b; } function In(a, c) { for (var b = {}, d = 0; d < a.length; d++) { var e = a[d], f = c(e, d); t(f) && (b[f] = e); } return b; } function Ub(a, c, b, d, e, f, g) { if (b && (a.length || c.length)) { var h = function (a) { (a = b(a)) && c.push(a); }, k = function (b) { pb(c, b); e && e(b); b.destroy && b.destroy(); }; if (!c.length) return w(a, h), c; a = In(a, f || Jn); g = In(c, g || Jn); for (var l in a) J(g, l) ? d && d(a[l], g[l]) : h(a[l]); for (l in g) !J(a, l) && k(g[l]); return c; } } function gv(a) { return "number" === typeof a && isNaN(a); } function xc(a, c, b) {} function Gb(a, c, b) { return a; } function ae(a, c) { return a.indexOf ? -1 < a.indexOf(c) : J(a, c); } function mh(a, c) { var b; if (a) { if (J(a, c)) return c; a = pa(a); c = c.toLowerCase(); try { for (var d = ya(a), e = d.next(); !e.done; e = d.next()) { var f = e.value; if (f.toLowerCase() === c) return f; } } catch (h) { var g = { error: h }; } finally { try { e && !e.done && (b = d.return) && b.call(d); } finally { if (g) throw g.error; } } } } function Da(a, c) { for (var b in a) c(b); } function L(a, c) { for (var b in c) a[b] = c[b]; return a; } function W(a, c) { return L(L({}, a), c); } function Oa(a, c) { return Na({}, a, c); } function Na(a, c, b) { if (!b) return L(a, c); for (var d in c) wd.call(b, d) && (a[d] = c[d]); return a; } function Sc(a, c, b) { if (!b) return L(a, c); for (var d in c) wd.call(b, d) || (a[d] = c[d]); return a; } function be(a, c, b) { return Sc(L({}, a), c, b); } function Pe(a, c, b) { return Na(L({}, a), c, b); } function Hb(a, c) { var b = {}, d; for (d in a) wd.call(c, d) || (b[d] = a[d]); return b; } function fa(a) { for (var c = {}, b = 0; b < a.length; b++) c[a[b]] = void 0; return c; } function Tc(a) { return a.length ? (1 === a.length ? a[0] : hv.apply([], a)) : []; } function Jj(a) { return fa(a.split(",")); } function Kj(a, c) { return B(a, function (b, a) { return b + c[a]; }); } function P(a) { return a[a.length - 1]; } function Lj(a, c, b, d, e) { var f = null, g; for (g in c) { var h = null; if (!wd.call(a, g) || (b && wd.call(b, g) ? (h = !vc(a[g], c[g])) : a[g] !== c[g])) (f = f || {}), (f[g] = h ? qa(c[g]) : c[g]), d || (a[g] = f[g]); } if (e) for (g in a) wd.call(c, g) || ((f = f || {}), (f[g] = null), d || delete a[g]); return f; } function z(a, c, b, d, e) { a = arguments; var f, g = a.length; for (f = 0; f < g; f++) { var h = a[f]; if (t(h) && null !== h) return h; } } function O(a) { return "string" === typeof a; } function Pa(a) { return a && "object" === typeof a; } function Q(a) { return void 0 === a; } function lc(a) { return null === a || Q(a); } function pa(a) { return Object.keys(a); } function Kn(a, c) { void 0 === c && (c = "."); var b = function (a, e, f) { void 0 === f && (f = []); if ("object" !== typeof a) return e && f.push(e), f; for (var d = Object.keys(a), h = 0, k = d.length; h < k; h++) { var l = d[h]; b(a[l], (e ? e + c : "") + l, f); } return f; }; return b(a); } function yc(a, c) { return S(a, function (b) { return t(c[b]); }) ? !0 : !1; } function Ln(a, c) { for (var b in a) if (wd.call(c, b)) return !0; return !1; } function Mj(a, c) { var b = {}, d; w(c, function (c) { if ((d = C(a, c))) b[c] = d; }); return b; } function Z(a, c, b) { if (a && c && "undefined" !== typeof b) { c = c.split("."); var d = c.length - 1, e; for (e = 0; e < d; e++) { var f = c[e]; a = void 0 === a[f] ? (a[f] = {}) : a[f]; } return (a[c[d]] = b); } } function Vf(a, c, b) { if (a && c && "undefined" !== typeof b) { var d = c.length - 1, e; for (e = 0; e < d; e++) { var f = c[e]; a = void 0 === a[f] ? (a[f] = {}) : a[f]; } return (a[c[d]] = b); } } function zc(a, c, b, d, e, f) { c = C(c, d); if (t(c)) return (c = e ? e(c) : c), "function" === typeof b ? b(a, c) : Z(a, b, c), !0; } function Mn(a, c, b, d) { c = N(c, d); if (t(c)) return Vf(a, b, c), !0; } function nh(a, c, b) { for (var d = 0, e = a.length; d < e; d++) if (a[d][c] === b) return a[d]; } function Qe(a, c) { if (!a || c.length !== a.length) return !1; for (var b = 0, d = c.length; b < d; b++) if (c[b] instanceof Array && a[b] instanceof Array) { if (!c[b].equals(a[b])) return !1; } else if (c[b] != a[b]) return !1; return !0; } function Nn(a) { var c = a.name; c || (c = (a = a.toString().match(iv)) && a[1]); return c; } function Nj(a) { return window.eval(a); } function On(a) { if (!a) return a; for (var c = [], b = 0; b < a.length; b++) { var d = a[b], e = d.toLowerCase(), f = " " === d; 0 < b && (f || d !== e) && c.push("-"); !f && c.push(e); } return c.join(""); } function Re(a, c, b) { a = oh(a); return a.split(c, b); } function Ib(a, c) { return w(Re(a, ","), c); } function Ac(a) { if (!a) return [0, 0, 0, 0]; if (4 === a.length && a.push) return a; switch (I(a)) { case "number": return [a, a, a, a]; case "object": return [a.top || 0, a.right || 0, a.bottom || 0, a.left || 0]; case "array": return jv(a); case "string": return Ac(Oj(a)); } return a; } function jv(a) { switch (a.length) { case 1: var c = a[0] || 0; return [c, c, c, c]; case 2: return (c = a[0]), (a = a[1]), [c, a, c, a]; case 3: return (c = a[1]), [a[0], c, a[2], c]; } return a; } function Oj(a) { return B(a.match(kv), function (a) { return Number(a); }); } function Pn(a, c) { for (var b = [], d = 0; d < a; d++) b.push(c(d)); return b; } function Sa(a, c, b) { var d; (d = c) && O(d) && (d = d.split(",")); var e = d ? function (b) { if (-1 < d.indexOf(b)) return !0; } : function (b) { return !1; }; Qn(a, function (a, c, h) { if (!e(c)) { var f = -1 < c.indexOf("_") ? c.replace(lv, "$1.") : c, g = I(a); if (-1 < f.indexOf(".")) { var m = C(h, f); Q(m) ? Z(h, f, a) : "object" === g && Pa(m) && (a = A(m, a)); delete h[c]; } "object" === g ? Sa(a, b && d) : "array" === g && w(a, function (a) { return Sa(a, b && d); }); } }); return a; } function ce(a) { return 0 < a ? 1 : 0 > a ? -1 : 0; } function na(a, c) { void 0 === c && (c = 0); return Math.round(a * Math.pow(10, c)) / Math.pow(10, c); } function ph(a) { a = a.slice(); var c = ea; return a .sort(function (b, d) { return ( c(a, function (a) { return a === b; }).length - c(a, function (b) { return b === d; }).length ); }) .pop(); } function qh(a) { a = a.slice(); a.sort(function (b, a) { return b - a; }); var c = Vb.floor(a.length / 2); return a.length % 2 ? a[c] : (a[c - 1] + a[c]) / 2; } function mv(a, c) { var b, d = c.length; if (0 === d) return 0; a.pop && (a = Ta(a) / a.length); c = c.slice(); c.sort(function (b, a) { return b - a; }); for (b = 0; b < d && !(c[b] > a); b++); return (b / d) * 100; } function Wf(a) { return a.length && Ta(a) / a.length; } function Pj(a, c) { return Math.round(a * Math.pow(10, c)) / Math.pow(10, c); } function Y(a, c, b, d, e) { return Qj(b, d) ? a : a + ((e - b) / (d - b)) * (c - a); } function Rj(a) { if (null === a) return "00"; a = parseInt(a); if (0 === a || Ha(a)) return "00"; a = Math.round(a); return "0123456789ABCDEF".charAt((a - (a % 16)) / 16) + "0123456789ABCDEF".charAt(a % 16); } function Rn(a) { var c = function (b) { return !Ha(b) && t(b) && null !== b; }; if (a.pop) { for (var b = 0, d = a.length; b < d; b++) if (!c(a[b])) return !1; return !0; } return c(a); } function Sj(a, c) { return a < c ? -1 : a > c ? 1 : 0; } function la(a, c) { return a > c ? a - c : c - a; } function Sn(a) { return a * a * Math.PI; } function Xf(a) { return Vb.max.apply( Vb, H( B(a, function (a) { return Yf(a); }) ) ); } function Tn(a, c) { var b = a, d = [], e = function () { b = (9301 * b + 49297) % 233280; return b / 233280; }; -1 === a && (e = function () { return Math.random(); }); for (a = 0; a < c; a++) d[a] = e(); return d; } function Qj(a, c, b) { void 0 === b && (b = Tj); return la(a, c) < b; } function Se(a) { var c = a.charCodeAt(0); return 64 < c && 91 > c ? String.fromCharCode(c + 32).concat(a.substr(1)) : a; } function de(a) { void 0 === a && (a = 7); for (var c = ""; a--; ) c += "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[Math.floor(51 * Math.random())]; return c; } function Un(a) { return !Ha(parseFloat(a)) && isFinite(parseFloat(a)); } function Vn(a) { return (180 * a) / Math.PI; } function yb(a) { return (a * Math.PI) / 180; } function rh(a) { return 360 === a ? a : (a + 36e3) % 360; } function ee(a, c, b, d) { return { x: a + d * Math.cos(b), y: c + d * Math.sin(b) }; } function Uc(a, c, b, d) { return ee(a, c, yb(b), d); } function ra(a, c, b) { return Jb(a, yb(c), b); } function Jb(a, c, b) { return [a[0] + b * Math.cos(c), a[1] + b * Math.sin(c)]; } function Uj(a, c) { return [(a[0] + c[0]) / 2, (a[1] + c[1]) / 2]; } function Vj(a, c, b) { void 0 === b && (b = 0.5); return [a[0] + (c[0] - a[0]) * b, a[1] + (c[1] - a[1]) * b]; } function Ia(a, c) { a = Wb(a); c = Wb(c); return ((180 * Math.atan2(c.y - a.y, c.x - a.x)) / Math.PI + 360) % 360; } function Xb(a, c) { a = Wb(a); c = Wb(c); var b = c.x - a.x; a = c.y - a.y; return Math.sqrt(b * b + a * a); } function mc(a, c) { var b = c[0] - a[0]; a = c[1] - a[1]; return Math.sqrt(b * b + a * a); } function Te(a, c, b, d) { a = Wb(a); c = Wb(c); b = Wb(b); d = Wb(d); var e = a.x; a = a.y; var f = b.x, g = b.y; b = { x: null, y: null, onLine1: !1, onLine2: !1 }; var h = d.x - f; d = d.y - g; var k = c.x - e, l = c.y - a; c = d * k - h * l; if (0 == c) return !Bc(d) || !Bc(h) || (Bc(k) && Bc(l)) || !Bc((f - e) * l - (g - a) * k) ? !Bc(l) || !Bc(k) || (Bc(h) && Bc(d)) || !Bc((e - f) * d - (a - g) * h) ? b : { x: e, y: a, onLine1: !0, onLine2: !0 } : { x: f, y: g, onLine1: !0, onLine2: !0 }; g = a - g; f = e - f; var m = k * g - l * f; g = (h * g - d * f) / c; f = m / c; b.x = e + g * k; b.y = a + g * l; 0 < g && 1 > g && (b.onLine1 = !0); 0 < f && 1 > f && (b.onLine2 = !0); return b; } function Wn(a, c, b) { var d = Ia(a, c); b = Wb(b); d = ee(b.x, b.y, yb(d + 90), 5); d = Te(a, c, b, d); return Xb(b, d); } function Zf(a, c) { var b = a[0]; a = a[1]; for (var d = !1, e = 0, f = c.length - 1; e < c.length; f = e++) { var g = c[e][0], h = c[e][1], k = c[f][0]; f = c[f][1]; h > a != f > a && b < ((k - g) * (a - h)) / (f - h) + g && (d = !d); } return d; } function nv(a, c) { var b; try { for (var d = ya(a), e = d.next(); !e.done; e = d.next()) if (Zf(e.value, c)) return !0; } catch (g) { var f = { error: g }; } finally { try { e && !e.done && (b = d.return) && b.call(d); } finally { if (f) throw f.error; } } } function Xn(a, c, b) { a = Wb(a); c = Wb(c); b = Wb(b); a = (c.x - a.x) * (b.y - a.y) - (c.y - a.y) * (b.x - a.x); return -1e-11 > a ? -1 : 1e-11 < a ? 1 : 0; } function $f(a, c, b, d) { return function (e) { if (0 >= e) { var f = 0; 0 < a ? (f = c / a) : !c && 0 < b && (f = d / b); return f * e; } if (1 <= e) return (f = 0), 1 > b ? (f = (d - 1) / (b - 1)) : 1 === b && 1 > a && (f = (c - 1) / (a - 1)), 1 + f * (e - 1); f = 0; for (var g = 1, h = 0; f < g; ) { h = (f + g) / 2; var k = 3 * a * (1 - h) * (1 - h) * h + 3 * b * (1 - h) * h * h + h * h * h; if (1e-5 > Math.abs(e - k)) break; k < e ? (f = h) : (g = h); } return 3 * c * (1 - h) * (1 - h) * h + 3 * d * (1 - h) * h * h + h * h * h; }; } function Wj(a, c) { void 0 === c && (c = 1); var b = G(a[0], 2), d = b[0]; b = b[1]; var e = G(a[1], 2), f = e[0]; e = e[1]; var g = G(a[2], 2), h = g[0]; g = g[1]; var k = G(a[3], 2); a = k[0]; k = k[1]; c /= 2; for ( var l = [-0.1252, 0.1252, -0.3678, 0.3678, -0.5873, 0.5873, -0.7699, 0.7699, -0.9041, 0.9041, -0.9816, 0.9816], m = [0.2491, 0.2491, 0.2335, 0.2335, 0.2032, 0.2032, 0.1601, 0.1601, 0.1069, 0.1069, 0.0472, 0.0472], n = 0, p = 0; 12 > p; p++ ) { var q = c * l[p] + c, r = q * (q * (-3 * d + 9 * f - 9 * h + 3 * a) + 6 * d - 12 * f + 6 * h) - 3 * d + 3 * f; q = q * (q * (-3 * b + 9 * e - 9 * g + 3 * k) + 6 * b - 12 * e + 6 * g) - 3 * b + 3 * e; n += m[p] * Math.sqrt(r * r + q * q); } return c * n; } function Xj(a, c) { var b = G(a[0], 2), d = b[0]; b = b[1]; var e = G(a[1], 2), f = e[0], g = e[1]; e = G(a[2], 2); var h = e[0], k = e[1]; e = G(a[3], 2); a = e[0]; e = e[1]; var l = (f - d) * c + d, m = (g - b) * c + b; f = (h - f) * c + f; g = (k - g) * c + g; h = (a - h) * c + h; k = (e - k) * c + k; var n = (f - l) * c + l, p = (g - m) * c + m; f = (h - f) * c + f; g = (k - g) * c + g; return [ [d, b], [l, m], [n, p], [(f - n) * c + n, (g - p) * c + p], [f, g], [h, k], [a, e], ]; } function ov(a, c, b, d, e, f) { var g = []; a: { var h = a[0]; a = a[1]; var k = c[0]; c = c[1]; var l = b[0]; b = b[1]; var m = d[0]; d = d[1]; var n = e[0]; e = e[1]; var p = f[0]; f = f[1]; var q = Math.min(n, p), r = Math.min(e, f), u = Math.max(n, p), x = Math.max(e, f), v, y = e - f, D = p - n; y = [y * (-1 * h + 3 * k + -3 * l + m) + D * (-1 * a + 3 * c + -3 * b + d), y * (3 * h + -6 * k + 3 * l) + D * (3 * a + -6 * c + 3 * b), y * (-3 * h + 3 * k) + D * (-3 * a + 3 * c), y * h + D * a + (n * f - p * e)]; D = v = y.length - 1; var E = []; for (var F = 0; F <= v; F++) if (1e-8 >= Math.abs(y[F])) v--; else break; switch (v) { case 1: v = y[D - 1]; F = E; void 0 === F && (F = []); 0 !== v && F.push(-y[D] / v); break; case 2: var t = y[D - 2]; v = E; void 0 === v && (v = []); F = y[D - 1] / t; y = F * F - (y[D] / t) * 4; 0 < y ? ((y = Math.sqrt(y)), v.push(0.5 * (-F + y)), v.push(0.5 * (-F - y))) : 0 === y && v.push(0.5 * -F); break; case 3: var w = y[D - 3]; v = E; void 0 === v && (v = []); t = y[D - 2] / w; var wa = y[D - 1] / w; F = (3 * wa - t * t) / 3; D = (2 * t * t * t - 9 * wa * t + (y[D] / w) * 27) / 27; y = t / 3; t = (D * D) / 4 + (F * F * F) / 27; D /= 2; 1e-6 >= Math.abs(t) && (t = 0); 0 < t ? ((w = Math.sqrt(t)), (F = -D + w), (t = 0 <= F ? Math.pow(F, 1 / 3) : -Math.pow(-F, 1 / 3)), (F = -D - w), (t = 0 <= F ? t + Math.pow(F, 1 / 3) : t - Math.pow(-F, 1 / 3)), v.push(t - y)) : 0 > t ? ((F = Math.sqrt(-F / 3)), (t = Math.atan2(Math.sqrt(-t), -D) / 3), (D = Math.cos(t)), (t = Math.sin(t)), (w = Math.sqrt(3)), v.push(2 * F * D - y), v.push(-F * (D + w * t) - y), v.push(-F * (D - w * t) - y)) : ((F = 0 <= D ? -Math.pow(D, 1 / 3) : Math.pow(-D, 1 / 3)), v.push(2 * F - y), v.push(-F - y)); } for (v = 0; v < E.length; v++) if (((y = E[v]), 0 <= y && 1 >= y)) if ( ((w = h + (k - h) * y), (t = a + (c - a) * y), (F = k + (l - k) * y), (D = c + (b - c) * y), (w += (F - w) * y), (t += (D - t) * y), (F = w + (F + (l + (m - l) * y - F) * y - w) * y), (y = t + (D + (b + (d - b) * y - D) * y - t) * y), 1e-7 > Math.abs(n - p)) ) { if (r <= y && y <= x) if (g) g.push([F, y]); else break a; } else if (1e-7 > Math.abs(e - f)) { if (q <= F && F <= u) if (g) g.push([F, y]); else break a; } else if (F >= q && y >= r && F <= u && y <= x) if (g) g.push([F, y]); else break a; } return g; } function pv() { for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c]; var b = G(a[0], 2); c = b[0]; b = b[1]; var d = G(a[1], 2), e = d[0]; d = d[1]; var f = G(a[2], 2), g = f[0]; f = f[1]; a = G(a[3], 2); var h = a[0], k = a[1], l, m, n = (l = Number.POSITIVE_INFINITY), p = (m = Number.NEGATIVE_INFINITY); a = e - c; var q = d - b, r = g - e, u = f - d; h -= g; k -= f; for (var x = 0; 1.001 > x; x += 0.025) { var v = c + x * a, y = b + x * q, D = e + x * r, E = d + x * u, F = g + x * h, t = f + x * k, w = D - v, wa = E - y; F -= D; t -= E; v += x * w; y += x * wa; D += x * F; E += x * t; D -= v; E -= y; D = v + x * D; E = y + x * E; n = Math.min(n, D); l = Math.min(l, E); p = Math.max(p, D); m = Math.max(m, E); } return [n, l, p - n, m - l]; } function Wb(a) { a.pop && (a = { x: a[0], y: a[1] }); return a; } function qv(a, c, b, d, e, f) { void 0 === f && (f = 0); f = ((0 > e ? b : d)[1] - f) / Math.abs(Math.sin(yb(e))); f = Math.min(f, (0 <= e ? b : d)[0]); return c - a < f; } function Yn(a) { var c = rh(a); return 90 < c && 270 > c ? rh(c + 180) : a; } function Bc(a) { return 1e-7 > Math.abs(a); } function ag(a, c) { return S(a, function (b) { return Kb(b, c); }); } function Ue(a, c) { c = G(Zn([Ve(a), Ve(c)]), 2); a = c[0]; c = c[1]; if ($n(a, c)) return c; if ($n(c, a)) return a; if (c[0] < a[1]) return [c[0], a[1]]; } function bg(a, c) { var b = []; We(a, function (a) { return Xe(b, Ue(a, c)); }); return b; } function Yj(a, c) { var b = 0, d = c[0] - a[0], e = a[1] - c[1], f = (a[1] + a[0]) / 2, g = (c[1] + c[0]) / 2; c[1] - c[0] > a[1] - a[0] ? (b = f - g) : 0 > d ? (b = -d) : 0 > e && (b = e); c[0] += b; c[1] += b; return c; } function ao(a, c) { for (var b = 0; b < a.length; b++) if (Kb(Ve(a[b]), c)) return b; return -1; } function rv(a, c) { We(c, function (b) { var c; try { for (var e = ya(a), f = e.next(); !f.done; f = e.next()) { var g = f.value, h = g, k = b; if (fe(h, k[0]) || fe(h, k[1])) { h = g; k = b; if (fe(h, k[0]) && fe(h, k[1])) var l = g, m = [ [g[0], b[0]], [b[1], g[1]], ]; else var n = g; break; } } } catch (q) { var p = { error: q }; } finally { try { f && !f.done && (c = e.return) && c.call(e); } finally { if (p) throw p.error; } } l && ((p = a.indexOf(l)), a.splice.apply(a, H([p, 1], m))); n && ((m = a.indexOf(n)), (b = fe(n, b[0]) ? [n[0], b[0]] : fe(n, b[1]) ? [b[1], n[1]] : void 0), (a[m] = b)); return a; }); return a; } function Zj(a, c, b) { var d; b /= 2; var e = []; try { for (var f = ya(a), g = f.next(); !g.done; g = f.next()) { var h = g.value; e.push([ua(h - b, c[0], c[1]), ua(h + b, c[0], c[1])]); } } catch (l) { var k = { error: l }; } finally { try { g && !g.done && (d = f.return) && d.call(f); } finally { if (k) throw k.error; } } return e; } function cg(a, c) { var b = [], d; a = bo(a) ? a : Zn(a.slice(0)); if (bo(a)) return ( (c = c || sv(a)), We(a, function (a, f, g) { !f && a[0] > c[0] ? b.push([c[0], Math.min(a[0], c[1])]) : f && a[0] > c[0] && d[1] !== a[0] && b.push([Math.max(d[1], c[0]), Math.min(a[0], c[1])]); g && a[1] < c[1] && b.push([Math.max(c[0], a[1]), c[1]]); d = a; }), b ); } function sv(a) { a = co(a); return [Math.min.apply(Math, H(a)), Math.max.apply(Math, H(a))]; } function tv(a) { var c; We(a, function (b) { return (c = c && la(c[0], c[1]) > la(b[0], b[1]) ? c : b); }); return c; } function co(a) { var c = []; We(a, function (b) { return c.push.apply(c, H(b)); }); return c; } function eo(a) { var c = 0; We(a, function (b) { return (c += b[1] - b[0]); }); return c; } function Zn(a, c) { void 0 === c && (c = !1); return a.sort(function (b, a) { return c ? a[0] - b[0] : b[0] - a[0]; }); } function We(a, c) { for (var b = 0, d = a.length; b < d && !1 !== c(a[b], b, b === a.length - 1, b ? a[b - 1] : void 0); b++); } function bo(a) { for (var c = 0, b = a.length; c < b; c++) if (c && a[c][0] < a[c - 1][0]) return !1; return !0; } function fo(a, c, b) { b && ((a = go(a, b)), (c = go(c, b))); b = a; var d = c; b = b[2] * b[3] === d[2] * d[3] && b[2] === d[2] ? 0 : b < d ? -1 : b > d ? 1 : 0; return 0 === b && a[0] === c[0] && a[1] === c[1] ? 0 : 0 === b ? -1 : b; } function go(a, c) { return B(a, function (b) { return na(b, c); }); } function rb(a, c) { return [a[0] + c, a[1] + c, a[2] - 2 * c, a[3] - 2 * c]; } function Ye(a, c) { return mb(va(a), c); } function Ea(a) { var c = [], b; if (a && a.length) { for (var d = 0, e = a.length; d < e; d++) if ((b = a[d])) c.push([b[0], b[1]]), c.push([b[0] + b[2], b[1] + b[3]]); return Ua(c); } } function ho(a) { for (var c = a[0], b = 1, d = a.length; b < d; b++) if (((c = sh(c, a[b])), 0 >= c[2] || 0 >= c[3])) { c = null; break; } return c; } function Ua(a) { if (!a.length) return [0, 0, 0, 0]; var c = a[0], b = c[0], d = c[0], e = c[1]; c = c[1]; for (var f, g, h = 0, k = a.length; h < k; h++) { var l = a[h]; (f = l[0]) > d && (d = f); f < b && (b = f); (g = l[1]) > c && (c = g); g < e && (e = g); } return [b, e, d - b, c - e]; } function uv(a, c) { return Ea([a, Ua(c)]); } function th(a, c) { return mb(va(a), [Math.max(a[2], c[0]), Math.max(a[3], c[1])]); } function vv(a, c) { var b = G(a, 4); a = b[2]; b = b[3]; c = G(c, 4); c = Math.min(c[3] / b, c[2] / a); return [a * c, b * c]; } function va(a) { return [Vc(a), Wc(a)]; } function sh(a, c) { a = a.slice(0); c = Yb(c); a = ak(a, c[0]); a = bk(a, c[1]); a = ck(a, c[2]); return dk(a, c[3]); } function ak(a, c) { var b = Va(a); a[0] = a[0] < c ? c : a[0]; a[2] = b < c ? c - a[0] : b - a[0]; return a; } function bk(a, c) { var b = Wa(a); a[1] = a[1] < c ? c : a[1]; a[3] = b < c ? c - a[1] : b - a[1]; return a; } function ck(a, c) { var b = Va(a); a[0] = a[0] > c ? c : a[0]; a[2] = b > c ? c - a[0] : b - a[0]; return a; } function dk(a, c) { var b = Wa(a); a[1] = a[1] > c ? c : a[1]; a[3] = b > c ? c - a[1] : b - a[1]; return a; } function io(a, c) { return Ye(a, [a[2] + c[0] + c[2], a[3] + c[1] + c[3]]); } function jo(a, c) { return io( a, c.map(function (b) { return -b; }) ); } function ha(a) { return [a.x, a.y, a.width, a.height]; } function mb(a, c) { return [a[0] - c[0] / 2, a[1] - c[1] / 2, c[0], c[1]]; } function Cc(a) { var c; a.length && (c = a[0].pop ? B(a, function (b) { return ko(b); }).join(" ") : ko(a)); return c; } function wv(a, c) { var b = c[0][1] == c[1][1]; if (c[0][0] > c[1][0] || c[0][1] > c[1][1]) c = [c[1], c[0]]; var d = [], e, f; b ? (c[0][0] < a[0] && (e = [c[0], [a[0], c[0][1]]]), c[1][0] > a[0] + a[2] && (f = [[a[0] + a[2], c[1][1]], c[1]])) : (c[0][1] < a[1] && (e = [c[0], [c[0][0], a[1]]]), c[1][1] > a[1] + a[3] && (f = [[c[1][0], a[1] + a[3]], c[1]])); e && d.push(e); f && d.push(f); return d; } function lo(a, c, b, d, e, f) { c = ek(a, c, [ge.x(b), ge.x(d), ge.y(e), ge.y(f)]); return Xc(a, c); } function he(a, c, b, d) { b = nc.x(b); d = nc.y(d); return { box: Xc(a, ek(a, c, [b[0], b[1], d[0], d[1]])), contentAlignment: [b[2], d[2]] }; } function ek(a, c, b) { var d = b[0]; d = (0, b[1])(c) - d(a); var e = b[2]; a = (0, b[3])(c) - e(a); return [d, a]; } function fk(a, c) { return [a[0] - c[0], a[1] - c[1]]; } function mo(a, c) { a = uh(a.slice(0), c); for (var b = [], d = 0, e = a.length; d < e; d++) { var f = a[d]; if (d) { var g = vh(f, b, c); f[0] = g[0]; f[1] = g[1]; } b.push(f); } return b; } function vh(a, c, b) { if (!Yc(c, a)) return a; var d = [], e = !1, f = "v" === { u: "v", d: "v", l: "h", r: "h" }[b], g = f ? xd : yd; f = f ? Va : Wa; for (var h = g(a), k = f(a), l = 0, m = c.length; l < m; l++) { var n = c[l]; g(n) > k || f(n) < h || d.push(n); } d = uh(d, b); c = 0; for (a = a.slice(0); !e; ) { g = d[c++]; if (zd(a, g) && ((e = a), (g = [g]), (f = b), (h = 1 < g.length ? Ea(g) : g[0]), Yc(g, e))) switch (f) { case "u": e[1] = h[1] - e[3]; break; case "l": e[0] = h[0] - e[2]; break; case "d": e[1] = Wa(h); break; case "r": e[0] = Va(h); } e = !Yc(d.slice(c), a) || c >= d.length; } return a; } function gk(a, c) { var b = va(a), d = Yb(a); w(c, function (a) { if (zd(Ze(d), a)) { var c = va(a); c = fk(b, c); 1 < Math.abs(c[1]) ? (0 < c[1] ? (d[1] = Wa(a)) : (d[3] = a[1])) : 1 < Math.abs(c[0]) && (0 > c[0] ? (d[2] = a[0]) : (d[0] = Va(a))); } }); return Ze(d); } function uh(a, c) { c = { u: { getter: Wa, dir: "desc" }, d: { getter: yd }, l: { getter: Va, dir: "desc" }, r: { getter: xd } }[c]; var b = c.getter, d = function (a, c) { a = b(a); c = b(c); return a < c ? -1 : a > c ? 1 : 0; }; a.sort( "desc" === c.dir ? function (b, a) { return d(a, b); } : d ); return a; } function Zc(a, c) { a = no(a, c); return oo(a, c); } function no(a, c) { c = Yj([c[0], Va(c)], [a[0], Va(a)]); return [c[0], a[1], c[1] - c[0], a[3]]; } function oo(a, c) { c = Yj([c[1], Wa(c)], [a[1], Wa(a)]); return [a[0], c[0], a[2], c[1] - c[0]]; } function $c(a, c) { var b = a[0], d = c[0]; if ((b = !(d < b || d + c[2] > b + a[2]))) (b = a[1]), (d = c[1]), (b = !(d < b || d + c[3] > b + a[3])); return b; } function Ad(a, c) { return c[0] > a[0] && c[0] < a[0] + a[2] && c[1] > a[1] && c[1] < a[1] + a[3]; } function po(a, c, b) { return c[0] - a[0] > b && a[0] + a[2] - c[0] > b && c[1] - a[1] > b && a[1] + a[3] - c[1] > b; } function zd(a, c) { var b = a[0], d = c[0]; return b + 0.01 < d + c[2] && b + a[2] > d + 0.01 && a[1] + 0.01 < c[1] + c[3] && a[1] + a[3] > c[1] + 0.01; } function xv(a, c) { if (!zd(a, c)) return 0; var b = Math.max(a[0], c[0]) - Math.min(Va(a), Va(c)), d = Math.max(a[1], c[1]) - Math.min(Wa(a), Wa(c)); b *= d; return b / (a[2] * a[3] + c[2] * c[3] - b); } function Yc(a, c, b) { for (var d = 0, e = a.length; d < e; d++) if ((!b || a[d].id !== b) && zd(a[d], c)) return !0; } function qo(a) { for (var c = 0, b = a.length; c < b; c++) for (var d = c; d < b; d++) if (d !== c && zd(a[c], a[d])) return !0; } function ro(a, c) { var b = [], d = function (a) { a = Te(a[0], a[1], c[0], c[1]); a.onLine1 && a.onLine2 && b.push([a.x, a.y]); }, e = ie(a, "bl,br"), f = ie(a, "tl,tr"), g = ie(a, "tr,br"); a = ie(a, "tl,bl"); d(f); d(g); d(e); d(a); return b.length ? b : void 0; } function hk(a, c, b) { return Ua(ik(a, c, b)); } function ik(a, c, b) { var d = c[0], e = G(a, 4); a = e[0]; var f = e[1], g = a + e[2]; e = f + e[3]; var h = [a + c[1], f + c[2]]; c = [a, f]; f = [g, f]; g = [g, e]; a = [a, e]; b = B(b ? [c, a] : [c, f, g, a], function (b) { return { x: b[0], y: b[1], angle: Ia(h, b), len: Xb(h, b) }; }); return (b = B(b, function (b) { b = Uc(h[0], h[1], b.angle + d, b.len); return [b.x, b.y]; })); } function yv(a, c) { w(a, function (b) { sa(b, function (b) { return b[3]; }); b.reverse(); }); return zv(a, c); } function zv(a, c) { var b = c.limitBox, d, e, f = Math.max.apply( Math, H( B(a, function (b) { return P(b)[2]; }) ) ); if (t(c.masterSet)) var g = B(a[c.masterSet], function (b) { return [2]; }); else (g = []), w(a, function (b) { g.push.apply( g, H( B(b, function (b) { return b[2]; }) ) ); }); g = ad( ea(g, function (b) { return b >= f; }).sort(function (b, a) { return b > a ? 1 : -1; }) ); var h = function (b) { var c = [], d = B(a, function (a) { a = a.slice(0); a = S(a, function (a) { return a[2] <= b; }); c.push(a[2]); return a; }), e = 0; w(d, function (b) { return (e += b[3]); }); var f = [0, 0, Math.max.apply(Math, H(c)), e]; f.ids = B(d, function (b) { return b.id; }); return f; }; w(g, function (a) { a = h(a); if (a[3] < b[3]) return (d = a), !1; e = a; }); return d || e; } function Av(a) { for (var c = [], b = 1, d = Math.round(Math.sqrt(a)); b <= d; b++) c.push([b, Math.ceil(a / b)]); a = B(c, function (b) { return [b[1], b[0]]; }).reverse(); c.push.apply(c, H(a)); return c; } function Bv(a) { return B(Av(a), function (a) { return a[0]; }); } function so() { if (jk) return jk; for (var a = ba.getElementsByTagName("script"), c = 0; c < a.length; c++) { var b = a[c], d = b.getAttribute("src"); if (d && 0 !== b.src.indexOf("file://") && ((b = d.split("?")[0]), (d = b.split("/").slice(-1)[0].toLowerCase()), "jscharting.js" === d || (0 === d.indexOf("jscharting") && d.indexOf(".js") === d.length - 3))) return (jk = b.split("/").slice(0, -1).join("/")); } } function je() { return kk ? kk : (kk = so() || "https://code.jscharting.com/3.0.2"); } function to() { var a = T.JSC; return !so() && (!a || !a.chart); } function lk(a, c, b, d) { wh(a, c, b, d, Cv); } function Dv(a, c, b, d) { wh(a, c, b, d, function (b) { return b; }); } function wh(a, c, b, d, e) { Ev(a, { success: function (d) { var f = d.responseText; if (f) try { f = e(f); } catch (h) { b && b({ path: a, data: f, status: d.status, state: "parsererror", error: h }); } c && c({ path: a, status: d.status, data: f }); }, error: function (c) { b && b({ path: a, status: c.status }); }, async: !d, }); } function Fv(a) { return "object" === typeof HTMLElement ? a instanceof HTMLElement : a && "object" === typeof a && null !== a && 1 === a.nodeType && "string" === typeof a.nodeName; } function Cv(a) { var c = ba.createElement("script"); c.type = "text/javascript"; c.text = a; ba.head.appendChild(c).parentNode.removeChild(c); } function Ev(a, c) { var b = new XMLHttpRequest(), d = c || {}; c = d.data; var e = d.success, f = d.error, g = I(c); d = !1 !== d.async; if (b) { if ("function" === g) (e = c), (c = null); else if ("object" === g) { g = []; for (var h in c) c.hasOwnProperty(h) && g.push(encodeURIComponent(h) + "=" + encodeURIComponent(c[h])); c = g.join("&"); } b.open(c ? "POST" : "GET", a, d); c && (b.setRequestHeader("X-Requested-With", "XMLHttpRequest"), b.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), b.setRequestHeader("Api-Key", "foobar")); b.onreadystatechange = function () { if (4 === b.readyState) { var a = b.status; a = (200 <= a && 300 > a) || 304 === a; e && a && e(b); if (f && !a) return f(b); } }; if (4 === b.readyState) return b; b.send(c); return b; } } function Gv(a, c) { function b() { new Date().getTime() - d >= c ? a.call() : (e.value = T.requestAnimationFrame(b)); } var d = new Date().getTime(), e = {}; e.value = T.requestAnimationFrame(b); return e; } function Hv(a) { a && a.value && T.cancelAnimationFrame(a.value); } function uo(a, c) { void 0 === c && (c = 1); var b = c, d = function () { 1 > b ? setTimeout(a, 0) : (b--, T.requestAnimationFrame(d)); }; d(); } function Iv(a, c) { return new T.Intl.DateTimeFormat(a, c); } function Jv(a, c) { return new T.Intl.NumberFormat(a, c); } function Kv(a, c) { var b = T.Intl.Collator; return b ? new b(a, c) : null; } function Lv(a, c, b) { var d = b._getNumberFormat(b.locale, b.options); if (d) { if (c || b.formatString) { var e = c || b.formatString; c = Ka.None; var f = Mv.exec(e)[0]; switch (f.toLowerCase()) { case "c": c = Ka.Currency; break; case "n": c = Ka.Number; break; case "p": c = Ka.Percent; break; case "f": c = Ka.Float; break; case "d": c = Ka.Decimal; break; case "e": c = Ka.Exponential; break; case "g": c = Ka.General; break; case "a": c = Ka.NumericSymbol; break; case "t": c = Ka.PowersOfTen; break; case "x": c = Ka.Hexadecimal; var g = f === f.toLowerCase() ? "lower" : "upper"; } e = Nv.exec(e); e = null === e ? null : parseInt(e[0]); g = { type: c, specifier: e, charCase: g }; if (g.type) return Ov(g, a, b); } return d.format(a); } return null !== a ? a.toLocaleString() : ""; } function Pv(a, c, b) { void 0 === c && (c = {}); if (!a) return ""; var d = O(c), e = d ? c : c.formatString || b.formatString, f = Qv[e]; if (f) { var g = f.options; if (!g && f.formatString) return vo(a, f.formatString, b); if (!g && f.handler) return f.handler(a); c = W(d ? {} : c, g || {}); c = b._getDateTimeFormat(b.locale, c); } else c = b._getDateTimeFormat(b.locale, b.options); return c ? (e && !f ? vo(a, e, b) : c.format(a)) : a.toLocaleDateString(); } function Ov(a, c, b) { var d = function (b, a) { return function (c) { return Math.min(Math.max(parseInt(c || 0), b), a); }; }, e = function (b) { return d(0, 20)(b); }, f = function (b) { return d(1, 21)(b); }, g = W({ minimumFractionDigits: 0, maximumFractionDigits: 2 }, b.options), h = !0, k = T.Intl.NumberFormat; if (!k) return c; switch (a.type) { case Ka.Number: case Ka.Float: g.style = "decimal"; null !== a.specifier && ((g.maximumFractionDigits = e(a.specifier)), (g.minimumFractionDigits = e(a.specifier))); break; case Ka.Currency: g.style = "currency"; g.currency = Rv(b.locale); a = lc(a.specifier) ? 2 : a.specifier; g.minimumFractionDigits = e(a); g.maximumFractionDigits = e(a); break; case Ka.Percent: g.style = "percent"; a.specifier && (g.minimumFractionDigits = e(a.specifier)); break; case Ka.Decimal: g.style = "decimal"; g.useGrouping = g.useGrouping || !1; null !== a.specifier && ((g.maximumFractionDigits = e(a.specifier)), (g.minimumFractionDigits = e(a.specifier))); break; case Ka.Exponential: c = c.toExponential(a.specifier); h = !1; break; case Ka.General: g.style = "decimal"; a.specifier && (g.maximumSignificantDigits = f(a.specifier)); break; case Ka.Hexadecimal: c = c.toString(16); a.specifier && (c = Zb(c, a.specifier)); "upper" === a.charCase && (c = c.toUpperCase()); h = !1; break; case Ka.NumericSymbol: c = Sv(c, a.specifier); h = !1; break; case Ka.PowersOfTen: if (c) { h = Math.floor(Pj(Math.log(Math.abs(c)) / Math.log(10), 6)); e = c / Math.pow(10, h); var l = a.specifier || 0; a = 1e-5 > Math.abs(Math.abs(e) - 1); f = e % 1 ? 2 : 0; if (Math.abs(c) >= Math.pow(10, l) || Math.abs(c) <= Math.pow(10, -l)) (c = "10" + h + ""), (c = (a ? (0 > e ? "-" : "") : e.toFixed(f) + "\u22c5") + c); } h = !1; } if (!h) return c.toString(); delete g.specifier; return new k(b.locale, g).format(c); } function vo(a, c, b) { var d = function (a, c) { b.dateTimeFormatters[c] || (b.dateTimeFormatters[c] = b._getDateTimeFormat(b.locale, a)); }; return c.replace(Tv, function (c) { if (!c) return ""; switch (c) { case "h": case "hh": case "t": case "tt": d({ hour12: !0, hour: "numeric" }, c); break; case "MMM": d({ month: "short" }, c); break; case "MMMM": d({ month: "long" }, c); break; case "g": d({ era: "short" }, c); break; case "gg": d({ era: "long" }, c); break; case "ddd": d({ weekday: "short" }, c); break; case "dddd": d({ weekday: "long" }, c); } return $b[c](a, b.dateTimeFormatters[c]); }); } function Uv(a, c, b) { var d = c.reverse(), e = function () { if (0 === d.length) b(); else { var c = d.pop(); a(function () { c(); e(); }); } }; e(); } function Xa(a, c, b, d) { function e(a) { var d = I(a), e = c(); if ("undefined" === d) return f(); if ("array" === d) b && b(a); else { if ("number" === d) return 0 > a && e.length ? e[e.length + a] : e[a]; if ("string" === d) return S(e, function (b) { return (b.currentOptions && (b.currentOptions.name === a || b.currentOptions.id === a || b.currentOptions.key === a)) || b.id === a || b.key === a || b.prefix === a; }); if ("object" === d || "function" === d) return f().filter(a); } } var f = function () { return new a(c(), d); }; e.add = d ? function () { for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a]; d.push.apply(d, H(b)); return f(); } : f; e.splice = d ? function () { for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a]; d.splice.apply(d, H(b)); return f(); } : f; e.remove = d ? function () { for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a]; d.remove.apply(d, H(b)); return f(); } : f; return e; } function wo(a, c) { return function () { var b = []; a.each(function (a) { b.push.apply(b, H(c(a))); }); return b; }; } function mk(a, c) { return function (b) { c(a, b); }; } function Vv(a) { if (!$e) { var c = dg ? dg + "icons/" : void 0; c || ((c = je()) ? ("/" !== c[c.length - 1] && (c += "/"), (c += "icons/")) : (c = null)); $e = c || "/dist/icons/"; } "/" !== $e[$e.length - 1] && ($e += "/"); return $e + a + ".js"; } function xo(a, c, b) { void 0 === c && (c = null); void 0 === b && (b = null); if (a && "none" !== a) { var d = a.replace("{os}", Wv), e = af[d]; if (t(e)) return e; af[d] = null; void 0 === e && lk( Vv(a), function (b) { if (c) { var a = !dg && to(); b.displayCdnWarning = a; c(b); } }, function (a) { af[d] = null; b && b(a); }, !0 ); return af[d]; } } function nk(a, c) { void 0 === c && (c = !1); if (a) for (var b = pa(a), d = 0; d < b.length; d++) { var e = b[d]; if (!af[e] || c) af[e] = a[e]; } } function eg(a, c) { return L(fa(a), c); } function Xv(a, c, b, d) { var e = d ? d.noKerning : !1, f = d ? d.delimiter : " "; d = new RegExp("([^" + f + "]+)"); var g = c.fontSize || b.fontSize, h = Yv(c, b); O(g) && (g = parseInt(g)); var k = g * h.height; g = { descent: h.descent * k, leading: (h.height - h.descent) * k, height: k, fontSize: g }; h = fg(a, c, b, e); k = String.fromCharCode(8230); f = { width: h, metrics: g, text: a, style: c, delimiter: { text: f, width: fg(f, c, b, e) }, ellipsis: { text: k, width: fg(k, c, b, e) } }; a = a.split(d); if ((d = a.length)) for (f.parts = [], g = 0; g < d; g++) (h = a[g]), void 0 !== h && f.parts.push({ text: h, width: fg(h, c, b, e) }); return f; } function yo(a, c) { var b = { font: a.fontFamily }, d = [].concat(xh).concat(ok); d.push(". ."); d = pk(d, a, c); for (var e = {}, f = {}, g = 0, h = xh.length; g < h; g++) e[xh[g]] = d[xh[g]]; e[" "] = d[". ."] - 2 * d["."]; var k = !1; g = 0; for (h = ok.length; g < h; g++) { var l = ok[g], m = d[l[0]] + d[l[1]]; m -= d[l]; 0.001 < m && (k = !0); } if (k) for (a = pk(qk, a, c), g = 0, h = qk.length; g < h; g++) (l = qk[g]), (m = d[l[0]] + d[l[1]]), (m -= a[l]), 0.001 < m && (f[l] = m); b.stringWidths = e; b.kerning = f; return b; } function yh(a) { return a.getComputedTextLength ? a.getComputedTextLength() : 0; } function pk(a, c, b) { var d = {}, e = ba.createElementNS("http://www.w3.org/2000/svg", "svg"); b.fontFamily && e.setAttribute("font-family", b.fontFamily); b.fontWeight && e.setAttribute("font-weight", b.fontWeight); b.textRendering && e.setAttribute("text-rendering", b.textRendering); b = ba.createDocumentFragment(); var f = ba.createElementNS("http://www.w3.org/2000/svg", "g"); f.setAttribute("font-size", "100px"); c.fontFamily && f.setAttribute("font-family", c.fontFamily); c.fontWeight && f.setAttribute("font-weight", c.fontWeight); b.appendChild(f); c = 0; for (var g = a.length; c < g; c++) f.appendChild(rk(a[c])); e.appendChild(b); ba.body.appendChild(e); b = e.childNodes[0].childNodes; c = 0; for (g = b.length; c < g; c++) d[a[c]] = yh(b[c]); e.parentNode.removeChild(e); return d; } function rk(a) { var c = ba.createElementNS("http://www.w3.org/2000/svg", "text"); c.textContent = a; return c; } function sk(a, c) { if (!tk) { uk || (uk = Zv()); var b = uk, d = "fontSize" === b.roundTarget ? function (a) { return Math.round(a / b.roundStep) * b.roundStep; } : function (b) { return b; }; tk = function (a, c) { c = d(c); a *= c / 100; return "width" === b.roundTarget && (!b.roundThreshold || c < b.roundThreshold) ? Math.round(a / b.roundStep) * b.roundStep : a; }; } return tk(a, c); } function Zv() { var a = 1, c = 0, b = ba.createElementNS("http://www.w3.org/2000/svg", "svg"), d = ba.createDocumentFragment(), e = function (b) { var a = rk("m"); a.setAttribute("font-size", b + "px"); d.appendChild(a); }; b.setAttribute("text-rendering", "geometricPrecision"); e(100); for (var f = [100], g = 10; 11 >= g; ) e(g), f.push(g), (g += 0.25); for (g = 13; 20 > g; ) e(g), f.push(g), (g += 1); b.appendChild(d); ba.body.appendChild(b); e = !0; var h = !1; h = 0; g = b.childNodes; for (var k = [], l = [], m = yh(g[0]), n = 1; 6 > n; n++) { var p = yh(g[n]), q = (f[n] * m) / 100, r = k.length ? +!(0.01 >= Math.abs(k[k.length - 1] - p)) : 0; 0.1 >= Math.abs(q - p) || (e = !1); 0.01 >= Math.abs(q - p) && h++; k.push(p); l.push(r); } h = 2 <= h; if (!e) if (h) { var u = "fontSize"; f = l.join(""); "01010" === f ? (a = 0.5) : "00100" === f && (a = 1); } else for (c = f[6], u = "width", a = 1, n = 6; 13 > n; n++) if (((p = yh(g[n])), (q = (f[n] * m) / 100), 0.1 >= Math.abs(q - p))) { c = f[n]; break; } b.parentNode.removeChild(b); return { roundTarget: u, roundStep: a, roundThreshold: c }; } function ke(a) { a = { chartType: { type: "enum", members: { vertical: { isDefault: !0, chain: "enum_seriesType" }, horizontal: { chain: "enum_seriesType" }, pie: { chain: "enum_pieType", enumAttributes: { seriesLayout: "visualShape", behavior: "colorByPoint,labelConnector,noNameGrouping" } }, gauge: { chain: "enum_gaugeType", enumAttributes: { seriesLayout: "visualShape", behavior: "colorByPoint,noNameGrouping,snapToZero" } }, radar: { chain: "enum_radarType", enumAttributes: { seriesLayout: "visualShape" } }, funnel: { chain: "enum_funnelShapeType", enumAttributes: { seriesLayout: "visualShape", funnelNozzleType: "nozzle", behavior: "colorByPoint,labelConnector,noNameGrouping" } }, pyramid: { chain: "enum_funnelOrientationType", enumAttributes: { funnelShapeType: "square", seriesLayout: "visualShape", behavior: "colorByPoint,labelConnector,noNameGrouping" } }, cone: { chain: "enum_funnelOrientationType", enumAttributes: { funnelShapeType: "round", seriesLayout: "visualShape", behavior: "colorByPoint,labelConnector,noNameGrouping" } }, heatmap: { chain: "enum_columnType", enumAttributes: { behavior: "colorByPoint" } }, calendar: { chain: "enum_calendarType", enumAttributes: {} }, treemap: { chain: "enum_treemapMode", enumAttributes: { behavior: "noNameGrouping,tree" } }, map: { chain: "enum_columnType", enumAttributes: { behavior: "noNameGrouping" } }, organization: { chain: "enum_organizationType", enumAttributes: { behavior: "annotation,tree,noNameGrouping,noLegend" } }, venn: { chain: "enum_vennType", enumAttributes: { seriesLayout: "visualShape", behavior: "colorByPoint,noLegend" } }, }, terminateAt: "enum_seriesType", }, treemapMode: { members: { squarify: { isDefault: !0, chain: "enum_treemapDirection" }, sliceanddice: { chain: "enum_treemapDirection" }, stripes: { chain: "enum_treemapDirection" } } }, treemapDirection: { members: { horizontal: { isDefault: !0, chain: "enum_columnType" }, vertical: { chain: "enum_columnType" } } }, radarType: { type: "enum", members: { auto: { isDefault: !0, chain: "enum_seriesType" }, polar: { chain: "enum_seriesType" }, spider: { chain: "enum_seriesType" } } }, gaugeType: { type: "enum", members: { circular: { isDefault: !0, chain: "enum_circularGaugeType" }, linear: { chain: "enum_linearGaugeType" } } }, linearGaugeType: { type: "enum", members: { vertical: { isDefault: !0, chain: "enum_seriesType" }, horizontal: { chain: "enum_seriesType" } } }, seriesType: { type: "enum", members: { column: { chain: "enum_columnType", enumAttributes: { behavior: "snapToZero,clusters,drawRect" } }, line: { isDefault: !0, chain: "enum_lineSeriesType", enumAttributes: { behavior: "drawMarker,drawLine" } }, area: { chain: "enum_areaShadingType", enumAttributes: { behavior: "drawMarker,drawLine,drawArea,snapToZero" } }, marker: { enumAttributes: { behavior: "drawMarker" } }, bubble: { chain: "enum_bubbleSizingType", enumAttributes: { behavior: "" } }, ohlc: { enumAttributes: { behavior: "clusters" } }, candlestick: { chain: "enum_columnType", enumAttributes: { behavior: "clusters,drawRect" } }, map: { chain: "enum_columnType", enumAttributes: { behavior: "varyPalette" } }, heatmap: { chain: "enum_columnType", enumAttributes: {} }, calendar: { chain: "enum_calendarType", enumAttributes: {} }, variwide: { chain: "enum_variwideType", enumAttributes: { behavior: "snapToZero,clusters,drawRect" } }, }, }, bubbleSizingType: { type: "enum", members: { area: { isDefault: !0 }, width: {} } }, areaShadingType: { type: "enum", members: { subtle: { isDefault: !0, chain: "enum_lineSeriesType" }, none: { chain: "enum_lineSeriesType" } } }, lineSeriesType: { type: "enum", members: { normal: { isDefault: !0 }, spline: {}, step: {} } }, circularGaugeType: { type: "enum", members: { clip: { isDefault: !0, chain: "enum_seriesType" }, circle: { chain: "enum_seriesType" }, arc: { chain: "enum_seriesType" } } }, columnType: { type: "enum", members: { subtle: { isDefault: !0 }, solid: {}, aqua: {}, rounded: {}, roundCaps: {}, cushion: {} } }, pieType: { type: "enum", members: { normal: { isDefault: !0 }, donut: {} } }, vennType: { type: "enum", members: { normal: { isDefault: !0 }, colorbypoint: {} } }, funnelOrientationType: { type: "enum", members: { normal: { isDefault: !0 }, inverted: {} } }, funnelShapeType: { type: "enum", members: { round: { isDefault: !0, chain: "enum_funnelOrientationType" }, square: { chain: "enum_funnelOrientationType" } } }, organizationType: { type: "enum", members: { down: { isDefault: !0 }, left: {}, up: {}, right: {} } }, calendarType: { type: "enum", members: { auto: { isDefault: !0, chain: "enum_columnType" }, decade: { chain: "enum_columnType" }, years: { chain: "enum_columnType" }, year: { chain: "enum_columnType" }, quarter: { chain: "enum_columnType" }, month: { chain: "enum_columnType" }, week30min: { chain: "enum_columnType" }, week: { chain: "enum_columnType" }, dayminutes: { chain: "enum_columnType" }, dayhours: { chain: "enum_columnType" }, day30min: { chain: "enum_columnType" }, day15min: { chain: "enum_columnType" }, day5min: { chain: "enum_columnType" }, day: { chain: "enum_columnType" }, hourseconds: { chain: "enum_columnType" }, hour30sec: { chain: "enum_columnType" }, hour10sec: { chain: "enum_columnType" }, hourminutes: { chain: "enum_columnType" }, hour: { chain: "enum_columnType" }, minute: { chain: "enum_columnType" }, }, }, variwideType: { type: "enum", members: { subtle: { isDefault: !0 }, solid: {}, aqua: {}, rounded: {}, roundCaps: {}, cushion: {} } }, nanoChartTypes: { type: "enum", members: "sparkline|arealine|bar|bullet|column|progress|pie|heatmap|scale|chart|barfull" }, markerTypes: { type: "enum", members: "none|diamond|circle|arrow-down|arrow-up|five-point-star|four-point-star|merger|split-reverse|seven-point-star|six-point-star|spinoff|split|square|triangle|triangle-down" }, emptyPointMode: { type: "enum", members: "default|ignore|treatAsZero" }, projection: { type: "enum", members: "none|mercator|lambertConformalConic|lambertAzimuthalEqualArea|stereographic|orthographic" }, scaleBreakType: { type: "enum", updated: "2.7", members: { zigzag: { isDefault: !0 }, gap: "", line: "", hidden: "" } }, scale: { type: "enum", updated: "2.6", members: { auto: { isDefault: !0 }, time: "", stacked: "", stackedFull: "", stackedLogarithmic: {}, logarithmic: {}, variwide: {} } }, rangeMode: { type: "enum", updated: "2.8", members: { auto: { isDefault: !0 }, curly: "", measure: "" } }, colors: { type: "enum", caseInsensitive: !0, members: { aliceblue: "#f0f8ff", antiquewhite: "#faebd7", aqua: "#00ffff", aquamarine: "#7fffd4", azure: "#f0ffff", beige: "#f5f5dc", bisque: "#ffe4c4", black: "#000000", blanchedalmond: "#ffebcd", blue: "#0000ff", blueviolet: "#8a2be2", brown: "#a52a2a", burlywood: "#deb887", cadetblue: "#5f9ea0", chartreuse: "#7fff00", chocolate: "#d2691e", coral: "#ff7f50", cornflowerblue: "#6495ed", cornsilk: "#fff8dc", crimson: "#dc143c", cyan: "#00ffff", darkblue: "#00008b", darkcyan: "#008b8b", darkgoldenrod: "#b8860b", darkgray: "#a9a9a9", darkgreen: "#006400", darkkhaki: "#bdb76b", darkmagenta: "#8b008b", darkolivegreen: "#556b2f", darkorange: "#ff8c00", darkorchid: "#9932cc", darkred: "#8b0000", darksalmon: "#e9967a", darkseagreen: "#8fbc8f", darkslateblue: "#483d8b", darkslategray: "#2f4f4f", darkturquoise: "#00ced1", darkviolet: "#9400d3", deeppink: "#ff1493", deepskyblue: "#00bfff", dimgray: "#696969", dodgerblue: "#1e90ff", firebrick: "#b22222", floralwhite: "#fffaf0", forestgreen: "#228b22", fuchsia: "#ff00ff", gainsboro: "#dcdcdc", ghostwhite: "#f8f8ff", gold: "#ffd700", goldenrod: "#daa520", gray: "#808080", green: "#008000", greenyellow: "#adff2f", honeydew: "#f0fff0", hotpink: "#ff69b4", "indianred ": "#cd5c5c", "indigo ": "#4b0082", ivory: "#fffff0", khaki: "#f0e68c", lavender: "#e6e6fa", lavenderblush: "#fff0f5", lawngreen: "#7cfc00", lemonchiffon: "#fffacd", lightblue: "#add8e6", lightcoral: "#f08080", lightcyan: "#e0ffff", lightgoldenrodyellow: "#fafad2", lightgray: "#d3d3d3", lightgreen: "#90ee90", lightpink: "#ffb6c1", lightsalmon: "#ffa07a", lightseagreen: "#20b2aa", lightskyblue: "#87cefa", lightslategray: "#778899", lightsteelblue: "#b0c4de", lightyellow: "#ffffe0", lime: "#00ff00", limegreen: "#32cd32", linen: "#faf0e6", magenta: "#ff00ff", maroon: "#800000", mediumaquamarine: "#66cdaa", mediumblue: "#0000cd", mediumorchid: "#ba55d3", mediumpurple: "#9370d8", mediumseagreen: "#3cb371", mediumslateblue: "#7b68ee", mediumspringgreen: "#00fa9a", mediumturquoise: "#48d1cc", mediumvioletred: "#c71585", midnightblue: "#191970", mintcream: "#f5fffa", mistyrose: "#ffe4e1", moccasin: "#ffe4b5", navajowhite: "#ffdead", navy: "#000080", oldlace: "#fdf5e6", olive: "#808000", olivedrab: "#6b8e23", orange: "#ffa500", orangered: "#ff4500", orchid: "#da70d6", palegoldenrod: "#eee8aa", palegreen: "#98fb98", paleturquoise: "#afeeee", palevioletred: "#d87093", papayawhip: "#ffefd5", peachpuff: "#ffdab9", peru: "#cd853f", pink: "#ffc0cb", plum: "#dda0dd", powderblue: "#b0e0e6", purple: "#800080", red: "#ff0000", rosybrown: "#bc8f8f", royalblue: "#4169e1", saddlebrown: "#8b4513", salmon: "#fa8072", sandybrown: "#f4a460", seagreen: "#2e8b57", seashell: "#fff5ee", sienna: "#a0522d", silver: "#c0c0c0", skyblue: "#87ceeb", slateblue: "#6a5acd", slategray: "#708090", snow: "#fffafa", springgreen: "#00ff7f", steelblue: "#4682b4", tan: "#d2b48c", teal: "#008080", thistle: "#d8bfd8", tomato: "#ff6347", turquoise: "#40e0d0", violet: "#ee82ee", wheat: "#f5deb3", white: "#ffffff", whitesmoke: "#f5f5f5", yellow: "#ffff00", yellowgreen: "#9acd32", }, }, palette: { type: "enum", members: "default|spreadsheet|oceanMidtones|mutedRainbow|pastelContrast|rainforest|random|autumn|bright|lavender|midTones|mixed|pastel|poppies|spring|warmEarth|waterMeadow|darkRainbow|midRange|vividDark|fiveColor1|fiveColor2|fiveColor3|fiveColor4|fiveColor5|fiveColor6|fiveColor7|fiveColor8|fiveColor9|fiveColor10|fiveColor11|fiveColor12|fiveColor13|fiveColor14|fiveColor15|fiveColor16|fiveColor17|fiveColor18|fiveColor19|fiveColor20|fiveColor21|fiveColor22|fiveColor23|fiveColor24|fiveColor25|fiveColor26|fiveColor27|fiveColor28|fiveColor29|fiveColor30|fiveColor31|fiveColor32|fiveColor33|fiveColor34|fiveColor35|fiveColor36|fiveColor37|fiveColor38|fiveColor39|fiveColor40|fiveColor41|fiveColor42|fiveColor43|fiveColor44|fiveColor45|fiveColor46|colorVision1|colorVision2|colorVision3|colorVision4", }, hatchStyle: { type: "enum", members: "none|horizontal|vertical|light-downward-diagonal|light-upward-diagonal|percent05|percent10|percent20|percent25|dashed-downward-diagonal|dashed-upward-diagonal|dashed-horizontal|dashed-vertical|forward-diagonal|backward-diagonal|large-horizontal|dark-downward-diagonal|dark-upward-diagonal|dark-horizontal|dark-vertical|wide-downward-diagonal|wide-upward-diagonal|narrow-horizontal|narrow-vertical|small-grid|large-grid|dotted-grid|cross-diagonal|outlined-diamond|dotted|dotted-diamond|solid-diamond|large-checker-board|small-checker-board|wave|zig-zag|diagonal-brick|horizontal-brick|weave", }, cultures: { type: "enum", members: "af|af-ZA|ar|ar-AE|ar-BH|ar-DZ|ar-EG|ar-IQ|ar-JO|ar-KW|ar-LB|ar-LY|ar-MA|ar-OM|ar-QA|ar-SA|ar-SY|ar-TN|ar-YE|az|az-Cyrl-AZ|az-Latn-AZ|be|be-BY|bg|bg-BG|bs-Latn-BA|ca|ca-ES|cs|cs-CZ|cy-GB|da|da-DK|de|de-AT|de-DE|de-CH|de-LI|de-LU|dv|dv-MV|el|el-GR|en|en-029|en-AU|en-BZ|en-CA|en-GB|en-IE|en-JM|en-NZ|en-PH|en-TT|en-US|en-ZA|en-ZW|es|es-AR|es-BO|es-CL|es-CO|es-CR|es-DO|es-EC|es-ES|es-GT|es-HN|es-MX|es-NI|es-PA|es-PE|es-PR|es-PY|es-SV|es-UY|es-VE|et|et-EE|eu|eu-ES|fa|fa-IR|fi|fi-FI|fo|fo-FO|fr|fr-BE|fr-CA|fr-FR|fr-CH|fr-LU|fr-MC|gl|gl-ES|gu|gu-IN|he|he-IL|hi|hi-IN|hr|hr-BA|hr-HR|hu|hu-HU|hy|hy-AM|id|id-ID|is|is-IS|it|it-CH|it-IT|ja|ja-JP|ka|ka-GE|kk|kk-KZ|kn|kn-IN|ko|kok|kok-IN|ko-KR|ky|ky-KG|lt|lt-LT|lv|lv-LV|mi-NZ|mk|mk-MK|mn|mn-MN|mr|mr-IN|ms|ms-BN|ms-MY|mt-MT|nb-NO|nl|nl-BE|nl-NL|nn-NO|no|ns-ZA|pa|pa-IN|pl|pl-PL|pt|pt-BR|pt-PT|quz-BO|quz-EC|quz-PE|ro|ro-RO|ru|ru-RU|sa|sa-IN|se-FI|se-NO|se-SE|sk|sk-SK|sl|sl-SI|sma-NO|sma-SE|smj-NO|smj-SE|smn-FI|sms-FI|sq|sq-AL|sr|sr-Cyrl-BA|sr-Cyrl-CS|sr-Latn-BA|sr-Latn-CS|sv|sv-FI|sv-SE|sw|sw-KE|syr|syr-SY|ta|ta-IN|te|te-IN|th|th-TH|tn-ZA|tr|tr-TR|tt|tt-RU|uk|uk-UA|ur|ur-PK|uz|uz-Cyrl-UZ|uz-Latn-UZ|vi|vi-VN|xh-ZA|zh-CN|zh-HK|zh-CHS|zh-CHT|zh-MO|zh-SG|zh-TW|zu-ZA", }, timeUnit: { type: "enum", members: "second|minute|hour|day|week|month|year" }, zoomAxis: { type: "enum", members: "x|y|xy|none" }, alignHorizontal: { type: "enum", members: "center|left|right" }, alignVertical: { type: "enum", members: "top|middle|bottom" }, directionalLayout: { type: "enum", members: "auto|vertical|horizontal" }, orientation: { type: "enum", members: "none|left|right|top|bottom|topLeft|topRight|bottomRight|bottomLeft|opposite" }, titlePosition: { type: "enum", members: "left|center|right|full" }, placement: { type: "enum", members: "auto|inside|outside" }, uiItemType: { type: "enum", updated: "2.7", members: { auto: { isDefault: !0 }, option: "", checkbox: "", toggle: "", radio: "", select: "", selectMultiple: "", range: "", file: "" } }, pointSelectionMode: { type: "enum", members: "auto|single|multiple" }, hoverAction: { type: "enum", members: "highlightPoint|highlightSeries|highlightPointGroup" }, fontWeight: { type: "enum", members: "normal|bold" }, fontStyle: { type: "enum", members: "normal|italic" }, fontFamily: { type: "enum", caseInsensitive: !0, members: "Tahoma|Arial|Verdana|Helvetica|Trebuchet MS|Arial Black|Comic Sans MS|Courier New|Georgia|Impact|Lucida Console|Lucida Sans Unicode|Lucida Grande|Geneva|Times New Roman|MS Sans Serif|MS Serif|Arial, Helvetica, sans-serif|Arial Black, Gadget, sans-serif|Comic Sans MS, cursive|Courier New, monospace|Georgia, serif|Impact, Charcoal, sans-serif|Lucida Console, Monaco, monospace|Lucida Sans Unicode, Lucida Grande, sans-serif|Palatino Linotype, Book Antiqua, Palatino, serif|Tahoma, Geneva, sans-serif|Times New Roman, Times, serif|Trebuchet MS, sans-serif|Verdana, Geneva, sans-serif|MS Sans Serif, Geneva, sans-serif|MS Serif, New York, serif", }, textDecoration: { type: "enum", members: "overline|line-through|underline|underline overline" }, cursor: { type: "enum", members: "none|default|pointer|help|crosshair|wait|progress|text|n-resize|ne-resize|nw-resize|e-resize|s-resize|se-resize|sw-resize|w-resize" }, dashStyle: { type: "enum", caseInsensitive: !0, members: "Solid|ShortDash|ShortDot|ShortDashDot|ShortDashDotDot|Dot|Dash|LongDash|DashDot|DashDotDot|LongDashDot|LongDashDotDot" }, boxCornerType: { type: "enum", members: "square|cut|round" }, mimeType: { type: "enum", members: "image/png|image/jpeg|application/pdf|image/svg+xml" }, animationEasing: { type: "enum", members: "easeInQuad|easeOutQuad|easeInCubic|easeOutCubic|easeInOutCubic|easeInQuart|easeOutQuart|easeInOutQuart|easeInQuint|easeOutQuint|easeInOutQuint|easeInSine|easeOutSine|easeInOutSine|easeInExpo|easeOutExpo|easeInOutExpo|easeInCirc|easeOutCirc|easeInOutCirc|easeInElastic|easeOutElastic|easeInOutElastic|easeInBack|easeOutBack|easeInOutBack|easeInBounce|easeOutBounce|easeInOutBounce", }, calculation: { type: "enum", members: "sum|average|min|max" }, funnelNozzleType: { type: "enum", members: { nozzle: { isDefault: !0 }, noNozzle: {} } }, seriesLayout: { type: "enum", members: { XY: { isDefault: !0, chain: "enum_funnelOrientationType" }, visualShape: { chain: "enum_funnelOrientationType" } } }, }[a]; if ("string" === typeof a.members) { var c = a.members; c = c.split("|"); for (var b = {}, d = 0, e = c.length; d < e; d++) b[c[d]] = ""; a.members = b; } return a; } function ma(a, c) { if (a && a.pop) { c = c || a.kind; if ("rgba" === c && !Ha(a[3])) return "rgba(" + parseInt(a[0]) + "," + parseInt(a[1]) + "," + parseInt(a[2]) + "," + na(a[3], 5) + ")"; if (2 < a.length || "rgb" === c) return "rgb(" + parseInt(a[0]) + "," + parseInt(a[1]) + "," + parseInt(a[2]) + ")"; } return a; } function Dc(a, c) { c.kind = a; return c; } function bd(a, c, b) { function d(b, a, c) { 0 > c && (c += 1); 1 < c && --c; return c < 1 / 6 ? b + 6 * (a - b) * c : 0.5 > c ? a : c < 2 / 3 ? b + (a - b) * (2 / 3 - c) * 6 : b; } var e, f, g = 1; if (a && a.pop) { var h = G(a, 4); a = h[0]; c = h[1]; b = h[2]; g = h[3]; t(g) || (g = 1); } if (0 === c) h = e = f = b; else { f = 0.5 > b ? b * (1 + c) : b + c - b * c; var k = 2 * b - f; h = d(k, f, a + 1 / 3); e = d(k, f, a); f = d(k, f, a - 1 / 3); } h = Dc("rgba", zo([h, e, f, g])); h.hsl = [a, c, b]; return h; } function bf(a, c, b) { a /= 255; c /= 255; b /= 255; var d = Math.max(a, c, b), e = Math.min(a, c, b), f = (d + e) / 2; if (d === e) var g = (e = 0); else { var h = d - e; e = 0.5 < f ? h / (2 - d - e) : h / (d + e); switch (d) { case a: g = (c - b) / h + (c < b ? 6 : 0); break; case c: g = (b - a) / h + 2; break; case b: g = (a - c) / h + 4; } g /= 6; } return Dc("hsl", [g, e, f]); } function $v(a, c, b, d) { a && a.pop && ((d = G(a, 4)), (a = d[0]), (c = d[1]), (b = d[2]), (d = d[3])); a /= 255; c /= 255; b /= 255; var e = Math.max(a, c, b), f = Math.min(a, c, b), g = e - f; if (e === f) var h = 0; else { switch (e) { case a: h = (c - b) / g + (c < b ? 6 : 0); break; case c: h = (b - a) / g + 2; break; case b: h = (a - c) / g + 4; } h /= 6; } return Dc("hsv", [h, 0 === e ? 0 : g / e, e, d]); } function aw(a, c, b, d) { a && a.pop && ((d = G(a, 4)), (a = d[0]), (c = d[1]), (b = d[2]), (d = d[3])); var e = Math.floor(6 * a), f = 6 * a - e; a = b * (1 - c); var g = b * (1 - f * c); c = b * (1 - (1 - f) * c); e = G( [ [b, c, a], [g, b, a], [a, b, c], [a, g, b], [c, a, b], [b, a, g], ][e % 6], 3 ); b = e[0]; c = e[1]; e = e[2]; 1 < b && (b = 1); 1 < c && (c = 1); 1 < e && (e = 1); return Dc("rgba", zo([b, c, e, d])); } function ca(a, c) { var b, d, e, f; if (a) { if ((b = a.kind)) { if ("rgba" === b) return a; if ("rgb" === b) return 4 > a.length && (a[3] = 1), (a.kind = "rgba"), a; } b = I(a); if ("array" === b) return (a.kind = 4 === a.length ? "rgba" : "rgb"), a; if ("string" === b) { var g = Ao[a]; if (!g) { if ("#" === a[0]) g = vk(a); else if ((b = bw[a.toLowerCase()])) g = vk(b); Ao[a] = g; } if (!g) if ("h" === a[0]) "a" === a[3] ? (e = cf.hsla.exec(a)) : (d = cf.hsl.exec(a)); else { var h = Bo[a]; !h && (h = cf.rgba.exec(a)) && ((h = [parseInt(h[1]), parseInt(h[2]), parseInt(h[3]), parseFloat(h[4])]), (Bo[a] = h)); if (!h) { var k = cf.rgb.exec(a); k || (g = vk(a)) || (f = cf.hexShort.exec(a)); } } } b = "rgba"; if (h) var l = h.slice(0); else if (g) (l = g.slice(0)), "rgb" !== c ? l.push(1) : (b = "rgb"); else if (k) (l = [parseInt(k[1]), parseInt(k[2]), parseInt(k[3])]), "rgb" !== c ? l.push(1) : (b = "rgb"); else if (f) (l = [17 * parseInt(f[1], 16), 17 * parseInt(f[2], 16), 17 * parseInt(f[3], 16)]), "rgb" !== c ? l.push(1) : (b = "rgb"); else { if (e) var m = [parseInt(e[1]) / 360, parseInt(e[2]) / 100, parseInt(e[3]) / 100, parseFloat(e[4])]; else d ? ((m = [parseInt(d[1]) / 360, parseInt(d[2]) / 100, parseInt(d[3]) / 100, 1]), (l = bd(m))) : (l = "transparent" === a ? [255, 255, 255, 0] : [0, 0, 0, 0]); m && (l = bd(m)); } l.kind = b; } return l; } function ka(a, c, b, d) { var e = function (a) { return Math.round(Y(f[a], g[a], 0, 100, b)); }; if (a && c) { var f = ca(a), g = ca(c); a = e(0); c = e(1); e = e(2); d || (d = Y(f[3], g[3], 0, 100, b)); e = [a, c, e, d]; if (t(d)) return Dc(t(d) ? "rgba" : "rgb", e); } else { if (a) return a; if (c) return c; } } function zh(a) { var c = []; if ("object" === typeof a && a.stops) { for (var b = 0, d = a.stops.length; b < d; b++) c[b] = a.stops[b][1]; return wk(c); } return "function" === typeof a.pop ? wk(a) : a; } function wk(a) { a = B(Co.apply(null, B(a, ca)), function (a) { return Do(a); }); return ma(a); } function le(a, c, b) { var d = {}; d.tweenID = b && b.id ? b.id : de(5); d.from = Eo(a, d.tweenID); d.to = Eo(c, d.tweenID); if (d.from.isComplex || d.to.isComplex) { if (d.from.isComplex) if (d.to.isComplex) d.stepFn = "linear" === d.from.type ? Fo(d) : Go(d); else var e = d.to, f = d.from; else (e = d.from), (f = d.to); f ? ((d.stepFn = "linear" === f.type ? Fo(d) : Go(d)), e && cw(e, f)) : d.from.type !== d.to.type && ((a = zh(d.to.input)), (c = zh(d.from.input)), (a = wk([a, c])), (d.animations = [le(d.from.input, a), le(a, d.to.input)]), (d.stepFn = dw(d))); d.from.stops.length != d.to.stops.length && ((a = d.from), (c = d.to), a.stops.length !== c.stops.length && (a.stops.length < c.stops.length && ((c = G([c, a], 2)), (a = c[0]), (c = c[1])), (e = Ho(a)), (f = Ho(c)), (b = me(e, f)), (e = me(f, e)), Io(c, b), a.stops.length !== c.stops.length && Io(a, e))); } return d.stepFn || ew(d); } function Fo(a) { return function (c) { if (1 == c) return a.to.input; var b = a.from.linearGradient, d = a.to.linearGradient; b = { linearGradient: [ac(b[0], d[0], c), ac(b[1], d[1], c), ac(b[2], d[2], c), ac(b[3], d[3], c)], stops: [] }; Jo(a, b.stops, c); b.tweenId = a.tweenID; return b; }; } function Go(a) { return function (c) { if (1 == c) return a.to.input; var b = a.from.radialGradient, d = a.to.radialGradient, e = { radialGradient: { cx: ac(b.cx, d.cx, c), cy: ac(b.cy, d.cy, c), r: ac(b.r, d.r, c) }, stops: [] }; t(d.fx) && (e.radialGradient.fx = ac(z(b.fx, 0.5), d.fx, c)); t(d.fy) && (e.radialGradient.fx = ac(z(b.fy, 0.5), d.fy, c)); Jo(a, e.stops, c); e.tweenId = a.tweenID; return e; }; } function Jo(a, c, b) { for ( var d = function (b, a) { "rgb" === b.kind && ((a = t(a) ? a : 1), 3 < b.length ? (b[3] = a) : b.push(a), (b.kind = "rgba")); return b; }, e = 0, f = a.from.stops.length; e < f; e++ ) { var g = a.from.stops[e], h = a.to.stops[e], k = ka(d(g.color, g.opacity), d(h.color, h.opacity), 100 * b), l = void 0; "rgba" === k.kind && (l = "rgb"); c.push([100 * ac(g.x, h.x, b) + "%", ma(k, l), l ? k[3] : ac(g.opacity, h.opacity, b)]); } } function dw(a) { return function (c) { if (1 == c) return a.to.input; c = Y(0, a.animations.length, 0, 1, c); return a.animations[Math.floor(c)](c % 1); }; } function ew(a) { return function (c) { return 1 == c ? a.to.input : ma(ka(a.from.stops[0].color, a.to.stops[0].color, 100 * c)); }; } function Eo(a, c) { var b = { input: a, stops: [], id: c }; c = function (a, c, d) { a = ca(a, "rgb"); "rgba" === a.kind && ((a.kind = "rgb"), (d = a[3])); b.stops.push({ color: a, x: c, opacity: d }); }; if ("string" == I(a)) c(a, 0, 1), (b.type = "color"); else { for (var d = 0, e = a.stops.length; d < e; d++) { var f = a.stops[d], g = 1; "string" == I(f[0]) && -1 < f[0].indexOf("%") && (g = 100); c(f[1], parseFloat(f[0]) / g, f[2]); } b.isComplex = !0; a.linearGradient ? ((b.type = "linear"), (b.linearGradient = Ko(b, a.linearGradient))) : a.radialGradient && ((b.type = "radial"), (b.radialGradient = Ko(b, a.radialGradient))); } return b; } function Ko(a, c) { var b = "radial" == a.type ? {} : []; w(c, function (a, c) { var d = ["x1", "y1", "x2", "y2"].indexOf(c); a = "number" === I(a) ? a : parseFloat(a) / (-1 < a.indexOf("%") ? 100 : 1); b[-1 === d ? c : d] = a; }); return b; } function Ho(a) { for (var c = [], b = 0, d = a.stops.length; b < d; b++) c.push(a.stops[b].x); return c; } function Io(a, c) { for (var b = 0, d = c.length; b < d; b++) { var e = a, f = c[b], g = e.stops; if (1 < g.length) for (var h = 1, k = g.length; h < k; h++) { var l = g[h], m = g[h - 1]; if (l.x > f && m.x < f) { var n = Y(0, 1, m.x, l.x, f); l = { color: ka(m.color, l.color, 100 * n), x: f, opacity: ac(m.opacity, l.opacity, n) }; e.stops.splice(h, 0, l); } } } } function cw(a, c) { if ("color" !== a.type) throw "matchStops called on a " + a.type; var b = a.stops[0].color, d = t(a.stops[0].opacity) ? a.stops[0].opacity : 1; a.stops = c.stops.slice(0); "linear" == c.type && (a.linearGradient = qa(c.linearGradient)); "radial" == c.type && (a.radialGradient = qa(c.radialGradient)); w(a.stops, function (e, f) { a.stops[f] = { x: c.stops[f].x, color: b, opacity: d }; }); } function fw(a, c, b) { var d = {}; c = c.meta; var e = a && a.meta && a.meta.pattern; d.pattern = c.pattern; d.colorAnim = le(e ? a.meta.color : c.color, c.color, b); d.bgAnim = le(e ? a.meta.backgroundColor : a, c.backgroundColor, b); return function (b) { return { pattern: d.pattern, color: d.colorAnim(b), backgroundColor: d.bgAnim(b) }; }; } function Ec(a) { if (a) return a.pop ? (2 === a.length && a[1].toFixed ? V(Ec(a[0]), 1 - a[1]) : !1) : a; } function gw(a) { a = ca(a); return "#" + xk(a[0], a[1], a[2]); } function xk(a, c, b) { return Rj(ua(a, 0, 255)) + Rj(ua(c, 0, 255)) + Rj(ua(b, 0, 255)); } function yk(a) { if (a) { var c = a.pop ? a : ca(a); a = "#" + xk(c[0], c[1], c[2]); c = parseFloat(z(c[3], 1)); return { hex: a, opacity: c }; } return { hex: "none", opacity: 1 }; } function Lo(a) { a = ca(a); var c = G(Ah(a), 3); a = c[0]; var b = c[1]; c = c[2]; return 0.2126 * (0.03928 >= a ? a / 12.92 : Math.pow((a + 0.055) / 1.055, 2.4)) + 0.7152 * (0.03928 >= b ? b / 12.92 : Math.pow((b + 0.055) / 1.055, 2.4)) + 0.0722 * (0.03928 >= c ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4)); } function df(a) { a = ca(a); return Mo(Ah(a)); } function zk(a, c) { a = ca(a); var b = No(Ah(a)); b[0] = c; c = Oo(b); a[0] = 255 * c[0]; a[1] = 255 * c[1]; a[2] = 255 * c[2]; return a; } function Ak(a, c) { var b = df(a); return zk(a, ua(b + c, 0, 1)); } function cd(a, c) { c = ua(c, -100, 100); var b = function (b) { return Math.floor(ua(b, 0, 255)); }, d = function (a) { return b(f[a] + (255 - f[a]) * e); }, e = c / 100, f = ca(a); 0 < c ? ((a = d(0)), (c = d(1)), (d = d(2))) : ((e *= -1), (e = 1 - e), (a = b(f[0] * e)), (c = b(f[1] * e)), (d = b(f[2] * e))); return Dc("rgba", [a, c, d, f[3]]); } function ne(a, c, b) { b = 0 < b ? "+" + b : b; return gg(a, "hsv(" + { h: b + ",,", s: "," + b + ",", v: ",," + b }[c] + ")"); } function Bh(a) { a = ca(a); var c = bf(a[0], a[1], a[2]); c[2] += (0.007 * Math.pow(100 * c[2] - 100, 2)) / 200; c = bd(c[0], c[1], c[2]); c[3] = a[3]; return c; } function oe(a, c) { void 0 === c && (c = 0.7); a = ca(a); var b = bf(a[0], a[1], a[2]); b[2] += Math.pow(b[2] - 1, 2) * c; c = bd(b[0], b[1], b[2]); c[3] = a[3]; return c; } function pe(a) { a = ca(a); var c = bf(a[0], a[1], a[2]); c[2] -= (0.007 * Math.pow(100 * c[2], 2)) / 100; c = bd(c); c[3] = a[3]; return c; } function Bd(a, c) { a = ca(a); 1 < c && (c = Y(0, 1, 0, 255, c)); return [a[0], a[1], a[2], c]; } function V(a, c) { if (!c || !c.toFixed) return a; 1 >= c && (c *= 100); a = ca(a); return Dc("rgba", [a[0], a[1], a[2], ((100 - c) / 100) * a[3]]); } function Fc(a, c) { return c && c.toFixed ? (1 >= c && (c *= 100), (a = ca(a)), Dc("rgba", [a[0], a[1], a[2], 1 - c / 100])) : a; } function Po(a, c) { return hg(a, function (b) { return Fc(b, c); }); } function Ja(a) { var c = yb(((a + 360) % 360) + 180), b = Math.cos(Math.abs((0.5 * (Math.floor((c / Math.PI) * 2) + 2) + 0.25) * Math.PI - c)) * Math.sqrt(2); a = b * Math.cos(c); var d = b * Math.sin(c); c = 0 > d ? 1 : 0; b = 0 <= a ? a : a + 1; d = 0 <= d ? d : d + 1; return [(0 > a ? 1 : 0).toFixed(4), c.toFixed(4), b.toFixed(4), d.toFixed(4)]; } function jb(a, c, b, d) { c.length && c[0][1].pop && w(c, Bk); d && (a.hash = d); return { linearGradient: a, stops: c }; } function Bk(a) { var c = yk(a[1]); a[1] = c.hex; a[2] = c.opacity; return a; } function Qo(a, c, b, d) { var e = c.length, f = jb(Ja(a), []); for (a = 0; a < e; a++) { var g = ca(Ec(b[a]) || b[a]), h = ma(g); f.stops.push([c[a] / 100, gw(h), g[3]]); } f.linearGradient.hash = d || ""; return f; } function ig(a, c, b, d) { void 0 === c && (c = [0, 0]); void 0 === b && (b = 2); c = { cx: 0.5 + 2 * c[0], cy: 0.5 + 2 * c[1], r: 2.75 - b }; b = ca(a); a = oe(b); b = pe(b); a = [ ["0%", a], ["100%", b], ]; a.length && a[0][1].pop && w(a, Bk); return { radialGradient: c, stops: a }; } function jg(a, c, b, d) { void 0 === c && (c = !1); void 0 === b && (b = !1); void 0 === d && (d = !1); var e = ["aqua", a, c, b, d].join(""), f = 0; if ("object" === typeof c && null !== c) var g = !0, h = c; else { f = c ? 90 : 0; var k = Ja(f); h = c ? 0 : 90; } a = ca(a); b && ((k = Ja(f + 180)), (h = 0)); var l = d ? ka(pe(a), "#ffffff", 10) : pe(a), m = d ? ka(Bh(a), "#ffffff", 10) : oe(a); b = ka(l, m, 0.8, a[3]); f = ka(l, m, 40, a[3]); var n = ka(l, "#fefefe", 70.5, a[3]), p = ka(l, b, 50, a[3]); p = ka(p, "#fefefe", 39.2, a[3]); l = ka(l, b, 60, a[3]); l = ka(l, "#fefefe", 39.2, a[3]); var q = ka(b, "#fefefe", 39.2, a[3]); d && ((m = ka(m, "#f7ffe0", 60, 1)), (f = ka(f, "#f7ffe0", 40, 1))); d = [ ["0%", n], ["25%", p], ["30%", l], ["49.99%", q], ["50%", b], ["70%", f], ["100%", m], ]; return g ? ((c = c.gradientDistance), 25 > c ? ((d[3][0] = "47%"), (d[4][0] = "53%")) : 50 > c ? ((d[3][0] = "48%"), (d[4][0] = "52%")) : ((d[3][0] = "49.5%"), (d[4][0] = "50.5%")), jb(k, d, [h, "100%", a[3], a[3]])) : jb(k, d, [h, "100%", a[3], a[3]], e); } function ef(a, c, b, d) { void 0 === c && (c = !1); void 0 === b && (b = !1); void 0 === d && (d = !1); var e = ["rounded", a, c, b, d].join(""), f = 0; if ("object" === typeof c && null !== c) var g = !0; else { f = c ? 90 : 0; var h = Ja(f); c = c ? 0 : 90; } a = ca(a); b && ((h = Ja(f + 180)), (c = 0)); b = d ? ka(pe(a), "#ffffff", 5) : pe(a); f = d ? ka(Bh(a), "#ffffff", 50) : oe(a); var k = ka(b, "#fefefe", 25, a[3]), l = ka(b, f, 18.75, a[3]), m = ka(l, "#fefefe", 62.745, a[3]); l = ka(l, "#fefefe", 54.90196, a[3]); var n = ka(b, f, 31.25, a[3]); a = ka(n, "#fefefe", 11.764705, a[3]); var p = b; g && ((p = k = m), (b = f)); d && ((b = ka(b, "#f7ffe0", 50, 1)), (p = ka(p, "#f7ffe0", 60, 1))); d = [ ["0%", p], ["5%", k], ["20%", m], ["20%", l], ["30%", a], ["30%", n], ["85%", f], ["100%", b], ]; return g ? jb(h, d) : jb(h, d, [c, "100%", 1, 1], e); } function Ck(a, c, b, d) { void 0 === c && (c = !1); void 0 === b && (b = !1); void 0 === d && (d = !1); var e = c ? Ja(90) : Ja(0), f = c ? 0 : 90; c = "subtl" + a + c + b; var g = 0.03, h = (a = ca(a)), k = df(h), l = a[3]; b && ((e = Ja(180)), (f = 0)); b = gg; a = Ch("hsv(,,+" + g + ")"); var m = Ch("hsv(,,-" + g + ")"); g = Ch("hsv(,,-" + 2 * g + ")"); var n = a(h), p = m(h); a = g(h); n === h && ((a = "#" + xk(p[0], p[1], p[2])), (n = m(a)), (a = g(a))); d && (0.85 < k ? ((g = 1.4 * -(k - 0.8)), (n = b(n, "hsv(,," + (0 > g ? "-" : "+") + Math.abs(g) + ")"))) : ((h = ka(h, "#f7ffe0", 20, 1)), (n = ka(n, "#f7ffe0", 50, 1)), (a = ka(a, "#f7ffe0", 70, 1)))); d = [ ["0%", Fc(n, 1 - l)], ["50%", Fc(ma(h), 1 - l)], ["90%", Fc(p, 1 - l)], ["100%", Fc(a, 1 - l)], ]; return jb(e, d, [f, "100%", h[3], h[3]], c); } function Dk(a, c, b, d) { void 0 === c && (c = !1); void 0 === b && (b = !1); void 0 === d && (d = !1); var e = c ? Ja(90) : Ja(0); c = c ? 0 : 90; var f = "squ" + a + b + d, g = (a = ca(a)); a = a[3]; b && ((e = Ja(180)), (c = 0)); b = ka(g, d ? "white" : "black", 20); b = [ ["0%", Fc(b, 1 - a)], ["49.99%", Fc(b, 1 - a)], ["50%", Fc(g, 1 - a)], ["100%", Fc(g, 1 - a)], ]; return jb(e, b, [c, "100%", g[3], g[3]], f); } function hg(a, c, b) { void 0 === b && (b = ["val"]); for (var d, e = 0, f = 0, g = b.length; f < g; f++) if ("val" === b[f]) { e = f; break; } a.pop && a.kind && (a = ma(a)); var h = []; if ("object" === typeof a) { if (a.stops) { d = Object.create(a); var k = []; f = 0; for (g = d.stops.length; f < g; f++) { var l = d.stops[f]; b[e] = 3 === l.length ? ma(Fc(l[1], 1 - l[2])) : l[1]; l = Bk([l[0], c.apply(null, b)]); h.push(l[1]); k.push(l); } d.stops = k; (c = J(a, "linearGradient") ? "linearGradient" : J(a, "radialGradient") ? "radialGradient" : void 0) && ((d[c] = a[c].slice()).hash = k.join("")); return d; } if (a.image) return "url('" + a.image + "')"; } else return (b[e] = a), c.apply(null, b); } function hw(a, c) { function b(b) { return Math.sqrt(b[0] * b[0] * 0.284 + b[1] * b[1] * 0.72 + b[2] * b[2] * 0.068) / 255; } void 0 === c && (c = 0.3); var d = (a = ca(a)); d[0] || d[1] || d[2] || (d[0] = d[1] = d[2] = 5); a = b(d); var e = 4.2 * c; c *= 9; c = 0.49 >= a ? Y(0.008 * e, 0.115 * e, 0, 0.49, a) : Y(-0.08 * c, -0.09 * c, 0.49, 1, a); return Ro( (function (a, c) { var d = b(a); d = ua(d + c, 0, 1); c = b(a); d -= c; var e = b(cd(a, -10)); return cd(a, (d / (e - c)) * -10); })(d, c) ); } function Lb(a, c) { if ("none" === a) return "rgba(0,0,0,0)"; a = Ec(a); t(c) && (a = Po(a, c)); return ma(a); } function Dh(a) { a = ca(Ec(a)); return yk(a); } function oc(a, c, b, d) { if (!t(a)) return a; var e, f = a.length, g = [], h = []; if (a.pop) { if ((e = Ec(a))) return b ? dd(b, V(e, c), d) : ma(V(e, c)); if (2 === f) return !0 === a[1] ? dd(b, V(Ec(a[0]), c), d) : V(Ec(a[0]), c); if (2 < f) { var k = a.join(""); d = a[f - 1]; var l = 100 / (f - 2); for (b = 0; b < f - 1; b++) (e = V(Ec(a[b]), c)), h.push(ma(e)), g.push(l * b); return Qo(d, g, h, k); } } else { if (a.linearGradient && a.linearGradient.pop) return t(c) ? Eh(a, 1 - c) : a; if (a.stops) { if (a.hasOwnProperty("angle") && a.stops) { f = a.stops.length; d = a.stops; for (b = 0; b < f; b++) (e = d[b]), "undefined" !== typeof e[0] ? g.push(100 * e[0]) : g.push(0), h.push(V(Ec(e[1]), c)); return Qo(a.angle, g, h); } } else { if (a.image) return "url('" + a.image + "')"; if (a.charAt) return b ? dd(b, V(a, c), d) : V(a, c); } } } function ia(a, c) { return hg(c, function (b) { a: if (b) { if ("currentColor" !== a) { if (Ek(a)) var c = gg(b, a); else if (La[a]) switch (a) { case La.crysDark: c = pe(b); break; case La.crysBright: case La.select: c = oe(b); break; case La.hover: var e = b ? 1 - ca(b)[3] : void 0; c = df(b); c = 0.59 > c ? zk(b, c + 0.15) : zk(b, c - 0.15); c = Po(c, 100 * e); break; case La.outline: c = hw(b, 0.07); case La.outlineContrast: break; case La.label: c = cd(b, -40); break; case La.labelContrast: var f = (c = gg(b, "contrast")); e = Lo(b); f = Lo(f); e = (Math.max(e, f) + 0.05) / (Math.min(e, f) + 0.05); 7 > e && ((b = So(ca(b))), (c = ka(c, 0.5 > b[0] ? "#fff" : "#000", ((8 - e) / 8) * 100))); break; case La.seriesLine: c = Ak(b, -0.095); break; case La.hueEffect: c = ne(b, "h", -23.4); break; case La.lightenDark: c = df(b); c = Ak(b, 0.5 > c ? 0.095 : -0.125); break; default: c = b; } else { b = a; break a; } b = ma(c); } } else b = void 0; return b; }); } function dd(a, c, b) { if (!c || "undefined" === typeof c) return c; "none" === c && (c = "rgba(0,0,0,0)"); if (c.linearGradient) return c; if (!1 === c[1]) return c[0]; c.length && !c.kind && (c = Lb(c)); var d = a, e = ca(c)[3], f = 1 - e, g = V(c, f); d += c + (b || 0); var h = c; switch (a) { case Fa.gaugePolarBack: b = V(ka(c, "#ffffff", 20), f); h = g; var k = V(ne(c, "v", -0.02), f); h = jb( Ja(90), [ ["0%", b], ["40%", h], ["100%", k], ], [180, "0%", 1, 1], d ); break; case Fa.titleBox: b = V(ka(c, "#ffffff", 20), f); h = g; k = V(ne(c, "v", -0.06), f); h = jb( Ja(90), [ ["0%", b], ["40%", h], ["100%", k], ], [180, "0%", 1, 1], d ); break; case Fa.box: b = V(ka(c, "#ffffff", 20), f); k = h = g; h = jb( Ja(90), [ ["0%", b], ["40%", h], ["100%", k], ], [180, "0%", 1, 1], d ); break; case Fa.chartArea: b = V(ka(c, "#ffffff", 20), f); e = k = h = g; var l = V(cd(c, -5), f); h = jb( Ja(90), [ ["0%", b], ["25%", h], ["30%", k], ["80%", e], ["100%", l], ], [180, "0%", 1, 1], d ); break; case Fa.altGridFillRad: h = ma(V(Bd(c, 105), f), "rgba"); break; case Fa.altGridFillY: case Fa.altGridFillX: g = 0.04; 0 < b && (g = Math.min(1.7 / b, 0.34)); if (0 === e) return Lb(c, 100); b = V(Bd("#ffffff", 180), f); h = V(Bd("#ffffff", 180), f); k = V(Bd(c, 105), f); e = V(Bd(c, 30), f); l = V(Bd(cd(c, 60), 7.5), f); c = V(Bd(c, 82.5), f); h = jb( "altGridFillY" === a ? Ja(90) : Ja(0), [ ["0%", b], [g + "%", h], [g + "%", k], ["35%", e], ["60%", l], ["100%", c], ], ["altGridFillY" === a ? 180 : 90, "50%", 0.35, 0.1], d ); break; case Fa.axisMarkerY: case Fa.axisMarkerX: g = ca(c); e = Math.min(255 * g[3] + 20, 255); b = V(V(Bd(ne(c, "v", -0.04), e), 7), f); h = V(V(c, 7), f); h = jb( "axisMarkerY" === a ? Ja(90) : Ja(0), [ ["0%", b], ["20%", h], ["80%", h], ["100%", b], ], ["axisMarkerY" === a ? 180 : 90, "0%", e / 255, e / 255], d ); break; case Fa.jsButton: b = V(cd(c, -10), f); h = V(oe(c), f); k = V(cd(c, -20), f); h = jb( Ja(90), [ ["0%", b], ["20%", h], ["70%", c], ["85%", c], ["100%", k], ], [180, "0%", 1, 1], d ); break; case Fa.jumpButton: b = V(cd(c, -10), f); h = V(oe(c), f); k = V(cd(c, -20), f); h = jb( Ja(90), [ ["0%", b], ["20%", c], ["70%", h], ["85%", c], ["100%", k], ], [180, "0%", 1, 1], d ); break; case Fa.areaFill: b = V(c, f); k = ne(c, "v", 0.1); h = jb( Ja(90), [ ["0%", k], ["70%", b], ["80%", b], ["100%", b], ], [180, "0%", e, e], d ); break; case Fa.aqua: h = jg(c); break; case Fa.rounded: h = ef(c); break; case Fa.subtle: h = Ck(c); break; case Fa.cushion: h = ig(c); break; case Fa.navBar: h = c; } return h; } function Eh(a, c) { return a ? hg(a, function (b) { t(c) && c.toFixed && ((b = ca(b)), (b = Dc("rgba", [b[0], b[1], b[2], b[3] * c]))); return ma(b); }) : a; } function qe(a, c, b, d) { a = ka(a, c, b, d); return ma(a); } function Fk(a) { a = Ec(a); return ca(a); } function Ro(a, c) { return ma(a, c); } function iw(a, c, b) { function d(b, a, c, d) { b && (a && 0 !== b["stroke-width"] && (b.stroke = a), c && (b.fill = c), d && (b["stoke-width"] = d)); } var e = b.horizontal, f = b.inverted, g = b.offsets, h = b.share, k = b.isRadial ? b : e, l = "lighterOnDark" === b.strokeMode ? oe : pe, m, n = !0; if ("aqua" === a) d(c[""], c[""].stroke, jg(c[""].fill, k, f)), (m = c.hover) && d(m, m.stroke || qe(l(m.fill), m.fill, 50), jg(m.fill, k, f, !0), 2), (m = c.select) && d(m, m.stroke || ma(l(m.fill)), jg(m.fill, k, f, !0)); else if ("cushion" === a) d(c[""], c[""].stroke, ig(c[""].fill, g, h)), (m = c.hover) && d(m, m.stroke || qe(l(m.fill), m.fill, 50), ig(m.fill, g, h), 2), (m = c.select) && d(m, m.stroke || ma(l(m.fill)), ig(m.fill, g, h)), (n = !1); else if ("rounded" === a) { m = c[""]; m.stroke = m.stroke || ma(l(m.fill)); m.fill = ef(m.fill, k, f); if ((m = c.hover)) (m.stroke = m.stroke || m.fill), (m.fill = ef(m.fill, k, f, !0)), (m["stoke-width"] = 2); if ((m = c.select)) (m.stroke = m.stroke || ma(l(m.fill))), (m.fill = ef(m.fill, k, f, !0)); } else if ("subtle" === a) { m = c[""]; 0 !== m["stroke-width"] && (m.stroke = m.stroke || ma(l(m.fill))); m.fill = Ck(m.fill, k, f); if ((m = c.hover)) 0 !== m["stroke-width"] && (m.stroke = m.stroke || m.fill), C(k, "isRadial") ? ((m.fill = qe(Bh(m.fill), "#ffffff", 20)), (n = !1)) : (m.fill = Ck(m.fill, k, f, !0)); if ((m = c.select)) 0 !== m["stroke-width"] && (m.stroke = m.stroke || ma(l(m.fill))), (m.fill = ef(m.fill, k, f, !0)); } else if ("square" === a) { m = c[""]; m.stroke = m.stroke || ma(l(m.fill)); m.fill = Dk(m.fill, e, f); if ((m = c.hover)) (m.stroke = m.stroke || m.fill), (m.fill = Dk(m.fill, e, f, !0)); if ((m = c.select)) (m.stroke = m.stroke || ma(l(m.fill))), (m.fill = Dk(m.fill, e, f, !0)); } else { m = c[""]; m.stroke = ma(m.stroke || ma(l(m.fill))); if ((m = c.hover)) (m.stroke = m.stroke || m.fill), (m.fill = qe(Bh(m.fill), "#ffffff", 20)); (m = c.select) && (m.stroke = ma(m.stroke || ma(l(m.fill)))); n = !1; } n && b.lgCoords && ((a = function (a) { a.linearGradient = b.lgCoords; }), a(c[""].fill), c.hover && a(c.hover.fill), c.select && a(c.select.fill)); } function To(a, c) { void 0 === c && (c = 1); if ("none" === a) return a; (a = hg(a, function (b) { b = Fk(b); b = ne(b, "s", -c); return ma(b); })) && a.linearGradient && (a.linearGradient.hash = a.linearGradient.hash + "DS" + c); return a; } function Uo(a, c, b, d) { function e(a) { var d = [], e = f(a), h = e[1]; e = e[0]; e = g(e, c[a], [0, h]); a = (e[1] - e[0]) / b; for (h = 0; h < b; h++) d[h] = e[0] + a * h; return d; } function f(b) { switch (b) { case "hue": return [l[0], 1]; case "saturation": return [l[1], 1]; case "lightness": return [l[2], 1]; case "r": return [k[0], 255]; case "g": return [k[1], 255]; case "b": return [k[2], 255]; } } function g(b, a, c) { function d() { f = c[1] - e[1]; g = e[0] - c[0]; } var e = [b - a / 2, b + a / 2], f, g; d(); 0 > f ? ((e[0] += f), (e[1] += f), d(), 0 > g && (e[0] = c[0])) : 0 > g && ((e[0] -= g), (e[1] -= g), d(), 0 > f && (e[1] = c[1])); return e; } d = t(d) ? d : 1; var h = 0 === d, k = ca(a), l = bf(k[0], k[1], k[2]); a = {}; for (p in c) c.hasOwnProperty(p) && (a[p] = e(p)); for (var m = [], n = 0; n < b; n++) { var p = [l[0], l[1], l[2]]; a.hue && (p[0] = a.hue[n]); a.saturation && (p[1] = a.saturation[n]); a.lightness && (p[2] = a.lightness[n]); m[n] = yk(bd(p[0], p[1], p[2])).hex; } return h ? m : jw(m, d); } function jw(a, c) { c = t(c) ? c : -1; var b = a.length, d; for (t(c) && (d = Tn(c, a.length + 2)); 0 !== b; ) { var e = Math.floor(d[b] * b); --b; c = a[b]; a[b] = a[e]; a[e] = c; } return a; } function Gk() { return { x: 0, y: 0, width: 0, height: 0 }; } function Hk(a, c, b) { c && ((a.x -= (c - a.width) / 2), (a.width = c)); b && ((a.y -= (b - a.height) / 2), (a.height = b)); return a; } function Cd(a, c) { return Hk(a, a.width * c, a.height * c); } function Ik(a, c) { return { x: a.x + c, y: a.y + c, width: a.width - 2 * c, height: a.height - 2 * c, borderWidth: 2 * c }; } function Vo(a, c) { return [a[0] + c[3], a[1] + c[0], a[2] - c[3] - c[1], a[3] - c[0] - c[2]]; } function Wo(a, c, b) { return { x: a.x + c, y: a.y + b, width: a.width, height: a.height }; } function Xo(a, c) { return Ik(a, (c * Math.min(a.width, a.height)) / 2); } function kg(a, c, b, d) { return { x: a - b / 2, y: c - d / 2, width: b, height: d }; } function Yo(a) { 0 > a.width && ((a.x += a.width), (a.width = -a.width)); 0 > a.height && ((a.y += a.height), (a.height = -a.height)); a.right = a.x + a.width; a.bottom = a.y + a.height; a.cx = a.x + a.width / 2; a.cy = a.y + a.height / 2; return a; } function Zo(a) { return [a.x, a.y, a.x + a.width, a.y + a.height]; } function $o(a) { return { x: a[0], y: a[1], width: a[2] - a[0], height: a[3] - a[1] }; } function Gc(a) { return { x: a[0], y: a[1], width: a[2], height: a[3] }; } function ap(a, c) { var b = a.width * a.height, d = c.width * c.height; b = b === d && a.width === c.width ? 0 : Sj(b, d); return 0 === b && a.x === c.x && a.y === c.y ? 0 : 0 === b ? -1 : b; } function Fh(a) { "undefined" === typeof a && (a = 0); a.toFixed ? (a = Jk[a]) : a.charAt ? ((a = a.toLowerCase()), (a = Jk[kw.indexOf(a)])) : (a = Jk[0]); return a ? ("#" + a.match(/.{1,6}/g).join("#")).match(/.{1,7}/g) : a; } function bp(a, c, b, d) { void 0 === d && (d = {}); var e = (ff[a] = ff[a] || {}); e.loaded && c(); var f = (e.callbacks = e.callbacks || []); e.loading ? f.push(c) : ((e.loading = !0), f.push(c), lw( a, function () { w(f, function (b) { return b(); }); e.loading = !1; e.loaded = !0; }, b, d )); } function mw(a, c) { if (!a) return null; c || je(); return -1 < a.indexOf("http:") || -1 < a.indexOf("https:") ? a + ".js" : (c || je()) + "/" + a + ".js"; } function lw(a, c, b, d) { var e = d.baseUrl, f = d.notificationContainer, g = mw(a, e); lk(g, c, function () { b && b.emit("warning", "moduleLoader", "libNotFound", { data: [g], container: f }); c(); }); nw(b, e, g, f); } function nw(a, c, b, d) { c = !c && to(); a && (c ? a.emit("warning", "moduleLoader", "cdnLoad", { data: [b], container: d }) : (je() && "https://code.jscharting.com/3.0.2" === je()) || !ow(b) || a.emit("warning", "moduleLoader", "scriptLoad", { data: [b], container: d })); } function ow(a) { return S(["maps", "toolbar", "types"], function (c) { return ~a.indexOf("modules/" + c); }); } function zb(a) { return (a.id = a.id || de()); } function Gh(a, c) { var b = a[c], d; "object" === I(b) && (d = a[c] = [b]); return d || a[c]; } function pw(a, c, b) { var d, e; if ("undefined" !== (e = I((d = C(a, c)))) && "array" === e) { var f = {}; w(d, function (a, c) { f[b[c]] = a; }); Z(a, c, f); } } function cp(a, c) { var b, d; "undefined" !== (d = I((b = C(a, c)))) && "string" === d && Z(a, c, b.toLowerCase()); } function qw(a) { Da(rw, function (c) { var b = a[c]; b && nb(b) && 1 > Math.abs(b) && (a[c] = 100 * b + "%"); }); } function dp(a, c) { var b; "undefined" !== I((b = C(a, c))) && Lb(b) && Z(a, c, Lb(b)); } function sw(a) { if ("object" == typeof a) { var c = []; w(["topLeft", "topRight", "bottomRight", "bottomLeft"], function (b, d) { c[d] = a[b]; }); return c; } } function db(a, c) { return t(a) && a.charAt ? (-1 < a.indexOf("%") ? ((a = parseInt(a.match("-?[0-9]+"))), (a / 100) * c) : parseInt(a)) : a; } function gf(a, c) { Hh || (Hh = T.Promise || tw); return new Hh(a, c); } function uw(a, c) { var b = [], d = function () { return ( 0 === b.filter(function (b) { return !b; }).length ); }, e; a.forEach(function (f) { f.then( function (f) { b.push(f ? f.ok : !0); f && f.error && (e = f.error); f = { ok: d() }; e && (f.error = e); b.length === a.length && c(f); }, function () { b.push(!1); b.length === a.length && c({ ok: !1 }); } ); }); } function tw(a) { return new ep("polyfill/promise", function () { return new (Hh = T.Promise)(a); }); } function vw(a, c) { return new ep(["polyfill/promise", "polyfill/fetch"], function () { return (Ih = T.fetch)(a, c); }); } function lg(a) { if (a && a.unit) { var c = z(a.multiplier, a.count); void 0 === c && (a.multiplier = 1); c = z(c, 1); return (Jh[a.unit] / 1) * c; } return 0; } function bc(a, c) { var b = c.unit, d = z(c.multiplier, c.count, 1); "quarter" === b && ((b = "month"), (d *= 3)); a.getMonth || (a = new Date(a)); a = new Date(a.getTime()); if (c && b) if ("decade" === b) a.setFullYear(a.getFullYear() + 10 * d); else return "month" === b ? new Date(a.getFullYear(), a.getMonth() + d, a.getDate()) : "year" === b ? (a.setFullYear(a.getFullYear() + d), new Date(a.getTime())) : "day" === b ? (a.setDate(a.getDate() + d), new Date(a.getTime())) : new Date(a.getTime() + lg(c)); return a; } function Kk(a, c, b) { b.getMonth || (b = new Date(b)); b = new Date(b.getTime()); var d = a.unit ? a.unit : a; c = a.multiplier ? a.multiplier : 1; "minute" === d && 1 < c && (d = "hour"); switch (d) { case "decade": b.setFullYear(10 * Math.floor(0.1 * b.getFullYear())); case "year": b.setMonth(0); case "month": b.setDate(1); case "week": if ("week" === d) { b.setDate(b.getDate() - b.getDay() + ww); break; } case "day": b.setHours(0); case "hour": b.setMinutes(0); case "minute": b.setSeconds(0); } b.setMilliseconds(0); return b; } function hf(a, c) { return { year: { year: c ? "2-digit" : "numeric" }, month: { month: c ? "numeric" : "short" }, day: { day: "numeric" }, weekday: { weekday: "short" }, hour: { hour: "numeric" }, minute: c ? { minute: "2-digit" } : { hour: "numeric", minute: "2-digit" }, second: c ? { second: "2-digit" } : { hour: "numeric", minute: "2-digit", second: "2-digit" }, millisecond: "fff", }[a]; } function Kh(a) { var c = B(a, Lk); a = Math.min.apply(Math, H(c)); c = Math.max.apply(Math, H(c)); for (var b = []; a < c + 1; a++) b.push(hf(Lh[a])); return b; } function fp(a) { var c = a.pair, b = c.major, d = c.minor, e = a.sigUnits, f = a.intervals; c = hf(b.unit); d = hf(d.unit); var g = c, h = d; e.major.length && e.minor.length ? 1 === a.intervals[0].length ? ((b = Math.min.apply(Math, H(B(e.major, Lk)))), (e = Math.min.apply(Math, H(B(e.minor, Lk)))), e--, 3 <= e && e--, e > b && (g = A.apply(null, Kh([Lh[b], Lh[e]])))) : ((a = Kh(e.major)), (e = Kh(e.minor)), 3 < a.length && a.pop(), "day" === b.unit && f[1].length >= f[0].length && A(c, hf("month")), a.length && f[1][0] > f[0][0] && (g = A.apply(null, a)), e.length && (h = d = A.apply(null, e))) : !e.major.length && e.minor.length && 1 === e.minor.length && "day" === e.minor[0] && (h = A(hf("month"), h)); return { major: c, minor: d, majorFirst: g, minorFirst: h }; } function gp(a) { var c = G(a, 2); a = c[1]; c = $a(B(c[0], Mk)); a = $a(B(a, Mk)); return { major: c, minor: a }; } function Mh(a, c, b, d) { var e = [], f = [], g = []; d = d.getTime(); var h = b.getTime(); h = d - h; var k = { exists: 0, close: 0 }, l = b; l.getMonth || (l = new Date(l)); var m = a.unit ? a.unit : a, n = a.multiplier ? a.multiplier : 1, p = Kk(a, 1, l); if (p.getTime() !== l.getTime()) for (; p.getTime() < l.getTime(); ) p = bc(p, { unit: m, multiplier: n }); for (l = m = p; l.getTime() <= d; ) f.push(l.getTime()), (l = bc(l, a)); e.push(f); if (c) { var q; l = m; l.getMonth || (l = new Date(l)); for ("week" === c.unit && (l = Kk(c, 1, l)); l > b; ) l = bc(l, { unit: c.unit, multiplier: -z(c.multiplier, 1) }); b = bc(l, c); b.setMilliseconds(0); for (l = b; l.getTime() <= d; ) { n = m = a = void 0; p = l.getTime(); var r = f; b = h / 20; if (0 > r.indexOf(p)) { if (r.length) { try { for (var u = ya(r), x = u.next(); !x.done; x = u.next()) { var v = x.value; if (void 0 === a || la(v, p) < la(a, p)) a = v; } } catch (y) { n = { error: y }; } finally { try { x && !x.done && (m = u.return) && m.call(u); } finally { if (n) throw n.error; } } a = la(a, p); } else a = void 0; b = t(a) && (a >= b ? void 0 : "close"); } else b = "exists"; (q = b) ? k[q]++ : g.push(l.getTime()); l = bc(l, c); } 1 < g.length && e.push(g); e.minorRemoval = k; } return e; } function Nh(a, c) { c = c || [ ["millisecond", [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]], ["second", [1, 2, 5, 10, 15, 30]], ["minute", [1, 2, 5, 10, 15, 30]], ["hour", [1, 2, 3, 4, 6, 8, 12]], ["day", [1, 2]], ["week", [1, 2]], ["month", [1, 2, 3, 4, 6]], ["year", null], ]; var b = c[c.length - 1], d = Jh[b[0]], e; a.unit && (a = lg(a)); for (e = 0; e < c.length; e++) { b = c[e]; d = Jh[b[0]]; var f = b[1]; if (c[e + 1] && a <= (d * f[f.length - 1] + Jh[c[e + 1][0]]) / 2) break; } return { unitRange: d, count: Math.max(1, Math.round(a / d)), unit: b[0] }; } function xw(a, c, b, d) { var e = yw(), f, g = function (b) { f = b = Mh(b.major, b.minor, a, c); return b[0].length + (b[1] ? b[1].length : 0); }, h, k = 0, l = 0; if (d) var m = (h = d.pair), n = g(d.pair), p = f; else for (; l < b; ) if ((h = e[k])) { l = g(h); if (l > b || 3 < f.minorRemoval.close) break; k++; m = h; n = l; p = f; } else break; return { pair: m, count: n, intervals: p, sigUnits: gp(p) }; } function Nk(a, c, b, d) { void 0 === d && (d = !0); a = new Ok(a); c = a.isInterval ? (d ? a.setRangeSnap(c, b) : a.setRange(c, b)) : a.getRanges(c, b); return B(c, function (b) { return B(b, function (b) { return b.getTime(); }); }); } function hp(a, c) { var b; return (b = a.offset) ? c.map(function (a) { return a.map(function (a) { return X(a.getTime() + b); }); }) : c; } function Pk(a, c, b) { void 0 === c && (c = "sum"); if ((!a || !a.length) && t(b)) return b; switch (c) { case "sum": return Ta(a); case "average": return (c = Ta(a)), null === c ? NaN : c / a.length; case "min": return Math.min.apply(Math, H(a)); case "max": return Math.max.apply(Math, H(a)); } } function zw(a, c) { if ("function" === typeof a.pop) return ip(function (b) { a.forEach(function (a) { return b(a.values); }); }) ? [{ points: jf(a, c) }] : a.map(function (b) { return { name: b.key, points: jf(b.values, c) }; }); var b = Object.keys(a); if (Qk(C(a, b[0]))) return [{ points: jf(a, c) }]; var d = []; b.forEach(function (b) { return d.push({ name: b, points: jf(a[b], c) }); }); return d; } function jf(a, c) { var b = "function" === typeof c, d = b ? function (b, a) { return c(a, b); } : Gb, e = function () { d = function (b) { return Pk(b, c); }; }; if ("function" === typeof a.pop) return ( !b && ip(function (b) { a.forEach(function (a) { return b(a.values); }); }) && e(), a.map(function (a) { if (b) a = d(a.values, a.key); else { var c = a.key; a = { x: "string" === typeof c && c.match(Rk) ? parseFloat(c) : c, y: d(a.values, a.key) }; } return a; }) ); var f = Object.keys(a); !b && Qk(C(a, f[0])) && e(); var g = []; f.forEach(function (c) { return g.push(b ? d(a[c], c) : { x: c, y: d(a[c], c) }); }); return g; } function jp(a, c, b) { return "object" === typeof c && c.pattern ? Aw(a, c, b) : kp(lp(a, c, void 0, b)); } function lp(a, c, b, d) { c = Sk(c); var e = {}; b && b.forEach(function (b) { e[b] = []; }); b = 0; for (var f = a.length; b < f; b++) { var g = a[b], h = c(g); null !== h && Bw(e, h, g); } d && w(e, function (b, a) { b = Cw(d); return (e[a] = b(e[a])); }); return e; } function Aw(a, c, b) { a = Dw(a, c, b); c = a.notDates ? parseInt : function (b) { return X(parseInt(b)); }; delete a.notDates; return kp(a, c); } function Dw(a, c, b) { var d, e = c.pattern, f = c.range, g = Sk(c.key); c = []; if (!e) throw "CalendarPattern Required"; var h = new Ok(e), k = "numeric" === h.intervalType ? Gb : function (b) { return b.getTime(); }; if (f) var l = [X(f[0]), X(f[1])], m = h.setRange(X(f[0]), X(f[1])); else { try { for (var n = ya(a), p = n.next(); !p.done; p = n.next()) { var q = ed(g(p.value)); Ha(q) || c.push(q); } } catch (u) { var r = { error: u }; } finally { try { p && !p.done && (d = n.return) && d.call(n); } finally { if (r) throw r.error; } } r = Math.min.apply(Math, H(c)); d = Math.max.apply(Math, H(c)); l = [X(r), X(d)]; m = h.setRangeSnap(X(r), X(d)); } r = m.map(function (b) { return k(b[0]); }); a = lp( a, function (b, a) { b = ed((a || g)(b)); a = h.isInside(b); if (-1 === a) { if (!Kb(l, b)) return null; Ha(ed(b)) || (a = m.length - 1); } return k(m[a][0]); }, r, b ); "numeric" === h.intervalType && (a.notDates = !0); return a; } function Tk(a) { var c, b, d, e = function (a, e) { if ("key" === a[0]) { var f = void 0; !b && c ? ((b = !0), (f = function (b) { return jp(b, a[1], c[1]); })) : (f = function (b) { return jp(b, a[1], e); }); b = !0; if (d) { var g = f, h = d[1]; f = function (b) { b = sa(g(b), function (b) { return b.key; }); !0 === h && b.reverse(); return b; }; d = void 0; } return f; } if ("rollup" === a[0]) return (c = a), Gb; if ("sortKey" === a[0]) return (d = a), Gb; if ("reverse" === a[0]) return function (b) { return b.reverse(); }; }; a = a.calls.slice(0); for (var f = a.length - 1, g = Gb; -1 < f; ) g = e(a[f--], g); return g; } function Ew(a, c, b, d) { wh(a, c, b, d, Oh); } function Ph(a) { return B(a, function (a) { return a.match(Rk) ? "number" : Ha(new Date(a).getTime()) ? "string" : "date"; }); } function Uk(a) { if (1 < a.length) { var c = Ph(a[0]), b = Ph(a[1]); if ( (function (b, a) { return !S(b, function (b) { return b !== a; }); })(c, "string") ) { if (3 > a.length) return !Qe(c, b); if (2 < a.length) return (a = Ph(a[2])), !Qe(c, a); } } } function Vk(a) { var c = Math.min(3, a.length), b = []; ob(c, function (c) { return (b[c] = Ph(a[c])); }); if ( !S(b, function (b) { return S(b, function (b) {}); }) ) { for (var d = void 0, e = 0; e < b.length - 1 && !(d = !Qe(b[e], b[e + 1])); e++); var f = ["date", "number", "string", "undefined"]; if (d) { var g = []; ob(b[0].length, function (a) { var d = []; ob(c, function (c) { d.push(b[c][a]); }); d.sort(function (b, a) { return Sj(f.indexOf(b), f.indexOf(a)); }); g.push(d); }); return B(g, function (b) { return b[0]; }); } return b[0]; } return []; } function Oh(a, c, b) { void 0 === c && (c = ","); var d = [], e, f, g, h = !1; for (e = f = g = 0; g < a.length; g++) { var k = a[g], l = a[g + 1]; d[e] = d[e] || []; d[e][f] = d[e][f] || ""; '"' === k && h && '"' === l ? ((d[e][f] += k), ++g) : '"' === k ? (h = !h) : k !== c || h ? "\r" !== k || "\n" !== l || h ? "\n" !== k || h ? "\r" !== k || h ? (d[e][f] += k) : (++e, (f = 0)) : (++e, (f = 0)) : (++e, (f = 0), ++g) : ++f; } !b && Uk(d) && (d.shift(), Uk(d) && d.shift()); return d; } function mp(a, c) { var b = { number: function (b) { b = parseFloat(b); return Ha(b) ? null : b; }, string: function (b) { return b; }, date: function (b) { return new Date(b).getTime(); }, "": function (b) { return b; }, }, d = function (a) { return B(a, function (a, d) { return b[c[d]](a); }); }, e = function (b) { w(a[b], function (b) { b = I(b); if ("number" === b || "date" === b || "object" === b) return (f = !0), !1; }); }, f = !1; if (a.length) { ob(3, function (b) { return e(b); }); if (f) return a; c = c || Vk(a); return B(a, d); } } function np(a, c) { "string" === I(a) && c && (a = { mapTo: a, data: c }); var b = { number: function (b) { return parseFloat(b); }, string: function (b) { return b; }, dateNumber: function (b) { return new Date(parseInt(b)); }, date: function (b) { return new Date(b); }, "": function (b) { return b; }, }, d, e = a.csv, f = a.data; c = a.intervals; var g = I(f), h = a.types, k = a.newline || Fw, l = a.mapTo || "x,y,z", m = a.delimiter || ","; h && (h = h.split(",")); var n = function (b) { return Un(b) ? "number" : "string"; }, p = function (b, a) { return "date" === h[a] ? { number: "dateNumber", string: "date" }[n(b)] : h[a]; }, q = function (b) { return h ? B(b, p) : B(b, n); }, r = function (b) { return B(b.split(m), function (b, a) { return u[a](b); }); }; e || "string" !== g || (e = f); if (e) { e = e.split(k); a.header && (e = e.splice(0, 1)); h = q(e[Math.min(1, e.length - 1)].split(m)); var u = B(h, function (a) { return b[a]; }); f = B(e, r); } f && (d = op(l, f)); c && w(c, function (a, c) { var e = a.start, f = a.step, g = b[a.type || ""]; w(d, function (b, a) { return (b[c] = g(e + f * a)); }); }); return d; } function op(a, c) { function b(b, a, c) { b[a] = c; } function d(b, a, c) { Z(b, a, c); } a = a.split(","); var e = [], f = [], g, h, k, l = 0; for (g = a.length; l < g; l++) (a[l] = a[l].trim()), (f[l] = -1 < a[l].indexOf(".") ? d : b); var m = 0; for (h = c.length; m < h; m++) { g = c[m]; l = {}; var n = 0; for (k = g.length; n < k; n++) f[n](l, a[n], g[n]); e[m] = l; } return e; } function pp(a, c) { void 0 === c && (c = {}); var b = [], d = Oh(a, c.delimiter, !0); ob(2, function (a) { return Uk(d) && b.push(d.shift()); }); var e = Vk(d); a = { raw: a, headers: b, types: e, split: d }; c.skipCoerce || (a.data = mp(d, e)); return a; } function Wk(a, c, b) { void 0 === b && (b = {}); a = pp(a, { delimiter: c, skipCoerce: !!b.coerce }); var d = b; void 0 === d && (d = {}); b = d.map; c = d.coerce; var e = a.data, f = a.headers, g = a.types; d.columns && (f = [d.columns]); e = e || a.split; if (0 < f.length && f[0].length && e[0].length === f[0].length) { var h = f[0]; d = []; for (var k = 0; k < e.length; k++) { for (var l = e[k], m = {}, n = 0; n < l.length; n++) m[h[n]] = l[n]; l = b ? b(m) : m; d.push(c ? c(l, k, g) : l); } d.columns = h; 1 < f.length && (d.headers = f); } else d = a.data; d && (d.types = a.types); return d; } function Xk(a, c, b) { void 0 === b && (b = {}); (b = b.map) && (a = a.map(b)); var d = pa(a[0]), e = function (b, a) { return a.map(function (a) { return b[a]; }); }; a = a.map(function (b, a) { return e(b, d).join(c); }); a.splice(0, 0, d.join(c)); return a.join("\n"); } function Gw(a, c) { var b = ba.body, d = 1e3, e = ba.createElement("span"); e.innerHTML = "QW@HhsXJ"; e.style.position = "absolute"; e.style.top = e.style.left = "-9999px"; e.style.visibility = "hidden"; e.style.fontFamily = "Courier New"; e.style.fontSize = "250px"; b.appendChild(e); var f = e.offsetWidth; e.style.fontFamily = a + ",Courier New"; var g = function () { f !== e.offsetWidth ? (b.removeChild(e), c(!0)) : 0 > d ? (b.removeChild(e), c(!1)) : (setTimeout(g, 50), (d -= 50)); }; g(); } function Dd(a) { return a ? (Yk[a] || (Yk[a] = 0), "_jsc_" + a + Yk[a]++) : "_jsc" + Hw++; } function qp(a) { return (a || "") + Math.random().toFixed(5).slice(2); } function Iw(a) { return a ? -1 < a.indexOf("_jsc") : !1; } function kf(a, c) { c = c || 1; return a && a.pop ? [na(a[0], c), na(a[1], c)] : t(a.x) ? { x: na(a.x, c), y: na(a.y, c) } : a; } function ab(a, c, b) { a = kf(a.slice(0), b); c = kf(c.slice(0), b); if (a[0] === c[0] && a[1] === c[1]) return !0; } function rp(a, c, b, d, e) { e = Math.min((a - c) / 2, e); (e / (Zk * c)) * sp > Math.abs(b - d) && (e = ((d - b) / sp) * c * Zk); return { cornerR: e, oCornerR: ((a + c) / 2 / c) * e }; } function cc(a, c) { var b = c[0] - a[0]; a = c[1] - a[1]; return Math.sqrt(b * b + a * a); } function tp(a, c, b, d, e, f, g, h, k, l) { var m = Math.PI, n = (120 * m) / 180, p = (m / 180) * (+e || 0), q = [], r = function (b, a, c) { var d = b * sb.cos(c) - a * sb.sin(c); b = b * sb.sin(c) + a * sb.cos(c); return { x: d, y: b }; }; if (l) { y = l[0]; var u = l[1]; f = l[2]; v = l[3]; } else { u = r(a, c, -p); a = u.x; c = u.y; u = r(h, k, -p); h = u.x; k = u.y; u = (a - h) / 2; y = (c - k) / 2; v = (u * u) / (b * b) + (y * y) / (d * d); 1 < v && ((v = sb.sqrt(v)), (b *= v), (d *= v)); v = b * b; var x = d * d; v = (f == g ? -1 : 1) * sb.sqrt(up((v * x - v * y * y - x * u * u) / (v * y * y + x * u * u))); f = (v * b * y) / d + (a + h) / 2; var v = (v * -d * u) / b + (c + k) / 2, y = sb.asin(((c - v) / d).toFixed(9)); u = sb.asin(((k - v) / d).toFixed(9)); y = a < f ? m - y : y; u = h < f ? m - u : u; 0 > y && (y = 2 * m + y); 0 > u && (u = 2 * m + u); g && y > u && (y -= 2 * m); !g && u > y && (u -= 2 * m); } up(u - y) > n && ((q = u), (m = h), (x = k), (u = y + n * (g && u > y ? 1 : -1)), (h = f + b * sb.cos(u)), (k = v + d * sb.sin(u)), (q = tp(h, k, b, d, e, 0, g, m, x, [u, q, f, v]))); f = u - y; e = sb.cos(y); n = sb.sin(y); g = sb.cos(u); m = sb.sin(u); u = sb.tan(f / 4); b = (4 / 3) * b * u; u *= (4 / 3) * d; d = [a, c]; a = [a + b * n, c - u * e]; c = [h + b * m, k - u * g]; h = [h, k]; a[0] = 2 * d[0] - a[0]; a[1] = 2 * d[1] - a[1]; if (l) return [a, c, h].concat(q); q = [a, c, h].concat(q).join().split(","); l = []; h = 0; for (k = q.length; h < k; h++) l[h] = h % 2 ? r(q[h - 1], q[h], p).y : r(q[h], q[h + 1], p).x; return l; } function mg(a) { return B(a, function (a) { return [a.x, a.y]; }); } function $k(a, c, b) { if (t(C(a, "0.0"))) for (var d = [], e = 0, f = a.length; e < f; e++) d.push($k[(a[e], c[e], b)]); else for (d = [], e = 0, f = a.length; e < f; e++) d.push(Y(a[e], c[e], 0, 1, b)); return d; } function xa(a) { return a.join ? a.join(" ").replace(/,/g, " ") : a; } function vp(a, c, b) { var d = 0; for (a = a.shapes; d < a.length; d++) { for (var e = a[d], f = 0, g = e.items; f < g.length; f++) c(g[f], f, d); b && b(e, d); } } function al(a, c) { var b = "", d; vp(a, function (a, f, g) { var e = a[0]; b += d !== e ? re[e] : " "; d = e; if (1 !== d) for (e = 2; e < a.length; e++) { var k = c ? c(a[e], e, f, g) : a[e]; b += (2 < e ? " " : "") + (k[0] + " " + k[1]); } }); return b; } function Mb(a) { if (a.bboxValue) return a.bboxValue; var c = {}; w(a.items, function (b) { wp[b[0]] && wp[b[0]](c, b); }); a.bboxValue = [c.xMin, c.yMin, c.xMax - c.xMin, c.yMax - c.yMin]; a.minMaxResult = c; return a.bboxValue; } function bl(a, c) { var b = G(c, 2); c = b[0]; b = b[1]; var d = Q(a.xMax); if (c > a.xMax || d) a.xMax = c; if (c < a.xMin || d) a.xMin = c; if (b > a.yMax || d) a.yMax = b; if (b < a.yMin || d) a.yMin = b; return a; } function xp(a, c) { return bl(a, c[2]); } function Jw(a, c) { var b = a.bbox(), d = vv(b, c); c = Hk(Gc(c), d[0], d[1]); var e = ha(c); return al(a, function (a) { return Qh(e, b, a); }); } function yp(a, c, b) { var d = 0; b && a.clearCache(!0); b = 0; for (a = a.shapes; b < a.length; b++) d += se(a[b], c); return d; } function se(a, c) { if (t(a.lengthValue)) return a.lengthValue; for (var b = 0, d = 0, e = a.items; d < e.length; d++) { var f = e[d], g = f; if (t(f.lengthValue)) f = f.lengthValue; else a: { var h = c; switch (f[0]) { case 1: case 2: f = cc(f[1], f[2]); break a; case 3: f = h ? Wj(f.slice(1)) : (cc(f[1], f[2]) + cc(f[4], f[3]) + cc(f[3], f[2]) + cc(f[1], f[4])) / 2; break a; default: f = 0; } } g = g.lengthValue = f; b += g; } return (a.lengthValue = b); } function lf(a, c) { if (3 === a[0]) { var b = a[1], d = a[4]; if (0 === c) c = b; else if (1 === c) c = d; else { a = G([b, a[2], a[3], d], 4); var e = a[1], f = a[2]; d = a[3]; b = G(a[0], 2); a = b[0]; b = b[1]; var g = G(d, 2); d = g[0]; g = g[1]; var h = G(e, 2); e = h[0]; h = h[1]; var k = G(f, 2); f = k[0]; k = k[1]; var l = 1 - c, m = cl(l, 3), n = cl(l, 2), p = c * c * c; c = [m * a + 3 * n * c * e + 3 * l * c * c * f + p * d, m * b + 3 * n * c * h + 3 * l * c * c * k + p * g]; } return c; } return $k(a[1], a[2], c); } function zp(a) { a.length(); var c = [], b = 0; for (a = a.shapes; b < a.length; b++) c.push.apply(c, Ap(a[b])); return c; } function Ap(a) { if (a.flatPoints) return a.flatPoints; var c = []; se(a); for (var b, d = 0, e = a.items; d < e.length; d++) { var f = e[d]; if (3 === f[0]) { b = Math.max(2, Math.floor(f.lengthValue / 10)); var g = f.lengthValue / (b + 1); g = Y(0, 1, 0, f.lengthValue, g); for (var h = 1; h <= b; h++) c.push(lf(f, h * g)); c.push(f[4]); } else c.push(f[2]); } return (a.flatPoints = c); } function Hc(a, c) { void 0 === c && (c = 6); if (a.positions) return a.positions; for (var b = [], d = se(a), e = 0, f = 0, g = a.items; f < g.length; f++) { var h = g[f]; e += h.lengthValue; h = h.position = t(h.position) ? h.position : na(e / d, c); b.push(h); } return (a.positions = b); } function Bp(a, c, b) { var d = []; if (3 === a[0]) { if (((a = ov(a[1], a[2], a[3], a[4], c, b)), a.length)) return ( w(a, function (b) { Ha(b[0]) || d.push({ x: b[0], y: b[1], onLine1: !0, onLine2: !0 }); }), d ); } else return d.push(Te(a[1], a[2], c, b)), d; d.push({ x: 0, y: 0, onLine1: !1, onLine2: !1, isNaN: !0 }); return d; } function Rh(a, c, b, d) { var e, f; void 0 === d && (d = 6); var g = Hc(a, d), h = se(a), k = [], l = []; a = a.items; for (var m = 1, n = a.length; m < n; m++) { var p = a[m], q = p.lengthValue, r = Bp(p, c, b), u = g[m - 1]; try { for (var x = ((e = void 0), ya(r)), v = x.next(); !v.done; v = x.next()) { var y = v.value; if (!y.isNaN) if (y.onLine1 && y.onLine2) { var D = cc(p[1], [y.x, y.y]), E = na(D / q, d); Cp(m, y, E, na(u + D / h, d), l, k); } else { var F = P(p); r = b; 0 === Xn(kf(c), kf(F), kf(r)) && Cp(m, y, 1, na(u + q / h, d), l, k); } } } catch (R) { e = { error: R }; } finally { try { v && !v.done && (f = x.return) && f.call(x); } finally { if (e) throw e.error; } } } return l; } function Cp(a, c, b, d, e, f) { var g = kf([c.x, c.y]).join(" "); e.push({ i: a, intersect: c, percOfSegment: b, percOfShape: d }); f.push(g); } function dl(a) { if (a.vertices) return a.vertices; var c = [], b = a.items, d = b.length - 1; w(b, function (a, f) { var e = P(a); f === d ? 1 === a[0] || ab(e, P(b[0])) || c.push(e) : (f && ab(a[1], e)) || c.push(e); }); return (a.vertices = c); } function Kw(a) { if (a.centroid) return a.centroid; var c = dl(a), b = c.length, d = 0, e = 0; w(c, function (b) { d += b[0]; e += b[1]; }); a.centroid = [d / b, e / b]; return a.centroid; } function ng(a) { if (a.center) return a.center; a.center = va(Mb(a)); return a.center; } function el(a, c, b) { b = b || Mb(a); a = ng(a); return Qh(c, b, a); } function og(a, c) { if (c) return ng(a); c = Kw(a); return Zf(c, dl(a)) ? c : ng(a); } function Dp(a) { if (t(a.direction)) return a.direction; for (var c = dl(a), b = 0, d = 0, e = c.length; d < e; d++) { var f = c[d], g = c[(d + 1) % c.length]; b += (g[0] - f[0]) * (g[1] + f[1]); } a.direction = 0 < b ? "cw" : "ccw"; return a.direction; } function Ep(a, c) { if (t(a.orientation)) return a.orientation; c = og(a, c); a.orientation = Ia(c, P(a.items[0])); return a.orientation; } function Sh(a, c, b, d) { var e = a[0]; return 0 === e ? [] : 3 === e || (1 === e && 3 === c[0]) ? ((a = 3 === e ? [a[1], a[2], a[3], a[4]] : [a[1], a[1], a[2], a[2]]), 0 < b && ((b = Xj(a, b)), (a = b.slice(3, b.length))), 1 > d && ((d = Xj(a, d)), (a = d.slice(0, 4))), a) : [lf(a, b), lf(a, d)]; } function Lw(a) { a.lengthValue = void 0; } function Mw(a) { a.lengthValue = void 0; a.flatPoints = void 0; } function Nw(a) { var c, b = []; if ((a = a.match(Ow))) try { for (var d = ya(a), e = d.next(); !e.done; e = d.next()) { var f = e.value, g = f.match(Pw); g = g ? g.map(function (b) { return Number(b); }) : []; b.push([f[0], g]); } } catch (k) { var h = { error: k }; } finally { try { e && !e.done && (c = d.return) && c.call(d); } finally { if (h) throw h.error; } } return b; } function Fp(a, c) { return [2 * c[0] - a[0], 2 * c[1] - a[1]]; } function pg() { return new mf({ hasErrors: !0 }); } function Gp(a, c, b, d) { var e = a.args; c = c || 0; for (var f = e.length; f - c > b - 1; c += b) d(a, c, e); } function nf(a, c, b, d) { Gp(a, d, 2 * c, function (a, d) { b( a, 1 === c ? Th(a, d) : Pn(c, function (b) { return Th(a, d + 2 * b); }) ); }); } function Th(a, c) { return a.isRelative ? [a.args[c] + (a.endPoint ? a.endPoint[0] : 0), a.args[c + 1] + (a.endPoint ? a.endPoint[1] : 0)] : [a.args[c], a.args[c + 1]]; } function Qw(a) { var c; a = Nw(a); if (!a.length) return pg(); var b = Uh(); try { for (var d = ya(a), e = d.next(); !e.done; e = d.next()) { var f = e.value, g = fl[f[0]]; b.args = f[1]; b.isRelative = g.isRelative; b.cIsClosed && "M" !== g.command && Hp(b); if (b.args.length < g.argsCount) return pg(); Rw[g.command](b); if (b.firstCommand && !b.startPoint) return pg(); b.lastCommand = f; b.firstCommand = !1; } } catch (k) { var h = { error: k }; } finally { try { e && !e.done && (c = d.return) && c.call(d); } finally { if (h) throw h.error; } } return Vh(b); } function gl(a, c, b) { if (!c || 1 === b || 0 === b || 3 !== a[0]) return b; a = a.slice(1); var d = void 0; b = void 0; void 0 === d && (d = 1); void 0 === b && (b = 0.01); var e = d / 2; d -= e; var f; for (f = Wj(a, d); Math.abs(f - c) > b; ) (e /= 2), (d += (f < c ? 1 : -1) * e), (f = Wj(a, d)); return d; } function Ip(a, c) { switch (c[0]) { case 0: qg(a, c[2]); break; case 1: hl(a); break; case 2: fd(a, c[2]); break; case 3: te(a, c.slice(2)); } } function Uh() { return { firstCommand: !0, shapes: [] }; } function Vh(a) { il(a); var c = a.startPoint, b = a.endPoint; return new mf({ hasCurves: a.hasCurves, hasLines: a.hasLines, isClosed: c[0] === b[0] && c[1] === b[1], shapes: a.shapes }); } function Jp(a, c, b) { if (c[0][0].length) for (var d = 0; d < c.length; d++) Jp(a, c[d], b); else { qg(a, c[0]); for (d = 1; d < c.length; d++) fd(a, c[d]); !0 !== b && hl(a); } } function il(a) { a.cShape.hasLines = a.cHasLines; a.cShape.hasCurves = a.cHasCurves; a.cShape.isClosed = a.cIsClosed; a.cHasLines = a.cHasCurves = a.cStartPoint = a.cIsClosed = void 0; } function fd(a, c) { Wh(a, 2, [c]); a.hasLines = a.cHasLines = !0; } function te(a, c) { Wh(a, 3, c); a.hasCurves = a.cHasCurves = !0; a.lastCurve = c; } function Sw(a, c) { var b = a.lastCurve && 3 === P(a.cShape.items)[0] ? Fp(a.lastCurve[1], a.endPoint) : a.endPoint; c.unshift(b); te(a, c); } function Kp(a, c) { var b = a.endPoint[0], d = a.endPoint[1], e = c[0][0], f = c[0][1], g = c[1][0], h = c[1][1]; a.lastQ = c[0]; te(a, [[b + (2 * (e - b)) / 3, d + (2 * (f - d)) / 3], [g + (2 * (e - g)) / 3, h + (2 * (f - h)) / 3], c[1]]); } function Tw(a, c) { Kp(a, [Fp(a.lastQ, a.endPoint), c]); } function Wh(a, c, b) { c = [c, a.endPoint]; c.push.apply(c, b); a.endPoint = P(b); a.cShape && a.cShape.items.push(c); } function Hp(a, c) { a.cShape && il(a); c && (a.endPoint = c); a.cStartPoint = a.endPoint; a.lastCurve = null; a.cShape = { cStartPoint: a.cStartPoint, items: [] }; a.shapes.push(a.cShape); } function qg(a, c) { Hp(a, c || Th(a, 0)); a.firstCommand && (a.startPoint = a.cStartPoint); Wh(a, 0, [a.endPoint]); c || nf(a, 1, fd, 2); } function hl(a) { Wh(a, 1, [a.cStartPoint]); a.cIsClosed = !0; } function Uw(a, c, b) { c = Th(a, c + 5); var d = a.endPoint; if (d[0] === c[0] && d[1] === c[1]) return !0; var e = tp(d[0], d[1], b[0], b[1], b[2], b[3], b[4], c[0], c[1]); b = function (b) { return [e[b], e[b + 1]]; }; d = e.length; e[d - 2] = c[0]; e[d - 1] = c[1]; for (c = 0; 5 < d - c; c += 6) te(a, [b(c), b(c + 2), b(c + 4)]); } function Aa(a) { return a ? Qw(a.join ? a.join(" ") : a) : new mf(); } function Ic(a) { if (a) { var c; if (a.length && a[0].push) { var b = Uh(); try { for (var d = ya(a), e = d.next(); !e.done; e = d.next()) Ip(b, e.value); } catch (g) { var f = { error: g }; } finally { try { e && !e.done && (c = d.return) && c.call(d); } finally { if (f) throw f.error; } } a = Vh(b); } else a = pg(); } else a = new mf(); return a; } function Ed(a, c, b) { if (1 < b) { var d = 1 > c ? Ed(a, c, 1) : "", e = 0 < b % 1 ? Ed(a, 0, b % 1) : ""; b = P(a.shapes).isClosed; if (d) if (e) { a = Aa(d); d = Aa(e); a = a.items(); e = d.items(); var f = P(a); d = ""; c = 0; for (var g = e.length; c < g; c++) { var h = e[c]; b && c === g - 1 ? ((d = "Z"), (3 !== h[0] && (ab(P(a[0]), P(h)) || ab(P(h), P(k)))) || a.push(h)) : c ? ab(P(h), P(k)) || a.push(h) : ab(P(h), P(f)) || a.push(h); var k = h; } b = []; k = 0; for (e = a.length; k < e; k++) { f = a[k]; k === a.length - 1 ? (3 !== f[0] && ab(P(f), P(a[0]))) || b.push(f) : k ? ab(P(f), P(l)) || b.push(f) : b.push(f); var l = f; } l = Ic(b).toString() + d; } else l = d; else l = e; return l; } l = a.items(); k = a.length(); g = Lp(l, k, c); k = Lp(l, k, b); h = l[g.i]; e = l[k.i]; f = g.i; d = []; if (0 < c) { if ( ((c = Sh(l[g.i], l[g.i - 1], g.percOfSegment, 1)), d.push("M", c[0].join(" ")), c.shift(), 1 === h[0] ? ((h = l[g.i - 1]), d.push(re[h[0]])) : d.push(re[h[0]]), d.push(c.join(" ").replace(/,/g, " ")), f++, k.i === g.i && 1 === k.percOfSegment) ) return d.join(" "); } else d = ["M", g.xy.join(" ")]; c = f; for (g = k.i; c < g; c++) d.push(Mp(l[c])), f++; 1 > b ? ((c = Sh(l[k.i], l[k.i - 1], 0, k.percOfSegment)), c.shift(), 1 === e[0] ? ((h = l[k.i - 1]), d.push(re[h[0]])) : d.push(re[e[0]]), d.push(c.join(" ").replace(/,/g, " "))) : ((f = k.i), (b = l[f]), 1 === b[0] ? (a.hasCurves ? ((a = P(b)), d.push("C", P(l[k.i - 1]).join(" "), a.join(" "), a.join(" "))) : d.push("L", P(b).join(" "))) : d.push(Mp(b))); return d.join(" "); } function Vw(a, c, b, d) { var e = a.items(); if (0 === c && 0 === b) return Ic(e); d = "caps" === (d && d.mode); var f = yp(a, !0, !0); a = jl(e, f, c / f); b = jl(e, f, (f - b) / f); c = Uh(); var g = !1; f = !1; var h = a.i, k = b.i; d && (1 < h && ((a.i = 2), (a.percOfSegment = 0), (g = !0)), k < e.length - 1 && ((b.i = e.length - 2), (b.percOfSegment = 1), (f = !0))); d = a.i === b.i; var l = e[a.i]; g ? (0 !== l[0] && qg(c, l[1]), (h = 1)) : ((a = Sh(l, e[a.i - 1], gl(l, a.toLen, a.percOfSegment), d ? gl(l, b.toLen, b.percOfSegment) : 1)), qg(c, a[0]), 3 === l[0] ? te(c, a.slice(1)) : fd(c, a[1])); f && (k = 3 === e[e.length - 1][0] ? e.length : e.length - 1); for (a = h + 1; a < k; a++) Ip(c, e[a]); f || d || ((d = Sh(e[b.i], e[b.i - 1], 0, gl(e[b.i], b.toLen, b.percOfSegment))), 3 === e[b.i][0] ? te(c, d.slice(1)) : fd(c, d[1])); return Vh(c); } function Lp(a, c, b) { c = jl(a, c, b); c.xy = lf(a[c.i], c.percOfSegment); return c; } function jl(a, c, b) { if (0 === b) return { i: 1, percOfSegment: b }; if (1 === b) return { i: a.length - 1, percOfSegment: b }; c *= b; b = 0; for (var d, e = 1, f = a.length; e < f; e++) { var g = a[e]; if (g.lengthValue) { var h = void 0; void 0 === h && (h = Tj); if ((h = b < c || Qj(b, c, h))) { h = b + g.lengthValue; var k = void 0; void 0 === k && (k = Tj); h = h > c || Qj(h, c, k); } if (h) { var l = na(Y(0, 1, b, b + g.lengthValue, c), 6), m = e; d = c - b; break; } b += g.lengthValue; } } 1 === l && m < a.length - 1 && ((d = l = 0), m++); return { i: m, percOfSegment: l, toLen: d }; } function Mp(a) { return 1 === a[0] ? "Z" : xa([re[a[0]], a.slice(2).join(" ")]); } function eb(a, c) { if (a) if ((void 0 === c && (c = {}), a.length && a[0].push)) { var b = Uh(); Jp(b, a, c.isOpen); il(b); a = Vh(b); } else a = pg(); else a = new mf(); return a; } function Np(a) { var c = function (b) { return 0 === b[2] && 0 === b[3]; }, b = "string" === typeof a; return !a || a.hasErrors ? !0 : !b && a.bbox ? c(a.bbox()) : a.arcShape ? 0 === a.arcShape.r : b || a.push ? c(kl(a)) : !0; } function Ww(a) { var c = [], b = 0; for (a = a.shapes; b < a.length; b++) c.push(Ic(a[b].items)); return c; } function Op(a) { if (Q(a.isClose)) { var c = P(a.items), b = a.items[0], d; !(d = 1 === c[0]) && (d = 2 < a.items.length) && ((b = b[1]), (c = P(c)), (d = b[0] === c[0] && b[1] === c[1])); a.isClose = d; } return a.isClose; } function ll(a, c, b, d, e) { var f = e.start, g = e.skipEndFix ? e.end : e.end - 0.001, h = e.caps || {}, k = e.r || b || d; b = e.innerR; d = e.open; var l = (h.start || h.left || "").toLowerCase(); h = (h.end || h.right || "").toLowerCase(); var m = e.end - f < Xh ? 0 : 1, n = e.cornerR, p = n && "gap" !== l && "flat" !== l, q = n && "gap" !== h && "flat" !== h; if (n && (p || q)) { var r = [a, c], u = rp(k, b, f, g, n), x = u.cornerR, v = u.oCornerR; u = k - v; var y = b + x, D = yb((x / (Pp * b)) * 360), E = yb((v / (Pp * k)) * 360); x = Jb(r, f, u); v = Jb(r, g, u); u = Jb(r, f, y); y = Jb(r, g, y); var F = Jb(r, f + D, b), w = Jb(r, g - D, b); D = Jb(r, f + E, k); r = Jb(r, g - E, k); } var cb = Math.cos(f), wa = Math.sin(f), U = Math.cos(g), M = Math.sin(g); e = e.ccw; var Jc = q ? r : [a + k * U, c + k * M]; r = p ? D : [a + k * cb, c + k * wa]; E = ["M", r[0], r[1], "A", k, k, 0, m, e ? 0 : 1, Jc[0], Jc[1]]; var gd = "insideround" === h; t(b) && ((k -= b), (U = q ? w : [a + b * U, c + b * M]), (a = p ? F : [a + b * cb, c + b * wa]), "round" === h || gd ? ((c = Uj(Jc, U)), (g = Kc(c[0], c[1], k / 2, g, g + Xh, gd)), E.push.apply(E, H(g))) : "gap" === h ? E.push.apply(E, H(["M", U[0], U[1]])) : q ? E.push.apply(E, H(["A", n, n, 0, 0, 1, v[0], v[1], "L", y[0], y[1], "A", n, n, 0, 0, 1, w[0], w[1]])) : E.push.apply(E, H([d ? "M" : "L", U[0], U[1]])), E.push.apply(E, H(["A", b, b, 0, m, e ? 1 : 0, a[0], a[1]])), (gd = "insideround" === l), "round" === l || gd ? ((c = Uj(r, a)), (g = Kc(c[0], c[1], k / 2, f + Xh, f, gd)), E.push.apply(E, H(g))) : p ? E.push("A", n, n, 0, 0, 1, u[0], u[1], "L", x[0], x[1], "A", n, n, 0, 0, 1, D[0], D[1]) : "gap" !== l && "gap" === h && E.push.apply(E, H(["L"], r)), "gap" === h || "gap" === l) && (d = !0); E.push(d ? "" : "Z"); return E; } function Kc(a, c, b, d, e, f) { return ll(a, c, b, b, { start: d, end: e, open: !0, ccw: f }).slice(3, 11); } function Yh(a, c, b, d, e) { return eb( [ [a, c], [a + b, c], [a + b, c + d], [a, c + d], ], e ); } function Qp(a, c, b, d, e) { void 0 === e && (e = {}); var f = G(Rp(b, d, e), 2); return Xw(a, c, b, d, f[0], f[1], e.callout); } function Yw(a, c, b) { void 0 === b && (b = {}); a = G(Rp(a, c, b), 2); var d = a[0]; a = a[1]; c = Math.max; b = function (b) { d = b.radius || d; return { round: d - Math.cos(Math.PI / 4) * d, cut: d / 2, square: 0, callout: 0 }[b.type || b]; }; return [c(b(a[0]), b(a[3])), c(b(a[0]), b(a[1])), c(b(a[1]), b(a[2])), c(b(a[2]), b(a[3]))]; } function Rp(a, c, b) { a = Math.min(a / 2, c / 2); var d = Math.min(z(b.r, b.radius, 5), a); c = Q(z(b.r, b.radius)) ? "square" : "round"; b = B(b.corners || [c, c, c, c], function (b) { return b.r ? ((d = b.r), b.type) : b; }); return [Math.min(d, a), b]; } function Xw(a, c, b, d, e, f, g) { var h = Math.PI; a = G(Yb([a, c, b, d]), 4); var k = a[0], l = a[1], m = a[2], n = a[3], p = [], q, r = "", u, x, v, y, D, E, F; g && (g.pop || (g = [g]), w(g, function (b) { var a = b.position; b = b.size; u = ra([0, 0], 45, b[0])[0]; var c = G([Tp(a[0]), Tp(a[1])], 2), d = c[0]; c = c[1]; r += (c ? (0 === a[1] ? "T" : "B") : "") + (d ? (0 === a[0] ? "L" : "R") : ""); t((F = Zw[r])) ? (f[F] = { type: "callout", size: b, radius: u }) : (q = c ? a[0] : d ? a[1] : void 0); p.push({ name: r, pos: q, size: b }); })); g = function (b) { v = n - b; y = k + b; D = m - b; E = l + b; x = b; }; var R = [], cb, wa, U, M, Jc = []; a = function (b, a, c, d, e, f, g) { R.push(R.length ? "L" : "M", a); switch (b.type || b) { case "square": R.push("L", c, "L", d); break; case "round": R.push.apply(R, H(Kc(e[0], e[1], x, f, g))); break; case "cut": R.push("L", d); break; case "callout": Jc.push((M = Jb(e, (f + g) / 2, b.size[1]))), R.push("L", M, "L", d); } }; c = function (b, a, c) { cb = b.size[0] / 2; wa = Y(a + cb, c - cb, 0, 1, b.pos); U = Y(a, c, 0, 1, b.pos); }; b = function (b, a, c) { Jc.push(a); R.push("L", b, "L", a, "L", c); }; d = f[0]; g(d.radius || e); a(d, [k, E], [k, l], [y, l], [y, E], h, (3 * h) / 2); if ((d = S(p, { name: "T" }))) c(d, y, D), b([wa - cb, l], [U, l - d.size[1]], [wa + cb, l]); d = f[1]; g(d.radius || e); a(d, [D, l], [m, l], [m, E], [D, E], -h / 2, 0); if ((d = S(p, { name: "R" }))) c(d, E, v), b([m, wa - cb], [m + d.size[1], U], [m, wa + cb]); d = f[2]; g(d.radius || e); a(d, [m, v], [m, n], [D, n], [D, v], 0, h / 2); if ((d = S(p, { name: "B" }))) c(d, y, D), b([wa + cb, n], [U, n + d.size[1]], [wa - cb, n]); d = f[3]; g(d.radius || e); a(d, [y, n], [k, n], [k, v], [y, v], h / 2, h); if ((d = S(p, { name: "L" }))) c(d, E, v), b([k, wa + cb], [k - d.size[1], U], [k, wa - cb]); R.length && R.push("Z"); return xa(R); } function Up(a) { void 0 === a && (a = {}); var c = a.type; if (Vp[c]) return Vp[c](a); var b = z(a.lineWidth, 1), d = db(z(a.size, 10 * b), b); c = z(a.overflow, !1); var e = db(z(a.width, d), b); b = db(z(a.height, d), b); d = !1 === c ? z(a.centerWidth, e / 2) : 0; return L(Na({}, a, Wp), { width: e, height: b, overflow: 0 < d ? !0 : c, centerWidth: d }); } function Xp(a) { return a && "none" !== a ? (O(a) ? { shape: a } : Oa(a)) : null; } function $w(a, c, b, d) { var e = L({ size: d, x: c, y: b }, O(a) ? { name: a } : a); return (c = (a = e.path) || (e.name ? xo( e.name, function (b) { Ma.emit("warning", "dom", "scriptLoad", { data: [b.path] }); }, function (b) { Ma.emit("warning", "dom", "iconNotFound", { data: [e.name] }); } ) : null)) ? Yp(c, [e.x || 0, e.y || 0, e.width || 0, e.height || 0, e.size], Xp(e.outerShape), e.padding, !!a)[0] : null; } function fb(a, c) { c = c || []; c.push(sg(a[0])); 1 < a.length && c.push("L"); for (var b = 1, d = a.length; b < d; b++) c.push(a[b][0] + " " + a[b][1]); return c; } function ax(a, c, b) { void 0 === c && (c = !0); var d = []; d.push("M", a[0].join(" "), "L"); c = c ? function (c) { d.push(a[b ? c : c - 1][0] + " " + a[b ? c - 1 : c][1]); } : function (c) { d.push(a[b ? c - 1 : c][0] + " " + a[b ? c : c - 1][1]); }; for (var e = 1, f = a.length; e < f; e++) c(e), d.push(a[e][0] + " " + a[e][1]); return d; } function tg(a) { var c = []; w(a, function (b) { fb(b, c); }); return c; } function bx(a, c) { void 0 === c && (c = 0.8); var b = function (b) { return b.join(" "); }, d = ["M", b(a[0])], e = []; if (3 > a.length) e = a.slice(0); else for (var f = 1, g = a.length - 1; f < g; f++) e[f] = cx(a, f, c); if (2 === a.length) d.push("C", a[0], a[1], a[1]); else for (f = 0, g = a.length - 1; f < g; f++) f ? (f === g - 1 ? d.push("C", b(e[f][1]), b(a[f + 1]), b(a[f + 1])) : d.push("C", b(e[f][1]), b(e[f + 1][0]), a[f + 1])) : d.push("C", b(a[f]), b(e[f + 1][0]), b(a[f + 1])); return xa(d); } function cx(a, c, b) { void 0 === b && (b = 0.8); var d = a[c - 1], e = a[c], f = a[c + 1]; b = 1 - b; c = Ia(e, d); a = Ia(e, f); d = cc(d, e); f = cc(e, f); f = Math.min(d, f); d = ee(e[0], e[1], yb(c), f); a = ee(e[0], e[1], yb(a), f); b *= cc([d.x, d.y], [a.x, a.y]); d = Ia(d, a); a = mg([ee(e[0], e[1], yb(d - 180), b)])[0]; e = mg([ee(e[0], e[1], yb(d), b)])[0]; return [a, e]; } function dx(a) { var c = G(a.points, 3), b = a.angles, d = a.cxy, e = a.radius; c = 0 > Xn(c[0], c[1], c[2]); a = a.angles.map(function (b) { return yb(b); }); a[0] = c && "0270" === b.join("") ? 2 * Math.PI : a[0]; return Kc(d[0], d[1], e, a[0], a[1], c); } function ex(a, c) { var b = a.length; if (2 < b) for (var d = 1; d < a.length - 1; d++) c(a[d - 1], a[d], a[d + 1], 1 === d, d === b - 2); } function hd(a, c) { var b = []; ex(a, function (a, e, f, g, h) { var d = c, l = mc(a, e), m = mc(e, f); m = Math.min(g ? l : l / 2, h ? m : m / 2); l = [Ia(f, e), Ia(a, e)]; d = t(d) ? Math.min(d, m) : m; e = [ra(e, l[1] + 180, d), e, ra(e, l[0] + 180, d)]; d = { points: e, radius: d, angles: l, cxy: ra(e[0], l[0] + 180, d) }; g && b.push(sg(a)); b.push(Fd(d.points[0])); b.push.apply(b, H(dx(d))); h && !ab(d.points[2], f) && b.push(Fd(f)); }); return b.join(" "); } function fx(a, c) { c = id(c, { width: 1.5 }); var b = c.gapLength, d = c.width, e = c.lineLength, f = c.midPoint, g = c.lineAngle, h = c.noStart, k = c.noEnd, l = c.tipPos * e - b / 2, m = e - l - b, n = [], p = a.slice(0); if (0 === b) n.push(sg(a[1]), Fd(a[2])); else { var q = Math.min(b, e - 4); n.push(sg(a[1]), Fd(ra(f, g + 180, q / 2))); n.push(sg(ra(f, g, q / 2)), Fd(a[2])); } b = { type: "arrow", overflow: !1, width: "400%", length: "600%" }; h = { start: h ? {} : b, end: k ? {} : b }; a = [a[1], a[2]]; return { d: n.join(" "), pathOptions: { caps: h, "stroke-width": d, stroke: c.color, fill: "none" }, startLen: l, endLen: m, gapLength: q, bbox: Ua(p), endPoints: a, mode: "measure" }; } function gx(a, c) { c = id(c, { width: 3, radius: 100, tipLength: 5 }); var b = c.gapLength, d = c.tipLength, e = c.radius, f = c.tipPos, g = c.lineLength, h = c.midPoint, k = c.sideLength, l = c.lineAngle, m = c.tipAngle, n = function (b, a) { return [b[0] + a[0], b[1] + a[1]]; }, p = function (b, a, c) { return b.map(function (b) { return [b[0] + a, b[1] + c]; }); }, q = ra([0, 0], m, c.width), r = function (b) { return p(b, q[0], q[1]); }, u = function () { for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a]; return t.push.apply(t, H(b)); }, x = Gb, v = Gb; f = f * g - b / 2; var y = g - f - b, D = Math.min(e, f) < k; k = Math.min(e, y) < k; if (D || k) { var E = ra([0, 0], l, 1), F = ra([0, 0], l + 180, 1); x = function (b, a, c) { b[a] = n(b[a], E); b[c] = n(b[c], E); }; v = function (b, a, c) { b[a] = n(b[a], F); b[c] = n(b[c], F); }; } var t = [], w = a.slice(0), wa = [], U = 0; 0 === b ? ((b = a.slice(0, 2)), D && x(b, 0, 1), (d = ra(h, m, d)), w.push(d), b.push(h, d), (h = [b[3], b[2], a[2], a[3]]), k && v(h, 2, 3), u(hd(b, e)), u(hd(h, e).replace("M", "L")), u(Fd(a[3])), D && v(b, 0, 1), k && x(h, 2, 3), (b = r(b).reverse()), (h = r(h).reverse()), u(hd(h, e).replace("M", "L")), u(hd(b, e).replace("M", "L"), Fd(a[0]), "Z")) : ((U = Math.min(b, g - 4)), (b = a.slice(0, 2)), D && x(b, 0, 1), b.push(ra(h, l + 180, U / 2)), (h = [ra(h, l, U / 2), a[2], a[3]]), u(hd(b, e)), D && v(b, 0, 1), (b = r(b).reverse()), u(hd(b, e).replace("M", "L"), Fd(a[0]), "Z"), k && v(h, 1, 2), u(hd(h, e)), k && x(h, 1, 2), (h = r(h).reverse()), u(hd(h, e).replace("M", "L"), "Z")); wa.push(a[3]); wa.push(a[0]); return { d: t.join(" "), pathOptions: { "stroke-width": 0, fill: c.color }, startLen: f, endLen: y, gapLength: U, bbox: Ua(w), endPoints: wa, mode: "curly" }; } function Zp(a, c, b, d, e) { function f(b) { return b && b.join ? b.join(" ").replace(/,/g, " ") : b; } function g(a) { switch (a) { case "b": var c = [[u, x], ["L"], [h - 1.1 * n, x], ["L"], [h - 0.35 * n, x - 1.25 * n], ["L"], [h + 0.45 * n, x + 0.65 * n], ["L"], [h + 0.8 * n, x], ["L"], [u + b, x]]; c = c.reverse(); break; case "r": c = [[u, x], ["L"], [u, k - 1.12 * p], ["L"], [u - 1.25 * p, k - 0.35 * p], ["L"], [u + 0.65 * p, k + 0.45 * p], ["L"], [u, k + 0.8 * p], ["L"], [u, x + d]]; break; case "t": c = [[u + b, x], ["L"], [h + 1.15 * n, x], ["L"], [h + 0.35 * n, x + 1.25 * n], ["L"], [h - 0.45 * n, x - 0.65 * n], ["L"], [h - 0.85 * n, x], ["L"], [u, x]]; c = c.reverse(); break; case "l": c = [[u, x + d], ["L"], [u, k + 1.15 * p], ["L"], [u + 1.25 * p, k + 0.35 * p], ["L"], [u - 0.65 * p, k - 0.45 * p], ["L"], [u, k - 0.85 * p], ["L"], [u, x]]; } c.splice(0, 0, "M"); return c; } e = e || {}; var h = a + b / 2, k = c + d / 2, l = e.zigWidth || 0, m = 1.6 * (l || 10), n = Math.min(m, b / 2), p = Math.min(m, d / 2); l /= 2; m = e.lines; var q = a + b, r = c + d, u = a, x = c, v = !e.open, y = []; switch (e.zigSides) { case "t": x = c + l; y = e = g("t"); m.push(f(e)); v && y.push(["L", q, r, "L", a, r]); break; case "b": x = r - l; v && y.push(["M", a, c, "L", q, c]); e = f(g("b")); m.push(f(e)); y.push(v ? e.replace("M", "L") : e); break; case "m": x = c + l; y = e = g("t"); m.push(f(e)); x = r - l; e = f(g("b")); m.push(e); y.push(v ? e.replace("M", "L") : e); break; case "r": u = q - l; y = e = g("r"); m.push(f(e)); v && y.push(["L", a, r, "L", a, c]); break; case "l": u = a + l; v && y.push(["M", q, c, "L", q, r]); e = f(g("l")); m.push(f(e)); y.push(v ? e.replace("M", "L") : e); break; case "c": (u = q - l), (y = e = g("r")), m.push(f(e)), (u = a + l), (e = f(g("l"))), m.push(e), y.push(v ? e.replace("M", "L") : e); } return f(y).split(" "); } function $p(a, c, b, d, e, f) { return dc[a] || "needle" === a ? dc["needle" === a ? "square" : a](c, b, d, e, f) : $w(a, c, b, d); } function hx(a, c, b) { ml[c] ? b(ml[c]) : (b({ width: 0, height: 0 }, !1), ug[c] ? ug[c].push(b) : ((ug[c] = [b]), a.calculateImageSize(c, function (b, a) { var d = (ml[c] = { width: b, height: a }); w(ug[c], function (b) { return b(d, !1); }); ug[c] = void 0; }))); } function aq(a, c, b) { var d = a.pointerType; d || (d = (d = a.type.match(/^mouse|touch/i)) ? d[0] : null); return { el: c, eventArgs: a, eventName: b, device: d ? d : "other", pointers: a.pointers }; } function ix(a) { a._s0 = {}; a._s1 = {}; a._s2 = {}; a._s3 = {}; } function Zh(a, c) { t(c) && (a._s4 = c); return a._s4; } function bq(a) { return a ? ((a = /url\(#(.*)\)/g.exec(a)) ? a[1] : null) : null; } function nl(a, c, b) { c && (w(c.childNodes, function (c) { return nl(a, c, b); }), c.refNodes.length && w(c.refNodes, function (c) { return nl(a, c, b); }), Da(cq, function (d) { return dq(a, d, c.attr(d), null, b); })); } function dq(a, c, b, d, e) { J(cq, c) && ((c = bq(b)), (d = bq(d)), (a = a._s0), null !== d && (J(a, d) ? a[d]++ : (a[d] = 1)), null !== c && (J(a, c) && a[c]--, J(a, c) && 1 > a[c] && (delete a[c], e(c)))); } function ol(a, c) { a = a._s1; return J(a, c) ? a[c] : null; } function pl(a, c) { var b = a._s1; J(b, c) && delete b[c]; b = a._s2; a = a._s3; J(a, c) && (delete b[a[c]], delete a[c]); } function vg(a, c, b) { var d = eq(a); c = jx(a, c, b); c.updateAttr = function (b) { b.el ? b.el.attr(b.attr) : (b.el = a.element(b).add(d)); return b; }; return c; } function eq(a) { var c; (c = Zh(a)) || ((c = a.element("defs")), !a._noRender && c.add(), (c = Zh(a, c))); return c; } function jx(a, c, b) { b = b || {}; var d = b.id && ol(a, b.id); return d ? d : fq(a, c, b, b.hash); } function fq(a, c, b, d, e) { var f = Q(b.id), g = a._s1, h = a._s2; if ((g = J(h, d) ? g[h[d]] : null)) return g; g = b; f ? (g = L(qa(b), { id: Dd() })) : ql(a, b.id); c = { tag: c, attr: Ga(g, ["hash", "meta"]), isDef: !0, hash: d, val: e }; b = g.id; e = c; a._s1[b] = e; d && ((e = a._s3), (a._s2[d] = b), (e[b] = d)); return c; } function ql(a, c) { var b = ol(a, c); if (b) { var d = b.isDef ? b.el : b; d && d.destroy(); delete b.el; pl(a, c); } else (a = a.query("#" + c)) && a.destroy(); } function wg(a) { var c = a || {}; c.color = c.color || "black"; c.backgroundColor = c.backgroundColor || "none"; c.strokeWidth = t(c.strokeWidth) ? c.strokeWidth : 1; c.granualWidth = a.granualWidth || a.size || 5; c.granualHeight = a.granualHeight || a.size || 5; return c; } function gq(a, c, b) { a = { hash: "#" + a + ":" + b.color + ", " + b.backgroundColor + ", " + b.strokeWidth, width: b.granualWidth, height: b.granualHeight, patternUnits: "userSpaceOnUse", x: 0, y: 0, childNodes: c }; b.patternTransform && (a.patternTransform = b.patternTransform); b.transform && (a.transform = b.transform); return a; } function $h(a, c, b) { c.unshift({ tag: "rect", attr: { width: b.granualWidth, height: b.granualHeight, fill: b.backgroundColor || "none" } }); return gq(a, c, b); } function hq(a) { a = L(a, iq[a.pattern]); a.omit = ["childNodes"]; var c = a.template; c || (J(a, "c") ? (c = "line") : J(a, "d") ? (c = "path") : J(a, "p") && (c = "point")); return kx[c](a); } function lx(a, c, b, d) { if (!J(iq, a.pattern)) return null; var e = L({}, a); if (a.backgroundColor && !O(a.backgroundColor)) { var f = void 0; d && d.d && ((d = d.d), (d = d.isPath ? d : Aa(d)), (f = Gc(d.bbox()))); f = f || c.box(); e.width = a.width = f.width; e.height = a.height = f.height; var g = a.backgroundColor; d = a.width; f = a.height; a = Oa(a); a.backgroundColor = "none"; a = hq(a); c = vg(c.renderer, "pattern", a); b = b(g); c.val = a; a = b.isDef ? b.attr.id : b.attr("id"); b = { hash: "#complexPattern:" + c.attr.id + ", " + a + ", " + d + ", " + f, x: 0, y: 0, width: "100%", height: "100%", childNodes: [ { tag: "rect", attr: { x: 0, y: 0, width: d, height: f, fill: b } }, { tag: "rect", attr: { x: 0, y: 0, width: "100%", height: "100%", fill: c } }, ], }; } else b = hq(a); e.hash = b.hash; b.meta = e; return b; } function jq(a, c) { var b = a.items, d = og(a, a.hasCurves), e = Mb(a), f = se(a); e = Math.max(e[2], e[3]); Hc(a); a = [d, mg([Uc(d[0], d[1], c, e)])[0]]; e = 1; for (var g = b.length; e < g; e++) { var h = b[e], k = P(h), l = b[e - 1]; if (!ab(k, h[1])) { var m = Ia(d, h[1]); k = Bp(h, a[0], a[1]); for (var n = 0; n < k.length; n++) { var p = k[n]; if ((p.onLine2 && p.onLine1) || m === c) { var q = m === c && p.isNaN ? 0 : cc(h[1], [p.x, p.y]); q = 0 === q ? l.position : q == h.lengthValue ? h.position : q / f + l.position; break; } } if (t(q)) break; } } c = Ic(b); if (!t(q)) return c.toString(); q %= 1; return Ed(c, q, 1 + q); } function mx(a, c, b) { b = Rh(a, c, b); 1 < b.length && 0 === na(b[0].percOfShape + 1 - b[b.length - 1].percOfShape, 2) && b.pop(); if (1 < b.length) (c = b[0].percOfShape), (b = P(b).percOfShape); else if (1 === b.length) { c = b[0].percOfShape; if (1 !== P(a.items)[0]) { var d = Ic(a.items); return [Ed(d, 0, c), Ed(d, c, 1)]; } c = 0.5 < c ? 1 - c : c; b = (c + 0.5) % 1; } else { c = 0; b = 0.5; var e = 3 !== P(P(a.items))[0]; } d = Ic(a.items); a = function (b, a) { b = Ed(d, b, a); e || (b = -1 === b.indexOf("Z") ? b + "Z" : b); return b; }; return [a(c, b), a(b, 1 + c)]; } function jd(a, c, b) { for (var d = 0, e = c.length; d < e; d++) { var f = a, g = c[d], h = f.items, k = se(f), l = Hc(f), m = 0; if (!(0 === g || 1 === g || -1 < l.indexOf(g))) { var n = !1; l = 1; for (var p = h.length; l < p; l++) { var q = h[l], r = h[l - 1], u = m + q.lengthValue / k; if (n) (q[1] = P(r)), (q.lengthValue = void 0), (q.position = void 0); else { if (m < g && g < u) { n = Y(0, 1, m, u, g); var x = q[0]; m = 1 === x; 3 === x || (m && 3 === r[0]) ? ((n = Xj(m ? [q[1], q[1], q[2], q[2]] : [q[1], q[2], q[3], q[4]], n)), n.slice(0, 4), n.slice(4), (r = [3, q[1], n[1], n[2], n[3]]), (q = m ? [1, r[4], q[2]] : [3, r[4], n[4], n[5], n[6]])) : ((r = [2, q[1], lf(q, n)]), (q = m ? [1, r[2], q[2]] : [2, r[2], lf(q, 1)])); h.splice(l, 1, r, q); l++; p++; n = !0; } m = u; } } f.lengthValue = void 0; f.positions = void 0; } if (b && a.items.length === b) break; } } function kq(a) { for (var c = [], b = a.items.length - 1; 0 <= b; b--) { var d = a.items[b]; (0 !== b && 1 !== d[0] && ab(d[1], P(d))) || c.unshift(d); } return { items: c }; } function lq(a, c) { var b = Op(a), d = Op(c); a.items.length !== c.items.length && b !== d && ((b = b ? c : a), b.items.push([1, P(P(b.items)), b.items[0][2]])); if (a.items.length !== c.items.length && ((a = kq(a)), (c = kq(c)), a.items.length !== c.items.length)) { if (a.items.length < c.items.length) { c = G([c, a], 2); a = c[0]; c = c[1]; var e = !0; } d = Hc(a); var f = Hc(c); b = me(d, f); d = me(f, d); jd(c, b, a.items.length + d.length); a.items.length !== c.items.length && jd(a, d, c.items.length); } return { from: e ? c : a, to: e ? a : c }; } function ai(a) { if (a.hasCurves && !a.hasLines) return a; a = a.items(); for (var c = 0, b = a.length; c < b; c++) { var d = a[c], e = d[0]; if (2 === e || 1 === e) a[c] = [3, d[1], d[1], d[2], d[2]]; 1 === e && (a.splice(c + 1, 0, [1, d[2], d[2]]), b++, c++); } return Ic(a); } function nx(a, c) { var b, d, e = a.length(), f = c.length(); if (!e || !f) return null; if (a.hasCurves || c.hasCurves) { var g = !a.hasCurves || a.hasLines, h = !c.hasCurves || c.hasLines; a = ai(a); c = ai(c); } f = a.shapes.length; var k = c.shapes.length; if (f === k) return 1 === f ? (a.isClosed || c.isClosed ? mq(a.shapes[0], c.shapes[0], g, h) : ((a = { items: a.items() }), (c = { items: c.items() }), lq(a, c))) : nq(a, c); var l; f < k && (l = !0); g = f > k ? c : a; h = Math.abs(f - k); e = 0; for (f = f > k ? a : c; 0 < h--; ) { var m = f; k = g.bbox(); var n = m.shapes[0], p = m.shapes[1], q = [ng(n), ng(p)], r = Ia(q[0], q[1]), u = Ea([Mb(n), Mb(p)]); u = Math.max(u[2], u[3]); p = oq(p.items, q[0], r); var x = oq(n.items, q[1], r); x = Te(q[0], q[1], x, Uc(x[0], x[1], r + 90, 10)); q = Te(q[0], q[1], p, Uc(p[0], p[1], r + 90, 10)); null === x.x && null === x.y && null === q.x && null === q.y ? (n = n.center) : ((n = mg([x, q])), (n = $k(n[0], n[1], 0.5))); r = [Uc(n[0], n[1], r - 90, 2 * u), Uc(n[0], n[1], r + 90, 2 * u)]; r = mg(r); u = m.bbox(); m = Qh(k, u, r[0]); k = Qh(k, u, r[1]); k = ab(m, k) ? r : [m, k]; m = g.shapes.splice(2 * e, 1)[0]; k = mx(m, k[0], k[1]); l ? ((a = Aa(k.join(""))), (b = g.shapes).splice.apply(b, H([2 * e, 0], a.shapes)), (a.shapes = g.shapes), (g = a)) : ((c = Aa(k.join(""))), (d = g.shapes).splice.apply(d, H([2 * e, 0], c.shapes)), (c.shapes = g.shapes), (g = c)); e = 2 * (e + 1) > g.shapes.length - 1 ? 0 : e + 1; } return nq(a, c); } function nq(a, c) { var b = [0, 0, 1, 1], d = el(a.shapes[0], b, a.bbox()), e = cc(d, el(c.shapes[0], b, c.bbox())); b = cc(d, el(c.shapes[c.shapes.length - 1], b, c.bbox())); c = c.shapes.slice(0); e > b && (c = c.reverse()); e = []; b = []; d = 0; for (var f = c.length; d < f; d++) { var g = mq(a.shapes[d], c[d], !1, !1); e = e.concat(g.from.items); b = b.concat(g.to.items); } return { from: { items: e }, to: { items: b } }; } function mq(a, c, b, d) { if (Dp(a) !== Dp(c)) { var e = [], f = { hasCurves: a.hasCurves, hasLines: a.hasLines, isClosed: a.isClosed, items: e }, g = P(a.items), h = 1 === g[0], k = h ? g[1] : P(g), l = a.items.length - (h ? 2 : 1); e.push([0, k, k]); for (k = l; 0 < k; k--) switch (((l = a.items[k]), l[0])) { case 2: e.push([l[0], l[2], l[1]]); break; case 3: e.push([3, l[4], l[3], l[2], l[1]]); } h && e.push([1, g[2], g[1]]); a = f; } var m; e = na(Ep(a, a.hasCurves)); f = na(Ep(c, c.hasCurves)); f !== e && (a.items.length === c.items.length && 45 > Math.abs(e - f) && (m = !0), m || (b && !d ? (a = Aa(jq(a, f)).shapes[0]) : ((b = Aa(jq(c, e))), (c = 1 == b.shapes.length ? b.shapes[0] : c)))); b = lq(a, c); c = b.from; b = b.to; c.items.length !== b.items.length && c.items.length !== b.items.length && ((m = Hc(c)), (a = Hc(b)), (d = me(m, a)), (m = me(a, m)), m.length < d.length ? jd(b, d, c.items.length) : jd(c, m, b.items.length)); if (c.items.length !== b.items.length) { if (c.items.length > b.items.length) { c.items.splice(Math.floor(c.items.length / 2), 1); var n = c, p = b.items.length; } else c.items.length < b.items.length && (b.items.splice(Math.floor(b.items.length / 2), 1), (n = b), (p = c.items.length)); for (; n.items.length > p; ) n.items.splice(Math.floor(n.items.length / 2), 1); } return { from: c, to: b }; } function oq(a, c, b) { for (var d, e = Number.MAX_VALUE, f = 0, g = a.length; f < g; f++) { var h = P(a[f]), k = Uc(h[0], h[1], b + 90, 10); k = Wn(h, k, c); k < e && ((d = h), (e = k)); } return d; } function pq(a, c, b) { var d = b.count - b.del, e = "step" === b.type ? 2 : 1, f = G(a.items.length < c.items.length ? [a, c] : [c, a], 2), g = f[0], h = f[1]; Hc(g); se(g); f = function (b, a) { --a; a = (-1 < a ? a : 0) * e; return [a, b.length - 2 - a]; }; var k = f(g.items, b.at), l = [], m = function (b, a, c) { void 0 === c && (c = -1); var d = 1e-4 * c; ob(a, function (a) { l.push(b + (a + 1) * d); }); }; a.items.length !== c.items.length ? 0 > d ? pq(c, a, { action: "splice", at: b.at, count: -d, del: 0, type: b.type, shapeName: b.shapeName }) : ("area" == b.shapeName ? (m(g.items[k[0]].position, e, -1), m(g.items[k[1]].position, e, 1)) : m(g.items[k[0]].position, e, -1), jd(g, l), (l = [])) : b.shift && ("area" === b.shapeName ? (Hc(h), (d = c.items), (g = f(d, 1)), m(d[g[0]].position, e, 1), m(d[g[1]].position, e, -1), jd(c, l), (l = []), (d = a.items), (g = f(d, b.pointsLen)), m(d[g[0]].position, e, 1), m(d[g[1]].position, e, -1), jd(a, l)) : (m(1, e, -1), jd(a, l), (l = []), m(0, e, 1), jd(c, l)), (l = [])); return { from: a, to: c }; } function ox(a, c, b) { void 0 === b && (b = {}); var d = {}; if (a && c && b.simple) return (d.final = c), (d.from = a.items(!0)), (d.to = c.items(!0)), qq(d); d.final = Ic(c.items()); if (a.hasErrors) return rq(d); if (c.hasErrors) return (d.final = a), rq(d); var e; if ((e = b.slice) && e.from && e.to) (d.slice = e), (d.stepFn = px(d)); else if ((e = b.needle) && e.from && e.to) (d.needle = e), (d.stepFn = qx(d)); else if (!b.simple) if (b.action) { var f = a; e = c; if (f.hasCurves || e.hasCurves) (f = ai(f)), (e = ai(e)); f = f.items(); e = e.items(); f = b.at > Math.min(f.length, e.length) - 1 ? null : pq({ items: f }, { items: e }, b); } else f = sq(d, a, c); d.from = f ? f.from.items : a.items(); d.to = f ? f.to.items : c.items(); return d.stepFn || qq(d); } function rq(a) { return function () { return a.final.toString(); }; } function qq(a) { return function (c) { if (1 === c) return a.final.toString(); for (var b = a.invertStep ? rx : sx, d = "", e, f, g, h = 0; h < a.from.length; h++) { var k = a.from[h], l = (f = a.to[h] || f), m = k[0]; d += e !== m ? re[m] : " "; e = m; if (1 !== e) for (m = 2; m < k.length; m++) (g = l[m] || g), (d += (2 < m ? " " : "") + (b(k[m][0], g[0], c) + " " + b(k[m][1], g[1], c))); } return d; }; } function tq(a) { return function (c) { if (1 === c) return a.final.toString(); a.invertStep && (c = 1 - c); return Ed(a.final, 0, c); }; } function px(a) { return function (c) { if (1 === c) return a.final.toString(); var b = a.slice.from, d = a.slice.to; c = { cxy: uq(b.cxy, d.cxy, c), start: kd(b.start, d.start, c), end: kd(b.end, d.end, c), open: d.open, r: kd(b.r, d.r, c), innerR: kd(b.innerR, d.innerR, c), caps: d.caps }; b = c.cxy; return xa(ll(b[0], b[1], c.r, c.r, c)); }; } function qx(a) { return function (c) { if (1 === c) return a.final.toString(); var b = a.needle.from, d = a.needle.to; c = { arc: { cxy: uq(b.arc.cxy, d.arc.cxy, c), angle: kd(b.arc.angle, d.arc.angle, c) }, xyz: [0, 0, kd(b.xyz[2], d.xyz[2], c)], xyzs: [0, 0, kd(b.xyzs[2], d.xyzs[2], c)] }; return xa(a.needle.gen(c)); }; } function sq(a, c, b) { if (!c || 0 === c.shapes.length) { c = { items: b.items() }; var d = og(c, b.hasCurves); c = b.items(); var e = [], f = G(d, 2); d = f[0]; f = f[1]; for (var g = 0; g < c.length; g++) { for (var h = c[g].slice(0), k = 1; k < h.length; k++) h[k] = [d, f]; e.push(h); } c = Ic(e); return (a = sq(a, c, b)) ? a : { from: { items: c.items() }, to: { items: b.items() } }; } if (vq(c, b)) a.stepFn = tq(a); else if (vq(b, c)) (a.stepFn = tq(a)), (a.invertStep = !0); else return nx(c, b); } function vq(a, c) { return 1 === a.shapes.length && 1 === a.shapes[0].items.length && (1 < c.shapes.length || 1 < c.shapes[0].items.length); } function tx(a) { if ("linear" === a) return null; var c = ux.exec(a); return c ? $f.apply(this, c.slice(1).map(Number)) : (c = vx.exec(a)) ? bi(Number(c[1]), { start: 1, middle: 0.5, end: 0 }[c[2]]) : (a = { ease: $f(0.25, 0.1, 0.25, 1), "ease-in": $f(0.42, 0, 1, 1), "ease-out": $f(0, 0, 0.58, 1), "ease-in-out": $f(0.42, 0, 0.58, 1), "step-start": bi(1, 1), "step-middle": bi(1, 0.5), "step-end": bi(1, 0) }[a]) ? a : null; } function wq(a) { var c = a ? W(xq, nb(a) ? { duration: a } : a) : xq; "linear" !== c.easing && (c.easingFunction = tx(c.easing) || yq); c.activeDuration = Math.abs((0 === c.duration || 0 === c.iterations ? 0 : c.duration * c.iterations) / c.playbackRate); c.totalDuration = c.delay + c.activeDuration + c.endDelay; a = function (b) { if (null == b) var a = 0; else (a = c.delay + c.activeDuration + c.endDelay), (a = b < Math.min(c.delay, a) ? 1 : b >= Math.min(c.delay + c.activeDuration, a) ? 2 : 3); a: { switch (a) { case 1: if ("backwards" === c.fill || "both" === c.fill) { b = 0; break a; } break; case 3: b -= c.delay; break a; case 2: if ("forwards" === c.fill || "both" === c.fill) { b = c.activeDuration; break a; } } b = null; } if (null === b) a = null; else { var e = c.iterationStart; 0 === c.duration ? 1 !== a && (e += c.iterations) : (e += b / c.duration); var f = Infinity === e ? c.iterationStart % 1 : e % 1; 0 !== f || 2 !== a || 0 === c.iterations || (0 === b && 0 !== c.duration) || (f = 1); b = f; e = 2 === a && Infinity === c.iterations ? Infinity : 1 === b ? Math.floor(e) - 1 : Math.floor(e); a = c.direction; "normal" !== a && "reverse" !== a && ("alternate-reverse" === a && (e += 1), (a = "normal"), Infinity !== e && 0 !== e % 2 && (a = "reverse")); a = c.easingFunction("normal" === a ? b : 1 - b); } return a; }; a.options = c; return a; } function rl(a) { return ja(a) ? B(a, function (a) { return rl(a); }) : parseFloat(zq(a, "px", "")); } function wx(a, c, b) { var d = wq({ duration: 100, easing: b }); return function (b) { b = d(b); return { current: of(a, c, b), timeFraction: b }; }; } function sl(a, c) { if (c.linearGradient) var b = "linearGradient"; else if (c.radialGradient) b = "radialGradient"; else return; var d = Aq[b], e = d.argsToAttrs(c), f = e.attrs; e = e.stops; var g = []; f.hash || g.push(d.toString(f)); e = B(e, function (b) { if (ja(b)) { b = G(b, 3); var a = b[0], c = b[1]; b = b[2]; } else (a = b.offset), (c = b.color), (b = b.opacity); a = { offset: Q(a) ? "0%" : a, color: Q(c) ? "black" : c, opacity: Q(b) ? "1" : b }; f.hash || g.push(Aq.stopToString(a)); return a; }); d = f.hash || d.keyPrefix + "(" + pc(g, ", ") + ")"; a = fq(a, b, f, d, c); a.attr.childNodes = B(e, function (b) { var a = { offset: b.offset, "stop-color": b.color }; b = b.opacity; 0 <= b && 1 > b && (a["stop-opacity"] = b); return { tag: "stop", attr: a }; }); a.updateAttr = xx; return a; } function xx(a, c, b) { var d = a.el, e = b.renderer; if (a.isDestroyed || (d && d.isDestroyed)) a = sl(e, a.val); else if (d) return a; if ((c = b.data.vals[c]) && c.attr && a.tag === c.tag && ((b = c.el), (d = e._s0[c.attr.id] || 0), b && 1 === d)) { d = a.attr; var f = b.data.attrs.id; if (f === d.id) return (a.el = b), a; c.isDestroyed = !0; pl(e, d.id); pl(e, f); c = a; var g = a.hash; e._s1[f] = c; g && ((c = e._s3), (e._s2[g] = f), (c[f] = g)); d.id = f; yx(b, d); a.el = b; return a; } a.el = e.element(a).add(eq(e)); return a; } function yx(a, c) { var b = c.childNodes, d = a.childNodes; a.attr(Ga(c, ["childNodes"])); Ub( b, d, function (b) { return a.renderer.element(b).add(a); }, function (b, a) { return a.attr(b.attr); }, function (b) { return b.destroy(); } ); } function Ab(a, c) { w(a, function (b) { return (xg[b] = c); }); } function zx(a, c, b, d, e) { if (J(ci, a)) { if (!d) return ci[a]; d[ci[a]] = b; } } function Ax(a, c, b, d, e) { if (!d) return "attr"; L(d, b); } function Bx(a, c, b, d, e) { if (!d) return "d"; a = b && c && Pa(b) && !0 !== b.isElement ? (ja(b) ? pc(b, " ") : b) : b; d.d = a; } function Cx(a, c, b, d, e) { "overflow" === a && d && c && b && ((a = c.data.vals["clip-path"]), "visible" === b ? a && (d["clip-path"] = null) : "hidden" === b && (a || (a = vg(c.renderer, "clipRect")), (d["clip-path"] = a))); } function Bq(a, c, b, d, e) { "clipPath" === a && d && c && !J(d, "clip-path") && ((a = c.data.vals["clip-path"]), b ? ((b = Pe(e, O(b) || b.isPath ? { d: b } : b, Dx)), a ? (a.attr = L(a.attr, b)) : (a = vg(c.renderer, "clipPath", b)), (d["clip-path"] = a), c.shadowEl && Ex(c.shadowEl, b)) : a && (d["clip-path"] = null)); } function tl(a, c) { var b = a.shadowTranslate, d = b[0], e = b[1]; b = Aa(c).translate(function (b) { return [b[0] + d, b[1] + e]; }); a.attr({ d: c + b }); if ((a = a.data.vals["clip-path"])) (a.attr = L(a.attr, { d: b })), a.updateAttr(a); } function Ex(a, c) { var b = c.d; a.childNodes.length ? w(a.childNodes, function (a) { return tl(a, b); }) : tl(a, b); } function Fx(a, c, b, d, e) { if ("shadow" === a && d && c) { e && J(e, "clipPath") && !J(d, "clip-path") && Bq("clipPath", c, e.clipPath, d, e); var f = c.shadowEl; !b && f ? Cq(c) : b && (!0 === b && (b = Oa({ mode: "interpolation", x: 5, y: 5, color: "rgba(0,0,0,.075)", toColor: "rgba(0,0,0,.025)", interpolationSteps: 2, interpolationFunc: "linear" })), (b.mode = b.mode || "simple"), (a = b.mode + " " + (b.x || 0) + " " + (b.y || 0) + " " + (b.blur || 0) + " " + (b.color || "black") + " " + (b.toColor || "white") + " " + (b.interpolationSteps || 0) + " " + (b.interpolationFunc || "linear") + " " + (b.inset ? "inset" : "")), (f && f.data.shadowConfig.val === a) || ((f && f.data.shadowConfig.mode === b.mode) || (f && Cq(c), (c.shadowEl = f = Gx(b, c, d)), c.isPatched && c.renderer.addBefore(f, c), c.refNodes.push(f), (f.ownerAttrsChanged = function (b) { return Hx(f, b, c); }), (f.alignBeforeOwner = !0)), (f.data.shadowConfig = W(b, { val: a })), Ix(b, f, c, d))); } } function Hx(a, c, b) { if (!b.data.vals["clip-path"]) { var d = be({}, Hb(c, Dq), { fill: void 0, stroke: void 0 }); a.childNodes.length ? w(a.childNodes, function (b) { return b.attr(d); }) : a.attr(d); } } function Gx(a, c, b) { return "interpolation" === a.mode ? c.renderer.element("g") : Eq(c, b["clip-path"]); } function Eq(a, c) { if ((c = c || a.data.vals["clip-path"])) return (c = c.attr.d), a.renderer.element("path", { d: c, "fill-rule": "evenodd", clipPath: c, stroke: "none" }); c = W(Hb(a.data.attrs, Dq), { fill: "none", stroke: "none" }); return a.renderer.element(a.nodeName, c); } function Ix(a, c, b, d) { if ("radial" === a.mode && a.blur) c.renderer.attr(c, { translate: [a.x, a.y], fill: { radialGradient: {}, stops: [ ["0%", a.color], [100 - a.blur + "%", a.color], ["100%", a.toColor || "white"], ], }, }); else if ("interpolation" === a.mode) { var e = a.interpolationSteps || 1, f = a.interpolationFunc || "linear", g = le(a.color || "black", a.toColor || "white"); f = wx([0, 0], [a.x, a.y], f); var h = 100 / e, k = !1; c.childNodes.length !== e && (c.childNodes.length && w(yg(c.childNodes), function (b) { return b.destroy(); }), (k = !0)); for (var l = (d = b.data.vals["clip-path"] || d["clip-path"]) ? d.attr.d : null, m = 0; m < e; m++) { var n = k ? Eq(b, d).add(c) : c.childNodes[m], p = 0 === m ? { timeFraction: 1, current: [a.x, a.y] } : f(h * (e - m)), q = p.current; p = g(p.timeFraction); l ? ((n.shadowTranslate = q), n.attr({ fill: p }), tl(n, l)) : n.attr({ translate: q, fill: p }); } } else c.renderer.attr(c, { translate: [a.x, a.y], fill: a.color }); } function Cq(a) { var c = a.shadowEl, b = a.refNodes; if (b.length) { var d = b.indexOf(c); -1 < d && b.splice(d, 1); } c.destroy(); delete a.shadowEl; } function Jx(a, c, b, d, e) { if (J(ul, a)) { a = ul[a]; c && c.isHtml && (a = Kx[a]); if (!d) return a; J(d, a) || (d[a] = di(a, b, e, c)); } } function di(a, c, b, d) { if (!c || !d || (!O(c) && !Pa(c)) || c.isElement) return c; a: if (b && "fill" === a && !c.pattern && !N(c, ["meta", "pattern"]) && !N(c, ["val", "meta", "pattern"])) { a = d.data; if (!yc(["hatch", "hatchPattern"], b)) { if (!J(a, "hatch")) break a; b.hatchPattern = a.hatchPattern; b.hatch = a.hatch; } var e = b.hatch || "black"; a.hatchPattern = "" + (b.hatchPattern || "horizontal"); a.hatch = e; c = "none" === b.hatchPattern || "none" === b.hatch ? c : { pattern: "" + (b.hatchPattern || "horizontal"), color: b.hatch || "black", backgroundColor: b.fill }; } return O(c) ? Lx(c, d) : Pa(c) ? ((b = c.linearGradient || c.radialGradient ? sl(d.renderer, c) : c.pattern ? Mx(c, d, b) : c), b) : c; } function Fq(a, c) { a = vg(a.renderer, "pattern", c); a.val = c; return a; } function Mx(a, c, b) { return (b = lx( a, c, function (b) { return di("fill", b, null, c); }, b )) ? Fq(c, b) : a; } function Nx(a, c) { var b = c.renderer; a = Gd(a, "'\""); return Fq(c, { hash: "#image:" + a, width: "100%", height: "100%", patternContentUnits: "objectBoundingBox", childNodes: [b.image({ src: a, width: 1, height: 1, preserveAspectRatio: "none" })] }); } function Lx(a, c) { var b = /(.*)\((.*)\)/g.exec(a); if (!b) return a; var d = G(b, 3); b = d[1]; d = d[2]; if (!b || !d) return a; var e = Re(d, ", "), f = function () { return B(yg(e, 1), function (b) { return Gq(Re(b, " ")); }); }; d = function (b) { var a = f(); a[b] = Re(e[0], " "); return sl(c.renderer, a); }; return "linear-gradient" === b ? d("linearGradient") : "radial-gradient" === b ? d("radialGradient") : "url" === b && "#" !== e[0].charAt(0) ? Nx(e[0], c) : a; } function Ox(a, c, b, d, e) { a = c && c.isHtml ? "border-width" : "stroke-width"; if (!d) return a; J(d, a) || (d[a] = di(a, b, e, c)); } function Px(a, c, b, d, e) { if (!d || !c) return a; if ("text" !== c.nodeName && "tspan" !== c.nodeName) d[a] = di("stroke", b, e, c); else { var f = c.strokeEl; !b && f ? Hq(c) : b && !1 !== b.visible && ((a = O(b) ? { stroke: b } : b), (b = JSON.stringify(a)), (f && f.data.strokeHash === b) || (f && Hq(c), (c.strokeEl = f = c.renderer.element(c.nodeName, c.data.vals)), c.isPatched && (c.renderer.addBefore(f, c), (f.el.style.stroke = Qx(a.stroke, c)), (f.el.style.strokeWidth = a["stroke-width"] || e.strokeWidth), (f.el.style.strokeDasharray = a["stroke-dasharray"]), (f.el.style.strokeOpacity = a["stroke-opacity"]), (f.el.style.strokeLinejoin = "round"), (f.el.innerHTML = c.el.innerHTML)), c.refNodes.push(f), (f.ownerAttrsChanged = function (b) { f.el.innerHTML = c.el.innerHTML; }), (f.alignBeforeOwner = !0), (f.data.strokeHash = b))); } } function Hq(a) { var c = a.strokeEl; c.destroy(); delete c.ownerAttrsChanged; delete a.strokeEl; } function Qx(a, c) { return Ek(a) ? gg(N(c, ["parentNode", "data", "attrs", "fill"]) || "black", a) : a; } function Rx(a, c, b, d, e) { if (J(ei, a)) { if (!d) return ei[a]; if (e && !J(d, "transform")) if (O(e.transform) || null === e.transform) d.transform = e.transform; else { var f; c && (a = c.attr("transform")) && J(a, "val") && (f = a); f = f || {}; e.transform && L(f, e.transform); Da(ec, function (b) { J(e, b) && (f[b] = e[b]); }); var g = []; Da(ec, function (b) { if (J(f, b) && null !== f[b]) { var a = ec[b][1](f[b]); null != a && g.push(b + "(" + pc(a, ",") + ")"); f[b] = a; } }); if ((a = g.length ? pc(g, " ") : null)) f.val = a; d.transform = a ? f : null; } } } function Sx(a, c, b, d, e) { if (J(fi, a)) { if (!d) return fi[a]; a = fi[a]; b && c && (c.data.zIndex = b); d[a] = b; } } function Tx(a, c, b, d, e) { if (!d) return "easing"; a = b && O(b) ? (J(Iq, b) ? Iq[b] : b) : b; d.easing = a; } function Ux(a, c, b, d, e) { if ("mask" === a) { if (!d) return a; c && !J(d, "mask") && (b ? ((a = c.data.vals.mask), (b = Pe(e, O(b) ? { d: b } : b, Vx)), a ? (a.attr = L(a.attr, b)) : (a = vg(c.renderer, "mask", b)), (d.mask = a)) : (d.mask = null)); } } function Wx(a, c, b, d, e) { if (!d) return "text"; d.text = c.isHtml ? b : b.replace(Xx, " "); } function Ob(a) { return function (c) { vl[a] = c; }; } function Jq(a) { if (a.type && 0 === a.type.indexOf("touch")) return !0; a = a || window.event; return "buttons" in a && 1 === a.buttons ? !0 : 1 === (a.which || a.button); } function pf(a, c) { function b() { return (d = c.getBoundingClientRect()); } if (void 0 === a.eventData.clientX || void 0 === a.eventData.clientY) (a.eventData.clientX = a.clientX), (a.eventData.clientY = a.clientY); var d = null, e = null; a.eventData.coordinates = { getPageXY: function () { var f = a.eventData.pageX, g = a.eventData.pageY; if (void 0 === f || void 0 === g) d || (d = b()), e || (e = c.getBBox ? c.getBBox() : null), (f = a.eventData.clientX - d.left + (e ? e.x : 0)), (g = a.eventData.clientY - d.top + (e ? e.y : 0)); return { x: f, y: g }; }, getOuterBox: b, }; } function gi(a, c) { return c ? c.querySelector(a) : ba.querySelector(a); } function Kq(a, c, b) { wl(a, c, { reorder: b }); a.el.appendChild(c.el); c.refNodes.length && w(c.refNodes, function (b) { return b.alignBeforeOwner && zg(b, c); }); } function zg(a, c, b) { var d = c.parentNode; wl(d, a, { index: d.childNodes.indexOf(c), reorder: b }); c.el.parentNode.insertBefore(a.el, c.el); a.refNodes.length && w(a.refNodes, function (b) { return b.alignBeforeOwner && zg(b, a); }); } function Lq(a, c, b) { var d = c.parentNode, e = d.childNodes, f = e.indexOf(c) + 1; wl(d, a, { index: f === e.length ? null : f, reorder: b }); c.el.parentNode.insertBefore(a.el, c.el.nextSibling); a.refNodes.length && w(a.refNodes, function (b) { return b.alignBeforeOwner && zg(b, a); }); } function Yx(a) { Zx(a.el); Mq(a); a.childNodes = []; a.refNodes.length && (w(a.refNodes, function (a) { return a.destroy(); }), (a.refNodes = [])); delete a.el; } function wl(a, c, b) { b = b || { reorder: !1, index: null }; var d = b.reorder; b = b.index; c && (a !== c.parentNode || d) && ((d = Mq(c)), -1 < d && d < b && b--, a && ((d = a.childNodes), 0 === b ? d.unshift(c) : b ? d.splice(b, 0, c) : d.push(c), (c.parentNode = a))); } function Mq(a) { if (!a.parentNode) return -1; var c = a.parentNode.zIndexHash, b = a.data.zIndex || 0; c[b] && delete c[b]; c = a.parentNode.childNodes; b = c.indexOf(a); if (0 > b) return -1; c.splice(b, 1); a.parentNode = null; return b; } function Ag(a, c, b) { if (!a || a instanceof tb) return a; b = new tb(a, c, b); var d = b.data.attrs, e, f = {}; if (a.hasAttributes()) { var g = a.attributes; try { for (var h = ya(g), k = h.next(); !k.done; k = h.next()) { var l = k.value; f[l.name] = l.value; } } catch (x) { var m = { error: x }; } finally { try { k && !k.done && (e = h.return) && e.call(h); } finally { if (m) throw m.error; } } } L(d, f); a.parentNode && (b.parentNode = new tb(a.parentNode, c, void 0)); var n; a = []; c = b.el.childNodes; try { for (var p = ya(c), q = p.next(); !q.done; q = p.next()) { var r = q.value; 1 === r.nodeType && a.push(Ag(r, b.renderer)); } } catch (x) { var u = { error: x }; } finally { try { q && !q.done && (n = p.return) && n.call(p); } finally { if (u) throw u.error; } } b.childNodes = a; return b; } function $x(a, c, b) { c.omit && ((c = Ga(c, c.omit)), delete c.omit); for (var d in c) { var e = c[d], f = e; if (e && e.isDef) e.updateAttr && (e = e.updateAttr(e, d, a)), (f = "url(#" + e.attr.id + ")"); else if (e instanceof tb) e.el ? ((f = e.el.id), lc(f) && ((f = Dd()), xl(e, "id", f)), (f = "url(#" + f + ")")) : (f = Nq(a, d)); else if ("transform" === d) if (e) { if (O(e)) throw Error("String transform is not support. val:" + e); a.data.transform = e; f = e.val; } else a.data.transform = e; f = lc(f) ? f : oh(f); a.data.vals[d] = e; xl(a, d, f, b); } a.refNodes.length && w(a.refNodes, function (b) { return b.ownerAttrsChanged && b.ownerAttrsChanged(c); }); } function ay(a, c) { if (t(c)) { if (c) { var b = G(ja(c) ? c : [c.x, c.y, c.width, c.height], 4); b = qf(b[0], b[1], b[2], b[3]); return (a.data.box = b); } delete a.data.box; } if (a.data.box) return a.data.box; a = a.el; if (!a) return qf(); c = a.nodeName.toLowerCase(); if ("svg" === c || "div" === c) return a.parentNode ? ((a = a.getBoundingClientRect()), qf(0, 0, a.width, a.height)) : qf(0, 0, 0, 0); try { return (b = a.getBBox()), qf(b.x, b.y, b.width, b.height); } catch (d) { return qf(); } } function qf(a, c, b, d) { void 0 === a && (a = 0); void 0 === c && (c = 0); void 0 === b && (b = 0); void 0 === d && (d = 0); return { x: a, y: c, width: b, height: d }; } function Oq(a, c, b) { var d, e = a.childNodes, f = parseFloat(c.attr("z-index")); b > a.zIndexMax ? (a.zIndexMax = b) : ((d = a.zIndexHash[b]) ? Lq(c, d, !0) : (d = S(e, function (a) { return (a.data.zIndex || 0) > b; })) && zg(c, d, !0), d && (a.zIndexMax = e[e.length - 1].data.zIndex)); f !== b && a.zIndexHash[f] === c && delete a.zIndexHash[f]; a.zIndexHash[b] = c; d || Kq(a, c, !0); } function xl(a, c, b, d) { var e = a.el, f = a.data.attrs, g = f[c]; Pq[c] === b && (b = null); if (g != b) { if ("z-index" === c) (e = parseFloat(b)), a.parentNode && Oq(a.parentNode, a, e); else if ("text" === c) e.textContent = b; else if ("value" === c) e.value = b; else if ("innerHTML" === c) e.innerHTML = b; else if (hi(e.tagName) && "type" === c) e.type = b; else if (hi(e.tagName) && "accept" === c) e.accept = b; else if (((a = b), null == a)) yl(e, c) ? e.style && (e.style[c] = "") : e.removeAttribute(c); else if (yl(e, c)) e.style && (e.style[c] = a); else { var h = Qq(c); h ? e.setAttributeNS(h, c, a) : e.setAttribute(c, a); } f[c] = b; d && d(c, g, b); } } function Rq(a, c) { var b = L({}, a.data.attrs), d = "path" === a.nodeName, e = function (b, d) { (c && J(c, b)) || xl(a, b, d); }; Da(b, function (b) { (!d || ("fill" !== b && "stroke" !== b)) && e(b, null); }); d && (e("fill", "none"), e("stroke", "none")); } function Nq(a, c) { var b = a.data.attrs, d = a.el, e = void 0; if ("transform" === c) return L({}, a.data[c]) || null; "path" !== a.nodeName || ("fill" !== c && "stroke" !== c) || (e = "none"); (a = b[c] || e || Pq[c]) || ("text" === c ? (c = d.firstChild ? d.firstChild.nodeValue : "") : yl(d, c) ? ((d = d.style), (c = !d || ub(d[c]) ? null : d[c])) : (c = (a = Qq(c)) ? d.getAttributeNS(a, c) : d.getAttribute(c)), (a = c)); return a; } function Sq(a) { return a && ((a.start && a.start.type) || (a.end && a.end.type)); } function by(a) { var c = a.caps || {}; c.lineWidth = z(c.lineWidth, a.lineWidth, a["stroke-width"]); return { lineWidth: c.lineWidth, start: (c.start && c.start.type) || c.type ? Up(be(c, c.start || {}, Tq)) : {}, end: (c.end && c.end.type) || c.type ? Up(be(c, c.end || {}, Tq)) : {}, eachShape: c.eachShape }; } function cy(a, c) { var b = function (a, c) { return 2 > c || !ab(a[c], a[c + 1]) ? c : b(a, c - 1); }, d = function (b) { b = b.shapes[0].items[1] || b.shapes[0].items[0]; return Ia(b[2], b[1]); }, e = function (a) { a = P(P(a.shapes).items); var c = b(a, a.length - 2); return Ia(a[c], a[c + 1]); }; a = dy(a); var f = a.length(), g = function (b) { return ii(b) ? z(b.centerWidth, 0) : 0; }, h = function (b) { return ii(b) ? z(b.centerWidth && b.width, 0) : 0; }, k = h(c.start), l = h(c.end); h = g(c.start); c = g(c.end); var m = h / f, n = c / f; if ((g = m || n) && k + l > f) return null; f = g ? Vw(a, h, c, { mode: "caps" }) : a; var p = f.shapes[0].items[0][2], q = P(P(P(f.shapes).items)); k = a.shapes[0].items[0][2]; l = P(P(P(a.shapes).items)); d = m && !ab(p, k) ? Ia(p, k) : d(f); e = n && !ab(q, l) ? Ia(q, l) : e(f); n = [p, q]; h && (n[0] = ra(k, d - 180, h)); c && (n[1] = ra(l, e - 180, c)); return { clipLen: [h, c], points: n, angles: [d, e], d: g ? f : a }; } function dy(a) { if (1 > a.shapes.length || (1 === a.shapes.length && 2 > a.shapes[0].items.length)) return a; a: for (var c = [0, 0], b = 0; b < a.shapes.length; b++) for (var d = a.shapes[b], e = 0 === b ? 1 : 0; e < d.items.length; e++) { var f = d.items[e]; c = [b, e]; if (!ab(f[1], P(f))) break a; } b = a.shapes.length - 1; a: for (; 0 <= b; b--) for (d = a.shapes[b], e = d.items.length - 1; 0 <= e; e--) { var g = [b, e]; f = d.items[e]; if (!ab(f[1], P(f))) break a; } b = [a.shapes[0].items[0]]; for (d = c[0]; d <= g[0]; d++) for (e = a.shapes[d], f = d == c[0] ? c[1] : 0; f <= (d == g[0] ? g[1] : e.items.length - 1); f++) b.push(e.items[f]); return Ic(b); } function ey(a, c) { var b, d, e = function (b, a) { var c = a.cxy; a = a.angle; var d = b.concavity, e = b.width, f = b.height; c = !0 === b.overflow ? c : ra(c, a, -e / 2); c = mb(c, [e, f]); d = { angle: a, concavity: d }; b = $p(b.type, c[0], c[1], c[2], c[3], d); if (d.skipTransform) return b; b = b.isPath ? b : Aa(b); return b.rotate(a + 90); }, f = a.start || {}; a = a.end || {}; ii(f) && (b = e(f, { cxy: c.points[0], angle: c.angles[0] })); ii(a) && (d = e(a, { cxy: c.points[1], angle: c.angles[1] })); return { start: b, end: d }; } function ii(a) { return a && a.type && "none" !== a.type; } function Uq(a) { var c = {}, b = fy; Da(a, function (d) { if (J(b, d)) { var e = b[d]; 2 < e.length ? (c[e] = a[d]) : (c[e[0]] = e[1](a[d])); } else c[d] = a[d]; }); return c; } function gy(a, c, b) { a[c] = b; } function hy(a, c, b) { return zl(a, c, b) && { updateGlobalCoordinates: !0 }; } function iy(a, c, b) { return zl(a, c, b) && { updateSharedAttrs: !0 }; } function jy(a, c, b) { return ji(a, c, parseFloat(b) || Infinity); } function ji(a, c, b) { return zl(a, c, b) && { needRecalc: !0 }; } function zl(a, c, b) { if (!vc(a[c], b)) return (a[c] = b), !0; } function ky(a, c, b) { b = "auto" === b || null === b || Ha(b) ? ld() : Qa(b, { isMutable: !1 }); return ji(a, ly[c], b); } function my(a, c, b) { b = rf(b, a.width ? a.width.px : 0); return ji(a, c, b); } function ny(a, c, b, d) { var e = "string" === typeof a; a = e ? [{ val: a }] : a; for (var f = [], g = 0, h = a.length; g < h; g++) { var k = a[g]; k.textVariants || (k.textVariants = oy(k.val, d.ignoreCategories)); var l = k.textVariants, m = e ? c.personal : k, n = e ? c.own : W(c.own, m), p = []; k = function (a, f) { var h = l[a].completeString; d.preserveStartSpaces || 0 !== g || (h = h.replace(Hd.startSpaces, "")); d.preserveSpaces || (h = h.replace(Hd.spaces, " ")); a = py(n, e ? c.parent : c.own, b); h = Xv(h, a, b); if (1 === f && t(a.width)) { var k; if ((k = parseFloat(a.width))) delete a.width, w(h.parts, function (b) { b.text && ((b.width = k), (k = 0)); }); } h.style = e ? c.personal : W(c.personal, m); p.push(h); }; for (var q = 0, r = l.length; q < r; q++) k(q, r); f.push(p); } return f; } function oy(a, c) { if (-1 < a.indexOf("&ors;")) { var b = [{ completeString: "", variantsUsed: [] }], d = [], e = {}, f = [], g = qy(a).split(Hd.variants); a = []; for (var h = 0, k = g.length; h < k; h++) h % 2 ? a.push(g[h]) : (a = a.concat(g[h].split(Hd.space))); h = 0; for (k = a.length; h < k; h++) if ((g = a[h])) { g = g.split(Vq.orc); var l = g[1]; l = l ? l.split(":") : []; g = g[0].split(Vq.or); f.push(1 < g.length && !c ? { versions: g, category: { variantsNumber: g.length, name: l[0] || "", priority: l[1] || 0 } } : g[0]); } a = 0; for (h = f.length; a < h; a++) if (((k = f[a]), (g = k.versions))) { k = k.category; l = e[k.name]; var m = 1; l || ((l = b.length), k.name && !c && (e[k.name] = l), (m = g.length)); for (var n = [], p = 0; p < m; p++) n = n.concat(ry(b)); b = n; for (m = 0; m < b.length; m++) (n = Math.floor(m / l) % g.length), (b[m].completeString += g[n]), b[m].variantsUsed.push(n); d.push(k.priority); } else for (g = 0, l = b.length; g < l; g++) b[g].completeString += k; return sy(b, d); } return [{ completeString: a, variantsUsed: [] }]; } function Wq(a) { for (var c = [], b = 0, d = a.length; b < d; b++) { var e = a[b]; e && void 0 != e.length ? c.push(Wq(e)) : c.push(L({}, e)); } return c; } function qy(a) { var c = new String(a); -1 < a.indexOf("&ors;") && Da(Xq, function (b) { var a = Xq[b], e = parseInt(b); Hd["char_" + b] || (Hd["char_" + b] = new RegExp("&#" + b + ";?" + (a ? "|&" + a + ";?" : ""), "ig")); c = c.replace(Hd["char_" + b], String.fromCharCode(e)); }); return c; } function sy(a, c) { for (var b = [], d = 0, e = c.length; d < e; d++) { var f = c[d]; f && (b[parseInt(f) - 1] = d); } c = function () { var c = b[g]; a.sort(function (b, a) { return b.variantsUsed[c] > a.variantsUsed[c]; }); }; var g = 0; for (d = b.length; g < d; g++) c(); return a; } function ry(a) { for (var c = [], b = 0, d = a.length; b < d; b++) { var e = a[b]; c.push({ completeString: e.completeString, variantsUsed: e.variantsUsed.slice() }); } return c; } function py(a, c, b) { c = c.fontSize; var d = b.fontSize; b = a.fontSize || c; if ("number" == typeof b) c = b; else { if (Hd.fontSize.test(b) && (d = parseFloat(b))) switch (b.replace(d, "")) { case "em": if (!c) { d = 0; break; } d *= parseFloat(c); break; case "pt": d = (4 * d) / 3; } c = d; } a.fontSize = c; a.fontFamily = a.fontFamily; return a; } function ty(a) { a = a.split("|"); var c = ["left", "center", "right"], b = ["top", "middle", "bottom"], d = {}; w(a, function (a) { c[a] && (d.x = a); b[a] && (d.y = a); }); return d; } function uy(a) { if (!a || a.push) return a; switch (I(a)) { case "number": return [a]; case "string": return Oj(a); } return a; } function vy(a, c) { var b = a.length - 1; if (c < a[b].minSize.width.px) return a[b]; if (c > a[0].minSize.width.px) return a[0]; for (var d = 0; d <= b; ) { var e = Math.floor((d + b) / 2); if (c > a[e].minSize.width.px) b = e - 1; else if (c < a[e].minSize.width.px) d = e + 1; else return a[e].minSize.width.px; } return a[d]; } function Yq(a, c, b) { var d = O(a), e = d ? ba.getElementById(a) : a; a = d ? a : a.getAttribute && a.getAttribute("id"); d = b && b.preserve; var f = !a || !ki[a]; if (f || !d) var g = new Al({ container: e, staticSize: !0, skipDomDestroy: !d }); f ? ((e = g.textStack(c)), e.attr(L(Zq, b)), e.add().refresh(), a && d && (ki[a] = e)) : ((e = ki[a]), e.attr(L(Zq, b)).val(c).refresh()); c = e.setPreliminarySize().getBbox(); b = e.renderer.root.el; b.setAttribute("width", c.width + 1); b.setAttribute("height", c.height + 1); d || (e.destroy(), g.destroyChildren(), g.destroy(), a && delete ki[a]); return b; } function $q(a) { if (a.type) { var c = G(a.type.split(":"), 2), b = c[1]; a.type = c[0]; a.subType = b; } else a.type = "panel"; } function sf(a, c, b) { li = li || {}; var d = c.split(","); c = a + c + b; var e, f; if ((e = li[c])) return e; var g = 0; for (f = d.length; g < f; g++) { var h = void 0; e = a; var k = Gd(d[g]).replace("enum_", ""), l = !1, m = { sequence: [], explicit: [] }; m.setting = e; for (e = e.toLowerCase(); !l; ) { var n = void 0; h = void 0; var p, q = void 0, r = void 0, u = void 0, x = e, v = ke(k), y = pa(v.members); x = Gd(x); var D = 0; for (p = y.length; D < p; D++) if (0 !== x.indexOf(y[D].toLowerCase()) || (x.length !== y[D].length && !v.members[y[D]].chain)) 0 !== x.indexOf(y[D].toLowerCase()) || x.length === y[D].length || v.members[y[D]].chain ? v.members[y[D]].isDefault && (r = y[D]) : (n = y[D]); else { q = y[D]; break; } !q && n && (q = n); q ? (u = !0) : ((q = r), (h = !0)); q ? ((n = 0 === x.indexOf(q.toLowerCase()) ? x.replace(q.toLowerCase(), "") : x), (h = { match: q, isDefault: h, explicit: u, chain: v.members[q].chain, value: n, attributes: v.members[q].enumAttributes })) : (h = { invalid: x }); if (t(h.invalid)) (h.value = h.invalid), (l = !0); else { if (!h.isDefault || !b) if (((m[k] = h.match), m.sequence.push(k), h.attributes)) for (var E in h.attributes) m[E] = h.attributes[E]; h.explicit && m.explicit.push(k); k = h.chain; e = h.value; k || 0 !== e.length ? (k ? (k = k.replace("enum_", "")) : k || (l = !0)) : (l = !0); } } m.sequence = m.sequence.join(","); m.explicit = m.explicit.join(","); 0 < h.value.length && (m.invalid = h.value); e = m; if (!e.invalid) break; } return (li[c] = e); } function wy(a, c) { var b = I(c); switch (a) { case "palette": if ("array" !== b && "object" !== b) return Fh(c); } return c; } function Bl(a, c) { c = Ac(c).slice(0); c.unshift(c.pop()); a = Yb(a); a[0] += c[0]; a[1] += c[1]; a[2] -= c[2]; a[3] -= c[3]; return Ze(a); } function Bb(a, c) { var b = {}, d = z(a.visible, !0), e = z(a.width, 1), f = z(a.opacity, 1) * z(c, 1), g = Dh(a.color || "black"); c = z(a.caps, "butt"); f *= g.opacity; d && !Q(a.color) ? ((b.stroke = g.hex), (b["stroke-opacity"] = f)) : ((b.stroke = "none"), (e = 0)); if (!Q((d = a.dashStyle))) { a = e; d = d.toLowerCase(); if ((d = xy[d].split(","))) { f = 0; for (g = d.length; f < g; f++) d[f] *= a; a = d.join(","); } else a = "none"; b["stroke-dasharray"] = a; } b.fill = "none"; b["stroke-width"] = e; b["stroke-linejoin"] = "round"; O(c) ? (b["stroke-linecap"] = c) : (b.caps = c); return b; } function mi(a) { 0 === a["stroke-width"] && (delete a["stroke-linejoin"], delete a["stroke-linecap"], delete a.stroke, delete a["stroke-opacity"]); return a; } function fc(a, c) { var b = {}, d; c = z(a.opacity, 1) * z(c, 1); Q((d = a.outline)) || (b = Bb(d, c)); Q((d = a.fill || a.color)) || ni(b, d, c); b["fill-rule"] = "evenodd"; ar(b, a.hatch, b.stroke || "rgb(50,50,50)"); !1 === a.visible && (b.opacity = 0); Q((d = a.d || a.path)) || (b.d = d); Q((d = a.size)) ? Q((d = a.radius)) || (b.r = d) : (b.r = (parseInt(d) || 0) / 2); return b; } function Bg(a, c, b) { var d, e = z(a.opacity, 1) * z(c, 1), f = {}, g = {}, h = {}, k = {}; !1 === a.boxVisible ? ((f.fill = !1 === a.boxPointerEvents ? "transparent" : "none"), (f.stroke = "none"), (f.shadow = !1)) : (Q((d = a.outline)) || ((c = Bb(d, e)), A(f, c), A(h, c)), Q((d = a.fill)) || ni([k, f], d, e, b), kb(a, f, "radius", "r", void 0), kb(a, f, "shadow", void 0, void 0)); kb(a, g, "margin", "margin", Ac); kb(a, g, "padding", "padding", Ac); kb(a, g, "width", void 0, void 0); kb(a, g, "height", void 0, void 0); Q((d = a.height)) ? (g.height = void 0) : (g.height = d); Q((d = a.style)) || A(g, d); kb(a, g, "zIndex", void 0, void 0); return { bg: f, root: g, stroke: h, fill: k }; } function br(a) { var c = a.animation, b = C(a, "label.style"), d = C(a, "label.align"), e = a.outline, f = function (b, c, d) { kb(a, h, b, c, d); }, g = function (b) { return b + "px"; }, h = { position: "absolute", whiteSpace: "nowrap" }; f("radius", "radius", g); f("padding", "padding", g); f("fill", "background"); f("offsetX", "left", g); f("offsetY", "top", g); f("width", "width", g); f("height", "height", g); f("radius", "borderRadius", g); f("text-align", "text-align"); f("background-color", "background-color"); f("border", "border"); f("click", "onclick"); f("visibility", "visibility"); f("left", "left"); f("top", "top"); f("zIndex", "zIndex"); d && (h.textAlign = d); t(b) && (kb(b, h, "color", "color"), kb(b, h, "fontSize", "fontSize"), kb(b, h, "fontFamily", "fontFamily"), kb(b, h, "fontWeight", "fontWeight"), kb(b, h, "textDecoration", "textDecoration"), kb(b, h, "fontStyle", "fontStyle")); t(e) && (h.border = e.color + " solid " + e.width + "px"); t(c) && ((h.transitionProperty = c ? "left, top" : null), (h.transitionDuration = c ? (c.duration || 0) / 1e3 + "s" : null), (h.transitionTimingFunction = c ? c.easing : null)); !1 === a.boxVisible && ((h.background = "none"), (h.border = "none")); return h; } function Cg(a, c) { var b = Bg(a, void 0, c); b = A(b.bg, b.root); var d, e = []; if (Q((d = a.corners))) Q((d = a.radius)) || (ob(4, function () { e.push({ type: "round", r: d }); }), (f = { corners: e })); else var f = { corners: yy(d, a) }; b.shape = L(a.shape || {}, f); "titleBox" === c && b.shape && w(b.shape.corners, function (b, a) { 1 < a && (b.type = "square"); }); return b; } function yy(a, c) { var b = a, d = []; switch (I(a)) { case "string": ob(4, function () { d.push({ type: b, r: c.radius }); }); break; case "array": if (4 !== b.length) for (b = b.slice(0); 4 > b.length; ) b.push("round"); d = B(b, function (b) { return { type: b, r: c.radius }; }); break; case "object": d = [ { type: b.topleft || "round", r: c.radius || 3 }, { type: b.topright || "round", r: c.radius || 3 }, { type: b.bottomright || "round", r: c.radius || 3 }, { type: b.bottomleft || "round", r: c.radius || 3 }, ]; } return d; } function qc(a, c, b) { var d, e = {}; a = c ? Ga(a, c) : a; c = function (b, c, d) { kb(a, e, b, c, d); }; var f; Q((d = a.color)) ? Q((d = N(a, ["style", "color"]))) || (f = d) : (f = d); f && (e.fill = ia(f, (b && b.color) || f)); c("margin", "margin", Ac); c("padding", "padding", Ac); c("visible", "display", function (b) { return b ? "block" : "none"; }); c("align", "xAlignment"); c("align", "xContentAlignment"); c("verticalAlign", "yAlignment", function (b) { return b.replace("middle", "center"); }); c("cssClass", "className"); c("rotate", "rotate"); c("width"); c("height"); c("textOverflow"); c("maxWidth"); c("strategy"); c("autoWrap"); c("opacity"); !Q((d = a.offset)) && (d = cr(d)) && ((e.offsetX = d[0]), (e.offsetY = d[1])); Q((d = a.outline)) || Sc(e, Bb(d), { fill: !0 }); Q((d = a.style)) || A(e, d); return e; } function cr(a) { var c = I(a); if ("string" === c) { if (((a = a.split(",")), 2 === a.length)) return [parseInt(a[0]), parseInt(a[1])]; } else { if ("number" === c) return [a, a]; if ("array" === c) return a; } } function ar(a, c, b) { c && (kb(c, a, "style", "hatchPattern"), b && (c = A({ color: ia("contrast", b) }, c)), kb(c, a, "color", "hatch", Lb), "none" === a.hatchPattern && (delete a.hatchPattern, delete a.hatch, (a.stroke = "none"))); return a; } function ni(a, c, b, d) { void 0 === b && (b = 1); var e = I(c); if ("undefined" !== e) { if ("object" !== e) if ("none" !== c) { var f = Eh(oc(c), b); d && "string" === typeof f && (f = dd(d, f)); } else f = "transparent"; else f = oc(c, 1 - b); a.pop ? w(a, function (b) { return (b.fill = f); }) : (a.fill = f); } } function tf(a) { var c = "none" !== a.color, b; if ((b = !1 === a.visible)) (b = a && a.caps), (b = !(b && (b.end || b.start || b.type))); var d = 0 !== a.width; return (b && !a.color) || !d ? !1 : c; } function dr(a) { var c = a.outline; return (a.fill && "none" !== a.fill) || (c && "none" !== c && 0 !== c.width); } function Id(a) { var c = 0 !== N(a, ["text", "length"]); return !1 === a.visible ? !1 : !!c; } function Dg(a, c, b, d) { void 0 === d && (d = {}); var e, f = (d.minIntervalGap = z(d.minIntervalGap, 0.3)), g = d.axOptions || {}, h = g.scale || {}; if (b.length) { var k = b[0]; b = b[1]; } var l = h.type && 0 === h.type.toLowerCase().indexOf("log"); h = h.logBase || 10; var m = { interval: 0, min: 0, max: 0, range: 0 }, n = oi(d.userMax) ? d.userMax : d.snapZero && 0 > c ? 0 : c, p = oi(d.userMin) ? d.userMin : d.snapZero && 0 <= a ? 0 : a, q = Xf([n, p]), r = Math.abs(n - p); if ((e = d.breaks)) (r = rv([[p, n]], e)), (r = eo(r)); m.range = r = na(r, q); (q = d.minInterval || (k && r / k)) && (q.unit || O(q)) && ((q = Nh(q.unit ? q : { unit: q })), (q = q.count * q.unitRange)); k = er(r, zy, q, b).best.interval; "auto" === d.userMinorInterval && ((q = Id(C(g, "defaultMinorTick.label"))), (g = tf(C(g, "defaultMinorTick.gridLine"))), (m.minorInterval = C(er(k, Ay, d.minInterval, q || g ? 2 : b), "best.interval"))); q = Xf([a, c, r, k]); e = Math.log(Math.abs(c)) / Math.log(h); b = Math.log(Math.abs(a)) / Math.log(h); g = function (b) { var a = Math.floor(b); return b - a < f ? a - 1 : a; }; r = function (b) { var a = Math.ceil(b); return a - b < f ? a + 1 : a; }; e = 0 > c ? g(e) : r(e); b = 0 > a ? r(b) : g(b); oi(d.userMax) ? (d.userMax < a && (m.error = fr.badMax), (m.max = d.userMax)) : l ? (m.max = Math.pow(h, e) * ce(c)) : d.snapZero && 0 >= c ? (m.max = 0) : ((m.max = Math.ceil(c / k) * k), 0 !== m.max && c > m.max - k * f && (m.max += k)); oi(d.userMin) ? (d.userMin > c && (m.error = fr.badMin), (m.min = d.userMin)) : l ? (m.min = Math.pow(h, b) * ce(a)) : d.snapZero && 0 <= a ? (m.min = 0) : ((m.min = Math.floor(a / k) * k), 0 !== m.min && a < m.min + k * f && (m.min -= k)); l ? (m.log = [b, e]) : ((m.min = na(m.min, q)), (m.max = na(m.max, q))); m.range = m.max - m.min; m.interval = k; return m; } function er(a, c, b, d) { var e = -1, f = [], g = Math.pow(10, Math.floor(Math.log(a) / Math.LN10)), h, k = 0; for (h = c.length; k < h; k++) { var l = g / c[k], m = a / l + 1; f[k] = { interval: l, tickCount: m }; m = m < d; l = Q(b) || l >= b; var n = k === h - 1; if (-1 === e && ((m && l) || n)) { e = k; break; } } return { prev: 0 < e ? f[e - 1] : void 0, best: f[e], next: e < h - 1 ? f[e - 1] : void 0 }; } function By(a) { function c(b) { return 0 < b.length ? b[0] : "!@!@!"; } function b(b, a) { return b[a] ? b[a] : 0; } function d(b) { for (var a = 0; a < f; a++) e[a].propNames[0] === b && e[a].propNames.shift(); } var e = [], f = a.length, g = !1, h = "!@!@!", k = 0, l = "", m = [], n, p = !1; for ( (function () { for (var b = 0; b < f; b++) { var c = { propNames: [], nCounts: {} }, d = a[b], g = d.length; g > k && (k = g); for (var h = 0; h < g; h++) c.propNames.push(d[h]), c.nCounts[d[h]] ? c.nCounts[d[h]]++ : (c.nCounts[d[h]] = 1); e.push(c); } })(); !g; ) { h = "!@!@!"; for (n = 0; n < f; n++) (l = c(e[n].propNames)), "!@!@!" === h ? (h = l) : h !== l && 0 < b(e[n].nCounts, h) && (h = l); if ("!@!@!" === h || m.length >= k * f) g = !0; else if (m.length >= k) { p = !0; for (n = 0; n < f; n++) if (((l = c(e[n].propNames)), "!@!@!" !== h)) { p = !1; break; } g = p; } g || (m.push(h), d(h)); } return m; } function Jd(a, c, b, d) { return Cl.abs(((a - c[d]) / (c[b] - c[d])) * 100); } function rc(a, c, b) { c = c[b]; return a && c ? Cl.abs((a / c) * 100) : 0; } function Eg(a) { return J(a, "ye") && !J(a, "y"); } function Fg(a) { return Eg(a) ? la(a.ye, a.ys) : a.y; } function Dl(a, c) { var b = "y" === c, d = a.pOptions, e = a.scCache, f = a.yVal, g; if ((g = a.series[c + "Axis"]) && a.chart.chartItemManager.exists(g.id)) return (a = t(g.min) ? g.range : Dg(e[b ? "min" : c + "Min"], e[b ? "max" : c + "Max"], 10)), Cl.abs((((b ? d[f] - (d.low || 0) : d[c]) - a.min) / (a.max - a.min)) * 100); } function pi(a, c) { var b = "y" === c; return rc(b ? Fg(a.indexedData) : a.pOptions[c], a.cache, b ? "yRangeSumAbs" : c + "SumAbs"); } function qi(a, c) { var b = "y" === c, d = b ? "yRangeSumAbs" : c + "SumAbs"; return rc(a.pOptions ? (b ? Fg(a.indexedData) : a.pOptions[c]) : a.cache[d], a.scCache, d); } function ri(a, c) { var b = "y" === c, d = b ? "yRangeSumAbs" : c + "SumAbs", e = a.pgCache; return e[d] ? rc(b ? Fg(a.indexedData) : a.pOptions[c], e, d) : a.pOptions[c] ? 100 : 0; } function si(a, c) { var b = "y" === c, d = a.pOptions[b ? a.yVal : c]; return t(d) ? mv(d, a.cache[b ? "averList" : c + "AverList"]) : 0; } function gr(a) { var c = a.pOptions.y; return t(c) && "string" === typeof c && !a.fOptions.yIsTime ? c : Eg(a.indexedData) ? a.indexedData.ye : a.indexedData.y; } function El(a, c) { return (a.val.pop ? a.val[1] - a.val[0] : 0) / c; } function Cy(a) { var c = a.indexer; c.reset(); a.chart.series().each(function (b) { var c = b.getCalcCache(); a.indexer.indexObject(c, b._i); }); var b = Math.abs, d = function (b) { return Tc(Pb(c, "concat")(b)); }, e = Pb(c, "getItem"), f = Pb(c, "min_i"), g = Pb(c, "max_i"), h = Pb(c, "min"), k = Pb(c, "max"), l = Pb(c, "sum"), m = d("list"), n = d("average"), p = d("xList"); d = d("zList"); var q = e(f("min")), r = e(g("max")), u = e(f("xMin")), x = e(g("xMax")); f = e(f("zMin")); e = e(g("zMax")); g = c.getKey("type"); var v = k("zMax"), y = h("zMin"), D = { list: m, typeList: g, type: g[0], sumList: c.getKey("sum"), max: k("max"), min: h("min"), sum: l("sum"), average: n.length ? l("average") / n.length : n, range: m.length ? k("max") - h("min") : void 0, zList: d, xList: p, zSumList: c.getKey("zSum"), xSumList: c.getKey("xSum"), zMax: v, zMin: y, zAbsmax: Math.max(b(v), b(y)), xMax: k("xMax"), xMin: h("xMin"), zSum: l("zSum"), xSum: l("xSum"), sumAbs: l("sumAbs"), zSumAbs: l("zSumAbs"), xSumAbs: l("xSumAbs"), zAverage: d.length ? l("zSum") / m.length : void 0, xAverage: p.length ? l("xSum") / m.length : void 0, zRange: d.length ? k("zMax") - h("zMin") : void 0, yRangeSum: l("yRangeSum"), yRangeSumAbs: l("yRangeSumAbs"), nMin: q.nMin, nMax: r.nMax, nZMax: e.nZMax, nZMin: f.nZMin, nXMax: x.nXMax, nXMin: u.nXMin, snMax: r.name, snMin: q.name, snZMax: e.name, snZMin: f.name, snXMax: x.name, snXMin: u.name, }, E = { Min: h, Max: k }; Ib("Sum,Average", function (b) { Ib("Min,Max", function (a) { Ib("y,x,z", function (c) { var d = "y" === c; D[(d ? Se(a) : c + a) + b] = E[a](d ? Se(b) : c + b); }); }); }); return D; } function Dy(a) { var c = a[0], b = function (b) { return a.map(function (a) { return a.tokenValue(b); }); }, d = b("%yValue"), e = Math.min.apply(Math, H(d)), f = Math.max.apply(Math, H(d)), g = Ta(d), h = a.length; d = d.join(","); return { xvalue: c.replaceTokens("%xValue"), ysum: g, sum: g, ylist: d, ymin: e, min: e, ymax: f, count: h, pointcount: h, max: f, colors: b("%color") .map(function (b) { return Dh(b).hex; }) .join(","), }; } function Ey(a, c, b) { void 0 === b && (b = "x"); var d = a.chartArea.chartAreaSet.series(), e = a.indexer.getValue(b, c._i), f = new Fl(), g = 0; w(d, function (a) { var c = a.indexer.findValue_i(b, e); a = a.indexer.getItem(c); f.indexObject(a, g); g++; }); a = f.getKey("y"); c = f.getKey("z"); d = f.hasKey("yr") ? "yr" : "y"; var h = Pb(f, "sum"), k = Pb(f, "sumAbs"); return { list: a, sum: h("y"), sumAbs: k("y"), yRangeSum: h(d), yRangeSumAbs: k(d), zList: c, zSum: h("z"), xSum: h("x"), zSumAbs: k("z"), xSumAbs: k("x"), average: a.length ? h("y") / a.length : void 0, zAverage: c.length ? h("z") / c.length : void 0, }; } function hr(a, c, b) { var d = b.atribs; if (d) if ("function" === typeof d.pop) for (var e = 0, f = d.length; e < f; e++) { if (a === d[e][0].toLowerCase()) return ti(d[e][1]); } else { f = e = void 0; for ( var g = a.split("."), h = function (b, a) { for (var c = pa(b), d = 0, e = c.length; d < e; d++) { var f = c[d]; if (a === f.toLowerCase()) return b[f]; } }, k = void 0; (f = g.shift()) && t((k = h(e || d, f))); ) e = k; if (t(e)) return ti(e); } a = c[a]; if (!a) return "INVALID TOKEN"; c = a.val ? a.val(b) : a(b); c !== c && (c = 0); if (!t(c)) return "-"; C(b.fOptions, "y.isTime") && a.yVal && (c = new Date(c)); return ti(c); } function Fy(a, c, b) { var d = b.fOptions || {}, e = "," + a + ",", f = { fStr: d.fStr, culture: d.culture, isTime: d.isTime }; return -1 < ",min,max,average,rangesum,lasty,sum,median,mode,value,ysum,yaverage,ymedian,ymode,ymin,ymax,ymaxsum,maxsum,yminsum,minsum,yrangesum,yvalue,ystart,yrange,open,high,low,close,".indexOf(e) ? d.y || f : -1 < ",xvalue,xsum,xmin,xmax,xmaxsum,xminsum,xaverage,lastx,xrange,lastx,xmode,xmedian".indexOf(e) ? d.x || f : -1 < ",complete,".indexOf(e) ? { fStr: "p", culture: d.y.culture } : -1 < ",zvalue,zsum,zmin,zmax,zmaxsum,zminsum,zaverage,lastz,zrange,zmode,zmedian,".indexOf(e) ? d.z || f : (a = c[a]) && a.axis ? { fStr: a.fStr || "n", culture: d[a.axis] ? d[a.axis].culture : b.chart ? b.chart.currentOptions.defaultCultureName : "en-US" } : b.gOptions ? { culture: b.gOptions.cultureName } : f; } function uf(a) { a = a.token || a.attr || a; return { text: a, result: a && 0 < a.length && (0 <= a.indexOf("%") || 0 <= a.indexOf("{")) }; } function ir(a, c, b, d) { var e = uf(a); if (!e.result) return e.text; a = ui(a, [c, b], d, ir); return vf(a, Gy, { fOptions: d, chart: c.chart, series: c, point: b, sOptions: c.currentOptions, pOptions: b.currentOptions, atribs: b.currentOptions.attributes, yVal: c.ctManager.isType("treemap") ? "value" : "y", pgCache: Ey(c, b), cache: c.getCalcCache(), scCache: c.chartArea.chartAreaSet.getCalcCache(), indexedData: c.indexer.getItem(b._i), }); } function jr(a, c, b) { var d = uf(a); if (!d.result) return d.text; a = ui(a, c, b, jr); return vf(a, Hy, { fOptions: b, chart: c.chart, series: c, sOptions: c.currentOptions, atribs: c.currentOptions.attributes, yVal: c.ctManager.isType("treemap") ? "value" : "y", cache: c.getCalcCache(), scCache: c.chartArea.chartAreaSet.getCalcCache(), }); } function vi(a, c, b) { var d = uf(a); if (!d.result) return d.text; a = ui(a, c, b, vi); return vf(a, Iy, { fOptions: b, chart: c.chart, cache: c.getCalcCache() }); } function Gg(a, c, b) { var d = uf(a); if (!d.result) return d.text; a = ui(a, c, b, Gg); d = C(c, "value"); var e = c.currentOptions || {}, f = C(e, "value"); f = z(f, e.max, e.min); return vf(a, Jy, { fOptions: b, val: f, item: c, atribs: c.currentOptions.attributes, cache: e, evaluedValue: "function" === typeof d ? c.value() : [] }); } function wi(a, c, b) { void 0 === b && (b = {}); var d = uf(a); return d.result ? vf(a, {}, { fOptions: b, item: c, atribs: c }) : d.text; } function kr(a, c, b, d) { for (var e, f, g, h = pa(c), k, l, m = 0, n = h.length; m < n; m++) { g = h[m]; if (-1 === (l = a.indexOf("%")) || l === a.length - 1 || !g) break; e = "%" + g; -1 < a.toLowerCase().indexOf(e) && (a = a.replace(new RegExp(e, "gi"), function (a) { k = ti(hr(g, c, b)); b.formatApplied = f = Fy(g, c, b); d && (f = null); a = I(k); var e = k; "array" === a ? (e = k[0]) : (k = [k]); b.formatApplied && b.formatApplied.isTime && ((k = B(k, function (b) { return new Date(b); })), (e = k[0])); f || "date" !== I(e) || (f = { fStr: "yyyy-MM-ddTHH:mm:ss.fffffffzzz", culture: "en-US" }); return B(k, function (b) { return f ? lr(b, f.fStr, f) : b; }).join(3 > k.length ? "\u2014" : " "); })); } return a; } function ti(a) { return a || t(a) ? a : ""; } function lr(a, c, b) { var d = b ? b.culture || "en-US" : "en-US", e = I(a); return "date" === e ? ((b = new mr(d, { formatString: c || "" })), Ha(a.getTime()) ? "Invalid Date" : b.formatDate(a, c)) : "number" === e ? (b && c && "c" !== c.toLowerCase() && !0 !== b.fStrStrict && t(b.precision) && b.precision && ((c = Yf(a)), (c = "n" + Math.min(c, b.precision))), (b = new mr(d, { formatString: c || "" })), b.formatNumber(a, c)) : a; } function Ky(a, c, b) { var d = /\{ *[\w\-\(%0-9][^\}\{]+ *: *[^\}\{]+ *\}/, e = /\{ *[\w\-\(%0-9][^\}\{]+ *\}/, f, g; if (!a) return a; for (; !k && null !== (g = d.exec(a) || e.exec(a)); ) { var h = 0; for (f = g.length; h < f; h++) { var k = g[h].toString(), l = Ly(k, c, b); a = a.replace(k, l); k = l && O(l) && Hg(l, "{"); } } return a; } function Ly(a, c, b) { var d, e = Gd(a), f = e.indexOf(":"), g = -1 < f; if (g) { a = e.substring(1, f); var h = Gd( e.substring(f + 1, e.length - 1).replace(/^(date)*(number)*/gi, function (b) { d = b.toLowerCase(); return ""; }) ); } else a = e.substring(1, e.length - 1); a = kr(Gd(a), c, b, !0); e = a.match(Gl); c = !1; if (e && (e = e.length)) { c = !0; var k = 1 === e ? "date" : "number"; } h || (h = C(b, "formatApplied.fStr")); e = a; c && (e = a.replace(Gl, function (b) { return Date.parse(b); })); c = !0; if (/[\+-\/\*\^%]+/.test(e)) try { a = Nj( '"strict mode";(f{r/**/;f days{rn/86400000;}f weeks{rn/604800000;}f years{rn/31536000000;}f hours{rn/3600000;}f minutes{rn/60000;}f seconds{rn/(1000);}}())' .replace(/f/g, "function") .replace(/\{r/g, "(n){return ") .replace("/**/", e) ); } catch (l) { c = !1; } (k = d || k) ? "date" === k ? (a = Ha(new Date(a).getTime()) ? new Date(parseFloat(a)) : new Date(Date.parse(a))) : "number" === k && (a.valueOf && (a = a.valueOf()), (a = parseFloat(a))) : "string" === typeof a ? Un(a) ? (a = parseFloat(a)) : Gl.test(a) && (a = new Date(Date.parse(a))) : "number" !== typeof a || h || (h = "n:" + Math.min(Yf(a), 3)); return c ? (h ? lr(a, h, b.formatApplied) : a) : "{" + a + (g ? ":" + h : "") + "}"; } function vf(a, c, b) { var d = a && a.attr, e = b.atribs, f = c; if (a.token) return hr(a.token.slice(1).toLowerCase(), f, b); d && (a = a.attr); a = a.replace(/\\\\/g, "##@@@!@##").replace(/\\\{/g, "!!@@#@#@@!").replace(/\\\}/g, "###@!@!#@").replace(/\\%/g, "#@@!@##@"); if (e) { f = e.pop ? e : ~a.indexOf(".") ? Kn(e, ".") : pa(e); var g = !!e.pop, h = {}; w(f, function (b) { h[(g ? b[0] : b).toLowerCase()] = void 0; }); f = d ? h : L(h, c); } a = Ky(a, f, b); a = kr(a, f, b); return a .replace(/##@@@!@##/g, "\\") .replace(/!!@@#@#@@!/g, "{") .replace(/###@!@!#@/g, "}") .replace(/#@@!@##@/g, "%"); } function ui(a, c, b, d) { var e; if ("string" === typeof a && -1 < a.indexOf("<")) { var f = a.match(nr); if (f) { b = (function (b) { b = A({}, b); var a = function (b) { b && !b.isTime && (b.fStr = "d"); }; a(b.x); a(b.y); a(b.z); return b; })(b); try { for (var g = ya(f), h = g.next(); !h.done; h = g.next()) { var k = h.value; a = c.pop ? a.replace(k, "<" + d(k.replace("<", ""), c[0], c[1], b)) : a.replace(k, "<" + d(k.replace("<", ""), c, b)); } } catch (m) { var l = { error: m }; } finally { try { h && !h.done && (e = g.return) && e.call(g); } finally { if (l) throw l.error; } } } } return a; } function or(a, c, b) { var d = pr(a), e = c[1], f = xi(a); a = Mb(f); b || (b = og(f, f.hasCurves)); f = Math.max(a[2], a[3]); var g = [], h = a[1] + 1; try { for (; h + e < a[1] + a[3] - 2; ) { var k = qr(d, h, e); k && k[2] >= c[0] && g.push([f - Xb(va(k), b), k]); h += 1; } } catch (m) {} if (g.length) { g.sort(function (b, a) { return b[0] < a[0] ? -1 : b[0] > a[0] ? 1 : 0; }).reverse(); var l = g[0][1]; } l && (l = mb(va(l), c)); return l; } function pr(a) { var c = xi(a); c = Mb(c); c = Math.floor(c[3] / 3); a = xi(a); return My(a, c); } function xi(a) { var c, b = 0; w(a.shapes, function (a) { var d = Mb(a); d = d[2] * d[3]; d >= b && ((b = d), (c = a)); }); return c; } function My(a, c) { var b = [], d = Mb(a), e = d[0] - 50, f = d[0] + d[2] + 50, g = d[1], h = d[3]; d = function (b) { b = g + b * h; return [ [e, b], [f, b], ]; }; var k = function (b) { for ( var a = [], c = function (b) { for (var c = 0, d = a.length; c < d; c++) if (ab(a[c], b)) return !1; return !0; }, d = 0, g = b.length; d < g; d++ ) { var h = b[d]; h = [Math.round(h.intersect.x), Math.round(h.intersect.y)]; c(h) && h[0] > e && h[0] < f && a.push(h); } a.sort(function (b, a) { return b[0] < a[0] ? -1 : b[0] > a[0] ? 1 : 0; }); 2 < a.length && (a = [a[0], a[a.length - 1]]); 1 === a.length && a.push(a[0]); return a; }; c = Math.abs(0.9998 / (c - 1)); for (var l = 1e-4; 1 > l; l += c) { var m = d(l); m = Rh(a, m[0], m[1]); b.push(k(m)); } return b; } function Ny(a, c) { return { scans: rr(a.scans, function (b) { return [Y(c[0], c[0] + c[2], 0, 1, b[0]), Y(c[1], c[1] + c[3], 0, 1, b[1])]; }), pathBBox: c, }; } function rr(a, c) { for (var b = [], d = 0, e = a.length; d < e; d++) { for (var f = a[d], g = [], h = 0, k = f.length; h < k; h++) g.push(c(f[h])); b.push(g); } return b; } function qr(a, c, b) { b = c + b; for ( var d, e, f = function (b) { return [ [Y(d[0][0], e[0][0], d[0][1], e[0][1], b), b], [Y(d[1][0], e[1][0], d[1][1], e[1][1], b), b], ]; }, g, h, k = 0, l = a.length - 1; k < l; k++ ) { d = a[k]; e = a[k + 1]; var m = d[0][1], n = e[0][1]; !g && c >= m && c <= n && (g = f(c)); !h && b >= m && b <= n && (h = f(b)); if (g && h) break; } if (h && g) return (a = Math.max(g[0][0], h[0][0])), [a, c, Math.min(g[1][0], h[1][0]) - a, b - c]; } function Oy(a) { var c = sa(a.chartItems(), function (b) { return z(b.currentOptions.sortOrder, b.currentOptions.order, 0); }), b = [[], [], [], []], d = {}, e = { casMargin: [0, 0, 0, 0], overflows: [0, 0, 0, 0], max: [0, 0, 0, 0], itemsToTune: c, aggr: d }, f = a.chart.rootVisuals.itemsBox.getGlobalBboxArray(), g = !0; w(c, function (a) { if (!a.currentOptions.asHTML) { var c = G(Ig(a), 3), e = c[0], h = c[1]; c = c[2]; a.isMeasured = !1; if (!e && !c.isIn) { var k = sr(a, h, c, d, f); k && w(c.pos, function (a, c) { a && b[c].push(k) && (g = !1); }); } } }); if (g) return e; var h = a.items, k = B(h, function (b) { return b.overflows; }), l = [ function () { var b = h[0].rootVisuals.titleBox.rootPanel.setPreliminarySize().getGlobalBboxArray(); return b[2] && b[3] ? 0 : k[0][0]; }, function () { return oa( B(k, function (b) { return b[1]; }) ); }, function () { return P(k)[2]; }, function () { return oa( B(k, function (b) { return b[3]; }) ); }, ]; a = function (a) { var c = b[a]; if (!c.length) return 0; var d = 0; w(c, function (b) { return (d = Math.max(d, b[Py[a]])); }); c = l[a](); d = c > d ? c : d; e.overflows[a] = c; return (e.max[a] = d) && Math.max(d - c, 0); }; e.casMargin = [a(0), a(1), a(2), a(3)]; return e; } function Qy(a, c) { var b = {}, d = a.items, e = d[0], f = a.chart.rootVisuals.itemsBox, g = f.getGlobalBboxArray(), h = function () { var b = B(d, function (b) { return b.getContentGlobalBbox(); }); return Ea(b); }; h = 1 < d.length ? h() : e.getContentGlobalBbox(); a = a.measureResult; var k = [g[0] + a.max[3], g[1] + a.max[0], g[2] - a.max[1] - a.max[3], g[3] - a.max[2] - a.max[0]]; e = e.getContentGlobalBbox(); var l = a.aggr, m = [g, k, h, e, [k[0], h[1], k[2], h[3]], [h[0], k[1], h[2], k[3]]]; w(a.itemsToTune, function (b) { if (!b.isMeasured) { var a = G(Ig(b), 3), c = a[2]; sr(b, a[1], c, l, m[c.alignBoxIndex]); } }); var n = {}; l.tltl && l.tltl.total[0] > e[2] ? (n.tltl = { direction: 1, align: [-1, 0] }) : l.blbl && l.blbl.total[0] > e[2] && (n.blbl = { direction: 1, align: [-1, 0] }); f.update(); w(a.itemsToTune, function (a) { var d = a.rootPanel, e = d.getGlobalBboxArray ? d.getGlobalBboxArray(!0) : a.bbox(!0); if (e[2] || e[3]) { d.isHtml ? ((e[0] -= parseFloat(d.attr("left"))), (e[1] -= parseFloat(d.attr("top")))) : ((e[0] -= d.offsetX), (e[1] -= d.offsetY)); var f = G(Ig(a), 3), g = f[0], h = f[1]; f = f[2]; !g && n[h] && (f = W(f, n[h])); e = Ry(e, m, g, h, f, b, l[h]); if ((g = a.options("offset"))) (g = g.split(",")), (e[0] += parseInt(g[0]) || 0), (e[1] += parseInt(g[1]) || 0); g = c && c.animation; d.attr(d.isHtml ? { left: e[0] + "px", top: e[1] + "px" } : { offsetX: e[0], offsetY: e[1], animation: g }); a.positionUpdated(m[nb(f) ? f : f.alignBoxIndex]); } }); } function Ry(a, c, b, d, e, f, g) { void 0 === g && (g = { total: [0, 0], max: [0, 0] }); if (b) return [d[0] + c[e][0] - a[0], d[1] + c[e][1] - a[1]]; b = G(c, 3); var h = b[0], k = b[2], l = [], m = [], n = f[d], p = e.direction, q = e.align, r = e.stackAlign; b = function (b, c) { c = c(b); var e = f[d]; if (!e[b]) { e[b] = []; var g = 0 === p ? 1 : 0; e[b][g] = m[b][g] + 1 * (a[b] + a[b + 2] * (0 < (b === g ? 1 : 0) ? 1 : b !== g ? 0.5 + q[b] / 2 : 0)) - (0.5 + r[b] / 2) * a[b + 2] * (b === g ? 1 : 0); } e[b][p] = c + 1 * (a[b] + a[b + 2] * (0 < (b === p ? 1 : 0) ? 1 : b !== p ? 0.5 + q[b] / 2 : 0)); return c; }; var u = function (b) { return n[b][p] + -1 * (a[b] + a[b + 2] * (0 < -1 * (b === p ? 1 : 0) ? 1 : b !== p ? 0.5 + q[b] / 2 : 0)); }, x = function (b) { var c = l[b]; m[b] = [v(b, c, 0), v(b, c, 1)]; c = m[b][p]; var d = m[b]; if (!e.checkBorder[b] && a[b + 2] <= k[b + 2]) b = c; else { var f = a[b + 2], g = h[b], n = k[b]; c = a[b] + c; var q = g + h[b + 2]; c < g && (c = n); c + f > q && ((c = n + k[b + 2] - f), c < g && (c = q / 2 - f / 2)); b = c - a[b]; } return (d[p] = b); }, v = function (b, c, d) { d = b !== d ? 1 : -1; var e = 0.5 + r[b] / 2; return c + ((0 < d ? g.max[b] || a[b + 2] : g.total[b]) - a[b + 2]) * d * (0 < d ? 0.5 + q[b] / 2 - e : e); }; n || ((l = ek(a, c[e.alignBoxIndex], nc.default(d, "tltr"))), (f[d] = [])); return [b(0, n ? u : x), b(1, n ? u : x)]; } function Ig(a) { return (a._posInfo_ = a._posInfo_ || tr(a.currentOptions)); } function tr(a) { var c = a.position || "bltl"; if (c.push) return [1, c, 0]; var b = function (b) { return parseFloat(b); }, d = function (b, c) { var d = G(b, 4), e = d[0], f = d[1], g = d[2]; d = d[3]; var h = e === g && f === d, q = ["t" === g && ("b" === e || "m" === e || h) && 1, "r" === d && ("l" === f || "c" === f || h) && 1, "b" === g && ("t" === e || "m" === e || h) && 1, "l" === d && ("r" === f || "c" === f || h) && 1], r = h ? 3 : 1 < Ta(q) ? 1 : q[0] || q[2] ? 5 : 4; e = { isIn: h, pos: q, alignBoxIndex: r, checkBorder: [f === d && "c" === f, e === g && "m" === e], direction: h ? ("m" === g ? 1 : 0) : 5 !== r ? 1 : 0, align: ["l" === f ? -1 : "r" === f ? 1 : 0, 0], stackAlign: ["l" === f ? -1 : "r" === f ? 1 : 0, "t" === e ? -1 : "b" === e ? 1 : 0], }; e.direction = z(a.direction, c, e.direction); e.align = z(a.alignment, e.align); J(a, "fixed") && (e.stackAlign = [-1, -1]); return [0, b, e]; }; c = c.toLowerCase().trim(); if (4 === c.length && "left" !== c && !Sy.test(c)) return d(c); c = c.replace("ca:", "inside ").replace("ca", "inside top left").trim(); var e = c.split(","); if (1 < e.length) return (d = e[0]), (c = 0 === d.indexOf("inside")) && (e[0] = d.substring(6)), [1, e.map(b), c ? 3 : 0]; if ("center" === c) return (d = d("mcmc")), (d[2].isIn = !1), (d[2].alignBoxIndex = 2), d; b = c.split(" "); e = "inside" === b[0] ? 1 : 0; var f = b.join(""); f = f.length === c.length ? Ty[f] || f : f; return d(Uy[f] || "bltl", Vy[b[e]]); } function sr(a, c, b, d, e) { e = a.measure(e); b = b.direction; var f = !d[c]; c = d[c] = d[c] || { total: [0, 0], max: [0, 0] }; if (!e[2] && !e[3]) return null; (!f && b) || (c.total[0] += e[2]); (f || b) && (c.total[1] += e[3]); (f || b) && a.isVisible && c.max[0] < e[2] && (c.max[0] = e[2]); (f || !b) && a.isVisible && c.max[1] < e[3] && (c.max[1] = e[3]); return e; } function ur(a) { return vr[ S((a || "topRight").toLowerCase().split(" "), function (a) { return vr[a]; }) ]; } function wr(a) { var c = a.trim().toLowerCase(); return 0 === c.indexOf("ca") || 0 === c.indexOf("inside") ? (c.match(Wy) ? "caAlign" : "caOffset") : Xy.test(a) ? "absolute" : "position"; } function Yy(a) { var c = a.chart, b = a.collisionManager, d = ha(a.rootVisuals.content.getGlobalBbox()); d = [-d[0], -d[1]]; var e = function (a) { a.isVisible && b.addLabelBox(Xc(a.getBounds(), d)); }; b.reset(); c.uiItems && c.uiItems().each(e); c.annotations().each(e); wr(a.legend.currentOptions.position).match("caOffset|caAlign|absolute") && ((a = a.legend.getBounds()), b.addLabelBox(Xc(a, d))); } function yi(a) { var c = new Function("getter", "return " + JSON.stringify(a) + ";"), b = Zy(a); return b.length ? function () { var a = c(), e; try { for (var f = ya(b), g = f.next(); !g.done; g = f.next()) { var h = g.value; Z(a, h[0], h[1]); } } catch (l) { var k = { error: l }; } finally { try { g && !g.done && (e = f.return) && e.call(f); } finally { if (k) throw k.error; } } return a; } : c; } function xr(a, c) { var b = I(c); a = a.currentOptions; return "undefined" === b ? a : "string" === b ? C(a, c.replace(/_/g, ".")) : "NotGetter"; } function yr(a) { if (!a.currentOptions.colorsValueRange) var c = 1 >= a.stopRange && 0 <= a.stopExtremes[0] && 1 >= a.stopExtremes[1], b = 1 >= a.dataRange && 0 <= a.extremes[0] && 1 >= a.extremes[1]; return { stopPerc: c, dataPerc: b }; } function md(a, c, b) { return a && a.pixelCorrection ? a.snap(c, b) : c; } function nd(a, c, b) { if (!a || !a.pixelCorrection) return c; a = md(a, [c[0], c[1], b, b], b); return [a[0], a[1]]; } function ue(a, c, b) { return a && a.pixelCorrection ? B(c, function (c) { return nd(a, c, b); }) : c; } function zr(a, c, b, d) { if (!a || !a.pixelCorrection) return c; d = t(d) ? d : b / 2; var e = c[0], f = c[1], g = G(e, 2); e = g[0]; g = g[1]; var h = G(f, 2); f = h[0]; h = h[1]; return e === f ? ((c = !1), g > h && ((c = g), (g = h), (h = c), (c = !0)), (g += d), (e = [e, g, 0, h - d - g]), (a = md(a, e, b)), (e = [a[0], a[1] - d]), (f = [a[0], a[1] + a[3] + d]), c ? [f, e] : [e, f]) : g === h ? ((c = !1), e > f && ((c = e), (e = f), (f = c), (c = !0)), (e += d), (e = [e, g, f - d - e, 0]), (a = md(a, e, b)), (e = [a[0] - d, a[1]]), (f = [a[0] + a[2] + d, a[1]]), c ? [f, e] : [e, f]) : c; } function Hl(a) { return new $y(a); } function Kd(a) { a.type = "panel"; return a; } function ve(a) { a.width = "*"; a.height = "*"; return a; } function zi(a, c, b, d) { return { xAlignment: a, yAlignment: c, offsetX: b, offsetY: d }; } function Il(a, c) { a = a.rootVisuals; var b; (b = c[3]) && a.leftOverflow.attr({ width: b }); (b = c[0]) && a.topOverflow.attr({ height: b }); (b = c[1]) && a.rightOverflow.attr({ width: b }); (b = c[2]) && a.bottomOverflow.attr({ height: b }); } function Ar(a) { var c = function () { var b = [0, 0], c = [0, 0]; a.axes().each(function (a) { var d = a.overflowSize.tL; a = a.overflowSize.bR; b[0] = Math.max(b[0], d[0]); b[1] = Math.max(b[1], d[1]); c[0] = Math.max(c[0], a[0]); c[1] = Math.max(c[1], a[1]); }); return [b[1], c[0], c[1], b[0]]; }, b = function () { var b = [0, 0, 0, 0]; a.axes().each(function (a) { b[a.sideIndex()] += a.sideDepth(); }); return b; }, d, e = (function () { var e = [0, 0, 0, 0], g = c(), h = a.chart.currentOptions.extraOverflows || [0, 0, 0, 0], k = (a.currentOptions.extraOverflows || [0, 0, 0, 0]).map(function (b, a) { return b + h[a]; }); d = b(); w(g, function (b, a) { e[a] = Math.max(g[a] + k[a] - d[a], 0); }); return e; })(); a.overflows = e; a.axSizes = d; return e; } function Br(a) { var c = (a.overflows = Ar(a)); Il(a, c); return c; } function Jl(a, c, b) { function d(b, a, c) { var d, e = b.series; c = null === (d = e.currentOptions.pointSelection) || void 0 === d ? void 0 : d.max; if (nb(c)) if (((d = e.chart), (e = d._sMaxList), a)) { if (e && e.length + 1 > c) for (; e.length + 1 > c; ) f(e.shift()); else d._sMaxList = e = e || []; e.push(b); } else pb(e, b); } function e(b, a) { b.currentOptions.selected = a; b.userOptions.selected = a; } function f(b) { b.legendEntry && b.legendEntry.updateCheckbox(!1); e(b, !1); b.setState(""); } var g = a.chart, h = a.series.currentOptions.pointSelection, k = t(h) ? h : !1; k && d(a, c); g.isRendered ? (a.setState(c ? "select" : ""), k && (c && a.series.chartArea .series() .points() .items.forEach(function (c) { var d; if ((d = c.selected)) a: { if (c.selected) { if (c._i === a._i && c === a) { d = void 0; break a; } "multiple" === k || nb(k.max) || ("single" === k ? f(c) : !b && f(c)); } d = void 0; } return d; }), a.legendEntry && a.legendEntry.updateCheckbox(c), e(a, c))) : c && (a.selected = !0); } function Kl(a, c, b) { var d, e, f; b = t(b) ? b : a.userPoints.length; 0 === c && (d = a.currentOptions.firstPoint) ? (f = d) : c === b - 1 && (e = a.currentOptions.lastPoint) && (f = A({}, f || {}, e)); a._defPointGen || (a._defPointGen = yi(A({ label: { placement: "auto", style: { fontFamily: "tahoma, geneva, sans-serif", fontSize: "12px" } } }, a.currentOptions.defaultPoint))); a = a._defPointGen(); return f ? A(a, f) : a; } function Ll(a) { a = a.currentOptions; !0 === a.muted && !1 === C(a, "states.mute.enabled") && (a.muted = !1); !0 === a.selected && !1 === C(a, "states.select.enabled") && (a.selected = !1); } function Ml(a, c) { var b, d; !1 === (null === (d = null === (b = a.currentOptions.states) || void 0 === b ? void 0 : b[c]) || void 0 === d ? void 0 : d.enabled) && (c = t(a.state) && a.state !== c ? a.state : ""); return c; } function Ai(a, c, b, d) { function e(b, c) { if (void 0 !== (g = I((f = c))) && "undefined" !== g) if (((b = "c" === b[0] ? b.replace("complete.y", "complete").replace("complete.x", "completeX") : b), (c = "" + b), "array" === g)) { if (2 !== f.length) throw "value array can only have 2 items."; I(f[0]); b = f[0]; I(f[1]); var d = f[1]; h[c + "e"] = d; h[c + "s"] = b; h[c + "r"] = d - b; h[c + "a"] = (d + b) / 2; } else "null" === g && "y" === b ? ("treataszero" === a.currentOptions.emptyPointMode ? (h.y = 0) : (h.isEmpty = !0)) : (h[c] = f); } for (var f, g, h = {}, k = c.name, l = 0, m = b.length; l < m; l++) { var n = b[l]; -1 < n.indexOf(".") ? e(n, C(c, n)) : e(n, c[n]); } !0 !== d && A(h, az(c, h)); Z(h, "cpbIndex", c.cpbIndex); w(Cr, function (b) { return Z(h, b, c[b]); }); h.x = z(h.x, k); t(h.x) || t(h.xr) || (h.x = c._i); return h; } function az(a, c) { function b(b, a, e) { var l = {}; e = "sv" + e; p = c[a]; t(p) || (p = c[a + "e"]); n = Q((m = c[a + "s"])) ? (m = p) : p - m; (f = b.range) && d(l, (e + "s," + e).split(","), f); (h = b.offset) && d(l, (e + "s," + e).split(","), [m - h, p + h]); if ((g = b.percent)) (h = (g / 100) * n), d(l, (e + "s," + e).split(","), [m - h, p + h]); if ((k = b.values)) l[e + "v"] = k; return l; } function d(b, a, c) { for (var d = 0, e = a.length; d < e; d++) b[a[d]] = c[d]; } var e, f, g, h, k, l = {}, m, n, p; (e = a.subvalue) && A(l, b(e, "y", "")); (e = a.subvalueX) && A(l, b(e, "x", "x")); return l; } function Dr(a, c) { return a.map(function (b) { return Bi(b, c); }); } function Bi(a, c) { return { _i: a.indexer.findValue_i("x", c.value), series: a }; } function bz(a) { return (a = a && a.info.type) && (a.isShape || a.isPie || a.colorByPoint) ? "point" : "series"; } function Nl(a) { if ((a = a.currentOptions.hoverAction) && "none" !== a) return a.toLowerCase().replace("highlight", "").replace("pointgroup", "group"); } function Ol(a, c, b) { var d = "Point" === a.kind, e = d ? a.series : a, f = d ? a : void 0, g = e.chart; b = b && "auto" !== b ? b : bz(e); d || "point" !== b || (b = "series"); b && "none" !== b && (g.highlighted = a); g.series().items.forEach(function (a) { a.isVisible && (a !== e && "group" !== b ? Jg(a, "mute") : "point" === b ? Jg(a, "mute", f) : "group" === b ? Jg(a, "mute", cz(f)) : Jg(a, z(c, ""), f)); }); } function Qb(a, c) { a.renderer.renderer.isRootDestroyed() || (a.series().items.forEach(function (b) { b.isVisible && Jg(b, "", c, !0); }), (a.highlighted = void 0)); } function Jg(a, c, b, d) { if (a.isVisible) { if (d) { var e = a.getAnimationConfig(); e && 0 !== e.duration && (e.duration = Math.min(230, e.duration)); var f = { animation: e }; } else f = { continueAnimation: !1 }; if (b && b.pop) a.points().each(function (a) { "select" !== a._state && (ae(b, a) ? a.setState("", f) : a.setState(c, f)); }); else { var g = "" === c; (b && b.series === a && a.state === c) || "select" === a.state || (a.visualizer.debounce.clear("unhoverline"), a.setState(c, f)); a.points().each(function (a) { (a !== b || ("mute" === a._state && g)) && "select" !== a._state && a.setState(c, f); }); } d && a.chartArea.ignoreAnimationFor(f.animation.duration); } } function cz(a) { var c = a.series, b = c.chartArea.series().items; return Dr(b, { value: c.indexer.getValue("x", a._i) }).map(function (b) { return b.series._points[b._i]; }); } function Er(a, c) { var b = a.series, d = b.rootVisuals, e = b.info.type, f = b.info.style, g = {}, h = !0 !== b.xAxis.options("crosshair.enabled") && !0 !== b.yAxis.options("crosshair.enabled") && !1 !== b.options("mouseTracking.enabled") && !1 !== b.options("states.hover.enabled"); f = f.attr.line; if (e.drawLine && a.coordinates.line) { var k = a.paths.lines ? a.paths.lines.join(" ").replace(/,/g, " ") : tg(a.coordinates.line).join(" "); g.pathAnimation = { type: "line", shift: null === c || void 0 === c ? void 0 : c.shift }; } "" !== b.state && (f = b.getStateAttrs(b.state).line); return { d: k, state: f, shapeName: "line", target: d.line, zIndex: b.zIndex + gb.series, visGetter: function () { return b.visuals.line; }, visSetter: function (a) { return (b.visuals.line = a); }, animation: g, events: h ? { mouseover: function (a) { b.visualizer.debounce.run("unhoverline"); "select" !== b.state && b.setState("hover"); }, mouseout: function (a) { b.visualizer.debounce.defer( "unhoverline", function () { "select" !== b.state && "mute" !== b.state && b.setState(""); }, 150 ); }, } : {}, }; } function Ci(a, c, b, d) { var e = c[0], f = c[1]; c = Math.min.apply(Math, H(c)); e = kg(e / 2, f / 2, c, c); b = d || a.series.getPointMarkerType(b && b.currentOptions ? b.currentOptions : b); 0 === a.series.getPointAttr().pointAttr[""].r && (b = "none"); return { base: 0 === b.indexOf("url") ? b : Ld(b, e.x, e.y, c, c) }; } function Ld(a, c, b, d, e, f) { return $p(a.name ? a.name : a, c, b, d, e, f); } function Fr(a, c, b) { var d = a.series, e = c[0], f = c[1]; d = d.ctManager.settingVal("lineSeriesType", d.currentOptions); a = Ci(a, c, b); switch (d) { case "spline": e = "M0 " + f + " C " + 0.2 * e + " 0 " + 0.8 * e + " " + 1 * f + " " + e + " 0"; break; case "step": e = "M0 " + f + " L " + 0.5 * e + " " + f + " " + 0.5 * e + " 0 " + e + " 0"; break; default: e = "M0 " + f + " L " + e + " 0"; } a.extra = e; return a; } function Pl(a, c, b) { var d = { base: dc.rectangle(0, 0, c[0], c[1], { r: 2, corners: ["round", "round", "round", "round"] }) }; b && (a.series.options("forceMarker") || !0 === N(b.currentOptions, ["marker", "visible"])) && ((d.extra = a.getBodyShapeName(b, !0)), O(d.extra) && -1 === d.extra.indexOf("url") && (d.extra = Ld(d.extra, 0, 0, c[0], c[1]))); return d; } function Ql(a, c, b, d) { var e = b.rect; if (!e) return ""; a = a.series; var f = a.ctManager; e = ha(e); var g = c.currentOptions.marker || {}; if ((0 === e[2] || 0 === e[3]) && !0 === g.visible) return (d = b.styleSet.markerSize), (b.meta.shape = mb(b.xyz, [d, d])), ""; g = f.isHoriz() ? 2 : 3; 1 > e[g] && 0 < e[g] && ((e[g] = 1), 2 === g && --e[0]); g = z(N(c.currentOptions, ["outline", "width"]), 1); d = md(d, e, g); d.id = c.id; g = (c = f.isType("gauge", a)) ? a.pane.isHoriz : a.chartArea.isHoriz; if (c && "roundcaps" === f.settingVal("columnType", a)) { a = d[0]; f = d[1]; c = d[2]; e = d[3]; g = { caps: g ? { left: "round", right: "round" } : { top: "round", bottom: "round" } }; void 0 === g && (g = {}); g = g.caps; var h = Math.PI / 2; if (g) { var k = c / 2, l = e / 2, m = ["M", a, f]; g.top ? m.push.apply(m, H(Kc(a + k, f, k, 2 * h, 0))) : m.push.apply(m, H(["L", a + c, f])); g.right ? m.push.apply(m, H(Kc(a + c, f + l, l, -h, h))) : m.push.apply(m, H(["L", a + c, f + e])); g.bottom ? m.push.apply(m, H(Kc(a + k, f + e, k, 0, 2 * h))) : m.push.apply(m, H(["L", a, f + e])); g.left ? m.push.apply(m, H(Kc(a, f + l, l, h, -h))) : m.push("Z"); a = m; } else a = Yh(a, f, c, e); } else a = d[2] && d[3] ? dc.square(d[0], d[1], d[2], d[3]) : dc.none(d[0], d[1]); Z(b, "collision.body", d); return xa(a); } function Gr(a, c, b) { var d, e = []; if (!a) return { cxy: g, size: e, innerSize: h, offset: k, innerPadding: l }; b = ha(c); c = Math.min(c.width, c.height); var f; if ((d = a.center)) { var g = G(d.split(","), 2); d = g[1]; g = [db(g[0], b[2]), db(d, b[3])]; } if ("undefined" !== (f = I((d = a.size)))) switch (f) { case "string": d = G(d.split(","), 2); e = d[0]; d = d[1]; e = [db(e, c), db(d, c)]; break; case "array": c = G(d, 2); e = c[0]; d = c[1]; e = [db(e, b[2]), db(d, b[3])]; break; default: (e = db(d, c)), (e = [e, e]); } if ((d = a.innerSize)) var h = db(d, 1); if ((d = a.offset)) { var k = G(d.split(","), 2); c = k[1]; k = [db(k[0], b[2]), db(c, b[3])]; } if ((d = a.innerPadding)) var l = db(d, 1); return { cxy: g, size: e, innerSize: h, offset: k, innerPadding: l }; } function Hr(a, c, b) { var d = b.xAlignment; b = b.yAlignment; return lo(a, c, d, d, b, b); } function dz(a, c, b, d, e, f) { var g = a.series, h = d.meta, k = c.visuals, l, m = g.pane || g.chartArea; c.labelAutoHidden = !1; var n = m.collisionManager, p = function (b, d) { var e = a.collidePointBoxes ? b : Hr(h.labelTextBox, b, h.labelAttr); if (d ? !n.collideLabels(e) : !n.collideAll(e, c.id)) return h.shape && Ad(h.shape, va(b)) && !$c(h.shape, b) ? !1 : !0; }, q = function (b) { return p(b, !0); }; a.initPointLabel(c, d, b); k = a.getLabelWrapper(k.label, b); m = h.labelSize.slice(0); var r = a.possibleLabelPositions(c, "", b, d, e); e = h.labelAttr; d.meta.label = void 0; d.meta.labelPossible = r; q = S(r, function (b) { return p(b, !1); }) || S(r, q); d.meta.isVertical && (l = !0); q || !1 !== b.label.autoHide || (r.length ? (q = r[0]) : ((q = h.xy), h.shape && (q = va(h.shape)), (q = [q[0] - m[0] / 2, q[1] - m[1] / 2, m[0], m[1]]), (r = [q]))); r[0] && (q || a.isRadial) ? ((d = d.meta.label = q || r[0]) && d.rotate && !t(e.rotate) && (e.rotate = d.rotate), t(e.rotate) && nb(e.rotate) ? ((q = va(d)), A(e, { x: q[0] - m[0] / 2, y: q[1] - m[1] / 2 }), (e.rotate = [e.rotate, m[0] / 2, m[1] / 2])) : l ? ((q = va(d)), A(e, { x: q[0] - m[0] / 2, y: q[1] - m[1] / 2 }), (e.rotate = [-90, m[0] / 2, m[1] / 2])) : (A(e, { x: d[0], y: d[1] }), (e.rotate = [0, 0, 0])), (e = a.render_applyDynamicAttrVals([e, { zIndex: g.zIndex + gb.label }], f)), (e.zIndex = g.zIndex + gb.label), (a.hcLabelsOnly || d.isInside) && b.label.hcColor && (e.fill = b.label.hcColor), k.attr(e)) : (r.length && ((b = r[0]), k.attr({ x: b[0], y: b[1] })), a.hideVisual(k), (h.autoHidden = !0), (c.labelAutoHidden = !0), Ma.emit("tip", g.name || "", "pLabelHidden", { data: [g.name || g.currentOptions.id || " ", Ir(h.labelText, 10)], container: g.chartArea.chart.getWrapper() })); } function ez(a, c, b, d, e, f) { var g = a.series; b = g.isVisible; d = !1 === (c.currentOptions.label || {}).autoHide; var h = e.meta, k = ha(a.series.contentRect()), l = 0, m = h.labelSize, n = h.labelObstacles; h.marker && (l = e.meta.marker[2]); h = fz; ("line" === a.kind || "area" === a.kind) && g.ctSvIs("lineSeriesType", "step") && (h = gz); e = mb(e.xyz, [l, l]); var p = h(a, e, n, c._i, f); e = hz(a, c); w(e, function (b) { var a = "o" === b.align[0], c = "o" === b.vAlign[0]; a = (-1 < b.align.indexOf("left") || -1 < b.align.indexOf("right")) && (-1 < b.vAlign.indexOf("top") || -1 < b.vAlign.indexOf("bottom")) && p.outCorner ? p.outCorner : a || c ? p.out : p.in; b.box = he(H([0, 0], m), a, b.align, b.vAlign).box; }); e = b && d ? sa(e, function (b) { return !$c(k, b.box); }) : b ? ea(e, function (b) { return $c(k, b.box); }) : e; g = g.info.type.drawArea && !a.isRadial ? iz : g.info.type.drawLine && 0 === n.length ? jz : kz; e.length && (e = g(e, a, c, p, f)); b && d && (e = sa(e, function (b) { return !$c(k, b.box); })); return B(e, function (b) { return b.box; }); } function Jr(a, c) { var b = a.series; a = b.info.style.base; c = b.info.type.drawMarker; var d = b.getUniqueColors(3); 1 < d.length ? (d.push(0), (a = oc(d))) : (a = a.color); b = b.currentOptions.defaultPoint || {}; d = b.marker || {}; c = c ? A({}, b, d) : b; b = z(c.fill, c.color, "currentColor"); d = z(N(c, ["outline", "color"]), c.color, "outline"); var e = z(N(c, ["outline", "width"]), 1); b = { fill: ia(b, a), stroke: ia(d, a), "stroke-width": ua(e, 0, 3) }; c.hatch && ((b.hatch = ia(c.hatch, a)), (b.hatchPattern = c.hatchPattern)); return { base: b }; } function lz(a, c, b, d, e, f) { var g = b.xyz, h = a.series, k; a = a.getBodyShapeName(c); var l = b.rect; if ("string" === typeof a && vb(a, "url(")) return a; if (!(k = b.path)) { k = z(e, 5); e = c.currentOptions.marker || {}; l || (l = kg(g[0], g[1], 2 * k, 2 * k)); if ((k = Kr(e.offset))) l = Wo(Oa(l), k[0], k[1]); g = b.meta.snappedBox = [l.x, l.y, l.width, l.height]; a && !~mz.indexOf(a) && ((k = N(e, ["outline", "width"]) || 1), (g = b.meta.snappedBox = md(d, g, k))); b.path ? (k = b.path) : ((d = h.pointBodyDGenerator), 0 === l.width && 0 === l.height && (a = "none"), (k = d && d(a, b)), k || ((k = Ld(a, g[0], g[1], g[2], g[3])) || (k = Ld("none", g[0], g[1], g[2], g[3])), "none" !== a && ((d = e.rotate), O(d) && -1 < d.indexOf("%") && (d = parseFloat(c.replaceTokens(d))), d && ((c = "auto" === d ? N(b, ["arc", "angle"]) : d), "circle" !== a && (k = (k.isPath ? k : Aa(k)).rotate(c + 90)))))); f && (b.meta.marker = ha(l)); } return xa(k); } function nz(a, c, b, d, e) { var f = b.xyz, g = b.xyzs; d = z(d, 5); var h = a.series.xAxis; f = [h && h.isStackedFull() ? (f[0] + g[0]) / 2 : f[0], f[1]]; if ("string" === typeof c && vb(c, "url(")) return c; e = nd(e, f, 1); e = kg(e[0], e[1], 2 * d, 2 * d); e = (e = Ld(c, e.x, e.y, e.width, e.height)) ? (e.pop ? xa(e) : e) : "M0 0"; d = N(a.currentOptions, ["marker", "rotate"]); O(d) && -1 < d.indexOf("%") && (d = parseFloat(a.replaceTokens(d))); d && "circle" !== c && ((a = "auto" === d ? N(b, ["arc", "angle"]) : d), (e = Aa(e).rotate(a + 90))); return e; } function Lr(a) { var c = (a.pane || a.chartArea).rootVisuals, b = c.dataContent; a.rootVisuals = { area: b, line: b, points: b, pointHalo: c.axisMarkersFront }; } function Ra(a) { a && a.attr({ opacity: 0 }); } function oz(a, c) { var b = a.series; c = b.rootVisuals; var d, e = b.info.style.attr.area; a.coordinates.area && (d = a.paths.areas ? a.paths.areas.join(" ").replace(/[,Z]/g, " ") + "Z" : tg(a.coordinates.area).join(" ")); "" !== b.state && (e = b.getStateAttrs(b.state).area); return { d: d, state: e, shapeName: "area", target: c.area, zIndex: b.zIndex + gb.series, visGetter: function () { return b.visuals.area; }, visSetter: function (a) { return (b.visuals.area = a); }, }; } function pz(a, c, b, d, e, f, g) { var h = a.series, k = h.info.type.roundCaps, l = a.isHoriz(), m = c.meta; g = m.labelObstacles; var n = c.meta.shape.slice(0); k && (n = Bl(n, l ? [0, -n[3] / 2] : [-n[2] / 2, 0])); k = 0; m.marker && (k = c.meta.marker[2]); m = { u: 0, r: 0, d: 0, l: 0 }; m[b] = k; var p = qz(a, n, b, g, m, c); c = B(f, function (b) { var a = !Mr(b), c = a ? p.out : p.in; b = he(H([0, 0], e), c, b.align, b.vAlign).box; b.isInside = !a; return b; }); w(c, function (b, a) {}); var q = []; w(c, function (b) { (h.pane || !a.series.isVisible || $c(d, b)) && q.push(b); }); return q; } function rz(a, c, b) { var d = a.series, e = d.pane; b = e && e.getCompleteVisInfo ? e.getCompleteVisInfo(b) : Cc(ha(b.rectComplete)); a = sz(a, c); return { d: b, state: a, target: d.rootVisuals.points, zIndex: d.zIndex + gb.complete, visGetter: function () { return c.visuals.rectComplete; }, visSetter: function (b) { return (c.visuals.rectComplete = b); }, }; } function sz(a, c) { a = { hatch: "rgba(0,0,0,.8)", stroke: "#000", "stroke-opacity": 0.3, "stroke-width": 1, hatchPattern: "light-upward-diagonal", zIndex: a.series.zIndex + gb.complete }; var b = c.currentOptions.complete || {}, d = c.series.currentOptions.defaultPoint || {}; c = function (a) { return b[a] || C(d, "complete." + a); }; ni(a, c("fill")); ar(a, c("hatch")); return a; } function tz(a, c) { return Ai(a, { x: c.x, y: [c.open, c.close], subvalue: { range: [c.low, c.high] } }, ["x", "y", "subvalue"]); } function uz(a, c) { var b = { x: c.x, y: [c.low, c.high], subvalue: { range: [c.open, c.close] } }; c.name && (b.name = c.name); return Ai(a, b, ["x", "y", "subvalue"]); } function vz(a, c, b, d) { var e = b.xyz, f = b.xyzs, g = b.sv, h = b.svs; a = a.isHoriz(); var k = b.rect; b = a ? 0 : k.width / 2; a = a ? k.height / 2 : 0; c = z(N(c.currentOptions, ["outline", "width"]), 1); d = ue(d, [f, e, [h[0] - b, h[1] - a], h, [g[0] + b, g[1] + a], g], c); return xa(["M", d[0], "L", d[1], "M", d[2], "L", d[3], "M", d[4], "L", d[5]]); } function wz(a, c, b, d, e) { d = Nr(a, c, d); return [Nr(a, c, b), "Z", d, "z"]; } function Nr(a, c, b, d) { void 0 === d && (d = !0); var e = []; a -= b; c -= b; var f = 2 * b, g = 2 * b; b *= 0.3318; d && e.push("M", a + f / 2, c); e.push("C", a + f + b, c, a + f + b, c + g, a + f / 2, c + g, "C", a - b, c + g, a - b, c, a + f / 2, c); return xa(e); } function xz(a, c, b, d) { var e = a.series; c = b.xyz; var f = b.xyzs, g = "M" + c[0] + " " + c[1], h = Ha(c[2]), k = f[2] !== c[2]; e = e.options("shape.type") || "circle"; d = nd(d, c, 1); if (h) (b.pathD = b.meta.bodyD = g), (b.hitTest = xc); else { k ? (g = wz(d[0], d[1], c[2], f[2]).join(" ")) : ((d = kg(d[0], d[1], f[2], f[2])), (g = Ld(e, d.x, d.y, d.width, d.height))); b.pathD = b.meta.bodyD = g; var l = b.xyz, m = Math.max(b.xyz[2] / 2, 5), n = a.getLabelHitTest(); b.hitTest = function (b, a) { return Xb(l, [b, a]) <= m || n(this, b, a); }; } return xa(g); } function yz(a) { a = pa(a); return !(1 === a.length && gc(a, Or).length); } function zz(a) { return function () { var c = []; a.each(function (b) { c = c.concat(b._points); }); return c; }; } function Az(a) { return function (a) {}; } function Bz(a, c, b, d) { w(c.dataPositions.items, function (b) { b = Dr(a, b); var c = 0, d = 0, e = {}, k = b[0].series.yAxis.isStackedFull(), l = 0; k && w(b, function (b) { b = b.series.indexer.getItem(b._i).y; l += b; }); w(b, function (b) { var a = b.series.indexer.getItem(b._i).y, f = k ? a / l : a; 0 <= f ? ((e.ys = c), (e.yr = a), (c = e.ye = f + c)) : ((e.ys = d), (e.yr = f), (d = e.ye = d + f)); b.series.indexer.indexObject(e, b._i); }); }); a.reverse(); w(a, function (a) { a.zIndex = b += 8; a.seriesDirty.pos(!0); }); return b; } function Cz(a, c, b) { var d = c.dataPositions.items, e = function (b) { return t(b.z) ? b.z : t(b.y) ? b.y : 1; }, f = [], g = [], h = a.length, k = c.range.max - c.range.min, l = function (b, a) { b = Bi(b, a); return e(b.series.indexer.getItem(b._i)); }, m = b ? B(a, function (b) { return Ta( B(d, function (a) { return l(b, a); }) ); }) : B(d, function (b) { return Ta( B(a, function (a) { return l(a, b); }) ); }), n = function (b, a, c, d, e, h) { var k = {}; f.push([e, c]); f.push([c, h + e]); g.push([a - d, a]); g.push([a, a + d]); k.xs = a - d; k.xe = a + d; b.series.indexer.indexObject(k, b._i); }; if (b) w(a, function (b, a) { var f = c.range.min; w(d, function (c, d) { c = Bi(b, c); var g = c.series.indexer.getItem(c._i); g = (e(g) * k) / m[a]; n(c, d, f + g / 2, 0.5, f, g); f += g; }); }); else { var p = Ta(m), q = c.range.min; w(d, function (b, c) { w(a, function (a, d) { a = Bi(a, b); var e = (m[c] * k) / (p * h), f = 0.5 / h; n(a, c + d / h - 0.5 + f, q + e / 2, f, q, e); q += e; }); }); } var r = function (b, a, c) { for (var d, e = 0, f = b.length; e < f; e++) { var g = b[e], h = g, k = Math.round(100 * c) / 100; if (k >= Math.round(100 * h[0]) / 100 && k <= Math.round(100 * h[1]) / 100) { b = a[e]; d = Y(b[0], b[1], g[0], g[1], c); break; } } return d; }; c._stackTranslators = { backward: function (b) { return r(f, g, b); }, forward: function (b) { return r(g, f, b); }, }; } function Dz(a, c) { for ( var b = { points: [] }, d, e, f, g = function (b) { return zc(e, f, b, b); }, h = function (b) { return B(b, function (b) { return b.pop ? { x: b[0], y: b[1], z: b[2] } : b; }); }, k = function (b, a) { var c, d = 0; w(b, function (b) { t((c = b[a])) && (d += c); }); return d; }, l = function (l, m) { f = a[l]; d = h(f.points); c ? w(d, function (a) { b.points.push(A({ cpbIndex: l }, a)); }) : ((m = B(d, function (b) { return b.y; })), (e = { y: Ta(m), x: k(d, "x") }), (e.subvalue = { values: m }), w(["id", "name"], g), (b.points[l] = A(e, f.defaultPoint || {}))); }, m = 0, n = a.length; m < n; m++ ) l(m); b.isMerged = !0; return b; } function Pr(a) { var c = a.indexer, b = a.info, d = a.options(), e = d.xAxis, f = a.chart.chartItemManager.exists(d.yAxis) || {}; e = a.chart.chartItemManager.exists(e) || {}; var g, h = b.type.seriesType, k = function (b) { b = a.replaceTokens({ token: b }); return "-" === b ? "" : b; }, l = k("%xAxisLabel"), m = k("%yAxisLabel"); k = k("%zAxisLabel"); b.type.isMapLayer && (g = a.chart.geoParser.findFeatureProps(a, a.chart.internal.mappingInfo)); return { vScale: N(f.currentOptions, ["scale", "type"]) || f.type || f.dataType, xScale: e.type || e.dataType, ct: a.ctManager.settingVal("chartType", d), st: h, mapInfo: g, xNotSorted: !b.xIsSorted, yAxisLabel: m, xAxisLabel: l, zAxisLabel: k, sName: d.name, hasZ: c.hasKey("z"), hasX: c.hasKey("x"), hasRange: c.hasAllKeys(["ys", "ye"]) && !c.hasKey("y"), }; } function Di(a, c, b) { a.push(we(a[a.length - 1], c, b)); } function we(a, c, b) { return [a[0] + c[0] * b, a[1] + c[1] * b]; } function Qr(a, c) { var b; void 0 === c && (c = Gb); var d = []; try { for (var e = ya(a), f = e.next(); !f.done; f = e.next()) { var g = f.value, h = c(g); t(h) && !h.pop && d.push(g); } } catch (l) { var k = { error: l }; } finally { try { f && !f.done && (b = e.return) && b.call(e); } finally { if (k) throw k.error; } } return d; } function xe(a, c) { var b = function (b) { return c[0] === b[0] && c[1] === b[1]; }, d = function (b) { return c === b; }; b = c.pop ? b : d; for (d = 0; d < a.length; d++) if (b(a[d])) return d; return -1; } function Rr(a) { var c = [[], [], [], []]; a.each(function (b) { return c[b.sideIndex()].push(b); }); c[0].reverse(); c[3].reverse(); return c; } function Ei(a) { var c = a.isTransitioning ? a._ticks : ea(a._ticks, function (b) { return !b.invalid; }); a = Qr(c, function (b) { return b.value(); }); c = Ez(c, function (b) { return b.value(); }); var b = a.length; c = sa(c, function (b) { return t(b.currentOptions._lI) ? b.currentOptions._lI : -1; }); var d = function (a) { return !b && a._rngData && 0 === a._rngData.level && (!a.currentOptions.rangeMode || "auto" === a.currentOptions.rangeMode); }, e = [], f = a.slice(0); w(c, function (b) { b._isBaseRange = d(b); }); var g = ea(c, function (b) { return b._isBaseRange; }); f.push.apply(f, H(g)); e.push.apply( e, H( ea(c, function (b) { return !d(b); }) ) ); var h = 1; b || w(e, function (b) { b._rngData && b._rngData.level < h && (h = b._rngData.level); }); var k; g.length && 0 === h && (k = !0); return { valTicks: a, rngTicks: c, valArrange: f, rngArrange: e, fullRangesLevel: h, sharesBase: k }; } function Ez(a, c) { var b; void 0 === c && (c = Gb); var d = []; try { for (var e = ya(a), f = e.next(); !f.done; f = e.next()) { var g = f.value, h = c(g); t(h) && 2 === h.length && d.push(g); } } catch (l) { var k = { error: l }; } finally { try { f && !f.done && (b = e.return) && b.call(e); } finally { if (k) throw k.error; } } return d; } function Sr(a, c) { var b = a.isHoriz, d = S(a._ticks, function (b) { return !b._isRange; }), e = Ei(a), f = a._rngData, g = f.levels, h = f.duV; f = function (b) { for (var a = 0; a < c.length; a++) b(c[a], a); }; f(function (b) { var a = b._rngData; b = b._metrics.textSize.slice(0); a.labelSize = a.rotate ? [b[1], b[0]] : b; }); var k = a.tickMetricsData, l = a.sideIndex(), m = k.getMaxLength(), n = 0 === l || 1 === l, p = 0 === l || 3 === l, q = 0, r = [0, 0], u = 0; k = e.sharesBase ? 0 : k.maxLength; r[h.vc] = p ? m - k : k; var x = function (b) { var a = !1; b._rngData.rotate && (a = !a); return a; }, v = function (b) { var a = b._metrics.textSize; return x(b) ? [a[1], a[0]] : a.slice(0); }, y = function (b) { return ea(c, function (a) { return a._rngData.visible && a._rngData.level === b; }); }; k = function (c) { c = y(c); if (c.length) { var f = Math.max.apply( Math, H( c.map(function (b) { return b._rngData.labelOnTop ? 0 : v(b)[1]; }) ) ), g = 0, k = function (b, a, c) { var d = we(r, h.o, q); d[h.hc] = b._metrics.px[0]; d = [d]; Di(d, h.o, a); Di(d, h.f, la(b._metrics.px[0], b._metrics.px[1])); Di(d, h.i, a); return { points: d, options: A({}, c) }; }, m, p = function (b, a) { b = y(b + 1) || []; if (b.length) { b = b.map(function (b) { return b._metrics.px; }); for (var c = !1; !c && b.length; ) if (0 < bg(b, a).length) c = !0; else break; return c; } return !0; }, D = []; w(c, function (b, a) { a = b._rngData; var c = v(b), e = b.currentOptions.rangeMode; e = !d && 0 === a.level && (!e || "auto" === e) && !b._rngData.visPartial; var f = a.labelSize; a.labelOnTop || ((b = e ? f[1] / 2 + b.currentOptions.padding : Math.max(14, c[1] / 2)), D.push(b)); }); w(c, function (c) { m = []; var u = c._rngData, y = c._metrics.px, t = Wf(u.labelRange), F = v(c), E = c.currentOptions.rangeMode; E = !d && 0 === u.level && (!E || "auto" === E) && !c._rngData.visPartial; var w = u.labelSize, R = Math.max.apply(Math, H(D)); if (u.labelOnTop) { var M = we(r, h.o, q + 20 + F[1] / 2); M[h.hc] = t; u.labelBbox = mb(M, F); u.shapeOptions = k(c, 14, { gapLength: 0, tipLength: 20 * (1 - 0.7), tipPos: Y(0, 1, y[0], y[1], M[h.hc]) }); y = p(u.level, u.labelRange); g = Math.max(g, u.autoLabelOnTop && !y ? 20 : u.labelOnTop ? F[1] + 20 : F[1]); } else (M = we(r, h.o, q + R)), (M[h.hc] = t), (u.labelBbox = mb(M, F)), (u.shapeOptions = k(c, R, { gapLength: w[0], tipPos: Y(0, 1, y[0], y[1], M[h.hc]) })), (g = Math.max(g, f)); 0 === u.level && e.sharesBase && (g = Math.max(g, a.tickMetricsData.maxLength)); u.labelCxy = M; if ((u = !E)) (u = x(c)), b || (u = !u); c._cxyRotate = u ? (0 === l ? -90 : n ? 90 : -90) : void 0; m.push(c.currentOptions.padding); }); c = g + Math.max.apply(Math, H(m)); q += c; u += c; } }; for (var D = 0; D < g.length; D++) k(D); f(function (b) { if (b._rngData.visible) { var a = b._rngData, c = Ua(a.shapeOptions.points); b._positionData = { tickPoints: a.shapeOptions.points, textBBox: mb(a.labelCxy, b._metrics.textSize), bbox: Ea([a.labelBbox, c]) }; } }); r[h.vc] = p ? m : 0; return { ticks: a._rngData.ticks, levels: g, edges: a._rngData.edges, origin: r, depth: u, duV: h }; } function Rl(a) { a = a.currentOptions.hoverAction; return t(a) ? "none" !== a && !1 !== a : !0; } function Tr(a) { var c = a.axis.tickPositions, b = a._value; c.custom.slice(0); var d = c.minor || []; c = xe(c, b); return "custom" === a.type ? (a.rank = 1) : 0 === c ? ((a.isFirst = !0), (a.rank = 2)) : -1 === xe(d, b) ? (a.rank = 3) : (a.rank = 5); } function Fz(a) { for ( var c = Ei(a).valArrange, b = function (b) { if (-1 < b) for (var d = c.length; b < d; b++) { var e = c[b]; if (a.tickVisible(e.value()) && !e._isSquished) return b; } return -1; }, d = 0, e = c.length - 1; d < e; d++ ) { var f = c[d]; f._isSquished = !1; a.tickVisible(f.value()) ? (f._age = 0) : f._age++; } d = 0; f = !1; for (var g, h, k, l; !f; ) { var m = b(d); e = b(m + 1); if (-1 < m && -1 < e) { m = c[m]; g = c[e]; h = l = !1; var n = m.angledAttr(); "angled" === a.labelMode && 0 !== n.rotate[0] ? ((h = m._metrics), (k = g._metrics), (h = qv(z(h.px[0], h.px), z(k.px[0], k.px), h.textSize, k.textSize, n.rotate[0], z(m.currentOptions.padding, 0) + z(g.currentOptions.padding, 0)))) : m._cxyRotate ? ((h = [va(m._bboxClipped), va(g._bboxClipped)]), (h = [ik(m._bboxClipped, H([m._cxyRotate], h[0])), ik(g._bboxClipped, H([g._cxyRotate], h[1]))]), (h = nv(h[0], h[1]))) : (h = zd(m._bboxClipped, g._bboxClipped)); h && (g.rank > m.rank ? (l = g._isSquished = !0) : g.rank < m.rank ? (m._isSquished = !0) : (l = g._isSquished = !0)); d = l ? d : e; } else f = !0; } } function wf(a, c, b) { void 0 === b && (b = {}); var d = c.metrics(b), e = d.px, f = d.textSize, g = d.tickLength, h = a.sideIndex(), k = 0 === h || 1 === h, l = a.tickMetricsData; h = "inside" === c.currentOptions.placement; var m = c.options("padding") || 0, n = h ? 0 : l.getMaxLength(), p = 2 === e.length; e = c._metrics.px = a.getCaLen(c.value()); e.pop && e.length && (e = (e[0] + e[1]) / 2); Ha(e) && (e = 0); var q = 0 === a.currentOptions.anchorWidth ? 0.5 : 0, r = a.viewState.caRect, u = r.x, x = u + r.width, v = r.y; r = v + r.height; a.isHoriz ? (p && (q - e > u && (e = u + q), q + e > x && (e = x - q)), (p = h ? 0 : 1), k ? ((k = h ? 1 : -1), (g = [ [e, n], [e, n + k * d.tickLength], ]), (e = [e - f[0] / 2, g[1][1] + k * m + k * (h ? 0 : f[1]), f[0], p * f[1]])) : ((k = h ? -1 : 1), (g = [ [e, 0], [e, k * g], ]), (e = [e - f[0] / 2, g[1][1] + k * m + f[1] * (p - 1), f[0], p * f[1]])), (f = e[3] + (h ? 0 : d.tickLength + d.tickPadding || 0))) : (p && (q - e > v && (e = v + q), q + e > r && (e = r - q)), (q = C(c.currentOptions, "label.align") || k ? "left" : "right"), (p = h ? 0 : 1), k ? ((k = h ? -1 : 1), (g = [ [0, e], [k * d.tickLength, e], ]), (e = ["right" === q ? g[1][0] + k * m + p * l.maxTextSize[0] - f[0] : g[1][0] + k * m + f[0] * (p - 1), e - f[1] / 2, p * f[0], f[1]])) : ((k = h ? 1 : -1), (g = [ [n, e], [n + k * d.tickLength, e], ]), (e = ["right" === q ? g[1][0] + k * m - p * f[0] : g[1][0] + k * m - p * l.maxTextSize[0], e - f[1] / 2, p * f[0], f[1]])), (f = e[2] + (h ? 0 : d.tickLength + d.tickPadding || 0))); l = g.slice(0); "angled" === a.labelMode ? (c._positionData || (c._positionData = { tickPoints: g, textBBox: e }), (m = c.angledBounds())) : (m = e.slice(0)); l.push.apply(l, H(ie(m, "tl,br"))); l = c._bbox = Ua(l); h && ((l[a.isHoriz ? 3 : 2] = 0), (l[a.isHoriz ? 1 : 0] = 0)); if (b.tickPointsOnly) return (c._positionData.tickPoints = g), c._positionData; a = c._bboxClipped = e.slice(0); a[2] = d.textSize[0]; a[3] = d.textSize[1]; return (c._positionData = { tickPoints: g, textBBox: e, bbox: l, textLength: f }); } function Gz(a) { var c, b = Ei(a), d = b.rngTicks, e = b.rngArrange; b = a.duV(); var f = !1; if (d && d.length) { a.isZoomed || "category" !== a.type || (f = !0); var g = d[0].getVisualTargets({}, !0).tick, h = b.hc; d = rb(ha(a.viewState.caRect), -8); var k = we(d, b.i, d[h + 2]); k.push(0, 0); d = Ea([d, k]); var l = Yb(d); k = hb([l[h], l[h] + 8, l[h + 2] - 8, l[h + 2]], function (b) { return na(Y(0, 1, l[h], l[h + 2], b), 2); }); var m = f ? [1, 1, 1, 1] : [0, 1, 1, 0]; d = { d: Cc(d), fill: { linearGradient: a.isHoriz ? [0, 0, 1, 0] : [0, 0, 0, 1], stops: B(k, function (b, a) { return [b, "white", m[a]]; }), }, }; !f && g.attr({ mask: d }); } if (e.length) { a._rngData = Sr(a, e); for (f = 0; f < e.length; f++) { d = e[f]; k = d._rngData.shapeOptions; var n = A({}, d.currentOptions.line); "#e2e2e2" === n.color && (n.color = "#a8a8a8"); k && (d._rngData.renderData = Hz(d, C(k, "points"), A(k.options, n), g)); } d = a._rngData; g = d.levels; var p = d.edges; d = d.origin; k = []; n = function (b, a) { return S(e, function (c) { return c._metrics.px[0] === b[0] && c._metrics.px[1] === b[1] && c._rngData.level === a; }); }; var q = function (b, a) { return S(b, function (b) { return b[0] === a || b[1] === a; }); }; try { for (var r = ya(p), u = r.next(); !u.done; u = r.next()) { var x = u.value; for (f = g.length - 1; 0 <= f; f--) if (((p = void 0), (p = q(g[f], x)))) { var v = n(p, f); if (v) { var y = v._rngData.renderData.endPoints, D = y[0][b.hc] === x ? y[0] : y[1]; a.valVisible(a.linToVal(D[b.hc])) && ((p = []), (p[b.hc] = D[b.hc]), (p[b.vc] = d[b.vc]), k.push([D, p])); } break; } } } catch (F) { var t = { error: F }; } finally { try { u && !u.done && (c = r.return) && c.call(r); } finally { if (t) throw t.error; } } k.length && (a._rngData.connectorLines = k); } } function Hz(a, c, b, d) { var e = a.axis, f = "category" === e.type, g = a.currentOptions.rangeMode; a = a._rngData; var h = S(e._ticks, function (b) { return !b._isRange; }); b = id(qa(b), { type: f ? "curly" : "measure", gapLength: 0, tipPos: 0.5, color: "#000" }); f = h || 0 !== a.level || a.visPartial ? ("curly" === b.type ? "curly" : "measure") : "min"; g = g && "auto" !== g ? g : f; var k = z(b.width, Ur[g]); f = function (b) { var a = nd(d, b, k); return e.isHoriz ? [b[0], a[1]] : [a[0], b[1]]; }; var l = Ia(c[0], c[1]); c = c.slice(0); "curly" === b.type && ((c[1] = ra(c[1], l + 180, k / 2)), (c[2] = ra(c[2], l + 180, k / 2))); a = b.tipPos; h = mc(c[1], c[2]); a = ua(1 < a ? a / h : a, 0, 1); A(b, { lineLength: h, midPoint: Vj(c[1], c[2], a), sideLength: mc(c[0], c[1]), lineAngle: Ia(c[1], c[2]), tipAngle: l, tipPos: a }); var m = h - 12; l = b.gapLength; var n = b.midPoint, p = b.lineAngle; if (0 < l) if (l > h - 12) A(b, { gapLength: m, tipPos: 0.5, midPoint: Vj(c[1], c[2], 0.5) }); else if (0.5 !== a) { a = 1 > a ? a * h : a; m = mc(n, c[1]); var q = mc(n, c[2]), r = mc(n, ra(n, p + 180, l / 2)); l = mc(n, ra(n, p, l / 2)); r > m - 6 && (a += r - (m - 6)); l > q - 6 && (a -= l - (q - 6)); A(b, { tipPos: a / h, midPoint: Vj(c[1], c[2], a / h) }); } var u; "min" !== g && (u = "curly" === g ? gx(c, b) : fx(c.map(f), b)); return u; } function Iz(a) { var c = Date.now(); if (a && a.length) { var b = a[0].axis; w(a, function (b) { return 0 !== C(b.currentOptions, "value.length") && Jz(b); }); var d = function (b) { if ((b = b._arrangeInfo.used)) return ((c - b.time) / 1e3) * 10; }, e = function (b, a, c) { var e = 0, f = 0, g = !0; w(c, function (b, d) { e += c[d][a[d]] || 0; }); for (var h = 0, k = b.length; h < k; h++) { var l = void 0, m = S(b[h]._arrangeInfo.possible, a); if (m) { if (t((l = d(b[h]))) && Xb(m.cxy, b[h]._arrangeInfo.used.cxy) > l) { g = !1; break; } if (m.collide) { g = !1; break; } else f++; } else { g = !1; break; } } if (g) return e + f / b.length; }, f = function (b, a) { for (var c = {}, d = 0, e = b.length; d < e; d++) { var f = ea(b[d]._arrangeInfo.possible, a); w(f, function (b) { c["" + b.xAlignment + b.yAlignment + b.rotation] = { xAlignment: b.xAlignment, yAlignment: b.yAlignment, rotation: b.rotation }; }); } var g = []; w(c, function (b) { return g.push(b); }); return g; }, g = function (b, a) { var c = []; w(b, function (b) { return c.push(a(b)); }); return $a(c); }, h = ea(a, function (b) { return b.isRange(); }); a = ea(a, function (b) { return !b.isRange(); }); var k = function (a, c, h) { if (a.length) { for (var k = f(a, {}), l = g(k, c), m, n = 0, x = l.length; n < x; n++) for (var v = l[n], y = 0, D = k.length; y < D; y++) { var t = k[y]; if (c(t) === v) { var F = e(a, t, h); F && (!m || m[0] < F) && (m = [F, t]); } } var R = 1 < a.length; w(a, function (a) { var c = b.chartArea.collisionManager, e = a._arrangeInfo.possible, f = ea(e, function (b) { return R ? !c.collideLabels(b.box, a.id) : !c.collideAll(b.box, a.id); }), g = a._arrangeInfo.used, h, k, l = g ? { xAlignment: g.xAlignment, yAlignment: g.yAlignment, rotation: g.rotation } : {}; !f.length && e.length && (f = e); f.length && (g && (R || (k = h = S(f, l)), k || (k = S(e, l)), k && (k.time = g.time)), !h && m && (h = S(f, m[1])), h || (h = f[0]), g && h && !R && "" + g.xAlignment + g.yAlignment + g.rotation !== "" + h.xAlignment + h.yAlignment + h.rotation && ((e = Xb(g.cxy, h.cxy)), (f = d(a)), e > f && k && (h = k)), (a._arrangeInfo.used = h), c.addLabelBox(h.box, h.marker.id)); }); } }; k( h, b.isHoriz ? function (b) { return b.yAlignment; } : function (b) { return b.xAlignment; }, { yAlignment: b.isHoriz ? { inmiddle: 0.1, intop: 0.3, inbottom: 0.2 } : { inmiddle: 0.3, intop: 0.2, inbottom: 0.1 }, xAlignment: b.isHoriz ? { inleft: 0.2, incenter: 0.3, inright: 0.1 } : { inleft: 0.3, incenter: 0.2, inright: 0.1 }, } ); k( a, b.isHoriz ? function (b) { return b.yAlignment; } : function (b) { return b.xAlignment; }, { yAlignment: { outtop: 0.2, outbottom: 0.1 }, xAlignment: { outright: 0.3, outleft: 0.1 } } ); } } function Jz(a) { var c = a.axis, b = a.currentOptions, d = a.options("label"); b = b.value; var e = a.isHoriz, f = c.chartArea.collisionManager, g = []; if (d) { var h = function (b) { b.push([b[0][0] + (e ? 1 : 0), b[0][1] + (e ? 0 : 1)]); return Ea(b); }; d = ja(b[0]) ? b[0] : b; hb(d, function (b) { return g.push(h(c.getCaPoints(b, void 0))); }); w(g, function (b) { return f.addBox(b); }); d = Ea(g); a._arrangeInfo.edgeBoxes = g; a._arrangeInfo.box = d; Kz(a); Lz(a); } } function Kz(a) { var c = a.rootVisuals, b = a.currentOptions, d = b.labelPadding || 0, e = b.label || {}; a.getText() && a.axis.valVisible(a.value()) && ((b = c.label = c.label || new Fi(a.chart, e)), (e = a.attrBuilder(qc(e), {}, {})), (e.val = a.getText()), (e.padding = d), b.options({ text: a.getText() }), c.label.attr(e), b.rootVisuals.text.attr({ autoWrap: "auto" }), c.label.rootPanel.attr({ maxWidth: 0, autoWrap: "auto" }), (a._arrangeInfo.labelSizes = b.getSizes()), c.label.rootPanel.attr({ autoWrap: "none" }).setPreliminarySize(!0)); } function Lz(a) { var c = a.axis; a._arrangeInfo.visible = !0; var b = a.options("label"); if (b && Id(b)) { var d = b.align, e = b.verticalAlign; b = b.rotate; var f = function (b) { var c = a._arrangeInfo.labelSizes[0]; return ( S(a._arrangeInfo.labelSizes, function (a) { a[0] < c[0] && (c = a); return a[0] <= b; }) || c ); }, g = ha(a.axis.chartArea.contentRect), h = a._arrangeInfo.labelSizes[0], k = ho([a._arrangeInfo.box, g]) || a._arrangeInfo.box, l = a.isRange(), m = a.isHoriz; g = a.axis.chartArea; var n = Date.now(), p = g.collisionManager, q = rb(ha(g.contentRect), -1); a._arrangeInfo.possible = []; if (c.valVisible(a.value())) { h = f(m ? q[2] : q[3]) || h; var r = f(k[2]), u = f(k[3]); f = [k[0], k[1], h[0], h[1]]; h = function (b, c, d) { w(c, function (c) { var e, f = b.slice(0), g = 0 !== d, h = c[0]; c = c[1]; var v = 0 === h.indexOf("in"), x = v && 0 < d && (("inleft" === h && "intop" === c) || ("inright" === h && "inbottom" === c)); l && v && ((f = [0, 0]), g ? f.push.apply(f, H(u)) : f.push.apply(f, H(r))); g && (f = [f[0] - f[3], f[1], f[3], f[2]]); f = he(f, k, h, c); g = f.box; $c(q, g) && !x && (!m && l && v && ($c(k, g) || (e = !0)), !e && a._arrangeInfo.possible.push({ xAlignment: h, yAlignment: c, box: g, cxy: va(g), collide: !0 === p.collideAll(g), rotation: d, textAlignment: f.contentAlignment, marker: a, time: n })); }); }; g = function (b, a, c) { void 0 === c && (c = !1); var d = []; w(b, function (b) { w(a, function (a) { c ? d.push([b, a]) : d.push(b + a); }); }); return d; }; var x = [], v = []; c = "sp" === c.prefix; (t(b) && 0 !== b) || (m && !c ? (d ? (x = g(["in"], [d])) : ((x = g(["in"], ["left", "right"])), x.push("incenter")), e ? (v = g([l ? "in" : "out"], [e])) : l ? ((v = g(["in", "out"], ["top", "bottom"])), v.push("inmiddle")) : (v = g(["out"], ["top", "bottom"]))) : (e ? (v = g(["in"], [e])) : ((v = g(["in", "out"], ["top", "bottom"])), v.push("inmiddle")), d ? (x = g([l ? "in" : "out"], [d])) : l ? ((x = g(["in"], ["left", "right"])), x.push("incenter")) : (x = c ? g(["out"], ["left", "right"]) : g([], [""]))), (c = g(x, v, !0)), h(f, c, 0)); (t(b) && 90 !== b && -90 !== b) || (m ? ((x = d ? g(["in"], [d]) : g(["in"], ["left", "right"])), (v = e ? g([l ? "in" : "out"], [e]) : l ? g(["in"], ["top", "bottom", "middle"]) : g([], [""]))) : ((v = e ? g(["in"], [e]) : g(["in"], ["top", "bottom", "middle"])), d ? (x = g([l ? "in" : "out"], [d])) : l ? ((x = g(["in", "out"], ["left", "right"])), x.push("incenter")) : (x = g(["out"], ["left", "right"]))), (c = g(x, v, !0)), h(f, c, 90)); } else a._arrangeInfo.visible = !1; } } function Mz(a, c) { if (!c.items.length && !N(a.currentOptions, ["scale", "range"])) return (c = a.chartArea.chartAreaSet.freeAxes[a.prefix].id), c !== a.id && c; } function Sl(a) { var c = []; t(a) && (a.pop ? ((c = a.length), (c = (2 === c ? a : 1 === c ? [a[0], null] : []) || [])) : (c = [a.min, a.max])); a = c; return nb(a[0]) && nb(a[1]); } function Vr(a, c) { return (a = C(a.currentOptions, "scale.type")) && c(a); } function Tl(a, c) { return Vr(a, c) || (a.syncAxis && Vr(a.syncAxis, c)); } function Wr(a, c) { var b, d = function (b) { return [b[0], b[1], b[1] - b[0]]; }, e = function (c) { return "object" === I(c) ? ((b = !0), Nk(c, a.range ? a.range.min : a.min, a.range ? a.range.max : a.max)) : c.map(function (b) { return a.toPosition(b); }); }; if (ja(c) && c.length) { var f = []; w(c, function (b) { "array" === I(b) ? f.push(e(b)) : f.push.apply(f, H(e(b))); }); a.hasCalPatBreaks = b; return B(f, d); } a.hasCalPatBreaks = b; return c; } function Nz(a) { var c = []; hb(a, function (b) { return c.push(b); }); return ad(sa(c)); } function Oz(a, c) { var b = [0, a._sizeMetrics.length], d = 0 < la(b[0], b[1]); S(a._ticks, function (b) { return !b._isRange; }); var e = [], f = function (b) { for (var a = 0; a < c.length; a++) b(c[a], a); }, g = function (a) { return d ? Ue(b, a) : Ve(a); }; f(function (b) { b.metrics(); b._cxyRotate = void 0; b._rngData = { visRange: g(Ve(b._metrics.px)) }; var a = b._rngData, c = (c = b._rngData.visRange) && 0 < c.length, d = sa(b._metrics.px), e = b._rngData.visRange; e && e.length ? ((b = la(d[0], e[0])), (d = la(d[1], e[1])), (d = 10 < b || 10 < d)) : (d = void 0); A(a, { visible: c, visPartial: d }); }); f(function (b) { var a = b._rngData; if (b._rngData.visible) { b = b._metrics.px; for (var c = 0; !f; ) { var d = (e[c] = e[c] || []); if (!bg(d, b).length) { d.push(b); var f = !0; } c++; } f = c - 1; } else f = 0; return (a.level = f); }); f(function (b) { b = b._rngData; var a = b.visRange, c = (b.obstacles = []), d = function (b) { return fe(Ve(a), b) && c.push(b); }; b.higherIntersects = []; if (b.visible) for (var f = b.level + 1; f < e.length; f++) { var g = bg(e[f], a); Xe.apply(null, [b.higherIntersects].concat(g)); hb(g, d); } }); var h = a.tickMetricsData, k = a.sideIndex(); h = h.getMaxLength(); k = 0 === k || 3 === k; var l = [0, 0]; a = a.duV("inside" === C(a.currentOptions, "defaultTick.placement")); l[a.vc] = k ? h : 0; f(function (b) { var a = b._metrics.px; b._rngData.rotate = !t(C(b.currentOptions, "label.rotate")) && b._metrics.textSize[0] > la(a[0], a[1]); }); f(function (b) { var a = g(b._metrics.px); if (b._rngData.visible) { var c = void 0, d = b.currentOptions, f = b._rngData, h = cg(Zj(sa(f.obstacles), a, 0), a), k = b._metrics.textSize, l = !1; b._rngData.rotate && (l = !l); k = l ? [k[1], k[0]] : k.slice(0); k[0] += d.padding; f.labelSize = k; k = k[0]; h = h.length ? tv(h) : xf(a, 5); var m = 5 * z(b.currentOptions.line.width, Ur.measure); l = xf(a, m); b = xf(b._metrics.px, m); h = Ue(h, l); h[1] - h[0] < k ? (!f.visPartial && la(l[0], l[1]) < k && (c = !0), (a = (a[0] + a[1]) / 2), (f.labelRange = [a - k / 2, a + k / 2])) : ((a = (h[0] + h[1]) / 2), (f.labelRange = [a - k / 2, a + k / 2])); a = f.labelRange.slice(0); f.labelRange = Yj(b, f.labelRange); Qe(a, f.labelRange); d = d.label && d.label.placement; 0 !== f.level || c || (d && "auto" !== d) ? (c ? (f.autoLabelOnTop = !0) : 1 === e.length ? (f.autoLabelOnTop = !0) : ((c = f.higherIntersects && 0 < bg(f.higherIntersects, f.labelRange).length), (f.autoLabelOnTop = !f.visPartial && !c && f.level < e.length - 1)), (f.labelOnTop = t(f.labelOnTop) ? f.labelOnTop : f.autoLabelOnTop), (c = z(d, "auto")), (c && "auto" === c) || (f.labelOnTop = "outside" === c ? !0 : !1)) : (f.labelOnTop = f.autoLabelOnTop = !1); } }); var m = []; w(e, function (b) { b.length && m.push.apply(m, H(co(b))); }); m = ad(sa(m)); return { ticks: c, levels: e, edges: m, origin: l, duV: a }; } function Pz(a) { var c = "sv" + ("x" === a ? "x" : ""); return ["" + a, a + "s", a + "e", "" + c, c + "s", c + "v"]; } function Qz(a, c, b) { var d, e = a.childAxes.length ? a.childAxes.splice(0) : [a]; w(e, function (e) { e.currentOptions.markers = e.currentOptions.markers || []; e.currentOptions.markers.push(c); e._markers.push(new Xr(e, c)); d = !0; e.syncLegend(); a.chart.isRendered && !1 !== b && a.chart.renderer.refresh(); !1 !== b && e.renderOnCa(b); }); d && a.chart.isRendered && !1 !== b && a.chart._legends[0].isVisible && (a.chart.chartAreaSet.reflow(b), a.chart.renderer.refresh()); } function Gi(a) { return new Date(a).getTime() || new Date().getTime(); } function Rz(a) { return function () { var c = []; a.each(function (b) { c = c.concat(b._ticks); }); return c; }; } function Sz(a) { return function () { var c = []; a.each(function (b) { c = c.concat(b._markers); }); return c; }; } function Tz(a) { return !a.chart.ctManager.isType("map") && (ye(a) || (ze(a) && a.series.currentOptions.pointSelection)) ? !0 : !1; } function Yr(a) { return ze(a) && ((a = a.series.currentOptions.pointSelection), "single" === a || 1 === a.max) ? "system/default/radio-button" : "system/default/checkbox"; } function Zr(a) { if (ye(a)) return a.isVisible; if (ze(a)) return a.selected; } function Ul(a) { a = a.currentOptions.hoverAction; return t(a) ? "highlight" === a || "mute" === a : !0; } function Vl(a, c) { void 0 === c && (c = !0); var b = I(a); if ("array" === b) return a; if ("string" === b) return ( (b = -1 < a.indexOf(",") ? /[,]/g : /[ ]/g), (c ? a.toLowerCase() : a).split(b).map(function (b) { return b.trim(); }) ); } function $r(a, c, b) { var d = [], e = [], f = []; c.each(function (c) { c.breaks.length && Uz(a, c, b, d, e, f); }); return { clipPath: d.length ? xa(d) : null, paths: e, outlines: f }; } function Uz(a, c, b, d, e, f) { void 0 === d && (d = []); void 0 === e && (e = []); void 0 === f && (f = []); var g = c.getBreakRects(), h = C(c.currentOptions, "scale.defaultBreak.line.width"), k = C(c.currentOptions, "scale.defaultBreak.line.color"), l = C(c.currentOptions, "scale.defaultBreak.type").toLowerCase(); c = c.isHoriz; var m = function (c) { return md(a, c, b); }; g.sort( c ? function (b, a) { return b[0] - a[0]; } : function (b, a) { return b[1] - a[1]; } ); var n = g.length; if (1 != n) for (var p = 0; p < n; p++) { var q = g[p]; q[0] += b / 2; q[1] += b / 2; if (!q) break; var r = void 0; r = 0 === p ? (c ? "r" : "b") : p === n - 1 ? (c ? "l" : "t") : c ? "c" : "m"; if ((q = (Vz[l] || as)(r, h, q, m))) q.clipPath && d.push(q.clipPath), q.path && e.push({ path: q.path, color: k }), q.outlinePath && f.push({ path: q.outlinePath, stroke: k }); } } function as(a, c, b, d) { b = d(b); d = { clipPath: Zp(b[0], b[1], b[2], b[3], { zigSides: a, zigWidth: c, lines: [] }) }; var e = "m" === a || "t" === a || "b" === a ? 1 : 0; b[e] += 0.5; --b[e + 2]; d.outlinePath = Zp(b[0], b[1], b[2], b[3], { zigWidth: c, zigSides: a, open: !0, lines: [] }); return d; } function Wz(a, c, b, d) { var e = a.isHoriz, f = a.tooltip.currentOptions.combined, g = a.chart.axes("x"), h = [], k = [], l = [], m = !1; a.axes() .filter(function (b) { b = b.options("crosshair") || {}; return b.enabled && !b.snapToData; }) .each(function (b) { return b.crosshairXy(c); }); a.axes() .filter(function (b) { if ("x" === b.prefix) return ((b.options("crosshair") || {}).enabled || f) && !b.options("scale.syncWith"); }) .each(function (b) { var a = [b, b.crosshairXy(c, void 0, d)]; w(b.serList, function (b) { if (b.isVisible && !1 !== b.options("mouseTracking_enabled")) { var c = b.showHaloAtX(a[1]); c && h.push(c); b.haloPath && (k.push(b.haloPath), l.push(b)); } }); }); var n = Cc(ha(a.contentRect)) + " " + k.join(" "); w(l, function (b) { var a; (a = b.visuals.pointHalo) && w(a, function (b) { return b.attr({ clipPath: { d: n, "clip-rule": "evenodd" } }); }); }); h = h.map(function (b) { return { axId: b[0].id, point: b[1], yVal: b[2] }; }); if (h.length) { var p = new Wl().key("axId").entries(h), q = []; w(p, function (b) { var c = a.axes(b.key); if (c) { a.tooltip.cttEnabled(c, g) && (q.push.apply( q, H( b.values.map(function (b) { return b.point; }) ) ), (m = !0)); var d = c.options("crosshair"); d.enabled && d.snapToData && Xz(a, c, Yz(b.values)); } }); q = ea(q, function (b) { return !b.series.indexer.getValue("isEmpty", b._i) && !1 !== b.series.options("mouseTracking_enabled"); }); q = sa(q, function (b) { return b.series.indexer.getValue("pos", b._i).xyz[e ? 0 : 1]; }); q.length && a.tooltip.show(q, b, c); } else a.axes() .filter(function (b) { if ("y" === b.prefix) return (b.options("crosshair") || {}).enabled; }) .each(function (b) { return b.crosshairXy(c); }); return m; } function Zz(a) { a.axes().each(function (a) { a.crosshair(); }); } function $z(a) { var c = Gh({ chartArea: a.chartArea || [{}] }, "chartArea"), b = Mj(a, ["title", "series", "legend", "events"]); Mj(a, ["xAxis", "yAxis", "zAxis"]); var d = { xAxis: a.xAxis || [{}], yAxis: a.yAxis || [{}], zAxis: a.zAxis || [{}] }; A(c[0], Ga(b, "series")); c.rootItems = b; c.rootAx = d; a.series.length && ((c[0].series = c[0].series || []), (c[0].series = (c[0].series || []).concat(b.series))); return c; } function aA(a) { return function () { var c = []; a.each(function (b) { return c.push.apply(c, H(b.items)); }); return c; }; } function bA(a, c, b) { if (c.data) { c = c.data; var d = (a.data = a.data || {}), e = I(c), f = t(c.transformer) ? c.transformer : a.ctManager.isType("calendar") ? cA : null, g = function (c) { if (!d.val || (d.val && d.fileName !== c)) return ( Ew(c, function (e) { d.val = f ? f(e.data) : e.data; d.types = !f && Vk(d.val); w(d.types, function (b, c) { return "date" === b && Z(a, "typeContextOptions.axes." + ["x", "y", "z"][c] + ".scale.type", "time"); }); d.fileName = c; b(e); }), c ); }; switch (e) { case "array": d.val = c; break; case "string": if (256 > c.length && c.indexOf(".csv") === c.length - 4) return g(c); d.val = Oh(c); break; case "object": if (c.data) d.val = Oh(c.data, c.delimiter, c.header); else if (c.file) return g(c.file); } } } function cA(a) { return B(a, function (a) { return [a[0], parseFloat(a[1])]; }); } function Xl(a, c, b) { var d = ff[a]; !d && Yl[a].checker(c, !1, {}) ? bs(a, c || {}, b) : !d || d.loaded ? b() : d.loading && d.callbacks.push(b); } function cs(a, c, b, d) { void 0 === d && (d = !1); c || b(); var e = [], f = ff, g = function (a) { e.splice(e.indexOf(a), 1); e.length || dA(b); }, h = eA(c), k = h ? W(Yl, h) : Yl, l = c.modules ? fa(c.modules) : {}; Da(k, function (b) { var h = f[b], m = function () { h && h.afterLoad && h.afterLoad(a, c); !h && -1 < b.indexOf("locale") && f[b] && ((f[b].loading = !1), (f[b].loaded = !0)); }; (h && h.loaded) || !k[b].checker(c, d, l, a.ctManager) ? m() : (e.push(b), bs(b, L({ notificationContainer: a.getWrapper() }, c), function () { m(); g(b); })); }); var m = bA(a, c, function () { g(m); }); m && e.push(m); e.length || b(); } function ds(a, c) { for (var b in fA) if (a.isType(b, c)) return !0; } function bs(a, c, b) { bp(a, b, Ma, c); } function eA(a) { var c = T.Intl; a = a.defaultCultureName || "en-US"; if (c && 0 < c.NumberFormat.supportedLocalesOf([a]).length) return null; gA(); c = {}; c["https://code.jscharting.com/polyfill/locales/" + a] = { checker: function () { return !0; }, }; return c; } function gA() { T.IntlPolyfill || (T.IntlPolyfill = { __addLocaleData: function (a) { return Hi.push(a); }, }); } function dA(a) { var c = T.IntlPolyfill; Hi.length && c && (w(Hi, function (b) { return c.__addLocaleData(b); }), (Hi = [])); a(); } function hA(a, c, b) { var d, e = {}, f = a.calIndexer, g = { layoutAttr: e, boxAttr: {}, needRefresh: !1, needRedraw: !1, updateCalendar: !1 }; t(c.margin) && Z(c, "box.margin", c.margin); w(c, function (b, d) { if (Zl[d]) Zl[d](b, a, g, c); }); if (g.updateCalendar) { var h = a.userOptions, k = a.currentOptions; k.series = void 0; k.x = yf(h.x); k.y = yf(h.y); f.updateChart(k); var l = k.series; w(a.chartAreaSet.items, function (b) { b.options({ series: l }); }); } Object.keys(e).length && a.renderer.attr(e).refresh(); e = t(null === (d = null === c || void 0 === c ? void 0 : c.box) || void 0 === d ? void 0 : d.padding); (!a.isRendered || e) && a.isColorized && 100 < a.renderer.getRootBox().height && ((g.boxAttr.padding = g.boxAttr.padding || [0, 0, 0, 0]), (g.boxAttr.padding[2] += 20)); if ((d = g.boxAttr) && Object.keys(d).length) { if ((e = d.margin)) (f = Ac(a.rootVisuals.box.margin.initial)), (d.margin = Kj(f, e)); a.rootVisuals.box.attr(d); g.needRefresh = a.isRendered; } g.needRedraw ? a.redraw(b) : g.needRefresh && a.rootPanel.refresh(); } function iA(a, c, b) { Da($l, function (d) { c = $l[d](a, c, b); }); return c; } function es(a, c, b) { return gf(function (d, e) { e = { text: c }; b && ((e.baseUrl = b.baseUrl), (e.notificationContainer = b.notificationContainer)); Xl("modules/types", e, function () { return d(Yq(a, c, b)); }); }); } function jA(a, c, b) { fs = b; "undefined" != typeof a && (a.fn.JSC = function () { function b(b) { for (var a = 0, d = c.length; a < d; a++) if (b[0] == c[a][0]) return c[a][1]; } var a = arguments, f; if (this[0]) { "string" === typeof a[0] && (a = Array.prototype.slice.call(a, 1)); var g = a[0]; t(g) ? ((f = b(this)) && f.dispose(), (g.targetElement = this[0]), (a = new fs(g, a[1])), (a.globalChartIndex = c.length), c.push([this[0], a]), (g = this)) : (g = b(this)); } return g; }); } function gs() { return "3.0.2.20210127"; } function kA() { return gf(function (a) { "loading" === ba.readyState ? ba.addEventListener("DOMContentLoaded", a) : a(); }); } function hs(a, c) { var b = Ii(c), d = { grid_enabled: !0 }; b && ((d.baseUrl = b.baseUrl), (d.notificationContainer = b.notificationContainer)); return gf(function (c, f) { Xl("modules/datagrid", d, function () { c(sc.gridConstructor && sc.gridConstructor(a, b, void 0)); }); }); } function is(a, c) { if (!(this instanceof is)) return hs(a, c); var b = sc.gridConstructor && sc.gridConstructor(a, c, void 0); return b ? ((b.then = function (a) { return a && a(b); }), b) : hs(a, c); } function Ii(a) { var c; od && (c = od ? od() : {}); return a && c ? A(c, a) : a || c; } var nj = function (a, c) { nj = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (b, a) { b.__proto__ = a; }) || function (b, a) { for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]); }; return nj(a, c); }, lA = { exportButtonTooltip: "Export to raster or vector image", printButtonTooltip: "Print the chart", resetZoomText: "Zoom Out", resetZoomTooltip: "Reset Zoom" }, Jk = "4285F4fE4C14DBCB1815AC20D150B1d9AeeC8C2808ED7C1F1eFEdAF2955B6eA738F5424378BE3CA87A893B3F84E154F5CD992D8C2903B9B09DC9F9F95F035FCACBFA0381830202FE9CCEFEFBCC9BdD7311A3340E7E4957B823E6BC0DE8BFC70D5987BD5C923|9C9Ad9C3063cCECEc63e63d8284e65CECECdFee84dbcebd84e8484a8284ebeCdFCEcCEdCEc9C9CCcF9ACECE9AcCF9C3165d31CFCE9CCFbCFb9Ab65e63659C949694e3063319A63e3e0313e09C3e09C306331309C313031accadacdbbbd84a82a848482e84e84e8284C6C3C6848284|4B649A88E2D869838eD93FA5EE4034088B2FAEB8E9ED266666FA7CD992C85203D4804FAFC7DD57F9EEFC335BA63D2F81C238683D996FEAB90342172309AE9538772BC16DF07420ADC7A4D9ED99DAA029BAEB076A40145A6485769C85B624F030670AD47A6BC1814E07CA65E495FD0F2881ED681E873AE862D16CC889C78AE792B499869EE625BDE959C952859E55CE88675403C8BCC|B2213DBAC01464AF4ADA5B8AEE971F989EDDB7D3E68B44D7DDC9870157E10EA61EEE6B07B9CFB4B24B420C78B02E5302CE296DF22889FD27DB64DCF58C635867CCB46CFE2C17DDCD290587A37ECB27AF7685322D741B7E94F0442B54F2BD25E7E9A3AAFBC054D4B64A9EC8220159A70F3D2D7F07302AF2B035D60DE7EB89DA6ADE9FB9D9202AED22AF7BE2D4515B93979B1B16C53E1E|E68E423F5C79E5D5ADEC6CBBE66457F9E2D796A6A28121DB6D38E9C36845D6CA2199DED1532E506469D45014C4203AFB07CE2E94B32C06656D65D0238E216D6715A1994C8485A6B487313CCC310C174DFDEDBB99164216F3937963EC5D2DD54867E7FD2285EC778128790D82EE3834604D8325A064D350D28AA5B70A21B8575A5AF365480DF3C610753A709C3492045A45039ED80834|3D88419BE23923AAC40154C4141CE1507A0314A091B380FC677487E15195AD6E9B8C285ACF5735E1DF6C4FEC798AC2D30DE68CCFDF87DA890744336DB040582E53E52887F3867F22CD32C024649382DCB1B2D46909DC8E14B09D538A23C6309E13209892613ADF85666902ADC6B62473C056BBFD6AEE25765714D55532F4FD0701211044F9EF7A76D24F029ED9E04CF978DEC9CC0A32|9ADB5E61F34C0C8DEFC21EC7737198D5D73F6085AE67C358B0C0BA2FE63093EF6B377F4DB066102F3B8CCA0F7ACA720AA4D70F6E875B33331805AF3390DCA5BF2E2D5B3CF14A24702E304A229BB4DCE54EB0890E2024681e44B35ABB6DC9E5EE50BDF4D6E35175AB29D3F561011966327C9E4DE52979E09C44A37A51478B95191EB3B90D38F7618992E5B81E411eF2B4D184EBF6BE|860104dD62E583410c6dF7e0551314FEdAF7F4D1Ccb4502830B0CF6FCDAaFDdB1d9D02EE1413AE6A29DE56eE4A711BB1313D195e61140DBCB037402E13B8C267B86D163F1815C2C8955E4520A7B817B851175F1A13C4CAB4aC1C898B88918AD3122815F2DA05813A68D2089291E977E12|181161D14524F9F72B83EA282BFBCDA395DEDC2ECE4133F5DA011D01A468837EB8EA917CC3B9F0C972E8958DFAF8717754D6A67B1D2CD14524E18514AC7F1384875DBA5965D42A5D8E2C6F6059A9A4A0D4F4F226A8F96072FEDFCCC2F6F69AEEAFA9FCFB94996BE6B98E569B9EA89E5FB8E9D97C7ACAC7E6AA6F9E9DB0A0AA56BE817BCACACF63CFCEEBE86F69D0FDCCE5E89C12FEe|4A2123D52E06B38D95dDBC5C2644482B2B8AE7EA1dE19C8D8A7E553C15DCD2D5dCA95DAC5E4DB9F62dDBD9BC9F95E49291484C50FAB36C9A6343E57B63BED7DA92392FD7CEC2d95eD0BBC1759980ADC0DFE5BFD2E0CC84C0D0C5CDD25EdC7C3C1dF1C69658F1F98E61693CA86567FB4C2688A259cC5A5C18ACAEBdC6A5D1A4845C5D531ADDCFA2D67F45AA3B33dC667|8A98DB3C59BA16265173A278B7F5Dd8F7A05CC3A192973C5D64488B775BA64E1B44475F714B96646DC4D02154F171A46F1842ECA991F8C12FED8F11F1CFC4D8BEF3F8FA2C3248862E0A1CA18BB670A3DD0A0D460A0D4655D3EBCDdD579DAC734879694E3A719686D18A56418775A47BD9A36773D98BC8EB4B73A7DC96B52A0951184B0D8BEF31E4AB3B1B7A1848BD4AAB5D2B1B7A14A67C5|BF2D305E8D34855E26a9FC2dC380B75174BED869349648B31E4BCCD150B159B6E6A36079C9EEd7BD76CdE648E4F6C29BAEAEA2dBA8AB74957C0C2F3E5D8dF285AAd45E0C18CBEE7A437942DDDde216C54DDF78F6174618BE767D89A7C7C8B59234172A3AD680C866D82789410869FBD19CDA087CB5980E78F5CAD5054A0AE7C321727308B113C2A573F2F0F4EA36E68|2A3D2FBCD0A4F7dD1AE708AF5ADBDF8D4DCB1E6d7AAEB38FAF6E101811B6C4B0dBEC4D06F71DFCC65BBD8BAD77856FDdB6E67347B8EDd47C3F2F89E8B834C37A1C261E2dCA3B491F52A09593B7D3647AAAD7ccD43F4E5DA4BD74dC49Ad6044CAD5C974A05B7383689B4427BE8B94d8C63D9c88ADC8D5A37dFDACAE488A1E997CC52A095849B50618C73C9DCB6|D1CEBC914927aDe04AE7C8C6F8EBbFBD0C75D65C3e7Ce9F3Ce8873e98A646648E8EC7E6827D4E6FA573737D83DFB7ADd2525E49F76F3EAF2FBF794d6E6EE20106A017174B2722e892F9CCB9685D1D215EDEA35C7F1186F3F67801C655567905D8DF64041A92E2EE38B97FBC197B5B3B3FEDD96FDD1F2DB391988010442e11eCE7498E6eeFC88eA3D2e447D|2263093BDB09F0d5EBCE86C7A7124AA9D2B5C770EC7E207CBB60B3E89080A1C0CdFA3C7CE96C514B18B09F09AFD408F8EeE4FA30715480DAdF3C513A107E7109AFD40815480D2D992A98BB7B5D5F307C833D4057217FA4328B932E3064220A1C0CB3C45E7EBC7D7CBC803A3D1E7B812B6E9C30ABB53B3E772615341587AD565D5F30|D0B85D648F8CF892eF9F29BA7D3EdAF168676A35F0C963dEF7AC6D332AC8827F3D864dFE49D3ED62B2AD61687C3DB0A89AB07286F6B899CEA95C6E581CCFB999F5A864B4CC9D516862D4F8A24E150ACF6E27718E258F889ED0C8996F685BB3AC29E9D23670370C7867669D721AB4DA55B06F52324C1936773D98BC8E483E46D8BEF313706B38384F738C5EdDEb64e998A50|173C64648F8C51CdF95cA7D3EF03343C676A35C49D35dEF7AC6D332B0EBBAE1dB6dFE499E68e181F03687C3DCDdD5DEFCdE3DEF22F2F696E6EBE03639F55D3EBF1C4B5e0A3F52A0951184B011B08C7DC96B9A9865CCCD6DdE23EFDFDB7FAB07A70370C786766e25595B93E09893BD5A809F36773D98BC8EF2CA8ED8BEF313706B38384F2CA6CB08F4BA8DF36E998A50|64eeC864eA08Cee64a6432e6464e64|4682B49ACD32708090CD853FB22222dA5bcd45eA0522DdD7e3CB37154A9DD6A5ACD4169E19370DBBA55D366CDAAD8BFD8d69B4DB7093|8Beb8Ce8B4513B8860B808e06B8E23556B2Fe64e2E8B57e8B8BeBdF4682B4ee80483D8B4Be828e080DC143Ca94eD3|468966dF0A5dB03BB649268E28e|7D8A2EC9D787F9D690dC0A9d8598|393A3DDBe485D9E9BC8DBBFE0FCEB|595441B9B09DDDE8EB69BFDE4A8797|7D7E9ABFC7B2D8D6B0D0C3B39B7A76|C44C51dB6B8dEFB6A2B5BF5F8CA3|FCdF5D1DBBD91AA9D3E606F193441|B0CC99677E52B7CA79F6E8B189725B|F7F2B2ADCF4F84815B4A1A2C8E3557|E8E595D0A82540627C26393DdFAE4|5A1FeD1570DFDE792477725A9CC66|595241B8AE9CDED7C6ACCFCC8A0917|66858D93A299C0BFA9dE7D5dBEAC|dF0A3B8CC6E4B6e0E4F8de4460|C7F2F547A0A1781515B8864CD9C39C|3B180182561AdF3D2ABB8864F462E|C3d939698656A4A2CC1420Ed8C47|759C52C2E858dE3A6E8A2989C5241|123B4AE6cC7C09AdE427dA908|ED9877B0B9ADAE555B485566837076|B8ECD7083643B1Ee1CEF09D476C5E|323240968C63FDdC9dD175C3C967|F0E14CdBB20FA7B12E8530559CC0D|4059529C9B7AdD393d974d54F29|762B1B807227CCBF7AdEF9860B0A1|5D4970372049F1BAF3FAEEd59535E|F9EBAE7898983C6573E8B54DB14D1C|B9121B4C1B1BF6E497FCFAE1BD8D46|B6D09C7273685C5C66533E3ECC9585|8F9AB3B0D0Dd1F3F0dACA1A61618|d5B2BB1221C34393E8CC6D7dDA8C|E51E19FC7529F9F23D8DEA550962B4|FD814C2DD5ECd364DA1F886dF37D|324732EADAD27E1F2DA1861D97A9CA|FA5E73E6DDD399CE5D43456DEB9765|3A8394C6EDF7D9F2B0dD1C1B71E4F|463531F57C75C380C921D4F6A5EBB0|997F87F7D6CDE6FCB5C5E0DC454B65|463531F57C75C380C921D4F6A5EBB0|070707FBDB5BEC360880C3d448B14|E37484CEDDE499B18DE9CD6CEAB79A|CAD6C35E7277F99DB1FBBFCCF6E1DC|F9FDF32B3532D33D3EC3B9ADe5773|94B13A2C81C06B4687960303F16723|DCE7B5B0C4CEFE4F13E6384D17304B|DA1C1C68DA1CF1E80821A4D8FC6A08|D3B569E29351C95B406D9DC54C507CB4F4F78BEFEA23877B03576019303A|003049D62828F77F00FCBF49EAE2B7|2F485833669986BBD89EE493DAF7DC|813405D45113F9A03FF8DDA4F1F9C2" .replace(/e/g, "00") .replace(/d/g, "FF") .replace(/c/g, "FFFF") .replace(/b/g, "00FF") .replace(/a/g, "000000") .split("|"), ou = Object.prototype.hasOwnProperty, js = "object" == typeof global && global && global.Object === Object && global, mA = "object" == typeof self && self && self.Object === Object && self, pd = js || mA || Function("return this")(), Ji = pd.Symbol, Nf = Object.prototype, qb = Nf.hasOwnProperty, Za = Array.isArray, pu = Nf.toString, oj = bn(Object.getPrototypeOf, Object), Xg = Function.prototype.toString, qu = Xg.call(Object), Dj = (function (a) { return function (c, b, d) { var e = -1, f = Object(c); d = d(c); for (var g = d.length; g--; ) { var h = d[a ? g : ++e]; if (!1 === b(f[h], h, f)) break; } return c; }; })(), ks = Nf.propertyIsEnumerable, Le = cn( (function () { return arguments; })() ) ? cn : function (a) { return Pc(a) && qb.call(a, "callee") && !ks.call(a, "callee"); }, ls = "object" == typeof aa && aa && !aa.nodeType && aa, ms = ls && "object" == typeof module && module && !module.nodeType && module, ns = ms && ms.exports === ls, Ki = ns ? pd.Buffer : void 0, Me = (Ki ? Ki.isBuffer : void 0) || ru, wn = Ki ? Ki.allocUnsafe : void 0, su = /^(?:0|[1-9]\d*)$/, Ca = {}; Ca["[object Float32Array]"] = Ca["[object Float64Array]"] = Ca["[object Int8Array]"] = Ca["[object Int16Array]"] = Ca["[object Int32Array]"] = Ca["[object Uint8Array]"] = Ca["[object Uint8ClampedArray]"] = Ca[ "[object Uint16Array]" ] = Ca["[object Uint32Array]"] = !0; Ca["[object Arguments]"] = Ca["[object Array]"] = Ca["[object ArrayBuffer]"] = Ca["[object Boolean]"] = Ca["[object DataView]"] = Ca["[object Date]"] = Ca["[object Error]"] = Ca["[object Function]"] = Ca["[object Map]"] = Ca[ "[object Number]" ] = Ca["[object Object]"] = Ca["[object RegExp]"] = Ca["[object Set]"] = Ca["[object String]"] = Ca["[object WeakMap]"] = !1; var am = ns && js.process; a: { try { var bm = am && am.binding && am.binding("util"); break a; } catch (a) {} bm = void 0; } var os = bm && bm.isTypedArray, Zg = os ? dn(os) : tu, uu = bn(Object.keys, Object), ah = (function (a, c) { return function (b, d) { if (null == b) return b; if (!vd(b)) return a(b, d); for (var e = b.length, f = c ? e : -1, g = Object(b); (c ? f-- : ++f < e) && !1 !== d(g[f], f, g); ); return b; }; })(function (a, c) { return a && Dj(a, c, Ne); }), Li = Array.prototype, nA = Li.splice; Qc.prototype.clear = function () { this.__data__ = []; this.size = 0; }; Qc.prototype["delete"] = function (a) { var c = this.__data__; a = bh(c, a); if (0 > a) return !1; a == c.length - 1 ? c.pop() : nA.call(c, a, 1); --this.size; return !0; }; Qc.prototype.get = function (a) { var c = this.__data__; a = bh(c, a); return 0 > a ? void 0 : c[a][1]; }; Qc.prototype.has = function (a) { return -1 < bh(this.__data__, a); }; Qc.prototype.set = function (a, c) { var b = this.__data__, d = bh(b, a); 0 > d ? (++this.size, b.push([a, c])) : (b[d][1] = c); return this; }; var cm = pd["__core-js_shared__"], gn = (function () { var a = /[^.]+$/.exec((cm && cm.keys && cm.keys.IE_PROTO) || ""); return a ? "Symbol(src)_1." + a : ""; })(), xu = /^\[object .+?Constructor\]$/, wu = RegExp( "^" + Xg.call(qb) .replace(/[\\^$.*+?()[\]{}|]/g, "\\$&") .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" ), Kg = Rd(pd, "Map"), Lg = Rd(Object, "create"); Sd.prototype.clear = function () { this.__data__ = Lg ? Lg(null) : {}; this.size = 0; }; Sd.prototype["delete"] = function (a) { a = this.has(a) && delete this.__data__[a]; this.size -= a ? 1 : 0; return a; }; Sd.prototype.get = function (a) { var c = this.__data__; return Lg ? ((a = c[a]), "__lodash_hash_undefined__" === a ? void 0 : a) : qb.call(c, a) ? c[a] : void 0; }; Sd.prototype.has = function (a) { var c = this.__data__; return Lg ? void 0 !== c[a] : qb.call(c, a); }; Sd.prototype.set = function (a, c) { var b = this.__data__; this.size += this.has(a) ? 0 : 1; b[a] = Lg && void 0 === c ? "__lodash_hash_undefined__" : c; return this; }; Rc.prototype.clear = function () { this.size = 0; this.__data__ = { hash: new Sd(), map: new (Kg || Qc)(), string: new Sd() }; }; Rc.prototype["delete"] = function (a) { a = ch(this, a)["delete"](a); this.size -= a ? 1 : 0; return a; }; Rc.prototype.get = function (a) { return ch(this, a).get(a); }; Rc.prototype.has = function (a) { return ch(this, a).has(a); }; Rc.prototype.set = function (a, c) { var b = ch(this, a), d = b.size; b.set(a, c); this.size += b.size == d ? 0 : 1; return this; }; kc.prototype.clear = function () { this.__data__ = new Qc(); this.size = 0; }; kc.prototype["delete"] = function (a) { var c = this.__data__; a = c["delete"](a); this.size = c.size; return a; }; kc.prototype.get = function (a) { return this.__data__.get(a); }; kc.prototype.has = function (a) { return this.__data__.has(a); }; kc.prototype.set = function (a, c) { var b = this.__data__; if (b instanceof Qc) { var d = b.__data__; if (!Kg || 199 > d.length) return d.push([a, c]), (this.size = ++b.size), this; b = this.__data__ = new Rc(d); } b.set(a, c); this.size = b.size; return this; }; Td.prototype.add = Td.prototype.push = function (a) { this.__data__.set(a, "__lodash_hash_undefined__"); return this; }; Td.prototype.has = function (a) { return this.__data__.has(a); }; var dh = pd.Uint8Array, Mi = Ji ? Ji.prototype : void 0, Pf = Mi ? Mi.valueOf : void 0, dm = Object.getOwnPropertySymbols, vj = dm ? function (a) { if (null == a) return []; a = Object(a); return pj(dm(a), function (c) { return ks.call(a, c); }); } : ln, em = Rd(pd, "DataView"), fm = Rd(pd, "Promise"), zf = Rd(pd, "Set"), gm = Rd(pd, "WeakMap"), oA = Qd(em), pA = Qd(Kg), qA = Qd(fm), rA = Qd(zf), sA = Qd(gm), wc = ud; if ( (em && "[object DataView]" != wc(new em(new ArrayBuffer(1)))) || (Kg && "[object Map]" != wc(new Kg())) || (fm && "[object Promise]" != wc(fm.resolve())) || (zf && "[object Set]" != wc(new zf())) || (gm && "[object WeakMap]" != wc(new gm())) ) wc = function (a) { var c = ud(a); if ((a = (a = "[object Object]" == c ? a.constructor : void 0) ? Qd(a) : "")) switch (a) { case oA: return "[object DataView]"; case pA: return "[object Map]"; case qA: return "[object Promise]"; case rA: return "[object Set]"; case sA: return "[object WeakMap]"; } return c; }; var Eu = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Du = /^\w*$/, hm = function (a, c) { if ("function" != typeof a || (null != c && "function" != typeof c)) throw new TypeError("Expected a function"); var b = function () { var d = arguments, e = c ? c.apply(this, d) : d[0], f = b.cache; if (f.has(e)) return f.get(e); d = a.apply(this, d); b.cache = f.set(e, d) || f; return d; }; b.cache = new (hm.Cache || Rc)(); return b; }; hm.Cache = Rc; var tA = /^\./, uA = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, vA = /\\(\\)?/g, Fu = (function (a) { a = hm(a, function (b) { 500 === c.size && c.clear(); return b; }); var c = a.cache; return a; })(function (a) { var c = []; tA.test(a) && c.push(""); a.replace(uA, function (b, a, e, f) { c.push(e ? f.replace(vA, "$1") : a || b); }); return c; }), Qf = 1 / 0, nn = Mi ? Mi.toString : void 0, yj = 0 / 0, qn = /^\s+|\s+$/g, Lu = /^[-+]0x[0-9a-f]+$/i, Iu = /^0b[01]+$/i, Ju = /^0o[0-7]+$/i, Ku = parseInt, gh = Math.max, wA = (function (a) { return function (c, b, d) { var e = Object(c); if (!vd(c)) { var f = Xd(b); c = Ne(c); b = function (b) { return f(e[b], b, e); }; } b = a(c, b, d); return -1 < b ? e[f ? c[b] : b] : void 0; }; })(Sf), hh = (function () { try { var a = Rd(Object, "defineProperty"); a({}, "", {}); return a; } catch (c) {} })(), xA = Date.now, tn = (function (a) { var c = 0, b = 0; return function () { var d = xA(), e = 16 - (d - b); b = d; if (0 < e) { if (800 <= ++c) return arguments[0]; } else c = 0; return a.apply(void 0, arguments); }; })( hh ? function (a, c) { return hh(a, "toString", { configurable: !0, enumerable: !1, value: Mu(c), writable: !0 }); } : Wd ), yA = Bj(function (a, c, b, d) { Yd(c, $d(c), a, d); }), zA = Zd(function (a) { a.push(void 0, Nu); return zj(yA, void 0, a); }), ps = Object.create, Ou = (function () { function a() {} return function (c) { if (!xb(c)) return {}; if (ps) return ps(c); a.prototype = c; c = new a(); a.prototype = void 0; return c; }; })(), im = Bj(function (a, c, b, d) { jh(a, c, b, d); }), qd = Zd(function (a) { a.push(void 0, An); return zj(im, void 0, a); }), Cn = dm ? function (a) { for (var c = []; a; ) tj(c, vj(a)), (a = oj(a)); return c; } : ln, Xu = /\w*$/, za = {}; za["[object Arguments]"] = za["[object Array]"] = za["[object ArrayBuffer]"] = za["[object DataView]"] = za["[object Boolean]"] = za["[object Date]"] = za["[object Float32Array]"] = za["[object Float64Array]"] = za[ "[object Int8Array]" ] = za["[object Int16Array]"] = za["[object Int32Array]"] = za["[object Map]"] = za["[object Number]"] = za["[object Object]"] = za["[object RegExp]"] = za["[object Set]"] = za["[object String]"] = za["[object Symbol]"] = za[ "[object Uint8Array]" ] = za["[object Uint8ClampedArray]"] = za["[object Uint16Array]"] = za["[object Uint32Array]"] = !0; za["[object Error]"] = za["[object Function]"] = za["[object WeakMap]"] = !1; var AA = Bj(function (a, c, b) { jh(a, c, b); }), BA = zf && 1 / Of(new zf([, -0]))[1] == Qf ? function (a) { return new zf(a); } : $u, CA = Zd(function (a) { if (!a || !a.length) return []; var c = 0; a = pj(a, function (b) { if (Tf(b)) return (c = gh(b.length, c)), !0; }); return qj(c, function (b) { return Vd(a, on(b)); }); }), Fn = Ji ? Ji.isConcatSpreadable : void 0, DA = Zd(function (a, c) { if (null == a) return []; var b = c.length; 1 < b && ih(a, c[0], c[1]) ? (c = []) : 2 < b && ih(c[0], c[1], c[2]) && (c = [c[0]]); return cv(a, lh(c, 1), []); }), EA = Li.splice, FA = Li.join, GA = Li.reverse, HA = Zd(function (a, c) { if (Tf(a)) { c = lh(c, 1, Tf, !0); var b = -1, d = kh, e = !0, f = a.length, g = [], h = c.length; if (f) a: for (200 <= c.length && ((d = hn), (e = !1), (c = new Td(c))); ++b < f; ) { var k = a[b], l = k; k = 0 !== k ? k : 0; if (e && l === l) { for (var m = h; m--; ) if (c[m] === l) continue a; g.push(k); } else d(c, l, void 0) || g.push(k); } a = g; } else a = []; return a; }), qs = Math.min, IA = Zd(function (a) { var c = Vd(a, dv); if (c.length && c[0] === a[0]) { a = c[0].length; for (var b = c.length, d = b, e = Array(b), f = Infinity, g = []; d--; ) { var h = c[d]; f = qs(h.length, f); e[d] = 120 <= a && 120 <= h.length ? new Td(d && h) : void 0; } h = c[0]; var k = -1, l = e[0]; a: for (; ++k < a && g.length < f; ) { var m = h[k], n = m; m = 0 !== m ? m : 0; if (l ? !l.has(n) : !kh(g, n, void 0)) { for (d = b; --d; ) { var p = e[d]; if (p ? !p.has(n) : !kh(c[d], n, void 0)) continue a; } l && l.push(n); g.push(m); } } c = g; } else c = []; return c; }), JA = (function (a) { return tn(sn(a, void 0, fv), a + ""); })(function (a, c) { var b = {}; if (null == a) return b; var d = !1; c = Vd(c, function (b) { b = eh(b, a); d || (d = 1 < b.length); return b; }); Yd(a, Dn(a), b); d && (b = Uf(b, 7, ev)); for (var e = c.length; e--; ) Gn(b, c[e]); return b; }), ea = function (a, c) { return (Za(a) ? pj : vu)(a, Xd(c)); }, S = wA, id = zA, qa = function (a) { return Uf(a, 4); }, yf = function (a) { return Uf(a, 5); }, A = AA, w = function (a, c) { return (Za(a) ? Bn : ah)(a, Fj(c)); }, B = function (a, c) { return (Za(a) ? Vd : En)(a, Xd(c)); }, jm = function (a, c, b) { var d = Za(a) ? Ej : Yu, e = 3 > arguments.length; return d(a, Xd(c), b, e, ah); }, $a = function (a) { if (a && a.length) a: { var c = -1, b = kh, d = a.length, e = !0, f = []; if (200 <= d) { if ((b = BA(a))) { a = Of(b); break a; } e = !1; b = hn; var g = new Td(); } else g = f; b: for (; ++c < d; ) { var h = a[c], k = h; h = 0 !== h ? h : 0; if (e && k === k) { for (var l = g.length; l--; ) if (g[l] === k) continue b; f.push(h); } else b(g, k, void 0) || (g !== f && g.push(k), f.push(h)); } a = f; } else a = []; return a; }, ad = function (a) { if (a && a.length) { for (var c = -1, b = a.length, d = 0, e = []; ++c < b; ) { var f = a[c], g = f; if (!c || !Pd(g, h)) { var h = g; e[d++] = 0 === f ? 0 : f; } } a = e; } else a = []; return a; }, oh = Ke, Qn = function (a, c) { return null == a ? a : Dj(a, Fj(c), $d); }, Co = CA, sa = DA, Af = function (a, c) { var b = []; if (!a || !a.length) return b; var d = -1, e = [], f = a.length; for (c = Xd(c); ++d < f; ) { var g = a[d]; c(g, d, a) && (b.push(g), e.push(d)); } c = a ? e.length : 0; for (d = c - 1; c--; ) if (((f = e[c]), c == d || f !== h)) { var h = f; Yg(f) ? EA.call(a, f, 1) : Gn(a, f); } return b; }, gc = IA, pc = function (a, c) { return null == a ? "" : FA.call(a, c); }, yg = function (a, c, b) { var d = null == a ? 0 : a.length; if (!d) return []; b && "number" != typeof b && ih(a, c, b) ? ((c = 0), (b = d)) : ((c = null == c ? 0 : Oe(c)), (b = void 0 === b ? d : Oe(b))); return Hj(a, c, b); }, Gq = function (a) { return null == a ? a : GA.call(a); }, me = HA, ob = function (a, c) { a = Oe(a); if (1 > a || 9007199254740991 < a) return []; var b = 4294967295, d = qs(a, 4294967295); c = Fj(c); a -= 4294967295; for (d = qj(d, c); ++b < a; ) c(b); return d; }, Ga = JA, ja = Za, nb = function (a) { return "number" == typeof a || (Pc(a) && "[object Number]" == ud(a)); }, ub = function (a) { if (null == a) return !0; if (vd(a) && (Za(a) || "string" == typeof a || "function" == typeof a.splice || Me(a) || Zg(a) || Le(a))) return !a.length; var c = wc(a); if ("[object Map]" == c || "[object Set]" == c) return !a.size; if ($g(a)) return !fn(a).length; for (var b in a) if (qb.call(a, b)) return !1; return !0; }, Hg = function (a, c, b) { a = Ke(a); b = null == b ? 0 : Ij(Oe(b), 0, a.length); c = Mf(c); return a.slice(b, b + c.length) == c; }, zq = function () { var a = arguments, c = Ke(a[0]); return 3 > a.length ? c : c.replace(a[1], a[2]); }, Gd = function (a, c, b) { if ((a = Ke(a)) && (b || void 0 === c)) return a.replace(qn, ""); if (!a || !(c = Mf(c))) return a; a = a.split(""); c = c.split(""); b = -1; for (var d = a.length; ++b < d && -1 < Gj(c, a[b], 0); ); for (d = a.length; d-- && -1 < Gj(c, a[d], 0); ); c = d + 1; d = a.length; c = void 0 === c ? d : c; return (!b && c >= d ? a : Hj(a, b, c)).join(""); }, Mg = function (a, c, b) { a = Ke(a); c = Mf(c); var d = a.length; d = b = void 0 === b ? d : Ij(Oe(b), 0, d); b -= c.length; return 0 <= b && a.slice(b, d) == c; }, oa = function (a) { if (a && a.length) { for (var c = -1, b = a.length; ++c < b; ) { var d = a[c], e = d; if (null != e && (void 0 === f ? e === e && !Ud(e) : e > f)) var f = e, g = d; } a = g; } else a = void 0; return a; }, Ta = function (a) { return a && a.length ? Hn(a, Wd) : 0; }, Do = function (a) { var c = null == a ? 0 : a.length; return c ? Hn(a, Wd) / c : yj; }, ua = function (a, c, b) { void 0 === b && ((b = c), (c = void 0)); void 0 !== b && ((b = fh(b)), (b = b === b ? b : 0)); void 0 !== c && ((c = fh(c)), (c = c === c ? c : 0)); return Ij(fh(a), c, b); }, Jn = function (a, c) { return a.id || c; }, Ha = Number.isNaN || gv, iv = /function ([^\(]+)/, hv = Array.prototype.concat, wd = Object.prototype.hasOwnProperty, Xe = function (a) { for (var c = [], b = 1; b < arguments.length; b++) c[b - 1] = arguments[b]; return w(c, function (b) { return t(b) && a.push(b); }); }, km = {}, Ni = function (a, c) { var b = !1, d, e, f = function () { b ? ((d = arguments), (e = this)) : (a.apply(this, arguments), (b = !0), (f.timeoutId = setTimeout(function () { b = !1; d && (f.apply(e, d), (d = e = null)); }, c))); }; f.cancel = function () { clearTimeout(f.timeoutId); b = !1; }; return f; }, Rb = function (a, c, b, d) { b = b || function () { for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a]; return JSON.stringify(b); }; a = a || Nn(c); return KA(a, c, b, d); }, KA = function (a, c, b, d) { return function () { for (var e = [], f = 0; f < arguments.length; f++) e[f] = arguments[f]; if (0 < e.length) { km.hasOwnProperty(a) || Object.defineProperty(km, a, { configurable: !1, enumerable: !1, writable: !1, value: {} }); f = km[a]; var g = b.apply(this, e); d && (g += b.apply(this, d(this))); if (f.hasOwnProperty(g)) var h = f[g]; else (h = c.apply(this, e)), (f[g] = h); } return h; }; }, rs = function () { try { return window.localStorage.setItem("test", "test"), window.localStorage.removeItem("test"), !0; } catch (a) { return !1; } }, ss = function (a, c, b) { return function () { for (var d = [], e = 0; e < arguments.length; e++) d[e] = arguments[e]; if (0 < d.length) { e = Nn(a) + c.apply(this, d); if (!b) var f = (f = window.localStorage.getItem(e)) && JSON.parse(f); if (!f || b) (f = a.apply(this, d)), window.localStorage.setItem(e, JSON.stringify(f)); } return f; }; }, kv = /[-]{0,1}[\d]*[\.]{0,1}[\d]+/g, hb = function (a, c) { return t(a) ? a.pop ? a.map(function (b) { return hb(b, c); }) : c(a) : a; }, lv = /([a-zA-Z]+)_/g, LA = Object.freeze({ __proto__: null, def: t, has: J, removeArrItem: pb, evalPath: C, epa: N, getValType: I, isNull: an, mergeCollections: Ub, noop: xc, noopRet: Gb, contains: ae, caseInsensitiveProperty: mh, eachKey: Da, extend: L, extendCopy: W, copy: Oa, extendScoped: Na, extendScopedNegate: Sc, extendCopyScopedNegate: be, extendCopyScoped: Pe, exclude: Hb, plainArray: fa, concatArrays: Tc, plainCommaSplitedString: Jj, arraySum: Kj, plainToArray: function (a) { var c = [], b; for (b in a) c.push(a[b]); return c; }, last: P, copyIfChanged: function (a, c) { var b = {}, d = !1, e; for (e in c) d || (wd.call(a, e) && a[e] === c[e]) || (d = !0), (b[e] = c[e]); return d ? b : null; }, changesWithExtend: Lj, pick: z, attr: function (a, c, b) { var d, e; if (O(c)) t(b) ? a.setAttribute(c, b) : a && a.getAttribute && (e = a.getAttribute(c)); else if (t(c) && Pa(c)) for (d in c) a.setAttribute(d, c[d]); return e; }, isString: O, isObject: Pa, isUndefined: Q, isUndefinedOrNull: lc, keys: pa, keysFlatten: Kn, detect: yc, detectKey: Ln, pickPaths: function (a, c) { var b, d; w(c, function (c) { if ((d = C(a, c))) return (b = d), !1; }); return b; }, pluckPaths: Mj, setPathVal: Z, setPathValArr: Vf, applySetting: zc, applySettingArr: Mn, findInArrSimple: nh, compareArrays: Qe, pushDef: Xe, throttle: Ni, Memoize: Rb, localStorageAvailable: rs, evalString: Nj, fromLocalStorage: ss, kebabCase: On, split: Re, eachCommaSplited: Ib, parseNumber: function (a) { return Number(a); }, parseMargin: Ac, extractNumbers: Oj, mapRange: Pn, mapDeep: hb, expandOptionsProperties: Sa, sign: ce, isNaN: Ha, isPlainObject: Wg, filter: ea, find: S, findIndex: Sf, defaults: id, defaultsDeep: qd, clone: qa, cloneDeep: yf, merge: A, mergeWith: im, each: w, map: B, reduce: jm, uniq: $a, sortedUniq: ad, toString: oh, forIn: Qn, zip: Co, sortBy: sa, remove: Af, intersection: gc, join: pc, slice: yg, reverse: Gq, difference: me, times: ob, omit: Ga, isArray: ja, isEqual: function (a, c) { return vc(a, c); }, isFunction: Fb, isNumber: nb, isEmpty: ub, startsWith: Hg, replace: zq, trim: Gd, endsWith: Mg, max: oa, sum: Ta, mean: Do, clamp: ua, }), Vb = Math, MA = Number.MAX_VALUE, lm = Math.floor, ts = function (a, c, b) { void 0 === b && (b = 0); return Sj(na(a, b), na(c, b)); }, Yf = function (a) { a = "" + Math.abs(a); for (var c = a.length - 1, b = c, d = a[b]; d && "." !== d; ) d = a[--b]; return -1 === b ? 0 : c - b; }, Tj = 1 / Math.pow(10, 6), NA = function (a, c) { var b, d = []; try { for (var e = ya(a), f = e.next(); !f.done; f = e.next()) { var g = f.value; d.push([la(g, c), g]); } } catch (k) { var h = { error: k }; } finally { try { f && !f.done && (b = e.return) && b.call(e); } finally { if (h) throw h.error; } } d = sa(d, function (b) { return b[0]; }); return a.length && d[0][1]; }, Rk = /^-?\d+\.?\d*$/, us = String.fromCharCode(160), OA = us + "\u2013" + us, Bf = function (a) { return a && a.toLowerCase ? a.toLowerCase() : a; }, vb = function (a, c) { return a && -1 < a.indexOf(c); }, vs = function (a) { return t(a) && "function" === typeof a.pop && 2 === a.length ? a.join(OA) : a.pop ? a.join(", ") : a; }, Ir = function (a, c, b) { void 0 === b && (b = "\u2026"); return a.length > c ? a.substr(0, c) + b : a; }, cl = Math.pow, ws = function (a, c) { return a - Math.floor(a / c) * c; }, fe = function (a, c) { return c > a[0] && c < a[1]; }, Kb = function (a, c) { return c >= a[0] && c <= a[1]; }, $n = function (a, c) { return Kb(a, c[0]) && Kb(a, c[1]); }, xf = function (a, c) { return c.length ? [a[0] + c[0], a[1] - c[1]] : [a[0] + c, a[1] - c]; }, Ve = function (a) { return a[1] < a[0] ? [a[1], a[0]] : a; }, Wa = function (a) { return a[1] + a[3]; }, Va = function (a) { return a[0] + a[2]; }, yd = function (a) { return a[1]; }, xd = function (a) { return a[0]; }, Vc = function (a) { return a[0] + a[2] / 2; }, Wc = function (a) { return a[1] + a[3] / 2; }, nc = { b: Wa, t: yd, c: Vc, l: xd, r: Va, m: Wc, intop: [yd, yd, "top"], outtop: [Wa, yd, "bottom"], inbottom: [Wa, Wa, "bottom"], outbottom: [yd, Wa, "top"], inmiddle: [Wc, Wc, "middle"], outmiddle: [Wc, Wc, "middle"], inleft: [xd, xd, "left"], outleft: [Va, xd, "right"], inright: [Va, Va, "right"], outright: [xd, Va, "left"], incenter: [Vc, Vc, "center"], outcenter: [Vc, Vc, "center"], default: function (a, c) { a = a.toLowerCase(); return 4 == a.length ? [nc[a[1]], nc[a[3]], nc[a[0]], nc[a[2]]] : nc[a] || nc[c]; }, x: function (a) { return nc.default(a, "incenter"); }, y: function (a) { return nc.default(a, "inmiddle"); }, }, ge = { left: xd, right: Va, center: Vc, top: yd, middle: Wc, bottom: Wa, default: function (a, c) { return ge[a.toLowerCase()] || c; }, x: function (a) { return ge.default(a, Vc); }, y: function (a) { return ge.default(a, Wc); }, }, PA = function (a) { var c = a[0], b = a[1], d = Va(a), e = Wa(a), f = Vc(a), g = Wc(a); return function (a) { return { tl: [c, b], tr: [d, b], tm: [f, b], bl: [c, e], br: [d, e], bm: [f, e], lm: [c, g], rm: [d, g] }[a.toLowerCase()]; }; }, ie = function (a, c) { a = PA(a); c = c.split(","); return B(c, a); }, xs = Va, ys = Wa, ko = function (a) { return "M" + a[0] + " " + a[1] + " h" + a[2] + " v" + a[3] + " h" + -a[2] + " Z"; }, Yb = function (a) { return [a[0], a[1], Va(a), Wa(a)]; }, Ze = function (a) { return [a[0], a[1], a[2] - a[0], a[3] - a[1]]; }, zs = function (a) { return [ [a[0], Va(a)], [a[1], Wa(a)], ]; }, Xc = function (a, c) { return mm(a.slice(0), c); }, mm = function (a, c) { a[0] += c[0]; a[1] += c[1]; return a; }, T = window, ba = document, QA = "performance" in window && "now" in performance ? performance : { offset: Date.now(), now: function () { return Date.now() - this.offset; }, }, nm = window.navigator.userAgent.toLowerCase(), kk = null, jk = null, om = [ { name: "winphone", value: "Windows Phone" }, { name: "win", value: "Win" }, { name: "iphone", value: "iPhone" }, { name: "ipad", value: "iPad" }, { name: "kindle", value: "Silk" }, { name: "android", value: "Android" }, { name: "blackberry", value: "BlackBerry" }, { name: "macintosh", value: "Mac" }, { name: "linux", value: "Linux" }, ], Oi = (function () { var a; for (a = 0; a < om.length; a += 1) if (new RegExp(om[a].value, "i").test(nm)) return om[a].name; return "unknown"; })(), RA = "ipad" === Oi || "iphone" === Oi, SA = function () { var a, c = ["ms", "moz", "webkit", "o"], b = 0; try { for (var d = ya(c), e = d.next(); !e.done; e = d.next()) { var f = e.value; T.requestAnimationFrame = T[f + "RequestAnimationFrame"]; T.cancelAnimationFrame = T[f + "CancelAnimationFrame"] || T[f + "CancelRequestAnimationFrame"]; } } catch (h) { var g = { error: h }; } finally { try { e && !e.done && (a = d.return) && a.call(d); } finally { if (g) throw g.error; } } T.requestAnimationFrame || (T.requestAnimationFrame = function (a) { var c = QA.now(), d = Math.max(0, 16 - (c - b)); b = c + d; return T.setTimeout(function () { return a(b); }, d); }); T.cancelAnimationFrame || (T.cancelAnimationFrame = function (b) { return clearTimeout(b); }); }; T.requestAnimationFrame || SA(); var Ka; (function (a) { a[(a.None = 0)] = "None"; a[(a.Currency = 1)] = "Currency"; a[(a.Number = 2)] = "Number"; a[(a.Decimal = 3)] = "Decimal"; a[(a.Exponential = 4)] = "Exponential"; a[(a.Float = 5)] = "Float"; a[(a.General = 6)] = "General"; a[(a.Hexadecimal = 7)] = "Hexadecimal"; a[(a.Percent = 8)] = "Percent"; a[(a.NumericSymbol = 9)] = "NumericSymbol"; a[(a.PowersOfTen = 10)] = "PowersOfTen"; })(Ka || (Ka = {})); var As = ["k", "M", "B", "T", "Q"], Mv = /^[A-z]+/, Nv = /[0-9]+/, Tv = /(d{1,4}|f{1,7}|F{1,7}|gg?|K|hh?|HH?|mm?|M{1,4}|ss?|tt?|y{1,4}|z{1,3}|S)/gm, TA = /^([a-zA-Z]*)([_\-a-zA-Z]*)$/, Bs = function (a) { return O(a) ? a : a.formatString + a.currency; }, Cs = function (a) { return O(a) ? a : a.formatString + a.timeZone + a.month + a.day + a.year + a.hour + a.minute + a.second + a.weekday; }, UA = function (a, c) { return (a || "").toString() + (c ? Bs(c) : ""); }, VA = function (a, c) { return (a ? a : "") + (c ? Bs(c) : ""); }, WA = function (a, c) { return (a || "").toString() + (c ? Cs(c) : ""); }, XA = function (a, c) { return (a ? a : "") + (c ? Cs(c) : ""); }, pm = { year: "numeric", month: "numeric", day: "numeric" }, Pi = { weekday: "long", year: "numeric", month: "long", day: "numeric" }, qm = { hour: "2-digit", minute: "2-digit" }, Qi = { hour: "2-digit", minute: "2-digit", second: "2-digit" }, Ds = { month: "long", day: "numeric" }, Es = { month: "long", year: "numeric" }, Zb = function (a, c) { void 0 === c && (c = 2); for (a = a.toString(); a.length < c; ) a = "0" + a; return a; }, Ri = function (a, c) { void 0 === c && (c = 2); for (a = a.toString(); a.length < c; ) a += "0"; return a; }, $b = { d: function (a) { return a.getDate().toString(); }, dd: function (a) { return Zb(a.getDate(), 2); }, ddd: function (a, c) { return c.format(a); }, dddd: function (a, c) { return c.format(a); }, f: function (a) { return Math.round(a.getMilliseconds() / 100).toString(); }, ff: function (a) { return Math.round(a.getMilliseconds() / 10).toString(); }, fff: function (a) { return a.getMilliseconds().toString(); }, ffff: function (a) { return Ri($b.fff(a), 4); }, fffff: function (a) { return Ri($b.fff(a), 5); }, ffffff: function (a) { return Ri($b.fff(a), 6); }, fffffff: function (a) { return Ri($b.fff(a), 7); }, F: function (a) { return (a = a.getMilliseconds()) ? Math.round(a / 100).toString() : ""; }, FF: function (a) { return (a = a.getMilliseconds()) ? Math.round(a / 10).toString() : ""; }, FFF: function (a) { return (a = a.getMilliseconds()) ? Math.round(a).toString() : ""; }, FFFF: function (a) { return $b.FFF(a); }, FFFFF: function (a) { return $b.FFF(a); }, FFFFFF: function (a) { return $b.FFF(a); }, FFFFFFF: function (a) { return $b.FFF(a); }, g: function (a, c) { return c.format(a); }, gg: function (a, c) { return c.format(a); }, h: function (a, c) { return c.format(a).replace(/\D/g, ""); }, hh: function (a, c) { return Zb(c.format(a).replace(/\D/g, ""), 2); }, H: function (a) { return a.getHours().toString(); }, HH: function (a) { return Zb(a.getHours(), 2); }, K: function (a) { return a.getTimezoneOffset() ? $b.zzz(a) : "Z"; }, m: function (a) { return a.getMinutes().toString(); }, mm: function (a) { return Zb(a.getMinutes(), 2); }, M: function (a) { return (a.getMonth() + 1).toString(); }, MM: function (a) { return Zb(a.getMonth() + 1, 2); }, MMM: function (a, c) { return c.format(a); }, MMMM: function (a, c) { return c.format(a); }, s: function (a) { return a.getSeconds().toString(); }, ss: function (a) { return Zb(a.getSeconds(), 2); }, t: function (a, c) { return $b.tt(a, c).substring(0, 1); }, tt: function (a, c) { return c.format(a).replace(/\d/g, "").trim(); }, y: function (a) { a = a.getFullYear().toString(); return parseInt(a.substring(a.length - 2)).toString(); }, yy: function (a) { a = a.getFullYear().toString(); return a.substring(a.length - 2).toString(); }, yyy: function (a) { a = a.getFullYear(); return Zb(a, 3); }, yyyy: function (a) { a = a.getFullYear(); return Zb(a, 4); }, yyyyy: function (a) { a = a.getFullYear(); return Zb(a, 5); }, z: function (a) { a = Fs(a); return (0 < a ? "+" : "-") + Math.abs(a); }, zz: function (a) { a = Fs(a); return (0 < a ? "+" : "-") + Zb(Math.abs(a), 2); }, zzz: function (a) { return $b.zz(a) + ":" + Zb(a.getMinutes() - a.getUTCMinutes(), 2); }, }, Fs = function (a) { a = a.getHours() - a.getUTCHours(); 12 < Math.abs(a) && (a -= 24 * ce(a)); return a; }, Qv = { D: { options: Pi }, d: { options: pm }, F: { options: W(Pi, Qi) }, f: { options: W(Pi, qm) }, T: { options: Qi }, t: { options: qm }, g: { options: W(pm, qm) }, G: { options: W(pm, Qi) }, m: { options: Ds }, M: { options: Ds }, y: { options: Es }, Y: { options: Es }, u: { formatString: "yyyy-MM-dd HH:mm:ssZ" }, U: { options: W({ timeZone: "UTC" }, W(Pi, Qi)) }, s: { formatString: "yyyy-MM-ddTHH:mm:ss" }, r: { handler: function (a) { return a.toUTCString(); }, }, R: { handler: function (a) { return a.toUTCString(); }, }, }, Ng = (function () { function a(a, b) { var c = this; void 0 === b && (b = {}); this.locale = a; this.options = b; this.dateTimeFormatters = {}; this.setLocale = function (b) { c.locale !== b && (c.locale = b); }; this.formatDate = function (b, a) { return c._formatDate(b, a, c); }; this.formatNumber = function (b, a) { return c._formatNumber(b, a, c); }; this._getDateTimeFormat = Rb("getDateTimeFormat", Iv, XA); this._getNumberFormat = Rb("getNumberFormat", Jv, VA); this._getCollator = Rb("getCollator", Kv); this._formatDate = Rb("formatDate", Pv, WA, function (b) { return [b.locale, b.options]; }); this._formatNumber = Rb("formatNumber", Lv, UA, function (b) { return [b.locale, b.options]; }); this.formatString = this.options.formatString; } a.prototype.compare = function (a, b) { var c = this._getCollator(this.locale, this.options); return c ? c.compare(a, b) : a === b; }; return a; })(), YA = /_|-/g, Rv = function (a) { var c = a.split(YA); a = 1 < c.length ? c.pop() : a; a = a.toUpperCase(); return a in Gs ? Gs[a] : "USD"; }, Gs = { AD: "EUR", AE: "AED", AF: "AFN", AG: "XCD", AI: "XCD", AL: "ALL", AM: "AMD", AN: "ANG", AO: "AOA", AR: "ARS", AS: "USD", AT: "EUR", AU: "AUD", AW: "AWG", AX: "EUR", AZ: "AZN", BA: "BAM", BB: "BBD", BD: "BDT", BE: "EUR", BF: "XOF", BG: "BGN", BH: "BHD", BI: "BIF", BJ: "XOF", BL: "EUR", BM: "BMD", BN: "BND", BO: "BOB", BQ: "USD", BR: "BRL", BS: "BSD", BT: "BTN", BV: "NOK", BW: "BWP", BY: "BYR", BZ: "BZD", CA: "CAD", CC: "AUD", CD: "CDF", CF: "XAF", CG: "XAF", CH: "CHF", CI: "XOF", CK: "NZD", CL: "CLP", CM: "XAF", CN: "CNY", CO: "COP", CR: "CRC", CU: "CUP", CV: "CVE", CW: "ANG", CX: "AUD", CY: "EUR", CZ: "CZK", DE: "EUR", DJ: "DJF", DK: "DKK", DM: "XCD", DO: "DOP", DZ: "DZD", EC: "USD", EE: "EUR", EG: "EGP", EH: "MAD", ER: "ERN", ES: "EUR", ET: "ETB", FI: "EUR", FJ: "FJD", FK: "FKP", FM: "USD", FO: "DKK", FR: "EUR", GA: "XAF", GB: "GBP", GD: "XCD", GE: "GEL", GF: "EUR", GG: "GBP", GH: "GHS", GI: "GIP", GL: "DKK", GM: "GMD", GN: "GNF", GP: "EUR", GQ: "XAF", GR: "EUR", GS: "GBP", GT: "GTQ", GU: "USD", GW: "XOF", GY: "GYD", HK: "HKD", HM: "AUD", HN: "HNL", HR: "HRK", HT: "HTG", HU: "HUF", ID: "IDR", IE: "EUR", IL: "ILS", IM: "GBP", IN: "INR", IO: "USD", IQ: "IQD", IR: "IRR", IS: "ISK", IT: "EUR", JE: "GBP", JM: "JMD", JO: "JOD", JP: "JPY", KE: "KES", KG: "KGS", KH: "KHR", KI: "AUD", KM: "KMF", KN: "XCD", KP: "KPW", KR: "KRW", KW: "KWD", KY: "KYD", KZ: "KZT", LA: "LAK", LB: "LBP", LC: "XCD", LI: "CHF", LK: "LKR", LR: "LRD", LS: "LSL", LT: "LTL", LU: "EUR", LV: "LVL", LY: "LYD", MA: "MAD", MC: "EUR", MD: "MDL", ME: "EUR", MF: "EUR", MG: "MGA", MH: "USD", MK: "MKD", ML: "XOF", MM: "MMK", MN: "MNT", MO: "MOP", MP: "USD", MQ: "EUR", MR: "MRO", MS: "XCD", MT: "EUR", MU: "MUR", MV: "MVR", MW: "MWK", MX: "MXN", MY: "MYR", MZ: "MZN", NA: "NAD", NC: "XPF", NE: "XOF", NF: "AUD", NG: "NGN", NI: "NIO", NL: "EUR", NO: "NOK", NP: "NPR", NR: "AUD", NU: "NZD", NZ: "NZD", OM: "OMR", PA: "PAB", PE: "PEN", PF: "XPF", PG: "PGK", PH: "PHP", PK: "PKR", PL: "PLN", PM: "EUR", PN: "NZD", PR: "USD", PS: "ILS", PT: "EUR", PW: "USD", PY: "PYG", QA: "QAR", RE: "EUR", RO: "RON", RS: "RSD", RU: "RUB", RW: "RWF", SA: "SAR", SB: "SBD", SC: "SCR", SD: "SDG", SE: "SEK", SG: "SGD", SH: "SHP", SI: "EUR", SJ: "NOK", SK: "EUR", SL: "SLL", SM: "EUR", SN: "XOF", SO: "SOS", SR: "SRD", ST: "STD", SV: "SVC", SX: "ANG", SY: "SYP", SZ: "SZL", TC: "USD", TD: "XAF", TF: "EUR", TG: "XOF", TH: "THB", TJ: "TJS", TK: "NZD", TL: "USD", TM: "TMT", TN: "TND", TO: "TOP", TR: "TRY", TT: "TTD", TV: "AUD", TW: "TWD", TZ: "TZS", UA: "UAH", UG: "UGX", UM: "USD", US: "USD", UY: "UYU", UZ: "UZS", VA: "EUR", VC: "XCD", VE: "VEF", VG: "USD", VI: "USD", VN: "VND", VU: "VUV", WF: "XPF", WS: "WST", YE: "YER", YT: "EUR", ZA: "ZAR", ZM: "ZMK", ZW: "ZWL", }, Hs = function (a) { var c = 1e4 <= a; a = c ? Math.ceil(Math.log(a) / Math.log(1e3)) - 1 : 0; a = Math.min(5, a); return c ? [a, As[a - 1] || ""] : [0, ""]; }, Sv = function (a, c) { var b = ""; if (c && a) { var d = a / Math.pow(1e3, c); b = As[c - 1]; } else 1e4 <= Math.abs(a) && ((d = G(Hs(a), 2)), (c = d[1]), (d = a / Math.pow(1e3, d[0])), (b = c)); return (d || a) + b; }, Si = function (a, c, b) { void 0 === b && (b = "en-US"); var d = I(a), e = "object" === typeof c; b = new Ng(b, e ? c : {}); return "date" === d ? b.formatDate(a, e ? {} : c) : b.formatNumber(a, e ? {} : c); }, Is = function (a) { var c; if ((c = a)) (c = TA.exec(a)), (c = a && c ? (a = c[1]) && a.toLowerCase() : void 0); if ((a = c)) return !!~ZA.indexOf(a); }, ZA = "ae ar arc bcc bqi ckb dv fa glk he ku mzn nqo pnb ps sd ug ur yi".split(" "), Ma = { missed: {}, events: {}, on: function (a, c, b) { var d = this; (this.events[a] || (this.events[a] = [])).push({ fn: c, ctx: b }); this.missed[a] && this.missed[a].forEach(function (b) { return d.emit.apply(d, H([b.name], b.rest)); }); }, emit: function (a) { for (var c = [], b = 1; b < arguments.length; b++) c[b - 1] = arguments[b]; b = (this.events[a] || []).slice(); b.length ? b.forEach(function (b) { return b.fn.apply(b.ctx, c); }) : ((this.missed[a] || (this.missed[a] = [])).push({ name: a, rest: c }), "error" === a && T.console.error("JSCharting Error: Set chart option {debug:true} to view full error messages.")); }, un: function (a, c) { var b = this.events[a], d = []; if (b && c) for (var e = 0, f = b.length; e < f; e++) b[e].fn !== c && b[e].fn._ !== c && d.push(b[e]); d.length ? (this.events[a] = d) : delete this.events[a]; }, }, Ae = (function () { function a(a) { this.stack = {}; this._clearFn = (this._forAnimation = !0 === a) ? Hv : T.clearTimeout.bind(T); this._setFn = this._forAnimation ? Gv : T.setTimeout.bind(T); } a.prototype.defer = function (a, b, d) { var c = this.stack[a]; c ? (c.lastBounce = Date.now()) : (this.stack[a] = this.timeout(a, b, d)); }; a.prototype.clear = function (a) { var b = this.stack[a]; if (b) return this._clearFn(b.timer), delete this.stack[a], !0; }; a.prototype.has = function (a) { return !!this.stack[a]; }; a.prototype.run = function (a) { var b = this.stack[a]; if (b) return this._clearFn(b.timer), b.fn(), delete this.stack[a], !0; }; a.prototype.clearAll = function () { var a = this; Da(a.stack, function (b) { a.clear(b); }); }; a.prototype.timeout = function (a, b, d) { var c = this, f = c._setFn, g = { timer: null, start: Date.now(), fn: b, lastBounce: Date.now(), delay: d }; g.timer = f(function () { var e = Date.now(), f = g.lastBounce + d; e < f ? (c.stack[a] = c.timeout(a, b, f - e)) : (b.call(), delete c.stack[a]); }, d); return g; }; return a; })(), $A = (function () { function a() { this.items = {}; this._onReady = {}; } a.prototype.hold = function (a) { var b = de(6); this.holdItem(b, a); return b; }; a.prototype.release = function (a) { a && (delete this.items[a], this.isReady() && this.triggerFnQueue()); }; a.prototype.isReady = function () { return 0 === Object.keys(this.items).length; }; a.prototype.onReady = function (a, b) { this._onReady[a] = b; }; a.prototype.unReady = function (a) { delete this._onReady[a]; }; a.prototype.reset = function () { this.items = {}; this._onReady = {}; }; a.prototype.debug = function (a) {}; a.prototype.holdItem = function (a, b) { this.items[a] = b; }; a.prototype.triggerFnQueue = function () { var a = Object.keys(this._onReady), b = this._onReady; this._onReady = {}; for (var d = 0, e = a.length; d < e; d++) b[a[d]](); this._onReady = {}; }; return a; })(), aB = (function () { function a() { this.callCount = 0; } a.prototype.open = function () { this.callCount++; }; a.prototype.close = function () { this.callCount--; }; return a; })(), wb = (function (a) { function c(b, d) { d = a.call(this, b, d) || this; d.items = b; d.kindObject = c; return d; } K(c, a); c.prototype.options = function (b, a) { var c = this.items.length - 1; return this.each(function (d, e) { d.options(b, !1 === a || c !== e ? !1 : void 0); }); }; return c; })( (function () { function a(c, b) { this.items = c; this.currentOptions = b; this.kindObject = a; this.__collection__ = c.slice(0); } a.prototype.find = function (a) { return S(this.items, a); }; a.prototype.filter = function (a) { return this.wrap(ea(this.items, a)); }; a.prototype.each = function (a) { w(this.items, a); return this; }; a.prototype.sortBy = function (a) { return this.wrap(sa(this.items, a)); }; a.prototype.map = function (a) { return B(this.items, a); }; a.prototype.reverse = function () { return this.wrap(this.items.slice(0).reverse()); }; a.prototype.remove = function (a) { var b = []; w(this.items.slice(0), function (c) { c.remove ? c.remove(a) : b.push(c); }); this.items = b; return this; }; a.prototype.wrap = function (a) { if (a instanceof this.kindObject) return a; C(a, "__collection__"); return new this.kindObject(a); }; return a; })() ), Og = {}, Ti, Ui = "circle square triangle triangle-down diamond four-point-star arrow-down arrow-up five-point-star six-point-star seven-point-star".split(" "), Js = "x y z mapData complete completeX complete.y complete.x name subvalue subvalueX yAxisTick xAxisTick".split(" "), Cr = "color marker outline opacity label fill".split(" "), bB = ["selected", "muted"], Or = ["selected", "muted"], gb = { series: 0, body: 1, complete: 2, error: 3, marker: 4, breakPath: 5, labelConnector: 6, label: 7 }, nr = //i, cB = ((Ti = {}), (Ti[1] = function () { return { fill: "#f6f6f6", boxVisible: !0, outline: { width: 1 } }; }), (Ti[0] = function () { return { fill: "rgba(255, 255, 255, 0.5)", boxVisible: !1, outline: { width: 0 }, shadow: !1 }; }), Ti), Cf = function (a) { void 0 === a && (a = 0); return A({ radius: 5, padding: 3, label: { style: { color: "#323232" } }, outline: { color: "#bdbdbd" }, sortOrder: 1 }, cB[a]()); }, af = {}, Ks = { iphone: "ios", ipad: "ios", android: "android", winphone: "winphone" }, Wv = J(Ks, Oi) ? Ks[Oi] : "default", dg = null, $e = null, rm = ["class", "className", "style", "externalResourcesRequired"].concat( ["requiredFeatures", "requiredExtensions", "systemLanguage"], ["id", "xml:base", "xml:lang", "xml:space"], "onfocusin onfocusout onactivate onclick onmousedown onmouseup onmouseover onmousemove onmouseout onload".split(" "), "alignment-baseline baseline-shift clip clip-path clip-rule color color-interpolation color-interpolation-filters color-profile color-rendering cursor direction display dominant-baseline enable-background fill fill-opacity fill-rule filter flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-orientation-horizontal glyph-orientation-vertical image-rendering kerning letter-spacing lighting-color marker-end marker-mid marker-start mask opacity overflow pointer-events shape-rendering stop-color stop-opacity stroke stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-align background-color border text-decoration text-rendering unicode-bidi visibility word-spacing writing-mode user-select strokeWidth borderWidth border-width borderColor border-color fontStyle fontSize fontFamily fontWeight z-index zIndex clipPath shadow textDecoration tabindex".split( " " ), ["transform", "translate", "rotate", "scale"], ["aria-label", "role", "aria-hidden"] ), dB = rm.concat(rm, ["x", "y", "width", "height"]), Ls = fa(rm), Vi = fa(dB), fy = { borderColor: "stroke", "border-color": "stroke", strokeOpacity: "stroke-opacity", strokeWidth: "stroke-width", borderWidth: "stroke-width", "border-width": "stroke-width", className: "class", strokeDashArray: "stroke-dasharray", textRendering: "text-rendering", zIndex: "z-index", fontFamily: [ "fontFamily", function (a) { return a.toLowerCase(); }, ], description: "aria-label", }, eB = fa("transform radius translate scale z-index animation transition display rotate overflow clipPath opacity visibility tabindex role aria-label".split(" ")), fB = eg("d path pathLength shape hatch hatchPattern".split(" "), Ls), gB = eg(["src"], Vi), Ms = eg(["rx", "ry"], Vi), hB = eg(["radius"], Ms), iB = fa("id class translate transform rotate animation opacity z-index fill color display cursor tabindex aria-label".split(" ")), Pg = fa("stroke stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width".split(" ")), jB = eg(["fill", "fill-rule"], Pg), qk = 'A" AW AV Yt Hv Sp vo us fr Dv ry W. Vr LT T: ro xc Ak F" OC w; P, PA r, DY SR yo la wb Bc f? L" m" Xv c" lp Ix Oj YW RX f" VA a" Ku my ot e, il So T" F. FA D, Ru tt st CO Co gy Te w. OA bv fe Fw Xf cv XA YA UA D" aj am he bc VT r: xt 11 AT AY Av Aw Ay F, LV LW LY Ly P. RT RV RW RY T, T- T. T; TA TO Ta Tc Ti To Tr Ts Tu Tw Ty V, V- V. V: V; Va Ve Vi Vo Vu Vy W, W- W: W; WA Wa We Wo Wr Wu Wy Y, Y- Y. Y: Y; Ya Ye Yi Yo Yp Yq Yu Yv ff r. v, v. w, y, y. \'A -A -I -J -P -S -T -V -W -X -Y -Z -a -v -w -x -y -z .. ., .- A- AS AU At Au B, B. BT C- D. DT DW DX DZ F: F; Fa Fe Fo I- J, J. JA K- KO Ka Ke Ko Kv Kw Ky L\' L- LC LG LO Lv O, O. OT OX OY OZ Pa Pe Po Q, Q. R- Ra Re Ro Ry S, S. SA SS Sv Sw Sy TC TG TS TT Tg Tv Tz U, U. X- XC XG XO Xa Xe Xo Xu Xy YO Yd Yg Ym Yn Yr Ys Z- ZC ZG ZO ZZ Za Ze Zo Zw Zy av aw ay b, b. by c- cT eT f, f- f. fy hv hw hy k- ke ko mv mw nv nw ny o, o. ov ox oy p, p. py r- ra t- ty v- va ve w- wa x- xd xe xg xo y- ya yc yd ye yg yq z- zc zd ze zg zo zq Ki Kn Ph Pi Pr Wi AC AG AO AQ BA BU DA DV Fr Ja Je Jo Ju Jy KC KG LU Lw NA OV OW QT QV QY RC RG RO RQ RU TQ Tm VC VG VO VQ WC WG WO Wd YC YG YS at ch ck cl cy eb ev ex fa fo ow pw sw vc vd vq wc wd we wo wq 24 37 41 47 51 52 57 62 67 74 ET KQ KS LQ LS P/ PJ T/ TJ TZ V/ VJ W/ WJ Y/ YJ Yc rg A) L) Pl Rv Td Tk Tl Tp Tq Tt Vl Vp Vs Vv Wl Wp Ws Wv Yl fi fk fl tz vl wl yl'.split( " " ), ok = ["AW", "Tw", "LW"], kB = String.fromCharCode(8206), xh = "a!\"#$%&\\'() * +,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[] ^ _`bcdefghijklmnopqrstuvwxyz{|}~".split("").concat( [169, 174, 160, 8482, 34, 38, 60, 62, 176, 8364, 185, 178, 179, 188, 189, 190, 177, 180, 183, 8230].map(function (a) { return String.fromCharCode(a); }) ), Ns = function (a, c) { return a.fontFamily + ("normal" !== a.fontWeight ? a.fontWeight || "" : "") + (c.fontFamily || "") + ("normal" !== c.fontWeight ? c.fontWeight || "" : ""); }, lB = function (a, c) { return Ns(a, c) + nm; }, tk, uk, Yv = Rb( "getMetrics", function (a, c) { var b = ba.createElementNS("http://www.w3.org/2000/svg", "svg"), d = rk("A"); c.fontFamily && b.setAttribute("font-family", c.fontFamily); a.fontFamily && d.setAttribute("font-family", a.fontFamily); d.setAttribute("font-size", "100px"); d.setAttribute("style", "line-height: normal;"); b.appendChild(d); ba.body.appendChild(b); a = d.getBBox ? d.getBBox() : { y: 0, height: 0 }; b.parentNode.removeChild(b); return { descent: (a.height + a.y) / 100, height: a.height / 100 }; }, function (a, c) { return a.fontFamily + (c.fontFamily || ""); } ), fg = Rb( "getTextMeasurement", function (a, c, b, d) { var e = c.fontSize, f = mB(c, b); a: if (f) { for (var g = 0, h = 0, k, l = 0, m = a.length; l < m; l++) { var n = a[l], p = f.stringWidths[n]; if (!p) if (n === kB) p = 0; else { d = null; break a; } g += sk(p, e); l && f.kerning && !d && ((k = sk(f.kerning[k + n] || 0, e)), (h += k)); k = n; } d = g - h; } else d = null; return null === d ? sk(pk([a], c, b)[a], e) : d; }, function (a, c, b, d) { return a + c.fontSize + c.fontFamily + c.fontStyle + c.fontWeight + b.fontSize + b.fontFamily + b.fontStyle + b.fontWeight + d; } ), nB = rs() ? function () { for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c]; return ss(yo, lB).apply(null, a); } : yo, mB = Rb("loadFontData", nB, Ns), Wi = Math.round, Ah = function (a) { return [a[0] / 255, a[1] / 255, a[2] / 255]; }, zo = function (a) { return [Wi(255 * a[0]), Wi(255 * a[1]), Wi(255 * a[2]), a[3]]; }, Mo = function (a) { return 0.2126 * a[0] + 0.7152 * a[1] + 0.0722 * a[2]; }, So = function (a, c, b) { a.pop && ((b = G(a, 3)), (a = b[0]), (c = b[1]), (b = b[2])); return Dc("yuv", No(Ah([a, c, b]))); }, No = function (a, c, b) { a.pop && ((b = G(a, 3)), (a = b[0]), (c = b[1]), (b = b[2])); return [Mo([a, c, b]), -0.09991 * a + -0.33609 * c + 0.436 * b, 0.615 * a + -0.55861 * c + -0.05639 * b]; }, oB = function (a) { for (var c = [], b = 1; b < arguments.length; b++) c[b - 1] = arguments[b]; c = Oo.apply(void 0, H([a], c)); return [255 * c[0], 255 * c[1], 255 * c[2]].map(Wi); }, Oo = function (a, c, b) { a.pop && ((b = G(a, 3)), (a = b[0]), (c = b[1]), (b = b[2])); return [ua(a + 5.8e-6 * c + 1.28033 * b, 0, 1), ua(a + -0.21482 * c + -0.38059 * b, 0, 1), ua(a + 2.12798 * c + 1.1e-5 * b, 0, 1)]; }, bw = ke("colors").members, Ao = {}, Bo = {}, Os = {}, vk = function (a) { var c = Os[a]; !c && (c = cf.hexColor.exec(a)) && ((c = [parseInt(c[1], 16), parseInt(c[2], 16), parseInt(c[3], 16)]), (Os[a] = c)); return c; }, cf = { rgba: /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/, rgb: /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/, hsl: /hsl\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*%,\s*([0-9]{1,3})\s*%\)/, hsla: /hsla\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})%\s*,\s*([0-9]{1,3})%\s*,\s*([0-9]?(?:\.[0-9]+)?)\)/, hexColor: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/, hexShort: /#([a-fA-F0-9]{1})([a-fA-F0-9]{1})([a-fA-F0-9]{1})/, }, pB = { r: 0, g: 1, b: 2, h: 0, s: 1, l: 2, a: 3, y: 0, u: 1, v: 2 }, Qg = { r: 255, g: 255, b: 255, h: 1, s: 1, l: 1, a: 1, y: 1, u: 0.5, v: 1 }, sm = { r: 0, g: 0, b: 0, h: 0, s: 0, l: 0, a: 0, y: 0, u: -0.5, v: 0 }, Ps = { lighten: "hsl(,,+.1)", lightenmore: "hsl(,,+.2)", darken: "hsv(,,-.1)", darkenmore: "hsv(,,-.2)", brighten: "hsl(,+.8,+.3)", desaturate: "hsl(-360,-1,)", complement: "hsl(%+180,,)", contrast: "yuv(+-.7,,)" }, Ek = function (a) { return Ps[O(a) && a.toLowerCase()] || null !== qB.exec(a); }, rB = /[-+*/%]*%?/, sB = { "+": function (a, c, b) { return a + c; }, "-": function (a, c, b) { return a - c; }, "*": function (a, c, b) { return a * c; }, "/": function (a, c, b) { return a / c; }, "%+": function (a, c, b) { return (a + c) % Qg[b]; }, "%-": function (a, c, b) { return (a - c) % Qg[b]; }, "+-": function (a, c, b) { c = Math.abs(c); return a + (a >= sm[b] + (Qg[b] - sm[b]) / 2 ? -c : c); }, }, qB = /[+\-*/%]/, Qs = { prefix: /(.{3,4})\(/, rgb: /rgb[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/, rgba: /rgba[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/, hsl: /hsl[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/, hsla: /hsla[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/, yuv: /yuv[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/, hsv: /hsv[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/, }, gg = function (a, c) { return Ch(c)(ca(a)); }, tm = {}, Ch = function (a) { a = a && a.toLowerCase(); if (!tm[a]) { a = Ps[a] || a; var c = (function () { var b, c = {}; if (Ek(a)) { if ((b = Qs.prefix.exec(a))) var d = b[1]; if ((b = Qs[d].exec(a))) var h = b.slice(1); for (b = 0; b < h.length; b++) { var k = rB.exec(h[b])[0]; c[d.charAt(b)] = h[b].length ? [sB[k], parseFloat(h[b].substr(1))] : []; } c.format = d; } return c; })(), b = []; 0 === c.format.indexOf("hsl") && b.push(bf); 0 === c.format.indexOf("yuv") && b.push(So); 0 === c.format.indexOf("hsv") && b.push($v); var d = 0 < b.length; b.push( (function () { var b = c.format, a = 0 === b.indexOf("hsl"), d = function (b) { var a = c[b], d = "h" === b ? 360 : 1, e = a[0], f = a[1], g = pB[b]; return function (a) { var c = e(a[g], f / d, b); c = "h" === b ? (c % Qg.h) * (0 > c ? -1 : 1) + (0 > c ? 1 : 0) : ua(c, sm[b], Qg[b]); a[g] = c; }; }, h = []; c.format.split("").forEach(function (b) { c[b].length && h.push(d(b)); }); return function (c) { h.forEach(function (b) { return b(c); }); a ? (c = bd.call.apply(bd, H([null], c))) : "yuv" === b ? (c = oB.call(null, c)) : "hsv" === b && (c = aw.call(null, c)); return ma(c, 4 === c.length ? "rgba" : "rgb"); }; })() ); tm[a] = function (a) { var c = ca(a); a = 0; for (c = d ? b[a++](c[0], c[1], c[2], c[3]) : c; a < b.length; ) c = b[a++](c); return c; }; } return tm[a]; }, ac = function (a, c, b) { return b * (c - a) + a; }, La = { crysDark: "crysDark", crysBright: "crysBright", hueEffect: "hueEffect", hover: "hover", select: "selected", outline: "outline", outlineContrast: "outlineContrast", label: "label", labelContrast: "labelContrast", seriesLine: "seriesLine", lightenDark: "lightenDark", currentColor: "currentColor", }, Fa = { gaugePolarBack: "gaugePolarBack", titleBox: "titleBox", box: "box", chartArea: "chartArea", altGridFillY: "altGridFillY", altGridFillX: "altGridFillX", altGridFillRad: "altGridFillRad", axisMarkerY: "axisMarkerY", axisMarkerX: "axisMarkerX", jsButton: "jsButton", jumpButton: "jumpButton", areaFill: "areaFill", navBar: "navBar", aqua: "aqua", rounded: "rounded", cushion: "cushion", subtle: "subtle", }, tB = pa(ke("palette").members), kw = B(tB, function (a) { return a.toLowerCase(); }), Xi = function (a) { return "hatch" === a ? ((a = ke("hatchStyle").members), delete a.none, pa(a)) : Fh(a); }, Rs = function (a, c) { var b = G(c, 2); c = b[1]; var d = []; b = 0 > b[0]; var e = function (b) { for (var a = 0; a < b.length; a++) if (-1 < d.indexOf(b[a])) return !0; }; if ("object" === I(a)) { d = pa(a); var f = e(["colors", "stops"]), g = e([, "ranges", "stops"]); } e = "#b00026 #bd0026 #e31a1c #fc4e2a #fd8d3c #feb24c #fed976 #ffeda0".split(" "); var h = "#edf8b0 #c7e9b4 #7fcdbb #41b6c3 #1d91c0 #225ea8 #253494 #081d58".split(" "), k = e.slice(0); k.push("#ffffff"); k.push.apply(k, H(h)); e.push("#ffffff"); h.unshift("#ffffff"); return A( { colors: f ? void 0 : g ? h : k, colorsValueRange: g ? void 0 : f && !b ? [0, c] : [-c, c], pointValue: function (b) { return b.currentOptions.z; }, }, a || {} ); }, ff = {}, rw = Jj("width,height,x,y"), Kr = function (a) { return "string" === typeof a ? B(a.split(","), parseFloat) : a; }, Hh, ep = (function () { function a(a, b) { this._callStack = []; var c = this; c._callback = b; a = Array.isArray(a) ? a : [a]; var e, f, g = function (b, a) { return function () { bp(b, function () { return a(); }); }; }; for ( b = function () { var b = f || c.loaded; f = g(e, function () { return b.call(c); }); }; (e = a.pop()); ) b(); f(); } a.prototype.then = function (a, b) { this._callStack.push([a, b]); return this; }; a.prototype.catch = function (a) { return this.then(null, a); }; a.prototype.loaded = function () { for (var a = this._callback(), b = -1, d = this._callStack.length; ++b < d; ) a = a.then.apply(a, this._callStack[b]); }; return a; })(), Ih, X = function (a) { return a.getMonth ? a : new Date(a); }, ed = function (a) { return X(a).getTime(); }, ww = z(0, 0), Ss = { weekday: [0, 6], dayofyear: [1, 365], minuteofday: [0, 1440] }, um = { years: 12, decade: 11, year: 10, quarter: 9, month: 8, week: 7, dayofyear: 6.2, day: 6.1, weekday: 6, hour: 3, minuteofday: 2.1, minute: 2, secondofhour: 1.1, second: 1 }, uB = [, "second", "minute", "hour", , , "day", "week", "month", "quarter", "year", "decade", "years"], Jh = { millisecond: 1, second: 1e3, minute: 6e4, hour: 36e5, day: 864e5, week: 6048e5, month: 24192e5, quarter: 72576e5, year: 314496e5, decade: 314496e6 }, vB = function (a) { return a; }, wB = [ [ ["year", 100], ["year", 50], ], [ ["year", 100], ["year", 25], ], [ ["year", 50], ["year", 25], ], [ ["year", 50], ["year", 10], ], [ ["year", 25], ["year", 5], ], [ ["year", 10], ["year", 5], ], [ ["year", 10], ["year", 2], ], [ ["year", 10], ["year", 1], ], [ ["year", 1], ["month", 6], ], [ ["year", 1], ["month", 3], ], [ ["year", 1], ["month", 1], ], [ ["month", 1], ["day", 15], ], [ ["month", 1], ["day", 5], ], [ ["month", 1], ["day", 2], ], [ ["month", 1], ["day", 1], ], [ ["day", 1], ["hour", 12], ], [ ["day", 1], ["hour", 6], ], [ ["day", 1], ["hour", 3], ], [ ["day", 1], ["hour", 1], ], [ ["hour", 1], ["minute", 30], ], [ ["hour", 1], ["minute", 15], ], [ ["hour", 1], ["minute", 10], ], [ ["hour", 1], ["minute", 5], ], [ ["hour", 1], ["minute", 1], ], [ ["minute", 1], ["second", 30], ], [ ["minute", 1], ["second", 10], ], [ ["minute", 1], ["second", 1], ], [ ["second", 1], ["millisecond", 500], ], [ ["second", 1], ["millisecond", 200], ], [ ["second", 1], ["millisecond", 100], ], [ ["second", 1], ["millisecond", 50], ], [ ["second", 1], ["millisecond", 10], ], [ ["second", 1], ["millisecond", 1], ], ], xB = B("year,getFullYear month,getMonth weekday,getDay day,getDate hour,getHours minute,getMinutes second,getSeconds millisecond,getMilliseconds".split(" "), function (a) { return a.split(","); }), Ts = (function () { var a = xB.slice(0); pb( a, S(a, function (a) { return "weekday" === a[0]; }) ); return a; })(), Us = {}, Lh = []; w(Ts, function (a, c) { return (Lh[(Us[a[0]] = c)] = a[0]); }); for ( var Lk = function (a) { return Us[a]; }, vm, yw = function () { if (!vm) { var a = function (a) { return { unit: a[0], multiplier: a[1] }; }; vm = B(wB, function (c) { return { major: a(c[0]), minor: a(c[1]) }; }); } return vm; }, Mk = Rb( "significantUnitFn", function (a) { a.getMonth || (a = new Date(a)); var c = Ts.slice(0), b = B(c, function (b) { return b[0]; }); b.reverse(); var d = {}; w(c, function (b) { d[b[0]] = a[b[1]](); }); --d.day; var e; w(b, function (b) { if (0 < d[b]) return !(e = b); }); return e; }, function (a) { return a; } ), Vs = (function () { function a(a) { var b = this; this.weekStart = a; this.fns = { decade: function (b) { return parseInt(b.getFullYear().toString()[2]); }, year: function (b) { return b.getFullYear(); }, quarter: function (b) { return Math.floor((b.getMonth() + 3) / 3); }, month: function (b) { return b.getMonth() + 1; }, dayofyear: function (b) { var a = new Date(b.getFullYear(), 0, 0); return Math.floor((b - a) / 864e5); }, day: function (b) { return b.getDate(); }, weekday: function (a) { a = a.getDay() - b.weekStart; return 0 > a ? 7 + a : a; }, week: function (a) { var c = a.getFullYear(), d = new Date(c, 0, 1); a = new Date(c, a.getMonth(), a.getDate()); return Math.ceil(((a - d) / 864e5 + b.fns.weekday(d) + 1) / 7); }, hour: function (b) { return b.getHours(); }, minuteofday: function (b) { return 60 * b.getHours() + b.getMinutes(); }, minute: function (b) { return b.getMinutes(); }, secondofhour: function (b) { return 60 * b.getMinutes() + b.getSeconds(); }, second: function (b) { return b.getSeconds(); }, millisecond: function (b) { return b.getMilliseconds(); }, none: function (b) { return 0; }, date: function (b) { return b.getTime(); }, }; this.revFns = { decade: function (b, a) { b = X(b).getFullYear().toString(); b = b.substr(0, 2) + a + "0"; return new Date(parseInt(b), 0, 1); }, year: function (b, a) { return new Date(a, 0, 1); }, quarter: function (b, a) { return new Date(X(b).getFullYear(), 3 * (a - 1), 1); }, month: function (b, a) { return new Date(X(b).getFullYear(), a - 1, 1); }, week: function (a, c) { a = X(a).getFullYear(); a = new Date(a, 0, 1); var d = -(a.getDay() - b.weekStart); c = d + (0 < d ? -7 : 0) + 7 * (c - 1); d = new Date(a.valueOf()); d.setDate(a.getDate() + c); return d; }, dayofyear: function (b, a) { return new Date(X(b).getFullYear(), 0, a); }, day: function (b, a) { return new Date(X(b).getFullYear(), X(b).getMonth(), a); }, weekday: function (a, c) { var d = b.fns.week(a); a = b.revFns.week(a, d); return bc(a, t(c) ? { unit: "day", multiplier: c } : { unit: "day" }); }, hour: function (b, a) { b = X(b); b = new Date(b.setMinutes(0)); b = new Date(b.setSeconds(0)); return X(b.setHours(a)); }, hourMod: function (b, a) { b = X(b); b = new Date(b.setMinutes(0)); b = new Date(b.setSeconds(0)); return bc(b, { unit: "hour", multiplier: a }); }, minute: function (b, a) { b = X(b); return new Date(b.setSeconds(0)).setMinutes(a); }, minuteofday: function (b, a) { b = X(b); return X(X(X(b.setSeconds(0)).setHours(0)).setMinutes(a)); }, minuteMod: function (b, a) { b = X(b); return bc(b, { unit: "minute", multiplier: a }); }, minuteofdayMod: function (b, a) { b = X(b); return bc(b, { unit: "minute", multiplier: a }); }, secondofhour: function (b, a) { b = X(b); return X(b.setMinutes(0)).setSeconds(a); }, secondofhourMod: function (b, a) { b = X(b); return bc(b, { unit: "second", multiplier: a }); }, second: function (b, a) { return X(b).setSeconds(a); }, millisecond: function (b, a) { return X(b).setMilliseconds(a); }, none: function (b, a) { return b; }, }; } a.prototype.fn = function (a) { if ("string" === typeof a) { var b = this.fns[a]; return function (a) { return b(X(a)); }; } var c = this.fns[a.unit]; if (a.mod && a.mul) return function (b) { return Math.floor(c(X(b)) / a.mul) % a.mod; }; if (a.mul) return function (b) { return Math.floor(c(X(b)) / a.mul); }; }; a.prototype.reverseFn = function (a) { if ("string" === typeof a) { var b = this.revFns[a]; return function (a, c) { return b(X(a), c); }; } var c = this.revFns[a.unit]; if (a.mod && a.mul) return ( (c = this.revFns[a.unit + "Mod"] || c), function (b, d) { return c(b, d * a.mul); } ); if (a.mul) return function (b, d) { return c(b, d * a.mul); }; }; return a; })(), Ok = (function () { function a(a, b) { this.calIndexer = b; if (O(a)) { var c = {}; c[a] = "*"; a = c; } this.currentOptions = Ga(qa(a), ["inclusive", "every", "offset"]); this.inclusive = z(a.inclusive, !0); this.every = z(a.every, 1); this.offset = z(a.offset, 0); "object" === typeof this.offset && (this.offset = lg(this.offset)); this.fnSet = new Vs(b ? b.currentOptions.weekStart : 0); this.setFilter(); } a.prototype.setFilter = function () { var a = this, b = a.currentOptions, d = Object.getOwnPropertyNames(b); a.propNames = d; var e = d[0]; 1 === d.length && "date" === d[0] && "object" !== typeof b[d[0]] && ((a.isDate = !0), b.date.pop && (a.isDateRange = !0)); var f = function (c) { um[c] < um[e] && (e = c); return (function (c) { var d = b[c], e = I(d), f = a.fnSet.fn(c); "*" === d && ((e = "star"), (a.starUnit = c), (a.isInterval = !0), Ss[c] && (a.intervalType = "numeric")); c = function (b) { return function (a) { var c; try { for (var e = ya(d), f = e.next(); !f.done; f = e.next()) if (b(a, f.value)) return !0; } catch (D) { var g = { error: D }; } finally { try { f && !f.done && (c = e.return) && c.call(e); } finally { if (g) throw g.error; } } }; }; var g = function (b) { if ("number" === b) return function (b, a) { return f(b) === z(a, d); }; if ("string" === b || "date" === b) { var c = X(d); return function (b, a) { return f(b) === f(X(a || c)); }; } if ("object" === b) { b = "string" === typeof d.range[0] ? function (b) { return f(X(b)); } : vB; var e = b(d.range[0]), g = b(d.range[1]); return function (b, a) { b = f(X(b)); return Kb([e, g], b); }; } if ("function" === b) return function (b, a) { return (a || d)(b); }; if ("star" === b) return function (b, c) { return a.indexOfInterval(b); }; }; return "array" === e ? c(g(I(d[0]))) : g(e); })(c); }; if (1 < d.length) { a.isMultiFilter = !0; var g = B(d, function (b) { return f(b); }); d = a.inclusive ? function (b) { var a; try { for (var c = ya(g), d = c.next(); !d.done; d = c.next()) { var e = d.value; if (!e(b)) return !1; } } catch (q) { var f = { error: q }; } finally { try { d && !d.done && (a = c.return) && a.call(c); } finally { if (f) throw f.error; } } return !0; } : function (b) { var a; try { for (var c = ya(g), d = c.next(); !d.done; d = c.next()) { var e = d.value; if (e(b)) return !0; } } catch (q) { var f = { error: q }; } finally { try { d && !d.done && (a = c.return) && a.call(c); } finally { if (f) throw f.error; } } }; a.checkDateFn = d; } else a.checkDateFn = f(d[0]); e = uB[Math.floor(um[e.unit || e])]; a.minUnitName = e; }; a.prototype.indexOfInterval = function (a) { var b = this.intervalRanges; a = ed(a); if ("numeric" === this.intervalType) return this.fnSet.fn(this.starUnit)(a); if (this.isMultiFilter) { for (var c = 0; c < b.length; c++) if (-1 < ao(b[c], a)) return c; return -1; } return ao(b, a); }; a.prototype.isInside = function (a) { return this.isInterval ? this.indexOfInterval(X(a)) : this.checkDateFn(X(a)); }; a.prototype.setRangeSnap = function (a, b) { var c = this.fnSet, e = this.starUnit; a = c.reverseFn(e)(a, c.fn(e)(a)); var f = c.fn(e)(b); b = c.reverseFn(e)(b, f + 1); b = X(ed(b) - 1); return this.setRange(a, b); }; a.prototype.setRange = function (a, b) { this.userRange = [a, b]; if (this.isInterval) { if ("numeric" === this.intervalType) { a = Ss[this.starUnit]; var c = a[0], e = []; ob(a[1] - a[0] + 1, function (b) { return e.push([b + c, b + c + 1 - 0.001]); }); return (this.intervalRanges = e); } return (this.intervalRanges = ea(this.getIntervalRanges(a, b), function (b) { return ed(b[1]) !== ed(b[0]); })); } return this.getRanges(a, b); }; a.prototype.getRanges = function (a, b) { var c = { unit: this.minUnitName }; a = Kk(this.minUnitName, 1, X(a)); b = X(b); for (var e = [], f = [], g = !1, h, k = !1; !k; ) (h = this.isInside(a)) && !g ? ((h = a), (g = !0), (f[0] = h)) : !h && g && ((f[1] = X(a.getTime() - 1)), e.push(f), (f = []), (g = !1)), (a = bc(a, c)), a > b && (k = !0); return hp(this, e); }; a.prototype.getIntervalRanges = function (c, b) { var d = this, e = d.currentOptions; if (!this.minUnitName) return [[c, b]]; var f = d.every, g = []; if (d.isMultiFilter) { f = function (f) { var g = { every: d.every }; g[f] = e[f]; return new a(g).setRange(c, b); }; var h = ea(d.propNames, function (b) { return b !== d.starUnit; }), k = f(d.starUnit), l = B(h, f), m, n; w(k, function (b) { var a = b.slice(0); n = []; w(l[0], function (b) { (m = Ue(a, b)) && n.push(m); }); n.length && g.push(n); }); } else (f = { unit: this.minUnitName, multiplier: f }), (f = Mh(f, f, c, b)[0]), (h = B(f, function (b) { return [b, b]; })), f.length ? (g = B(cg(h, [c, b]), function (b) { return [X(b[0]), X(ed(b[1]) - 1)]; })) : g.push([c, b]); return hp(d, g); }; return a; })(), Bw = function (a, c, b) { a[c] ? a[c].push(b) : (a[c] = [b]); }, Qk = function (a) { if (a && a.pop) for (var c = 0, b = Math.min(50, a.length); c < b; c++) { var d = a[c], e = typeof d; if (null !== d) { if ("number" === e) return !0; if ("object" === e) return !1; } } }, ip = function (a) { var c; a(function (b) { b = Qk(b); if (!0 === b || !1 === b) return (c = b), !1; }); return c; }, Sk = function (a) { return "function" === typeof a ? a : function (c) { return c[a]; }; }, Cw = function (a) { return "function" === typeof a ? a : function (c) { return c.map(function (b) { return b[a]; }); }; }, kp = function (a, c) { var b = []; w(a, function (a, e) { return b.push({ key: c ? c(e) : e, values: a }); }); return b; }, Wl = (function () { function a() { this.calls = []; return this; } a.prototype.countKeyCalls = function () { var a = 0; w(this.calls, function (b) { return "key" === b[0] && a++; }); return a; }; a.prototype.clone = function () { var c = new a(); c.calls = this.calls.slice(0); c.pointRollupFn = this.pointRollupFn; return c; }; a.prototype.key = function (a) { var b = this.clone(); b.calls.push(["key", a]); return b; }; a.prototype.rollup = function (a, b) { var c = this.clone(); c.calc = b; c.calls.push(["rollup", a]); return c; }; a.prototype.sortKey = function (a) { var b = this.clone(); b.calls.push(["sortKey", a]); return b; }; a.prototype.pointRollup = function (a) { var b = this.clone(); b.pointRollupFn = a; return b; }; a.prototype.series = function (a) { a = Tk(this)(a); var b = this.countKeyCalls(); if (1 === b) return [{ points: jf(a, this.pointRollupFn || this.calc) }]; if (2 === b) return zw(a, this.pointRollupFn || this.calc); throw "Nest: One or two key() calls are required."; }; a.prototype.points = function (a) { a = Tk(this)(a); return jf(a, this.pointRollupFn); }; a.prototype.entries = function (a) { return Tk(this)(a); }; return a; })(), Fw = /\r?\n/, Ws = function (a) { return gf(function (c) { var b = Array.isArray(a) ? a : [a], d = !0, e = b.length; if (!a.length) { var f = Error("Fonts list is empty"); c({ ok: d, error: f }); } b.forEach(function (b) { return Gw(b, function (a) { a || ((d = !1), (f = Error("Loading " + b + " 1000ms timeout exceeded"))); 0 === --e && c({ ok: d, error: f }); }); }); }); }, Hw = 0, Yk = {}, Zk = Math.PI, sp = 2 * Zk, sb = Math, up = Math.abs, Qh = function (a, c, b) { return [Y(a[0], a[0] + a[2], c[0], c[0] + c[2], b[0]), Y(a[1], a[1] + a[3], c[1], c[1] + c[3], b[1])]; }, re = ["M", "Z", "L", "C"], wp = [ xp, null, xp, function (a, c) { c = pv.apply(null, c.slice(1)); return bl(bl(a, c), [c[0] + c[2], c[1] + c[3]]); }, ], Xs = { stringValue: [al, ""], bbox: [ function (a) { a = a.shapes; 1 === a.length && Mb(a[0]); var c; w(a, function (b, a) { Mb(b); b = b.minMaxResult; a ? ((c.xMin = Math.min(c.xMin, b.xMin)), (c.yMin = Math.min(c.yMin, b.yMin)), (c.xMax = Math.max(c.xMax, b.xMax)), (c.yMax = Math.max(c.yMax, b.yMax))) : (c = b); }); return [c.xMin, c.yMin, c.xMax - c.xMin, c.yMax - c.yMin]; }, "", ], lengthValue: [yp, 0], flatPoints: [zp, []], positions: [ function (a, c) { void 0 === c && (c = 6); a.length(); var b = [], d = 0; for (a = a.shapes; d < a.length; d++) b.push(Hc(a[d], c)); return b; }, [], ], }, mf = (function () { function a(a) { this.isPath = !0; this.shapes = []; this._cache = {}; a && L(this, a); } a.prototype.fromCache = function (a) { var b = this._cache; b[a] = t(b[a]) ? b[a] : this.hasErrors ? Xs[a][1] : Xs[a][0](this); return b[a]; }; a.prototype.toString = function () { return this.fromCache("stringValue"); }; a.prototype.bbox = function () { return this.fromCache("bbox"); }; a.prototype.scaleTo = function (a) { return Jw(this, a); }; a.prototype.translate = function (a) { return al(this, a); }; a.prototype.rotate = function (a, b) { var c = this.bbox(); b = b || va(c); return this.translate(function (c) { return ra(b, Ia(b, c) + a, Xb(b, c)); }); }; a.prototype.hitTest = function (a, b) { var c = this.bbox(); a = [a, b]; if (Ad(c, a)) { c = void 0; b = 0; for (var e = this.shapes; b < e.length; b++) if (1 === P(e[b].items)[0]) { c = !0; break; } if (!c) return Zf(a, zp(this)); b = 0; for (e = this.shapes; b < e.length; b++) if (Zf(a, Ap(e[b]))) return !0; } return !1; }; a.prototype.length = function () { return this.fromCache("lengthValue"); }; a.prototype.flatPoints = function () { return this.fromCache("flatPoints"); }; a.prototype.positions = function () { return this.fromCache("positions"); }; a.prototype.clearCache = function (a) { this._cache = {}; a && vp(this, Lw, Mw); }; a.prototype.items = function (a) { var b = this.shapes; if (1 === b.length) return a ? b[0].items : b[0].items.slice(0); var c = []; w(b, function (b) { return w(b.items, function (b) { return c.push(b); }); }); return c; }; a.prototype.isEqual = function (a) { var b = a ? a.toString() : ""; return this === a || this.toString() === b; }; return a; })(), Ow = /([astvzqmhlc])([^astvzqmhlc]*)/gi, Pw = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi, wm = ["c", 6, "a", 7, "l", 2, "z", 0, "m", 2, "h", 1, "v", 1, "s", 4, "t", 2, "q", 4], fl = {}, Rw = { M: qg, H: function (a) { fd(a, [a.isRelative ? Ta(a.args) + a.endPoint[0] : P(a.args), a.endPoint[1]]); }, V: function (a) { fd(a, [a.endPoint[0], a.isRelative ? Ta(a.args) + a.endPoint[1] : P(a.args)]); }, Z: hl, L: function (a) { nf(a, 1, fd); }, C: function (a) { nf(a, 3, te); }, S: function (a) { nf(a, 2, Sw); }, Q: function (a) { nf(a, 2, Kp); }, T: function (a) { var c = a.lastCommand[0]; nf(a, 1, "T" === c || "Q" === c ? Tw : fd); }, A: function (a) { Gp(a, 0, 7, Uw); }, }, yB = function (a, c) { var b = a.toLocaleUpperCase(); fl[a] = { command: b, argsCount: c, isRelative: !0 }; fl[b] = { command: b, argsCount: c, isRelative: !1 }; }, Yi = 0; Yi < wm.length; Yi += 2 ) yB(wm[Yi], wm[Yi + 1]); var kl = Rb("pathLibBbox", function (a) { return Aa(a).bbox(); }), Xh = Math.PI, Pp = 2 * Xh, Tp = function (a) { return Math.round(a) === a; }, Zw = { TL: 0, TR: 1, BR: 2, BL: 3 }, Wp = fa("type fill stroke stroke-width stroke-opacity overflow centerWidth eachShape".split(" ")), Ys = Vb.PI, zB = 2 * Ys, dc = { none: function (a, c) { return eb([[a, c]]); }, circle: function (a, c, b, d) { b = Math.min(b, d) / 2; return H(["M", a + b, c], Kc(a + b, c + b, b, -Ys / 2, 0.75 * zB - 0.05), ["Z"]); }, square: Yh, arrow: function (a, c, b, d, e) { void 0 === e && (e = {}); var f = va([a, c, b, d]); c = e.angle || 0; var g = e.concavity || 0.15, h = ra(f, c, b / 2), k = ra(f, c + 180, b / 2); a = ra(k, c - 90, d / 2); d = ra(k, c + 90, d / 2); c = ra(k, c, b * g); k = function (b, a) { var c = Uj(h, b); b = Ia(h, b); var d = Xb(f, c); return ra(c, b + a, g * d); }; b = [f[0] - c[0], f[1] - c[1]]; a = [h, k(a, -90), a, c, d, k(d, 90)]; e.skipTransform = !0; return eb( (function (b, a) { return b.map(function (b) { return [b[0] + a[0], b[1] + a[1]]; }); })(a, b) ); }, triangle: function (a, c, b, d) { return eb([ [a + b / 2, c], [a + b, c + d], [a, c + d], ]); }, "triangle-down": function (a, c, b, d) { return eb([ [a, c], [a + b, c], [a + b / 2, c + d], ]); }, diamond: function (a, c, b, d) { d = Cd({ x: a, y: c, width: b, height: d }, 1.1); a = d.x; c = d.y; b = d.width; d = d.height; return eb([ [a + b / 2, c], [a + b, c + d / 2], [a + b / 2, c + d], [a, c + d / 2], ]); }, "four-point-star": function (a, c, b, d) { d = Cd({ x: a, y: c, width: b, height: d }, 1.15); a = d.x; c = d.y; b = d.width; d = d.height; b /= 2; var e = 0.32 * b; a += b; c += d / 2; return eb([ [a, c - b], [a + e, c - e], [a + b, c], [a + e, c + e], [a, c + b], [a - e, c + e], [a - b, c], [a - e, c - e], ]); }, "five-point-star": function (a, c, b, d) { d = Cd({ x: a, y: c, width: b, height: d }, 1.15); a = d.x + 1; c = d.y; b = d.width; d = d.height; b /= 2; a += b; c += d / 2; return eb([ [a, c - 0.96 * b], [a + 0.36 * b, c - 0.4 * b], [a + b, c - 0.24 * b], [a + 0.56 * b, c + 0.26 * b], [a + 0.6 * b, c + 0.94 * b], [a, c + 0.65 * b], [a - 0.6 * b, c + 0.94 * b], [a - 0.56 * b, c + 0.26 * b], [a - b, c - 0.24 * b], [a - 0.36 * b, c - 0.4 * b], ]); }, "six-point-star": function (a, c, b, d) { d = Cd({ x: a, y: c, width: b, height: d }, 1.15); a = d.x + 1; c = d.y; b = d.width; d = d.height; b /= 2; a += b; c += d / 2; return eb([ [a, c - b], [a + 0.3 * b, c - 0.54 * b], [a + 0.88 * b, c - 0.5 * b], [a + 0.6 * b, c], [a + 0.86 * b, c + 0.5 * b], [a + 0.3 * b, c + 0.52 * b], [a, c + b], [a - 0.3 * b, c + 0.52 * b], [a - 0.86 * b, c + 0.5 * b], [a - 0.6 * b, c], [a - 0.88 * b, c - 0.5 * b], [a - 0.3 * b, c - 0.54 * b], ]); }, "seven-point-star": function (a, c, b, d) { d = Cd({ x: a, y: c, width: b, height: d }, 1.15); a = d.x + 1; c = d.y; b = d.width; d = d.height; b /= 2; a += b; c += d / 2; return eb([ [a, c - 0.98 * b], [a + 0.28 * b, c - 0.54 * b], [a + 0.8 * b, c - 0.6 * b], [a + 0.62 * b, c - 0.12 * b], [a + b, c + 0.16 * b], [a + 0.5 * b, c + 0.44 * b], [a + 0.44 * b, c + 0.96 * b], [a, c + 0.68 * b], [a - 0.44 * b, c + 0.96 * b], [a - 0.5 * b, c + 0.44 * b], [a - b, c + 0.16 * b], [a - 0.62 * b, c - 0.12 * b], [a - 0.8 * b, c - 0.6 * b], [a - 0.28 * b, c - 0.54 * b], ]); }, "arrow-up": function (a, c, b, d) { d = Cd({ x: a, y: c, width: b, height: d }, 1.15); a = d.x + 1; c = d.y; b = d.width; d = d.height; b /= 2; a += b; c += d / 2; return eb([ [a, c - b], [a + 0.9 * b, c - 0.08 * b], [a + 0.36 * b, c - 0.08 * b], [a + 0.36 * b, c + b], [a - 0.36 * b, c + b], [a - 0.36 * b, c - 0.08 * b], [a - 0.9 * b, c - 0.08 * b], ]); }, "arrow-down": function (a, c, b, d) { d = Cd({ x: a, y: c, width: b, height: d }, 1.15); a = d.x + 1; c = d.y; b = d.width; d = d.height; b /= 2; a += b; c += d / 2; return eb([ [a, c + b], [a + 0.9 * b, c + 0.08 * b], [a + 0.36 * b, c + 0.08 * b], [a + 0.36 * b, c - b], [a - 0.36 * b, c - b], [a - 0.36 * b, c + 0.08 * b], [a - 0.9 * b, c + 0.08 * b], ]); }, split: function (a, c, b, d) { b /= 2; a += b; c += d / 2; return eb([ [ [a + 0.2 * b, c - b], [a + b, c], [a + 0.2 * b, c + b], ], [ [a - 0.2 * b, c + b], [a - b, c], [a - 0.2 * b, c - b], ], ]); }, "split-reverse": function (a, c, b, d) { b /= 2; a += b; c += d / 2; return eb([ [ [a + b, c - b], [a + b, c + b], [a + 0.16 * b, c], ], [ [a - b, c - b], [a - b, c + b], [a - 0.16 * b, c], ], ]); }, spinoff: function (a, c, b, d) { b /= 2; a += b; c += d / 2; return eb([ [ [a - b, c - b], [a + 0.72 * b, c - b], [a + 0.72 * b, c], [a, c], [a, c + 0.72 * b], [a - b, c + 0.72 * b], ], [ [a + 0.24 * b, c + 0.24 * b], [a + b, c + 0.24 * b], [a + b, c + b], [a + 0.24 * b, c + b], ], ]); }, merger: function (a, c, b, d) { b /= 2; a += b; c += d / 2; return eb([ [a - 0.38 * b, c - b], [a + 0.73 * b, c - b], [a + 0.73 * b, c + b], [a + 0.16 * b, c + b], [a + 0.16 * b, c + 0.22 * b], [a - 0.58 * b, c + b], [a - 0.94 * b, c + 0.6 * b], [a - 0.38 * b, c + 0.02 * b], ]); }, path: function (a, c, b, d, e) { return e.d; }, rectangle: function (a, c, b, d, e) { return Qp(a, c, b, d, e); }, }, Vp = { arrow: function (a) { void 0 === a && (a = {}); var c = z(a.lineWidth, 1), b = z(a.overflow, !1), d = db(z(a.size, 10 * c), c), e = t(a.length), f = db(z(e ? a.length : a.width, 1.6 * d), c); c = db(z(e ? a.width : a.height, d), c); d = ua(z(a.concavity, 0.2), -0.5, 0.5); e = f - f * d; return L(Na({}, a, Wp), { width: f, height: c, concavity: d, overflow: !0, centerWidth: !1 === b ? e : 0 }); }, }, Yp = Rb( "drawIconFunction", function (a, c, b, d, e) { var f = Aa(a), g = c[4], h = d ? (t(d.initial) ? [d.top.px, d.right.px, d.bottom.px, d.left.px] : 0 < d.length ? d : [d.top, d.right, d.bottom, d.left]) : [0, 0, 0, 0], k = !0; if (!(e || (0 !== c[2] && 0 !== c[3]) || g)) return ["", 0, 0, 0]; if (g || 0 === c[2] || 0 === c[3]) (e = f.bbox()), (c[2] = g || e[2]), (c[3] = g || e[3]), g || (k = !1); g = Math.max(c[2], c[3]); e = b ? [c[0], c[1], g, g] : c; if ((d = !b && d && 0 === d.initial) && !k) return [a, g, c[2], c[3]]; a = d ? e : Vo(e, h); f = f.scaleTo(a); if (!b) return [f, g, c[2], c[3]]; b = dc[b.shape || "square"](e[0], e[1], e[2], e[3]); return [xa([f, b]), g, c[2], c[3]]; }, function (a, c, b, d, e) { return a + c[0] + c[1] + c[2] + c[3] + c[4] + (b && b.shape) + (d && d.initial) + e; } ), sg = function (a) { return "M" + a[0] + " " + a[1]; }, Fd = function (a) { return "L" + a[0] + " " + a[1]; }, AB = [-9999, 9999], BB = fa(["div"]), tb = (function () { function a(a, b, d) { this.renderer = b; this.init(a, d); } a.prototype.init = function (a, b) { this.el = a; this.data = { attrs: {}, vals: {}, id: Dd() }; this.childNodes = []; this.refNodes = []; this.isElement = !0; this.isDestroyed = this.isPatched = !1; this.zIndexHash = {}; this.zIndexMax = AB[0]; this.nodeName = b || a.nodeName.toLowerCase(); this.isHtml = J(BB, this.nodeName); }; a.prototype.attr = function (a, b) { return this.renderer.attr(this, a, b); }; a.prototype.add = function (a) { return this.renderer.add(this, a); }; a.prototype.addBefore = function (a) { return this.renderer.addBefore(this, a); }; a.prototype.addAfter = function (a) { return this.renderer.addAfter(this, a); }; a.prototype.destroy = function () { return this.renderer.destroy(this); }; a.prototype.on = function (a, b) { return this.renderer.on(this, a, b); }; a.prototype.un = function (a, b) { return this.renderer.un(this, a, b); }; a.prototype.box = function (a) { return this.renderer.box(this, a); }; a.prototype.getBbox = function () { return this.box(); }; a.prototype.animate = function (a, b) { var c = G(a, 2); a = c[0]; c = c[1]; this.getTransition().options({ animation: b, middle: { from: a, to: c }, end: c }); }; a.prototype.getAnimations = function () { return this.getTransition().getAnimations(); }; a.prototype.isAnimating = function () { return 0 < this.getAnimations().length; }; a.prototype.finishAnimation = function (a) { this._transition && !this._transition.attrApllying && this._transition.finishAnimation(!0, a); }; a.prototype.show = function () { return this.renderer.show(this); }; a.prototype.hide = function () { return this.renderer.hide(this); }; a.prototype.visible = function (a) { return this.renderer.visible(this, a); }; a.prototype.query = function (a) { return this.renderer.query(a, this); }; a.prototype.transition = function (a) { this.getTransition().options(a); return this.getTransition(); }; a.prototype.tryAutoTransition = function (a) { var b = this; return b.getTransition().tryAutoTransition(a, function () { var a = b.data, c = L({}, a.attrs); a.transform && (c.transform = a.transform); a.vals.d && (c.d = a.vals.d); return c; }); }; a.prototype.normalizeAttrs = function (a) { return a && a.omit ? Ga(a, a.omit.concat("omit")) : a; }; a.prototype.getTransition = function () { if (!this._transition) { var a = L({}, this.renderer.defaultOptions().transition); "path" === this.nodeName && (a.generator = "path"); this._transition = Og[0].create(this, a); } return this._transition; }; return a; })(), Zs = W(dc, { rectangle: Qp }), CB = (function (a) { function c(b, c) { b = a.call(this, b, c) || this; b.x = 0; b.y = 0; b.width = 0; b.height = 0; return b; } K(c, a); c.prototype.attr = function (b, a) { if (!b || !Pa(b)) return J(this, b) ? this[b] : this.renderer.attr(this, b, a); b = this.collectAttributes(b); if (!b) return null; a = G([b.shapeName, b.relativeSize], 2); this.shapeName = a[0]; this.relativeSize = a[1]; b.relativeSize && ((a = G([b.cx, b.cy, b.r], 3)), (this.cx = a[0]), (this.cy = a[1]), (this.r = a[2])); a = this.renderer.attr(this, b); b = G([b.x, b.y, b.width, b.height, b.shapeOptions, b.d], 6); this.x = b[0]; this.y = b[1]; this.width = b[2]; this.height = b[3]; this.shapeOptions = b[4]; this.d = b[5]; return a; }; c.prototype.normalizeAttrs = function (b) { b = this.collectAttributes(b); return a.prototype.normalizeAttrs.call(this, b); }; c.prototype.collectAttributes = function (b) { var a = this.default, c = G([this.shapeName, this.relativeSize], 2), f = c[0]; c = c[1]; if (b.shapeConfig || b.shapeName) f = b.shapeName || b.shapeConfig.name; if (!f || !J(Zs, f)) return null; b = b.shapeConfig ? b.shapeConfig.config || {} : L({}, b); L(b, b.attr); b.shapeName = f; Q(c) && (yc(["x", "y", "width", "height"], b) && (c = !1), yc(["cx", "cy", "r"], b) && (c = !0)); c && ((a = G([a(b.cx, this.cx || 0), a(b.cy, this.cy || 0), a(b.r, this.r || 0), b.cx - b.r, b.cy - b.r, this.calculateFromRadius(b.r), this.calculateFromRadius(b.r)], 7)), (b.cx = a[0]), (b.cy = a[1]), (b.r = a[2]), (b.x = a[3]), (b.y = a[4]), (b.width = a[5]), (b.height = a[6])); b.relativeSize = c; a = G([this.default(b.x, this.x), this.default(b.y, this.y), this.default(b.width, this.width), this.default(b.height, this.height), b.shape || this.shapeOptions], 5); b.x = a[0]; b.y = a[1]; b.width = a[2]; b.height = a[3]; b.shapeOptions = a[4]; b.d = this.dToString(Zs[f](b.x, b.y, b.width, b.height, b.shapeOptions)); b.omit = "x y width height cx cy r shapeName shape path attr relativeSize shapeOptions".split(" "); b.d === this.d && b.omit.push("d"); return b; }; c.prototype.default = function (b, a) { return lc(b) ? a : b; }; c.prototype.calculateFromRadius = function (b) { return t(b) ? 2 * b : null; }; c.prototype.dToString = function (b) { return ja(b) ? pc(b, " ") : b; }; return c; })(tb), DB = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.attrApplier = b.defaultAttrApplier; return b; } K(c, a); c.prototype.attr = function (b, a) { var c = this.morphType || this.nodeName; if (Zi[c]) a: { var d; try { for (var g = ya(Zi[c]), h = g.next(); !h.done; h = g.next()) { var k = h.value; if (k(this, b, a)) break a; } } catch (m) { var l = { error: m }; } finally { try { h && !h.done && (d = g.return) && d.call(g); } finally { if (l) throw l.error; } } } return this.attrApplier(b, a); }; c.prototype.defaultAttrApplier = function (b, a) { return this.renderer.attr(this, b, a); }; return c; })(tb), Zi = {}, EB = (function () { function a(a, b, d, e, f) { this.root = a; this.width = b; this.height = d; this.defaultWidth = e; this.defaultHeight = f; } a.prototype.path = function (a) { return this.pathInner(DB, a); }; a.prototype.shape = function (a, b) { return this.pathInner(CB, { shapeConfig: { name: a, config: b } }); }; a.prototype.newId = function () { return Dd(); }; return a; })(), $s = (function (a) { function c(b, c) { b = a.call(this, b, c) || this; b.x = 0; b.y = 0; b.width = 0; b.height = 0; return b; } K(c, a); c.prototype.attr = function (b, a) { var c = this; if (!b || !Pa(b)) return this.renderer.attr(this, b, a); Q(this.relativeSize) && this.setSizeType(b); this.checkSizeRecalculated(b, function (a) { var d = G([c.default(b.width, c.width), c.default(b.height, c.height), c.default(b.cx, c.cx || 0), c.default(b.cy, c.cy || 0)], 4), e = d[0], f = d[1], l = d[2]; d = d[3]; var m = G([c.relativeSize ? l - e / 2 : c.default(b.x, c.x || 0), c.relativeSize ? d - f / 2 : c.default(b.y, c.y || 0)], 2), n = m[0]; m = m[1]; L(a, { x: n, y: m, width: e, height: f }); a.omit = ["cx", "cy"]; c.renderer.attr(c, a); a = G([n, m, e, f, l, d], 6); c.x = a[0]; c.y = a[1]; c.width = a[2]; c.height = a[3]; c.cx = a[4]; c.cy = a[5]; }); return this; }; c.prototype.default = function (b, a) { return lc(b) ? a : b; }; c.prototype.setSizeType = function (b) { yc(["x", "y"], b) ? (this.relativeSize = !1) : yc(["cx", "cy"], b) && (this.relativeSize = !0); }; c.prototype.checkSizeRecalculated = function (b, a) { Q(this.sizeRecalculated) && (this.sizeRecalculated = Q(b.width) || Q(b.height)); b.src && this.sizeRecalculated ? hx(this.renderer, b.src, function (c, d) { b.width = c.width; b.height = c.height; !1 === d && (b.animation = !1); a(b); }) : a(b); }; return c; })(tb), ml = {}, ug = {}, rd = (function () { function a() { this.callbacks = []; this.idleDefer = new Ae(); this.id = 0; } a.prototype.on = function (a, b) { var c = this, e = { callback: a, event: this, un: function () { c.un(a); }, }; this.callbacks.push({ callback: a, subscriber: b }); return e; }; a.prototype.onDefer = function (a, b, d) { var c = this, f = this.id++; return this.on(function (d, e) { return c.idleDefer.defer( "event" + f, function () { return a.apply(c, [d, e]); }, b ); }, d); }; a.prototype.un = function (a) { this.callbacks = a ? ea(this.callbacks, function (b) { return b.callback !== a; }) : []; }; a.prototype.trigger = function (a, b) { w(this.callbacks, function (c) { return c.callback.apply(c.subscriber, [a, b]); }); }; return a; })(), sd = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.on = function (b, c) { var d = this, f = S(this.callbacks, function (a) { return a.callback === b; }); return f ? { callback: f, event: this, un: function () { d.un(f); }, } : a.prototype.on.call(this, b, c); }; return c; })(rd), xm = (function (a) { function c(b) { var c = a.call(this) || this; c.domEventName = b; c.hasSubscription = !1; c.element = null; return c; } K(c, a); c.prototype.setElement = function (b) { this.element !== b && (this.unsubscribeDomEvent(), (this.element = b), this.subsribeDomEvent()); }; c.prototype.on = function (b, c) { b = a.prototype.on.call(this, b, c); this.subsribeDomEvent(); return b; }; c.prototype.un = function (b) { a.prototype.un.call(this, b); 0 === this.callbacks.length && this.unsubscribeDomEvent(); }; c.prototype.subsribeDomEvent = function () { var b = this; this.hasSubscription || (this.element ? this.callbacks.length && (this.element.on(this.domEventName, function (a) { b.trigger(aq(a, b.element, b.domEventName)); }), (this.hasSubscription = !0)) : (this.hasSubscription = !1)); }; c.prototype.unsubscribeDomEvent = function () { this.hasSubscription && (this.element && this.element.un(this.domEventName), (this.hasSubscription = !1)); }; return c; })(rd), ym = new rd(), FB = fa(["width", "height"]), at = fa(["d", "animation", "transition", "clip-rule"]), GB = W(at, fa(["fill"])), zm = (function (a) { function c(b, c) { b = a.call(this, b, c) || this; b.path = b.renderElement().add(b); return b; } K(c, a); c.prototype.attr = function (b, a) { if (!b || !Pa(b)) return this.renderer.attr(this, b, a); b.id && this.renderer.attr(this, "id", b.id); b["clip-rule"] && this.renderer.attr(this, "clip-rule", b["clip-rule"]); b = Pe({}, b, this.availableAttrs()); return this.renderer.attr(this.path, b); }; c.prototype.destroy = function () { this.path && (this.path.destroy(), delete this.path); return this.renderer.destroy(this); }; c.prototype.renderElement = function () { return this.renderer.path(); }; c.prototype.availableAttrs = function () { return at; }; return c; })(tb), HB = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.renderElement = function () { return this.renderer.rect(); }; c.prototype.availableAttrs = function () { return FB; }; return c; })(zm), IB = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.availableAttrs = function () { return GB; }; return c; })(zm), cq = fa(["fill", "stroke", "mask", "clip-path"]), Am = {}, iq = { horizontal: { c: [0, 0, 5, 0] }, "large-horizontal": { c: [0, 0, 10, 0], size: 10 }, "narrow-horizontal": { c: [0, 0, 2.5, 0], size: 2.5 }, "dark-horizontal": { c: [0, 0, 5, 0], strokeWidth: 4 }, vertical: { c: [0, 0, 0, 5] }, "large-vertical": { c: [0, 0, 0, 10], size: 10 }, "narrow-vertical": { c: [0, 0, 0, 2.5], size: 2.5 }, "dark-vertical": { c: [0, 0, 0, 5], strokeWidth: 4 }, "backward-diagonal": { c: [0, 0, 0, 10], size: 10, patternTransform: "rotate(45)" }, "light-upward-diagonal": { c: [0, 0, 0, 5], patternTransform: "rotate(45)" }, "dark-upward-diagonal": { c: [0, 0, 0, 5], strokeWidth: 4, patternTransform: "rotate(45)" }, "wide-upward-diagonal": { c: [0, 0, 0, 10], strokeWidth: 5, patternTransform: "rotate(45)", size: 10 }, "forward-diagonal": { c: [0, 0, 0, 10], size: 10, patternTransform: "rotate(-45)" }, "light-downward-diagonal": { c: [0, 0, 0, 5], patternTransform: "rotate(-45)" }, "dark-downward-diagonal": { c: [0, 0, 0, 5], strokeWidth: 4, patternTransform: "rotate(-45)" }, "wide-downward-diagonal": { c: [0, 0, 0, 10], strokeWidth: 5, patternTransform: "rotate(-45)", size: 10 }, "dashed-downward-diagonal": { c: [0, 2.5, 5, 7.5], granualHeight: 10 }, "dashed-upward-diagonal": { c: [5, 2.5, 0, 7.5], granualHeight: 10 }, "horizontal-brick": { d: "M0,0L0,5M0,5L10,5M5,5L5,10M10,5L10,0M0,10L10,10M0,0L10,0", size: 10 }, "large-checker-board": { d: "M0,5L5,5 5,0 0,0ZM5,10L5,5 10,5 10,10Z", size: 10, borderColor: "transparent", inside: !0 }, "small-checker-board": { d: "M0,2.5L2.5,2.5 2.5,0 0,0ZM2.5,5L2.5,2.5 5,2.5 5,5Z", borderColor: "transparent", inside: !0 }, "cross-diagonal": { d: "M0,0l10,10M10,0l-10,10", size: 10 }, "dashed-horizontal": { d: "M0 1 L5 1M 5 6L10 6", size: 10 }, "dashed-vertical": { d: "M1,0L1,5M6,5L6,10", size: 10 }, "diagonal-brick": { d: "M5,0L0,5M0,5L5,10M5,10L10,5", size: 10 }, "large-grid": { d: "M0,0L10,0M10,0L10,10", size: 10 }, "small-grid": { d: "M0,0L5,0M5,0L5,5" }, "solid-diamond": { d: "M0,1L4,5 0,9M10,1L6,5 10,9", size: 10, inside: !0, borderColor: "transparent" }, "outlined-diamond": { d: "M0,0L10,10M10,0L0,10", size: 10, strokeWidth: 1 }, wave: { d: "M1,2.5C2,5 4,5 5,2.5S8,0 9,2.5", granualWidth: 10, insideBack: !0 }, weave: { d: "M3,0L0,3M0,3L7,10M7,10L10,7M10,7L3,0M2, 5L0, 7M5, 8L3, 10M8, 5L10, 3", size: 10 }, "zig-zag": { d: "M0,5L5,0M5,0L10,5", granualWidth: 10 }, percent05: { p: [ [2.5, 7.5], [7.5, 2.5], ], size: 10, }, percent10: { p: [ [1.5, 4], [6.5, 1.5], ], granualWidth: 10, }, percent20: { p: [ [1, 3.5], [3.5, 1], ], }, percent25: { p: [ [1, 1.75], [3.5, 0.5], ], granualHeight: 2.5, }, "dotted-grid": { p: [ [1, 8.5], [3.5, 8.5], [6, 8.5], [8.5, 8.5], [8.5, 1], [8.5, 3.5], [8.5, 6], ], size: 10, }, "dotted-diamond": { p: [ [4, 1], [1.5, 3.5], [6.5, 3.5], [9, 6], [1.5, 8.5], [6.5, 8.5], ], size: 10, }, dotted: { template: "circle" }, image: { template: "image" }, "image-large": { template: "image", size: 10 }, }, kx = { line: function (a) { a = wg(a); var c = G(a.c, 4); return $h(a.pattern, [{ tag: "line", attr: { x1: c[0], y1: c[1], x2: c[2], y2: c[3], stroke: a.color, "stroke-width": a.strokeWidth, strokeDashArray: a.dashArray } }], a); }, path: function (a) { a = wg(a); var c = a.pattern, b = [{ tag: "path", attr: { d: a.d, fill: a.inside ? a.color : a.insideBack ? a.backgroundColor : void 0, "stroke-width": a.strokeWidth || 1, "border-color": a.borderColor, strokeDashArray: a.dashArray } }]; b.unshift({ tag: "rect", attr: { width: a.granualWidth, height: a.granualHeight, fill: a.backgroundColor || "none", "stroke-width": 0 } }); return gq(c, [{ tag: "g", attr: { stroke: a.color || "black", "stroke-width": a.strokeWidth || 1, childNodes: b } }], a); }, point: function (a) { a = wg(a); return $h( a.pattern, B(a.p, function (c) { return { tag: "circle", attr: { cx: c[0], cy: c[1], r: 0.5, fill: a.color } }; }), a ); }, circle: function (a) { a = wg(a); return $h(a.pattern, [{ tag: "circle", attr: { cx: a.granualWidth / 2, cy: a.granualHeight / 2, r: 0.5, fill: a.color, transform: a.transform } }], a); }, image: function (a) { var c = /(.*)\((.*)\)/g.exec(a.color); if (!c) return null; c = G(c, 3); var b = c[2]; if (!c[1] || !b) return null; c = Re(b, ", "); a.color = Gd(c[0], "'\""); a = wg(a); return $h(a.pattern, [{ tag: "image", attr: { width: a.granualWidth, height: a.granualHeight, src: a.color } }], a); }, }, ec = { translate: [ [0, 0], function (a) { a = ja(a) ? a : [a.x, a.y]; return 0 === a[0] && 0 === a[1] ? null : a; }, ], rotate: [ [0, 0, 0], function (a) { a = ja(a) ? a : [a, 0, 0]; return 0 === a[0] && 0 === a[1] && 0 === a[2] ? null : a; }, ], scale: (function (a) { return [ [a], function (c) { c = ja(c) ? c : [c]; return c[0] === a ? null : c; }, ]; })(1), }, JB = (function () { return function () {}; })(), KB = (function () { return function () {}; })(), uq = function (a, c, b) { return [kd(a[0], c[0], b), kd(a[1], c[1], b)]; }, kd = function (a, c, b) { return a + (c - a) * b; }, sx = function (a, c, b) { return a + (c - a) * b; }, rx = function (a, c, b) { return a + (c - a) * (1 - b); }, Bm = function (a) { return a && a.val ? a.val : a; }, Be = function (a) { return a + ""; }, Cm = function (a) { return lc(a) ? 1 : a; }, Dm = function (a) { return lc(a) ? 0 : a; }, bt = function (a, c, b) { a = a || "black"; c = c || "black"; b = b.colorAnimation; var d = c && c.meta && c.meta.pattern; return !d && a && a.meta && a.meta.pattern ? le(a.meta.backgroundColor, c, b) : (d ? fw : le)(a, c, b); }, Em = { x: [Be, null, !0], y: [Be, null, !0], start: [Be, null, !0], end: [Be, null, !0], width: [Be, null, !0], height: [Be, null, !0], opacity: [Cm, null, !1], rotate: [Dm, null, !1], offsetX: [Dm, null, !1], offsetY: [Dm, null, !1], display: [Be, null, !1], transform: [ function (a) { return a; }, null, !1, ], fill: [Bm, bt, !0], stroke: [Bm, bt, !0], "stroke-opacity": [Cm, null, !1], "stroke-width": [Cm, null, !1], d: [ Bm, function (a, c, b) { return ox(a && a.isPath ? a : Aa(a), c && c.isPath ? c : Aa(c), b.pathAnimation); }, !1, ], }, ux = /cubic-bezier\(\s*(-?\d+\.?\d*|-?\.\d+)\s*,\s*(-?\d+\.?\d*|-?\.\d+)\s*,\s*(-?\d+\.?\d*|-?\.\d+)\s*,\s*(-?\d+\.?\d*|-?\.\d+)\s*\)/, vx = /steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/, bi = function (a, c) { return function (b) { if (1 <= b) return 1; var d = 1 / a; b += c * d; return b - (b % d); }; }, yq = function (a) { return a; }, xq = { activeDuration: 0, totalDuration: 0, delay: 0, endDelay: 0, fill: "none", iterationStart: 0, iterations: 1, duration: 0, playbackRate: 1, direction: "normal", easing: "linear", easingFunction: yq }, ct = function (a) { return a; }, of = function (a, c, b) { if ("number" == typeof c) return (a = a || 0), Math.round(1e4 * (b * (c - a) + a)) / 1e4; if ("boolean" == typeof a && "boolean" == typeof c) return 1 > b && !c ? a : c; if (Wg(c)) { var d = {}; Da(c, function (e) { return (d[e] = of(a[e], c[e], b)); }); return d; } if (a.length == c.length) { for (var e = [], f = 0; f < a.length; f++) e.push(of(a[f], c[f], b)); return e; } throw Error("Wrong interpolation arguments " + a + ":" + c); }; Am.lineargradient = Am.radialgradient = function (a, c) { var b = a.nodeName.toLowerCase(), d = function (b, a) { return lc(b) ? a : b; }, e = null; if ("lineargradient" === b) { var f = {}; w(["x1", "y1", "x2", "y2"], function (b) { return (f[b] = d(a.attr(b), 0)); }); e = { linearGradient: f }; e.id = e.linearGradient.id = c; } else if ("radialgradient" === b) { var g = {}; w(["cx", "cy", "r", "fx", "fy"], function (b) { return (g[b] = d(a.attr(b), 0)); }); e = { radialGradient: g }; e.id = e.radialGradient.id = c; } e && ((e.stops = B(a.childNodes, function (b) { return [d(b.attr("offset"), "0%"), d(b.attr("stop-color"), "black"), d(b.attr("stop-opacity"), "1")]; })), (a.val = e)); }; var hc = function (a, c) { return Q(a) ? c : O(a) && Mg(a, "%") ? a : 100 * a + "%"; }, Aq = { linearGradient: { keyPrefix: "linear-gradient", argsToAttrs: function (a) { var c = a.linearGradient; if (ja(c)) { var b = G(c, 6), d = b[0], e = b[1], f = b[2], g = b[3], h = b[4]; b = b[5]; h = h || c.hash || a.hash; b = b || c.id || a.id; } else (d = c.x1), (f = c.x2), (e = c.y1), (g = c.y2), (h = c.hash), (b = c.id); return { attrs: { x1: d, x2: f, y1: e, y2: g, id: b, hash: h }, stops: a.stops }; }, toString: function (a) { return hc(a.x1, "0%") + " " + hc(a.y1, "0%") + " " + hc(a.x2, "100%") + " " + hc(a.y2, "0%"); }, }, radialGradient: { keyPrefix: "radial-gradient", argsToAttrs: function (a) { var c = a.radialGradient; if (ja(c)) { var b = G(c, 7), d = b[0], e = b[1], f = b[2], g = b[3], h = b[4], k = b[5]; b = b[6]; k = k || c.hash || a.hash; b = b || c.id || a.id; } else (d = c.cx), (e = c.cy), (f = c.r), (g = c.fx), (h = c.fy), (k = c.hash), (b = c.id); return { attrs: { cx: d, cy: e, r: f, fx: g, fy: h, id: b, hash: k }, stops: a.stops }; }, toString: function (a) { return hc(a.cx, "50%") + " " + hc(a.cy, "50%") + " " + hc(a.r, "50%") + " " + hc(a.fx, hc(a.cx, "50%")) + " " + hc(a.fy, hc(a.cy, "50%")); }, }, stopToString: function (a) { return hc(a.offset) + " " + a.color + " " + a.opacity; }, }, xg = {}, Fm = function (a, c) { if (!a) return a; if (O(a)) return J(xg, a) ? xg[a](a, c) : a; var b = {}, d; for (d in a) if (J(a, d)) { var e = a[d]; if (J(xg, d)) xg[d](d, c, e, b, a); else b[d] = e; } return b; }, LB = (function () { function a() {} a.prototype.resolve = function (a, b) { return Fm(a, b); }; return a; })(); Og[1] = new LB(); var ci = { src: "xlink:href", fontWeight: "font-weight", fontStyle: "font-style", fontSize: "font-size", fontFamily: "font-family", textDecoration: "text-decoration", className: "class", strokeDashArray: "stroke-dasharray", textRendering: "text-rendering", textAnchor: "text-anchor", whiteSpace: "white-space", textAlign: "text-align", borderRadius: "border-radius", }, Dx = fa(["d", "animation", "transition", "clip-rule"]), Dq = fa(["class", "id", "translate", "opacity"]), ul = { color: "fill", fill: "fill", stroke: "stroke", borderColor: "stroke", "border-color": "stroke", hatch: "fill", hatchPattern: "fill" }, Kx = { fill: "color", stroke: "border-color" }, MB = ["stroke-width", "strokeWidth", "border-width", "borderWidth"], NB = ["strokeAttrs", "stroke"], ei = { transform: "transform" }; Da(ec, function (a) { return (ei[a] = "transform"); }); var fi = { zIndex: "z-index", "z-index": "z-index" }, Iq = { "ease-out-cubic": "cubic-bezier(.215, .61, .355, 1)", "ease-in-out-cubic": "cubic-bezier(.645, .045, .355, 1)", "ease-in-circ": "cubic-bezier(.6, .04, .98, .335)", "ease-out-circ": "cubic-bezier(.075, .82, .165, 1)", "ease-in-out-circ": "cubic-bezier(.785, .135, .15, .86)", "ease-in-expo": "cubic-bezier(.95, .05, .795, .035)", "ease-out-expo": "cubic-bezier(.19, 1, .22, 1)", "ease-in-out-expo": "cubic-bezier(1, 0, 0, 1)", "ease-in-quad": "cubic-bezier(.55, .085, .68, .53)", "ease-out-quad": "cubic-bezier(.25, .46, .45, .94)", "ease-in-out-quad": "cubic-bezier(.455, .03, .515, .955)", "ease-in-quart": "cubic-bezier(.895, .03, .685, .22)", "ease-out-quart": "cubic-bezier(.165, .84, .44, 1)", "ease-in-out-quart": "cubic-bezier(.77, 0, .175, 1)", "ease-in-quint": "cubic-bezier(.755, .05, .855, .06)", "ease-out-quint": "cubic-bezier(.23, 1, .32, 1)", "ease-in-out-quint": "cubic-bezier(.86, 0, .07, 1)", "ease-in-sine": "cubic-bezier(.47, 0, .745, .715)", "ease-out-sine": "cubic-bezier(.39, .575, .565, 1)", "ease-in-out-sine": "cubic-bezier(.445, .05, .55, .95)", "ease-in-back": "cubic-bezier(.6, -.28, .735, .045)", "ease-out-back": "cubic-bezier(.175, .885, .32, 1.275)", "ease-in-out-back": "cubic-bezier(.68, -.55, .265, 1.55)", }, Vx = fa(["d", "animation", "transition", "fill", "display"]), Xx = new RegExp(String.fromCharCode(160), "gm"); w( [ function () { Ab(pa(ci), zx); }, function () { Ab(["attr"], Ax); }, function () { Ab(["d"], Bx); }, function () { Ab(["overflow"], Cx); }, function () { Ab(["clipPath"], Bq); }, function () { Ab(["shadow"], Fx); }, function () { Ab(pa(ul), Jx); }, function () { Ab(MB, Ox); Ab(NB, Px); }, function () { Ab(pa(ei), Rx); }, function () { Ab(pa(fi), Sx); }, function () { Ab(["easing"], Tx); }, function () { Ab(["mask"], Ux); }, function () { Ab(["text"], Wx); }, ], function (a) { return a(); } ); var OB = function (a, c, b) { var d = {}, e = []; Da(ec, function (f) { var g = ec[f][1](of(c[f], b[f], a)); if (null != g || c[f]) g && e.push(f + "(" + pc(g, ",") + ")"), (d[f] = g); }); var f = e.length ? pc(e, " ") : null; f && (d.val = f); return f ? d : null; }, $i = { transform: function (a, c) { var b = { translate: [0, 0], scale: [1], rotate: [0, 0, 0] }, d = a ? Pe(b, a, ec) : b, e = c ? Pe(b, c, ec) : b; a = {}; Da(ec, function (b) { null === d[b] && (d[b] = ec[b][0]); null === e[b] && (e[b] = ec[b][0]); "rotate" === b && ((d[b][1] = e[b][1]), (d[b][2] = e[b][2])); }); a.transform = { interpolate: function (b) { return OB(b, d, e); }, }; return { complex: !0, props: a }; }, display: function (a, c) { return { from: "block" == a, to: "block" == c, convert: function (b) { return b ? "block" : "none"; }, }; }, }, PB = function (a, c) { return { from: parseFloat(a), to: parseFloat(c), convert: ct }; }, QB = function (a, c) { return { from: rl(a), to: rl(c), convert: ct }; }; w("opacity rotate offsetX offsetY start end stroke-width stroke-opacity".split(" "), function (a) { return ($i[a] = PB); }); w(["x", "y", "width", "height"], function (a) { return ($i[a] = QB); }); var Gm = (function () { return function () {}; })(), RB = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.update = function (b) {}; return c; })(Gm), SB = (function (a) { function c(b) { var c = a.call(this) || this; c.frameHandler = b; return c; } K(c, a); c.prototype.update = function (b) { this.frameHandler(b); }; return c; })(Gm), TB = (function (a) { function c(b, c) { var d = a.call(this) || this; d.frames = b; d.parseFrames(); c && c.onFrame && (d.onFrame = c.onFrame); return d; } K(c, a); c.prototype.update = function (b) { var a = {}, c = this.interpolations; Da(c, function (d) { var e = c[d]; a[d] = e.interpolate ? e.interpolate(b) : e.convert(of(e.from, e.to, b)); }); if (this.onFrame) this.onFrame(b, a, of); }; c.prototype.parseFrames = function () { var b = this.frames[0], a = this.frames[this.frames.length - 1], c = {}; Da(a, function (d) { if (J($i, d)) { var e = $i[d](b[d], a[d]); e && (e.complex ? L(c, e.props) : (c[d] = e)); } }); this.interpolations = c; }; return c; })(Gm), UB = (function (a) { function c(b, c, e) { var d = a.call(this) || this; d.timeLine = e; d.idle = !0; d.paused = !1; d.currentTimePending = !1; d.finishedFlag = !0; d._startTime = null; d._currentTime = 0; d.playbackRate = 1; d.inEffect = !1; d.effectTime = wq(c); b = Fb(b) ? new SB(b) : ja(b) && 1 < b.length ? new TB(b, c) : new RB(); d.effect = b; d.onFinishAnimation = c.onFinishAnimation; d._final = c.final; d.scope = c.scope; return d; } K(c, a); c.prototype.play = function () { this.paused = !1; if (this.isFinished() || this.idle) this.rewind(), (this._startTime = null); this.idle = this.finishedFlag = !1; }; c.prototype.pause = function () { this.isFinished() || this.paused || this.idle ? this.idle && (this.rewind(), (this.idle = !1)) : (this.currentTimePending = !0); this._startTime = null; this.paused = !0; }; c.prototype.finish = function () { if (!this.idle) { var b = this.effectTime.options; this._currentTime = 0 < this.playbackRate ? b.totalDuration : 0; this._startTime = b.totalDuration - this._currentTime; this.currentTimePending = !1; } }; c.prototype.cancel = function () { this.inEffect && ((this.inEffect = !1), (this.idle = !0), (this.paused = !1), (this.finishedFlag = !0), (this._currentTime = 0), (this._startTime = null), this.updateEffect(null)); }; c.prototype.reverse = function () { this.playbackRate *= -1; this.play(); }; c.prototype.playState = function () { return this.idle ? "idle" : (null == this._startTime && !this.paused && 0 !== this.playbackRate) || this.currentTimePending ? "pending" : this.paused ? "paused" : this.isFinished() ? "finished" : "running"; }; c.prototype.isFinished = function () { var b = this.effectTime.options.totalDuration; return !this.idle && ((0 < this.playbackRate && (this._currentTime > b || (this._currentTime === b && 0 !== b))) || (0 > this.playbackRate && 0 >= this._currentTime)); }; c.prototype.frame = function () { var b = this; this.idle || this.paused || (null == this._startTime ? (this._startTime = this.timeLine.currentTime - this._currentTime / this.playbackRate) : this.isFinished() || this.tickCurrentTime((this.timeLine.currentTime - this._startTime) * this.playbackRate)); this.currentTimePending = !1; this.isFinished() ? this.finishedFlag || (this.onFinish && T.setTimeout(function () { b.onFinish(); }, 0), (this.finishedFlag = !0)) : (this.finishedFlag = !1); }; c.prototype.startTime = function () { return this._startTime; }; c.prototype.currentTime = function () { return this._currentTime; }; c.prototype.rewind = function () { var b = this.effectTime.options; if (0 <= this.playbackRate) this._currentTime = 0; else if (Infinity > b.totalDuration) this._currentTime = b.totalDuration; else throw Error("Unable to rewind negative playback rate animation with infinite duration"); }; c.prototype.tickCurrentTime = function (b) { b !== this._currentTime && ((this._currentTime = b), this.updateEffect(0 > this.playbackRate && 0 === this._currentTime ? -1 : this._currentTime)); }; c.prototype.updateEffect = function (b) { b = this.effectTime(b); this.inEffect = null !== b; this.effect.update(null === b ? 1 : b); }; c.prototype.finishAnimation = function (b) { this.finish(); b && (this.updateEffect(null), this.finishedFlag || ((this.finishedFlag = !0), this.onFinish && this.onFinish())); this.onFinish = null; if (this.onFinishAnimation) this.onFinishAnimation(); this._final && this._final(); }; return c; })(JB), VB = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.ticking = !1; b.animations = []; b._awaitCallbacks = []; b._framesCount = 0; return b; } K(c, a); c.prototype.animate = function (b, a) { b = new UB(b, a, this); this.animations.push(b); b.play(); this.startAnimationsFrame(); return b; }; c.prototype.getAnimations = function (b) { this.discardAnimations(); return b ? ea(this.animations, function (a) { return a.scope === b; }) : this.animations; }; c.prototype.await = function (b) { this.ticking ? this._awaitCallbacks.push(b) : b(0); }; c.prototype.startAnimationsFrame = function () { var b = this; b.ticking || ((b.ticking = !0), (b._framesCount = 0), T.requestAnimationFrame(function (a) { return b.frame(a); })); }; c.prototype.frame = function (b) { var a = this; a.currentTime = b; a._framesCount++; w(a.animations, function (b) { return b.frame(); }); a.discardAnimations(); 0 === a.animations.length ? a.final() : T.requestAnimationFrame(function (b) { return a.frame(b); }); }; c.prototype.discardAnimations = function () { this.animations = ea(this.animations, function (b) { b = b.playState(); return "finished" !== b && "idle" !== b; }); }; c.prototype.final = function () { var b = this._awaitCallbacks.slice(), a = this._framesCount; this.ticking = !1; this._awaitCallbacks = []; setTimeout(function () { w(b, function (b) { return b(a); }); }); }; return c; })(KB), Ce = new ((function () { function a() {} a.prototype.create = function () { return new VB(); }; return a; })())().create(), vl = {}, ZB = (function () { function a() {} a.prototype.createEventsProcessorType = function () { return "ontouchstart" in T ? WB : "PointerEvent" in T ? XB : YB; }; return a; })(), $B = (function () { function a() { this.subscribedEvents = {}; } a.prototype.isStoreEvent = function (a) { return null != vl[a]; }; a.prototype.addEvent = function (a, b, d) { var c = vl[b]; if (!c) return !1; this.subscribedEvents[b] || (this.subscribedEvents[b] = []); a = new c(a, d); a.on(); this.subscribedEvents[b].push(a); return !0; }; a.prototype.removeEvent = function (a, b, d) { if (!this.isStoreEvent(b)) return !1; if (!this.subscribedEvents[b]) return !0; for (var c = this.subscribedEvents[b].length, f = 0; f < c; f++) { var g = this.subscribedEvents[b][f]; g.eventTarget !== a || (d && g.fn !== d) || (this.subscribedEvents[b].splice(f, 1), g.un(), c--); } return !0; }; return a; })(), Df = {}, Sb = (function () { function a(a, b) { var c = this; this.eventTarget = a; this.fn = b; this.pointers = {}; this.pointerEvents = ["pointerdown", "pointerenter", "pointerout"]; this.publicPointerEvents = ["pointermove", "pointerup", "pointercancel", "pointerout"]; this.touchEvents = ["touchstart", "touchend", "touchmove", "touchcancel"]; this.publicTouchEvents = []; this.mouseEvents = ["mousedown", "mousemove", "mouseover", "mouseout", "mouseup"]; this.publicMouseEvents = []; this.innerEventsHandler = function (b) { b.type === da.Down && (c.pointers[b.id] = b); c.processEventDescription(b); b.eventData.pointers = c.pointersToArray(); c.eventsHandler(b); b.type === da.Move && c.pointers[b.id] && (c.pointers[b.id] = b); if (b.type === da.Up || b.type === da.Leave) delete c.pointers[b.id], delete Df[b.id]; }; } a.prototype.on = function () { this.hasSubscription || (this.subscribe(), (this.hasSubscription = !0)); }; a.prototype.un = function () { this.hasSubscription && (this.unsubscribe(), (this.hasSubscription = !1)); }; a.prototype.clearPointers = function () { for (var a in Df) delete Df[a]; }; a.prototype.pointersToArray = function () { var a = [], b; for (b in Df) a.push(Df[b]); return a; }; a.prototype.subscribe = function () { this.eventsProcessor = new (new ZB().createEventsProcessorType())(this.eventTarget, this.innerEventsHandler, { pointerEvents: this.pointerEvents, publicPointerEvents: this.publicPointerEvents, touchEvents: this.touchEvents, publicTouchEvents: this.publicTouchEvents, mouseEvents: this.mouseEvents, publicMouseEvents: this.publicMouseEvents, }); this.eventsProcessor.subscribe(); }; a.prototype.unsubscribe = function () { this.eventsProcessor.unsubscribe(); }; a.prototype.processEventDescription = function (a) { Df[a.id] = new aC(a.id, a.pageX, a.pageY, a.clientX, a.clientY); }; return a; })(); (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.pointerEvents = ["pointerdown"]; b.publicPointerEvents = ["pointerup", "pointercancel"]; b.touchEvents = ["touchstart"]; b.publicTouchEvents = ["touchend", "touchcancel"]; b.mouseEvents = ["mousedown"]; b.publicMouseEvents = ["mouseup", "mouseout"]; return b; } K(c, a); c.prototype.eventsHandler = function (b) { switch (b.type) { case da.Down: (b.eventData.customEventType = "vdown"), pf(b, this.eventTarget), this.fn(b.eventData); } }; return (c = Eb([Ob("vdown")], c)); })(Sb); (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.subscribe = function () { var b = this; b.eventsProcessor = new dt( b.eventTarget, function (a) { return b.eventsHandler(a); }, { events: ["keyup"] } ); b.eventsProcessor.subscribe(); }; c.prototype.eventsHandler = function (b) { 13 == b.keyCode && this.fn(b); }; return (c = Eb([Ob("vkeyenter")], c)); })(Sb); (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.subscribe = function () { var b = this; b.eventsProcessor = new dt( b.eventTarget, function (a) { return b.eventsHandler(a); }, { events: ["focus", "blur"] } ); b.eventsProcessor.subscribe(); }; c.prototype.eventsHandler = function (b) { "focus" === b.type ? (b.hasFocus = !0) : "blur" === b.type && (b.hasFocus = !1); this.fn(b); }; return (c = Eb([Ob("vchangefocus")], c)); })(Sb); (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.pointerEvents = ["pointerup", "pointercancel"]; b.publicPointerEvents = []; b.touchEvents = ["touchend", "touchcancel"]; b.mouseEvents = ["mouseup", "mouseout"]; return b; } K(c, a); c.prototype.eventsHandler = function (b) { switch (b.type) { case da.Up: (b.eventData.customEventType = "vup"), pf(b, this.eventTarget), this.fn(b.eventData); } }; return (c = Eb([Ob("vup")], c)); })(Sb); (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.pointerEvents = ["pointermove", "pointerdown", "pointerout", "pointerleave"]; b.publicPointerEvents = ["pointerup", "pointercancel"]; b.touchEvents = ["touchmove", "touchstart", "touchend", "touchcancel"]; b.mouseEvents = ["mousemove", "mousedown", "mouseup"]; b.downArgs = []; b._resetDiff = 4; return b; } K(c, a); c.prototype.subscribe = function () { a.prototype.subscribe.call(this); }; c.prototype.eventsHandler = function (b) { var a = nh(this.downArgs, "id", b.id); switch (b.type) { case da.Down: if (!Jq(b.eventData)) break; this.downArgs.push(b); break; case da.Move: if (!a) break; var c = a.clientX - b.clientX; b = a.clientY - b.clientY; c * c + b * b > this._resetDiff && this.downArgs.splice(this.downArgs.indexOf(a), 1); break; case da.Up: a && a.id === b.id && a.eventData.target === b.eventData.target && ((b.eventData.customEventType = "vclick"), pf(b, this.eventTarget), this.fn(b.eventData), this.downArgs.splice(this.downArgs.indexOf(a), 1)); } }; return (c = Eb([Ob("vclick")], c)); })(Sb); (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.pointerEvents = ["pointerenter", "pointerleave", "pointercancel"]; b.publicPointerEvents = []; b.touchEvents = ["touchstart", "touchend", "touchcancel"]; b.mouseEvents = ["mouseover", "mouseout"]; return b; } K(c, a); c.prototype.eventsHandler = function (b) { switch (b.type) { case da.Down: case da.Enter: (b.eventData.customEventType = "venter"), pf(b, this.eventTarget), this.fn(b.eventData); } }; return (c = Eb([Ob("venter")], c)); })(Sb); (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.pointerEvents = ["pointerout", "pointercancel"]; b.publicPointerEvents = []; b.touchEvents = ["touchend", "touchcancel"]; b.mouseEvents = ["mouseout"]; return b; } K(c, a); c.prototype.eventsHandler = function (b) { switch (b.type) { case da.Up: case da.Leave: (b.eventData.customEventType = "vleave"), this.fn(b.eventData); } }; return (c = Eb([Ob("vleave")], c)); })(Sb); (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.pointerEvents = ["pointermove"]; b.touchEvents = ["touchmove"]; b.mouseEvents = ["mousemove"]; b.publicPointerEvents = ["pointerup", "pointercancel"]; b.publicTouchEvents = ["touchend", "touchcancel"]; b.publicMouseEvents = ["mouseup", "mouseout"]; return b; } K(c, a); c.prototype.eventsHandler = function (b) { switch (b.type) { case da.Move: (b.eventData.customEventType = "vmove"), pf(b, this.eventTarget), this.fn(b.eventData); } }; return (c = Eb([Ob("vmove")], c)); })(Sb); (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.timeoutId = null; b.timeout = 750; return b; } K(c, a); c.prototype.eventsHandler = function (b) { var a = this; switch (b.type) { case da.Down: this.timeoutId = setTimeout(function () { a.fn({ type: "taphold", clientX: b.clientX, clientY: b.clientY }); a.timeoutId = null; }, this.timeout); break; case da.Move: case da.Up: this.reset(); } }; c.prototype.reset = function () { this.timeoutId && (clearTimeout(this.timeoutId), (this.timeoutId = null)); }; return (c = Eb([Ob("taphold")], c)); })(Sb); (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.distance = 0; b.distanceX = 0; b.distanceY = 0; b.threshold = 0.3; return b; } K(c, a); c.prototype.eventsHandler = function (b) { switch (b.type) { case da.Move: this.callPinchEvent(b); break; case da.Up: 2 === Object.keys(this.pointers).length && (this.distance = 0); } }; c.prototype.callPinchEvent = function (b) { var a = Object.keys(this.pointers); if (2 !== a.length) this.distance = 0; else { var c = this.pointers[a[0]], f = this.pointers[a[1]], g = !1, h = !1; c.id === b.id ? ((c = b), (g = c.clientX < f.clientX), (h = c.clientY < f.clientY)) : f.id === b.id && ((f = b), (g = f.clientX < c.clientX), (h = f.clientY < c.clientY)); var k = this.calculateDistance(c, f), l = this.calculateAxisDistance(c, f, { x: 1, y: 0 }), m = this.calculateAxisDistance(c, f, { x: 0, y: 1 }); if (0 === this.distance) (this.distance = k), (this.distanceX = l), (this.distanceY = m); else { var n = k - this.distance; if (!(Math.abs(n) < this.threshold)) { var p = l - this.distanceX, q = m - this.distanceY; this.distance = k; this.distanceX = l; this.distanceY = m; this.fn({ type: "pinch", distance: this.distance, offset: n, offsetX: p, offsetY: q, isLeftPointer: g, isTopPointer: h, pointersCount: a.length, eventData: b.eventData, firstClientX: c.clientX, firstClientY: c.clientY, secondClientX: f.clientX, secondClientY: f.clientY, }); } } } }; c.prototype.calculateDistance = function (b, a) { var c = a.clientX - b.clientX; b = a.clientY - b.clientY; return Math.sqrt(c * c + b * b); }; c.prototype.calculateAxisDistance = function (b, a, c) { return Math.abs(c.x * a.clientX + c.y * a.clientY - (c.x * b.clientX + c.y * b.clientY)); }; return (c = Eb([Ob("pinch")], c)); })(Sb); (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.eventsHandler = function (b) { switch (b.type) { case da.Move: this.callMoveEvent(b); } }; c.prototype.callMoveEvent = function (b) { var a = b.id; this.pointers[a] && this.fn({ type: "move", offsetX: b.clientX - this.pointers[a].clientX, offsetY: b.clientY - this.pointers[a].clientY, pointersCount: Object.keys(this.pointers).length }); }; return (c = Eb([Ob("move")], c)); })(Sb); (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.timeoutInterval = function () { return 500; }; c.prototype.resetTimeoutInterval = function () { return 300; }; c.prototype.getName = function () { return "DoubleTapEvent"; }; c.prototype.tapCount = function () { return 2; }; return (c = Eb([Ob("doubletap")], c)); })( (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.timeoutId = null; b.resetTimeoutId = null; b.currentTapCount = 0; return b; } K(c, a); c.prototype.eventsHandler = function (b) { var a = this; switch (b.type) { case da.Down: clearTimeout(this.timeoutId); clearTimeout(this.resetTimeoutId); this.currentTapCount++; this.timeoutId = setTimeout(function () { a.currentTapCount === a.tapCount() && ((b.eventData.customEventType = a.getName()), pf(b, a.eventTarget), a.fn(b.eventData)); a.currentTapCount = 0; }, this.timeoutInterval()); break; case da.Up: this.resetTimeoutId = setTimeout(function () { a.currentTapCount = 0; }, this.resetTimeoutInterval()); } }; return c; })(Sb) ); (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.getName = function () { return "vdblclick"; }; c.prototype.clicksCount = function () { return 2; }; c.prototype.timeout = function () { return 300; }; return (c = Eb([Ob("vdblclick")], c)); })( (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.downArgs = []; b.currentClicksCount = 0; return b; } K(c, a); c.prototype.eventsHandler = function (b) { var a = this, c = nh(this.downArgs, "id", b.id); switch (b.type) { case da.Down: if (!Jq(b.eventData)) break; clearTimeout(this.timeoutId); this.downArgs.push(b); break; case da.Up: c && c.id === b.id && c.eventData.target === b.eventData.target && (clearTimeout(this.timeoutId), this.currentClicksCount++, (b.eventData.customEventType = this.getName()), this.currentClicksCount === this.clicksCount() ? (this.fn(b.eventData), (this.currentClicksCount = 0)) : (this.timeoutId = setTimeout(function () { a.currentClicksCount = 0; }, this.timeout())), this.downArgs.splice(this.downArgs.indexOf(c), 1)); } }; return c; })(Sb) ); var da; (function (a) { a[(a.None = 0)] = "None"; a[(a.Down = 1)] = "Down"; a[(a.Move = 2)] = "Move"; a[(a.Enter = 3)] = "Enter"; a[(a.Leave = 4)] = "Leave"; a[(a.Up = 5)] = "Up"; })(da || (da = {})); var Hm = (function () { return function (a, c, b, d, e, f, g) { this.type = a; this.id = c; this.pageX = b; this.pageY = d; this.clientX = e; this.clientY = f; this.eventData = g; }; })(), aj = (function () { function a(a, b, d) { void 0 === d && (d = {}); this.el = a; this.eventsHandler = b; this.options = d; } a.prototype.getWindowForElement = function () { var a = this.el; a = a.ownerDocument || a; return a.defaultView || a.parentWindow || T; }; a.prototype.triggerEventsHandler = function (a) { this.eventsHandler && this.eventsHandler(a); }; a.prototype.handleEvents = function (a, b, d, e) { var c; if (a && a.length) { try { for (var g = ya(a), h = g.next(); !h.done; h = g.next()) this.el[b](h.value, d, e); } catch (l) { var k = { error: l }; } finally { try { h && !h.done && (c = g.return) && c.call(g); } finally { if (k) throw k.error; } } return !0; } return !1; }; a.prototype.handlePublicEvents = function (a, b, d, e) { var c, g = this.getWindowForElement(); if (a && a.length) { try { for (var h = ya(a), k = h.next(); !k.done; k = h.next()) g[b](k.value, d, e); } catch (m) { var l = { error: m }; } finally { try { k && !k.done && (c = h.return) && c.call(h); } finally { if (l) throw l.error; } } return !0; } return !1; }; return a; })(), dt = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.handler = function (a) { b.triggerEventsHandler(a); }; return b; } K(c, a); c.prototype.subscribe = function () { this.handleEvents(this.options.events, "addEventListener", this.handler); this.handlePublicEvents(this.options.publicEvents, "addEventListener", this.handler); }; c.prototype.unsubscribe = function () { this.handleEvents(this.options.events, "removeEventListener", this.handler); this.handlePublicEvents(this.options.publicEvents, "removeEventListener", this.handler); }; return c; })(aj), YB = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.handler = function (a) { switch (a.type.toLowerCase()) { case "mousedown": var c = da.Down; break; case "mousemove": c = da.Move; break; case "mouseover": c = da.Enter; break; case "mouseout": c = da.Leave; break; case "mouseup": c = da.Up; } b.triggerEventsHandler(new Hm(c, "1", a.pageX, a.pageY, a.clientX, a.clientY, a)); }; return b; } K(c, a); c.prototype.subscribe = function () { this.handleEvents(this.options.mouseEvents, "addEventListener", this.handler); this.handlePublicEvents(this.options.publicMouseEvents, "addEventListener", this.handler); }; c.prototype.unsubscribe = function () { this.handleEvents(this.options.mouseEvents, "removeEventListener", this.handler); this.handlePublicEvents(this.options.publicMouseEvents, "removeEventListener", this.handler); }; return c; })(aj), WB = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.handler = function (a) { switch (a.type.toLowerCase()) { case "touchstart": b.triggerTouchEvent(da.Down, a); break; case "touchmove": b.triggerTouchEvent(da.Move, a); break; case "touchend": case "touchcancel": b.triggerTouchEvent(da.Up, a); } }; return b; } K(c, a); c.prototype.subscribe = function () { this.handleEvents(this.options.touchEvents, "addEventListener", this.handler, { passive: !1 }); this.handlePublicEvents(this.options.publicTouchEvents, "addEventListener", this.handler, { passive: !1 }); }; c.prototype.unsubscribe = function () { this.handleEvents(this.options.touchEvents, "removeEventListener", this.handler); this.handlePublicEvents(this.options.publicTouchEvents, "removeEventListener", this.handler); }; c.prototype.triggerTouchEvent = function (b, a) { for (var c = 0; c < a.changedTouches.length; c++) { var d = a.changedTouches[c]; this.triggerEventsHandler(new Hm(b, d.identifier, d.pageX, d.pageY, d.clientX, d.clientY, a)); } }; return c; })(aj), XB = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.handler = function (a) { var c = a.type, d = b.getIdFromEvent(a); switch (c.toLowerCase()) { case "pointerdown": var g = da.Down; break; case "pointermove": g = da.Move; break; case "pointerenter": g = da.Enter; break; case "pointerout": g = da.Leave; break; case "pointerup": case "pointercancel": case "pointerleave": g = da.Up; } b.triggerEventsHandler(new Hm(g, d, a.pageX, a.pageY, a.clientX, a.clientY, a)); }; return b; } K(c, a); c.prototype.subscribe = function () { this.handleEvents(this.options.pointerEvents, "addEventListener", this.handler); this.handlePublicEvents(this.options.publicPointerEvents, "addEventListener", this.handler); }; c.prototype.unsubscribe = function () { this.handleEvents(this.options.pointerEvents, "removeEventListener", this.handler); this.handlePublicEvents(this.options.publicPointerEvents, "removeEventListener", this.handler); }; c.prototype.getIdFromEvent = function (b) { return b.pointerId.toString(); }; return c; })(aj), aC = (function () { return function (a, c, b, d, e) { this.id = a; this.pageX = c; this.pageY = b; this.clientX = d; this.clientY = e; }; })(), bC = fa(["div", "input", "button"]), hi = function (a) { return a ? J(bC, a.toLowerCase()) : !1; }, bj = function (a, c, b) { c = b || "svg"; return (c = hi(a) ? "http://www.w3.org/1999/xhtml" : "svg" === c ? "http://www.w3.org/2000/svg" : "html" === c ? "http://www.w3.org/1999/xhtml" : void 0) ? ba.createElementNS(c, a) : ba.createElement(a); }, Zx = function (a) { if (a) { var c = a.parentNode; c && c.removeChild(a); } }, cC = "alt disabled href id src style title class onclick tabindex role aria-label".split(" "), dC = ["user-select", "outline"], Qq = function (a) { if (0 === a.lastIndexOf("xml:", 0)) return "http://www.w3.org/XML/1998/namespace"; if (0 === a.lastIndexOf("xlink:", 0)) return "http://www.w3.org/1999/xlink"; }, yl = function (a, c) { a = a.tagName.toLowerCase(); return (hi(a) && -1 === cC.indexOf(c)) || -1 < dC.indexOf(c); }, Pq = { width: "0", height: "0", x: "0", y: "0", "z-index": "0", fill: "black", stroke: "none", opacity: "1", "stroke-width": "1", display: "inline", visibility: "visible", transform: "none", "clip-path": "none" }, eC = Jj("width,height,font-size,font-family"), Im = { image: function (a, c) { return a.createElement($s, "image", c); }, clipRect: function (a, c) { return a.createElement(HB, "clipPath", c); }, clipPath: function (a, c) { return a.createElement(zm, "clipPath", c); }, mask: function (a, c) { return a.createElement(IB, "mask", c); }, }, et = function (a, c) { var b = ba.createElement("div"), d = function (b) { return ( '
' ); }; b.style.cssText = "position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"; b.innerHTML = d() + d(" width: 200%; height: 200%"); a.appendChild(b); var e, f, g, h, k = a.offsetWidth, l = a.offsetHeight, m = b.childNodes[0], n = m.childNodes[0], p = b.childNodes[1], q = function () { n.style.width = "100000px"; n.style.height = "100000px"; m.scrollLeft = 1e5; m.scrollTop = 1e5; p.scrollLeft = 1e5; p.scrollTop = 1e5; }; q(); var r = function () { f = 0; e && ((k = g), (l = h), c.call()); }, u = function () { g = a.offsetWidth; h = a.offsetHeight; (e = g !== k || h !== l) && !f && (f = T.requestAnimationFrame(r)); q(); }; d = function (b) { b.attachEvent ? b.attachEvent("onscroll", u) : b.addEventListener("scroll", u); }; d(m); d(p); return b; }, fC = (function (a) { function c(b) { var c = this; b = b || {}; var e = b.container, f = b.textRendering, g = (c = a.call(this, e, b.width, b.height, b.defaultWidth, b.defaultHeight) || this); ix(g); g.disableAnimation = !1; g.eventsStore = new $B(); g._noRender = b.noRender; g._staticSize = b.staticSize; g._skipDomDestroy = b.skipDomDestroy; g._defaultOptions = { transition: { animation: { duration: 500, easing: "ease-in-out-circ" }, generator: "default" } }; g._measuringImages = {}; if (!g._noRender) { g.initContainer(e); e = g.root && g.root.el; var h = g.getSvgSize(), k = g.width || "100%", l = g.height || "100%"; g.documentElement = new tb(ba.documentElement, g); g.root = e ? g.root : g.svg({ width: h.width, height: h.height, textRendering: f }); g.overlay = g.htmlElement("", { id: Dd("overlay"), position: "absolute", left: 0, top: 0 }); g.wrapper = g.htmlElement("", { id: qp("JSCharting_") }); g.wrapper.attr({ width: k, height: l, "-webkit-tap-highlight-color": "rgba(0, 0, 0, 0)", position: "relative" }); g.container.el.appendChild(g.wrapper.el); g.wrapper.el.appendChild(g.root.el); g.wrapper.el.appendChild(g.overlay.el); !b.staticSize && (g._resizeSensor = et(g.wrapper.el, function () { return g.rootResize(); })); } return c; } K(c, a); c.prototype.resubscribeResize = function () { var b = this; b._resizeSensor && (b._resizeSensor.parentNode.removeChild(b._resizeSensor), (b._resizeSensor = et(b.wrapper.el, function () { return b.rootResize(); }))); }; c.prototype.setCursor = function (b) { this._setCursor !== b && this.processAttributes(this.wrapper, { cursor: b }); this._setCursor = b; }; c.prototype.getCursor = function () { return this._setCursor; }; c.prototype.element = function (b, a, c) { var d = this; if (!Q(b)) { if (b instanceof tb) return b; if (J(Im, b)) return Im[b](this, a); if (!O(b)) return this.element(b.tag, b.attr, c); var e = a ? a.childNodes : null; e && (a = Ga(a, ["childNodes"])); var h = this.createElement(tb, b, a, c); h && e && w(e, function (b) { d.element(b).add(h); }); return h; } }; c.prototype.isRootHidden = function () { var b = this.root && this.root.el; if (!b) return !0; b = T.getComputedStyle(b); return "hidden" === b.visibility || "none" === b.display; }; c.prototype.isRootDestroyed = function () { var b = this.root; return b ? b.isDestroyed : !0; }; c.prototype.add = function (b, a) { var c = b.el instanceof HTMLElement, d = a && a.el && a.el instanceof HTMLElement; if (a && a.addElementToParent && !c) return a.addElementToParent(b), b; a = c ? (d ? a : this.overlay) : a || this.root; if (b.data.zIndex || a.data.ordered) return (c = b.data.zIndex || 0), (a.data.ordered = !0), Oq(a, b, c), b; Kq(a, b); return b; }; c.prototype.addBefore = function (b, a) { zg(b, a); return b; }; c.prototype.addAfter = function (b, a) { Lq(b, a); return b; }; c.prototype.attr = function (b, a, c) { var d; if (Q(a)) return Rq(b), b; if (!a) return b; var e = O(a), h = t(c), k = e && !h, l = a; e && h && (l = ((d = {}), (d[a] = c), d)); if (!b) return this.rootAttr(l, k); if (l.transition) return b.transition(l.transition), b; a = this.processAttributes(b, Fm(l, b)); return k ? a : b; }; c.prototype.rect = function (b, a, c, f, g, h) { if (Q(b)) return this.element("rect"); b = Pa(b) ? b : { x: b, y: a, width: c, height: f, rx: g, ry: h }; return this.element("rect", b); }; c.prototype.circle = function (b, a, c) { if (Q(b)) return this.element("circle"); b = Pa(b) ? b : { cx: b, cy: a, r: c }; return this.element("circle", b); }; c.prototype.image = function (b, a, c, f, g) { if (Q(b)) return this.element("image"); b = Pa(b) ? b : { src: b, x: a, y: c, width: f, height: g }; return this.createElement($s, "image", b); }; c.prototype.query = function (b, a) { return a ? this.wrap(gi(b, a.el)) : this.wrap(gi(b)); }; c.prototype.queryAll = function (b) { var a = this; b = ba.querySelectorAll(b); return B(b, function (b) { return a.wrap(b); }); }; c.prototype.svg = function (b) { b = this.createElement(tb, "svg", b); b.el.setAttribute("xmlns", "http://www.w3.org/2000/svg"); b.el.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"); this.element("desc", { text: "Created with JSCharting" }).add(b); return b; }; c.prototype.reCreateElement = function (b, a) { var c = b.parentNode, d = bj(a); b.destroy(); b.init(d, a); b.isPatched = !0; c && b.add(c); return b; }; c.prototype.destroy = function (b, a) { var c = this; a = a || c._skipDomDestroy; if (b) { var d = Zh(c); nl(c, b, function (b) { return d && ql(c, b); }); var g = b.data.events; g && g.length && w(g.slice(0), function (a) { return c.un(b, a.type, a.fn); }); !a && Yx(b); b.isDestroyed = !0; return b; } d && d.destroy(); Zh(c, null); T.removeEventListener("resize", void 0, !1); Iw(c.container.attr("id")) && c.destroy(c.container); c.destroy(c.wrapper); c.destroy(c.overlay); c.destroy(c.documentElement, !0); return c.destroy(c.root); }; c.prototype.on = function (b, a, c) { var d = function (a) { return c.call(b, a); }; this.eventsStore.addEvent(b.el, a, d) || b.el.addEventListener(a, d, !1); (b.data.events = b.data.events || []).push({ type: a, fn: c, f: d }); return b; }; c.prototype.un = function (b, a, c) { if (!b.data.events) return b; for (var d = (b.data.events = b.data.events || []), e = d.length - 1; -1 < e; e--) { var h = d[e]; (h.type !== a && a) || (h.fn !== c && c) || (this.eventsStore.removeEvent(b.el, h.type, h.f) || b.el.removeEventListener(h.type, h.f, !1), d.splice(e, 1)); } return b; }; c.prototype.box = function (b, a) { var c = this, d; if (b && (d = b.el)) { var g = T.getComputedStyle(d); d = g.width; g = g.height; if (0 < d.indexOf("px") && 0 < g.indexOf("px") && ((d = parseInt(d)), (g = parseInt(g)), 0 <= d && 0 <= g)) return { x: 0, y: 0, width: d, height: g }; } a = ay(b || this.root, a); d = t(this.width) && nb(this.width); g = t(this.height) && nb(this.height); var h = function (b) { var a; return !(null === (a = c.root) || void 0 === a ? 0 : a.attr) || "100%" !== c.root.attr(b); }, k = !a.width && !d, l = !a.height && !g, m = k && h("width"); h = l && h("height"); b || (!m && !h) || this._staticSize ? (b || (!k && !l) || ((k = this.container.getBbox()), (a.width = a.width || k.width), (a.height = a.height || k.height)), (this._defaultSizeIsSet = !1)) : ((a.width = a.width || this.defaultWidth), (a.height = a.height || this.defaultHeight), (k = this.wrapper) && Ma.emit("warning", k.attr("id"), "defaultSizeIsSet", { container: k.el }), (this._defaultSizeIsSet = !0)); b || (d && (a.width = this.width), g && (a.height = this.height)); return a; }; c.prototype.isDefaultSizeSet = function () { return this._defaultSizeIsSet; }; c.prototype.pathInner = function (b, a) { if (Q(a)) return this.createElement(b, "path"); var c = ja(a); a = O(a) || c ? { d: c ? pc(a, " ") : a } : a; ja(a.d) && (a.d = pc(a.d, " ")); a.d && a.d.path && (a.d = a.d.path); return this.createElement(b, "path", a); }; c.prototype.rootResize = function () { if (!this.width || !this.height) { var b = this.root.attr("display"), a = this.getSvgSize(); this.root.attr({ width: a.width, height: a.height, display: b }); } ym && ym.trigger(); }; c.prototype.getSvgSize = function () { var b = this.container.getBbox(); return { width: this.width || (b.width ? "100%" : this.defaultWidth), height: this.height || (b.height ? "100%" : this.defaultHeight) }; }; c.prototype.wrap = function (b) { return Ag(b, this); }; c.prototype.createElement = function (b, a, c, f) { f = bj(a, null, f); b = new b(f, this, a); "path" === b.nodeName && ((c = c || {}), c.fill || (c.fill = "none"), c.stroke || (c.stroke = "none")); c && b.attr(c); b.isPatched = !0; return b; }; c.prototype.processAttributes = function (b, a) { var c = this; if (a && (a.beforeAttr && (a.beforeAttr(a), delete a.beforeAttr), a.reset && (Rq(b, a), delete a.reset), b.el)) { if (O(a)) return Nq(b, a); var d = this.isAnimationDisabled(); if (d || !b.isPatched || (!a.autoTransition && !a.animation) || !b.tryAutoTransition(a)) { J(a, "animation") && (a.animation = void 0); if (a.continueAnimation) { if (((a.continueAnimation = void 0), b._transition && b._transition.attachToEnd(a))) return; } else b.finishAnimation(d ? null : a); return $x(b, a, function (b, a, d) { dq(c, b, a, d, function (b) { return ql(c, b); }); }); } } }; c.prototype.isAnimationDisabled = function (b) { return this.disableAnimation || !1 === this._defaultOptions.transition.animation || (b && !1 === b.animation); }; c.prototype.showHide = function (b, a) { var c = b.attr("display"); a !== ("none" !== c) && b.attr("display", a ? null : "none"); return b; }; c.prototype.show = function (b) { return this.showHide(b, !0); }; c.prototype.hide = function (b) { return this.showHide(b, !1); }; c.prototype.visible = function (b, a) { return this.showHide(b, t(a) ? a : "none" === b.attr("display")); }; c.prototype.calculateImageSize = function (b, a) { Mg(b, ".svg") ? this.calculateSvgImageSize(b, a) : this.calculateRasterImageSize(b, a); }; c.prototype.load = function (b, a) { var c = this; Dv(b, function (b) { var d = b.data, e = bj("div", null, "html"); b = !0; /^\s*<\s*svg(?:\s|>)/m.test(d) || ((d = '' + d + ""), (b = !1)); e.innerHTML = d; if ((d = e.getElementsByTagName("svg")[0])) if (b) b = Ag(d, c); else { for (b = ba.createDocumentFragment(); d.firstChild; ) b.appendChild(d.firstChild); b = Ag(b, c); } else b = null; return a(b); }); }; c.prototype.htmlElement = function (b, a) { b = b || ""; var c = bj("div", null, "html"); c.innerHTML = b; b = Ag(c, this, "div"); a && b.attr(a); return b; }; c.prototype.relativeToRoot = function (b, a) { var c = this.getRootBoundingClientRect(); return { x: b - c.left, y: a - c.top }; }; c.prototype.getClientXY = function (b) { var a = this.getRootBoundingClientRect(), c = b.getBbox(), f = 0, g = 0; do { var h = (h = b.attr("transform").translate) ? [h[0], h[1]] : [0, 0]; f += h[0]; g += h[1]; b = b.parentNode; } while (b && "svg" !== b.el.tagName); return { x: c.x + a.left + f, y: c.y + a.top + g }; }; c.prototype.isAnimating = function () { return 0 < Ce.getAnimations().length; }; c.prototype.getOffsetsFromVisualViewport = function (b) { var a = ba.documentElement.getBoundingClientRect(); b = b.parentNode ? b.getBoundingClientRect() : { top: 0, left: 0 }; return { top: b.top - a.top - window.pageYOffset, left: b.left - a.left - window.pageXOffset }; }; c.prototype.getRootBoundingClientRect = function () { var b = this; if (b._rootBoundingClientRect) return b._rootBoundingClientRect; b._rootBoundingClientRect = b.getOffsetsFromVisualViewport(b.root.el); T.setTimeout(function () { b._rootBoundingClientRect = null; }, 1e3); return b._rootBoundingClientRect; }; c.prototype.cssText = function (b, a) { var c = ba, d = c.head || c.getElementsByTagName("head")[0], g = c.createElement("style"); a && g.setAttribute("id", a); g.type = "text/css"; g.styleSheet ? (g.styleSheet.cssText = b) : g.appendChild(c.createTextNode(b)); d.appendChild(g); }; c.prototype.calculateRasterImageSize = function (b, a) { var c = function (b) { return b.addEventListener("load", function () { return a(b.width, b.height); }); }; if (this._measuringImages[b]) (d = this._measuringImages[b]), d.width ? a(d.width, d.height) : c(d); else { this._measuringImages[b] = new Image(); var d = this._measuringImages[b]; c(d); d.src = b; } }; c.prototype.calculateSvgImageSize = function (b, a) { this.load(b, function (b) { return a(b.attr("width") || 0, b.attr("height") || 0); }); }; c.prototype.rootAttr = function (b, a) { var c = this.wrapper, d = this.root; if (a) return "disableAnimation" === b ? this.disableAnimation : this.processAttributes(d, b); b.transition && (L(this._defaultOptions.transition, b.transition), delete b.transition); J(b, "disableAnimation") && ((this.disableAnimation = b.disableAnimation), delete b.disableAnimation); b.container && (this.replaceContainer(b.container), delete b.container); ub(b) || ((a = Fm(b, d)), (b = Oa(a, eC)), (a = Oa(a)), b && this.processAttributes(c, b), a && this.processAttributes(d, a)); }; c.prototype.defaultOptions = function () { return this._defaultOptions; }; c.prototype.replaceContainer = function (b) { this.initContainer(b); this.container.el.appendChild(this.wrapper.el); this.wrapper.el.appendChild(this.root.el); this.wrapper.el.appendChild(this.overlay.el); }; c.prototype.initContainer = function (b) { if (b && (O(b) || b.tagName)) if (((b = b.tagName ? b : gi(b)), "svg" === b.tagName.toLowerCase())) { this.root = this.wrap(b); var a = b.getElementsByTagName("desc")[0]; b = b.getElementsByTagName("defs")[0]; a || this.element("desc", { text: "Created with JSCharting" }).add(this.root); b && new tb(b, this).add(this.root); } else if ("div" === b.tagName.toLowerCase()) { for (; b.lastChild; ) b.removeChild(b.lastChild); this.container = this.wrap(b); } this.container || ((this.container = this.htmlElement("", { id: Dd("container") })), gi("body").appendChild(this.container.el)); }; return c; })(EB), ft = new ((function () { function a() {} a.prototype.create = function (a) { return new fC(a); }; return a; })())(), gt = (function () { function a() {} a.prototype.generate = function (a, b, d) { var c = {}, f; Da(a, function (b) { t(a[b]) && ("z-index" === b ? ((f = f || {}), (f[b] = a[b])) : J(Em, b) && (c[b] = a[b])); }); a.animation && (c.animation = a.animation); b = { middle: { from: b, to: c }, end: a }; f && (b.start = f); return b; }; return a; })(), gC = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.generate = function (b, c, e) { e = a.prototype.generate.call(this, b, c, e); var d = A({}, c, b), g = !c.d || Mg(c.d, "Z"); b = !b.d || Mg(b.d, "Z"); e.middle.to.fill && !c.fill && (e.middle.from.fill = "none"); if (g && b) return e; e.middle.from.fill = g ? c.fill || "none" : "none"; if (e.middle.to.fill || d.fill) e.middle.to.fill = b ? d.fill || "none" : "none"; return e; }; return c; })(gt), hC = { default: new gt().generate, path: new gC().generate }, iC = (function () { function a(a) { this._el = a; this.scope = this._el.data.id; this._renderer = this._el.renderer; } a.prototype.attr = function (a) { var b = this._el; return b.isComposite ? b.attr(a) : this._renderer.attr(b, a); }; a.prototype.attrEnd = function (a) { var b = this._el; Da(a, function (b) { var c = a[b]; c && !c.el && !c.isDef && c.val && (a[b] = c.val); }); b.isComposite ? b.attr(a) : this._renderer.attr(b, a); }; a.prototype.normalize = function (a) { return this._el.normalizeAttrs(a); }; a.prototype.parse = function (a, b) { return "u" === b[0] ? this.parseUrl(b) : "%" === b[b.length - 1] ? this.parseDemesion(a, b) : b; }; a.prototype.parseUrl = function (a) { var b = /url\(#(.*)\)/g.exec(a); if (!b) return a; var c = this._renderer; b = b[1]; var e = ol(c, b); e ? (b = e) : (c = c.query("#" + b)) ? ((e = c.nodeName.toLowerCase()), (e = Am[e]) && e(c, b), (b = c)) : (b = void 0); return b && b.val ? b.val : a; }; a.prototype.parseDemesion = function (a, b) { var c = parseFloat(b), e = !!this._el.parentNode, f = e ? this._el.parentNode.box() : this._el.box(); return J(f, a) ? (e ? (c * f[a]) / 100 : f[a]) : b; }; return a; })(), ht = (function () { function a(a, b) { this._animation = {}; this._defaults = {}; this._activeAnimatingAttrs = this._animatingAttrs = null; this._skipEnd = !1; this._processors = {}; this._updater = a; this.scope = this._updater.scope; b && this.options(b); } a.prototype.options = function (a) { if (a) { a.animation && L(this._animation, Og[1].resolve(a.animation)); a.defaults && L(this._defaults, this.normalize(a.defaults)); a.processors && this.registerProcessors(a.processors); a.generator && (this._generator = hC[a.generator]); var b = a.start, c = a.middle; a = a.end; (!c && !a) || this.checkForSameAnimation(c) || ((this._skipEnd = !0), this.finishAnimation(), (this._skipEnd = !1), b && ((b = this.normalize(b)), this._animatingAttrs && (b = Ga(b, pa(this._animatingAttrs))), this.attr(b)), a && ((this._endAttrs = this._endAttrs || {}), L(this._endAttrs, Ga(a, ["animation", "autoTransition", "attrTransition"]))), (b = this._appliedAnimation = c.to && c.to.animation ? W(this._animation, Og[1].resolve(c.to.animation)) : L({}, this._animation)), c && c.to ? (this.applyAnimation(c.from, c.to, b), this.waitFinish(b)) : this.applyEnd(b)); } }; a.prototype.getAnimationOptions = function () { return this._animation; }; a.prototype.getAnimations = function () { return Ce.getAnimations(this.scope); }; a.prototype.finishAnimation = function (a, b) { void 0 === a && (a = !1); var c = this.getAnimations() || []; if (c.length) { if (b) { var e = this._activeAnimatingAttrs; if (e) { var f = !0, g; for (g in b) if (J(e, g) && e[g] !== b[g]) { f = !1; break; } if (f) return; } } w(c, function (b) { return b.finishAnimation(a); }); } }; a.prototype.tryAutoTransition = function (a, b, d) { if (this._generator && !1 !== a.animation && (!a.animation || 0 !== a.animation.duration)) return this.options(this._generator(a, b(), d)), this; }; a.prototype.attachToEnd = function (a) { if (!(this.getAnimations() || []).length || !a) return !1; var b = (this._endAttrs = this._endAttrs || {}); L(b, a); return !0; }; a.prototype.checkForSameAnimation = function (a) { if (!(a && a.to && a.to.animation && this._animatingAttrs)) return !1; for (var b in a.to) if ("animation" !== b && a.to[b] !== this._animatingAttrs[b]) return !1; return !0; }; a.prototype.applyEnd = function (a) { var b = this; if (!b._skipEnd && ((b._animatingAttrs = null), (b._activeAnimatingAttrs = null), b._endAttrs && !ub(b._endAttrs))) { if (a.beforeAttr || b._beforeAttr) b._endAttrs.beforeAttr = function (c) { return b.checkForBeforeAttr(c, a, null); }; b.attrApllying = !0; b._updater.attrEnd(b._endAttrs); b.attrApllying = !1; b._endAttrs = null; } }; a.prototype.applyAnimation = function (a, b, d) { var c = this; a = this.normalize(a); b = this.normalize(b); var f = this, g = {}, h = {}, k = {}, l = this._animatingAttrs, m = null !== l, n = this._defaults, p = [], q = {}, r = {}, u = !0; m && (b = L(l, b)); (function (b) { Da(b, function (e) { var v = b[e]; if (J(Em, e)) { var x = m && J(l, e) ? c.attr(e) : a && J(a, e) ? a[e] : J(n, e) ? n[e] : c.attr(e), E = Em[e]; E[2] && O(x) && (x = c._updater.parse(e, x)); v && v.isElement && !J(v, "val") ? (q[e] = t(v[e]) ? v[e] : v) : ((x = E[0](x)), (v = E[2] && O(v) ? f._updater.parse(e, v) : v), (v = E[0](v)), (k[e] = v), c._endAttrs && J(c._endAttrs, e) && v === c._endAttrs[e] && delete c._endAttrs[e], x == v || (v && v.isEqual && v.isEqual(x)) || ((r[e] = v), (u = !1), E[1] ? p.push({ key: e, animator: E[1](x, v, d) }) : ((g[e] = x), (h[e] = v)))); } else q[e] = v; }); })(b); this._animatingAttrs = this._curAttrs = this._prevAttrs = k; this._activeAnimatingAttrs = r; this._offset = 0; b = L( { onFrame: function (b, a) { c._offset = b = null === b ? 1 : b; p.length && w(p, function (c) { a[c.key] = c.animator(b); }); c._prevAttrs = c._curAttrs; c._curAttrs = a; c.checkForBeforeAttr(a, d, b); c.attr(a); }, scope: this.scope, }, d ); ub(q) || this.attr(q); u || Ce.animate([g, h], b); }; a.prototype.waitFinish = function (a) { var b = this, c = this.getAnimations(), e = a.onFinish, f = a.final, g = function () { b.applyEnd(a); e && e(); f && f(); }, h = function () { S(c, function (b) { return "finished" !== b.playState(); }) || g(); }; c && 0 < c.length ? (w(c, function (b) { b.onFinish = function () { h(); }; }), h()) : g(); }; a.prototype.normalize = function (a) { if (!a) return null; a = Ga(a, ["animation", "autoTransition", "attrTransition"]); return this._updater.normalize(a); }; a.prototype.attr = function (a) { this.attrApllying = !0; a = this._updater.attr(a); this.attrApllying = !1; return a; }; a.prototype.registerProcessors = function (a) { var b = this; ja(a) ? w(a, function (a) { return b.registerProcessor(a); }) : this.registerProcessor(a); }; a.prototype.registerProcessor = function (a) { a.name && (a.beforeAttr && ((this._beforeAttr = this._beforeAttr || []), this._beforeAttr.push(a.beforeAttr)), (this._processors[a.name] = a)); }; a.prototype.checkForBeforeAttr = function (a, b, d) { var c = this; b.beforeAttr ? b.beforeAttr(a, this._prevAttrs, d) : this._beforeAttr && w(this._beforeAttr, function (b) { return b(a, c._prevAttrs, d); }); }; return a; })(), jC = (function () { function a() {} a.prototype.create = function (a, b) { return new ht(new iC(a), b); }; return a; })(); Og[0] = new jC(); var Jm = fa("transform clipPath clip-path opacity display zIndex".split(" ")), it = W(Jm, fa(["animation", "fill", "stroke"])), kC = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.attr = function (b, a) { return (this.attrApplier = this.attrApplier || new (this.applierType())(this)).attr(b, a); }; return c; })(tb), jt = (function () { function a(a) { this._attrsToApply = {}; this._firstAttrApplied = !1; this._childElements = []; this.renderer = a.renderer; this.virtualElement = a; this.virtualElement.isComposite = !0; } a.prototype.attr = function (a, b) { if (!a || !Pa(a)) { var c = this.virtualElement.data.vals; return J(c, a) ? c[a] : this.renderer.attr(this.virtualElement, a, b); } this._firstAttrApplied && a.animation && a.animation.duration && this.virtualElement.isPatched && !this.renderer.disableAnimation ? ((this._attrsToApply = a), this.renderer.attr(this.virtualElement, this.startAnimationAttrs(a))) : ((this._firstAttrApplied = !0), L(this._attrsToApply, a), this.applyAttrs()); return this.virtualElement; }; a.prototype.startAnimationAttrs = function (a) { return Na({}, a, this.animAttrs()); }; a.prototype.animAttrs = function () { return it; }; a.prototype.groupAttrs = function () { return Jm; }; a.prototype.applyAttrs = function () { var a = this.attrsToApply(), b = Hb(a, Jm); L(this.virtualElement.data.vals, b); this.constructChildren(a, b); this.renderer.attr(this.virtualElement, Na({}, a, this.groupAttrs())); }; a.prototype.attrsToApply = function () { return be(this.virtualElement.data.vals, this._attrsToApply, { animation: void 0 }); }; a.prototype.addElement = function (a) { var b = "circle" === a.elType ? this.renderer.circle(a).add(this.virtualElement) : this.renderer.path(a).add(this.virtualElement); b.data.key = a.key; return b; }; a.prototype.removeElement = function (a) { this.virtualElement.el.removeChild(a.el); }; a.prototype.bindConfig = function (a) { var b = this; Ub( a, b._childElements, function (a) { return b.addElement(a); }, function (b, a) { return a.attr(b); }, function (a) { return b.removeElement(a); }, function (b) { return b.key; }, function (b) { return b.data.key; } ); }; return a; })(), lC = W(it, fa(["d"])), mC = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.animAttrs = function () { return lC; }; c.prototype.constructChildren = function (b, a) { var c = []; if (b.d) { var d = function (b) { b.omit = ["key", "caps"]; c.push(b); }, g = function (b, a, c, e) { b = { key: b, d: a, stroke: z(c.stroke, "none"), fill: z(c.fill, e.stroke, "rgba(0,0,0,.5)"), opacity: z(c.opacity, c["stroke-opacity"], e.opacity, e["stroke-opacity"], 1), zIndex: z(c["z-index"], e["z-index"]), display: z(c.display, e.display), }; d(b); }, h = function (b, c, e) { var f = cy(c, e), h = f ? ey(e, f) : {}; c = W(a, { d: f ? f.d : c, caps: void 0 }); c.key = "l-" + b; d(c); h.start && g("c-start-" + b, h.start, e.start, a); h.end && g("c-end-" + b, h.end, e.end, a); }, k = (this._caps = by(b)); b = this._originalPath = b.d && b.d.isPath ? b.d : Aa(b.d); if (k.eachShape) { b = Ww(b); for (var l = 0; l < b.length; l++) h(l, b[l], k); } else h(0, b, k); this.bindConfig(c); } }; c.prototype.startAnimationAttrs = function (b) { var a = Na({}, b, this.animAttrs()); a.d && (a.d = a.d && a.d.isPath ? a.d : Aa(a.d)); this._skipCapsDuringAnimation = this._originalPath && this._originalPath.hasCurves && !Sq(this._caps) && Sq(b.caps); return a; }; c.prototype.attrsToApply = function () { this._attrsToApply.caps || (this._attrsToApply.caps = {}); var b = a.prototype.attrsToApply.call(this); this._skipCapsDuringAnimation && this.virtualElement.isAnimating() && (b.caps = {}); return b; }; return c; })(jt), Tq = fa(["start", "end"]); (function (a, c) { (Zi[a] = Zi[a] || []).push(c); })("path", function (a, c) { if (!c || !c.caps) return !1; c = a.data.vals; a.renderer.reCreateElement(a, "g"); a.morphType = "lineShape"; var b = new mC(a); b.attr(c); a.attrApplier = b.attr.bind(b); }); var De; (function (a) { a[(a.x = 0)] = "x"; a[(a.y = 1)] = "y"; a[(a.xy = 2)] = "xy"; })(De || (De = {})); var kt; (function (a) { a[(a.Width = 0)] = "Width"; a[(a.Height = 1)] = "Height"; a[(a.Whitespace = 2)] = "Whitespace"; a[(a.None = 3)] = "None"; })(kt || (kt = {})); var Ya = function (a) { return a && "*" === a.valueType; }, tc = function (a) { return a && !a.isMutable && "px" === a.valueType; }, ib = function (a) { return a && "%" === a.valueType; }, Ee = function (a) { return a && "px" === a.valueType; }, Cb = function (a) { return a && !a.isMutable; }, ic = function (a) { return a ? a.px : 0; }, nC = /[0123456789]+|.+/g, Qa = function (a, c) { var b = typeof a; if ("object" === b && a.valueType) return L({}, a); if (0 === a && !c) return ld(); var d = 0, e = 0, f = -Infinity, g = !1, h = 0, k = 0, l = !0; c && ((f = z(c.minPx, -Infinity)), (g = z(c.stretch, !1)), (l = z(c.isMutable, !0))); var m = g ? "*" : "px"; if ("number" === b) (e = a || 0), (d = g ? 1 : a); else if ("string" === b && a.length) switch ((c && ((h = z(c.allSpace, 0)), (k = z(c.freeSpace, 0))), (a = a.match(nC)), (d = parseFloat(a[0])), (d = (c = Ha(d)) || g ? 1 : d), (m = (c ? a[0] : a[1]) || m), (k = g ? e : k), m)) { case "*": e = (k || 0) * (d || 1); break; case "%": e = ((h || 0) * d) / 100; break; case "px": e = d; } e = Pj(oa([e, f]), 6); return { val: d, px: e, valueType: m, isMutable: l }; }, ld = function () { return { val: 0, px: 0, valueType: "px", isMutable: !0, minPx: 0 }; }, rf = function (a, c) { var b, d; c = c || 0; var e = { val: 0, px: 0, valueType: "px" }; if ("number" === typeof a) c = b = d = e = { val: a, px: a, valueType: "px" }; else if (a.length) { e = "string" === typeof a ? a.split(/ +/g) : "object" === typeof a ? a : [0]; var f = { allSpace: c }; c = Qa(e[0], f); b = t(e[1]) ? Qa(e[1], f) : c; d = t(e[2]) ? Qa(e[2], f) : c; e = t(e[3]) ? Qa(e[3], f) : b; } else "object" === typeof a ? ((f = { allSpace: c }), (c = a.top ? Qa(a.top, f) : e), (b = a.right ? Qa(a.right, f) : e), (d = a.bottom ? Qa(a.bottom, f) : e), (e = a.left ? Qa(a.left, f) : e)) : (c = b = d = e); var g = 0, h = 0, k = 0; f = 0 + ((Ee(e) ? e.val : 0) + (Ee(b) ? b.val : 0)); g += (Ee(c) ? c.val : 0) + (Ee(d) ? d.val : 0); h += (ib(e) ? e.val : 0) + (ib(b) ? b.val : 0); k += (ib(c) ? c.val : 0) + (ib(d) ? d.val : 0); return { initial: a, top: c, right: b, bottom: d, left: e, horizontal: { absolute: f, relative: h, px: e.px + b.px }, vertical: { absolute: g, relative: k, px: c.px + d.px } }; }, lt = function (a, c, b) { if (b) { var d = b.padding, e = b.offset, f = d ? d.horizontal.relative : 0; d = d ? d.horizontal.absolute : 0; e = e ? Fe(e.left) + Fe(e.right) : 0; f /= 100; f = 1 + f / (1 - f); d = (Fe(a) + d + e) * f; "px" === a.valueType ? (a = Qa(d)) : a.valueType ? ((a = L({}, a)), (a.px = d)) : (a = d); } d = a; b && 0 !== c.px && ((f = b.padding), (e = b.offset), (b = f ? f.vertical.relative : 0), (f = f ? f.vertical.absolute : 0), (e = e ? Fe(e.top) + Fe(e.bottom) : 0), (b = Fe(c) + f + e + (b / 100) * Fe(d)), "px" === c.valueType ? (c = Qa(b)) : c.valueType ? ((c = L({}, c)), (c.px = b)) : (c = b)); return { width: a, height: c }; }, Fe = function (a) { return a.valueType ? a.px : a; }, mt = function (a, c, b, d, e) { function f(b, a) { if (ja(b)) { var c = b[0]; b = b[1]; } else (c = b.x), (b = b.y); t(c) && (a.x = c); t(b) && (a.y = b); } var g = { x: 0, y: 0, width: 0, height: 0 }, h = { x: 0, y: 0 }, k = { x: 0, y: 0 }; e = e || [0, 0]; c.getBbox ? ((g = void 0 !== c.toGlobal ? c.getGlobalBbox() : void 0 !== a.toGlobal ? a.toGlobal(c.getBbox()) : c.getBbox()), O(b) && (h = cj(b, g)), Fb(b) && ((c = b(g)), f(c, g))) : (f(c, g), O(b) && (h = cj(b, c))); b = d || b; O(b) && (k = cj(b, a.getBbox())); b = void 0 !== a.toGlobal ? a.globalX : 0; d = void 0 !== a.toGlobal ? a.globalY : 0; c = void 0 !== a.toGlobal ? a.offsetX : 0; a = void 0 !== a.toGlobal ? a.offsetY : 0; return { offsetX: t(h.x) ? g.x - b + c + (h.x || 0) - (k.x || 0) + (e[0] || 0) : 0 + (e[0] || 0), offsetY: t(h.y) ? g.y - d + a + (h.y || 0) - (k.y || 0) + (e[1] || 0) : 0 + (e[1] || 0) }; }, nt = function (a, c, b) { var d = b ? b.globalX : 0; b = b ? b.globalY : 0; c = "toLocal" === c ? -1 : 1; return ja(a) ? [a[0] + d * c, a[1] + b * c, a[2], a[3]] : { x: a.x + d * c, y: a.y + b * c, width: a.width, height: a.height }; }, cj = function (a, c) { a = a.split("|"); var b = { left: 0, center: 0.5, right: 1 }, d = { top: 0, middle: 0.5, bottom: 1 }, e = (J(c, "width") ? c.width : c[2]) || 0, f = (J(c, "height") ? c.height : c[3]) || 0, g = {}; w(a, function (a) { t(b[a]) && (g.x = (g.x || 0) + b[a] * e); t(d[a]) && (g.y = (g.y || 0) + d[a] * f); }); return g; }, Ff = function (a, c, b) { void 0 === c && (c = 0); var d = ja(a); if (d) { var e = G(a, 4), f = e[0], g = e[1], h = e[2]; e = e[3]; } else (f = a.x), (g = a.y), (h = a.width), (e = a.height); var k = Q(h) || Q(e); if (Q(f) || Q(g)) return a; a = (c / 2) % 1 || 1; c = b ? b.globalX : 0; b = b ? b.globalY : 0; k || ((h = Ef(h + f, c, a) - Ef(f, c, a)), (e = Ef(e + g, b, a) - Ef(g, b, a))); f = Ef(f, c, a); g = Ef(g, b, a); return d ? (k ? [f, g] : [f, g, h, e]) : k ? { x: f, y: g } : { x: f, y: g, width: h, height: e }; }, Ef = function (a, c, b) { c = b - ((c + a) % 1); 0.5 < Math.abs(c) && (c -= 0 < c ? 1 : -1); return a + c; }, oC = function (a) { function c(e, f) { for (var g = 0, h = a[f].length; g < h; g++) { var k = e.slice(0); k.push(a[f][g]); f === d ? b.push(k) : c(k, f + 1); } } var b = [], d = a.length - 1; c([], 0); return b; }, Ge = { left: 0, top: 0, center: 0.5, middle: 0.5, right: 1, bottom: 1 }, ly = { x: "userX", y: "userY", width: "width", height: "height" }, ot = "fontFamily fontStyle fontWeight fontSize whiteSpace strategy textOverflow".split(" "), td = {}; w("variant visibility cellSpacing cellPadding pixelCorrection preserveStartSpaces title".split(" "), function (a) { td[a] = gy; }); w(["margin", "padding"], function (a) { td[a] = my; }); w("maxWidth maxHeight fitWidth fitHeight ignoreCategories orientation autoWrap suspend xContentAlignment yContentAlignment xAlignment yAlignment".split(" "), function (a) { td[a] = ji; }); w(ot, function (a) { td[a] = iy; }); w(["width", "height", "x", "y", "strokeWidth"], function (a) { td[a] = ky; }); w(["offsetX", "offsetY"], function (a) { td[a] = hy; }); w(["maxWidth", "maxHeight", "fitWidth", "fitHeight"], function (a) { td[a] = jy; }); var dj = (function () { function a(a, b) { this.widths = []; this.heights = []; this.lefts = []; this.rights = []; this.bottoms = []; this.tops = []; a = this.rectangles = a; this.scoreDirection = b; for (var c = 0, e = this.rectangles.length; c < e; c++) (b = a[c]), this.lefts.push(b.x), this.tops.push(b.y), this.rights.push(b.x + b.width), this.widths.push(b.width), this.heights.push(b.height), this.bottoms.push(b.y + b.height); this.minX = Math.min.apply(null, this.lefts); this.minY = Math.min.apply(null, this.tops); this.maxX = Math.max.apply(null, this.rights); this.maxY = Math.max.apply(null, this.bottoms); this.minWidth = Math.min.apply(null, this.widths); this.minHeight = Math.min.apply(null, this.heights); this.maxWidth = this.maxX - this.minX; this.maxHeight = this.maxY - this.minY; } a.prototype.getScore = function (a, b) { var c = 0, e = []; if (a === De.xy && b) { var f = (c = 0); for (a = 0; a < b[0]; a++) { for (var g = 0, h = 0; h < b[1]; h++) { var k = this.widths[a * b[1] + h], l = this.heights[a * b[1] + h]; g += k; e.push(k * l); } c = g > c ? g : c; } for (h = 0; h < b[1]; h++) { for (a = g = 0; a < b[0]; a++) g += this.heights[a * b[1] + h]; f = g > f ? g : f; } c *= f; } else for (b = (a = a === De.y) ? this.widths : this.heights, f = a ? this.heights : this.widths, h = a ? this.maxWidth : this.maxHeight, a = 0, g = b.length; a < g; a++) e.push(b[a] * f[a]), (c += h * f[a]); return { whitespace: 1 - Ta(e) / c, magnitude: c }; }; return a; })(), pC = (function () { function a() {} a.prototype.compareScores = function (a, b, d) { a = this.quantifyScore(a, d); b = this.quantifyScore(b, d); return a < b ? -1 : a > b ? 1 : 0; }; a.prototype.comparer = function (a) { var b = this; return function (c, e) { return b.compareScores(c, e, a); }; }; a.prototype.mergeScores = function (a) { for (var b = 0, c = 0, e = 0, f = 0, g = a.length; f < g; f++) { var h = a[f]; h.magnitude && ((b += h.whitespace * h.magnitude), c < h.magnitude && (c = h.magnitude), e++); } return b ? b / (e * c) : 0; }; a.prototype.quantifyScore = function (a, b) { return a.whitespace.toFixed(6); }; a.prototype.sort = function (a, b) { a.sort(this.comparer(b)); }; return a; })(), pt = /style\s*=\s*["']([^"]*)["']/, qt = /([\S_]+)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))*.)["']?/g, rt = /['"]/g, qC = /[\u0590-\u05ff\u0600-\u06ff]/, rC = /[-_]([a-z])/, sC = / /gm, tC = /\s\w+(?=[\s|>])/g, st = { disk: "\u25cf\u00a0", circle: "\u25cb\u00a0", square: "\u25a0\u00a0", none: "" }, uC = ["antialias"], Km = function (a) { var c = ""; if (a) { var b = a.length; if (O(a)) c = a; else { if (1 === b && O(a[0].val)) return (a = a[0]), (a.type = "text"), a; if (b) { c = []; for (var d = [], e = 0; e < b; e++) { var f = a[e]; "visual" === f.kind || "panel" === f.type ? (d.length && (c.push({ type: "text", val: d.slice(0) }), (d = [])), c.push(f)) : d.push(f); } d.length && c.push({ type: "text", val: d.slice(0) }); return 1 === c.length ? c[0] : { type: "stack", val: c }; } } } return { type: "text", val: c }; }, vC = function (a) { a = a.split(";"); var c = {}; w(a, function (b) { if (b) { var a = b.split(":"); 2 === a.length && ((b = tt(a[0].trim())), (a = a[1].trim()), (c[b] = a)); } }); return c; }, Rg = function (a, c) { c = c || {}; c.val = a || ""; return c; }, Tb = function (a, c, b) { return a.substring(c, c + b.length).toLowerCase() === b; }, wC = function (a) { var c = [], b = [], d = [], e = Rg(), f = {}, g = [], h = [], k = 0, l = [], m = [], n = [], p = function (b) { if (b) { b = ja(b) ? b : b.split(";"); var a = [], c = {}; w(b, function (b) { if (b) { var d = b.split(":"); 1 === d.length && (d = b.split("=")); 2 === d.length && ((b = d[0].trim()), (b = 0 === b.indexOf("data-") ? b : tt(b)), (d = d[1].trim()), (f[b] = d), a.push(b), (c[b] = d)); } }); t(c.description) && !t(c.tabindex) && ((f.tabindex = 100), (c.tabindex = 100), a.push("tabindex")); a.length && (g.push(a), (b = h.length) ? h.push(W(h[b - 1], c)) : h.push(c)); } else g.push([]), h.push([]); }, q = function () { var b = g.pop(); h.pop(); b && (w(b, function (b) { delete f[b]; }), (b = h.length) && L(f, h[b - 1])); }, r = function () { e && "" !== e.val && b.push(e); var a = l[l.length - 1]; if (l.length && a > k) { var d = c[c.length - 1]; d.margin || (d.margin = [0, 0, 0, 0]); d.margin[2] = Math.floor(m[k] / 2); } if (b.length) { d = Km(b); a = l.length ? (k > a ? Math.floor(m[k - 1] / 2) : 0) : 0; var g = Ta(n) || 0, h; if (d.margin) { var p = (h = d.margin); nb(h) ? (p = [h, h, h, h]) : O(h) && ((h = parseInt(h) || 0), (p = [h, h, h, h])); h = p; } else h = [0, 0, 0, 0]; h[0] += a; h[3] += g; d.margin = h; l.push(k); c.push(d); b = []; e = Rg("", Oa(f)); } }, u = function () { if (e.val) if (e.width && O(e.val)) { var a = { type: "panel", width: e.width }; e.verticalAlign && (a.verticalAlign = e.verticalAlign); e.align && (a.xContentAlignment = e.align); e.type = "text"; a.val = [Ga(e, ["width", "align", "verticalAlign"])]; b.push(a); } else b.push(W(e, f)); e = Rg("", Oa(f)); }; a = a.replace(sC, String.fromCharCode(160)); var x = 0, v = a.length; for (x = 0; x < v; x++) { var y = a[x]; if ("<" === y) { if (Tb(a, x + 1, "br")) { x += Tb(a, x + 3, "/") ? 4 : 3; e.val || b.length || b.push({ val: " " }); r(); continue; } if (Tb(a, x + 1, "hr")) { x += Tb(a, x + 3, "/") ? 4 : 3; r(); c.push({ type: "panel", width: "100%", yContentAlignment: "middle", val: [ { type: "text", val: " " }, { type: "panel", width: "100%", val: [{ type: "icon", d: "M 0 0 L 10 0", width: "100%", height: "1px", stroke: "darkgray", fill: "none" }] }, ], }); continue; } for (var D = !1, E = 0, F = ut.length; E < F; E++) { var R = ut[E]; if (Tb(a, x, R.start)) { x += R.start.length - 1; u(); L(f, R.attrs); D = !0; break; } else { for (var z = 0, wa = R.stops.length; z < wa; z++) { var U = R.stops[z]; if (Tb(a, x, U)) { x += U.length - 1; w(R.attrs, function (b, a) { return delete f[a]; }); D = !0; break; } } if (D) break; } } if (D) { u(); continue; } E = 0; for (F = vt.length; E < F; E++) if (((R = vt[E]), Tb(a, x + 1, R.start))) { for (F = x += R.start.length + 1; ">" !== a[x]; ) x++; "ul" === R.key && ((E = null), 10 < x - F && (E = (F = a.substring(F, x).match(pt)) ? F[1] : E), p(E), r(), k++, (E = f.listPadding), (E = t(E) ? parseInt(E) : 10), m.push(E), n.push(E)); "li" === R.key && ((R = st[f.listStyleType]), b.unshift(A({ type: "text", val: t(R) ? R : st.disk }, f))); D = !0; break; } else { z = 0; for (wa = R.stops.length; z < wa; z++) if (((U = R.stops[z]), Tb(a, x + 1, U))) { for (x += U.length + 1; ">" !== a[x]; ) x++; "li" === R.key && r(); "ul" === R.key && (q(), k--, r(), n.pop()); D = !0; break; } if (D) break; } if (D) { u(); continue; } R = function (c, d) { c = wt[c]; if (Tb(a, x + 1, c.tag)) { x += c.tag.length; d = ""; for (var g = a[x], h = { kind: "visual" }; ">" !== g && x++ < v; ) (g = a[x]), (d += g); g = d.match(qt); w(g, function (b) { b = b.split("="); 2 === b.length && (h[b[0]] = b[1].replace(rt, "")); }); h.style && (h = L(vC(h.style), h)); "chart" === c.tag ? ((c = d.match(tC)) && B(c, function (b) { b = b.trim(); ~uC.indexOf(b) ? (h[b] = !0) : (h.type = b); }), (h.type = h.type || "chart"), (h.isNanoChart = !0)) : ((h.type = c.val), (h.fill = h.fill || "black")); e.val && b.push(Oa(e)); e = Rg("", Oa(f)); h = Sa(h); e.width ? b.push(W(e, { type: "panel", yAlignment: h.verticalAlign, val: [h] })) : b.push(h); D = !0; } }; E = 0; for (F = wt.length; E < F; E++) R(E, F); if (D) { u(); continue; } if (Tb(a, x + 1, "absolute")) { x += 9; u(); d = b.slice(0); b = []; continue; } else if (Tb(a, x + 1, "/absolute")) { x += 10; u(); b = d.concat({ type: "panel", val: b }); d = []; continue; } if (Tb(a, x + 1, "span")) { x += 5; R = ""; for (E = a[x]; ">" !== E && x++ < v; ) (E = a[x]), (R += E); (E = (F = R.match(pt)) ? F[1] : null) || ((R = R.match(qt)), (E = B(R, function (b) { return b.replace(rt, ""); }))); p(E); D = !0; } else Tb(a, x + 1, "/span") && ((x += 6), u(), q(), (D = !0)); if (D) { e.val && b.push(Oa(e)); e = Rg("", Oa(f)); continue; } } e.val += y; } e.val && b.push(e); c.length ? (c.push(Km(b)), (d = { type: "stack:y", val: c })) : (d = Km(b)); return { value: d, isRtl: !!a.match(qC) }; }, ut = [ { start: "", stops: ["", ""], attrs: { fontWeight: "bold" } }, { start: "", stops: ["", ""], attrs: { fontWeight: "bold" } }, { start: "", stops: ["", ""], attrs: { fontStyle: "italic" } }, { start: "", stops: ["", ""], attrs: { fontSize: "0.7em", verticalAlign: "sup" } }, { start: "", stops: ["", ""], attrs: { fontSize: "0.7em", verticalAlign: "sub" } }, ], wt = [ { tag: "icon", val: "icon" }, { tag: "img", val: "image" }, { tag: "chart", val: "nanoChart" }, ], vt = [ { start: "ul", stops: ["/ul", "ul/"], key: "ul" }, { start: "li", stops: ["/li", "
  • b; ) { var r; a: { for (var u = (r = q.length); 2 < u; u--) { var v = q[u - 1], x = q[u - 2], y = q[u - 3]; if (2 < r && (y.isSpace ? !v.isSpace : x.isSpace)) { r = 2 + r - u; break a; } } r = 0; } if (!r) break; g = n; void 0 === r && (r = 1); for (u = 0; u < r; u++) (v = e[g].pop()), e[g + 1].unshift(v); g = d(q, 0 == n).width; } l.push({ x: 0, y: m, width: g, height: h, info: { itemCount: q.length } }); m += h; f = f < g ? g : f; c = c < g || !c ? g : c; k++; } } b = e; n = []; p = 0; for (q = b.length; p < q; p++) n.push(yg(b[p])); return { lines: n, linesUsed: k, width: f, height: m, maxLineWidth: c || g, score: new dj(l).getScore(De.y), parts: a }; } function d(b, a, c) { void 0 === c && (c = !1); for (var d = 0, e = 0, f = 0, g = b.length; f < g; f++) { var h = b[f], k = h.width, l = h.height; e = e > l ? e : l; if (!h.isSpace || ((f != g - 1 || c) && (0 < f || a))) d += k; } return { height: e, width: d }; } var e = [], f = c.step; f = void 0 === f ? 0.1 : f; var g = c.width; g = void 0 === g ? 0 : g; var h = c.height; h = void 0 === h ? 0 : h; c = c.wrapText; c = void 0 === c ? !0 : c; for (var k = f, l, m = [], n = 0, p = a.length; n < p; n++) { for (var q = a[n], r = q.metrics, u = q.parts, x = [], v = 0, y = u.length; v < y; v++) { var t = u[v], E = t.width; t = -1 < t.text.indexOf(q.delimiter.text); e.push([]); var F = { width: E, isSpace: t }; r && r.height && (F.height = r.height); x.push(F); t || (l && !(l > E)) || (l = E); k += E; } e[0] = e[0].concat(x); } for (g && (k = g); k >= l + f; ) { g = b(k); if (g.maxLineWidth > k) break; (!h || g.height <= h) && m.push(g); if (!c && m.length) break; k = g.maxLineWidth - f; } m.length || m.push(b(l)); return m; }, Hd = { space: /(\s)/, variants: /&ore;|&ors;/g, startSpaces: /^ +/g, spaces: / +/g, quotes: /'|"/g, fontSize: /^[\d\.]+(px|pt|em)?$/ }, Xq = { 169: "copy", 174: "reg", 160: "nbsp", 8482: "trade", 34: "quot", 38: "amp", 60: "lt", 62: "gt", 176: "deg", 8364: "euro", 185: "sup1", 178: "sup2", 179: "sup3", 188: "frac14", 189: "frac12", 190: "frac34", 177: "plusmn", 180: "acute", 183: "middot", }, Vq = { ore: "&ore;", ors: "&ors;", orc: "&orc;", or: "&||;" }, yC = fa("x y width height rotate opacity fill stroke offsetX offsetY".split(" ")), Lm = fa(["animation", "transition"]), zC = { initialize: !1, reposition: !0, destroy: !0, animatable: yC }, AC = (function () { function a(a) { this._li = a; this.scope = Dd(); } a.prototype.attr = function (a) { var b = this._li; if (O(a)) return this._li.attr(a); b.updateAttrs(a, !0); b.root.refresh(); }; a.prototype.attrEnd = function (a) { return this.attr(a); }; a.prototype.normalize = function (a) { return a; }; a.prototype.parse = function (a, b) { return b; }; return a; })(), BC = (function () { function a(a, b) { this._visual = a; this._options = { auto: !1, mode: "simple", behaviour: L({}, zC) }; this._renderer = a.renderer; var c = L({}, this._renderer.defaultOptions().transition); this._attrTransition = new ht(new AC(a), c); b && this.options(b); } a.prototype.options = function (a) { a && (J(a, "auto") && (this._options.auto = a.auto || !1), J(a, "mode") && (this._options.mode = a.mode || "simple"), a.behaviour && L(this._options.behaviour, a.behaviour), a.animation && this._attrTransition.options({ animation: a.animation })); }; a.prototype.applyAttrs = function (a, b) { var c = this._visual, e = a.transition, f = !1; !1 === e ? ((e = { auto: !1 }), (f = !0)) : "auto" === e && ((e = { auto: !0 }), (f = !0)); e && yc(["auto", "mode", "behaviour"], e) && (this.options(e), (e = f ? null : Ga(a.transition, ["auto", "mode", "animation", "behaviour"])), ub(e) && ((e = null), delete a.transition)); if (this._renderer.disableAnimation || (!a.animation && !e && !this._options.auto)) c.updateAttrs(Hb(a, Lm), b); else if (!ub(a)) { var g = "simple" === this._options.mode; if (c.isPatched || g) if (((f = this._options.behaviour.animatable), g)) t(a.animation) || e || !Ln(f, a) || ((a.transition = null), (a.animation = this._attrTransition.getAnimationOptions())), c.updateAttrs(a, b); else { if (!e) { e = Na({}, a, f); g = Hb(a, f); if (ub(e)) { c.updateAttrs(Hb(a, Lm), b); return; } b = Na({}, c.attrs, f); a.animation && (e.animation = a.animation); e = { start: g, middle: { from: b, to: e } }; } this._attrTransition.options(e); } else c.updateAttrs(a, b); } }; a.prototype.applyPatch = function (a) { var b = this._visual, c = this._options; this._renderer.disableAnimation || !c.auto || !c.behaviour.initialize || b.isPatched ? b.applyPatch(a) : "layout" === c.mode ? (b.applyPatch(a), this.layoutInitializeTransition()) : ((a.transition = this.getSimpleInitializeTransition()), b.applyPatch(a)); }; a.prototype.applyDestroy = function () { var a = this._visual, b = this._options; !this._renderer.disableAnimation && b.auto && b.behaviour.destroy ? ("simple" === b.mode ? a.updateAttrs({ transition: this.getSimpleDestroyTransition() }, !0) : this.layoutDestroy()) : a.applyDestroy(); }; a.prototype.applyAdd = function (a, b) { var c = this._visual, e = this._options; !this._renderer.disableAnimation && e.auto && c.isPatched && e.behaviour.reposition ? ("simple" === e.mode ? this.simpleAdd(a) : this.layoutAdd(a)) : c.applyAdd(a, b); }; a.prototype.getSimpleInitializeTransition = function () { var a = this._visual.getBbox(), b = 0 === a.x && 0 === a.y ? null : { translate: [a.x, a.y], scale: [1], val: "translate(" + a.x + ", " + a.y + ")" }; return { start: { transform: { translate: [a.x + a.width / 2, a.y + a.height / 2], scale: [0], val: "translate(" + (a.x + a.width / 2) + ", " + (a.y + a.height / 2) + ") scale(0)" } }, middle: { to: { transform: b } }, end: { transform: b }, }; }; a.prototype.getSimpleDestroyTransition = function () { var a = this._visual, b = a.getBbox(); return { middle: { from: { transform: a.el.data.transform }, to: { animation: { final: function () { var b = a.root; a.applyDestroy(); b.refresh(); }, }, transform: { translate: [b.x + b.width / 2, b.y + b.height / 2], scale: [0], val: "translate(" + (b.x + b.width / 2) + ", " + (b.y + b.height / 2) + ") scale(0)" }, }, }, }; }; a.prototype.layoutInitializeTransition = function () { this._attrTransition.finishAnimation(); var a = this._visual, b = a.root, d = a.getBbox(), e = a.getGlobalBbox(), f = e.width, g = a.layout.panel({ width: 0, height: 0, x: d.x, y: d.y }).applyAdd(a.parent), h = a.layout.panel().add(); a.updateAttrs({ scale: 0 }, !0).applyAdd(h); b.refresh(); h.refresh(); this._attrTransition.options({ middle: { from: { width: 0, height: 0 }, to: { animation: { final: function () { a.updateAttrs({ scale: 1 }, !0).applyAdd(g.parent); g.applyDestroy(); h.applyDestroy(); a.refresh(); }, onFrame: function (c, d) { g.updateAttrs(d); b.refresh(); c = g.getGlobalBbox(); a.applyPatch({ translate: [c.x, c.y], scale: [c.width / f] }); }, }, width: e.width, height: e.height, }, }, }); }; a.prototype.layoutDestroy = function () { this._attrTransition.finishAnimation(); var a = this._visual, b = a.getBbox(), d = a.getGlobalBbox(), e = d.width, f = a.root, g = a.layout.panel({ width: b.width, height: b.height, x: b.x, y: b.y }).applyAdd(a.parent), h = a.layout.panel().add(); a.updateAttrs(d, !0).applyAdd(h); f.refresh(); h.refresh(); this._attrTransition.options({ middle: { from: { width: b.width, height: b.height }, to: { animation: { final: function () { g.applyDestroy(); a.applyDestroy(); h.applyDestroy(); f.refresh(); }, onFrame: function (b, c) { g.updateAttrs(c); f.refresh(); b = g.getGlobalBbox(); a.applyPatch({ translate: [b.x, b.y], scale: [b.width / e] }); }, }, width: 0, height: 0, }, }, }); }; a.prototype.simpleAdd = function (a) { this._attrTransition.finishAnimation(); this._visual.el.finishAnimation(); var b = this._visual, c = b.getBbox(), e = b.getGlobalBbox(), f = b.layout.panel().add(), g = b.layout.panel({ width: c.width, height: c.height }).add(a); b.updateAttrs(e, !0).applyAdd(f); g.refresh(); f.refresh(); var h = g.getGlobalBbox(); this._attrTransition.options({ middle: { to: { animation: { final: function () { var c = g.getBbox(); g.applyDestroy(); b.applyAdd(a); b.updateAttrs(c, !0); f.applyDestroy(); g.refresh(); b.refresh(); }, onFrame: function (a, c, d) { b.applyPatch({ translate: [d(e.x, h.x, a), d(e.y, h.y, a)] }); }, }, }, }, }); }; a.prototype.layoutAdd = function (a) { this._attrTransition.finishAnimation(); var b = this._visual, c = b.getGlobalBbox(), e = b.getBbox(), f = b.layout.panel({ width: 0, height: 0, x: e.x, y: e.y }).applyAdd(a), g = b.layout.panel(b.getBbox()).applyAdd(b.parent), h = a.root, k = g.root, l = b.layout.panel().add(); b.updateAttrs(c, !0).applyAdd(l); h.refresh(); h !== k && k.refresh(); l.refresh(); var m = e.width, n = e.height, p = c.x, q = c.y; this._attrTransition.options({ middle: { to: { animation: { final: function () { b.updateAttrs(e, !0).applyAdd(a); f.applyDestroy(); g.applyDestroy(); h.refresh(); h !== k && k.refresh(); l.applyDestroy(); b.refresh(); }, onFrame: function (a, c, d) { f.updateAttrs({ width: d(0, m, a), height: d(0, n, a) }); g.updateAttrs({ width: d(m, 0, a), height: d(n, 0, a) }); h.refresh(); h !== k && k.refresh(); c = f.getGlobalBbox(); b.applyPatch({ translate: [d(p, c.x, a), d(q, c.y, a)] }); }, }, }, }, }); }; return a; })(), CC = fa(["setSize", "finalSize", "renderSize", "pixelCorrection"]), DC = function (a) { return a.px; }, Mm = {}, EC = fa(["translate", "rotate"]); w(["width", "height", "x", "y"], function (a) { return (Mm[a] = DC); }); var Lc; (function (a) { a[(a.WriteIfChanged = 0)] = "WriteIfChanged"; a[(a.ReadOnly = 1)] = "ReadOnly"; a[(a.WriteOnly = 2)] = "WriteOnly"; })(Lc || (Lc = {})); var Gf = (function () { function a(a, b) { this.layout = a; this.forcePixelCorrection = !1; this.init(); this.applyConfig(b); } a.prototype.init = function () { this.combinations = []; this.events = {}; this.subscriptions = []; this.attrs = {}; this._awaitHandlers = []; this.autoWrap = "auto"; this.renderer = this.layout.renderer; this.root = this; this.margin = rf(0); this.isPatched = !1; this.offsetY = this.offsetX = this.globalY = this.globalX = 0; this.wasAdded = !1; this.pixelCorrection = this.layout.pixelCorrection; this.state = { needPatching: !0, needRecalculation: !0, needAttachPatching: !0, needDestroy: !1, destroyed: !1 }; this._availableAttrs = this.availableAttributes(); }; a.prototype.updateSize = function (a, b) {}; a.prototype.val = function (a) { return this; }; a.prototype.calculateMargin = function () { return this.margin; }; a.prototype.arrToBox = function (a) { return { x: a[0], y: a[1], width: a[2], height: a[3] }; }; a.prototype.getBbox = function (a) { return this.arrToBox(this.getBboxArray(a)); }; a.prototype.getGlobalBbox = function () { return this.arrToBox(this.getGlobalBboxArray()); }; a.prototype.getBboxArray = function (a, b) { return this.bboxArrayBased(ic(this.x), ic(this.y), a, b); }; a.prototype.getGlobalBboxArray = function (a) { return this.bboxArrayBased(this.globalX, this.globalY, !1, a); }; a.prototype.bboxArrayBased = function (a, b, d, e) { return [ a + (d ? this.offsetX : 0) - (e ? ic(this.margin.left) : 0), b + (d ? this.offsetY : 0) - (e ? ic(this.margin.top) : 0), ic(this.width) + (e ? ic(this.margin.horizontal) : 0), ic(this.height) + (e ? ic(this.margin.vertical) : 0), ]; }; a.prototype.setSize = function (a) { this.suspend || (this.setSizeValue("width", a.width, this.maxWidth), this.setSizeValue("height", a.height, this.maxHeight), this.setSizeValue("x", a.x), this.setSizeValue("y", a.y), this.needPatch(!0), this.finalSizeCalled(), this.triggerEvent("setSize")); }; a.prototype.getTypeEvents = function () { return CC; }; a.prototype.setSizeValue = function (a, b, d) { var c = this[a], f = !c || c.isMutable; nb(b) && c && !Ee(c) ? (this[a].px = t(d) && b > d ? d : b) : t(b) && f && (this[a] = Qa(b)); }; a.prototype.handleEvent = function (a, b, d, e) { if (t(b) && (b = this.getEventByName(b, "un" !== a))) return b[a](b instanceof xm ? this.wrapEventCallback(d) : d, e); }; a.prototype.getEventByName = function (a, b) { !this.events[a] && b && (J(this.getTypeEvents(), a) ? (this.events[a] = new rd()) : this.subscribeDomEvents(a)); return this.events[a]; }; a.prototype.subscribeDomEvents = function (a) { throw Error("Methods doesn't implemented"); }; a.prototype.triggerEvent = function (a) { (a = this.events[a]) && a.trigger(this.getBbox()); }; a.prototype.on = function (a, b, d) { (a = this.handleEvent(d ? "onDefer" : "on", a, b, d)) && this.subscriptions.push(a); return this; }; a.prototype.un = function (a, b) { this.handleEvent("un", a, b); return this; }; a.prototype.isRelative = function () { return (this.width && "px" !== this.width.valueType) || (this.height && "px" !== this.height.valueType); }; a.prototype.add = function (a, b) { return !this.wasAdded || (a && a !== this.parent) ? (this.transitionAnimator ? (this.transitionAnimator.applyAdd(a, b), this) : this.applyAdd(a, b)) : this; }; a.prototype.await = function (a) { this.root._awaitHandlers.push(a); return this; }; a.prototype.applyAdd = function (a, b) { return this.insert({ parent: a, position: b }); }; a.prototype.alignTo = function (a, b, d, e) { return this.attr(mt(this, a, b, d, e)); }; a.prototype.alignIn = function (a, b, d) { this.insert({ parent: a }); a = {}; var c = this.getBbox(); if (O(b)) { var f = ty(b); f.x && (a.xAlignment = f.x); f.y && (a.yAlignment = f.y); this.attr(a); } b = d || b; O(b) && ((b = cj(b, c)), (a.offsetX = 0 - b.x), (a.offsetY = 0 - b.y)); return this.attr(a); }; a.prototype.insertFirst = function (a) { return this.insert({ parent: a, position: 0 }); }; a.prototype.insert = function (a) { var b = a.parent; a = a.position; Q(b) && (b = this.parent); b && b !== this.parent && (this.parent && ((this.forcePixelCorrection = !0), this.parent.removeChild(this), this.updateAttrs({ offsetX: 0, offsetY: 0 })), b === this.layout ? ((this.parent = b = null), this.notifyParentChanged()) : (0 === a ? b.prependChild : b.appendChild).call(b, this, a) && ((this.parent = b), this.notifyParentChanged())); this.parent || this.layout.addChild(this); this.wasAdded = !0; this.setRenewComplete(!b || this.parent.wasAdded); return this; }; a.prototype.refresh = function (a) { if (this.parent) return this.root.refresh(a), this; this.wasAdded || this.add(); this.setRenewComplete(!0); this.applyRefresh(a); !a && this.endRefresh(); return this; }; a.prototype.applyRefresh = function (a) { this.parent || (this.update(), a || this.layout.destroyChildren()); a || this.patch(); }; a.prototype.endRefresh = function () { this._awaitHandlers.length && (w(this._awaitHandlers, function (a) { return a(); }), (this._awaitHandlers = [])); this.triggerEvent("renderSize"); }; a.prototype.updateGlobalCoordinates = function () { this.setGlobalCoordinates(); }; a.prototype.needPatch = function (a) { this.state.needPatching = !0; }; a.prototype.setGlobalCoordinates = function (a) { var b = this.parent, c = this.x.px + (b ? b.globalX : 0) + (this.offsetX || 0); b = this.y.px + (b ? b.globalY : 0) + (this.offsetY || 0); if (this.globalX !== c || this.globalY !== b || a) (this.globalX = c), (this.globalY = b), this.triggerEvent("pixelCorrection"); }; a.prototype.collectAttrs = function (a) { return this.attrs; }; a.prototype.correctPixelValues = function (a, b) { a.rotate && 1 === (Math.abs(a.rotate[0]) / 90) % 2 && (a.rotate[0] += 0.1); }; a.prototype.patch = function () { var a = this.state, b = this.collectAttrs(); if (!a.destroyed && a.needPatching && this.isComplete()) if (a.needDestroy) this.patchDestroy(); else { this.pixelCorrection && this.correctPixelValues(b, this.parent); a = this.parentChanged; var d = this.cached(b, Lc.ReadOnly), e = ub(d); this._transition && (e && ((d = {}), (e = !1)), (d.transition = this._transition), (this._transition = null)); e && !a ? this.emptyPatch() : (t(this._animation) && !e && ((d.animation = this._animation), Na(d, b, ec), (this._animation = void 0)), this.transitionAnimator ? this.transitionAnimator.applyPatch(d) : this.applyPatch(d)); } }; a.prototype.emptyPatch = function () { this.state.needPatching = !1; this.isPatched = !0; }; a.prototype.applyPatch = function (a) { this.applyPatchState(a); }; a.prototype.applyPatchState = function (a) { this.cached(a, Lc.WriteOnly); this.state.needPatching = !1; this.isPatched = !0; }; a.prototype.parentAttrsChanged = function (a) {}; a.prototype.sharedAttrsUpdated = function (a) {}; a.prototype.fillProperties = function (a) { var b = this, c = {}, e; Da(a, function (d) { var f = a[d]; if (J(td, d) && t(f)) { var h = td[d](b, d, f); h && (L(c, h), (e = e || {}), (e[d] = f)); } }); c.updateSharedAttrs && this.sharedAttrsUpdated(e); c.needRecalc && this.setRenewComplete(); c.updateGlobalCoordinates && this.updateGlobalCoordinates(); t(a.animation) && (this._animation = a.animation); a.transition && (this._transition = a.transition); }; a.prototype.addEvent = function (a) { this.events[a] = new rd(); }; a.prototype.cached = function (a, b, d, e, f) { void 0 === b && (b = Lc.WriteIfChanged); void 0 === d && (d = "_cache_"); void 0 === e && (e = this); var c = J(e, d); a = Sc({}, a, Lm); var h = c ? e[d] : a; return c ? (b === Lc.WriteOnly ? (L(h, a), {}) : (b = Lj(h, a, EC, b === Lc.ReadOnly, f)) ? b : null) : ((e[d] = h), L({}, h)); }; a.prototype.notifyParentChanged = function () { this.updateRoot(); }; a.prototype.updateRoot = function () { var a = this.parent ? this.parent.root : this, b = this.root; a !== b && (0 < b._awaitHandlers.length && ((a._awaitHandlers = a._awaitHandlers.concat(b._awaitHandlers)), b.parent && (b._awaitHandlers = [])), (this.root = a)); }; a.prototype.availableAttributes = function () { return null; }; a.prototype.defaultConfig = function () { return null; }; a.prototype.applyConfig = function (a) { var b = !a, c = this.defaultConfig(); b && null === c ? (this.config = {}) : (b && (a = {}), (this.config = this.extendDefault(c || {}, a)), this.checkForAttrAnimation(Uq(this.config))); }; a.prototype.extendDefault = function (a, b) { return L(a, b); }; a.prototype.checkForAttrAnimation = function (a, b) { if (this.transitionAnimator || J(a, "animation") || J(a, "transition")) return this.transitionAnimator || (this.transitionAnimator = new BC(this)), this.transitionAnimator.applyAttrs(a, b), this; this.updateAttrs(a, b); }; a.prototype.updateAttrs = function (a, b) { this.applyAttrs(a); b && this.isPatched && this.needPatch(); return this; }; a.prototype.applyAttrs = function (a) { this.fillProperties(a); var b = this.attrs, c = this._availableAttrs; if (c) { for (var e in a) if (Object.hasOwnProperty.call(c, e) || 0 === e.indexOf("data-")) b[e] = a[e]; a = b; } else a = L(b, a); this.attrs = a; }; a.prototype.setRenewComplete = function (a) { var b = this.state, c = b.needRecalculation; if (a || !c) !this.parent || (!a && c) ? (b.needRecalculation = !0) : ((b.needRecalculation = !0), this.parent.setRenewComplete(a)); }; a.prototype.updateCombinations = function () { this.state.needRecalculation && this.isComplete() && ((this.combinations = this.composeCombinations()), (this.state.needRecalculation = !1), (this.variant = null)); }; a.prototype.attr = function (a, b) { if (O(a)) { if (Q(b)) return J(this, a) ? ((b = this[a]), J(Mm, a) ? Mm[a](b) : b) : this.attrs[a]; var c = a; a = {}; a[c] = b; } a = Uq(a); this.checkForAttrAnimation(a, this.isPatched); return this; }; a.prototype.update = function () { this.updateCombinations(); this.updateSize(this.wasAdded && !this.parent ? this.layout.getRootBox() : void 0); this.triggerEvent("finalSize"); return this; }; a.prototype.isComplete = function () { return !0; }; a.prototype.composeCombinations = function () { return []; }; a.prototype.finalSizeCalled = function () {}; a.prototype.getContentSize = function () { return this.getBbox(); }; a.prototype.visible = function (a, b) { var c = "none" !== this.attr("display"); t(a) || (a = !c); if (a === c) return this; this.attr({ display: a ? null : "none" }); !0 !== b && (this.suspend = !a); this.setRenewComplete(!0); return this; }; a.prototype.destroy = function () { if (this.transitionAnimator) return this.transitionAnimator.applyDestroy(), this; this.applyDestroy(); return this; }; a.prototype.applyDestroy = function () { w(this.subscriptions, function (a) { return a.un(); }); this.subscriptions = []; this.isPatched = !1; this.parent ? (this.parent.removeChild(this), this.layout.needToDestroy(this)) : this.layout.removeChild(this); this.state.needDestroy = !0; this.state.needPatching = !0; }; a.prototype.patchDestroy = function () { this.state.destroyed = !0; }; a.prototype.setDomEventsElement = function (a) { for (var b in this.events) this.events[b] instanceof xm && this.events[b].setElement(a); }; a.prototype.toLocal = function (a) { return nt(a, "toLocal", this.parent); }; a.prototype.toGlobal = function (a) { return nt(a, "toGlobal", this.parent); }; a.prototype.setPreliminarySize = function (a) { var b = this.variant ? this.variant.index : 0; (this.combinations.length && !a) || this.updateCombinations(); b >= this.combinations.length && (b = 0); this.combinations.length && this.setSize(this.combinations[b].minSize); this.parent && this.updateGlobalCoordinates(); return this; }; a.prototype.externalOn = function (a, b, d) { if (a) { var c = this.wrapEventCallback(d), f = function (d) { d = aq(d, a, b); c(d); }; a.on(b, f); return { un: function () { a.un(b, f); }, }; } }; a.prototype.wrapEventCallback = function (a) { var b = this; return t(a) ? function (c) { c.bbox = b.getBbox(); var d = (c.pointers = c.pointers ? B(c.pointers, function (a) { return b.toRelativeXY(a); }) : [b.toRelativeXY(c.eventArgs)]); c.x = d[0][0]; c.y = d[0][1]; a && a(c); } : void 0; }; a.prototype.toRelativeXY = function (a) { if (!a) return [0, 0]; var b = t(a.clientX) ? this.renderer.relativeToRoot(a.clientX - this.globalX, a.clientY - this.globalY) : { x: 0, y: 0 }; return [b.x, b.y, a.id]; }; return a; })(), Hf = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.init = function () { a.prototype.init.call(this); this.width = this.width || ld(); this.height = this.height || ld(); this.x = this.x || ld(); this.y = this.y || ld(); }; c.prototype.availableAttributes = function () { return Ls; }; c.prototype.updateSize = function (b, a) { a && (this.variant = a); b && this.setSize(b); this.setGlobalCoordinates(); this.updateVisual(); return this; }; c.prototype.updateVisual = function () { this.setPosition(this.x, this.y); }; c.prototype.setPosition = function (b, a) { var c = !this.x || this.x.isMutable, d = !this.y || this.y.isMutable; this.x = b && c ? b : this.x; this.y = a && d ? a : this.y; }; c.prototype.getZeroSize = function (b) { var a = ld(); Ya(b) && (a.valueType = "*"); return a; }; c.prototype.composeCombinations = function () { var b = this, a = function (a) { return tc(a) ? a : b.getZeroSize(a); }, c = a(this.width); a = a(this.height); return [{ score: { whitespace: 0, magnitude: c.px * a.px }, minSize: { width: c, height: a }, index: 0 }]; }; c.prototype.patchDestroy = function () { a.prototype.patchDestroy.call(this); this.el && (this.el.destroy(), delete this.el); }; c.prototype.below = function (b) { this.belowItem = b; return this.add(); }; c.prototype.useMainElementForEvents = function (b) { this._useMainElementForEvents = b; }; c.prototype.subscribeDomEvents = function (b) { var a = new xm(b), c = this.getLowermostElement(); this._useMainElementForEvents && (c = this.el); a.setElement(c); this.events[b] = a; }; c.prototype.getLowermostElement = function () { return this.el; }; c.prototype.collectAttrs = function (b) { void 0 === b && (b = !1); return b ? L(L({}, this.attrs), this.getBbox(!0)) : this.attrs || {}; }; c.prototype.getParentGroup = function () { return this.parent ? this.parent.getElement() : null; }; c.prototype.notifyParentChanged = function () { a.prototype.notifyParentChanged.call(this); this.parentChanged = !0; }; c.prototype.applyPatch = function (b) { if (!this.el || this.parentChanged) { var c = null != this.el, e = this.getParentGroup(); this.el = c ? this.el.attr(b) : this.createElement(b); this.belowItem ? ((c = this.belowItem.getLowermostElement() || this.belowItem.el) ? this.el.addBefore(c) : this.el.add(e)) : this.el.add(e); this.setDomEventsElement(this.el); } else this.el.attr(b); this.parentChanged = !1; a.prototype.applyPatch.call(this, b); }; c.prototype.transition = function (b) { this.el && this.el.transition(b); }; return c; })(Gf), xt = ld(), FC = [ { score: { whitespace: 0, magnitude: 0 }, minSize: { width: xt, height: xt }, maxlineWidth: 0, lineUsed: 1, lines: [[{ width: 0, height: 0, isSpace: !1 }]], parts: [{ text: "", width: 0, parts: [{ text: "", width: 0 }] }], index: 0, }, ], GC = fa(["width", "height", "x", "y"]), yt = ["val", "textVariants", "verticalAlign"], zt = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.preserveStartSpaces = !0; b._cachedCombinations = {}; b.textElements = []; b._maxDescent = 0; return b; } K(c, a); c.prototype.val = function (b) { if (t(b)) { var a = Pa(b), c = a ? b.val || "" : b; this.text !== c && this.attr(a ? b : { val: c }); return this; } return this.text; }; c.prototype.createElement = function (b) { return this.renderer.element("text", b); }; c.prototype.getMaxDescent = function () { return this._maxDescent; }; c.prototype.updateVisual = function () { var b = this, a = this._parentAttributes && this._parentAttributes.textOverflow; a = "ellipsis" === (this._textOverflow || a); var c = this.variant, f = this.width ? this.width.px : void 0, g = this.height ? this.height.px : void 0, h = this.maxWidth || f, k = this.xAlignment || this.xContentAlignment || "left"; if (!c) { for (var l = this.combinations, m = l.length, n = 0; n < m; n++) { var p = l[n]; if (p && (!f || p.minSize.width.px < f) && (!g || p.minSize.height.px < g)) { c = p; break; } } c || (c = l[m - 1]); } w(c.parts, function (a) { return a.metrics && (b._maxDescent = Math.max(a.metrics.descent, b._maxDescent)); }); this.wrappedLayout = (function (b, a, c) { for (var d = b.lines, e = b.parts, f = b.maxLineWidth, g = [], k = 0, l = 0, m = 0, n = e[m], p = n.parts, q = 0, r = d.length; q < r; q++) { var u = d[q], t = u.length, w = { text: "", x: 0, y: 0, styles: {} }, z = 0, A = [], C = 0, H = 0, B = 0, N = 0; if (t) { for (var J = 0; J <= t; J++) { var Ba = h - z; if (!p[k] || J === t) { var G = n.metrics || { height: 0, descent: 0 }, K = G.height, I = G.descent; G = G.leading - G.fontSize; var O = K - I; w.text && ((w.styles = n.style || {}), A.push(L({}, w)), (C = C < K ? K : C), (H = H < O ? O : H), (B = B < I ? I : B), (N = N < G ? G : N)); if (J < t) { for (; n && !(k < n.parts.length); ) (k -= n.parts.length), (n = e[++m]); p = n.parts; w = { text: "", x: z, y: 0, styles: {} }; } } if ((K = u[J])) { G = K.width; K = !K.isSpace; if (0 !== J || K || 0 === q) { I = J !== t - 1; O = u.length === p.length; if (K || I || O) z += G; I = p[k].text; if (a) { Ba = I.substring(0, Math.round(I.length * (Ba && G ? Ba / G : 0) - 1) - Math.ceil(n.ellipsis.width / (G / I.length))); G = K && J === t - 2; var Q = (O = J === t - 1) ? !1 : !u[J + 1].isSpace; G = b.width > (h || 0) && ((!G && !O) || Q) ? n.ellipsis.width : 0; h && 0.01 < z - h + G && (K || J < t - 1) && ((I = Ba + n.ellipsis.text), (k += t - J - 1), (J = t - 1)); } w.text += I; } k++; } } u = 0; for (t = A.length; u < t; u++) (w = A[u]), (J = w.styles && w.styles.verticalAlign), (Ba = n.metrics.fontSize / 2), (w.y = l + ("sup" === J ? N + Ba : "sub" === J ? H + Ba - B : H)), (w.x += Ge[c] * (f - z)), g.push(w); l += C; } } return { parts: g, score: b.score }; })(c, a, k); }; c.prototype.composeCombinations = function () { if (!this.text) return FC; var b = Ga(this._ownAttributes, ["x", "y"]), a = W(this.layout.svgStyles, this._parentAttributes), c = W(a, b), f = c.whiteSpace || "normal", g = this.preserveStartSpaces, h = "pre" !== f && "nowrap" !== f && "auto" === this.autoWrap, k = (!this.width || ("*" !== this.width.valueType && this.width.isMutable)) && c.strategy ? c.strategy : "none", l = this.ignoreCategories, m = c.fontFamily, n = c.fontStyle, p = c.fontWeight, q = c.fontSize; if (this._cachedCombinations.filter) { var r = this._cachedCombinations, u = r.filter; if (u.whiteSpace === f && u.text === this.text && u.strategy === k && u.fontFamily === m && u.fontStyle === n && u.fontWeight === p && u.fontSize === q) return r.result; } this._cachedCombinations.filter = { whiteSpace: f, text: this.text, strategy: k, fontFamily: m, fontStyle: n, fontWeight: p, fontSize: q }; b = { own: c, personal: b, parent: a }; h = { ignoreCategories: l, preserveSpaces: "pre" === f || "pre-wrap" === f, preserveStartSpaces: g, wrapText: h, wrappingStrategy: k, width: tc(this.width) ? this.width.px : 0, height: tc(this.height) ? this.height.px : 0, maxWidth: this.maxWidth, maxHeight: this.maxHeight, }; k = ny(this.text, b, this.layout.svgStyles, h); f = h.width; g = h.height; h = { wrapText: h.wrapText, strategy: h.wrappingStrategy, width: f, height: g, maxWidth: h.maxWidth, maxHeight: h.maxHeight }; l = [[]]; b = 0; for (a = k.length; b < a; b++) if (((c = k[b]), (m = c.length))) { m = []; n = 0; for (p = c.length; n < p; n++) { q = Wq(l); r = 0; for (u = l.length; r < u; r++) q[r].push(c[n]); m = m.concat(q); } l = m; } else for (n = 0, p = l.length; n < p; n++) l[n].push(void 0 == m ? c : c[0]); k = l; l = []; b = 0; for (a = k.length; b < a; b++) { m = xC(k[b], h); if (h) { var x = void 0; c = void 0; n = m.length; p = h.wrapText; q = h.strategy; r = h.maxWidth; u = h.maxHeight; var v = "none" === q, y = [], D = 0; if (n) { for (var w = 0; w < n; w++) { var F = m[w], R = F.score; x = x && x !== F.linesUsed; var z = (!t(r) || F.width < r) && (!t(u) || F.height < u); p && z && (v || !c || x || F[q] < c[q] || R.whitespace < c.score.whitespace) && ((D += (v && D) || x ? 1 : 0), (c = y[D] = F)); x = F.linesUsed; } y.length || y.push(m[p ? n - 1 : 0]); } c = y; } else c = m; l = l.concat(c); } h = l; k = 0; for (l = h.length; k < l; k++) (b = h[k]), (a = g), b && ((b.minSize = { width: Qa(f || b.width), height: Qa(a || b.height) }), delete b.width, delete b.height), (h[k].index = k); return (this._cachedCombinations.result = h); }; c.prototype.fillProperties = function (b) { b && (t(b.val) && (this.text !== b.val && this.setRenewComplete(), (this.text = b.val)), t(b.stroke) && (this._strokeAttrs = Na({}, b, Pg)), t(b.textOverflow) && (this._textOverflow = b.textOverflow), a.prototype.fillProperties.call(this, b)); }; c.prototype.getLowermostElement = function () { return this.textElements[0]; }; c.prototype.patchDestroy = function () { var b = this.textElements; if (b) { for (var c = 0, e = b.length; c < e; c++) b[c] && b[c].destroy(); this.textElements = []; } a.prototype.patchDestroy.call(this); }; c.prototype.availableAttributes = function () { return iB; }; c.prototype.collectAttrs = function () { var b = a.prototype.collectAttrs.call(this, !0); b.translate = { x: b.x, y: b.y }; return Sc({}, b, GC); }; c.prototype.applyPatch = function (b) { var a = this.wrappedLayout || {}, c = this.textElements, f = a.parts, g = f ? f.length : 1, h = c.length, k = this.getParentGroup(), l = (this.el || k ? b : W(this.layout.svgStyles, b)) || {}, m = !!this.el; m || (this.el = this.createElement(l).add(k)); for (k = 0; k < g; k++) { var n = f ? f[k] : a, p = { text: n.text, x: n.x || 0, y: n.y || 0 }; p = W(p, n.styles); this.preserveStartSpaces && (p.style = "white-space: pre"); p.x = 0 === p.x ? "0px" : p.x; if (k < h) (n = c[k]), (p = Ga(p, yt)), (p = this.cached(p, Lc.WriteIfChanged, "_cache_", n, !0)) && n.attr(p); else { p = be(Ga(n, ["styles"]), p, fa(yt)); n = this.renderer.element("tspan"); this.cached(p, Lc.WriteOnly, "_cache_", n); if (!n) return this; n.prev = p; c.push(n); n.add(this.el); n.attr(p); } } for (k = h - 1; k >= g; k--) c.pop().destroy(); m && this.el.attr(l); this._strokeAttrs && this.el.attr({ strokeAttrs: this._strokeAttrs }); this.applyPatchState(b); }; c.prototype.sharedAttrsUpdated = function (b) { this._ownAttributes = this._ownAttributes || {}; L(this._ownAttributes, b); this.setRenewComplete(); }; c.prototype.parentAttrsChanged = function (b) { var a = this; a._parentAttributes || (a._parentAttributes = {}); L(a._parentAttributes, b); var c = !1; Da(b, function (d) { a[d] !== b[d] && (c = !0); }); c && a.setRenewComplete(); }; return c; })(Hf), HC = (function (a) { function c(b, c) { return (a.call(this, b, c) || this).updateSize(); } K(c, a); c.prototype.availableAttributes = function () { return gB; }; c.prototype.createElement = function (b) { var a = this.renderer.image(b); b.width ^ b.height && ~nm.indexOf("Safari") && (a.el.onload = function () { var c = a.el.getBBox(); !b.width && a.el.setAttribute("width", c.width); !b.height && a.el.setAttribute("height", c.height); }); return a; }; c.prototype.collectAttrs = function () { var b = a.prototype.collectAttrs.call(this, !0); return W(b, { src: this.src }); }; c.prototype.fillProperties = function (b) { b && ((this.src = t(b.src) ? b.src : this.src || ""), a.prototype.fillProperties.call(this, b)); }; return c; })(Hf), IC = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.availableAttributes = function () { return Ms; }; c.prototype.collectAttrs = function () { var b = a.prototype.collectAttrs.call(this, !0), c = { rx: this.rx, ry: this.ry }, e = parseInt(b["stroke-width"]) || 0; e && ((c.x = b.x + e / 2), (c.y = b.y + e / 2), (c.width = b.width - e), (c.height = b.height - e)); return W(b, c); }; c.prototype.fillProperties = function (b) { if (b) { var c = t(b.radius) ? b.radius : b.cornerRadius; this.rx = t(b.rx) ? b.rx : t(c) ? c : this.rx || 0; this.ry = t(b.ry) ? b.ry : t(c) ? c : this.ry || 0; J(b, "stroke-width") && (this.strokeWidth = parseInt(b["stroke-width"]) || 0); a.prototype.fillProperties.call(this, b); } }; c.prototype.createElement = function (b) { return this.renderer.rect(b); }; c.prototype.correctPixelValues = function (b, c) { a.prototype.correctPixelValues.call(this, b, c); c = Ff(b, this.strokeWidth, c); L(b, c); }; return c; })(Hf), At = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.availableAttributes = function () { return fB; }; c.prototype.collectAttrs = function () { var b = Ga(a.prototype.collectAttrs.call(this, !0), ["cx", "cy", "r"]); L(b, this.getShapeBox()); return b; }; c.prototype.getShapeBox = function (b) { b = b || this.getBbox(!0); return { x: this.relativeSize ? (t(this.cx) ? this.cx - this.r : null) : b.x, y: this.relativeSize ? (t(this.cy) ? this.cy - this.r : null) : b.y, width: this.relativeSize ? this.calculateFromRadius(this.r) : b.width, height: this.relativeSize ? this.calculateFromRadius(this.r) : b.height, shapeName: this.mode, }; }; c.prototype.fillProperties = function (b) { b && ((this.mode = b.mode || b.subType || this.mode), Q(this.relativeSize) && this.setSizeType(b), (this.cx = b.cx), (this.cy = b.cy), (this.r = b.r), a.prototype.fillProperties.call(this, b)); }; c.prototype.createElement = function (b) { return this.renderer.shape(this.mode, b); }; c.prototype.setSizeType = function (b) { yc(["x", "y", "width", "height"], b) ? (this.relativeSize = !1) : yc(["cx", "cy", "r"], b) && (this.relativeSize = !0); }; c.prototype.calculateFromRadius = function (b) { return t(b) ? 2 * b : null; }; c.prototype.default = function (b, a) { return lc(b) ? a : b; }; return c; })(Hf), Bt = {}, Ct = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.init = function () { a.prototype.init.call(this); this.padding = this.padding || rf(0); }; c.prototype.extendDefault = function (b, c) { c.name && Q(c.size) && (b.width = b.height = 16); return a.prototype.extendDefault.call(this, b, c); }; c.prototype.collectAttrs = function () { var b = a.prototype.collectAttrs.call(this); this.updateIconState(); b.d = this._iconD; t(this._rotate) && (1 === this._rotate.length && (this._rotate.push(this._iconWidth ? b.x + this._iconWidth / 2 : 0), this._rotate.push(this._iconHeight ? b.y + this._iconHeight / 2 : 0)), (b.rotate = this._rotate)); return b; }; c.prototype.getFromStoreOrShapes = function (b) { var a = this; if (b && "none" !== b) { var c, f; return (f = Bt[b]) ? f : (c = dc[b]) ? (Bt[b] = c(0, 0, 10, 10, { r: 2 }).toString()) : xo( b, function (b) { b.displayCdnWarning && Ma.emit("warning", "dom", "cdnLoad", { container: a.renderer.wrapper.el }); }, function () { Ma.emit("warning", "dom", "iconNotFound", { data: [b], container: a.renderer.wrapper.el }); } ); } }; c.prototype.updateIconState = function (b) { b = (b && (b.d || b.path)) || this.attrs.d || this.attrs.path; var a = this.getShapeBox(); this.pixelCorrection && (a = Ff(a, 1 === a.height || 1 === a.width ? 1 : 0, this.parent)); var c = b || (this._icon ? this.getFromStoreOrShapes(this._icon) : null); c && ((b = Yp(c, [a.x, a.y, a.width, a.height, this._userSize], this._outerShape, this.padding, !!b)), (this._iconD = b[0]), (this._iconSize = b[1]), (this._iconWidth = b[2]), (this._iconHeight = b[3])); }; c.prototype.val = function (b) { t(b) && this.attr(b); return this; }; c.prototype.getIconSize = function () { this.updateIconState(); return this._iconSize; }; c.prototype.createElement = function (b) { return this.renderer.path(b); }; c.prototype.fillProperties = function (b) { if (b) { var c = b.outline, e = b.hatch; this._icon = J(b, "name") ? b.name : this._icon; this._userSize = J(b, "size") ? parseInt(b.size) : this._userSize; this._outerShape = t(b.outerShape) ? Xp(b.outerShape) : this._outerShape; if (b.size || ((b.d || b.path) && !b.width && !b.height)) this.updateIconState(b), (b.width = this._iconWidth), (b.height = this._iconHeight); t(b.rotate) && ((this._rotate = uy(b.rotate)), (b.rotate = void 0)); t(c) && (c.color && (b.stroke = c.color), c.width && (b.borderWidth = c.width)); t(e) && (e.style && (b.hatchPattern = e.style), e.color && (b.hatch = e.color)); a.prototype.fillProperties.call(this, b); } }; return c; })(At), JC = fa(ot), KC = fa(["width", "height", "x", "y"]), Sg = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.init = function () { a.prototype.init.call(this); this.childElements = []; this.attachedElements = []; this.itemsCount = 0; this.padding = this.padding || rf(0, this.width ? this.width.px : 0); this.stretchSum = { width: 1, height: 1 }; this.scoring = new pC(); }; c.prototype.sameChildren = function (b) { b = B(b, function (b) { return b.type; }).join(); if (this.childrenHash === b) return !0; this.childrenHash = b; return !1; }; c.prototype.val = function (b) { if (!b) return this.childElements; ja(b) || (b = [b]); if (this.sameChildren(b)) for (var a = 0, c = b.length; a < c; a++) { var f = b[a]; f instanceof Gf && (this.childElements[a].destroy(), f.insert({ parent: this, position: a })); this.childElements[a].val(f.val || f); } else for (this.destroyChildren(), this.destroyAttachedElements(), delete this.childrenHash, a = 0, c = b.length; a < c; a++) (f = b[a]), f instanceof Gf || (O(f) && (f = { type: "text", text: f }), ja(f) && (f = { type: "stack", val: f }), f.add || (f = this.layout.item(f))), f.add(this); return this; }; c.prototype.addElementToParent = function (b) { this.attach(b, { setSize: null }); }; c.prototype.attach = function (b, a) { a = a && t(a.setSize) ? a.setSize : function (a) { return b.attr({ x: 0, y: 0, width: a.width, height: a.height }); }; this.attachedElements.push({ el: b, domAttached: !1, setSize: a }); this.state.needAttachPatching = !0; this.isPatched && this.patchAttachedElements(); }; c.prototype.updateSize = function (b, a) { var c = !this.variant || (a && this.variant !== a), d = b && (b.width !== this.width.px || b.height !== this.height.px || b.x !== this.x.px || b.y !== this.y.px); d && this.setSize(b); this.setGlobalCoordinates(); this.variant = a || this.variant || this.selectVariant(); b || this.setSize(this.variant.minSize); (c || d) && this.arrange(); return this; }; c.prototype.calculatePadding = function (b, a) { a = this.padding; var c = a.right, d = a.top, g = a.bottom, h = function (a) { return "%" === a.valueType ? (a.val * b) / 100 : a.px; }; return { left: h(a.left), right: h(c), top: h(d), bottom: h(g) }; }; c.prototype.getContentSize = function () { var b = this.getBbox(), a = this.calculatePadding(b.width, b.height); return { width: Math.max(b.width - a.left - a.right, 0), height: Math.max(b.height - a.top - a.bottom, 0), x: b.x + a.left, y: b.y + a.top }; }; c.prototype.getStretchingArea = function () { var b = this.stretchSum, a = this.getReservedSpace(), c = this.getContentSize(); return { width: Math.max(c.width - a.width, 0) / (b.width || 1), height: Math.max(c.height - a.height, 0) / (b.height || 1) }; }; c.prototype.getReservedSpace = function () { return { width: 0, height: 0 }; }; c.prototype.selectVariant = function () { var b = this.combinations, a = null, c = b.length, f = this.strategy || this.layout.svgStyles.strategy, g = null, h = function (b) { return b && "*" !== b.valueType; }; if (c) { for (var k = 0; k < c; k++) { var l = b[k], m = l.score, n = this.fitsSize(l.minSize), p = h(this.width), q = h(this.height), r = g && 1 === this.scoring.compareScores(g, m, f); p = !g || (p && q && r); n.width && n.height && p && ((a = l), (g = m)); } g = null; if (!a) { for (k = c - 1; 0 <= k; k--) { c = b[k]; h = "height" === f ? f : "width"; if ((g && g.minSize[h].px < c.minSize[h].px && !a) || (g && a && g.minSize[h].px === a.minSize[h].px)) a = g; g = b[k]; } a = a || g; } return a; } }; c.prototype.fitsSize = function (b) { var a = ic(this.width), c = ic(this.height); return { width: !a || 1 > b.width.px - a, height: !c || 1 > b.height.px - c }; }; c.prototype.composeCombinations = function () { var b = this, a = [], c = this.childElements, f = !c || !c.length, g = this.suspend, h = this.width, k = this.height; if (f || g) { a = []; if (g) for (var l = 0; l < c.length; l++) { var m = c[l]; m.combinations.length || m.updateCombinations(); m = m.combinations; a.push(m.length ? m[0] : null); } c = function (b) { return g || !b || (f && b.isMutable) ? ld() : b; }; return [{ components: a, score: { whitespace: 0, magnitude: h && k ? h.px * k.px : 0 }, minSize: { width: c(h), height: c(k) }, index: 0 }]; } h = 1; for (l = 0; l < c.length; l++) (m = c[l]), m.combinations.length || m.updateCombinations(), (m = m.combinations.slice()), (k = m.length), (h *= k), k || m.push(null), a.push(m); 1e3 < h && (a = B(a, function (a) { a = b.maxWidth ? vy(a, b.maxWidth) : a[0]; return [a]; })); c = this.mixCombinations(a); return this.filterCombinations(c); }; c.prototype.mixCombinations = function (b) { return this.getCombinations(b); }; c.prototype.getCombinations = function (b, a) { a = a || { codes: [], result: [], counter: 0 }; if (0 < b.length) for (var c = b[0].length, d = 0; d < c; d++) { var g = b.slice(0); a.codes[a.counter] = b[0][d]; g.shift(); a.counter++; this.getCombinations(g, a); } else (b = a.codes.slice(0)), a.result.push(b); a.counter--; return a.result; }; c.prototype.filterCombinations = function (b) { var a = this.width, c = this.height, f = tc(a), g = tc(c), h = "none" === this.autoWrap, k = !f && !g && "golden" === this.autoWrap, l = function (b) { return t(b) ? b : Infinity; }, m = l(this.maxWidth); l = l(this.maxHeight); if (1 === b.length) return (b = this.measure(b[0])), f && (b.minSize.width = Oa(a)), g && (b.minSize.height = Oa(c)), (b.index = 0), [b]; if (!(f || g || h || k)) { a = []; c = 0; g = f = void 0; for (var n = 0, p = b.length; n < p; n++) { var q = this.measure(b[n]), r = q.minSize; h = m - r.width.px; k = l - r.height.px; var u = Math.max(Math.abs(Math.min(0, h)), Math.abs(Math.min(0, k))); if (0 <= h && 0 <= k) a.push(q), (q.index = c++); else if (!f || Q(g) || g > u) (g = u), (f = q); } !a.length && f && a.push(f); return a; } var x = null, v = 0, y = b.length - 1; n = 0; for (p = b.length; n < p; n++) { q = this.measure(b[n]); r = q.minSize; var D = r.width.px; r = r.height.px; var w = D / r, F = !f || q.minSize.width.px <= a.px, R = !g || q.minSize.height.px <= c.px, z = !k || !x || (Math.abs(1.618 - w) < Math.abs(1.618 - v) && 0.1 > q.score.whitespace); if (((D <= m && r <= l) || f || g) && F && R && z && (f && (q.minSize.width = Oa(a)), g && (q.minSize.height = Oa(c)), (u = q), k && ((x = q), (v = w)), f || h || (k && 1.618 > w))) break; n === p - 1 && !u && F && (y = 0); } b = u || this.measure(b[y]); b.index = 0; return [b]; }; c.prototype.selectClosest = function (b, a, c) { function d(b, a, c) { b = b.minSize; a = a.minSize; return c ? Math.abs(b[c].px - a[c].px) : Math.abs(b.width.px - a.width.px) + Math.abs(b.height.px - a.height.px); } for (var e = b[0], h = e ? d(a, e, c) : null, k = 1, l = b.length; k < l; k++) { var m = b[k]; if (null !== m) { var n = d(a, m, c); if (null === h || h > n) (h = n), (e = m); } } return e; }; c.prototype.applyFitSize = function (b, a) { var c = this.fitWidth, d = this.fitHeight, g = 1, h = 1; c && c < b && (g = c / b); d && d < a && (h = d / a); (c || d) && this.attr({ transform: { scale: Math.min(g, h) } }); }; c.prototype.arrange = function () { var b = this.variant; if (b) { var a = this.childElements, c = b.components, f = this.getContentSize(), g = this.width.isMutable ? b.minSize.width : this.width, h = this.height.isMutable ? b.minSize.height : this.height; b = this.calculatePadding(g.px, h.px); if (c) for (this.applyFitSize(g.px, h.px), g = 0, h = a.length; g < h; g++) { var k = a[g], l = c[g], m = k.width, n = k.height; if (l) { var p = k.calculateMargin(), q = ic(k.userX), r = ic(k.userY); q = f.width - p.horizontal.px - (q ? q - b.left : 0); r = f.height - p.vertical.px - (r ? r - b.top : 0); m = Cb(m) ? m : l.minSize.width; n = Cb(n) ? n : l.minSize.height; var u = function (b, a) { return Ya(a) ? b : ib(a) ? (a.val * b) / 100 : a.px; }; q = u(q, m); r = u(r, n); m = f.width - q - p.horizontal.px; n = f.height - r - p.vertical.px; m = (Ge[k.xAlignment || this.xContentAlignment] || 0) * (0 < m ? m : 0); n = (Ge[k.yAlignment || this.yContentAlignment] || 0) * (0 < n ? n : 0); k.updateSize({ width: q, height: r, x: k.userX ? k.userX.px : m + b.left + p.left.px, y: k.userY ? k.userY.px : n + b.top + p.top.px }, l); } } } }; c.prototype.measure = function (b) { for (var a = [], c = 0, f = 0, g = !1, h = !1, k = [], l = this.childElements, m = 0, n = b.length; m < n; m++) { var p = b[m], q = l[m]; if (p) { var r = tc(q.width) ? q.width : p.minSize.width, u = tc(q.height) ? q.height : p.minSize.height, x = q.calculateMargin(), v = Cb(q.userX) ? q.userX.px : 0; q = Cb(q.userY) ? q.userY.px : 0; var y = x.horizontal.relative / 100; r = (r.px + v + x.horizontal.absolute) * (1 + y / (1 - y)); u = u.px + q + x.vertical.absolute + (x.vertical.relative / 100) * r; x = Ya(p.minSize.width); v = Ya(p.minSize.height); g = g || x; h = h || v; c = r > c ? r : c; f = u > f ? u : f; k.push(p.score); a.push({ x: 0, y: 0, width: p.minSize.width.px, height: p.minSize.height.px }); } } return { components: b, minSize: this.completeSize(Qa(c, { stretch: g }), Qa(f, { stretch: h })), score: { whitespace: this.combineScores(k, a), magnitude: c * f }, index: 0 }; }; c.prototype.completeSize = function (b, a) { return lt(b, a, { padding: this.padding }); }; c.prototype.createElement = function (b) { return this.renderer.element("g", b); }; c.prototype.updateRoot = function () { a.prototype.updateRoot.call(this); w(this.childElements, function (b) { return b.updateRoot(); }); }; c.prototype.updateCombinations = function () { w(this.childElements, function (b) { return b.updateCombinations(); }); a.prototype.updateCombinations.call(this); }; c.prototype.updateGlobalCoordinates = function () { a.prototype.updateGlobalCoordinates.call(this); w(this.childElements, function (b) { return b.updateGlobalCoordinates(); }); }; c.prototype.applyDestroy = function () { for (var b = this.childElements; b.length; ) b[0].applyDestroy(); a.prototype.applyDestroy.call(this); }; c.prototype.applyRefresh = function (b) { a.prototype.applyRefresh.call(this, b); if (this.isPatched && !b) { w(this.childElements, function (b) { return b.applyRefresh(); }); if ((b = this.el && this.el.data.vals["clip-path"]) && b.isDef) { var c = this.getBbox(); b.attr = L(b.attr || {}, { width: c.width, height: c.height }); b.updateAttr && b.updateAttr(b); } this.state.needAttachPatching && this.patchAttachedElements(); } }; c.prototype.applyPatch = function (b) { a.prototype.applyPatch.call(this, b); this.patchTitle(b); b = (b = b && b.translate) && (b.x || b.y); (this.forcePixelCorrection || b) && this.pixelCorrection && (this.updateGlobalCoordinates(), this.correctPixelValuesDown()); }; c.prototype.correctPixelValuesDown = function () { w(this.childElements, function (b) { b.pixelCorrection && b.isPatched && (b.needPatch(), b.patch(), b instanceof c && b.correctPixelValuesDown()); }); }; c.prototype.patchAttachedElements = function () { var b = this, a = b.el, c = []; w(b.attachedElements, function (b) { b.el.isDestroyed ? c.push(b) : b.domAttached || (b.el.add(a), (b.domAttached = !0)); }); c.length && w(c, function (a) { b.attachedElements.splice(b.attachedElements.indexOf(a), 1); }); b.state.needAttachPatching = !1; }; c.prototype.destroyAttachedElements = function () { w(this.attachedElements, function (b) { return b.el && b.el.destroy(); }); }; c.prototype.patchTitle = function (b) { b = this.title; var a = this._titleVisual; t(b) && (b ? (a || (a = this._titleVisual = this.renderer.element("title").add(this.el)), a.attr({ text: b })) : a && (a.destroy(), (this._titleVisual = null))); }; c.prototype.availableAttributes = function () { return Vi; }; c.prototype.collectAttrs = function () { var b = a.prototype.collectAttrs.call(this, !0); b.translate = { x: b.x, y: b.y }; J(b, "shadow") && !J(b, "clipPath") && delete b.shadow; return Sc({}, b, KC); }; c.prototype.appendChild = function (b, a) { return 0 < a ? this.insertChild(b, a) : this.addChild(b, "push"); }; c.prototype.prependChild = function (b) { return this.addChild(b, "unshift"); }; c.prototype.addChild = function (b, a) { return this.childElements && 0 > this.childElements.indexOf(b) ? (this.childElements[a](b), (a = this.childElements.length), this.itemsCount < a && (this.itemsCount = a), this._sharedAttributes && b.parentAttrsChanged(this._sharedAttributes), !0) : !1; }; c.prototype.removeChild = function (b) { b.parent = null; b = this.childElements.indexOf(b); 0 > b || (this.childElements.splice(b, 1), (this.itemsCount = this.childElements.length), this.setRenewComplete()); }; c.prototype.insertChild = function (b, a) { var c = this.childElements, d = c.indexOf(b), g = 0 > d; g || c.splice(d, 1); c.splice(a, 0, b); if (g) return (this.itemsCount = c.length), this._sharedAttributes && b.parentAttrsChanged(this._sharedAttributes), !0; this.setRenewComplete(); return !1; }; c.prototype.isNotEmpty = function () { return 0 < this.childElements.length; }; c.prototype.clear = function (b) { for (var a = this.childElements, c = 0, f = a.length; c < f; c++) { var g = a[c]; g && ((g.parent = null), -1 === b.indexOf(g) && g.patchDestroy()); } this.childElements = []; this.combinations = []; this.variant = null; this.itemsCount = 0; return this; }; c.prototype.destroyChildren = function () { var b = this.childElements; if (b) { for (var a = 0, c = b.length; a < c; a++) { var f = b[a]; f && ((f.parent = null), f.patchDestroy()); } this.childElements = []; } }; c.prototype.patchDestroy = function () { this.destroyChildren(); a.prototype.patchDestroy.call(this); }; c.prototype.combineScores = function (b, a) { if (!a || 2 > a.length) return b[0].whitespace; b = this.scoring.mergeScores(b); a = this.scoreCombination(a); return (b + a.whitespace) / 2; }; c.prototype.isComplete = function () { var b = (0 === this.itemsCount && 0 < this.childElements.length) || this.childElements.length === this.itemsCount, a = 0 === this.itemsCount && (tc(this.width) || tc(this.height)); return b || a; }; c.prototype.scoreCombination = function (b) { return new dj(b).getScore(); }; c.prototype.finalSizeCalled = function () { if (this.attachedElements) { var b = this.getBbox(); w(this.attachedElements, function (a) { a.setSize && a.setSize(b); }); } }; c.prototype.snap = function (b, a) { void 0 === a && (a = 1); return Ff(b, a, this); }; c.prototype.getElement = function () { return this.el; }; c.prototype.getLowermostElement = function () { var b = this.el; return b ? b.childNodes[0] : null; }; c.prototype.sharedAttrsUpdated = function (b) { var a = (this._sharedAttributes = this._sharedAttributes || {}); Na(a, b, JC); w(this.childElements, function (b) { return b.parentAttrsChanged(a); }); }; c.prototype.parentAttrsChanged = function (b) { var a = this, c; Da(b, function (d) { a[d] !== b[d] && ((c = c || {}), (c[d] = b[d])); }); c && ((this._sharedAttributes = c), this.sharedAttrsUpdated(c)); }; return c; })(Hf), Tg = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.init = function () { a.prototype.init.call(this); this.orientation = "x"; }; c.prototype.fillProperties = function (b) { b && ((this.orientation = b.subType || b.orientation || this.orientation), a.prototype.fillProperties.call(this, b)); }; c.prototype.arrange = function () { var b = this.variant; if (b) { var a = this.childElements, c = b.components, f = b.extra || {}, g = this.getContentSize(), h = this.width.isMutable ? b.minSize.width : this.width, k = this.height.isMutable ? b.minSize.height : this.height; b = this.calculatePadding(h.px, k.px); var l = "y" === this.orientation; this.applyFitSize(h.px, k.px); var m = 0, n = 0, p = 0; h = 0; this.stretchSum = f.stretchSum || this.stretchSum; f = 0; for (k = a.length; f < k; f++) { var q = a[f], r = c[f]; if (r) { var u = q.calculateMargin(), x = Cb(q.width) ? q.width : r.minSize.width, v = Cb(q.height) ? q.height : r.minSize.height, y = Ya(x) ? u.horizontal.px : (ib(x) ? (x.val * g.width) / 100 : x.px) + u.horizontal.px, t = Ya(v) ? u.vertical.px : (ib(v) ? (v.val * g.height) / 100 : v.px) + u.vertical.px; q = Ya(x) ? (g.width * x.val) / this.stretchSum.width : y; v = Ya(v) ? (g.height * v.val) / this.stretchSum.height : t; l ? ((m = m > y ? m : y), (n += t), (p = p > q ? p : q), (h += v)) : ((m += y), (n = n > t ? n : t), (p += q), (h = h > v ? h : v)); } } var w = 0, F = 0, R = 0, z = 0; m = l ? g.width : oa([0, g.width - m]); n = l ? oa([0, g.height - n]) : g.height; p = oa([0, g.width - p]); h = oa([0, g.height - h]); f = 0; for (k = a.length; f < k; f++) if (((q = a[f]), (r = c[f]))) (u = q.calculateMargin()), (x = q.width && !q.width.isMutable ? q.width : r.minSize.width), (v = q.height && !q.height.isMutable ? q.height : r.minSize.height), (y = Ya(x) ? (m * x.val) / this.stretchSum.width : ib(x) ? (x.val * g.width) / 100 : x.px), (t = Ya(v) ? (n * v.val) / this.stretchSum.height : ib(v) ? (v.val * g.height) / 100 : v.px), q.updateSize( { width: y, height: t, x: w + (Ge[q.xAlignment || this.xContentAlignment] || 0) * (l ? g.width - y - u.horizontal.px : p) + b.left + u.left.px, y: F + (Ge[q.yAlignment || this.yContentAlignment] || 0) * (l ? h : g.height - t - u.vertical.px) + b.top + u.top.px, }, r ), l ? ((R = R > y ? R : y), (F = z += t + u.vertical.px)) : ((R += y + u.horizontal.px), (z = z > t ? z : t), (w = R)); } }; c.prototype.reverse = function () { this.childElements.reverse(); this.state.needRecalculation = !0; }; c.prototype.getReservedSpace = function () { var b = this.variant ? { width: this.variant.minSize.width.px, height: this.variant.minSize.height.px } : a.prototype.getReservedSpace.call(this), c = "y" === this.orientation; return { width: c ? 0 : b.width, height: c ? b.height : 0 }; }; c.prototype.selectClosest = function (b, c) { return a.prototype.selectClosest.call(this, b, c, "y" === this.orientation ? "width" : "height"); }; c.prototype.measure = function (b) { for (var a = [], c = [], f = 0, g = 0, h = 0, k = 0, l = !1, m = !1, n = 0, p = 0, q = 0, r = this.childElements, u = 0, x = b.length; u < x; u++) { var v = b[u], y = r[u]; if (v) { var t = v.minSize.width, w = v.minSize.height, F = Cb(y.width) ? y.width : t, R = Cb(y.height) ? y.height : w; y = r[u].calculateMargin(); l = l || Ya(F); m = m || Ya(R); c.push(v.score); a.push({ x: 0, y: 0, width: t.px, height: w.px }); "x" === this.orientation ? ((f += (ib(F) ? 0 : F.px) + y.horizontal.absolute), (h += (ib(F) ? F.val : 0) + y.horizontal.relative), (v = Math.max(Ee(R) ? R.px : 0, w.px) + y.vertical.absolute), (g = g > v ? g : v), (n += Ya(F) ? F.val : 0)) : ((g += (ib(R) ? 0 : R.px) + y.vertical.absolute), (k += (ib(R) ? R.val : 0) + y.vertical.relative), (F = Math.max(Ee(F) ? F.px : 0, t.px) + y.horizontal.absolute), (f = f > F ? f : F), (p += Ya(R) ? R.val : 0)); q += y.vertical.relative; } } f = 100 > h ? (100 * f) / (100 - h) : 0; g = (100 * g) / (100 - k) + (q * f) / 100; return { components: b, minSize: this.completeSize(Qa(f, { stretch: Cb(this.width) ? !1 : l }), Qa(g, { stretch: Cb(this.height) ? !1 : m })), score: { whitespace: this.combineScores(c, a), magnitude: f * g }, extra: { stretchSum: { width: n || 1, height: p || 1 } }, index: 0, }; }; c.prototype.val = function (b) { b && b.length && (this.itemsCount = b.length); return a.prototype.val.call(this, b); }; c.prototype.scoreCombination = function (b) { var a = De[this.orientation || "x"]; return new dj(b).getScore(a); }; return c; })(Sg), LC = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.fillProperties = function (b) { var c = this, e = t(b.val) ? b.val : b.text, f = b.xAlignment, g = b.yAlignment, h = b.xContentAlignment || f, k = b.yContentAlignment || g; !b.xContentAlignment && b.xAlignment && (b.xContentAlignment = f); !b.yContentAlignment && b.yAlignment && (b.yContentAlignment = g); h && this.xContentAlignment !== h && w(this.childElements, function (b) { b.attr({ xContentAlignment: h }); }); k && this.yContentAlignment !== k && w(this.childElements, function (b) { b.attr({ yContentAlignment: k }); }); b.width && (b.strategy = b.strategy || "none"); b.stroke && ((this._strokeAttrs = Na({}, b, Pg)), w(this.childElements, function (b) { b.attr(c._strokeAttrs); })); a.prototype.fillProperties.call(this, b); t(e) && this.val(e); }; c.prototype.init = function () { a.prototype.init.call(this); this.orientation = "y"; }; c.prototype.val = function (b) { return t(b) ? (O(b) && this._textAttr !== b && ((this._textAttr = b), this.parseTextAndSetTextValue()), this) : this._textAttr; }; c.prototype.setTextSize = function (b) { var a = this; "text" === b.type && (b.width = b.width || "*"); ja(b) && w(b, function (b) { return a.setTextSize(b); }); }; c.prototype.collectAttrs = function () { var b = a.prototype.collectAttrs.call(this); return Hb(b, Pg); }; c.prototype.editLine = function (b) { if ("text" === b.type && b.val) if ( ja(b.val) && ea(b.val, function (b) { return b.align; }).length ) { var a = []; w(b.val, function (b) { a.push({ type: "text", val: [b], xAlignment: b.align }); }); b = L(b, { type: "stack", val: a, width: b.width || "100%" }); } else O(b.val) && b.align && (b.xAlignment = b.align); if (!this.width.isMutable) { var c = this.textOverflow; !c || ("ellipsis" !== c && "clip" !== c) || this.setTextSize(b); } var f = this.xContentAlignment || this.xAlignment, g = this.yContentAlignment || this.yAlignment, h = function (b) { f && (b.xAlignment = b.xAlignment || f); g && (b.yAlignment = b.yAlignment || g); }; if (f || g) ja(b) ? w(b, function (b) { return h(b); }) : h(b); this._strokeAttrs && L(b, this._strokeAttrs); return b; }; c.prototype.canReuse = function (b) { if (ja(b.val) || ja(b)) { b = b.val || b; for (var a = 0, c = b.length; a < c; a++) if (!this.canReuse(b[a])) return !1; return !0; } return "visual" === b.kind || b.align ? !1 : !0; }; c.prototype.destroyElements = function () { for (; this.childElements.length; ) this.childElements[0].destroy(); }; c.prototype.sameHash = function (b) { b = B(b.val || b, function (b) { return b.type; }).join(); if (this._configHash === b) return !0; this._configHash = b; return !1; }; c.prototype.parseTextAndSetTextValue = function () { var b = this._textAttr; "" === b && this.destroyElements(); if (b) { b = wC(b); b.isRtl && ((this.attrs.direction = "rtl"), (this.attrs.textAnchor = "end")); var a = b.value, c = "stack:y" === a.type ? a.val : [a], f = this.childElements.length; b = []; var g = this.sameHash(a); this._recreate = this._recreate || (this._type && a.type && this._type !== a.type) || (a.val && (!this.canReuse(a) || !g)) || a.isNanoChart; this._type = ja(a) ? "array" : a.type; a = 0; for (g = c.length; a < g; a++) { var h = c[a], k = h.length; (ub(h.val) && !k && ub(h.name) && ub(h.src) && ub(h.d) && "visual" !== h.kind) || b.push(this.editLine(h)); } var l = B(b, function (b) { return ( (b = S(b.val, function (b) { return b.verticalAlign; })) && b.verticalAlign ); }); if (!this._recreate && 0 < f) { a = 0; for (g = b.length; a < g; a++) a < f ? ((c = b[a]), this.childElements[a].val(c.val && c.val.length && "text" !== c.type ? c.val : c)) : ((h = this.layout.item(b[a]).add(this)), 0 < a && h.attr({ preserveStartSpaces: !1 })); a = f - 1; for (g = b.length; a >= g; a--) this.childElements[a].destroy(); } else for (this._recreate = void 0, this.destroyElements(), this.sharedAttrsUpdated(this.attrs), a = 0, g = b.length; a < g; a++) (c = b[a]), (h = void 0), "visual" === c.kind && c.align && (c.xAlignment = c.align), ja(c.val) && (c.yContentAlignment = c.yContentAlignment || l[a] || this.yContentAlignment), (f = this.layout.item(c)) && (h = f.add(this)), 0 < a && h && h.attr({ preserveStartSpaces: !1 }); w(this.childElements, function (b, a) { if ( !l[a] && b instanceof Tg && ((a = b.childElements), (b = ea(a, function (b) { return b instanceof Ct; })), b.length) ) { var c = 0; a = ea(a, function (b) { return b instanceof zt; }); w(a, function (b) { return (c = Math.max(c, b.update().getMaxDescent())); }); w(b, function (b) { var a = b.calculateMargin(); a.bottom.val || a.top.val || b.attr({ margin: { top: 0, left: a.left.val, right: a.right.val, bottom: c } }); }); } }); } }; return c; })(Tg), Dt = ["cellSpacing", "cellPadding", "borders"], MC = (function (a) { function c(b, c) { b = a.call(this, b, c) || this; b.rowCount = 0; b.columnCount = 0; b.gridElements = []; b.borders = []; b.borderElements = []; c && c.cellSpacing && b.applyCellSpacing(c.cellSpacing); return b; } K(c, a); c.prototype.attr = function (b, c) { J(b, "cellSpacing") && this.applyCellSpacing(b.cellSpacing); return a.prototype.attr.call(this, b, c); }; c.prototype.applyCellSpacing = function (b) { (this.cellSpacing = parseInt(b) || 0) && "number" === typeof this.padding.initial && (this.padding = rf(this.padding.initial + this.cellSpacing / 2)); var a = rf(this.cellSpacing / 2); w(this.childElements, function (b) { b.padding = a; }); }; c.prototype.isComplete = function () { var b = this.childElements; b = b ? b.length : 0; return 0 < b && b === this.rowCount * this.columnCount; }; c.prototype.arrange = function () { var b = this.variant; if (b) { this.calculatePadding((this.width.isMutable ? b.minSize.width : this.width).px, (this.height.isMutable ? b.minSize.height : this.height).px); for (var a = this.childElements, c = this.getContentSize(), f = b.components, g = [], h = [], k = [], l = [], m = 0; m < this.rowCount; m++) for (var n = 0; n < this.columnCount; n++) { var p = m * this.columnCount + n, q = f[p], r = a[p]; if (q) { var u = q.minSize, x = function (b, a) { return ib(b) ? (b.val * a) / 100 : b.px; }; q = x(u.width, c.width); x = x(u.height, c.height); p = r.width && !r.width.isMutable ? r.width : u.width; r = r.height && !r.height.isMutable ? r.height : u.height; g[n] = oa([g[n], Ya(p) ? p.val : 0]); h[m] = oa([h[m], Ya(r) ? r.val : 0]); k[n] = oa([k[n], q]); l[m] = oa([l[m], x]); } else (k[n] = oa([k[n], 0])), (l[m] = oa([l[m], 0])), (g[n] = oa([g[n], 0])), (h[m] = oa([h[m], 0])); } m = []; n = []; g = Ta(g); u = Ta(h); h = []; for (var v = 0; v < this.rowCount; v++) for (var y = 0; y < this.columnCount; y++) { p = v * this.columnCount + y; q = f[p]; r = a[p]; p = b.minSize; x = c.width - p.width.px + k[y]; var t = c.height - p.height.px + l[v]; q ? ((p = Cb(r.width) ? r.width : q.minSize.width), (r = Cb(r.height) ? r.height : q.minSize.height), (q = Ya(p) ? (x * p.val) / g : ib(p) ? (p.val * c.width) / 100 : p.px), (x = Ya(r) ? (t * r.val) / u : ib(r) ? (r.val * c.height) / 100 : r.px), (m[y] = oa([m[y], q])), (n[v] = oa([n[v], x])), h.push([q, x])) : ((m[y] = oa([m[y], 0])), (n[v] = oa([n[v], 0]))); } c = this.padding.top.px; for (f = 0; f < this.rowCount; f++) { k = n[f]; l = this.padding.left.px; for (g = 0; g < this.columnCount; g++) (p = f * this.columnCount + g), (u = m[g]), (r = a[p]), (v = h[this.columnCount * f + g]), (q = u), (x = k), (y = l), (t = c), tc(r.width) && (y += (Ge[r.xAlignment] || 0) * (u - v[0])), tc(r.height) && (t += (Ge[r.yAlignment] || 0) * (k - v[1])), r.updateSize({ width: q, height: x, x: y, y: t }, b.components[p]), (l += u); c += k; } } }; c.prototype.refreshBorders = function () { for ( var b = function (b, c) { c = a.borders[b]; if (!c) return "continue"; var d = a.childElements[b]; b = a.borderElements[b] = a.borderElements[b] || []; for ( var e = function (b, a) { b = Ff([b ? 0 : a ? d.width.px : 0, b ? (a ? d.height.px : 0) : 0, b ? d.width.px : 0, b ? 0 : d.height.px], 1, d); return "M " + b[0] + " " + b[1] + " l " + b[2] + " " + b[3]; }, f = 0; 4 > f; f++ ) if (c[f]) { var g = b[f], h = !(f % 2), q = 1 === f || 2 === f; g ? g.attr({ d: e(h, q) }) : ((g = a.renderer.path({ d: e(h, q), strokeWidth: 1, stroke: "gray", fill: "none" })), g.add(d), (b[f] = g)); } }, a = this, c = 0, f = this.childElements.length; c < f; c++ ) b(c); }; c.prototype.applyPatch = function (b) { this.refreshBorders(); a.prototype.applyPatch.call(this, b); }; c.prototype.getReservedSpace = function () { var b = this.variant; return b ? { width: b.minSize.width.px, height: b.minSize.height.px } : { width: 0, height: 0 }; }; c.prototype.scoreCombination = function (b) { return new dj(b).getScore(De.xy, [this.rowCount, this.columnCount]); }; c.prototype.measure = function (b) { function a(b, a) { if (b.length !== a.length) return 0; for (var c = [], d = 0; d < b.length; d++) { var e = [b[d]], f = a[d]; 0 < f && e.push(f / 100); c.push(e); } b = oC(c); for (c = a = 0; c < b.length; c++) { e = d = 0; f = b[c]; for (var g = 0; g < f.length; g++) { var h = f[g]; 1 > h ? (d += h) : (e += h); } a = oa([a, 1 > d ? e / (1 - d) : e]); } return a; } for ( var c = [], f = [], g = { widths: [], heights: [] }, h = { widths: [], heights: [] }, k = { width: !1, height: !1 }, l = function (b) { return ib(b) ? 0 : b.px; }, m = function (b) { return ib(b) ? b.val : 0; }, n = this.childElements, p = 0; p < this.rowCount; p++ ) for (var q = 0; q < this.columnCount; q++) { var r = p * this.columnCount + q, u = b[r], x = n[r]; if (u) { r = u.minSize.width; var v = u.minSize.height, y = Cb(x.width) ? x.width : r; x = Cb(x.height) ? x.height : v; k.width = k.width || Ya(y); k.height = k.height || Ya(x); c.push(u.score); f.push({ x: 0, y: 0, width: r.px, height: v.px }); g.widths[q] = oa([g.widths[q] || 0, l(r)]); g.heights[p] = oa([g.heights[p] || 0, l(v)]); h.widths[q] = oa([h.widths[q] || 0, m(r)]); h.heights[p] = oa([h.heights[p] || 0, m(v)]); } else (g.widths[q] = oa([g.widths[q] || 0, 0])), (g.heights[p] = oa([g.heights[p] || 0, 0])), (h.widths[q] = oa([h.widths[q] || 0, 0])), (h.heights[p] = oa([h.heights[p] || 0, 0])); } g = (function (b, c, d) { var e = a(b.widths, c.widths); b = a(b.heights, c.heights); return { width: Qa(e, { stretch: d.width }), height: Qa(b, { stretch: d.height }) }; })(g, h, k); return { components: b, score: { whitespace: this.combineScores(c, f), magnitude: g.width.px * g.height.px }, minSize: this.completeSize(g.width, g.height), index: 0 }; }; c.prototype.mixCombinations = function (b) { for ( var a = this.rowCount, c = this.columnCount, f = [], g = b.reduce(function (b, a) { return b.length > a.length ? b : a; }).length, h = 0; h < a; h++ ) for (var k = 0; k < c; k++) for (var l = b[h * c + k], m = l.length - 1, n = g; 0 < n--; ) { var p = ((m * n) / g + 0.5) << 0; f[n] || (f[n] = []); f[n].push(l[p]); } return f; }; c.prototype.val = function (b) { if (!b) return this.gridElements; this.rowCount = b.length; this.columnCount = jm( b, function (b, a) { return a.length > b ? a.length : b; }, 0 ); this.clear(Tc(b)); for (var a = this.cellSpacing / 2 || 0, c = 0; c < this.rowCount; c++) for (var f = 0; f < this.columnCount; f++) { var g = b[c][f] || this.layout.panel({ type: "panel" }), h = this.wrapInnerItem(g, a); this.gridElements.push(g); h.add(this); } this.refreshBorders(); return this; }; c.prototype.wrapInnerItem = function (b, a) { if (b.parent) return b.parent; a = this.layout.panel({ padding: a }); "px" !== b.width.valueType && ((a.width = qa(b.width)), "%" === b.width.valueType && (b.width.val = 100)); "px" !== b.height.valueType && ((a.height = qa(b.height)), "%" === b.height.valueType && (b.height.val = 100)); "Icon" !== b.constructor.name && ((a.attrs = Hb(b.attrs, Pg)), (b.attrs = {})); b.add(a); return a; }; c.prototype.clear = function (b) { for (var a = this.childElements, c = 0, f = a.length; c < f; c++) { var g = a[c], h = this.gridElements[c]; g && ((g.parent = null), g.destroyAttachedElements(), -1 === b.indexOf(h) && g.patchDestroy()); } this.borderElements = []; this.gridElements = []; this.childElements = []; this.combinations = []; this.variant = null; this.itemsCount = 0; return this; }; c.prototype.fillProperties = function (b) { if (b) { var c = this.processAttrs(b); a.prototype.fillProperties.call(this, b); c && this.isComplete() && this.setRenewComplete(); } }; c.prototype.processAttrs = function (b) { for (var a = !1, c = Dt.length, f = 0; f < c; f++) { var g = Dt[f], h = b[g]; t(h) && ((a = a || this[g] !== h), (this[g] = h), delete b[g]); } return a; }; return c; })(Sg), Et = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.availableAttributes = function () { return hB; }; c.prototype.defaultConfig = function () { var b = this.layout; b = b ? C(b.renderer, "errorReporting.chart") : void 0; b = (b ? b.boxDefaults() : Cf()).outline; return { fill: "white", "border-color": b.color, "border-width": b.width }; }; c.prototype.getPaddingOffset = function (b, a) { b = b.valueType ? b.px : b; var c = a.valueType ? a.px : a; a = Yw(b, c, this.shape || {}); b = 0 === b && 0 === c; return { top: a[1] + (b ? 0 : this.strokeWidth), bottom: a[3] + (b ? 0 : this.strokeWidth), left: a[0] + (b ? 0 : this.strokeWidth), right: a[2] + (b ? 0 : this.strokeWidth) }; }; c.prototype.fillProperties = function (b) { b && (this.processAttrs(b), a.prototype.fillProperties.call(this, b)); }; c.prototype.destroyRect = function () { this.rect && (delete this._box_cache_, this.rect.destroy(), (this.rect = null)); }; c.prototype.patchRect = function () { var b = this.strokeWidth, a = this.getBbox(), c = !a.width || !a.height; if (!this.childElements.length || c) this.destroyRect(); else if (a.width === 2 * b && a.height === 2 * b) this.destroyRect(); else if ( ((b = W(this.attrs || {}, { "border-width": this.strokeWidth, stroke: this.stroke, fill: this.fillColor, shadow: this.shadow, width: oa([a.width - b, 0]), height: oa([a.height - b, 0]), x: b / 2, y: b / 2, shape: this.shape, })), this.pixelCorrection && ((a = Ff(b, this.strokeWidth, this)), L(b, a)), (b = Sc({}, b, eB)), (b = this.cached(b, Lc.WriteIfChanged, "_box_cache_"))) ) this.rect ? this.rect.attr(b) : ((this.rect = this.renderer.shape("rectangle", b)), (b = this.firstItem()) ? ((b = this.getLowermostElement() || b.el), this.rect.addBefore(b)) : this.rect.add(this.getElement())), this.rectAttrsApplied({ d: this.rect.attr("d") }); }; c.prototype.emptyPatch = function () { a.prototype.emptyPatch.call(this); this.patchRect(); }; c.prototype.applyPatch = function (b) { a.prototype.applyPatch.call(this, Sc({}, b, jB)); this.patchRect(); }; c.prototype.patchDestroy = function () { this.rect && (this.rect.destroy(), delete this.rect); a.prototype.patchDestroy.call(this); }; c.prototype.rectAttrsApplied = function (b) {}; c.prototype.firstItem = function () { return this.childElements && this.childElements.length ? S(this.childElements, function (b) { return b.isPatched; }) : null; }; c.prototype.calculatePadding = function (b, a) { var c = this.padding; b = this.getPaddingOffset(b, a); return { left: c.left.px + b.left, right: c.right.px + b.right, top: c.top.px + b.top, bottom: c.bottom.px + b.bottom }; }; c.prototype.completeSize = function (b, a) { var c = this.padding, d = this.getPaddingOffset(b, a); return lt(b, a, { padding: c, offset: d }); }; c.prototype.processAttrs = function (b) { J(b, "stroke-width") && ((this.strokeWidth = parseInt(b["stroke-width"]) || 0), delete b["stroke-width"]); J(b, "stroke") && ((this.stroke = b.stroke), delete b.stroke); J(b, "color") && ((this.fillColor = b.color), delete b.color); J(b, "fill") && ((this.fillColor = b.fill), delete b.fill); J(b, "shadow") && ((this.shadow = b.shadow), delete b.shadow); J(b, "shape") && ((this.shape = b.shape), delete b.shape, this.setRenewComplete()); if (J(b, "radius")) { this.shape = this.shape || {}; this.shape.r = b.radius; var a = b.corners && ja(b.corners), c = a ? b.corners : this.shape.corners || [{ type: "round" }, { type: "round" }, { type: "round" }, { type: "round" }]; a && !J(c[0], "type") && (c = B(c, function (b) { return { type: b }; })); this.shape.corners = c; delete b.radius; delete b.corners; this.setRenewComplete(); } }; return c; })(Sg), Ft = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.fillProperties = function (b) { b && J(b, "text") && (this.textAttr !== b.text && ((this.textAttr = b.text), O(this.textAttr) && (this.textAttr = { val: this.textAttr }), this.createTextAndSetTextValue()), delete b.text); a.prototype.fillProperties.call(this, b); }; c.prototype.createTextAndSetTextValue = function () { this.textAttr ? this.textVisual ? this.textVisual.attr(this.textAttr) : ((this.textVisual = this.layout.textStack()), (this.textAttr.zIndex = 1), this.textVisual.attr(this.textAttr), this.textVisual.add(this)) : this.textVisual && (this.textVisual.destroy(), (this.textVisual = null)); }; return c; })(Et), NC = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.availableAttributes = function () { return Vi; }; c.prototype.createElement = function (b) { b = this.renderer.element("g", b); if (this._innerSvg) { var a = b.el; if (t(a.innerHTML)) return (a.innerHTML = this._innerSvg), b; var c = ba.createElement("div"); c.innerHTML = "" + this._innerSvg + ""; w(c.childNodes[0].childNodes, function (b) { return a.appendChild(b); }); } return b; }; c.prototype.fillProperties = function (b) { b && ((this._innerSvg = b.innerSvg || this._innerSvg), a.prototype.fillProperties.call(this, b)); }; return c; })(Hf), Mc = {}, Md = {}, Gt = { strategy: "width", textRendering: "geometricPrecision" }, Zq = { fontSize: "12px", fontFamily: "tahoma, geneva, sans-serif" }; Mc.panel = Sg; Mc.stack = Tg; Mc.grid = MC; Mc["stack:text"] = LC; Mc["box:text"] = Ft; Mc.box = Et; Md.icon = Ct; Md.image = HC; Md.rect = IC; Md.shape = At; Md.text = zt; Md.svgContainer = NC; var ki = {}, Al = (function () { function a(a) { this.children = []; this._needToDestroy = []; var b = this; a = W(Gt, a); b.renderer = ft.create(a); b.pixelCorrection = t(a.pixelCorrection) ? a.pixelCorrection : !0; b.svgStyles = W({}, Gt); b.refreshHandler = ym.onDefer(function (a) { a = b.disableAnimation(); b.refreshRootBox(); b.refresh(); a && b.enableAnimation(); }, 30); } a.prototype.refresh = function () { this.destroyChildren(); this.eachChildren(function (a) { return a.refresh(); }); }; a.prototype.refreshRootBox = function () { this.rootBox = this.renderer.box(); }; a.prototype.getRootBox = function () { this.rootBox || this.refreshRootBox(); return this.rootBox; }; a.prototype.eachChildren = function (a) { var b = this, c; w(this.children, function (b) { b.parent ? ((c = c || []), c.push(b)) : a(b); }); c && w(c, function (a) { b.children.splice(b.children.indexOf(a), 1); }); }; a.prototype.removeChild = function (a) { a = this.children.indexOf(a); 0 <= a && (this.needToDestroy(this.children[a]), this.children.splice(a, 1)); }; a.prototype.addChild = function (a) { -1 === this.children.indexOf(a) && this.children.push(a); }; a.prototype.needToDestroy = function (a) { this._needToDestroy.push(a); }; a.prototype.destroyChildren = function () { 1 > this._needToDestroy.length || (w(this._needToDestroy, function (a) { return a.patch(); }), (this._needToDestroy = [])); }; a.prototype.destroy = function () { this.refreshHandler && this.refreshHandler.un(); this.renderer.destroy(); }; a.prototype.item = function (a) { return a ? this.createLayoutItem(qa(a)) : null; }; a.prototype.panel = function (a) { a = a || { type: "panel" }; a = O(a) ? { type: a } : qa(a); $q(a); var b = Mc[a.type], c = !b && a.type, e = c ? [this.createLayoutItem(a)] : a.val || []; b || (delete a.type, delete a.val, (a = W(c ? {} : a, { type: "panel", val: e }))); return this.createPanel(a); }; a.prototype.box = function (a) { a = W({ type: "box" }, a || {}); !a.mode && a.text && (a.mode = "text"); a.mode && (a.type = "box:" + a.mode); return this.createPanel(a); }; a.prototype.stack = function (a) { a = W({ type: "stack" }, a || {}); return this.createPanel(a); }; a.prototype.stackY = function (a) { a = W({ type: "stack:y" }, a || {}); return this.panel(a); }; a.prototype.text = function (a) { void 0 === a && (a = ""); return this.createVisual({ type: "text", val: a }); }; a.prototype.textStack = function (a) { void 0 === a && (a = ""); return this.createPanel({ type: "stack:text", text: a }); }; a.prototype.rect = function (a) { return this.createVisual(W({ type: "rect" }, a || {})); }; a.prototype.group = function (a) { return this.createVisual(W({ type: "group" }, a || {})); }; a.prototype.svgContainer = function (a) { return this.createVisual(W({ type: "svgContainer" }, { innerSvg: a })); }; a.prototype.image = function (a) { return this.createVisual(W({ type: "image" }, a || {})); }; a.prototype.shape = function (a, b) { return this.createVisual(W({ type: "shape", mode: a }, b || {})); }; a.prototype.icon = function (a) { return this.createVisual(W({ type: "icon", name: O(a) ? a : null }, a || {})); }; a.prototype.attr = function (a, b) { Pa(a) ? Na(this.svgStyles, a, { fontFamily: "", fontSize: "" }) : O(a) && t(b) && this.svgStyles[a] && (this.svgStyles[a] = b); a = this.renderer.attr(null, a, b); return t(a) ? a : this; }; a.prototype.add = function (a) { a && this.attr({ container: a }); return this; }; a.prototype.button = function (a) { return this.createPanel(W({ type: "button" }, a || {})); }; a.prototype.input = function (a) { return this.createPanel(W({ type: "input" }, a || {})); }; a.prototype.file = function (a) { return this.createPanel(W({ type: "file" }, a || {})); }; a.prototype.color = function (a) { return this.createPanel(W({ type: "color" }, a || {})); }; a.prototype.range = function (a) { return this.createPanel(W({ type: "range" }, a || {})); }; a.prototype.finishAnimations = function () { return Ce.getAnimations().map(function (a) { return a.cancel(); }); }; a.prototype.disableAnimation = function () { var a = !1 === this.attr("disableAnimation"); a && this.attr("disableAnimation", !0); return a; }; a.prototype.enableAnimation = function () { this.attr("disableAnimation", !1); }; a.prototype.createPanel = function (a) { for (var b = Mc[a.type], c = a.val || [], e = [], f = 0, g = c.length; f < g; f++) { var h = c[f]; if (h instanceof Array) { e.push([]); for (var k = 0, l = h.length; k < l; k++) { var m = h[k]; (m = m instanceof Gf ? m : this.createLayoutItem(m)) && e[f].push(m); } } else (m = h instanceof Gf ? h : this.createLayoutItem(h)) && e.push(m); } a = new b(this, a); e.length && a.val(e); return a; }; a.prototype.createVisual = function (a) { var b = a.type, c = Md[b]; if (!c) { if (a.isNanoChart) { a = Object.keys(ke("nanoChartTypes").members); c = b.length; for (var e = 0, f = a.length; e < f; e++) { var g = a[e], h = b, k = g; if (0 === h.length) h = k.length; else if (0 === k.length) h = h.length; else { for (var l = [], m = 0; m <= k.length; m++) l[m] = [m]; for (var n = 0; n <= h.length; n++) l[0][n] = n; for (m = 1; m <= k.length; m++) for (n = 1; n <= h.length; n++) l[m][n] = k[m - 1] === h[n - 1] ? l[m - 1][n - 1] : Math.min(l[m - 1][n - 1] + 1, Math.min(l[m][n - 1] + 1, l[m - 1][n] + 1)); h = l[k.length][h.length]; } if (3 > h && (!p || h < c)) { var p = g; c = h; } } Ma.emit("warning", "layout", p ? "microchartNotFoundSuggestion" : "microchartNotFound", { data: [b, p], container: C(this.renderer, "wrapper.el") }); } return null; } return new c(this, a); }; a.prototype.createLayoutItem = function (a) { if (!a.type && !O(a.type)) return null; $q(a); return Mc[a.type] ? this.createPanel(a) : this.createVisual(a); }; return a; })(), Fl = (function () { function a(a) { void 0 === a && (a = {}); this.schema = a; this.lengths = {}; this.indexes = {}; this.calculations = {}; this.uniqTypes = {}; this.ordered = {}; this.data = {}; this.dataFlat = {}; } a.prototype.getKeys = function () { for (var a = this.getAllKeys(), b = [], d = 0, e = a.length; d < e; d++) this.data[a[d]].length && b.push(a[d]); return b; }; a.prototype.getAllKeys = function () { return Object.keys(this.data); }; a.prototype.getKey = function (a) { return (a = this.data[a]) ? a.slice() : []; }; a.prototype.getKeyRef = function (a) { return this.data[a] || []; }; a.prototype.hasKey = function (a) { return this.data[a] && this.data[a].length; }; a.prototype.hasAllKeys = function (a) { var b = !0; a = "array" === I(a) ? a : a.split(","); for (var c = 0, e = a.length; c < e; c++) if (!this.hasKey(a[c])) { b = !1; break; } return b; }; a.prototype.hasAnyKeys = function (a) { for (var b = 0, c = a.length; b < c; b++) if (this.hasKey(a[b])) return !0; }; a.prototype.getValue = function (a, b) { var c; return (c = this.data[a]) ? c[b] : void 0; }; a.prototype.setValue = function (a, b, d) { this.data[a][b] = d; }; a.prototype.getItem = function (a) { for (var b = this.getKeys(), c = {}, e, f = 0, g = b.length; f < g; f++) { var h = b[f]; t((e = this.getValue(h, a))) && (c[h] = e); } return c; }; a.prototype.findValue_i = function (a, b) { var c, e, f = this.uniqTypes[a]; if (f && "date" === f[0]) return this.findValue_iDate(a, b); if ((e = this.data[a]) && -1 < (c = e.indexOf(b))) return this.indexes[a][c]; }; a.prototype.findValue_iDate = function (a, b) { var c = this.data[a]; b = b.getTime ? b.getTime() : b; for (var e = 0, f = c.length; e < f; e++) if (c[e].getTime() === b) return this.indexes[a][e]; }; a.prototype.findInterpolatedInfo = function (a, b) { var c = this.uniqTypes[a]; if (c && "date" === c[0]) return this.findInterpolatedInfo_date(a, b); a = this.data[a]; c = 0; for (var e = a.length; c < e; c++) { var f = a[c], g = void 0; if (b === f) return { i: c, inter: 0 }; if (b >= f && c < e - 1 && b < (g = a[c + 1])) return { i: c, inter: Y(0, 1, f, g, b) }; } return { i: -1, inter: 0 }; }; a.prototype.findInterpolatedInfo_date = function (a, b) { a = this.data[a]; var c = I(b); b = "string" === c ? Date.parse(b) : "date" === c ? b.getTime() : b; c = 0; for (var e = a.length; c < e; c++) { var f = a[c].getTime(), g = void 0; if (b === f) return { i: c, inter: 0 }; if (b >= f && c < e - 1 && b < (g = a[c + 1].getTime())) return { i: c, inter: Y(0, 1, f, g, b) }; } return { i: -1, inter: 0 }; }; a.prototype.max_i = function (a) { return (a = this.calculations[a]) ? a.max_i : -1; }; a.prototype.min_i = function (a) { return (a = this.calculations[a]) ? a.min_i : -1; }; a.prototype.max = function (a) { return (a = this.calculations[a]) ? a.max : void 0; }; a.prototype.min = function (a) { return (a = this.calculations[a]) ? a.min : void 0; }; a.prototype.sum = function (a) { return (a = this.calculations[a]) ? a.sum : void 0; }; a.prototype.sumAbs = function (a) { return (a = this.calculations[a]) ? a.sumAbs : void 0; }; a.prototype.concat = function (a) { return this.getKeyRef(a).slice(0); }; a.prototype.indexObject = function (a, b) { var c = Object.keys(a); this.indexKeys(c, a, b); }; a.prototype.indexKeys = function (a, b, d) { for (var c, f = 0, g = a.length; f < g; f++) { var h = a[f], k = this.schema[h] || {}, l = b[h]; c = this.data[h] = this.data[h] || []; var m = (this.indexes[h] = this.indexes[h] || []); this.lengths[h] = this.lengths[h] + 1 || 1; if (t(b[h])) if (((c[d] = l), m.push(d), "number" === (c = this.addUniqType(h, l)))) this.addCalcValue(h, l, d); else if ("array" === c && k.flatten) for (h = this.dataFlat[h] = this.dataFlat[h] || [], k = 0, c = l.length; k < c; k++) h.push(l[k]); else "date" === c && this.addCalcValue(h, l.getTime(), d); } }; a.prototype.sortBy = function (a, b, d) { void 0 === b && (b = !0); var c = this, f = this.indexes[a], g = !!f, h = d ? function (b) { return d(c.getItem(b)); } : (function () { var b = c.data[a]; g = b && b.length; return function (a) { return b[a]; }; })(); if (g) { f = f.map(function (b, a) { return { _i: b, val: h(a) }; }); var k = function (b, a) { return b.val < a.val ? -1 : b.val > a.val ? 1 : 0; }, l = function (b, a) { return k(a, b); }; f.sort(b ? k : l); return B(f, function (b) { return b._i; }); } }; a.prototype.sortByNone = function () { var a = this, b = 0; w(pa(this.data), function (c) { a.data[c].length > b && (b = a.data[c].length); }); var d = []; ob(b, function (b) { return d.push(b); }); return d; }; a.prototype.addUniqType = function (a, b) { b = I(b); a = this.uniqTypes[a] = this.uniqTypes[a] || []; 0 > a.indexOf(b) && a.push(b); return b; }; a.prototype.addCalcValue = function (a, b, d) { var c = (this.calculations[a] = this.calculations[a]); c ? (b > c.max && ((c.max = b), (c.max_i = d)), b < c.min && ((c.min = b), (c.min_i = d)), (c.sum += b), (c.sumAbs += Vb.abs(b))) : (this.calculations[a] = { min: b, max: b, min_i: d, max_i: d, sum: b, sumAbs: Vb.abs(b) }); }; a.prototype.reset = function (a) { var b = this; a ? this.resetKey(a) : (w(this.getKeys(), function (a) { b.resetKey(a); }), (this.lengths = {})); }; a.prototype.resetKey = function (a) { delete this.data[a]; delete this.indexes[a]; delete this.calculations[a]; delete this.uniqTypes[a]; delete this.lengths[a]; delete this.ordered[a]; }; a.prototype.countDecimals = function (a) { var b = this.data[a], c = [0]; this.dataFlat[a] ? (b = this.dataFlat[a]) : 2 !== a.length || !this.data[a[0]] || ("e" !== a[1] && "s" !== a[1]) || (b = this.data[a[0]]); if (b && b.length) { a = 0; for (var e = b.length; a < e; a++) c.push(Yf(b[a])); } return Math.max.apply(Math, H(c)); }; a.prototype.log = function (a) { a = Object.keys(this.data); w(a, function (b) {}); }; return a; })(), OC = (function () { function a(a) { this.chart = a; this.items = {}; this.spItems = []; } a.prototype.getSPItems = function () { return this.spItems.slice(0); }; a.prototype.register = function (a) { var b = zb(a); this.items[b] = a; "SmartPalette" === a.kind && this.spItems.push(a); return a; }; a.prototype.remove = function (a) { if ((a = z(a.id, a.currentOptions.id))) return this.removeById(a); }; a.prototype.exists = function (a) { return this.items[a]; }; a.prototype.filter = function (a) { return ea(this.items, a); }; a.prototype.destroyItem = function (a) { var b; return (b = this.items[a]) ? (b.destroy && b.destroy(), this.removeById(a), !0) : !1; }; a.prototype.removeById = function (a) { var b = this.items, c; return (c = b[a]) ? ("SmartPalette" === c.kind && pb(this.spItems, c), delete b[a], !0) : !1; }; return a; })(), li = {}, Ht = function () { function a(b, a) { var c = {}; if (0 < a.length) if ("string" === I(a)) { c = sf(a, "seriesType,chartType"); var d = sf(a, "seriesType,chartType", !0); c.invalid && ((c = {}), (d = {})); } else c = a; if (0 < b.length || !c.chartType) if ("string" === I(b)) var e = sf(b, "chartType"), f = sf(b, "chartType", !0); else e = b; b = id({}, d, f, c, e); switch (b.chartType) { case "radar": case "gauge": var g = !0; } return { dst: c, ct: e, ctdst: b, isPaneType: g }; } function c(b, c) { var d = k, e = b.toLowerCase(), g; c && (g = f(c)) && ((c = a(k, g)), (d = c.ctdst)); if ((d.chartType && d.chartType.toLowerCase() === e) || (d.seriesType && d.seriesType.toLowerCase() === e)) return !0; if ("calendar" === b || "heatmap" === b || "variwide" === b) return e === d.seriesType; } function b(b) { var c; b && b.currentOptions && (b = b.currentOptions); return b && (c = f(b)) ? a(k, c) : a(k, ""); } function d(a, c) { var d = b(c); d = d.ctdst || d; if ((c = d[a])) return c.toLowerCase(); if (!c && "seriesType" === a && "map" === d.chartType) return "map"; } function e(b) { var a; g.chartType && -1 < "pie,gauge,funnel,cone,pyramid".indexOf(g.chartType) && (a = !0); if (a && b) { for (var c = [], d = [], e = 0, f = b.length; e < f; e++) { a = !1; var h = b[e]; h.i = e; h.type && sf(h.type, "chartType", "noDef").chartType && (c.push([h]), (a = !0)); a || d.push(h); } d.length && c.splice(0, 0, d); return c; } return a; } function f(b) { var a, d, e, f = b.type; c("map") && !f && (a = b.map) && (d = a.type || C(a, "features.0.geometry.type")) && (f = (e = l[d]) ? e : d); return f; } var g = {}, h = {}, k, l = { LineString: "line", MultiLineString: "line", Polygon: "column", MultiPolygon: "column", Point: "marker", MultiPoint: "marker" }; return { init: function (b) { var c = C(b, "type") || ""; b = C(b, "defaultSeries.type") || C(b, "defaultSeries_type") || ""; c = a(c, b); g = c.ct || {}; h = c.dst || {}; k = c.ctdst || {}; }, isType: c, getIsTypeChecker: function (b) { var c = k, d; b && (d = f(b)) && ((b = a(k, d)), (c = b.ctdst)); var e = function (b, a) { return c[b] && c[b].toLowerCase() === a; }; return function (b) { var a = b.toLowerCase(); if (e("chartType", a) || e("seriesType", a)) return !0; if ("calendar" === b || "heatmap" === b || "variwide" === b) return a === c.seriesType; }; }, hasSetting: function (b, c, d) { var e = k, g; d && (g = f(d)) && ((d = a(k, g)), (e = d.ctdst)); if ((d = e[b])) if (((d = d.toLowerCase()), "behavior" === b)) { if (-1 < ("," + d + ",").indexOf("," + c.toLowerCase() + ",")) return !0; } else if (d && d === c.toLowerCase()) return !0; }, settingVal: d, getSettingChecker: function (a) { var c, d = b(a); d = d.ctdst || d; return function (b) { if ((c = d[b])) return c.toLowerCase(); if (!c && "seriesType" === b && "map" === d.chartType) return "map"; }; }, curCtDst: b, mergeSettings: a, getPaneGroups: function (b) { var a = [], c = [], d; h.chartType && (d = 1); for (var e = 0, f = b.length; e < f; e++) { var g = !1, k = b[e]; k.i = e; if (d || k.type) { var l = d || sf(k.type, "chartType", "noDef"); if (d || l.chartType) a.push([k]), (g = !0); } g || c.push(k); } 0 < c.length && a.splice(0, 0, c); return B(a, function (b) { var a = B(b, function (b) { return b.id; }).join(""); b.hash = a; return b; }); }, shouldDataMerge: e, dataMergeType: function (b) { if (e()) return ( (b = S(b, function (b) { return S(b.points, function (b) { return z(b[1], b.y, 0).length; }); })), "gauge" === g.chartType && b ? "collect" : "sum" ); }, isMapLayer: function (b) { if (c("map") && ("object" === typeof b.getMapData() || (c("map") && (C(b.userOptions, "mapDataId") || C(b.userPoints, "0.mapDataId"))))) return !0; }, isHoriz: function () { return "horizontal" === d("chartType"); }, }; }, xy = { solid: "", dot: "1,3", dash: "4,3", dashdot: "4,3,1,3", dashdotdot: "4,3,1,3,1,3", shortdash: "3,1", shortdot: "1,1", shortdashdot: "3,1,1,1", shortdashdotdot: "3,1,1,1,1,1", longdash: "8,3", longdashdot: "8,3,1,3", longdashdotdot: "8,3,1,3,1,3", }, It = function (a) { return a; }, PC = function () { return [ { option: "outline.color", check: It, dependent: "outline.width", value: 1 }, { option: "outline.width", check: function (a) { return 0 < a; }, dependent: "boxVisible", value: !0, }, { option: "fill", check: It, dependent: "boxVisible", value: !0, important: !0 }, ]; }, Nm = function (a, c) { var b = PC(); b.push.apply(b, H(c || [])); w(b, function (b) { var c = ja(b.option) ? b.option : [b.option]; c = S(c, function (c) { return b.check(C(a, c)); }); var d = b.important || Q(C(a, b.dependent)); c && d && Z(a, b.dependent, b.value); }); return a; }, kb = function (a, c, b, d, e) { var f; Q((f = a[b])) || (c[d || b] = e ? e(f) : f); }, oi = t, zy = [10, 5, 4, 2, 1, 0.5], Ay = [50, 20, 10, 5, 4, 2, 1], fr = { badMin: "min", badMax: "max" }, Cl = Vb, Nd = function (a, c) { return { val: function (b) { return a(Fg(b.indexedData), c ? b.scCache : b.cache, "max", "min"); }, axis: "y", }; }, Od = function (a, c, b) { return { val: function (d) { return c(d.pOptions[a], b ? d.scCache : d.cache, a + "Max", a + "Min"); }, axis: a, }; }, bb = function (a, c, b) { return { val: function (b) { return c(b, a); }, axis: a, fStr: b, }; }, ta = function (a, c) { return J(a.cache, c) ? a.cache[c] : a.scCache && a.scCache[c]; }, uc = function (a, c, b) { a = a.cache["y" === c ? "list" : c + "List"]; return a.length ? b(a) : ""; }, He = function (a) { return { val: function (c) { return a(c); }, yVal: !0, }; }, Jt = { yaxislabel: function (a) { return a.cache.yAxis ? N(a.cache.yAxis.currentOptions, ["label", "text"]) : void 0; }, xaxislabel: function (a) { return a.cache.xAxis ? N(a.cache.xAxis.currentOptions, ["label", "text"]) : void 0; }, zaxislabel: function (a) { return a.chart.currentOptions.zAxisLabelText || N(a.chart.currentOptions, ["zAxis", "label", "text"]); }, percentoftotal: bb("y", qi), ypercentoftotal: bb("y", qi), xpercentoftotal: bb("x", qi), zpercentoftotal: bb("z", qi), icon: function (a) { return a.point.getIconTag(); }, }, QC = { percentofdatarange: Nd(Jd, !0), ypercentofdatarange: Nd(Jd, !0), xpercentofdatarange: Od("x", Jd, !0), zpercentofdatarange: Od("z", Jd, !0), percentofdatamax: Nd(rc, !0), ypercentofdatamax: Nd(rc, !0), xpercentofdatamax: Od("x", rc, !0), zpercentofdatamax: Od("z", rc, !0), percentofseriesrange: Nd(Jd), ypercentofseriesrange: Nd(Jd), xpercentofseriesrange: Od("x", Jd), zpercentofseriesrange: Od("z", Jd), percentofseriesmax: Nd(rc), ypercentofseriesmax: Nd(rc), xpercentofseriesmax: Od("x", rc), zpercentofseriesmax: Od("z", rc), percentofaxisrange: bb("y", Dl), ypercentofaxisrange: bb("y", Dl), xpercentofaxisrange: bb("x", Dl), percentofseries: bb("y", pi), ypercentofseries: bb("y", pi), xpercentofseries: bb("x", pi), zpercentofseries: bb("z", pi), percentofgroup: bb("y", ri), ypercentofgroup: bb("y", ri), xpercentofgroup: bb("x", ri), zpercentofgroup: bb("z", ri), percentile: bb("y", si, "n0"), ypercentile: bb("y", si, "n0"), xpercentile: bb("x", si, "n0"), zpercentile: bb("z", si, "n0"), seriespointcount: function (a) { return a.series.userPoints.length; }, seriesname: function (a) { return a.sOptions.name; }, parentid: function (a) { return a.pOptions.parent || ""; }, parentname: function (a) { var c = a.pOptions.parent, b = a.chart.chartItemManager.exists(c); return (c && b ? b : a.sOptions).name; }, complete: function (a) { return z(C(a.pOptions, "complete.y"), C(a.pOptions, "complete"), 0); }, zvalue: function (a) { return a.pOptions.z; }, xvalue: function (a) { return t(a.pOptions.x) ? (a.fOptions.xIsTime ? new Date(a.pOptions.x) : a.pOptions.x) : a.pOptions.name; }, yvalue: He(function (a) { return gr(a); }), value: He(function (a) { return gr(a); }), ystart: He(function (a) { return Eg(a.indexedData) ? a.indexedData.ys : a.indexedData.y; }), open: He(function (a) { return a.pOptions.open; }), close: He(function (a) { return a.pOptions.close; }), high: He(function (a) { return t(a.pOptions.high) ? a.pOptions.high : Eg(a.indexedData) ? a.indexedData.ye : a.indexedData.y; }), low: He(function (a) { return t(a.pOptions.low) ? a.pOptions.low : Eg(a.indexedData) ? a.indexedData.ys : a.indexedData.y; }), id: function (a) { return a.pOptions.id; }, name: function (a) { return a.pOptions.name || ("string" === typeof a.pOptions.x ? a.pOptions.x : a.indexedData.name || ""); }, color: function (a) { return Lb(a.series.getPointAttr(a.point).baseColor, 0); }, yrange: function (a) { return Fg(a.indexedData); }, subvaluelist: function (a) { return (a = a.pOptions.subvalue) && a.values ? a.values.join(",") : ""; }, }, If = { type: function (a) { return ta(a, "type"); }, maxpointname: function (a) { return ta(a, "nMax"); }, ymaxpointname: function (a) { return ta(a, "nMax"); }, xmaxpointname: function (a) { return ta(a, "nXMax"); }, zmaxpointname: function (a) { return ta(a, "nZMax"); }, minpointname: function (a) { return ta(a, "nMin"); }, yminpointname: function (a) { return ta(a, "nMin"); }, xminpointname: function (a) { return ta(a, "nXMin"); }, zminpointname: function (a) { return ta(a, "nZMin"); }, pointcount: function (a) { return ta(a, "list").length; }, median: function (a) { return uc(a, "y", qh); }, ymedian: function (a) { return uc(a, "y", qh); }, xmedian: function (a) { return uc(a, "x", qh); }, zmedian: function (a) { return uc(a, "z", qh); }, mode: function (a) { return uc(a, "y", ph); }, ymode: function (a) { return uc(a, "y", ph); }, xmode: function (a) { return uc(a, "x", ph); }, zmode: function (a) { return uc(a, "z", ph); }, rangesum: function (a) { return ta(a, "yRangeSum"); }, yrangesum: function (a) { return ta(a, "yRangeSum"); }, yaverage: function (a) { return ta(a, "average"); }, average: function (a) { return ta(a, "average"); }, zaverage: function (a) { return ta(a, "zAverage"); }, xaverage: function (a) { return ta(a, "xAverage"); }, }, Om = { lasty: function (a) { return uc(a, "y", P); }, lastx: function (a) { return uc(a, "x", P); }, lastz: function (a) { return uc(a, "z", P); }, name: function (a) { return a.series.name; }, value: function (a) { return a.cache.sum; }, color: function (a) { return a.sOptions.color ? a.sOptions.color : 1 === a.series._points.length ? a.series._points[0].tokenValue("%color") : a.series.info.style.base.color; }, id: function (a) { return a.sOptions.id || a.sOptions.options.id; }, ylist: function (a) { return a.cache.list ? a.cache.list.join(",") : ""; }, xlist: function (a) { return a.cache.list ? a.cache.list.join(",") : ""; }, zlist: function (a) { return a.cache.list ? a.cache.list.join(",") : ""; }, }, Ug = { name: function (a) { return z(a.item.name, a.cache.name, C(a.cache, "label.text"), ""); }, color: function (a) { return a.item.color; }, minutes: function (a) { return El(a, 6e4); }, hours: function (a) { return El(a, 36e5); }, days: function (a) { return El(a, 864e5); }, }; Ib("value,ysum", function (a) { return (Ug[a] = function (a) { return a.val.pop ? a.val[1] : a.val; }); }); Ib("min,ymin,xmin", function (a) { return (Ug[a] = function (a) { var b = a.evaluedValue[0], c = a.cache.min, e = a.cache.low; a = (a = a.cache.value) && (ja(a[0]) ? a[0][0] : a[0]); return z(b, c, e, a); }); }); Ib("max,ymax,xmax", function (a) { return (Ug[a] = function (a) { var b = a.evaluedValue[1], c = a.cache.max, e = a.cache.options; a = (a = a.cache.value) && (ja(a[0]) ? a[0][1] : a[1]); return z(b, c, e, a); }); }); Ib("range,yrange", function (a) { return (Ug[a] = function (a) { return a.val.pop ? a.val[1] - a.val[0] : a.val; }); }); Ib("Sum,Average", function (a) { var c = Se(a); Ib("Min,Max", function (b) { var d = Se(b); Ib("y,x,z", function (e) { var f = "y" === e; f && (If[d + c] = function (b) { return ta(b, d + a); }); If[e + d + c] = function (c) { return ta(c, (f ? d : e + b) + a); }; }); }); }); Ib("Sum,Min,Max,Range,Absmax", function (a) { return Ib("y,x,z", function (c) { var b = Se(a), d = "y" === c; d && (If[b] = function (a) { return ta(a, b); }); If[c + b] = function (e) { return ta(e, d ? b : c + a); }; var e = b + "ofseries"; d && (Om[e] = function (a) { return a.scCache[b]; }); Om[c + e] = function (e) { return e.scCache[d ? b : c + a]; }; }); }); var Gy = L(QC, Jt), Hy = L(Om, W(Jt, If)), Iy = L( { title: function (a) { return a.chart.options("title.label.text"); }, maxseriesname: function (a) { return ta(a, "snMax"); }, ymaxseriesname: function (a) { return ta(a, "snMax"); }, xmaxseriesname: function (a) { return ta(a, "snXMax"); }, zmaxseriesname: function (a) { return ta(a, "snZMax"); }, minseriesname: function (a) { return ta(a, "snMin"); }, yminseriesname: function (a) { return ta(a, "snMin"); }, xminseriesname: function (a) { return ta(a, "snXMin"); }, zminseriesname: function (a) { return ta(a, "snZMin"); }, name: function (a) { return ta(a, "name"); }, typelist: function (a) { return a.cache.typeList.join(","); }, sumlist: function (a) { return a.cache.sumList.join(","); }, ysumlist: function (a) { return a.cache.sumList.join(","); }, xsumlist: function (a) { return a.cache.xSumList.join(","); }, zsumlist: function (a) { return a.cache.zSumList.join(","); }, }, If ), Jy = Ug, mr = Ng, Gl = /(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(.\d+)[+-](\d{2}):(\d{2})/g, Pb = function (a, c) { return function (b) { return a[c](b); }; }, RC = function (a, c) { var b = Yb(a); a = c([b[0], b[1]]); c = c([b[2], b[3]]); c = Ze([a[0], a[1], c[0], c[1]]); 0 > c[2] && ((c[0] -= c[2]), (c[2] = Math.abs(c[2]))); 0 > c[3] && ((c[1] -= c[3]), (c[3] = Math.abs(c[2]))); return c; }, Py = [3, 2, 3, 2], Xy = /(-?[0-9]+),(-?[0-9]+)/, Sy = /[\s,]/, vr = { top: "t", topright: "r", right: "r", bottomright: "r", bottom: "b", topleft: "l", left: "l", bottomleft: "l" }, Ty = { topright: "righttop", bottomright: "rightbottom", topleft: "lefttop", bottomleft: "leftbottom" }, Uy = { insidetop: "tctc", insidetopright: "trtr", insideright: "mrmr", insidebottomright: "brbr", insidebottom: "bcbc", insidetopleft: "tltl", insidelefttop: "tltl", insiderighttop: "trtr", insiderightbottom: "brbr", insideleftbottom: "blbl", insideleft: "mlml", insidebottomleft: "blbl", insidecenter: "mcmc", insidemiddle: "mcmc", top: "bctc", topcenter: "bctc", righttop: "tltr", right: "mlmr", middleright: "mlmr", rightbottom: "blbr", bottom: "tcbc", bottomcenter: "tcbc", lefttop: "trtl", left: "mrml", middleleft: "mrml", leftbottom: "brbl", topright: "brtr", bottomright: "trbr", topleft: "bltl", bottomleft: "tlbl", outsidetopright: "bltr", outsidebottomright: "tlbr", outsidetopleft: "brtl", outsidebottomleft: "trbl", outsiderighttop: "bltr", outsiderightbottom: "tlbr", outsidelefttop: "brtl", outsideleftbottom: "trbl", }, Vy = { top: 0, bottom: 0, middle: 0, left: 1, right: 1, center: 1 }, Wy = B( (function (a) { return (a = ke(a)) ? Object.keys(a.members) : []; })("orientation"), function (a) { return a.toLowerCase(); } ).join("|"), Kt = (function () { function a(a, b, d) { void 0 === d && (d = []); this.currentOptions = {}; this.userOptions = {}; this.chart = a; if (void 0 === b) { var c = 1; b = {}; } b = this.normalizeOptions(b); this.userOptions = qa(b); C(this.userOptions, "data.length") && (this.userOptions.data = this.userOptions.data.map(function (b) { return qa(b); })); this.renderer = a && (a.renderer || a); this.init.apply(this, H(d)); !c && this.setOptions(); } a.prototype.options = function (a, b) { if ("string" === typeof a) return this.optionsGet(a); A(this.userOptions, this.normalizeOptions(a)); this.setOptions(); return this; }; a.prototype.init = function () { for (var a = 0; a < arguments.length; a++); this.defaultMutable = !0; }; a.prototype.normalizeOptions = function (a, b) { return Sa(a, b); }; a.prototype.optionsGetter = function (a) { return xr(this, a); }; a.prototype.optionsGet = function (a) { return C(this.currentOptions, a.replace(/_/g, ".")); }; a.prototype.defaultOptions = function () { return {}; }; a.prototype.contextOptions = function () { return this.defaultContextOptions; }; a.prototype.dependentOptions = function () { return []; }; a.prototype.completeUserOptions = function () { return Nm(this.userOptions, this.dependentOptions()); }; a.prototype.setOptions = function () { var a = [this.defaultOptions()], b = this.contextOptions(); b && a.push(b); a.push(this.completeUserOptions()); !this.defaultMutable && a.unshift({}); this.currentOptions = A.apply(null, a); return this; }; return a; })(), Lt = (function (a) { function c(b, c, e) { void 0 === e && (e = []); b = a.call(this, b, c, e) || this; b.attribs = {}; b.events = {}; b.updateOptions = {}; b.subscriptions = []; return b; } K(c, a); c.prototype.init = function () { for (var b = 0; b < arguments.length; b++); this.defaultMutable = !0; }; c.prototype.defaultOptions = function () { return this.chart ? { animation: this.chart.options("animation") } : {}; }; c.prototype.setOptions = function () { a.prototype.setOptions.call(this); this.setRootVisuals(); return this; }; c.prototype.options = function (b, a) { var c = this.optionsGetter(b); if ("NotGetter" !== c) return c; A(this.userOptions, this.normalizeOptions(b)); this.setOptions(); !1 !== a && this.render(null, a); return this; }; c.prototype.normalizeUpdateOpt = function (b, a) { "object" === typeof a ? ((b = yf(b)), (a = A(b, Sa(a)))) : (a = b); return a; }; c.prototype.afterUpdate = function (b) { if (b && b.then) { var a = this; Ce.await(function () { b.then && (b.then.call(a.chart), delete b.then); }); } }; c.prototype.setRootVisuals = function () { this.rootPanel || (this.rootPanel = this.renderer.panel()); return this; }; c.prototype.setAttribs = function () { return this; }; c.prototype.render = function (b, a) { return this; }; c.prototype.getBounds = function (b) { var a = b || this.rootPanel, c = a; for (b = [0, 0]; c; ) (b[0] += c.x.px + c.offsetX), (b[1] += c.y.px + c.offsetY), (c = c.parent); a.isPatched ? ((a = a.getBbox()), (a = [a.width, a.height])) : ((c = a.combinations), c.length || (c = a.composeCombinations()), (c = c[0]), (a = [z(C(a.attrs, "width"), c.minSize.width.px), z(C(a.attrs, "height"), c.minSize.height.px)])); return b.concat(a); }; c.prototype.add = function (b, a) { this.parentLayoutItem = b || this.renderer; this.render(); this.rootPanel.add(b, a); return this; }; c.prototype.destroy = function () { w(this.rootVisuals, function (b) { return b && b.destroy && b.destroy(); }); this.rootPanel && this.rootPanel.destroy(); }; c.prototype.handleEvent = function (b, a, c, f) { if (t(a) && t(c) && (a = this.events[a])) return a[b](c, f); }; c.prototype.trigger = function (b, a) { this.events[b].trigger(a, this); }; c.prototype.on = function (b, a, c) { (b = this.handleEvent(c ? "onDefer" : "on", b, a, c)) && this.subscriptions.push(b); return this; }; c.prototype.un = function (b, a) { this.handleEvent("un", b, a); return this; }; c.prototype.triggerUser = function (b, a) { return this.triggerUserTarget(b, this, a); }; c.prototype.triggerUserTarget = function (b, a, c) { var d = this.currentOptions.events; d = (b = d && mh(d, b)) && d[b]; if (Fb(d)) return d.call(a, c || void 0); }; c.prototype.hasUserEvent = function (b) { var a = this.currentOptions.events; if (b) { if ("any" === b) return a && pa(a).length; if (a) return (b = mh(a, b)) && Fb(a[b]); } }; c.prototype.hasAnyNamedEvent = function (b) { return this.hasUserEvent(b) || this.events[b]; }; c.prototype.click = function (b) {}; return c; })(Kt), jc = (function (a) { function c(b, c, e) { void 0 === e && (e = []); e = a.call(this, b, c, e) || this; e.chart = b; void 0 === c && (c = {}); e.id = c.id || void 0; e.ciManager = b.chartItemManager; e.ciManager.register(e); return e; } K(c, a); c.prototype.destroy = function () { a.prototype.destroy.call(this); this.ciManager.remove(this); }; return c; })(Lt), Zy = function (a) { var c = [], b = function (a, e) { void 0 === e && (e = ""); var d; if ("object" !== typeof a || null === a) return a; var g = function (a, d) { var f = typeof a; d = e.length ? e + "." + d : d; "object" === f && null !== a ? b(a, d) : "function" === f && c.push([d, a]); }; if (Array.isArray(a)) { var h = a.length; for (d = 0; d < h; d++) g(a[d], d); } else for (d in a) a.hasOwnProperty(d) && g(a[d], d); }; b(a); return c; }, SC = fa("rotate fontFamily fontStyle fontWeight fontSize color margin padding".split(" ")), TC = fa(["val", "xAlignment", "yAlignment", "stroke"]), Fi = (function (a) { function c(b, c, e) { b = a.call(this, b, c) || this; b.target = e; b.currentState = ""; return b; } K(c, a); c.prototype.setRootVisuals = function () { var b = (this.rootVisuals = this.rootVisuals || {}), a = this.rootPanel, c = this.renderer; this.rootPanel || (a = this.rootPanel = c.panel()); b.background || (b.background = b.background || c.item({ type: "rect", fill: "transparent" }).add(a)); b.text || (b.text = b.text || c.textStack(this.getText()).attr({ width: "auto", autoWrap: "none" }).add(a)); return this; }; c.prototype.setAttribs = function () { var b, a = {}; a[""] = this.translate(this.currentOptions); if ((b = this.currentOptions.states)) b.hover && (a.hover = this.translate(C(this.currentOptions, "states.hover"))), b.select && (a.select = this.translate(C(this.currentOptions, "states.selected"))); this.attribs = a; return this; }; c.prototype.applyAttrs = function (b) { this.rootPanel.attr(Hb(b, TC)); this.rootVisuals.text.attr(Hb(b, SC)); this.chart.triggerOptionsApplied("label", this); }; c.prototype.isVisible = function () { return !1 !== this.currentOptions.visible && this.getText().length; }; c.prototype.getSize = function (b) { if (!this.isVisible()) return [0, 0]; b && this.applyAttrs(b); this.rootPanel.updateCombinations(); var a = this.rootPanel.combinations; b = this.rootPanel.calculateMargin(); if (!a.length) return [0, 0]; a = a[0].minSize; return [a.width.px + b.horizontal.px, a.height.px + b.vertical.px]; }; c.prototype.getSizes = function (b) { if (!this.isVisible()) return [[0, 0]]; b && this.applyAttrs(b); this.rootPanel.updateCombinations(); b = this.rootPanel.combinations; var a = this.rootPanel.calculateMargin(); a = [a.horizontal.px, a.vertical.px]; return b.length ? B(b, function (b) { b = b.minSize; return [b.width.px + a[0], b.height.px + a[1]]; }) : [[0, 0]]; }; c.prototype.render = function () { var b = this; this.setOptions(); this.setAttribs(); var a = this.currentOptions, c = this.attribs[""], f = c.attr.label; c = c.layout.label; var g = this.rootVisuals.text; if (this.isVisible()) { this.rootPanel && this.rootPanel.visible(!0); this.applyAttrs(c); var h = this.rootVisuals.text.variant; 90 === Math.abs(c.rotate) && "center" === c.yAlignment && h && g.attr({ y: (h.minSize.width.px / 2) * (0 > c.rotate ? 1 : -1) }); g && (g.attr(f), g.attr({ val: this.getText() }), C(a, "states.hover") && ((void 0).on("mouseover", function () { b.setState("hover"); }), (void 0).on("mouseout", function () { b.setState(""); }))); } else this.rootPanel && this.rootPanel.visible(!1); return this; }; c.prototype.translate = function (b) { var a = {}, c = {}; b = b || this.currentOptions; c = id({}, b.style || {}); zc( a, b, function (b, a) { b.color = a; }, "color", Lb ); c = qc(this.currentOptions); return { attr: { label: a }, layout: { label: c } }; }; c.prototype.setState = function (b) { if (b !== this.currentState) { var a = this.attribs[b], c = a.attr.label; this.rootPanel.options(a.layout.label); this.rootPanel.attr(c); this.currentState = b; } }; c.prototype.attr = function (b) { this.rootPanel.attr(b); }; c.prototype.getTextEl = function () { return this.rootVisuals.text; }; c.prototype.getText = function () { return this.evalText(this.options("text")) || ""; }; c.prototype.evalText = function (b) { var a = this.target || this.chart; b && a && a.replaceTokens && (b = a.replaceTokens(b)); return b; }; return c; })(Lt), UC = "visible fill outline opacity radius padding position margin corners shadow width height".split(" "), Pm = function (a) { a = a ? a.boxDefaults() : Cf(); a.fill = Eh(a.fill, 0.8); a.position = "bltl"; return a; }, ej = (function (a) { function c(b, c, e) { b = a.call(this, b, c, [b, c, e]) || this; b.target = e; b.fillShading = "box"; b.asHTML = !1; b.isVisible = !1; b.applyOptions(!1); return b; } K(c, a); c.prototype.init = function () { for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a]; G(b, 3); }; c.prototype.defaultOptions = function () { var b = C(this.chart.currentOptions, "defaultAnnotation"); return A(Pm(this.chart), b); }; c.prototype.setRootVisuals = function () { var b = this, a = this.renderer; this.rootPanel || ((a = this.rootPanel = this.rootPanel || (this.asHTML || this.currentOptions.asHTML ? a.renderer.htmlElement().attr({ left: 0, top: 0 }) : a.box({ autoWrap: "none", transition: { auto: !0, animation: t(this.currentOptions.animation) ? this.currentOptions.animation : { duration: 1200 } } }))), this.rootVisuals || (this.rootVisuals = { content: this.createContentVisual(a) }), a.on("click", function (a) { return b.click(a); })); return this; }; c.prototype.getBounds = function (b) { return !b && this.currentOptions.asHTML ? this.bbox() : a.prototype.getBounds.call(this, b); }; c.prototype.createContentVisual = function (b) { var a = this.renderer; return this.asHTML || this.currentOptions.asHTML ? a.renderer.htmlElement().add(b) : a.textStack().add(b); }; c.prototype.bbox = function (b) { var a = this.rootPanel, c = a.getBbox(); this.currentOptions.asHTML && ((b = b ? Ac(this.currentOptions.margin) : [0, 0, 0, 0]), (c.x = (parseFloat(a.attr("left")) || 0) - b[3]), (c.y = (parseFloat(a.attr("top")) || 0) - b[0]), (c.width = c.width + b[1] + b[3]), (c.height = c.height + b[0] + b[2])); return [c.x, c.y, c.width, c.height]; }; c.prototype.visible = function (b) { t(b) || (b = "none" !== this.rootPanel.attr("display")); this.rootPanel.attr({ display: b ? "block" : "none" }); this.setVisible(b); return this; }; c.prototype.setVisible = function (b) { this.isVisible = b; }; c.prototype.alignTo = function () { for (var b, a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c]; (b = this.rootPanel).alignTo.apply(b, H(a)); }; c.prototype.options = function (b, a) { var c = this.optionsGetter(b); if ("NotGetter" !== c) return c; c = this.normalizeOptions(b); var d = this.userOptions.label, g = c.label && c.label.text; d = d && d.text; g = t(g) && d !== g; if (!Lj(this.userOptions, c)) return this; this.setOptions(); c = t(a); this.applyOptions(c ? a : { skipReflow: !0 }); if (!1 === a || (c && a.skipReflow)) return this; g = (c = this.rootPanel) && c.isPatched && (g || void 0); !g && c && this.chart.isRendered && !1 !== a && ((b = pa(b)), 0 < gc(b, UC).length && (g = !0)); g && (G(Ig(this), 1)[0] ? c.refresh && c.refresh() : this.chart.chartAreaSet.reflow(a, !1, !0)); this.afterUpdate(a); return this; }; c.prototype.normalizeOptions = function (b) { var c = void 0; void 0 === c && (c = "corners"); var e, f; "undefined" !== (f = I((e = C(b, c)))) && "object" === f && (b[c] = sw(e)); return a.prototype.normalizeOptions.call(this, b); }; c.prototype.applyOptions = function (b) { void 0 === b && (b = {}); b = Sa(b); this.rootPanel || this.setOptions(); var a = this.currentOptions, c = this.userOptions, f = this.rootPanel, g = this.rootVisuals.content, h = this.asHTML || a.asHTML, k = qa(z(b.animation, a.animation, {})); b = qa(a); var l = qc(a.label), m = C(a, "label.text"); if (h) { var n = this.rootPanel, p = n.transition(), q = n.renderer.isAnimationDisabled(b); b.animation = n.isPatched && !q ? (p ? A(p.getAnimationOptions(), k) : k) : null; b = br(b); } else (b = Cg(b, z(a.fillShading, this.fillShading))), (b.animation = k); if ((m = this.evalText(m)) || (!this.asHTML && g && g.textAttr !== m) || (this.asHTML && f.innerHTML !== m)) (l = A({ animation: { duration: 0 } }, l)), this.asHTML || a.asHTML ? (l.innerHTML = m) : ((l.val = m), c.width && ((l.maxWidth = c.width), (l.strategy = "none"))), g && g.attr(l); this.checkVisibility(a); a = this.currentOptions.position; this._pos_ !== a ? ((this._pos_ = a), (c = this._posInfo_ = tr(this.currentOptions)), c[0] ? ((a = c[1]), (g = c[2]), (k = this.chart.chartAreaSet), (c = this.rootPanel.getBboxArray ? this.rootPanel.getBboxArray() : [0, 0].join(this.bbox(!0).slice(2))), (g = 0 === g ? this.chart.rootVisuals.itemsBox.getGlobalBboxArray() : k.items[0].getContentGlobalBbox()), (a = [a[0] + g[0] - c[0], a[1] + g[1] - c[1]])) : (a = void 0)) : (a = void 0); a && ((b[h ? "left" : "offsetX"] = h ? a[0] + "px" : a[0]), (b[h ? "top" : "offsetY"] = h ? a[1] + "px" : a[1])); f.attr(this.transformRootAttr(b)); this.triggerOptionsApplied(); return this; }; c.prototype.triggerOptionsApplied = function () { this.chart.triggerOptionsApplied("annotation", this); }; c.prototype.transformRootAttr = function (b) { return b; }; c.prototype.checkVisibility = function (b) { b = !1 !== b.visible; var a = this.rootPanel ? "none" !== this.rootPanel.attr("display") : this.isVisible, c = b !== a; this.setVisible(a); c && this.visible(b); }; c.prototype.destroy = function () { a.prototype.destroy.call(this); this._unsubscribeContentBox && this._unsubscribeContentBox(); this.rootPanel && this.rootPanel.destroy(); }; c.prototype.remove = function (b) { var a = this.chart, c; pb(a._annotations, this); (c = S(a.userOptions.annotations, { id: this.id })) && pb(a.userOptions.annotations, c); this.destroy(); !1 !== b && this.chart.chartAreaSet.reflow(!1, !1, !0); }; c.prototype.measure = function (b) { this.isMeasured = !0; b && !this.currentOptions.maxWidth && this.rootPanel.attr({ maxWidth: b[2] }); return this.rootPanel ? (this.rootPanel.isHtml ? ha(this.bbox(!0)) : this.rootPanel.setPreliminarySize(!0).getGlobalBboxArray(!0)) : [0, 0, 0, 0]; }; c.prototype.positionApplied = function (b) {}; c.prototype.positionUpdated = function (b) { this.positionApplied(b); }; c.prototype.getText = function () {}; c.prototype.evalText = function (b) { var a = this.target || this.chart; a && a.replaceTokens && "string" === typeof b && -1 < b.indexOf("%") && (b = a.replaceTokens(b)); return b; }; return c; })(jc), VC = (function (a) { function c(b, c) { c = a.call(this, b.chart, c, b) || this; c.chartArea = b; c.fillShading = "titleBox"; return c; } K(c, a); c.prototype.applyOptions = function () { var b = this.currentOptions; if (!1 === b.visible) return this.rootPanel.attr({ suspend: "true" }), this; a.prototype.applyOptions.call(this); if ((b = C(b, "position"))) "full" === b ? this.rootPanel.attr({ width: "100%", strategy: "none" }) : this.rootPanel.attr({ width: "auto" }); return this; }; c.prototype.triggerOptionsApplied = function () { this.chart.triggerOptionsApplied("title", this); }; c.prototype.defaultOptions = function () { var b = this.chart; b = b ? b.boxDefaults() : Cf(); return A(b, { position: "left", padding: [3, 3, 6, 3], corners: ["cut", "square", "square", "square"], label: { align: "left", style: { fontSize: 14 } }, animation: !1, shadow: z(b.shadow, !0) }); }; c.prototype.dependentOptions = function () { return [ { option: "fill", check: function (b) { return b; }, dependent: "padding", value: 3, }, ]; }; c.prototype.setRootVisuals = function () { a.prototype.setRootVisuals.call(this); this.rootPanel.attr({ transition: !1 }); return this; }; c.prototype.createContentVisual = function (b) { return this.renderer.textStack().add(b); }; return c; })(ej), Qm = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.kind = "EntryWrapper"; return b; } K(c, a); c.prototype.defaultOptions = function () { return {}; }; c.prototype.styleIconVisual = function (b, a) { if (b) { b = b.base; var c = A({}, this.currentOptions), d = C(c, "outline.color"); Z(c, "outline.color", d || ia("outline", c.color || "white")); c = fc(c); b && b.attr(c); a.isStyled = !0; } }; c.prototype.getIconVisual = function (b, a, c) { a = this.renderer; c = c.iconVisual || {}; var d = (c.root = c.root || a.panel({ yAlignment: "center" })); b = this.getIconPaths(b); b.base && !c.base && (c.base = c.base || a.renderer.path({ d: b.base }).add(d)); return c; }; c.prototype.getIconPaths = function (b) { return { base: dc.rectangle(0, 0, b[0], b[1], { r: 2, corners: ["round", "round", "round", "round"] }), extra: void 0 }; }; c.prototype.setState = function (b) {}; c.prototype.replaceTokens = function (b, a) { return this.chart.replaceTokens(b, a); }; c.prototype.getFormatInfo = function () { return this.chart.getFormatInfo(); }; return c; })(jc), Mt = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.kind = "RangeValueEntry"; return b; } K(c, a); c.prototype.replaceTokens = function (b, a) { return Gg(b, this, a || this.getFormatInfo()); }; return c; })(Qm), lb = function (a) { return "string" === typeof a ? ((a = a.trim()), a.match(Rk) ? parseFloat(a) : a.match(/\/|:|AM|PM|\.\d\./g) && !Ha(new Date(a).getTime()) && 6 <= a.length && 6 <= a.replace(/[^0-9]/g, "").length ? new Date(a).getTime() : parseFloat(a)) : a; }, Nt = (function () { function a(a, b) { this.chart = a; this.kind = "SmartPalette"; this.axisRange = []; this.legendEntries = []; this.colorRanges = []; this.mode = "colorBar"; this.rangesMode = "manual"; this.currentOptions = {}; this.userOptions = {}; this.refreshExtremes = !1; zb(b); this.setOptions(b); this.id = b.id; a && (this.ciManager = a.chartItemManager).register(this); } a.prototype.options = function (a) { var b = xr(this, a); if ("NotGetter" !== b) return b; this.setOptions(a); return this; }; a.prototype.setOptions = function (a) { A(this.userOptions, this.normalizeOptions(a, "colors,id")); this.refreshExtremes = O(a.pointValue) && this.currentOptions.pointValue !== this.userOptions.pointValue; this.currentOptions = this.translateOptions(A({}, this.defaultOptions(), this.userOptions)); this.initialized = !1; this.mode = a.ranges ? "ranges" : "colorBar"; this.stopPosDefined = !0; this.colorRanges = []; this.stops = this.getStops(); this.setStopRange(); }; a.prototype.normalizeOptions = function (a, b) { return Sa(a, b); }; a.prototype.translateOptions = function (a) { var b; if ((b = a.ranges)) if ("array" === I(b)) a.ranges = B(b, function (b) { return "object" === I(b) ? b : { value: b }; }); else { var c = b.min, e = b.max, f = []; b = b.interval; !t(b) || (t(c) && t(e)) || (Ma.emit("warning", a.id || this.id, "minMaxRequired", { container: this.chart.getWrapper() }), (c = c || 0), (e = z(e, 3 * b))); if (t(c) && t(e)) { var g = e - c; e = z(b, g / 3); b = lm(g / e); 20 < b && ((e = lm(g / 20)), (b = lm(g / e)), Ma.emit("warning", a.id || this.id, "spRangesOverflow", { data: ["ranges.interval"], container: this.chart.getWrapper() })); g = 0; for (var h = b; g < h; g++) f.push({ value: g === b - 1 ? [c + e * g, c + e * (g + 1)] : c + e * g }); a.ranges = f; } } return a; }; a.prototype.defaultOptions = function () { return {}; }; a.prototype.syncLegendEntries = function (a) { var b = a.smartPalette, c = b.getRangeConfigs(), e, f = []; b.legendEntries.length ? ((f = b.legendEntries), w(f, function (b) { return b.setColumns(); })) : (w(c, function (b) { f.push((e = a.addEntry(new WC(a.chart, b)))); e.setColumns(); }), (b.legendEntries = f)); return f; }; a.prototype.getRangeConfigs = function () { var a = this.currentOptions, b = a.ranges, d = function (b, c) { return A({ legendEntry: { value: "%min - %max", name: " ", cursor: "default", set: 1 } }, a.defaultRange || {}, b, c); }; if ("array" === I(b)) return this.colorRanges.length ? this.colorRanges : B(b, function (a, c) { var e = c ? b[c - 1] : void 0, f = c < b.length - 1 ? b[c + 1] : void 0; c = hb(a.value, lb); return f ? ((e = f.value), d({ min: c.pop ? c[0] : c, max: e.pop ? e[0] : e }, a)) : "array" === I(c) ? d({ min: c[0], max: c[1] }, Ga(a, "value")) : d({ min: c, max: c + Math.abs(c - lb(e.value)) }, a); }); }; a.prototype.setStopRange = function () { var a = B(this.stops, function (b) { return b[0]; }), b = Math.min.apply(Math, H(a)); a = Math.max.apply(Math, H(a)); this.stopRange = a - b; this.stopExtremes = [b, a]; var d = hb(this.currentOptions.colorsValueRange, lb); this.clips = !(0 <= b && 1 >= a) || d; }; a.prototype.getStops = function (c) { var b = this, d = this, e = d.currentOptions, f = function () { var b = [], a = []; a = l.map(function (b) { return lb(b[0]); }); for (var c = 0, d = l.length; c < d; c++) a[c] = l[c][0]; a = [Math.min.apply(null, a), Math.max.apply(null, a)]; for (c = l.length - 1; -1 < c; c--) { d = l[c]; var e = void 0, f = void 0; e = [na(a[1] - lb(d[0]) + a[0], 2), d[1]]; if ((f = 0 < c ? l[c - 1] : void 0)) 3 < f.length ? ((e[2] = 1 - f[3]), (e[3] = 1 - f[2])) : 2 < f.length && ((e[2] = 0), (e[3] = 1 - f[2])); b.push(e); } l = b; }, g = function () { var b = e.colors, a = hb(e.colorsValueRange, lb); d.stopPosDefined = !1; "solid" === c && b.push(b[b.length - 1]); var f = z(C(a, "0"), 0), g = (z(C(a, "1"), 1) - f) / (b.length - 1); return B(b, function (b, a) { return "solid" === c ? [f + a * g, b, 1] : [f + a * g, b]; }); }, h = function () { var c = e.ranges, f = [], g = !0, h = []; w(c, function (b) { var a = "object" === I(b) ? b.value : b; g = (b = b.color) ? g : !1; a = hb(a, lb); a.pop ? (f.push([a[0], b, 1]), f.push([a[1], b]), h.push(a[0])) : (f.push([a, b, 1]), h.push(a)); }); if (!g) { e.colors || ((e.colors = ["white"]), Ma.emit("warning", e.id, "colorsRequired", { container: b.chart.getWrapper() })); for (var k = e.colors, l = Math.min.apply(Math, H(h)), x = [], v = (Math.max.apply(Math, H(h)) - l) / (k.length - 1), y = 0, t = k.length; y < t; y++) x.push([l + v * y, k[y]]); var E = new a(d.chart, { stops: x, invert: e.invert }); w(f, function (b) { b[1] = E.getValueColor(b[0]); }); w(c, function (b) { b.color = b.value.pop ? E.getValueColor(lb(b.value[0])) : E.getValueColor(lb(b.value)); }); E.destroy(); } return f; }, k = function (b) { if (b && b.length) return b.map(function (b) { b = b.slice(0); b[0] = lb(b[0]); return b; }); }, l = "ranges" === d.mode ? h() : k(e.stops) || g(); e.invert && "ranges" !== d.mode && f(); return l; }; a.prototype.getPointColor = function (a, b, d) { d = d || {}; b = this.getPointValue(b, a, d); return this.getValueColor(b, a); }; a.prototype.getValueColor = function (a, b) { var c = this.stops || this.getStops(b); (function () { if (b) { var a; if ((a = b.info.style.base)) for (var d = 0, g = c.length; d < g; d++) "%color" === c[d][1].toLowerCase() && (c[d][1] = a.color); } })(); a = this.valueToStopPos(a); return (function (b) { a: { for (var a = 0, d = c.length; a < d; a++) { var e = c[a]; if (lb(e[0]) > b) { a = 0 === a ? [e] : [c[a - 1], e]; break a; } lb(e[0]); if (a === d - 1) { a = [e]; break a; } } a = void 0; } d = a[0]; e = []; if (1 === a.length) return a[0][1]; b = Y(0, 1, d[0], a[1][0], b); 2 < d.length && ((e[0] = d[2]), 3 < d.length && (e[1] = d[3])); if (b < e[0]) return d[1]; if (1 < e.length && b > e[1]) return a[1][1]; var k = [0, 1]; 1 < e.length ? (k = e) : 0 < e.length && (k[0] = e[0]); b = Y(0, 1, k[0], k[1], b); return qe(d[1], a[1][1], 100 * b); })(a); }; a.prototype.setPointSpValues = function (a, b) { var c = a.userPoints, e = this.currentOptions, f = e.colorsValueRange, g = a.colorKey || "valueSP"; if (a.info.usesSmartPalette && c && c.length) { var h = c.length - 1, k = c[h]; k[g] = this.getPointValue(k, a); if (this.extremes && !this.refreshExtremes) { b = this.extremes[0]; var l = this.extremes[1]; } else b = l = k[g]; for (; h--; ) { k = c[h]; var m = (k = k[g] = this.getPointValue(k, a)); null !== m && !Ha(m) && (k > l ? (l = k) : k < b && (b = k)); } this.extremes = [b, l]; this.refreshExtremes = !1; this.dataRange = l - b; c = !f && 0 <= b && 1 >= l; a = this.axisConfig = {}; (e = e.colorsValueRange) ? ((b = e[0]), (l = e[1])) : c && this.clips ? ((b = 0), (l = 1)) : this.clips || ((b = this.stopPosToValue(0)), (l = this.stopPosToValue(1))); b = Dg(b, l, 8, { minIntervalGap: 0 }); this.axisRange = [b.min, b.max]; l = 0.001 * (b.max - b.min); a.min = b.min - l; a.max = b.max + l; a.interval = b.interval; a.tickInterval = b.interval; a.startOnTick = a.endOnTick = !1; } return this.extremes; }; a.prototype.getPointValue = function (a, b, d) { d = d || {}; var c = this.currentOptions, f = t(a._i) ? b._points[a._i] : S(b._points, { id: a.id }) || S(b._points, { currentOptions: { id: a.id } }); f || (a = 0); d = d.spSrc; "number" === typeof a ? (f = a) : ((a = b.ctmIsType("heatmap") ? "percentOfZAxisRange" : "percentOfYAxisRange"), (c = c.pointValue) || ((b = 1 < b.userPoints.length ? ("chart" === d ? "{%percentOfDataRange/100}" : "{%percentOfSeriesRange/100}") : "{" + a + "/100}"), (c = b)), (b = c), "function" === I(b) ? (f = b(f)) : (-1 === b.indexOf(":") && (b = b.replace("}", ":n5}")), (this.tokenUsed = b), (f = f.replaceTokens(b, { y: { culture: "en-US" }, x: { culture: "en-US" } })), (f = f.replace(/,/g, "")), (f = lb(f)))); return f; }; a.prototype.valueToStopPos = function (a) { var b, c = yr(this), e = c.dataPerc; return c.stopPerc && !e && (b = this.axisRange) && t(b[0]) ? Y(0, 1, b[0], b[1], a) : a; }; a.prototype.stopPosToValue = function (a) { var b, c = yr(this), e = c.dataPerc; return c.stopPerc && !e && (b = this.extremes) && t(b[0]) && !Ha(b[0]) ? Y(b[0], b[1], 0, 1, a) : a; }; a.prototype.getTraditionalStops = function (a, b) { function c(b, a, c) { function d(b) { b = Y(h[0], h[1], 0, 1, b); b = e.stopPosToValue(b); return e.getValueColor(b); } var f = []; f = (function () { for (var d = [], e = 0, f = b.length; e < f; e++) { var g = b[e], h = e < f - 1 ? b[e + 1] : "undefined", k = 0 < e ? b[e - 1] : "undefined"; if (g[0] < a && h[0] > a) d.push(a); else if (!(g[0] < a && h[0] < a)) if (g[0] === a) d.push(g[0]); else if (h[0] !== a) if (g[0] > c && k) { if (k[0] < c) { d.push(c); break; } } else d.push(g[0]); } return d; })(); return (function (b) { for (var e = [], f = 0, g = b.length; f < g; f++) { var h = b[f]; e.push([Y(0, 1, a, c, h), d(h)]); } return e; })(f); } var e = this, f = [], g = e.getStops(a), h = []; a = e.axisRange; var k = function (b) { return Y(0, 1, h[0], h[1], b); }; h = e.stopExtremes; for (var l = 0, m = g.length; l < m; l++) { var n = g[l], p = l < m ? g[l + 1] : void 0; f.push([k(lb(n[0])), n[1]]); if (p) { if (2 < n.length) { var q = 1 === n[2] ? 1e-4 : 0; f.push([Y(k(lb(n[0])), k(p[0]) - q, 0, 1, n[2]), n[1]]); } 3 < n.length && f.push([Y(k(lb(n[0])), k(p[0]), 0, 1, n[3]), p[1]]); } } b && (b.pop && (a = b), b && e.clips && 2 === a.length && ((b = k(e.valueToStopPos(a[0]))), (a = k(e.valueToStopPos(a[1]))), (f = c(f, b, a)))); return f; }; a.prototype.getPaletteCSS = function (a, b) { a = this.getTraditionalStops(a); var c = []; c.push(b ? "to bottom" : "to right"); a.map(function (b) { var a = Dh(b[1]).hex; b = 100 * lb(b[0]); c.push(a + " " + b + "%"); }); return "background: linear-gradient(" + c.join(", ") + ");"; }; a.prototype.destroy = function () { this.ciManager.remove(this); this.destroyEntries(); }; a.prototype.destroyEntries = function () { w(this.legendEntries, function (a) { return a.destroy(); }); }; return a; })(), WC = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.kind = "SmartPaletteEntry"; return b; } K(c, a); return c; })(Mt), Ot, XC = (function () { function a(a, b) { this._layout = a; this._renderer = a.renderer; this._options = { label: "", type: "default", delay: 300, fill: "#fff" }; this._mini = this._isShowing = this._isStarted = !1; Ot || (this._renderer.cssText( "\n\n.loader,\n.loader .loader-overlay {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tleft: 0;\n\tbottom: 0;\n\toverflow: hidden;\n}\n\n.loader {\n\tanimation:loader-fadeIn ease-in 1;\n\tanimation-fill-mode:forwards;\n\tanimation-duration:0.1s;\n\n\topacity: 0;\n\tvisibility: visible;\n}\n\n.loader.hide,\n.loader.anim-hide {\n\tanimation:loader-fadeOut ease-in 1;\n\tanimation-fill-mode:forwards;\n\tanimation-duration:0.03s;\n}\n\n.loader.hide {\n\tanimation-duration:0s;\n\tvisibility: hidden;\n}\n\n.loader .loader-overlay {\n\topacity: 0.3;\n}\n\n.loader .loader-text {\n\tcolor: #666;\n\tmargin-top: 5px;\n}\n\n.loader.mini .loader-text {\n\ttop: 7px;\n\tleft: 20px;\n}\n\n.loader .loader-icon-holder {\n\tposition: relative;\n\ttop: calc(50% - 35px);\n\ttext-align: center;\n}\n\n.loader.mini .loader-icon-holder {\n\ttop: 7px;\n\tleft:0;\n}\n\n.loader.mini .loader-text {\n\ttop: 1px;\n\tfont-size: 6px;\n}\n\n.loader.bars .loader-icon,\n.loader.bars .loader-icon:before,\n.loader.bars .loader-icon:after {\n\tbackground: rgba(50,102,187, 0.75);\n\tanimation: loader-bars 1s infinite ease-in-out;\n\twidth: 10px;\n\theight: 40px;\n}\n.loader.bars .loader-icon {\n\tcolor: rgba(50,102,187, 0.75);\n\ttext-indent: -9999em;\n\tfont-size: 11px;\n\t-webkit-animation-delay: -0.16s;\n\tanimation-delay: -0.16s;\n\tmargin: 0 auto;\n}\n\n.loader.bars .loader-icon:before,\n.loader.bars .loader-icon:after {\n\tposition: absolute;\n\ttop: 0;\n\tcontent: '';\n}\n\n.loader.bars .loader-icon:before {\n\tleft: -15px;\n\tanimation-delay: -0.32s;\n}\n.loader.bars .loader-icon:after {\n\tleft: 15px;\n}\n\n.loader.bars.mini .loader-icon,\n.loader.bars.mini .loader-icon:before,\n.loader.bars.mini .loader-icon:after {\n\twidth: 5px;\n\theight: 20px;\n\tanimation: loader-bars 1s infinite ease-in-out;\n}\n\n.loader.bars.mini .loader-icon:before {\n\tleft: -7px;\n\tanimation-delay: -0.32s;\n}\n\n.loader.bars.mini .loader-icon:after {\n\tleft: 7px;\n}\n\n.loader.bars.mini .loader-icon {\n\ttop: 5px;\n\tleft: 5px;\n}\n\n\n@keyframes loader-fadeIn { 0% { opacity:0; } 100% { opacity:1; } }\n@keyframes loader-fadeOut { 0% { opacity:1; transform: scale(1); } 99% { transform: scale(1); } 100% { opacity:0; transform: scale(0); } }\n\n@keyframes loader-bars {\n0%,\n80%,\n100% {\n\ttransform: scaleY(0.75);\n}\n40% {\n\ttransform: scaleY(1.25);\n}\n}\n\n@keyframes loader-default { from { opacity: 1 } to { opacity: 0 } }\n\n\n.loader.default .loader-icon {\n\twidth: 50px;\n\theight: 50px;\n\tposition: relative;\n\tmargin: 0 auto;\n}\n\n.loader.default .loader-icon .inner\n{\n\tanimation: loader-default ease-out 0.96s infinite;\n\tposition: absolute;\n\tbackground: #444; \n\tborder-radius: 2px;\n\ttransform-origin: 2px 25px;\n\tleft: 50%; \n\theight: 25%;\n\twidth: 8.33%;\n}\n\n.loader.default.mini .loader-icon {\n\twidth: 20px;\n\theight: 20px;\n}\n\n.loader.default.mini .loader-icon .inner\n{\n\tborder-radius: 1px;\n\ttransform-origin: 0px 10px;\n}\n\n.loader.default .loader-icon .inner:nth-of-type(1) {\n\ttransform: rotate(0deg);\n\tanimation-delay: -0.88s;\n}\n.loader.default .loader-icon .inner:nth-of-type(2) {\n\ttransform: rotate(30deg);\n\tanimation-delay: -0.8s;\n}\n\n.loader.default .loader-icon .inner:nth-of-type(3) {\n\ttransform: rotate(60deg);\n\tanimation-delay: -0.72s;\n}\n\n.loader.default .loader-icon .inner:nth-of-type(4) {\n\ttransform: rotate(90deg);\n\tanimation-delay: -0.64s;\n}\n.loader.default .loader-icon .inner:nth-of-type(5) {\n\ttransform: rotate(120deg);\n\tanimation-delay: -0.56s;\n}\n.loader.default .loader-icon .inner:nth-of-type(6) {\n\ttransform: rotate(150deg);\n\tanimation-delay: -0.48s;\n}\n.loader.default .loader-icon .inner:nth-of-type(7) {\n\ttransform: rotate(180deg);\n\tanimation-delay: -0.4s;\n}\n.loader.default .loader-icon .inner:nth-of-type(8) {\n\ttransform: rotate(210deg);\n\tanimation-delay: -0.32s;\n}\n.loader.default .loader-icon .inner:nth-of-type(9){\n\ttransform: rotate(240deg);\n\tanimation-delay: -0.24s;\n}\n.loader.default .loader-icon .inner:nth-of-type(10){\n\ttransform: rotate(270deg);\n\tanimation-delay: -0.16s;\n}\n.loader.default .loader-icon .inner:nth-of-type(11) {\n\ttransform: rotate(300deg);\n\tanimation-delay: -0.08s;\n}\n.loader.default .loader-icon .inner:nth-of-type(12) {\n\ttransform: rotate(330deg);\n}\n" ), (Ot = !0)); b && this.options(b); } a.prototype.options = function (a) { L(this._options, a); }; a.prototype.loading = function (a, b) { return !1 === a ? this.end() : this._renderer.isRootHidden() ? !1 : this.start(a, b); }; a.prototype.destroy = function () { this.end(); this._loaderElement && this._loaderElement.destroy(); }; a.prototype.ensureAnimationApplied = function (a) { var b = this, c = new Date().getTime() - b._endTime; b._animationApplied || !b._isShowing || !0 !== b._options.break || 0 > c ? a() : (b._loaderElement.attr({ "animation-delay": "0ms" }), uo(function () { b._animationApplied = !0; b.insideRequest = !0; a(); b.insideRequest = !1; })); }; a.prototype.mainClass = function () { return "loader " + this._options.type; }; a.prototype.createElements = function () { if (!this._loaderElement) { this._loaderElement = this._renderer.htmlElement("", { class: this.mainClass() + " hide" }).add(this._renderer.wrapper); this._overlayElement = this._renderer.htmlElement("", { class: "loader-overlay" }).add(this._loaderElement); this._iconHolderElement = this._renderer.htmlElement("", { class: "loader-icon-holder" }).add(this._loaderElement); this._iconElement = this._renderer.htmlElement("", { class: "loader-icon" }).add(this._iconHolderElement); this._textElement = this._renderer.htmlElement("", { class: "loader-text" }).add(this._iconHolderElement); for (var a = 0; 12 > a; a++) this._renderer.htmlElement("", { class: "inner" }).add(this._iconElement); } return this._loaderElement; }; a.prototype.end = function () { if (!this._isStarted || !this._loaderElement) return !1; if (this._isShowing) { var a = 0 < new Date().getTime() - this._endTime && this._animationApplied ? "anim-hide" : "hide"; this._loaderElement.attr({ class: this.mainClass() + " " + (this._mini ? "mini " : "") + a, "animation-delay": "0ms" }); } this._isStarted = this._isShowing = !1; return !0; }; a.prototype.start = function (a, b) { var c = this, e = c._isStarted, f = (t(b) ? b : c._options.delay) || 0, g = !c._loaderElement, h = O(a) || null === a ? a : c._options.label, k = c._textToShow !== h; if (c._isStarted && !k && b) return !1; c._isStarted = !0; c._textToShow = h; c.createElements(); (function () { (k || g) && c._textElement.attr({ innerHTML: h }); if (!c._isShowing) { var b = c._layout.getRootBox(); c._mini = 50 > b.height || 50 > b.width; c._endTime = f + new Date().getTime(); c._animationApplied = !1; uo(function () { if (!c._animationApplied) { c._animationApplied = !0; var b = c._endTime - new Date().getTime(); c._isShowing && c._loaderElement.attr({ "animation-delay": (0 < b ? b : 0) + "ms" }); } }); c._loaderElement.attr({ class: c._mini ? c.mainClass() + " mini" : c.mainClass(), width: b.width + "px", height: b.height + "px", "animation-delay": f + "ms" }); c._overlayElement.attr({ "background-color": c._options.fill || "#fff" }); c._isShowing = !0; } })(); return !e; }; return a; })(), YC = (function () { return function (a) { this.series = a; }; })(), Pt = { contentArea: 0, axis: 1 }, $y = (function () { function a(a) { this.layout = a; this.uses = {}; } a.prototype.use = function (a) { this.uses = a; return this; }; a.prototype.build = function (a) { var b = this.layout, c = {}; a = this.uses = a || this.uses; var e = A({ content: { holder: { stretch: !0 } }, axis: { offset: 0 } }, a); a.title && ((c.titleBoxPanel = b.panel()), (c.titleBox = new VC(a.title.holder).add(c.titleBoxPanel))); if (a.axis) { var f = e.axis.offset; c.topAxes = b.panel({ type: "stack:y" }).attr(zi("left", "bottom", 0, -f)); c.leftAxes = b.panel({ type: "stack:x" }).attr(zi("right", "top", -f, 0)); c.rightAxes = b.panel({ type: "stack:x" }).attr(zi("left", "top", f, 0)); c.bottomAxes = b.panel({ type: "stack:y" }).attr(zi("left", "top", 0, f)); } var g = [], h = a.outline ? a.outline.width : 1; if (a.content && a.content.stroke) { c.contentStroke = b.renderer.path({ fill: "none", stroke: "none", "stroke-width": a.content.stroke.width }); var k = !0 === a.content.stroke.onFront; } a.background && ((c.caBackgroundPanel = b.panel({ padding: h / 2 })), (c.caBackground = b.rect(ve({ fill: "rgba(0,0,0,0)", shadow: !1 })).add(c.caBackgroundPanel)), (a.contentHolderFront || k) && c.contentStroke.add(c.caBackgroundPanel), a.contentHolderFront || g.push(c.caBackgroundPanel)); var l = function (a) { return ve(b.panel({ type: "panel" })).attr({ x: h / 2, y: h / 2 }); }; a.axisMarkers && ((c.axisMarkersBehind = l()), (c.axisMarkersFront = l())); a.gridLines && ((c.gridLinesBehind = l()), (c.gridLinesFront = l())); c.dataContent = l(); f = Kd({}); f = c.contentHolder = b.panel(e.content.holder.stretch ? ve(f) : f); var m = function (b) { return b && g.push(b); }; m(c.gridLinesBehind); !a.axis && a.contentHolderFront ? (m(c.axisMarkersBehind), (c.axisContentBehind = l()), g.push(c.axisContentBehind)) : m(c.axisMarkersBehind); g.push(c.dataContent); m(c.gridLinesFront); m(c.axisMarkersFront); !a.axis && a.contentHolderFront && ((c.axisContentFront = l()), g.push(c.axisContentFront)); c.content = b.panel(ve(Kd({ val: g }))).add(f); a.contentOverlay && (c.contentOverlay = b.panel(ve(Kd({}))).add(f)); !a.contentHolderFront && !1 === k && c.contentStroke.add(f); a.annotationLayer && (c.anHolder = b.panel(ve(Kd({}))).add(f)); a.overflow && ((c.topOverflow = b.panel()), (c.leftOverflow = b.panel()), (c.rightOverflow = b.panel()), (c.bottomOverflow = b.panel())); k = function (a) { if (!a) return a; var c = b.panel({ zIndex: Pt.axis }); a.add(c); return c; }; k = { type: "grid", val: [ [b.panel(), k(c.topAxes), b.panel()], [k(c.leftAxes), f, k(c.rightAxes)], [b.panel(), k(c.bottomAxes), b.panel()], ], }; a.contentHolderFront && ((c.contentHolderBehind = b.panel()), (c.contentHolderFront = b.panel())); c.grid = !a.axis && a.contentHolderFront ? b.panel({ val: [c.caBackgroundPanel, c.contentHolderBehind, f, c.contentHolderFront] }) : a.axis ? b.panel(e.content.holder.stretch ? ve(k) : k) : f; c.mainStacks = a.overflow ? b.panel({ type: "stack:y", val: [ Kd({ val: a.title ? [c.topOverflow, { type: "stack:y", yAlignment: "bottom", val: [c.titleBoxPanel] }] : [c.topOverflow] }), { type: "stack:x", val: [Kd({ val: [c.leftOverflow] }), c.grid, Kd({ val: [c.rightOverflow] })] }, Kd({ val: [c.bottomOverflow] }), ], }) : c.grid; return c; }; return a; })(), Rm, Qt = { custom: 1e3, AxisMarker: 1200 }, Sm = function (a) { var c = a.point, b = a.yVal; a = a.color || c.tokenValue("%color"); c = df(a); return { value: b, label: { color: 0.65 < c ? "#000" : "#fff" }, fill: a, outline: { color: 0.85 < c ? "#d3d3d3" : a }, gridLine: { color: a } }; }, Tm = (function () { function a(a) { this.chartArea = a; this.boxes = []; this.labelBoxes = []; this.paths = []; this._allBoxes = void 0; this.anyColLabelOverflow = !1; } a.prototype.addIdBox = function (a, b) { b.id = a; this.addBox(b); }; a.prototype.addBox = function (a) { a && 4 === a.length && this.boxes.push(a); }; a.prototype.addBodyBox = function (a) { this.addBox(a); }; a.prototype.addLabelBox = function (a, b) { a && 4 === a.length && ((a.id = b), this.labelBoxes.push(a)); }; a.prototype.reset = function () { this.boxes = []; this.labelBoxes = []; this._allBoxes = void 0; this.anyColLabelOverflow = !1; }; a.prototype.collideAllExcept = function (a, b) { if (Yc(this.boxes, a) || Yc(this.labelBoxes, a)) return !0; }; a.prototype.collideAll = function (a, b) { if (Yc(this.boxes, a, b) || Yc(this.labelBoxes, a, b)) return !0; }; a.prototype.collideLabels = function (a, b) { return Yc(this.labelBoxes, a, b) ? !0 : !1; }; a.prototype.alignAvoid = function (a, b) { a = vh(a, this.boxes, b); return vh(a, this.labelBoxes, b); }; return a; })(), ZC = (function (a) { function c(b, c) { var d = a.call(this, b.chart, c, [b, c]) || this; d.series = b; d.attribs = { point: {}, states: {} }; d.kind = "Point"; d.visuals = { marker: void 0, rect: void 0, body: void 0, rectComplete: void 0, errorY: void 0, errorX: void 0, errorXV: void 0, errorYV: void 0, label: void 0, labelConnector: void 0 }; d._state = ""; d.info = {}; d.isMousedOver = !1; d.chart = b.chart; d.x = c.x; d.y = c.y; d.name = c.name; d._i = c._i; d._state = ""; (d.selected = c.selected) && Jl(d, !0); return d; } K(c, a); c.prototype.init = function (a, c) { this.series = a; this._i = c._i; this.defaultMutable = !0; }; c.prototype.options = function (a, c) { var b = this.series, d = !0, g = this.optionsGetter(a); if ("NotGetter" !== g) return g; if ("object" === typeof a.mapData && (this.setMapData(a.mapData), 1 === pa(a).length)) return this; a = Sa(a, "map,mapData,geometry"); g = pa(a); 0 < gc(g, Js).length ? b.seriesDirty.pointData(!0) : 0 < gc(g, Cr).length && b.seriesDirty.pointIndex(!0); if (0 < gc(g, bB).length && (t(a.selected) && Jl(this, a.selected), t(a.muted) && "select" !== this._state && this.setState(a.muted ? "mute" : ""), this.chart.isRendered && this.syncLeCheckbox(), 1 === g.length)) { d = !1; var h = !0; } t(a._i) && (this._i = a._i); L(this.userOptions, a); h ? L(this.currentOptions, a) : ((b.userPoints[this._i] = this.userOptions), this.genOptions()); Ll(this); if (d && !1 !== c) { b.chartArea.invalidate(); b.setDataInfo(); c = this.normalizeUpdateOpt({ animation: b.currentOptions.animation }, c); this.chart.redraw(c); var k = !0; } this.triggerUser("update"); this.userDefinedExploded = t(this.userOptions.exploded); !k && this.afterUpdate(c); return this; }; c.prototype.defaultOptions = function () { return Kl(this.series, this._i); }; c.prototype.contextOptions = function () {}; c.prototype.setOptions = function () { a.prototype.setOptions.call(this); Ll(this); return this; }; c.prototype.setState = function (a, c) { var b = this, d = b.series, g = b.chart; a = Ml(b, a); var h = {}; if (t(null === c || void 0 === c ? void 0 : c.animation)) { A(h, !1 === c.animation ? { duration: 0 } : c.animation); var k = !!h.duration; } if (a !== b._state) { c = b.userDefinedExploded; var l = (b.coord() || {}).styleSet || d.getPointAttr(this), m = l.pointAttr, n = l.svAttr; l = function (a) { var b = a.rootPanel; return b ? b.rect || b.el : a; }; var p; (p = b.visuals.body) && (l = l(p)) && l.attr && l.attr(A(k ? { animation: h } : {}, m[a])); w(["errorY", "errorX", "errorXV", "errorYV"], function (c) { (p = b.visuals[c]) && p.attr(A(k ? { animation: h } : {}, n[a])); }); l = b.selected; var q = (b.selected = "select" === a); b._state = a; var r = d.info.type.isPie, u = b.userDefinedExploded; q && !l ? (b.triggerUser("select"), g._pointSelection(), r && !u && b.options({ exploded: !0 }), m[a] || Ma.emit("warning", d.name || d.id, "pointSelectNoAttrs", { data: [b.options("id")], container: d.chart.getWrapper() })) : !q && l && (b.triggerUser("unselect"), g._pointSelection(), r && !u && b.options({ exploded: !1 })); b.userDefinedExploded = c; } }; c.prototype.select = function (a, c, e) { a = t(a) ? a : !this.selected; Jl(this, a, e); }; c.prototype.mouseOver = function (a) { var b = this.chart, c = C(a, "eventArgs"); if (!this.isMousedOver && !1 !== this.series.options("mouseTracking.enabled")) { this.isMousedOver = !0; c = this.triggerUser("mouseOver", c); !1 !== c && "select" !== this._state && this.setState("hover"); var f = b.hoveredPoint; b.hoveredPoint = this; f && f !== this && f.mouseOut(a); a = this.mouseOverOutCursor(); b.setCursor(a.over); return c; } }; c.prototype.mouseOut = function (a) { var b = C(a, "eventArgs"), c = this.series; this.isMousedOver = !1; if (!this._cursorCaptured) { if (C(c.currentOptions, "mouseTracking.sticky")) var f = (f = this.chart.hoveredPoint) ? f.series === c : !1; f || ("select" !== c.state && c.setState(""), c.tooltip.hideTooltip(), !1 === f && c.triggerUser("mouseOut", a)); a = this.triggerUser("mouseOut", b); !1 !== a && "select" !== this._state && (this.setState(""), c.visualizer.hideHaloMo()); this.chart.setCursor(); return a; } }; c.prototype.click = function (a) { var b = this.currentOptions.nativeClick, c = C(a, "eventArgs"), f = this.series.chartArea; if (!1 !== this.series.options("mouseTracking.enabled")) { var g = { eventArgs: a.eventArgs, currentTarget: this }; L(g, f.clickData(g)); f = this.series.currentOptions.pointSelection; a = a.accumulate || (c && c.ctrlKey); !1 !== this.triggerUser("click", g) && (b && b.call(this, g), f && this.select(void 0, void 0, a), this.syncLeCheckbox()); } }; c.prototype.mouseOverOutCursor = function () { var a = this.currentOptions, c = this.series.currentOptions, e = a.cursor || c.cursor; c = c.pointSelection; a = this.hasUserEvent("click") || a.nativeClick; var f = { over: void 0, out: "initial" }; if (e || c || a) f.over = e || "pointer"; return f; }; c.prototype.genOptions = function () { if (this.currentOptions.mapDataId && this.userOptions.mapDataId && this.currentOptions.mapDataId === this.userOptions.mapDataId) { var a = this.currentOptions.map, c = this.userOptions.map, e = void 0, f = void 0; delete this.currentOptions.map; delete this.userOptions.map; this.userOptions.mapData && this.currentOptions.mapData && this.userOptions.mapData !== this.currentOptions.mapData && this.userOptions.mapData.id === this.currentOptions.mapData.id && ((e = this.currentOptions.mapData), (f = this.userOptions.mapData), delete this.currentOptions.mapData, delete this.userOptions.mapData); this.currentOptions = A(this.defaultOptions(), this.userOptions); this.currentOptions.map = a; this.userOptions.map = c; e && f && ((this.currentOptions.mapData = e), (this.userOptions.mapData = f)); } else this.currentOptions = A(this.defaultOptions(), this.userOptions); }; c.prototype.getMapData = function () { return C(this.info, "map") || C(this.userOptions, "mapData") || C(this.userOptions, "map") || {}; }; c.prototype.setMapData = function (a) { Z(this.info, "map", a); return this; }; c.prototype.getPosConfig = function () { return {}; }; c.prototype.destroy = function () { w(this.visuals, function (a) { return a && a.destroy(); }); var b = this.legendEntry; b && b.destroy(); this.chart.setCursor(); a.prototype.destroy.call(this); }; c.prototype.syncLegendItems = function (a) { var b = this.series; a = 1 / b.points().items.length; a = b._i + a * this._i; b = b.chart.requestLegend(b); var c = this.options("legendEntry.visible"); !1 === c || ("none" !== b.spMode && !0 !== c) || (this.legendEntry ? this.legendEntry.setColumns() : (this.legendEntry = b.addEntry(this, a))); }; c.prototype.syncLeCheckbox = function () { var a; if (null === (a = this.legendEntry) || void 0 === a ? 0 : a.checkbox) this.legendEntry.updateCheckbox(), this.legendEntry.checkbox.refresh(); }; c.prototype.getIconVisual = function (a, c, e) { var b = this.series; c !== this && (c = void 0); return b.getIconVisual(a, c || this, e); }; c.prototype.iconName = function () { return this.series.iconName(); }; c.prototype.getIconTag = function () { var a = this.series.info.style; return ""; }; c.prototype.styleIconVisual = function (a) { var b = this.series.getPointAttr(this.currentOptions); a && a.base.attr(b.pointAttr[""]); }; c.prototype.replaceTokens = function (a, c) { return ir(a, this.series, this, c || this.series.getFormatInfo()); }; c.prototype.tokenValue = function (a) { return this.replaceTokens({ token: a }); }; c.prototype.remove = function (a) { var b = this.series, c = Sf(b.userPoints, { id: this.options("id") }); -1 < c && (b.removePoint(c, a), this.triggerUser("remove")); }; c.prototype.zoomTo = function (a) { var b = this.series; if (b.ctManager.isType("calendar")) b.zoomTo(a); else if (b.ctManager.isType("map")) { var c = this.getMapData(); (c = C(c, "bbox") || C(c, "properties.bbox")) && b.chart.zoom(c, a); } else b.chartArea._isStaticDragArea ? ((c = this.coord()), (c = 4 === c.xyz.length ? va(c.xyz) : c.xyz.slice(0, 2)), (c = Rn(c) ? { center: Xc(c, b.visualizer._coordOffset) } : void 0)) : ((c = b.indexer.getValue("pos", this._i).xyz.slice(0, 2)), (c = Rn(c) ? { pos: c } : void 0)), c && b.chartArea.zoom(c, a); }; c.prototype.setRootVisuals = function () { return this; }; c.prototype.coord = function () { return this.series.indexer.getItem(this._i).coordinates; }; c.prototype.bbox = function () { var a = this.coord(); if (a.pathObj && a.pathObj.isPath) var c = a.pathObj.bbox(); else { var e = O(a.pathD) ? a.pathD : a.pathD.pop ? a.pathD.join(" ") : void 0; a.htShape ? (c = a.htShape.bbox()) : O(e) ? (e = -1 < e.indexOf("url") ? Cc(ha(this.visuals.body.getBbox())) : e) && (c = kl(e)) : a.pathD.bbox && (c = a.pathD.bbox()); } !c && a.xyz && ((c = a.xyz.slice(0, 2)), c.push(0, 0)); e = []; Xe(e, a.sv, a.svs); var f = [c]; Xe(f, C(a, "collision.body")); e.length && f.push(Ua(e)); 1 < f.length && (c = Ea(f)); return c; }; return c; })(jc), $C = { top: "bottom", bottom: "top", left: "right", right: "left", center: "center", middle: "middle" }, aD = { top: "right", bottom: "left", left: "top", right: "bottom", center: "middle", middle: "center" }, bD = function () { var a = function (a) { a = a.split(","); return B(a, function (a) { return { align: "incenter", vAlign: a }; }); }, c = { normal: {}, range: {}, stacked: {}, ganttCandle: {} }; w( { normal: { auto: "outtop,intop,outbottom", others: "inmiddle,inbottom" }, range: { auto: "outtop,inmiddle,outbottom", others: "intop,inbottom" }, ganttCandle: { auto: "inmiddle,outtop,outbottom", others: "" }, stacked: { auto: "inmiddle", others: "intop,inbottom" }, }, function (b, d) { w(b, function (b, f) { return (c[d][f] = a(b)); }); } ); return c; }, cD = function () { var a = { normal: { auto: [ { align: "left", vAlign: "top" }, { align: "center", vAlign: "top" }, { align: "right", vAlign: "top" }, { align: "left", vAlign: "middle" }, { align: "right", vAlign: "middle" }, { align: "left", vAlign: "bottom" }, { align: "center", vAlign: "bottom" }, { align: "right", vAlign: "bottom" }, ], others: [{ align: "incenter", vAlign: "inmiddle" }], }, }; w(a.normal.auto, function (c, b) { a.normal.others.push({ align: "in" + c.align, vAlign: "in" + c.vAlign }); }); (function (a) { w(a, function (b, c) { b = a[c]; b.align = "out" + b.align; b.vAlign = "out" + b.vAlign; }); })(a.normal.auto); return a; }, Jf = function (a) { return "i" === a[0] ? ["in", a.substr(2).toLowerCase()] : ["out", a.substr(3).toLowerCase()]; }, Um = function (a, c, b, d, e) { c = e ? c : b; a = e ? a.align : a.vAlign; return (d && d[0] !== a[0]) || (c && c.toLowerCase() !== Jf(a)[1]); }, Mr = function (a) { return "i" === a.align[0] && "i" === a.vAlign[0]; }, Rt = function (a, c) { a = Jf(a); return a[0] + c[a[1]]; }, Nc = function (a, c) { var b = c ? aD : $C; return { align: Rt(c ? a.vAlign : a.align, b), vAlign: Rt(c ? a.align : a.vAlign, b), rotation: a.rotation || 0 }; }, qz = function (a, c, b, d, e, f) { b = c.slice(0); e = (function (a, b) { var c = [], d = va(a); a = Yb(a); var e = { u: [d[0], a[1]], d: [d[0], a[3]], l: [a[0], d[1]], r: [a[2], d[1]] }; w(["u", "d", "l", "r"], function (a) { var d; (d = b[a]) && c.push(mb(e[a], [d, d])); }); return c; })(c, e); b = H([b], d, e); f = (f = f.rectComplete) ? ha(f) : void 0; b = Ea(b); c = gk(c, H(d, e, f ? [f] : [])); a.isHoriz() ? ((c = Ye(c, [c[2] - 10, c[3]])), (b = Ye(b, [b[2] + 10, b[3]]))) : ((c = Ye(c, [c[2], c[3] - 10])), (b = Ye(b, [b[2], b[3] + 10]))); return { in: c, out: b }; }, fz = function (a, c, b, d, e) { a = rb(Ea(H([c], b)), -5); return { in: gk(c, b), out: a, outCorner: rb(a, 3) }; }, gz = function (a, c, b, d, e) { a = a.isHoriz(); var f = e.getValue("coordinates", d); d = e.getValue("coordinates", d - 1); f && d && ((b = b.slice(0)), (d = d.xyz), (f = f.xyz), a ? b.push(Ua([f, [d[0], f[1]]])) : b.push(Ua([f, [f[0], d[1]]]))); return { in: gk(c, b), out: rb(Ea(H([c], b)), -5) }; }, dD = function (a, c, b, d) { var e = c.currentOptions.label || {}, f = e.align, g = e.verticalAlign, h = "auto" === e.placement ? void 0 : e.placement; d = f || g || h; var k = c.series.info.hasYRanges, l = a.isHoriz(), m = c.series; c = m.info; var n = c.hasSubvalues; a = m.yAxis.isStacked(); var p = "category" === m.xAxis.type; m = bD(); c = n || (l && p && c.type.zStacked); if (e.alignSequence) return e.alignSequence; if (h && ((l && f) || (!l && g))) return (d = "i" === h[0] ? "in" : "out"), (e = l ? [{ align: d + f, vAlign: "inmiddle" }] : [{ align: "incenter", vAlign: d + g }]); a = m[a ? "stacked" : c ? "ganttCandle" : k ? "range" : "normal"]; c = function (a) { return { u: function (a) { return a; }, d: function (a) { return B(a, function (a) { return Nc(a); }); }, r: function (a) { return B(a, function (a) { return Nc(a, !0); }); }, l: function (a) { return B(a, function (a) { return Nc(Nc(a, !0)); }); }, }[b](a); }; e = c(a.auto); k = function (a) { return !Um(a, f, g, h, l); }; d && ((e = ea(e, k)), (d = c(a.others)), e.push.apply(e, H(ea(d, k)))); return e; }, hz = function (a, c, b) { c = c.currentOptions.label || {}; var d = c.align, e = c.verticalAlign, f = "auto" === c.placement ? void 0 : c.placement; a = d || e || f; b = cD(); if (c.alignSequence) return c.alignSequence; if (d && e) return (a = f && "i" === f[0] ? "in" : "out"), [{ align: a + d, vAlign: a + e }]; b = b.normal; c = b.auto; var g = function (a) { var b = d ? Um(a, d, e, f, !0) : !0; a = e ? Um(a, d, e, f, !1) : !0; return b && a; }; a && ((c = ea(c, function (a) { return !g(a); })), c.push.apply( c, H( ea(b.others, function (a) { return !g(a); }) ) )); return c; }, eD = function (a, c, b, d) { var e, f; t(b) ? (w(a, function (a) { var g = Ia(c, va(a.box)), k = 0; g = Math.abs(ws(b - g + 180, 360) - 180); if (!t(f) || g < f) (e = a), (f = g); 45 > g ? (k += 2) : (135 < g && (k += 1), d.length && (ro(a.box, d[0]) && (k -= 2), d[1] && ro(a.box, d[1]) && (k -= 2))); a.score = k; }), e && e.score++) : St(a, c); }, St = function (a, c) { var b, d, e = t(c); w(a, function (a) { var f = 0, h = Jf(a.vAlign)[1], k = Jf(a.align)[1]; if (e) { var l = va(a.box); l = Xb(c, l); if (!t(d) || l < d) (d = l), (b = a); } "center" === k && (f++, "top" === h && f++); "middle" === h && f++; a.score = f; }); e && (b.score += 3); }, fD = function (a, c, b, d, e, f) { w(a, function (a) { var g = 0, k = a; e ? (k = f ? Nc(a, !0) : Nc(Nc(a, !0))) : f && (k = Nc(a)); var l = Jf(k.vAlign)[1]; k = Jf(k.align)[1]; if (b || d) { var m = b ? "right" : "left"; c ? ("bottom" === l && k === m ? (g += 2) : "middle" === l && k === m ? g++ : "bottom" === l && "center" === k && g++) : (k === m && g++, "bottom" !== l && g++); } else c ? ("bottom" === l && "center" === k ? (g += 2) : "middle" === l ? g++ : "top" === l && --g) : ("center" === k && g++, "top" === l && g++); a.score = g; }); }, kz = function (a, c, b, d, e) { c = ha(c.coordRect); va(c); St(a); a = sa(a, function (a) { return a.score; }); a.reverse(); return a; }, jz = function (a, c, b, d, e) { d = function (a) { return e.getValue("coordinates", a); }; c = d(b._i); var f = d(b._i - 1), g = d(b._i + 1); d = []; b.series.ctSvIs("lineSeriesType", "step") || (f && d.push([c.xyz, f.xyz]), g && d.push([c.xyz, g.xyz])); if (2 === d.length) { b = Ia(d[0][0], d[0][1]); var h = Ia(d[1][0], d[1][1]); h = ws(h - b + 180, 360) - 180; h = b + h / 2 + 180; } else d.length && (h = Ia(d[0][1], d[0][0])); eD(a, c.xyz, h, d); a = sa(a, function (a) { return a.score; }); a.reverse(); return a; }, iz = function (a, c, b, d, e) { var f = function (a) { return e.getValue("coordinates", a); }; d = f(b._i); var g = f(b._i - 1); f = f(b._i + 1); var h = b.series; b = 0 === h._i; var k = h.yAxis; h = k.isStackedFull(); k = k.isStacked(); c = c.isHoriz(); fD(a, k && !(k && !h && b), !g, !f, c, c ? d.xyz[0] < d.xyzs[0] : d.xyz[1] > d.xyzs[1]); a = sa(a, function (a) { return a.score; }); a.reverse(); return a; }, Tt = function () { return { opacity: 0.9, width: 3, color: "#dedeac" }; }, Ut = function () { return { axes: "x,y", values: "x,y", requiredData: "x,y", supportedData: "x,y,subvalue,subvalueX", privateAxes: "", customAxisOptions: {} }; }, mz = "circle diamond four-point-star five-point-star six-point-star seven-point-star".split(" "), Ie = (function (a) { function c(b) { var c = a.call(this, b) || this; c.series = b; c.kind = "base"; c.typeConfig = Ut(); c.typeConfigCtSpecific = { chartType: { gauge: { privateAxes: "x", customAxisOptions: { x: {} } }, radar: { x: { isRadial: !0, scale: { range: { padding: 0 } } }, y: { isRadial: !0 } } }, radarType: { polar: { x: { radialInterpolation: "spider" } }, spider: { x: { radialInterpolation: "spider" } } }, gaugeType: {}, linearGaugeType: { horizontal: {} }, }; c.shapeLabelMeta = {}; c.debugBBox = !1; c.staticBodyDGetter = void 0; c.staticSeriesBodyInfo = xc; c.staticPointCompleteVisInfo = xc; c.coordDirty = !0; c.coordinates = {}; c.paths = { areas: void 0, lines: void 0 }; c.pointValueParser = Ai; c.collidePointBoxes = !0; c.getLabelHitTest = function () { return function (a, b, c) { var d = a.meta.label; a = a.meta.labelAttr; var e = d && d.slice(2); return d && Ad([d[0] + (a.offsetX || 0), d[1] + (a.offsetY || 0), e[0], e[1]], [b, c]); }; }; Lr(b); c.debounce = new Ae(); return c; } K(c, a); c.prototype.getTypeConfigDefault = function () { return Ut(); }; c.prototype.getTypeConfig = function (a) { if (!this._typeConfigCache || a) { var b = this.series; a = this.getTypeConfigDefault(); var c = this.typeConfigCtSpecific, f, g, h = this.series.ctManager.getSettingChecker(b), k; for (k in c) (b = c[k]), (f = h(k)) && (g = b[f]) && A(a, g); c && (delete a.chartTypeSpecific, A(a, c)); this._typeConfigCache = a; } return this._typeConfigCache; }; c.prototype.pointArrayExpander = function (a) { return { x: a[0], y: a[1] }; }; c.prototype.pointLeVisible = function (a) { return !0; }; c.prototype.contextDefaults = function () {}; c.prototype.eachPoint = function (a) { for (var b = this.series.points().items, c = 0, f = b.length; c < f && !1 !== a(b[c], b[c]._i); c++); }; c.prototype.render = function (a, c) { var b = this.series, d = b.currentOptions, g = this, h = b.info.type, k = (b.pane || b.chartArea).collisionManager, l, m = g.isHoriz(), n, p, q = b.rootVisuals, r = b.info, u = r.type, x = N(b.chart.currentOptions, ["navigator", "enabled"]), v = b.renderer; if (t(g.lastRenderVisibility) && !g.lastRenderVisibility && !b.isVisible) return g; var y = z(N(b.currentOptions, ["defaultPoint", "subvalue", "line", "length"]), 20), D = y, E = function (c) { var d; c && (d = c(g, a)) && (U = d.d) && (((l = { d: U, zIndex: t(d.zIndex) ? d.zIndex : b.zIndex + gb.series }), (l = g.render_applyDynamicAttrVals([l, d.state, { animation: d.animation }], a, d.state)), (n = d.visGetter())) ? (l.animation && (c = g.getAnimatorOptions(d.shapeName)) && ((l.animation.pathAnimation = c), (c.fromD = N(n, ["data", "attrs", "d"])), n.finishAnimation()), n.attr(l)) : (d.visSetter((n = v.path(l))), n.add(d.target), w(d.events, function (a, b) { return n.on(b, a); }))); }, F = q.points; v = v.renderer; a = Pa(a) ? a : {}; q = F && F.pixelCorrection; b.state = d.selected ? "select" : d.muted ? "mute" : b.state || ""; if (u.drawArea || u.drawLine) q && ("step" === b.ctSv("lineSeriesType") || (u.drawMarker && "polar" !== b.ctSv("radarType") && !1 !== N(b.currentOptions, ["defaultPoint", "marker", "visible"]))) ? (a.coordinatesCorrection = function (a) { return ue(F, a, 1); }) : (a.coordinatesCorrection = function (a) { return a.map(function (a) { return [a[0], a[1]]; }); }); !c && b.preRender(a); a.coordinatesCorrection = null; w(g.staticSeriesBodyInfo, E); var R = b.points().items, C = function (a, b, c, d, e, f) { var g, h = "", k = function (a) { return (m && !f) || (!m && f) ? [ [a[0], a[1] - e], [a[0], a[1] + e], ] : [ [a[0] - e, a[1]], [a[0] + e, a[1]], ]; }; if (u.drawRect && a) { a = ha(a); var l = po(a, b, 1), n = po(a, c, 1); l || n || (g = wv(a, [b, c])); } g ? w(g, function (a) { a && a.length && ((h += xa(fb(a))), d && d.labelObstacles.push(Ua(a))); }) : ((h = xa(fb([b, c]))), d && d.labelObstacles.push(Ua([b, c]))); e && ((h += xa(fb(k(b)))), (h += xa(fb(k(c))))); return h; }, wa = this.staticBodyDGetter || lz, U, M, B, J, G, Nb, K, L, I, Q; c = function (c, d) { I = R[P.renderOrder[c]]; if (!I) return "continue"; M = b.indexer.getValue("coordinates", I._i); G = I.visuals; if (M) { var e = I.currentOptions; Nb = Q = M.styleSet || b.getPointAttr(e); M.styleSet = Q; K = Q.svAttr[""]; L = !1; p = I._state = e.selected ? "select" : e.muted ? "mute" : I._state || ""; c = Q.pointAttr[p]; B = M.xyz; J = M.xyzs; M.meta.labelObstacles = []; Q.labelVisible && g.initPointLabel(I, M, Q); r.hasSubvalues && ((D = z(N(e, ["subvalue", "line", "length"]), y)), (D *= z(M.width, M.unclusteredWidth, N(M, ["marker", "size"]), 10) / 100)); (x && u.drawMarker && (u.drawLine || u.drawArea)) || (r.hasMaxedMarkerLimit && u.drawMarker && (u.drawLine || u.drawArea) && (e.color || e.outline || e.marker || G.body || (L = !0))); P.isRadial && (L = !1); var f = (d = void 0), q = void 0; if (!L && ((f = M.prev), !f || f.isVisible || M.isVisible || M.everVisible)) { f && !f.isVisible && M.isVisible && G.body && f.pathD && G.body.attr({ d: f.pathD, animation: !1 }); U = M.pathObj || M.path || wa(g, I, M, F, c.r, Q.drawMarker); M.pathD = U; var t = (f = void 0); if ((t = M.meta.marker)) f = 0 < t[2] && 0 < t[3]; f || !Np(U) ? ("string" === typeof U && vb(U, "url(") ? ((d = U.replace(/url\(/g, "").replace(/\)/g, "")), (l = { src: d, cx: B[0], cy: B[1], zIndex: b.zIndex + gb.body })) : U.arcShape && "object" === typeof U ? ((l = A(Oa(U.arcShape), { zIndex: b.zIndex + gb.body })), (q = !0)) : (l = { d: U, zIndex: b.zIndex + gb.body }), (l = g.render_applyDynamicAttrVals([l, c], a, c)), (n = G.body) ? ((c = g.getPointAnimatorOptions(M, I)) && !ub(c) && ((l.animation.pathAnimation = c), !n.isComposite && n.finishAnimation()), n.attr(l)) : (q && "solid" === b.ctSv("columnType") && (l.shading = "solid"), (G.body = n = q ? v.element("arcShape", l) : d ? v.element("image", l) : v.path(l)), n.add(F))) : (n = G.body) && n.attr({ d: U }); if (q && n.hitTest) { var cb = (M.htShape = n); M.hitTest = function (a, b) { return cb.hitTest(a, b); }; } else if (!M.hitTest && O(M.pathD) && !1 !== e.mouseTracking) { var Jc = M; M.hitTest = function (a, b) { return (Jc.htShape || (Jc.htShape = Aa(Jc.pathD))).hitTest(a, b); }; } !1 !== b.isVisible && (k.addBodyBox(N(M, ["collision", "body"])), k.addBox(M.meta.marker)); } h.drawMarker || (!b.currentOptions.forceMarker && !0 !== N(e, ["marker", "visible"])) || ((Nb = b.getPointAttr(e, !0)), (c = Nb.pointAttr[p]), (U = nz(I, g.getBodyShapeName(I, !0), M, c.r, F)), U.indexOf && vb(U, "url(") ? ((e = (d = b.xAxis) && d.isStackedFull() ? (B[0] + J[0]) / 2 : B[0]), (q = B[1]), (d = U.replace(/url\(/g, "").replace(/\)/g, "")), (l = { src: d, cx: e, cy: q, zIndex: b.zIndex + gb.body })) : ((l = { d: U, zIndex: b.zIndex + gb.marker }), (d = void 0)), (l = g.render_applyDynamicAttrVals([l, c], a, c)), (n = G.marker) ? n.attr(l) : ((G.marker = n = d ? v.element("image", l) : v.path(l)), n.add(F))); if (r.hasSubvalues && !g.isRadial && "ohlc" !== r.type.seriesType) { c = { get: function () { return G.errorY; }, set: function (a) { return (G.errorY = a); }, onX: !1, }; d = { get: function () { return G.errorX; }, set: function (a) { return (G.errorX = a); }, onX: !0, }; var gd = K["stroke-width"] || 1, rg = D / 2; e = function (c, d) { c = ue(F, c, gd); l = { d: C(M.rect, c[0], c[1], M.meta, "candlestick" !== h.seriesType ? rg : 0, d.onX), zIndex: b.zIndex + gb.error }; l = g.render_applyDynamicAttrVals([l, K], a, K); (n = d.get()) ? n.attr(l) : (d.set((n = v.path(l))), n.add(F)); }; M.sv && M.svs && ((q = M.sv), (f = M.svs), (t = m ? 0 : 1), r.drawRect && (M.sv[t] === M.xyz[t] && (q = M.xyzs), M.svs[t] === M.xyzs[t] && (f = M.xyz)), e([q, f], c)); M.svx && M.svxs && e([M.svx, M.svxs], d); c = m ? M.svxv : M.svv; d = m ? M.svv : M.svxv; var Ba = []; if (c) { Ba = []; var Sp = []; w(ue(F, c, gd), function (a) { a = [ [a[0] - rg, a[1]], [a[0] + rg, a[1]], ]; Ba.push.apply(Ba, H(a)); M.meta.labelObstacles.push(a); Sp.push(a); }); l = { d: tg(Sp), zIndex: b.zIndex + gb.error }; l = g.render_applyDynamicAttrVals([l, K], a, K); (n = G.errorYV) ? n.attr(l) : ((G.errorYV = n = v.path(l)), n.add(F)); } if (d) { Ba = []; var S = []; w(ue(F, d, gd), function (a) { a = [ [a[0], a[1] - rg], [a[0], a[1] + rg], ]; Ba.push.apply(Ba, H(a)); S.push(a); }); M.meta.labelObstacles.push(Ua(Ba)); l = { d: tg(S), zIndex: b.zIndex + gb.error }; l = g.render_applyDynamicAttrVals([l, K], a, K); (n = G.errorXV) ? n.attr(l) : ((G.errorXV = n = v.path(l)), n.add(F)); } } r.hasComplete && E(function (a) { return a.staticPointCompleteVisInfo(a, I, M); }); (Q.labelVisible && u.isShape && !b.pane) || u.isAnnotation ? (P.renderLabel(I, Q, M, b.indexer, a), k.addLabelBox(M.meta.label)) : (g.hideVisual(g.getLabelWrapper(G.label, Q)), g.hideVisual(G.labelConnector)); } else g.hideVisual(G.body), g.hideVisual(g.getLabelWrapper(G.label, Q)); g.hideUnusedPointVisuals(I); I.chart.triggerOptionsApplied("point", I); }; var P = this; d = 0; for (q = R.length; d < q; d++) c(d); g.isRendered = !0; g.hideUnused(); g.lastRenderVisibility = b.isVisible; return g; }; c.prototype.renderLabels = function (a, c) { c = this.series; var b = (c.pane || c.chartArea).collisionManager; if (c.info.type.isAnnotation || !((c.chart.isRendered && this.isRendered) || c.isVisible)) return this; a = Pa(a) ? a : {}; a.coordinatesCorrection = null; for (var d = c.points().items, g, h, k, l = 0, m = d.length; l < m; l++) if ((k = d[this.renderOrder[l]])) (g = c.indexer.getValue("coordinates", k._i)), (h = k.visuals), g ? ((h = k.currentOptions), (h = g.styleSet || c.getPointAttr(h)), h.labelVisible && c.isVisible && (this.renderLabel(k, h, g, c.indexer, a), (h = g.meta.label), this.collidePointBoxes ? b.addLabelBox(h) : h && b.addLabelBox(Hr(g.meta.labelTextBox, h, g.meta.labelAttr)))) : (this.hideVisual(h.body), this.hideVisual(h.label)), this.hideUnusedPointVisuals(k); this.isRendered = !0; this.hideUnused(); return this; }; c.prototype.getAnimatorOptions = function (a, c) { c = this.updateInfo; var b = this.series; if (c && c.action) { var d = b.ctManager.settingVal("lineSeriesType", b.currentOptions); return { action: c.action, at: c.at, count: z(c.count, 1), del: c.del || 0, type: d, shapeName: a, shift: c.shift || !1, fromD: void 0, pointsLen: b._points.length }; } return null; }; c.prototype.getPointAnimatorOptions = function (a, c) { if (this.isRadial && c && "needle" === this.getBodyShapeName(c) && a.coordPrev) { var b = N(this.series, ["pointBodyDGenerator"]); return { needle: { from: a.coordPrev, to: a, gen: function (a) { return b("needle", a); }, }, }; } return {}; }; c.prototype.renderDebug = function (a, c, e) {}; c.prototype.isHoriz = function () { var a = this.series; return (a.pane || a.chartArea).isHoriz; }; c.prototype.renderLabel = function (a, c, e, f, g) { dz(this, a, c, e, f, g); }; c.prototype.initPointLabel = function (a, c, e) { var b = this.series, d = c.meta, h = a.visuals, k = this.kind, l = (b.pane || b.chartArea).collisionManager, m = b.info.style.base, n = b.renderer, p = b.rootVisuals, q = b.info.type, r = this.isHoriz(); if (!d.labelSize) { b = N(a.currentOptions, ["label", "text"]) || b.info.labelTextInfo.label; "function" === I(b) && (b = b(a) || ""); b = a.replaceTokens(b); d.labelText = b; a = qc(e.label, "pie" === k ? ["offset"] : void 0, m); k = {}; a.autoWrap = "none"; a.val = b; if ((b = N(d, ["label", "bounds"]))) this.collidePointBoxes ? ((k.width = b[2]), (k.height = b[3])) : ((k.maxWidth = b[2]), (k.maxHeight = b[3]), (k.width = null), (k.height = null)), (k.x = b[0]), (k.y = b[1]), id(a, { xAlignment: "center", yAlignment: "middle" }), (a.maxWidth = b[2]), (a.maxHeight = b[3]), (a.width = null), (a.height = null); n = (m = !h.label) ? (h.label = n.textStack().attr(A({}, a))) : h.label.attr(A({}, a)); h = n.composeCombinations()[0].minSize; h = [h.width.px, h.height.px]; var u = 10 <= Math.max(h[0] - k.maxWidth, h[1] - k.maxHeight); m ? (u ? ((p = this.wrapLabel(n, k, e).add(p.points)), (h[0] = k.maxWidth), (h[1] = k.maxHeight)) : (p = n.attr(k).add(p.points))) : (p = this.getLabelWrapper(n, e).attr(k)); (!q.drawRect && "ohlc" !== this.kind) || r || (this.isRadial ? ((c = c.pathOptions), (q = (c.innerR + c.r) / 2), (c = Xb(Jb(c.cxy, c.start, q), Jb(c.cxy, c.end, q)))) : (c = c.rect.width), h[0] > c && (l.anyColLabelOverflow = !0)); !N(e, ["label", "autoHide"]) && d.shape && ((e = !r || l.anyColLabelOverflow), (l = d.shape[2]), (r = d.shape[3]), (c = e ? l / h[1] : r / h[1]), (q = { fitWidth: null, fitHeight: null }), 0.5 < c && ((c = Math.floor(100 * c) / 100), 1 > c && ((h[0] *= c), (h[1] *= c)), e && (q.fitHeight = l), !e && (q.fitHeight = r)), p.attr(q)); this.collidePointBoxes || ((k.width = b[2]), (k.height = b[3]), (k.maxWidth = null), (k.maxHeight = null), p.attr(A({}, k)), (d.labelTextBox = [0, 0, Math.min(b[2], h[0]), Math.min(b[3], h[1])])); delete a.width; delete a.height; d.labelAttr = a; d.labelSize = b ? [b[2], b[3]] : h; d.labelInternalSize = h; } return this; }; c.prototype.wrapLabel = function (a, c, e) { return a.attr(c); }; c.prototype.getLabelWrapper = function (a, c) { return N(c, ["label", "wrapped"]) ? a.parent.parent : a; }; c.prototype.possibleLabelPositions = function (a, c, e, f, g) { return ez(this, a, c, e, f, g); }; c.prototype.getBodyShapeName = function (a, c) { return this.series.getPointMarkerType(a.currentOptions); }; c.prototype.updatePointsGlobals = function () { var a = this.series.pane; return (this.pointsGlobals = a ? a.getGlobalOffsets() : void 0); }; c.prototype.setCoordinates = function (a, c) { function b(a, b) { void 0 === b && (b = { xIsSorted: !0, isFinal: !1 }); var c = b.isFinal, e = b.xIsSorted, f = N(h.currentOptions, ["line", "tension"]); f = t(f) ? ua(Y(0.7, 1, 0, 1, f), 0, 1) : 0.8; var g = { spline: function (a) { return [bx(a, f)]; }, step: r ? function (a) { return fb(a); } : function (a, b) { return ax(a, b, !e); }, normal: function (a) { return fb(a); }, }[Q ? "spline" : U]; if (R.drawLine || R.drawArea) { b = []; var k = function (a, b, c) { void 0 === c && (c = !1); if (c) return xa(g(a)) + "Z" + xa(g(b)) + "Z"; b.reverse(); a.push.apply(a, H(b)); return xa(g(a)) + "Z"; }; B.length && ((B = d ? d(B) : B), K.push(B), (a = a || 0 < L.length), R.drawLine && (r ? c && ((b = K.slice(0)), 1 === K.length ? I.push(xa(g(B, O)) + (a ? "" : "Z")) : ((a = b[b.length - 1].slice(0)), a.push.apply(a, H(b[0])), (a = xa(g(a, O))), I.push(a), 2 < K.length && ((a = K.slice(1, K.length - 1)), w(a, function (a) { I.push(xa(g(a, O))); })))) : 1 < B.length && I.push(g(B, O))), R.drawArea && (r ? (Nb.push({ s: J, e: B }), c && ((L = []), 1 === Nb.length ? ((J = d ? d(J) : J), L.push(k(J, B, !0))) : ((a = Nb[Nb.length - 1]), (c = a.s.slice(0)), (a = a.e.slice(0)), (b = Nb[0].s), a.push.apply(a, H(Nb[0].e)), c.push.apply(c, H(b)), L.push(k(c, a)), 2 < Nb.length && ((c = Nb.slice(1, Nb.length - 1)), w(c, function (a) { L.push(k(a.s, a.e)); }))))) : (J.reverse(), (J = d ? d(J) : J), (b = [g(B, O)]), b.push(g(J, !O).join(" ").replace(/M/gi, "L")), L.push(xa(b) + "Z")))); } B = []; J = []; } var d = c ? c.coordinatesCorrection : null, g = this, h = g.series, k = h.currentOptions, l = h.indexer, m = h.pane, n, p, q = h.chartArea.isZoomLive(); if (t(g.lastRenderVisibility) && !g.lastRenderVisibility && !h.isVisible) return g; var r = m ? m.isRadial : !1, u = h.indexer.data.coordinates || h.prevCoords; u && (u = u.slice(0)); var x = a.x, v = a.y, y = a.width, D = a.height, E = h.ctManager, F = h.info, R = F.type, C = h.userPoints, wa = h.points().items, U = E.settingVal("lineSeriesType", k), M = N(k, ["emptyPointMode"]) || "undefined", B = [], J = [], K = []; c = []; var Nb = [], I = [], L = [], O = g.isHoriz(), Q = (E.isType("map") && "line" === R.seriesType && "spline" === U) || (E.isType("radar") && m && "polar" === m.getRadarType() && "line" === R.seriesType), P = N(m, ["projection", "val2linxy"]), S = O ? a.height : a.width; r && ((S = 1), (g.isRadial = !0)); m = m ? m.xAxis : h.xAxis; E = m.clusterCounts[h.type]; var Ba = t(E); E = z(E, 1); var T = m.getShortestDistPerc(), W = T * S, X = m.currentOptions.spacingPercentage, Z = W * X; if (1 <= Z || r) W -= Z; var aa = z(m.currentOptions.staticColumnWidth, W), V = aa / E; "column" !== k.type || r || (V = Math.max(V, 5)); var da = aa / E; r || ((V = na(V)), (da = na(aa / E))); m = z(h.clusterIndex, 1); var ea = -(V * E) / 2 + V * m; Z = T * X; var ba = { xLength: 1, clusterWidth: T - (1 <= Z ? Z : 0) }; A(ba, { thisWidth: ba.clusterWidth / E }); A(ba, { unclusteredWidth: ba.clusterWidth / E, clusterOffset: -(ba.thisWidth * E) / 2 + ba.thisWidth * m }); E = function (a) { return "string" === typeof a && -1 < a.indexOf("%") ? (parseInt(a) / 100) * Math.min(y, D) : a; }; var fa = function (a, b) { var c; if ((c = n[a])) (p[a] = qa.apply(void 0, H(c))), b && Fb(b) && (p[a] = b.apply(void 0, H(p[a]))); }, ia = function (a) { var b; if ((b = n[a])) { var c = (p[a] = []); w(b, function (a) { c.push(qa.apply(void 0, H(a))); }); } }, ka = l.hasAllKeys("ys,ye"), ca = l.hasAllKeys("xs,xe"); m = h.ctManager.settingVal("bubbleSizingType", h.options()); var la = E(N(k, ["size", "max"])) || 50, ma = E(N(k, ["size", "min"])) || 5, oa = Sn(la / 2), sa = Sn(ma / 2); l.indexKeys(["coordinates", "bbox"], {}, 0); var ra = function (a, b) { return [x + a * y, v + b * D]; }; X = function (a, b) { return [ca ? a : ba.clusterOffset + ba.thisWidth / 2 + a, b]; }; var ta = function (a) { return ca ? a : ba.clusterOffset + ba.thisWidth / 2 + a; }; E = function (a, b) { return [a, ca ? b : ea + V / 2 + b]; }; var pa = function (a, b, c) { P && ((b = G(O ? P(b, a, c) : P(a, b, c), 2)), (a = b[0]), (b = b[1])); a = ra(a, b); r && (t(c) || (c = 0.9), a.push((y / 2) * c)); return a; }; m = { column: r ? X : function (a, b) { return [ca ? x + a * y : x + ea + V / 2 + a * y, v + b * D]; }, marker: r ? pa : ra, bubble: "width" === m ? function (a, b, c) { a = pa(a, b); a.push(Y(ma, la, 0, 1, c)); return a; } : function (a, b, c) { a = pa(a, b); a.push(2 * Math.sqrt(Y(sa, oa, 0, 1, c) / Math.PI)); return a; }, }; m.ohlc = m.column; O && (m.column = r ? E : function (a, b) { return [x + a * y, ca ? v + b * D : v + ea + V / 2 + b * D]; }); m.variwide = m.column; var qa = m[h.type] || m.marker; X = function (c, d) { d = []; var e = {}; if (l.getValue("isEmpty", c)) return "ignore" !== M && b(!0), "continue"; n = l.getValue("pos", c); p = { width: Ba ? V : void 0, unclusteredWidth: da, clusterSpace: T * S, meta: e }; g.clearPrevCoord(l.getValue("coordinates", c)); l.setValue("coordinates", c, p); var f = r && R.drawRect ? pa : void 0; fa("xyz", f); fa("xyzs", f); var m = p.xyzs; f = p.xyz; var v = m[1] - f[1], x = V; if (r) { var y = g.series.pane.angleArc(); p.arc = { angle: Y(y.start, y.end, 0, 1, n.xyz[0]), cxy: va(ha(a)) }; } e.xy = f; y = void 0; var D = ca ? m[0] : f[0] - V / 2, E = ca ? f[0] - m[0] : V, A = void 0; r && ((v = n.xyzs[1] - n.xyz[1]), (D = ca ? n.xyzs[0] : n.xyz[0] - V / 2), (A = ca ? n.xyzs[0] : n.xyz[0]), (E = ca ? n.xyz[0] - n.xyzs[0] : x)); if (Ba) if (r) { if (O) { if (((v = p.rectPos = { y: ca ? n.xyzs[1] : ta(n.xyz[1] - V / 2), x: n.xyzs[0], width: n.xyz[0] - n.xyzs[0], height: V, ccw: n.xyzRDesc[1] }), n.xyzRDesc[1] && ja(C[c].y))) { x = void 0; for (0 > v.width ? (x = v.x + v.width) : 0 < v.width && ((x = v.x), (v.x += v.width)); x < v.x; ) x += 1; v.width = x - v.x; } } else v = p.rectPos = { x: ta(A) - V / 2, y: n.xyz[1], width: E, height: v }; p.arcPos = { start: v.x, end: v.x + v.width, angle: v.x + v.width / 2 }; } else O ? ((y = ca ? m[1] : f[1] - V / 2), (x = ca ? f[1] - m[1] : V), (v = m[0] - f[0]), (y = { y: y, x: f[0], width: v, height: x })) : (y = { x: D, y: f[1], width: E, height: v }), (y = Yo(y)), (e.shape = ha(y)); t(D) && E && ((p.rect = y), R.drawRect && F.hasComplete && ((D = n.completee - n.completes), (E = n.completeXe - n.completeXs), r ? ((v = p.rectPos), (p.rectCompletePos = O ? { x: Y(v.x, v.x + v.width, 0, 1, n.completes), y: Y(v.y + v.height, v.y, 0, 1, n.completeXe), width: D * v.width, height: E * v.height, targetBox: ha(a) } : { x: v.x + n.completeXs * v.width, y: v.y + (1 - n.completee) * v.height, width: E * v.width, height: D * v.height, targetBox: ha(a) })) : (p.rectComplete = O ? { x: Y(y.x, y.x + y.width, 0, 1, n.completes), y: Y(y.y + y.height, y.y, 0, 1, n.completeXe), width: D * y.width, height: E * y.height } : { x: y.x + n.completeXs * y.width, y: y.y + (1 - n.completee) * y.height, width: E * y.width, height: D * y.height })), y && d.push([y.x, y.y, y.width, y.height])); B.push(f); Q && n.interpPoints && w(n.interpPoints, function (a) { B.push(qa.apply(void 0, H(a))); }); R.drawArea && J.push(m); F.hasSubvalues && !r && (w(["sv", "svs", "svx", "svxs"], fa), w(["svv", "svxv"], ia)); h.coordinatesModifier && h.coordinatesModifier(g, p); m = (p.styleSet = q ? u[c].styleSet : h.getPointAttr(h.userPoints[c])).markerSize; y = N(k, ["defaultPoint", "marker", "visible"]) || !0 === N(C[c], ["marker", "visible"]); if (R.drawMarker || k.forceMarker || y) if ((F.hasMaxedMarkerLimit && !y && (m = 0), g.isRadial && "needle" === g.getBodyShapeName(wa[c]))) { if (!q) { var U = (e = h.pointBodyDGenerator) && e("needle", p), G; p.hitTest = function (a, b) { G = G || Aa(U); return G.hitTest(a, b); }; } } else (e.marker = mb(f, [m, m])), (e = e.marker.slice(0)), (f = void 0), (f = 0 === c || c === C.length - 1 ? N(Kl(g.series, c), ["marker", "offset"]) : z(N(C[c], ["marker", "offset"]), N(k, ["defaultPoint", "marker", "offset"]))) && (f = Kr(f)) && (e = Xc(e, f)), d.push(e); if (!R.isRadarColumn && d.length && !q) { d = Ea(d); var K = 15 > d[2] || 15 > d[3] ? th(d, [15, 15]) : d.slice(0); ka && !R.isRadar && ((K = uv(K, [p.xyzs])), !R.drawRect && t(aa) && ((e = 0.8 * aa), (K = th(K, O ? [0, e] : [e, 0])))); p.pathD = Cc(K); e = z(C[c].mouseTracking, N(k, ["defaultPoint", "mouseTracking"])); if (!t(e) || !0 === e) { var cb = g.getLabelHitTest(); p.hitTest = function (a, b) { return Ad(K, [a, b]) || cb(this, a, b); }; } l.setValue("bbox", c, d); } }; m = 0; for (E = C.length; m < E; m++) X(m); b(null, { isFinal: !0, xIsSorted: h.info.xIsSorted }); g.paths = { lines: I, areas: L }; g.coordinates.line = K; R.drawArea && (g.coordinates.area = c); g.coordRect = a; g.validate(!0); if (u) for (m = 0, E = wa.length; m < E; m++) if ((c = h.indexer.getValue("coordinates", m))) c.coordPrev = g.clearPrevCoord(u[m]); g.renderOrder = l.sortByNone(); g.renderOrderRev = g.renderOrder.slice(0); g.renderOrderRev.reverse(); return this; }; c.prototype.clearPrevCoord = function (a) { var b = a && a.coordPrev; b && (b.prevCoord && (this.clearPrevCoord(b), (b.prevCoord = void 0)), b.pathD && (b.pathD.clearCache && b.pathD.clearCache(!0), (b.pathD = void 0)), (b.hitTest = void 0), (a.coordPrev = void 0)); return a; }; c.prototype.setPos = function (a, c) {}; c.prototype.getShapeOptions = function (a, c) { var b = this.series; c = b.pane || b.chartArea; b = b.currentOptions.shape; c.defaultShapeOptions && (b = qd({}, b, c.defaultShapeOptions().ca)); return Gr(b, a); }; c.prototype.validate = function (a) { this.coordDirty = a ? !1 : !0; }; c.prototype.hideUnused = function () { var a = this.series, c = a.visuals; a = a.info.type; a.drawLine || a.tree || !c.line || this.hideVisual(c.line); !a.drawArea && c.area && this.hideVisual(c.area); return this; }; c.prototype.hideVisual = function (a) { a && (a.finishAnimation && a.finishAnimation(), a.attr({ opacity: 0 })); }; c.prototype.hideUnusedPointVisuals = function (a) {}; c.prototype.render_applyDynamicAttrVals = function (a, c, e) { var b = this.series; e = e || b.info.style.states[b.state] || {}; if (a.pop && 1 < a.length) { for (var d = A({}, a[0]), h = 1, k = a.length; h < k; h++) d = im(d, a[h]); a = d; } d = a.animation ? a.animation : {}; a.animation = c && c.animation ? A({}, b.getAnimationConfig(), c.animation || {}, d) : !1 !== c ? A({}, b.getAnimationConfig(), d) : A({}, { duration: 0 }, d); b.isVisible ? ((a.opacity = z(e.opacity, 1)), (a.display = "block")) : ((a.opacity = 0), (a.display = "none")); return a; }; c.prototype.render_applyDynamicAttrValsLE = function (a, c, e) { a = this.render_applyDynamicAttrVals(a, c, e); a.opacity = 1; a.display = "block"; return a; }; c.prototype.getPointIconVisual = function (a, c, e) { return this.getIconVisual(a, c, e); }; c.prototype.getIconVisual = function (a, c, e) { var b = this, d = b.series, h = d.renderer, k = e.iconVisual || {}, l = b.getIconPaths(a, c), m; c = function (c, f) { "string" === typeof l[c] && 0 === l[c].indexOf("url(") ? ((m = l[c].replace(/url\(/g, "").replace(/\)/g, "")), (f = { src: m, cx: a[0] / 2, cy: a[1] / 2, zIndex: 5, width: a[0], height: a[1] })) : (f = b.render_applyDynamicAttrValsLE([{ d: l[c], opacity: 1, zIndex: f }, {}], { animation: d.getAnimationConfig() }, {})); (k[c] = k[c] || (m ? h.renderer.element("image", f).add(n) : h.renderer.path(f).add(n))).attr(f); e.icons[c] = f.d; }; var n = (k.root = k.root || h.panel({ yAlignment: "center" })); l.base ? c("base", 2) : Ra(k.base); l.extra ? c("extra", 1) : Ra(k.extra); return k; }; c.prototype.getIconPaths = function (a, c) { return Ci(this, a, c); }; c.prototype.getIconStyles = function (a) { return Jr(this); }; c.prototype.setIconVisualAttr = function (a, c) { var b = this, d = b.series, g = b.getIconStyles(a), h; if (a) var k = a.base, l = a.extra; a = function (a) { var e = { animation: c.isStyled ? d.getAnimationConfig() : !1 }; h = b.render_applyDynamicAttrValsLE(a, {}, {}); h = A(h, e); !1 === d.isVisible && (b.modifyHiddenIconStyle(h), delete h.display, delete h.opacity); return h; }; if (g.base && k) { var m = a(g.base), n = c.icons.base; n && (m.d = n); k.attr(m); } g.extra && l && l.attr(a(g.extra)); c.isStyled = !0; }; c.prototype.modifyHiddenIconStyle = function (a) { var b = a.fill; !1 === this.series.isVisible && (a.fill && ((b = To(b, 0.8)), (b = ne(b, "v", -0.2)), (b = ma(b)), (a.fill = b)), a.stroke && (a.stroke = To(a.stroke, 0.2)), 1 < a["stroke-width"] && (a["stroke-width"] = 1)); return a; }; c.prototype.showHalo = function (a) { var b = this.series, c = b.chartArea, f = ha(c.contentRect), g = b.visuals, h = b.renderer; if (a && !b.indexer.getValue("isEmpty", a._i)) { var k = a.currentOptions.focusGlow; if (!1 !== k) { var l = k ? L(Tt(), k) : Tt(); l.width = t(l.width) ? 2 * l.width : l.width; vb(l.color, "%") && (l.color = a.replaceTokens(l.color)); tf(l) && ((k = fc({ outline: l })), A(k, { d: xa(this.haloPath(a, l)), "stroke-linejoin": "round", "pointer-events": "none", zIndex: 1 }), (a = a.visuals.body), c.panes && a && (f = rb(Ea([f, ha(a.box())]), -10)), (k.clipPath = { d: Cc(f) + k.d, "clip-rule": "evenodd" }), (f = qa(k)), (f["stroke-opacity"] *= 0.4), (k["stroke-width"] *= 0.6), (b.haloPath = k.d), (c = g.pointHalo || []), c.length || (c = g.pointHalo = [h.renderer.path().add(b.rootVisuals.pointHalo), h.renderer.path().add(b.rootVisuals.pointHalo)]), c[0].attr(k), c[1].attr(f)); } } else (c = g.pointHalo || []), c.length && w(c, function (a) { return a.attr({ d: "M0 0" }); }), (b.haloPath = ""); }; c.prototype.hideHalo = function () { this.showHalo(); }; c.prototype.hideHaloMo = function () { var a = this.series, c = a.xAxis; a = a.chartArea.tooltip.cttEnabled(a.yAxis, c); c = c && (c.currentOptions.crosshair || {}).enabled; a || c || this.hideHalo(); }; c.prototype.haloPath = function (a, c) { var b = this.series; c = c.width; var d = b.indexer.getValue("coordinates", a._i); b = b.info.hasMaxedMarkerLimit; var g = d && z(d.pathD, d.pathObj, d.meta.bodyD), h = "string" === typeof g && -1 < g.indexOf("url("), k = g.arcShape, l = !h && Np(g); if (k) return a.visuals.body.attrApplier.outlinePath(); if (h) return Cc(ha(a.visuals.body.box())); if (l || b) (a = d.meta.xy || d.xyz), (g = dc.circle(a[0] - c / 2, a[1] - c / 2, c, c)); return g; }; c.prototype.pointMouseOver = function (a, c) { var b = this.series, d = b.chart, g = d.hoveredPoint === c && this.hoveredItem === c; N(d.hoveredPoint, ["series"]); b.chartArea.debounce.clear("unmute"); (this.hoveredItem = c) && c.mouseOver(a); var h = b.translateToGlobal([a.x, a.y]), k; b.pane && (k = b.pane.getGlobalOffsets()); if (!1 === N(d.currentOptions, ["defaultTooltip", "enabled"]) && c.labelAutoHidden) { var l; (l = c.visuals.label) && l.attr({ opacity: 1 }).refresh(); } !b.chartArea.tooltip.cttEnabled(b.yAxis, b.xAxis) && b.tooltip.showTooltip(c, a, h, k); c && !g && this.showHalo(c); c && !g && ((a = Nl(c)) ? Ol(c, "", a) : ("select" !== b.state && b.setState("hover"), c.chart.highlighted && Qb(c.chart, c))); }; c.prototype.pointMouseOut = function (a, c) { var b = this.series, d = b.chart; b = b.chartArea; this.hoveredItem = void 0; !1 === N(d.currentOptions, ["defaultTooltip", "enabled"]) && c.labelAutoHidden && ((d = void 0), (d = c.visuals.label) && d.attr({ opacity: 0 }).refresh()); a = c && c.mouseOut(a); this.hideHalo(); !1 !== a && c && !1 !== N(c.currentOptions, ["states", "mute", "enabled"]) && b.debounce.defer( "unmute", function () { Qb(c.series.chart); }, 230 ); }; c.prototype.pointClick = function (a, c) { c && c.click(a); }; c.prototype.pointMouseOutAny = function () { var a; if ((a = this.hoveredItem)) return "select" !== this.series.state && this.series.setState(""), this.pointMouseOut({}, a), !0; }; return c; })(YC), Oc = { marker: Ie }, gD = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.staticSeriesBodyInfo = [oz, Er]; b.kind = "area"; return b; } K(c, a); c.prototype.contextDefaults = function () {}; c.prototype.hideUnusedPointVisuals = function (a) { a = a.visuals; Ra(a.marker); Ra(a.labelConnector); Ra(a.rectComplete); Ra(a.rect); }; c.prototype.getIconPaths = function (a, c) { var b = a[0], d = a[1]; a = Fr(this, a, c); a.extra += " L " + b + " " + d + " L0 " + d + " Z"; return a; }; c.prototype.getIconStyles = function (b) { var c = this.series.info.style.attr; b = a.prototype.getIconStyles.call(this, b); c = A(b, { extra: c.area }); b = c.extra; b.fill && !b.stroke && (b.stroke = zh(b.fill)); return c; }; return c; })(Ie), Vt = function () { return { axes: "x,y", values: "x,y", requiredData: "x,y", supportedData: "x,y,subvalue,subvalueX,complete,completeX", privateAxes: "", customAxisOptions: {} }; }, Vg = (function (a) { function c(b) { var c = a.call(this, b) || this; c.series = b; c.kind = "column"; c.typeConfig = Vt(); c.staticBodyDGetter = Ql; c.staticPointCompleteVisInfo = rz; c.staticPositionsFromAligments = pz; c.dependencyVisuals = []; c.dependencyAttrs = []; return c; } K(c, a); c.prototype.getTypeConfigDefault = function () { return Vt(); }; c.prototype.render = function (b) { a.prototype.render.call(this, b); this.renderDependencies(b); return this; }; c.prototype.setCoordinates = function (b, c) { C(this, "series.pane.isRadial") && ((this.isRadial = !0), (this.staticBodyDGetter = this.series.pane.staticBodyDGetter), (this.staticPositionsFromAligments = this.series.pane.staticPositionsFromAligments)); a.prototype.setCoordinates.call(this, b, c); return this; }; c.prototype.getParents = function (a) { var b = this, c = [], f, g = []; if (a) { if ((f = a.options("parent"))) g = f.split(","); return B(g, function (a) { return b.series.ciManager.exists(a); }); } this.eachPoint(function (a) { (f = a.options("parent")) ? ((g = f.split(",")), !b.series.ciManager.exists(g[0]) && c.push(a)) : c.push(a); }); return $a(c); }; c.prototype.renderDependencies = function (a) { var b = this, c = b.series, f = b.isHoriz(), g = c.indexer, h = c[(f ? "x" : "y") + "Axis"].isInverted() ? 1 : 0, k = function (a, b) { var c = function (a, b, c) { return la(a, b) > la(a, c) ? c : b; }, d = Yb(b.meta.shape), e = a.xyz.slice(0, 2), g = b.xyz.slice(0, 2), k = f ? 1 : 0, l = f ? 0 : 1, m = e[k] < g[k] ? 1 : -1, n = e[k]; g = g[k]; var p = la(n, g) - b.clusterSpace / 2, t = la(n, c(n, d[k], d[k + 2])), w = a.xyz[l]; a = b.xyz[l]; var z = b.xyzs[l], A, M = [(A = e)], C = function (a, b) { var c = A.slice(0); c[a] = b; M.push((A = c)); }, B = sa([z, a]), H = 5 * h; b = w + H; c = c(A[l], B[0], B[1]); e = A[l] - c; a = 0 < e ? -1 : 1; d = function (a) { void 0 === a && (a = 1); C(l, w + H / a); C(k, n + p * m); C(l, ua(z + H / a, B[0], B[1])); C(k, n + t * m); }; Kb(B, b) && a !== h ? d(1) : Kb(B, b) ? (C(l, b), C(k, n + t * m)) : 0 === e ? d(1.5) : a === h ? (C(l, c - H), C(k, g), C(l, z)) : a !== h && d(1); return hd(M, 3); }, l = [], m = function (a, b) { var c = g.getValue("coordinates", a._i); w(b, function (b) { if (b && b.series.isVisible) { var d = b.series.indexer.getValue("coordinates", b._i), e = A({ color: "#494949", width: 1, caps: { end: { type: "arrow", size: 6, concavity: 0.1 } } }, b.series.options("line")); b = A(Bb(e), { d: k(d, c), key: b.id + a.id }); l.push(b); } }); return []; }; b.eachPoint(function (a) { return m(a, b.getParents(a)); }); b.updateDeps(l, a); return b; }; c.prototype.updateDeps = function (a, c) { var b = this, d = b.series.renderer.renderer, g = b.series.rootVisuals.area; b.dependencyAttrs = B(a, function (a) { return b.render_applyDynamicAttrVals(a, c); }); a && Ub( a, b.dependencyVisuals, function (a) { var c = d.path(a).add(g); c.data.key = a.key; b.dependencyVisuals.push(c); }, function (a, b) { return b.attr(a); }, function (a) { g.removeChild(a.el); pb(b.dependencyVisuals, a); }, function (a) { return a.key; }, function (a) { return a.data.key; } ); return b; }; c.prototype.getBodyShapeName = function (a, c) { return c ? this.series.getPointMarkerType(a.currentOptions) : "square"; }; c.prototype.hideUnusedPointVisuals = function (a) { var b = a.series.options("forceMarker") || !0 === C(a.currentOptions, "marker.visible"); a = a.visuals; !b && Ra(a.marker); Ra(a.labelConnector); }; c.prototype.possibleLabelPositions = function (a, c, e, f, g) { e = this.series; c = f.meta; var b = a.currentOptions.label || {}, d = e.chartArea; d = (e.pane || d).collisionManager; e = this.isHoriz(); var l = b.rotate; b = !e && d.anyColLabelOverflow; d = ha(this.series.contentRect()); c = c.labelSize.slice(0); t(l) && ((b = !1), 90 === Math.abs(l) ? (b = !0) : 0 !== l && (c = hk(H([0, 0], c), [l, 0, 0]).slice(2))); b && ((f.meta.isVertical = !0), c.reverse()); g = this.isRadial ? g.getValue("pos", a._i) : f; g = e ? (g.xyz[0] > g.xyzs[0] ? "r" : "l") : g.xyz[1] > g.xyzs[1] ? "d" : "u"; a = dD(this, a, g); return this.staticPositionsFromAligments(this, f, g, d, c, a, b); }; c.prototype.getIconPaths = function (a, c) { return Pl(this, a, c); }; c.prototype.getIconStyles = function (a) { a = this.series; var b = a.info, c = a.getPointAttr(), f = Jr(this); if (b.hasUniqueStyles || b.type.colorByPoint) (a = c.pointAttr[""]), zc(f, a, "base.hatch", "hatch"), zc(f, a, "base.hatchPattern", "hatchPattern"); else if (((f = A(f, { base: c.pointAttr[""] })), (b = f.base.fill), (c = b.linearGradient))) { var g = c.hash; c = b.linearGradient = Ja(90); c.hash = g + "LE" + a.isVisible; } return f; }; c.prototype.getPointAnimatorOptions = function (a, c) { return (c = this.series.pane) && c.isRadial && a.coordPrev ? ("spider" === c.getRadarType() ? {} : { slice: { to: a.pathOptions, from: a.coordPrev.pathOptions } }) : {}; }; return c; })(Ie), hD = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.kind = "line"; b.staticSeriesBodyInfo = [Er]; return b; } K(c, a); c.prototype.contextDefaults = function () {}; c.prototype.render = function (b) { a.prototype.render.call(this, b); return this; }; c.prototype.hideUnusedPointVisuals = function (a) { a = a.visuals; Ra(a.marker); Ra(a.labelConnector); }; c.prototype.getIconPaths = function (a, c) { return Fr(this, a, c); }; c.prototype.getIconStyles = function (b) { var c = this.series, e = A({}, c.info.style.attr), f = a.prototype.getIconStyles.call(this, b), g = Math.max.apply( Math, H( c.chartArea .series(function (a) { return a.info.type.drawLine; }) .items.map(function (a) { return N(a.currentOptions, ["line", "width"]) || 0; }) ) ), h = 1, k = function (a, b) { void 0 === b && (b = h); return a ? Math.max(1, a * b) : a; }; c = function (a, b) { void 0 === b && (b = h); return Math.round(k(a, b)); }; 4 < g && (h = 4 / g); if ((g = e.line["stroke-width"])) if (((e.line["stroke-width"] = c(g)), (c = void 0), 2 < g && (c = e.line["stroke-dasharray"]))) { g = c.split(",").map(function (a) { return parseInt(a); }); g = Ta(g); b = Aa(b.extra.data.attrs.d).length(); var l = h; l = Math.min(l, b / (2.2 * g)); e.line["stroke-dasharray"] = c .split(",") .map(function (a) { return k(parseInt(a), l); }) .join(","); } return A(f, { extra: Ga(e.line, ["caps"]) }); }; return c; })(Ie), Wt = function () { return { axes: "x,y", values: "x,open,high,low,close" }; }, iD = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.kind = "candlestick"; b.typeConfig = Wt(); b.pointValueParser = tz; b.staticBodyDGetter = Ql; return b; } K(c, a); c.prototype.getTypeConfigDefault = function () { return Wt(); }; c.prototype.pointArrayExpander = function (a) { return { x: a[0], open: a[1], high: a[2], low: a[3], close: a[4] }; }; c.prototype.hideUnusedPointVisuals = function (a) { a = a.visuals; Ra(a.rect); Ra(a.marker); Ra(a.labelConnector); }; c.prototype.getIconPaths = function (a, c) { var b = a[1] / 2, d = a.slice(0), g = Math.round(0.4 * a[0]), h = g / 2; d[0] -= g; var k = Pl(this, d, c); w(k, function (a, b) { a = a.isPath ? a : Aa(xa(a)); k[b] = a.translate(function (a) { return [a[0] + h, a[1]]; }); }); k.extra = "M0 " + b + " L " + h + " " + b; k.extra += "M" + (a[0] - h) + " " + b + " L" + a[0] + " " + b + " "; return k; }; c.prototype.getIconStyles = function (a) { a = this.series.info.style.base.color; return { base: { fill: a, stroke: ia("outline", a), "stroke-width": 1 }, extra: { fill: "none", stroke: ia("outline", a), "stroke-width": 1 } }; }; return c; })(Vg), Xt = function () { return { axes: "x,y", values: "x,open,high,low,close", customAxisOptions: { z: { visible: !1 } } }; }, jD = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.kind = "ohlc"; b.typeConfig = Xt(); b.pointValueParser = uz; b.staticBodyDGetter = vz; return b; } K(c, a); c.prototype.getTypeConfigDefault = function () { return Xt(); }; c.prototype.pointArrayExpander = function (a) { return { x: a[0], open: a[1], high: a[2], low: a[3], close: a[4] }; }; c.prototype.hideUnusedPointVisuals = function (a) { var b = a.visuals; Ra(b.rect); !a.series.options("forceMarker") && Ra(b.marker); Ra(b.marker); Ra(b.labelConnector); }; c.prototype.getIconPaths = function (a, c) { c = a[1] / 2; var b = 0.3 * a[0], d = { extra: "" }; d.extra = "M0 " + c + " L " + a[0] + " " + c; d.extra += "M" + b + " 0 L" + b + " " + c; d.extra += "M" + (a[0] - b) + " " + a[1] + " L" + (a[0] - b) + " " + c; return d; }; c.prototype.getIconStyles = function (a) { return { extra: { fill: "none", stroke: ia("outline", this.series.info.style.base.color), "stroke-width": 1 } }; }; return c; })(Vg), kD = (function (a) { function c(b) { var c = a.call(this, b) || this; c.series = b; c.kind = "variwide"; b.chart.typeContextOptions = { axes: { x: { spacingPercentage: 0, scale: { type: "stackedFull" } } } }; return c; } K(c, a); return c; })(Vg), Yt = function () { return { axes: "x,y,z", values: "x,y,z", requiredData: "x,y,z", supportedData: "x,y,z,subvalue,subvalueX", customAxisOptions: { z: { visible: !1 } } }; }, lD = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.kind = "bubble"; b.typeConfig = Yt(); b.staticBodyDGetter = xz; return b; } K(c, a); c.prototype.getTypeConfigDefault = function () { return Yt(); }; c.prototype.pointArrayExpander = function (a) { return { x: a[0], y: a[1], z: a[2] }; }; c.prototype.setCoordinates = function (b, c) { var d = this.series; a.prototype.setCoordinates.call(this, b, c); this.renderOrder = d.indexer.sortBy("z", !1) || d.indexer.sortBy("ze", !1); this.renderOrderRev = this.renderOrder.slice(0); this.renderOrderRev.reverse(); return this; }; c.prototype.getIconPaths = function (a, c) { return Ci(this, a, c, "circle"); }; c.prototype.possibleLabelPositions = function (b, c, e, f, g) { c = c || f.pathD || f.meta.bodyD; var d = f.meta, k = f.xyz, l = d.labelSize; c = or(Aa(c), l, k); k = []; c ? ((c.isInside = !0), k.push(c)) : (d.marker || (d.marker = [0, 0, 0]), (d.marker[2] = f.xyzs[2]), (k = a.prototype.possibleLabelPositions.call(this, b, "", e, f, g))); return k; }; c.prototype.hideUnusedPointVisuals = function (a) { var b = a.visuals; Ra(b.rect); a.series.options("forceMarker") || a.options("marker.visible") || Ra(b.marker); Ra(b.labelConnector); }; return c; })(Ie); Oc.area = gD; Oc.column = Vg; Oc.line = hD; Oc.candlestick = iD; Oc.ohlc = jD; Oc.variwide = kD; Oc.bubble = lD; var Vm, Db, fj, gj = function () { return { radius: 2, shadow: !0, boxVisible: !0, fill: "auto", outline: { color: "auto", width: 1 }, transparency: 0.2, enabled: !0, timeout: 1200, margin: 7, padding: 5, followCursor: "auto" }; }, mD = function (a) { return a.pop ? a .map(function (a) { return a.id; }) .join("") : a.id; }, Zt = (function () { function a(a) { var b = this; this.series = a; this.kind = "Tooltip"; this.currentOptions = gj(); this.moveTooltip = Ni(function (a, c, d) { var e = b.chart.rootVisuals.tooltip; if (e) { var f = e.rootPanel.el; f && ((a = b.position(a, b.targetPanel(), e.bbox(), c, !0, d).outBox), f.attr({ animation: { duration: 10 }, transform: { translate: a.slice(0, 2) } })); } }, 10); var c = "Series" === a.kind ? a.chartArea : a; this.chart = a.chart; this.curCA = c; this.chart.tooltipRef = this; this.currentOptions = A(gj(), c.currentOptions.defaultTooltip || this.chart.currentOptions.defaultTooltip || {}); this.isVisible = !1; this.debounce = new Ae(); } a.prototype.options = function (a) { a = Sa(a); this.setOptions(a); return this; }; a.prototype.setOptions = function (a) { this.currentOptions = A(gj(), this.curCA.currentOptions.defaultTooltip || this.chart.currentOptions.defaultTooltip || {}, a); return this; }; a.prototype.targetMetrics = function (a) { var b = a.coord(), c = this.currentOptions.margin || 0, e = C(b, "meta.label"); a = a.bbox(); 4 === C(b, "meta.marker.length") && (a = Ea([a, b.meta.marker])); return { xyz: b.xyz, xyzs: b.xyzs, elBox: rb(a, -c), labelBox: e ? rb(e, -c) : e }; }; a.prototype.showTooltip = function (a, b, d, e) { var c = this, g = this.currentOptions, h = this.debounce, k = this.isFollowCursor(a, b); a && a !== Vm && !1 !== g.enabled && !0 !== g.combined ? ((Vm = a), h.clear("showtimeout"), h.clear("hidetimeout"), k ? this.show(a, b, d, e) : h.defer( "showtimeout", function () { return c.show(a, b, d, e); }, 20 )) : k && this.moveTooltip(a, d, e); }; a.prototype.isFollowCursor = function (a, b) { var c = this.currentOptions; if ("boolean" === typeof c.followCursor) return c.followCursor; if ("touch" === b.device || c.combined || !a.series) return !1; a = a.series.info.type; return !a.isAnnotation && (a.isShape || a.isMapLayer || a.tree); }; a.prototype.hideTooltip = function (a) { var b = this, c = this, e = this.series, f = this.debounce; a = z(a, this.currentOptions.timeout, 1200); f.clear("showtimeout"); f.clear("hidetimeout"); Vm = null; if (!0 !== e.options("mouseTracking.sticky")) { var g = C(this.chart.rootVisuals, "tooltip.rootPanel.el"); g && f.defer( "hidetimeout", function () { Db === c && (null === g || void 0 === g ? void 0 : g.attr({ opacity: 0, animation: { duration: 40 } }), setTimeout(function () { return b.hide(); }, 40)); }, a ); } }; a.prototype.defaultAnimation = function (a) { return { duration: a ? 0 : 40 }; }; a.prototype.hide = function () { var a = this.chart.rootVisuals.tooltip; a && a.isVisible && (a.visible(!1), (a.isVisible = !1), (fj = ""), this.chart.renderer.refresh()); Db === this && (Db.debounce.clear("hidetimeout"), (Db = void 0)); }; a.prototype.translateToGlobal = function (a) { var b = this.series.translateToGlobal(a); 4 === a.length && b.push.apply(b, H(a.slice(2, 4))); return b; }; a.prototype.correctChartBox = function (a) { a = this.translateToGlobal(a); a[0] = -a[0]; a[1] = -a[1]; return a; }; a.prototype.correctCABox = function (a) { return this.series.correctRootBox(a); }; a.prototype.targetPanel = function () { return this.series.rootVisuals.points; }; a.prototype.color = function (a) { return a.tokenValue("%color"); }; a.prototype.text = function (a) { var b = a.series; b = z(C(a.currentOptions, "tooltip"), C(b.currentOptions, "defaultPoint.tooltip"), b.getAutoTooltipText(a), b.info.labelTextInfo.tooltip); Fb(b) && (b = b(a)); return a.replaceTokens(b); }; a.prototype.show = function (a, b, d, e) { this.preShow(); var c = this.chart, g = mD(a), h = (a.pop ? a[0] : a).series; g += h.id || h.currentOptions.name || h.currentOptions.id || ""; var k = fj === g, l = this.targetPanel(), m = this.currentOptions; if (!k) { h = c.rootVisuals.tooltip; if (!k) { var n = this.text(a), p = this.color(a), q = C(m, "outline.color"); q = A({ style: { "pointer-events": "none" } }, m, { label: { text: n, align: this.chart.isRtlCulture ? "right" : "left" }, outline: { color: "auto" === q ? ia("outline", p) : q } }); q.margin = 0; if (h) { var r = h.isVisible; h.visible(!0); (c = h.rootPanel.el) && c.attr && c.attr({ opacity: 1 }); } else h = c.rootVisuals.tooltip = new nD(c, A({ asHTML: !1, autoWrap: "none" }, q)).add(c.rootVisuals.front); h.options(q, !1); h.rootPanel.setPreliminarySize && h.rootPanel.setPreliminarySize(!0); } c = h.bbox(); m = this.isFollowCursor(a, b); l = this.position(a, l, c, d, m, e); e = l.xy; l = l.outBox; k ? h.options({ position: e.join(",") }) : ((k = h.chart.rootVisuals.itemsBox.getGlobalBboxArray()), (e = [l[0] - k[0], l[1] - k[1]]), (q = q.fill), c[3] && ((c = Gc(c)), (l = this.currentOptions), void 0 === l && (l = {}), (k = 1 - (l.opacity || 1)), (l = t(l.radius) ? l.radius / 4 + 3 : 5), (c = Math.round((l / c.height) * 100)), (p = Lb(p, k)), (p = jb(Ja(90), [ ["0%", p], ["0%", p], [0 + c + "%", V("#f0f2fd", k)], [0 + c + "%", V("#ffffff", k)], [100 - c + "%", V("#ffffff", k)], [100 - c + "%", V("#e6e9fd", k)], ["100%", p], ["100%", p], ]))), h.options({ fillShading: !1, fill: "auto" === q ? p : q, position: e.join(",") }, r ? { animation: this.defaultAnimation() } : { animation: this.defaultAnimation(!0) }), (Db = this), (fj = g), this.postShow(a, b, d)); fj = g; } }; a.prototype.position = function (a, b, d, e, f, g) { var c = "TooltipCa" === this.kind, k = !!this.series.pane, l = this.curCA.rootVisuals.content, m = N(this.chart.userOptions, ["defaultTooltip", "margin"]), n = this.currentOptions.margin; f && !t(m) && (n = 20); if (f) g && ((e[0] -= g.x), (e[1] -= g.y)); else { var p = this.targetMetrics(a); if (!p) return { xy: [0, 0], outbox: d }; } var q = p ? p.xyz : e, r = p ? p.xyzs : p; m = p ? p.elBox : mb(q, [2 * n, 2 * n]); var u = p && p.labelBox ? Ea([m, p.labelBox]) : void 0, x = r && q[0] !== r[0]; ha(("chartArea" === this.series.kind ? this.series.rootVisuals.content : this.series.chartArea.rootPanel).getGlobalBbox()); var v = rb(ha(this.chart.rootPanel.getGlobalBbox()), 0), y = this.correctCABox(ha(l.getGlobalBbox())); l = this.correctChartBox(ha(this.chart.rootPanel.getGlobalBbox())); var D = k ? this.correctCABox(ha(this.chart.rootPanel.getGlobalBbox())) : v, E = k ? D : l.slice(0); k || w(this.curCA._axes, function (a) { if (a.isVisible) { a = a.sideIndex(); var b = Yb(y); switch (a) { case 0: E = bk(E, b[1]); D = bk(D, b[1]); break; case 1: E = ck(E, b[2]); D = ck(D, b[2]); break; case 2: E = dk(E, b[3]); D = dk(D, b[3]); break; case 3: (E = ak(E, b[0])), (D = ak(D, b[0])); } } }); b = md(b, x ? [(q[0] + r[0]) / 2, q[1]] : q, 1); b = [b[0] - d[2] / 2, b[1] - d[3] - n]; b = f ? b : this.translateToGlobal(b); n = b.slice(0); n.push.apply(n, H(d.slice(2))); r = "inCenter"; q = "outTop"; if ( m && (c && (this.curCA.isHoriz ? ((q = e[1] < l[3] / 2 ? "outBottom" : "outTop"), (r = "inMiddle")) : ((r = e[0] < l[2] / 2 ? "outRight" : "outLeft"), (q = "inMiddle"))), (x = f ? m : this.translateToGlobal(m)), (n = he(n, x, r, q).box), !c && !f && ((x = (a[0] || a).series.visualizer), (v = void 0), p && p.labelBox && (v = this.possiblePositions(a[0] || a, d, u, E, x)), (v && 0 !== v.length) || (v = this.possiblePositions(a[0] || a, d, m, E, x)), 0 < v.length)) ) { var F = !0; n = k ? v[0] : this.translateToGlobal(v[0]); xv(this.translateToGlobal(m), Zc(n, D)) && (F = "forced" !== v[0][4]); } n = Zc(n, D); m && !c && !F && Ad(n, e) && ((q = "outTop" === q ? "outBottom" : "inMiddle"), (a = n.slice(0)), (x = f ? m : this.translateToGlobal(m)), (n = he(n, x, r, q).box), (n = Zc(n, D)), f && Ad(n, e) && ((f = l[2] - e[0]), e[0] > n[2] || f > n[2] ? ((r = e[0] > l[2] / 2 ? "outLeft" : "outRight"), (n = he(n, x, r, q).box), (n = Zc(n, D))) : (n = a))); g && ((n[0] += Math.round(g.x)), (n[1] += Math.round(g.y))); return { xy: b, outBox: n }; }; a.prototype.possiblePositions = function (a, b, d, e, f) { a = a.series; var c = a.chartArea.collisionManager; f = a.yAxis; var h = a.isStacked, k = a.info.type, l = !1; k.drawRect || (l = !0); var m = function (a) { return a.split(",").map(function (a) { a = a.split("-"); return { align: "out" + a[0], vAlign: "out" + a[1] }; }); }, n = m("center-top,center-bottom,left-middle,right-middle"); l && n.push.apply(n, H(m("left-top,right-top,left-bottom,right-bottom"))); k.drawRect && "horizontal" === a.ctSv("chartType") && ((n = n.map(function (a) { return Nc(a, !0); })), f && !f.isInverted() && (n = n.map(function (a) { return Nc(a); }))); var p = function (a) { return $c(e, a); }; a = n.map(function (a) { return he(H([0, 0], b.slice(2)), d, a.align, a.vAlign).box; }); f = a.filter(p).filter(function (a) { return p(a) && h ? !c.collideLabels(a) : !c.collideAll(a); }); if (!f.length) { if (p(a[0])) return a[0].push("possible"), [a[0]]; a[0].push("forced"); f = [a[0]]; 1 < a.length && p(a[1]) && (a[1].push("possible"), f.push(a[1]), f.reverse()); } return f; }; a.prototype.preShow = function () { Db && Db.chart !== this.chart && Db.hide(); Db = this; }; a.prototype.hideActiveTooltip = function (a) { Db && (a ? Db && a === Db.chart && Db.hide() : Db.hide()); }; a.prototype.postShow = function (a, b, d) { "touch" === b.device && this.hideTooltip(8e3); this.isVisible = !0; this.chart.chartAreaSet.items[0].debounce.clear("clickoff"); this.chart.tooltipRef = this; }; a.prototype.cttEnabled = function (a, b) { var c = this.currentOptions, e = c.combined, f = a.currentOptions.crosshair || {}; a = b && b.options("crosshair.enabled"); f = f.enabled; if (c.enabled) return e ? !0 : t(e) ? e : !0 !== a || !b || f ? !1 : a; }; return a; })(), oD = (function (a) { function c(b) { var c = a.call(this, b) || this; c.chartArea = b; c.kind = "TooltipCa"; return c; } K(c, a); c.prototype.color = function (a) { return "#f0f0f0"; }; c.prototype.targetMetrics = function (b) { var c = this, e = this.chartArea.isHoriz; b = ea(b, function (a) { return !a.series.indexer.getValue("isEmpty", a._i); }).map(function (b) { return a.prototype.targetMetrics.call(c, b); }); var f = b.map(function (a) { return a.xyz; }); f.push.apply( f, H( b.map(function (a) { return a.xyzs; }) ) ); var g, h, k = function (a) { var b = sa(f, function (b) { return b[a]; }); g = b[0]; h = b[b.length - 1]; }; e ? k(0) : k(1); if (b.length) return { xyz: h, xyzs: g, elBox: Ea( b.map(function (a) { return a.elBox; }) ), labelBox: Ea( b.map(function (a) { return a.labelBox; }) ), }; }; c.prototype.translateToGlobal = function (a) { var b = this.targetPanel().getGlobalBbox(); b = [a[0] + b.x, a[1] + b.y]; 4 === a.length && b.push.apply(b, H(a.slice(2, 4))); return b; }; c.prototype.correctCABox = function (a) { return a; }; c.prototype.targetPanel = function () { return this.chartArea.rootVisuals.content; }; c.prototype.defaultAnimation = function (a) { return { duration: a ? 0 : 40 }; }; c.prototype.text = function (b) { var c = this; if (b.length) { var e = Dy(b), f = b[0].chart.options("defaultTooltip"); f = C(f, "label.text") || "%xValue
    %points"; var g = void 0; e.points = b .map(function (b) { return a.prototype.text.call(c, b); }) .filter(function (a) { return O(a) && a.trim().length; }) .join("
    "); g = "function" === typeof f ? f(b) : f; return wi(g, e); } }; return c; })(Zt), nD = (function (a) { function c() { return (null !== a && a.apply(this, arguments)) || this; } K(c, a); c.prototype.defaultOptions = function () { var a = C(this.chart.currentOptions, "defaultTooltip"); return A(gj(), a); }; c.prototype.triggerOptionsApplied = function () {}; return c; })(ej), $t = function () { return { mouseTracking: { sticky: !1 }, markerLimit: 110, opacity: 0.9, defaultPoint: {} }; }, Wm = function (a) { return !1 !== a.options("mouseTracking.enabled") && !1 !== a.options("mouseTracking"); }, Xm = (function (a) { function c(b, c) { var d = a.call(this, b.chart, c, [b, c]) || this; d.chartArea = b; d.kind = "Series"; d.isVisible = !0; d.legendEntries = []; d.isStacked = !0; d.visuals = { panel: void 0, line: void 0, area: void 0, pointHalo: void 0 }; d.zIndex = 0; d.cpbIndexOffset = 0; d._points = []; d.indexer = new Fl({ svv: { flatten: !0 }, svxv: { flatten: !0 } }); d.userPoints = []; d.dataPoints = []; d.dirty = !0; d.state = ""; d.seriesDirty = new pD(d); d.chart = b.chart; d.renderer = b.renderer; d.ctManager = b.ctManager; d.initFP(); c && d.options(c, !1); d.tooltip = new Zt(d); return d; } K(c, a); c.prototype.init = function () { for (var a = 0; a < arguments.length; a++); }; c.prototype.getCaSeriesPoints = function () { var a = this, c = this.chartArea.userOptions.series; if (c && c.length) return ( (c = S(c, function (b) { return b.name === a.name; })) && c.points ); }; c.prototype.initFP = function () { var a = this; this.points = Xa( wb, function () { return a._points; }, function (b) { a.options({ points: b }); }, { push: function (b, c) { var d = N(c, ["shift"]); !0 === d && a.userPoints.shift(); b.pop && (b = a.visualizer.pointArrayExpander(b)); a.userPoints.push(b); var e = a.getCaSeriesPoints(); e && e.push(b); a.visualizer.updateInfo = { action: "splice", at: a.userPoints.length - 1, count: 1, del: 0, shift: d }; a.chart.renderer.finishAnimations(); a.invalidate().refresh(c); a.visualizer.updateInfo = void 0; }, splice: function (b, c, f, g) { var d; (d = a.userPoints).splice.apply(d, H([b, c], f)); (d = a.getCaSeriesPoints()) && d.splice.apply(d, H([b, c], f)); a.visualizer.updateInfo = { action: "splice", at: b, del: c, count: f.length }; a.chart.renderer.finishAnimations(); a.invalidate().refresh(g); a.visualizer.updateInfo = void 0; }, } ); }; c.prototype.syncLegendItems = function () { var a = this, c = this, e = c.info.type.colorByPoint, f = c.chartArea, g = c.chart, h = c.currentOptions.legendEntry || {}, k = c.legendEntries, l = g.requestLegend(this), m = c.ctmIsType("map"), n = function () { c.legendEntry ? c.legendEntry.setColumns() : (c.legendEntry = l.addEntry(a, c._i)); }, p = function () { c.legendEntry && (c.legendEntry.destroy(), (c.legendEntry = void 0)); }, q = function (a) { a.syncLegendItems(c.legendEntry); a.legendEntry && (k.push(a.legendEntry), a.legendEntry.setColumns()); }, r = function () { c.points().each(function (a) { a.legendEntry && (a.legendEntry.destroy(), (a.legendEntry = void 0)); }); c.legendEntries = []; }; if (!((!c.isVisible && g.isRendered && c.visualizer.isRendered) || (m && c.currentOptions.isBaseLayer))) { f.chartAreaSet.enumerateData(); var u = !1 !== N(c.chartArea.currentOptions, ["legend", "visible"]); if (e) { !x && c.setPoints(); var x = !0; } if (e && u && !1 !== c.options("defaultPoint.legendEntry.visible")) (k = c.legendEntries = []), c.points().each(q), !0 === h.visible ? n() : p(); else if ((u && !1 !== h.visible ? n() : p(), c._points.length && c._points[0].legendEntry && r(), c.info.hasUniqueStyles || k.length)) !x && c.setPoints(), (x = !0), c.points().each(function (a) { u && !0 === a.options("legendEntry.visible") ? q(a) : a.legendEntry && (a.legendEntry.destroy(), (c.legendEntries = ea(k, function (b) { return b !== a.legendEntry; })), (a.legendEntry = void 0)); }); } }; c.prototype.iconName = function () { var a = this; if (!a._iconName) { var c = function (a) { return !a || (0 !== a.size && "none" !== a.type); }, e = function (a) { return "system/default/" + a; }, f = function () { var b = a.points(0); return b && b.currentOptions.marker; }, g = N(a.currentOptions, ["defaultPoint", "marker"]); c = !c(g) || !c(f()); f = this.info.type; a._iconName = f.drawArea ? e(c ? "areaSolo" : "area") : f.drawLine ? e(c ? "lineSolo" : "line") : f.drawMarker ? e("circle") : e("square"); } return a._iconName; }; c.prototype.getIconVisual = function (a, c, e) { c === this && (c = void 0); return this.visualizer.getIconVisual(a, c, e); }; c.prototype.styleIconVisual = function (a, c) { a && this.visualizer.setIconVisualAttr(a, c); }; c.prototype.setAxes = function () { var a = this, c = a.options(), e = a.visualizer.getTypeConfig(), f = e.customAxisOptions || {}, g = e.privateAxes || ""; e = e.axes.length ? e.axes.split(",") : []; var h; w(e, function (b) { h = b + "Axis"; var d, e = a.chartArea.axConfList, k = A({}, f[b]); (d = a[h]) && (d = d.parentAxis || d); var p = a.userOptions[h], q = p || c[h] || (d ? d.id : void 0); if ((d = vb(g, b) && (!d || !d.currentOptions.isPrivate))) (q = qa(e[b][0])), p && q.id !== p && (q = {}), delete q.id, (k = A(k, q)), (k.isPrivate = !0), (q = p || de(6)); p = a[h]; b = a[h] = a.chartArea.requestAxis(a, b, q, k); b.isPrivate = d; p && p.isPrivate && p.id !== b.id && p.destroy(); Z(a.currentOptions, h, b.id); }); return this; }; c.prototype.assignAxes = function () { var a = this, c = this.visualizer.getTypeConfig().axes.split(","), e = this.chartArea.axConfList, f, g, h, k = this.options(); w(c, function (b) { f = b + "Axis"; e[b] = e[b] || []; if ((g = k[f])) "object" === I(g) && ((h = zb(g)), e[b].push(g), (k[f] = h)); else if ((g = z(e[b][0], a.chartArea.chartAreaSet.freeAxes[b]))) k[f] = g.id; }); }; c.prototype.reIndexStringVals = function (a) { var b = this.indexer, c = a.toPosition, f = [a.prefix]; f.push.apply(f, H(a.usedDataKeys)); f = $a(f); a = b.data; w(f, function (a) { if (vb(b.uniqTypes[a], "string")) { var d = b.getKey(a); b.reset(a); for (var e = 0, f = d.length; e < f; e++) { var g = {}; g[a] = c(d[e]); b.indexKeys([a], g, e); } } }); if (2 === gc(["ye", "ys"], f).length && a.ys && a.ys.length) { b.reset("yr"); f = 0; for (var g = a.ys.length; f < g; f++) b.indexKeys(["yr"], { yr: a.ye[f] - a.ys[f] }, f); } this.seriesDirty.pointIndex(!1); }; c.prototype.getFormatInfo = function () { var a = this, c = {}, e, f = this.visualizer.getTypeConfig().axes.split(","), g = this.chart.currentOptions.defaultCultureName; g && (c.culture = g); w(f, function (b) { (e = a[b + "Axis"]) ? (c[b] = e.getFormatInfo()) : (c[b] = {}); }); return c; }; c.prototype.options = function (a, c) { var b = !0, d = this.optionsGetter(a); if ("NotGetter" !== d) return d; d = pa(a); var g = 1 === d.length; if ("object" === typeof a.mapData && (this.setMapData(a.mapData), g)) return this; if (0 < gc(d, Or).length) { var h = g; L(this.userOptions, a); L(this.currentOptions, a); this.visualizer && (t(a.muted) && "select" !== this.state ? this.setState(a.muted ? "mute" : "") : t(a.selected) && this.select(a.selected)); } if (!h) { t(a.visible) && ((this.isVisible = a.visible), g && (b = !1), this.chart.isRendered && this.legendEntry && this.legendEntry.updateCheckbox(this.isVisible)); if (a.points || a.emptyPointMode) this.seriesDirty.points(!0), this.seriesDirty.pointIndex(!0), this.seriesDirty.resetCache(); this.userPoints = a.points || this.userPoints; delete a.points; a = this.normalizeOptions(a); (a.defaultPoint || a.firstPoint || a.lastPoint) && this.seriesDirty.points(!0); a = L(this.userOptions, a); this.name = a.name || ""; this.setOptions(); this.type = this.ctManager.settingVal("seriesType", this.options()); this.setType(b); if (!1 !== c) { c = this.normalizeUpdateOpt({ animation: this.currentOptions.animation }, c); b && this.chartArea.invalidate(); this.chart.redraw(c); var k = !0; } b && this.chart.updateSideItems(c); } this.chart.triggerOptionsApplied("series", this); !k && this.afterUpdate(c); return this; }; c.prototype.normalizeArrPoints = function () { var b; if ((b = this.userPoints)) { var c = I(b); if ("string" === c && 0 === b.indexOf("JSC.points")) this.userPoints = Nj(b); else if ("object" === c && b.data) this.userPoints = np(b); else if (b.length) { c = 0; for (var e = b.length; c < e; c++) { var f = b[c]; f.pop ? (b[c] = this.visualizer.pointArrayExpander(f)) : "number" === typeof f ? (b[c] = { y: f }) : a.prototype.normalizeOptions.call(this, b[c], "map,attributes"); } this.userPoints = b; } } }; c.prototype.setType = function (a) { var b = this.options(), c = this.ctManager; "gauge" === b.type && (this.type = b.type = "gauge marker"); var f = c.settingVal("seriesType", b); c = c.settingVal("chartType", b); "organization" === c && (this.type = f = b.type = "annotation"); f = b = f || this.type || f || c; f = J(Oc, f) ? Oc[f] : Ie; (this.visualizer && this.visualizer.kind === b) || ((this.visualizer = new f(this)), this.setOptions(), this.assignAxes()); "calendar" === this.visualizer.kind && (this.isStacked = !1); this.visualizer.getTypeConfig(!0); this._ctmIsTypeCache = this._ctSvCache = void 0; this.normalizeArrPoints(); !1 !== a && this.setData(); }; c.prototype.normalizeOptions = function (b) { b = a.prototype.normalizeOptions.call(this, b); pw(b, "size", ["min", "max"]); cp(b, "emptyPointMode"); var c = b, e, f; "undefined" !== (f = I((e = C(c, "animation.easing")))) && "string" === f && Z(c, "animation.easing", On(e)); return b; }; c.prototype.defaultOptions = function () { var a = this.chart.options("navigator.enabled"); return A(a ? A($t(), { line: { width: 2 } }) : $t(), { animation: this.chart.options("animation") }); }; c.prototype.contextOptions = function () { return this.visualizer ? this.visualizer.contextDefaults() : void 0; }; c.prototype.setOptions = function () { var a = this.chart.options("navigator.enabled"), c = this.normalizeOptions(this.chart.currentOptions.defaultSeries || {}), e = (this.currentOptions = A({}, this.defaultOptions(), this.contextOptions(), c, this.userOptions)); a && "line" === this.ctManager.settingVal("seriesType", e) && (this.currentOptions = A(e, { defaultPoint: { marker: { type: "circle", color: "none", outline: { width: 0 } }, states: { hover: { marker: { outline: { width: 2 } } } } } })); c = this.ctManager; a = this.ctSv("gaugeType"); if ("gauge" === c.settingVal("chartType", e)) { c = c.curCtDst(e); var f = c.dst.explicit || ""; c = vb((c.ct || {}).explicit || "", "seriesType"); e = e.type || ""; var g = vb(e, "gauge"); f = -1 !== f.indexOf("seriesType"); var h = "circular" === a ? "marker" : "column"; if (!c && !f) if ("circular" === a) { g && !f && ((h = e + h), (this.currentOptions.type = h)); var k = { type: h, defaultPoint: { marker: { type: "needle", length: 0.8 } } }; } else "linear" === a && (g && !f && ((h = e + h), (this.currentOptions.type = h)), (k = { type: h })); } k && qd(this.currentOptions, k); Ll(this); return this; }; c.prototype.ctSv = function (a) { this._ctSvCache || (this._ctSvCache = this.ctManager.getSettingChecker(this.currentOptions)); return this._ctSvCache(a); }; c.prototype.ctSvIs = function (a, c) { return this.ctSv(a) === c; }; c.prototype.ctmIsType = function (a) { this._ctmIsTypeCache || (this._ctmIsTypeCache = this.ctManager.getIsTypeChecker(this.currentOptions)); return this._ctmIsTypeCache(a); }; c.prototype.correctRootBox = function (a) { var b = this.chart.navigator; if (this.pane) { var c = this.pane.getGlobalOffsets(); a[0] -= c.x; a[1] -= c.y; } b && ((a[1] += b.defaults.toolbarHeight), (a[3] -= b.defaults.toolbarHeight)); return a; }; c.prototype.setInfo = function () { var a = this.ctManager, c = this.options(), e = a.hasSetting, f = function (a) { return e("behavior", a, c); }, g = a.settingVal("chartType", c), h = a.settingVal("seriesType", c); "organization" === g && (this.type = h = c.type = "annotation"); a = { seriesType: h, drawMarker: f("drawMarker"), drawArea: f("drawArea"), drawRect: f("drawRect"), drawLine: f("drawLine") || "organization" === g, colorByPoint: f("colorByPoint") || t(c.palette), colorByPointLocal: t(c.palette), snapToZero: f("snapToZero"), drawSubvalue: f("drawSubvalue"), noNameGrouping: f("noNameGrouping"), tree: f("tree"), varyPalette: f("varyPalette"), labelConnector: f("labelConnector"), clusters: f("clusters"), noPos: f("noPos"), isMapLayer: a.isMapLayer(this), isAnnotation: f("annotation"), isShape: "visualshape" === a.settingVal("seriesLayout", c), isPie: "pie" === g, isRadar: "radar" === g, hasNeedles: "gauge" === g && "marker" === h && "needle" === N(c, ["defaultPoint", "marker", "type"]), roundCaps: this.ctSvIs("columnType", "roundcaps"), isRadarColumn: !1, }; "line" === N(c, ["map", "type"]) && ((a.drawMarker = !1), (a.drawArea = !1), (a.drawLine = !0)); if (a.isPie || c.isMerged) a.colorByPoint = !0; a.isRadar && a.drawRect && (a.isRadarColumn = !0); "gauge" === g && (a.snapToZero = !0); f = N(this, ["info", "style"]); this.info = { type: a, hasSubvalues: !1, hasComplete: !1, hasYRanges: !1, hasUniqueStyles: !1, hasMaxedMarkerLimit: !1, data: {}, style: f || {}, xIsSorted: !0, labelTextInfo: {}, map: this.info ? this.info.map : {} }; if ("object" === I(c.palette || this.chart.palette) || "heatmap" === g) this.info.usesSmartPalette = !0; }; c.prototype.setDataInfo = function (a) { var b = this.visualizer, c = this.chart, f = this.info, g = f.type, h = this.userPoints, k = h.length, l = this.indexer, m = 0, n = b.pointValueParser, p = b.pointDataKeys || Js; if (this.seriesDirty.pointIndex() || a) { this._catCache = []; t(this._i) || this.chartArea.chartAreaSet.enumerateSeries(this); g.clusters && ((this.zAxis && "stacked" === N(this.zAxis.currentOptions, ["scale", "type"])) || "stacked" === N(this.chart.currentOptions, ["zAxisScaleType"]) || "stacked" === N(this.chart.currentOptions, ["zAxis", "scale", "type"])) && ((g.clusters = !1), (g.zStacked = !0)); this.prevCoords = l.data.coordinates || this.prevCoords; var q = 0 === l.getAllKeys.length; l.reset(); a = void 0; var r = !0; !this.isVisible && !q && c.isRendered && this.isStacked && (a = { y: 0 }); q = this.cpbIndexOffset; var u = function (a) { return a; }, x; c = void 0; if ((c = this.currentOptions.defaultPoint)) if ((x = c.subvalue)) u = function (a) { return a.subvalue ? a : A(a, { subvalue: x }); }; for (; m < k; m++) { var v = h[m]; this.setLegendEntryVisibility(v); zb(v); v = a ? A({}, v, a) : v; u(v); v._i = m; g.colorByPoint && (v.cpbIndex = z(v.cpbIndex, g.colorByPointLocal ? m : q++)); v = n(this, v, p, b.skipSubvalues); l.indexObject(v, m); m && r && t(v.x) && nb(v.x) && v.x < l.data.x[m - 1] && (r = !1); } f.hasYRanges = !1; l.hasAllKeys(["y", "ys"]) && ((g.snapToZero = !1), (f.hasYRanges = !0)); l.hasAllKeys(["ys", "ye"]) && !l.hasKey("y") && ((g.snapToZero = !1), (f.hasYRanges = !0)); this.currentOptions.isPreview && (g.snapToZero = !1); f.hasMaxedMarkerLimit = g.drawMarker && k > this.currentOptions.markerLimit; f.xIsSorted = r; l.hasAnyKeys(["subvalue", "subvalueX"]) && (f.hasSubvalues = !0); l.hasAnyKeys(["complete", "completee", "completeX", "completeXe"]) && (f.hasComplete = !0); b = void 0; g.varyPalette ? (b = !0) : l.hasAnyKeys(["color", "outline", "marker", "label", "fill"]) ? (b = !0) : "candlestick" === g.seriesType ? (b = !0) : "ohlc" === g.seriesType ? N(this.currentOptions, ["defaultPoint", "altColor"]) && (b = !0) : g.tree ? (b = !0) : g.isRadarColumn && (b = !0); if ("object" === I(this.chart.options("palette"))) g.colorByPoint = !0; else if ("%color" === N(c, ["marker", "fill"])) b = !0; else if (this.currentOptions.firstPoint || this.currentOptions.lastPoint) b = !0; f.hasUniqueStyles = b || f.hasUniqueStyles; this.seriesDirty.pointIndex(!1); this.seriesDirty.pos(!0); this.validateData(); this.setAttribs(!0); this.visualizer.validate(!1); this.syncLegendItems(); } }; c.prototype.setLegendEntryVisibility = function (a) { !1 === this.visualizer.pointLeVisible(a) && ((a = a.legendEntry || (a.legendEntry = {})), (a.visible = z(a.visible, !1))); }; c.prototype.validateData = function () { if (this.visualizer && this.userPoints.length && !this.ctmIsType("map")) { var a = this.visualizer.getTypeConfig(), c = a.requiredData, e = a.supportedData, f = this.indexer.getAllKeys(); c && ((c = c.split(",")), vb(f, "ys") && f.push("y"), vb(f, "xs") && f.push("x"), vb(f, "zs") && f.push("z"), gc(f, c).length < c.length && Ma.emit("error", this.id, "dataRequired", { data: [this.name || this.id, c.join(", ")], container: this.chart.getWrapper() })); e && a.supportedData.split(","); } }; c.prototype.setData = function () { this.setInfo(); this.setDataInfo(!0); }; c.prototype.setPoints = function () { var a = this; if (a.seriesDirty.points()) { if (!a._points.length || a.dirty) { a._defPointGen = void 0; Ub( a.userPoints, a._points, function (b) { return new ZC(a, b); }, function (a, b) { return b.options(a, !1); }, function (a) { return a.destroy(); }, function (a, b) { return z(a.id, a.name) || b; }, function (a, b) { return z(a.currentOptions.id, a.currentOptions.name, a.id) || b; } ); var c = [], e = {}; w(a._points, function (a) { e[a.id] = a; }); w(a.userPoints, function (a) { Xe(c, e[a.id]); }); a._points = c; } if (a.info.usesSmartPalette) { var f = a.getSP(), g = f.userOptions.pointValue; 100 < this._points.length && O(g) && Ma.emit("warning", a.id, "spPointValueSuggestion", { container: this.chart.getWrapper() }); f.setPointSpValues(a); } a.seriesDirty.points(!1); } return this; }; c.prototype.getAutoLabelText = function (a, c) { function b() { switch (q.type.seriesType) { case "candlestick": case "ohlc": var a = r ? x(["%icon", " ", "O:%open H:%high L:%low C:%close"]) : "%xValue {%close-%open}
    Open: %open
    High: %high
    Low: %low
    Close: %close"; return a; default: var b = (a = ""), c = r ? "" : "
    ", d = vb(Bf(u.vScale), Bf("stacked")), e = q.type.drawLine, f = 1 < p.chartArea.series().items.length, g = !r && !e && !d; r ? (b = "%icon") : (u.sName && f && !g && (a += v("%seriesName") + "
    "), "category" === u.xScale ? (a += u.xAxisLabel ? "%xAxisLabel: " + (v("%name") + "
    ") : "%name ") : (u.pointName && (a = "%name
    "), (a += u.xAxisLabel ? "%xAxisLabel: " + v("%xValue") + "
    " : "%xValue "))); a += F("yAxisLabel", c, y(), " "); u.hasZ && (a += F("zAxisLabel", "
    ", "%zValue", "
    ", !0)); r || (e || d ? d && (a += "
    %ypercentOfGroup% of " + w()) : (a += "
    " + m())); u.hasComplete && (a += "
    %complete Complete"); a = b ? x([b, " ", a]) : a; return n(a.trim()); } } function d() { var a = E(); a += " " + F("yAxisLabel", "
    ", y(), "
    "); u.hasZ && (a += " " + F("zAxisLabel", "
    ", "%zValue", "
    ", !0)); a += m(); return n(a.trim()); } function g() { var a = (u.sName ? v("%seriesName") + "
    " : "") + "%name: " + y(); return n(a.trim()); } function h(a) { var b = "", c = u.mapInfo || {}; a && a.options("name") && (b += "%name"); u.mapInfo && u.serName && u.serName !== c.name && ((b += b.trim().length ? "
    " : ""), "province" === c.mapLevel && ((a = c.country), vb(Bf(u.serName), Bf(a)) && (b += "%country"))); u.serName && ((b += b.trim().length ? "
    " : ""), (b += "%seriesName")); "marker" === q.type.st && ((b += b.trim().length ? "
    " : ""), (b += "
    Lat: " + v("%yValue")), (b += "
    Long: " + v("%xValue"))); u.hasZ && ((b += b.trim().length ? "
    " : ""), (b += F("zAxisLabel", "
    ", "%zValue", "
    ", !0))); return n(b.trim()); } function k() { var a = u.sName ? "%seriesName" : ""; a += " " + E(); a += a.trim().length ? "
    " : ""; a += F("yAxisLabel", "
    ", y(), "
    "); return n(a.trim()); } function l() { var a = ""; "category" === u.xScale ? (a += u.xAxisLabel ? "%xAxisLabel: " + (v("%name") + "
    ") : "%name ") : (u.pointName && (a = "%name
    "), (a += u.xAxisLabel ? "%xAxisLabel: " + v("%xValue") + "
    " : "%xValue ")); a += " " + F("yAxisLabel", "
    ", y(), "
    "); u.hasZ && (a += " " + F("zAxisLabel", "
    ", "%zValue", "
    ", !0)); return n(a.trim()); } function m(a) { var b = ""; "time" !== u.vScale && ((b = t(a) ? a + "% of " : "%percentOfSeries% of "), (b += u.sName ? "%seriesName" : q.type.colorByPoint ? "Series" : "%icon"), vb(Bf(u.vScale), Bf("stacked")) && (b += "
    %percentOfGroup% of " + w())); return b; } function n(a) { return a.replace(//g, "
    ").replace(/ /g, "
    "); } void 0 === a && (a = {}); var p = this, q = this.info, r = p.chartArea.tooltip.cttEnabled(p.yAxis, p.xAxis), u = A(a, q.labelTextInfo); a = this.options("defaultPoint.label.text"); var x = function (a) { return (p.chart.isRtlCulture ? a.reverse() : a).join(""); }, v = function (a) { return "" + a + ""; }, y = function () { return u.hasRange ? ("time" === u.vScale ? "%yStart\u2013%yValue" : "(%yStart\u2013%yValue)") : "%yValue"; }, w = function () { return "category" === u.xScale ? "%name" : "%xValue"; }, E = function () { return u.pointName || O(u.pointX) ? (u.pointName ? "%name" : "%xValue") : ""; }, F = function (a, b, c, d, e) { return r ? c : u[a] ? b + ("%" + a) + ": " + v(c) + "
    " : (e ? "(" + c + ")" : c) + d; }, z = "", C = ""; switch (u.ct) { case "horizontal": case "vertical": z = b(); break; case "cone": case "pyramid": case "funnel": case "treemap": case "pie": z = d(); break; case "heatmap": z = l(); break; case "radar": z = b(); break; case "gauge": z = k(); break; case "navigator": z = b(); break; case "organization": C = z = "%XValue"; break; case "map": z = c ? h(c) : "%name"; C = "%name"; break; case "calendar": z = b(); C = "%name"; break; case "venn": C = "%name"; z = g(); break; default: z = b(); } return { tooltip: z, label: a || C || "%yValue" }; }; c.prototype.getAutoTooltipText = function (a) { return this.getAutoLabelText({ pointName: a.name, pointX: a.options("x"), hasComplete: t(a.options("complete")) }).tooltip; }; c.prototype.setPane = function (a) { this.pane = a; a.hasNeedles = a.hasNeedles || this.info.type.hasNeedles; a.hasRoundCaps = a.hasRoundCaps || this.info.type.roundCaps; Lr(this); }; c.prototype.render = function (a, c) { this.renderRect = a.rect || a; this.userPoints.length && this.visualizer.render(c); return this; }; c.prototype.renderLabels = function (a, c) { this.renderRect = a.rect || a; this.userPoints.length && this.visualizer.renderLabels(c); }; c.prototype.setPos = function () { var a = this, c = a.ctManager, e = a.pane, f = a.ctmIsType("radar"), g = a.ctmIsType("gauge"), h = a.info, k = a.options(), l = a.userPoints, m = N(k, ["emptyPointMode"]) || "undefined", n, p = g && "marker" === h.type.seriesType, q = N(a.currentOptions, ["defaultPoint", "marker", "length"]); c = c.settingVal("lineSeriesType", k); var r = ("line" === h.type.seriesType && "spline" === c && a.ctmIsType("map")) || ("line" === h.type.seriesType && f && e && "polar" === e.getRadarType()), u = f ? 15 / 360 : 5, x, v, y; if (a.seriesDirty.pos() && !a.info.type.noPos) { a.info.labelTextInfo = Pr(this); e = a.getAutoLabelText({}, a._points[0]); L(a.info.labelTextInfo, e); a.isStacked = a.yAxis.isStacked(); a.indexer.indexKeys(["pos"], {}, 0); var D = a.getXYZTranslator(), E = function (a, b, c, d) { t(B[a]) && (U[a] = D(b, c, d)); }, F = D(0, 0, 0), A = function (a, b) { return Math.floor(mc(a, b) / u); }, C = function (a, b, c, d) { var e = []; c && ob(c, function (f) { f && ((f = [Y(a[0], b[0], 0, 1, (1 / c) * f), Y(a[1], b[1], 0, 1, (1 / c) * f)]), e.push(d ? d.apply(void 0, H(f)) : f)); }); return e; }; e = function (b, c) { B = a.indexer.getItem(b); if (B.isEmpty && "ignore" === m && !N(a, ["pane", "isRadial"])) return "continue"; var d = z(B.ye, B.y), e = z(B.ys, 0), g = z(B.xe, B.x), k = z(B.xs, g), l = z(B.ze, B.z), u = void 0; p && (n = z(N(B, ["marker", "length"]), q, 0.8)) && (n.pop ? ((c = G(n, 2)), (u = c[0]), (l = c[1])) : ((l = n), (u = 0))); u = z(B.zs, u, l); U = { xyz: D(g, d, l), xyzOrigins: F, xyzs: D(k, e, u), xyzRDesc: [k > g, e > d, u > l] }; "map" === h.type.seriesType && a.visualizer.setPos(B, U); h.hasSubvalues && (E("sv", g, B.sv, l), E("svs", g, B.svs, l), E("svx", B.svx, d, l), E("svxs", B.svxs, d, l), t(B.svv) && ((U.svv = x = []), w(B.svv, function (a) { x.push(D(g, a, l)); })), t(B.svxv) && ((U.svxv = x = []), w(B.svxv, function (a) { x.push(D(a, d, l)); }))); h.hasComplete && (t(z(B.completee, B.complete)) || t(z(B.completeXe, B.completeX)) ? ((c = function (a, b, c) { t(Z(U, b, z(B[b], B[c]))) ? Z(U, a, B[a] || 0) : ((U[a] = 0), (U[b] = 1)); }), c("completes", "completee", "complete"), c("completeXs", "completeXe", "completeX")) : (U.completes = U.completee = U.completeXs = U.completeXe = 0)); a.indexer.setValue("pos", b, U); r && y && ((b = void 0), a.ctmIsType("map") ? (b = A(y, [g, d])) : f && (b = A(v.xyz, U.xyz)), (v.interpPoints = C(y, [g, d], b, D))); v = U; y = [g, d]; }; c = 0; for (l = l.length; c < l; c++) e(c, l); if (f && r) { var B = a.indexer.getItem(0), U = a.indexer.getValue("pos", 0); l = v.xyz[0] + 2 * la(v.xyz[0], 1); l = [v.xyz, [l, U.xyz[1]]]; e = A(l[0], l[1]); v.interpPoints = C(l[0], l[1], e); v.interpPoints.unshift(l[0], l[0]); } } else a.info.type.noPos && ((a.info.labelTextInfo = Pr(this)), (e = a.getAutoLabelText()), L(a.info.labelTextInfo, e)); a.seriesDirty.pos(!1); return this; }; c.prototype.setCoordinates = function (a, c) { this.userPoints.length && this.visualizer.setCoordinates(a || this.contentRect(), c); return this; }; c.prototype.setState = function (a, c) { void 0 === c && (c = {}); a = Ml(this, a); if (this.state !== a) { var b = {}, d = z(c.continueAnimation, !0); if (c.animation) { A(b, !1 === c.animation ? { duration: 0 } : c.animation); var g = !!b.duration; } c = function (a) { return A(g ? { continueAnimation: d, animation: b } : { continueAnimation: d }, a); }; var h = this.info.type, k, l = this.getStateAttrs(a); h.drawLine && (k = this.visuals.line) && l.line && k.attr(c(l.line)); h.drawArea && (k = this.visuals.area) && k.attr(c(l.area)); this.state = a; "select" === a && this.chart._seriesSelection(); } }; c.prototype.getStateAttrs = function (a) { var b = this.info.type, c = this.info.style, f = c.states; a = Ml(this, a); a = f[a]; f = { line: void 0, area: void 0 }; b.drawLine && (f.line = L({}, a)); b.drawArea && (f.area = fc({ fill: z(a.areaColor, c.base.areaColor), opacity: z(a.areaOpacity, c.base.areaOpacity) })); return f; }; c.prototype.getXYZValAxes = function () { var a = this.pane, c = N(a, ["xAxis"]) || this.xAxis, e = N(a, ["yAxis"]) || this.yAxis; a = N(a, ["zAxis"]) || this.zAxis; return [c, e, a]; }; c.prototype.getXYZTranslator = function () { var a = this.chartArea, c = this.pane, e = c ? c.isHoriz : a.isHoriz, f = z(N(c, ["projection"]), a.projection), g = G(this.getXYZValAxes(), 3); a = g[0]; c = g[1]; g = g[2]; var h = a ? a.getValToLin() || xc : Gb, k = c ? c.getValToLin() || xc : Gb, l = g ? g.getValToLin() || xc : Gb; return this.ctmIsType("map") ? (this.transformFn = function (a, b, c) { a = f.val2linxy(a, b); return [h(a[0]), k(a[1]), l(c)]; }) : (this.transformFn = e ? function (a, b, c) { return [k(b), h(a), l(c)]; } : function (a, b, c) { return [h(a), k(b), l(c)]; }); }; c.prototype.preRender = function (a) { void 0 === a && (a = {}); var b = a.rect || this.contentRect(); if (a.rect) { var c = z(this.options("shape.padding"), 0.3); c && (b = Xo(b, c)); } t(this._i) || this.chartArea.chartAreaSet.enumerateData(); this.setPos().setPoints().setAttribs().setCoordinates(b, a); }; c.prototype.contentRect = function () { return this.renderRect; }; c.prototype.destroy = function () { var b = this.visualizer; b && b.clearHighlightVisuals && b.clearHighlightVisuals(); this.rootVisuals = null; this.points().each(function (a) { return a.destroy(); }); a.prototype.destroy.call(this); w(this.visuals, function (a) { return ( (t(a) && hb(a, function (a) { return a.destroy && a.destroy(); })) || !0 ); }); this.legendEntry && this.legendEntry.destroy(); }; c.prototype.translateToGlobal = function (a) { var b = this.chartArea.rootVisuals.content.getGlobalBbox(); b = [a[0] + b.x, a[1] + b.y]; 2 < a.length && ((b[2] = a[2]), (b[3] = a[3])); return b; }; c.prototype.hitTest = function (a) { var b = this.visualizer; if (this.isVisible && Wm(this)) { var c = this.indexer.getKey("coordinates"), f, g = b.renderOrderRev; if ((b = b.pointsGlobals || b.updatePointsGlobals())) (a[0] -= b.x), (a[1] -= b.y); b = function (b) { if ((f = c[b]) && f.hitTest && f.hitTest(a[0], a[1])) return !0; }; var h = void 0; if (g) { g.length > c.length && (g = g.filter(function (a) { return a < c.length; })); for (var k = 0, l = c.length; k < l; k++) if (((h = g[k]), b(h))) return this._points[h]; } else for (k = 0, l = c.length; k < l; k++) if (b(k)) return this._points[k]; } }; c.prototype.mouseOut = function (a) { var b = this.chart.requestLegend(this); b && b.pointOut(); this.visualizer.pointMouseOutAny() && this.triggerUser("mouseOut", a); }; c.prototype.mouseMove = function (a, c) { if (Wm(this)) { c = this.chartArea; var b = this.visualizer, d = this.chart.requestLegend(this), g = [a.x, a.y], h; if ((h = this.hitTest(g))) { var k = "hover" === this.state || b.hoveredItem; c.crosshair(g, a, !0); b.pointMouseOver(a, h); d.pointOver(h); !k && this.triggerUser("mouseOver"); return !0; } N(this.currentOptions, ["mouseTracking", "sticky"]) || (b.pointMouseOutAny() && this.triggerUser("mouseOut", a), d && d.pointOut()); } }; c.prototype.mouseClick = function (a) { if (Wm(this)) { var b; if ((b = this.hitTest([a.x, a.y]))) return this.visualizer.pointClick(a, b), this.triggerUser("click", a), b; } }; c.prototype.pointOver = function (a, c) {}; c.prototype.showHaloAtX = function (a) { var b = this.indexer; a = b.findValue_i("x", a); var c = this.info.labelTextInfo.hasRange, f = [], g = this._points[a]; g && this.visualizer.showHalo(g); if (t(a)) { var h = b.getItem(a); c ? w(["svs", "sv", "ys", "ye"], function (a) { a = h[a]; t(a) && f.push(a); }) : f.push(z(b.getValue("ye", a), b.getValue("y", a))); return [this.yAxis, g, f]; } }; c.prototype.hideHalo = function () { this.visualizer.showHalo(); }; c.prototype.setAttribs = function (a) { var b = this.currentOptions, c = this._i, f = this.ctmIsType("treemap"), g = b.line || (f && N(b, ["shape", "outline"])) || {}; f = this.info; var h = this.chart.palette, k = this.userPoints.length > b.markerLimit ? 1 : 2, l = "array" === I(h) ? h : Xi("default"); this.info.style = { set: { color: m, opacity: p, line: {}, area: {} }, attr: { line: {}, area: {} }, states: {} }; h = f.style; var m = z(b.color, N(b, ["defaultPoint", "color"]), l[c % l.length]); c = z(N(b, ["defaultPoint", "marker", "type"]), Ui[c % Ui.length]); m = Fk(m); var n = z(m[3], 1), p = z(b.opacity, 1) * n; l = z(N(b, ["outline", "opacity"]), b.opacity, 1) * n; n *= z(N(b, ["shape", "opacity"]), b.opacity, 0.8); m = ma(m, "rgb"); var q = ia(g.color || La.seriesLine, m), r = N(b, ["shape", "fill"]) || b.fill; if (r) { r = ia(oc(r), m); var u = r.linearGradient ? r : Ro(Fk(r)); } u = this.ctSvIs("areaShadingType", "subtle") ? dd(Fa.areaFill, u || m) : m; p = h.base = { color: m, altColor: "white", opacity: p, lineColor: q, lineOpacity: l, areaOpacity: n, areaColor: u, markerType: c }; if (!a) return ( (a = f.style.states), (u = 2), this.ctmIsType("organization") && (u = 0), (m = b.states || {}), (b = m.hover || {}), (h = m.select || {}), (m = m.mute || {}), f.type.drawLine && ((k = f.style.set.line = { width: z(g.width, k), color: p.lineColor, opacity: z(g.opacity, 1) * p.lineOpacity, dashStyle: g.dashStyle }), g.caps && (k.caps = g.caps), (a[""] = f.style.attr.line = Bb(k)), (g = b.line || {}), (a.hover = !1 !== b.enabled ? A({}, a[""], { "stroke-width": z(g.width, k.width + u), stroke: ia(z(g.color, b.color, k.color), p.color), "stroke-opacity": z(g.opacity, b.opacity, k.opacity) }) : {}), (g = h.line || {}), (a.select = !1 !== h.enabled ? A({}, a[""], { "stroke-width": z(g.width, k.width + u), stroke: ia(z(g.color, h.color, k.color), p.color), "stroke-opacity": z(g.opacity, h.opacity, k.opacity) }) : {}), (g = m.line || {}), (a.mute = !1 !== m.enabled ? A({}, a[""], { "stroke-width": z(g.width, k.width), stroke: ia(z(g.color, m.color, k.color), p.color), "stroke-opacity": z(g.opacity, m.opacity, 0.15 * k.opacity) }) : {})), f.type.drawArea && ((g = f.style.set.area = { color: p.areaColor, opacity: p.areaOpacity }), (g.fill = p.areaFill) || (this.ctSvIs("areaShadingType", "subtle") ? (g.fill = dd(Fa.areaFill, g.color)) : (g.fill = g.color)), !1 !== b.enabled && b.fill && (a.hover.areaColor = ia(b.fill, p.areaColor)), !1 !== m.enabled && ((a.mute.areaOpacity = z(m.opacity, 0.15 * p.areaOpacity)), m.fill && (a.mute.areaColor = ia(b.fill, p.areaColor))), (f.style.attr.area = fc(g))), this ); }; c.prototype.getPointAttr = function (a, c) { function b(a, b, c) { var d = {}, e = function (b, c) { return c ? c(N(a, b)) : N(a, b); }, f = function (a) { Mn(d, b, a, a); }, g = function (a, c, e) { Vf(d, a, ia(N(b, a) || e, c)); }, h = function (b, c, d) { t(N(a, b)) && Vf(m, c, e(b, d)); }, k = function (a) { return a && a.pop && 2 === a.length ? Lb(a) : a; }; g(["color"], M); var l = d.color && ia(La.outline, k(d.color)); g(["outline", "color"], M, l); b.fill && (d.color = ia(oc(b.fill), M)); f(["outline", "width"]); f(["outline", "dashStyle"]); f(["size"]); f(["opacity"]); N(b, ["hatch", "style"]) && (f(["hatch", "style"]), g(["hatch", "color"], M)); var m = { color: c.color ? hg(k(a.color), c.color, ["val"]) : k(a.color), opacity: e(["opacity"], c.opacity), outline: { color: e(["outline", "color"], c.outlineColor), width: e(["outline", "width"], c.outlineWidth) } }; h(["outline", "dashStyle"], ["dashStyle"], c.dashStyle); h(["size"], ["size"], c.size); h(["hatch", "style"], ["hatch", "style"], c.hatch); h(["hatch", "color"], ["hatch", "color"], c.hatchColor); return A(m, d); } function d(a, b, c) { var d = N(a, ["states", b]) || {}, e = d.marker || {}, f, g, h; if ((f = qd(e.outline, d.outline, c.outline))) e.outline = f; if ((f = e.fill || d.fill)) e.fill = f; t((g = z(e.size, d.size))) && (e.size = g); t((h = z(e.opacity, d.opacity, c && c.opacity))) && (e.opacity = h); a = N(a, ["marker", "states", b]) || {}; return qd(e, a) || {}; } var g = a ? (a.currentOptions ? a.currentOptions : a) : {}, h = this.currentOptions, k = t(g._i) ? Kl(this, g._i) : h.defaultPoint || {}, l = !a, m = this.info.hasUniqueStyles || this.info.type.colorByPoint, n = this.info, p = n.style.base, q = n.type, r = this.ctmIsType("calendar") ? La.lightenDark : this.ctmIsType("map") ? "darkenmore" : La.outline, u, x = this.ctmIsType("map"), v = {}, y = q.drawMarker || h.forceMarker || N(k, ["marker", "visible"]) || (a ? N(g, ["marker", "visible"]) : N(k, ["marker", "visible"])); c = c || q.drawMarker; if ((l || !m) && (u = this.info.style.defaultPoint) && (!c || u.drawMarker)) return u; g = Hb(g, { map: void 0, attributes: void 0, mapData: void 0 }); g = qd(g, k || {}); u = g.label || {}; var w = g.marker || {}, E = g.states || {}, F = E.hover || {}, C = E.select || {}, B = E.mute || {}, H = !1 !== N(this.currentOptions, ["mouseTracking", "enabled"]), U = !1 !== B.enabled; H = (E = t(C.enabled) ? C.enabled : !1 !== this.currentOptions.pointSelection || (l && !m)) || (H && !1 !== F.enabled) || !0 === F.enabled; var M = l ? g.color || p.color : this.getPointColors(g); if ("object" === typeof M && M.color) { var G = M.fill; M = M.color; } var J = ia(r, M); r = !1 !== (q.labelVisible || u.visible) && (!!N(u, ["text", "length"]) || Fb(u.text) || u.visible); var K = z(g.opacity, 1) * p.opacity, I = this.getPointHatchStyle(g); if (!l && g && ("candlestick" === this.info.type.seriesType || "ohlc" === this.info.type.seriesType) && g.close < g.open) { var L = (a || {}).altColor || (k || {}).altColor; if ("ohlc" === this.info.type.seriesType) L && g.color && ((g = A({}, g)), (g.color = ia(L, g.color))), (M = J = L ? ia(L, J) : J); else { (L = L || p.altColor) && g.color && ((g = A({}, g)), (g.fill = ia(L, g.color))); M = L ? ia(L, p.altColor) : p.altColor; var O = !0; } } G = { color: G ? oc(G) : M, opacity: K, hatch: { style: I }, outline: { color: J, width: 1 } }; p = b(G, g, {}); var Q = q.isAnnotation ? { color: function (a) { return a; }, outline: { color: function (a) { return ia(La.labelContrast, a); }, width: function (a) { return a + 2; }, }, } : { color: function (a) { return ia(La.hover, a); }, }; q.isMapLayer && q.drawLine && (Q.outlineWidth = function (a) { return a + 2; }); h = h.states || {}; L = fa(["color", "opacity"]); if (H) { var P = Na({}, h.hover || {}, L); F = A(P, F); var S = b(p, F, Q); } if (U) { P = Na({}, h.mute || {}, L); B = A(P, B); var T = b(p, B, { opacity: function (a) { return 0.15 * a; }, }); } if (E) { var Ba = h.select || {}; Q = Na({}, Ba, L); C = A(Ba, C); Ba = b(S, C, { color: function (a) { return ia("select", a); }, outlineWidth: function (a) { return a + 1; }, }); } r && ((C = u.color || N(u, ["style", "color"])), (F = this.ctSvIs("columnType", "cushion")), (B = "map" === this.ctSv("chartType") && "marker" === this.ctSv("seriesType") && "#505050"), (P = "center" !== u.align && "middle" !== u.verticalAlign && q.drawMarker ? M : p.color), (u.color = C || B || ia(q.isMapLayer || q.isAnnotation ? La.labelContrast : La.label, P)), C || F || (u.hcColor = ia(La.labelContrast, P))); if (c || y) (B = P = F = F = void 0), (Q = H && d(g, "hover", h.hover || {})), (B = E && d(g, "select", h.select || {})), (C = U && d(g, "mute", h.mute || {})), (G.marker = F = { color: M, size: 10, opacity: K, hatch: { style: I }, outline: { color: J, width: 1 } }), (I = t(w.visible) ? w.visible : !0), (p.marker = F = b(F, w, {})), I || (F.size = 0), H && ((I = t(Q.visible) ? Q.visible : I), (P = Na({}, h.hover || {}, L)), (S.marker = P = b(F, A(P, Q), { size: function (a) { return 1.2 * a; }, color: function (a) { return ia(La.hover, a); }, })), I || (P.size = 0)), E && ((I = t(B.visible) ? B.visible : I), (Q = Na({}, h.select || {}, L)), (Ba.marker = B = b(P, A(Q, B), { color: function (a) { return ia("select", a); }, outlineWidth: function (a) { return a + 1; }, })), I || (B.size = 0), (Ba.marker = B)), U && ((P = Na({}, h.mute || {}, L)), (T.marker = b(F, A(P, C), { opacity: function (a) { return 0.15 * a; }, }))); w = {}; G = c ? p.marker : p; I = w[""] = mi(fc(G)); H && ((G = c ? S.marker : S), (w.hover = mi(fc(G)))); E && ((G = c ? Ba.marker : Ba), (w.select = mi(fc(G)))); U && ((G = c ? T.marker : T), (w.mute = mi(fc(G)))); !q.isMapLayer || q.drawLine || c || "bubble" === q.seriesType || ((w[""]["stroke-linejoin"] = "round"), (w[""].zIndex = this.zIndex), H && (w.hover.zIndex = this.zIndex + 1), E && (w.select.zIndex = 0)); "bubble" === q.seriesType && t(g.zIndex) && (w[""].zIndex = g.zIndex); n.hasSubvalues && ((S = N(g, ["subvalue", "line"]) || {}), (G = { opacity: K, outline: { width: z(S.width, 1), color: ia(S.color || J, M), length: S.length, dashStyle: S.dashStyle } }), (v[""] = fc(G))); this.chart.use3D || O || this.ctmIsType("venn") || !(x || q.drawRect || (q.isShape && !q.isPie) || this.ctmIsType("heatmap") || this.ctmIsType("calendar") || this.ctmIsType("treemap")) || l || ((O = {}), (x = N(this, ["indexer", "data", "coordinates"])) && (O.pointData = x[g._i]), (I.fill && I.fill.stops) || this.attrShader(w, O)); !1 === q.drawArea && ((w[""].fill = "none"), H && (w.hover.fill = "none"), E && (w.select.fill = "none")); if (r) { var V = A({}, u); V = A(V, u.line); V = Bb(V); } q = { baseColor: M, pointAttr: w, svAttr: v, labelVisible: r, labelConnector: q.labelConnector, labelConnectorAttr: V, drawMarker: q.drawMarker, label: u }; l || !m ? (n.style.defaultPoint = q) : ((q.isDefault = l), this.indexer.indexKeys(["color"], {}, 0), this.indexer.setValue("color", g._i, q.baseColor)); if (y || c) q.markerSize = p.marker.size; this.ctmIsType("gauge") && this.ctSvIs("gaugeType", "circular") && (a = (a || {}).altColor || (k || {}).altColor) && (q.pointAttr[""].altColor = ia(a, M)); return q; }; c.prototype.attrShader = function (a, c) { var b = c.radAngle, d = this.ctManager, g = this.currentOptions, h = this.info.type.isRadarColumn, k = d.settingVal("columnType", g) || "default"; d = "horizontal" === d.settingVal("chartType", g) || this.ctSvIs("linearGaugeType", "horizontal"); g = !1; if (this.ctmIsType("map")) { k = "subtle"; var l = this.chart.ctManager; "map" === l.settingVal("seriesType") && ((l = l.settingVal("columnType")), (k = l !== k ? l : k)); } t(b) && (d = b); this.ctSvIs("funnelShapeType", "square") && (k = "square"); "le" === b && ((d = !0), (g = !1)); b = { horizontal: d, inverted: g, isRadial: h }; this.ctmIsType("calendar") && (b.strokeMode = "lighterOnDark"); this.ctmIsType("treemap") && "cushion" === k ? ((h = this.renderRect), (d = c.pointData.cxy), (g = c.pointData.bbox), (l = ha(h)), (c = va(l)), (g = g[2] / l[2] + g[3] / l[3]), (b.offsets = [(c[0] - d[0]) / h.width, (c[1] - d[1]) / h.height]), (b.share = g)) : h && c.pointData ? (b.lgCoords = this.pane.getShaderOptions(c.pointData.pathOptions)) : this.ctmIsType("gauge") && this.ctSvIs("gaugeType", "circular") && (k = this.ctSvIs("seriesType", "column") ? "none" : "subtle"); "roundcaps" === k && (k = "subtle"); iw(k, a, b); }; c.prototype.getPointColor = function (a) { a = this.getPointColors(a); return a.fill || a.color; }; c.prototype.getSP = function () { var a = this.chart, c = this.currentOptions.palette || this.chart.palette, e; "object" !== I(c) && this.ctmIsType("heatmap") && ((c = this.indexer.calculations.z) ? ((this.chart.palette = c = Rs({}, [c.min, c.max])), this.chart.legends().each(function (a) { return a.updateSp(); })) : (this.chart.palette = c = { colors: this.chart.palette })); c.id && (e = a.getSmartPalette(c.id)); return e || a.getSmartPalette(c); }; c.prototype.getPointColors = function (a, c) { var b = this.info, d = b.type, g = b.style.base, h = this.currentOptions; b = b.type.colorByPoint; var k; c = c || d.drawMarker; d.isTree || (k = a.color); if (c) { var l = a.marker || {}, m = l.color; l = l.fill; } m && (m = oc(m)); if (m || k) return k ? { color: Lb(k), fill: l || m } : { color: Lb(g.color), fill: l || m }; b ? ((d = h.palette || this.chart.palette), (h = I(d)), "string" === h && (d = Fh(d)), "object" === h ? (g = this.getSP().getPointColor(this, a)) : ((a = this.indexer.getValue("cpbIndex", a._i)), (g = t(a) ? d[a % d.length] : g.color)), (g = Lb(g))) : ((g = a.color || g.color), d.varyPalette && !a.color && ((h = a._i), (a = ca(g)), (g = bf(a[0], a[1], a[2])), (k = t(h) ? Tn(1, h + 1)[h] : Vb.random()), (h = 0.03 * k), 0.5 < k && (h = -h), (g[2] = ua(g[2] + h * g[2], 0, 1)), (g = bd(g[0], g[1], g[2])), (g = ma([g[0], g[1], g[2], a[3]])), (d.isVaryingColors = !0))); return { color: g, fill: l }; }; c.prototype.getPointHatchStyle = function (a, c) { c = this.info.type; var b = this.currentOptions, d = this.chart.currentOptions, g = d.defaultSeries || {}, h = N(a, ["hatch", "style"]); b = b.hatchPalette || d.hatchPalette || g.hatchPalette; h || (c.colorByPoint ? ((c = I(b)), "undefined" !== c && ("boolean" === c && (b = Xi("hatch")), (a = this.indexer.getValue("cpbIndex", a._i)), t(a) ? (h = b[a % b.length]) : b && (h = b[this._i % b.length]))) : b && (h = b[this._i % b.length])); return h; }; c.prototype.getPointMarkerType = function (a) { var b, c = this.info.style.base; (b = N(a, ["marker", "type"])) || (this.info.type.colorByPoint && !this.info.usesSmartPalette && a ? ((b = this.indexer.getValue("cpbIndex", a._i)), (b = t(b) ? b : a._i || 0), (b = Ui[b % Ui.length])) : (b = c.markerType)); return b; }; c.prototype.getUniqueColors = function (a) { var b = this.info, c = b.type, f = []; if (b.hasUniqueStyles || c.colorByPoint) { b = this.indexer.getKey("color"); for (var g = 0, h = b.length; g < h; g++) if ((c = b[g])) { if (c !== k && (f.push(c), f.length === a)) break; var k = c; } } else f.push(this.info.style.base.color); return f; }; c.prototype.setColor = function () { var a = this.chart, c = this.options("palette") || a.palette; "object" === I(c) && a.getSmartPalette(c).setPointSpValues(this); }; c.prototype.invalidate = function () { this.dirty = !0; this.seriesDirty.all(!0); delete this.info.style.defaultPoint; return this; }; c.prototype.refresh = function (a) { this.dirty && (this.chartArea.invalidate(), this.chartArea.chartAreaSet.enumerateData(), this.setDataInfo(), this.chart.redraw(z(a, { animation: this.getAnimationConfig() })), this.chart.updateSideItems()); return this; }; c.prototype.visible = function (a, c) { var b = this.seriesDirty, d = this.chartArea; t(a) ? a !== this.isVisible && ((this.isVisible = a), (this.dirty = !0), b.pos(!0), b.coord(!0), d.resetTimers()) : ((this.isVisible = !this.isVisible), (this.dirty = !0), b.pos(!0), b.coord(!0), d.resetTimers()); this.dirty && (this.legendEntry && this.legendEntry.updateCheckbox(this.isVisible), d.series().each(function (a) { return a.seriesDirty.pos(!0); }), !1 !== c && this.chart.redraw(c || { animation: this.getAnimationConfig() }), this.triggerUser(this.isVisible ? "show" : "hide")); return this; }; c.prototype.getAnimationConfig = function () { return A({}, this.userOptions.animation || this.chart.currentOptions.animation); }; c.prototype.select = function (a, c) { var b; t(a) && (b = a); this.points().each(function (b) { return b.select(a, c); }); this.setState(b ? "select" : ""); }; c.prototype.removePoint = function (a, c) { -1 < a && (this.userPoints.splice(a, 1), (this.visualizer.updateInfo = { action: "splice", at: a, count: 0, del: 1 }), this.invalidate(), !1 !== c && this.refresh()); }; c.prototype.zoomTo = function (a) { var b = this.ctmIsType("calendar"); this._points.length && this.ctmIsType("map") ? ((b = this.chart.geoParser.getSeriesBBox(this)), 0 === b[2] && 0 === b[3] && (b = mb(b, [0.01, 0.01])), this.chart.zoom(b, a)) : b && this.chart.zoom(this.currentOptions.attributes.date, a); }; c.prototype.remove = function (a) { a = this.chartArea; var b = Sf(a._series, { id: this.id }); -1 < b && (a.spliceSeries(b, 1, []), this.triggerUser("remove")); }; c.prototype.yAt = function (a) { return this.interpolate("x", "y", a); }; c.prototype.interpolate = function (a, c, e) { var b = this.indexer; a = b.findInterpolatedInfo(a, e); if (-1 !== a.i) return 0 < a.inter ? ((e = b.getValue(c, a.i)), (c = b.getValue(c, a.i + 1)), Y(e, c, 0, 1, a.inter)) : b.getValue(c, a.i); }; c.prototype.getCalcCache = function () { if (!this.calcCache) { var a = this.indexer, c = this.userPoints.length, e = this.zAxis || {}, f = Math.abs, g = Pb(a, "getKey"), h = Pb(a, "getItem"), k = Pb(a, "sum"), l = Pb(a, "sumAbs"), m = J(a.data, "ye") && !J(a.data, "y"), n = 0 < g("xr").length, p = 0 < g("zr").length, q = !m, r = !n, u = !n, x = m ? 2 * c : c, v = m ? (k("ys") + k("ye")) / x : k("y") / c; n = n ? (k("xs") + k("xe")) / x : k("x") / c; c = p ? (k("zs") + k("ze")) / x : k("z") / c; p = q ? "y" : "ye"; x = q ? "y" : "ys"; var y = q ? "y" : "yr", t = r ? "x" : "xe", w = r ? "x" : "xs", F = q ? g("y") : Tc(g("yr")), z = r ? g("x") : Tc(g("xr")), B = u ? g("z") : Tc(g("zr")), A = g("name"); q = q ? F : Tc(g("ya")); r = r ? z : Tc(g("xa")); g = u ? B : Tc(g("za")); var G = h(a.min_i(x)), M = h(a.max_i(p)), H = h(a.min_i(w)), K = h(a.max_i(t)), I = h(u ? a.min_i("z") : a.min_i("zs")); a = h(u ? a.max_i("z") : a.max_i("ze")); this.calcCache = { list: F, xList: z, zList: B, nList: A, max: M[p], min: G[x], xMax: K[t], xMin: H[w], zMax: a.z, zMin: I.z, zAbsmax: Math.max(f(a.z), f(I.z)), nMax: M.name, nMin: G.name, nZMax: a.name, nZMin: I.name, nXMax: K.name, nXMin: H.name, sum: k(y), zSum: k("z"), xSum: k("x"), sumAbs: l(y), zSumAbs: l("z"), xSumAbs: l("x"), average: v, zAverage: c, xAverage: n, range: F.length ? M[y] - G[y] : void 0, zRange: B.length ? a.z - I.z : void 0, yRangeSum: k(y), yRangeSumAbs: m ? l("yr") : l("y"), yStartSum: k("ys"), name: this.name, type: this.currentOptions.type, xAxis: this.xAxis, yAxis: this.yAxis, zAxis: this.zAxis, zAxisLabelText: C(e.currentOptions, "label.text"), averList: q, xAverList: r, zAverList: g, }; } return this.calcCache; }; c.prototype.replaceTokens = function (a, c) { return jr(a, this, c || this.getFormatInfo()); }; c.prototype.tokenValue = function (a) { return this.replaceTokens({ token: a }); }; c.prototype.getMapData = function () { var a = N(this.info, ["map"]); if ("string" === typeof a || (a && 0 < pa(a).length)) return a; a = N(this.userOptions, ["map"]) || {}; return "string" === typeof a ? a : a && 0 < pa(a).length ? a : N(T, ["JSC", "internal", "_modules", "maps", "geo", this.userOptions.mapDataId]); }; c.prototype.setMapData = function (a) { Z(this.info, "map", a); return this; }; c.prototype.getConfig = function () { var a = L({}, this.userOptions); a.points = this.userPoints; return a; }; return c; })(jc), pD = (function () { function a(a) { this.series = a; this.setAll(!0); } a.prototype.setAll = function (a) { this.pointData(a); this._coord = this._pos = this._points = a; this.series._ctSvCache = null; this.series._ctmIsTypeCache = null; }; a.prototype.any = function () { return this._pointData || this._pointIndex || this._points || this._pos || this._coord; }; a.prototype.points = function (a) { var b = this; return b.getSet(a, b._points, function (a) { return (b._points = a); }); }; a.prototype.pos = function (a) { var b = this; return b.getSet(a, b._pos, function (a) { return (b._pos = a); }); }; a.prototype.coord = function (a) { var b = this; return b.getSet(a, b.series.visualizer.coordDirty, function (a) { return (b.series.visualizer.coordDirty = a); }); }; a.prototype.pointData = function (a) { var b = this; !0 === a ? (b.pointIndex(a), b.series.chartArea.series().each(function (a) { a.seriesDirty.pos(!0); }), b.resetCache(), (b.series.chartArea.chartAreaSet._calcCache = void 0)) : !1 === a && b.pointIndex(a); return b.getSet(a, b._pointData, function (a) { return (b._pointData = a); }); }; a.prototype.resetCache = function () { this.series.calcCache = void 0; }; a.prototype.pointIndex = function (a) { var b = this; return b.getSet(a, b._pointIndex, function (a) { return (b._pointIndex = a); }); }; a.prototype.all = function (a) { this.setAll(a); }; a.prototype.getSet = function (a, b, d) { if (t(a)) d(a); else return b; }; return a; })(), Ym = (function (a) { function c(b, d) { d = a.call(this, b, d) || this; d.items = b; d.kindObject = c; d.points = Xa(wb, zz(d), Az()); return d; } K(c, a); c.prototype.options = function (a, c) { var b = this.items.length ? !1 : c, d = this.each(function (c) { c.options(a, b); }); !b && !1 !== c && yz(a) && this.items[0].chart.redraw(c); return d; }; return c; })(wb), qD = (function (a) { function c(b, c) { c = a.call(this, b.chart, c) || this; c.marker = b; c.fillMod = "axisMarkerY"; return c; } K(c, a); c.prototype.styleIconVisual = function (a, c) { a = a.base; var b = this.marker.isRange(), d = A({}, this.currentOptions), g = d.line, h = g.color || ia("outline", d.color || "white"); b ? (Z(d, "outline.color", h), (b = fc(d))) : (Z(d, "line.color", h), Z(d, "line.width", Math.min(4, g.width)), (b = Bb(d.line))); a && a.attr(b); c.isStyled = !0; }; c.prototype.getIconPaths = function (a) { var b = a[0], c = a[1], f = 0.8 * c; return this.marker.isRange() ? { base: dc.square(0, f, a[0], a[1] - 2 * f), extra: void 0 } : { base: eb( [ [0, c / 2], [b, c / 2], ], { isOpen: !0 } ), extra: void 0, }; }; return c; })(Mt), au = { top: "left", middle: "center", bottom: "left", left: "top", center: "middle", right: "bottom" }, Xr = (function (a) { function c(b, c) { var d = a.call(this, b.chart, c, [b, c]) || this; d.axis = b; d.kind = "AxisMarker"; d.rootVisuals = { path: void 0, label: void 0 }; d.invalid = !1; d._arrangeInfo = { box: void 0, visible: !0, edgeBoxes: [], labelSizes: [], possible: [], used: void 0 }; d.events = { click: new rd() }; d.isHoriz = !b.isHoriz; d.options(c, !1); return d; } K(c, a); c.prototype.init = function () { for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c]; c = G(a, 2); a = c[0]; c = c[1]; t(c.value) ? (this.defaultContextOptions = { legendEntry: { value: c.value.pop ? ("x" === a.prefix ? "%xmin - %xmax" : "%min - %max") : "%value" } }) : (this.invalid = !0); this.axis = a; }; c.prototype.defaultOptions = function () { if (this.axis) { var a = this.axis.options("defaultMarker"); return A({ color: "#a6bce3", opacity: 0.8, line: { width: 1, onTop: !1 }, labelPadding: 5, legendEntry: { color: "#3a3e4b", value: "%" } }, a || {}); } }; c.prototype.options = function (b, c) { var d = this.axis, f = this.optionsGetter(b); if ("NotGetter" !== f) return f; t(b.low) && t(b.high) && (b.value = [b.low, b.high]); a.prototype.options.call(this, b, c); C(d.userOptions, "markers.length") && A(d.userOptions.markers[this.getIndexInAx()], b); d.invalidate(); this.syncLegendEntry(b); !1 !== c && (!this.chart.isRendered || !this.isRendered || this.options("label") || this.options("includeInScale") || (t(b.value) && this.legendEntry) ? (this.render(d.viewState), this.axis.chart.redraw(c)) : this.render(d.viewState)); return this; }; c.prototype.normalizeOptions = function (b) { b = a.prototype.normalizeOptions.call(this, b); dp(b, "color"); dp(b, "line.color"); var c = b.value; "object" === I(c) && t(c.low) && t(c.high) && (b.value = [c.low, c.high]); return b; }; c.prototype.click = function (a) { this.trigger("click", a); }; c.prototype.setRootVisuals = function () { return this; }; c.prototype.setAttribs = function () { var a = this.currentOptions, c = this.axis; this.isRange() ? ((c = "x" === c.prefix ? Fa.axisMarkerX : Fa.axisMarkerY), (a = { fill: dd(c, oc(a.color, 1 - z(a.opacity, 1))) })) : (a = Bb(A({ color: a.color, opacity: a.opacity }, a.line))); this.attribs = { path: a, label: void 0 }; return this; }; c.prototype.render = function (a, c) { this.setOptions().setRootVisuals().setAttribs(); var b = this.currentOptions; a = this.axis; var d = b.label || {}, g = this.rootVisuals, h = this.renderer.renderer, k = this.value(); if (0 !== k.length) { var l = this.visualTarget(); b = C(b, "line.width"); var m = a.getCaPath(k, l, void 0, { lineWidth: k.length ? 0 : b, forMarker: 1 }); b = !g.path; this.invalid = !a.valVisible(k); h = g.path = g.path || this.bindEventsOn(h.path()); (h.parentNode !== l.el || Q(h.parentNode)) && h.add(l); a = this.attrBuilder({ d: m }, this.attribs.path, c); a["fill-rule"] = "evenodd"; b ? (a.animation = !1) : (a.reset = !0); h.attr(a); (g = g.label) && this.getText() && (this._arrangeInfo.visible ? (g.add(l), (a = this.attrBuilder(qc(d), { "pointer-events": "none" }, c)), ((c = this._arrangeInfo.used) && c.box) || (c = this._arrangeInfo.possible[0]), c && c.box && (g.rootPanel.visible(!0), (d = c.rotation), (l = c.textAlignment[0]), (h = c.textAlignment[1]), (k = 0 < d), !k || this.axis.isHoriz || t(this.userOptions.label.rotate) || (d *= "right" === l ? 1 : -1), (m = 0 < d), (b = k ? (m ? c.box[2] : 0) : 0), (m = k ? (m ? 0 : c.box[3]) : 0), g.rootVisuals.text.attr({ xContentAlignment: k ? au[h] : l, yContentAlignment: k ? au[l] : h, opacity: 1 }), (a.rotate = [d, 0, 0]), (a.maxWidth = c.box[k ? 3 : 2]), (a.offsetX = c.box[0] + b), (a.offsetY = c.box[1] + m), (a.zIndex = 1), g.rootPanel.attr(a))) : g.rootPanel.visible(!1)); this.isRendered = !0; return this; } }; c.prototype.bindEventsOn = function (a) { var b = this; a.on("click", function (a) { b.click(a); }); return a; }; c.prototype.syncLegendEntry = function (a) { var b = this, c = b.axis, f = c.chartArea && b.chart.requestLegend(), g = function (a) { if (c.isRadial) { var d = S(b.chart.axes().items, function (a) { return ae(a.childAxes, c); }); return S(f.items, function (b) { return (b = b.target.marker) && b.axis === d && vc(b.currentOptions.value, a.value); }); } }; f && f.isVisible && f.allowEntries() && (b.legendEntry ? (a && t(a.value) && b.legendEntry.target.options({ value: a.value }), b.legendEntry.setColumns()) : !1 === C(b.currentOptions, "legendEntry.visible") || g(b.currentOptions) || ((b.legendEntry = f.addEntry(new qD(b, Ga(b.currentOptions, ["id"]))).setColumns()), (b.legendEntry.sortOrderValue = Qt[b.kind]))); }; c.prototype.resetTimers = function () { C(this, "_arrangeInfo.used.time") && (this._arrangeInfo.used.time = 0); }; c.prototype.visualTarget = function () { var a = (this._visualTargets = this._visualTargets || this.axis.chartArea.getAxisMarkerVisualTargets()); return this.options("onTop") ? a.front : a.behind; }; c.prototype.attrBuilder = function (a, c, e) { void 0 === a && (a = {}); void 0 === c && (c = {}); void 0 === e && (e = {}); a = A({}, a, c, e); e.animation || (a = A(a, { animation: this.chart.options("animation") })); a.opacity = this.invalid ? 0 : 1; return a; }; c.prototype.getText = function () { var a = this.axis, c = C(this.currentOptions, "label.text"); c && -1 < c.indexOf("%") && ((c = Gg(c, this, this.chart.getFormatInfo(void 0, "major"))), (c = a.chartArea.replaceTokens(c))); return c; }; c.prototype.value = function () { var a = this.axis, c = z(this.currentOptions.value, this._value); return a.normUserValue(c); }; c.prototype.isRange = function () { return void 0 !== this.value().pop; }; c.prototype.getIndexInAx = function () { var a = this; return Sf(this.axis.currentOptions.markers, function (b) { return b.id === a.id; }); }; c.prototype.remove = function (a) { this.destroy(); this.legendEntry && !1 !== a && (this.legendEntry.legend.chart.chartAreaSet.reflow(a), this.chart.isRendered && this.chart.renderer.refresh()); }; c.prototype.destroy = function () { var a = this.rootVisuals; this.axis.removeMarker(this); a.path.destroy(); a.label && a.label.destroy(); this.legendEntry && this.legendEntry.destroy(); }; return c; })(jc), bu = (function () { function a(a, b, d) { this.axis = a; this.valToLin = b; this.range = qa(a.range); this.chartArea = d; this.inverted = a.isInverted(); this.breaks = a.breaks; this.caRect = qa(d.contentRect); } a.prototype.equalsRange = function (a) { var b = this.range, c = a.range; if (b.min === c.min && b.max === c.max) { a: { b = this.breaks; c = a.breaks; if (b && c) { if (b.length === c.length) { for (var e = 0, f = b.length; e < f; e++) { var g = b[e], h = c[e]; g = g[0] === h[0] && g[1] === h[1] ? !0 : void 0; if (!g) { b = void 0; break a; } } b = !0; break a; } } else if (b === c) { b = !0; break a; } b = void 0; } if (b) return (!0 === this.inverted) !== (!0 === a.isInverted()) ? void 0 : !0; } }; a.prototype.equals = function (a) { var b = this.caRect; if (this.equalsRange(a) && ((a = a.chartArea.contentRect), b && a && 0 === ap(b, a))) return !0; }; a.prototype.isValid = function () { if (this.caRect) return !0; }; a.prototype.rect = function () { return (this.caRect = this.caRect || this.chartArea.contentRect); }; return a; })(), rD = (function () { function a() { this.items = []; } a.prototype.get = function (a, b) { for (var c = this.items, e = 0, f = c.length - 1, g; e <= f; ) { g = Vb.floor((e + f) / 2); if (a === c[g].value) return c[g]; a < c[g].value ? (f = g - 1) : (e = g + 1); } return b ? e || 0 : void 0; }; a.prototype.add = function (a) { var b = this.get(a, !0); if ("number" === I(b)) { var c = b; b = { value: a, clusters: {} }; this.items.splice(c, 0, b); } return b; }; a.prototype.toArray = function () { for (var a = [], b = 0, d = this.items.length; b < d; b++) a.push(this.items[b].value); return a; }; a.prototype.getShortestRange = function () { var a = void 0, b = MA; return 1 < this.items.length ? (w(this.items, function (c, e) { e && ((e = c.value - a), e < b && (b = e)); a = c.value; }), b) : 1; }; a.prototype.reset = function () { this.items = []; }; return a; })(), Ur = { min: 1, curly: 3, measure: 1.5 }, hj = function (a) { return a && "Point" === a.kind; }, cu = (function (a) { function c(b, c, e, f) { e = a.call(this, b.chart, e, [b, f, e]) || this; e.axis = b; e._value = c; e.type = f; e.visuals = {}; e.tickLen = 0; e.invalid = !1; e.isDestroyed = !1; e._age = 0; e._isNew = !0; e._metrics = void 0; e._visible = !0; e._isRange = t(c) && !!c.pop; Tr(e); return e; } K(c, a); c.prototype.init = function () { for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c]; var e = G(a, 3); a = e[0]; c = e[1]; e = e[2]; this.defMinorTickOptions = e.defaultMinorTick; this.axis = a; this.type = c; this.defaultMutable = !1; this._isRange = t(e.value) && !!e.value.pop; "function" === typeof e.target && (this.target = e.target()); }; c.prototype.setType = function (a, c) { this.type = a; c && (this.userOptions.target = c); this.setOptions(); Tr(this); }; c.prototype.defaultOptions = function () { if (this.axis) { var a = this.axis.currentOptions; switch (this.type) { case "minor": a = this.defMinorTickOptions || A({}, a.defaultTick, a.defaultMinorTick); break; default: a = a.defaultTick || {}; } return a; } }; c.prototype.dependentOptions = function () { return [ { option: ["line.color", "line.width"], check: function (a) { return a; }, dependent: "line.visible", value: !0, }, ]; }; c.prototype.px = function (a, c) { this._px = t(a) && !Ha(a) ? a : void 0; this._pxPrev = t(c) && !Ha(c) ? c : void 0; return this._px; }; c.prototype.getTickTargetPanel = function () { var a = this.axis; return this.currentOptions.onTop ? a.chartArea.rootVisuals.gridLinesFront : a.chartArea.rootVisuals.gridLinesBehind; }; c.prototype.options = function (b, c) { var d = this.optionsGetter(b); if ("NotGetter" !== d) return d; b && (t(b.value) && ((this._needUpdateText = this._value !== b.value), (this._value = b.value), (this._isRange = !!b.value.pop)), "function" === typeof b.target && (this.target = b.target())); d = a.prototype.options.call(this, b, c); Q(c) && Pa(b) && !this.chart.dirty && this.axis.options({}); return d; }; c.prototype.setRootVisuals = function () { var a = this.axis, c = this.getTickTargetPanel(); a && !this.rootVisuals && (this.rootVisuals = { ticks: a.rootVisuals.tickSpacer, labels: a.rootVisuals.main, gridLines: c }); return this; }; c.prototype.bindEvents = function () { var a = this; if (a.visuals) { var c = a.hasUserEvent("click"), e = a.visuals.labelText; c = c ? "pointer" : "default"; e.on("vclick", function (b) { return a.click(b); }); e.on("mouseover", function (b) { return a.mouseover(b); }); e.on("mouseout", function (b) { return a.mouseout(b); }); e.attr({ cursor: c }); } return a; }; c.prototype.mouseover = function (a) { var b = this.target, c = this.chart.touched(), f = "x" === this.axis.prefix; if (!1 !== this.triggerUser("mouseOver", a) && b && hj(b)) { var g = b.series; Rl(this) && ((a = this.axis.chartArea.debounce), (b = f ? b : g), a.clear("unmute"), Ol(b, "", Nl(this) || (f ? "group" : "series")), c && a.defer( "unmute", function () { Qb(g.chart); }, 8e3 )); } }; c.prototype.mouseout = function (a) { var b = this.target; if (!1 !== this.triggerUser("mouseOut", a) && b && hj(b) && Rl(this)) { var c = b.series; this.axis.chartArea.debounce.defer( "unmute", function () { Qb(c.chart); }, 230 ); } }; c.prototype.click = function (a) { var b = "x" === this.axis.prefix, c = this.target; !1 !== this.triggerUser("click", a) && c && (hj(c) && Rl(this) && "touch" !== a.device ? ((a = c.series), this.axis.chartArea.debounce.clear("unmute"), Qb(a.chart)) : "touch" === a.device && (this.axis.chartArea.resetTimers(), hj(c) && ((a = b ? c : c.series), this.chart.highlighted === a && Qb(a.chart)))); }; c.prototype.setPos = function () {}; c.prototype.value = function () { var a = this.axis, c = z(this.currentOptions.value, this._value); return a.normUserValue(c); }; c.prototype.render = function (a, c) { void 0 === c && (c = {}); if (this.isDestroyed) return this; this.setOptions().setRootVisuals(); var b = this.currentOptions, d = this.axis, g = d.chartArea, h = !1; a = this.visuals; var k = this.renderer, l = {}, m = k.renderer, n = this._metrics, p = d.isRadial, q = this._positionData, r = this.getVisualTargets(), u = this.value(), x = d.currentOptions.orientation, v = "top" === x || "right" === x || "opposite" === x; if ("origin" === this.type) { var y = (x = d.userOptions.originTick) && !1 === x.enabled; h = d.linToPos(this._px); (x || (0 !== h && 1 !== h)) && !y && (b = A({}, b, d.currentOptions.originTick)); } this._isSquished && d.currentOptions.defaultHiddenTick && (b = A({}, b, d.currentOptions.defaultHiddenTick)); y = b.fill && "none" !== b.fill; if (t(this._metrics.px)) { x = d.tickVisible(u) || b.internal; h = !a.tickLine; if (x || !h) { h = void 0; h = Bb(b.line || {}); var D = h["stroke-width"] || 0; if (!y) { var E = (a.tickLine = a.tickLine || m.path().attr({ opacity: 0 }).add(r.line)), F = void 0; if (this._rngData) if ((p = this._rngData.renderData)) l = A({ d: p.d }, p.pathOptions); else { l = {}; p = d._rngData.origin; var B = d.duV("inside" === b.placement), G = p[B.vc], H = []; p = function (a) { var c = [], d = []; d[B.vc] = G; d[B.hc] = a; c.push(nd(r.tick, d, D)); Di(c, B.o, z(b.line.length, 5)); H.push(fb(c)); }; p(this._metrics.px[0]); p(this._metrics.px[1]); l = { d: xa(H) }; } else (F = q.tickPoints), (q = p ? F[0] : nd(r.tick, F[0], D)), (p = p ? F[1] : nd(r.tick, F[1], D)), (l = { d: q ? fb([p, q]) : "M0 0" }); F = this.attrBuilder(l, h, c); l = {}; E.attr(F); } if (c.onCa) { h = !a.gridLine; k = Oa(b.gridLine || {}); v = "column" === k.width; var J = y ? !0 : !d.autoHideGrid(); (h && !tf(b.gridLine)) || !r.grid || (zc(k, k, "visible", "visible", function (a) { return "auto" === a ? J : a; }), v && "category" === d.type && ((n = d.isStackedFull()), (k.width = n ? d.clusterWidth(this._value) : d.clusterWidth()), (k.caps = g.hasRoundCaps ? "round" : void 0), delete k.dashStyle), (k = Bb(k)), (n = u), v && ((v = k["stroke-width"]) && (k["stroke-width"] = Math.round(v + D)), this._isRange && "category" === d.type && (n = Wf(u))), (d = d.getCaPath(n, r.grid, void 0, { lineWidth: k["stroke-width"], multiShape: this._isRange })), (a = a.gridLine = a.gridLine || m.path(d).attr({ opacity: 0 })), (a.parentNode && a.parentNode === r.grid.el) || a.add(r.grid), (h = this.attrBuilder({ zIndex: 5, d: d }, k, c)), a.attr(h)); } else { h = qc(b.label); g = n.text; Z(b, "label.text", g); var M = this.angledAttr(); l.val = g; l = this.attrBuilder(l, A({ autoWrap: "none" }, h), c); t(h.opacity) && (l.opacity = h.opacity); l = Ga(l, ["rotate", "x", "y"]); p = M.rotate ? (M.rotate.length ? M.rotate[0] : M.rotate) : 0; m = z(b.outline && b.outline.width, 1); q = dr(b); u = "inside" === C(d.currentOptions, "defaultTick.placement"); h = b.line.length; q = b.padding - (q ? 2 * m : 0); E = { padding: p ? 0 : q, radius: b.radius, corners: b.corners, fill: b.fill, outline: b.outline }; !p && y && (E.shape = { callout: { position: d.isHoriz ? [0.5, v !== u ? 1 : 0] : [v !== u ? 0 : 1, 0.5], size: [h, h] } }); M = A(M, Cg(E)); y && (M.zIndex = 3); w(["animation", "margin"], function (a) { l[a] && ((M[a] = l[a]), delete l[a]); }); if (!a.label) { var I = (a.label = k.box()); a.labelText = k.textStack(g).add(I); I.add(r.label); this.bindEvents(); if (this.chart.inited) { var K = l.opacity, L = l.animation; I.renderer.isAnimationDisabled(l) || ((M.opacity = 0), I.await(function () { I.el.transition({ middle: { to: { opacity: K } }, end: { opacity: K }, animation: L }); })); } } M.xContentAlignment = l.xContentAlignment = this.contentAlignment(); l.width = n.textSize[0]; l.height = n.textSize[1]; a.labelText.attr(l); k = p ? 0 : q; !p && k && ((M.x -= k), (M.y -= k)); a.label.attr(M); dr(b) && !p && ((k = a.labelText.setPreliminarySize().getBbox()), (n = a.label.getPaddingOffset(k.width, k.height)), (k = n.left), (n = n.top), m && (n -= m * (d.isHoriz ? ((u && v) || (!u && !v) ? -1 : 1) : 0)), (k || n) && a.label.attr({ x: M.x - k, y: M.y - n })); } this.visible(x, c); } this._isNew = !1; } return this; }; c.prototype.contentAlignment = function () { if (this._isRange && !1 === this._rngData.rotate && !1 !== this.currentOptions.enabled) return "center"; switch (this.axis.sideIndex()) { case 0: case 2: return "center"; case 1: return "left"; case 3: return "right"; } return null; }; c.prototype.getVisualTargets = function () { return this.axis.getVisualTargets(this.currentOptions, this._isRange); }; c.prototype.angledBounds = function () { var a, c = this.metrics().textSize; if ((a = this.angledAttr())) return hk([a.x, a.y, c[0], c[1]], a.rotate); }; c.prototype.angledAttr = function () { var a = this.axis, c = a.currentOptions, e = this._positionData, f = e.textBBox, g = va(f), h = z(c.defaultTick.padding, 3), k = { x: f[0], y: f[1] }, l = this.labelSize, m = l[0]; l = l[1]; if (t(this._cxyRotate)) k.rotate = [this._cxyRotate, g[0] - f[0], g[1] - f[1]]; else if ((!this._isRange || this._isBaseRange) && a.isHoriz) { f = a.sideIndex(); f = 0 === f || 1 === f; g = C(c, "defaultTick.label.rotate"); c = z(g, c.autoRotate); var n = [0, 0]; if ("angled" === a.labelMode && c) { k.x += e.textBBox[2] / 2; c = Yn(c); e = Uc(0, 0, c - 90, l / 2).x; f ? ((k.x -= e), 0 > c ? (n = [0, l]) : ((n = [m, l]), (k.x -= m)), a.isHoriz && (k.y = a.tickMetricsData.getMaxLength() - this._metrics.tickLength - h - l)) : ((k.x += e), 0 > c && ((n = [m, 0]), (k.x -= m))); if (this._isBaseRange && a.isHoriz) { e = "inside" === this.currentOptions.placement; var p = ce(c) * Math.abs(Math.cos((c * Math.PI) / 180)), q = Math.abs(Math.sin((c * Math.PI) / 180)); p *= m; l *= q; var r = Math.abs(this._metrics.px[1] - this._metrics.px[0]), u = Math.max(0, Math.abs(p) + Math.abs(l) - r); a = Q(g) ? r / a.tickMetricsData.getMaxLength() : 1; k.x = u ? k.x - (f ? -1 : 1) * ce(c) * ((r * a) / 2 - l / 2) : k.x - ((f ? -1 : 1) * p * a) / 2; e && (k.y -= q * (m / 2 + h + this.tickLen)); } k.rotate = [c, n[0], n[1]]; } } k.rotate || (k.rotate = [0, 0, 0]); return k; }; c.prototype.metrics = function (a) { void 0 === a && (a = {}); var b = this.currentOptions, c = this.axis, f = (this.tickLen = z(N(b, ["line", "length"]), 5)), g = z(this.currentOptions.padding, 3), h = (this._px = c.getCaLen(this.value())); c = c.valToAngle(this.value()); if (!Id(b.label)) return (this.labelSize = [0, 0]), (this._metrics = { angle: c, px: h, textSize: [0, 0], tickLength: f, tickPadding: g }); var k = this.renderer, l = this.getText(), m, n; if ((n = this._metrics)) { n = this._metrics; var p = b.label.style; void 0 === p && (p = {}); n = n.text === l && n.fontFamily === p.fontFamily && n.fontSize === p.fontSize && n.fontStyle === p.fontStyle && n.fontWeight === p.fontWeight; } n && (m = !0); n = this._metrics || {}; m ? (this._metrics = A(n, { tickLength: f, tickPadding: g, px: h, angle: c })) : ((b = qc(b.label)), (k = k.textStack(l)), k.attr(A({ autoWrap: "none" }, b)), (m = k.composeCombinations()[0]), (p = void 0), !~l.indexOf(" ") || ~l.indexOf("= b && (c.formatString = "d"); } return A(c, tD[a.chart.getStyling()]); }, du = function (a, c) { !c && a && a.pop && ((c = a[1]), (a = a[0])); a > c && ((c = G([c, a], 2)), (a = c[0]), (c = c[1])); return [a, c]; }, Zm = function (a) { return { string: "string", category: "string", number: "number", date: "time", time: "time" }[a] || a; }, vD = function (a) { var c = "category" === a.type, b = !!a.syncAxis, d = C(a.userOptions, "defaultTick.gridLine"); if ("x" === a.prefix && c) { if (a.isHeatmap) return !0; if (d && tf(d)) return !1; var e = a.getSeriesColl().items, f = $a( B(e, function (a) { return a.yAxis; }) ); d = a.isRadial; var g = (function () { var a; try { for (var b = ya(f), c = b.next(); !c.done; c = b.next()) { var d = c.value.range; if (0 !== d.min && 0 !== d.max) return !1; } } catch (u) { var e = { error: u }; } finally { try { c && !c.done && (a = b.return) && a.call(b); } finally { if (e) throw e.error; } } return !0; })(), h = $a( B(e, function (a) { return a.info.type.seriesType; }) ), k = function (a) { return ( 0 === ea(a, function (a) { return "column" !== a && "area" !== a && "variwide" !== a; }).length ); }; e = 0 < ea(e, function (a) { return a.info.hasYRanges; }).length; var l = function () { var b; try { for (var c = ya(f), d = c.next(); !d.done; d = c.next()) { var e = d.value; if (e) { var g = e.getValToLin()(0); switch (a.sideIndex()) { case 0: case 3: return 0 === g; case 1: case 2: return 1 === g; } } } } catch (x) { var h = { error: x }; } finally { try { d && !d.done && (b = c.return) && b.call(c); } finally { if (h) throw h.error; } } }; return (!d && g && l() && !e && k(h) && c) || (c && b); } }, wD = function (a) { var c = a.chartArea; if (c.chartAreaSet && c.axes && !a.userOptions.alternateGridFill) { var b = c.axes({ prefix: "y" }).items.length; c = c.chartAreaSet.freeAxes.y.id; if (1 < b && a.id !== c) return !0; } }, jj = (function (a) { function c(b, c, e) { var d = a.call(this, b.chart || b, c, [b, e, c]) || this; d.serList = []; d.catList = []; d.dataPositions = new rD(); d.clusterCounts = {}; d.originValue = void 0; d.min = void 0; d.max = void 0; d.breaks = []; d.events = { setRange: new rd() }; d.isVisible = !0; d.type = ""; d.usedDataKeys = []; d.noData = !0; d.dataInfo = { precision: 0, seriesTypesUnique: [], serColl: void 0 }; d.isPrivate = !1; d.childAxes = []; d._ticks = []; d._markers = []; d.labelMode = "normal"; d.altGridFillVisuals = []; d.attribs = {}; d.initSizeMetrics = function () { d._sizeMetrics = { clipped: [0, 0], bbox: [0, 0, 0, 0], length: 0, size: [0, 0], labelSize: [0, 0], history: [] }; }; d.toPosition = function (a) { var b = I(a), c = "category" === d.type; if ("string" === b) -1 < a.indexOf("%") && (a = d.chartArea.chartAreaSet.replaceTokens({ token: a }, d.getFormatInfo())); else { if (a.pop) return ( (b = typeof a[0]), (a = B(a, function (a) { return d.toPosition(a); })), c && !d.isRadial && "string" === b && ((a = sa(a)), (a = xf(a, -0.5))), a ); if ("object" === b && "time" === d.type) return Nk(a, d.range ? d.range.min : d.min, d.range ? d.range.max : d.max); if (c) return a; } return d._toPosition(a); }; d.toText = function (a) { return a; }; d._toPosition = function (a) { return a; }; d._autoTimeFormats = {}; d._incompatableTypes = { stackedFull: "time" }; d.overflowSize = { tL: [0, 0], bR: [0, 0], margins: [0, 0, 0, 0] }; d._nRects = []; d.zoomRange = []; "chartArea" === b.kind && (b._axes.push(d), ("x" === e ? b.xAxis : b.yAxis).push(d), b.chartAreaSet._axes.push(d)); d.initSizeMetrics(); d.possibleKeys = Pz(e); d.resetMetricsData(); d.initFP(); d.options(c, !1); return d; } K(c, a); c.prototype.getFormatInfo = function (a, c) { var b = !!c, d = b ? "_formatInfo" : "_formatInfoData"; if (!this[d] || t(a)) { var g = {}, h = this.currentOptions, k = this.dataType, l = 0, m = !1; c && ((m = c.split(" ")), (c = m[0]), (m = "first" === m[1])); g.fStr = h.formatString; g.culture = h.cultureName || this.chart.currentOptions.defaultCultureName || "en-US"; g.fStr ? ((g.fStrStrict = !0), (g.precision = this.dataInfo.precision)) : "number" === k ? (!1 !== this.options("defaultTick.enabled") && this.tickPositions && this.tickPositions.all.length && (l = Xf(Nz(this.tickPositions.all))), (c = void 0), !b && t((c = this.dataInfo.precision)) && ((c = Math.min(c, 3)), (c = Math.max(c, l)), (g.fStr = "n" + c))) : "time" === k && ((g.fStr = t(a) ? { year: "yyyy", month: "MMM", day: "d", hour: "t", minute: "t", second: "T", millisecond: "fff" }[Mk(a)] : "d"), (g.fStr = this._autoTimeFormats[c] || g.fStr), "major" === c && m ? (g.fStr = this._autoTimeFormats.majorFirst) : "minor" === c && m && (g.fStr = this._autoTimeFormats.minorFirst)); g.isTime = "time" === k; !g.fStr || (g.isTime && t(a)) || (this[d] = g); } return g || this[d]; }; c.prototype.format = function (a, c) { var b = this; c = b.getFormatInfo(a, (void 0 === c ? { tickType: null } : c).tickType); var d = function (a) { return t(a) && a.toFixed && -1 < a && b.catList.length > a ? b.catList[a] : ""; }; if ("category" === b.type) { if (t(a)) { if (a.pop && 2 === a.length && 0 === a[0] % 0.5 && 0 === a[1] % 0.5) if (1 === la(a[0], a[1])) a = na(Wf(a)); else return (a = sa(a)), hb([a[0] + 0.5, a[1] - 0.5], d); if ((d = d(a))) return d; } } else { if ("time" === b.type) return (c = c.fStr), b.formatter("object" === typeof c ? c : void 0).formatDate(new Date(a), c); b.isStackedFull() && (a *= 100); } return b.formatter().formatNumber(a, c.fStr); }; c.prototype.formatter = function (a) { if (a) return new Ng(this.currentOptions.cultureName || "en-US", a); this._formatter || (this._formatter = new Ng(this.currentOptions.cultureName || "en-US", {})); return this._formatter; }; c.prototype.init = function () { for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c]; c = G(a, 2); a = c[0]; c = c[1]; "chartArea" === a.kind && (this.chartArea = a); this.prefix = c; this.defaultContextOptions = C(this.chart, "typeContextOptions.axes." + c) || {}; var e = a.ctManager || a.ctm; z(a.isHoriz, e && ("horizontal" === e.settingVal("chartType") || "horizontal" === e.settingVal("linearGaugeType"))) ? (this.isHoriz = "y" === c ? !0 : !1) : "x" === c && (this.isHoriz = !0); this.isRadial = !1; this.updateOptions = { animation: this.chart.options("animation") }; this.defaultMutable = !0; }; c.prototype.initFP = function () { var a = this; a.ticks = Xa( wb, function () { return a._ticks; }, function () { return 0; }, { push: function (b, c) { a.userOptions.customTicks = a.userOptions.customTicks || []; a.userOptions.customTicks.push(b); a.setOptions(); !1 !== c && a.render(void 0, c).renderOnCa(c); }, } ); a.markers = Xa( wb, function () { return a._markers; }, function () { return 0; }, { push: function (b, c) { Qz(a, b, c); !1 !== c && a.renderOnCa(c); a.chart.chartAreaSet.reflow(c); }, } ); }; c.prototype.normalizeOptions = function (b) { var c, e; b = a.prototype.normalizeOptions.call(this, b); "undefined" !== (e = I((c = N(b, ["scale", "range"])))) && "array" === e && ("time" === b.scale.type && (O(c[0]) && (c[0] = Gi(c[0])), O(c[1]) && (c[1] = Gi(c[1]))), Z(b, "scale.range", { min: c[0], max: c[1] })); t(N(b, ["scale", "invert"])) && Z(b, "scale.invert", !0 === N(b, ["scale", "invert"])); w(b.markers, zb); b.customTicks && (b.customTicks = B(b.customTicks, function (a, b) { if ("number" === typeof a) return { value: a }; a._lI = b; return a; })); return b; }; c.prototype.defaultOptions = function () { var a = this.chart.options("defaultCultureName"); this.defaultContextOptions.cultureName = a || "en-US"; a = uD(this); var c = this.chart.currentOptions.defaultAxis; c && A(a, c); return this.defaultContextOptions ? A(a, this.defaultContextOptions || {}) : a; }; c.prototype.dependentOptions = function () { return [ { option: ["line.color", "line.width", "line.breaks"], check: function (a) { return a; }, dependent: "line.visible", value: !0, }, ]; }; c.prototype.options = function (a, c) { var b = this.chart, d = b.currentOptions.defaultAxis || {}, g = this.optionsGetter(a); if ("NotGetter" !== g) return g; a = A({}, a); a = this.normalizeOptions(a); this.invalidate(); g = (g = a.orientation) && g !== this.userOptions.orientation; var h = pa(a); 0 < gc(h, sD).length && w(this.serList, function (a) { return a.seriesDirty.all(!0); }); A(this.userOptions, a); this.setOptions(); t((h = this.options("visible"))) && (this.isVisible = h); this.currentOptions.staticDraggable && (this._isDragHost = !0); a.events && (h = a.events.setRange) && this.events.setRange.on(h); (a.defaultTick || a.defaultMinorTick) && this.ticks().each(function (b) { A(b.defMinorTickOptions, a.defaultTick, a.defaultMinorTick); b.options({}, !1); }); g && this.isAdded && this.resetVisuals(); g = this.rootVisuals; (a.label || d.label) && g && g.label && g.label.options(this.currentOptions.label); t(a.caOffset) && ((d = this.getParentPanel()), (g = this.rootPanel.parent) && g !== d && ((this.parentLayoutItem = d || this.renderer), this.rootPanel.add(d), this.applyCaOffset())); if (!1 !== c) { c = this.normalizeUpdateOpt({ animation: b.currentOptions.animation }, c); this.chartArea.invalidate(); this.setRange(); b.redraw(c); var k = !0; } b.triggerOptionsApplied("axis", this); !k && this.afterUpdate(c); return this; }; c.prototype.getParentPanel = function (a) { a = a || this.rootPanel.parent; return t(this.currentOptions.caOffset) && !1 !== this.isVisible && a && a instanceof Tg ? a.parent : a; }; c.prototype.invalidate = function () { this._formatter = this._formatInfoData = this._formatInfo = void 0; this.setOptions(); return this; }; c.prototype.getRange = function () { var a = this.range; return { min: a.min, max: a.max, dataMin: this.min, dataMax: this.max }; }; c.prototype.getCategories = function () { return "category" === this.type ? (this.catList ? this.catList.slice(0) : []) : void 0; }; c.prototype.syncLegend = function () { w(this._markers, function (a) { a.syncLegendEntry(); }); }; c.prototype.setData = function (a) { void 0 === a && (a = !1); var b = this, c = b.prefix, f = b.chartArea, g = b.currentOptions, h = C(g, "scale.syncWith") || "", k = f.isZoomLive(), l = [], m = 0, n = [], p = f.ctManager, q = p.isType("heatmap") || p.isType("calendar"); b.isHeatmap = q; p = b.chart.options("axisToZoom"); var r = f.getZoomAxes()[0], u = "y" === c && r && (!p || -1 === p.indexOf("y")) && ((r && r.isZoomed) || f.axes("x").isZoomed); b.options("type"); if (this._isDragHost) return this; f = b.dataInfo.serColl = b.getSeriesColl(function (a) { return a.isVisible; }); if ("map" === b.options("type")) { var x = !0; f.each(function (a) { x && "map" !== a.type && (x = !1); }); f = b.dataInfo.serColl = f.filter(function (a) { return "map" !== a.type; }); if (x) return (b.mapsOnly = !0), this; } f.each(function (a) { return a.seriesDirty.pointIndex() && a.setDataInfo(); }); var v = []; if (b.applyAxisSync(h, f)) return this; var y = b.possibleKeys.slice(0); b.isStackedFull() && y.splice(y.indexOf("y"), 1); f.each(function (a) { n.push.apply(n, H(gc(a.indexer.getKeys(), y))); }); if (!n.length) if ((g = N(g, ["scale", "range"])) && "none" !== h) b.data = g.slice ? g.slice(0) : [g.min, g.max]; else return (b.noData = !0), this; b.noData = !1; b.usedDataKeys = $a(n); var t = !0; b.serList = f.each(function (a) { var c = a.indexer, d; v.push(a.type); if (u && a.xAxis.isZoomed) { var e = a.xAxis.range; e = [e.min, e.max]; if (a.info.labelTextInfo.xNotSorted) { for (var f = c.data.x, g = c.data.y, h = (d = void 0), n = void 0, p = void 0, r = [], x = 0, y = f.length; x < y; x++) { var D = f[x]; if (void 0 === d || (D > e[0] && D < d)) (d = D), (r[0] = x); if (void 0 === h || (D < e[1] && D > h)) (h = D), (r[1] = x); D < e[1] && D > e[0] && ((D = g[x]), (void 0 === n || n < D) && (n = D), (void 0 === p || p > D) && (p = D)); } f = [p, n]; } else (r = [c.findInterpolatedInfo("x", e[0]), c.findInterpolatedInfo("x", e[1])]), (r = [r[0].i + 1, r[1].i]), -1 === r[0] && -1 === r[1] ? (r = void 0) : (-1 === r[1] ? (r = [r[0]]) : -1 === r[0] && (r[0] = 0), 2 === r.length && (r[1]++, (r[1] = ua(r[1], r[0] + 1, c.lengths.x - 1))), (f = [a.yAt(e[0]), a.yAt(e[1])])); } x = 0; for (e = b.usedDataKeys.length; x < e; x++) if ( ((g = b.usedDataKeys[x]), "svv" === g || "svxv" === g ? (d = c.dataFlat[g]) : ((d = c.getKey(g)), r && ((d = d.slice.apply(d, H(r))), "y" === g && (d.splice(0, 0, f[0]), d.push(f[1])))), q && (d = $a(d)), d && d.length) ) { h = l.length; n = 0; for (p = d.length; n < p; n++) (y = d[n]), t && l[n + h - 1] > y && (t = !1), l.push(y); k ? (m = b.dataInfo.precision) : (d = c.uniqTypes[g]) && -1 < d.indexOf("number") && (m = Math.max(c.countDecimals(g), m)); } b.isHeatmap && (l = $a(l)); w = w || a.info.labelTextInfo.xNotSorted || !1 === a.info.xIsSorted || !1 === t; }).items; var w = "x" !== c ? !0 : w; b.dataInfo = { precision: m, seriesTypesUnique: $a(v), serColl: f }; b.data = l; Af(l, function (a) { return lc(a) || Ha(a); }); l && "object" === typeof l[0] ? ((c = B(l, function (a) { return a.getTime(); })), (b.dataSortedUniq = B(ad(w ? sa(c) : c), function (a) { return new Date(a); }))) : (b.dataSortedUniq = ad(w ? sa(l) : l)); b.invalidate(); !a && b.detectType(); return this; }; c.prototype.applyAxisSync = function (a, c) { var b = this; a || (a = Mz(this, c)); if ((a = this.syncAxis = this.ciManager.exists(a))) { this.min = a.min; this.max = a.max; this.range = qa(a.range); this.type = a.type; this.dataType = a.dataType; this.usedDataKeys = a.usedDataKeys.slice(0); this.catList = a.catList.slice(0); this._toPosition = a._toPosition; var d = C(a.currentOptions, "scale.type"); d && !C(this.userOptions, "scale.type") && ((this.currentOptions.scale = this.currentOptions.scale || {}), (this.currentOptions.scale.type = d)); "category" === a.type && (c.each(function (a) { a.reIndexStringVals(b); }), c.items.length || ((this.dataPositions = qa(a.dataPositions)), this.resetTicksLabels())); this.setViewState(!0); return !0; } }; c.prototype.detectType = function () { var a = this, c = this, e = [], f, g = [], h = c.usedDataKeys; if (c.mapsOnly) return (c.dataType = Zm("number")), this; var k = c.getSeriesColl().items; w(k, function (a) { w(h, function (b) { (f = a.indexer.uniqTypes[b]) && e.push.apply(e, H(f)); f && "string" === f[0] ? (g.push(a.indexer.getKey(b)), (a._catCache = a._catCache || []), (a._catCache[b] = a.indexer.getKey(b))) : "category" === c.type && f && "number" === f[0] && C(a._catCache, NaN + b + ".length") && g.push(a._catCache[b].slice(0)); }); }); g = B(g, $a); e = $a(e); var l = e[0]; 1 < e.length || (c.dataType = Zm(l)); l = C(c.userOptions, "scale.type"); l = (this.checkTypeCompatability(l, c.dataType) && l) || C(c.contextOptions(), "scale.type"); if (-1 < e.indexOf("string")) { if ("time" === l) (c.dataType = c.type = "time"), (c._toPosition = Gi); else if ("map" !== c.chart.ctManager.settingVal("chartType")) { c.dataType = Zm((c.type = "category")); l = By(g); c.catList.length && l.length && c.catList.join("") !== l.join("") && c.resetTicksLabels(); var m = (c.catList = l); c.childAxes && w(c.childAxes, function (a) { return a.resetTicksLabels(); }); c._toPosition = function (a) { return m.indexOf(a); }; } w(k, function (b) { b.reIndexStringVals(a); }); c.setData(!0); } else -1 < e.indexOf("date") ? ((c.dataType = c.type = "time"), (c._toPosition = Gi)) : "time" === l && (c.dataType = c.type = "time"); c.originValue = "category" !== c.type && "time" !== c.type ? 0 : void 0; this._duV = void 0; return this; }; c.prototype.checkTypeCompatability = function (a, c) { var b = !a || !c || this._incompatableTypes[a] !== c; !b && Ma.emit("warning", this.id, "incompatableAxisTypeOptions", { container: this.chart.getWrapper(), data: [a, c] }); return b; }; c.prototype.getSeriesColl = function (a) { var b = this, c = b.parentAxis || b; if (a) { if ("function" === typeof a) return b.chart.series(function (d) { var e; return (null === (e = d[b.prefix + "Axis"]) || void 0 === e ? void 0 : e.id) === c.id && a(d); }); a[b.prefix + "Axis"] = { id: c.id }; return b.chart.series(a); } return b.chart.series(function (a) { var d; return (null === (d = a[b.prefix + "Axis"]) || void 0 === d ? void 0 : d.id) === c.id; }); }; c.prototype.setRange = function (a, c) { function b(a) { var b = [], c = k.markers; a = a.getCustomTicks(); var d = []; c && b.push.apply(b, H(c)); a && b.push.apply(b, H(a)); w(b, function (a) { a.includeInScale && ((a = r(a.value)), a.pop ? d.push.apply(d, H(a)) : d.push(a)); }); d.length && ((b = [Math.min.apply(Math, H(d)), Math.max.apply(Math, H(d))]), (v = Math.max(v, b[1])), (x = Math.min(x, b[0]))); } var d = this, g = this, h = g.syncAxis, k = g.currentOptions, l = g.currentOptions.scale, m, n = { axOptions: k, axLength: g._sizeMetrics.length }, p = g.range, q = A({}, g.range), r = g.toPosition; if (g.noData || g._isDragHost || g.mapsOnly) return this; p = function (a) { x = g.min = a[0]; v = g.max = a[1]; }; var u = g.dataSortedUniq; u = [u[0], u[u.length - 1]]; h ? p([h.min, h.max]) : ("time" == g.dataType ? p(B(u, g._toPosition)) : p(u), b(this)); x === v && ((x -= 0.2), (v += 0.2)); !h && zc( n, g.userOptions, function (a, b) { t(b.min) && (a.userMin = r(b.min) - 0.2); t(b.max) && (a.userMax = r(b.max) + 0.2); }, "scale.range" ); zc( n, g.userOptions, function (a, b) { "object" == typeof b && "time" !== g.dataType && "time" !== g.type ? Ma.emit("warning", g.id, "objInterval", { data: [g.prefix], container: d.chart.getWrapper() }) : (a.userInterval = b); }, "scale.interval" ); g.snapToZero = !1; l.includeOrigin ? (n.snapZero = !0) : "time" !== g.type && ((p = g.chartArea), "y" === g.prefix && (p.chartArea || p).series({ info: { type: { snapToZero: !0 } } }).items.length && (n.snapZero = !0)); g.snapToZero = n.snapZero; !h && g.setAutoScaleBreaks(); n.breaks = h ? h.breaks : g.breaks; !h && zc( n, g.currentOptions, function (a, b) { "array" === I(b) && (a.breaks = b); }, "scale.breaks" ); n.minInterval = C(k, "scale.minInterval"); n.userMinorInterval = l.minorInterval; if (g.isZoomed) { var x = g.zoomRange[0], v = g.zoomRange[1]; n.userMin = x; n.userMax = v; p = g.range = Dg(x, v, 8, n); p.min = x; p.max = v; } else (h = C(g.userOptions, "scale.range.min")), (l = C(g.userOptions, "scale.range.max")), (p = z(h, x)), (u = z(l, v)), g.isStackedFull() ? ((p = g.range = Dg(x, v, 10, n)), (p.min = 0), (p.max = 1)) : "z" !== g.prefix || n.snapZero ? ((p = g.range = Dg(p, u, 8, n)), "time" === g.type && ((p.min = x), (p.max = v))) : (p = g.range = { min: g.min, max: g.max }), t(h) && (p.min = r(h)), t(l) && (p.max = r(l)), (g.unZoomedRange = { min: p.min, max: p.max }); t((m = C(k, "scale.minorInterval"))) && "number" === typeof m && (p.minorInterval = m); t((m = C(k, "scale.interval"))) && m && "auto" !== m && (p.interval = m); t((m = C(k, "scale.zoomLimit"))) ? (g.zoomLimit = m) : (g.zoomLimit = g.viewState ? Math.max(g.linToVal(5) - g.linToVal(0), 0.001 * (g.max - g.min)) : 0.05 * (p.max - p.min)); g.loadDPs().adjustRange().setViewState(a, c); (q.min === p.min && q.max === p.max) || g.getSeriesColl({ isVisible: !0 }).each(function (a) { return a.seriesDirty.pos(!0); }); return this; }; c.prototype.removeMarker = function (a) { var b = this; a = this._markers.indexOf(a); Af(this.currentOptions.markers, function (a) { return a.id === b.id; }); this._markers.splice(a, 1); }; c.prototype.adjustRange = function () { var a = this, c = a.snapToZero, e = a.min, f = a.max, g = a.isHoriz !== a.chartArea.isHoriz && "x" === a.prefix, h = 0.5, k = function (b) { return N(a.userOptions, ["scale", "range", b]); }, l = k("min"), m = k("max"), n = k("padding"); if (!a.syncAxis && !a.isZoomed) { k = a.range; if (a.isHeatmap) (g = 0.5), "category" !== a.type && (g = a.shortestValDistance / 2), (k.min = t(l) ? a.normUserValue(l) : e - g), (k.max = t(m) ? a.normUserValue(m) : f + g); else if (t(n)) (g = 0), nb(n) ? (g = la(f, e) * n) : "time" === a.type && n.unit && (g = Nh(n).unitRange), (e = [e - g, f + g]), c && (e = [Math.min(e[0], 0), Math.max(e[1], 0)]), (k.min = t(l) ? a.normUserValue(l) : e[0]), (k.max = t(m) ? a.normUserValue(m) : e[1]); else { c = a.getSeriesColl(function (a) { return a.isVisible; }); var p = c.filter(function (a) { return a.info && a.info.type.drawRect; }); c = c.filter(function (a) { return a.info && "bubble" === a.info.type.seriesType; }); n = 0 < p.items.length; var q = 0 < c.items.length; if (n || q) h += a.options("spacingPercentage") / 2.2; if ("category" === a.type) (k.min = t(l) ? l : e - h), (k.max = t(m) ? m : f + h); else { if (g) { var r = void 0, u = [], x = 0; p.each(function (a, b) { a.indexer.calculations.x && (u.push(a.indexer.min("x"), a.indexer.max("x")), (x = Math.max(x, a.indexer.data.x.length))); }); var v = u[0] === e && u[1] === f; if (p.items.length && u.length) { var y = a.getShortestDistPerc(); r = [Math.min.apply(Math, H(u)), Math.max.apply(Math, H(u))]; y = (la(f, e) || 0) / Math.max(x - 1, 1); y *= h; v ? (0 === y && (y = h), (k.min = r[0] - y), (k.max = r[1] + y)) : ((k.min = Math.min(r[0] - y, k.min)), (k.max = Math.max(r[1] + y, k.max))); y = !0; } u = []; x = 0; c.each(function (a, b) { a.indexer.calculations.x && (u.push(a.indexer.min("x"), a.indexer.max("x")), (x = Math.max(x, a.indexer.data.x.length))); }); h = 0.1; p = u[0] === e && u[1] === f; c.items.length && u.length && ((r = [Math.min.apply(Math, H(u)), Math.max.apply(Math, H(u))]), (h *= r[1] - r[0]), p ? ((k.min = r[0] - h), (k.max = r[1] + h)) : ((k.min = Math.min(r[0] - h, k.min)), (k.max = Math.max(r[1] + h, k.max))), (y = !0)); } k.min = t(l) ? a.normUserValue(l) : k.min; k.max = t(m) ? a.normUserValue(m) : k.max; y || "category" === a.type || (!g && "time" !== a.type) || ((g = n ? 0.05 : q ? 0.1 : 0.02), (g *= la(k.max, k.min)), t(l) || (k.min = e - g), t(m) || (k.max = f + g)); } } a.unZoomedRange = { min: k.min, max: k.max }; } return this; }; c.prototype.setAutoScaleBreaks = function () { this.autoScaleBreaks(); return this; }; c.prototype.autoScaleBreaks = function () { function a(a) { for (var b = [], c = 0, d = a.length; c < d; c++) c && b.push([a[c - 1], a[c], a[c] - a[c - 1]]); return b; } function c(a, b) { function c(a, b) { return a[2] - b[2]; } function d(a, b) { return b[2] - a[2]; } a.sort(b ? c : d); } function e(a, b) { function c(a, b) { return a[0] - b[0]; } function d(a, b) { return b[0] - a[0]; } void 0 === b && (b = !0); a.sort(b ? c : d); } function f(a) { for (var b = [], c = 0, d = a.length; c < d; c++) b.push(a[c][0]), b.push(a[c][1]); return [Math.min.apply(null, b), Math.max.apply(null, b)]; } var g = this.dataSortedUniq, h = [this.min, this.max], k = this.max - this.min, l = 0, m = 0, n = 100, p = [], q = C(this.userOptions, "scale.breaks.limit"), r = C(this.userOptions, "scale.breaks"), u = []; if (q) { if ((r = C(this.currentOptions, "markers"))) { k = 0; for (var x = r.length; k < x; k++) { var v = r[k], t = void 0; "array" === I(v.value) && 1 < v.value.length ? ((t = this.toPosition(v.value[1])), g.push(t)) : (t = this.toPosition(v.value)); (Kb(h, t) || v.includeInScale) && g.push(t); } g.sort(function (a, b) { return a < b ? -1 : a > b ? 1 : 0; }); k = (g[g.length - 1] > this.max ? g[g.length - 1] : this.max) - (g[0] < this.min ? g[0] : this.min); } h = a(g); c(h, !0); for (r = 0; r < h.length; r++) (x = h[r][2]), (g = (x / k) * 100), x < 0.08 * k && (g < n && (n = g), l++, (m += x)); m /= l; if (0 < l) { g = 0.08 / (n / 100); g = (k / g) * (g - 1); v = 3 > l ? 35 : 10 > l ? 30 : 15 > l ? 25 : 20 > l ? 20 : 15; if (7 > n && 1 <= l) { r = 0; for (l = h.length; r < l; r++) (t = h[r]), (x = t[2]), x > 10 * m && (x / k) * 100 > v && p.push(t); c(p, !1); m = []; l = 0; for (h = p.length; l < h; l++) if (l < q) m.push(p[l]); else break; p = m; q = l = 0; for (m = p.length; q < m; q++) (h = p[q]), l < g ? (l += h[2]) : (p.splice(q--, 1), (m = p.length)); if (p.length) for (q = f(p), q = q[1] - q[0], q = k - (q - -(0.2 * (k - q))), g = l = void 0, g = 8 < (k / q) * n ? (l = 0.4 * q) : (l = 0.2 * q), 1 < p.length && (l = g = 2 * l), q = 0, m = p.length; q < m; q++) (n = p[q]), "time" === this.type && ((k = function (a) { return a instanceof Date ? a.getTime() : a; }), (n[0] = k(n[0])), (n[1] = k(n[1]))), n[0] + g > n[1] - l ? ((k = 0.2 * n[2]), (n[0] += k), (n[1] -= k)) : ((n[0] += g), (n[1] -= l)), u.push(n); } e(u); this.breaks = u; } else this.breaks = []; } else r && (this.breaks = Wr(this, r)); }; c.prototype.loadDPs = function () { var a = this, c = this, e = c.chartArea; if ("chartArea" !== e.kind || !e.isZoomLive()) { var f = this.dataPositions; f.reset(); var g = function (a) { return a; }; w(this.serList, function (b) { if (b.isVisible) { var d = b.indexer.getKey(a.prefix); d = d.length ? d : c.data.slice(0); var e = b.indexer.uniqTypes[a.prefix]; e && "date" === e[0] && (g = function (a) { return a.getTime(); }); e = 0; for (var h = d.length; e < h; e++) { var n = f.add(g(d[e])), p = b.info.type; p.clusters && (n.clusters[p.seriesType] = (n.clusters[p.seriesType] || 0) + 1); } } }); this.loadDPs_shortestDistance(); } return this; }; c.prototype.normUserValue = function (a) { var b = this.toPosition(a); this.isRadial || "category" !== this.type || "string" !== typeof a || (b = [b - 0.5, b + 0.5]); return b; }; c.prototype.getShortestDistPerc = function () { return this.syncAxis ? this.syncAxis.getShortestDistPerc() : t(this.shortestValDistance) ? this.shortestValDistance / (this.range.max - this.range.min) : 1; }; c.prototype.setTickPositions = function () { var a = this, c = a.currentOptions, e = c.scale || {}, f = !1 !== C(c, "defaultTick.enabled"), g = !1 !== C(c, "defaultMinorTick.enabled"), h = a.range, k = []; c = []; var l, m = e.interval, n = e.minorInterval, p = a.getPointTicks(), q = a.getCustomTicks(); a.pointTicks = { values: p.map(function (a) { return a.value; }), configs: p.map(function (a) { return a.config; }), points: p.map(function (a) { return a.point; }), }; var r = e.type && 0 === e.type.toLowerCase().indexOf("log"), u = e.logBase || 10; (m && "auto" !== m) || (m = void 0); var x = function (b) { var c = []; w(b, function (b) { a.valVisible(b) && c.push(b); }); return c; }; if (r && !t(m)) (f = function (b, c, d, e) { void 0 === e && (e = 100); var f = 0, m = g && "auto" === n; m && (l = l || []); for ( var p = function () { v = parseFloat(Math.pow(u, b).toFixed(7)) * (d ? -1 : 1); a.valVisible(v) && k.push(v); b += c; if (m) { var g = v, n = parseFloat(Math.pow(u, b).toFixed(7)); ob(10, function (b) { b && (-1 === k.indexOf(g) && Math.abs(g) < Math.abs(n) && a.valVisible(g) && l.push(g), (g += v)); }); } q = f++ > e || v > h.max || v < h.min; }; !q; ) p(); if (g && "auto" === n) for (b = h.log[0]; !q; ) { -1 === k.indexOf(v) && a.valVisible(v) && l.push(v); var q = !0; } }), 0 === h.min ? (f(Math.ceil(h.log[1]), -1, !1, 3), (h.logMin = Math.log(k[k.length - 1]) / Math.log(u)), a.valVisible(0) && k.push(0)) : 0 === h.max ? (a.valVisible(0) && k.push(0), f(Math.ceil(h.log[0]), -1, !0, 3), (h.logMax = Math.log(Math.abs(k[k.length - 1])) / Math.log(u))) : 0 < h.min ? f(Math.floor(h.log[0]), 1, !1) : 0 > h.max ? f(Math.floor(h.log[1]), 1, !0) : (-1 < h.min && (f(Math.ceil(h.log[0]), -1, !0, 1), (h.logMin = Math.log(Math.abs(k[k.length - 1])) / Math.log(u))), 1 > h.max && (f(Math.ceil(h.log[1]), -1, !1, 1), (h.logMax = Math.log(k[k.length - 1]) / Math.log(u))), -1 >= h.min && f(h.logMax || 0, 1, !0), a.valVisible(0) && k.push(0), 1 <= h.max && f(h.logMin || 0, 1, !1)), (h.logRange = k.length - 1); else if ("category" === a.type) f && ((k = x(a.dataPositions.toArray())), a.isRadial || (k = k.map(function (a) { return [a - 0.5, a + 0.5]; }))); else if ("time" === a.type) !f || m || n || e.minInterval ? (f && (k = a._getTimeTickPositions()), g && t(n) && (l = a._getTimeTickPositions(!0))) : ((f = a._getTimeTickPositionsAuto()), (k = f.major), (l = f.minor)); else { e = m || h.interval; m = Xf([h.min, h.max, e]); if (f) { var v = na(Vb.floor(h.min / e) * e, m); f = 1; for (r = v; v <= h.max; ) a.valVisible(v) && k.push(v), (v = na(r + e * f++, m)); } if (g && t(h.minorInterval)) for (m = Xf([h.min, h.max, h.minorInterval]), v = na(Vb.floor(h.min / h.minorInterval) * h.minorInterval, m), l = [], f = 0, r = v; v <= h.max; ) -1 === k.indexOf(v) && a.valVisible(v) && l.push(v), (v = na(r + h.minorInterval * f++, m)); } a.invalidate(); if (q) { var y = [], D = []; f = 0; for (e = q.length; f < e; f++) if (((m = q[f]), "time" !== a.type || "object" !== typeof m.value || m.value.pop)) t(m.value) && ((x = r = a.toPosition(m.value)), a.isRadial || "category" !== a.type || ("string" === typeof m.value && (r = [r - 0.5, r + 0.5]), 2 === r.length && (x = xf(r, 0.1))), a.valVisible(x) && (y.push(r), k.push(r))); else for (r = Nk(m.value.pattern || m.value, a.min, a.max), x = 0; x < r.length; x++) (r[x].v = m.value), a.valVisible(r[x]) && (y.push(r[x]), k.push(r[x])); !D.length && (D = void 0); } if (p && p.length) for (f = 0, e = p.length; f < e; f++) { m = p[f]; r = a.toPosition(m.value); if (!a.isRadial && "category" === a.type) { r = [r - 0.5, r + 0.5]; var E = !0; } a.valVisible(r) && (y.push(r), k.push(r)); } a.tickPositions = ad(E ? k : sa(k)); c.push.apply(c, H(k)); y && ((a.tickPositions.custom = y), c.push.apply(c, H(y))); D && ((a.tickPositions.cpPositions = D), c.push.apply(c, H(D))); l && ((a.tickPositions.minor = l), c.push.apply(c, H(l))); E = a.tickPositions.length === p.length && E; a.tickPositions.all = ad(E ? c : sa(c)); return this; }; c.prototype._getTimeTickPositions = function (a) { var b = this.range, c = this.options("scale." + (a ? "minorInterval" : "interval")); (c && "auto" !== c) || (c = void 0); var f = Nh(c || b.interval); !c && 10 < b.range / (f.unitRange * f.count) && (f = Nh(b.range)); b.timeInterval = f; a = Mh(f, void 0, new Date(Math.round(b.min)), new Date(Math.round(b.max))); !c && 20 < a[0].length && ((f.multiplier = Math.floor(a[0].length / 10)), (a = Mh(f, void 0, new Date(Math.round(b.min)), new Date(Math.round(b.max))))); this._autoTimeResult = b = { intervals: a, pair: { major: { unit: f.unit, multiplier: f.count }, minor: { unit: f.unit, multiplier: f.count } }, sigUnits: gp(a) }; this._autoTimeFormats = fp(b); return a[0]; }; c.prototype._getTimeTickPositionsAuto = function () { var a = this.range; a = [new Date(Math.round(a.min)), new Date(Math.round(a.max))]; a = xw(a[0], a[1], 10, this.chartArea.isDragging && this._autoTimeResult); var c = a.intervals; this._autoTimeResult = a; this._autoTimeFormats = fp(a); return { major: c[0], minor: c[1] }; }; c.prototype.loadDPs_shortestDistance = function () { var a = this.range; this.shortestValDistance = this.dataPositions.getShortestRange(); this.shortestPercDistance = this.shortestValDistance / (a.max - a.min); return this; }; c.prototype.isLog = function () { return Tl(this, function (a) { return 0 === a.toLowerCase().indexOf("log"); }); }; c.prototype.isStacked = function () { return Tl(this, function (a) { return -1 < a.indexOf("stacked"); }); }; c.prototype.isStackedFull = function () { return Tl(this, function (a) { return "stackedfull" === a.toLowerCase(); }); }; c.prototype.getValToLin = function () { return this.viewState ? this.viewState.valToLin : void 0; }; c.prototype._getValToLin = function () { var a = this, c = a.range, e = a.breaks, f = a.isInverted(), g = f ? [0, 1] : [1, 0]; if (e.length) { f = a._openRanges(); var h = f.ranges, k = f.sum; return function (a) { var b; if ((b = ag(h, a))) return Y(g[0], g[1], 0, k, a - b[0] + b[2]); if ((b = ag(e, a))) if ((b = ag(h, b[0]))) return Y(g[0], g[1], 0, k, b[2] + b[1] - b[0]); return Y(g[0], g[1], c.min, c.max, a); }; } var l = a.userOptions.scale || {}; if (a.isLog()) { var m = l.logBase || 10, n = function (a) { return 0 === a ? a : Math.log(Math.abs(a)) / Math.log(m); }, p = function (a) { var b = 0 > c.min * c.max; if (b && -1 < c.min) var d = c.logMin - c.log[0] - 1; else (d = 0 === c.min ? c.logMin - 1 : c.log[0]), b && (1 > c.max && (d -= c.log[1]), (d += 1)); if (b && 1 > c.max) var e = c.logMax - c.log[1] - 1; else (e = 0 === c.max ? c.logMax - 1 : c.log[1]), b && (-1 < c.min && (e -= c.log[0]), (e += 1)); var f = c.logRange; if (0 === a) return 0 <= c.min ? 0 : 0 >= c.max ? 1 : b && -1 > c.min && 1 > c.max ? 1 - Math.abs(e / f) : Math.abs(d / f); if (0 > a) return b && (-1 < c.min || 1 > c.max) ? (c.log[0] - n(a)) / f : b ? (d - n(a) - 1) / f : (d - n(a)) / f; if (0 < a) return b && (1 > c.max || -1 < c.min) ? 1 - (c.log[1] - n(a)) / f : b ? (Math.abs(d) + n(a) + 1) / f : (n(a) - d) / f; }; return f ? function (a) { return p(a); } : function (a) { return 1 - p(a); }; } var q = a.fitRange, r = c.min, u = c.max, x = function (a) { return Y(g[0], g[1], r, u, q ? ua(a, r, u) : a); }; return a.isStackedFull() && "category" === a.type ? function (b) { var c = a._stackTranslators; c = c ? c.forward(b) : b; return x(t(c) ? c : b); } : x; }; c.prototype._openRanges = function (a) { var b = this.range, c = this.isInverted(), f = b.min, g = b.max, h = this.breaks; b = []; var k = 0, l = 0; h.length ? ((b = B(cg(h, [f, g]), function (a) { var b = [a[0], a[1], l]; l += a[1] - a[0]; return b; })), (k = eo(b))) : (b.push([f, g, 0]), (k = g - f)); if (a) { var m = []; for (a = 0; a < b.length; a++) (f = b[a]), (g = h = f[2] / k), (h = h + (f[1] - f[0]) / k + (a === b.length - 1 ? 0 : -1e-14)), m.push([c ? g : 1 - h, c ? h : 1 - g, { valRange: f }]); } return { ranges: b, sum: k, posRanges: m }; }; c.prototype.linToVal = function (a, c) { return this.posToVal(this.linToPos(a), c); }; c.prototype.posToVal = function (a, c) { var b = this.range; if (Sl(b)) { var d = b.min, g = b.max, h = this.isInverted(), k = [0, 1], l = this._isDragHost ? [d, g] : h ? [d, g] : [g, d], m = this._openRanges(!0), n = function (a) { return Y(l[0], l[1], k[0], k[1], a); }; d = function (a) { var b = ag(m.posRanges, a); if (!b) return n(a); var c = G(b[2].valRange, 2), d = c[0]; c = c[1]; d = h ? [d, c] : [c, d]; return Y(d[0], d[1], b[0], b[1], a); }; d = this.breaks.length ? d : n; this.isLog() ? ((d = this.options("scale.logBase") || 10), (g = b.log[0]), (a = (h ? a : 1 - a) * (b.log[1] - g) + g), (b = Math.pow(d, Math.abs(a))), b < d && (b = (d * (b - 1)) / (d - 1)), (d = ce(a) * b)) : this.isStackedFull() && "category" === this.type ? ((b = this._stackTranslators), (d = d(a)), (d = b ? b.backward(d) : d)) : (d = d(a)); d = c ? ua(d, Math.min.apply(Math, H(l)), Math.max.apply(Math, H(l))) : d; } return d; }; c.prototype.linToPos = function (a) { return Y(0, 1, 0, this._sizeMetrics.length, a); }; c.prototype.valToAngle = function (a, c) {}; c.prototype.isInBreak = function (a) { return !!ag(this.breaks, a); }; c.prototype.valVisible = function (a, c) { var b = this.range, d = [b.min, b.max]; c = t(c) ? c : !!a.pop; var g = "category" === this.type && c ? 0.5 : 0; return a.pop ? (this.valVisible(a[0], c) || this.valVisible(a[1], c) ? !0 : (a = Ue(d, [a[0] + g, a[1] - g])) && a.length) : a - g >= b.min && a + g <= b.max && !this.isInBreak(a); }; c.prototype.tickVisible = function (a) { var b = !!a.pop; if (this.valVisible(a)) return (b = -1 < xe(this.tickPositions.all, a)) && "category" === this.type && 2 === a.length ? this.valVisible(xf(a, 0.1)) : b; if (this.hasCalPatBreaks) { var c = this.range; c = [c.min, c.max]; return b ? Kb(c, a[0]) && Kb(c, a[1]) : Kb(c, a); } }; c.prototype.isInverted = function () { var a = z((this.currentOptions.scale || {}).invert, !1); ("x" !== this.prefix && "sp" !== this.prefix) || this.isHoriz || !this.type || !this.type.match("category|string|time") || (a = !a); if ("x" === this.prefix || "z" === this.prefix || "sp" === this.prefix) a = !a; this.chartArea && this.chartArea.isHoriz && ("x" === this.prefix || "y" === this.prefix || "sp" === this.prefix) && (a = !a); "sp" === this.prefix && (a = !a); this.isRadial && "x" === this.prefix && !this.isHoriz && (a = !a); return a; }; c.prototype.clusterWidth = function (a) { return t(a) ? this.clusterWidthByValue(a) : z(this.options("staticColumnWidth"), this.getShortestDistPerc() * this._sizeMetrics.length * (1 - this.options("spacingPercentage"))); }; c.prototype.clusterWidthByValue = function (a) { var b = this.getValToLin(), c = this.shortestValDistance / 2; return this._sizeMetrics.length * (b(a + c) - b(a - c)); }; c.prototype.duV = function (a) { void 0 === a && (a = !1); var b; if (!(b = this._duV)) { b = void 0; void 0 === b && (b = !1); var c = this.isInverted(), f = this.sideIndex(), g = [-1, 0], h = [0, -1], k = [1, 0], l = [0, 1], m = [c ? 1 : -1, 0], n = [c ? -1 : 1, 0], p = [0, c ? 1 : -1]; c = [0, c ? -1 : 1]; f = [ { f: m, b: n, o: h, i: l, vc: 1, hc: 0 }, { f: p, b: c, o: k, i: g, vc: 0, hc: 1 }, { f: m, b: n, o: l, i: h, vc: 1, hc: 0 }, { f: p, b: c, o: g, i: k, vc: 0, hc: 1 }, ][b ? (f + 2) % 4 : f]; f.inside = b; b = yi(f); } this._duV = b; b = this._duV(); a && ((b.o[0] *= -1), (b.o[1] *= -1), (b.i[0] *= -1), (b.i[1] *= -1), (b.inside = a)); return b; }; c.prototype.measure = function (a) { var b = this.chartArea, c = this.viewState, f = this.rootVisuals, g = this.sideIndex(); this._isZoomLive = b.isZoomLive && b.isZoomLive(); C(this.currentOptions, "label.text"); if (c && !1 !== this.isVisible) { var h = f.label.rootPanel.calculateMargin(); if (a && (a.pop && (a = this.viewState.caRect = { x: 0, y: 0, width: a[0], height: a[1] }), a)) { c = this.measure_ticks(this.chartArea.isRendering); var k = (this.tickBounds = c.slice(0)); this.isHoriz ? (k[1] += 2 === g ? a.height : -k[3]) : (k[0] += 1 === g ? a.width : -k[2]); "caPaneLinear" === b.kind && b.hasRoundCaps && "x" === this.prefix && ((b = this.clusterWidth() / 2), (g = ha(a)), (g = Bl(g, this.isHoriz ? [-b, 0] : [0, -b])), (this.tickBounds = Ea([g, k]))); if (!c) return l; var l = sh(c, ha(a)); b = this._sizeMetrics.clipped; g = [0, 0]; var m = [0, 0]; this.isHoriz ? ((k = this._sizeMetrics.clipped = [a.width, c[3]]), (this._sizeMetrics.length = a.width), (g[0] = Math.abs(Math.min(0, c[0]))), (m[0] = c[2] + c[0] - a.width)) : ((k = this._sizeMetrics.clipped = [c[2], a.height]), (this._sizeMetrics.length = a.height), (g[1] = Math.abs(Math.min(0, c[1]))), (m[1] = c[3] + c[1] - a.height)); if ("hidden" === this.options("overflow") || this.chartArea.isDragging) (g = [0, 0]), (m = [0, 0]); this.overflowSize = { tL: g, bR: m }; !b.length || (b[0] === k[0] && b[1] === k[1]) || this.rootVisuals.main.attr(this.isHoriz ? { height: k[1], width: "*" } : { width: k[0], height: "*" }); a = f.label.getSize({ width: this._sizeMetrics.length - h.horizontal.px }); this._sizeMetrics.labelSize = a; this.isHoriz ? (f.labelContainer.attr({ height: a[1] }), this.rootPanel.attr({ width: 0 })) : f.labelContainer.attr({ width: a[1] }); this.rootPanel.setPreliminarySize(!0); f = this.rootPanel.getBbox(); 0 === f.width && ("sp" !== this.prefix && (f = Gc(l)), this.isHoriz && (f.height += a[1] || 0)); this.isHoriz ? this.rootVisuals.labelContainer.attr({ height: a[1] }) : this.rootVisuals.labelContainer.attr({ width: a[1] }); this._sizeMetrics.bbox = c; this._sizeMetrics.size = [f.width, f.height]; this.setViewState(!0); this.setViewStateSize(); l = this._sizeMetrics.history; a = this._sizeMetrics.clipped; 2 === l.length && (this._sizeMetrics.history = [l[1]]); this._sizeMetrics.history.push([Math.round(a[0]), Math.round(a[1])]); c[2] = f.width; c[3] = f.height; return [0, 0, f.width, f.height]; } } else if (!1 === this.isVisible) return (this._sizeMetrics.length = this.isHoriz ? a[0] : a[1]), [0, 0, 0, 0]; return l; }; c.prototype.requireReflow = function () { var a = this.currentOptions.defaultTick; if (a) { var c = a.label; if ("inside" === a.placement || (c && "inside" === c.placement)) return !1; } a = this._sizeMetrics.history; return 2 === a.length && ((this.isHoriz && a[0][1] !== a[1][1]) || (!this.isHoriz && a[0][0] !== a[1][0])); }; c.prototype.resetMetricsData = function () { var a = { maxTextSize: [0, 0], maxLength: 0, maxRadiusLen: 0, maxLengthRange: 0, getMaxLength: function () { return a.overlapRange ? Math.max(a.maxLength, a.maxLengthRange) : a.maxLength + a.maxLengthRange; }, }; this.tickMetricsData = a; }; c.prototype.measure_ticks = function (a) { function b() { var a = [], b = C(g.currentOptions, "defaultTick.label.rotate") || 0; if (g.isHoriz && (b || g.currentOptions.autoRotate)) return ( w(E, function (b) { if (!b.invalid) { var c = b.angledBounds(); Id(b.currentOptions.label) && a.push(c); b.metrics().rotated = c; } }), Ea(a) ); } function c(a) { var b = (g._rngData = Sr(g, a)); a = Ea( B(a, function (a) { return a._positionData.bbox; }) ); a[1] = 0; a[b.duV.vc + 2] = b.depth; return a; } var f = this; void 0 === a && (a = !1); var g = this, h = g.viewState, k = [], l = [], m = [], n = [], p = [], q = [], r = g.isHoriz ? 1 : 0, u = g.isHoriz ? function (a, b, c) { return (b && a.rotated ? a.rotated[3] : (c && a.altTextSize ? a.altTextSize : a.textSize)[1]) + a.tickLength + a.tickPadding || 0; } : function (a, b, c) { return (b && a.rotated ? a.rotated[2] : (c && a.altTextSize ? a.altTextSize : a.textSize)[0]) + a.tickLength + a.tickPadding || 0; }, x = C(g.currentOptions, "defaultTick"), v = "inside" === x.placement; x = C(x, "label.rotate") || 0; x = g.isHoriz && 0 !== x; var y, D = [], E = [], z = [], A = function () { y = Ei(g); D = y.rngTicks; E = y.valArrange; z = y.rngArrange; }; if (h && !1 !== g.isVisible) { g.setTicks(h).setAttribs(); A(); g._rngData = Oz(g, D); A(); var G = 0; w(E, function (a) { if (a.invalid) wf(f, a); else { var b = a.metrics(); Id(a.currentOptions.label) && "inside" !== a.currentOptions.placement && (m.push(b.textSize[0]), n.push(b.textSize[1]), (G += b.primTextSize[1]), p.push(u(b)), q.push(u(b, !1, !0)), l.push(b)); } }); A = m.length ? [Math.max.apply(Math, H(m)), Math.max.apply(Math, H(n))] : [0, 0]; var J = p.length ? Math.max.apply(Math, H(p)) : 0, I = q.length ? Math.max.apply(Math, H(q)) : 0; g.tickMetricsData.maxTextSize = A; g.tickMetricsData.maxLength = J; g.tickMetricsData.maxLengthAlt = I; g.tickMetricsData.maxRadiusLen = 0; A = []; var M = void 0, K = !1; J = Q(C(g.currentOptions, "defaultTick.label.rotate")) && Q(g.userOptions.autoRotate) && "angled" !== g.labelMode; h = !g.isHoriz && h.axisSize && h.axisSize[1] > 2 * G; I = []; for (var L = 0, O = E.length; L < O; L++) { var P = E[L]; if (!P.invalid) { var S = wf(this, P, { altTextSize: !1 }), T = S.textBBox; M = M && zd(M, T); var V = h && 10 < T[2] / T[3], X = M && g.isHoriz, Y = !1 !== N(P.currentOptions, ["label", "autoWrap"]) && P._formattedText && !P._formattedText.match(//); if (J && Y && P._metrics.altTextSize && (X || V)) { if ( !K && M && ((K = E[L - 1]), (S = wf(this, K, { altTextSize: !0 })), (M = S.textBBox), (I[I.length - 1] = S.textLength), Id(K.currentOptions.label) && g.tickVisible(K.value()) && ((k[k.length - 1] = K._bbox), (A[A.length - 1] = M)), !zd(M, T)) ) { M = T; K = !1; continue; } S = wf(this, P, { altTextSize: !0 }); T = S.textBBox; K = !0; } else K = !1; I.push(S.textLength); Id(P.currentOptions.label) && g.tickVisible(P.value()) && (k.push(P._bbox), A.push(T)); M = T; } } I.length && (g.tickMetricsData.maxLength = Math.max.apply(Math, H(I))); if (x || (g.isHoriz && qo(A)) || (a && "angled" === g.labelMode)) { g.labelMode = "angled"; var W = b() || W; } else g.labelMode = "normal"; "angled" === g.labelMode && ((p = []), w(l, function (a) { p.push(u(a, !0)); }), (g.tickMetricsData.maxLength = Math.max.apply(Math, H(p))), (k = []), w(E, function (a) { a.invalid || (wf(f, a, { tickPointsOnly: !0 }), Id(a.currentOptions.label) && k.push(a._bbox)); })); W = Ea(k) || [0, 0, 0, 0]; a = ea(z, function (a) { return a._rngData.visible; }); a.length && ((a = c(a)), (x = 0 === y.fullRangesLevel), (W[r + 2] = v ? 0 : x ? Math.max(a[r + 2], W[r + 2]) : a[r + 2] + W[r + 2]), (g.tickMetricsData.maxLengthRange = v ? 0 : a[r + 2]), (g.tickMetricsData.overlapRange = x)); } r = g.currentOptions.caOffset; t(r) && (g.isHoriz ? (W[3] = Math.max(0, W[3] + r)) : (W[2] = Math.max(0, W[2] + r))); return W || [0, 0, 0, 0]; }; c.prototype.sideIndex = function () { var a = this.currentOptions.orientation; a = "right" === a || "top" === a || "opposite" === a; return this.isHoriz ? (a ? 0 : 2) : a ? 1 : 3; }; c.prototype.sideDepth = function () { var a = this._sizeMetrics.size; return this.isHoriz ? a[1] : a[0]; }; c.prototype.autoHideGrid = function () { t(this._autoHideGrid) || (this._autoHideGrid = vD(this)); return this._autoHideGrid; }; c.prototype.render = function (a, c) { void 0 === c && (c = this.updateOptions); var b, d = this.viewState, g = this.viewStatePrev; if ((b = this.syncAxis)) (d = this.viewState = qa(b.viewState)), (g = this.viewStatePrev = qa(b.viewStatePrev)); if (d) { var h = A({}, c); h.isTransitioning = this.isTransitioning; if (!1 !== this.isVisible && this.isAdded) { a = a || this.chartArea.renderRect; var k = this.isTransitioning ? [g, d] : d; if ((d.caRect = a)) this.measure(a), (this._autoHideGrid = void 0), Fz(this), Gz(this), this.render_rngLines(a, h), w(this._ticks, function (a) { return a.render(k, h); }), this.garbageCollection(), this.render_line(a, c), this.render_alignLabel(); } else !1 === this.isVisible && this.isAdded && this.resetVisuals(); !c.invalidate && this.validate(); } return this; }; c.prototype.garbageCollection = function () { w(this._ticks.slice(0), function (a) { a && 6 < a._age && a.destroy(); }); }; c.prototype.render_alignLabel = function () { var a = this.currentOptions.label, c = this.sideIndex(), e = this._sizeMetrics.labelSize; this.isHoriz || ((a.rotation = 0 === c || 1 === c ? 90 : -90), (c = va([0, 0, e[1], e[0]])), this.rootVisuals.labelContainer.attr({ offsetX: c[0] - e[0] / 2, offsetY: c[1] - e[1] / 2, rotate: [a.rotation, e[0] / 2, e[1] / 2] })); }; c.prototype.renderOnCa = function (a, c) { void 0 === c && (c = this.updateOptions); var b = this.viewState, d = this.viewStatePrev; (a = a || this.chartArea.renderRect) && this.isVisible && b && ((b.caRect = a), (a = this.isTransitioning ? [d, b] : b), this.renderGridLines(a, c), this.render_markers(a, c), this.validate()); }; c.prototype.renderGridLines = function (a, c) { w(this._ticks, function (b) { return b.render(a, A({ onCa: !0 }, c)); }); this.render_altGrid(a, c); }; c.prototype.getGridLinesTarget = function () { var a = C(this.currentOptions, "defaultTick.gridLine.onTop"), c = this.chartArea.rootVisuals; return a ? c.gridLinesFront : c.gridLinesBehind; }; c.prototype.render_altGrid = function (a, c) { void 0 === a && (a = this.chartArea); void 0 === c && (c = {}); var b = this; a = Qr("time" === b.type ? b.tickPositions.all : b.tickPositions); var d = b.renderer.renderer, g = b.attribs.altGrid, h = b.viewState, k = b.viewStatePrev, l = b.altGridFillVisuals, m, n, p = b.getGridLinesTarget(), q = function () { return w(l, function (a) { return (a.invalid = !0); }); }, r = function (a) { return S(l, function (b) { return b.value[0] === a[0] && b.value[1] === a[1]; }); }, u = function (a) { a.visual.attr(A({ opacity: 0, d: b.getCaPath(a.value, p, h) }, c)); }, x = k && !1 !== c; if (g && "none" !== g.fill && !wD(b)) { q(); for (var v = 0, t = a.length; v < t - 1; v += 2) { var D = [a[v], a[v + 1]]; if ((m = b.getCaPath(D, p, h))) (q = r(D)) ? ((q.invalid = !1), q.visual.attr(A({ d: m, opacity: 1 }, c))) : (x && (n = b.getCaPath(D, p, k)), (q = { value: D, visual: d.path(A({ d: n || m, opacity: 0, animation: !1, zIndex: 4 }, Ga(g, ["animation"]))).add(p), invalid: !1 }), l.push(q), (D = A({ d: m, opacity: 1, "fill-rule": "evenodd" }, g, c)), x || (D.animation = !1), q.visual.attr(D)); } w(ea(l, { invalid: !0 }), u); } }; c.prototype.init_markers = function () { var a = this.currentOptions.markers || []; if (((a && a.length) || this._markers.length) && !this._markers.length) for (var c = 0, e = a.length; c < e; c++) { var f = a[c]; if (f.value && f.value.pattern) { var g = Wr(this, [f.value.pattern]); f.value = B(g, function (a) { return a.slice(0, 2); }); } this._markers.push(new Xr(this, f)); } }; c.prototype.render_markers = function (a, c) { void 0 === c && (c = {}); var b = this; a = !b.isRadial; var d = b.currentOptions.markers || []; b.init_markers(); if ((d && d.length) || b._markers.length) a && Iz(b._markers), w(b._markers, function (a) { a.render(b.viewState, c); }); }; c.prototype.render_line = function (a, c) { var b = this; c = b.rootVisuals.line; var d = b.currentOptions, g = d.line, h = b.userOptions.line, k = b.chart.options("defaultAxis.line"); g.visible = g.visible || (h ? tf(h) : !1) || (k ? tf(k) : !1); h = Bb(g); h.d = this.getLinePath(a); var l = b.options("line.breaks"); if (l) { k = function (a) { var b = 0; return Aa(a).translate(function (a) { var c = 1e-4 * b++; return [a[0] + c, a[1] + c]; }); }; var m = 0; h.d = Aa(h.d).translate(function (a) { var b = 1e-4 * m++; return [a[0] + b, a[1] + b]; }); b.isRadial ? (a = Aa(h.d).length()) : ((a = b.getLinePathPoints(a)), (a = mc(a[0], a[1]))); a = b.ticksToDashAttr(a, d.line.width, l); L(h, a); h["stroke-linecap"] = "round"; a = g.color; if (-1 < a.toLowerCase().indexOf("smartpalette")) { a = a.split(/:/gi); if ((a = b.chart.getSmartPalette(1 < a.length ? a[1] : b.chart.palette))) (a = a.getTraditionalStops(!1, [b.range.min, b.range.max])), b.isInverted() || ((a = B(a, function (a) { return [1 - a[0], a[1], a[2]]; })), (a = sa(a, function (a) { return a[0]; }))), (h.stroke = oc({ stops: a, angle: b.isHoriz ? 0 : 90 })), (h.d = k(h.d)); h["stroke-opacity"] = 1; } } else if (g.caps && ((k = b.originValue), h.caps)) { g = void 0; g = { eachShape: !0, size: "300%" }; t(this.originValue) && (g.start = { overflow: !0 }); h.caps = qd(h.caps, g); var n = b.duV(); a = b.getLinePathPoints(a); var p = a[0][n.vc]; g = function (a) { var c = []; c[n.vc] = p; c[n.hc] = b.getCaLen(a); return c; }; t(k) && b.valVisible(k) ? ((k = g(k)), (g = fb([k, a[0]]).join(" ")), (g += fb([k, a[1]]).join(" ")), (h.d = g)) : t(k) && ((k = [b.range.min, b.range.max]), 0 >= k[1] && k.reverse(), (g = fb(k.map(g))), (h.d = g), (h.caps.start = { type: "none" })); } c.attr(h); }; c.prototype.render_rngLines = function (a, c) { a = { width: 1, color: "#4c4c4c", dashStyle: "dash", opacity: 0.2 }; c = this.renderer; var b = this.rootVisuals.mainRng, d = C(this._rngData, "connectorLines"), g = this.rootVisuals.rngConnectors, h = []; if (d && d.length) { var k = Bb(a); w(d, function (a) { fb(a, h); }); k.d = xa(h); } k ? (g ? g.attr(k) : (g = this.rootVisuals.rngConnectors = c.renderer.path().attr(k).add(b))) : g && g.attr({ opacity: 0 }); }; c.prototype.setRootVisuals = function () { var a = this.renderer; if (!this.rootVisuals && !1 !== this.options("visible")) { var c = a.panel({ cssClass: "labelContainer" }), e = a.panel("stack:" + (this.isHoriz ? "y" : "x")), f = a.panel(), g = a.renderer.path().add(f), h = a.panel({ zIndex: 2 }).add(f); a = new Fi(this.chart, this.currentOptions.label).add(c); var k = this.duV(); 0 > k.o[k.vc] ? (c.add(e), f.add(e)) : (f.add(e), c.add(e)); this.rootVisuals = { stack: e, main: f, label: a, labelContainer: c, line: g, mainRng: h }; this.applyCaOffset(); this.rootPanel && e.add(this.rootPanel); this.rootPanel = e; } return this; }; c.prototype.applyCaOffset = function () { var a = this.currentOptions, c = t(a.anchorWidth) ? a.anchorWidth : z(C((this.chartArea || this.chart.chartAreas(0)).currentOptions, "outline.width"), 1) / 2, e = this.duV(), f = e.o, g = e.hc; e = e.i.slice(0); e[g] = 1; c = we([0, 0], e, c); a = we(c, f, a.caOffset || 0); this.rootVisuals.stack.attr({ offsetX: a[0], offsetY: a[1] }); }; c.prototype.setAttribs = function () { var a = this.isHoriz, c = this.currentOptions.alternateGridFill, e = I(c); a = this.isRadial ? Fa.altGridFillRad : a ? Fa.altGridFillX : Fa.altGridFillY; var f = { fill: c || "none" }; c && "none" !== c ? ("object" !== e ? (f = { fill: dd(a, c) }) : ni(f, c)) : (f = { fill: "none" }); this.attribs.altGrid = f; return this; }; c.prototype.setViewState = function (a, c) { var b = this.viewState, d; (d = this.syncAxis) ? ((this.viewState = qa(d.viewState)), (this.viewStatePrev = qa(d.viewStatePrev))) : b && b.equalsRange(this) ? (this.posDirty = !1) : (b && (this.isTransitioning = !0), (this.viewStatePrev = b), (this.coordinatesDirty = this.posDirty = !0), (this.viewState = new bu(this, this._getValToLin(), this.chartArea)), !a && this.viewState.isValid() && this.render(null, c), this.trigger("setRange", this.viewState.range)); return this; }; c.prototype.setViewStateSize = function () { var a; if ((a = this.viewState)) (a.axisSize = this._sizeMetrics.clipped.slice(0)), (a.axisBBox = this._sizeMetrics.bbox.slice(0)); return this; }; c.prototype.validate = function () { this.isTransitioning = this.coordinatesDirty = this.posDirty = !1; return this; }; c.prototype.getCaPath = function (a, c, e, f) { var b = this; void 0 === e && (e = this.viewState); void 0 === f && (f = 1); var d = t(a.pop), k = !1, l = a; if (!d || (t(a[0]) && !t(a[0].pop))) l = [a]; if ("object" === typeof f) { var m = f; f = z(m.lineWidth, 1); k = m.multiShape; } var n = ""; w(k && d ? a : l, function (a) { a = b.getCaPoints(a, c, e, f); n += fb(a).join(" ") + (k || (!d && !b.isRadial) ? "" : "Z"); }); return n; }; c.prototype.getCaPoints = function (a, c, e, f) { void 0 === e && (e = this.viewState); void 0 === f && (f = 1); a = this.toPosition(a); var b = !1; if ("object" === typeof f) { var d = f; f = z(d.lineWidth, 1); b = d.posOnly; } var k = function (a) { return Math.max(-1e6, Math.min(1e6, e.valToLin(a))); }, l = e.caRect || e.chartArea.contentRect || e.chartArea.innerRect, m = e.chartArea, n = this.isHoriz, p = t(a.pop), q = m.rootVisuals.gridLinesBehind; d = function (a) { a = k(a); a = n ? a * l.width : a * l.height; a = n ? [ [a, l.y], [a, l.y + l.height], ] : [ [l.x, a], [l.x + l.width, a], ]; return (2 === a.length ? zr : ue)(c || q, a, f); }; if (this.isRadial) { var r = ha(l), u = r[2], x = r[3], v = r[1], y = r[0]; r = m.getRadarType(); var w = function (a) { return b ? [a[0], a[1]] : [y + a[0] * u, v + a[1] * x]; }, E = this.interpolationAxis; if (this.isHoriz) { var F = m.projection.val2linxy, A = function (a, b) { return w(F(a, b)); }; "polar" === r ? (d = function (a) { a = k(a); return [A(a, 0), A(a, 1)]; }) : p || ((A = m.projection.webVal2linxy), (d = function (a) { a = k(a); return [A(a, 0), A(a, 1)]; })); } else if (!this.isHoriz) { var C = m.projection.val2linxy, G = E.getTicksPos(); d = function (a) { var b = k(a); return B(G, function (a) { return w(C(a, b)); }); }; } } p ? ((m = d(a[0])), m.push.apply(m, H(d(a[1]).reverse()))) : (m = d(a)); return m; }; c.prototype.ticksToDashAttr = function (a, c, e) { void 0 === c && (c = 1); e = e || {}; id(e, { gap: 0.01, cap: !0, invert: !1 }); var b = this, d = e.custom, h = [], k = 0, l = {}, m = b.getTicksPos(); d ? ((m = d), 1 < Math.max.apply(Math, H(d)) && (m = B(d, function (a) { return b.viewState.valToLin(a); }))) : (m = d || b.getTicksPos()); c = (2 * ((a * e.gap) / 2 + (e.cap ? c / 2 : 0))) / a; m[0] > m[m.length - 1] && (m = B(m, function (a) { return 1 - a; })); m = Zj(m, [0, 1], c); var n = cg(m, [0, 1]); w(n, function (b, c) { var d = c === n.length - 1, e = d ? void 0 : n[c + 1], f = b[1] - b[0]; 0 === c && 0 < b[0] && (k = b[0] * a); h.push(f * a); e && h.push((e[0] - b[1]) * a); d && 1 > b[1] && h.push((1 - b[1]) * a + 2); }); e.invert && h.unshift(0); l["stroke-dasharray"] = h.join(","); k && (l["stroke-dashoffset"] = -k); return l; }; c.prototype.getCaLen = function (a, c) { void 0 === c && (c = this.viewState); var b = c.caRect || c.chartArea.contentRect, d = this.isHoriz, g = c.valToLin; return hb(a, function (a) { a = g(a); return d ? a * b.width : a * b.height; }); }; c.prototype.getLinePath = function (a) { var b = this.currentOptions, c = G(this.getLinePathPoints(a), 2), f = c[0]; c = c[1]; b = Bb(b.line); return this.breakLine(a, [f, c], b["stroke-width"]); }; c.prototype.getLinePathPoints = function (a) { a = "inside" === C(this.currentOptions, "defaultTick.placement"); var b = this.range, c = a ? 0 : this.tickMetricsData.getMaxLength(); a = this.getCaLen(b.min); b = this.getCaLen(b.max); switch (this.sideIndex()) { case 0: var f = [b, c], g = [a, c]; break; case 1: c = [0, b]; g = [0, a]; f = c; break; case 2: c = [b, 0]; g = [a, 0]; f = c; break; case 3: (f = [c, b]), (g = [c, a]); } return [g, f]; }; c.prototype.breakLine = function (a, c, e, f) { var b = this, d = b.currentOptions, k = b.rootVisuals.main, l = [], m = c[0][0], n = c[0][1], p = b.isInverted(); c = (C(d, "scale.defaultBreak.type") || "").toLowerCase(); c = "gap" === c || "zigzag" === c ? C(d, "scale.defaultBreak.line.width") / 2 : 0; var q = a.y, r = a.x, u = a.x + a.width, x = a.y + a.height; a = b._openRanges(); var v = function (a) { return b.isHoriz ? [a, n] : [m, a]; }, y = function (a, c) { var f = ""; c = p ? -c : c; b.isHoriz && (c = -c); for (var g = 0, h = a.length; g < h; g++) { var m = a[g], n = b.getCaLen(m[0]), y = b.getCaLen(m[1]), w = (t(d.anchorWidth) ? d.anchorWidth : z((b.chartArea || b.chart.chartAreas(0)).options("outline.width"), 1)) / 2, E = v(n > y ? n + w : n - w), D = v(y > n ? y + w : y - w), A = v(n), B = v(y); B = [A, B]; b.isHoriz ? (B.push([A[0], q]), B.push([A[0], x])) : (B.push([u, A[1]]), B.push([r, A[1]])); A = rb(Ua(B), -0.5); l.push(A); 1 < a.length && g < a.length - 1 && (D = v(b.getCaLen(m[1]) + (y > n ? w - c : c - w))); g && (E = v(b.getCaLen(m[0]) + (n > y ? w - c : c - w))); k && ((m = zr(k, [E, D], e, w || void 0)), (E = m[0]), (D = m[1])); f += xa(fb([E, D])); } return f; }; b._nRects = l; return f ? y(bg(a.ranges, f), c) : y(a.ranges, c); }; c.prototype.getBreakRects = function () { return this._nRects.slice(0); }; c.prototype.resetTimers = function () { w(this._markers, function (a) { return a.resetTimers(); }); }; c.prototype.getPointTicks = function () { var a = this, c = a.dataInfo.serColl, e = a.prefix, f = e + "AxisTick", g = "category" === a.type && "x" === e, h = a._isZoomLive, k = !!a.syncAxis, l = a.usedDataKeys; c && !c.items.length && a.syncAxis && (c = a.syncAxis.dataInfo.serColl); if (!h) { var m = [], n = [], p = function (a) { var b = a && a.series[("x" === e ? "y" : "x") + "Axis"]; if (b) return b.getValToLin()("x" === e ? a.y : a.x); }, q = function (b, c, d, f, h) { f = g ? z(f.name, f.x) : a.isStacked() && h.hasKey(e + "s") ? [h.getValue(e + "s", c), h.getValue(e + "e", c)] : z(f[e], h.getValue(e, c), h.getValue(l[0], c)); f = a.normUserValue(f); d = { point: function () { b._points.length || b.setPoints(); return b._points[c]; }, config: d, value: f, }; if ((h = S(m, { value: f }))) { var k = h.point(), q = d.point(); if (k !== q) switch (((k = p(k)), (q = p(q)), a.sideIndex())) { case 0: case 3: var r = k > q; break; case 1: case 2: r = k < q; } else r = !0; } h ? r && (pb(m, h), m.push(d)) : (m.push(d), n.push(f)); }, r = function (b, c) { var d = a.id && a.id === b.axisId; c = c[a.prefix + "Axis"].id === a.id; return k ? d || c : !b.axisId || d; }; c && c.each(function (a) { var b = function (a) { return a && a[f]; }, c = a.indexer, d = a.currentOptions, e = c.data[f] && 0 < c.data[f].length, g = a.userPoints, h = g.length, k = b(d.defaultPoint), l = b(d.firstPoint) || b(d.lastPoint), m = function (a) { return a; }; if (k) { var n = yi(k); m = function (a) { return A(n(), a); }; } if (k) { if (r(k, a)) for (e = 0; e < h; e++) (k = c.getValue(f, e)), q(a, e, m(k || {}), g[e], c); } else if (e) { var p = c.data[f], u = c.indexes[f]; for (e = 0; e < (u ? u.length : 0); e++) { var x = u[e]; (k = p[x]) && r(k, a) && q(a, x, m(k), g[x], c); } } l && ((l = b(d.firstPoint)) && r(l, a) && null !== g[0].y && q(a, 0, l, g[0], c), (b = b(d.lastPoint)) && r(b, a) && null !== g[h - 1].y && q(a, h - 1, b, g[h - 1], c)); }); var u = []; n.length && ((n = $a(n)), w(n, function (a) { return u.push(S(m, { value: a })); }), (u.positions = n)); a._getPointTicks = u; } return a._getPointTicks; }; c.prototype.getCustomTicks = function () { if (!this._isZoomLive) { var a = this.currentOptions, c = this.userOptions, e = B(a.customTicks || [], function (b) { var c = A({}, a.defaultTick); return A(c, b); }); if (t(this.originValue) && c.originTick && !1 !== C(a, "defaultTick.enabled") && !1 !== C(a, "originTick.enabled")) { var f = A({}, a.defaultTick); f = A(f, c.originTick); f.value = this.originValue; e.push(f); } this._getCustomTicks = e; } return this._getCustomTicks; }; c.prototype.setTicks = function (a) { var b = this, c = b.currentOptions, f = b._isZoomLive, g = b.isLog(), h = function (a, b) { return Y(a, a + b, 0, 1, m.valToLin(a)); }, k = function (a, c) { a = a.rect(); return b.isHoriz ? h(a.x, a.width) : h(a.y, a.height); }; a = G(a.pop ? a : [void 0, a], 2); var l = a[0], m = a[1]; m.rect(); if (m.isValid()) { var n = void 0; a = void 0; b.setTickPositions().invalidateTicks(); var p = A(g ? { label: { visible: !1 } } : {}, c.defaultTick, c.defaultMinorTick); c = a = "inside" !== p.placement || b.isRadial || "category" === b.type ? 0 : 1; for (var q = b.tickPositions.all.length - a; c < q; c++) { n = b.tickPositions.all[c]; var r = b.findTickInfo(n); (a = b.findTick(n, g ? r.type : void 0)) ? (a.type !== r.type && (a.options(r.config, !1), (a._needUpdateText = !0)), !f && a.setType(r.type)) : ((r.config.defaultMinorTick = p), b._ticks.push((a = new cu(this, n, r.config, r.type)))); a.validate(); } c = 0; for (q = b._ticks.length; c < q; c++) (a = b._ticks[c]), b.isTransitioning && !a.invalid ? a.px(k(l || b.viewStatePrev), k(m, a.value())) : a.px(k(m, a.value())); b._ticks = sa(b._ticks, function (a) { return z(a._value[0], a._value); }); b._ticks = sa(b._ticks, function (a) { return a._isRange && "custom" === a.type ? 2 : 1; }); g = !1; c = f = 0; for (q = b._ticks.length; c < q; c++) (a = b._ticks[c]), (k = b.tickVisible(a.value())) && f++, !g && k ? (g = a.isFirst = !0) : (a.isFirst = !1); 100 < f && ((g = "category" === b.type), (k = !!N(b.currentOptions, ["scale", "interval"])) || g) && ((f = { data: [b.prefix, f], container: this.chart.getWrapper() }), k && !g ? Ma.emit("tip", b.id, "time" === b.type ? "manyTicksTime" : "manyTicks", f) : g && Ma.emit("tip", b.id, "manyTicksCat", f)); } return this; }; c.prototype.resetTicksLabels = function () { w(this._ticks, function (a) { delete a._formattedText; }); }; c.prototype.invalidateTicks = function () { for (var a = this._ticks, c = 0, e = a.length; c < e; c++) a[c].invalidate(); return this; }; c.prototype.findTick = function (a, c) { for (var b = 0, d = this._ticks.length; b < d; b++) { var g = this._ticks[b], h = g.value(), k = a; if ((h.pop ? h[0] === k[0] && h[1] === k[1] : h === k) && (c ? g.type === c : 1)) return g; } }; c.prototype.findTickInfo = function (a) { var b = this, c = {}; if (t(a.v)) { var f = "custom", g = b.getCustomTicks(); c = S(g, { value: a.v }); c = A({}, c); delete c.value; } else { var h = b.tickPositions, k = h.minor || [], l = h.custom || [], m = b.originValue; g = xe(b.pointTicks.values || [], a); if (-1 < g) { f = "custom"; c = b.pointTicks; var n = c.points[g]; c = c.configs[g]; c.target = function () { return n && n(); }; } else -1 < xe(l, a) ? ((f = "custom"), (g = b.getCustomTicks()), (c = S(g, function (c) { c = c.value; var d = b.toPosition(c); "category" === b.type && "string" === typeof c && (d = [d - 0.5, d + 0.5]); return d.pop ? Qe(d, a) : d === a; })), (c = A({}, c))) : t(m) && a === m ? (f = "origin") : -1 < xe(h, a) ? (f = "major") : -1 < xe(k, a) && (f = "minor"); } return { type: f, config: c }; }; c.prototype.getTicksPos = function (a) { void 0 === a && (a = this.viewState); !this.tickPositions && this.setTickPositions(); return hb(this.tickPositions.all, function (b) { return a.valToLin(b); }); }; c.prototype.add = function (a) { this.isAdded || ((this.isAdded = !0), !1 !== this.isVisible && ((this.parentLayoutItem = (a = this.getParentPanel(a)) || this.renderer), this.rootPanel.add(a))); return this; }; c.prototype.crosshairXy = function (a, c, e) { var b = this.prefix, d = this.isHoriz ? 0 : 1; a = a["x" === b ? d : "y" === b ? d : -1]; e = this.crossLinToVal(a, e); t(a) && this.crosshair(c ? A({ value: e }, c) : { value: e }); return e; }; c.prototype.crossLinToVal = function (a, c) { var b = this.syncAxis || this, d = this.options("crosshair"); a = this.linToVal(a); return d.snapToData || ("x" === this.prefix && !1 !== d.snapToData) || c ? NA(b.dataPositions.toArray(), a) : a; }; c.prototype.crosshair = function (a) { var b = this; clearTimeout(b.crossTimeout); if (b.isVisible && !b.isRadial && !b.childAxes.length) { var c = (b.crossTicks = b.crossTicks || []), f = function (a) { wf(b, a); a.render(b.viewState, { onCa: !0, animation: !1 }); a.render(b.viewState, { onCa: !1, animation: !1 }); }, g = b.options("crosshair"); if (t(a) && !0 === g.enabled) { if (((a = a.pop ? a : [a]), t(a[0]))) var h = a.map(function (a, b) { return A({ key: b }, g, a); }), k = !0; } else h = []; Ub( h, c, function (a) { a = new cu(b, a.value, A({ internal: !0 }, a), "custom"); b.crossTicks.push(a); f(a); }, function (a, b) { b.options(a, !1); f(b); }, function (a) { pb(b.crossTicks, a); a.remove(); }, function (a) { return a.key; }, function (a) { return a.currentOptions.key; } ); b.rootPanel.refresh(); k && (b.crossTimeout = setTimeout(function () { b.crosshair(); b.chart.series().each(function (a) { return a.visualizer.hideHalo(); }); }, 8e3)); return a && 1 === a.length ? a[0] : a; } }; c.prototype.setDataRange = function (a) { this.min = a[0]; this.max = a[1]; a = this.range = { min: a[0], max: a[1] }; this.unZoomedRange = Oa(a); this._isMapHost = !0; }; c.prototype.setMapRange = function (a, c) { this.min = Math.min(a[0], c[0]); this.max = Math.max(a[1], c[1]); this.range = { min: c[0], max: c[1] }; this.unZoomedRange = { min: this.min, max: this.max }; this.zoomLimit = Math.max(a[1], c[1]) - Math.min(a[0], c[0]); this.zoomRange = this.zoomRange || [Math.min(a[0], c[0]), Math.max(a[1], c[1])]; this._isMapHost = !0; }; c.prototype.setStaticRange = function (a, c) { this._isDragHost = !0; this.min = a[0]; this.max = a[1]; this.range = { min: c[0], max: c[1] }; this.zoomLimit = this._sizeMetrics.length = c[1] - c[0]; this.zoomRange = this.zoomRange.length ? this.zoomRange : c; this.linToVal = function (a) { return a; }; }; c.prototype.zoom = function (a, c, e) { var b = !1; b = !this.isZoomed; var d = this._isDragHost ? [this.min, this.max] : this.unZoomedRange, h = this._isDragHost ? this.zoomRange : [this.range.min, this.range.max]; d = d || { min: this.min, max: this.max }; var k = 1 < la(d.min, d.max) ? 2 : 5, l = function (a, b) { return 0 === ts(a[0], b[0], k) && 0 === ts(a[1], b[1], k); }; t(a) || t(c) ? this.canZoom(a, c) && ((c = G(du(a, c), 2)), (a = c[0]), (c = c[1]), (this._formatInfo = void 0), a !== c && ((this.zoomRange = [a, c]), (this.isZoomed = !0), this._isDragHost || (b && (this.unZoomedRange = { min: this.range.min, max: this.range.max }), (d = this.unZoomedRange), (this.isZoomed = !l([a, c], [d.min, d.max]))), "map" === this.options("type") ? ((this.range.min = a), (this.range.max = c)) : this._isDragHost || this.setRange(!1, e), (b = !0))) : ((this.isDragging = this.isZoomed = !1), (this.zoomRange = []), (this.isZoomed = !1), this.setRange(!0, e)); b = !l(this.isZoomed ? this.zoomRange : [this.range.min, this.range.max], h); !this._isDragHost && w(this.serList, function (a) { return a.seriesDirty.pos(!0); }); !1 !== e && this.chart.redraw(e); a = this.chartArea; b && a.zoomUpdated(); return b; }; c.prototype.drag = function (a) { var b = this.zoomRange.slice(0), c = this.unZoomedRange ? this.unZoomedRange : this; c = [c.min, c.max]; this.isDragging = !0; b[0] + a < c[0] && (a = c[0] - b[0]); b[1] + a > c[1] && (a = c[1] - b[1]); b[0] += a; b[1] += a; if (a) return this._isDragHost ? (this.zoomRange = b) : this.zoom(b[0], b[1], !1), !0; }; c.prototype.canDrag = function () { if (this._isDragHost) { var a = this.zoomRange.slice(0), c = this.unZoomedRange ? this.unZoomedRange : this; return la(a[0], a[1]) < la(c.min, c.max); } return this.isZoomed; }; c.prototype.canZoom = function (a, c) { c = G(du(a, c), 2); a = c[0]; c = c[1]; if (this._isMapHost || (this._isDragHost && (this.min !== this.range.min || this.max !== this.range.max))) return !0; if (a !== c) { var b = this.zoomLimit; "object" === I(this.zoomLimit) && "time" === this.type && (b = lg(this.zoomLimit)); if (la(c, a) > b) return !0; } }; c.prototype.destroyVisuals = function () { w(this.rootVisuals, function (a) { return a && a.destroy(); }); w(this._ticks.slice(0), function (a) { return a && a.destroy(); }); this._ticks = []; this.rootPanel.destroy(); this.rootVisuals = this.rootPanel = void 0; }; c.prototype.destroy = function () { a.prototype.destroy.call(this); var b = this.chartArea._axes.indexOf(this); -1 < b && this.chartArea._axes.splice(b, 1); }; c.prototype.resetVisuals = function () { this.isAdded = !1; this._duV = void 0; this.destroyVisuals(); this.setRootVisuals(); this.initSizeMetrics(); this.chartArea.rootPanel.refresh(); }; c.prototype.getVisualTargets = function (a, c) { void 0 === a && (a = {}); void 0 === c && (c = !1); var b = this.rootVisuals, d = this.chartArea.rootVisuals, g = d.axisFront, h = d.axisBehind, k = d.axisBehindAll, l = z(a.onTop, this.options("onTop")), m = z(C(a, "label.onTop"), l); a = z(C(a, "gridLine.onTop"), l) ? d.gridLinesFront : d.gridLinesBehind; d = b = c = c ? b.mainRng : b.main; g && h && ((c = l ? g : h), (b = m ? g : h), (d = m ? g : k)); return { tick: c, label: b, line: d, grid: a }; }; return c; })(jc), Kf = (function (a) { function c(b, d) { d = a.call(this, b, d) || this; d.items = b; d.kindObject = c; d.markers = Xa(wb, Sz(d), xc); d.ticks = Xa(wb, Rz(d), xc); return d; } K(c, a); return c; })(wb), xD = (function (a) { function c(b, c) { b = a.call(this, b, c, "sp") || this; b.possibleKeys = ["spValue"]; b.initFP(); b.options(c, !1); return b; } K(c, a); c.prototype.init = function () { for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c]; this.prefix = G(a, 3)[1]; this.defaultContextOptions = {}; this.updateOptions = { animation: this.chart.options("animation") }; }; c.prototype.defaultOptions = function () { return A(a.prototype.defaultOptions.call(this), { crosshair: { enabled: !0 } }); }; c.prototype.renderGridLines = function (a, c) {}; return c; })(jj), gu = (function (a) { function c(b, c, e) { var d = a.call(this, b.chart, e) || this; d.parent = b; d.palette = c; d._axes = []; d.isHoriz = z(e.isHoriz, "horizontal" === b.layoutDirection); b = A({ orientation: d.isHoriz ? "bottom" : "right", anchorWidth: 0 }, C(c.currentOptions, "colorBar.axis")); b = d.axis = new xD(d, b); d._axes.push(b); d.initFP(); b.chartArea = d; b.setRootVisuals(); b.isHoriz = d.isHoriz; d.collisionManager = new Tm(d); return d; } K(c, a); c.prototype.getAxisMarkerVisualTargets = function () { var a = this.rootVisuals; return { behind: a.axisMarkersFront, front: a.axisMarkersFront }; }; c.prototype.requestLegend = function (a) { return null; }; c.prototype.initFP = function () { var a = this; this.axes = Xa( Kf, function () { return a._axes; }, function (a) {} ); }; c.prototype.getBarSize = function (a) { var b = this.palette.options("colorBar") || {}, c; b = this.isHoriz ? (this.swatchSize = [z(b.length, eu), z(b.width, fu)]) : (this.swatchSize = [z(b.width, fu), z(b.length, eu)]); if ((a = this.updateChartBox(a))) { var f = [0, 0]; if ((c = this.overflows)) f = [c[1] + c[3], c[0] + c[2]]; this.swatchSize = [Math.min(b[0], a[2] - f[0]), Math.min(b[1], a[3] - f[1])]; } return this.swatchSize; }; c.prototype.updateChartBox = function (a) { a && t(a[2]) && t(a[3]) && (this.chartBox = rb(a, 10)); return this.chartBox; }; c.prototype.pointOver = function (a) { var b = this.axis, c = this.palette, f = c.getPointValue(a.currentOptions, a.series); null === f || Ha(f) || ((c = c.getValueColor(f)), b.crosshair(Sm({ point: a, yVal: f, color: c }))); }; c.prototype.pointOut = function () { this.axis.crosshair(); }; c.prototype.getUserWH = function () { var a = this.isHoriz, c = this.palette.options("colorBar") || {}; return [a ? c.length : c.width, a ? c.width : c.length]; }; c.prototype.measure = function (a, c) { var b = this.axis; this.setRootVisuals(); var d = this.palette.axisConfig, g = this.getBarSize(a); this.axisSize = void 0; if (d) { b.range = d; b.fitRange = !0; b.setViewState(); this.axisSize = b.measure(g); d = this.updateOverflows(); var h = this.getBarSize(a); if (h[0] !== g[0] || h[1] !== g[1]) (g = h), (this.axisSize = b.measure(g)); g = this.size = this.isHoriz ? [g[0] + d[0], g[1] + this.axisSize[3] + d[1]] : [g[0] + this.axisSize[2] + d[0], g[1] + d[1]]; b = g[0] > a[2]; g = g[1] > a[3]; if (b || g) if (((d = this.getUserWH()), (!c && b && !t(d[0])) || (g && !t(d[1])))) return this.measure(a, !0); } return this.size; }; c.prototype.renderAxis = function () { var a = this.contentRect; this.axis.render(a).renderOnCa(a); }; c.prototype.patchAxis = function () { var a = this, c = a.rootVisuals, e = a.axis; e.isAdded || ((c = [c.topAxes, c.rightAxes, c.bottomAxes, c.leftAxes][a.axis.sideIndex()]), e.isVisible && e.rootPanel && (e.add(c), c.on("pixelCorrection", function () { a.renderAxis(); }), e.rootPanel.isPatched || e.rootPanel.await(function () { return a.renderAxis(); }))); }; c.prototype.render = function (a) { var b = this.rootVisuals; a = this.getBarSize(a); this.rootPanel.attr({ width: this.size[0], height: this.size[1] }); this.contentRect = { x: 0, y: 0, width: a[0], height: a[1] }; this.patchAxis(); var c = this.axis.options("scale.invert"); c = { stops: this.palette.getTraditionalStops(null, !0), angle: this.isHoriz ? (c ? 180 : 0) : c ? 90 : -90 }; c = oc(c); b.colorContent.attr({ fill: c, width: a[0], height: a[1] }); return this; }; c.prototype.updateOverflows = function () { var a = Br(this); this.overflows = a.slice(0); return [a[1] + a[3], a[0] + a[2]]; }; c.prototype.setRootVisuals = function () { var a = this.renderer; if (!this.rootVisuals) { var c = (this.rootVisuals = Hl(a).build({ outline: { width: 0 }, axis: { offset: 0.5 }, content: { holder: { stretch: !1 } }, axisMarkers: !0, overflow: !0 })); c.colorContent = a.rect().add(c.dataContent); this.rootPanel = c.mainStacks; } return this; }; c.prototype.destroy = function () { a.prototype.destroy.call(this); this.axis.destroy(); }; return c; })(jc), fu = 25, eu = 300, ye = function (a) { return a && "Series" === a.kind; }, ze = function (a) { return a && "Point" === a.kind; }, yD = (function (a) { function c(b, c, e) { var d = a.call(this, b.chart, C(c.currentOptions, "legendEntry") || {}, [b, c]) || this; d.legend = b; d.target = c; d.sortOrderValue = e; d.rowVisuals = []; d.textVisualsRef = []; d.state = ""; d.icons = {}; d.legend = b; d.bindEvents(); d.optionsApplied(); return d; } K(c, a); c.prototype.init = function () { for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c]; a = G(a, 2); c = a[1]; this.legend = a[0]; this.target = c; }; c.prototype.defaultOptions = function () { return A(A({ set: 0, checkbox: { color: "#555555", size: 12 } }, this.legend.currentOptions.defaultEntry), this.target.currentOptions.legendEntry); }; c.prototype.options = function (b, c) { var d = this.optionsGetter(b); if ("NotGetter" !== d) return d; var f = z(C(b, "checkbox.checked"), C(b, "checkbox_checked")), g = t(f), h = C(this.currentOptions, "checkbox.checked"); d = t(h) && !t(C(this.userOptions, "checkbox.checked")) && !g; this.isCustom && !this.legend._isSyncing && this.chart.isRendered && this._onUserOptions && this._onUserOptions(b); var k = a.prototype.options.call(this, b, c); d ? Z(this.currentOptions, "checkbox.checked", h) : g && this.chart.isRendered && !1 !== c && (this.updateCheckbox(f), this.checkbox && this.checkbox.refresh()); "EntryWrapper" === this.target.kind && (this.target.options({ legendEntry: b }, c), (this.legend.isDirty = !0), !1 !== c && this.chart.chartAreaSet.reflow(void 0, !1, !0)); this.optionsApplied(); this.afterUpdate(c); return k; }; c.prototype.optionsApplied = function () { this.userOptions.checkbox && delete this.userOptions.checkbox.checked; this.chart.triggerOptionsApplied("legendEntry", this); }; c.prototype.render = function (a) { this.updateStyles(!0); return this; }; c.prototype.zoomTo = function () { this.target && this.target.zoomTo && this.target.zoomTo(); return this; }; c.prototype.refreshOptions = function (a) { var b = this.target.options("legendEntry"); b && this.options(b, a); }; c.prototype.getBounds = function (b) { var c = this; if (b) return a.prototype.getBounds.call(this, b); var e = []; w(this.rowVisuals, function (a) { e.push(c.getBounds(a)); }); return Ea(e); }; c.prototype.updateTrackerPosition = function () { var a = this.getBounds(); a && this.trackerElement.attr(Gc(rb(a, -2))); }; c.prototype.updateCheckbox = function (a) { if (this.checkbox) { var b = this.target, c = this.checkbox.attrs.name; a = "" + Yr(b) + (z(a, Zr(b)) ? "" : "-blank"); a !== c && this.checkbox.attr({ name: a }); } return this; }; c.prototype.setRootVisuals = function () { return this; }; c.prototype.bindEvents = function () { var a = this, c = a.chart, e = a.target, f; if (!a.trackerElement) { var g = "pointer", h = a.hasUserEvent("click"); (f = a.options("cursor")) ? (g = f) : ze(e) ? e.series.options("pointSelection") || h || e.series.chartArea.canZoom() || (g = "default") : ye(e) || h ? "EntryWrapper" !== e.kind || h || (g = "default") : (g = "default"); e = a.options("initialCursor"); !c.isRendered && e && (g = e); c = a.trackerElement = a.trackerElement || a.renderer.renderer.rect().attr({ cursor: g, fill: "rgba(255,255,255,0)", zIndex: 1 }).add(c.rootVisuals.front); c.on("mouseover", function (b) { return a.mouseover(b); }); c.on("mouseout", function (b) { return a.mouseout(b); }); c.on("vclick", function (b) { return a.click(b); }); } }; c.prototype.mouseover = function (a) { var b = this, c = b.legend, f = b.target, g = ye(f), h = ze(f), k = h || g, l = b.chart.ctManager, m = l.isType("map"), n = l.isType("calendar"); l = "select" === f._state; c = c.chart.chartAreas(0); var p = c.debounce; a = "touchend" === a.type; m = Ul(b) && !m && !n; n = function () { p.defer( "mute", function () { Ol(f, "", Nl(b)); }, 36 ); }; c.resetTimers(); if (!1 !== b.triggerUser("mouseOver", f)) { if (f.mouseOver) { if (k && m) if ((!l && f.setState(""), a && b.chart.highlighted === f)) p.run("unmute") || Qb(b.chart); else { n(); var q = !0; } } else if (g && m) if (f.isVisible) n(), (q = !0); else var r = !0; else m && !h && (r = !0), !l && f.setState("hover"); b.setState("hover"); r ? q && b.chart.touched() && p.defer( "unmute", function () { Qb(f.chart); }, 2e3 ) : p.clear("unmute"); } }; c.prototype.mouseout = function (a) { var b = this.target, c = ye(b), f = ze(b); a = "select" === b._state || "select" === b.state; !1 !== this.triggerUser("mouseOut", b) && ((c || f) && Ul(this) && ((c = (f ? b.series.chartArea : b.chartArea).debounce), c.clear("mute"), c.defer( "unmute", function () { Qb(b.chart); }, 230 )), b.setState && !a && b.setState(""), this.updateStyles()); }; c.prototype.click = function (a) { var b = this, c = b.target, f = "touchend" === a.type, g = ze(c), h = (g ? c.series.chartArea : c.chartArea) || b.chart.chartAreaSet.items[0], k, l = ye(c) || g; f && h && h.debounce.clear("touchTimeout"); var m = function (a) { return Z(b.currentOptions, "checkbox.checked", a); }; if (b.checkbox && !l) { var n = m(!C(b.currentOptions, "checkbox.checked")); b._onUserOptions = function (a) { a = z(C(a, "checkbox.checked"), C(a, "checkbox_checked")); t(a) && (k = !0); }; } if (!1 !== c.triggerUser("legendEntryClick") && !1 !== b.triggerUser("click", c)) { if (l) { l = b.chart.ctManager; n = l.isType("map"); l = l.isType("calendar"); m = ye(c); var p = c.isVisible, q = b.chart.options("axisToZoom"); q = q && "none" !== q; Ul(b) && (f && g && !b.checkbox ? (b.mouseover(a), h.debounce.defer( "touchTimeout", function () { h.clickOff(); }, 8e3 )) : !1 !== p && Qb(c.chart)); c.visible && !l && !n && m && c.visible(); c.zoomTo && (q || l) && c.zoomTo(); this.chart.resetTimers(); } else b.checkbox && (b.updateCheckbox(n), b.checkbox.refresh(), m(n)); b.checkbox && c.click && c.click({ eventArgs: a, accumulate: !!b.checkbox }); } else b._onUserOptions && !k && m(!C(b.currentOptions, "checkbox.checked")); b._onUserOptions = void 0; a.preventDefault(); }; c.prototype.updateStyles = function (a) { var b = this.target, c = this.chart.ctManager; c.isType("map"); var f = C(this.currentOptions, "checkbox.checked"); c = c.isType("calendar"); f = t(f) || (this.checkbox && c); this.targetVisible = z(b.isVisible, !0); -1 < this.legend.getTemplateColumns().indexOf("%icon") && this.styleIconVisual(); f && this.updateCheckbox(z(C(this.currentOptions, "checkbox.checked"), this.targetVisible)); !1 === this.targetVisible ? this.setState("hidden", a) : this.setState("", a); }; c.prototype.setColumns = function () { var a = this, c = this, e = c.currentOptions, f = c.legend, g = e.set, h = f.getTemplateColumns(g), k = c.target; c.refreshOptions(!1); var l = C(c.userOptions, "checkbox.enabled"); C(f.currentOptions, "defaultEntry.checkbox.enabled"); var m = f.checkboxManual ? l : Tz(k) ? !1 !== l : l; if (f.isVisible) { var n = qc(e); delete n.val; n.autoWrap = "none"; var p = f.getColumnAlignments(g); c.rowVisuals = B(h, function (b, d) { var f = b.toLowerCase(), g; if ("%checkbox" === f) (g = c.rowVisuals[d]) || (m ? ((d = A({ fill: e.checkbox.color }, e.checkbox, { name: "" + Yr(k) + (Zr(k) ? "" : "-blank") })), (g = b = c.renderer.panel({ yAlignment: "center" })), (c.checkbox = c.renderer.icon(d)), c.checkbox.add(b), (d = C(e, "checkbox.checked")), t(d) && c.updateCheckbox(d)) : (g = c.renderer.panel({}))); else if ("%icon" === f) if ((g = c.rowVisuals[d])) (c.iconVisual = g = a.getIconVisual()), (g = g.root); else { c.iconVisual = g = a.getIconVisual(); c.rootVisuals = { icon: g }; var h = g.base, l = g.extra; g.root.attr({ width: a._iconSize ? c._iconSize[0] : e.iconWidth, height: a._iconSize ? c._iconSize[1] : 10, xAlignment: "center", yAlignment: "middle" }); g = g.root; g.on("pixelCorrection", function () { var a = z(C(h, "data.attrs.stroke-width"), 1); a = nd(g, [0, 0], a); h && h.attr({ translate: a }); l && l.attr({ translate: a }); }); } else "%name" === f ? (b = c.options("name")) : "%value" === f && (b = c.options("value")), "function" === typeof b && (b = b(k)), c.options("attributes") && (b = Gg({ attr: b }, c, A({ mode: "AttrOnly" }, c.chart.getFormatInfo()))), (b = k.replaceTokens(b)), (f = A({ xAlignment: p[d], yAlignment: "middle" }, n)), (g = c.rowVisuals[d]) ? (f.val = b) : ((g = c.renderer.textStack(b)), c.textVisualsRef.push(g)), (!1 === k.isVisible && k.chart.isRendered) || g.attr(f); (!1 === k.isVisible && k.chart.isRendered) || c.refreshOptions(!1); return g; }); } return this; }; c.prototype.getIconVisual = function () { var a = this.currentOptions, c = this.target, e = a.iconWidth, f = a.icon, g = I(f); c = c.getIconVisual([this._iconSize ? this._iconSize[0] : e, this._iconSize ? this._iconSize[1] : 10], c, this); this._iconSize = null; if (f) { var h = c.base || c.extra; h && ((e = "object" === g ? ("none" === f.name ? 10 : z(f.size, f.width, e)) : "string" === g && "none" === f ? 10 : e), (a = Ld(a.icon, 0, 0, e, e))) && (h.attr({ d: a }), (this._iconSize = [e, e])); } return c; }; c.prototype.styleIconVisual = function () { var a = this.currentOptions, c = this.getIconVisual(); this.target.styleIconVisual(c, this); c = this.getIconVisual(); if ((a = a.icon)) if ((c = c.base || c.extra)) (a = fc(a)), c.attr(a); }; c.prototype.setState = function (a, c) { if (a !== this.state || c) { var b = A({}, this.currentOptions); "normal" !== a && (c = this.options("states." + a)) && A(b, c); var d = qc(b); delete d.val; d.autoWrap = "none"; c = this.legend.rootPanel; b = c.getBbox(); w(this.textVisualsRef, function (a) { a.attr(d); a.isPatched && a.patch(); }); var g = c.setPreliminarySize(!0).getBbox(); (g.width === b.width && g.height === b.height) || c.refresh(); this.state = a; } }; c.prototype.remove = function (a) { var b = this.legend; this.destroy(); b.syncCustomEntries(); b.isDirty = !0; !1 !== a && b.chart.chartAreaSet.reflow(!1, !1, !0); }; c.prototype.hideTracker = function () { this.trackerElement && this.trackerElement.hide(!0); }; c.prototype.destroy = function () { var a = this.legend, c, e = pb(this.legend.items, this); if ((c = S(a._userEntries, { id: this.id }))) pb(a._userEntries, c), pb(a.userOptions.customEntries, c), pb(a.currentOptions.customEntries, c); -1 < e && (this.legend.isDirty = !0); this.textVisualsRef = []; w(this.rowVisuals, function (a) { return a.destroy(); }); this.trackerElement && this.trackerElement.destroy(); }; return c; })(jc), hu = [120, 70], zD = (function (a) { function c() { var b = (null !== a && a.apply(this, arguments)) || this; b.isDirty = !0; b.fillShading = "box"; b.items = []; b.spItems = []; b.spMode = "none"; b._aligmentsCache = []; b._customEntries = []; return b; } K(c, a); c.prototype.init = function (a) { this.alignTo = a; this.kind = "Legend"; this.updateSp(); this.initFP(); }; c.prototype.initFP = function () { var a = this; a.entries = Xa( wb, function () { return a.items; }, function () { return 0; }, { push: function (b, c) { a._userEntries = a._userEntries || []; a._userEntries.push(b); a.syncCustomEntries(); a.isDirty = !0; !1 !== c && a.chart.chartAreaSet.reflow(void 0, !1, !0); }, } ); }; c.prototype.options = function (b, c) { var d = this.optionsGetter(b); if ("NotGetter" !== d) return d; this.isDirty = !0; a.prototype.options.call(this, b, !1); !1 !== c && this.chart.chartAreaSet.reflow(void 0, !1, !0); this.afterUpdate(c); return this; }; c.prototype.updateSp = function () { var a = this.chart, c, e = a.palette && !1 !== C(a.palette, "colorBar.visible"); (a = this.smartPalette = "object" === I((c = a.palette)) && e ? a.getSmartPalette(c) : void 0) ? (this.spMode = a.mode) : !1 === e && (this.spMode = "colorBar"); this.colorBar && ("colorBar" !== this.spMode ? (this.colorBar.destroy(), (this.colorBar = void 0)) : this.smartPalette.destroyEntries()); return this; }; c.prototype.allowEntries = function () { this.chart.ctManager.isType("calendar"); return !0; }; c.prototype.setOptions = function () { a.prototype.setOptions.call(this); this.isVisible = !1 !== this.currentOptions.visible; this.setLayoutDirection(); this.updateSp(); var b = (this._userEntries = this.currentOptions.customEntries || []); w(b, zb); return this; }; c.prototype.defaultOptions = function () { var a = this.chart; a = a ? a.boxDefaults() : Cf(); var c = a.label.style; return { position: "right top", fill: a.fill, layout: "auto", radius: a.radius, boxPointerEvents: !1, boxVisible: a.boxVisible, corners: ["cut", "square", "cut", "square"], outline: a.outline, title: { label: { style: { fontSize: "13px" } } }, defaultEntry: { name: "%name", value: "%value", iconWidth: 20, style: { color: c.color, fontSize: "11px" }, states: { hidden: { style: { color: "#707070" } } } }, headerStyle: { color: c.color, fontSize: "12px", fontWeight: "normal" }, horizontalSpacing: 3, margin: !1 === a.boxVisible ? 0 : 7, template: "%value %icon %name", name: "%name", value: "%value", shadow: z(a.shadow, !0), sortOrder: 0, }; }; c.prototype.normalizeOptions = function (b, c) { b = a.prototype.normalizeOptions.call(this, b, c); t(b.width) && !t(b.maxWidth) && (b.maxWidth = b.width); return b; }; c.prototype.contextOptions = function () { return A({}, this.defaultContextOptions || {}, C(this.chart, "typeContextOptions.legend") || {}); }; c.prototype.dependentOptions = function () { return [ { option: "fill", check: function (a) { return a; }, dependent: "margin", value: 7, }, ]; }; c.prototype.defaultEntryOptions = function () {}; c.prototype.pointOver = function (a) { this.colorBar && this.colorBar.pointOver(a); }; c.prototype.pointOut = function () { this.colorBar && this.colorBar.pointOut(); }; c.prototype.setRootVisuals = function () { var a = this.currentOptions, c = this.rootVisuals, e = this.rootPanel; c || ((c = this.rootVisuals = { title: void 0, stack: void 0, background: void 0, grid: void 0 }), (e = this.rootPanel = e || this.renderer.box()), (e = c.stack = c.stack || this.renderer.panel({ type: "stack:y" }).add(e)), (c.title = c.title || new Fi(this.chart, { text: "", margin: 3 }).add(e)), (c.grid = c.grid || this.renderer.panel({ type: "grid", xAlignment: "center", cellSpacing: z(a.cellSpacing, 5) }).add(e)), c.gridSp || ((c.gridSpDivider = this.renderer .textStack("
    ") .attr({ xAlignment: "center", width: "100%", fontSize: 5, padding: [0, 5], suspend: !0 }) .visible(!1) .add(e)), (c.gridSp = this.renderer.panel({ type: "grid", xAlignment: "center", cellSpacing: z(a.cellSpacing, 5) }).add(e)))); return this; }; c.prototype.setAttribs = function () { var a = this.currentOptions, c = a.margin; "position" === wr(a.position) && c && "number" === typeof c && (a.margin = this.getAdjustedMarginVal(c)); a = Cg(a, this.fillShading); delete a.width; this.attribs = { bg: a }; return this; }; c.prototype.getAdjustedMarginVal = function (a) { var b = [0, 0, 0, 0]; b[{ t: 2, r: 3, b: 0, l: 1 }[ur(this.options("position"))]] = a; return b; }; c.prototype.measure = function (a) { this.render(t(a) ? Gc(a) : this.chart.renderer.rootBox); this.isMeasured = !0; return this.getLegendBoxWithMargins(); }; c.prototype.render = function (a) { var b = this, c = b.currentOptions, f = "vertical" !== b.layoutDirection, g = b.rootPanel, h = b.rootVisuals, k = a ? ha(a) : void 0; if (a) { a = qa(a); var l = !0; } else a = {}; b.updateSp(); if (!l) return this; if (b.isDirty || a) if (b.isVisible) { g.visible(!0); b.setTargetItems(); b.sortByInternalSortValue(); var m = "colorBar" === b.spMode && b.smartPalette, n = 0 < b.entries().items.length, p = m && n, q = n && "ranges" === b.spMode; h.grid.attr({ width: null, height: null }); b.setAttribs(); n = b.attribs; var r = A({}, b.options("title.label")); C(r, "text.length") && (r.text = b.chart.replaceTokens(r.text)); var u = void 0; (u = C(r, "align")) && h.title.rootPanel.attr({ xAlignment: u }); h.title.options(r); r = qa(a); p && l && ((k = io(k, [0, -hu[f ? 1 : 0], 0, 0])), (r = Gc(k))); var t = function (a, b) { void 0 === b && (b = h.grid); a.borders.length && b.attr({ borders: a.borders }); b.val(a.rows); }; if (l && q) { f = h.gridSp.getBboxArray(); l = h.gridSpDivider.getBboxArray(); f = [0, 0, 0, f[3] + h.title.getSize()[1] + l[3]]; a = jo(k, f); h.gridSpDivider.suspend = !0; f = b.getItemSets(); k = b.getItemBoxSets(a, f); a = yv(k, { limitBox: a }); var v = [h.grid, h.gridSp], y = 0, z = a.ids; w(f, function (a, c) { a && t(b.getSetRows(a, z[Math.min(c, z.length - 1)]), v[c]); a && y++; }); h.gridSpDivider.visible(1 < y); b.updateStyles(); } else { b.allowEntries() && t(b.getRows()); k = void 0; p = m ? r : b.chart.renderer.rootBox; if (b.allowEntries() && l && ((k = Math.ceil(b.getApproximiteSplitFactor(p))), 1 < k)) for (t(b.getRows(k)); 1 < b.getApproximiteSplitFactor(p) && k < b.items.length; ) t(b.getRows(++k)); b.updateStyles(); m && l && (h.gridSpDivider.visible(0 < h.grid.childElements.length).setPreliminarySize(!0), (k = h.grid.getBboxArray()), (l = h.gridSpDivider.getBboxArray()), (a = jo(ha(a), [0, 0, 0, k[3] + h.title.getSize()[1] + l[3]])), (l = void 0), !f && k[2] > 1.5 * a[3] && k[2] > hu[0] ? ((a = [0, 0, k[2], a[3]]), (l = !0)) : 140 < a[3] && (a[3] *= 0.8), h.gridSp.val([[b.getSwatch(a, l)]])); } h.grid.attr({ width: c.width, height: c.height }); g.attr(n.bg); b.isDirty = !1; } else g.isPatched && (g.attr({ width: null, height: null }), g.visible(!1), g.refresh()); b.chart.triggerOptionsApplied("legend", b); return this; }; c.prototype.invalidate = function () { this.isDirty = !0; return this; }; c.prototype.updateStyles = function () { this.isVisible && w(this.items, function (a) { a.updateStyles(); }); return this; }; c.prototype.getApproximiteSplitFactor = function (a) { var b = this.rootVisuals, c = this.currentOptions; this.rootPanel.update(); var f = b.gridSp.getBbox(), g = b.gridSpDivider.getBbox(); b = b.stack.getBbox(); b.height -= f.height + g.height; f = this.curRect = b; a = "vertical" === this.layoutDirection ? f.height / (a.height || f.height) : f.width / (a.width || f.width); a = Pj(a, 2); 1 >= a && (c = z(c.maxWidth, c.width)) && (a = f.width / c); return a; }; c.prototype.getRows = function (a) { void 0 === a && (a = 1); return this.getSetRows(this.getVisibleItems(), a); }; c.prototype.getSetRows = function (a, c) { void 0 === c && (c = 1); var b = this, d = [], g = b.renderer, h = b.currentOptions, k = [], l = [], m = a.length && a[0].set, n = function (a, b) { return w(a, function (a) { k.push(a); l.push(b); }); }, p = function (a, c) { a ? (a.setColumns ? ((c = a.setColumns().rowVisuals), n(c, a.currentOptions.lineAbove ? [!0, !1, !1, !1] : null)) : n(a, null)) : n(b.getBlankEntry(m), null); }, q = function () { k.push(g.panel({ width: h.horizontalSpacing })); l.push(null); }, r = function (a) { if (u && a) { for (var c = 0; c < a; c++) p(b.getHeaderEntry()), c !== a - 1 && q(); d.push(k); k = []; } }, u = void 0 !== b.getHeaderEntry(m), t = Math.ceil(a.length / c); c = []; for (var v = 0, y = 0, z = a.length; y < z; y += t) { var A = a.slice(y, y + t); c.push(A); v = Math.max(v, A.length); } if ("vertical" === b.layoutDirection) for (r(c.length), a = 0; a < v; a++) { k = []; r = 0; for (t = c.length; r < t; r++) p(c[r][a]), r !== t - 1 && q(); d.push(k); } else for (r(v), r = 0, t = c.length; r < t; r++) { k = []; for (a = 0; a < v; a++) p(c[r][a]), a !== v - 1 && q(); d.push(k); } return { rows: d, borders: l }; }; c.prototype.setLayoutDirection = function () { var a = this.currentOptions, c = a.layout; c = c || "auto"; var e = { t: "horizontal", r: "vertical", b: "horizontal", l: "vertical" }; a = ur(a.position) || "r"; this.layoutDirection = ("auto" === c ? e[a[0]] : c) || "vertical"; }; c.prototype.getSwatch = function (a, c) { this.setLayoutDirection(); var b = this.smartPalette; this.colorBar && b.id !== this.colorBar.palette.id ? (this.colorBar.destroy(), (c = this.colorBar = new gu(this, b, { maxWidth: 400, maxHeight: 400, isHoriz: c }))) : (c = this.colorBar = this.colorBar || new gu(this, b, { maxWidth: 400, maxHeight: 400, isHoriz: c })); c.measure(a) && c.render(); !this.allowEntries() && w(this.getVisibleItems(), function (a) { a.hideTracker(); }); return c.rootPanel; }; c.prototype.setTargetItems = function () { var a = this.chart; this.smartPalette && (this._targetItems = "ranges" === this.spMode ? this.smartPalette.syncLegendEntries(this) : void 0); a.calIndexer && a.calIndexer.syncLegendEntries(this); this.syncCustomEntries(); }; c.prototype.getVisibleItems = function () { var a = z(this._targetItems, []).slice(0); this.allowEntries() && a.push.apply(a, H(this.items)); a = $a(a); return ea(a, function (a) { if (!1 !== a.options("visible")) return a; }); }; c.prototype.getItemSets = function () { var a = this.getVisibleItems(), c = []; w(a, function (a) { var b = z(a.currentOptions.set, 0); c[b] ? c[b].push(a) : (c[b] = [a]); }); return c; }; c.prototype.getItemBoxSets = function (a, c) { var b = this, d = b.rootPanel, g = b.rootVisuals, h = "vertical" !== b.layoutDirection; c = c || b.getItemSets(); var k = [], l = [g.grid, g.gridSp]; w(c, function (c, e) { if (c) { e = l[e]; if (c) { for (var f = [], g = Bv(c.length), m = void 0, n = 0, t = g.length; n < t; n++) { var v = g[n], w = b.getSetRows(c, g[n]); w.borders.length && e.attr({ borders: w.borders }); e.val(w.rows); d.update(); w = e.getBboxArray(); if (h) if (w[2] < a[2]) { w.id = v; f.push(w); break; } else (m = w.slice(0)), (m.id = v); else { if (w[2] > a[2]) { m = w.slice(0); m.id = v; break; } w[3] < a[3] ? ((w.id = v), f.push(w)) : ((m = w.slice(0)), (m.id = v)); } } !f.length && m.length && f.push(m); c = f; } else c = void 0; c.length && k.push(c); } }); return k; }; c.prototype.getBlankEntry = function (a) { var b = [], c = this.renderer; a = this.getTemplateColumns(a).length; for (var f = 0; f < a; f++) b.push(c.panel()); return b; }; c.prototype.getColumnAlignments = function (a) { void 0 === a && (a = 0); var b = this, c = !b.chart.chartAreaSet.series().length; if (b._aligmentsCache[a]) return b._aligmentsCache[a]; var f = b.getTemplateColumns(a), g = (function () { return S(b.items, function (a) { return !a.isCustom; }); })() || b.items[1] || b.items[0]; if (!g) return []; var h = g.target, k = function (a, c) { var d = a.replace(",", "."); a = parseFloat(d); if (!a && 0 !== a) return !1; a = a.toString(); if (a === d) return !0; d = d.length - a.length; for (var e = 1; e < b.items.length; e++) { var f = b.items[e].target.replaceTokens(c); a = parseFloat(f); if (!a && 0 !== a) return !1; a = a.toString(); if (f.length - a.length !== d) return !1; } return !0; }; f = B(f, function (a, b) { if ("%icon" === a) return "center"; var d; c ? (b = d = Gg({ attr: a }, g, g.chart.getFormatInfo())) : ((b = h.replaceTokens(a)), (d = h.replaceTokens({ token: a }))); var e = I(d); "object" === e && ((e = "string"), (d = d.token || d)); "INVALID TOKEN" === d ? (e = "number") : "string" === e && k(b, a) && (e = "number"); return "string" === e ? "left" : "right"; }); return (b._aligmentsCache[a] = f); }; c.prototype.getTemplateColumns = function (a) { var b = this.currentOptions.template, c = !!b.pop, f = t(a), g = !0 === C(this.userOptions, "defaultEntry.checkbox.enabled"); b = Vl(c ? b[f ? a : 0] : b, !1); c = this.userOptions.template; !a || (c && "%icon %name" !== c) || "ranges" !== this.spMode || (b = Vl("%icon %value", !1)); S(b, function (a) { return "%checkbox" === a.trim().toLowerCase(); }) || (this.items.filter(function (a) { return !0 === a.userOptions.checkbox || C(a.userOptions, "checkbox.enabled"); }).length ? (b.unshift("%checkbox"), (this.checkboxManual = !0)) : (a = this.userOptions.customEntries) && a.filter(function (a) { return !0 === a.checkbox || C(a, "checkbox.enabled"); }).length && (b.unshift("%checkbox"), (this.checkboxManual = !0)), !ae(b, "%checkbox") && g && b.unshift("%checkbox")); g && this.checkboxManual && (this.checkboxManual = !1); return b; }; c.prototype.getHeaderEntry = function (a) { var b = this, c = b.currentOptions, f = Vl(c.header, !1); if (f) { var g = b.getTemplateColumns(a); a = g.length; var h = qc({ style: c.headerStyle }); f && f.length && f.length !== g.length && ((c = g.indexOf("%checkbox")), -1 < c && f.splice(c, 0, "")); S(b.items, function (a) { return !a.isCustom; }); var k = b.getColumnAlignments(); c = []; if (f.length === a) return (c = B(f, function (a, c) { -1 < a.indexOf("%") && (a = b.chart.replaceTokens(a)); a = b.renderer.textStack().val(a); a.attr(A({ xAlignment: k[c] || "left", yAlignment: "bottom" }, h)); return a; })); } }; c.prototype.getLegendBoxWithMargins = function () { var a = this.rootPanel; 1 < a.combinations.length ? this.rootPanel.refresh(!0) : this.rootPanel.setPreliminarySize(!0); return a.getGlobalBboxArray(!0); }; c.prototype.positionUpdated = function (a) { w(this.items, function (a, b) { a.updateTrackerPosition(); }); }; c.prototype.addEntry = function (a, c, e) { void 0 === c && (c = 0); var b; a.legend = this; e && (!t((b = e.replaceIndex)) || 0 > b) && (b = this.items.indexOf(e)); a = new yD(this, a, c); -1 < b ? (this.items.splice(b + 1, 0, a), (e.replaceIndex = b + 1)) : this.items.push(a); this.sortByInternalSortValue(); this.isDirty = !0; return a; }; c.prototype.syncCustomEntries = function () { var a = this, c = Qt.custom; a._isSyncing = !0; Ub( a._userEntries, a._customEntries, function (b) { var d = a.addEntry(new Qm(a.chart, { legendEntry: b })); t(C(b, "checkbox.checked")) && delete b.checkbox.checked; d.isCustom = !0; d.sortOrderValue = c++; return d; }, function (a, b) { return b.options(a, !1); } ); w(a._customEntries, function (a) { return a.setColumns(); }); a._isSyncing = !1; }; c.prototype.sortByInternalSortValue = function () { this.items.sort(function (a, c) { a = z(a.currentOptions.sortOrder, a.sortOrderValue); c = z(c.currentOptions.sortOrder, c.sortOrderValue); return a < c ? -1 : a > c ? 1 : 0; }); this.options("reversed") && this.items.reverse(); }; c.prototype.add = function (a) { this.render(); this.rootPanel && this.rootPanel.add(a); return this; }; return c; })(jc), Vz = { zigzag: as, gap: function (a, c, b, d) { var e = c / 2, f = "c" === a || "l" === a, g = "m" === a || "t" === a; f = G(d([b[0] + (f ? e : 0), b[1] + (g ? e : 0), b[2] - (f || "r" === a ? ("c" === a ? c : e) : 0), b[3] - (g || "b" === a ? ("m" === a ? c : e) : 0)]), 4); b = f[0]; d = f[1]; e = f[2]; g = f[3]; f = { clipPath: Yh(b, d, e, g) }; if ("r" !== a && "b" !== a) { var h = d + 0.5, k = b + 0.5; a = "t" === a || "m" === a ? [ [ [b, h], [b + e, h], ], [ [b, h - c], [b + e, h - c], ], ] : [ [ [k, d], [k, d + g], ], [ [k - c, d], [k - c, d + g], ], ]; f.outlinePath = fb(a[0]).concat(fb(a[1])); } return f; }, line: function (a, c, b, d) { if ("r" === a || "b" === a) return null; var e = c / 2, f = "c" === a || "l" === a; a = "m" === a || "t" === a; c = d([b[0] - (f ? e : 0), b[1] - (a ? e : 0), f ? c : b[2], a ? c : b[3]]); return { path: Yh(c[0], c[1], c[2], c[3]) }; }, hidden: function () { return null; }, }, Xz = function (a, c, b) { var d = c.id, e = function (a) { return a.crosshair(b); }; a.axes() .filter({ userOptions: { scale: { syncWith: d } } }) .each(e); e(c); }, Yz = function (a) { var c = []; w(a, function (a) { a.yVal.pop ? w(a.yVal, function (b) { c.push(Sm(A({}, a, { yVal: b }))); }) : c.push(Sm(a)); }); return c; }, iu = ["column", "area", "candlestick", "ohlc", "variwide"], kj = ["column", "candlestick", "ohlc", "variwide"], ju = (function (a) { function c(b, c) { var d = a.call(this, b.chart, c, [b.chart, c]) || this; d.chartAreaSet = b; d.kind = "chartArea"; d._series = []; d.yAxis = []; d.xAxis = []; d.zAxis = []; d._axes = []; d.axConfList = {}; d.renderedRect = Gk(); d.preRenderedRect = Gk(); d.isDirtyPreRender = !0; d.isRendering = !1; d.renderRect = { x: 0, y: 0, width: 0, height: 0, borderWidth: 0 }; d.projection = { lin2valxy: function (a, b) { return [a, b]; }, val2linxy: function (a, b) { return [a, b]; }, }; d._awaitRenderCallbacks = []; d.maxSeriesZIndex = 0; d.events = { contentBox: new rd(), click: new rd() }; d.isZoomedDragArea = !1; d.zoomAxes = []; d.computeVals2 = function (a, b) { var c = a.slice(0, 2); d.isHoriz && c.reverse(); var e = []; w(d.zoomAxes, function (a, d) { return (e[d] = a ? a.linToVal(c[d], b) : void 0); }); return d.projection.lin2valxy(e[0], e[1]); }; d.computeValsTouch = function (a, b) { return B(a, function (a) { return d.computeVals2(a, b); }); }; d._lastPointers = []; d.mouseMove = Ni(function (a) { var b = function () { var a = e.getCursor(); return !a || "crosshair" === a || "move" === a; }, c = a.pointers || [[a.x, a.y]], e = d.chart, f = "touch" === a.device, g; if (2 === c.length && d.isPinchZooming) d.pinch(a); else if (1 === c.length) { c = c[0]; var h = void 0; if (d.isZooming) return (d.zoomEndVals = h = d.computeVals2(c, !0)), d.moveZoom(d, h), !0; if (d.isDragging) return d.drag(d.computeVals2(c)); var r = d.renderer.renderer.isAnimating() && !d._ignoreAnimation; h = d.isType("map"); if (!r && (g = d.renderBySortedSeriesRev)) { r = void 0; if (d.crosshair(c, a)) d.debounce.run("unmute"); else for (var u = 0, t = g.length; u < t && !(r = g[u].mouseMove(a, c)); u++); d.crossPDD().length && a.eventArgs.cancelable && a.eventArgs.preventDefault(); f && (r ? (d.debounce.defer( "touchTimeout", function () { d.clickOff(); }, 8e3 ), (d._hoveredItem = d.chart.hoveredPoint)) : (d._hoveredItem = void 0)); !r && b() && d._axisToZoom && (h || d._isStaticDragArea ? (d.isZoomed || d.isZoomedDragArea) && e.setCursor("move") : d.isZoomed && !h ? d.isInDragArea(c[1]) ? e.setCursor("move") : h || e.setCursor("crosshair") : e.setCursor("crosshair")); return r || !0; } } }, 13); d.docMM = void 0; d.docVUp = void 0; b.items.push(d); var f = (d.readyDefer = new $A()), g = f.hold("caConst"); d.initFP(); d.chart = b.chart; d.collisionManager = new Tm(d); d.legend = d.chart.legends(0); d.legend.alignTo = d.legend.alignTo || d; d.prepAxisConfigs(); f.release(g); d._firstOpCall = !0; d.options(c, !1); d.tooltip = new oD(d); return d; } K(c, a); c.prototype.init = function (a) { this._renderDataCallMonitor = new aB(); this.ctManager = Ht(); this.ctManager.init(a.userOptions); this.debounce = new Ae(); }; c.prototype.initFP = function () { var a = this; this.axes = Xa( Kf, function () { return a._axes; }, function (a) {} ); this.series = Xa( Ym, function () { return a._series; }, function (a) {} ); }; c.prototype.defaultOptions = function () { var a = this.chart, c = a.boxDefaults(this.userOptions.boxVisible ? 1 : void 0), e = qe(c.fill, "white", 30), f = C(a.typeContextOptions, "chartArea"); c = { fill: e, outline: c.outline, boxVisible: c.boxVisible, shadow: c.shadow }; f && A(c, f); a.chartAreaSet.hasScaleBreaks && (c.boxVisible = !0); return c; }; c.prototype.normalizeOptions = function (b) { b = a.prototype.normalizeOptions.call(this, b, "series"); Gh(b, "xAxis"); Gh(b, "yAxis"); cp(b, "orientation"); qw(b); return b; }; c.prototype.options = function (b, c) { var d = this.optionsGetter(b); if ("NotGetter" !== d) return d; (d = b.series) && !this._firstOpCall && (delete this.userOptions.series, delete this.currentOptions.series); !this._firstOpCall && a.prototype.options.call(this, b, c); this.isHoriz = this.ctManager.isHoriz(); d && this.setSeries(c); this.applyOptions(); !1 !== c && this.chartAreaSet.tryReflow(); this._firstOpCall = !1; return this; }; c.prototype.applyOptions = function () { var a = this.options(), c; if (this.rootVisuals.caBackground) { var e = Bg(a, void 0, Fa.chartArea); this.rootVisuals.caBackground.attr(e.fill); } e = a.height; var f = a.width; if (e || f) { var g = {}; f && (g.width = f); e && (g.height = e); this.rootPanel.attr(g); } (c = a.title) && this.rootVisuals.titleBox.options(c); (this._isStaticDragArea = this.isType("organization")) ? (this._axisToZoom = "xy") : ((this._axisToZoom = this.chart.currentOptions.axisToZoom || this.currentOptions.axisToZoom), "none" === this._axisToZoom && (this._axisToZoom = "")); this.chart.triggerOptionsApplied("chartArea", this); return this; }; c.prototype.canZoom = function () { return !!this._axisToZoom; }; c.prototype.setSeries = function (a) { var b = this; b.log("setSeries()"); var c = b.processSeriesConfigs(), f = function (a, b) { return a.currentOptions ? a.currentOptions.id || a.currentOptions.name || b : a.id || a.name || b; }; Ub( c, b._series, function (a) { b.addSeries(a); }, function (b, c) { return c.options(b, a || !1); }, function () {}, f, f ); b.triggerUser("setSeries", b); b.updateMapData(a); return this; }; c.prototype.processSeriesConfigs = function () { var a = this.options(), c = this.ctManager; a = a.series || []; if (c.shouldDataMerge() && a.length && 1 < a.length) { var e = c.dataMergeType(a); c = c.shouldDataMerge(a); c.length && (a = B(c, function (a) { return Dz(a, "collect" === e); })); } return a; }; c.prototype.spliceSeries = function (a, c, e, f) { var b = this, d = this.readyDefer, k = this._series, l = d.hold("spliceSer"), m = k.slice(0, a), n = k.slice(a, a + c); a = k.slice(a + c, k.length); c = 0; for (k = n.length; c < k; c++) n[c].destroy(); e = B(e, function (a) { return new Xm(b).options(a, f || !1); }); m.push.apply(m, H(e)); m.push.apply(m, H(a)); this._series = m; this.updateMapData(f); this.triggerUser("addSeries"); d.release(l); }; c.prototype.updateMapData = function (a) { var b = this; b.isType("map") && b.triggerUser("updateMapData", [ b, function () { return b.chart.redraw(a); }, ]); }; c.prototype.addSeries = function (a, c) { this.isDirtyPreRender = !0; var b, d = this.readyDefer, g = d.hold("addSer"); this._series.push((b = new Xm(this))); b.options(a, c || !1); this.isType("map"); d.release(g); this.triggerUser("addSeries"); return b; }; c.prototype.preRender = function () { var a = this; if (a.isDirtyPreRender) { var c = !a.renderedRect.width; a.setAxes(); var e = function (b) { b = a.axes(b).items.sort(function (a, b) { a = a.options("scale.syncWith"); b = b.options("scale.syncWith"); return (a && b) || a === b ? 0 : a ? 1 : -1; }); for (var c = 0; c < b.length; c++) { var d = b[c]; d.setData().setRange(!0); d.init_markers(); } }; e(function (a) { return "x" === a.prefix; }); a.dataLayout_clustersAndStacks(); a.series().each(function (a) { return a.setColor(); }); e(function (a) { return "x" !== a.prefix; }); a.isMultiType() && ((a.panes = a.panes || (Rm ? new Rm(a) : null)), a.panes.setPanes()); a.preRenderedRect = a.contentRect; a.isDirtyPreRender = !1; c && a.triggerUser("firstPreRender", a); } }; c.prototype.setAxes = function () { var a = this, c = this, e = (N(c.chart.currentOptions, ["defaultAxis", "scale"]) || {}).syncWith, f = c.chartAreaSet.allAxes; c.series().each(function (a) { a.setAxes(); }); w(["x", "y", "z"], function (b) { if (1 < f[b].length) for (var d = 0, g = f[b].length; d < g; d++) if (d) { var l = f[b][d], m = !1, n = l.scale || {}, p = !!n.range; p && Sl(n.range); var q = n.syncWith || e, r = N(c._series[0], ["visualizer", "kind"]) || ""; "none" === q || c.ciManager.exists(l.id) || r.match(/^map|^annotation|^funnel|^venn|^pie/) || (l.scale ? p && !Sl(n.range) && (m = !0) : l.defaultTick ? t(l.defaultTick.enabled) || Ma.emit("tip", l.id, "multiAxDTE", { data: [l.id, b], container: c.chart.getWrapper() }) : (l = A({ defaultTick: { enabled: !1 } }, l)), m || new jj(a, l, b)); } }); c.setZoomAxes(); c.triggerUser("setAxes", c); }; c.prototype.isType = function (a) { return this.ctManager.isType(a); }; c.prototype.isMultiType = function () { return this.isType("radar") || this.isType("gauge"); }; c.prototype.requestAxis = function (a, c, e, f) { var b, d = this.chart.chartItemManager; if (e) { if ((b = d.exists(e))) return b; a = this.getAxConfig(e) || {}; } else a = this.chartAreaSet.freeAxes[c]; ((e = z(e, a ? a.id : void 0)) && (b = d.exists(a.id))) || ((b = A({}, a)), e && (b.id = e), (b = new jj(this, f ? A(b, f) : b, c))); return b; }; c.prototype.getAxConfig = function (a) { if (a) for (var b = this.axConfList, c = pa(b), f = this.chartAreaSet.currentOptions.rootAx, g, h = 0, k = c.length; h < k; h++) { var l = c[h]; if ((g = S(b[l], { id: a })) || (g = S(f[l + "Axis"], { id: a }))) return g; } }; c.prototype.prepAxisConfigs = function () { var a = this, c, e; w(["x", "y", "z"], function (b) { e = b + "Axis"; c = a.currentOptions[e] || []; c.push(a.chartAreaSet.freeAxes[b]); w(c, zb); a.axConfList[b] = c; }); return a; }; c.prototype.populateAxisPanels = function () { function a(a) { return function (b) { b.isVisible && b.rootPanel && !b.isAdded && b.add(a); }; } if (!this.isMultiType()) { var c = this.rootVisuals, e = this.readyDefer, f = Rr(this.axes()), g = [this.rootRect.width, this.rootRect.height], h, k = [c.topAxes, c.rightAxes, c.bottomAxes, c.leftAxes]; c = function (a) { return !a.isHoriz; }; var l = function (a) { return a.isHoriz; }, m = e.hold("axM"); ob(4, function (b) { w(f[b], a(k[b])); }); this.axes(c).each(function (a) { a.resetMetricsData(); if ((h = a.measure(g))) g[0] -= h[2]; }); this.axes(l).each(function (a) { a.resetMetricsData(); if ((h = a.measure(g))) g[1] -= h[3]; }); var n = function (a) { return a.measure(g); }; this.axes(c).each(n); this.axes(l).each(n); e.release(m); } return this; }; c.prototype.measureAxes = function () { this.populateAxisPanels(); Ar(this); }; c.prototype.measureAxes_resetOverflows = function () { var a = this.rootVisuals; a.leftOverflow.attr({ width: 0 }); a.topOverflow.attr({ height: 0 }); a.rightOverflow.attr({ width: 0 }); a.bottomOverflow.attr({ height: 0 }); this.overflows = [0, 0, 0, 0]; }; c.prototype.tryRenderData = function (a) { var b = this.rootVisuals.content.getGlobalBbox(); if (!b.width || !b.height) return !1; var c = this.contentRect; if (c && c.width === b.width && c.height === b.height) return !1; c = this.contentRect = b; c.x = 0; c.y = 0; this.renderData(a); return !0; }; c.prototype.renderData = function (a) { var b = this, c = b.chart, f = b.rootVisuals; b.log("renderData"); b.isRendering = !0; var g = b.readyDefer, h = b.contentRect; if (!g.isReady()) return ( g.onReady(b.id + "renderD", function () { b.isType("map") && b.chartAreaSet.reflow(); b.renderData(a || b._updateOptions || void 0); }), b ); var k = b._renderDataCallMonitor; if (!(10 < k.callCount)) { k.open(); b._updateOptions = void 0; h || (h = b.contentRect = Gc([0, 0, 800, 500])); var l = !1; if (h) { l = b.chart.disableAnimation(a); b.triggerUser("preRenderData", [b, !b.renderedRect.width]); if (b._cancelBubble) { k.close(); b._cancelBubble = 0 < k.callCount; return; } b.trigger("contentBox", f.content.getGlobalBbox()); Yy(b); g = b.currentOptions.outline.width; var m = (b.renderRect = Ik(h, g / 2)), n = { x: 0, y: 0, width: m.width, height: m.height }; g = { x: 0, y: 0, width: h.width - 2 * g, height: h.height - 2 * g, borderWidth: g }; var p = f.titleBox.currentOptions; m = p.position && "full" !== p.position ? p.position : "left"; p = Bg(p); f.titleBox.alignTo(f.content, m, m, [0, p.stroke["stroke-width"]]); var q = [], r; c.flowEvents.beforeRenderSeries.trigger([ b, h, g, a, q, function () { return (r = !0); }, ]); r || ((f = b .series(function (a) { return a.chartArea.id === b.id && !1 === a.info.type.isShape && void 0 === a.pane; }) .sortBy("zIndex")), f.each(function (b) { return q.push(function () { return b.render(n, a); }); }), f.each(function (b) { return q.push(function () { return b.renderLabels(n, a); }); })); Uv( function (a) { return c.ensureLoadingApplied(a); }, q, function () { c.flowEvents.nextRenderSeries.trigger([ b, h, n, a, function () { return (r = !0); }, ]); b.renderedRect = h; b.isMultiType() || b.axes().each(function (b) { b.render(n, A({ invalidate: !0 }, a)); b.renderOnCa(n, a); }); b.render_caClip(); l && b.chart.enableAnimation(); b.rootPanel.refresh(); b.legend.updateStyles(); b.renderBySortedSeriesRev = b .series(function (a) { return a.chartArea.id === b.id; }) .sortBy("zIndex") .items.slice(0); b.renderBySortedSeriesRev.reverse(); b._chartFirstTimeRendered || ((b._chartFirstTimeRendered = !0), b.triggerUser("chartAreaRenderDataFirstTime", b)); var d = b._awaitRenderCallbacks.slice(); b._awaitRenderCallbacks = []; b.isRendering = !1; b.isRendered = !0; w(d, function (a) { return a(); }); b._cancelBubble = 1 < k.callCount; k.close(); } ); } return this; } }; c.prototype.getContentGlobalBbox = function () { return this.rootVisuals.content.getGlobalBboxArray(); }; c.prototype.awaitRender = function (a) { this._awaitRenderCallbacks.push(a); }; c.prototype.render_caClip = function () { var a = this, c = a.rootVisuals, e = a.currentOptions, f = a.rootVisuals.content, g = a.axes(), h = rb(ha(a.renderRect), -1), k = e.outline.width || 0; g = $r(f, g, k); h = g.clipPath || Cc(ha(md(f, Gc(h), k))); k = Bg(e); k = A({ d: h }, Ga(k.stroke, "fill")); var l = { shadow: a.currentOptions.shadow }; !1 !== e.clipContent && (l.clipPath = h); f.attr(l); if (g.outlines) { var m = []; c.outlinePaths && w(c.outlinePaths, function (a) { return a.destroy(); }); w(g.outlines, function (b) { m.push(a.renderer.renderer.path({ fill: "none", stroke: b.stroke, d: b.path, zIndex: gb.breakPath }).add(f)); }); c.outlinePaths = m; } if (g.paths) { var n = []; c.breakPaths && w(c.breakPaths, function (a) { return a.destroy(); }); w(g.paths, function (b) { n.push(a.renderer.renderer.path({ fill: b.color, stroke: "none", d: b.path, zIndex: gb.breakPath }).add(f)); }); c.breakPaths = n; } k["stroke-width"] || (k.stroke = "none"); c.contentStroke.attr(k); }; c.prototype.setRootVisuals = function () { var a = this.renderer; if (!this.rootVisuals) { var c = this.currentOptions.outline.width; this.rootPanel = (this.rootVisuals = Hl(a).build({ axis: {}, axisMarkers: !0, annotationLayer: !0, contentOverlay: !0, background: !0, gridLines: !0, overflow: !0, outline: { width: c }, title: { holder: this }, content: { stroke: { width: 1 } }, })).mainStacks; this.bindRootEvents(); } return this; }; c.prototype.getAxisMarkerVisualTargets = function () { var a = this.rootVisuals; return { behind: a.axisMarkersBehind, front: a.axisMarkersFront }; }; c.prototype.invalidate = function () { this.isDirtyPreRender = !0; this.series().each(function (a) { a.seriesDirty.pos(!0); a.seriesDirty.coord(!0); }); this.legend.invalidate(); this.chartAreaSet.invalidateCache(); return this; }; c.prototype.dataLayout_clustersAndStacks = function () { var a = this, c = [], e = [], f = {}, g = function () { w(kj, function (a, b) { f[a] = 0; }); }, h = 0; w(this.xAxis, function (b) { var d = a.series({ isVisible: !0 }); g(); d.items.reverse(); var k = $a( d.items.map(function (a) { return a.type; }) ); d.each(function (g) { var l = -1 < iu.indexOf(g.type); e = []; l || (g.zIndex = h += 8); g = gc(iu, k); w(g, function (g) { d.filter(function (a) { return a.isVisible && a.type === g && a.xAxis.id === b.id; }) .reverse() .each(function (k) { if (-1 === c.indexOf(k.id)) { if (k.yAxis.isStacked()) { var l = d.filter({ yAxis: { id: k.yAxis.id }, xAxis: { id: b.id }, isVisible: !0, type: g }).each(function (a) { -1 < kj.indexOf(g) && (a.clusterIndex = f[g]); a.isStacked = !0; c.push(a.id); }).items; h = Bz(l, b, h); -1 < kj.indexOf(g) && (f[g]++, e.push(g)); } else -1 < kj.indexOf(g) && ((k.clusterIndex = f[g]), e.push(g), k.info.type.clusters && f[g]++), (k.zIndex = h += 8), c.push(k.id); k.xAxis.isStackedFull() && "category" === k.xAxis.type && ((k = a.yAxis[0].isStacked()), (l = d.filter({ isVisible: !0, type: g }).items), Cz(l, b, k)); } }); }); e.length && ((e = $a(e)), w(e, function (a) { b.clusterCounts[a] = f[a] || 1; })); }); }); this.maxSeriesZIndex = h; this.dataLayoutExperiment(); }; c.prototype.dataLayoutExperiment = function () { var a = this._series.slice(0), c = [], e = function (a) { return a.pop ? w(a, e) : c.push(a.id); }, f = 0, g = function (a) { a.zIndex = f += 8; }, h = function (a) { var b = a.type, c = a.info.type.snapToZero, d = a.info.type.clusters; c && a.yAxis.isStacked() && (b += a.yAxis.id); d && (b += a.xAxis.id); c || d || (b += a.id); return b; }, k = function (b) { return ea(a, function (a) { return h(a) === b; }); }; c = []; w(a, function (a) { -1 < c.indexOf(a.id) || ((a = h(a)), (a = k(a)), 1 === a.length ? g(a[0]) : w(a, g), e(a)); }); this.maxSeriesZIndex = f; }; c.prototype.resetTimers = function () { w(this._axes, function (a) { return a.resetTimers(); }); this.chart.hideTooltip(); this.crosshair(); }; c.prototype.ignoreAnimationFor = function (a) { var b = this; a ? ((b._ignoreAnimation = !0), b.debounce.defer( "ignoreAnim", function () { b._ignoreAnimation = !1; }, a )) : b._ignoreAnimation && (b.debounce.clear("ignoreAnim"), (b._ignoreAnimation = !1)); }; c.prototype.isZoomLive = function () { return this.isPinchZooming || this.isDragging || this.isMapZooming; }; c.prototype.setZoomAxes = function () { var a = this, c = a.isType("map"); a.axes().each(function (b) { if (b.isVisible || b._isDragHost || c) a.zoomAxes["x" === b.prefix ? 0 : "y" === b.prefix ? 1 : 2] = b; }); return a; }; c.prototype.getZoomAxes = function () { this.zoomAxes.length || this.setZoomAxes(); return this.zoomAxes; }; c.prototype.keyup = function (a) { "Escape" === a.eventArgs.key && this.cancelAll(); }; c.prototype.clickData = function (a) { var b = this, c = { yAxis: [], xAxis: [] }; if (!t(a.x)) { var f = b.rootVisuals.content.toRelativeXY(a.eventArgs); a.x = f[0]; a.y = f[1]; } var g = []; b.axes().each(function (d) { if ((d.isVisible && !d.noData) || b.isType("map")) "x" === d.prefix ? c.xAxis.push({ value: (g[0] = d.linToVal(a.x)) }) : "y" === d.prefix && c.yAxis.push({ value: (g[1] = d.linToVal(a.y)) }); }); c.xAxis = B(c.xAxis, function (a) { return { value: b.projection.lin2valxy(a.value, g[1])[0] }; }); c.yAxis = B(c.yAxis, function (a) { return { value: b.projection.lin2valxy(g[0], a.value)[1] }; }); return c; }; c.prototype.click = function (a) { this.debounce.clear("clickoff"); this.cancelAll(); clearTimeout(this.zoomStartIntervalId); var b = a.pointers || [[a.x, a.y]]; if (1 === b.length) { b = { yAxis: [], xAxis: [], event: a.eventArgs }; var c = !1, f = "touch" === a.device; if (!this.isZooming && !this.isDragging) { var g = this.chart.highlighted, h = void 0; f && ((h = this._hoveredItem), this.mouseMove(a), this.mouseUp(a)); for ( var k = ea(this._series, function (a) { return a.isVisible; }), l = 0, m = k.length; l < m; l++ ) if (k[l].mouseClick(a)) { c = !0; break; } f && (h && h === this._hoveredItem ? this.clickOff(a) : c ? (f = this.chart.hoveredPoint) && g && Qb(this.chart, f) : Qb(this.chart)); } this.hasAnyNamedEvent("click") && (L(b, this.clickData(a)), c || (this.trigger("click", b), this.triggerUser("click", b))); } else 2 === b.length ? this.zoom("-100%") : 3 === b.length && this.zoom("initial"); }; c.prototype.clickOff = function (a, c) { function b() { var a = d.chart, b; d.cancelAll(); d.crosshair(); d.chart.hideTooltip(); d.legend.pointOut(); (b = a.hoveredPoint) && "hover" === b._state && b.mouseOut(); d.debounce.has("unmue") ? d.debounce.run("unmute") : Qb(d.chart); d._hoveredItem = void 0; } var d = this; c ? b() : d.debounce.defer("clickoff", b, 30); }; c.prototype.dblclick = function (a) { this.cancelAll(); a = a.pointers || [[a.x, a.y]]; 1 === a.length && this.zoom({ level: "+100%", at: this.computeVals2(a[0]) }); }; c.prototype.mouseDown = function (a) { var b = this, c = b.chart, f = b.getZoomAxes(), g = a.device, h = a.pointers || [[a.x, a.y]], k = b.computeValsTouch(h), l = h.length, m = h[0]; b._lastPointers.length !== h.length && (clearTimeout(b.zoomStartIntervalId), b.cancelAll()); b.zoomEndVals = void 0; var n = [], p = b._axisToZoom; n = k[0]; !p && b._isStaticDragArea && (b._axisToZoom = p = "xy"); var q = function () { b.isPinchZooming = p; b.pinchStartTouches = h; b.zoomStartRanges = B(f, function (a) { return [a.range.min, a.range.max]; }); b.renderer.attr("disableAnimation", !0); }; (function () { if (b.isType("map")) return b.isZoomed || 2 === l ? !0 : !1; if (b._isStaticDragArea || (b.isZoomed && b.isInDragArea(m[1]))) { var a = !1; b.axes().each(function (b) { b.canDrag() && (a = !0); }); return a; } return !!p; })() && ((b.zoomStartIntervalId = setTimeout(function () { b.attachDoc(); if (1 === l) if (b.isType("map") || b._isStaticDragArea || (b.isZoomed && b.isInDragArea(m[1])) || ("touch" === g && b.isZoomed)) { var a; if ((a = p)) (b.isDragging = a), (b.dragPrevVals = n), b.renderer.attr("disableAnimation", !0), (b._prevCursor = c.getCursor()), !b._prevCursor && b.isZoomed && c.setCursor("move"); } else { if ((!b.isZoomed && "touch" === g) || "touch" !== g) if ((a = p)) (b.isZooming = a), (b.zoomStartVals = n), b.renderer.attr("disableAnimation", !0); } else 2 === l && q(); b.isDragging || b.isZooming || b.chart.setCursor(); b.mouseLeft = !1; b.chart.resetTimers(); }, 10)), a.eventArgs.cancelable && a.eventArgs.preventDefault()); b._lastPointers = h; }; c.prototype.mouseUp = function (a) { clearTimeout(this.zoomStartIntervalId); this.isDragging && this.mouseLeft && this.chart.setCursor(); this.endDrag().endZoom(); this.isPinchZooming = !1; this._lastPointers = a.pointers || []; }; c.prototype.isInDragArea = function (a) { var b = this.isHoriz ? 0 : 1; return (b = this.zoomAxes[b] || this._axes[b]) && 0.5 < b.linToPos(a); }; c.prototype.mouseOut = function (a) { a = a.eventArgs; for (var b = 0, c = this._series.length; b < c; b++) this._series[b].mouseOut(a); a = this.chart.getCursor(); ("crosshair" !== a && "move" !== a) || this.isDragging || this.chart.setCursor(); this.isDragging && (this.mouseLeft = !0); this.crosshair(); }; c.prototype.wheelHandler = function (a) { var b = [a.x, a.y], c = a.eventArgs; this._axisToZoom && (this.setZoomAxes(), this._isStaticDragArea ? ((this.isDragging = this._axisToZoom), (this.dragPrevVals = this.computeVals2(b)), (b = this.computeVals2([b[0] - 0.5 * c.deltaX, b[1] - 0.5 * c.deltaY])), this.drag(b) && a.eventArgs.preventDefault(), this.endDrag()) : c.altKey && ((b = this.computeVals2(b)), this.zoom({ at: b, level: (0 > c.deltaY ? "+" : "-") + Math.abs(0.5 * c.deltaY) }), this.resetTimers(), a.eventArgs.preventDefault())); }; c.prototype.pinch = function (a) { var b = this, c = b.isType("map"); a = a.pointers; var f = b.getZoomAxes(), g = (b.isType("map") && "xy") || b.chart.currentOptions.axisToZoom, h = function () { return c ? zs(b.zoomBBox || b.zoomBBoxSet) : B(f, function (a) { return [a.range.min, a.range.max]; }); }; b.isPinchZooming ? (b.pinchZoom(b.computeValsTouch(b.pinchStartTouches), b.computeValsTouch(a)), (b.pinchStartTouches = a), (b.zoomStartRanges = h())) : (b.cancelAll(), g && "none" !== g && ((b.isPinchZooming = g), (b.pinchStartTouches = a), (b.zoomStartRanges = h()), b.renderer.attr("disableAnimation", !0))); }; c.prototype.resetZoom = function () { clearInterval(this.zoomStartIntervalId); var a = (this.isDragging = this.isZooming = !1); this.isZoomed = !1; this.isType("map") ? this.chart.zoom("initial") : (w(this.zoomAxes, function (b) { b && ((a = !0), b.zoom(void 0, void 0, !1)); }), this.series().each(function (a) { a.seriesDirty.pos(!0); a.seriesDirty.coord(!0); }), this.renderData()); this.chart.setCursor(); a && this.chart.redraw(); return this; }; c.prototype.cancelAll = function () { this.endDrag(); this.isZooming = !1; this.zoomVisual && this.zoomVisual.attr({ display: "none" }); this.isPinchZooming = !1; return this; }; c.prototype.endDrag = function () { this.isDragging && ((this.isDragging = !1), this.series().each(function (a) { a.setCoordinates(void 0, { forceCoordinates: !0 }); }), this.renderer.attr("disableAnimation", !1), !this._prevCursor && this.chart.setCursor(), (this._prevCursor = null)); return this; }; c.prototype.endZoom = function () { var a = this; clearInterval(a.zoomStartIntervalId); a.renderer.attr("disableAnimation", !1); if (a.isZooming && a.zoomEndVals) { var c = {}, e = !1, f = [], g = function (b, d) { if (-1 < a.isZooming.indexOf(b)) (b = c[b + "Axis"] = [a.zoomStartVals[d], a.zoomEndVals[d]]), (f[d] = b); else if ((b = a.zoomAxes[d])) (b = b.range), (f[d] = [b.min, b.max]); }; a.isZoomingReflow = !0; g("x", 0); g("y", 1); g = (function (a) { var b = a[0]; a = a[1]; return Ua([ [b ? b[0] : 0, a ? a[0] : 0], [b ? b[1] : 0, a ? a[1] : 0], ]); })(f); !1 !== a.triggerUser("selection", c) && (a.zoom(g), (a.isZoomingReflow = !1), (e = !!S(a.zoomAxes, function (a) { return a && a.isZoomed; })) && a.triggerUser("selection", c)); a.cancelAll(); a.isZoomed = e; } else a.isZooming = !1; a.detachDoc(); return a; }; c.prototype.pinchZoom = function (a, c) { var b = this.isPinchZooming, d = this.zoomStartRanges, g = th(Ua(a), [1, 1]), h = th(Ua(c), [1, 1]); c = va(g); a = va(h); var k = h[2] / g[2] || 1; g = h[3] / g[3] || 1; if (b) { if (-1 < b.indexOf("x")) { var l = d[0], m = l[1] - l[0]; k = m / k; h = (a[0] - l[0]) / m; l = (l[1] - a[0]) / m; h = c[0] - k * h; l = c[0] + k * l; k = [h, l]; } else k = d[0]; -1 < b.indexOf("y") ? ((d = d[1]), (l = d[1] - d[0]), (b = l / g), (h = (a[1] - d[0]) / l), (l = (d[1] - a[1]) / l), (h = c[1] - b * h), (l = c[1] + b * l), (c = [h, l])) : (c = d[1]); c = Ua([ [k[0], c[0]], [k[1], c[1]], ]); this.triggerUser("cazoom", [this, c]); this.zoom(c); } }; c.prototype.drag = function (a) { var b = this.isDragging, c = [0, 0]; if (b) { var f = O(b); f && -1 < b.indexOf("x") && (c[0] = this.dragPrevVals[0] - a[0]); f && -1 < b.indexOf("y") && (c[1] = this.dragPrevVals[1] - a[1]); this._isStaticDragArea && (this.dragPrevVals = a); this.isType("map") ? (this.triggerUser("pan", [this, c]), this.chart.redraw({ animation: !1 })) : this.zoom(c); } return !1; }; c.prototype.moveZoom = function (a, c) { if (a.isZooming) { var b = {}, d = a.isHoriz ? "y" : "x", g = "x" === d ? 0 : 1, h = a.isHoriz ? "x" : "y", k = "x" === h ? 0 : 1, l = a.rootVisuals.content.getGlobalBbox(), m = (a.zoomVisual = a.zoomVisual || a.renderer.renderer.path({ d: "M0 0" }).add(a.rootVisuals.front)), n = [0 + l.x, 0 + l.y, a.contentRect.width, a.contentRect.height]; if (-1 < a.isZooming.indexOf(d)) { var p = a.zoomAxes[g].getCaLen(c[g]), q = a.zoomAxes[g].getCaLen(a.zoomStartVals[g]); p = ua(p, 0, a.contentRect.width); q = ua(q, 0, a.contentRect.width); n[0] = p + l.x; n[2] = q - p; b[d + "Axis"] = [a.zoomStartVals[g], c[g]]; } -1 < a.isZooming.indexOf(h) && ((d = a.zoomAxes[k].getCaLen(c[k])), (g = a.zoomAxes[k].getCaLen(a.zoomStartVals[k])), (n[1] = d + l.y), (n[3] = g - d), (b[h + "Axis"] = [a.zoomStartVals[k], c[k]])); c = Cc(n); m.attr({ d: c, fill: "rgba(0,0,200,.2)", display: "block", "pointer-events": "none" }); a.triggerUser("selecting", b); } }; c.prototype.zoomUpdated = function (a) { var b = this, c = this, f = c._axisToZoom; if (c._isStaticDragArea) var g = !1; else t(a) ? (g = a) : c.isType("map") ? (g = !!fo(c.zoomBBox || c.zoomBBoxSet, c.zoomBBoxInitial, 3)) : c._isStaticDragArea || ((g = c.getZoomAxes()), (g = !!S(g, { isZoomed: !0 }))); c.isZoomed = g; a = c.chart.toolbar(); f && a && a.zoomInOut(g); if (!this._eventWaitingId) { var h = c.isDragging ? "scrolled" : "zoomed"; this._eventWaitingId = setInterval(function () { (b.renderer.renderer.isAnimating() && !b._ignoreAnimation) || c.isDragging || (clearTimeout(b._eventWaitingId), (b._eventWaitingId = void 0), b.triggerUser( h, b.axes().map(function (a) { return a.range; }) )); }, 100); } }; c.prototype.bindRootEvents = function () { this.bindEvents(); }; c.prototype.bindEvents = function () { var a = this; if (!a._evBound) { var c = a.rootVisuals.content; c.on("touchmove", function (b) { (a.isZooming || a.isDragging || a.isPinchZooming) && b.eventArgs.cancelable && b.eventArgs.preventDefault(); }); var e; c.on("mouseover", function (b) { e || (a.triggerUser("mouseOver", b), (e = !0)); }); c.on("mouseout", function (b) { a.evInsideCA(b) || (a.mouseMove.cancel(), a.mouseOut(b), a.triggerUser("mouseOut", b), (e = !1)); }); c.on("vmove", function (b) { return !a.docMM && a.mouseMove(b); }); c.on("vclick", function (b) { a.click(b); b.eventArgs.preventDefault(); }); c.on("vdown", function (b) { return a.mouseDown(b); }); c.on("wheel", function (b) { return a.wheelHandler(b); }); a._docElement || (a._docElement = a.chart.renderer.renderer.documentElement); a._docElement.on("keyup", function (b) { return a.keyup({ eventArgs: b }); }); a._docElement.on("vclick", function (b) { return !a.evInsideChart(b) && a.clickOff({ eventArgs: b }); }); a._evBound = !0; } }; c.prototype.attachDoc = function () { var a = this, c = a._docElement; if (!a.docMM || !a.docVUp) { var e = a.rootVisuals.content; a.docMM = e.externalOn(c, "vmove", function (b) { return a.docVMoveHandler(b); }); a.docVUp = e.externalOn(c, "vup", function (b) { return a.mouseUp(b); }); } }; c.prototype.detachDoc = function () { this.docMM && this.docMM.un(); this.docVUp && this.docVUp.un(); this.docMM = this.docVUp = null; }; c.prototype.docVMoveHandler = function (a) { this.mouseMove(a) && a.eventArgs.preventDefault(); }; c.prototype.evInsideCA = function (a) { var b; if ((b = C(this.rootPanel, "el")) && a.composedPath) return -1 < (a.composedPath && a.composedPath()).indexOf(b); if ((b = this.contentRect)) return (b = rb(ha(b), 0)), Ad(b, [a.x, a.y]); }; c.prototype.evInsideChart = function (a) { var b = C(this.chart.rootPanel, "el.parentNode.el"); return b && a.composedPath ? -1 < a.composedPath().indexOf(b) : this.evInsideCA(a); }; c.prototype.crosshair = function (a, c, e) { var b = !a && !c; b && this.tooltip && this.tooltip.hideTooltip(); if (-1 !== ["vertical", "horizontal"].indexOf(this.ctManager.settingVal("chartType"))) return b ? (this.series().each(function (a) { return a.hideHalo(); }), Zz(this)) : Wz(this, a, c, e); }; c.prototype.crossPDD = function () { var a = this.isHoriz, c, e; this.axes().each(function (a) { var b = a.prefix; if (C(a.currentOptions, "crosshair.enabled") && ((c = c || "x" === b), (e = e || "y" === b), c && e)) return !1; }); return a ? (e ? "X" : "") + (c ? "Y" : "") : (c ? "X" : "") + (e ? "Y" : ""); }; c.prototype.zoom = function (a, c) { (a = this.zoomConfToBox(a)) && this.setZoomBox(a, c); return this.getZoomBoxes().zoom; }; c.prototype.zoomConfToBox = function (a) { var b = this.isType("map"), c = I(a), f = this._isStaticDragArea, g = b && this.chart.options("mapping.zoomLimit"), h = this.getZoomAxes(); b = this.getZoomBoxes(); var k = b.full, l = b.zoom, m = function (a) { var b; if ("string" === typeof a) { if ("initial" === a) return 1; var c = "+" === a[0] ? 1 : "-" === a[0] ? -1 : 0; (b = a.replace(/^\D+/g, "")).length && (b = parseFloat(b) / 100); 0 === c ? (c = b) : ((a = k[2] / l[2]), (c = a + a * b * c)); } else c = a; return ua(c, 1, g || 99999); }; b = function (a) { return B(a, function (a, b) { return h[b].posToVal(a); }); }; var n = function (a, b) { b = b ? b.slice(0) : va(l); b.push(a); return q(b); }, p = function (a, b) { b = m(b); var c = f ? l[2] : ua(k[2] / b, 1, k[2]); b = f ? l[3] : ua(k[3] / b, 1, k[3]); var d = la(a[0], l[0]) / l[2], e = la(a[0], xs(l)) / l[2], g = la(a[1], l[1]) / l[3], h = la(a[1], ys(l)) / l[3]; return Zc(Ze([a[0] - c * d, a[1] - b * g, a[0] + c * e, a[1] + b * h]), k); }, q = function (a) { var b = m(a[2]), c = f ? l[2] : ua(k[2] / b, 1, k[2]); b = f ? l[3] : ua(k[3] / b, 1, k[3]); return Zc(mb(a, [c, b]), k); }, r = function (a) { a = a.slice(0); a[2] = "+0"; return q(a); }; if ("number" === c) var u = n(a); else "string" === c ? (u = n(m(a))) : 4 === a.length ? (u = a) : 3 === a.length ? (u = q(a)) : 2 === a.length ? (u = Zc(Xc(l, a), k)) : (t(a.at) && t(a.level) && (u = p(a.at, a.level)), t(a.offset) && (u = Zc(Xc(l, a.offset), k)), t(a.pos) ? (u = r(b(a.pos))) : t(a.center) && (u = r(a.center))); return (u = sh(u, k)); }; c.prototype.getZoomBoxes = function () { var a = this.isType("map"), c = this.getZoomAxes(), e = function (a) { var b = a[0]; a = a[1]; return Ua([ [b ? b.min : 0, a ? a.min : 0], [b ? b.max : 0, a ? a.max : 0], ]); }, f = a ? this.zoomBBoxMax : e( B(c, function (a) { return a && a.unZoomedRange ? a.unZoomedRange : a; }) ); a = a ? this.zoomBBox || this.zoomBBoxSet : e( B(c, function (a) { a && (a.zoomRange.length ? ((a = a.zoomRange), (a = a.pop ? { min: a[0], max: a[1] } : a)) : (a = a.range)); return a; }) ); return { full: f, zoom: a }; }; c.prototype.setZoomBox = function (a, c) { var b = this._isStaticDragArea, d = this.getZoomAxes(), g = this.isType("map"), h = !1, k = this.chart.currentOptions.axisToZoom || this._axisToZoom, l = !1, m = zs(a), n = function (a, b) { k && -1 < k.indexOf(a) && ((a = "x" === a ? 0 : 1), (h = d[a].zoom(b[0], b[1], !1) || h), (l = l || d[a].isZoomed)); }, p = this.isDragging; this.isZoomingReflow = !0; b && (this.isDragging = !0); g ? ((this.zoomBBox = a), (h = !0)) : (n("x", m[0]), n("y", m[1])); !1 !== c && h && this.chart.redraw(A({ forceCoordinates: !0 }, c)); b && (this.isDragging = p); this.isZoomingReflow = !1; this.isZoomed = l; this.zoomUpdated(); }; c.prototype.add = function (a) { var b = this.readyDefer, c = b.hold("addCA"); this.setRootVisuals(); this.rootPanel.add(a); b.release(c); return this; }; c.prototype.replaceTokens = function (a, c) { c || (c = this._series && this._series.length ? this.series(0).getFormatInfo() : this.chart.getFormatInfo()); return vi(a, this.chartAreaSet, c); }; c.prototype.tokenValue = function (a) { return this.replaceTokens({ token: a }); }; c.prototype.log = function (a) {}; return c; })(jc), AD = (function () { function a(a) { var b = this; this.chart = a; this.items = []; this.indexer = new Fl(); this.freeAxes = {}; this.allAxes = {}; this._axes = []; this.enumerationData = { sI: 0, cpbOffset: 0 }; this._reflowsCount = 0; this.id = de(5); this.axes = function () { return new Kf(b._axes); }; } a.prototype.init = function () { var a = $z(this.chart.currentOptions); if (this.userOptions) { A(this.userOptions.rootAx, a.rootAx); this.userOptions.rootItems = a.rootItems; for (var b = 0, d = a.length; b < d; b++) this.userOptions[b] ? A(this.userOptions[b], a[b]) : (this.userOptions[b] = a[b]); } else this.userOptions = a; this.setRootVisuals().setOptions().setObjects(this.currentOptions).enumerateData(); w(this.series(), function (a) { return a.seriesDirty.resetCache(); }); this._calcCache = void 0; return this; }; a.prototype.setOptions = function () { var a = (this.currentOptions = this.userOptions = this.normalizeOptions(this.userOptions)), b = function (b) { return a.rootAx[b + "Axis"]; }; this.freeAxes = { x: b("x")[0], y: b("y")[0], z: b("z")[0] }; this.allAxes = { x: b("x"), y: b("y"), z: b("z") }; b = function (a) { return a.scale && a.scale.breaks; }; this.hasScaleBreaks = b(this.freeAxes.x) || b(this.freeAxes.y) || b(this.freeAxes.x); return this; }; a.prototype.normalizeOptions = function (a) { a = Sa(a, "series", !0); var b = ["xAxis", "yAxis", "zAxis"]; w(b, function (b) { return Gh(a.rootAx, b); }); w(b, function (b) { return a.rootAx[b] && w(a.rootAx[b], zb); }); return a; }; a.prototype.enumerateData = function () { var a = this; this.enumerationData = { sI: 0, cpbOffset: 0 }; w(this.series(), function (b) { a.enumerateSeries(b); }); return this; }; a.prototype.enumerateSeries = function (a) { var b = this.enumerationData, c = b.sI; b = b.cpbOffset; a._i = c++; a.info.type.colorByPoint && ((a.cpbIndexOffset = b), (b += a.info.type.colorByPoint ? a.userPoints.length : 1)); this.enumerationData = { sI: c, cpbOffset: b }; }; a.prototype.setObjects = function (a) { var b = this, c = b.rootVisuals.stack; b.log("setObjects()"); Ub( a, b.items, function (a, d) { new ju(b, a).add(c); }, function (a, b) { return b.options(a); } ); return b; }; a.prototype.series = function () { var a = []; w(this.items, function (b) { return a.push.apply(a, H(b._series)); }); return a; }; a.prototype.add = function (a) { var b = this.visualWrapper; (b = this.visualWrapper) ? (b.setRootVisuals(), this.setRootVisuals(), this.rootVisuals.stack.add(b.rootPanel)) : this.setRootVisuals(); w(this.items, function (a) {}); this.rootPanel.add(a); return this; }; a.prototype.setRootVisuals = function () { var a = this.chart.renderer, b = this.rootVisuals, d = (this.rootPanel = this.rootPanel || a.panel({ width: "*", height: "*" })); b || (b = this.rootVisuals = { stack: void 0 }); b.stack = b.stack || a.panel("stack").attr({ orientation: "y" }).add(d); return this; }; a.prototype.replaceTokens = function (a, b) { return vi(a, this, b || this.getFormatInfo()); }; a.prototype.getFormatInfo = function () { return this.chart.series(0).getFormatInfo(); }; a.prototype.getCalcCache = function () { var a; (a = this._calcCache) || (a = this._calcCache = Cy(this)); return a; }; a.prototype.invalidateCache = function () { this._calcCache = void 0; this.chart.series().each(function (a) { a.calcCache = void 0; }); }; a.prototype.invalidate = function () { this.each(function (a) { return a.invalidate(); }); }; a.prototype.each = function (a) { w(this.items, a); }; a.prototype.log = function (a) {}; a.prototype.tryReflow = function (a) { return this.reflow(a, !1, !1, !0); }; a.prototype.reflow = function (a, b, d, e) { var c = this; if (c._reflowStarted) (c._needRenderData = c._needRenderData || b), (c._needLayoutRefresh = c._needLayoutRefresh || d); else if (((c._reflowStarted = !0), (c._needRenderData = c._needLayoutRefresh = !1), (e && !c.needReflow()) || 9 < c._reflowsCount)) (c._reflowsCount = 0), (c._reflowStarted = !1); else { var g, h = c.items, k = [], l = {}; e = function (a) { return w(h, m[a]); }; var m = { beforeMeasure: function (d) { var e = d.readyDefer, f = e.hold("rootSetSize"); k.push(function () { return e.release(f); }); d.rootRect = d.rootVisuals.grid.getBbox(); b && (d.isDirtyPreRender = !0) && (d._cancelBubble = !1); d._updateOptions = a || d._updateOptions; d.preRender(); g = g || (!d.isZoomingReflow && (d.isDragging || d.isZooming)); l[d.id] = { renderDataResult: !1 }; c.invalidateCache(); }, startMeasure: function (a) { var b = a.rootVisuals; b.titleBox.applyOptions(); b.titleBoxPanel.attr({ width: null }); a.measureAxes_resetOverflows(); }, measureAxes: function (a) { return !a.isMultiType() && a.measureAxes(); }, applyOverflows: function (a) { return !a.isMultiType() && Il(a, a.overflows); }, endMeasure: function (a) { var b = a.rootVisuals; a.rootRect = b.grid.getBbox(); a = b.content.getGlobalBbox().width; b.titleBoxPanel.attr({ width: a }); b.titleBox.rootPanel.attr({ maxWidth: a }); }, tryRenderData: function (b) { l[b.id].renderDataResult = b.tryRenderData(a); }, renderData: function (e) { var f = l[e.id].renderDataResult; !f && (f = b && e.renderData(a)); !f && d && c.rootPanel.refresh(); }, }; e("beforeMeasure"); if (!g || d) { e("startMeasure"); c.chart.refreshAnnotations(); c.axes().each(function (a) { return a.syncLegend(); }); e("measureAxes"); if (1 < h.length) { var n = [0, 0, 0, 0], p, q; w(h, function (a) { p = a.axSizes; ob(4, function (a) { return (n[a] = Math.max(n[a], p[a])); }); }); var r = n[3], t = n[1]; w(h, function (a) { q = a.overflows.slice(0); p = a.axSizes; q[1] = Math.max(q[1], t - p[1]); q[3] = Math.max(q[3], r - p[3]); Il(a, q); }); } else e("applyOverflows"); var x = (c.measureResult = Oy(c)); c.rootPanel.attr({ margin: x.casMargin }); c.rootPanel.refresh(!0); e("endMeasure"); Qy(c, a); e("tryRenderData"); } e("renderData"); w(k, function (a) { return a(); }); c._reflowStarted = !1; c._reflowsCount++; c.reflow(a, c._needRenderData, c._needLayoutRefresh, !c._needRenderData && !c._needLayoutRefresh); } }; a.prototype.chartItems = function () { var a = this.chart, b = a.toolbar(); a = a.legends().items.concat(a.annotations().items); b && (a = a.concat(b.children())); return a; }; a.prototype.needReflow = function () { var a; w(this.items, function (b) { if (!a) { var c = b.rootVisuals.grid.getBbox(), e = b.rootRect; b.axes().each(function (b) { b.requireReflow() && (a = !0); }); !c.width || !c.height || (e && na(e.width, 4) === na(c.width, 4) && na(e.height, 4) === na(c.height, 4)) ? c.width || c.height || Ma.emit("warning", b.id, "cantGetSize", { container: b.chart.getWrapper() }) : (a = !0); } }); return a; }; return a; })(), BD = (function (a) { function c(b, d) { d = a.call(this, b, d) || this; d.items = b; d.kindObject = c; d.points = Xa( wb, wo(d, function (a) { return a.series().points().items; }), mk(d, function () { throw "Not implemented. "; }) ); d.series = Xa( Ym, wo(d, function (a) { return a.series().items; }), mk(d, function () { throw "Not implemented. "; }) ); return d; } K(c, a); return c; })(wb), CD = (function (a) { function c(b, d) { d = a.call(this, b, d) || this; d.items = b; d.kindObject = c; d.entries = Xa( wb, aA(d), mk(d, function () {}) ); return d; } K(c, a); return c; })(wb), Yl = { "modules/debug": { checker: function (a) { return !0 === a.debug; }, }, "modules/types": { checker: function (a, c, b, d) { if (a.navigator || J(b, "types") || (d && ds(d))) return !0; if ((c = a.series) && c.length) for (b = 0; b < c.length; b++) if (d && ds(d, c[b])) return !0; d = Hb(a, { series: void 0, targetElement: void 0 }); a = a.series && a.series[0]; d.series = a && (a.map ? {} : { name: a.name, points: a.points ? [a.points[0]] : [] }); return nr.test(JSON.stringify(d)) ? !0 : !1; }, }, "modules/toolbar": { checker: function (a, c) { void 0 === c && (c = !1); if (!c) return !1; if (a.navigator || ((c = a.axisToZoom) && "none" !== c) || a.export || (t(a.toolbar) && !1 !== a.toolbar.visible)) return !0; for (var b in a) if (Hg(b, "toolbar") && !1 !== a.toolbar_visible && !1 !== a["toolbar.visible"]) return !0; return !1; }, }, "modules/maps": { checker: function (a) { return a.type && Hg(a.type, "map"); }, }, "modules/accessibility": { checker: function (a) { return a.tabIndex || a.description; }, }, "https://code.jscharting.com/polyfill/intl": { checker: function (a) { return !T.Intl; }, }, "modules/datagrid": { checker: function (a) { return (a.grid && !1 !== a.grid.enabled) || (a.grid_enabled && !1 !== a.grid_enabled); }, }, }, fA = fa("pie organization gauge radar treemap funnel cone pyramid heatmap calendar venn".split(" ")), Hi = [], sc = {}, Zl = { animation: function (a, c) { c.renderer.attr({ transition: { animation: a } }); }, box: function (a, c, b) { a = Cg(a); a.fill && c._loader && c._loader.options({ fill: a.fill }); b.boxAttr = a; a.padding && c.isRendered && (b.needRedraw = !0); }, loading: function (a, c) { c._loader && c._loader.options(a); }, width: function (a, c, b) { c.isRendered && Z(b.layoutAttr, "width", a); }, height: function (a, c, b) { c.isRendered && Z(b.layoutAttr, "height", a); }, targetElement: function (a, c, b) { c.isRendered && (O(a) && (a = ba.getElementById(a)), Z(b.layoutAttr, "container", a)); }, annotations: function (a, c, b) { c.isRendered && (c.annotations(a), (b.needRedraw = !0)); }, defaultAnnotation: function (a, c) { c.isRendered && c.annotations().options({}); }, defaultBox: function (a, c, b) { c.isRendered && (c.annotations().options({}), (b.needRefresh = !0)); }, defaultSeries: function (a, c, b) { c.isRendered && (c.series().each(function (a) { return a.seriesDirty.all(!0); }), c.series().options({}, !1), (b.needRedraw = !0)); }, defaultCultureName: function (a, c, b) { c.isRendered && (c.axes().each(function (a) { return a.invalidate().options({}, !1); }), c.chartAreaSet.invalidate(), (b.needRedraw = !0)); }, palette: function (a, c) { c.palette = wy("palette", a); c.series().each(function (a) { return a.seriesDirty.all(!0); }); c.dirty = !0; c._spDirty = !0; }, title: function (a, c) { c.isRendered && (c.chartAreas(0).options({ title: a }), a.position && (c.dirty = !0)); }, type: function (a, c, b) { c.isRendered && (c.ctManager.init(c.currentOptions), w(c.chartAreaSet.items, function (a) { a.ctManager.init(c.currentOptions); }), c.series().each(function (a) { return a.seriesDirty.all(!0); }), (b.needRedraw = !0), c.calIndexer ? (c.calIndexer.options({}), (b.updateCalendar = !0)) : (c.typeContextOptions = c.typeContextOptions || {})); c.ctManager.hasSetting("behavior", "noLegend") && ((c.typeContextOptions || (c.typeContextOptions = {})).legend = { visible: !1 }); }, mapping: function (a, c) { c.isRendered && (J(a, "base") || J(a, "referenceLayers") || J(a, "projection") ? c.chartAreas(0).triggerUser("updateMapData", [c.chartAreas(0), !1]) : J(a, "projection") && a.projection !== c.currentOptions.projection && c.chartAreas(0).triggerUser("updateMapData", [c.chartAreas(0), !1]), (c.dirty = !0)); }, axisToZoom: function (a, c) { ("" === a || "none" === a) && (a = (a = c.toolbar()) && a.items ? a.items("zoom") : void 0) && a.options({ visible: !1 }); }, series: function (a, c, b) { c.isRendered && c.calIndexer ? ((c.userOptions.series = a), (b.updateCalendar = !0), (b.needRedraw = !0)) : c.isRendered && (c.chartAreas(0).options({ series: a }, !1), (b.needRedraw = !0)); }, defaultTooltip: function (a, c, b) { c.isRendered && (c.chartAreas().each(function (b) { return b.tooltip.options(a); }), c.series().each(function (b) { return b.tooltip.options(a); })); }, defaultAxis: function (a, c, b) { c.isRendered && (c.axes().options({}, !1), (b.needRefresh = !0)); }, xAxis: function (a, c, b) { !a.pop && c.isRendered && (c.axes("x").options(a, !1), (b.needRefresh = !0)); }, yAxis: function (a, c, b) { !a.pop && c.isRendered && (c.axes("y").options(a, !1), (b.needRefresh = !0)); }, }, $l = {}, fs, ku = function () { return { fontFamily: "tahoma, geneva, sans-serif", fontSize: "12px", fontWeight: "normal", fontStyle: "normal", "user-select": "none", transition: { animation: { duration: 330, easing: "ease-in-out-circ" } } }; }, DD = function (a) { var c = { defaultAnnotation: Pm(a), animation: ku().transition.animation, languageStrings: lA, debug: !0 }; a.ctManager.isType("map") && L(c, { legend: { template: "%icon %name" }, axisToZoom: "xy" }); return c; }, $m = {}, lu, lj = (function () { function a(c, b) { void 0 === c && (c = {}); this.kind = "Chart"; this.cpbIndex = 0; this.isRtlCulture = !1; this.flowEvents = { optionsApplied: new sd(), beforeSetUserOptions: new sd(), beforeApplyLayout: new sd(), beforeSnapshot: new sd(), afterSnapshot: new sd(), beforeOptionsNormalization: new sd(), beforeDefaultsApply: new sd(), beforeRenderSeries: new sd(), nextRenderSeries: new sd(), }; var d = this; if (!(d instanceof a)) return new a(c, b); d.rootVisuals = { box: void 0, front: void 0, tooltip: void 0 }; d.internal = { ctManager: d.ctManager, mappingInfo: { contextMaps: "", dataMaps: [], allMaps: [], loadedCallStack: [], regionList: [], mapsLoading: !1, internalMapsUsed: !1, customMapsUsed: !1, projection: "mercator", mapsLoadingList: [] }, }; d._annotations = []; d._legends = []; d._highlights = []; d.palette = Fh(0); d.use3D = !1; d.internalConfigs = { chartAreas: [] }; d.ctManager = Ht(); d.mapsLoaded = !1; d.action = new ED(); d.dirty = !0; var e = 1 === arguments.length ? [arguments[0]] : Array.apply(null, arguments), f = B(e, I); "string" === f[0] || Fv(e[0]) ? ((c = e[1] || {}), (c.targetElement = e[0]), (b = e[2])) : "object" === f[0] && ((c = e[0]), (b = e[1])); var g = Ii(c), h = function () { d.triggerUser("load"); d.checkGridOption(); d.dirty = !1; d.loading(!1); d.inited = !0; b && b.call(d, d); }; d.id = g.id || de(5); d.isColorized = !0; d.initRenderer(g); d.renderer.refresh(); d.currentOptions = g; d.ctManager.init(g); (g && !1 === g.loading) || d.loading(!0); dg = g.baseUrl; cs( d, g, function () { d.init(g, h); }, !0 ); } a.prototype.toGrid = function (a, b) { var c = this, e = Ii(b), f = (this._grid = sc.chartToGrid && sc.chartToGrid(this, a, e)); if (f) return ( (f.then = function (a) { return a && a(f); }), f ); var g = { grid_enabled: !0 }; e && ((g.baseUrl = e.baseUrl), (g.notificationContainer = e.notificationContainer)); return gf(function (b, d) { Xl("modules/datagrid", g, function () { c._grid = sc.chartToGrid && sc.chartToGrid(c, a, e); b(c._grid); }); }); }; a.prototype.checkGridOption = function () { var a = this, b = a.currentOptions.grid, d = a.currentOptions.targetElement; b && (!0 === b.enabled ? a._grid ? (a._grid.setDataFromChart(!1), a._grid.options(b)) : a.toGrid(d, L({ className: "dataTable", exportFile: !0 }, b)).then(function (b) { a._gridSwitch = sc.createGridSwitch && sc.createGridSwitch(a, d, b); }) : !1 === b.enabled && (a._grid && a._grid.destroy(), a._gridSwitch && a._gridSwitch.destroy(), delete a._grid, delete a._gridSwitch), a.triggerOptionsApplied("grid", a)); }; a.prototype.init = function (a, b) { var c = this, e = c.options("navigator.enabled"); a = c.userOptions = yf(a); if (!c.renderer.renderer.isRootDestroyed()) { c.chartItemManager = new OC(this); c.initFP(); Da($m, function (a) { return $m[a](c); }); if (!c.ctManager.isType("calendar") && c.data && !c.userOptions.series) { var f = mp(c.data.val); c.userOptions.series = [ { points: B(f, function (a) { return { x: a[0], y: a[1], z: a[2] }; }), }, ]; } c.seriesCount = a.series ? a.series.length : 0; c.isRtlCulture = Is(a.defaultCultureName); c.setRootVisuals(); c.disableAnimation(!1); c.flowEvents.beforeSetUserOptions.trigger({ type: "chart", owner: c }); c.options(c.userOptions); var g = c.chartAreaSet.add(); c.drawAnnotations(); c.flowEvents.beforeApplyLayout.trigger({ type: "chart", owner: c }); c.rootPanel.refresh(!0); g.tryReflow(); c._lastRefreshedRect = c.renderer.getRootBox(); c.rootPanel.on("finalSize", function (a) { var b = c._lastRefreshedRect; (b && b.width === a.width && b.height === a.height) || ((c._lastRefreshedRect = a), g.tryReflow()); }); c.enableAnimation(); var h = [], k = function () { c.isRendered = !0; h.length || b.call(c, c); }; w(c.chartAreaSet.items, function (a) { !a.isRendered && a.isRendering && (h.push(a.id), e && (a.navHold = a.readyDefer.hold("Navigator")), a.awaitRender(function () { h.splice(h.indexOf(a.id), 1); k(); })); }); k(); } }; a.prototype.exportImage = function (a, b) { void 0 === a && (a = {}); this.renderer.attr("disableAnimation", !0); this.flowEvents.beforeSnapshot.trigger({ type: "chart", owner: this }); this.triggerUser("beforeExport"); this.rootPanel.refresh(); this.chartAreaSet.items.forEach(function (a) { return a.clickOff(null, !0); }); b && this.options(b); b = a.imageType || a.type; b = { png: "image/png", jpg: "image/jpeg", pdf: "application/pdf", svg: "image/svg+xml" }[b.toLowerCase()] || b; var c = a.server || "https://export.jscharting.com/download", e = this.getSVG(), f = a.title || this.options("title_label_text"), g = a.author, h = a.subject, k = a.keywords, l = a.comment, m = a.rating; this.submitForm(e.svgString, b, c, a.width, e.width, e.height, gs(), f, g, h, k, l, m); this.flowEvents.afterSnapshot.trigger({ type: "chart", owner: this }); this.triggerUser("afterExport"); this.rootPanel.refresh(); this.renderer.attr("disableAnimation", !1); }; a.prototype.print = function () { var a = this, b = a.getWrapper(), d = b.style, e = a.renderer, f = T, g = f.document.documentElement, h = g.style; a.chartAreaSet.items.forEach(function (a) { return a.clickOff(null, !0); }); h.visibility = "hidden"; var k = L({}, d), l = e.attr("width"), m = e.attr("height"), n = function (a) { a = a.getBoundingClientRect(); return { top: a.top + (f.pageYOffset || g.scrollTop), left: a.left + (f.pageXOffset || g.scrollLeft) }; }; n = (b = (function (a) { for (var b = (a = a.parentNode) && a.style && a.style.position, c = ["absolute", "relative", "fixed"]; a && (!b || !~c.indexOf(b)); ) b = (a = a.parentNode) && a.style && a.style.position; return a; })(b)) ? n(b) : { left: 0, top: 0 }; A(d, { visibility: "visible", position: "absolute", top: -n.top, left: -n.left }); e.attr("disableAnimation", !0); e.attr("width", "21cm"); e.attr("height", e.rootBox.height || "100%"); a.flowEvents.beforeSnapshot.trigger({ type: "chart", owner: a }); a.triggerUser("beforeExport"); e.refresh(); setTimeout(function () { f.focus(); f.print(); setTimeout( function () { A(d, { visibility: k.visibility, position: k.position, top: k.top, left: k.left }); e.attr("width", l); e.attr("height", m); a.flowEvents.afterSnapshot.trigger({ type: "chart", owner: a }); a.triggerUser("afterExport"); e.refresh(); e.attr("disableAnimation", !1); h.visibility = "visible"; }, RA ? 3e3 : 1 ); }, 1); }; a.prototype.submitForm = function (a, b, d, e, f, g, h, k, l, m, n, p, q) { var c = ba.createElement("form"); c.action = d; c.method = "POST"; this.createFormInput(c, "svg", a); this.createFormInput(c, "type", b); this.createFormInput(c, "width", e); this.createFormInput(c, "actualWidth", f); this.createFormInput(c, "actualHeight", g); this.createFormInput(c, "version", h); this.createFormInput(c, "title", k); this.createFormInput(c, "author", l); this.createFormInput(c, "subject", m); this.createFormInput(c, "keywords", n); this.createFormInput(c, "comment", p); this.createFormInput(c, "rating", q); ba.body.appendChild(c); c.submit(); //ba.body.removeChild(c); }; a.prototype.createFormInput = function (a, b, d) { if (d) { var c = ba.createElement("input"); c.value = encodeURIComponent(d); c.name = b; a.appendChild(c); return c; } }; a.prototype.toolbar = function () { return this._toolbar; }; a.prototype.initFP = function () { var a = this; a.series = Xa( Ym, function () { return a.chartAreaSet.series(); }, function (b) { w(b, zb); a.userOptions.series = b; var c = a.chartAreas(0).readyDefer, e = c.hold("splS"); a.chartAreas(0).spliceSeries(0, a.chartAreas(0).series().items.length, b, !1); a.redraw({ animation: a.currentOptions.animation }); c.release(e); }, { push: function (b, c) { var d = a.chartAreas(0); b = d.addSeries(b, !1); d.triggerUser("updateMapData", [d, b]); !1 !== c && a.redraw(c); a.action.log("data"); }, splice: function (b, c, e, f) { a.chartAreas(0).spliceSeries(b, c, ja(e) ? e : [e], !1); !1 !== f && a.redraw(f); a.action.log("data"); }, } ); a.annotations = Xa( wb, function () { return a._annotations; }, function (b) { w(b, zb); Z(a.userOptions, "annotations", b); a.drawAnnotations(); a.chartAreaSet.reflow(null, !1, !0); }, { push: function (b, c) { zb(b); a.userOptions.annotations = a.userOptions.annotations || []; a.userOptions.annotations.push(b); a.drawAnnotations(); Pa(c) && (c = Sa(c)); a.chartAreaSet.reflow(c, !1, !0); }, splice: function (b, c, e, f) { var d; w(e, zb); a.userOptions.annotations = a.userOptions.annotations || []; (d = a.userOptions.annotations).splice.apply(d, H([b, c], e)); a.drawAnnotations(); Pa(f) && (f = Sa(f)); a.chartAreaSet.reflow(f, !1, !0); }, } ); a.chartAreas = Xa( BD, function () { return a.chartAreaSet.items; }, function (a) {} ); a.xAxis = Xa( Kf, function () { a.chartAreaSet.axes({ prefix: "x" }); }, function (b) { a.currentOptions.xAxis = b; } ); a.axes = Xa( Kf, function () { return a.chartAreaSet.axes().items; }, function (a) {} ); a.legends = Xa( CD, function () { return a._legends; }, function (a) {}, { push: function (a, c) {}, splice: function (a, c, e, f) {} } ); }; a.prototype.options = function (a, b) { var c = this, e = I(a); if ("undefined" === e) return c.currentOptions; if ("string" === e) return C(c.currentOptions, a); var f = c.inited && !c.isRendered && c.loading(!0); c.ctManager.init(c.currentOptions); c.initApi(); c.isRendered && (a = Sa(a, "series,targetElement")); a = iA(c, a, b); a = c.setUserOptions(a); c.optionsNormalized = !0; cs(c, a, function () { hA(c, a, b); a.series && !c.isRendered ? c.initControls() : c.dirty && !1 !== b && (c.setCursor(), c.chartAreaSet.invalidate(), c.redraw()); c.inited && a.grid && c.checkGridOption(); c.triggerOptionsApplied("chart", c); f && c.loading(!1); }); b && b.then && Ce.await(function () { b.then && (b.then.call(c), delete b.then); }); return c; }; a.prototype.triggerOptionsApplied = function (a, b) { this.flowEvents.optionsApplied.trigger({ type: a, owner: b }); }; a.prototype.replaceTokens = function (a, b) { return this.chartAreaSet.series().length ? vi(a, this.chartAreaSet, this.getFormatInfo()) : a; }; a.prototype.tokenValue = function (a) { return this.replaceTokens({ token: a }); }; a.prototype.getFormatInfo = function () { return this.chartAreaSet.series().length ? this.series(0).getFormatInfo() : { x: {}, y: {}, z: {} }; }; a.prototype.getSVG = function () { var a = this.getWrapper().getElementsByTagName("svg")[0], b = a.getBoundingClientRect(), d = a.outerHTML; d || ((d = new XMLSerializer().serializeToString(a)), (d = d.replace('xmlns="http://www.w3.org/2000/svg"', "")), (d = d.replace('xmlns:NS1=""', "")), (d = d.replace('NS1:xmlns:xlink="http://www.w3.org/1999/xlink"', ""))); return { svgString: d, width: b.width, height: b.height }; }; a.prototype.zoom = function (a, b) { return this.chartAreas(0).zoom(a || 1, b); }; a.prototype.setUserOptions = function (a) { var b = a.series, c = a.data; delete a.series; delete a.data; var e = this.normalizeOptions(a); this.userOptions = A(this.userOptions, e); var f = DD(this); this.flowEvents.beforeDefaultsApply.trigger({ type: "chart", owner: this, options: f }); f = A(f, this.userOptions); w(["defaultBox", "defaultAxis"], function (a) { f[a] && (f[a] = Nm(f[a])); }); this.currentOptions = A(this.currentOptions, this.contextOptions(), f); b && (e.series = this.currentOptions.series = b); c && (e.data = this.currentOptions.data = c); a.defaultCultureName && (this.isRtlCulture = Is(a.defaultCultureName)); return e; }; a.prototype.contextOptions = function () { return C(this, "typeContextOptions.chart") || {}; }; a.prototype.normalizeOptions = function (a) { var b = a.annotations; b && w(b, zb); a.defaultPoint && Z(a, "defaultSeries.defaultPoint", A(C(a, "defaultSeries.defaultPoint") || {}, a.defaultPoint || {})); (b = a.hatchPalette) && !0 === b && (a.hatchPalette = mu("hatch")); a.export && Vf(a, ["toolbar", "items", "export", "visible"], !0); this.flowEvents.beforeOptionsNormalization.trigger({ type: "chart", owner: this, options: a }); return a; }; a.prototype.initApi = function () { var a = this.userOptions, b = this.internal, d = a.template; delete a.template; b.spv = Z; a = Sa(a, "data,series,targetElement"); a.series = a.series || []; d && ((d = Sa(d)), (a = qd(a, d))); this.currentOptions = A({}, a); }; a.prototype.initControls = function () { this.drawLegends(); this.chartAreaSet.init(); }; a.prototype.initRenderer = function (a) { var b = a.targetElement, c = O(b) ? ba.getElementById(b) : b; c || (O(b) && Ma.emit("error", this.id, "targetElIdNotFound", { data: [b] })); (this.renderer = new Al({ container: c, width: this.getSizeOrMin(a.width, 25), height: this.getSizeOrMin(a.height, 25), defaultWidth: 640, defaultHeight: 350, pixelCorrection: a.pixelCorrection })).attr(ku()); }; a.prototype.getSizeOrMin = function (a, b) { var c = 0; "number" === typeof a ? (c = a) : "string" === typeof a && -1 === a.indexOf("%") && (c = parseInt(a)); return c ? Math.max(c, b) : a; }; a.prototype.setRootVisuals = function () { var a = this, b = a.renderer, d = { width: "*", height: "*" }, e = a.rootPanel; e || (a.isRtlCulture && ((d.direction = "rtl"), (d["text-anchor"] = "end")), (e = a.rootPanel = b.panel(d)), e.on("touchstart", function (b) { return a.touched(!0); })); d = a.rootVisuals = a.rootVisuals || { box: void 0, front: void 0, uiItemsFront: void 0, itemsBox: void 0 }; var f = (d.box = d.box || b.box({ width: "*", height: "*", stroke: "none", fill: "#FFFFFF", margin: 3 }).add(e)); d.uiItemsFront = d.uiItemsFront || b.panel({ width: "*", height: "*" }).add(e); d.front = d.front || b.panel({ width: "*", height: "*" }).add(e); a.isColorized && !a.chartAreaSet && (a.renderer.getRootBox(), (e = b.box({ xAlignment: "left", yAlignment: "bottom", cursor: "pointer", borderWidth: 0, height: 17, fill: "transparent", margin: [0, 0, 4, 4] }).add(e)), a.renderer.renderer .element("title") .attr({ text: "Chart created using ".concat("JSCharting") }) .add(e), b .svgContainer( '' ) .add(e), e.on("click", function (a) { ba.location.href = "https://jscharting.com"; }), a.renderer.renderer.cssText( "#brandingLogo:hover{\n\t\t\t\topacity:1;\n\t\t\t\tfilter:none;\n\t\t\t} #brandingLogo {\n\t\t\t\t-webkit-transition: opacity 1s ease;\n\t\t\t\t-moz-transition: opacity 1s ease;\n\t\t\t\t-o-transition: opacity 1s ease;\n\t\t\t\ttransition: opacity 1s ease;\n\t\t\t}" )); a.chartAreaSet = a.chartAreaSet || new AD(this).add(f); d.itemsBox = d.itemsBox || b.panel({ width: "*", height: "*" }).add(f); }; a.prototype.boxDefaults = function (a) { var b = Sa(this.userOptions.defaultBox); a = Cf(z(a, this.getStyling())); b && (b.fill || (b.outline && 0 !== b.outline.width)) && (a.boxVisible = !0); return b ? A(a, b) : a; }; a.prototype.getStyling = function () { var a = this.currentOptions, b = Sa(this.userOptions.defaultBox); return z(a.legacyStyling, b && b.boxVisible) ? 1 : 0; }; a.prototype.touched = function (a) { if (t(a)) lu = !0; else return lu; }; a.prototype.setCursor = function (a) { this.renderer.renderer.setCursor(a); }; a.prototype.getCursor = function () { return this.renderer.renderer.getCursor(); }; a.prototype.getWrapper = function () { return C(this, "renderer.renderer.wrapper.el"); }; a.prototype.resetTimers = function () { this.chartAreas().each(function (a) { return a.resetTimers(); }); }; a.prototype.redraw = function (a) { var b = this; if (!1 === b.dirty) { var c = b.renderer.getRootBox(), e = b.renderer.renderer.isDefaultSizeSet(); if (!c.height || !c.width || e) { b.renderer.refreshRootBox(); b.renderer.refresh(); b.renderer.renderer.rootResize(); e ? setTimeout(function () { return b.renderer.renderer.resubscribeResize(); }, 1e3) : b.renderer.renderer.resubscribeResize(); return; } } a = Sa(a); c = b.disableAnimation(a); b.tooltipRef && b.tooltipRef.hide(); b.series().each(function (a) { return a.visualizer.hideHalo(); }); b.chartAreaSet.enumerateData(); b.chartAreaSet.reflow(a, !0); b.triggerUser("redraw"); c && b.enableAnimation(); b.dirty = !1; a && a.then && Ce.await(function () { a.then && (a.then.call(b), delete a.then); }); }; a.prototype.updateSideItems = function (a) { this._grid && this._grid.setDataFromChart(a); }; a.prototype.disableAnimation = function (a) { var b = this.renderer; (a = t(a) && (!1 === a || !1 === a.animation) && b.disableAnimation()) && b.attr("disableAnimation", !0); return a; }; a.prototype.enableAnimation = function () { this.renderer.attr("disableAnimation", !1); }; a.prototype.hideTooltip = function () { var a = this.tooltipRef; a && a.isVisible && a.hideActiveTooltip(this); }; a.prototype.zoomInOut = function (a) {}; a.prototype.refreshAnnotations = function () { this.annotations().each(function (a) { var b = a.options("label_text"); b && -1 < b.indexOf("%") && a.applyOptions(); }); }; a.prototype.drawAnnotations = function (a) { var b = this; (a = b.userOptions.annotations) && Ub( a, b._annotations, function (a) { a = new ej(b, a); a.add(b.rootVisuals.itemsBox); return a; }, function (a, b) { return b.options(a); } ); }; a.prototype.requestLegend = function (a) { return this._legends[0]; }; a.prototype.drawLegends = function (a) { var b = this; a = b.options("legend") || {}; var c = b.rootVisuals.itemsBox; Ub( [a], b._legends, function (a) { return new zD(b, a).add(c); }, function (a, b) { return b.options(a); } ); }; a.prototype.triggerUser = function (a, b) { var c = this.currentOptions.events; c = (a = c && mh(c, a)) && c[a]; if (Fb(c)) return c.call(this, b); }; a.prototype.loading = function (a, b) { return (this._loader = this._loader || new XC(this.renderer, L({ fill: this.currentOptions.box ? this.currentOptions.box.fill : "#fff" }, this.currentOptions.loading || {}))).loading(a, b); }; a.prototype.ensureLoadingApplied = function (a) { this._loader ? this._loader.ensureAnimationApplied(a) : a(); }; a.prototype.destroy = function () { this._selDeBouncer && this._selDeBouncer.clearAll(); this.chartAreaSet && w(this.chartAreaSet.items, function (a) { return a.debounce.clearAll(); }); this._loader && this._loader.destroy(); this.renderer.destroy(); }; a.prototype.dispose = function () { this.destroy(); }; a.prototype.getSmartPalette = function (a) { var b = this.chartItemManager, c, e, f = I(a); if ("string" === f) return b.exists(a); var g = b.getSPItems(), h = 1 === g.length && (a.colors || a.ranges || a.stops) ? !1 : !0; this._spDirty && !h && (w(b.getSPItems(), function (a) { return b.destroyItem(a.id); }), (g = b.getSPItems())); if (h && 1 === g.length) { g[0].setOptions(a); var k = g[0]; } else (c = a.id) && (e = b.exists(c)) ? (e.setOptions(a), (k = e)) : "object" === f && (k = new Nt(this, a)); this._spDirty = !1; return k; }; a.prototype._pointSelection = function () { var a = this; (a._selDeBouncer = a._selDeBouncer || new Ae()).defer( "pSel", function () { var b = a._sMaxList && a._sMaxList.length ? a._sMaxList.slice(0) : a.series().points({ selected: !0 }).items; a.triggerUser("pointSelectionChanged", b); }, 30 ); }; a.prototype._seriesSelection = function () { var a = this; (a._selDeBouncer = a._selDeBouncer || new Ae()).defer( "pSel", function () { var b = a.series(function (a) { return a.options("selected"); }).items; a.triggerUser("seriesSelectionChanged", b); }, 30 ); }; return a; })(), ED = (function () { function a() { this._log = []; } a.prototype.log = function (a) { this._log.push((this._last = a)); }; a.prototype.last = function () { return this._last; }; a.prototype.clear = function () { this._log = []; }; return a; })(), nu = []; (function (a, c) { T.JSC = A(T.JSC, { Chart: c }); jA(T.jQuery, a, c); })(nu, lj); var mu = Xi, FD = B, GD = A, HD = Wl, mj = function (a, c, b) { return Pk(b ? a.map(Sk(b)) : a, c); }; nk( { "system/default/area": "M 23 0 A 12 12 0 0 0 11 12 A 12 12 0 0 0 23 24 A 12 12 0 0 0 35 12 A 12 12 0 0 0 23 0 z M 48 0 L 35.785156 6.1074219 A 14.10924 14.10924 0 0 1 37.109375 12.033203 A 14.10924 14.10924 0 0 1 30.458984 24 L 48 24 L 48 0 z M 10.583984 18.708984 L 0 24 L 15.556641 24 A 14.10924 14.10924 0 0 1 10.583984 18.708984 z ", "system/default/areaSolo": "M 0,24 48,0 48,24 Z", "system/default/checkbox-blank": "M38 10v28H10V10h28m0-4H10c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h28c2.21 0 4-1.79 4-4V10c0-2.21-1.79-4-4-4z", "system/default/checkbox": "M38 6H10c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h28c2.21 0 4-1.79 4-4V10c0-2.21-1.79-4-4-4zM20 34L10 24l2.83-2.83L20 28.34l15.17-15.17L38 16 20 34z", "system/default/circle": "M0,12a12,12 0 1,0 24,0a12,12 0 1,0 -24,0", "system/default/diamond": "M12 .001l12 12-12 12-12-12 12-12z", "system/default/line": "M 46.076172 -0.001953125 L 34.929688 4.7050781 A 14.000001 14 0 0 1 36.732422 9.3027344 L 47.996094 4.546875 L 46.076172 -0.001953125 z M 23 0 A 12 12 0 0 0 11 12 A 12 12 0 0 0 23 24 A 12 12 0 0 0 35 12 A 12 12 0 0 0 23 0 z M 9.453125 15.460938 L 0 19.451172 L 1.9199219 24 L 11.488281 19.960938 A 14.000001 14 0 0 1 9.453125 15.460938 z", "system/default/lineSolo": "M 46.076172,-0.00195313 0,19.451172 1.9199219,24 47.996094,4.546875 46.076172,-0.00195313 Z", "system/default/radio-button-blank": "M24 4C12.95 4 4 12.95 4 24s8.95 20 20 20 20-8.95 20-20S35.05 4 24 4zm0 36c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16z", "system/default/radio-button": "M24 14c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0-10C12.95 4 4 12.95 4 24s8.95 20 20 20 20-8.95 20-20S35.05 4 24 4zm0 36c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16z", "system/default/square": "M18 24H6c-3.3 0-6-2.7-6-6V6c0-3.3 2.7-6 6-6h12c3.3 0 6 2.7 6 6v12c0 3.3-2.7 6-6 6z", "system/default/triangle": "M24 22h-24l12-20z", "system/default/triangleDown": "M12 21l-12-18h24z", "system/default/warning": "M18.9 18.3l-9-16c0-.1-.1-.1-.2-.2-.2-.2-.5-.1-.6.2l-9 16c-.1 0-.1.1-.1.2 0 .3.2.5.5.5h18c.1 0 .2 0 .2-.1.3-.1.4-.4.2-.6zM10 16.5c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-1c0-.3.2-.5.5-.5s.5.2.5.5v1zm0-3c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5s.5.2.5.5v5z", }, !1 ); Z(T, "JSC.internal.registerIcons", nk); Z(T, "JSC.internal.setPathVal", Z); ["log", "warning", "error"].forEach(function (a) { Z(T, "JSC.internal." + a, function (c, b) { Ma.emit(a, null, c, { container: b }); }); }); var Je = C(T, "JSC.internal"), od, ID = Object.freeze({ SELECT_STATE: "select", NORMAL_STATE: "", zIndexReference: gb, boxDefaults: Cf }), JD = Object.freeze({ def: t, has: J, noop: xc, removeArrItem: pb, evalPath: C, epa: N, contains: ae, getValType: I, isNull: an, mergeCollections: Ub, extend: L, extendCopy: W, copy: Oa, extendScoped: Na, extendScopedNegate: Sc, extendCopyScopedNegate: be, plainArray: fa, arraySum: Kj, last: P, pick: z, isString: O, isObject: Pa, isUndefined: Q, keys: pa, eachKey: Da, detect: yc, setPathVal: Z, applySetting: zc, findInArrSimple: nh, throttle: Ni, parseMargin: Ac, mapDeep: hb, expandOptionsProperties: Sa, isNaN: Ha, filter: ea, find: S, defaults: id, defaultsDeep: qd, clone: qa, cloneDeep: yf, merge: A, each: w, map: B, reduce: jm, uniq: $a, sortedUniq: ad, toString: oh, sortBy: sa, remove: Af, join: pc, slice: yg, times: ob, omit: Ga, isArray: ja, isFunction: Fb, isNumber: nb, isEmpty: ub, startsWith: Hg, max: oa, sum: Ta, clamp: ua, Memoize: Rb, }), KD = Object.freeze({ boxPoints: ie, rightX: xs, bottomY: ys, compareBoxes: fo, pad: rb, setSize: Ye, bboxUnion: Ea, intersect: ho, bboxFromPoints: Ua, center: va, clip: sh, fitInTarget: function (a, c) { var b = G(a, 4); a = b[2]; var d = b[3]; b = G(c, 4); c = b[2]; b = b[3]; a = d / a; d = a * b; var e = c / a; d > c ? (d = a * e) : e > b && (e = d / a); return [e, d]; }, ltrbMargins: function (a, c, b) { a = Yb(a); c = Yb(c); var d = function (a) { return 0 < a ? a : 0; }, e = []; e[0] = a[0] - c[0]; e[1] = a[1] - c[1]; e[2] = c[2] - a[2]; e[3] = c[3] - a[3]; return b ? B(e, d) : e; }, fromRect: ha, fromCenter: mb, toPath: Cc, toLTRB: Yb, fromLTRB: Ze, toPoints: function (a, c) { void 0 === c && (c = 4); return ie(a, "tl,tr,br,bl" + (5 === c ? ",tl" : "")); }, alignTo: lo, offsetBetween: fk, unsquishSnapTo: function (a, c, b) { void 0 === b && (b = "d"); var d = { v: oo, h: no }[{ u: "v", d: "v", l: "h", r: "h" }[b]]; a = uh(a.slice(0), b); mo(a, b); b = Ea(a); c = d(b, c); var e = [c[0] - b[0], c[1] - b[1]]; w(a, function (a) { return mm(a, e); }); return a; }, unsquishBoxes: mo, unsquishBoxesCb: function (a, c, b) { for (var d = uh(a.slice(0), c), e = [], f = 0, g = d.length; f < g; f++) { var h = d[f]; if (f) { var k = vh(h, e, c), l = fk(k, h); if (l[0] || l[1]) (h[0] = k[0]), (h[1] = k[1]), b && b(a.indexOf(h), l, h); } e.push(h); } return e; }, snapInside: Zc, bInsideA: $c, pointInside: Ad, collideAny: qo, collideList: Yc, rotatedAt: hk, translate: Xc, translateRef: mm, bestLayout: function (a, c, b) { for (var d = !1, e = 1, f, g, h = 0; !d; ) (f = c.width / Math.ceil(a / e)), (g = c.height / e), (f = Math.min(f, g)), f <= h ? ((d = !0), e--) : (e++, (h = f)), 100 < e && (d = !0); a /= e; a > parseInt(a) && (a = parseInt(a) + 1); b || (f = (f / Math.min(c.width, c.height)) * 100); return { cols: a, rows: e, maxSize: f }; }, }), LD = Object.freeze({ changeBrightness: function (a, c) { return ma(Ak(a, c)); }, brightness: function (a) { return df(a); }, cushionEffect: ig, aquaEffect: jg, roundedEffect: ef, colorMods: La, parseJscColor: Lb, toHexOpacity: Dh, parseJscFill: oc, modifyColor: ia, modifyFill: dd, addOpacity: Eh, tween: qe, colorToPalette: Uo, simplify: zh, }), MD = Object.freeze({ math: Vb, round: na, avg: Wf, mapValue: Y, arraySum: function (a) { return Ta(a); }, diff: la, decimalPlaces: Yf, }), ND = Object.freeze({ lowerFirst: Se, getRandomString: de, shortenEllipsis: Ir }), OD = Object.freeze({ toDegrees: Vn, toRadians: yb, normalizeAngle: rh, quadrant: function (a) { a = rh(Vn(a)); return 180 > a ? (90 <= a ? 2 : 3) : 270 <= a ? 0 : 1; }, getPolarPoint: ee, getPolarDegPoint: Uc, gpdp: ra, gpdp_text: function (a, c, b, d, e, f) { var g = G(e, 2); e = g[0]; g = g[1]; e += b; g += b; var h = function (a, b) { void 0 === b && (b = 0); if (0 === b) return a; b = Math.min(Math.abs(b), 1); return 1 === b ? 1 : cl(a, Math.max(1 - b, 0.1)); }, k = (c * Math.PI) / 180, l = function (a) { return 0.001 > Math.abs(a) ? 0 : a; }; c = l(Math.cos(k)); var m = Math.cos(2 * k); k = l(Math.sin(k)); l = Math.abs; var n = function (a) { return 0 < a ? 1 : 0 > a ? -1 : 0; }, p = n(c), q = n(k), r = h(l(k), f[0]) * q; h = h(l(c), f[1]) * p; f = (((0 > m ? q : r) - 1) * e) / 2; m = (-((0 < m ? p : h) + 1) * g) / 2; d = (d + c * (l(m) - (0 < c ? g : 0))) / k || -e / 2; d = Math.min(l(d), e / 2) * n(d); 0 > k ? ((d = -e - d), (f = Math.max(l(f), l(d)) * n(f))) : (f = Math.min(l(f), l(d)) * n(f)); return [a[0] + b + f, a[1] + b + m]; }, gpp: Jb, angleOfPoints: Ia, pointDistance: Xb, pDist: mc, lineIntersect: Te, lineDistance: Wn, pointInsidePolygon: Zf, arcCapDegOffset: function (a, c) { var b = a - c; a = [ra([0, 0], 0, (a + c) / 2)]; b = ra(a[0], 108, b); return Math.abs(yb(Ia([0, 0], b))) / 2; }, ensureUprightText: Yn, }), PD = Object.freeze({ isValInsideInc: Kb, intersect: Ue, positionsToPadRanges: Zj, invert: cg }), QD = Object.freeze({ win: T, doc: ba, getRootScriptPath: je, getScript: lk, getJson: function (a, c, b, d) { wh(a, c, b, d, JSON.parse); }, }), RD = Object.freeze({ Formatter: Ng, formatString: Si }), SD = Object.freeze({ getApiEnum: ke }), TD = Object.freeze({ zero: Gk, resize: Hk, scale: Cd, moveTL: function (a, c, b) { "undefined" !== typeof c && ((a.width -= c - a.x), (a.x = c)); "undefined" !== typeof b && ((a.height -= b - a.y), (a.y = b)); return a; }, padBox: Ik, padRect: Vo, translate: Wo, padBoxRel: Xo, centerRect: kg, normalize: Yo, toLTRB: Zo, fromLTRB: $o, round: function (a) { a = Zo(a); a = B(a, Math.round); return $o(a); }, fromBBox: Gc, compare: ap, }), UD = Object.freeze({ registerIcons: nk }), VD = Object.freeze({ measureText: fg }), WD = Object.freeze({ getPalette: Xi, getPaletteConfig: Rs }), XD = Object.freeze({ registerModule: function (a, c) { a = ff[a] = ff[a] || {}; a.afterLoad = c; return a.loaded ? !1 : (a.loaded = !0); }, }), YD = Object.freeze({ idFyObj: zb, percOrNum: db }), ZD = Object.freeze({ toDate: X, toDateNum: ed, intervalToSpan: lg, addTimeInterval: bc, unitToFormatOptions: hf, unitListToFormatOptions: Kh, GroupingFunctions: Vs, CalendarPattern: Ok }), $D = Object.freeze({ calculations: Pk }), aE = Object.freeze({ fromPoints: eb, bbox: kl, pathIntersects: function (a, c, b) { return Rh(a.shapes[0], c, b); }, Path: mf, fromString: Aa, subPath: Ed, shapeBbox: Mb, visualCenterForShape: og, shapeIntersects: Rh, }), bE = Object.freeze({ pointsToPath: fb, multiLineToPath: tg, flattenD: xa, arcCornerR: rp, arc: ll, arcSegment: Kc, pointsEqual: ab }), cE = Object.freeze({ parseSize: Qa }), dE = Object.freeze({ padMargin: Bl, lineToAttr: Bb, shapeToAttr: fc, boxToAttr: Bg, completeDependentOptions: Nm, annotationToHtmlAttr: br, labelToAttr: qc, offsetToAttr: cr, boxToLayoutBoxAttr: Cg }), eE = Object.freeze({ fitBoxInPath: or, fitBoxData: function (a, c) { var b = pr(a), d = function (a) { return [Y(0, 1, c[0], c[0] + c[2], a[0]), Y(0, 1, c[1], c[1] + c[3], a[1])]; }; a = xi(a); a = Mb(a); return (b = b ? rr(b, d) : void 0) ? { scans: b, pathBBox: RC(a, d) } : void 0; }, fitBoxInScanData: function (a, c, b, d) { var e = b[1]; a = Ny(a, c).scans; var f = Math.max(c[2], c[3]), g = [], h = c[1] + 1; try { for (; h + e < c[1] + c[3] - 2; ) { var k = qr(a, h, e); k && k[2] >= b[0] && g.push([f - Xb(va(k), d), k]); h += 1; } } catch (m) {} if (g.length) { g.sort(function (a, b) { return a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0; }).reverse(); var l = g[0][1]; } l && (l = mb(va(l), b)); return l; }, }), fE = Object.freeze({ parseObjectTokens: wi, parseGridTokens: function (a, c, b) { void 0 === b && (b = {}); var d = uf(a); return d.result ? vf(a, {}, { gOptions: b, item: c, atribs: c }) : d.text; }, }), gE = Object.freeze({ snapToPanel: md, snapPointToPanel: nd, snapPointsToPanel: ue }), hE = Object.freeze({ axesBySideIndex: Rr }), Lf = Object.freeze({ __proto__: null, jsLib: JD, mathLib: MD, layoutLib: cE, rectLib: TD, trigLib: OD, SeriesBaseType: Ie, SeriesTypeColumn: Vg, minimumHittestSize: 15, registerSeriesType: function (a, c) { Oc[a] = c; }, undefVal: void 0, undef: "undefined", bboxLib: KD, stylingLib: dE, polyFitLib: eE, shapeLib: bE, Annotation: ej, moduleLoader: XD, collectionPropFactory: Xa, consts: ID, en: { error: {} }, idleDefer: Ae, platform: QD, strLib: ND, getColumnIconPathsStatic: Pl, BaseChartItem: jc, AxisCollectionWrapper: Kf, AxisViewState: bu, getShapeOptions: Gr, Axis: jj, panels: Hl, dmUtils: gE, ChartArea: ju, CollisionManager: Tm, getBreaksPath: $r, zIndexReference: Pt, registerPanes: function (a) { Rm = a; }, shapes: dc, colorLib: LD, Series: Xm, parsePointValues: Ai, columnPointBodyD: Ql, getIconPathsStatic: Ci, getShapePath: Ld, registerTag: function (a, c) { Im[a] = c; }, VirtualElement: tb, rangeLib: PD, TextBox: Ft, LayoutItem: Gf, Panel: Sg, StackPanel: Tg, Layout: Al, registerPanel: function (a, c) { Mc[a] = c; }, UpdatablesCollection: wb, miUtils: SD, isTouchDevice: function () { return "ontouchstart" in T; }, annotationDefaults: Pm, getAlignToOffsets: mt, iconsStore: UD, chartOptionsAppliers: Zl, pathLib: aE, updateOverflows: Br, cachedPositionInfo: Ig, isAlignInside: Mr, EntryWrapper: Qm, formatting: RD, timeLib: ZD, chartOptionsModifiers: $l, registerVisual: function (a, c) { Md[a] = c; }, generateId: Dd, snapPixels: Ff, textLib: VD, palettes: WD, chartInitializers: $m, CompositeElement: kC, CompositeAttrApplier: jt, Label: Fi, tokenLib: fE, label: Yq, dataUtil: $D, registerDataGridFunction: function (a, c) { sc[a] = c; }, jscLabel: es, normalizationUtils: YD, rendererFactory: ft, emitter: Ma, BaseOptions: Kt, axisUtils: hE, hideVisual: Ra, generateIdRandom: qp, }); Z(Je, "_modules.types.export", Lf); Z(Je, "_modules.maps.export", Lf); Z(Je, "_modules.toolbar.export", Lf); Z(Je, "_modules.accessibility.export", Lf); Z(Je, "_modules.datagrid.export", Lf); Z(Je, "_modules.debug.export", Lf); aa.Chart = lj; aa.Grid = is; aa.Nest = HD; aa.chart = function (a, c) { var b = Object.create(lj.prototype); lj.apply(b, arguments); return b; }; aa.colorToPalette = function (a, c, b, d) { return Uo(a, c, b, d); }; aa.csv2Json = function (a, c) { return Wk(a, ",", c); }; aa.defaults = function (a) { if (t(a)) if (null === a) var c = {}; else (c = od ? od() : {}), A(c, a); else return od ? od() : {}; c.baseUrl && (dg = c.baseUrl); return (od = yi(c)) ? od() : {}; }; aa.dsv2Json = function (a, c, b) { void 0 === b && (b = {}); return Wk(a, c, b); }; aa.fetch = function (a, c) { Ih || (Ih = T.fetch || vw); return Ih(a, c); }; aa.fontsReady = function (a) { return Ws(a); }; aa.formatDate = function (a, c, b) { void 0 === c && (c = "d"); return Si(new Date(a), c, b); }; aa.formatNumber = function (a, c, b) { void 0 === c && (c = "n"); return Si(parseFloat(a), c, b); }; aa.formatString = function (a, c, b) { void 0 === b && (b = "en-US"); return Si(a, c, b); }; aa.getPalette = mu; aa.getVersion = gs; aa.globalCharts = nu; aa.internal = Je; aa.json2Csv = function (a, c) { return Xk(a, ",", c); }; aa.json2Dsv = function (a, c, b) { void 0 === b && (b = {}); return Xk(a, c, b); }; aa.json2Tsv = function (a, c) { return Xk(a, "\t", c); }; aa.label = function (a, c, b) { return es(a, c, Ii(b)); }; aa.map = FD; aa.max = function (a, c) { return mj(a, "max", c); }; aa.mean = function (a, c) { return mj(a, "average", c); }; aa.merge = GD; aa.min = function (a, c) { return mj(a, "min", c); }; aa.nest = function () { return new Wl(); }; aa.parseCsv = function (a, c) { void 0 === c && (c = {}); return pp(a, c); }; aa.parsePoints = function (a, c) { return np(a, c); }; aa.pointsFromArray = function (a, c) { return op(a, c); }; aa.ready = function () { for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c]; return gf(function (b) { var c = [], e = []; a.forEach(function (a) { O(a) ? c.push(a) : a === ba && e.push(kA()); }); c.length && e.push(Ws(c)); e.length ? uw(e, b) : b({ ok: !0 }); }); }; aa.smartPalette = { getPaletteCSS: function (a, c) { return new Nt(null, a).getPaletteCSS(a, c); }, }; aa.sortBy = function () { for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c]; return sa.apply(LA, H(a)); }; aa.sourcePath = function () { return je(); }; aa.sum = function (a, c) { return mj(a, "sum", c); }; aa.tsv2Json = function (a, c) { return Wk(a, "\t", c); }; Object.defineProperty(aa, "__esModule", { value: !0 }); });