UNPKG

offices-viewer

Version:

## Current Renderable File Types

1,356 lines (1,355 loc) 241 kB
// src/drivers/chart/d3.min.js !function() { function n(n2) { return n2 && (n2.ownerDocument || n2.document || n2).documentElement; } function t(n2) { return n2 && (n2.ownerDocument && n2.ownerDocument.defaultView || n2.document && n2 || n2.defaultView); } function e(n2, t2) { return t2 > n2 ? -1 : n2 > t2 ? 1 : n2 >= t2 ? 0 : NaN; } function r(n2) { return null === n2 ? NaN : +n2; } function u(n2) { return !isNaN(n2); } function i(n2) { return { left: function(t2, e2, r2, u2) { for (arguments.length < 3 && (r2 = 0), arguments.length < 4 && (u2 = t2.length); u2 > r2; ) { var i2 = r2 + u2 >>> 1; n2(t2[i2], e2) < 0 ? r2 = i2 + 1 : u2 = i2; } return r2; }, right: function(t2, e2, r2, u2) { for (arguments.length < 3 && (r2 = 0), arguments.length < 4 && (u2 = t2.length); u2 > r2; ) { var i2 = r2 + u2 >>> 1; n2(t2[i2], e2) > 0 ? u2 = i2 : r2 = i2 + 1; } return r2; } }; } function a(n2) { return n2.length; } function o(n2) { for (var t2 = 1; n2 * t2 % 1; ) t2 *= 10; return t2; } function l(n2, t2) { for (var e2 in t2) Object.defineProperty(n2.prototype, e2, { value: t2[e2], enumerable: false }); } function c() { this._ = /* @__PURE__ */ Object.create(null); } function s(n2) { return (n2 += "") === xa || n2[0] === ba ? ba + n2 : n2; } function f(n2) { return (n2 += "")[0] === ba ? n2.slice(1) : n2; } function h(n2) { return s(n2) in this._; } function g(n2) { return (n2 = s(n2)) in this._ && delete this._[n2]; } function p() { var n2 = []; for (var t2 in this._) n2.push(f(t2)); return n2; } function v() { var n2 = 0; for (var t2 in this._) ++n2; return n2; } function d() { for (var n2 in this._) return false; return true; } function m() { this._ = /* @__PURE__ */ Object.create(null); } function y(n2) { return n2; } function M(n2, t2, e2) { return function() { var r2 = e2.apply(t2, arguments); return r2 === t2 ? n2 : r2; }; } function x(n2, t2) { if (t2 in n2) return t2; t2 = t2.charAt(0).toUpperCase() + t2.slice(1); for (var e2 = 0, r2 = _a.length; r2 > e2; ++e2) { var u2 = _a[e2] + t2; if (u2 in n2) return u2; } } function b() { } function _() { } function w(n2) { function t2() { for (var t3, r3 = e2, u2 = -1, i2 = r3.length; ++u2 < i2; ) (t3 = r3[u2].on) && t3.apply(this, arguments); return n2; } var e2 = [], r2 = new c(); return t2.on = function(t3, u2) { var i2, a2 = r2.get(t3); return arguments.length < 2 ? a2 && a2.on : (a2 && (a2.on = null, e2 = e2.slice(0, i2 = e2.indexOf(a2)).concat(e2.slice(i2 + 1)), r2.remove(t3)), u2 && e2.push(r2.set(t3, { on: u2 })), n2); }, t2; } function S() { oa.event.preventDefault(); } function k() { for (var n2, t2 = oa.event; n2 = t2.sourceEvent; ) t2 = n2; return t2; } function N(n2) { for (var t2 = new _(), e2 = 0, r2 = arguments.length; ++e2 < r2; ) t2[arguments[e2]] = w(t2); return t2.of = function(e3, r3) { return function(u2) { try { var i2 = u2.sourceEvent = oa.event; u2.target = n2, oa.event = u2, t2[u2.type].apply(e3, r3); } finally { oa.event = i2; } }; }, t2; } function E(n2) { return Sa(n2, Aa), n2; } function A(n2) { return "function" == typeof n2 ? n2 : function() { return ka(n2, this); }; } function C(n2) { return "function" == typeof n2 ? n2 : function() { return Na(n2, this); }; } function z(n2, t2) { function e2() { this.removeAttribute(n2); } function r2() { this.removeAttributeNS(n2.space, n2.local); } function u2() { this.setAttribute(n2, t2); } function i2() { this.setAttributeNS(n2.space, n2.local, t2); } function a2() { var e3 = t2.apply(this, arguments); null == e3 ? this.removeAttribute(n2) : this.setAttribute(n2, e3); } function o2() { var e3 = t2.apply(this, arguments); null == e3 ? this.removeAttributeNS(n2.space, n2.local) : this.setAttributeNS(n2.space, n2.local, e3); } return n2 = oa.ns.qualify(n2), null == t2 ? n2.local ? r2 : e2 : "function" == typeof t2 ? n2.local ? o2 : a2 : n2.local ? i2 : u2; } function L(n2) { return n2.trim().replace(/\s+/g, " "); } function q(n2) { return new RegExp("(?:^|\\s+)" + oa.requote(n2) + "(?:\\s+|$)", "g"); } function T(n2) { return (n2 + "").trim().split(/^|\s+/); } function R(n2, t2) { function e2() { for (var e3 = -1; ++e3 < u2; ) n2[e3](this, t2); } function r2() { for (var e3 = -1, r3 = t2.apply(this, arguments); ++e3 < u2; ) n2[e3](this, r3); } n2 = T(n2).map(D); var u2 = n2.length; return "function" == typeof t2 ? r2 : e2; } function D(n2) { var t2 = q(n2); return function(e2, r2) { if (u2 = e2.classList) return r2 ? u2.add(n2) : u2.remove(n2); var u2 = e2.getAttribute("class") || ""; r2 ? (t2.lastIndex = 0, t2.test(u2) || e2.setAttribute("class", L(u2 + " " + n2))) : e2.setAttribute("class", L(u2.replace(t2, " "))); }; } function P(n2, t2, e2) { function r2() { this.style.removeProperty(n2); } function u2() { this.style.setProperty(n2, t2, e2); } function i2() { var r3 = t2.apply(this, arguments); null == r3 ? this.style.removeProperty(n2) : this.style.setProperty(n2, r3, e2); } return null == t2 ? r2 : "function" == typeof t2 ? i2 : u2; } function j(n2, t2) { function e2() { delete this[n2]; } function r2() { this[n2] = t2; } function u2() { var e3 = t2.apply(this, arguments); null == e3 ? delete this[n2] : this[n2] = e3; } return null == t2 ? e2 : "function" == typeof t2 ? u2 : r2; } function U(n2) { function t2() { var t3 = this.ownerDocument, e3 = this.namespaceURI; return e3 ? t3.createElementNS(e3, n2) : t3.createElement(n2); } function e2() { return this.ownerDocument.createElementNS(n2.space, n2.local); } return "function" == typeof n2 ? n2 : (n2 = oa.ns.qualify(n2)).local ? e2 : t2; } function F() { var n2 = this.parentNode; n2 && n2.removeChild(this); } function H(n2) { return { __data__: n2 }; } function O(n2) { return function() { return Ea(this, n2); }; } function I(n2) { return arguments.length || (n2 = e), function(t2, e2) { return t2 && e2 ? n2(t2.__data__, e2.__data__) : !t2 - !e2; }; } function Y(n2, t2) { for (var e2 = 0, r2 = n2.length; r2 > e2; e2++) for (var u2, i2 = n2[e2], a2 = 0, o2 = i2.length; o2 > a2; a2++) (u2 = i2[a2]) && t2(u2, a2, e2); return n2; } function Z(n2) { return Sa(n2, za), n2; } function V(n2) { var t2, e2; return function(r2, u2, i2) { var a2, o2 = n2[i2].update, l2 = o2.length; for (i2 != e2 && (e2 = i2, t2 = 0), u2 >= t2 && (t2 = u2 + 1); !(a2 = o2[t2]) && ++t2 < l2; ) ; return a2; }; } function X(n2, t2, e2) { function r2() { var t3 = this[a2]; t3 && (this.removeEventListener(n2, t3, t3.$), delete this[a2]); } function u2() { var u3 = l2(t2, ca(arguments)); r2.call(this), this.addEventListener(n2, this[a2] = u3, u3.$ = e2), u3._ = t2; } function i2() { var t3, e3 = new RegExp("^__on([^.]+)" + oa.requote(n2) + "$"); for (var r3 in this) if (t3 = r3.match(e3)) { var u3 = this[r3]; this.removeEventListener(t3[1], u3, u3.$), delete this[r3]; } } var a2 = "__on" + n2, o2 = n2.indexOf("."), l2 = $; o2 > 0 && (n2 = n2.slice(0, o2)); var c2 = La.get(n2); return c2 && (n2 = c2, l2 = B), o2 ? t2 ? u2 : r2 : t2 ? b : i2; } function $(n2, t2) { return function(e2) { var r2 = oa.event; oa.event = e2, t2[0] = this.__data__; try { n2.apply(this, t2); } finally { oa.event = r2; } }; } function B(n2, t2) { var e2 = $(n2, t2); return function(n3) { var t3 = this, r2 = n3.relatedTarget; r2 && (r2 === t3 || 8 & r2.compareDocumentPosition(t3)) || e2.call(t3, n3); }; } function W(e2) { var r2 = ".dragsuppress-" + ++Ta, u2 = "click" + r2, i2 = oa.select(t(e2)).on("touchmove" + r2, S).on("dragstart" + r2, S).on("selectstart" + r2, S); if (null == qa && (qa = "onselectstart" in e2 ? false : x(e2.style, "userSelect")), qa) { var a2 = n(e2).style, o2 = a2[qa]; a2[qa] = "none"; } return function(n2) { if (i2.on(r2, null), qa && (a2[qa] = o2), n2) { var t2 = function() { i2.on(u2, null); }; i2.on(u2, function() { S(), t2(); }, true), setTimeout(t2, 0); } }; } function J(n2, e2) { e2.changedTouches && (e2 = e2.changedTouches[0]); var r2 = n2.ownerSVGElement || n2; if (r2.createSVGPoint) { var u2 = r2.createSVGPoint(); if (0 > Ra) { var i2 = t(n2); if (i2.scrollX || i2.scrollY) { r2 = oa.select("body").append("svg").style({ position: "absolute", top: 0, left: 0, margin: 0, padding: 0, border: "none" }, "important"); var a2 = r2[0][0].getScreenCTM(); Ra = !(a2.f || a2.e), r2.remove(); } } return Ra ? (u2.x = e2.pageX, u2.y = e2.pageY) : (u2.x = e2.clientX, u2.y = e2.clientY), u2 = u2.matrixTransform(n2.getScreenCTM().inverse()), [u2.x, u2.y]; } var o2 = n2.getBoundingClientRect(); return [e2.clientX - o2.left - n2.clientLeft, e2.clientY - o2.top - n2.clientTop]; } function G() { return oa.event.changedTouches[0].identifier; } function K(n2) { return n2 > 0 ? 1 : 0 > n2 ? -1 : 0; } function Q(n2, t2, e2) { return (t2[0] - n2[0]) * (e2[1] - n2[1]) - (t2[1] - n2[1]) * (e2[0] - n2[0]); } function nn(n2) { return n2 > 1 ? 0 : -1 > n2 ? ja : Math.acos(n2); } function tn(n2) { return n2 > 1 ? Ha : -1 > n2 ? -Ha : Math.asin(n2); } function en(n2) { return ((n2 = Math.exp(n2)) - 1 / n2) / 2; } function rn(n2) { return ((n2 = Math.exp(n2)) + 1 / n2) / 2; } function un(n2) { return ((n2 = Math.exp(2 * n2)) - 1) / (n2 + 1); } function an(n2) { return (n2 = Math.sin(n2 / 2)) * n2; } function on() { } function ln(n2, t2, e2) { return this instanceof ln ? (this.h = +n2, this.s = +t2, void (this.l = +e2)) : arguments.length < 2 ? n2 instanceof ln ? new ln(n2.h, n2.s, n2.l) : _n("" + n2, wn, ln) : new ln(n2, t2, e2); } function cn(n2, t2, e2) { function r2(n3) { return n3 > 360 ? n3 -= 360 : 0 > n3 && (n3 += 360), 60 > n3 ? i2 + (a2 - i2) * n3 / 60 : 180 > n3 ? a2 : 240 > n3 ? i2 + (a2 - i2) * (240 - n3) / 60 : i2; } function u2(n3) { return Math.round(255 * r2(n3)); } var i2, a2; return n2 = isNaN(n2) ? 0 : (n2 %= 360) < 0 ? n2 + 360 : n2, t2 = isNaN(t2) ? 0 : 0 > t2 ? 0 : t2 > 1 ? 1 : t2, e2 = 0 > e2 ? 0 : e2 > 1 ? 1 : e2, a2 = 0.5 >= e2 ? e2 * (1 + t2) : e2 + t2 - e2 * t2, i2 = 2 * e2 - a2, new yn(u2(n2 + 120), u2(n2), u2(n2 - 120)); } function sn(n2, t2, e2) { return this instanceof sn ? (this.h = +n2, this.c = +t2, void (this.l = +e2)) : arguments.length < 2 ? n2 instanceof sn ? new sn(n2.h, n2.c, n2.l) : n2 instanceof hn ? pn(n2.l, n2.a, n2.b) : pn((n2 = Sn((n2 = oa.rgb(n2)).r, n2.g, n2.b)).l, n2.a, n2.b) : new sn(n2, t2, e2); } function fn(n2, t2, e2) { return isNaN(n2) && (n2 = 0), isNaN(t2) && (t2 = 0), new hn(e2, Math.cos(n2 *= Oa) * t2, Math.sin(n2) * t2); } function hn(n2, t2, e2) { return this instanceof hn ? (this.l = +n2, this.a = +t2, void (this.b = +e2)) : arguments.length < 2 ? n2 instanceof hn ? new hn(n2.l, n2.a, n2.b) : n2 instanceof sn ? fn(n2.h, n2.c, n2.l) : Sn((n2 = yn(n2)).r, n2.g, n2.b) : new hn(n2, t2, e2); } function gn(n2, t2, e2) { var r2 = (n2 + 16) / 116, u2 = r2 + t2 / 500, i2 = r2 - e2 / 200; return u2 = vn(u2) * Ka, r2 = vn(r2) * Qa, i2 = vn(i2) * no, new yn(mn(3.2404542 * u2 - 1.5371385 * r2 - 0.4985314 * i2), mn(-0.969266 * u2 + 1.8760108 * r2 + 0.041556 * i2), mn(0.0556434 * u2 - 0.2040259 * r2 + 1.0572252 * i2)); } function pn(n2, t2, e2) { return n2 > 0 ? new sn(Math.atan2(e2, t2) * Ia, Math.sqrt(t2 * t2 + e2 * e2), n2) : new sn(NaN, NaN, n2); } function vn(n2) { return n2 > 0.206893034 ? n2 * n2 * n2 : (n2 - 4 / 29) / 7.787037; } function dn(n2) { return n2 > 8856e-6 ? Math.pow(n2, 1 / 3) : 7.787037 * n2 + 4 / 29; } function mn(n2) { return Math.round(255 * (304e-5 >= n2 ? 12.92 * n2 : 1.055 * Math.pow(n2, 1 / 2.4) - 0.055)); } function yn(n2, t2, e2) { return this instanceof yn ? (this.r = ~~n2, this.g = ~~t2, void (this.b = ~~e2)) : arguments.length < 2 ? n2 instanceof yn ? new yn(n2.r, n2.g, n2.b) : _n("" + n2, yn, cn) : new yn(n2, t2, e2); } function Mn(n2) { return new yn(n2 >> 16, n2 >> 8 & 255, 255 & n2); } function xn(n2) { return Mn(n2) + ""; } function bn(n2) { return 16 > n2 ? "0" + Math.max(0, n2).toString(16) : Math.min(255, n2).toString(16); } function _n(n2, t2, e2) { var r2, u2, i2, a2 = 0, o2 = 0, l2 = 0; if (r2 = /([a-z]+)\((.*)\)/.exec(n2 = n2.toLowerCase())) switch (u2 = r2[2].split(","), r2[1]) { case "hsl": return e2(parseFloat(u2[0]), parseFloat(u2[1]) / 100, parseFloat(u2[2]) / 100); case "rgb": return t2(Nn(u2[0]), Nn(u2[1]), Nn(u2[2])); } return (i2 = ro.get(n2)) ? t2(i2.r, i2.g, i2.b) : (null == n2 || "#" !== n2.charAt(0) || isNaN(i2 = parseInt(n2.slice(1), 16)) || (4 === n2.length ? (a2 = (3840 & i2) >> 4, a2 = a2 >> 4 | a2, o2 = 240 & i2, o2 = o2 >> 4 | o2, l2 = 15 & i2, l2 = l2 << 4 | l2) : 7 === n2.length && (a2 = (16711680 & i2) >> 16, o2 = (65280 & i2) >> 8, l2 = 255 & i2)), t2(a2, o2, l2)); } function wn(n2, t2, e2) { var r2, u2, i2 = Math.min(n2 /= 255, t2 /= 255, e2 /= 255), a2 = Math.max(n2, t2, e2), o2 = a2 - i2, l2 = (a2 + i2) / 2; return o2 ? (u2 = 0.5 > l2 ? o2 / (a2 + i2) : o2 / (2 - a2 - i2), r2 = n2 == a2 ? (t2 - e2) / o2 + (e2 > t2 ? 6 : 0) : t2 == a2 ? (e2 - n2) / o2 + 2 : (n2 - t2) / o2 + 4, r2 *= 60) : (r2 = NaN, u2 = l2 > 0 && 1 > l2 ? 0 : r2), new ln(r2, u2, l2); } function Sn(n2, t2, e2) { n2 = kn(n2), t2 = kn(t2), e2 = kn(e2); var r2 = dn((0.4124564 * n2 + 0.3575761 * t2 + 0.1804375 * e2) / Ka), u2 = dn((0.2126729 * n2 + 0.7151522 * t2 + 0.072175 * e2) / Qa), i2 = dn((0.0193339 * n2 + 0.119192 * t2 + 0.9503041 * e2) / no); return hn(116 * u2 - 16, 500 * (r2 - u2), 200 * (u2 - i2)); } function kn(n2) { return (n2 /= 255) <= 0.04045 ? n2 / 12.92 : Math.pow((n2 + 0.055) / 1.055, 2.4); } function Nn(n2) { var t2 = parseFloat(n2); return "%" === n2.charAt(n2.length - 1) ? Math.round(2.55 * t2) : t2; } function En(n2) { return "function" == typeof n2 ? n2 : function() { return n2; }; } function An(n2) { return function(t2, e2, r2) { return 2 === arguments.length && "function" == typeof e2 && (r2 = e2, e2 = null), Cn(t2, e2, n2, r2); }; } function Cn(n2, t2, e2, r2) { function u2() { var n3, t3 = l2.status; if (!t3 && Ln(l2) || t3 >= 200 && 300 > t3 || 304 === t3) { try { n3 = e2.call(i2, l2); } catch (r3) { return void a2.error.call(i2, r3); } a2.load.call(i2, n3); } else a2.error.call(i2, l2); } var i2 = {}, a2 = oa.dispatch("beforesend", "progress", "load", "error"), o2 = {}, l2 = new XMLHttpRequest(), c2 = null; return !this.XDomainRequest || "withCredentials" in l2 || !/^(http(s)?:)?\/\//.test(n2) || (l2 = new XDomainRequest()), "onload" in l2 ? l2.onload = l2.onerror = u2 : l2.onreadystatechange = function() { l2.readyState > 3 && u2(); }, l2.onprogress = function(n3) { var t3 = oa.event; oa.event = n3; try { a2.progress.call(i2, l2); } finally { oa.event = t3; } }, i2.header = function(n3, t3) { return n3 = (n3 + "").toLowerCase(), arguments.length < 2 ? o2[n3] : (null == t3 ? delete o2[n3] : o2[n3] = t3 + "", i2); }, i2.mimeType = function(n3) { return arguments.length ? (t2 = null == n3 ? null : n3 + "", i2) : t2; }, i2.responseType = function(n3) { return arguments.length ? (c2 = n3, i2) : c2; }, i2.response = function(n3) { return e2 = n3, i2; }, ["get", "post"].forEach(function(n3) { i2[n3] = function() { return i2.send.apply(i2, [n3].concat(ca(arguments))); }; }), i2.send = function(e3, r3, u3) { if (2 === arguments.length && "function" == typeof r3 && (u3 = r3, r3 = null), l2.open(e3, n2, true), null == t2 || "accept" in o2 || (o2.accept = t2 + ",*/*"), l2.setRequestHeader) for (var s2 in o2) l2.setRequestHeader(s2, o2[s2]); return null != t2 && l2.overrideMimeType && l2.overrideMimeType(t2), null != c2 && (l2.responseType = c2), null != u3 && i2.on("error", u3).on("load", function(n3) { u3(null, n3); }), a2.beforesend.call(i2, l2), l2.send(null == r3 ? null : r3), i2; }, i2.abort = function() { return l2.abort(), i2; }, oa.rebind(i2, a2, "on"), null == r2 ? i2 : i2.get(zn(r2)); } function zn(n2) { return 1 === n2.length ? function(t2, e2) { n2(null == t2 ? e2 : null); } : n2; } function Ln(n2) { var t2 = n2.responseType; return t2 && "text" !== t2 ? n2.response : n2.responseText; } function qn(n2, t2, e2) { var r2 = arguments.length; 2 > r2 && (t2 = 0), 3 > r2 && (e2 = Date.now()); var u2 = e2 + t2, i2 = { c: n2, t: u2, n: null }; return io ? io.n = i2 : uo = i2, io = i2, ao || (oo = clearTimeout(oo), ao = 1, lo(Tn)), i2; } function Tn() { var n2 = Rn(), t2 = Dn() - n2; t2 > 24 ? (isFinite(t2) && (clearTimeout(oo), oo = setTimeout(Tn, t2)), ao = 0) : (ao = 1, lo(Tn)); } function Rn() { for (var n2 = Date.now(), t2 = uo; t2; ) n2 >= t2.t && t2.c(n2 - t2.t) && (t2.c = null), t2 = t2.n; return n2; } function Dn() { for (var n2, t2 = uo, e2 = 1 / 0; t2; ) t2.c ? (t2.t < e2 && (e2 = t2.t), t2 = (n2 = t2).n) : t2 = n2 ? n2.n = t2.n : uo = t2.n; return io = n2, e2; } function Pn(n2, t2) { return t2 - (n2 ? Math.ceil(Math.log(n2) / Math.LN10) : 1); } function jn(n2, t2) { var e2 = Math.pow(10, 3 * Ma(8 - t2)); return { scale: t2 > 8 ? function(n3) { return n3 / e2; } : function(n3) { return n3 * e2; }, symbol: n2 }; } function Un(n2) { var t2 = n2.decimal, e2 = n2.thousands, r2 = n2.grouping, u2 = n2.currency, i2 = r2 && e2 ? function(n3, t3) { for (var u3 = n3.length, i3 = [], a2 = 0, o2 = r2[0], l2 = 0; u3 > 0 && o2 > 0 && (l2 + o2 + 1 > t3 && (o2 = Math.max(1, t3 - l2)), i3.push(n3.substring(u3 -= o2, u3 + o2)), !((l2 += o2 + 1) > t3)); ) o2 = r2[a2 = (a2 + 1) % r2.length]; return i3.reverse().join(e2); } : y; return function(n3) { var e3 = so.exec(n3), r3 = e3[1] || " ", a2 = e3[2] || ">", o2 = e3[3] || "-", l2 = e3[4] || "", c2 = e3[5], s2 = +e3[6], f2 = e3[7], h2 = e3[8], g2 = e3[9], p2 = 1, v2 = "", d2 = "", m2 = false, y2 = true; switch (h2 && (h2 = +h2.substring(1)), (c2 || "0" === r3 && "=" === a2) && (c2 = r3 = "0", a2 = "="), g2) { case "n": f2 = true, g2 = "g"; break; case "%": p2 = 100, d2 = "%", g2 = "f"; break; case "p": p2 = 100, d2 = "%", g2 = "r"; break; case "b": case "o": case "x": case "X": "#" === l2 && (v2 = "0" + g2.toLowerCase()); case "c": y2 = false; case "d": m2 = true, h2 = 0; break; case "s": p2 = -1, g2 = "r"; } "$" === l2 && (v2 = u2[0], d2 = u2[1]), "r" != g2 || h2 || (g2 = "g"), null != h2 && ("g" == g2 ? h2 = Math.max(1, Math.min(21, h2)) : ("e" == g2 || "f" == g2) && (h2 = Math.max(0, Math.min(20, h2)))), g2 = fo.get(g2) || Fn; var M2 = c2 && f2; return function(n4) { var e4 = d2; if (m2 && n4 % 1) return ""; var u3 = 0 > n4 || 0 === n4 && 0 > 1 / n4 ? (n4 = -n4, "-") : "-" === o2 ? "" : o2; if (0 > p2) { var l3 = oa.formatPrefix(n4, h2); n4 = l3.scale(n4), e4 = l3.symbol + d2; } else n4 *= p2; n4 = g2(n4, h2); var x2, b2, _2 = n4.lastIndexOf("."); if (0 > _2) { var w2 = y2 ? n4.lastIndexOf("e") : -1; 0 > w2 ? (x2 = n4, b2 = "") : (x2 = n4.substring(0, w2), b2 = n4.substring(w2)); } else x2 = n4.substring(0, _2), b2 = t2 + n4.substring(_2 + 1); !c2 && f2 && (x2 = i2(x2, 1 / 0)); var S2 = v2.length + x2.length + b2.length + (M2 ? 0 : u3.length), k2 = s2 > S2 ? new Array(S2 = s2 - S2 + 1).join(r3) : ""; return M2 && (x2 = i2(k2 + x2, k2.length ? s2 - b2.length : 1 / 0)), u3 += v2, n4 = x2 + b2, ("<" === a2 ? u3 + n4 + k2 : ">" === a2 ? k2 + u3 + n4 : "^" === a2 ? k2.substring(0, S2 >>= 1) + u3 + n4 + k2.substring(S2) : u3 + (M2 ? n4 : k2 + n4)) + e4; }; }; } function Fn(n2) { return n2 + ""; } function Hn() { this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]); } function On(n2, t2, e2) { function r2(t3) { var e3 = n2(t3), r3 = i2(e3, 1); return r3 - t3 > t3 - e3 ? e3 : r3; } function u2(e3) { return t2(e3 = n2(new go(e3 - 1)), 1), e3; } function i2(n3, e3) { return t2(n3 = new go(+n3), e3), n3; } function a2(n3, r3, i3) { var a3 = u2(n3), o3 = []; if (i3 > 1) for (; r3 > a3; ) e2(a3) % i3 || o3.push(/* @__PURE__ */ new Date(+a3)), t2(a3, 1); else for (; r3 > a3; ) o3.push(/* @__PURE__ */ new Date(+a3)), t2(a3, 1); return o3; } function o2(n3, t3, e3) { try { go = Hn; var r3 = new Hn(); return r3._ = n3, a2(r3, t3, e3); } finally { go = Date; } } n2.floor = n2, n2.round = r2, n2.ceil = u2, n2.offset = i2, n2.range = a2; var l2 = n2.utc = In(n2); return l2.floor = l2, l2.round = In(r2), l2.ceil = In(u2), l2.offset = In(i2), l2.range = o2, n2; } function In(n2) { return function(t2, e2) { try { go = Hn; var r2 = new Hn(); return r2._ = t2, n2(r2, e2)._; } finally { go = Date; } }; } function Yn(n2) { function t2(n3) { function t3(t4) { for (var e3, u3, i3, a3 = [], o3 = -1, l3 = 0; ++o3 < r3; ) 37 === n3.charCodeAt(o3) && (a3.push(n3.slice(l3, o3)), null != (u3 = vo[e3 = n3.charAt(++o3)]) && (e3 = n3.charAt(++o3)), (i3 = A2[e3]) && (e3 = i3(t4, null == u3 ? "e" === e3 ? " " : "0" : u3)), a3.push(e3), l3 = o3 + 1); return a3.push(n3.slice(l3, o3)), a3.join(""); } var r3 = n3.length; return t3.parse = function(t4) { var r4 = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null }, u3 = e2(r4, n3, t4, 0); if (u3 != t4.length) return null; "p" in r4 && (r4.H = r4.H % 12 + 12 * r4.p); var i3 = null != r4.Z && go !== Hn, a3 = new (i3 ? Hn : go)(); return "j" in r4 ? a3.setFullYear(r4.y, 0, r4.j) : "W" in r4 || "U" in r4 ? ("w" in r4 || (r4.w = "W" in r4 ? 1 : 0), a3.setFullYear(r4.y, 0, 1), a3.setFullYear(r4.y, 0, "W" in r4 ? (r4.w + 6) % 7 + 7 * r4.W - (a3.getDay() + 5) % 7 : r4.w + 7 * r4.U - (a3.getDay() + 6) % 7)) : a3.setFullYear(r4.y, r4.m, r4.d), a3.setHours(r4.H + (r4.Z / 100 | 0), r4.M + r4.Z % 100, r4.S, r4.L), i3 ? a3._ : a3; }, t3.toString = function() { return n3; }, t3; } function e2(n3, t3, e3, r3) { for (var u3, i3, a3, o3 = 0, l3 = t3.length, c3 = e3.length; l3 > o3; ) { if (r3 >= c3) return -1; if (u3 = t3.charCodeAt(o3++), 37 === u3) { if (a3 = t3.charAt(o3++), i3 = C2[a3 in vo ? t3.charAt(o3++) : a3], !i3 || (r3 = i3(n3, e3, r3)) < 0) return -1; } else if (u3 != e3.charCodeAt(r3++)) return -1; } return r3; } function r2(n3, t3, e3) { _2.lastIndex = 0; var r3 = _2.exec(t3.slice(e3)); return r3 ? (n3.w = w2.get(r3[0].toLowerCase()), e3 + r3[0].length) : -1; } function u2(n3, t3, e3) { x2.lastIndex = 0; var r3 = x2.exec(t3.slice(e3)); return r3 ? (n3.w = b2.get(r3[0].toLowerCase()), e3 + r3[0].length) : -1; } function i2(n3, t3, e3) { N2.lastIndex = 0; var r3 = N2.exec(t3.slice(e3)); return r3 ? (n3.m = E2.get(r3[0].toLowerCase()), e3 + r3[0].length) : -1; } function a2(n3, t3, e3) { S2.lastIndex = 0; var r3 = S2.exec(t3.slice(e3)); return r3 ? (n3.m = k2.get(r3[0].toLowerCase()), e3 + r3[0].length) : -1; } function o2(n3, t3, r3) { return e2(n3, A2.c.toString(), t3, r3); } function l2(n3, t3, r3) { return e2(n3, A2.x.toString(), t3, r3); } function c2(n3, t3, r3) { return e2(n3, A2.X.toString(), t3, r3); } function s2(n3, t3, e3) { var r3 = M2.get(t3.slice(e3, e3 += 2).toLowerCase()); return null == r3 ? -1 : (n3.p = r3, e3); } var f2 = n2.dateTime, h2 = n2.date, g2 = n2.time, p2 = n2.periods, v2 = n2.days, d2 = n2.shortDays, m2 = n2.months, y2 = n2.shortMonths; t2.utc = function(n3) { function e3(n4) { try { go = Hn; var t3 = new go(); return t3._ = n4, r3(t3); } finally { go = Date; } } var r3 = t2(n3); return e3.parse = function(n4) { try { go = Hn; var t3 = r3.parse(n4); return t3 && t3._; } finally { go = Date; } }, e3.toString = r3.toString, e3; }, t2.multi = t2.utc.multi = ct; var M2 = oa.map(), x2 = Vn(v2), b2 = Xn(v2), _2 = Vn(d2), w2 = Xn(d2), S2 = Vn(m2), k2 = Xn(m2), N2 = Vn(y2), E2 = Xn(y2); p2.forEach(function(n3, t3) { M2.set(n3.toLowerCase(), t3); }); var A2 = { a: function(n3) { return d2[n3.getDay()]; }, A: function(n3) { return v2[n3.getDay()]; }, b: function(n3) { return y2[n3.getMonth()]; }, B: function(n3) { return m2[n3.getMonth()]; }, c: t2(f2), d: function(n3, t3) { return Zn(n3.getDate(), t3, 2); }, e: function(n3, t3) { return Zn(n3.getDate(), t3, 2); }, H: function(n3, t3) { return Zn(n3.getHours(), t3, 2); }, I: function(n3, t3) { return Zn(n3.getHours() % 12 || 12, t3, 2); }, j: function(n3, t3) { return Zn(1 + ho.dayOfYear(n3), t3, 3); }, L: function(n3, t3) { return Zn(n3.getMilliseconds(), t3, 3); }, m: function(n3, t3) { return Zn(n3.getMonth() + 1, t3, 2); }, M: function(n3, t3) { return Zn(n3.getMinutes(), t3, 2); }, p: function(n3) { return p2[+(n3.getHours() >= 12)]; }, S: function(n3, t3) { return Zn(n3.getSeconds(), t3, 2); }, U: function(n3, t3) { return Zn(ho.sundayOfYear(n3), t3, 2); }, w: function(n3) { return n3.getDay(); }, W: function(n3, t3) { return Zn(ho.mondayOfYear(n3), t3, 2); }, x: t2(h2), X: t2(g2), y: function(n3, t3) { return Zn(n3.getFullYear() % 100, t3, 2); }, Y: function(n3, t3) { return Zn(n3.getFullYear() % 1e4, t3, 4); }, Z: ot, "%": function() { return "%"; } }, C2 = { a: r2, A: u2, b: i2, B: a2, c: o2, d: tt, e: tt, H: rt, I: rt, j: et, L: at, m: nt, M: ut, p: s2, S: it, U: Bn, w: $n, W: Wn, x: l2, X: c2, y: Gn, Y: Jn, Z: Kn, "%": lt }; return t2; } function Zn(n2, t2, e2) { var r2 = 0 > n2 ? "-" : "", u2 = (r2 ? -n2 : n2) + "", i2 = u2.length; return r2 + (e2 > i2 ? new Array(e2 - i2 + 1).join(t2) + u2 : u2); } function Vn(n2) { return new RegExp("^(?:" + n2.map(oa.requote).join("|") + ")", "i"); } function Xn(n2) { for (var t2 = new c(), e2 = -1, r2 = n2.length; ++e2 < r2; ) t2.set(n2[e2].toLowerCase(), e2); return t2; } function $n(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2, e2 + 1)); return r2 ? (n2.w = +r2[0], e2 + r2[0].length) : -1; } function Bn(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2)); return r2 ? (n2.U = +r2[0], e2 + r2[0].length) : -1; } function Wn(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2)); return r2 ? (n2.W = +r2[0], e2 + r2[0].length) : -1; } function Jn(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2, e2 + 4)); return r2 ? (n2.y = +r2[0], e2 + r2[0].length) : -1; } function Gn(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2, e2 + 2)); return r2 ? (n2.y = Qn(+r2[0]), e2 + r2[0].length) : -1; } function Kn(n2, t2, e2) { return /^[+-]\d{4}$/.test(t2 = t2.slice(e2, e2 + 5)) ? (n2.Z = -t2, e2 + 5) : -1; } function Qn(n2) { return n2 + (n2 > 68 ? 1900 : 2e3); } function nt(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2, e2 + 2)); return r2 ? (n2.m = r2[0] - 1, e2 + r2[0].length) : -1; } function tt(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2, e2 + 2)); return r2 ? (n2.d = +r2[0], e2 + r2[0].length) : -1; } function et(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2, e2 + 3)); return r2 ? (n2.j = +r2[0], e2 + r2[0].length) : -1; } function rt(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2, e2 + 2)); return r2 ? (n2.H = +r2[0], e2 + r2[0].length) : -1; } function ut(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2, e2 + 2)); return r2 ? (n2.M = +r2[0], e2 + r2[0].length) : -1; } function it(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2, e2 + 2)); return r2 ? (n2.S = +r2[0], e2 + r2[0].length) : -1; } function at(n2, t2, e2) { mo.lastIndex = 0; var r2 = mo.exec(t2.slice(e2, e2 + 3)); return r2 ? (n2.L = +r2[0], e2 + r2[0].length) : -1; } function ot(n2) { var t2 = n2.getTimezoneOffset(), e2 = t2 > 0 ? "-" : "+", r2 = Ma(t2) / 60 | 0, u2 = Ma(t2) % 60; return e2 + Zn(r2, "0", 2) + Zn(u2, "0", 2); } function lt(n2, t2, e2) { yo.lastIndex = 0; var r2 = yo.exec(t2.slice(e2, e2 + 1)); return r2 ? e2 + r2[0].length : -1; } function ct(n2) { for (var t2 = n2.length, e2 = -1; ++e2 < t2; ) n2[e2][0] = this(n2[e2][0]); return function(t3) { for (var e3 = 0, r2 = n2[e3]; !r2[1](t3); ) r2 = n2[++e3]; return r2[0](t3); }; } function st() { } function ft(n2, t2, e2) { var r2 = e2.s = n2 + t2, u2 = r2 - n2, i2 = r2 - u2; e2.t = n2 - i2 + (t2 - u2); } function ht(n2, t2) { n2 && _o.hasOwnProperty(n2.type) && _o[n2.type](n2, t2); } function gt(n2, t2, e2) { var r2, u2 = -1, i2 = n2.length - e2; for (t2.lineStart(); ++u2 < i2; ) r2 = n2[u2], t2.point(r2[0], r2[1], r2[2]); t2.lineEnd(); } function pt(n2, t2) { var e2 = -1, r2 = n2.length; for (t2.polygonStart(); ++e2 < r2; ) gt(n2[e2], t2, 1); t2.polygonEnd(); } function vt() { function n2(n3, t3) { n3 *= Oa, t3 = t3 * Oa / 2 + ja / 4; var e3 = n3 - r2, a2 = e3 >= 0 ? 1 : -1, o2 = a2 * e3, l2 = Math.cos(t3), c2 = Math.sin(t3), s2 = i2 * c2, f2 = u2 * l2 + s2 * Math.cos(o2), h2 = s2 * a2 * Math.sin(o2); So.add(Math.atan2(h2, f2)), r2 = n3, u2 = l2, i2 = c2; } var t2, e2, r2, u2, i2; ko.point = function(a2, o2) { ko.point = n2, r2 = (t2 = a2) * Oa, u2 = Math.cos(o2 = (e2 = o2) * Oa / 2 + ja / 4), i2 = Math.sin(o2); }, ko.lineEnd = function() { n2(t2, e2); }; } function dt(n2) { var t2 = n2[0], e2 = n2[1], r2 = Math.cos(e2); return [r2 * Math.cos(t2), r2 * Math.sin(t2), Math.sin(e2)]; } function mt(n2, t2) { return n2[0] * t2[0] + n2[1] * t2[1] + n2[2] * t2[2]; } function yt(n2, t2) { return [n2[1] * t2[2] - n2[2] * t2[1], n2[2] * t2[0] - n2[0] * t2[2], n2[0] * t2[1] - n2[1] * t2[0]]; } function Mt(n2, t2) { n2[0] += t2[0], n2[1] += t2[1], n2[2] += t2[2]; } function xt(n2, t2) { return [n2[0] * t2, n2[1] * t2, n2[2] * t2]; } function bt(n2) { var t2 = Math.sqrt(n2[0] * n2[0] + n2[1] * n2[1] + n2[2] * n2[2]); n2[0] /= t2, n2[1] /= t2, n2[2] /= t2; } function _t(n2) { return [Math.atan2(n2[1], n2[0]), tn(n2[2])]; } function wt(n2, t2) { return Ma(n2[0] - t2[0]) < Da && Ma(n2[1] - t2[1]) < Da; } function St(n2, t2) { n2 *= Oa; var e2 = Math.cos(t2 *= Oa); kt(e2 * Math.cos(n2), e2 * Math.sin(n2), Math.sin(t2)); } function kt(n2, t2, e2) { ++No, Ao += (n2 - Ao) / No, Co += (t2 - Co) / No, zo += (e2 - zo) / No; } function Nt() { function n2(n3, u2) { n3 *= Oa; var i2 = Math.cos(u2 *= Oa), a2 = i2 * Math.cos(n3), o2 = i2 * Math.sin(n3), l2 = Math.sin(u2), c2 = Math.atan2(Math.sqrt((c2 = e2 * l2 - r2 * o2) * c2 + (c2 = r2 * a2 - t2 * l2) * c2 + (c2 = t2 * o2 - e2 * a2) * c2), t2 * a2 + e2 * o2 + r2 * l2); Eo += c2, Lo += c2 * (t2 + (t2 = a2)), qo += c2 * (e2 + (e2 = o2)), To += c2 * (r2 + (r2 = l2)), kt(t2, e2, r2); } var t2, e2, r2; jo.point = function(u2, i2) { u2 *= Oa; var a2 = Math.cos(i2 *= Oa); t2 = a2 * Math.cos(u2), e2 = a2 * Math.sin(u2), r2 = Math.sin(i2), jo.point = n2, kt(t2, e2, r2); }; } function Et() { jo.point = St; } function At() { function n2(n3, t3) { n3 *= Oa; var e3 = Math.cos(t3 *= Oa), a2 = e3 * Math.cos(n3), o2 = e3 * Math.sin(n3), l2 = Math.sin(t3), c2 = u2 * l2 - i2 * o2, s2 = i2 * a2 - r2 * l2, f2 = r2 * o2 - u2 * a2, h2 = Math.sqrt(c2 * c2 + s2 * s2 + f2 * f2), g2 = r2 * a2 + u2 * o2 + i2 * l2, p2 = h2 && -nn(g2) / h2, v2 = Math.atan2(h2, g2); Ro += p2 * c2, Do += p2 * s2, Po += p2 * f2, Eo += v2, Lo += v2 * (r2 + (r2 = a2)), qo += v2 * (u2 + (u2 = o2)), To += v2 * (i2 + (i2 = l2)), kt(r2, u2, i2); } var t2, e2, r2, u2, i2; jo.point = function(a2, o2) { t2 = a2, e2 = o2, jo.point = n2, a2 *= Oa; var l2 = Math.cos(o2 *= Oa); r2 = l2 * Math.cos(a2), u2 = l2 * Math.sin(a2), i2 = Math.sin(o2), kt(r2, u2, i2); }, jo.lineEnd = function() { n2(t2, e2), jo.lineEnd = Et, jo.point = St; }; } function Ct(n2, t2) { function e2(e3, r2) { return e3 = n2(e3, r2), t2(e3[0], e3[1]); } return n2.invert && t2.invert && (e2.invert = function(e3, r2) { return e3 = t2.invert(e3, r2), e3 && n2.invert(e3[0], e3[1]); }), e2; } function zt() { return true; } function Lt(n2, t2, e2, r2, u2) { var i2 = [], a2 = []; if (n2.forEach(function(n3) { if (!((t3 = n3.length - 1) <= 0)) { var t3, e3 = n3[0], r3 = n3[t3]; if (wt(e3, r3)) { u2.lineStart(); for (var o3 = 0; t3 > o3; ++o3) u2.point((e3 = n3[o3])[0], e3[1]); return void u2.lineEnd(); } var l3 = new Tt(e3, n3, null, true), c3 = new Tt(e3, null, l3, false); l3.o = c3, i2.push(l3), a2.push(c3), l3 = new Tt(r3, n3, null, false), c3 = new Tt(r3, null, l3, true), l3.o = c3, i2.push(l3), a2.push(c3); } }), a2.sort(t2), qt(i2), qt(a2), i2.length) { for (var o2 = 0, l2 = e2, c2 = a2.length; c2 > o2; ++o2) a2[o2].e = l2 = !l2; for (var s2, f2, h2 = i2[0]; ; ) { for (var g2 = h2, p2 = true; g2.v; ) if ((g2 = g2.n) === h2) return; s2 = g2.z, u2.lineStart(); do { if (g2.v = g2.o.v = true, g2.e) { if (p2) for (var o2 = 0, c2 = s2.length; c2 > o2; ++o2) u2.point((f2 = s2[o2])[0], f2[1]); else r2(g2.x, g2.n.x, 1, u2); g2 = g2.n; } else { if (p2) { s2 = g2.p.z; for (var o2 = s2.length - 1; o2 >= 0; --o2) u2.point((f2 = s2[o2])[0], f2[1]); } else r2(g2.x, g2.p.x, -1, u2); g2 = g2.p; } g2 = g2.o, s2 = g2.z, p2 = !p2; } while (!g2.v); u2.lineEnd(); } } } function qt(n2) { if (t2 = n2.length) { for (var t2, e2, r2 = 0, u2 = n2[0]; ++r2 < t2; ) u2.n = e2 = n2[r2], e2.p = u2, u2 = e2; u2.n = e2 = n2[0], e2.p = u2; } } function Tt(n2, t2, e2, r2) { this.x = n2, this.z = t2, this.o = e2, this.e = r2, this.v = false, this.n = this.p = null; } function Rt(n2, t2, e2, r2) { return function(u2, i2) { function a2(t3, e3) { var r3 = u2(t3, e3); n2(t3 = r3[0], e3 = r3[1]) && i2.point(t3, e3); } function o2(n3, t3) { var e3 = u2(n3, t3); d2.point(e3[0], e3[1]); } function l2() { y2.point = o2, d2.lineStart(); } function c2() { y2.point = a2, d2.lineEnd(); } function s2(n3, t3) { v2.push([n3, t3]); var e3 = u2(n3, t3); x2.point(e3[0], e3[1]); } function f2() { x2.lineStart(), v2 = []; } function h2() { s2(v2[0][0], v2[0][1]), x2.lineEnd(); var n3, t3 = x2.clean(), e3 = M2.buffer(), r3 = e3.length; if (v2.pop(), p2.push(v2), v2 = null, r3) if (1 & t3) { n3 = e3[0]; var u3, r3 = n3.length - 1, a3 = -1; if (r3 > 0) { for (b2 || (i2.polygonStart(), b2 = true), i2.lineStart(); ++a3 < r3; ) i2.point((u3 = n3[a3])[0], u3[1]); i2.lineEnd(); } } else r3 > 1 && 2 & t3 && e3.push(e3.pop().concat(e3.shift())), g2.push(e3.filter(Dt)); } var g2, p2, v2, d2 = t2(i2), m2 = u2.invert(r2[0], r2[1]), y2 = { point: a2, lineStart: l2, lineEnd: c2, polygonStart: function() { y2.point = s2, y2.lineStart = f2, y2.lineEnd = h2, g2 = [], p2 = []; }, polygonEnd: function() { y2.point = a2, y2.lineStart = l2, y2.lineEnd = c2, g2 = oa.merge(g2); var n3 = Ot(m2, p2); g2.length ? (b2 || (i2.polygonStart(), b2 = true), Lt(g2, jt, n3, e2, i2)) : n3 && (b2 || (i2.polygonStart(), b2 = true), i2.lineStart(), e2(null, null, 1, i2), i2.lineEnd()), b2 && (i2.polygonEnd(), b2 = false), g2 = p2 = null; }, sphere: function() { i2.polygonStart(), i2.lineStart(), e2(null, null, 1, i2), i2.lineEnd(), i2.polygonEnd(); } }, M2 = Pt(), x2 = t2(M2), b2 = false; return y2; }; } function Dt(n2) { return n2.length > 1; } function Pt() { var n2, t2 = []; return { lineStart: function() { t2.push(n2 = []); }, point: function(t3, e2) { n2.push([t3, e2]); }, lineEnd: b, buffer: function() { var e2 = t2; return t2 = [], n2 = null, e2; }, rejoin: function() { t2.length > 1 && t2.push(t2.pop().concat(t2.shift())); } }; } function jt(n2, t2) { return ((n2 = n2.x)[0] < 0 ? n2[1] - Ha - Da : Ha - n2[1]) - ((t2 = t2.x)[0] < 0 ? t2[1] - Ha - Da : Ha - t2[1]); } function Ut(n2) { var t2, e2 = NaN, r2 = NaN, u2 = NaN; return { lineStart: function() { n2.lineStart(), t2 = 1; }, point: function(i2, a2) { var o2 = i2 > 0 ? ja : -ja, l2 = Ma(i2 - e2); Ma(l2 - ja) < Da ? (n2.point(e2, r2 = (r2 + a2) / 2 > 0 ? Ha : -Ha), n2.point(u2, r2), n2.lineEnd(), n2.lineStart(), n2.point(o2, r2), n2.point(i2, r2), t2 = 0) : u2 !== o2 && l2 >= ja && (Ma(e2 - u2) < Da && (e2 -= u2 * Da), Ma(i2 - o2) < Da && (i2 -= o2 * Da), r2 = Ft(e2, r2, i2, a2), n2.point(u2, r2), n2.lineEnd(), n2.lineStart(), n2.point(o2, r2), t2 = 0), n2.point(e2 = i2, r2 = a2), u2 = o2; }, lineEnd: function() { n2.lineEnd(), e2 = r2 = NaN; }, clean: function() { return 2 - t2; } }; } function Ft(n2, t2, e2, r2) { var u2, i2, a2 = Math.sin(n2 - e2); return Ma(a2) > Da ? Math.atan((Math.sin(t2) * (i2 = Math.cos(r2)) * Math.sin(e2) - Math.sin(r2) * (u2 = Math.cos(t2)) * Math.sin(n2)) / (u2 * i2 * a2)) : (t2 + r2) / 2; } function Ht(n2, t2, e2, r2) { var u2; if (null == n2) u2 = e2 * Ha, r2.point(-ja, u2), r2.point(0, u2), r2.point(ja, u2), r2.point(ja, 0), r2.point(ja, -u2), r2.point(0, -u2), r2.point(-ja, -u2), r2.point(-ja, 0), r2.point(-ja, u2); else if (Ma(n2[0] - t2[0]) > Da) { var i2 = n2[0] < t2[0] ? ja : -ja; u2 = e2 * i2 / 2, r2.point(-i2, u2), r2.point(0, u2), r2.point(i2, u2); } else r2.point(t2[0], t2[1]); } function Ot(n2, t2) { var e2 = n2[0], r2 = n2[1], u2 = [Math.sin(e2), -Math.cos(e2), 0], i2 = 0, a2 = 0; So.reset(); for (var o2 = 0, l2 = t2.length; l2 > o2; ++o2) { var c2 = t2[o2], s2 = c2.length; if (s2) for (var f2 = c2[0], h2 = f2[0], g2 = f2[1] / 2 + ja / 4, p2 = Math.sin(g2), v2 = Math.cos(g2), d2 = 1; ; ) { d2 === s2 && (d2 = 0), n2 = c2[d2]; var m2 = n2[0], y2 = n2[1] / 2 + ja / 4, M2 = Math.sin(y2), x2 = Math.cos(y2), b2 = m2 - h2, _2 = b2 >= 0 ? 1 : -1, w2 = _2 * b2, S2 = w2 > ja, k2 = p2 * M2; if (So.add(Math.atan2(k2 * _2 * Math.sin(w2), v2 * x2 + k2 * Math.cos(w2))), i2 += S2 ? b2 + _2 * Ua : b2, S2 ^ h2 >= e2 ^ m2 >= e2) { var N2 = yt(dt(f2), dt(n2)); bt(N2); var E2 = yt(u2, N2); bt(E2); var A2 = (S2 ^ b2 >= 0 ? -1 : 1) * tn(E2[2]); (r2 > A2 || r2 === A2 && (N2[0] || N2[1])) && (a2 += S2 ^ b2 >= 0 ? 1 : -1); } if (!d2++) break; h2 = m2, p2 = M2, v2 = x2, f2 = n2; } } return (-Da > i2 || Da > i2 && 0 > So) ^ 1 & a2; } function It(n2) { function t2(n3, t3) { return Math.cos(n3) * Math.cos(t3) > i2; } function e2(n3) { var e3, i3, l3, c2, s2; return { lineStart: function() { c2 = l3 = false, s2 = 1; }, point: function(f2, h2) { var g2, p2 = [f2, h2], v2 = t2(f2, h2), d2 = a2 ? v2 ? 0 : u2(f2, h2) : v2 ? u2(f2 + (0 > f2 ? ja : -ja), h2) : 0; if (!e3 && (c2 = l3 = v2) && n3.lineStart(), v2 !== l3 && (g2 = r2(e3, p2), (wt(e3, g2) || wt(p2, g2)) && (p2[0] += Da, p2[1] += Da, v2 = t2(p2[0], p2[1]))), v2 !== l3) s2 = 0, v2 ? (n3.lineStart(), g2 = r2(p2, e3), n3.point(g2[0], g2[1])) : (g2 = r2(e3, p2), n3.point(g2[0], g2[1]), n3.lineEnd()), e3 = g2; else if (o2 && e3 && a2 ^ v2) { var m2; d2 & i3 || !(m2 = r2(p2, e3, true)) || (s2 = 0, a2 ? (n3.lineStart(), n3.point(m2[0][0], m2[0][1]), n3.point(m2[1][0], m2[1][1]), n3.lineEnd()) : (n3.point(m2[1][0], m2[1][1]), n3.lineEnd(), n3.lineStart(), n3.point(m2[0][0], m2[0][1]))); } !v2 || e3 && wt(e3, p2) || n3.point(p2[0], p2[1]), e3 = p2, l3 = v2, i3 = d2; }, lineEnd: function() { l3 && n3.lineEnd(), e3 = null; }, clean: function() { return s2 | (c2 && l3) << 1; } }; } function r2(n3, t3, e3) { var r3 = dt(n3), u3 = dt(t3), a3 = [1, 0, 0], o3 = yt(r3, u3), l3 = mt(o3, o3), c2 = o3[0], s2 = l3 - c2 * c2; if (!s2) return !e3 && n3; var f2 = i2 * l3 / s2, h2 = -i2 * c2 / s2, g2 = yt(a3, o3), p2 = xt(a3, f2), v2 = xt(o3, h2); Mt(p2, v2); var d2 = g2, m2 = mt(p2, d2), y2 = mt(d2, d2), M2 = m2 * m2 - y2 * (mt(p2, p2) - 1); if (!(0 > M2)) { var x2 = Math.sqrt(M2), b2 = xt(d2, (-m2 - x2) / y2); if (Mt(b2, p2), b2 = _t(b2), !e3) return b2; var _2, w2 = n3[0], S2 = t3[0], k2 = n3[1], N2 = t3[1]; w2 > S2 && (_2 = w2, w2 = S2, S2 = _2); var E2 = S2 - w2, A2 = Ma(E2 - ja) < Da, C2 = A2 || Da > E2; if (!A2 && k2 > N2 && (_2 = k2, k2 = N2, N2 = _2), C2 ? A2 ? k2 + N2 > 0 ^ b2[1] < (Ma(b2[0] - w2) < Da ? k2 : N2) : k2 <= b2[1] && b2[1] <= N2 : E2 > ja ^ (w2 <= b2[0] && b2[0] <= S2)) { var z2 = xt(d2, (-m2 + x2) / y2); return Mt(z2, p2), [b2, _t(z2)]; } } } function u2(t3, e3) { var r3 = a2 ? n2 : ja - n2, u3 = 0; return -r3 > t3 ? u3 |= 1 : t3 > r3 && (u3 |= 2), -r3 > e3 ? u3 |= 4 : e3 > r3 && (u3 |= 8), u3; } var i2 = Math.cos(n2), a2 = i2 > 0, o2 = Ma(i2) > Da, l2 = ve(n2, 6 * Oa); return Rt(t2, e2, l2, a2 ? [0, -n2] : [-ja, n2 - ja]); } function Yt(n2, t2, e2, r2) { return function(u2) { var i2, a2 = u2.a, o2 = u2.b, l2 = a2.x, c2 = a2.y, s2 = o2.x, f2 = o2.y, h2 = 0, g2 = 1, p2 = s2 - l2, v2 = f2 - c2; if (i2 = n2 - l2, p2 || !(i2 > 0)) { if (i2 /= p2, 0 > p2) { if (h2 > i2) return; g2 > i2 && (g2 = i2); } else if (p2 > 0) { if (i2 > g2) return; i2 > h2 && (h2 = i2); } if (i2 = e2 - l2, p2 || !(0 > i2)) { if (i2 /= p2, 0 > p2) { if (i2 > g2) return; i2 > h2 && (h2 = i2); } else if (p2 > 0) { if (h2 > i2) return; g2 > i2 && (g2 = i2); } if (i2 = t2 - c2, v2 || !(i2 > 0)) { if (i2 /= v2, 0 > v2) { if (h2 > i2) return; g2 > i2 && (g2 = i2); } else if (v2 > 0) { if (i2 > g2) return; i2 > h2 && (h2 = i2); } if (i2 = r2 - c2, v2 || !(0 > i2)) { if (i2 /= v2, 0 > v2) { if (i2 > g2) return; i2 > h2 && (h2 = i2); } else if (v2 > 0) { if (h2 > i2) return; g2 > i2 && (g2 = i2); } return h2 > 0 && (u2.a = { x: l2 + h2 * p2, y: c2 + h2 * v2 }), 1 > g2 && (u2.b = { x: l2 + g2 * p2, y: c2 + g2 * v2 }), u2; } } } } }; } function Zt(n2, t2, e2, r2) { function u2(r3, u3) { return Ma(r3[0] - n2) < Da ? u3 > 0 ? 0 : 3 : Ma(r3[0] - e2) < Da ? u3 > 0 ? 2 : 1 : Ma(r3[1] - t2) < Da ? u3 > 0 ? 1 : 0 : u3 > 0 ? 3 : 2; } function i2(n3, t3) { return a2(n3.x, t3.x); } function a2(n3, t3) { var e3 = u2(n3, 1), r3 = u2(t3, 1); return e3 !== r3 ? e3 - r3 : 0 === e3 ? t3[1] - n3[1] : 1 === e3 ? n3[0] - t3[0] : 2 === e3 ? n3[1] - t3[1] : t3[0] - n3[0]; } return function(o2) { function l2(n3) { for (var t3 = 0, e3 = d2.length, r3 = n3[1], u3 = 0; e3 > u3; ++u3) for (var i3, a3 = 1, o3 = d2[u3], l3 = o3.length, c3 = o3[0]; l3 > a3; ++a3) i3 = o3[a3], c3[1] <= r3 ? i3[1] > r3 && Q(c3, i3, n3) > 0 && ++t3 : i3[1] <= r3 && Q(c3, i3, n3) < 0 && --t3, c3 = i3; return 0 !== t3; } function c2(i3, o3, l3, c3) { var s3 = 0, f3 = 0; if (null == i3 || (s3 = u2(i3, l3)) !== (f3 = u2(o3, l3)) || a2(i3, o3) < 0 ^ l3 > 0) { do c3.point(0 === s3 || 3 === s3 ? n2 : e2, s3 > 1 ? r2 : t2); while ((s3 = (s3 + l3 + 4) % 4) !== f3); } else c3.point(o3[0], o3[1]); } function s2(u3, i3) { return u3 >= n2 && e2 >= u3 && i3 >= t2 && r2 >= i3; } function f2(n3, t3) { s2(n3, t3) && o2.point(n3, t3); } function h2() { C2.point = p2, d2 && d2.push(m2 = []), S2 = true, w2 = false, b2 = _2 = NaN; } function g2() { v2 && (p2(y2, M2), x2 && w2 && E2.rejoin(), v2.push(E2.buffer())), C2.point = f2, w2 && o2.lineEnd(); } function p2(n3, t3) { n3 = Math.max(-Fo, Math.min(Fo, n3)), t3 = Math.max(-Fo, Math.min(Fo, t3)); var e3 = s2(n3, t3); if (d2 && m2.push([n3, t3]), S2) y2 = n3, M2 = t3, x2 = e3, S2 = false, e3 && (o2.lineStart(), o2.point(n3, t3)); else if (e3 && w2) o2.point(n3, t3); else { var r3 = { a: { x: b2, y: _2 }, b: { x: n3, y: t3 } }; A2(r3) ? (w2 || (o2.lineStart(), o2.point(r3.a.x, r3.a.y)), o2.point(r3.b.x, r3.b.y), e3 || o2.lineEnd(), k2 = false) : e3 && (o2.lineStart(), o2.point(n3, t3), k2 = false); } b2 = n3, _2 = t3, w2 = e3; } var v2, d2, m2, y2, M2, x2, b2, _2, w2, S2, k2, N2 = o2, E2 = Pt(), A2 = Yt(n2, t2, e2, r2), C2 = { point: f2, lineStart: h2, lineEnd: g2, polygonStart: function() { o2 = E2, v2 = [], d2 = [], k2 = true; }, polygonEnd: function() { o2 = N2, v2 = oa.merge(v2); var t3 = l2([n2, r2]), e3 = k2 && t3, u3 = v2.length; (e3 || u3) && (o2.polygonStart(), e3 && (o2.lineStart(), c2(null, null, 1, o2), o2.lineEnd()), u3 && Lt(v2, i2, t3, c2, o2), o2.polygonEnd()), v2 = d2 = m2 = null; } }; return C2; }; } function Vt(n2) { var t2 = 0, e2 = ja / 3, r2 = oe(n2), u2 = r2(t2, e2); return u2.parallels = function(n3) { return arguments.length ? r2(t2 = n3[0] * ja / 180, e2 = n3[1] * ja / 180) : [t2 / ja * 180, e2 / ja * 180]; }, u2; } function Xt(n2, t2) { function e2(n3, t3) { var e3 = Math.sqrt(i2 - 2 * u2 * Math.sin(t3)) / u2; return [e3 * Math.sin(n3 *= u2), a2 - e3 * Math.cos(n3)]; } var r2 = Math.sin(n2), u2 = (r2 + Math.sin(t2)) / 2, i2 = 1 + r2 * (2 * u2 - r2), a2 = Math.sqrt(i2) / u2; return e2.invert = function(n3, t3) { var e3 = a2 - t3; return [Math.atan2(n3, e3) / u2, tn((i2 - (n3 * n3 + e3 * e3) * u2 * u2) / (2 * u2))]; }, e2; } function $t() { function n2(n3, t3) {