Fantasy-Map-Generator/libs/d3.min.js
2022-07-29 18:16:33 -07:00

16421 lines
434 KiB
JavaScript

// https://d3js.org v5.8.0 Copyright 2019 Mike Bostock
!(function (t, n) {
"object" == typeof exports && "undefined" != typeof module
? n(exports)
: "function" == typeof define && define.amd
? define(["exports"], n)
: n((t.d3 = t.d3 || {}));
})(this, function (t) {
"use strict";
function n(t, n) {
return t < n ? -1 : t > n ? 1 : t >= n ? 0 : NaN;
}
function e(t) {
var e;
return (
1 === t.length &&
((e = t),
(t = function (t, r) {
return n(e(t), r);
})),
{
left: function (n, e, r, i) {
for (null == r && (r = 0), null == i && (i = n.length); r < i; ) {
var o = (r + i) >>> 1;
t(n[o], e) < 0 ? (r = o + 1) : (i = o);
}
return r;
},
right: function (n, e, r, i) {
for (null == r && (r = 0), null == i && (i = n.length); r < i; ) {
var o = (r + i) >>> 1;
t(n[o], e) > 0 ? (i = o) : (r = o + 1);
}
return r;
},
}
);
}
var r = e(n),
i = r.right,
o = r.left;
function a(t, n) {
return [t, n];
}
function u(t) {
return null === t ? NaN : +t;
}
function c(t, n) {
var e,
r,
i = t.length,
o = 0,
a = -1,
c = 0,
f = 0;
if (null == n)
for (; ++a < i; )
isNaN((e = u(t[a]))) || (f += (r = e - c) * (e - (c += r / ++o)));
else
for (; ++a < i; )
isNaN((e = u(n(t[a], a, t)))) ||
(f += (r = e - c) * (e - (c += r / ++o)));
if (o > 1) return f / (o - 1);
}
function f(t, n) {
var e = c(t, n);
return e ? Math.sqrt(e) : e;
}
function s(t, n) {
var e,
r,
i,
o = t.length,
a = -1;
if (null == n) {
for (; ++a < o; )
if (null != (e = t[a]) && e >= e)
for (r = i = e; ++a < o; )
null != (e = t[a]) && (r > e && (r = e), i < e && (i = e));
} else for (; ++a < o; ) if (null != (e = n(t[a], a, t)) && e >= e) for (r = i = e; ++a < o; ) null != (e = n(t[a], a, t)) && (r > e && (r = e), i < e && (i = e));
return [r, i];
}
var l = Array.prototype,
h = l.slice,
d = l.map;
function p(t) {
return function () {
return t;
};
}
function v(t) {
return t;
}
function g(t, n, e) {
(t = +t),
(n = +n),
(e = (i = arguments.length) < 2 ? ((n = t), (t = 0), 1) : i < 3 ? 1 : +e);
for (
var r = -1, i = 0 | Math.max(0, Math.ceil((n - t) / e)), o = new Array(i);
++r < i;
)
o[r] = t + r * e;
return o;
}
var y = Math.sqrt(50),
_ = Math.sqrt(10),
b = Math.sqrt(2);
function m(t, n, e) {
var r,
i,
o,
a,
u = -1;
if (((e = +e), (t = +t) === (n = +n) && e > 0)) return [t];
if (
((r = n < t) && ((i = t), (t = n), (n = i)),
0 === (a = x(t, n, e)) || !isFinite(a))
)
return [];
if (a > 0)
for (
t = Math.ceil(t / a),
n = Math.floor(n / a),
o = new Array((i = Math.ceil(n - t + 1)));
++u < i;
)
o[u] = (t + u) * a;
else
for (
t = Math.floor(t * a),
n = Math.ceil(n * a),
o = new Array((i = Math.ceil(t - n + 1)));
++u < i;
)
o[u] = (t - u) / a;
return r && o.reverse(), o;
}
function x(t, n, e) {
var r = (n - t) / Math.max(0, e),
i = Math.floor(Math.log(r) / Math.LN10),
o = r / Math.pow(10, i);
return i >= 0
? (o >= y ? 10 : o >= _ ? 5 : o >= b ? 2 : 1) * Math.pow(10, i)
: -Math.pow(10, -i) / (o >= y ? 10 : o >= _ ? 5 : o >= b ? 2 : 1);
}
function w(t, n, e) {
var r = Math.abs(n - t) / Math.max(0, e),
i = Math.pow(10, Math.floor(Math.log(r) / Math.LN10)),
o = r / i;
return (
o >= y ? (i *= 10) : o >= _ ? (i *= 5) : o >= b && (i *= 2),
n < t ? -i : i
);
}
function M(t) {
return Math.ceil(Math.log(t.length) / Math.LN2) + 1;
}
function N(t, n, e) {
if ((null == e && (e = u), (r = t.length))) {
if ((n = +n) <= 0 || r < 2) return +e(t[0], 0, t);
if (n >= 1) return +e(t[r - 1], r - 1, t);
var r,
i = (r - 1) * n,
o = Math.floor(i),
a = +e(t[o], o, t);
return a + (+e(t[o + 1], o + 1, t) - a) * (i - o);
}
}
function A(t, n) {
var e,
r,
i = t.length,
o = -1;
if (null == n) {
for (; ++o < i; )
if (null != (e = t[o]) && e >= e)
for (r = e; ++o < i; ) null != (e = t[o]) && e > r && (r = e);
} else for (; ++o < i; ) if (null != (e = n(t[o], o, t)) && e >= e) for (r = e; ++o < i; ) null != (e = n(t[o], o, t)) && e > r && (r = e);
return r;
}
function k(t) {
for (var n, e, r, i = t.length, o = -1, a = 0; ++o < i; ) a += t[o].length;
for (e = new Array(a); --i >= 0; )
for (n = (r = t[i]).length; --n >= 0; ) e[--a] = r[n];
return e;
}
function S(t, n) {
var e,
r,
i = t.length,
o = -1;
if (null == n) {
for (; ++o < i; )
if (null != (e = t[o]) && e >= e)
for (r = e; ++o < i; ) null != (e = t[o]) && r > e && (r = e);
} else for (; ++o < i; ) if (null != (e = n(t[o], o, t)) && e >= e) for (r = e; ++o < i; ) null != (e = n(t[o], o, t)) && r > e && (r = e);
return r;
}
function T(t) {
if (!(i = t.length)) return [];
for (var n = -1, e = S(t, E), r = new Array(e); ++n < e; )
for (var i, o = -1, a = (r[n] = new Array(i)); ++o < i; ) a[o] = t[o][n];
return r;
}
function E(t) {
return t.length;
}
var C = Array.prototype.slice;
function P(t) {
return t;
}
var z = 1,
R = 2,
q = 3,
D = 4,
L = 1e-6;
function U(t) {
return "translate(" + (t + 0.5) + ",0)";
}
function O(t) {
return "translate(0," + (t + 0.5) + ")";
}
function Y() {
return !this.__axis;
}
function B(t, n) {
var e = [],
r = null,
i = null,
o = 6,
a = 6,
u = 3,
c = t === z || t === D ? -1 : 1,
f = t === D || t === R ? "x" : "y",
s = t === z || t === q ? U : O;
function l(l) {
var h = null == r ? (n.ticks ? n.ticks.apply(n, e) : n.domain()) : r,
d = null == i ? (n.tickFormat ? n.tickFormat.apply(n, e) : P) : i,
p = Math.max(o, 0) + u,
v = n.range(),
g = +v[0] + 0.5,
y = +v[v.length - 1] + 0.5,
_ = (
n.bandwidth
? function (t) {
var n = Math.max(0, t.bandwidth() - 1) / 2;
return (
t.round() && (n = Math.round(n)),
function (e) {
return +t(e) + n;
}
);
}
: function (t) {
return function (n) {
return +t(n);
};
}
)(n.copy()),
b = l.selection ? l.selection() : l,
m = b.selectAll(".domain").data([null]),
x = b.selectAll(".tick").data(h, n).order(),
w = x.exit(),
M = x.enter().append("g").attr("class", "tick"),
N = x.select("line"),
A = x.select("text");
(m = m.merge(
m
.enter()
.insert("path", ".tick")
.attr("class", "domain")
.attr("stroke", "currentColor")
)),
(x = x.merge(M)),
(N = N.merge(
M.append("line")
.attr("stroke", "currentColor")
.attr(f + "2", c * o)
)),
(A = A.merge(
M.append("text")
.attr("fill", "currentColor")
.attr(f, c * p)
.attr("dy", t === z ? "0em" : t === q ? "0.71em" : "0.32em")
)),
l !== b &&
((m = m.transition(l)),
(x = x.transition(l)),
(N = N.transition(l)),
(A = A.transition(l)),
(w = w
.transition(l)
.attr("opacity", L)
.attr("transform", function (t) {
return isFinite((t = _(t)))
? s(t)
: this.getAttribute("transform");
})),
M.attr("opacity", L).attr("transform", function (t) {
var n = this.parentNode.__axis;
return s(n && isFinite((n = n(t))) ? n : _(t));
})),
w.remove(),
m.attr(
"d",
t === D || t == R
? a
? "M" + c * a + "," + g + "H0.5V" + y + "H" + c * a
: "M0.5," + g + "V" + y
: a
? "M" + g + "," + c * a + "V0.5H" + y + "V" + c * a
: "M" + g + ",0.5H" + y
),
x.attr("opacity", 1).attr("transform", function (t) {
return s(_(t));
}),
N.attr(f + "2", c * o),
A.attr(f, c * p).text(d),
b
.filter(Y)
.attr("fill", "none")
.attr("font-size", 10)
.attr("font-family", "sans-serif")
.attr("text-anchor", t === R ? "start" : t === D ? "end" : "middle"),
b.each(function () {
this.__axis = _;
});
}
return (
(l.scale = function (t) {
return arguments.length ? ((n = t), l) : n;
}),
(l.ticks = function () {
return (e = C.call(arguments)), l;
}),
(l.tickArguments = function (t) {
return arguments.length
? ((e = null == t ? [] : C.call(t)), l)
: e.slice();
}),
(l.tickValues = function (t) {
return arguments.length
? ((r = null == t ? null : C.call(t)), l)
: r && r.slice();
}),
(l.tickFormat = function (t) {
return arguments.length ? ((i = t), l) : i;
}),
(l.tickSize = function (t) {
return arguments.length ? ((o = a = +t), l) : o;
}),
(l.tickSizeInner = function (t) {
return arguments.length ? ((o = +t), l) : o;
}),
(l.tickSizeOuter = function (t) {
return arguments.length ? ((a = +t), l) : a;
}),
(l.tickPadding = function (t) {
return arguments.length ? ((u = +t), l) : u;
}),
l
);
}
var F = { value: function () {} };
function I() {
for (var t, n = 0, e = arguments.length, r = {}; n < e; ++n) {
if (!(t = arguments[n] + "") || t in r)
throw new Error("illegal type: " + t);
r[t] = [];
}
return new H(r);
}
function H(t) {
this._ = t;
}
function j(t, n) {
for (var e, r = 0, i = t.length; r < i; ++r)
if ((e = t[r]).name === n) return e.value;
}
function X(t, n, e) {
for (var r = 0, i = t.length; r < i; ++r)
if (t[r].name === n) {
(t[r] = F), (t = t.slice(0, r).concat(t.slice(r + 1)));
break;
}
return null != e && t.push({ name: n, value: e }), t;
}
H.prototype = I.prototype = {
constructor: H,
on: function (t, n) {
var e,
r,
i = this._,
o =
((r = i),
(t + "")
.trim()
.split(/^|\s+/)
.map(function (t) {
var n = "",
e = t.indexOf(".");
if (
(e >= 0 && ((n = t.slice(e + 1)), (t = t.slice(0, e))),
t && !r.hasOwnProperty(t))
)
throw new Error("unknown type: " + t);
return { type: t, name: n };
})),
a = -1,
u = o.length;
if (!(arguments.length < 2)) {
if (null != n && "function" != typeof n)
throw new Error("invalid callback: " + n);
for (; ++a < u; )
if ((e = (t = o[a]).type)) i[e] = X(i[e], t.name, n);
else if (null == n) for (e in i) i[e] = X(i[e], t.name, null);
return this;
}
for (; ++a < u; )
if ((e = (t = o[a]).type) && (e = j(i[e], t.name))) return e;
},
copy: function () {
var t = {},
n = this._;
for (var e in n) t[e] = n[e].slice();
return new H(t);
},
call: function (t, n) {
if ((e = arguments.length - 2) > 0)
for (var e, r, i = new Array(e), o = 0; o < e; ++o)
i[o] = arguments[o + 2];
if (!this._.hasOwnProperty(t)) throw new Error("unknown type: " + t);
for (o = 0, e = (r = this._[t]).length; o < e; ++o)
r[o].value.apply(n, i);
},
apply: function (t, n, e) {
if (!this._.hasOwnProperty(t)) throw new Error("unknown type: " + t);
for (var r = this._[t], i = 0, o = r.length; i < o; ++i)
r[i].value.apply(n, e);
},
};
var G = "http://www.w3.org/1999/xhtml",
V = {
svg: "http://www.w3.org/2000/svg",
xhtml: G,
xlink: "http://www.w3.org/1999/xlink",
xml: "http://www.w3.org/XML/1998/namespace",
xmlns: "http://www.w3.org/2000/xmlns/",
};
function $(t) {
var n = (t += ""),
e = n.indexOf(":");
return (
e >= 0 && "xmlns" !== (n = t.slice(0, e)) && (t = t.slice(e + 1)),
V.hasOwnProperty(n) ? { space: V[n], local: t } : t
);
}
function W(t) {
var n = $(t);
return (
n.local
? function (t) {
return function () {
return this.ownerDocument.createElementNS(t.space, t.local);
};
}
: function (t) {
return function () {
var n = this.ownerDocument,
e = this.namespaceURI;
return e === G && n.documentElement.namespaceURI === G
? n.createElement(t)
: n.createElementNS(e, t);
};
}
)(n);
}
function Z() {}
function Q(t) {
return null == t
? Z
: function () {
return this.querySelector(t);
};
}
function J() {
return [];
}
function K(t) {
return null == t
? J
: function () {
return this.querySelectorAll(t);
};
}
function tt(t) {
return function () {
return this.matches(t);
};
}
function nt(t) {
return new Array(t.length);
}
function et(t, n) {
(this.ownerDocument = t.ownerDocument),
(this.namespaceURI = t.namespaceURI),
(this._next = null),
(this._parent = t),
(this.__data__ = n);
}
et.prototype = {
constructor: et,
appendChild: function (t) {
return this._parent.insertBefore(t, this._next);
},
insertBefore: function (t, n) {
return this._parent.insertBefore(t, n);
},
querySelector: function (t) {
return this._parent.querySelector(t);
},
querySelectorAll: function (t) {
return this._parent.querySelectorAll(t);
},
};
var rt = "$";
function it(t, n, e, r, i, o) {
for (var a, u = 0, c = n.length, f = o.length; u < f; ++u)
(a = n[u]) ? ((a.__data__ = o[u]), (r[u] = a)) : (e[u] = new et(t, o[u]));
for (; u < c; ++u) (a = n[u]) && (i[u] = a);
}
function ot(t, n, e, r, i, o, a) {
var u,
c,
f,
s = {},
l = n.length,
h = o.length,
d = new Array(l);
for (u = 0; u < l; ++u)
(c = n[u]) &&
((d[u] = f = rt + a.call(c, c.__data__, u, n)),
f in s ? (i[u] = c) : (s[f] = c));
for (u = 0; u < h; ++u)
(c = s[(f = rt + a.call(t, o[u], u, o))])
? ((r[u] = c), (c.__data__ = o[u]), (s[f] = null))
: (e[u] = new et(t, o[u]));
for (u = 0; u < l; ++u) (c = n[u]) && s[d[u]] === c && (i[u] = c);
}
function at(t, n) {
return t < n ? -1 : t > n ? 1 : t >= n ? 0 : NaN;
}
function ut(t) {
return (
(t.ownerDocument && t.ownerDocument.defaultView) ||
(t.document && t) ||
t.defaultView
);
}
function ct(t, n) {
return (
t.style.getPropertyValue(n) ||
ut(t).getComputedStyle(t, null).getPropertyValue(n)
);
}
function ft(t) {
return t.trim().split(/^|\s+/);
}
function st(t) {
return t.classList || new lt(t);
}
function lt(t) {
(this._node = t), (this._names = ft(t.getAttribute("class") || ""));
}
function ht(t, n) {
for (var e = st(t), r = -1, i = n.length; ++r < i; ) e.add(n[r]);
}
function dt(t, n) {
for (var e = st(t), r = -1, i = n.length; ++r < i; ) e.remove(n[r]);
}
function pt() {
this.textContent = "";
}
function vt() {
this.innerHTML = "";
}
function gt() {
this.nextSibling && this.parentNode.appendChild(this);
}
function yt() {
this.previousSibling &&
this.parentNode.insertBefore(this, this.parentNode.firstChild);
}
function _t() {
return null;
}
function bt() {
var t = this.parentNode;
t && t.removeChild(this);
}
function mt() {
return this.parentNode.insertBefore(this.cloneNode(!1), this.nextSibling);
}
function xt() {
return this.parentNode.insertBefore(this.cloneNode(!0), this.nextSibling);
}
lt.prototype = {
add: function (t) {
this._names.indexOf(t) < 0 &&
(this._names.push(t),
this._node.setAttribute("class", this._names.join(" ")));
},
remove: function (t) {
var n = this._names.indexOf(t);
n >= 0 &&
(this._names.splice(n, 1),
this._node.setAttribute("class", this._names.join(" ")));
},
contains: function (t) {
return this._names.indexOf(t) >= 0;
},
};
var wt = {};
((t.event = null), "undefined" != typeof document) &&
("onmouseenter" in document.documentElement ||
(wt = { mouseenter: "mouseover", mouseleave: "mouseout" }));
function Mt(t, n, e) {
return (
(t = Nt(t, n, e)),
function (n) {
var e = n.relatedTarget;
(e && (e === this || 8 & e.compareDocumentPosition(this))) ||
t.call(this, n);
}
);
}
function Nt(n, e, r) {
return function (i) {
var o = t.event;
t.event = i;
try {
n.call(this, this.__data__, e, r);
} finally {
t.event = o;
}
};
}
function At(t) {
return function () {
var n = this.__on;
if (n) {
for (var e, r = 0, i = -1, o = n.length; r < o; ++r)
(e = n[r]),
(t.type && e.type !== t.type) || e.name !== t.name
? (n[++i] = e)
: this.removeEventListener(e.type, e.listener, e.capture);
++i ? (n.length = i) : delete this.__on;
}
};
}
function kt(t, n, e) {
var r = wt.hasOwnProperty(t.type) ? Mt : Nt;
return function (i, o, a) {
var u,
c = this.__on,
f = r(n, o, a);
if (c)
for (var s = 0, l = c.length; s < l; ++s)
if ((u = c[s]).type === t.type && u.name === t.name)
return (
this.removeEventListener(u.type, u.listener, u.capture),
this.addEventListener(u.type, (u.listener = f), (u.capture = e)),
void (u.value = n)
);
this.addEventListener(t.type, f, e),
(u = { type: t.type, name: t.name, value: n, listener: f, capture: e }),
c ? c.push(u) : (this.__on = [u]);
};
}
function St(n, e, r, i) {
var o = t.event;
(n.sourceEvent = t.event), (t.event = n);
try {
return e.apply(r, i);
} finally {
t.event = o;
}
}
function Tt(t, n, e) {
var r = ut(t),
i = r.CustomEvent;
"function" == typeof i
? (i = new i(n, e))
: ((i = r.document.createEvent("Event")),
e
? (i.initEvent(n, e.bubbles, e.cancelable), (i.detail = e.detail))
: i.initEvent(n, !1, !1)),
t.dispatchEvent(i);
}
var Et = [null];
function Ct(t, n) {
(this._groups = t), (this._parents = n);
}
function Pt() {
return new Ct([[document.documentElement]], Et);
}
function zt(t) {
return "string" == typeof t
? new Ct([[document.querySelector(t)]], [document.documentElement])
: new Ct([[t]], Et);
}
Ct.prototype = Pt.prototype = {
constructor: Ct,
select: function (t) {
"function" != typeof t && (t = Q(t));
for (
var n = this._groups, e = n.length, r = new Array(e), i = 0;
i < e;
++i
)
for (
var o, a, u = n[i], c = u.length, f = (r[i] = new Array(c)), s = 0;
s < c;
++s
)
(o = u[s]) &&
(a = t.call(o, o.__data__, s, u)) &&
("__data__" in o && (a.__data__ = o.__data__), (f[s] = a));
return new Ct(r, this._parents);
},
selectAll: function (t) {
"function" != typeof t && (t = K(t));
for (
var n = this._groups, e = n.length, r = [], i = [], o = 0;
o < e;
++o
)
for (var a, u = n[o], c = u.length, f = 0; f < c; ++f)
(a = u[f]) && (r.push(t.call(a, a.__data__, f, u)), i.push(a));
return new Ct(r, i);
},
filter: function (t) {
"function" != typeof t && (t = tt(t));
for (
var n = this._groups, e = n.length, r = new Array(e), i = 0;
i < e;
++i
)
for (var o, a = n[i], u = a.length, c = (r[i] = []), f = 0; f < u; ++f)
(o = a[f]) && t.call(o, o.__data__, f, a) && c.push(o);
return new Ct(r, this._parents);
},
data: function (t, n) {
if (!t)
return (
(p = new Array(this.size())),
(s = -1),
this.each(function (t) {
p[++s] = t;
}),
p
);
var e,
r = n ? ot : it,
i = this._parents,
o = this._groups;
"function" != typeof t &&
((e = t),
(t = function () {
return e;
}));
for (
var a = o.length,
u = new Array(a),
c = new Array(a),
f = new Array(a),
s = 0;
s < a;
++s
) {
var l = i[s],
h = o[s],
d = h.length,
p = t.call(l, l && l.__data__, s, i),
v = p.length,
g = (c[s] = new Array(v)),
y = (u[s] = new Array(v));
r(l, h, g, y, (f[s] = new Array(d)), p, n);
for (var _, b, m = 0, x = 0; m < v; ++m)
if ((_ = g[m])) {
for (m >= x && (x = m + 1); !(b = y[x]) && ++x < v; );
_._next = b || null;
}
}
return ((u = new Ct(u, i))._enter = c), (u._exit = f), u;
},
enter: function () {
return new Ct(this._enter || this._groups.map(nt), this._parents);
},
exit: function () {
return new Ct(this._exit || this._groups.map(nt), this._parents);
},
join: function (t, n, e) {
var r = this.enter(),
i = this,
o = this.exit();
return (
(r = "function" == typeof t ? t(r) : r.append(t + "")),
null != n && (i = n(i)),
null == e ? o.remove() : e(o),
r && i ? r.merge(i).order() : i
);
},
merge: function (t) {
for (
var n = this._groups,
e = t._groups,
r = n.length,
i = e.length,
o = Math.min(r, i),
a = new Array(r),
u = 0;
u < o;
++u
)
for (
var c,
f = n[u],
s = e[u],
l = f.length,
h = (a[u] = new Array(l)),
d = 0;
d < l;
++d
)
(c = f[d] || s[d]) && (h[d] = c);
for (; u < r; ++u) a[u] = n[u];
return new Ct(a, this._parents);
},
order: function () {
for (var t = this._groups, n = -1, e = t.length; ++n < e; )
for (var r, i = t[n], o = i.length - 1, a = i[o]; --o >= 0; )
(r = i[o]) &&
(a &&
4 ^ r.compareDocumentPosition(a) &&
a.parentNode.insertBefore(r, a),
(a = r));
return this;
},
sort: function (t) {
function n(n, e) {
return n && e ? t(n.__data__, e.__data__) : !n - !e;
}
t || (t = at);
for (
var e = this._groups, r = e.length, i = new Array(r), o = 0;
o < r;
++o
) {
for (
var a, u = e[o], c = u.length, f = (i[o] = new Array(c)), s = 0;
s < c;
++s
)
(a = u[s]) && (f[s] = a);
f.sort(n);
}
return new Ct(i, this._parents).order();
},
call: function () {
var t = arguments[0];
return (arguments[0] = this), t.apply(null, arguments), this;
},
nodes: function () {
var t = new Array(this.size()),
n = -1;
return (
this.each(function () {
t[++n] = this;
}),
t
);
},
node: function () {
for (var t = this._groups, n = 0, e = t.length; n < e; ++n)
for (var r = t[n], i = 0, o = r.length; i < o; ++i) {
var a = r[i];
if (a) return a;
}
return null;
},
size: function () {
var t = 0;
return (
this.each(function () {
++t;
}),
t
);
},
empty: function () {
return !this.node();
},
each: function (t) {
for (var n = this._groups, e = 0, r = n.length; e < r; ++e)
for (var i, o = n[e], a = 0, u = o.length; a < u; ++a)
(i = o[a]) && t.call(i, i.__data__, a, o);
return this;
},
attr: function (t, n) {
var e = $(t);
if (arguments.length < 2) {
var r = this.node();
return e.local ? r.getAttributeNS(e.space, e.local) : r.getAttribute(e);
}
return this.each(
(null == n
? e.local
? function (t) {
return function () {
this.removeAttributeNS(t.space, t.local);
};
}
: function (t) {
return function () {
this.removeAttribute(t);
};
}
: "function" == typeof n
? e.local
? function (t, n) {
return function () {
var e = n.apply(this, arguments);
null == e
? this.removeAttributeNS(t.space, t.local)
: this.setAttributeNS(t.space, t.local, e);
};
}
: function (t, n) {
return function () {
var e = n.apply(this, arguments);
null == e ? this.removeAttribute(t) : this.setAttribute(t, e);
};
}
: e.local
? function (t, n) {
return function () {
this.setAttributeNS(t.space, t.local, n);
};
}
: function (t, n) {
return function () {
this.setAttribute(t, n);
};
})(e, n)
);
},
style: function (t, n, e) {
return arguments.length > 1
? this.each(
(null == n
? function (t) {
return function () {
this.style.removeProperty(t);
};
}
: "function" == typeof n
? function (t, n, e) {
return function () {
var r = n.apply(this, arguments);
null == r
? this.style.removeProperty(t)
: this.style.setProperty(t, r, e);
};
}
: function (t, n, e) {
return function () {
this.style.setProperty(t, n, e);
};
})(t, n, null == e ? "" : e)
)
: ct(this.node(), t);
},
property: function (t, n) {
return arguments.length > 1
? this.each(
(null == n
? function (t) {
return function () {
delete this[t];
};
}
: "function" == typeof n
? function (t, n) {
return function () {
var e = n.apply(this, arguments);
null == e ? delete this[t] : (this[t] = e);
};
}
: function (t, n) {
return function () {
this[t] = n;
};
})(t, n)
)
: this.node()[t];
},
classed: function (t, n) {
var e = ft(t + "");
if (arguments.length < 2) {
for (var r = st(this.node()), i = -1, o = e.length; ++i < o; )
if (!r.contains(e[i])) return !1;
return !0;
}
return this.each(
("function" == typeof n
? function (t, n) {
return function () {
(n.apply(this, arguments) ? ht : dt)(this, t);
};
}
: n
? function (t) {
return function () {
ht(this, t);
};
}
: function (t) {
return function () {
dt(this, t);
};
})(e, n)
);
},
text: function (t) {
return arguments.length
? this.each(
null == t
? pt
: ("function" == typeof t
? function (t) {
return function () {
var n = t.apply(this, arguments);
this.textContent = null == n ? "" : n;
};
}
: function (t) {
return function () {
this.textContent = t;
};
})(t)
)
: this.node().textContent;
},
html: function (t) {
return arguments.length
? this.each(
null == t
? vt
: ("function" == typeof t
? function (t) {
return function () {
var n = t.apply(this, arguments);
this.innerHTML = null == n ? "" : n;
};
}
: function (t) {
return function () {
this.innerHTML = t;
};
})(t)
)
: this.node().innerHTML;
},
raise: function () {
return this.each(gt);
},
lower: function () {
return this.each(yt);
},
append: function (t) {
var n = "function" == typeof t ? t : W(t);
return this.select(function () {
return this.appendChild(n.apply(this, arguments));
});
},
insert: function (t, n) {
var e = "function" == typeof t ? t : W(t),
r = null == n ? _t : "function" == typeof n ? n : Q(n);
return this.select(function () {
return this.insertBefore(
e.apply(this, arguments),
r.apply(this, arguments) || null
);
});
},
remove: function () {
return this.each(bt);
},
clone: function (t) {
return this.select(t ? xt : mt);
},
datum: function (t) {
return arguments.length
? this.property("__data__", t)
: this.node().__data__;
},
on: function (t, n, e) {
var r,
i,
o = (function (t) {
return t
.trim()
.split(/^|\s+/)
.map(function (t) {
var n = "",
e = t.indexOf(".");
return (
e >= 0 && ((n = t.slice(e + 1)), (t = t.slice(0, e))),
{ type: t, name: n }
);
});
})(t + ""),
a = o.length;
if (!(arguments.length < 2)) {
for (u = n ? kt : At, null == e && (e = !1), r = 0; r < a; ++r)
this.each(u(o[r], n, e));
return this;
}
var u = this.node().__on;
if (u)
for (var c, f = 0, s = u.length; f < s; ++f)
for (r = 0, c = u[f]; r < a; ++r)
if ((i = o[r]).type === c.type && i.name === c.name) return c.value;
},
dispatch: function (t, n) {
return this.each(
("function" == typeof n
? function (t, n) {
return function () {
return Tt(this, t, n.apply(this, arguments));
};
}
: function (t, n) {
return function () {
return Tt(this, t, n);
};
})(t, n)
);
},
};
var Rt = 0;
function qt() {
return new Dt();
}
function Dt() {
this._ = "@" + (++Rt).toString(36);
}
function Lt() {
for (var n, e = t.event; (n = e.sourceEvent); ) e = n;
return e;
}
function Ut(t, n) {
var e = t.ownerSVGElement || t;
if (e.createSVGPoint) {
var r = e.createSVGPoint();
return (
(r.x = n.clientX),
(r.y = n.clientY),
[(r = r.matrixTransform(t.getScreenCTM().inverse())).x, r.y]
);
}
var i = t.getBoundingClientRect();
return [n.clientX - i.left - t.clientLeft, n.clientY - i.top - t.clientTop];
}
function Ot(t) {
var n = Lt();
return n.changedTouches && (n = n.changedTouches[0]), Ut(t, n);
}
function Yt(t, n, e) {
arguments.length < 3 && ((e = n), (n = Lt().changedTouches));
for (var r, i = 0, o = n ? n.length : 0; i < o; ++i)
if ((r = n[i]).identifier === e) return Ut(t, r);
return null;
}
function Bt() {
t.event.stopImmediatePropagation();
}
function Ft() {
t.event.preventDefault(), t.event.stopImmediatePropagation();
}
function It(t) {
var n = t.document.documentElement,
e = zt(t).on("dragstart.drag", Ft, !0);
"onselectstart" in n
? e.on("selectstart.drag", Ft, !0)
: ((n.__noselect = n.style.MozUserSelect),
(n.style.MozUserSelect = "none"));
}
function Ht(t, n) {
var e = t.document.documentElement,
r = zt(t).on("dragstart.drag", null);
n &&
(r.on("click.drag", Ft, !0),
setTimeout(function () {
r.on("click.drag", null);
}, 0)),
"onselectstart" in e
? r.on("selectstart.drag", null)
: ((e.style.MozUserSelect = e.__noselect), delete e.__noselect);
}
function jt(t) {
return function () {
return t;
};
}
function Xt(t, n, e, r, i, o, a, u, c, f) {
(this.target = t),
(this.type = n),
(this.subject = e),
(this.identifier = r),
(this.active = i),
(this.x = o),
(this.y = a),
(this.dx = u),
(this.dy = c),
(this._ = f);
}
function Gt() {
return !t.event.button;
}
function Vt() {
return this.parentNode;
}
function $t(n) {
return null == n ? { x: t.event.x, y: t.event.y } : n;
}
function Wt() {
return "ontouchstart" in this;
}
function Zt(t, n, e) {
(t.prototype = n.prototype = e), (e.constructor = t);
}
function Qt(t, n) {
var e = Object.create(t.prototype);
for (var r in n) e[r] = n[r];
return e;
}
function Jt() {}
(Dt.prototype = qt.prototype =
{
constructor: Dt,
get: function (t) {
for (var n = this._; !(n in t); ) if (!(t = t.parentNode)) return;
return t[n];
},
set: function (t, n) {
return (t[this._] = n);
},
remove: function (t) {
return this._ in t && delete t[this._];
},
toString: function () {
return this._;
},
}),
(Xt.prototype.on = function () {
var t = this._.on.apply(this._, arguments);
return t === this._ ? this : t;
});
var Kt = "\\s*([+-]?\\d+)\\s*",
tn = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
nn = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
en = /^#([0-9a-f]{3})$/,
rn = /^#([0-9a-f]{6})$/,
on = new RegExp("^rgb\\(" + [Kt, Kt, Kt] + "\\)$"),
an = new RegExp("^rgb\\(" + [nn, nn, nn] + "\\)$"),
un = new RegExp("^rgba\\(" + [Kt, Kt, Kt, tn] + "\\)$"),
cn = new RegExp("^rgba\\(" + [nn, nn, nn, tn] + "\\)$"),
fn = new RegExp("^hsl\\(" + [tn, nn, nn] + "\\)$"),
sn = new RegExp("^hsla\\(" + [tn, nn, nn, tn] + "\\)$"),
ln = {
aliceblue: 15792383,
antiquewhite: 16444375,
aqua: 65535,
aquamarine: 8388564,
azure: 15794175,
beige: 16119260,
bisque: 16770244,
black: 0,
blanchedalmond: 16772045,
blue: 255,
blueviolet: 9055202,
brown: 10824234,
burlywood: 14596231,
cadetblue: 6266528,
chartreuse: 8388352,
chocolate: 13789470,
coral: 16744272,
cornflowerblue: 6591981,
cornsilk: 16775388,
crimson: 14423100,
cyan: 65535,
darkblue: 139,
darkcyan: 35723,
darkgoldenrod: 12092939,
darkgray: 11119017,
darkgreen: 25600,
darkgrey: 11119017,
darkkhaki: 12433259,
darkmagenta: 9109643,
darkolivegreen: 5597999,
darkorange: 16747520,
darkorchid: 10040012,
darkred: 9109504,
darksalmon: 15308410,
darkseagreen: 9419919,
darkslateblue: 4734347,
darkslategray: 3100495,
darkslategrey: 3100495,
darkturquoise: 52945,
darkviolet: 9699539,
deeppink: 16716947,
deepskyblue: 49151,
dimgray: 6908265,
dimgrey: 6908265,
dodgerblue: 2003199,
firebrick: 11674146,
floralwhite: 16775920,
forestgreen: 2263842,
fuchsia: 16711935,
gainsboro: 14474460,
ghostwhite: 16316671,
gold: 16766720,
goldenrod: 14329120,
gray: 8421504,
green: 32768,
greenyellow: 11403055,
grey: 8421504,
honeydew: 15794160,
hotpink: 16738740,
indianred: 13458524,
indigo: 4915330,
ivory: 16777200,
khaki: 15787660,
lavender: 15132410,
lavenderblush: 16773365,
lawngreen: 8190976,
lemonchiffon: 16775885,
lightblue: 11393254,
lightcoral: 15761536,
lightcyan: 14745599,
lightgoldenrodyellow: 16448210,
lightgray: 13882323,
lightgreen: 9498256,
lightgrey: 13882323,
lightpink: 16758465,
lightsalmon: 16752762,
lightseagreen: 2142890,
lightskyblue: 8900346,
lightslategray: 7833753,
lightslategrey: 7833753,
lightsteelblue: 11584734,
lightyellow: 16777184,
lime: 65280,
limegreen: 3329330,
linen: 16445670,
magenta: 16711935,
maroon: 8388608,
mediumaquamarine: 6737322,
mediumblue: 205,
mediumorchid: 12211667,
mediumpurple: 9662683,
mediumseagreen: 3978097,
mediumslateblue: 8087790,
mediumspringgreen: 64154,
mediumturquoise: 4772300,
mediumvioletred: 13047173,
midnightblue: 1644912,
mintcream: 16121850,
mistyrose: 16770273,
moccasin: 16770229,
navajowhite: 16768685,
navy: 128,
oldlace: 16643558,
olive: 8421376,
olivedrab: 7048739,
orange: 16753920,
orangered: 16729344,
orchid: 14315734,
palegoldenrod: 15657130,
palegreen: 10025880,
paleturquoise: 11529966,
palevioletred: 14381203,
papayawhip: 16773077,
peachpuff: 16767673,
peru: 13468991,
pink: 16761035,
plum: 14524637,
powderblue: 11591910,
purple: 8388736,
rebeccapurple: 6697881,
red: 16711680,
rosybrown: 12357519,
royalblue: 4286945,
saddlebrown: 9127187,
salmon: 16416882,
sandybrown: 16032864,
seagreen: 3050327,
seashell: 16774638,
sienna: 10506797,
silver: 12632256,
skyblue: 8900331,
slateblue: 6970061,
slategray: 7372944,
slategrey: 7372944,
snow: 16775930,
springgreen: 65407,
steelblue: 4620980,
tan: 13808780,
teal: 32896,
thistle: 14204888,
tomato: 16737095,
turquoise: 4251856,
violet: 15631086,
wheat: 16113331,
white: 16777215,
whitesmoke: 16119285,
yellow: 16776960,
yellowgreen: 10145074,
};
function hn(t) {
var n;
return (
(t = (t + "").trim().toLowerCase()),
(n = en.exec(t))
? new yn(
(((n = parseInt(n[1], 16)) >> 8) & 15) | ((n >> 4) & 240),
((n >> 4) & 15) | (240 & n),
((15 & n) << 4) | (15 & n),
1
)
: (n = rn.exec(t))
? dn(parseInt(n[1], 16))
: (n = on.exec(t))
? new yn(n[1], n[2], n[3], 1)
: (n = an.exec(t))
? new yn((255 * n[1]) / 100, (255 * n[2]) / 100, (255 * n[3]) / 100, 1)
: (n = un.exec(t))
? pn(n[1], n[2], n[3], n[4])
: (n = cn.exec(t))
? pn((255 * n[1]) / 100, (255 * n[2]) / 100, (255 * n[3]) / 100, n[4])
: (n = fn.exec(t))
? bn(n[1], n[2] / 100, n[3] / 100, 1)
: (n = sn.exec(t))
? bn(n[1], n[2] / 100, n[3] / 100, n[4])
: ln.hasOwnProperty(t)
? dn(ln[t])
: "transparent" === t
? new yn(NaN, NaN, NaN, 0)
: null
);
}
function dn(t) {
return new yn((t >> 16) & 255, (t >> 8) & 255, 255 & t, 1);
}
function pn(t, n, e, r) {
return r <= 0 && (t = n = e = NaN), new yn(t, n, e, r);
}
function vn(t) {
return (
t instanceof Jt || (t = hn(t)),
t ? new yn((t = t.rgb()).r, t.g, t.b, t.opacity) : new yn()
);
}
function gn(t, n, e, r) {
return 1 === arguments.length ? vn(t) : new yn(t, n, e, null == r ? 1 : r);
}
function yn(t, n, e, r) {
(this.r = +t), (this.g = +n), (this.b = +e), (this.opacity = +r);
}
function _n(t) {
return (
((t = Math.max(0, Math.min(255, Math.round(t) || 0))) < 16 ? "0" : "") +
t.toString(16)
);
}
function bn(t, n, e, r) {
return (
r <= 0
? (t = n = e = NaN)
: e <= 0 || e >= 1
? (t = n = NaN)
: n <= 0 && (t = NaN),
new xn(t, n, e, r)
);
}
function mn(t, n, e, r) {
return 1 === arguments.length
? (function (t) {
if (t instanceof xn) return new xn(t.h, t.s, t.l, t.opacity);
if ((t instanceof Jt || (t = hn(t)), !t)) return new xn();
if (t instanceof xn) return t;
var n = (t = t.rgb()).r / 255,
e = t.g / 255,
r = t.b / 255,
i = Math.min(n, e, r),
o = Math.max(n, e, r),
a = NaN,
u = o - i,
c = (o + i) / 2;
return (
u
? ((a =
n === o
? (e - r) / u + 6 * (e < r)
: e === o
? (r - n) / u + 2
: (n - e) / u + 4),
(u /= c < 0.5 ? o + i : 2 - o - i),
(a *= 60))
: (u = c > 0 && c < 1 ? 0 : a),
new xn(a, u, c, t.opacity)
);
})(t)
: new xn(t, n, e, null == r ? 1 : r);
}
function xn(t, n, e, r) {
(this.h = +t), (this.s = +n), (this.l = +e), (this.opacity = +r);
}
function wn(t, n, e) {
return (
255 *
(t < 60
? n + ((e - n) * t) / 60
: t < 180
? e
: t < 240
? n + ((e - n) * (240 - t)) / 60
: n)
);
}
Zt(Jt, hn, {
displayable: function () {
return this.rgb().displayable();
},
hex: function () {
return this.rgb().hex();
},
toString: function () {
return this.rgb() + "";
},
}),
Zt(
yn,
gn,
Qt(Jt, {
brighter: function (t) {
return (
(t = null == t ? 1 / 0.7 : Math.pow(1 / 0.7, t)),
new yn(this.r * t, this.g * t, this.b * t, this.opacity)
);
},
darker: function (t) {
return (
(t = null == t ? 0.7 : Math.pow(0.7, t)),
new yn(this.r * t, this.g * t, this.b * t, this.opacity)
);
},
rgb: function () {
return this;
},
displayable: function () {
return (
0 <= this.r &&
this.r <= 255 &&
0 <= this.g &&
this.g <= 255 &&
0 <= this.b &&
this.b <= 255 &&
0 <= this.opacity &&
this.opacity <= 1
);
},
hex: function () {
return "#" + _n(this.r) + _n(this.g) + _n(this.b);
},
toString: function () {
var t = this.opacity;
return (
(1 === (t = isNaN(t) ? 1 : Math.max(0, Math.min(1, t)))
? "rgb("
: "rgba(") +
Math.max(0, Math.min(255, Math.round(this.r) || 0)) +
", " +
Math.max(0, Math.min(255, Math.round(this.g) || 0)) +
", " +
Math.max(0, Math.min(255, Math.round(this.b) || 0)) +
(1 === t ? ")" : ", " + t + ")")
);
},
})
),
Zt(
xn,
mn,
Qt(Jt, {
brighter: function (t) {
return (
(t = null == t ? 1 / 0.7 : Math.pow(1 / 0.7, t)),
new xn(this.h, this.s, this.l * t, this.opacity)
);
},
darker: function (t) {
return (
(t = null == t ? 0.7 : Math.pow(0.7, t)),
new xn(this.h, this.s, this.l * t, this.opacity)
);
},
rgb: function () {
var t = (this.h % 360) + 360 * (this.h < 0),
n = isNaN(t) || isNaN(this.s) ? 0 : this.s,
e = this.l,
r = e + (e < 0.5 ? e : 1 - e) * n,
i = 2 * e - r;
return new yn(
wn(t >= 240 ? t - 240 : t + 120, i, r),
wn(t, i, r),
wn(t < 120 ? t + 240 : t - 120, i, r),
this.opacity
);
},
displayable: function () {
return (
((0 <= this.s && this.s <= 1) || isNaN(this.s)) &&
0 <= this.l &&
this.l <= 1 &&
0 <= this.opacity &&
this.opacity <= 1
);
},
})
);
var Mn = Math.PI / 180,
Nn = 180 / Math.PI,
An = 0.96422,
kn = 1,
Sn = 0.82521,
Tn = 4 / 29,
En = 6 / 29,
Cn = 3 * En * En,
Pn = En * En * En;
function zn(t) {
if (t instanceof qn) return new qn(t.l, t.a, t.b, t.opacity);
if (t instanceof Fn) {
if (isNaN(t.h)) return new qn(t.l, 0, 0, t.opacity);
var n = t.h * Mn;
return new qn(t.l, Math.cos(n) * t.c, Math.sin(n) * t.c, t.opacity);
}
t instanceof yn || (t = vn(t));
var e,
r,
i = On(t.r),
o = On(t.g),
a = On(t.b),
u = Dn((0.2225045 * i + 0.7168786 * o + 0.0606169 * a) / kn);
return (
i === o && o === a
? (e = r = u)
: ((e = Dn((0.4360747 * i + 0.3850649 * o + 0.1430804 * a) / An)),
(r = Dn((0.0139322 * i + 0.0971045 * o + 0.7141733 * a) / Sn))),
new qn(116 * u - 16, 500 * (e - u), 200 * (u - r), t.opacity)
);
}
function Rn(t, n, e, r) {
return 1 === arguments.length ? zn(t) : new qn(t, n, e, null == r ? 1 : r);
}
function qn(t, n, e, r) {
(this.l = +t), (this.a = +n), (this.b = +e), (this.opacity = +r);
}
function Dn(t) {
return t > Pn ? Math.pow(t, 1 / 3) : t / Cn + Tn;
}
function Ln(t) {
return t > En ? t * t * t : Cn * (t - Tn);
}
function Un(t) {
return (
255 * (t <= 0.0031308 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - 0.055)
);
}
function On(t) {
return (t /= 255) <= 0.04045
? t / 12.92
: Math.pow((t + 0.055) / 1.055, 2.4);
}
function Yn(t) {
if (t instanceof Fn) return new Fn(t.h, t.c, t.l, t.opacity);
if ((t instanceof qn || (t = zn(t)), 0 === t.a && 0 === t.b))
return new Fn(NaN, 0, t.l, t.opacity);
var n = Math.atan2(t.b, t.a) * Nn;
return new Fn(
n < 0 ? n + 360 : n,
Math.sqrt(t.a * t.a + t.b * t.b),
t.l,
t.opacity
);
}
function Bn(t, n, e, r) {
return 1 === arguments.length ? Yn(t) : new Fn(t, n, e, null == r ? 1 : r);
}
function Fn(t, n, e, r) {
(this.h = +t), (this.c = +n), (this.l = +e), (this.opacity = +r);
}
Zt(
qn,
Rn,
Qt(Jt, {
brighter: function (t) {
return new qn(
this.l + 18 * (null == t ? 1 : t),
this.a,
this.b,
this.opacity
);
},
darker: function (t) {
return new qn(
this.l - 18 * (null == t ? 1 : t),
this.a,
this.b,
this.opacity
);
},
rgb: function () {
var t = (this.l + 16) / 116,
n = isNaN(this.a) ? t : t + this.a / 500,
e = isNaN(this.b) ? t : t - this.b / 200;
return new yn(
Un(
3.1338561 * (n = An * Ln(n)) -
1.6168667 * (t = kn * Ln(t)) -
0.4906146 * (e = Sn * Ln(e))
),
Un(-0.9787684 * n + 1.9161415 * t + 0.033454 * e),
Un(0.0719453 * n - 0.2289914 * t + 1.4052427 * e),
this.opacity
);
},
})
),
Zt(
Fn,
Bn,
Qt(Jt, {
brighter: function (t) {
return new Fn(
this.h,
this.c,
this.l + 18 * (null == t ? 1 : t),
this.opacity
);
},
darker: function (t) {
return new Fn(
this.h,
this.c,
this.l - 18 * (null == t ? 1 : t),
this.opacity
);
},
rgb: function () {
return zn(this).rgb();
},
})
);
var In = -0.14861,
Hn = 1.78277,
jn = -0.29227,
Xn = -0.90649,
Gn = 1.97294,
Vn = Gn * Xn,
$n = Gn * Hn,
Wn = Hn * jn - Xn * In;
function Zn(t, n, e, r) {
return 1 === arguments.length
? (function (t) {
if (t instanceof Qn) return new Qn(t.h, t.s, t.l, t.opacity);
t instanceof yn || (t = vn(t));
var n = t.r / 255,
e = t.g / 255,
r = t.b / 255,
i = (Wn * r + Vn * n - $n * e) / (Wn + Vn - $n),
o = r - i,
a = (Gn * (e - i) - jn * o) / Xn,
u = Math.sqrt(a * a + o * o) / (Gn * i * (1 - i)),
c = u ? Math.atan2(a, o) * Nn - 120 : NaN;
return new Qn(c < 0 ? c + 360 : c, u, i, t.opacity);
})(t)
: new Qn(t, n, e, null == r ? 1 : r);
}
function Qn(t, n, e, r) {
(this.h = +t), (this.s = +n), (this.l = +e), (this.opacity = +r);
}
function Jn(t, n, e, r, i) {
var o = t * t,
a = o * t;
return (
((1 - 3 * t + 3 * o - a) * n +
(4 - 6 * o + 3 * a) * e +
(1 + 3 * t + 3 * o - 3 * a) * r +
a * i) /
6
);
}
function Kn(t) {
var n = t.length - 1;
return function (e) {
var r = e <= 0 ? (e = 0) : e >= 1 ? ((e = 1), n - 1) : Math.floor(e * n),
i = t[r],
o = t[r + 1],
a = r > 0 ? t[r - 1] : 2 * i - o,
u = r < n - 1 ? t[r + 2] : 2 * o - i;
return Jn((e - r / n) * n, a, i, o, u);
};
}
function te(t) {
var n = t.length;
return function (e) {
var r = Math.floor(((e %= 1) < 0 ? ++e : e) * n),
i = t[(r + n - 1) % n],
o = t[r % n],
a = t[(r + 1) % n],
u = t[(r + 2) % n];
return Jn((e - r / n) * n, i, o, a, u);
};
}
function ne(t) {
return function () {
return t;
};
}
function ee(t, n) {
return function (e) {
return t + e * n;
};
}
function re(t, n) {
var e = n - t;
return e
? ee(t, e > 180 || e < -180 ? e - 360 * Math.round(e / 360) : e)
: ne(isNaN(t) ? n : t);
}
function ie(t) {
return 1 == (t = +t)
? oe
: function (n, e) {
return e - n
? (function (t, n, e) {
return (
(t = Math.pow(t, e)),
(n = Math.pow(n, e) - t),
(e = 1 / e),
function (r) {
return Math.pow(t + r * n, e);
}
);
})(n, e, t)
: ne(isNaN(n) ? e : n);
};
}
function oe(t, n) {
var e = n - t;
return e ? ee(t, e) : ne(isNaN(t) ? n : t);
}
Zt(
Qn,
Zn,
Qt(Jt, {
brighter: function (t) {
return (
(t = null == t ? 1 / 0.7 : Math.pow(1 / 0.7, t)),
new Qn(this.h, this.s, this.l * t, this.opacity)
);
},
darker: function (t) {
return (
(t = null == t ? 0.7 : Math.pow(0.7, t)),
new Qn(this.h, this.s, this.l * t, this.opacity)
);
},
rgb: function () {
var t = isNaN(this.h) ? 0 : (this.h + 120) * Mn,
n = +this.l,
e = isNaN(this.s) ? 0 : this.s * n * (1 - n),
r = Math.cos(t),
i = Math.sin(t);
return new yn(
255 * (n + e * (In * r + Hn * i)),
255 * (n + e * (jn * r + Xn * i)),
255 * (n + e * (Gn * r)),
this.opacity
);
},
})
);
var ae = (function t(n) {
var e = ie(n);
function r(t, n) {
var r = e((t = gn(t)).r, (n = gn(n)).r),
i = e(t.g, n.g),
o = e(t.b, n.b),
a = oe(t.opacity, n.opacity);
return function (n) {
return (
(t.r = r(n)), (t.g = i(n)), (t.b = o(n)), (t.opacity = a(n)), t + ""
);
};
}
return (r.gamma = t), r;
})(1);
function ue(t) {
return function (n) {
var e,
r,
i = n.length,
o = new Array(i),
a = new Array(i),
u = new Array(i);
for (e = 0; e < i; ++e)
(r = gn(n[e])), (o[e] = r.r || 0), (a[e] = r.g || 0), (u[e] = r.b || 0);
return (
(o = t(o)),
(a = t(a)),
(u = t(u)),
(r.opacity = 1),
function (t) {
return (r.r = o(t)), (r.g = a(t)), (r.b = u(t)), r + "";
}
);
};
}
var ce = ue(Kn),
fe = ue(te);
function se(t, n) {
var e,
r = n ? n.length : 0,
i = t ? Math.min(r, t.length) : 0,
o = new Array(i),
a = new Array(r);
for (e = 0; e < i; ++e) o[e] = ye(t[e], n[e]);
for (; e < r; ++e) a[e] = n[e];
return function (t) {
for (e = 0; e < i; ++e) a[e] = o[e](t);
return a;
};
}
function le(t, n) {
var e = new Date();
return (
(n -= t = +t),
function (r) {
return e.setTime(t + n * r), e;
}
);
}
function he(t, n) {
return (
(n -= t = +t),
function (e) {
return t + n * e;
}
);
}
function de(t, n) {
var e,
r = {},
i = {};
for (e in ((null !== t && "object" == typeof t) || (t = {}),
(null !== n && "object" == typeof n) || (n = {}),
n))
e in t ? (r[e] = ye(t[e], n[e])) : (i[e] = n[e]);
return function (t) {
for (e in r) i[e] = r[e](t);
return i;
};
}
var pe = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
ve = new RegExp(pe.source, "g");
function ge(t, n) {
var e,
r,
i,
o = (pe.lastIndex = ve.lastIndex = 0),
a = -1,
u = [],
c = [];
for (t += "", n += ""; (e = pe.exec(t)) && (r = ve.exec(n)); )
(i = r.index) > o &&
((i = n.slice(o, i)), u[a] ? (u[a] += i) : (u[++a] = i)),
(e = e[0]) === (r = r[0])
? u[a]
? (u[a] += r)
: (u[++a] = r)
: ((u[++a] = null), c.push({ i: a, x: he(e, r) })),
(o = ve.lastIndex);
return (
o < n.length && ((i = n.slice(o)), u[a] ? (u[a] += i) : (u[++a] = i)),
u.length < 2
? c[0]
? (function (t) {
return function (n) {
return t(n) + "";
};
})(c[0].x)
: (function (t) {
return function () {
return t;
};
})(n)
: ((n = c.length),
function (t) {
for (var e, r = 0; r < n; ++r) u[(e = c[r]).i] = e.x(t);
return u.join("");
})
);
}
function ye(t, n) {
var e,
r = typeof n;
return null == n || "boolean" === r
? ne(n)
: ("number" === r
? he
: "string" === r
? (e = hn(n))
? ((n = e), ae)
: ge
: n instanceof hn
? ae
: n instanceof Date
? le
: Array.isArray(n)
? se
: ("function" != typeof n.valueOf &&
"function" != typeof n.toString) ||
isNaN(n)
? de
: he)(t, n);
}
function _e(t, n) {
return (
(n -= t = +t),
function (e) {
return Math.round(t + n * e);
}
);
}
var be,
me,
xe,
we,
Me = 180 / Math.PI,
Ne = {
translateX: 0,
translateY: 0,
rotate: 0,
skewX: 0,
scaleX: 1,
scaleY: 1,
};
function Ae(t, n, e, r, i, o) {
var a, u, c;
return (
(a = Math.sqrt(t * t + n * n)) && ((t /= a), (n /= a)),
(c = t * e + n * r) && ((e -= t * c), (r -= n * c)),
(u = Math.sqrt(e * e + r * r)) && ((e /= u), (r /= u), (c /= u)),
t * r < n * e && ((t = -t), (n = -n), (c = -c), (a = -a)),
{
translateX: i,
translateY: o,
rotate: Math.atan2(n, t) * Me,
skewX: Math.atan(c) * Me,
scaleX: a,
scaleY: u,
}
);
}
function ke(t, n, e, r) {
function i(t) {
return t.length ? t.pop() + " " : "";
}
return function (o, a) {
var u = [],
c = [];
return (
(o = t(o)),
(a = t(a)),
(function (t, r, i, o, a, u) {
if (t !== i || r !== o) {
var c = a.push("translate(", null, n, null, e);
u.push({ i: c - 4, x: he(t, i) }, { i: c - 2, x: he(r, o) });
} else (i || o) && a.push("translate(" + i + n + o + e);
})(o.translateX, o.translateY, a.translateX, a.translateY, u, c),
(function (t, n, e, o) {
t !== n
? (t - n > 180 ? (n += 360) : n - t > 180 && (t += 360),
o.push({ i: e.push(i(e) + "rotate(", null, r) - 2, x: he(t, n) }))
: n && e.push(i(e) + "rotate(" + n + r);
})(o.rotate, a.rotate, u, c),
(function (t, n, e, o) {
t !== n
? o.push({ i: e.push(i(e) + "skewX(", null, r) - 2, x: he(t, n) })
: n && e.push(i(e) + "skewX(" + n + r);
})(o.skewX, a.skewX, u, c),
(function (t, n, e, r, o, a) {
if (t !== e || n !== r) {
var u = o.push(i(o) + "scale(", null, ",", null, ")");
a.push({ i: u - 4, x: he(t, e) }, { i: u - 2, x: he(n, r) });
} else
(1 === e && 1 === r) || o.push(i(o) + "scale(" + e + "," + r + ")");
})(o.scaleX, o.scaleY, a.scaleX, a.scaleY, u, c),
(o = a = null),
function (t) {
for (var n, e = -1, r = c.length; ++e < r; ) u[(n = c[e]).i] = n.x(t);
return u.join("");
}
);
};
}
var Se = ke(
function (t) {
return "none" === t
? Ne
: (be ||
((be = document.createElement("DIV")),
(me = document.documentElement),
(xe = document.defaultView)),
(be.style.transform = t),
(t = xe
.getComputedStyle(me.appendChild(be), null)
.getPropertyValue("transform")),
me.removeChild(be),
Ae(
+(t = t.slice(7, -1).split(","))[0],
+t[1],
+t[2],
+t[3],
+t[4],
+t[5]
));
},
"px, ",
"px)",
"deg)"
),
Te = ke(
function (t) {
return null == t
? Ne
: (we ||
(we = document.createElementNS(
"http://www.w3.org/2000/svg",
"g"
)),
we.setAttribute("transform", t),
(t = we.transform.baseVal.consolidate())
? Ae((t = t.matrix).a, t.b, t.c, t.d, t.e, t.f)
: Ne);
},
", ",
")",
")"
),
Ee = Math.SQRT2,
Ce = 2,
Pe = 4,
ze = 1e-12;
function Re(t) {
return ((t = Math.exp(t)) + 1 / t) / 2;
}
function qe(t, n) {
var e,
r,
i = t[0],
o = t[1],
a = t[2],
u = n[0],
c = n[1],
f = n[2],
s = u - i,
l = c - o,
h = s * s + l * l;
if (h < ze)
(r = Math.log(f / a) / Ee),
(e = function (t) {
return [i + t * s, o + t * l, a * Math.exp(Ee * t * r)];
});
else {
var d = Math.sqrt(h),
p = (f * f - a * a + Pe * h) / (2 * a * Ce * d),
v = (f * f - a * a - Pe * h) / (2 * f * Ce * d),
g = Math.log(Math.sqrt(p * p + 1) - p),
y = Math.log(Math.sqrt(v * v + 1) - v);
(r = (y - g) / Ee),
(e = function (t) {
var n,
e = t * r,
u = Re(g),
c =
(a / (Ce * d)) *
(u * ((n = Ee * e + g), ((n = Math.exp(2 * n)) - 1) / (n + 1)) -
(function (t) {
return ((t = Math.exp(t)) - 1 / t) / 2;
})(g));
return [i + c * s, o + c * l, (a * u) / Re(Ee * e + g)];
});
}
return (e.duration = 1e3 * r), e;
}
function De(t) {
return function (n, e) {
var r = t((n = mn(n)).h, (e = mn(e)).h),
i = oe(n.s, e.s),
o = oe(n.l, e.l),
a = oe(n.opacity, e.opacity);
return function (t) {
return (
(n.h = r(t)), (n.s = i(t)), (n.l = o(t)), (n.opacity = a(t)), n + ""
);
};
};
}
var Le = De(re),
Ue = De(oe);
function Oe(t) {
return function (n, e) {
var r = t((n = Bn(n)).h, (e = Bn(e)).h),
i = oe(n.c, e.c),
o = oe(n.l, e.l),
a = oe(n.opacity, e.opacity);
return function (t) {
return (
(n.h = r(t)), (n.c = i(t)), (n.l = o(t)), (n.opacity = a(t)), n + ""
);
};
};
}
var Ye = Oe(re),
Be = Oe(oe);
function Fe(t) {
return (function n(e) {
function r(n, r) {
var i = t((n = Zn(n)).h, (r = Zn(r)).h),
o = oe(n.s, r.s),
a = oe(n.l, r.l),
u = oe(n.opacity, r.opacity);
return function (t) {
return (
(n.h = i(t)),
(n.s = o(t)),
(n.l = a(Math.pow(t, e))),
(n.opacity = u(t)),
n + ""
);
};
}
return (e = +e), (r.gamma = n), r;
})(1);
}
var Ie = Fe(re),
He = Fe(oe);
var je,
Xe,
Ge = 0,
Ve = 0,
$e = 0,
We = 1e3,
Ze = 0,
Qe = 0,
Je = 0,
Ke = "object" == typeof performance && performance.now ? performance : Date,
tr =
"object" == typeof window && window.requestAnimationFrame
? window.requestAnimationFrame.bind(window)
: function (t) {
setTimeout(t, 17);
};
function nr() {
return Qe || (tr(er), (Qe = Ke.now() + Je));
}
function er() {
Qe = 0;
}
function rr() {
this._call = this._time = this._next = null;
}
function ir(t, n, e) {
var r = new rr();
return r.restart(t, n, e), r;
}
function or() {
nr(), ++Ge;
for (var t, n = je; n; )
(t = Qe - n._time) >= 0 && n._call.call(null, t), (n = n._next);
--Ge;
}
function ar() {
(Qe = (Ze = Ke.now()) + Je), (Ge = Ve = 0);
try {
or();
} finally {
(Ge = 0),
(function () {
var t,
n,
e = je,
r = 1 / 0;
for (; e; )
e._call
? (r > e._time && (r = e._time), (t = e), (e = e._next))
: ((n = e._next),
(e._next = null),
(e = t ? (t._next = n) : (je = n)));
(Xe = t), cr(r);
})(),
(Qe = 0);
}
}
function ur() {
var t = Ke.now(),
n = t - Ze;
n > We && ((Je -= n), (Ze = t));
}
function cr(t) {
Ge ||
(Ve && (Ve = clearTimeout(Ve)),
t - Qe > 24
? (t < 1 / 0 && (Ve = setTimeout(ar, t - Ke.now() - Je)),
$e && ($e = clearInterval($e)))
: ($e || ((Ze = Ke.now()), ($e = setInterval(ur, We))),
(Ge = 1),
tr(ar)));
}
function fr(t, n, e) {
var r = new rr();
return (
(n = null == n ? 0 : +n),
r.restart(
function (e) {
r.stop(), t(e + n);
},
n,
e
),
r
);
}
rr.prototype = ir.prototype = {
constructor: rr,
restart: function (t, n, e) {
if ("function" != typeof t)
throw new TypeError("callback is not a function");
(e = (null == e ? nr() : +e) + (null == n ? 0 : +n)),
this._next ||
Xe === this ||
(Xe ? (Xe._next = this) : (je = this), (Xe = this)),
(this._call = t),
(this._time = e),
cr();
},
stop: function () {
this._call && ((this._call = null), (this._time = 1 / 0), cr());
},
};
var sr = I("start", "end", "cancel", "interrupt"),
lr = [],
hr = 0,
dr = 1,
pr = 2,
vr = 3,
gr = 4,
yr = 5,
_r = 6;
function br(t, n, e, r, i, o) {
var a = t.__transition;
if (a) {
if (e in a) return;
} else t.__transition = {};
!(function (t, n, e) {
var r,
i = t.__transition;
function o(c) {
var f, s, l, h;
if (e.state !== dr) return u();
for (f in i)
if ((h = i[f]).name === e.name) {
if (h.state === vr) return fr(o);
h.state === gr
? ((h.state = _r),
h.timer.stop(),
h.on.call("interrupt", t, t.__data__, h.index, h.group),
delete i[f])
: +f < n &&
((h.state = _r),
h.timer.stop(),
h.on.call("cancel", t, t.__data__, h.index, h.group),
delete i[f]);
}
if (
(fr(function () {
e.state === vr &&
((e.state = gr), e.timer.restart(a, e.delay, e.time), a(c));
}),
(e.state = pr),
e.on.call("start", t, t.__data__, e.index, e.group),
e.state === pr)
) {
for (
e.state = vr, r = new Array((l = e.tween.length)), f = 0, s = -1;
f < l;
++f
)
(h = e.tween[f].value.call(t, t.__data__, e.index, e.group)) &&
(r[++s] = h);
r.length = s + 1;
}
}
function a(n) {
for (
var i =
n < e.duration
? e.ease.call(null, n / e.duration)
: (e.timer.restart(u), (e.state = yr), 1),
o = -1,
a = r.length;
++o < a;
)
r[o].call(t, i);
e.state === yr &&
(e.on.call("end", t, t.__data__, e.index, e.group), u());
}
function u() {
for (var r in ((e.state = _r), e.timer.stop(), delete i[n], i)) return;
delete t.__transition;
}
(i[n] = e),
(e.timer = ir(
function (t) {
(e.state = dr),
e.timer.restart(o, e.delay, e.time),
e.delay <= t && o(t - e.delay);
},
0,
e.time
));
})(t, e, {
name: n,
index: r,
group: i,
on: sr,
tween: lr,
time: o.time,
delay: o.delay,
duration: o.duration,
ease: o.ease,
timer: null,
state: hr,
});
}
function mr(t, n) {
var e = wr(t, n);
if (e.state > hr) throw new Error("too late; already scheduled");
return e;
}
function xr(t, n) {
var e = wr(t, n);
if (e.state > vr) throw new Error("too late; already running");
return e;
}
function wr(t, n) {
var e = t.__transition;
if (!e || !(e = e[n])) throw new Error("transition not found");
return e;
}
function Mr(t, n) {
var e,
r,
i,
o = t.__transition,
a = !0;
if (o) {
for (i in ((n = null == n ? null : n + ""), o))
(e = o[i]).name === n
? ((r = e.state > pr && e.state < yr),
(e.state = _r),
e.timer.stop(),
e.on.call(
r ? "interrupt" : "cancel",
t,
t.__data__,
e.index,
e.group
),
delete o[i])
: (a = !1);
a && delete t.__transition;
}
}
function Nr(t, n, e) {
var r = t._id;
return (
t.each(function () {
var t = xr(this, r);
(t.value || (t.value = {}))[n] = e.apply(this, arguments);
}),
function (t) {
return wr(t, r).value[n];
}
);
}
function Ar(t, n) {
var e;
return (
"number" == typeof n
? he
: n instanceof hn
? ae
: (e = hn(n))
? ((n = e), ae)
: ge
)(t, n);
}
var kr = Pt.prototype.constructor;
function Sr(t) {
return function () {
this.style.removeProperty(t);
};
}
var Tr = 0;
function Er(t, n, e, r) {
(this._groups = t), (this._parents = n), (this._name = e), (this._id = r);
}
function Cr(t) {
return Pt().transition(t);
}
function Pr() {
return ++Tr;
}
var zr = Pt.prototype;
function Rr(t) {
return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
}
function qr(t) {
return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
}
Er.prototype = Cr.prototype = {
constructor: Er,
select: function (t) {
var n = this._name,
e = this._id;
"function" != typeof t && (t = Q(t));
for (
var r = this._groups, i = r.length, o = new Array(i), a = 0;
a < i;
++a
)
for (
var u, c, f = r[a], s = f.length, l = (o[a] = new Array(s)), h = 0;
h < s;
++h
)
(u = f[h]) &&
(c = t.call(u, u.__data__, h, f)) &&
("__data__" in u && (c.__data__ = u.__data__),
(l[h] = c),
br(l[h], n, e, h, l, wr(u, e)));
return new Er(o, this._parents, n, e);
},
selectAll: function (t) {
var n = this._name,
e = this._id;
"function" != typeof t && (t = K(t));
for (
var r = this._groups, i = r.length, o = [], a = [], u = 0;
u < i;
++u
)
for (var c, f = r[u], s = f.length, l = 0; l < s; ++l)
if ((c = f[l])) {
for (
var h,
d = t.call(c, c.__data__, l, f),
p = wr(c, e),
v = 0,
g = d.length;
v < g;
++v
)
(h = d[v]) && br(h, n, e, v, d, p);
o.push(d), a.push(c);
}
return new Er(o, a, n, e);
},
filter: function (t) {
"function" != typeof t && (t = tt(t));
for (
var n = this._groups, e = n.length, r = new Array(e), i = 0;
i < e;
++i
)
for (var o, a = n[i], u = a.length, c = (r[i] = []), f = 0; f < u; ++f)
(o = a[f]) && t.call(o, o.__data__, f, a) && c.push(o);
return new Er(r, this._parents, this._name, this._id);
},
merge: function (t) {
if (t._id !== this._id) throw new Error();
for (
var n = this._groups,
e = t._groups,
r = n.length,
i = e.length,
o = Math.min(r, i),
a = new Array(r),
u = 0;
u < o;
++u
)
for (
var c,
f = n[u],
s = e[u],
l = f.length,
h = (a[u] = new Array(l)),
d = 0;
d < l;
++d
)
(c = f[d] || s[d]) && (h[d] = c);
for (; u < r; ++u) a[u] = n[u];
return new Er(a, this._parents, this._name, this._id);
},
selection: function () {
return new kr(this._groups, this._parents);
},
transition: function () {
for (
var t = this._name,
n = this._id,
e = Pr(),
r = this._groups,
i = r.length,
o = 0;
o < i;
++o
)
for (var a, u = r[o], c = u.length, f = 0; f < c; ++f)
if ((a = u[f])) {
var s = wr(a, n);
br(a, t, e, f, u, {
time: s.time + s.delay + s.duration,
delay: 0,
duration: s.duration,
ease: s.ease,
});
}
return new Er(r, this._parents, t, e);
},
call: zr.call,
nodes: zr.nodes,
node: zr.node,
size: zr.size,
empty: zr.empty,
each: zr.each,
on: function (t, n) {
var e = this._id;
return arguments.length < 2
? wr(this.node(), e).on.on(t)
: this.each(
(function (t, n, e) {
var r,
i,
o = (function (t) {
return (t + "")
.trim()
.split(/^|\s+/)
.every(function (t) {
var n = t.indexOf(".");
return n >= 0 && (t = t.slice(0, n)), !t || "start" === t;
});
})(n)
? mr
: xr;
return function () {
var a = o(this, t),
u = a.on;
u !== r && (i = (r = u).copy()).on(n, e), (a.on = i);
};
})(e, t, n)
);
},
attr: function (t, n) {
var e = $(t),
r = "transform" === e ? Te : Ar;
return this.attrTween(
t,
"function" == typeof n
? (e.local
? function (t, n, e) {
var r, i, o;
return function () {
var a,
u,
c = e(this);
if (null != c)
return (a = this.getAttributeNS(t.space, t.local)) ===
(u = c + "")
? null
: a === r && u === i
? o
: ((i = u), (o = n((r = a), c)));
this.removeAttributeNS(t.space, t.local);
};
}
: function (t, n, e) {
var r, i, o;
return function () {
var a,
u,
c = e(this);
if (null != c)
return (a = this.getAttribute(t)) === (u = c + "")
? null
: a === r && u === i
? o
: ((i = u), (o = n((r = a), c)));
this.removeAttribute(t);
};
})(e, r, Nr(this, "attr." + t, n))
: null == n
? (e.local
? function (t) {
return function () {
this.removeAttributeNS(t.space, t.local);
};
}
: function (t) {
return function () {
this.removeAttribute(t);
};
})(e)
: (e.local
? function (t, n, e) {
var r,
i,
o = e + "";
return function () {
var a = this.getAttributeNS(t.space, t.local);
return a === o ? null : a === r ? i : (i = n((r = a), e));
};
}
: function (t, n, e) {
var r,
i,
o = e + "";
return function () {
var a = this.getAttribute(t);
return a === o ? null : a === r ? i : (i = n((r = a), e));
};
})(e, r, n)
);
},
attrTween: function (t, n) {
var e = "attr." + t;
if (arguments.length < 2) return (e = this.tween(e)) && e._value;
if (null == n) return this.tween(e, null);
if ("function" != typeof n) throw new Error();
var r = $(t);
return this.tween(
e,
(r.local
? function (t, n) {
var e, r;
function i() {
var i = n.apply(this, arguments);
return (
i !== r &&
(e =
(r = i) &&
(function (t, n) {
return function (e) {
this.setAttributeNS(t.space, t.local, n(e));
};
})(t, i)),
e
);
}
return (i._value = n), i;
}
: function (t, n) {
var e, r;
function i() {
var i = n.apply(this, arguments);
return (
i !== r &&
(e =
(r = i) &&
(function (t, n) {
return function (e) {
this.setAttribute(t, n(e));
};
})(t, i)),
e
);
}
return (i._value = n), i;
})(r, n)
);
},
style: function (t, n, e) {
var r = "transform" == (t += "") ? Se : Ar;
return null == n
? this.styleTween(
t,
(function (t, n) {
var e, r, i;
return function () {
var o = ct(this, t),
a = (this.style.removeProperty(t), ct(this, t));
return o === a
? null
: o === e && a === r
? i
: (i = n((e = o), (r = a)));
};
})(t, r)
).on("end.style." + t, Sr(t))
: "function" == typeof n
? this.styleTween(
t,
(function (t, n, e) {
var r, i, o;
return function () {
var a = ct(this, t),
u = e(this),
c = u + "";
return (
null == u &&
(this.style.removeProperty(t), (c = u = ct(this, t))),
a === c
? null
: a === r && c === i
? o
: ((i = c), (o = n((r = a), u)))
);
};
})(t, r, Nr(this, "style." + t, n))
).each(
(function (t, n) {
var e,
r,
i,
o,
a = "style." + n,
u = "end." + a;
return function () {
var c = xr(this, t),
f = c.on,
s = null == c.value[a] ? o || (o = Sr(n)) : void 0;
(f === e && i === s) || (r = (e = f).copy()).on(u, (i = s)),
(c.on = r);
};
})(this._id, t)
)
: this.styleTween(
t,
(function (t, n, e) {
var r,
i,
o = e + "";
return function () {
var a = ct(this, t);
return a === o ? null : a === r ? i : (i = n((r = a), e));
};
})(t, r, n),
e
).on("end.style." + t, null);
},
styleTween: function (t, n, e) {
var r = "style." + (t += "");
if (arguments.length < 2) return (r = this.tween(r)) && r._value;
if (null == n) return this.tween(r, null);
if ("function" != typeof n) throw new Error();
return this.tween(
r,
(function (t, n, e) {
var r, i;
function o() {
var o = n.apply(this, arguments);
return (
o !== i &&
(r =
(i = o) &&
(function (t, n, e) {
return function (r) {
this.style.setProperty(t, n(r), e);
};
})(t, o, e)),
r
);
}
return (o._value = n), o;
})(t, n, null == e ? "" : e)
);
},
text: function (t) {
return this.tween(
"text",
"function" == typeof t
? (function (t) {
return function () {
var n = t(this);
this.textContent = null == n ? "" : n;
};
})(Nr(this, "text", t))
: (function (t) {
return function () {
this.textContent = t;
};
})(null == t ? "" : t + "")
);
},
remove: function () {
return this.on(
"end.remove",
((t = this._id),
function () {
var n = this.parentNode;
for (var e in this.__transition) if (+e !== t) return;
n && n.removeChild(this);
})
);
var t;
},
tween: function (t, n) {
var e = this._id;
if (((t += ""), arguments.length < 2)) {
for (
var r, i = wr(this.node(), e).tween, o = 0, a = i.length;
o < a;
++o
)
if ((r = i[o]).name === t) return r.value;
return null;
}
return this.each(
(null == n
? function (t, n) {
var e, r;
return function () {
var i = xr(this, t),
o = i.tween;
if (o !== e)
for (var a = 0, u = (r = e = o).length; a < u; ++a)
if (r[a].name === n) {
(r = r.slice()).splice(a, 1);
break;
}
i.tween = r;
};
}
: function (t, n, e) {
var r, i;
if ("function" != typeof e) throw new Error();
return function () {
var o = xr(this, t),
a = o.tween;
if (a !== r) {
i = (r = a).slice();
for (
var u = { name: n, value: e }, c = 0, f = i.length;
c < f;
++c
)
if (i[c].name === n) {
i[c] = u;
break;
}
c === f && i.push(u);
}
o.tween = i;
};
})(e, t, n)
);
},
delay: function (t) {
var n = this._id;
return arguments.length
? this.each(
("function" == typeof t
? function (t, n) {
return function () {
mr(this, t).delay = +n.apply(this, arguments);
};
}
: function (t, n) {
return (
(n = +n),
function () {
mr(this, t).delay = n;
}
);
})(n, t)
)
: wr(this.node(), n).delay;
},
duration: function (t) {
var n = this._id;
return arguments.length
? this.each(
("function" == typeof t
? function (t, n) {
return function () {
xr(this, t).duration = +n.apply(this, arguments);
};
}
: function (t, n) {
return (
(n = +n),
function () {
xr(this, t).duration = n;
}
);
})(n, t)
)
: wr(this.node(), n).duration;
},
ease: function (t) {
var n = this._id;
return arguments.length
? this.each(
(function (t, n) {
if ("function" != typeof n) throw new Error();
return function () {
xr(this, t).ease = n;
};
})(n, t)
)
: wr(this.node(), n).ease;
},
end: function () {
var t,
n,
e = this,
r = e._id,
i = e.size();
return new Promise(function (o, a) {
var u = { value: a },
c = {
value: function () {
0 == --i && o();
},
};
e.each(function () {
var e = xr(this, r),
i = e.on;
i !== t &&
((n = (t = i).copy())._.cancel.push(u),
n._.interrupt.push(u),
n._.end.push(c)),
(e.on = n);
});
});
},
};
var Dr = (function t(n) {
function e(t) {
return Math.pow(t, n);
}
return (n = +n), (e.exponent = t), e;
})(3),
Lr = (function t(n) {
function e(t) {
return 1 - Math.pow(1 - t, n);
}
return (n = +n), (e.exponent = t), e;
})(3),
Ur = (function t(n) {
function e(t) {
return ((t *= 2) <= 1 ? Math.pow(t, n) : 2 - Math.pow(2 - t, n)) / 2;
}
return (n = +n), (e.exponent = t), e;
})(3),
Or = Math.PI,
Yr = Or / 2;
function Br(t) {
return (1 - Math.cos(Or * t)) / 2;
}
function Fr(t) {
return (
((t *= 2) <= 1
? Math.pow(2, 10 * t - 10)
: 2 - Math.pow(2, 10 - 10 * t)) / 2
);
}
function Ir(t) {
return (
((t *= 2) <= 1
? 1 - Math.sqrt(1 - t * t)
: Math.sqrt(1 - (t -= 2) * t) + 1) / 2
);
}
var Hr = 4 / 11,
jr = 6 / 11,
Xr = 8 / 11,
Gr = 0.75,
Vr = 9 / 11,
$r = 10 / 11,
Wr = 0.9375,
Zr = 21 / 22,
Qr = 63 / 64,
Jr = 1 / Hr / Hr;
function Kr(t) {
return (t = +t) < Hr
? Jr * t * t
: t < Xr
? Jr * (t -= jr) * t + Gr
: t < $r
? Jr * (t -= Vr) * t + Wr
: Jr * (t -= Zr) * t + Qr;
}
var ti = (function t(n) {
function e(t) {
return t * t * ((n + 1) * t - n);
}
return (n = +n), (e.overshoot = t), e;
})(1.70158),
ni = (function t(n) {
function e(t) {
return --t * t * ((n + 1) * t + n) + 1;
}
return (n = +n), (e.overshoot = t), e;
})(1.70158),
ei = (function t(n) {
function e(t) {
return (
((t *= 2) < 1
? t * t * ((n + 1) * t - n)
: (t -= 2) * t * ((n + 1) * t + n) + 2) / 2
);
}
return (n = +n), (e.overshoot = t), e;
})(1.70158),
ri = 2 * Math.PI,
ii = (function t(n, e) {
var r = Math.asin(1 / (n = Math.max(1, n))) * (e /= ri);
function i(t) {
return n * Math.pow(2, 10 * --t) * Math.sin((r - t) / e);
}
return (
(i.amplitude = function (n) {
return t(n, e * ri);
}),
(i.period = function (e) {
return t(n, e);
}),
i
);
})(1, 0.3),
oi = (function t(n, e) {
var r = Math.asin(1 / (n = Math.max(1, n))) * (e /= ri);
function i(t) {
return 1 - n * Math.pow(2, -10 * (t = +t)) * Math.sin((t + r) / e);
}
return (
(i.amplitude = function (n) {
return t(n, e * ri);
}),
(i.period = function (e) {
return t(n, e);
}),
i
);
})(1, 0.3),
ai = (function t(n, e) {
var r = Math.asin(1 / (n = Math.max(1, n))) * (e /= ri);
function i(t) {
return (
((t = 2 * t - 1) < 0
? n * Math.pow(2, 10 * t) * Math.sin((r - t) / e)
: 2 - n * Math.pow(2, -10 * t) * Math.sin((r + t) / e)) / 2
);
}
return (
(i.amplitude = function (n) {
return t(n, e * ri);
}),
(i.period = function (e) {
return t(n, e);
}),
i
);
})(1, 0.3),
ui = { time: null, delay: 0, duration: 250, ease: qr };
function ci(t, n) {
for (var e; !(e = t.__transition) || !(e = e[n]); )
if (!(t = t.parentNode)) return (ui.time = nr()), ui;
return e;
}
(Pt.prototype.interrupt = function (t) {
return this.each(function () {
Mr(this, t);
});
}),
(Pt.prototype.transition = function (t) {
var n, e;
t instanceof Er
? ((n = t._id), (t = t._name))
: ((n = Pr()), ((e = ui).time = nr()), (t = null == t ? null : t + ""));
for (var r = this._groups, i = r.length, o = 0; o < i; ++o)
for (var a, u = r[o], c = u.length, f = 0; f < c; ++f)
(a = u[f]) && br(a, t, n, f, u, e || ci(a, n));
return new Er(r, this._parents, t, n);
});
var fi = [null];
function si(t) {
return function () {
return t;
};
}
function li(t, n, e) {
(this.target = t), (this.type = n), (this.selection = e);
}
function hi() {
t.event.stopImmediatePropagation();
}
function di() {
t.event.preventDefault(), t.event.stopImmediatePropagation();
}
var pi = { name: "drag" },
vi = { name: "space" },
gi = { name: "handle" },
yi = { name: "center" },
_i = {
name: "x",
handles: ["e", "w"].map(ki),
input: function (t, n) {
return (
t && [
[t[0], n[0][1]],
[t[1], n[1][1]],
]
);
},
output: function (t) {
return t && [t[0][0], t[1][0]];
},
},
bi = {
name: "y",
handles: ["n", "s"].map(ki),
input: function (t, n) {
return (
t && [
[n[0][0], t[0]],
[n[1][0], t[1]],
]
);
},
output: function (t) {
return t && [t[0][1], t[1][1]];
},
},
mi = {
name: "xy",
handles: ["n", "e", "s", "w", "nw", "ne", "se", "sw"].map(ki),
input: function (t) {
return t;
},
output: function (t) {
return t;
},
},
xi = {
overlay: "crosshair",
selection: "move",
n: "ns-resize",
e: "ew-resize",
s: "ns-resize",
w: "ew-resize",
nw: "nwse-resize",
ne: "nesw-resize",
se: "nwse-resize",
sw: "nesw-resize",
},
wi = { e: "w", w: "e", nw: "ne", ne: "nw", se: "sw", sw: "se" },
Mi = { n: "s", s: "n", nw: "sw", ne: "se", se: "ne", sw: "nw" },
Ni = {
overlay: 1,
selection: 1,
n: null,
e: 1,
s: null,
w: -1,
nw: -1,
ne: 1,
se: 1,
sw: -1,
},
Ai = {
overlay: 1,
selection: 1,
n: -1,
e: null,
s: 1,
w: null,
nw: -1,
ne: -1,
se: 1,
sw: 1,
};
function ki(t) {
return { type: t };
}
function Si() {
return !t.event.button;
}
function Ti() {
var t = this.ownerSVGElement || this;
return [
[0, 0],
[t.width.baseVal.value, t.height.baseVal.value],
];
}
function Ei(t) {
for (; !t.__brush; ) if (!(t = t.parentNode)) return;
return t.__brush;
}
function Ci(t) {
return t[0][0] === t[1][0] || t[0][1] === t[1][1];
}
function Pi(n) {
var e,
r = Ti,
i = Si,
o = I(u, "start", "brush", "end"),
a = 6;
function u(t) {
var e = t
.property("__brush", h)
.selectAll(".overlay")
.data([ki("overlay")]);
e
.enter()
.append("rect")
.attr("class", "overlay")
.attr("pointer-events", "all")
.attr("cursor", xi.overlay)
.merge(e)
.each(function () {
var t = Ei(this).extent;
zt(this)
.attr("x", t[0][0])
.attr("y", t[0][1])
.attr("width", t[1][0] - t[0][0])
.attr("height", t[1][1] - t[0][1]);
}),
t
.selectAll(".selection")
.data([ki("selection")])
.enter()
.append("rect")
.attr("class", "selection")
.attr("cursor", xi.selection)
.attr("fill", "#777")
.attr("fill-opacity", 0.3)
.attr("stroke", "#fff")
.attr("shape-rendering", "crispEdges");
var r = t.selectAll(".handle").data(n.handles, function (t) {
return t.type;
});
r.exit().remove(),
r
.enter()
.append("rect")
.attr("class", function (t) {
return "handle handle--" + t.type;
})
.attr("cursor", function (t) {
return xi[t.type];
}),
t
.each(c)
.attr("fill", "none")
.attr("pointer-events", "all")
.style("-webkit-tap-highlight-color", "rgba(0,0,0,0)")
.on("mousedown.brush touchstart.brush", l);
}
function c() {
var t = zt(this),
n = Ei(this).selection;
n
? (t
.selectAll(".selection")
.style("display", null)
.attr("x", n[0][0])
.attr("y", n[0][1])
.attr("width", n[1][0] - n[0][0])
.attr("height", n[1][1] - n[0][1]),
t
.selectAll(".handle")
.style("display", null)
.attr("x", function (t) {
return "e" === t.type[t.type.length - 1]
? n[1][0] - a / 2
: n[0][0] - a / 2;
})
.attr("y", function (t) {
return "s" === t.type[0] ? n[1][1] - a / 2 : n[0][1] - a / 2;
})
.attr("width", function (t) {
return "n" === t.type || "s" === t.type
? n[1][0] - n[0][0] + a
: a;
})
.attr("height", function (t) {
return "e" === t.type || "w" === t.type
? n[1][1] - n[0][1] + a
: a;
}))
: t
.selectAll(".selection,.handle")
.style("display", "none")
.attr("x", null)
.attr("y", null)
.attr("width", null)
.attr("height", null);
}
function f(t, n) {
return t.__brush.emitter || new s(t, n);
}
function s(t, n) {
(this.that = t),
(this.args = n),
(this.state = t.__brush),
(this.active = 0);
}
function l() {
if (t.event.touches) {
if (t.event.changedTouches.length < t.event.touches.length) return di();
} else if (e) return;
if (i.apply(this, arguments)) {
var r,
o,
a,
u,
s,
l,
h,
d,
p,
v,
g,
y,
_,
b = this,
m = t.event.target.__data__.type,
x =
"selection" === (t.event.metaKey ? (m = "overlay") : m)
? pi
: t.event.altKey
? yi
: gi,
w = n === bi ? null : Ni[m],
M = n === _i ? null : Ai[m],
N = Ei(b),
A = N.extent,
k = N.selection,
S = A[0][0],
T = A[0][1],
E = A[1][0],
C = A[1][1],
P = w && M && t.event.shiftKey,
z = Ot(b),
R = z,
q = f(b, arguments).beforestart();
"overlay" === m
? (N.selection = k =
[
[(r = n === bi ? S : z[0]), (a = n === _i ? T : z[1])],
[(s = n === bi ? E : r), (h = n === _i ? C : a)],
])
: ((r = k[0][0]), (a = k[0][1]), (s = k[1][0]), (h = k[1][1])),
(o = r),
(u = a),
(l = s),
(d = h);
var D = zt(b).attr("pointer-events", "none"),
L = D.selectAll(".overlay").attr("cursor", xi[m]);
if (t.event.touches)
D.on("touchmove.brush", O, !0).on(
"touchend.brush touchcancel.brush",
B,
!0
);
else {
var U = zt(t.event.view)
.on(
"keydown.brush",
function () {
switch (t.event.keyCode) {
case 16:
P = w && M;
break;
case 18:
x === gi &&
(w && ((s = l - p * w), (r = o + p * w)),
M && ((h = d - v * M), (a = u + v * M)),
(x = yi),
Y());
break;
case 32:
(x !== gi && x !== yi) ||
(w < 0 ? (s = l - p) : w > 0 && (r = o - p),
M < 0 ? (h = d - v) : M > 0 && (a = u - v),
(x = vi),
L.attr("cursor", xi.selection),
Y());
break;
default:
return;
}
di();
},
!0
)
.on(
"keyup.brush",
function () {
switch (t.event.keyCode) {
case 16:
P && ((y = _ = P = !1), Y());
break;
case 18:
x === yi &&
(w < 0 ? (s = l) : w > 0 && (r = o),
M < 0 ? (h = d) : M > 0 && (a = u),
(x = gi),
Y());
break;
case 32:
x === vi &&
(t.event.altKey
? (w && ((s = l - p * w), (r = o + p * w)),
M && ((h = d - v * M), (a = u + v * M)),
(x = yi))
: (w < 0 ? (s = l) : w > 0 && (r = o),
M < 0 ? (h = d) : M > 0 && (a = u),
(x = gi)),
L.attr("cursor", xi[m]),
Y());
break;
default:
return;
}
di();
},
!0
)
.on("mousemove.brush", O, !0)
.on("mouseup.brush", B, !0);
It(t.event.view);
}
hi(), Mr(b), c.call(b), q.start();
}
function O() {
var t = Ot(b);
!P ||
y ||
_ ||
(Math.abs(t[0] - R[0]) > Math.abs(t[1] - R[1]) ? (_ = !0) : (y = !0)),
(R = t),
(g = !0),
di(),
Y();
}
function Y() {
var t;
switch (((p = R[0] - z[0]), (v = R[1] - z[1]), x)) {
case vi:
case pi:
w &&
((p = Math.max(S - r, Math.min(E - s, p))),
(o = r + p),
(l = s + p)),
M &&
((v = Math.max(T - a, Math.min(C - h, v))),
(u = a + v),
(d = h + v));
break;
case gi:
w < 0
? ((p = Math.max(S - r, Math.min(E - r, p))),
(o = r + p),
(l = s))
: w > 0 &&
((p = Math.max(S - s, Math.min(E - s, p))),
(o = r),
(l = s + p)),
M < 0
? ((v = Math.max(T - a, Math.min(C - a, v))),
(u = a + v),
(d = h))
: M > 0 &&
((v = Math.max(T - h, Math.min(C - h, v))),
(u = a),
(d = h + v));
break;
case yi:
w &&
((o = Math.max(S, Math.min(E, r - p * w))),
(l = Math.max(S, Math.min(E, s + p * w)))),
M &&
((u = Math.max(T, Math.min(C, a - v * M))),
(d = Math.max(T, Math.min(C, h + v * M))));
}
l < o &&
((w *= -1),
(t = r),
(r = s),
(s = t),
(t = o),
(o = l),
(l = t),
m in wi && L.attr("cursor", xi[(m = wi[m])])),
d < u &&
((M *= -1),
(t = a),
(a = h),
(h = t),
(t = u),
(u = d),
(d = t),
m in Mi && L.attr("cursor", xi[(m = Mi[m])])),
N.selection && (k = N.selection),
y && ((o = k[0][0]), (l = k[1][0])),
_ && ((u = k[0][1]), (d = k[1][1])),
(k[0][0] === o && k[0][1] === u && k[1][0] === l && k[1][1] === d) ||
((N.selection = [
[o, u],
[l, d],
]),
c.call(b),
q.brush());
}
function B() {
if ((hi(), t.event.touches)) {
if (t.event.touches.length) return;
e && clearTimeout(e),
(e = setTimeout(function () {
e = null;
}, 500)),
D.on("touchmove.brush touchend.brush touchcancel.brush", null);
} else Ht(t.event.view, g), U.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null);
D.attr("pointer-events", "all"),
L.attr("cursor", xi.overlay),
N.selection && (k = N.selection),
Ci(k) && ((N.selection = null), c.call(b)),
q.end();
}
}
function h() {
var t = this.__brush || { selection: null };
return (t.extent = r.apply(this, arguments)), (t.dim = n), t;
}
return (
(u.move = function (t, e) {
t.selection
? t
.on("start.brush", function () {
f(this, arguments).beforestart().start();
})
.on("interrupt.brush end.brush", function () {
f(this, arguments).end();
})
.tween("brush", function () {
var t = this,
r = t.__brush,
i = f(t, arguments),
o = r.selection,
a = n.input(
"function" == typeof e ? e.apply(this, arguments) : e,
r.extent
),
u = ye(o, a);
function s(n) {
(r.selection = 1 === n && Ci(a) ? null : u(n)),
c.call(t),
i.brush();
}
return o && a ? s : s(1);
})
: t.each(function () {
var t = arguments,
r = this.__brush,
i = n.input(
"function" == typeof e ? e.apply(this, t) : e,
r.extent
),
o = f(this, t).beforestart();
Mr(this),
(r.selection = null == i || Ci(i) ? null : i),
c.call(this),
o.start().brush().end();
});
}),
(s.prototype = {
beforestart: function () {
return (
1 == ++this.active &&
((this.state.emitter = this), (this.starting = !0)),
this
);
},
start: function () {
return (
this.starting && ((this.starting = !1), this.emit("start")), this
);
},
brush: function () {
return this.emit("brush"), this;
},
end: function () {
return (
0 == --this.active && (delete this.state.emitter, this.emit("end")),
this
);
},
emit: function (t) {
St(new li(u, t, n.output(this.state.selection)), o.apply, o, [
t,
this.that,
this.args,
]);
},
}),
(u.extent = function (t) {
return arguments.length
? ((r =
"function" == typeof t
? t
: si([
[+t[0][0], +t[0][1]],
[+t[1][0], +t[1][1]],
])),
u)
: r;
}),
(u.filter = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : si(!!t)), u)
: i;
}),
(u.handleSize = function (t) {
return arguments.length ? ((a = +t), u) : a;
}),
(u.on = function () {
var t = o.on.apply(o, arguments);
return t === o ? u : t;
}),
u
);
}
var zi = Math.cos,
Ri = Math.sin,
qi = Math.PI,
Di = qi / 2,
Li = 2 * qi,
Ui = Math.max;
var Oi = Array.prototype.slice;
function Yi(t) {
return function () {
return t;
};
}
var Bi = Math.PI,
Fi = 2 * Bi,
Ii = Fi - 1e-6;
function Hi() {
(this._x0 = this._y0 = this._x1 = this._y1 = null), (this._ = "");
}
function ji() {
return new Hi();
}
function Xi(t) {
return t.source;
}
function Gi(t) {
return t.target;
}
function Vi(t) {
return t.radius;
}
function $i(t) {
return t.startAngle;
}
function Wi(t) {
return t.endAngle;
}
Hi.prototype = ji.prototype = {
constructor: Hi,
moveTo: function (t, n) {
this._ +=
"M" + (this._x0 = this._x1 = +t) + "," + (this._y0 = this._y1 = +n);
},
closePath: function () {
null !== this._x1 &&
((this._x1 = this._x0), (this._y1 = this._y0), (this._ += "Z"));
},
lineTo: function (t, n) {
this._ += "L" + (this._x1 = +t) + "," + (this._y1 = +n);
},
quadraticCurveTo: function (t, n, e, r) {
this._ +=
"Q" + +t + "," + +n + "," + (this._x1 = +e) + "," + (this._y1 = +r);
},
bezierCurveTo: function (t, n, e, r, i, o) {
this._ +=
"C" +
+t +
"," +
+n +
"," +
+e +
"," +
+r +
"," +
(this._x1 = +i) +
"," +
(this._y1 = +o);
},
arcTo: function (t, n, e, r, i) {
(t = +t), (n = +n), (e = +e), (r = +r), (i = +i);
var o = this._x1,
a = this._y1,
u = e - t,
c = r - n,
f = o - t,
s = a - n,
l = f * f + s * s;
if (i < 0) throw new Error("negative radius: " + i);
if (null === this._x1)
this._ += "M" + (this._x1 = t) + "," + (this._y1 = n);
else if (l > 1e-6)
if (Math.abs(s * u - c * f) > 1e-6 && i) {
var h = e - o,
d = r - a,
p = u * u + c * c,
v = h * h + d * d,
g = Math.sqrt(p),
y = Math.sqrt(l),
_ = i * Math.tan((Bi - Math.acos((p + l - v) / (2 * g * y))) / 2),
b = _ / y,
m = _ / g;
Math.abs(b - 1) > 1e-6 &&
(this._ += "L" + (t + b * f) + "," + (n + b * s)),
(this._ +=
"A" +
i +
"," +
i +
",0,0," +
+(s * h > f * d) +
"," +
(this._x1 = t + m * u) +
"," +
(this._y1 = n + m * c));
} else this._ += "L" + (this._x1 = t) + "," + (this._y1 = n);
else;
},
arc: function (t, n, e, r, i, o) {
(t = +t), (n = +n);
var a = (e = +e) * Math.cos(r),
u = e * Math.sin(r),
c = t + a,
f = n + u,
s = 1 ^ o,
l = o ? r - i : i - r;
if (e < 0) throw new Error("negative radius: " + e);
null === this._x1
? (this._ += "M" + c + "," + f)
: (Math.abs(this._x1 - c) > 1e-6 || Math.abs(this._y1 - f) > 1e-6) &&
(this._ += "L" + c + "," + f),
e &&
(l < 0 && (l = (l % Fi) + Fi),
l > Ii
? (this._ +=
"A" +
e +
"," +
e +
",0,1," +
s +
"," +
(t - a) +
"," +
(n - u) +
"A" +
e +
"," +
e +
",0,1," +
s +
"," +
(this._x1 = c) +
"," +
(this._y1 = f))
: l > 1e-6 &&
(this._ +=
"A" +
e +
"," +
e +
",0," +
+(l >= Bi) +
"," +
s +
"," +
(this._x1 = t + e * Math.cos(i)) +
"," +
(this._y1 = n + e * Math.sin(i))));
},
rect: function (t, n, e, r) {
this._ +=
"M" +
(this._x0 = this._x1 = +t) +
"," +
(this._y0 = this._y1 = +n) +
"h" +
+e +
"v" +
+r +
"h" +
-e +
"Z";
},
toString: function () {
return this._;
},
};
function Zi() {}
function Qi(t, n) {
var e = new Zi();
if (t instanceof Zi)
t.each(function (t, n) {
e.set(n, t);
});
else if (Array.isArray(t)) {
var r,
i = -1,
o = t.length;
if (null == n) for (; ++i < o; ) e.set(i, t[i]);
else for (; ++i < o; ) e.set(n((r = t[i]), i, t), r);
} else if (t) for (var a in t) e.set(a, t[a]);
return e;
}
function Ji() {
return {};
}
function Ki(t, n, e) {
t[n] = e;
}
function to() {
return Qi();
}
function no(t, n, e) {
t.set(n, e);
}
function eo() {}
Zi.prototype = Qi.prototype = {
constructor: Zi,
has: function (t) {
return "$" + t in this;
},
get: function (t) {
return this["$" + t];
},
set: function (t, n) {
return (this["$" + t] = n), this;
},
remove: function (t) {
var n = "$" + t;
return n in this && delete this[n];
},
clear: function () {
for (var t in this) "$" === t[0] && delete this[t];
},
keys: function () {
var t = [];
for (var n in this) "$" === n[0] && t.push(n.slice(1));
return t;
},
values: function () {
var t = [];
for (var n in this) "$" === n[0] && t.push(this[n]);
return t;
},
entries: function () {
var t = [];
for (var n in this)
"$" === n[0] && t.push({ key: n.slice(1), value: this[n] });
return t;
},
size: function () {
var t = 0;
for (var n in this) "$" === n[0] && ++t;
return t;
},
empty: function () {
for (var t in this) if ("$" === t[0]) return !1;
return !0;
},
each: function (t) {
for (var n in this) "$" === n[0] && t(this[n], n.slice(1), this);
},
};
var ro = Qi.prototype;
function io(t, n) {
var e = new eo();
if (t instanceof eo)
t.each(function (t) {
e.add(t);
});
else if (t) {
var r = -1,
i = t.length;
if (null == n) for (; ++r < i; ) e.add(t[r]);
else for (; ++r < i; ) e.add(n(t[r], r, t));
}
return e;
}
eo.prototype = io.prototype = {
constructor: eo,
has: ro.has,
add: function (t) {
return (this["$" + (t += "")] = t), this;
},
remove: ro.remove,
clear: ro.clear,
values: ro.keys,
size: ro.size,
empty: ro.empty,
each: ro.each,
};
var oo = Array.prototype.slice;
function ao(t, n) {
return t - n;
}
function uo(t) {
return function () {
return t;
};
}
function co(t, n) {
for (var e, r = -1, i = n.length; ++r < i; )
if ((e = fo(t, n[r]))) return e;
return 0;
}
function fo(t, n) {
for (
var e = n[0], r = n[1], i = -1, o = 0, a = t.length, u = a - 1;
o < a;
u = o++
) {
var c = t[o],
f = c[0],
s = c[1],
l = t[u],
h = l[0],
d = l[1];
if (so(c, l, n)) return 0;
s > r != d > r && e < ((h - f) * (r - s)) / (d - s) + f && (i = -i);
}
return i;
}
function so(t, n, e) {
var r, i, o, a;
return (
(function (t, n, e) {
return (n[0] - t[0]) * (e[1] - t[1]) == (e[0] - t[0]) * (n[1] - t[1]);
})(t, n, e) &&
((i = t[(r = +(t[0] === n[0]))]),
(o = e[r]),
(a = n[r]),
(i <= o && o <= a) || (a <= o && o <= i))
);
}
function lo() {}
var ho = [
[],
[
[
[1, 1.5],
[0.5, 1],
],
],
[
[
[1.5, 1],
[1, 1.5],
],
],
[
[
[1.5, 1],
[0.5, 1],
],
],
[
[
[1, 0.5],
[1.5, 1],
],
],
[
[
[1, 1.5],
[0.5, 1],
],
[
[1, 0.5],
[1.5, 1],
],
],
[
[
[1, 0.5],
[1, 1.5],
],
],
[
[
[1, 0.5],
[0.5, 1],
],
],
[
[
[0.5, 1],
[1, 0.5],
],
],
[
[
[1, 1.5],
[1, 0.5],
],
],
[
[
[0.5, 1],
[1, 0.5],
],
[
[1.5, 1],
[1, 1.5],
],
],
[
[
[1.5, 1],
[1, 0.5],
],
],
[
[
[0.5, 1],
[1.5, 1],
],
],
[
[
[1, 1.5],
[1.5, 1],
],
],
[
[
[0.5, 1],
[1, 1.5],
],
],
[],
];
function po() {
var t = 1,
n = 1,
e = M,
r = u;
function i(t) {
var n = e(t);
if (Array.isArray(n)) n = n.slice().sort(ao);
else {
var r = s(t),
i = r[0],
a = r[1];
(n = w(i, a, n)),
(n = g(Math.floor(i / n) * n, Math.floor(a / n) * n, n));
}
return n.map(function (n) {
return o(t, n);
});
}
function o(e, i) {
var o = [],
u = [];
return (
(function (e, r, i) {
var o,
u,
c,
f,
s,
l,
h = new Array(),
d = new Array();
(o = u = -1), (f = e[0] >= r), ho[f << 1].forEach(p);
for (; ++o < t - 1; )
(c = f), (f = e[o + 1] >= r), ho[c | (f << 1)].forEach(p);
ho[f << 0].forEach(p);
for (; ++u < n - 1; ) {
for (
o = -1,
f = e[u * t + t] >= r,
s = e[u * t] >= r,
ho[(f << 1) | (s << 2)].forEach(p);
++o < t - 1;
)
(c = f),
(f = e[u * t + t + o + 1] >= r),
(l = s),
(s = e[u * t + o + 1] >= r),
ho[c | (f << 1) | (s << 2) | (l << 3)].forEach(p);
ho[f | (s << 3)].forEach(p);
}
(o = -1), (s = e[u * t] >= r), ho[s << 2].forEach(p);
for (; ++o < t - 1; )
(l = s),
(s = e[u * t + o + 1] >= r),
ho[(s << 2) | (l << 3)].forEach(p);
function p(t) {
var n,
e,
r = [t[0][0] + o, t[0][1] + u],
c = [t[1][0] + o, t[1][1] + u],
f = a(r),
s = a(c);
(n = d[f])
? (e = h[s])
? (delete d[n.end],
delete h[e.start],
n === e
? (n.ring.push(c), i(n.ring))
: (h[n.start] = d[e.end] =
{
start: n.start,
end: e.end,
ring: n.ring.concat(e.ring),
}))
: (delete d[n.end], n.ring.push(c), (d[(n.end = s)] = n))
: (n = h[s])
? (e = d[f])
? (delete h[n.start],
delete d[e.end],
n === e
? (n.ring.push(c), i(n.ring))
: (h[e.start] = d[n.end] =
{
start: e.start,
end: n.end,
ring: e.ring.concat(n.ring),
}))
: (delete h[n.start], n.ring.unshift(r), (h[(n.start = f)] = n))
: (h[f] = d[s] = { start: f, end: s, ring: [r, c] });
}
ho[s << 3].forEach(p);
})(e, i, function (t) {
r(t, e, i),
(function (t) {
for (
var n = 0,
e = t.length,
r = t[e - 1][1] * t[0][0] - t[e - 1][0] * t[0][1];
++n < e;
)
r += t[n - 1][1] * t[n][0] - t[n - 1][0] * t[n][1];
return r;
})(t) > 0
? o.push([t])
: u.push(t);
}),
u.forEach(function (t) {
for (var n, e = 0, r = o.length; e < r; ++e)
if (-1 !== co((n = o[e])[0], t)) return void n.push(t);
}),
{ type: "MultiPolygon", value: i, coordinates: o }
);
}
function a(n) {
return 2 * n[0] + n[1] * (t + 1) * 4;
}
function u(e, r, i) {
e.forEach(function (e) {
var o,
a = e[0],
u = e[1],
c = 0 | a,
f = 0 | u,
s = r[f * t + c];
a > 0 &&
a < t &&
c === a &&
((o = r[f * t + c - 1]), (e[0] = a + (i - o) / (s - o) - 0.5)),
u > 0 &&
u < n &&
f === u &&
((o = r[(f - 1) * t + c]), (e[1] = u + (i - o) / (s - o) - 0.5));
});
}
return (
(i.contour = o),
(i.size = function (e) {
if (!arguments.length) return [t, n];
var r = Math.ceil(e[0]),
o = Math.ceil(e[1]);
if (!(r > 0 && o > 0)) throw new Error("invalid size");
return (t = r), (n = o), i;
}),
(i.thresholds = function (t) {
return arguments.length
? ((e =
"function" == typeof t
? t
: Array.isArray(t)
? uo(oo.call(t))
: uo(t)),
i)
: e;
}),
(i.smooth = function (t) {
return arguments.length ? ((r = t ? u : lo), i) : r === u;
}),
i
);
}
function vo(t, n, e) {
for (var r = t.width, i = t.height, o = 1 + (e << 1), a = 0; a < i; ++a)
for (var u = 0, c = 0; u < r + e; ++u)
u < r && (c += t.data[u + a * r]),
u >= e &&
(u >= o && (c -= t.data[u - o + a * r]),
(n.data[u - e + a * r] = c / Math.min(u + 1, r - 1 + o - u, o)));
}
function go(t, n, e) {
for (var r = t.width, i = t.height, o = 1 + (e << 1), a = 0; a < r; ++a)
for (var u = 0, c = 0; u < i + e; ++u)
u < i && (c += t.data[a + u * r]),
u >= e &&
(u >= o && (c -= t.data[a + (u - o) * r]),
(n.data[a + (u - e) * r] = c / Math.min(u + 1, i - 1 + o - u, o)));
}
function yo(t) {
return t[0];
}
function _o(t) {
return t[1];
}
function bo() {
return 1;
}
var mo = {},
xo = {},
wo = 34,
Mo = 10,
No = 13;
function Ao(t) {
return new Function(
"d",
"return {" +
t
.map(function (t, n) {
return JSON.stringify(t) + ": d[" + n + "]";
})
.join(",") +
"}"
);
}
function ko(t) {
var n = new RegExp('["' + t + "\n\r]"),
e = t.charCodeAt(0);
function r(t, n) {
var r,
i = [],
o = t.length,
a = 0,
u = 0,
c = o <= 0,
f = !1;
function s() {
if (c) return xo;
if (f) return (f = !1), mo;
var n,
r,
i = a;
if (t.charCodeAt(i) === wo) {
for (
;
(a++ < o && t.charCodeAt(a) !== wo) || t.charCodeAt(++a) === wo;
);
return (
(n = a) >= o
? (c = !0)
: (r = t.charCodeAt(a++)) === Mo
? (f = !0)
: r === No && ((f = !0), t.charCodeAt(a) === Mo && ++a),
t.slice(i + 1, n - 1).replace(/""/g, '"')
);
}
for (; a < o; ) {
if ((r = t.charCodeAt((n = a++))) === Mo) f = !0;
else if (r === No) (f = !0), t.charCodeAt(a) === Mo && ++a;
else if (r !== e) continue;
return t.slice(i, n);
}
return (c = !0), t.slice(i, o);
}
for (
t.charCodeAt(o - 1) === Mo && --o, t.charCodeAt(o - 1) === No && --o;
(r = s()) !== xo;
) {
for (var l = []; r !== mo && r !== xo; ) l.push(r), (r = s());
(n && null == (l = n(l, u++))) || i.push(l);
}
return i;
}
function i(n) {
return n.map(o).join(t);
}
function o(t) {
return null == t
? ""
: n.test((t += ""))
? '"' + t.replace(/"/g, '""') + '"'
: t;
}
return {
parse: function (t, n) {
var e,
i,
o = r(t, function (t, r) {
if (e) return e(t, r - 1);
(i = t),
(e = n
? (function (t, n) {
var e = Ao(t);
return function (r, i) {
return n(e(r), i, t);
};
})(t, n)
: Ao(t));
});
return (o.columns = i || []), o;
},
parseRows: r,
format: function (n, e) {
return (
null == e &&
(e = (function (t) {
var n = Object.create(null),
e = [];
return (
t.forEach(function (t) {
for (var r in t) r in n || e.push((n[r] = r));
}),
e
);
})(n)),
[e.map(o).join(t)]
.concat(
n.map(function (n) {
return e
.map(function (t) {
return o(n[t]);
})
.join(t);
})
)
.join("\n")
);
},
formatRows: function (t) {
return t.map(i).join("\n");
},
};
}
var So = ko(","),
To = So.parse,
Eo = So.parseRows,
Co = So.format,
Po = So.formatRows,
zo = ko("\t"),
Ro = zo.parse,
qo = zo.parseRows,
Do = zo.format,
Lo = zo.formatRows;
function Uo(t) {
if (!t.ok) throw new Error(t.status + " " + t.statusText);
return t.blob();
}
function Oo(t) {
if (!t.ok) throw new Error(t.status + " " + t.statusText);
return t.arrayBuffer();
}
function Yo(t) {
if (!t.ok) throw new Error(t.status + " " + t.statusText);
return t.text();
}
function Bo(t, n) {
return fetch(t, n).then(Yo);
}
function Fo(t) {
return function (n, e, r) {
return (
2 === arguments.length &&
"function" == typeof e &&
((r = e), (e = void 0)),
Bo(n, e).then(function (n) {
return t(n, r);
})
);
};
}
var Io = Fo(To),
Ho = Fo(Ro);
function jo(t) {
if (!t.ok) throw new Error(t.status + " " + t.statusText);
return t.json();
}
function Xo(t) {
return function (n, e) {
return Bo(n, e).then(function (n) {
return new DOMParser().parseFromString(n, t);
});
};
}
var Go = Xo("application/xml"),
Vo = Xo("text/html"),
$o = Xo("image/svg+xml");
function Wo(t) {
return function () {
return t;
};
}
function Zo() {
return 1e-6 * (Math.random() - 0.5);
}
function Qo(t, n, e, r) {
if (isNaN(n) || isNaN(e)) return t;
var i,
o,
a,
u,
c,
f,
s,
l,
h,
d = t._root,
p = { data: r },
v = t._x0,
g = t._y0,
y = t._x1,
_ = t._y1;
if (!d) return (t._root = p), t;
for (; d.length; )
if (
((f = n >= (o = (v + y) / 2)) ? (v = o) : (y = o),
(s = e >= (a = (g + _) / 2)) ? (g = a) : (_ = a),
(i = d),
!(d = d[(l = (s << 1) | f)]))
)
return (i[l] = p), t;
if (
((u = +t._x.call(null, d.data)),
(c = +t._y.call(null, d.data)),
n === u && e === c)
)
return (p.next = d), i ? (i[l] = p) : (t._root = p), t;
do {
(i = i ? (i[l] = new Array(4)) : (t._root = new Array(4))),
(f = n >= (o = (v + y) / 2)) ? (v = o) : (y = o),
(s = e >= (a = (g + _) / 2)) ? (g = a) : (_ = a);
} while ((l = (s << 1) | f) == (h = ((c >= a) << 1) | (u >= o)));
return (i[h] = d), (i[l] = p), t;
}
function Jo(t, n, e, r, i) {
(this.node = t), (this.x0 = n), (this.y0 = e), (this.x1 = r), (this.y1 = i);
}
function Ko(t) {
return t[0];
}
function ta(t) {
return t[1];
}
function na(t, n, e) {
var r = new ea(null == n ? Ko : n, null == e ? ta : e, NaN, NaN, NaN, NaN);
return null == t ? r : r.addAll(t);
}
function ea(t, n, e, r, i, o) {
(this._x = t),
(this._y = n),
(this._x0 = e),
(this._y0 = r),
(this._x1 = i),
(this._y1 = o),
(this._root = void 0);
}
function ra(t) {
for (var n = { data: t.data }, e = n; (t = t.next); )
e = e.next = { data: t.data };
return n;
}
var ia = (na.prototype = ea.prototype);
function oa(t) {
return t.x + t.vx;
}
function aa(t) {
return t.y + t.vy;
}
function ua(t) {
return t.index;
}
function ca(t, n) {
var e = t.get(n);
if (!e) throw new Error("missing: " + n);
return e;
}
function fa(t) {
return t.x;
}
function sa(t) {
return t.y;
}
(ia.copy = function () {
var t,
n,
e = new ea(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
r = this._root;
if (!r) return e;
if (!r.length) return (e._root = ra(r)), e;
for (t = [{ source: r, target: (e._root = new Array(4)) }]; (r = t.pop()); )
for (var i = 0; i < 4; ++i)
(n = r.source[i]) &&
(n.length
? t.push({ source: n, target: (r.target[i] = new Array(4)) })
: (r.target[i] = ra(n)));
return e;
}),
(ia.add = function (t) {
var n = +this._x.call(null, t),
e = +this._y.call(null, t);
return Qo(this.cover(n, e), n, e, t);
}),
(ia.addAll = function (t) {
var n,
e,
r,
i,
o = t.length,
a = new Array(o),
u = new Array(o),
c = 1 / 0,
f = 1 / 0,
s = -1 / 0,
l = -1 / 0;
for (e = 0; e < o; ++e)
isNaN((r = +this._x.call(null, (n = t[e])))) ||
isNaN((i = +this._y.call(null, n))) ||
((a[e] = r),
(u[e] = i),
r < c && (c = r),
r > s && (s = r),
i < f && (f = i),
i > l && (l = i));
for (
s < c && ((c = this._x0), (s = this._x1)),
l < f && ((f = this._y0), (l = this._y1)),
this.cover(c, f).cover(s, l),
e = 0;
e < o;
++e
)
Qo(this, a[e], u[e], t[e]);
return this;
}),
(ia.cover = function (t, n) {
if (isNaN((t = +t)) || isNaN((n = +n))) return this;
var e = this._x0,
r = this._y0,
i = this._x1,
o = this._y1;
if (isNaN(e))
(i = (e = Math.floor(t)) + 1), (o = (r = Math.floor(n)) + 1);
else {
if (!(e > t || t > i || r > n || n > o)) return this;
var a,
u,
c = i - e,
f = this._root;
switch ((u = ((n < (r + o) / 2) << 1) | (t < (e + i) / 2))) {
case 0:
do {
((a = new Array(4))[u] = f), (f = a);
} while (((o = r + (c *= 2)), t > (i = e + c) || n > o));
break;
case 1:
do {
((a = new Array(4))[u] = f), (f = a);
} while (((o = r + (c *= 2)), (e = i - c) > t || n > o));
break;
case 2:
do {
((a = new Array(4))[u] = f), (f = a);
} while (((r = o - (c *= 2)), t > (i = e + c) || r > n));
break;
case 3:
do {
((a = new Array(4))[u] = f), (f = a);
} while (((r = o - (c *= 2)), (e = i - c) > t || r > n));
}
this._root && this._root.length && (this._root = f);
}
return (
(this._x0 = e), (this._y0 = r), (this._x1 = i), (this._y1 = o), this
);
}),
(ia.data = function () {
var t = [];
return (
this.visit(function (n) {
if (!n.length)
do {
t.push(n.data);
} while ((n = n.next));
}),
t
);
}),
(ia.extent = function (t) {
return arguments.length
? this.cover(+t[0][0], +t[0][1]).cover(+t[1][0], +t[1][1])
: isNaN(this._x0)
? void 0
: [
[this._x0, this._y0],
[this._x1, this._y1],
];
}),
(ia.find = function (t, n, e) {
var r,
i,
o,
a,
u,
c,
f,
s = this._x0,
l = this._y0,
h = this._x1,
d = this._y1,
p = [],
v = this._root;
for (
v && p.push(new Jo(v, s, l, h, d)),
null == e
? (e = 1 / 0)
: ((s = t - e), (l = n - e), (h = t + e), (d = n + e), (e *= e));
(c = p.pop());
)
if (
!(
!(v = c.node) ||
(i = c.x0) > h ||
(o = c.y0) > d ||
(a = c.x1) < s ||
(u = c.y1) < l
)
)
if (v.length) {
var g = (i + a) / 2,
y = (o + u) / 2;
p.push(
new Jo(v[3], g, y, a, u),
new Jo(v[2], i, y, g, u),
new Jo(v[1], g, o, a, y),
new Jo(v[0], i, o, g, y)
),
(f = ((n >= y) << 1) | (t >= g)) &&
((c = p[p.length - 1]),
(p[p.length - 1] = p[p.length - 1 - f]),
(p[p.length - 1 - f] = c));
} else {
var _ = t - +this._x.call(null, v.data),
b = n - +this._y.call(null, v.data),
m = _ * _ + b * b;
if (m < e) {
var x = Math.sqrt((e = m));
(s = t - x), (l = n - x), (h = t + x), (d = n + x), (r = v.data);
}
}
return r;
}),
(ia.remove = function (t) {
if (
isNaN((o = +this._x.call(null, t))) ||
isNaN((a = +this._y.call(null, t)))
)
return this;
var n,
e,
r,
i,
o,
a,
u,
c,
f,
s,
l,
h,
d = this._root,
p = this._x0,
v = this._y0,
g = this._x1,
y = this._y1;
if (!d) return this;
if (d.length)
for (;;) {
if (
((f = o >= (u = (p + g) / 2)) ? (p = u) : (g = u),
(s = a >= (c = (v + y) / 2)) ? (v = c) : (y = c),
(n = d),
!(d = d[(l = (s << 1) | f)]))
)
return this;
if (!d.length) break;
(n[(l + 1) & 3] || n[(l + 2) & 3] || n[(l + 3) & 3]) &&
((e = n), (h = l));
}
for (; d.data !== t; ) if (((r = d), !(d = d.next))) return this;
return (
(i = d.next) && delete d.next,
r
? (i ? (r.next = i) : delete r.next, this)
: n
? (i ? (n[l] = i) : delete n[l],
(d = n[0] || n[1] || n[2] || n[3]) &&
d === (n[3] || n[2] || n[1] || n[0]) &&
!d.length &&
(e ? (e[h] = d) : (this._root = d)),
this)
: ((this._root = i), this)
);
}),
(ia.removeAll = function (t) {
for (var n = 0, e = t.length; n < e; ++n) this.remove(t[n]);
return this;
}),
(ia.root = function () {
return this._root;
}),
(ia.size = function () {
var t = 0;
return (
this.visit(function (n) {
if (!n.length)
do {
++t;
} while ((n = n.next));
}),
t
);
}),
(ia.visit = function (t) {
var n,
e,
r,
i,
o,
a,
u = [],
c = this._root;
for (
c && u.push(new Jo(c, this._x0, this._y0, this._x1, this._y1));
(n = u.pop());
)
if (
!t((c = n.node), (r = n.x0), (i = n.y0), (o = n.x1), (a = n.y1)) &&
c.length
) {
var f = (r + o) / 2,
s = (i + a) / 2;
(e = c[3]) && u.push(new Jo(e, f, s, o, a)),
(e = c[2]) && u.push(new Jo(e, r, s, f, a)),
(e = c[1]) && u.push(new Jo(e, f, i, o, s)),
(e = c[0]) && u.push(new Jo(e, r, i, f, s));
}
return this;
}),
(ia.visitAfter = function (t) {
var n,
e = [],
r = [];
for (
this._root &&
e.push(new Jo(this._root, this._x0, this._y0, this._x1, this._y1));
(n = e.pop());
) {
var i = n.node;
if (i.length) {
var o,
a = n.x0,
u = n.y0,
c = n.x1,
f = n.y1,
s = (a + c) / 2,
l = (u + f) / 2;
(o = i[0]) && e.push(new Jo(o, a, u, s, l)),
(o = i[1]) && e.push(new Jo(o, s, u, c, l)),
(o = i[2]) && e.push(new Jo(o, a, l, s, f)),
(o = i[3]) && e.push(new Jo(o, s, l, c, f));
}
r.push(n);
}
for (; (n = r.pop()); ) t(n.node, n.x0, n.y0, n.x1, n.y1);
return this;
}),
(ia.x = function (t) {
return arguments.length ? ((this._x = t), this) : this._x;
}),
(ia.y = function (t) {
return arguments.length ? ((this._y = t), this) : this._y;
});
var la = 10,
ha = Math.PI * (3 - Math.sqrt(5));
function da(t, n) {
if (
(e = (t = n ? t.toExponential(n - 1) : t.toExponential()).indexOf("e")) <
0
)
return null;
var e,
r = t.slice(0, e);
return [r.length > 1 ? r[0] + r.slice(2) : r, +t.slice(e + 1)];
}
function pa(t) {
return (t = da(Math.abs(t))) ? t[1] : NaN;
}
var va,
ga =
/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
function ya(t) {
return new _a(t);
}
function _a(t) {
if (!(n = ga.exec(t))) throw new Error("invalid format: " + t);
var n;
(this.fill = n[1] || " "),
(this.align = n[2] || ">"),
(this.sign = n[3] || "-"),
(this.symbol = n[4] || ""),
(this.zero = !!n[5]),
(this.width = n[6] && +n[6]),
(this.comma = !!n[7]),
(this.precision = n[8] && +n[8].slice(1)),
(this.trim = !!n[9]),
(this.type = n[10] || "");
}
function ba(t, n) {
var e = da(t, n);
if (!e) return t + "";
var r = e[0],
i = e[1];
return i < 0
? "0." + new Array(-i).join("0") + r
: r.length > i + 1
? r.slice(0, i + 1) + "." + r.slice(i + 1)
: r + new Array(i - r.length + 2).join("0");
}
(ya.prototype = _a.prototype),
(_a.prototype.toString = function () {
return (
this.fill +
this.align +
this.sign +
this.symbol +
(this.zero ? "0" : "") +
(null == this.width ? "" : Math.max(1, 0 | this.width)) +
(this.comma ? "," : "") +
(null == this.precision ? "" : "." + Math.max(0, 0 | this.precision)) +
(this.trim ? "~" : "") +
this.type
);
});
var ma = {
"%": function (t, n) {
return (100 * t).toFixed(n);
},
b: function (t) {
return Math.round(t).toString(2);
},
c: function (t) {
return t + "";
},
d: function (t) {
return Math.round(t).toString(10);
},
e: function (t, n) {
return t.toExponential(n);
},
f: function (t, n) {
return t.toFixed(n);
},
g: function (t, n) {
return t.toPrecision(n);
},
o: function (t) {
return Math.round(t).toString(8);
},
p: function (t, n) {
return ba(100 * t, n);
},
r: ba,
s: function (t, n) {
var e = da(t, n);
if (!e) return t + "";
var r = e[0],
i = e[1],
o = i - (va = 3 * Math.max(-8, Math.min(8, Math.floor(i / 3)))) + 1,
a = r.length;
return o === a
? r
: o > a
? r + new Array(o - a + 1).join("0")
: o > 0
? r.slice(0, o) + "." + r.slice(o)
: "0." + new Array(1 - o).join("0") + da(t, Math.max(0, n + o - 1))[0];
},
X: function (t) {
return Math.round(t).toString(16).toUpperCase();
},
x: function (t) {
return Math.round(t).toString(16);
},
};
function xa(t) {
return t;
}
var wa,
Ma = [
"y",
"z",
"a",
"f",
"p",
"n",
"µ",
"m",
"",
"k",
"M",
"G",
"T",
"P",
"E",
"Z",
"Y",
];
function Na(t) {
var n,
e,
r =
t.grouping && t.thousands
? ((n = t.grouping),
(e = t.thousands),
function (t, r) {
for (
var i = t.length, o = [], a = 0, u = n[0], c = 0;
i > 0 &&
u > 0 &&
(c + u + 1 > r && (u = Math.max(1, r - c)),
o.push(t.substring((i -= u), i + u)),
!((c += u + 1) > r));
)
u = n[(a = (a + 1) % n.length)];
return o.reverse().join(e);
})
: xa,
i = t.currency,
o = t.decimal,
a = t.numerals
? (function (t) {
return function (n) {
return n.replace(/[0-9]/g, function (n) {
return t[+n];
});
};
})(t.numerals)
: xa,
u = t.percent || "%";
function c(t) {
var n = (t = ya(t)).fill,
e = t.align,
c = t.sign,
f = t.symbol,
s = t.zero,
l = t.width,
h = t.comma,
d = t.precision,
p = t.trim,
v = t.type;
"n" === v
? ((h = !0), (v = "g"))
: ma[v] || (null == d && (d = 12), (p = !0), (v = "g")),
(s || ("0" === n && "=" === e)) && ((s = !0), (n = "0"), (e = "="));
var g =
"$" === f
? i[0]
: "#" === f && /[boxX]/.test(v)
? "0" + v.toLowerCase()
: "",
y = "$" === f ? i[1] : /[%p]/.test(v) ? u : "",
_ = ma[v],
b = /[defgprs%]/.test(v);
function m(t) {
var i,
u,
f,
m = g,
x = y;
if ("c" === v) (x = _(t) + x), (t = "");
else {
var w = (t = +t) < 0;
if (
((t = _(Math.abs(t), d)),
p &&
(t = (function (t) {
t: for (var n, e = t.length, r = 1, i = -1; r < e; ++r)
switch (t[r]) {
case ".":
i = n = r;
break;
case "0":
0 === i && (i = r), (n = r);
break;
default:
if (i > 0) {
if (!+t[r]) break t;
i = 0;
}
}
return i > 0 ? t.slice(0, i) + t.slice(n + 1) : t;
})(t)),
w && 0 == +t && (w = !1),
(m =
(w ? ("(" === c ? c : "-") : "-" === c || "(" === c ? "" : c) +
m),
(x =
("s" === v ? Ma[8 + va / 3] : "") +
x +
(w && "(" === c ? ")" : "")),
b)
)
for (i = -1, u = t.length; ++i < u; )
if (48 > (f = t.charCodeAt(i)) || f > 57) {
(x = (46 === f ? o + t.slice(i + 1) : t.slice(i)) + x),
(t = t.slice(0, i));
break;
}
}
h && !s && (t = r(t, 1 / 0));
var M = m.length + t.length + x.length,
N = M < l ? new Array(l - M + 1).join(n) : "";
switch (
(h &&
s &&
((t = r(N + t, N.length ? l - x.length : 1 / 0)), (N = "")),
e)
) {
case "<":
t = m + t + x + N;
break;
case "=":
t = m + N + t + x;
break;
case "^":
t = N.slice(0, (M = N.length >> 1)) + m + t + x + N.slice(M);
break;
default:
t = N + m + t + x;
}
return a(t);
}
return (
(d =
null == d
? 6
: /[gprs]/.test(v)
? Math.max(1, Math.min(21, d))
: Math.max(0, Math.min(20, d))),
(m.toString = function () {
return t + "";
}),
m
);
}
return {
format: c,
formatPrefix: function (t, n) {
var e = c((((t = ya(t)).type = "f"), t)),
r = 3 * Math.max(-8, Math.min(8, Math.floor(pa(n) / 3))),
i = Math.pow(10, -r),
o = Ma[8 + r / 3];
return function (t) {
return e(i * t) + o;
};
},
};
}
function Aa(n) {
return (
(wa = Na(n)),
(t.format = wa.format),
(t.formatPrefix = wa.formatPrefix),
wa
);
}
function ka(t) {
return Math.max(0, -pa(Math.abs(t)));
}
function Sa(t, n) {
return Math.max(
0,
3 * Math.max(-8, Math.min(8, Math.floor(pa(n) / 3))) - pa(Math.abs(t))
);
}
function Ta(t, n) {
return (
(t = Math.abs(t)), (n = Math.abs(n) - t), Math.max(0, pa(n) - pa(t)) + 1
);
}
function Ea() {
return new Ca();
}
function Ca() {
this.reset();
}
Aa({ decimal: ".", thousands: ",", grouping: [3], currency: ["$", ""] }),
(Ca.prototype = {
constructor: Ca,
reset: function () {
this.s = this.t = 0;
},
add: function (t) {
za(Pa, t, this.t),
za(this, Pa.s, this.s),
this.s ? (this.t += Pa.t) : (this.s = Pa.t);
},
valueOf: function () {
return this.s;
},
});
var Pa = new Ca();
function za(t, n, e) {
var r = (t.s = n + e),
i = r - n,
o = r - i;
t.t = n - o + (e - i);
}
var Ra = 1e-6,
qa = 1e-12,
Da = Math.PI,
La = Da / 2,
Ua = Da / 4,
Oa = 2 * Da,
Ya = 180 / Da,
Ba = Da / 180,
Fa = Math.abs,
Ia = Math.atan,
Ha = Math.atan2,
ja = Math.cos,
Xa = Math.ceil,
Ga = Math.exp,
Va = Math.log,
$a = Math.pow,
Wa = Math.sin,
Za =
Math.sign ||
function (t) {
return t > 0 ? 1 : t < 0 ? -1 : 0;
},
Qa = Math.sqrt,
Ja = Math.tan;
function Ka(t) {
return t > 1 ? 0 : t < -1 ? Da : Math.acos(t);
}
function tu(t) {
return t > 1 ? La : t < -1 ? -La : Math.asin(t);
}
function nu(t) {
return (t = Wa(t / 2)) * t;
}
function eu() {}
function ru(t, n) {
t && ou.hasOwnProperty(t.type) && ou[t.type](t, n);
}
var iu = {
Feature: function (t, n) {
ru(t.geometry, n);
},
FeatureCollection: function (t, n) {
for (var e = t.features, r = -1, i = e.length; ++r < i; )
ru(e[r].geometry, n);
},
},
ou = {
Sphere: function (t, n) {
n.sphere();
},
Point: function (t, n) {
(t = t.coordinates), n.point(t[0], t[1], t[2]);
},
MultiPoint: function (t, n) {
for (var e = t.coordinates, r = -1, i = e.length; ++r < i; )
(t = e[r]), n.point(t[0], t[1], t[2]);
},
LineString: function (t, n) {
au(t.coordinates, n, 0);
},
MultiLineString: function (t, n) {
for (var e = t.coordinates, r = -1, i = e.length; ++r < i; )
au(e[r], n, 0);
},
Polygon: function (t, n) {
uu(t.coordinates, n);
},
MultiPolygon: function (t, n) {
for (var e = t.coordinates, r = -1, i = e.length; ++r < i; )
uu(e[r], n);
},
GeometryCollection: function (t, n) {
for (var e = t.geometries, r = -1, i = e.length; ++r < i; ) ru(e[r], n);
},
};
function au(t, n, e) {
var r,
i = -1,
o = t.length - e;
for (n.lineStart(); ++i < o; ) (r = t[i]), n.point(r[0], r[1], r[2]);
n.lineEnd();
}
function uu(t, n) {
var e = -1,
r = t.length;
for (n.polygonStart(); ++e < r; ) au(t[e], n, 1);
n.polygonEnd();
}
function cu(t, n) {
t && iu.hasOwnProperty(t.type) ? iu[t.type](t, n) : ru(t, n);
}
var fu,
su,
lu,
hu,
du,
pu = Ea(),
vu = Ea(),
gu = {
point: eu,
lineStart: eu,
lineEnd: eu,
polygonStart: function () {
pu.reset(), (gu.lineStart = yu), (gu.lineEnd = _u);
},
polygonEnd: function () {
var t = +pu;
vu.add(t < 0 ? Oa + t : t),
(this.lineStart = this.lineEnd = this.point = eu);
},
sphere: function () {
vu.add(Oa);
},
};
function yu() {
gu.point = bu;
}
function _u() {
mu(fu, su);
}
function bu(t, n) {
(gu.point = mu),
(fu = t),
(su = n),
(lu = t *= Ba),
(hu = ja((n = (n *= Ba) / 2 + Ua))),
(du = Wa(n));
}
function mu(t, n) {
var e = (t *= Ba) - lu,
r = e >= 0 ? 1 : -1,
i = r * e,
o = ja((n = (n *= Ba) / 2 + Ua)),
a = Wa(n),
u = du * a,
c = hu * o + u * ja(i),
f = u * r * Wa(i);
pu.add(Ha(f, c)), (lu = t), (hu = o), (du = a);
}
function xu(t) {
return [Ha(t[1], t[0]), tu(t[2])];
}
function wu(t) {
var n = t[0],
e = t[1],
r = ja(e);
return [r * ja(n), r * Wa(n), Wa(e)];
}
function Mu(t, n) {
return t[0] * n[0] + t[1] * n[1] + t[2] * n[2];
}
function Nu(t, n) {
return [
t[1] * n[2] - t[2] * n[1],
t[2] * n[0] - t[0] * n[2],
t[0] * n[1] - t[1] * n[0],
];
}
function Au(t, n) {
(t[0] += n[0]), (t[1] += n[1]), (t[2] += n[2]);
}
function ku(t, n) {
return [t[0] * n, t[1] * n, t[2] * n];
}
function Su(t) {
var n = Qa(t[0] * t[0] + t[1] * t[1] + t[2] * t[2]);
(t[0] /= n), (t[1] /= n), (t[2] /= n);
}
var Tu,
Eu,
Cu,
Pu,
zu,
Ru,
qu,
Du,
Lu,
Uu,
Ou,
Yu,
Bu,
Fu,
Iu,
Hu,
ju,
Xu,
Gu,
Vu,
$u,
Wu,
Zu,
Qu,
Ju,
Ku,
tc = Ea(),
nc = {
point: ec,
lineStart: ic,
lineEnd: oc,
polygonStart: function () {
(nc.point = ac),
(nc.lineStart = uc),
(nc.lineEnd = cc),
tc.reset(),
gu.polygonStart();
},
polygonEnd: function () {
gu.polygonEnd(),
(nc.point = ec),
(nc.lineStart = ic),
(nc.lineEnd = oc),
pu < 0
? ((Tu = -(Cu = 180)), (Eu = -(Pu = 90)))
: tc > Ra
? (Pu = 90)
: tc < -Ra && (Eu = -90),
(Uu[0] = Tu),
(Uu[1] = Cu);
},
};
function ec(t, n) {
Lu.push((Uu = [(Tu = t), (Cu = t)])),
n < Eu && (Eu = n),
n > Pu && (Pu = n);
}
function rc(t, n) {
var e = wu([t * Ba, n * Ba]);
if (Du) {
var r = Nu(Du, e),
i = Nu([r[1], -r[0], 0], r);
Su(i), (i = xu(i));
var o,
a = t - zu,
u = a > 0 ? 1 : -1,
c = i[0] * Ya * u,
f = Fa(a) > 180;
f ^ (u * zu < c && c < u * t)
? (o = i[1] * Ya) > Pu && (Pu = o)
: f ^ (u * zu < (c = ((c + 360) % 360) - 180) && c < u * t)
? (o = -i[1] * Ya) < Eu && (Eu = o)
: (n < Eu && (Eu = n), n > Pu && (Pu = n)),
f
? t < zu
? fc(Tu, t) > fc(Tu, Cu) && (Cu = t)
: fc(t, Cu) > fc(Tu, Cu) && (Tu = t)
: Cu >= Tu
? (t < Tu && (Tu = t), t > Cu && (Cu = t))
: t > zu
? fc(Tu, t) > fc(Tu, Cu) && (Cu = t)
: fc(t, Cu) > fc(Tu, Cu) && (Tu = t);
} else Lu.push((Uu = [(Tu = t), (Cu = t)]));
n < Eu && (Eu = n), n > Pu && (Pu = n), (Du = e), (zu = t);
}
function ic() {
nc.point = rc;
}
function oc() {
(Uu[0] = Tu), (Uu[1] = Cu), (nc.point = ec), (Du = null);
}
function ac(t, n) {
if (Du) {
var e = t - zu;
tc.add(Fa(e) > 180 ? e + (e > 0 ? 360 : -360) : e);
} else (Ru = t), (qu = n);
gu.point(t, n), rc(t, n);
}
function uc() {
gu.lineStart();
}
function cc() {
ac(Ru, qu),
gu.lineEnd(),
Fa(tc) > Ra && (Tu = -(Cu = 180)),
(Uu[0] = Tu),
(Uu[1] = Cu),
(Du = null);
}
function fc(t, n) {
return (n -= t) < 0 ? n + 360 : n;
}
function sc(t, n) {
return t[0] - n[0];
}
function lc(t, n) {
return t[0] <= t[1] ? t[0] <= n && n <= t[1] : n < t[0] || t[1] < n;
}
var hc = {
sphere: eu,
point: dc,
lineStart: vc,
lineEnd: _c,
polygonStart: function () {
(hc.lineStart = bc), (hc.lineEnd = mc);
},
polygonEnd: function () {
(hc.lineStart = vc), (hc.lineEnd = _c);
},
};
function dc(t, n) {
t *= Ba;
var e = ja((n *= Ba));
pc(e * ja(t), e * Wa(t), Wa(n));
}
function pc(t, n, e) {
(Bu += (t - Bu) / ++Ou), (Fu += (n - Fu) / Ou), (Iu += (e - Iu) / Ou);
}
function vc() {
hc.point = gc;
}
function gc(t, n) {
t *= Ba;
var e = ja((n *= Ba));
(Qu = e * ja(t)),
(Ju = e * Wa(t)),
(Ku = Wa(n)),
(hc.point = yc),
pc(Qu, Ju, Ku);
}
function yc(t, n) {
t *= Ba;
var e = ja((n *= Ba)),
r = e * ja(t),
i = e * Wa(t),
o = Wa(n),
a = Ha(
Qa(
(a = Ju * o - Ku * i) * a +
(a = Ku * r - Qu * o) * a +
(a = Qu * i - Ju * r) * a
),
Qu * r + Ju * i + Ku * o
);
(Yu += a),
(Hu += a * (Qu + (Qu = r))),
(ju += a * (Ju + (Ju = i))),
(Xu += a * (Ku + (Ku = o))),
pc(Qu, Ju, Ku);
}
function _c() {
hc.point = dc;
}
function bc() {
hc.point = xc;
}
function mc() {
wc(Wu, Zu), (hc.point = dc);
}
function xc(t, n) {
(Wu = t), (Zu = n), (t *= Ba), (n *= Ba), (hc.point = wc);
var e = ja(n);
(Qu = e * ja(t)), (Ju = e * Wa(t)), (Ku = Wa(n)), pc(Qu, Ju, Ku);
}
function wc(t, n) {
t *= Ba;
var e = ja((n *= Ba)),
r = e * ja(t),
i = e * Wa(t),
o = Wa(n),
a = Ju * o - Ku * i,
u = Ku * r - Qu * o,
c = Qu * i - Ju * r,
f = Qa(a * a + u * u + c * c),
s = tu(f),
l = f && -s / f;
(Gu += l * a),
(Vu += l * u),
($u += l * c),
(Yu += s),
(Hu += s * (Qu + (Qu = r))),
(ju += s * (Ju + (Ju = i))),
(Xu += s * (Ku + (Ku = o))),
pc(Qu, Ju, Ku);
}
function Mc(t) {
return function () {
return t;
};
}
function Nc(t, n) {
function e(e, r) {
return (e = t(e, r)), n(e[0], e[1]);
}
return (
t.invert &&
n.invert &&
(e.invert = function (e, r) {
return (e = n.invert(e, r)) && t.invert(e[0], e[1]);
}),
e
);
}
function Ac(t, n) {
return [Fa(t) > Da ? t + Math.round(-t / Oa) * Oa : t, n];
}
function kc(t, n, e) {
return (t %= Oa)
? n || e
? Nc(Tc(t), Ec(n, e))
: Tc(t)
: n || e
? Ec(n, e)
: Ac;
}
function Sc(t) {
return function (n, e) {
return [(n += t) > Da ? n - Oa : n < -Da ? n + Oa : n, e];
};
}
function Tc(t) {
var n = Sc(t);
return (n.invert = Sc(-t)), n;
}
function Ec(t, n) {
var e = ja(t),
r = Wa(t),
i = ja(n),
o = Wa(n);
function a(t, n) {
var a = ja(n),
u = ja(t) * a,
c = Wa(t) * a,
f = Wa(n),
s = f * e + u * r;
return [Ha(c * i - s * o, u * e - f * r), tu(s * i + c * o)];
}
return (
(a.invert = function (t, n) {
var a = ja(n),
u = ja(t) * a,
c = Wa(t) * a,
f = Wa(n),
s = f * i - c * o;
return [Ha(c * i + f * o, u * e + s * r), tu(s * e - u * r)];
}),
a
);
}
function Cc(t) {
function n(n) {
return ((n = t(n[0] * Ba, n[1] * Ba))[0] *= Ya), (n[1] *= Ya), n;
}
return (
(t = kc(t[0] * Ba, t[1] * Ba, t.length > 2 ? t[2] * Ba : 0)),
(n.invert = function (n) {
return ((n = t.invert(n[0] * Ba, n[1] * Ba))[0] *= Ya), (n[1] *= Ya), n;
}),
n
);
}
function Pc(t, n, e, r, i, o) {
if (e) {
var a = ja(n),
u = Wa(n),
c = r * e;
null == i
? ((i = n + r * Oa), (o = n - c / 2))
: ((i = zc(a, i)),
(o = zc(a, o)),
(r > 0 ? i < o : i > o) && (i += r * Oa));
for (var f, s = i; r > 0 ? s > o : s < o; s -= c)
(f = xu([a, -u * ja(s), -u * Wa(s)])), t.point(f[0], f[1]);
}
}
function zc(t, n) {
((n = wu(n))[0] -= t), Su(n);
var e = Ka(-n[1]);
return ((-n[2] < 0 ? -e : e) + Oa - Ra) % Oa;
}
function Rc() {
var t,
n = [];
return {
point: function (n, e) {
t.push([n, e]);
},
lineStart: function () {
n.push((t = []));
},
lineEnd: eu,
rejoin: function () {
n.length > 1 && n.push(n.pop().concat(n.shift()));
},
result: function () {
var e = n;
return (n = []), (t = null), e;
},
};
}
function qc(t, n) {
return Fa(t[0] - n[0]) < Ra && Fa(t[1] - n[1]) < Ra;
}
function Dc(t, n, e, r) {
(this.x = t),
(this.z = n),
(this.o = e),
(this.e = r),
(this.v = !1),
(this.n = this.p = null);
}
function Lc(t, n, e, r, i) {
var o,
a,
u = [],
c = [];
if (
(t.forEach(function (t) {
if (!((n = t.length - 1) <= 0)) {
var n,
e,
r = t[0],
a = t[n];
if (qc(r, a)) {
for (i.lineStart(), o = 0; o < n; ++o) i.point((r = t[o])[0], r[1]);
i.lineEnd();
} else
u.push((e = new Dc(r, t, null, !0))),
c.push((e.o = new Dc(r, null, e, !1))),
u.push((e = new Dc(a, t, null, !1))),
c.push((e.o = new Dc(a, null, e, !0)));
}
}),
u.length)
) {
for (c.sort(n), Uc(u), Uc(c), o = 0, a = c.length; o < a; ++o)
c[o].e = e = !e;
for (var f, s, l = u[0]; ; ) {
for (var h = l, d = !0; h.v; ) if ((h = h.n) === l) return;
(f = h.z), i.lineStart();
do {
if (((h.v = h.o.v = !0), h.e)) {
if (d)
for (o = 0, a = f.length; o < a; ++o)
i.point((s = f[o])[0], s[1]);
else r(h.x, h.n.x, 1, i);
h = h.n;
} else {
if (d)
for (f = h.p.z, o = f.length - 1; o >= 0; --o)
i.point((s = f[o])[0], s[1]);
else r(h.x, h.p.x, -1, i);
h = h.p;
}
(f = (h = h.o).z), (d = !d);
} while (!h.v);
i.lineEnd();
}
}
}
function Uc(t) {
if ((n = t.length)) {
for (var n, e, r = 0, i = t[0]; ++r < n; )
(i.n = e = t[r]), (e.p = i), (i = e);
(i.n = e = t[0]), (e.p = i);
}
}
Ac.invert = Ac;
var Oc = Ea();
function Yc(t, n) {
var e = n[0],
r = n[1],
i = Wa(r),
o = [Wa(e), -ja(e), 0],
a = 0,
u = 0;
Oc.reset(), 1 === i ? (r = La + Ra) : -1 === i && (r = -La - Ra);
for (var c = 0, f = t.length; c < f; ++c)
if ((l = (s = t[c]).length))
for (
var s,
l,
h = s[l - 1],
d = h[0],
p = h[1] / 2 + Ua,
v = Wa(p),
g = ja(p),
y = 0;
y < l;
++y, d = b, v = x, g = w, h = _
) {
var _ = s[y],
b = _[0],
m = _[1] / 2 + Ua,
x = Wa(m),
w = ja(m),
M = b - d,
N = M >= 0 ? 1 : -1,
A = N * M,
k = A > Da,
S = v * x;
if (
(Oc.add(Ha(S * N * Wa(A), g * w + S * ja(A))),
(a += k ? M + N * Oa : M),
k ^ (d >= e) ^ (b >= e))
) {
var T = Nu(wu(h), wu(_));
Su(T);
var E = Nu(o, T);
Su(E);
var C = (k ^ (M >= 0) ? -1 : 1) * tu(E[2]);
(r > C || (r === C && (T[0] || T[1]))) &&
(u += k ^ (M >= 0) ? 1 : -1);
}
}
return (a < -Ra || (a < Ra && Oc < -Ra)) ^ (1 & u);
}
function Bc(t, n, e, r) {
return function (i) {
var o,
a,
u,
c = n(i),
f = Rc(),
s = n(f),
l = !1,
h = {
point: d,
lineStart: v,
lineEnd: g,
polygonStart: function () {
(h.point = y),
(h.lineStart = _),
(h.lineEnd = b),
(a = []),
(o = []);
},
polygonEnd: function () {
(h.point = d), (h.lineStart = v), (h.lineEnd = g), (a = k(a));
var t = Yc(o, r);
a.length
? (l || (i.polygonStart(), (l = !0)), Lc(a, Ic, t, e, i))
: t &&
(l || (i.polygonStart(), (l = !0)),
i.lineStart(),
e(null, null, 1, i),
i.lineEnd()),
l && (i.polygonEnd(), (l = !1)),
(a = o = null);
},
sphere: function () {
i.polygonStart(),
i.lineStart(),
e(null, null, 1, i),
i.lineEnd(),
i.polygonEnd();
},
};
function d(n, e) {
t(n, e) && i.point(n, e);
}
function p(t, n) {
c.point(t, n);
}
function v() {
(h.point = p), c.lineStart();
}
function g() {
(h.point = d), c.lineEnd();
}
function y(t, n) {
u.push([t, n]), s.point(t, n);
}
function _() {
s.lineStart(), (u = []);
}
function b() {
y(u[0][0], u[0][1]), s.lineEnd();
var t,
n,
e,
r,
c = s.clean(),
h = f.result(),
d = h.length;
if ((u.pop(), o.push(u), (u = null), d))
if (1 & c) {
if ((n = (e = h[0]).length - 1) > 0) {
for (
l || (i.polygonStart(), (l = !0)), i.lineStart(), t = 0;
t < n;
++t
)
i.point((r = e[t])[0], r[1]);
i.lineEnd();
}
} else
d > 1 && 2 & c && h.push(h.pop().concat(h.shift())),
a.push(h.filter(Fc));
}
return h;
};
}
function Fc(t) {
return t.length > 1;
}
function Ic(t, n) {
return (
((t = t.x)[0] < 0 ? t[1] - La - Ra : La - t[1]) -
((n = n.x)[0] < 0 ? n[1] - La - Ra : La - n[1])
);
}
var Hc = Bc(
function () {
return !0;
},
function (t) {
var n,
e = NaN,
r = NaN,
i = NaN;
return {
lineStart: function () {
t.lineStart(), (n = 1);
},
point: function (o, a) {
var u = o > 0 ? Da : -Da,
c = Fa(o - e);
Fa(c - Da) < Ra
? (t.point(e, (r = (r + a) / 2 > 0 ? La : -La)),
t.point(i, r),
t.lineEnd(),
t.lineStart(),
t.point(u, r),
t.point(o, r),
(n = 0))
: i !== u &&
c >= Da &&
(Fa(e - i) < Ra && (e -= i * Ra),
Fa(o - u) < Ra && (o -= u * Ra),
(r = (function (t, n, e, r) {
var i,
o,
a = Wa(t - e);
return Fa(a) > Ra
? Ia(
(Wa(n) * (o = ja(r)) * Wa(e) -
Wa(r) * (i = ja(n)) * Wa(t)) /
(i * o * a)
)
: (n + r) / 2;
})(e, r, o, a)),
t.point(i, r),
t.lineEnd(),
t.lineStart(),
t.point(u, r),
(n = 0)),
t.point((e = o), (r = a)),
(i = u);
},
lineEnd: function () {
t.lineEnd(), (e = r = NaN);
},
clean: function () {
return 2 - n;
},
};
},
function (t, n, e, r) {
var i;
if (null == t)
(i = e * La),
r.point(-Da, i),
r.point(0, i),
r.point(Da, i),
r.point(Da, 0),
r.point(Da, -i),
r.point(0, -i),
r.point(-Da, -i),
r.point(-Da, 0),
r.point(-Da, i);
else if (Fa(t[0] - n[0]) > Ra) {
var o = t[0] < n[0] ? Da : -Da;
(i = (e * o) / 2), r.point(-o, i), r.point(0, i), r.point(o, i);
} else r.point(n[0], n[1]);
},
[-Da, -La]
);
function jc(t) {
var n = ja(t),
e = 6 * Ba,
r = n > 0,
i = Fa(n) > Ra;
function o(t, e) {
return ja(t) * ja(e) > n;
}
function a(t, e, r) {
var i = [1, 0, 0],
o = Nu(wu(t), wu(e)),
a = Mu(o, o),
u = o[0],
c = a - u * u;
if (!c) return !r && t;
var f = (n * a) / c,
s = (-n * u) / c,
l = Nu(i, o),
h = ku(i, f);
Au(h, ku(o, s));
var d = l,
p = Mu(h, d),
v = Mu(d, d),
g = p * p - v * (Mu(h, h) - 1);
if (!(g < 0)) {
var y = Qa(g),
_ = ku(d, (-p - y) / v);
if ((Au(_, h), (_ = xu(_)), !r)) return _;
var b,
m = t[0],
x = e[0],
w = t[1],
M = e[1];
x < m && ((b = m), (m = x), (x = b));
var N = x - m,
A = Fa(N - Da) < Ra;
if (
(!A && M < w && ((b = w), (w = M), (M = b)),
A || N < Ra
? A
? (w + M > 0) ^ (_[1] < (Fa(_[0] - m) < Ra ? w : M))
: w <= _[1] && _[1] <= M
: (N > Da) ^ (m <= _[0] && _[0] <= x))
) {
var k = ku(d, (-p + y) / v);
return Au(k, h), [_, xu(k)];
}
}
}
function u(n, e) {
var i = r ? t : Da - t,
o = 0;
return (
n < -i ? (o |= 1) : n > i && (o |= 2),
e < -i ? (o |= 4) : e > i && (o |= 8),
o
);
}
return Bc(
o,
function (t) {
var n, e, c, f, s;
return {
lineStart: function () {
(f = c = !1), (s = 1);
},
point: function (l, h) {
var d,
p = [l, h],
v = o(l, h),
g = r ? (v ? 0 : u(l, h)) : v ? u(l + (l < 0 ? Da : -Da), h) : 0;
if (
(!n && (f = c = v) && t.lineStart(),
v !== c &&
(!(d = a(n, p)) || qc(n, d) || qc(p, d)) &&
((p[0] += Ra), (p[1] += Ra), (v = o(p[0], p[1]))),
v !== c)
)
(s = 0),
v
? (t.lineStart(), (d = a(p, n)), t.point(d[0], d[1]))
: ((d = a(n, p)), t.point(d[0], d[1]), t.lineEnd()),
(n = d);
else if (i && n && r ^ v) {
var y;
g & e ||
!(y = a(p, n, !0)) ||
((s = 0),
r
? (t.lineStart(),
t.point(y[0][0], y[0][1]),
t.point(y[1][0], y[1][1]),
t.lineEnd())
: (t.point(y[1][0], y[1][1]),
t.lineEnd(),
t.lineStart(),
t.point(y[0][0], y[0][1])));
}
!v || (n && qc(n, p)) || t.point(p[0], p[1]),
(n = p),
(c = v),
(e = g);
},
lineEnd: function () {
c && t.lineEnd(), (n = null);
},
clean: function () {
return s | ((f && c) << 1);
},
};
},
function (n, r, i, o) {
Pc(o, t, e, i, n, r);
},
r ? [0, -t] : [-Da, t - Da]
);
}
var Xc = 1e9,
Gc = -Xc;
function Vc(t, n, e, r) {
function i(i, o) {
return t <= i && i <= e && n <= o && o <= r;
}
function o(i, o, u, f) {
var s = 0,
l = 0;
if (
null == i ||
(s = a(i, u)) !== (l = a(o, u)) ||
(c(i, o) < 0) ^ (u > 0)
)
do {
f.point(0 === s || 3 === s ? t : e, s > 1 ? r : n);
} while ((s = (s + u + 4) % 4) !== l);
else f.point(o[0], o[1]);
}
function a(r, i) {
return Fa(r[0] - t) < Ra
? i > 0
? 0
: 3
: Fa(r[0] - e) < Ra
? i > 0
? 2
: 1
: Fa(r[1] - n) < Ra
? i > 0
? 1
: 0
: i > 0
? 3
: 2;
}
function u(t, n) {
return c(t.x, n.x);
}
function c(t, n) {
var e = a(t, 1),
r = a(n, 1);
return e !== r
? e - r
: 0 === e
? n[1] - t[1]
: 1 === e
? t[0] - n[0]
: 2 === e
? t[1] - n[1]
: n[0] - t[0];
}
return function (a) {
var c,
f,
s,
l,
h,
d,
p,
v,
g,
y,
_,
b = a,
m = Rc(),
x = {
point: w,
lineStart: function () {
(x.point = M), f && f.push((s = []));
(y = !0), (g = !1), (p = v = NaN);
},
lineEnd: function () {
c && (M(l, h), d && g && m.rejoin(), c.push(m.result()));
(x.point = w), g && b.lineEnd();
},
polygonStart: function () {
(b = m), (c = []), (f = []), (_ = !0);
},
polygonEnd: function () {
var n = (function () {
for (var n = 0, e = 0, i = f.length; e < i; ++e)
for (
var o,
a,
u = f[e],
c = 1,
s = u.length,
l = u[0],
h = l[0],
d = l[1];
c < s;
++c
)
(o = h),
(a = d),
(l = u[c]),
(h = l[0]),
(d = l[1]),
a <= r
? d > r && (h - o) * (r - a) > (d - a) * (t - o) && ++n
: d <= r &&
(h - o) * (r - a) < (d - a) * (t - o) &&
--n;
return n;
})(),
e = _ && n,
i = (c = k(c)).length;
(e || i) &&
(a.polygonStart(),
e && (a.lineStart(), o(null, null, 1, a), a.lineEnd()),
i && Lc(c, u, n, o, a),
a.polygonEnd());
(b = a), (c = f = s = null);
},
};
function w(t, n) {
i(t, n) && b.point(t, n);
}
function M(o, a) {
var u = i(o, a);
if ((f && s.push([o, a]), y))
(l = o),
(h = a),
(d = u),
(y = !1),
u && (b.lineStart(), b.point(o, a));
else if (u && g) b.point(o, a);
else {
var c = [
(p = Math.max(Gc, Math.min(Xc, p))),
(v = Math.max(Gc, Math.min(Xc, v))),
],
m = [
(o = Math.max(Gc, Math.min(Xc, o))),
(a = Math.max(Gc, Math.min(Xc, a))),
];
!(function (t, n, e, r, i, o) {
var a,
u = t[0],
c = t[1],
f = 0,
s = 1,
l = n[0] - u,
h = n[1] - c;
if (((a = e - u), l || !(a > 0))) {
if (((a /= l), l < 0)) {
if (a < f) return;
a < s && (s = a);
} else if (l > 0) {
if (a > s) return;
a > f && (f = a);
}
if (((a = i - u), l || !(a < 0))) {
if (((a /= l), l < 0)) {
if (a > s) return;
a > f && (f = a);
} else if (l > 0) {
if (a < f) return;
a < s && (s = a);
}
if (((a = r - c), h || !(a > 0))) {
if (((a /= h), h < 0)) {
if (a < f) return;
a < s && (s = a);
} else if (h > 0) {
if (a > s) return;
a > f && (f = a);
}
if (((a = o - c), h || !(a < 0))) {
if (((a /= h), h < 0)) {
if (a > s) return;
a > f && (f = a);
} else if (h > 0) {
if (a < f) return;
a < s && (s = a);
}
return (
f > 0 && ((t[0] = u + f * l), (t[1] = c + f * h)),
s < 1 && ((n[0] = u + s * l), (n[1] = c + s * h)),
!0
);
}
}
}
}
})(c, m, t, n, e, r)
? u && (b.lineStart(), b.point(o, a), (_ = !1))
: (g || (b.lineStart(), b.point(c[0], c[1])),
b.point(m[0], m[1]),
u || b.lineEnd(),
(_ = !1));
}
(p = o), (v = a), (g = u);
}
return x;
};
}
var $c,
Wc,
Zc,
Qc = Ea(),
Jc = {
sphere: eu,
point: eu,
lineStart: function () {
(Jc.point = tf), (Jc.lineEnd = Kc);
},
lineEnd: eu,
polygonStart: eu,
polygonEnd: eu,
};
function Kc() {
Jc.point = Jc.lineEnd = eu;
}
function tf(t, n) {
($c = t *= Ba), (Wc = Wa((n *= Ba))), (Zc = ja(n)), (Jc.point = nf);
}
function nf(t, n) {
t *= Ba;
var e = Wa((n *= Ba)),
r = ja(n),
i = Fa(t - $c),
o = ja(i),
a = r * Wa(i),
u = Zc * e - Wc * r * o,
c = Wc * e + Zc * r * o;
Qc.add(Ha(Qa(a * a + u * u), c)), ($c = t), (Wc = e), (Zc = r);
}
function ef(t) {
return Qc.reset(), cu(t, Jc), +Qc;
}
var rf = [null, null],
of = { type: "LineString", coordinates: rf };
function af(t, n) {
return (rf[0] = t), (rf[1] = n), ef(of);
}
var uf = {
Feature: function (t, n) {
return ff(t.geometry, n);
},
FeatureCollection: function (t, n) {
for (var e = t.features, r = -1, i = e.length; ++r < i; )
if (ff(e[r].geometry, n)) return !0;
return !1;
},
},
cf = {
Sphere: function () {
return !0;
},
Point: function (t, n) {
return sf(t.coordinates, n);
},
MultiPoint: function (t, n) {
for (var e = t.coordinates, r = -1, i = e.length; ++r < i; )
if (sf(e[r], n)) return !0;
return !1;
},
LineString: function (t, n) {
return lf(t.coordinates, n);
},
MultiLineString: function (t, n) {
for (var e = t.coordinates, r = -1, i = e.length; ++r < i; )
if (lf(e[r], n)) return !0;
return !1;
},
Polygon: function (t, n) {
return hf(t.coordinates, n);
},
MultiPolygon: function (t, n) {
for (var e = t.coordinates, r = -1, i = e.length; ++r < i; )
if (hf(e[r], n)) return !0;
return !1;
},
GeometryCollection: function (t, n) {
for (var e = t.geometries, r = -1, i = e.length; ++r < i; )
if (ff(e[r], n)) return !0;
return !1;
},
};
function ff(t, n) {
return !(!t || !cf.hasOwnProperty(t.type)) && cf[t.type](t, n);
}
function sf(t, n) {
return 0 === af(t, n);
}
function lf(t, n) {
var e = af(t[0], t[1]);
return af(t[0], n) + af(n, t[1]) <= e + Ra;
}
function hf(t, n) {
return !!Yc(t.map(df), pf(n));
}
function df(t) {
return (t = t.map(pf)).pop(), t;
}
function pf(t) {
return [t[0] * Ba, t[1] * Ba];
}
function vf(t, n, e) {
var r = g(t, n - Ra, e).concat(n);
return function (t) {
return r.map(function (n) {
return [t, n];
});
};
}
function gf(t, n, e) {
var r = g(t, n - Ra, e).concat(n);
return function (t) {
return r.map(function (n) {
return [n, t];
});
};
}
function yf() {
var t,
n,
e,
r,
i,
o,
a,
u,
c,
f,
s,
l,
h = 10,
d = h,
p = 90,
v = 360,
y = 2.5;
function _() {
return { type: "MultiLineString", coordinates: b() };
}
function b() {
return g(Xa(r / p) * p, e, p)
.map(s)
.concat(g(Xa(u / v) * v, a, v).map(l))
.concat(
g(Xa(n / h) * h, t, h)
.filter(function (t) {
return Fa(t % p) > Ra;
})
.map(c)
)
.concat(
g(Xa(o / d) * d, i, d)
.filter(function (t) {
return Fa(t % v) > Ra;
})
.map(f)
);
}
return (
(_.lines = function () {
return b().map(function (t) {
return { type: "LineString", coordinates: t };
});
}),
(_.outline = function () {
return {
type: "Polygon",
coordinates: [
s(r).concat(
l(a).slice(1),
s(e).reverse().slice(1),
l(u).reverse().slice(1)
),
],
};
}),
(_.extent = function (t) {
return arguments.length
? _.extentMajor(t).extentMinor(t)
: _.extentMinor();
}),
(_.extentMajor = function (t) {
return arguments.length
? ((r = +t[0][0]),
(e = +t[1][0]),
(u = +t[0][1]),
(a = +t[1][1]),
r > e && ((t = r), (r = e), (e = t)),
u > a && ((t = u), (u = a), (a = t)),
_.precision(y))
: [
[r, u],
[e, a],
];
}),
(_.extentMinor = function (e) {
return arguments.length
? ((n = +e[0][0]),
(t = +e[1][0]),
(o = +e[0][1]),
(i = +e[1][1]),
n > t && ((e = n), (n = t), (t = e)),
o > i && ((e = o), (o = i), (i = e)),
_.precision(y))
: [
[n, o],
[t, i],
];
}),
(_.step = function (t) {
return arguments.length ? _.stepMajor(t).stepMinor(t) : _.stepMinor();
}),
(_.stepMajor = function (t) {
return arguments.length ? ((p = +t[0]), (v = +t[1]), _) : [p, v];
}),
(_.stepMinor = function (t) {
return arguments.length ? ((h = +t[0]), (d = +t[1]), _) : [h, d];
}),
(_.precision = function (h) {
return arguments.length
? ((y = +h),
(c = vf(o, i, 90)),
(f = gf(n, t, y)),
(s = vf(u, a, 90)),
(l = gf(r, e, y)),
_)
: y;
}),
_.extentMajor([
[-180, -90 + Ra],
[180, 90 - Ra],
]).extentMinor([
[-180, -80 - Ra],
[180, 80 + Ra],
])
);
}
function _f(t) {
return t;
}
var bf,
mf,
xf,
wf,
Mf = Ea(),
Nf = Ea(),
Af = {
point: eu,
lineStart: eu,
lineEnd: eu,
polygonStart: function () {
(Af.lineStart = kf), (Af.lineEnd = Ef);
},
polygonEnd: function () {
(Af.lineStart = Af.lineEnd = Af.point = eu), Mf.add(Fa(Nf)), Nf.reset();
},
result: function () {
var t = Mf / 2;
return Mf.reset(), t;
},
};
function kf() {
Af.point = Sf;
}
function Sf(t, n) {
(Af.point = Tf), (bf = xf = t), (mf = wf = n);
}
function Tf(t, n) {
Nf.add(wf * t - xf * n), (xf = t), (wf = n);
}
function Ef() {
Tf(bf, mf);
}
var Cf = 1 / 0,
Pf = Cf,
zf = -Cf,
Rf = zf,
qf = {
point: function (t, n) {
t < Cf && (Cf = t);
t > zf && (zf = t);
n < Pf && (Pf = n);
n > Rf && (Rf = n);
},
lineStart: eu,
lineEnd: eu,
polygonStart: eu,
polygonEnd: eu,
result: function () {
var t = [
[Cf, Pf],
[zf, Rf],
];
return (zf = Rf = -(Pf = Cf = 1 / 0)), t;
},
};
var Df,
Lf,
Uf,
Of,
Yf = 0,
Bf = 0,
Ff = 0,
If = 0,
Hf = 0,
jf = 0,
Xf = 0,
Gf = 0,
Vf = 0,
$f = {
point: Wf,
lineStart: Zf,
lineEnd: Kf,
polygonStart: function () {
($f.lineStart = ts), ($f.lineEnd = ns);
},
polygonEnd: function () {
($f.point = Wf), ($f.lineStart = Zf), ($f.lineEnd = Kf);
},
result: function () {
var t = Vf
? [Xf / Vf, Gf / Vf]
: jf
? [If / jf, Hf / jf]
: Ff
? [Yf / Ff, Bf / Ff]
: [NaN, NaN];
return (Yf = Bf = Ff = If = Hf = jf = Xf = Gf = Vf = 0), t;
},
};
function Wf(t, n) {
(Yf += t), (Bf += n), ++Ff;
}
function Zf() {
$f.point = Qf;
}
function Qf(t, n) {
($f.point = Jf), Wf((Uf = t), (Of = n));
}
function Jf(t, n) {
var e = t - Uf,
r = n - Of,
i = Qa(e * e + r * r);
(If += (i * (Uf + t)) / 2),
(Hf += (i * (Of + n)) / 2),
(jf += i),
Wf((Uf = t), (Of = n));
}
function Kf() {
$f.point = Wf;
}
function ts() {
$f.point = es;
}
function ns() {
rs(Df, Lf);
}
function es(t, n) {
($f.point = rs), Wf((Df = Uf = t), (Lf = Of = n));
}
function rs(t, n) {
var e = t - Uf,
r = n - Of,
i = Qa(e * e + r * r);
(If += (i * (Uf + t)) / 2),
(Hf += (i * (Of + n)) / 2),
(jf += i),
(Xf += (i = Of * t - Uf * n) * (Uf + t)),
(Gf += i * (Of + n)),
(Vf += 3 * i),
Wf((Uf = t), (Of = n));
}
function is(t) {
this._context = t;
}
is.prototype = {
_radius: 4.5,
pointRadius: function (t) {
return (this._radius = t), this;
},
polygonStart: function () {
this._line = 0;
},
polygonEnd: function () {
this._line = NaN;
},
lineStart: function () {
this._point = 0;
},
lineEnd: function () {
0 === this._line && this._context.closePath(), (this._point = NaN);
},
point: function (t, n) {
switch (this._point) {
case 0:
this._context.moveTo(t, n), (this._point = 1);
break;
case 1:
this._context.lineTo(t, n);
break;
default:
this._context.moveTo(t + this._radius, n),
this._context.arc(t, n, this._radius, 0, Oa);
}
},
result: eu,
};
var os,
as,
us,
cs,
fs,
ss = Ea(),
ls = {
point: eu,
lineStart: function () {
ls.point = hs;
},
lineEnd: function () {
os && ds(as, us), (ls.point = eu);
},
polygonStart: function () {
os = !0;
},
polygonEnd: function () {
os = null;
},
result: function () {
var t = +ss;
return ss.reset(), t;
},
};
function hs(t, n) {
(ls.point = ds), (as = cs = t), (us = fs = n);
}
function ds(t, n) {
(cs -= t), (fs -= n), ss.add(Qa(cs * cs + fs * fs)), (cs = t), (fs = n);
}
function ps() {
this._string = [];
}
function vs(t) {
return (
"m0," +
t +
"a" +
t +
"," +
t +
" 0 1,1 0," +
-2 * t +
"a" +
t +
"," +
t +
" 0 1,1 0," +
2 * t +
"z"
);
}
function gs(t) {
return function (n) {
var e = new ys();
for (var r in t) e[r] = t[r];
return (e.stream = n), e;
};
}
function ys() {}
function _s(t, n, e) {
var r = t.clipExtent && t.clipExtent();
return (
t.scale(150).translate([0, 0]),
null != r && t.clipExtent(null),
cu(e, t.stream(qf)),
n(qf.result()),
null != r && t.clipExtent(r),
t
);
}
function bs(t, n, e) {
return _s(
t,
function (e) {
var r = n[1][0] - n[0][0],
i = n[1][1] - n[0][1],
o = Math.min(r / (e[1][0] - e[0][0]), i / (e[1][1] - e[0][1])),
a = +n[0][0] + (r - o * (e[1][0] + e[0][0])) / 2,
u = +n[0][1] + (i - o * (e[1][1] + e[0][1])) / 2;
t.scale(150 * o).translate([a, u]);
},
e
);
}
function ms(t, n, e) {
return bs(t, [[0, 0], n], e);
}
function xs(t, n, e) {
return _s(
t,
function (e) {
var r = +n,
i = r / (e[1][0] - e[0][0]),
o = (r - i * (e[1][0] + e[0][0])) / 2,
a = -i * e[0][1];
t.scale(150 * i).translate([o, a]);
},
e
);
}
function ws(t, n, e) {
return _s(
t,
function (e) {
var r = +n,
i = r / (e[1][1] - e[0][1]),
o = -i * e[0][0],
a = (r - i * (e[1][1] + e[0][1])) / 2;
t.scale(150 * i).translate([o, a]);
},
e
);
}
(ps.prototype = {
_radius: 4.5,
_circle: vs(4.5),
pointRadius: function (t) {
return (
(t = +t) !== this._radius &&
((this._radius = t), (this._circle = null)),
this
);
},
polygonStart: function () {
this._line = 0;
},
polygonEnd: function () {
this._line = NaN;
},
lineStart: function () {
this._point = 0;
},
lineEnd: function () {
0 === this._line && this._string.push("Z"), (this._point = NaN);
},
point: function (t, n) {
switch (this._point) {
case 0:
this._string.push("M", t, ",", n), (this._point = 1);
break;
case 1:
this._string.push("L", t, ",", n);
break;
default:
null == this._circle && (this._circle = vs(this._radius)),
this._string.push("M", t, ",", n, this._circle);
}
},
result: function () {
if (this._string.length) {
var t = this._string.join("");
return (this._string = []), t;
}
return null;
},
}),
(ys.prototype = {
constructor: ys,
point: function (t, n) {
this.stream.point(t, n);
},
sphere: function () {
this.stream.sphere();
},
lineStart: function () {
this.stream.lineStart();
},
lineEnd: function () {
this.stream.lineEnd();
},
polygonStart: function () {
this.stream.polygonStart();
},
polygonEnd: function () {
this.stream.polygonEnd();
},
});
var Ms = 16,
Ns = ja(30 * Ba);
function As(t, n) {
return +n
? (function (t, n) {
function e(r, i, o, a, u, c, f, s, l, h, d, p, v, g) {
var y = f - r,
_ = s - i,
b = y * y + _ * _;
if (b > 4 * n && v--) {
var m = a + h,
x = u + d,
w = c + p,
M = Qa(m * m + x * x + w * w),
N = tu((w /= M)),
A =
Fa(Fa(w) - 1) < Ra || Fa(o - l) < Ra ? (o + l) / 2 : Ha(x, m),
k = t(A, N),
S = k[0],
T = k[1],
E = S - r,
C = T - i,
P = _ * E - y * C;
((P * P) / b > n ||
Fa((y * E + _ * C) / b - 0.5) > 0.3 ||
a * h + u * d + c * p < Ns) &&
(e(r, i, o, a, u, c, S, T, A, (m /= M), (x /= M), w, v, g),
g.point(S, T),
e(S, T, A, m, x, w, f, s, l, h, d, p, v, g));
}
}
return function (n) {
var r,
i,
o,
a,
u,
c,
f,
s,
l,
h,
d,
p,
v = {
point: g,
lineStart: y,
lineEnd: b,
polygonStart: function () {
n.polygonStart(), (v.lineStart = m);
},
polygonEnd: function () {
n.polygonEnd(), (v.lineStart = y);
},
};
function g(e, r) {
(e = t(e, r)), n.point(e[0], e[1]);
}
function y() {
(s = NaN), (v.point = _), n.lineStart();
}
function _(r, i) {
var o = wu([r, i]),
a = t(r, i);
e(
s,
l,
f,
h,
d,
p,
(s = a[0]),
(l = a[1]),
(f = r),
(h = o[0]),
(d = o[1]),
(p = o[2]),
Ms,
n
),
n.point(s, l);
}
function b() {
(v.point = g), n.lineEnd();
}
function m() {
y(), (v.point = x), (v.lineEnd = w);
}
function x(t, n) {
_((r = t), n),
(i = s),
(o = l),
(a = h),
(u = d),
(c = p),
(v.point = _);
}
function w() {
e(s, l, f, h, d, p, i, o, r, a, u, c, Ms, n),
(v.lineEnd = b),
b();
}
return v;
};
})(t, n)
: (function (t) {
return gs({
point: function (n, e) {
(n = t(n, e)), this.stream.point(n[0], n[1]);
},
});
})(t);
}
var ks = gs({
point: function (t, n) {
this.stream.point(t * Ba, n * Ba);
},
});
function Ss(t, n, e, r) {
var i = ja(r),
o = Wa(r),
a = i * t,
u = o * t,
c = i / t,
f = o / t,
s = (o * e - i * n) / t,
l = (o * n + i * e) / t;
function h(t, r) {
return [a * t - u * r + n, e - u * t - a * r];
}
return (
(h.invert = function (t, n) {
return [c * t - f * n + s, l - f * t - c * n];
}),
h
);
}
function Ts(t) {
return Es(function () {
return t;
})();
}
function Es(t) {
var n,
e,
r,
i,
o,
a,
u,
c,
f,
s,
l = 150,
h = 480,
d = 250,
p = 0,
v = 0,
g = 0,
y = 0,
_ = 0,
b = 0,
m = null,
x = Hc,
w = null,
M = _f,
N = 0.5;
function A(t) {
return c(t[0] * Ba, t[1] * Ba);
}
function k(t) {
return (t = c.invert(t[0], t[1])) && [t[0] * Ya, t[1] * Ya];
}
function S() {
var t = Ss(l, 0, 0, b).apply(null, n(p, v)),
r = (
b
? Ss
: function (t, n, e) {
function r(r, i) {
return [n + t * r, e - t * i];
}
return (
(r.invert = function (r, i) {
return [(r - n) / t, (e - i) / t];
}),
r
);
}
)(l, h - t[0], d - t[1], b);
return (
(e = kc(g, y, _)), (u = Nc(n, r)), (c = Nc(e, u)), (a = As(u, N)), T()
);
}
function T() {
return (f = s = null), A;
}
return (
(A.stream = function (t) {
return f && s === t
? f
: (f = ks(
(function (t) {
return gs({
point: function (n, e) {
var r = t(n, e);
return this.stream.point(r[0], r[1]);
},
});
})(e)(x(a(M((s = t)))))
));
}),
(A.preclip = function (t) {
return arguments.length ? ((x = t), (m = void 0), T()) : x;
}),
(A.postclip = function (t) {
return arguments.length ? ((M = t), (w = r = i = o = null), T()) : M;
}),
(A.clipAngle = function (t) {
return arguments.length
? ((x = +t ? jc((m = t * Ba)) : ((m = null), Hc)), T())
: m * Ya;
}),
(A.clipExtent = function (t) {
return arguments.length
? ((M =
null == t
? ((w = r = i = o = null), _f)
: Vc(
(w = +t[0][0]),
(r = +t[0][1]),
(i = +t[1][0]),
(o = +t[1][1])
)),
T())
: null == w
? null
: [
[w, r],
[i, o],
];
}),
(A.scale = function (t) {
return arguments.length ? ((l = +t), S()) : l;
}),
(A.translate = function (t) {
return arguments.length ? ((h = +t[0]), (d = +t[1]), S()) : [h, d];
}),
(A.center = function (t) {
return arguments.length
? ((p = (t[0] % 360) * Ba), (v = (t[1] % 360) * Ba), S())
: [p * Ya, v * Ya];
}),
(A.rotate = function (t) {
return arguments.length
? ((g = (t[0] % 360) * Ba),
(y = (t[1] % 360) * Ba),
(_ = t.length > 2 ? (t[2] % 360) * Ba : 0),
S())
: [g * Ya, y * Ya, _ * Ya];
}),
(A.angle = function (t) {
return arguments.length ? ((b = (t % 360) * Ba), S()) : b * Ya;
}),
(A.precision = function (t) {
return arguments.length ? ((a = As(u, (N = t * t))), T()) : Qa(N);
}),
(A.fitExtent = function (t, n) {
return bs(A, t, n);
}),
(A.fitSize = function (t, n) {
return ms(A, t, n);
}),
(A.fitWidth = function (t, n) {
return xs(A, t, n);
}),
(A.fitHeight = function (t, n) {
return ws(A, t, n);
}),
function () {
return (n = t.apply(this, arguments)), (A.invert = n.invert && k), S();
}
);
}
function Cs(t) {
var n = 0,
e = Da / 3,
r = Es(t),
i = r(n, e);
return (
(i.parallels = function (t) {
return arguments.length
? r((n = t[0] * Ba), (e = t[1] * Ba))
: [n * Ya, e * Ya];
}),
i
);
}
function Ps(t, n) {
var e = Wa(t),
r = (e + Wa(n)) / 2;
if (Fa(r) < Ra)
return (function (t) {
var n = ja(t);
function e(t, e) {
return [t * n, Wa(e) / n];
}
return (
(e.invert = function (t, e) {
return [t / n, tu(e * n)];
}),
e
);
})(t);
var i = 1 + e * (2 * r - e),
o = Qa(i) / r;
function a(t, n) {
var e = Qa(i - 2 * r * Wa(n)) / r;
return [e * Wa((t *= r)), o - e * ja(t)];
}
return (
(a.invert = function (t, n) {
var e = o - n;
return [
(Ha(t, Fa(e)) / r) * Za(e),
tu((i - (t * t + e * e) * r * r) / (2 * r)),
];
}),
a
);
}
function zs() {
return Cs(Ps).scale(155.424).center([0, 33.6442]);
}
function Rs() {
return zs()
.parallels([29.5, 45.5])
.scale(1070)
.translate([480, 250])
.rotate([96, 0])
.center([-0.6, 38.7]);
}
function qs(t) {
return function (n, e) {
var r = ja(n),
i = ja(e),
o = t(r * i);
return [o * i * Wa(n), o * Wa(e)];
};
}
function Ds(t) {
return function (n, e) {
var r = Qa(n * n + e * e),
i = t(r),
o = Wa(i),
a = ja(i);
return [Ha(n * o, r * a), tu(r && (e * o) / r)];
};
}
var Ls = qs(function (t) {
return Qa(2 / (1 + t));
});
Ls.invert = Ds(function (t) {
return 2 * tu(t / 2);
});
var Us = qs(function (t) {
return (t = Ka(t)) && t / Wa(t);
});
function Os(t, n) {
return [t, Va(Ja((La + n) / 2))];
}
function Ys(t) {
var n,
e,
r,
i = Ts(t),
o = i.center,
a = i.scale,
u = i.translate,
c = i.clipExtent,
f = null;
function s() {
var o = Da * a(),
u = i(Cc(i.rotate()).invert([0, 0]));
return c(
null == f
? [
[u[0] - o, u[1] - o],
[u[0] + o, u[1] + o],
]
: t === Os
? [
[Math.max(u[0] - o, f), n],
[Math.min(u[0] + o, e), r],
]
: [
[f, Math.max(u[1] - o, n)],
[e, Math.min(u[1] + o, r)],
]
);
}
return (
(i.scale = function (t) {
return arguments.length ? (a(t), s()) : a();
}),
(i.translate = function (t) {
return arguments.length ? (u(t), s()) : u();
}),
(i.center = function (t) {
return arguments.length ? (o(t), s()) : o();
}),
(i.clipExtent = function (t) {
return arguments.length
? (null == t
? (f = n = e = r = null)
: ((f = +t[0][0]),
(n = +t[0][1]),
(e = +t[1][0]),
(r = +t[1][1])),
s())
: null == f
? null
: [
[f, n],
[e, r],
];
}),
s()
);
}
function Bs(t) {
return Ja((La + t) / 2);
}
function Fs(t, n) {
var e = ja(t),
r = t === n ? Wa(t) : Va(e / ja(n)) / Va(Bs(n) / Bs(t)),
i = (e * $a(Bs(t), r)) / r;
if (!r) return Os;
function o(t, n) {
i > 0 ? n < -La + Ra && (n = -La + Ra) : n > La - Ra && (n = La - Ra);
var e = i / $a(Bs(n), r);
return [e * Wa(r * t), i - e * ja(r * t)];
}
return (
(o.invert = function (t, n) {
var e = i - n,
o = Za(r) * Qa(t * t + e * e);
return [(Ha(t, Fa(e)) / r) * Za(e), 2 * Ia($a(i / o, 1 / r)) - La];
}),
o
);
}
function Is(t, n) {
return [t, n];
}
function Hs(t, n) {
var e = ja(t),
r = t === n ? Wa(t) : (e - ja(n)) / (n - t),
i = e / r + t;
if (Fa(r) < Ra) return Is;
function o(t, n) {
var e = i - n,
o = r * t;
return [e * Wa(o), i - e * ja(o)];
}
return (
(o.invert = function (t, n) {
var e = i - n;
return [(Ha(t, Fa(e)) / r) * Za(e), i - Za(r) * Qa(t * t + e * e)];
}),
o
);
}
(Us.invert = Ds(function (t) {
return t;
})),
(Os.invert = function (t, n) {
return [t, 2 * Ia(Ga(n)) - La];
}),
(Is.invert = Is);
var js = 1.340264,
Xs = -0.081106,
Gs = 893e-6,
Vs = 0.003796,
$s = Qa(3) / 2;
function Ws(t, n) {
var e = tu($s * Wa(n)),
r = e * e,
i = r * r * r;
return [
(t * ja(e)) / ($s * (js + 3 * Xs * r + i * (7 * Gs + 9 * Vs * r))),
e * (js + Xs * r + i * (Gs + Vs * r)),
];
}
function Zs(t, n) {
var e = ja(n),
r = ja(t) * e;
return [(e * Wa(t)) / r, Wa(n) / r];
}
function Qs(t, n, e, r) {
return 1 === t && 1 === n && 0 === e && 0 === r
? _f
: gs({
point: function (i, o) {
this.stream.point(i * t + e, o * n + r);
},
});
}
function Js(t, n) {
var e = n * n,
r = e * e;
return [
t *
(0.8707 -
0.131979 * e +
r * (r * (0.003971 * e - 0.001529 * r) - 0.013791)),
n *
(1.007226 +
e * (0.015085 + r * (0.028874 * e - 0.044475 - 0.005916 * r))),
];
}
function Ks(t, n) {
return [ja(n) * Wa(t), Wa(n)];
}
function tl(t, n) {
var e = ja(n),
r = 1 + ja(t) * e;
return [(e * Wa(t)) / r, Wa(n) / r];
}
function nl(t, n) {
return [Va(Ja((La + n) / 2)), -t];
}
function el(t, n) {
return t.parent === n.parent ? 1 : 2;
}
function rl(t, n) {
return t + n.x;
}
function il(t, n) {
return Math.max(t, n.y);
}
function ol(t) {
var n = 0,
e = t.children,
r = e && e.length;
if (r) for (; --r >= 0; ) n += e[r].value;
else n = 1;
t.value = n;
}
function al(t, n) {
var e,
r,
i,
o,
a,
u = new sl(t),
c = +t.value && (u.value = t.value),
f = [u];
for (null == n && (n = ul); (e = f.pop()); )
if ((c && (e.value = +e.data.value), (i = n(e.data)) && (a = i.length)))
for (e.children = new Array(a), o = a - 1; o >= 0; --o)
f.push((r = e.children[o] = new sl(i[o]))),
(r.parent = e),
(r.depth = e.depth + 1);
return u.eachBefore(fl);
}
function ul(t) {
return t.children;
}
function cl(t) {
t.data = t.data.data;
}
function fl(t) {
var n = 0;
do {
t.height = n;
} while ((t = t.parent) && t.height < ++n);
}
function sl(t) {
(this.data = t), (this.depth = this.height = 0), (this.parent = null);
}
(Ws.invert = function (t, n) {
for (
var e, r = n, i = r * r, o = i * i * i, a = 0;
a < 12 &&
((o =
(i =
(r -= e =
(r * (js + Xs * i + o * (Gs + Vs * i)) - n) /
(js + 3 * Xs * i + o * (7 * Gs + 9 * Vs * i))) * r) *
i *
i),
!(Fa(e) < qa));
++a
);
return [
($s * t * (js + 3 * Xs * i + o * (7 * Gs + 9 * Vs * i))) / ja(r),
tu(Wa(r) / $s),
];
}),
(Zs.invert = Ds(Ia)),
(Js.invert = function (t, n) {
var e,
r = n,
i = 25;
do {
var o = r * r,
a = o * o;
r -= e =
(r *
(1.007226 +
o * (0.015085 + a * (0.028874 * o - 0.044475 - 0.005916 * a))) -
n) /
(1.007226 +
o * (0.045255 + a * (0.259866 * o - 0.311325 - 0.005916 * 11 * a)));
} while (Fa(e) > Ra && --i > 0);
return [
t /
(0.8707 +
(o = r * r) *
(o * (o * o * o * (0.003971 - 0.001529 * o) - 0.013791) -
0.131979)),
r,
];
}),
(Ks.invert = Ds(tu)),
(tl.invert = Ds(function (t) {
return 2 * Ia(t);
})),
(nl.invert = function (t, n) {
return [-n, 2 * Ia(Ga(t)) - La];
}),
(sl.prototype = al.prototype =
{
constructor: sl,
count: function () {
return this.eachAfter(ol);
},
each: function (t) {
var n,
e,
r,
i,
o = this,
a = [o];
do {
for (n = a.reverse(), a = []; (o = n.pop()); )
if ((t(o), (e = o.children)))
for (r = 0, i = e.length; r < i; ++r) a.push(e[r]);
} while (a.length);
return this;
},
eachAfter: function (t) {
for (var n, e, r, i = this, o = [i], a = []; (i = o.pop()); )
if ((a.push(i), (n = i.children)))
for (e = 0, r = n.length; e < r; ++e) o.push(n[e]);
for (; (i = a.pop()); ) t(i);
return this;
},
eachBefore: function (t) {
for (var n, e, r = this, i = [r]; (r = i.pop()); )
if ((t(r), (n = r.children)))
for (e = n.length - 1; e >= 0; --e) i.push(n[e]);
return this;
},
sum: function (t) {
return this.eachAfter(function (n) {
for (
var e = +t(n.data) || 0, r = n.children, i = r && r.length;
--i >= 0;
)
e += r[i].value;
n.value = e;
});
},
sort: function (t) {
return this.eachBefore(function (n) {
n.children && n.children.sort(t);
});
},
path: function (t) {
for (
var n = this,
e = (function (t, n) {
if (t === n) return t;
var e = t.ancestors(),
r = n.ancestors(),
i = null;
for (t = e.pop(), n = r.pop(); t === n; )
(i = t), (t = e.pop()), (n = r.pop());
return i;
})(n, t),
r = [n];
n !== e;
)
(n = n.parent), r.push(n);
for (var i = r.length; t !== e; ) r.splice(i, 0, t), (t = t.parent);
return r;
},
ancestors: function () {
for (var t = this, n = [t]; (t = t.parent); ) n.push(t);
return n;
},
descendants: function () {
var t = [];
return (
this.each(function (n) {
t.push(n);
}),
t
);
},
leaves: function () {
var t = [];
return (
this.eachBefore(function (n) {
n.children || t.push(n);
}),
t
);
},
links: function () {
var t = this,
n = [];
return (
t.each(function (e) {
e !== t && n.push({ source: e.parent, target: e });
}),
n
);
},
copy: function () {
return al(this).eachBefore(cl);
},
});
var ll = Array.prototype.slice;
function hl(t) {
for (
var n,
e,
r = 0,
i = (t = (function (t) {
for (var n, e, r = t.length; r; )
(e = (Math.random() * r--) | 0),
(n = t[r]),
(t[r] = t[e]),
(t[e] = n);
return t;
})(ll.call(t))).length,
o = [];
r < i;
)
(n = t[r]), e && vl(e, n) ? ++r : ((e = yl((o = dl(o, n)))), (r = 0));
return e;
}
function dl(t, n) {
var e, r;
if (gl(n, t)) return [n];
for (e = 0; e < t.length; ++e)
if (pl(n, t[e]) && gl(_l(t[e], n), t)) return [t[e], n];
for (e = 0; e < t.length - 1; ++e)
for (r = e + 1; r < t.length; ++r)
if (
pl(_l(t[e], t[r]), n) &&
pl(_l(t[e], n), t[r]) &&
pl(_l(t[r], n), t[e]) &&
gl(bl(t[e], t[r], n), t)
)
return [t[e], t[r], n];
throw new Error();
}
function pl(t, n) {
var e = t.r - n.r,
r = n.x - t.x,
i = n.y - t.y;
return e < 0 || e * e < r * r + i * i;
}
function vl(t, n) {
var e = t.r - n.r + 1e-6,
r = n.x - t.x,
i = n.y - t.y;
return e > 0 && e * e > r * r + i * i;
}
function gl(t, n) {
for (var e = 0; e < n.length; ++e) if (!vl(t, n[e])) return !1;
return !0;
}
function yl(t) {
switch (t.length) {
case 1:
return { x: (n = t[0]).x, y: n.y, r: n.r };
case 2:
return _l(t[0], t[1]);
case 3:
return bl(t[0], t[1], t[2]);
}
var n;
}
function _l(t, n) {
var e = t.x,
r = t.y,
i = t.r,
o = n.x,
a = n.y,
u = n.r,
c = o - e,
f = a - r,
s = u - i,
l = Math.sqrt(c * c + f * f);
return {
x: (e + o + (c / l) * s) / 2,
y: (r + a + (f / l) * s) / 2,
r: (l + i + u) / 2,
};
}
function bl(t, n, e) {
var r = t.x,
i = t.y,
o = t.r,
a = n.x,
u = n.y,
c = n.r,
f = e.x,
s = e.y,
l = e.r,
h = r - a,
d = r - f,
p = i - u,
v = i - s,
g = c - o,
y = l - o,
_ = r * r + i * i - o * o,
b = _ - a * a - u * u + c * c,
m = _ - f * f - s * s + l * l,
x = d * p - h * v,
w = (p * m - v * b) / (2 * x) - r,
M = (v * g - p * y) / x,
N = (d * b - h * m) / (2 * x) - i,
A = (h * y - d * g) / x,
k = M * M + A * A - 1,
S = 2 * (o + w * M + N * A),
T = w * w + N * N - o * o,
E = -(k ? (S + Math.sqrt(S * S - 4 * k * T)) / (2 * k) : T / S);
return { x: r + w + M * E, y: i + N + A * E, r: E };
}
function ml(t, n, e) {
var r,
i,
o,
a,
u = t.x - n.x,
c = t.y - n.y,
f = u * u + c * c;
f
? ((i = n.r + e.r),
(i *= i),
(a = t.r + e.r),
i > (a *= a)
? ((r = (f + a - i) / (2 * f)),
(o = Math.sqrt(Math.max(0, a / f - r * r))),
(e.x = t.x - r * u - o * c),
(e.y = t.y - r * c + o * u))
: ((r = (f + i - a) / (2 * f)),
(o = Math.sqrt(Math.max(0, i / f - r * r))),
(e.x = n.x + r * u - o * c),
(e.y = n.y + r * c + o * u)))
: ((e.x = n.x + e.r), (e.y = n.y));
}
function xl(t, n) {
var e = t.r + n.r - 1e-6,
r = n.x - t.x,
i = n.y - t.y;
return e > 0 && e * e > r * r + i * i;
}
function wl(t) {
var n = t._,
e = t.next._,
r = n.r + e.r,
i = (n.x * e.r + e.x * n.r) / r,
o = (n.y * e.r + e.y * n.r) / r;
return i * i + o * o;
}
function Ml(t) {
(this._ = t), (this.next = null), (this.previous = null);
}
function Nl(t) {
if (!(i = t.length)) return 0;
var n, e, r, i, o, a, u, c, f, s, l;
if ((((n = t[0]).x = 0), (n.y = 0), !(i > 1))) return n.r;
if (((e = t[1]), (n.x = -e.r), (e.x = n.r), (e.y = 0), !(i > 2)))
return n.r + e.r;
ml(e, n, (r = t[2])),
(n = new Ml(n)),
(e = new Ml(e)),
(r = new Ml(r)),
(n.next = r.previous = e),
(e.next = n.previous = r),
(r.next = e.previous = n);
t: for (u = 3; u < i; ++u) {
ml(n._, e._, (r = t[u])),
(r = new Ml(r)),
(c = e.next),
(f = n.previous),
(s = e._.r),
(l = n._.r);
do {
if (s <= l) {
if (xl(c._, r._)) {
(e = c), (n.next = e), (e.previous = n), --u;
continue t;
}
(s += c._.r), (c = c.next);
} else {
if (xl(f._, r._)) {
((n = f).next = e), (e.previous = n), --u;
continue t;
}
(l += f._.r), (f = f.previous);
}
} while (c !== f.next);
for (
r.previous = n, r.next = e, n.next = e.previous = e = r, o = wl(n);
(r = r.next) !== e;
)
(a = wl(r)) < o && ((n = r), (o = a));
e = n.next;
}
for (n = [e._], r = e; (r = r.next) !== e; ) n.push(r._);
for (r = hl(n), u = 0; u < i; ++u) ((n = t[u]).x -= r.x), (n.y -= r.y);
return r.r;
}
function Al(t) {
if ("function" != typeof t) throw new Error();
return t;
}
function kl() {
return 0;
}
function Sl(t) {
return function () {
return t;
};
}
function Tl(t) {
return Math.sqrt(t.value);
}
function El(t) {
return function (n) {
n.children || (n.r = Math.max(0, +t(n) || 0));
};
}
function Cl(t, n) {
return function (e) {
if ((r = e.children)) {
var r,
i,
o,
a = r.length,
u = t(e) * n || 0;
if (u) for (i = 0; i < a; ++i) r[i].r += u;
if (((o = Nl(r)), u)) for (i = 0; i < a; ++i) r[i].r -= u;
e.r = o + u;
}
};
}
function Pl(t) {
return function (n) {
var e = n.parent;
(n.r *= t), e && ((n.x = e.x + t * n.x), (n.y = e.y + t * n.y));
};
}
function zl(t) {
(t.x0 = Math.round(t.x0)),
(t.y0 = Math.round(t.y0)),
(t.x1 = Math.round(t.x1)),
(t.y1 = Math.round(t.y1));
}
function Rl(t, n, e, r, i) {
for (
var o,
a = t.children,
u = -1,
c = a.length,
f = t.value && (r - n) / t.value;
++u < c;
)
((o = a[u]).y0 = e), (o.y1 = i), (o.x0 = n), (o.x1 = n += o.value * f);
}
var ql = "$",
Dl = { depth: -1 },
Ll = {};
function Ul(t) {
return t.id;
}
function Ol(t) {
return t.parentId;
}
function Yl(t, n) {
return t.parent === n.parent ? 1 : 2;
}
function Bl(t) {
var n = t.children;
return n ? n[0] : t.t;
}
function Fl(t) {
var n = t.children;
return n ? n[n.length - 1] : t.t;
}
function Il(t, n, e) {
var r = e / (n.i - t.i);
(n.c -= r), (n.s += e), (t.c += r), (n.z += e), (n.m += e);
}
function Hl(t, n, e) {
return t.a.parent === n.parent ? t.a : e;
}
function jl(t, n) {
(this._ = t),
(this.parent = null),
(this.children = null),
(this.A = null),
(this.a = this),
(this.z = 0),
(this.m = 0),
(this.c = 0),
(this.s = 0),
(this.t = null),
(this.i = n);
}
function Xl(t, n, e, r, i) {
for (
var o,
a = t.children,
u = -1,
c = a.length,
f = t.value && (i - e) / t.value;
++u < c;
)
((o = a[u]).x0 = n), (o.x1 = r), (o.y0 = e), (o.y1 = e += o.value * f);
}
jl.prototype = Object.create(sl.prototype);
var Gl = (1 + Math.sqrt(5)) / 2;
function Vl(t, n, e, r, i, o) {
for (
var a,
u,
c,
f,
s,
l,
h,
d,
p,
v,
g,
y = [],
_ = n.children,
b = 0,
m = 0,
x = _.length,
w = n.value;
b < x;
) {
(c = i - e), (f = o - r);
do {
s = _[m++].value;
} while (!s && m < x);
for (
l = h = s,
g = s * s * (v = Math.max(f / c, c / f) / (w * t)),
p = Math.max(h / g, g / l);
m < x;
++m
) {
if (
((s += u = _[m].value),
u < l && (l = u),
u > h && (h = u),
(g = s * s * v),
(d = Math.max(h / g, g / l)) > p)
) {
s -= u;
break;
}
p = d;
}
y.push((a = { value: s, dice: c < f, children: _.slice(b, m) })),
a.dice
? Rl(a, e, r, i, w ? (r += (f * s) / w) : o)
: Xl(a, e, r, w ? (e += (c * s) / w) : i, o),
(w -= s),
(b = m);
}
return y;
}
var $l = (function t(n) {
function e(t, e, r, i, o) {
Vl(n, t, e, r, i, o);
}
return (
(e.ratio = function (n) {
return t((n = +n) > 1 ? n : 1);
}),
e
);
})(Gl);
var Wl = (function t(n) {
function e(t, e, r, i, o) {
if ((a = t._squarify) && a.ratio === n)
for (var a, u, c, f, s, l = -1, h = a.length, d = t.value; ++l < h; ) {
for (
c = (u = a[l]).children, f = u.value = 0, s = c.length;
f < s;
++f
)
u.value += c[f].value;
u.dice
? Rl(u, e, r, i, (r += ((o - r) * u.value) / d))
: Xl(u, e, r, (e += ((i - e) * u.value) / d), o),
(d -= u.value);
}
else (t._squarify = a = Vl(n, t, e, r, i, o)), (a.ratio = n);
}
return (
(e.ratio = function (n) {
return t((n = +n) > 1 ? n : 1);
}),
e
);
})(Gl);
function Zl(t, n) {
return t[0] - n[0] || t[1] - n[1];
}
function Ql(t) {
for (var n, e, r, i = t.length, o = [0, 1], a = 2, u = 2; u < i; ++u) {
for (
;
a > 1 &&
((n = t[o[a - 2]]),
(e = t[o[a - 1]]),
(r = t[u]),
(e[0] - n[0]) * (r[1] - n[1]) - (e[1] - n[1]) * (r[0] - n[0]) <= 0);
)
--a;
o[a++] = u;
}
return o.slice(0, a);
}
function Jl() {
return Math.random();
}
var Kl = (function t(n) {
function e(t, e) {
return (
(t = null == t ? 0 : +t),
(e = null == e ? 1 : +e),
1 === arguments.length ? ((e = t), (t = 0)) : (e -= t),
function () {
return n() * e + t;
}
);
}
return (e.source = t), e;
})(Jl),
th = (function t(n) {
function e(t, e) {
var r, i;
return (
(t = null == t ? 0 : +t),
(e = null == e ? 1 : +e),
function () {
var o;
if (null != r) (o = r), (r = null);
else
do {
(r = 2 * n() - 1), (o = 2 * n() - 1), (i = r * r + o * o);
} while (!i || i > 1);
return t + e * o * Math.sqrt((-2 * Math.log(i)) / i);
}
);
}
return (e.source = t), e;
})(Jl),
nh = (function t(n) {
function e() {
var t = th.source(n).apply(this, arguments);
return function () {
return Math.exp(t());
};
}
return (e.source = t), e;
})(Jl),
eh = (function t(n) {
function e(t) {
return function () {
for (var e = 0, r = 0; r < t; ++r) e += n();
return e;
};
}
return (e.source = t), e;
})(Jl),
rh = (function t(n) {
function e(t) {
var e = eh.source(n)(t);
return function () {
return e() / t;
};
}
return (e.source = t), e;
})(Jl),
ih = (function t(n) {
function e(t) {
return function () {
return -Math.log(1 - n()) / t;
};
}
return (e.source = t), e;
})(Jl);
function oh(t, n) {
switch (arguments.length) {
case 0:
break;
case 1:
this.range(t);
break;
default:
this.range(n).domain(t);
}
return this;
}
function ah(t, n) {
switch (arguments.length) {
case 0:
break;
case 1:
this.interpolator(t);
break;
default:
this.interpolator(n).domain(t);
}
return this;
}
var uh = Array.prototype,
ch = uh.map,
fh = uh.slice,
sh = { name: "implicit" };
function lh() {
var t = Qi(),
n = [],
e = [],
r = sh;
function i(i) {
var o = i + "",
a = t.get(o);
if (!a) {
if (r !== sh) return r;
t.set(o, (a = n.push(i)));
}
return e[(a - 1) % e.length];
}
return (
(i.domain = function (e) {
if (!arguments.length) return n.slice();
(n = []), (t = Qi());
for (var r, o, a = -1, u = e.length; ++a < u; )
t.has((o = (r = e[a]) + "")) || t.set(o, n.push(r));
return i;
}),
(i.range = function (t) {
return arguments.length ? ((e = fh.call(t)), i) : e.slice();
}),
(i.unknown = function (t) {
return arguments.length ? ((r = t), i) : r;
}),
(i.copy = function () {
return lh(n, e).unknown(r);
}),
oh.apply(i, arguments),
i
);
}
function hh() {
var t,
n,
e = lh().unknown(void 0),
r = e.domain,
i = e.range,
o = [0, 1],
a = !1,
u = 0,
c = 0,
f = 0.5;
function s() {
var e = r().length,
s = o[1] < o[0],
l = o[s - 0],
h = o[1 - s];
(t = (h - l) / Math.max(1, e - u + 2 * c)),
a && (t = Math.floor(t)),
(l += (h - l - t * (e - u)) * f),
(n = t * (1 - u)),
a && ((l = Math.round(l)), (n = Math.round(n)));
var d = g(e).map(function (n) {
return l + t * n;
});
return i(s ? d.reverse() : d);
}
return (
delete e.unknown,
(e.domain = function (t) {
return arguments.length ? (r(t), s()) : r();
}),
(e.range = function (t) {
return arguments.length ? ((o = [+t[0], +t[1]]), s()) : o.slice();
}),
(e.rangeRound = function (t) {
return (o = [+t[0], +t[1]]), (a = !0), s();
}),
(e.bandwidth = function () {
return n;
}),
(e.step = function () {
return t;
}),
(e.round = function (t) {
return arguments.length ? ((a = !!t), s()) : a;
}),
(e.padding = function (t) {
return arguments.length ? ((u = Math.min(1, (c = +t))), s()) : u;
}),
(e.paddingInner = function (t) {
return arguments.length ? ((u = Math.min(1, t)), s()) : u;
}),
(e.paddingOuter = function (t) {
return arguments.length ? ((c = +t), s()) : c;
}),
(e.align = function (t) {
return arguments.length ? ((f = Math.max(0, Math.min(1, t))), s()) : f;
}),
(e.copy = function () {
return hh(r(), o).round(a).paddingInner(u).paddingOuter(c).align(f);
}),
oh.apply(s(), arguments)
);
}
function dh(t) {
return +t;
}
var ph = [0, 1];
function vh(t) {
return t;
}
function gh(t, n) {
return (n -= t = +t)
? function (e) {
return (e - t) / n;
}
: ((e = isNaN(n) ? NaN : 0.5),
function () {
return e;
});
var e;
}
function yh(t) {
var n,
e = t[0],
r = t[t.length - 1];
return (
e > r && ((n = e), (e = r), (r = n)),
function (t) {
return Math.max(e, Math.min(r, t));
}
);
}
function _h(t, n, e) {
var r = t[0],
i = t[1],
o = n[0],
a = n[1];
return (
i < r ? ((r = gh(i, r)), (o = e(a, o))) : ((r = gh(r, i)), (o = e(o, a))),
function (t) {
return o(r(t));
}
);
}
function bh(t, n, e) {
var r = Math.min(t.length, n.length) - 1,
o = new Array(r),
a = new Array(r),
u = -1;
for (
t[r] < t[0] && ((t = t.slice().reverse()), (n = n.slice().reverse()));
++u < r;
)
(o[u] = gh(t[u], t[u + 1])), (a[u] = e(n[u], n[u + 1]));
return function (n) {
var e = i(t, n, 1, r) - 1;
return a[e](o[e](n));
};
}
function mh(t, n) {
return n
.domain(t.domain())
.range(t.range())
.interpolate(t.interpolate())
.clamp(t.clamp())
.unknown(t.unknown());
}
function xh() {
var t,
n,
e,
r,
i,
o,
a = ph,
u = ph,
c = ye,
f = vh;
function s() {
return (
(r = Math.min(a.length, u.length) > 2 ? bh : _h), (i = o = null), l
);
}
function l(n) {
return isNaN((n = +n)) ? e : (i || (i = r(a.map(t), u, c)))(t(f(n)));
}
return (
(l.invert = function (e) {
return f(n((o || (o = r(u, a.map(t), he)))(e)));
}),
(l.domain = function (t) {
return arguments.length
? ((a = ch.call(t, dh)), f === vh || (f = yh(a)), s())
: a.slice();
}),
(l.range = function (t) {
return arguments.length ? ((u = fh.call(t)), s()) : u.slice();
}),
(l.rangeRound = function (t) {
return (u = fh.call(t)), (c = _e), s();
}),
(l.clamp = function (t) {
return arguments.length ? ((f = t ? yh(a) : vh), l) : f !== vh;
}),
(l.interpolate = function (t) {
return arguments.length ? ((c = t), s()) : c;
}),
(l.unknown = function (t) {
return arguments.length ? ((e = t), l) : e;
}),
function (e, r) {
return (t = e), (n = r), s();
}
);
}
function wh(t, n) {
return xh()(t, n);
}
function Mh(n, e, r, i) {
var o,
a = w(n, e, r);
switch ((i = ya(null == i ? ",f" : i)).type) {
case "s":
var u = Math.max(Math.abs(n), Math.abs(e));
return (
null != i.precision || isNaN((o = Sa(a, u))) || (i.precision = o),
t.formatPrefix(i, u)
);
case "":
case "e":
case "g":
case "p":
case "r":
null != i.precision ||
isNaN((o = Ta(a, Math.max(Math.abs(n), Math.abs(e))))) ||
(i.precision = o - ("e" === i.type));
break;
case "f":
case "%":
null != i.precision ||
isNaN((o = ka(a))) ||
(i.precision = o - 2 * ("%" === i.type));
}
return t.format(i);
}
function Nh(t) {
var n = t.domain;
return (
(t.ticks = function (t) {
var e = n();
return m(e[0], e[e.length - 1], null == t ? 10 : t);
}),
(t.tickFormat = function (t, e) {
var r = n();
return Mh(r[0], r[r.length - 1], null == t ? 10 : t, e);
}),
(t.nice = function (e) {
null == e && (e = 10);
var r,
i = n(),
o = 0,
a = i.length - 1,
u = i[o],
c = i[a];
return (
c < u && ((r = u), (u = c), (c = r), (r = o), (o = a), (a = r)),
(r = x(u, c, e)) > 0
? (r = x(
(u = Math.floor(u / r) * r),
(c = Math.ceil(c / r) * r),
e
))
: r < 0 &&
(r = x(
(u = Math.ceil(u * r) / r),
(c = Math.floor(c * r) / r),
e
)),
r > 0
? ((i[o] = Math.floor(u / r) * r),
(i[a] = Math.ceil(c / r) * r),
n(i))
: r < 0 &&
((i[o] = Math.ceil(u * r) / r),
(i[a] = Math.floor(c * r) / r),
n(i)),
t
);
}),
t
);
}
function Ah(t, n) {
var e,
r = 0,
i = (t = t.slice()).length - 1,
o = t[r],
a = t[i];
return (
a < o && ((e = r), (r = i), (i = e), (e = o), (o = a), (a = e)),
(t[r] = n.floor(o)),
(t[i] = n.ceil(a)),
t
);
}
function kh(t) {
return Math.log(t);
}
function Sh(t) {
return Math.exp(t);
}
function Th(t) {
return -Math.log(-t);
}
function Eh(t) {
return -Math.exp(-t);
}
function Ch(t) {
return isFinite(t) ? +("1e" + t) : t < 0 ? 0 : t;
}
function Ph(t) {
return function (n) {
return -t(-n);
};
}
function zh(n) {
var e,
r,
i = n(kh, Sh),
o = i.domain,
a = 10;
function u() {
return (
(e = (function (t) {
return t === Math.E
? Math.log
: (10 === t && Math.log10) ||
(2 === t && Math.log2) ||
((t = Math.log(t)),
function (n) {
return Math.log(n) / t;
});
})(a)),
(r = (function (t) {
return 10 === t
? Ch
: t === Math.E
? Math.exp
: function (n) {
return Math.pow(t, n);
};
})(a)),
o()[0] < 0 ? ((e = Ph(e)), (r = Ph(r)), n(Th, Eh)) : n(kh, Sh),
i
);
}
return (
(i.base = function (t) {
return arguments.length ? ((a = +t), u()) : a;
}),
(i.domain = function (t) {
return arguments.length ? (o(t), u()) : o();
}),
(i.ticks = function (t) {
var n,
i = o(),
u = i[0],
c = i[i.length - 1];
(n = c < u) && ((h = u), (u = c), (c = h));
var f,
s,
l,
h = e(u),
d = e(c),
p = null == t ? 10 : +t,
v = [];
if (!(a % 1) && d - h < p) {
if (((h = Math.round(h) - 1), (d = Math.round(d) + 1), u > 0)) {
for (; h < d; ++h)
for (s = 1, f = r(h); s < a; ++s)
if (!((l = f * s) < u)) {
if (l > c) break;
v.push(l);
}
} else
for (; h < d; ++h)
for (s = a - 1, f = r(h); s >= 1; --s)
if (!((l = f * s) < u)) {
if (l > c) break;
v.push(l);
}
} else v = m(h, d, Math.min(d - h, p)).map(r);
return n ? v.reverse() : v;
}),
(i.tickFormat = function (n, o) {
if (
(null == o && (o = 10 === a ? ".0e" : ","),
"function" != typeof o && (o = t.format(o)),
n === 1 / 0)
)
return o;
null == n && (n = 10);
var u = Math.max(1, (a * n) / i.ticks().length);
return function (t) {
var n = t / r(Math.round(e(t)));
return n * a < a - 0.5 && (n *= a), n <= u ? o(t) : "";
};
}),
(i.nice = function () {
return o(
Ah(o(), {
floor: function (t) {
return r(Math.floor(e(t)));
},
ceil: function (t) {
return r(Math.ceil(e(t)));
},
})
);
}),
i
);
}
function Rh(t) {
return function (n) {
return Math.sign(n) * Math.log1p(Math.abs(n / t));
};
}
function qh(t) {
return function (n) {
return Math.sign(n) * Math.expm1(Math.abs(n)) * t;
};
}
function Dh(t) {
var n = 1,
e = t(Rh(n), qh(n));
return (
(e.constant = function (e) {
return arguments.length ? t(Rh((n = +e)), qh(n)) : n;
}),
Nh(e)
);
}
function Lh(t) {
return function (n) {
return n < 0 ? -Math.pow(-n, t) : Math.pow(n, t);
};
}
function Uh(t) {
return t < 0 ? -Math.sqrt(-t) : Math.sqrt(t);
}
function Oh(t) {
return t < 0 ? -t * t : t * t;
}
function Yh(t) {
var n = t(vh, vh),
e = 1;
return (
(n.exponent = function (n) {
return arguments.length
? 1 === (e = +n)
? t(vh, vh)
: 0.5 === e
? t(Uh, Oh)
: t(Lh(e), Lh(1 / e))
: e;
}),
Nh(n)
);
}
function Bh() {
var t = Yh(xh());
return (
(t.copy = function () {
return mh(t, Bh()).exponent(t.exponent());
}),
oh.apply(t, arguments),
t
);
}
var Fh = new Date(),
Ih = new Date();
function Hh(t, n, e, r) {
function i(n) {
return t((n = new Date(+n))), n;
}
return (
(i.floor = i),
(i.ceil = function (e) {
return t((e = new Date(e - 1))), n(e, 1), t(e), e;
}),
(i.round = function (t) {
var n = i(t),
e = i.ceil(t);
return t - n < e - t ? n : e;
}),
(i.offset = function (t, e) {
return n((t = new Date(+t)), null == e ? 1 : Math.floor(e)), t;
}),
(i.range = function (e, r, o) {
var a,
u = [];
if (
((e = i.ceil(e)),
(o = null == o ? 1 : Math.floor(o)),
!(e < r && o > 0))
)
return u;
do {
u.push((a = new Date(+e))), n(e, o), t(e);
} while (a < e && e < r);
return u;
}),
(i.filter = function (e) {
return Hh(
function (n) {
if (n >= n) for (; t(n), !e(n); ) n.setTime(n - 1);
},
function (t, r) {
if (t >= t)
if (r < 0) for (; ++r <= 0; ) for (; n(t, -1), !e(t); );
else for (; --r >= 0; ) for (; n(t, 1), !e(t); );
}
);
}),
e &&
((i.count = function (n, r) {
return (
Fh.setTime(+n), Ih.setTime(+r), t(Fh), t(Ih), Math.floor(e(Fh, Ih))
);
}),
(i.every = function (t) {
return (
(t = Math.floor(t)),
isFinite(t) && t > 0
? t > 1
? i.filter(
r
? function (n) {
return r(n) % t == 0;
}
: function (n) {
return i.count(0, n) % t == 0;
}
)
: i
: null
);
})),
i
);
}
var jh = Hh(
function () {},
function (t, n) {
t.setTime(+t + n);
},
function (t, n) {
return n - t;
}
);
jh.every = function (t) {
return (
(t = Math.floor(t)),
isFinite(t) && t > 0
? t > 1
? Hh(
function (n) {
n.setTime(Math.floor(n / t) * t);
},
function (n, e) {
n.setTime(+n + e * t);
},
function (n, e) {
return (e - n) / t;
}
)
: jh
: null
);
};
var Xh = jh.range,
Gh = 6e4,
Vh = 6048e5,
$h = Hh(
function (t) {
t.setTime(1e3 * Math.floor(t / 1e3));
},
function (t, n) {
t.setTime(+t + 1e3 * n);
},
function (t, n) {
return (n - t) / 1e3;
},
function (t) {
return t.getUTCSeconds();
}
),
Wh = $h.range,
Zh = Hh(
function (t) {
t.setTime(Math.floor(t / Gh) * Gh);
},
function (t, n) {
t.setTime(+t + n * Gh);
},
function (t, n) {
return (n - t) / Gh;
},
function (t) {
return t.getMinutes();
}
),
Qh = Zh.range,
Jh = Hh(
function (t) {
var n = (t.getTimezoneOffset() * Gh) % 36e5;
n < 0 && (n += 36e5), t.setTime(36e5 * Math.floor((+t - n) / 36e5) + n);
},
function (t, n) {
t.setTime(+t + 36e5 * n);
},
function (t, n) {
return (n - t) / 36e5;
},
function (t) {
return t.getHours();
}
),
Kh = Jh.range,
td = Hh(
function (t) {
t.setHours(0, 0, 0, 0);
},
function (t, n) {
t.setDate(t.getDate() + n);
},
function (t, n) {
return (
(n - t - (n.getTimezoneOffset() - t.getTimezoneOffset()) * Gh) / 864e5
);
},
function (t) {
return t.getDate() - 1;
}
),
nd = td.range;
function ed(t) {
return Hh(
function (n) {
n.setDate(n.getDate() - ((n.getDay() + 7 - t) % 7)),
n.setHours(0, 0, 0, 0);
},
function (t, n) {
t.setDate(t.getDate() + 7 * n);
},
function (t, n) {
return (
(n - t - (n.getTimezoneOffset() - t.getTimezoneOffset()) * Gh) / Vh
);
}
);
}
var rd = ed(0),
id = ed(1),
od = ed(2),
ad = ed(3),
ud = ed(4),
cd = ed(5),
fd = ed(6),
sd = rd.range,
ld = id.range,
hd = od.range,
dd = ad.range,
pd = ud.range,
vd = cd.range,
gd = fd.range,
yd = Hh(
function (t) {
t.setDate(1), t.setHours(0, 0, 0, 0);
},
function (t, n) {
t.setMonth(t.getMonth() + n);
},
function (t, n) {
return (
n.getMonth() - t.getMonth() + 12 * (n.getFullYear() - t.getFullYear())
);
},
function (t) {
return t.getMonth();
}
),
_d = yd.range,
bd = Hh(
function (t) {
t.setMonth(0, 1), t.setHours(0, 0, 0, 0);
},
function (t, n) {
t.setFullYear(t.getFullYear() + n);
},
function (t, n) {
return n.getFullYear() - t.getFullYear();
},
function (t) {
return t.getFullYear();
}
);
bd.every = function (t) {
return isFinite((t = Math.floor(t))) && t > 0
? Hh(
function (n) {
n.setFullYear(Math.floor(n.getFullYear() / t) * t),
n.setMonth(0, 1),
n.setHours(0, 0, 0, 0);
},
function (n, e) {
n.setFullYear(n.getFullYear() + e * t);
}
)
: null;
};
var md = bd.range,
xd = Hh(
function (t) {
t.setUTCSeconds(0, 0);
},
function (t, n) {
t.setTime(+t + n * Gh);
},
function (t, n) {
return (n - t) / Gh;
},
function (t) {
return t.getUTCMinutes();
}
),
wd = xd.range,
Md = Hh(
function (t) {
t.setUTCMinutes(0, 0, 0);
},
function (t, n) {
t.setTime(+t + 36e5 * n);
},
function (t, n) {
return (n - t) / 36e5;
},
function (t) {
return t.getUTCHours();
}
),
Nd = Md.range,
Ad = Hh(
function (t) {
t.setUTCHours(0, 0, 0, 0);
},
function (t, n) {
t.setUTCDate(t.getUTCDate() + n);
},
function (t, n) {
return (n - t) / 864e5;
},
function (t) {
return t.getUTCDate() - 1;
}
),
kd = Ad.range;
function Sd(t) {
return Hh(
function (n) {
n.setUTCDate(n.getUTCDate() - ((n.getUTCDay() + 7 - t) % 7)),
n.setUTCHours(0, 0, 0, 0);
},
function (t, n) {
t.setUTCDate(t.getUTCDate() + 7 * n);
},
function (t, n) {
return (n - t) / Vh;
}
);
}
var Td = Sd(0),
Ed = Sd(1),
Cd = Sd(2),
Pd = Sd(3),
zd = Sd(4),
Rd = Sd(5),
qd = Sd(6),
Dd = Td.range,
Ld = Ed.range,
Ud = Cd.range,
Od = Pd.range,
Yd = zd.range,
Bd = Rd.range,
Fd = qd.range,
Id = Hh(
function (t) {
t.setUTCDate(1), t.setUTCHours(0, 0, 0, 0);
},
function (t, n) {
t.setUTCMonth(t.getUTCMonth() + n);
},
function (t, n) {
return (
n.getUTCMonth() -
t.getUTCMonth() +
12 * (n.getUTCFullYear() - t.getUTCFullYear())
);
},
function (t) {
return t.getUTCMonth();
}
),
Hd = Id.range,
jd = Hh(
function (t) {
t.setUTCMonth(0, 1), t.setUTCHours(0, 0, 0, 0);
},
function (t, n) {
t.setUTCFullYear(t.getUTCFullYear() + n);
},
function (t, n) {
return n.getUTCFullYear() - t.getUTCFullYear();
},
function (t) {
return t.getUTCFullYear();
}
);
jd.every = function (t) {
return isFinite((t = Math.floor(t))) && t > 0
? Hh(
function (n) {
n.setUTCFullYear(Math.floor(n.getUTCFullYear() / t) * t),
n.setUTCMonth(0, 1),
n.setUTCHours(0, 0, 0, 0);
},
function (n, e) {
n.setUTCFullYear(n.getUTCFullYear() + e * t);
}
)
: null;
};
var Xd = jd.range;
function Gd(t) {
if (0 <= t.y && t.y < 100) {
var n = new Date(-1, t.m, t.d, t.H, t.M, t.S, t.L);
return n.setFullYear(t.y), n;
}
return new Date(t.y, t.m, t.d, t.H, t.M, t.S, t.L);
}
function Vd(t) {
if (0 <= t.y && t.y < 100) {
var n = new Date(Date.UTC(-1, t.m, t.d, t.H, t.M, t.S, t.L));
return n.setUTCFullYear(t.y), n;
}
return new Date(Date.UTC(t.y, t.m, t.d, t.H, t.M, t.S, t.L));
}
function $d(t) {
return { y: t, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0 };
}
function Wd(t) {
var n = t.dateTime,
e = t.date,
r = t.time,
i = t.periods,
o = t.days,
a = t.shortDays,
u = t.months,
c = t.shortMonths,
f = rp(i),
s = ip(i),
l = rp(o),
h = ip(o),
d = rp(a),
p = ip(a),
v = rp(u),
g = ip(u),
y = rp(c),
_ = ip(c),
b = {
a: function (t) {
return a[t.getDay()];
},
A: function (t) {
return o[t.getDay()];
},
b: function (t) {
return c[t.getMonth()];
},
B: function (t) {
return u[t.getMonth()];
},
c: null,
d: Np,
e: Np,
f: Ep,
H: Ap,
I: kp,
j: Sp,
L: Tp,
m: Cp,
M: Pp,
p: function (t) {
return i[+(t.getHours() >= 12)];
},
Q: ov,
s: av,
S: zp,
u: Rp,
U: qp,
V: Dp,
w: Lp,
W: Up,
x: null,
X: null,
y: Op,
Y: Yp,
Z: Bp,
"%": iv,
},
m = {
a: function (t) {
return a[t.getUTCDay()];
},
A: function (t) {
return o[t.getUTCDay()];
},
b: function (t) {
return c[t.getUTCMonth()];
},
B: function (t) {
return u[t.getUTCMonth()];
},
c: null,
d: Fp,
e: Fp,
f: Gp,
H: Ip,
I: Hp,
j: jp,
L: Xp,
m: Vp,
M: $p,
p: function (t) {
return i[+(t.getUTCHours() >= 12)];
},
Q: ov,
s: av,
S: Wp,
u: Zp,
U: Qp,
V: Jp,
w: Kp,
W: tv,
x: null,
X: null,
y: nv,
Y: ev,
Z: rv,
"%": iv,
},
x = {
a: function (t, n, e) {
var r = d.exec(n.slice(e));
return r ? ((t.w = p[r[0].toLowerCase()]), e + r[0].length) : -1;
},
A: function (t, n, e) {
var r = l.exec(n.slice(e));
return r ? ((t.w = h[r[0].toLowerCase()]), e + r[0].length) : -1;
},
b: function (t, n, e) {
var r = y.exec(n.slice(e));
return r ? ((t.m = _[r[0].toLowerCase()]), e + r[0].length) : -1;
},
B: function (t, n, e) {
var r = v.exec(n.slice(e));
return r ? ((t.m = g[r[0].toLowerCase()]), e + r[0].length) : -1;
},
c: function (t, e, r) {
return N(t, n, e, r);
},
d: pp,
e: pp,
f: mp,
H: gp,
I: gp,
j: vp,
L: bp,
m: dp,
M: yp,
p: function (t, n, e) {
var r = f.exec(n.slice(e));
return r ? ((t.p = s[r[0].toLowerCase()]), e + r[0].length) : -1;
},
Q: wp,
s: Mp,
S: _p,
u: ap,
U: up,
V: cp,
w: op,
W: fp,
x: function (t, n, r) {
return N(t, e, n, r);
},
X: function (t, n, e) {
return N(t, r, n, e);
},
y: lp,
Y: sp,
Z: hp,
"%": xp,
};
function w(t, n) {
return function (e) {
var r,
i,
o,
a = [],
u = -1,
c = 0,
f = t.length;
for (e instanceof Date || (e = new Date(+e)); ++u < f; )
37 === t.charCodeAt(u) &&
(a.push(t.slice(c, u)),
null != (i = Qd[(r = t.charAt(++u))])
? (r = t.charAt(++u))
: (i = "e" === r ? " " : "0"),
(o = n[r]) && (r = o(e, i)),
a.push(r),
(c = u + 1));
return a.push(t.slice(c, u)), a.join("");
};
}
function M(t, n) {
return function (e) {
var r,
i,
o = $d(1900);
if (N(o, t, (e += ""), 0) != e.length) return null;
if ("Q" in o) return new Date(o.Q);
if (("p" in o && (o.H = (o.H % 12) + 12 * o.p), "V" in o)) {
if (o.V < 1 || o.V > 53) return null;
"w" in o || (o.w = 1),
"Z" in o
? ((i = (r = Vd($d(o.y))).getUTCDay()),
(r = i > 4 || 0 === i ? Ed.ceil(r) : Ed(r)),
(r = Ad.offset(r, 7 * (o.V - 1))),
(o.y = r.getUTCFullYear()),
(o.m = r.getUTCMonth()),
(o.d = r.getUTCDate() + ((o.w + 6) % 7)))
: ((i = (r = n($d(o.y))).getDay()),
(r = i > 4 || 0 === i ? id.ceil(r) : id(r)),
(r = td.offset(r, 7 * (o.V - 1))),
(o.y = r.getFullYear()),
(o.m = r.getMonth()),
(o.d = r.getDate() + ((o.w + 6) % 7)));
} else ("W" in o || "U" in o) && ("w" in o || (o.w = "u" in o ? o.u % 7 : "W" in o ? 1 : 0), (i = "Z" in o ? Vd($d(o.y)).getUTCDay() : n($d(o.y)).getDay()), (o.m = 0), (o.d = "W" in o ? ((o.w + 6) % 7) + 7 * o.W - ((i + 5) % 7) : o.w + 7 * o.U - ((i + 6) % 7)));
return "Z" in o
? ((o.H += (o.Z / 100) | 0), (o.M += o.Z % 100), Vd(o))
: n(o);
};
}
function N(t, n, e, r) {
for (var i, o, a = 0, u = n.length, c = e.length; a < u; ) {
if (r >= c) return -1;
if (37 === (i = n.charCodeAt(a++))) {
if (
((i = n.charAt(a++)),
!(o = x[i in Qd ? n.charAt(a++) : i]) || (r = o(t, e, r)) < 0)
)
return -1;
} else if (i != e.charCodeAt(r++)) return -1;
}
return r;
}
return (
(b.x = w(e, b)),
(b.X = w(r, b)),
(b.c = w(n, b)),
(m.x = w(e, m)),
(m.X = w(r, m)),
(m.c = w(n, m)),
{
format: function (t) {
var n = w((t += ""), b);
return (
(n.toString = function () {
return t;
}),
n
);
},
parse: function (t) {
var n = M((t += ""), Gd);
return (
(n.toString = function () {
return t;
}),
n
);
},
utcFormat: function (t) {
var n = w((t += ""), m);
return (
(n.toString = function () {
return t;
}),
n
);
},
utcParse: function (t) {
var n = M(t, Vd);
return (
(n.toString = function () {
return t;
}),
n
);
},
}
);
}
var Zd,
Qd = { "-": "", _: " ", 0: "0" },
Jd = /^\s*\d+/,
Kd = /^%/,
tp = /[\\^$*+?|[\]().{}]/g;
function np(t, n, e) {
var r = t < 0 ? "-" : "",
i = (r ? -t : t) + "",
o = i.length;
return r + (o < e ? new Array(e - o + 1).join(n) + i : i);
}
function ep(t) {
return t.replace(tp, "\\$&");
}
function rp(t) {
return new RegExp("^(?:" + t.map(ep).join("|") + ")", "i");
}
function ip(t) {
for (var n = {}, e = -1, r = t.length; ++e < r; ) n[t[e].toLowerCase()] = e;
return n;
}
function op(t, n, e) {
var r = Jd.exec(n.slice(e, e + 1));
return r ? ((t.w = +r[0]), e + r[0].length) : -1;
}
function ap(t, n, e) {
var r = Jd.exec(n.slice(e, e + 1));
return r ? ((t.u = +r[0]), e + r[0].length) : -1;
}
function up(t, n, e) {
var r = Jd.exec(n.slice(e, e + 2));
return r ? ((t.U = +r[0]), e + r[0].length) : -1;
}
function cp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 2));
return r ? ((t.V = +r[0]), e + r[0].length) : -1;
}
function fp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 2));
return r ? ((t.W = +r[0]), e + r[0].length) : -1;
}
function sp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 4));
return r ? ((t.y = +r[0]), e + r[0].length) : -1;
}
function lp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 2));
return r
? ((t.y = +r[0] + (+r[0] > 68 ? 1900 : 2e3)), e + r[0].length)
: -1;
}
function hp(t, n, e) {
var r = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e, e + 6));
return r
? ((t.Z = r[1] ? 0 : -(r[2] + (r[3] || "00"))), e + r[0].length)
: -1;
}
function dp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 2));
return r ? ((t.m = r[0] - 1), e + r[0].length) : -1;
}
function pp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 2));
return r ? ((t.d = +r[0]), e + r[0].length) : -1;
}
function vp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 3));
return r ? ((t.m = 0), (t.d = +r[0]), e + r[0].length) : -1;
}
function gp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 2));
return r ? ((t.H = +r[0]), e + r[0].length) : -1;
}
function yp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 2));
return r ? ((t.M = +r[0]), e + r[0].length) : -1;
}
function _p(t, n, e) {
var r = Jd.exec(n.slice(e, e + 2));
return r ? ((t.S = +r[0]), e + r[0].length) : -1;
}
function bp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 3));
return r ? ((t.L = +r[0]), e + r[0].length) : -1;
}
function mp(t, n, e) {
var r = Jd.exec(n.slice(e, e + 6));
return r ? ((t.L = Math.floor(r[0] / 1e3)), e + r[0].length) : -1;
}
function xp(t, n, e) {
var r = Kd.exec(n.slice(e, e + 1));
return r ? e + r[0].length : -1;
}
function wp(t, n, e) {
var r = Jd.exec(n.slice(e));
return r ? ((t.Q = +r[0]), e + r[0].length) : -1;
}
function Mp(t, n, e) {
var r = Jd.exec(n.slice(e));
return r ? ((t.Q = 1e3 * +r[0]), e + r[0].length) : -1;
}
function Np(t, n) {
return np(t.getDate(), n, 2);
}
function Ap(t, n) {
return np(t.getHours(), n, 2);
}
function kp(t, n) {
return np(t.getHours() % 12 || 12, n, 2);
}
function Sp(t, n) {
return np(1 + td.count(bd(t), t), n, 3);
}
function Tp(t, n) {
return np(t.getMilliseconds(), n, 3);
}
function Ep(t, n) {
return Tp(t, n) + "000";
}
function Cp(t, n) {
return np(t.getMonth() + 1, n, 2);
}
function Pp(t, n) {
return np(t.getMinutes(), n, 2);
}
function zp(t, n) {
return np(t.getSeconds(), n, 2);
}
function Rp(t) {
var n = t.getDay();
return 0 === n ? 7 : n;
}
function qp(t, n) {
return np(rd.count(bd(t), t), n, 2);
}
function Dp(t, n) {
var e = t.getDay();
return (
(t = e >= 4 || 0 === e ? ud(t) : ud.ceil(t)),
np(ud.count(bd(t), t) + (4 === bd(t).getDay()), n, 2)
);
}
function Lp(t) {
return t.getDay();
}
function Up(t, n) {
return np(id.count(bd(t), t), n, 2);
}
function Op(t, n) {
return np(t.getFullYear() % 100, n, 2);
}
function Yp(t, n) {
return np(t.getFullYear() % 1e4, n, 4);
}
function Bp(t) {
var n = t.getTimezoneOffset();
return (
(n > 0 ? "-" : ((n *= -1), "+")) +
np((n / 60) | 0, "0", 2) +
np(n % 60, "0", 2)
);
}
function Fp(t, n) {
return np(t.getUTCDate(), n, 2);
}
function Ip(t, n) {
return np(t.getUTCHours(), n, 2);
}
function Hp(t, n) {
return np(t.getUTCHours() % 12 || 12, n, 2);
}
function jp(t, n) {
return np(1 + Ad.count(jd(t), t), n, 3);
}
function Xp(t, n) {
return np(t.getUTCMilliseconds(), n, 3);
}
function Gp(t, n) {
return Xp(t, n) + "000";
}
function Vp(t, n) {
return np(t.getUTCMonth() + 1, n, 2);
}
function $p(t, n) {
return np(t.getUTCMinutes(), n, 2);
}
function Wp(t, n) {
return np(t.getUTCSeconds(), n, 2);
}
function Zp(t) {
var n = t.getUTCDay();
return 0 === n ? 7 : n;
}
function Qp(t, n) {
return np(Td.count(jd(t), t), n, 2);
}
function Jp(t, n) {
var e = t.getUTCDay();
return (
(t = e >= 4 || 0 === e ? zd(t) : zd.ceil(t)),
np(zd.count(jd(t), t) + (4 === jd(t).getUTCDay()), n, 2)
);
}
function Kp(t) {
return t.getUTCDay();
}
function tv(t, n) {
return np(Ed.count(jd(t), t), n, 2);
}
function nv(t, n) {
return np(t.getUTCFullYear() % 100, n, 2);
}
function ev(t, n) {
return np(t.getUTCFullYear() % 1e4, n, 4);
}
function rv() {
return "+0000";
}
function iv() {
return "%";
}
function ov(t) {
return +t;
}
function av(t) {
return Math.floor(+t / 1e3);
}
function uv(n) {
return (
(Zd = Wd(n)),
(t.timeFormat = Zd.format),
(t.timeParse = Zd.parse),
(t.utcFormat = Zd.utcFormat),
(t.utcParse = Zd.utcParse),
Zd
);
}
uv({
dateTime: "%x, %X",
date: "%-m/%-d/%Y",
time: "%-I:%M:%S %p",
periods: ["AM", "PM"],
days: [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
],
shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
months: [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
],
shortMonths: [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec",
],
});
var cv = Date.prototype.toISOString
? function (t) {
return t.toISOString();
}
: t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ");
var fv = +new Date("2000-01-01T00:00:00.000Z")
? function (t) {
var n = new Date(t);
return isNaN(n) ? null : n;
}
: t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ"),
sv = 1e3,
lv = 60 * sv,
hv = 60 * lv,
dv = 24 * hv,
pv = 7 * dv,
vv = 30 * dv,
gv = 365 * dv;
function yv(t) {
return new Date(t);
}
function _v(t) {
return t instanceof Date ? +t : +new Date(+t);
}
function bv(t, n, r, i, o, a, u, c, f) {
var s = wh(vh, vh),
l = s.invert,
h = s.domain,
d = f(".%L"),
p = f(":%S"),
v = f("%I:%M"),
g = f("%I %p"),
y = f("%a %d"),
_ = f("%b %d"),
b = f("%B"),
m = f("%Y"),
x = [
[u, 1, sv],
[u, 5, 5 * sv],
[u, 15, 15 * sv],
[u, 30, 30 * sv],
[a, 1, lv],
[a, 5, 5 * lv],
[a, 15, 15 * lv],
[a, 30, 30 * lv],
[o, 1, hv],
[o, 3, 3 * hv],
[o, 6, 6 * hv],
[o, 12, 12 * hv],
[i, 1, dv],
[i, 2, 2 * dv],
[r, 1, pv],
[n, 1, vv],
[n, 3, 3 * vv],
[t, 1, gv],
];
function M(e) {
return (
u(e) < e
? d
: a(e) < e
? p
: o(e) < e
? v
: i(e) < e
? g
: n(e) < e
? r(e) < e
? y
: _
: t(e) < e
? b
: m
)(e);
}
function N(n, r, i, o) {
if ((null == n && (n = 10), "number" == typeof n)) {
var a = Math.abs(i - r) / n,
u = e(function (t) {
return t[2];
}).right(x, a);
u === x.length
? ((o = w(r / gv, i / gv, n)), (n = t))
: u
? ((o = (u = x[a / x[u - 1][2] < x[u][2] / a ? u - 1 : u])[1]),
(n = u[0]))
: ((o = Math.max(w(r, i, n), 1)), (n = c));
}
return null == o ? n : n.every(o);
}
return (
(s.invert = function (t) {
return new Date(l(t));
}),
(s.domain = function (t) {
return arguments.length ? h(ch.call(t, _v)) : h().map(yv);
}),
(s.ticks = function (t, n) {
var e,
r = h(),
i = r[0],
o = r[r.length - 1],
a = o < i;
return (
a && ((e = i), (i = o), (o = e)),
(e = (e = N(t, i, o, n)) ? e.range(i, o + 1) : []),
a ? e.reverse() : e
);
}),
(s.tickFormat = function (t, n) {
return null == n ? M : f(n);
}),
(s.nice = function (t, n) {
var e = h();
return (t = N(t, e[0], e[e.length - 1], n)) ? h(Ah(e, t)) : s;
}),
(s.copy = function () {
return mh(s, bv(t, n, r, i, o, a, u, c, f));
}),
s
);
}
function mv() {
var t,
n,
e,
r,
i,
o = 0,
a = 1,
u = vh,
c = !1;
function f(n) {
return isNaN((n = +n))
? i
: u(
0 === e
? 0.5
: ((n = (r(n) - t) * e), c ? Math.max(0, Math.min(1, n)) : n)
);
}
return (
(f.domain = function (i) {
return arguments.length
? ((t = r((o = +i[0]))),
(n = r((a = +i[1]))),
(e = t === n ? 0 : 1 / (n - t)),
f)
: [o, a];
}),
(f.clamp = function (t) {
return arguments.length ? ((c = !!t), f) : c;
}),
(f.interpolator = function (t) {
return arguments.length ? ((u = t), f) : u;
}),
(f.unknown = function (t) {
return arguments.length ? ((i = t), f) : i;
}),
function (i) {
return (
(r = i), (t = i(o)), (n = i(a)), (e = t === n ? 0 : 1 / (n - t)), f
);
}
);
}
function xv(t, n) {
return n
.domain(t.domain())
.interpolator(t.interpolator())
.clamp(t.clamp())
.unknown(t.unknown());
}
function wv() {
var t = Yh(mv());
return (
(t.copy = function () {
return xv(t, wv()).exponent(t.exponent());
}),
ah.apply(t, arguments)
);
}
function Mv() {
var t,
n,
e,
r,
i,
o,
a,
u = 0,
c = 0.5,
f = 1,
s = vh,
l = !1;
function h(t) {
return isNaN((t = +t))
? a
: ((t = 0.5 + ((t = +o(t)) - n) * (t < n ? r : i)),
s(l ? Math.max(0, Math.min(1, t)) : t));
}
return (
(h.domain = function (a) {
return arguments.length
? ((t = o((u = +a[0]))),
(n = o((c = +a[1]))),
(e = o((f = +a[2]))),
(r = t === n ? 0 : 0.5 / (n - t)),
(i = n === e ? 0 : 0.5 / (e - n)),
h)
: [u, c, f];
}),
(h.clamp = function (t) {
return arguments.length ? ((l = !!t), h) : l;
}),
(h.interpolator = function (t) {
return arguments.length ? ((s = t), h) : s;
}),
(h.unknown = function (t) {
return arguments.length ? ((a = t), h) : a;
}),
function (a) {
return (
(o = a),
(t = a(u)),
(n = a(c)),
(e = a(f)),
(r = t === n ? 0 : 0.5 / (n - t)),
(i = n === e ? 0 : 0.5 / (e - n)),
h
);
}
);
}
function Nv() {
var t = Yh(Mv());
return (
(t.copy = function () {
return xv(t, Nv()).exponent(t.exponent());
}),
ah.apply(t, arguments)
);
}
function Av(t) {
for (var n = (t.length / 6) | 0, e = new Array(n), r = 0; r < n; )
e[r] = "#" + t.slice(6 * r, 6 * ++r);
return e;
}
var kv = Av("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),
Sv = Av("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),
Tv = Av("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),
Ev = Av(
"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"
),
Cv = Av("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),
Pv = Av("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),
zv = Av("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),
Rv = Av("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),
qv = Av(
"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"
);
function Dv(t) {
return ce(t[t.length - 1]);
}
var Lv = new Array(3)
.concat(
"d8b365f5f5f55ab4ac",
"a6611adfc27d80cdc1018571",
"a6611adfc27df5f5f580cdc1018571",
"8c510ad8b365f6e8c3c7eae55ab4ac01665e",
"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e",
"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e",
"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e",
"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30",
"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30"
)
.map(Av),
Uv = Dv(Lv),
Ov = new Array(3)
.concat(
"af8dc3f7f7f77fbf7b",
"7b3294c2a5cfa6dba0008837",
"7b3294c2a5cff7f7f7a6dba0008837",
"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837",
"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837",
"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837",
"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837",
"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b",
"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b"
)
.map(Av),
Yv = Dv(Ov),
Bv = new Array(3)
.concat(
"e9a3c9f7f7f7a1d76a",
"d01c8bf1b6dab8e1864dac26",
"d01c8bf1b6daf7f7f7b8e1864dac26",
"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221",
"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221",
"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221",
"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221",
"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419",
"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419"
)
.map(Av),
Fv = Dv(Bv),
Iv = new Array(3)
.concat(
"998ec3f7f7f7f1a340",
"5e3c99b2abd2fdb863e66101",
"5e3c99b2abd2f7f7f7fdb863e66101",
"542788998ec3d8daebfee0b6f1a340b35806",
"542788998ec3d8daebf7f7f7fee0b6f1a340b35806",
"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806",
"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806",
"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08",
"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08"
)
.map(Av),
Hv = Dv(Iv),
jv = new Array(3)
.concat(
"ef8a62f7f7f767a9cf",
"ca0020f4a58292c5de0571b0",
"ca0020f4a582f7f7f792c5de0571b0",
"b2182bef8a62fddbc7d1e5f067a9cf2166ac",
"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac",
"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac",
"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac",
"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061",
"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061"
)
.map(Av),
Xv = Dv(jv),
Gv = new Array(3)
.concat(
"ef8a62ffffff999999",
"ca0020f4a582bababa404040",
"ca0020f4a582ffffffbababa404040",
"b2182bef8a62fddbc7e0e0e09999994d4d4d",
"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d",
"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d",
"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d",
"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a",
"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a"
)
.map(Av),
Vv = Dv(Gv),
$v = new Array(3)
.concat(
"fc8d59ffffbf91bfdb",
"d7191cfdae61abd9e92c7bb6",
"d7191cfdae61ffffbfabd9e92c7bb6",
"d73027fc8d59fee090e0f3f891bfdb4575b4",
"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4",
"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4",
"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4",
"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695",
"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695"
)
.map(Av),
Wv = Dv($v),
Zv = new Array(3)
.concat(
"fc8d59ffffbf91cf60",
"d7191cfdae61a6d96a1a9641",
"d7191cfdae61ffffbfa6d96a1a9641",
"d73027fc8d59fee08bd9ef8b91cf601a9850",
"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850",
"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850",
"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850",
"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837",
"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837"
)
.map(Av),
Qv = Dv(Zv),
Jv = new Array(3)
.concat(
"fc8d59ffffbf99d594",
"d7191cfdae61abdda42b83ba",
"d7191cfdae61ffffbfabdda42b83ba",
"d53e4ffc8d59fee08be6f59899d5943288bd",
"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd",
"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd",
"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd",
"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2",
"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2"
)
.map(Av),
Kv = Dv(Jv),
tg = new Array(3)
.concat(
"e5f5f999d8c92ca25f",
"edf8fbb2e2e266c2a4238b45",
"edf8fbb2e2e266c2a42ca25f006d2c",
"edf8fbccece699d8c966c2a42ca25f006d2c",
"edf8fbccece699d8c966c2a441ae76238b45005824",
"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824",
"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b"
)
.map(Av),
ng = Dv(tg),
eg = new Array(3)
.concat(
"e0ecf49ebcda8856a7",
"edf8fbb3cde38c96c688419d",
"edf8fbb3cde38c96c68856a7810f7c",
"edf8fbbfd3e69ebcda8c96c68856a7810f7c",
"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b",
"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b",
"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b"
)
.map(Av),
rg = Dv(eg),
ig = new Array(3)
.concat(
"e0f3dba8ddb543a2ca",
"f0f9e8bae4bc7bccc42b8cbe",
"f0f9e8bae4bc7bccc443a2ca0868ac",
"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac",
"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e",
"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e",
"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081"
)
.map(Av),
og = Dv(ig),
ag = new Array(3)
.concat(
"fee8c8fdbb84e34a33",
"fef0d9fdcc8afc8d59d7301f",
"fef0d9fdcc8afc8d59e34a33b30000",
"fef0d9fdd49efdbb84fc8d59e34a33b30000",
"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000",
"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000",
"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000"
)
.map(Av),
ug = Dv(ag),
cg = new Array(3)
.concat(
"ece2f0a6bddb1c9099",
"f6eff7bdc9e167a9cf02818a",
"f6eff7bdc9e167a9cf1c9099016c59",
"f6eff7d0d1e6a6bddb67a9cf1c9099016c59",
"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450",
"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450",
"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636"
)
.map(Av),
fg = Dv(cg),
sg = new Array(3)
.concat(
"ece7f2a6bddb2b8cbe",
"f1eef6bdc9e174a9cf0570b0",
"f1eef6bdc9e174a9cf2b8cbe045a8d",
"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d",
"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b",
"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b",
"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858"
)
.map(Av),
lg = Dv(sg),
hg = new Array(3)
.concat(
"e7e1efc994c7dd1c77",
"f1eef6d7b5d8df65b0ce1256",
"f1eef6d7b5d8df65b0dd1c77980043",
"f1eef6d4b9dac994c7df65b0dd1c77980043",
"f1eef6d4b9dac994c7df65b0e7298ace125691003f",
"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f",
"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f"
)
.map(Av),
dg = Dv(hg),
pg = new Array(3)
.concat(
"fde0ddfa9fb5c51b8a",
"feebe2fbb4b9f768a1ae017e",
"feebe2fbb4b9f768a1c51b8a7a0177",
"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177",
"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177",
"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177",
"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a"
)
.map(Av),
vg = Dv(pg),
gg = new Array(3)
.concat(
"edf8b17fcdbb2c7fb8",
"ffffcca1dab441b6c4225ea8",
"ffffcca1dab441b6c42c7fb8253494",
"ffffccc7e9b47fcdbb41b6c42c7fb8253494",
"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84",
"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84",
"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58"
)
.map(Av),
yg = Dv(gg),
_g = new Array(3)
.concat(
"f7fcb9addd8e31a354",
"ffffccc2e69978c679238443",
"ffffccc2e69978c67931a354006837",
"ffffccd9f0a3addd8e78c67931a354006837",
"ffffccd9f0a3addd8e78c67941ab5d238443005a32",
"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32",
"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529"
)
.map(Av),
bg = Dv(_g),
mg = new Array(3)
.concat(
"fff7bcfec44fd95f0e",
"ffffd4fed98efe9929cc4c02",
"ffffd4fed98efe9929d95f0e993404",
"ffffd4fee391fec44ffe9929d95f0e993404",
"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04",
"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04",
"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506"
)
.map(Av),
xg = Dv(mg),
wg = new Array(3)
.concat(
"ffeda0feb24cf03b20",
"ffffb2fecc5cfd8d3ce31a1c",
"ffffb2fecc5cfd8d3cf03b20bd0026",
"ffffb2fed976feb24cfd8d3cf03b20bd0026",
"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026",
"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026",
"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026"
)
.map(Av),
Mg = Dv(wg),
Ng = new Array(3)
.concat(
"deebf79ecae13182bd",
"eff3ffbdd7e76baed62171b5",
"eff3ffbdd7e76baed63182bd08519c",
"eff3ffc6dbef9ecae16baed63182bd08519c",
"eff3ffc6dbef9ecae16baed64292c62171b5084594",
"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594",
"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b"
)
.map(Av),
Ag = Dv(Ng),
kg = new Array(3)
.concat(
"e5f5e0a1d99b31a354",
"edf8e9bae4b374c476238b45",
"edf8e9bae4b374c47631a354006d2c",
"edf8e9c7e9c0a1d99b74c47631a354006d2c",
"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32",
"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32",
"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b"
)
.map(Av),
Sg = Dv(kg),
Tg = new Array(3)
.concat(
"f0f0f0bdbdbd636363",
"f7f7f7cccccc969696525252",
"f7f7f7cccccc969696636363252525",
"f7f7f7d9d9d9bdbdbd969696636363252525",
"f7f7f7d9d9d9bdbdbd969696737373525252252525",
"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525",
"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000"
)
.map(Av),
Eg = Dv(Tg),
Cg = new Array(3)
.concat(
"efedf5bcbddc756bb1",
"f2f0f7cbc9e29e9ac86a51a3",
"f2f0f7cbc9e29e9ac8756bb154278f",
"f2f0f7dadaebbcbddc9e9ac8756bb154278f",
"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486",
"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486",
"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d"
)
.map(Av),
Pg = Dv(Cg),
zg = new Array(3)
.concat(
"fee0d2fc9272de2d26",
"fee5d9fcae91fb6a4acb181d",
"fee5d9fcae91fb6a4ade2d26a50f15",
"fee5d9fcbba1fc9272fb6a4ade2d26a50f15",
"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d",
"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d",
"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d"
)
.map(Av),
Rg = Dv(zg),
qg = new Array(3)
.concat(
"fee6cefdae6be6550d",
"feeddefdbe85fd8d3cd94701",
"feeddefdbe85fd8d3ce6550da63603",
"feeddefdd0a2fdae6bfd8d3ce6550da63603",
"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04",
"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04",
"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704"
)
.map(Av),
Dg = Dv(qg),
Lg = He(Zn(300, 0.5, 0), Zn(-240, 0.5, 1)),
Ug = He(Zn(-100, 0.75, 0.35), Zn(80, 1.5, 0.8)),
Og = He(Zn(260, 0.75, 0.35), Zn(80, 1.5, 0.8)),
Yg = Zn();
var Bg = gn(),
Fg = Math.PI / 3,
Ig = (2 * Math.PI) / 3;
function Hg(t) {
var n = t.length;
return function (e) {
return t[Math.max(0, Math.min(n - 1, Math.floor(e * n)))];
};
}
var jg = Hg(
Av(
"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"
)
),
Xg = Hg(
Av(
"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"
)
),
Gg = Hg(
Av(
"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"
)
),
Vg = Hg(
Av(
"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"
)
);
function $g(t) {
return function () {
return t;
};
}
var Wg = Math.abs,
Zg = Math.atan2,
Qg = Math.cos,
Jg = Math.max,
Kg = Math.min,
ty = Math.sin,
ny = Math.sqrt,
ey = 1e-12,
ry = Math.PI,
iy = ry / 2,
oy = 2 * ry;
function ay(t) {
return t >= 1 ? iy : t <= -1 ? -iy : Math.asin(t);
}
function uy(t) {
return t.innerRadius;
}
function cy(t) {
return t.outerRadius;
}
function fy(t) {
return t.startAngle;
}
function sy(t) {
return t.endAngle;
}
function ly(t) {
return t && t.padAngle;
}
function hy(t, n, e, r, i, o, a) {
var u = t - e,
c = n - r,
f = (a ? o : -o) / ny(u * u + c * c),
s = f * c,
l = -f * u,
h = t + s,
d = n + l,
p = e + s,
v = r + l,
g = (h + p) / 2,
y = (d + v) / 2,
_ = p - h,
b = v - d,
m = _ * _ + b * b,
x = i - o,
w = h * v - p * d,
M = (b < 0 ? -1 : 1) * ny(Jg(0, x * x * m - w * w)),
N = (w * b - _ * M) / m,
A = (-w * _ - b * M) / m,
k = (w * b + _ * M) / m,
S = (-w * _ + b * M) / m,
T = N - g,
E = A - y,
C = k - g,
P = S - y;
return (
T * T + E * E > C * C + P * P && ((N = k), (A = S)),
{
cx: N,
cy: A,
x01: -s,
y01: -l,
x11: N * (i / x - 1),
y11: A * (i / x - 1),
}
);
}
function dy(t) {
this._context = t;
}
function py(t) {
return new dy(t);
}
function vy(t) {
return t[0];
}
function gy(t) {
return t[1];
}
function yy() {
var t = vy,
n = gy,
e = $g(!0),
r = null,
i = py,
o = null;
function a(a) {
var u,
c,
f,
s = a.length,
l = !1;
for (null == r && (o = i((f = ji()))), u = 0; u <= s; ++u)
!(u < s && e((c = a[u]), u, a)) === l &&
((l = !l) ? o.lineStart() : o.lineEnd()),
l && o.point(+t(c, u, a), +n(c, u, a));
if (f) return (o = null), f + "" || null;
}
return (
(a.x = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : $g(+n)), a)
: t;
}),
(a.y = function (t) {
return arguments.length
? ((n = "function" == typeof t ? t : $g(+t)), a)
: n;
}),
(a.defined = function (t) {
return arguments.length
? ((e = "function" == typeof t ? t : $g(!!t)), a)
: e;
}),
(a.curve = function (t) {
return arguments.length ? ((i = t), null != r && (o = i(r)), a) : i;
}),
(a.context = function (t) {
return arguments.length
? (null == t ? (r = o = null) : (o = i((r = t))), a)
: r;
}),
a
);
}
function _y() {
var t = vy,
n = null,
e = $g(0),
r = gy,
i = $g(!0),
o = null,
a = py,
u = null;
function c(c) {
var f,
s,
l,
h,
d,
p = c.length,
v = !1,
g = new Array(p),
y = new Array(p);
for (null == o && (u = a((d = ji()))), f = 0; f <= p; ++f) {
if (!(f < p && i((h = c[f]), f, c)) === v)
if ((v = !v)) (s = f), u.areaStart(), u.lineStart();
else {
for (u.lineEnd(), u.lineStart(), l = f - 1; l >= s; --l)
u.point(g[l], y[l]);
u.lineEnd(), u.areaEnd();
}
v &&
((g[f] = +t(h, f, c)),
(y[f] = +e(h, f, c)),
u.point(n ? +n(h, f, c) : g[f], r ? +r(h, f, c) : y[f]));
}
if (d) return (u = null), d + "" || null;
}
function f() {
return yy().defined(i).curve(a).context(o);
}
return (
(c.x = function (e) {
return arguments.length
? ((t = "function" == typeof e ? e : $g(+e)), (n = null), c)
: t;
}),
(c.x0 = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : $g(+n)), c)
: t;
}),
(c.x1 = function (t) {
return arguments.length
? ((n = null == t ? null : "function" == typeof t ? t : $g(+t)), c)
: n;
}),
(c.y = function (t) {
return arguments.length
? ((e = "function" == typeof t ? t : $g(+t)), (r = null), c)
: e;
}),
(c.y0 = function (t) {
return arguments.length
? ((e = "function" == typeof t ? t : $g(+t)), c)
: e;
}),
(c.y1 = function (t) {
return arguments.length
? ((r = null == t ? null : "function" == typeof t ? t : $g(+t)), c)
: r;
}),
(c.lineX0 = c.lineY0 =
function () {
return f().x(t).y(e);
}),
(c.lineY1 = function () {
return f().x(t).y(r);
}),
(c.lineX1 = function () {
return f().x(n).y(e);
}),
(c.defined = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : $g(!!t)), c)
: i;
}),
(c.curve = function (t) {
return arguments.length ? ((a = t), null != o && (u = a(o)), c) : a;
}),
(c.context = function (t) {
return arguments.length
? (null == t ? (o = u = null) : (u = a((o = t))), c)
: o;
}),
c
);
}
function by(t, n) {
return n < t ? -1 : n > t ? 1 : n >= t ? 0 : NaN;
}
function my(t) {
return t;
}
dy.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
this._point = 0;
},
lineEnd: function () {
(this._line || (0 !== this._line && 1 === this._point)) &&
this._context.closePath(),
(this._line = 1 - this._line);
},
point: function (t, n) {
switch (((t = +t), (n = +n), this._point)) {
case 0:
(this._point = 1),
this._line
? this._context.lineTo(t, n)
: this._context.moveTo(t, n);
break;
case 1:
this._point = 2;
default:
this._context.lineTo(t, n);
}
},
};
var xy = My(py);
function wy(t) {
this._curve = t;
}
function My(t) {
function n(n) {
return new wy(t(n));
}
return (n._curve = t), n;
}
function Ny(t) {
var n = t.curve;
return (
(t.angle = t.x),
delete t.x,
(t.radius = t.y),
delete t.y,
(t.curve = function (t) {
return arguments.length ? n(My(t)) : n()._curve;
}),
t
);
}
function Ay() {
return Ny(yy().curve(xy));
}
function ky() {
var t = _y().curve(xy),
n = t.curve,
e = t.lineX0,
r = t.lineX1,
i = t.lineY0,
o = t.lineY1;
return (
(t.angle = t.x),
delete t.x,
(t.startAngle = t.x0),
delete t.x0,
(t.endAngle = t.x1),
delete t.x1,
(t.radius = t.y),
delete t.y,
(t.innerRadius = t.y0),
delete t.y0,
(t.outerRadius = t.y1),
delete t.y1,
(t.lineStartAngle = function () {
return Ny(e());
}),
delete t.lineX0,
(t.lineEndAngle = function () {
return Ny(r());
}),
delete t.lineX1,
(t.lineInnerRadius = function () {
return Ny(i());
}),
delete t.lineY0,
(t.lineOuterRadius = function () {
return Ny(o());
}),
delete t.lineY1,
(t.curve = function (t) {
return arguments.length ? n(My(t)) : n()._curve;
}),
t
);
}
function Sy(t, n) {
return [(n = +n) * Math.cos((t -= Math.PI / 2)), n * Math.sin(t)];
}
wy.prototype = {
areaStart: function () {
this._curve.areaStart();
},
areaEnd: function () {
this._curve.areaEnd();
},
lineStart: function () {
this._curve.lineStart();
},
lineEnd: function () {
this._curve.lineEnd();
},
point: function (t, n) {
this._curve.point(n * Math.sin(t), n * -Math.cos(t));
},
};
var Ty = Array.prototype.slice;
function Ey(t) {
return t.source;
}
function Cy(t) {
return t.target;
}
function Py(t) {
var n = Ey,
e = Cy,
r = vy,
i = gy,
o = null;
function a() {
var a,
u = Ty.call(arguments),
c = n.apply(this, u),
f = e.apply(this, u);
if (
(o || (o = a = ji()),
t(
o,
+r.apply(this, ((u[0] = c), u)),
+i.apply(this, u),
+r.apply(this, ((u[0] = f), u)),
+i.apply(this, u)
),
a)
)
return (o = null), a + "" || null;
}
return (
(a.source = function (t) {
return arguments.length ? ((n = t), a) : n;
}),
(a.target = function (t) {
return arguments.length ? ((e = t), a) : e;
}),
(a.x = function (t) {
return arguments.length
? ((r = "function" == typeof t ? t : $g(+t)), a)
: r;
}),
(a.y = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : $g(+t)), a)
: i;
}),
(a.context = function (t) {
return arguments.length ? ((o = null == t ? null : t), a) : o;
}),
a
);
}
function zy(t, n, e, r, i) {
t.moveTo(n, e), t.bezierCurveTo((n = (n + r) / 2), e, n, i, r, i);
}
function Ry(t, n, e, r, i) {
t.moveTo(n, e), t.bezierCurveTo(n, (e = (e + i) / 2), r, e, r, i);
}
function qy(t, n, e, r, i) {
var o = Sy(n, e),
a = Sy(n, (e = (e + i) / 2)),
u = Sy(r, e),
c = Sy(r, i);
t.moveTo(o[0], o[1]), t.bezierCurveTo(a[0], a[1], u[0], u[1], c[0], c[1]);
}
var Dy = {
draw: function (t, n) {
var e = Math.sqrt(n / ry);
t.moveTo(e, 0), t.arc(0, 0, e, 0, oy);
},
},
Ly = {
draw: function (t, n) {
var e = Math.sqrt(n / 5) / 2;
t.moveTo(-3 * e, -e),
t.lineTo(-e, -e),
t.lineTo(-e, -3 * e),
t.lineTo(e, -3 * e),
t.lineTo(e, -e),
t.lineTo(3 * e, -e),
t.lineTo(3 * e, e),
t.lineTo(e, e),
t.lineTo(e, 3 * e),
t.lineTo(-e, 3 * e),
t.lineTo(-e, e),
t.lineTo(-3 * e, e),
t.closePath();
},
},
Uy = Math.sqrt(1 / 3),
Oy = 2 * Uy,
Yy = {
draw: function (t, n) {
var e = Math.sqrt(n / Oy),
r = e * Uy;
t.moveTo(0, -e),
t.lineTo(r, 0),
t.lineTo(0, e),
t.lineTo(-r, 0),
t.closePath();
},
},
By = Math.sin(ry / 10) / Math.sin((7 * ry) / 10),
Fy = Math.sin(oy / 10) * By,
Iy = -Math.cos(oy / 10) * By,
Hy = {
draw: function (t, n) {
var e = Math.sqrt(0.8908130915292852 * n),
r = Fy * e,
i = Iy * e;
t.moveTo(0, -e), t.lineTo(r, i);
for (var o = 1; o < 5; ++o) {
var a = (oy * o) / 5,
u = Math.cos(a),
c = Math.sin(a);
t.lineTo(c * e, -u * e), t.lineTo(u * r - c * i, c * r + u * i);
}
t.closePath();
},
},
jy = {
draw: function (t, n) {
var e = Math.sqrt(n),
r = -e / 2;
t.rect(r, r, e, e);
},
},
Xy = Math.sqrt(3),
Gy = {
draw: function (t, n) {
var e = -Math.sqrt(n / (3 * Xy));
t.moveTo(0, 2 * e),
t.lineTo(-Xy * e, -e),
t.lineTo(Xy * e, -e),
t.closePath();
},
},
Vy = Math.sqrt(3) / 2,
$y = 1 / Math.sqrt(12),
Wy = 3 * ($y / 2 + 1),
Zy = {
draw: function (t, n) {
var e = Math.sqrt(n / Wy),
r = e / 2,
i = e * $y,
o = r,
a = e * $y + e,
u = -o,
c = a;
t.moveTo(r, i),
t.lineTo(o, a),
t.lineTo(u, c),
t.lineTo(-0.5 * r - Vy * i, Vy * r + -0.5 * i),
t.lineTo(-0.5 * o - Vy * a, Vy * o + -0.5 * a),
t.lineTo(-0.5 * u - Vy * c, Vy * u + -0.5 * c),
t.lineTo(-0.5 * r + Vy * i, -0.5 * i - Vy * r),
t.lineTo(-0.5 * o + Vy * a, -0.5 * a - Vy * o),
t.lineTo(-0.5 * u + Vy * c, -0.5 * c - Vy * u),
t.closePath();
},
},
Qy = [Dy, Ly, Yy, jy, Hy, Gy, Zy];
function Jy() {}
function Ky(t, n, e) {
t._context.bezierCurveTo(
(2 * t._x0 + t._x1) / 3,
(2 * t._y0 + t._y1) / 3,
(t._x0 + 2 * t._x1) / 3,
(t._y0 + 2 * t._y1) / 3,
(t._x0 + 4 * t._x1 + n) / 6,
(t._y0 + 4 * t._y1 + e) / 6
);
}
function t_(t) {
this._context = t;
}
function n_(t) {
this._context = t;
}
function e_(t) {
this._context = t;
}
function r_(t, n) {
(this._basis = new t_(t)), (this._beta = n);
}
(t_.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
(this._x0 = this._x1 = this._y0 = this._y1 = NaN), (this._point = 0);
},
lineEnd: function () {
switch (this._point) {
case 3:
Ky(this, this._x1, this._y1);
case 2:
this._context.lineTo(this._x1, this._y1);
}
(this._line || (0 !== this._line && 1 === this._point)) &&
this._context.closePath(),
(this._line = 1 - this._line);
},
point: function (t, n) {
switch (((t = +t), (n = +n), this._point)) {
case 0:
(this._point = 1),
this._line
? this._context.lineTo(t, n)
: this._context.moveTo(t, n);
break;
case 1:
this._point = 2;
break;
case 2:
(this._point = 3),
this._context.lineTo(
(5 * this._x0 + this._x1) / 6,
(5 * this._y0 + this._y1) / 6
);
default:
Ky(this, t, n);
}
(this._x0 = this._x1),
(this._x1 = t),
(this._y0 = this._y1),
(this._y1 = n);
},
}),
(n_.prototype = {
areaStart: Jy,
areaEnd: Jy,
lineStart: function () {
(this._x0 =
this._x1 =
this._x2 =
this._x3 =
this._x4 =
this._y0 =
this._y1 =
this._y2 =
this._y3 =
this._y4 =
NaN),
(this._point = 0);
},
lineEnd: function () {
switch (this._point) {
case 1:
this._context.moveTo(this._x2, this._y2), this._context.closePath();
break;
case 2:
this._context.moveTo(
(this._x2 + 2 * this._x3) / 3,
(this._y2 + 2 * this._y3) / 3
),
this._context.lineTo(
(this._x3 + 2 * this._x2) / 3,
(this._y3 + 2 * this._y2) / 3
),
this._context.closePath();
break;
case 3:
this.point(this._x2, this._y2),
this.point(this._x3, this._y3),
this.point(this._x4, this._y4);
}
},
point: function (t, n) {
switch (((t = +t), (n = +n), this._point)) {
case 0:
(this._point = 1), (this._x2 = t), (this._y2 = n);
break;
case 1:
(this._point = 2), (this._x3 = t), (this._y3 = n);
break;
case 2:
(this._point = 3),
(this._x4 = t),
(this._y4 = n),
this._context.moveTo(
(this._x0 + 4 * this._x1 + t) / 6,
(this._y0 + 4 * this._y1 + n) / 6
);
break;
default:
Ky(this, t, n);
}
(this._x0 = this._x1),
(this._x1 = t),
(this._y0 = this._y1),
(this._y1 = n);
},
}),
(e_.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
(this._x0 = this._x1 = this._y0 = this._y1 = NaN), (this._point = 0);
},
lineEnd: function () {
(this._line || (0 !== this._line && 3 === this._point)) &&
this._context.closePath(),
(this._line = 1 - this._line);
},
point: function (t, n) {
switch (((t = +t), (n = +n), this._point)) {
case 0:
this._point = 1;
break;
case 1:
this._point = 2;
break;
case 2:
this._point = 3;
var e = (this._x0 + 4 * this._x1 + t) / 6,
r = (this._y0 + 4 * this._y1 + n) / 6;
this._line
? this._context.lineTo(e, r)
: this._context.moveTo(e, r);
break;
case 3:
this._point = 4;
default:
Ky(this, t, n);
}
(this._x0 = this._x1),
(this._x1 = t),
(this._y0 = this._y1),
(this._y1 = n);
},
}),
(r_.prototype = {
lineStart: function () {
(this._x = []), (this._y = []), this._basis.lineStart();
},
lineEnd: function () {
var t = this._x,
n = this._y,
e = t.length - 1;
if (e > 0)
for (
var r, i = t[0], o = n[0], a = t[e] - i, u = n[e] - o, c = -1;
++c <= e;
)
(r = c / e),
this._basis.point(
this._beta * t[c] + (1 - this._beta) * (i + r * a),
this._beta * n[c] + (1 - this._beta) * (o + r * u)
);
(this._x = this._y = null), this._basis.lineEnd();
},
point: function (t, n) {
this._x.push(+t), this._y.push(+n);
},
});
var i_ = (function t(n) {
function e(t) {
return 1 === n ? new t_(t) : new r_(t, n);
}
return (
(e.beta = function (n) {
return t(+n);
}),
e
);
})(0.85);
function o_(t, n, e) {
t._context.bezierCurveTo(
t._x1 + t._k * (t._x2 - t._x0),
t._y1 + t._k * (t._y2 - t._y0),
t._x2 + t._k * (t._x1 - n),
t._y2 + t._k * (t._y1 - e),
t._x2,
t._y2
);
}
function a_(t, n) {
(this._context = t), (this._k = (1 - n) / 6);
}
a_.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
(this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN),
(this._point = 0);
},
lineEnd: function () {
switch (this._point) {
case 2:
this._context.lineTo(this._x2, this._y2);
break;
case 3:
o_(this, this._x1, this._y1);
}
(this._line || (0 !== this._line && 1 === this._point)) &&
this._context.closePath(),
(this._line = 1 - this._line);
},
point: function (t, n) {
switch (((t = +t), (n = +n), this._point)) {
case 0:
(this._point = 1),
this._line
? this._context.lineTo(t, n)
: this._context.moveTo(t, n);
break;
case 1:
(this._point = 2), (this._x1 = t), (this._y1 = n);
break;
case 2:
this._point = 3;
default:
o_(this, t, n);
}
(this._x0 = this._x1),
(this._x1 = this._x2),
(this._x2 = t),
(this._y0 = this._y1),
(this._y1 = this._y2),
(this._y2 = n);
},
};
var u_ = (function t(n) {
function e(t) {
return new a_(t, n);
}
return (
(e.tension = function (n) {
return t(+n);
}),
e
);
})(0);
function c_(t, n) {
(this._context = t), (this._k = (1 - n) / 6);
}
c_.prototype = {
areaStart: Jy,
areaEnd: Jy,
lineStart: function () {
(this._x0 =
this._x1 =
this._x2 =
this._x3 =
this._x4 =
this._x5 =
this._y0 =
this._y1 =
this._y2 =
this._y3 =
this._y4 =
this._y5 =
NaN),
(this._point = 0);
},
lineEnd: function () {
switch (this._point) {
case 1:
this._context.moveTo(this._x3, this._y3), this._context.closePath();
break;
case 2:
this._context.lineTo(this._x3, this._y3), this._context.closePath();
break;
case 3:
this.point(this._x3, this._y3),
this.point(this._x4, this._y4),
this.point(this._x5, this._y5);
}
},
point: function (t, n) {
switch (((t = +t), (n = +n), this._point)) {
case 0:
(this._point = 1), (this._x3 = t), (this._y3 = n);
break;
case 1:
(this._point = 2),
this._context.moveTo((this._x4 = t), (this._y4 = n));
break;
case 2:
(this._point = 3), (this._x5 = t), (this._y5 = n);
break;
default:
o_(this, t, n);
}
(this._x0 = this._x1),
(this._x1 = this._x2),
(this._x2 = t),
(this._y0 = this._y1),
(this._y1 = this._y2),
(this._y2 = n);
},
};
var f_ = (function t(n) {
function e(t) {
return new c_(t, n);
}
return (
(e.tension = function (n) {
return t(+n);
}),
e
);
})(0);
function s_(t, n) {
(this._context = t), (this._k = (1 - n) / 6);
}
s_.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
(this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN),
(this._point = 0);
},
lineEnd: function () {
(this._line || (0 !== this._line && 3 === this._point)) &&
this._context.closePath(),
(this._line = 1 - this._line);
},
point: function (t, n) {
switch (((t = +t), (n = +n), this._point)) {
case 0:
this._point = 1;
break;
case 1:
this._point = 2;
break;
case 2:
(this._point = 3),
this._line
? this._context.lineTo(this._x2, this._y2)
: this._context.moveTo(this._x2, this._y2);
break;
case 3:
this._point = 4;
default:
o_(this, t, n);
}
(this._x0 = this._x1),
(this._x1 = this._x2),
(this._x2 = t),
(this._y0 = this._y1),
(this._y1 = this._y2),
(this._y2 = n);
},
};
var l_ = (function t(n) {
function e(t) {
return new s_(t, n);
}
return (
(e.tension = function (n) {
return t(+n);
}),
e
);
})(0);
function h_(t, n, e) {
var r = t._x1,
i = t._y1,
o = t._x2,
a = t._y2;
if (t._l01_a > ey) {
var u = 2 * t._l01_2a + 3 * t._l01_a * t._l12_a + t._l12_2a,
c = 3 * t._l01_a * (t._l01_a + t._l12_a);
(r = (r * u - t._x0 * t._l12_2a + t._x2 * t._l01_2a) / c),
(i = (i * u - t._y0 * t._l12_2a + t._y2 * t._l01_2a) / c);
}
if (t._l23_a > ey) {
var f = 2 * t._l23_2a + 3 * t._l23_a * t._l12_a + t._l12_2a,
s = 3 * t._l23_a * (t._l23_a + t._l12_a);
(o = (o * f + t._x1 * t._l23_2a - n * t._l12_2a) / s),
(a = (a * f + t._y1 * t._l23_2a - e * t._l12_2a) / s);
}
t._context.bezierCurveTo(r, i, o, a, t._x2, t._y2);
}
function d_(t, n) {
(this._context = t), (this._alpha = n);
}
d_.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
(this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN),
(this._l01_a =
this._l12_a =
this._l23_a =
this._l01_2a =
this._l12_2a =
this._l23_2a =
this._point =
0);
},
lineEnd: function () {
switch (this._point) {
case 2:
this._context.lineTo(this._x2, this._y2);
break;
case 3:
this.point(this._x2, this._y2);
}
(this._line || (0 !== this._line && 1 === this._point)) &&
this._context.closePath(),
(this._line = 1 - this._line);
},
point: function (t, n) {
if (((t = +t), (n = +n), this._point)) {
var e = this._x2 - t,
r = this._y2 - n;
this._l23_a = Math.sqrt(
(this._l23_2a = Math.pow(e * e + r * r, this._alpha))
);
}
switch (this._point) {
case 0:
(this._point = 1),
this._line
? this._context.lineTo(t, n)
: this._context.moveTo(t, n);
break;
case 1:
this._point = 2;
break;
case 2:
this._point = 3;
default:
h_(this, t, n);
}
(this._l01_a = this._l12_a),
(this._l12_a = this._l23_a),
(this._l01_2a = this._l12_2a),
(this._l12_2a = this._l23_2a),
(this._x0 = this._x1),
(this._x1 = this._x2),
(this._x2 = t),
(this._y0 = this._y1),
(this._y1 = this._y2),
(this._y2 = n);
},
};
var p_ = (function t(n) {
function e(t) {
return n ? new d_(t, n) : new a_(t, 0);
}
return (
(e.alpha = function (n) {
return t(+n);
}),
e
);
})(0.5);
function v_(t, n) {
(this._context = t), (this._alpha = n);
}
v_.prototype = {
areaStart: Jy,
areaEnd: Jy,
lineStart: function () {
(this._x0 =
this._x1 =
this._x2 =
this._x3 =
this._x4 =
this._x5 =
this._y0 =
this._y1 =
this._y2 =
this._y3 =
this._y4 =
this._y5 =
NaN),
(this._l01_a =
this._l12_a =
this._l23_a =
this._l01_2a =
this._l12_2a =
this._l23_2a =
this._point =
0);
},
lineEnd: function () {
switch (this._point) {
case 1:
this._context.moveTo(this._x3, this._y3), this._context.closePath();
break;
case 2:
this._context.lineTo(this._x3, this._y3), this._context.closePath();
break;
case 3:
this.point(this._x3, this._y3),
this.point(this._x4, this._y4),
this.point(this._x5, this._y5);
}
},
point: function (t, n) {
if (((t = +t), (n = +n), this._point)) {
var e = this._x2 - t,
r = this._y2 - n;
this._l23_a = Math.sqrt(
(this._l23_2a = Math.pow(e * e + r * r, this._alpha))
);
}
switch (this._point) {
case 0:
(this._point = 1), (this._x3 = t), (this._y3 = n);
break;
case 1:
(this._point = 2),
this._context.moveTo((this._x4 = t), (this._y4 = n));
break;
case 2:
(this._point = 3), (this._x5 = t), (this._y5 = n);
break;
default:
h_(this, t, n);
}
(this._l01_a = this._l12_a),
(this._l12_a = this._l23_a),
(this._l01_2a = this._l12_2a),
(this._l12_2a = this._l23_2a),
(this._x0 = this._x1),
(this._x1 = this._x2),
(this._x2 = t),
(this._y0 = this._y1),
(this._y1 = this._y2),
(this._y2 = n);
},
};
var g_ = (function t(n) {
function e(t) {
return n ? new v_(t, n) : new c_(t, 0);
}
return (
(e.alpha = function (n) {
return t(+n);
}),
e
);
})(0.5);
function y_(t, n) {
(this._context = t), (this._alpha = n);
}
y_.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
(this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN),
(this._l01_a =
this._l12_a =
this._l23_a =
this._l01_2a =
this._l12_2a =
this._l23_2a =
this._point =
0);
},
lineEnd: function () {
(this._line || (0 !== this._line && 3 === this._point)) &&
this._context.closePath(),
(this._line = 1 - this._line);
},
point: function (t, n) {
if (((t = +t), (n = +n), this._point)) {
var e = this._x2 - t,
r = this._y2 - n;
this._l23_a = Math.sqrt(
(this._l23_2a = Math.pow(e * e + r * r, this._alpha))
);
}
switch (this._point) {
case 0:
this._point = 1;
break;
case 1:
this._point = 2;
break;
case 2:
(this._point = 3),
this._line
? this._context.lineTo(this._x2, this._y2)
: this._context.moveTo(this._x2, this._y2);
break;
case 3:
this._point = 4;
default:
h_(this, t, n);
}
(this._l01_a = this._l12_a),
(this._l12_a = this._l23_a),
(this._l01_2a = this._l12_2a),
(this._l12_2a = this._l23_2a),
(this._x0 = this._x1),
(this._x1 = this._x2),
(this._x2 = t),
(this._y0 = this._y1),
(this._y1 = this._y2),
(this._y2 = n);
},
};
var __ = (function t(n) {
function e(t) {
return n ? new y_(t, n) : new s_(t, 0);
}
return (
(e.alpha = function (n) {
return t(+n);
}),
e
);
})(0.5);
function b_(t) {
this._context = t;
}
function m_(t) {
return t < 0 ? -1 : 1;
}
function x_(t, n, e) {
var r = t._x1 - t._x0,
i = n - t._x1,
o = (t._y1 - t._y0) / (r || (i < 0 && -0)),
a = (e - t._y1) / (i || (r < 0 && -0)),
u = (o * i + a * r) / (r + i);
return (
(m_(o) + m_(a)) * Math.min(Math.abs(o), Math.abs(a), 0.5 * Math.abs(u)) ||
0
);
}
function w_(t, n) {
var e = t._x1 - t._x0;
return e ? ((3 * (t._y1 - t._y0)) / e - n) / 2 : n;
}
function M_(t, n, e) {
var r = t._x0,
i = t._y0,
o = t._x1,
a = t._y1,
u = (o - r) / 3;
t._context.bezierCurveTo(r + u, i + u * n, o - u, a - u * e, o, a);
}
function N_(t) {
this._context = t;
}
function A_(t) {
this._context = new k_(t);
}
function k_(t) {
this._context = t;
}
function S_(t) {
this._context = t;
}
function T_(t) {
var n,
e,
r = t.length - 1,
i = new Array(r),
o = new Array(r),
a = new Array(r);
for (i[0] = 0, o[0] = 2, a[0] = t[0] + 2 * t[1], n = 1; n < r - 1; ++n)
(i[n] = 1), (o[n] = 4), (a[n] = 4 * t[n] + 2 * t[n + 1]);
for (
i[r - 1] = 2, o[r - 1] = 7, a[r - 1] = 8 * t[r - 1] + t[r], n = 1;
n < r;
++n
)
(e = i[n] / o[n - 1]), (o[n] -= e), (a[n] -= e * a[n - 1]);
for (i[r - 1] = a[r - 1] / o[r - 1], n = r - 2; n >= 0; --n)
i[n] = (a[n] - i[n + 1]) / o[n];
for (o[r - 1] = (t[r] + i[r - 1]) / 2, n = 0; n < r - 1; ++n)
o[n] = 2 * t[n + 1] - i[n + 1];
return [i, o];
}
function E_(t, n) {
(this._context = t), (this._t = n);
}
function C_(t, n) {
if ((i = t.length) > 1)
for (var e, r, i, o = 1, a = t[n[0]], u = a.length; o < i; ++o)
for (r = a, a = t[n[o]], e = 0; e < u; ++e)
a[e][1] += a[e][0] = isNaN(r[e][1]) ? r[e][0] : r[e][1];
}
function P_(t) {
for (var n = t.length, e = new Array(n); --n >= 0; ) e[n] = n;
return e;
}
function z_(t, n) {
return t[n];
}
function R_(t) {
var n = t.map(q_);
return P_(t).sort(function (t, e) {
return n[t] - n[e];
});
}
function q_(t) {
for (var n, e = -1, r = 0, i = t.length, o = -1 / 0; ++e < i; )
(n = +t[e][1]) > o && ((o = n), (r = e));
return r;
}
function D_(t) {
var n = t.map(L_);
return P_(t).sort(function (t, e) {
return n[t] - n[e];
});
}
function L_(t) {
for (var n, e = 0, r = -1, i = t.length; ++r < i; )
(n = +t[r][1]) && (e += n);
return e;
}
function U_(t) {
return function () {
return t;
};
}
function O_(t) {
return t[0];
}
function Y_(t) {
return t[1];
}
function B_() {
this._ = null;
}
function F_(t) {
t.U = t.C = t.L = t.R = t.P = t.N = null;
}
function I_(t, n) {
var e = n,
r = n.R,
i = e.U;
i ? (i.L === e ? (i.L = r) : (i.R = r)) : (t._ = r),
(r.U = i),
(e.U = r),
(e.R = r.L),
e.R && (e.R.U = e),
(r.L = e);
}
function H_(t, n) {
var e = n,
r = n.L,
i = e.U;
i ? (i.L === e ? (i.L = r) : (i.R = r)) : (t._ = r),
(r.U = i),
(e.U = r),
(e.L = r.R),
e.L && (e.L.U = e),
(r.R = e);
}
function j_(t) {
for (; t.L; ) t = t.L;
return t;
}
function X_(t, n, e, r) {
var i = [null, null],
o = vb.push(i) - 1;
return (
(i.left = t),
(i.right = n),
e && V_(i, t, n, e),
r && V_(i, n, t, r),
db[t.index].halfedges.push(o),
db[n.index].halfedges.push(o),
i
);
}
function G_(t, n, e) {
var r = [n, e];
return (r.left = t), r;
}
function V_(t, n, e, r) {
t[0] || t[1]
? t.left === e
? (t[1] = r)
: (t[0] = r)
: ((t[0] = r), (t.left = n), (t.right = e));
}
function $_(t, n, e, r, i) {
var o,
a = t[0],
u = t[1],
c = a[0],
f = a[1],
s = 0,
l = 1,
h = u[0] - c,
d = u[1] - f;
if (((o = n - c), h || !(o > 0))) {
if (((o /= h), h < 0)) {
if (o < s) return;
o < l && (l = o);
} else if (h > 0) {
if (o > l) return;
o > s && (s = o);
}
if (((o = r - c), h || !(o < 0))) {
if (((o /= h), h < 0)) {
if (o > l) return;
o > s && (s = o);
} else if (h > 0) {
if (o < s) return;
o < l && (l = o);
}
if (((o = e - f), d || !(o > 0))) {
if (((o /= d), d < 0)) {
if (o < s) return;
o < l && (l = o);
} else if (d > 0) {
if (o > l) return;
o > s && (s = o);
}
if (((o = i - f), d || !(o < 0))) {
if (((o /= d), d < 0)) {
if (o > l) return;
o > s && (s = o);
} else if (d > 0) {
if (o < s) return;
o < l && (l = o);
}
return (
!(s > 0 || l < 1) ||
(s > 0 && (t[0] = [c + s * h, f + s * d]),
l < 1 && (t[1] = [c + l * h, f + l * d]),
!0)
);
}
}
}
}
}
function W_(t, n, e, r, i) {
var o = t[1];
if (o) return !0;
var a,
u,
c = t[0],
f = t.left,
s = t.right,
l = f[0],
h = f[1],
d = s[0],
p = s[1],
v = (l + d) / 2,
g = (h + p) / 2;
if (p === h) {
if (v < n || v >= r) return;
if (l > d) {
if (c) {
if (c[1] >= i) return;
} else c = [v, e];
o = [v, i];
} else {
if (c) {
if (c[1] < e) return;
} else c = [v, i];
o = [v, e];
}
} else if (((u = g - (a = (l - d) / (p - h)) * v), a < -1 || a > 1))
if (l > d) {
if (c) {
if (c[1] >= i) return;
} else c = [(e - u) / a, e];
o = [(i - u) / a, i];
} else {
if (c) {
if (c[1] < e) return;
} else c = [(i - u) / a, i];
o = [(e - u) / a, e];
}
else if (h < p) {
if (c) {
if (c[0] >= r) return;
} else c = [n, a * n + u];
o = [r, a * r + u];
} else {
if (c) {
if (c[0] < n) return;
} else c = [r, a * r + u];
o = [n, a * n + u];
}
return (t[0] = c), (t[1] = o), !0;
}
function Z_(t, n) {
var e = t.site,
r = n.left,
i = n.right;
return (
e === i && ((i = r), (r = e)),
i
? Math.atan2(i[1] - r[1], i[0] - r[0])
: (e === r ? ((r = n[1]), (i = n[0])) : ((r = n[0]), (i = n[1])),
Math.atan2(r[0] - i[0], i[1] - r[1]))
);
}
function Q_(t, n) {
return n[+(n.left !== t.site)];
}
function J_(t, n) {
return n[+(n.left === t.site)];
}
(b_.prototype = {
areaStart: Jy,
areaEnd: Jy,
lineStart: function () {
this._point = 0;
},
lineEnd: function () {
this._point && this._context.closePath();
},
point: function (t, n) {
(t = +t),
(n = +n),
this._point
? this._context.lineTo(t, n)
: ((this._point = 1), this._context.moveTo(t, n));
},
}),
(N_.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
(this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN),
(this._point = 0);
},
lineEnd: function () {
switch (this._point) {
case 2:
this._context.lineTo(this._x1, this._y1);
break;
case 3:
M_(this, this._t0, w_(this, this._t0));
}
(this._line || (0 !== this._line && 1 === this._point)) &&
this._context.closePath(),
(this._line = 1 - this._line);
},
point: function (t, n) {
var e = NaN;
if (((n = +n), (t = +t) !== this._x1 || n !== this._y1)) {
switch (this._point) {
case 0:
(this._point = 1),
this._line
? this._context.lineTo(t, n)
: this._context.moveTo(t, n);
break;
case 1:
this._point = 2;
break;
case 2:
(this._point = 3), M_(this, w_(this, (e = x_(this, t, n))), e);
break;
default:
M_(this, this._t0, (e = x_(this, t, n)));
}
(this._x0 = this._x1),
(this._x1 = t),
(this._y0 = this._y1),
(this._y1 = n),
(this._t0 = e);
}
},
}),
((A_.prototype = Object.create(N_.prototype)).point = function (t, n) {
N_.prototype.point.call(this, n, t);
}),
(k_.prototype = {
moveTo: function (t, n) {
this._context.moveTo(n, t);
},
closePath: function () {
this._context.closePath();
},
lineTo: function (t, n) {
this._context.lineTo(n, t);
},
bezierCurveTo: function (t, n, e, r, i, o) {
this._context.bezierCurveTo(n, t, r, e, o, i);
},
}),
(S_.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
(this._x = []), (this._y = []);
},
lineEnd: function () {
var t = this._x,
n = this._y,
e = t.length;
if (e)
if (
(this._line
? this._context.lineTo(t[0], n[0])
: this._context.moveTo(t[0], n[0]),
2 === e)
)
this._context.lineTo(t[1], n[1]);
else
for (var r = T_(t), i = T_(n), o = 0, a = 1; a < e; ++o, ++a)
this._context.bezierCurveTo(
r[0][o],
i[0][o],
r[1][o],
i[1][o],
t[a],
n[a]
);
(this._line || (0 !== this._line && 1 === e)) &&
this._context.closePath(),
(this._line = 1 - this._line),
(this._x = this._y = null);
},
point: function (t, n) {
this._x.push(+t), this._y.push(+n);
},
}),
(E_.prototype = {
areaStart: function () {
this._line = 0;
},
areaEnd: function () {
this._line = NaN;
},
lineStart: function () {
(this._x = this._y = NaN), (this._point = 0);
},
lineEnd: function () {
0 < this._t &&
this._t < 1 &&
2 === this._point &&
this._context.lineTo(this._x, this._y),
(this._line || (0 !== this._line && 1 === this._point)) &&
this._context.closePath(),
this._line >= 0 &&
((this._t = 1 - this._t), (this._line = 1 - this._line));
},
point: function (t, n) {
switch (((t = +t), (n = +n), this._point)) {
case 0:
(this._point = 1),
this._line
? this._context.lineTo(t, n)
: this._context.moveTo(t, n);
break;
case 1:
this._point = 2;
default:
if (this._t <= 0)
this._context.lineTo(this._x, n), this._context.lineTo(t, n);
else {
var e = this._x * (1 - this._t) + t * this._t;
this._context.lineTo(e, this._y), this._context.lineTo(e, n);
}
}
(this._x = t), (this._y = n);
},
}),
(B_.prototype = {
constructor: B_,
insert: function (t, n) {
var e, r, i;
if (t) {
if (((n.P = t), (n.N = t.N), t.N && (t.N.P = n), (t.N = n), t.R)) {
for (t = t.R; t.L; ) t = t.L;
t.L = n;
} else t.R = n;
e = t;
} else
this._
? ((t = j_(this._)),
(n.P = null),
(n.N = t),
(t.P = t.L = n),
(e = t))
: ((n.P = n.N = null), (this._ = n), (e = null));
for (n.L = n.R = null, n.U = e, n.C = !0, t = n; e && e.C; )
e === (r = e.U).L
? (i = r.R) && i.C
? ((e.C = i.C = !1), (r.C = !0), (t = r))
: (t === e.R && (I_(this, e), (e = (t = e).U)),
(e.C = !1),
(r.C = !0),
H_(this, r))
: (i = r.L) && i.C
? ((e.C = i.C = !1), (r.C = !0), (t = r))
: (t === e.L && (H_(this, e), (e = (t = e).U)),
(e.C = !1),
(r.C = !0),
I_(this, r)),
(e = t.U);
this._.C = !1;
},
remove: function (t) {
t.N && (t.N.P = t.P), t.P && (t.P.N = t.N), (t.N = t.P = null);
var n,
e,
r,
i = t.U,
o = t.L,
a = t.R;
if (
((e = o ? (a ? j_(a) : o) : a),
i ? (i.L === t ? (i.L = e) : (i.R = e)) : (this._ = e),
o && a
? ((r = e.C),
(e.C = t.C),
(e.L = o),
(o.U = e),
e !== a
? ((i = e.U),
(e.U = t.U),
(t = e.R),
(i.L = t),
(e.R = a),
(a.U = e))
: ((e.U = i), (i = e), (t = e.R)))
: ((r = t.C), (t = e)),
t && (t.U = i),
!r)
)
if (t && t.C) t.C = !1;
else {
do {
if (t === this._) break;
if (t === i.L) {
if (
((n = i.R).C &&
((n.C = !1), (i.C = !0), I_(this, i), (n = i.R)),
(n.L && n.L.C) || (n.R && n.R.C))
) {
(n.R && n.R.C) ||
((n.L.C = !1), (n.C = !0), H_(this, n), (n = i.R)),
(n.C = i.C),
(i.C = n.R.C = !1),
I_(this, i),
(t = this._);
break;
}
} else if (
((n = i.L).C &&
((n.C = !1), (i.C = !0), H_(this, i), (n = i.L)),
(n.L && n.L.C) || (n.R && n.R.C))
) {
(n.L && n.L.C) ||
((n.R.C = !1), (n.C = !0), I_(this, n), (n = i.L)),
(n.C = i.C),
(i.C = n.L.C = !1),
H_(this, i),
(t = this._);
break;
}
(n.C = !0), (t = i), (i = i.U);
} while (!t.C);
t && (t.C = !1);
}
},
});
var K_,
tb = [];
function nb() {
F_(this), (this.x = this.y = this.arc = this.site = this.cy = null);
}
function eb(t) {
var n = t.P,
e = t.N;
if (n && e) {
var r = n.site,
i = t.site,
o = e.site;
if (r !== o) {
var a = i[0],
u = i[1],
c = r[0] - a,
f = r[1] - u,
s = o[0] - a,
l = o[1] - u,
h = 2 * (c * l - f * s);
if (!(h >= -yb)) {
var d = c * c + f * f,
p = s * s + l * l,
v = (l * d - f * p) / h,
g = (c * p - s * d) / h,
y = tb.pop() || new nb();
(y.arc = t),
(y.site = i),
(y.x = v + a),
(y.y = (y.cy = g + u) + Math.sqrt(v * v + g * g)),
(t.circle = y);
for (var _ = null, b = pb._; b; )
if (y.y < b.y || (y.y === b.y && y.x <= b.x)) {
if (!b.L) {
_ = b.P;
break;
}
b = b.L;
} else {
if (!b.R) {
_ = b;
break;
}
b = b.R;
}
pb.insert(_, y), _ || (K_ = y);
}
}
}
}
function rb(t) {
var n = t.circle;
n &&
(n.P || (K_ = n.N), pb.remove(n), tb.push(n), F_(n), (t.circle = null));
}
var ib = [];
function ob() {
F_(this), (this.edge = this.site = this.circle = null);
}
function ab(t) {
var n = ib.pop() || new ob();
return (n.site = t), n;
}
function ub(t) {
rb(t), hb.remove(t), ib.push(t), F_(t);
}
function cb(t) {
var n = t.circle,
e = n.x,
r = n.cy,
i = [e, r],
o = t.P,
a = t.N,
u = [t];
ub(t);
for (
var c = o;
c.circle &&
Math.abs(e - c.circle.x) < gb &&
Math.abs(r - c.circle.cy) < gb;
)
(o = c.P), u.unshift(c), ub(c), (c = o);
u.unshift(c), rb(c);
for (
var f = a;
f.circle &&
Math.abs(e - f.circle.x) < gb &&
Math.abs(r - f.circle.cy) < gb;
)
(a = f.N), u.push(f), ub(f), (f = a);
u.push(f), rb(f);
var s,
l = u.length;
for (s = 1; s < l; ++s)
(f = u[s]), (c = u[s - 1]), V_(f.edge, c.site, f.site, i);
(c = u[0]),
((f = u[l - 1]).edge = X_(c.site, f.site, null, i)),
eb(c),
eb(f);
}
function fb(t) {
for (var n, e, r, i, o = t[0], a = t[1], u = hb._; u; )
if ((r = sb(u, a) - o) > gb) u = u.L;
else {
if (!((i = o - lb(u, a)) > gb)) {
r > -gb
? ((n = u.P), (e = u))
: i > -gb
? ((n = u), (e = u.N))
: (n = e = u);
break;
}
if (!u.R) {
n = u;
break;
}
u = u.R;
}
!(function (t) {
db[t.index] = { site: t, halfedges: [] };
})(t);
var c = ab(t);
if ((hb.insert(n, c), n || e)) {
if (n === e)
return (
rb(n),
(e = ab(n.site)),
hb.insert(c, e),
(c.edge = e.edge = X_(n.site, c.site)),
eb(n),
void eb(e)
);
if (e) {
rb(n), rb(e);
var f = n.site,
s = f[0],
l = f[1],
h = t[0] - s,
d = t[1] - l,
p = e.site,
v = p[0] - s,
g = p[1] - l,
y = 2 * (h * g - d * v),
_ = h * h + d * d,
b = v * v + g * g,
m = [(g * _ - d * b) / y + s, (h * b - v * _) / y + l];
V_(e.edge, f, p, m),
(c.edge = X_(f, t, null, m)),
(e.edge = X_(t, p, null, m)),
eb(n),
eb(e);
} else c.edge = X_(n.site, c.site);
}
}
function sb(t, n) {
var e = t.site,
r = e[0],
i = e[1],
o = i - n;
if (!o) return r;
var a = t.P;
if (!a) return -1 / 0;
var u = (e = a.site)[0],
c = e[1],
f = c - n;
if (!f) return u;
var s = u - r,
l = 1 / o - 1 / f,
h = s / f;
return l
? (-h +
Math.sqrt(
h * h - 2 * l * ((s * s) / (-2 * f) - c + f / 2 + i - o / 2)
)) /
l +
r
: (r + u) / 2;
}
function lb(t, n) {
var e = t.N;
if (e) return sb(e, n);
var r = t.site;
return r[1] === n ? r[0] : 1 / 0;
}
var hb,
db,
pb,
vb,
gb = 1e-6,
yb = 1e-12;
function _b(t, n) {
return n[1] - t[1] || n[0] - t[0];
}
function bb(t, n) {
var e,
r,
i,
o = t.sort(_b).pop();
for (vb = [], db = new Array(t.length), hb = new B_(), pb = new B_(); ; )
if (((i = K_), o && (!i || o[1] < i.y || (o[1] === i.y && o[0] < i.x))))
(o[0] === e && o[1] === r) || (fb(o), (e = o[0]), (r = o[1])),
(o = t.pop());
else {
if (!i) break;
cb(i.arc);
}
if (
((function () {
for (var t, n, e, r, i = 0, o = db.length; i < o; ++i)
if ((t = db[i]) && (r = (n = t.halfedges).length)) {
var a = new Array(r),
u = new Array(r);
for (e = 0; e < r; ++e) (a[e] = e), (u[e] = Z_(t, vb[n[e]]));
for (
a.sort(function (t, n) {
return u[n] - u[t];
}),
e = 0;
e < r;
++e
)
u[e] = n[a[e]];
for (e = 0; e < r; ++e) n[e] = u[e];
}
})(),
n)
) {
var a = +n[0][0],
u = +n[0][1],
c = +n[1][0],
f = +n[1][1];
!(function (t, n, e, r) {
for (var i, o = vb.length; o--; )
(W_((i = vb[o]), t, n, e, r) &&
$_(i, t, n, e, r) &&
(Math.abs(i[0][0] - i[1][0]) > gb ||
Math.abs(i[0][1] - i[1][1]) > gb)) ||
delete vb[o];
})(a, u, c, f),
(function (t, n, e, r) {
var i,
o,
a,
u,
c,
f,
s,
l,
h,
d,
p,
v,
g = db.length,
y = !0;
for (i = 0; i < g; ++i)
if ((o = db[i])) {
for (a = o.site, u = (c = o.halfedges).length; u--; )
vb[c[u]] || c.splice(u, 1);
for (u = 0, f = c.length; u < f; )
(p = (d = J_(o, vb[c[u]]))[0]),
(v = d[1]),
(l = (s = Q_(o, vb[c[++u % f]]))[0]),
(h = s[1]),
(Math.abs(p - l) > gb || Math.abs(v - h) > gb) &&
(c.splice(
u,
0,
vb.push(
G_(
a,
d,
Math.abs(p - t) < gb && r - v > gb
? [t, Math.abs(l - t) < gb ? h : r]
: Math.abs(v - r) < gb && e - p > gb
? [Math.abs(h - r) < gb ? l : e, r]
: Math.abs(p - e) < gb && v - n > gb
? [e, Math.abs(l - e) < gb ? h : n]
: Math.abs(v - n) < gb && p - t > gb
? [Math.abs(h - n) < gb ? l : t, n]
: null
)
) - 1
),
++f);
f && (y = !1);
}
if (y) {
var _,
b,
m,
x = 1 / 0;
for (i = 0, y = null; i < g; ++i)
(o = db[i]) &&
(m = (_ = (a = o.site)[0] - t) * _ + (b = a[1] - n) * b) < x &&
((x = m), (y = o));
if (y) {
var w = [t, n],
M = [t, r],
N = [e, r],
A = [e, n];
y.halfedges.push(
vb.push(G_((a = y.site), w, M)) - 1,
vb.push(G_(a, M, N)) - 1,
vb.push(G_(a, N, A)) - 1,
vb.push(G_(a, A, w)) - 1
);
}
}
for (i = 0; i < g; ++i)
(o = db[i]) && (o.halfedges.length || delete db[i]);
})(a, u, c, f);
}
(this.edges = vb), (this.cells = db), (hb = pb = vb = db = null);
}
function mb(t) {
return function () {
return t;
};
}
function xb(t, n, e) {
(this.target = t), (this.type = n), (this.transform = e);
}
function wb(t, n, e) {
(this.k = t), (this.x = n), (this.y = e);
}
(bb.prototype = {
constructor: bb,
polygons: function () {
var t = this.edges;
return this.cells.map(function (n) {
var e = n.halfedges.map(function (e) {
return Q_(n, t[e]);
});
return (e.data = n.site.data), e;
});
},
triangles: function () {
var t = [],
n = this.edges;
return (
this.cells.forEach(function (e, r) {
if ((o = (i = e.halfedges).length))
for (
var i,
o,
a,
u,
c,
f,
s = e.site,
l = -1,
h = n[i[o - 1]],
d = h.left === s ? h.right : h.left;
++l < o;
)
(a = d),
(d = (h = n[i[l]]).left === s ? h.right : h.left),
a &&
d &&
r < a.index &&
r < d.index &&
((c = a),
(f = d),
((u = s)[0] - f[0]) * (c[1] - u[1]) -
(u[0] - c[0]) * (f[1] - u[1]) <
0) &&
t.push([s.data, a.data, d.data]);
}),
t
);
},
links: function () {
return this.edges
.filter(function (t) {
return t.right;
})
.map(function (t) {
return { source: t.left.data, target: t.right.data };
});
},
find: function (t, n, e) {
for (
var r, i, o = this, a = o._found || 0, u = o.cells.length;
!(i = o.cells[a]);
)
if (++a >= u) return null;
var c = t - i.site[0],
f = n - i.site[1],
s = c * c + f * f;
do {
(i = o.cells[(r = a)]),
(a = null),
i.halfedges.forEach(function (e) {
var r = o.edges[e],
u = r.left;
if ((u !== i.site && u) || (u = r.right)) {
var c = t - u[0],
f = n - u[1],
l = c * c + f * f;
l < s && ((s = l), (a = u.index));
}
});
} while (null !== a);
return (o._found = r), null == e || s <= e * e ? i.site : null;
},
}),
(wb.prototype = {
constructor: wb,
scale: function (t) {
return 1 === t ? this : new wb(this.k * t, this.x, this.y);
},
translate: function (t, n) {
return (0 === t) & (0 === n)
? this
: new wb(this.k, this.x + this.k * t, this.y + this.k * n);
},
apply: function (t) {
return [t[0] * this.k + this.x, t[1] * this.k + this.y];
},
applyX: function (t) {
return t * this.k + this.x;
},
applyY: function (t) {
return t * this.k + this.y;
},
invert: function (t) {
return [(t[0] - this.x) / this.k, (t[1] - this.y) / this.k];
},
invertX: function (t) {
return (t - this.x) / this.k;
},
invertY: function (t) {
return (t - this.y) / this.k;
},
rescaleX: function (t) {
return t
.copy()
.domain(t.range().map(this.invertX, this).map(t.invert, t));
},
rescaleY: function (t) {
return t
.copy()
.domain(t.range().map(this.invertY, this).map(t.invert, t));
},
toString: function () {
return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
},
});
var Mb = new wb(1, 0, 0);
function Nb(t) {
return t.__zoom || Mb;
}
function Ab() {
t.event.stopImmediatePropagation();
}
function kb() {
t.event.preventDefault(), t.event.stopImmediatePropagation();
}
function Sb() {
return !t.event.button;
}
function Tb() {
var t,
n,
e = this;
return (
e instanceof SVGElement
? ((t = (e = e.ownerSVGElement || e).width.baseVal.value),
(n = e.height.baseVal.value))
: ((t = e.clientWidth), (n = e.clientHeight)),
[
[0, 0],
[t, n],
]
);
}
function Eb() {
return this.__zoom || Mb;
}
function Cb() {
return (-t.event.deltaY * (t.event.deltaMode ? 120 : 1)) / 500;
}
function Pb() {
return "ontouchstart" in this;
}
function zb(t, n, e) {
var r = t.invertX(n[0][0]) - e[0][0],
i = t.invertX(n[1][0]) - e[1][0],
o = t.invertY(n[0][1]) - e[0][1],
a = t.invertY(n[1][1]) - e[1][1];
return t.translate(
i > r ? (r + i) / 2 : Math.min(0, r) || Math.max(0, i),
a > o ? (o + a) / 2 : Math.min(0, o) || Math.max(0, a)
);
}
(Nb.prototype = wb.prototype),
(t.version = "5.8.0"),
(t.bisect = i),
(t.bisectRight = i),
(t.bisectLeft = o),
(t.ascending = n),
(t.bisector = e),
(t.cross = function (t, n, e) {
var r,
i,
o,
u,
c = t.length,
f = n.length,
s = new Array(c * f);
for (null == e && (e = a), r = o = 0; r < c; ++r)
for (u = t[r], i = 0; i < f; ++i, ++o) s[o] = e(u, n[i]);
return s;
}),
(t.descending = function (t, n) {
return n < t ? -1 : n > t ? 1 : n >= t ? 0 : NaN;
}),
(t.deviation = f),
(t.extent = s),
(t.histogram = function () {
var t = v,
n = s,
e = M;
function r(r) {
var o,
a,
u = r.length,
c = new Array(u);
for (o = 0; o < u; ++o) c[o] = t(r[o], o, r);
var f = n(c),
s = f[0],
l = f[1],
h = e(c, s, l);
Array.isArray(h) ||
((h = w(s, l, h)), (h = g(Math.ceil(s / h) * h, l, h)));
for (var d = h.length; h[0] <= s; ) h.shift(), --d;
for (; h[d - 1] > l; ) h.pop(), --d;
var p,
v = new Array(d + 1);
for (o = 0; o <= d; ++o)
((p = v[o] = []).x0 = o > 0 ? h[o - 1] : s),
(p.x1 = o < d ? h[o] : l);
for (o = 0; o < u; ++o)
s <= (a = c[o]) && a <= l && v[i(h, a, 0, d)].push(r[o]);
return v;
}
return (
(r.value = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : p(n)), r)
: t;
}),
(r.domain = function (t) {
return arguments.length
? ((n = "function" == typeof t ? t : p([t[0], t[1]])), r)
: n;
}),
(r.thresholds = function (t) {
return arguments.length
? ((e =
"function" == typeof t
? t
: Array.isArray(t)
? p(h.call(t))
: p(t)),
r)
: e;
}),
r
);
}),
(t.thresholdFreedmanDiaconis = function (t, e, r) {
return (
(t = d.call(t, u).sort(n)),
Math.ceil(
(r - e) / (2 * (N(t, 0.75) - N(t, 0.25)) * Math.pow(t.length, -1 / 3))
)
);
}),
(t.thresholdScott = function (t, n, e) {
return Math.ceil((e - n) / (3.5 * f(t) * Math.pow(t.length, -1 / 3)));
}),
(t.thresholdSturges = M),
(t.max = A),
(t.mean = function (t, n) {
var e,
r = t.length,
i = r,
o = -1,
a = 0;
if (null == n) for (; ++o < r; ) isNaN((e = u(t[o]))) ? --i : (a += e);
else for (; ++o < r; ) isNaN((e = u(n(t[o], o, t)))) ? --i : (a += e);
if (i) return a / i;
}),
(t.median = function (t, e) {
var r,
i = t.length,
o = -1,
a = [];
if (null == e) for (; ++o < i; ) isNaN((r = u(t[o]))) || a.push(r);
else for (; ++o < i; ) isNaN((r = u(e(t[o], o, t)))) || a.push(r);
return N(a.sort(n), 0.5);
}),
(t.merge = k),
(t.min = S),
(t.pairs = function (t, n) {
null == n && (n = a);
for (
var e = 0, r = t.length - 1, i = t[0], o = new Array(r < 0 ? 0 : r);
e < r;
)
o[e] = n(i, (i = t[++e]));
return o;
}),
(t.permute = function (t, n) {
for (var e = n.length, r = new Array(e); e--; ) r[e] = t[n[e]];
return r;
}),
(t.quantile = N),
(t.range = g),
(t.scan = function (t, e) {
if ((r = t.length)) {
var r,
i,
o = 0,
a = 0,
u = t[a];
for (null == e && (e = n); ++o < r; )
(e((i = t[o]), u) < 0 || 0 !== e(u, u)) && ((u = i), (a = o));
return 0 === e(u, u) ? a : void 0;
}
}),
(t.shuffle = function (t, n, e) {
for (
var r, i, o = (null == e ? t.length : e) - (n = null == n ? 0 : +n);
o;
)
(i = (Math.random() * o--) | 0),
(r = t[o + n]),
(t[o + n] = t[i + n]),
(t[i + n] = r);
return t;
}),
(t.sum = function (t, n) {
var e,
r = t.length,
i = -1,
o = 0;
if (null == n) for (; ++i < r; ) (e = +t[i]) && (o += e);
else for (; ++i < r; ) (e = +n(t[i], i, t)) && (o += e);
return o;
}),
(t.ticks = m),
(t.tickIncrement = x),
(t.tickStep = w),
(t.transpose = T),
(t.variance = c),
(t.zip = function () {
return T(arguments);
}),
(t.axisTop = function (t) {
return B(z, t);
}),
(t.axisRight = function (t) {
return B(R, t);
}),
(t.axisBottom = function (t) {
return B(q, t);
}),
(t.axisLeft = function (t) {
return B(D, t);
}),
(t.brush = function () {
return Pi(mi);
}),
(t.brushX = function () {
return Pi(_i);
}),
(t.brushY = function () {
return Pi(bi);
}),
(t.brushSelection = function (t) {
var n = t.__brush;
return n ? n.dim.output(n.selection) : null;
}),
(t.chord = function () {
var t = 0,
n = null,
e = null,
r = null;
function i(i) {
var o,
a,
u,
c,
f,
s,
l = i.length,
h = [],
d = g(l),
p = [],
v = [],
y = (v.groups = new Array(l)),
_ = new Array(l * l);
for (o = 0, f = -1; ++f < l; ) {
for (a = 0, s = -1; ++s < l; ) a += i[f][s];
h.push(a), p.push(g(l)), (o += a);
}
for (
n &&
d.sort(function (t, e) {
return n(h[t], h[e]);
}),
e &&
p.forEach(function (t, n) {
t.sort(function (t, r) {
return e(i[n][t], i[n][r]);
});
}),
c = (o = Ui(0, Li - t * l) / o) ? t : Li / l,
a = 0,
f = -1;
++f < l;
) {
for (u = a, s = -1; ++s < l; ) {
var b = d[f],
m = p[b][s],
x = i[b][m],
w = a,
M = (a += x * o);
_[m * l + b] = {
index: b,
subindex: m,
startAngle: w,
endAngle: M,
value: x,
};
}
(y[b] = { index: b, startAngle: u, endAngle: a, value: h[b] }),
(a += c);
}
for (f = -1; ++f < l; )
for (s = f - 1; ++s < l; ) {
var N = _[s * l + f],
A = _[f * l + s];
(N.value || A.value) &&
v.push(
N.value < A.value
? { source: A, target: N }
: { source: N, target: A }
);
}
return r ? v.sort(r) : v;
}
return (
(i.padAngle = function (n) {
return arguments.length ? ((t = Ui(0, n)), i) : t;
}),
(i.sortGroups = function (t) {
return arguments.length ? ((n = t), i) : n;
}),
(i.sortSubgroups = function (t) {
return arguments.length ? ((e = t), i) : e;
}),
(i.sortChords = function (t) {
return arguments.length
? (null == t
? (r = null)
: (((n = t),
(r = function (t, e) {
return n(
t.source.value + t.target.value,
e.source.value + e.target.value
);
}))._ = t),
i)
: r && r._;
var n;
}),
i
);
}),
(t.ribbon = function () {
var t = Xi,
n = Gi,
e = Vi,
r = $i,
i = Wi,
o = null;
function a() {
var a,
u = Oi.call(arguments),
c = t.apply(this, u),
f = n.apply(this, u),
s = +e.apply(this, ((u[0] = c), u)),
l = r.apply(this, u) - Di,
h = i.apply(this, u) - Di,
d = s * zi(l),
p = s * Ri(l),
v = +e.apply(this, ((u[0] = f), u)),
g = r.apply(this, u) - Di,
y = i.apply(this, u) - Di;
if (
(o || (o = a = ji()),
o.moveTo(d, p),
o.arc(0, 0, s, l, h),
(l === g && h === y) ||
(o.quadraticCurveTo(0, 0, v * zi(g), v * Ri(g)),
o.arc(0, 0, v, g, y)),
o.quadraticCurveTo(0, 0, d, p),
o.closePath(),
a)
)
return (o = null), a + "" || null;
}
return (
(a.radius = function (t) {
return arguments.length
? ((e = "function" == typeof t ? t : Yi(+t)), a)
: e;
}),
(a.startAngle = function (t) {
return arguments.length
? ((r = "function" == typeof t ? t : Yi(+t)), a)
: r;
}),
(a.endAngle = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : Yi(+t)), a)
: i;
}),
(a.source = function (n) {
return arguments.length ? ((t = n), a) : t;
}),
(a.target = function (t) {
return arguments.length ? ((n = t), a) : n;
}),
(a.context = function (t) {
return arguments.length ? ((o = null == t ? null : t), a) : o;
}),
a
);
}),
(t.nest = function () {
var t,
n,
e,
r = [],
i = [];
function o(e, i, a, u) {
if (i >= r.length) return null != t && e.sort(t), null != n ? n(e) : e;
for (
var c, f, s, l = -1, h = e.length, d = r[i++], p = Qi(), v = a();
++l < h;
)
(s = p.get((c = d((f = e[l])) + ""))) ? s.push(f) : p.set(c, [f]);
return (
p.each(function (t, n) {
u(v, n, o(t, i, a, u));
}),
v
);
}
return (e = {
object: function (t) {
return o(t, 0, Ji, Ki);
},
map: function (t) {
return o(t, 0, to, no);
},
entries: function (t) {
return (function t(e, o) {
if (++o > r.length) return e;
var a,
u = i[o - 1];
return (
null != n && o >= r.length
? (a = e.entries())
: ((a = []),
e.each(function (n, e) {
a.push({ key: e, values: t(n, o) });
})),
null != u
? a.sort(function (t, n) {
return u(t.key, n.key);
})
: a
);
})(o(t, 0, to, no), 0);
},
key: function (t) {
return r.push(t), e;
},
sortKeys: function (t) {
return (i[r.length - 1] = t), e;
},
sortValues: function (n) {
return (t = n), e;
},
rollup: function (t) {
return (n = t), e;
},
});
}),
(t.set = io),
(t.map = Qi),
(t.keys = function (t) {
var n = [];
for (var e in t) n.push(e);
return n;
}),
(t.values = function (t) {
var n = [];
for (var e in t) n.push(t[e]);
return n;
}),
(t.entries = function (t) {
var n = [];
for (var e in t) n.push({ key: e, value: t[e] });
return n;
}),
(t.color = hn),
(t.rgb = gn),
(t.hsl = mn),
(t.lab = Rn),
(t.hcl = Bn),
(t.lch = function (t, n, e, r) {
return 1 === arguments.length
? Yn(t)
: new Fn(e, n, t, null == r ? 1 : r);
}),
(t.gray = function (t, n) {
return new qn(t, 0, 0, null == n ? 1 : n);
}),
(t.cubehelix = Zn),
(t.contours = po),
(t.contourDensity = function () {
var t = yo,
n = _o,
e = bo,
r = 960,
i = 500,
o = 20,
a = 2,
u = 3 * o,
c = (r + 2 * u) >> a,
f = (i + 2 * u) >> a,
s = uo(20);
function l(r) {
var i = new Float32Array(c * f),
l = new Float32Array(c * f);
r.forEach(function (r, o, s) {
var l = (+t(r, o, s) + u) >> a,
h = (+n(r, o, s) + u) >> a,
d = +e(r, o, s);
l >= 0 && l < c && h >= 0 && h < f && (i[l + h * c] += d);
}),
vo(
{ width: c, height: f, data: i },
{ width: c, height: f, data: l },
o >> a
),
go(
{ width: c, height: f, data: l },
{ width: c, height: f, data: i },
o >> a
),
vo(
{ width: c, height: f, data: i },
{ width: c, height: f, data: l },
o >> a
),
go(
{ width: c, height: f, data: l },
{ width: c, height: f, data: i },
o >> a
),
vo(
{ width: c, height: f, data: i },
{ width: c, height: f, data: l },
o >> a
),
go(
{ width: c, height: f, data: l },
{ width: c, height: f, data: i },
o >> a
);
var d = s(i);
if (!Array.isArray(d)) {
var p = A(i);
(d = w(0, p, d)), (d = g(0, Math.floor(p / d) * d, d)).shift();
}
return po().thresholds(d).size([c, f])(i).map(h);
}
function h(t) {
return (t.value *= Math.pow(2, -2 * a)), t.coordinates.forEach(d), t;
}
function d(t) {
t.forEach(p);
}
function p(t) {
t.forEach(v);
}
function v(t) {
(t[0] = t[0] * Math.pow(2, a) - u), (t[1] = t[1] * Math.pow(2, a) - u);
}
function y() {
return (c = (r + 2 * (u = 3 * o)) >> a), (f = (i + 2 * u) >> a), l;
}
return (
(l.x = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : uo(+n)), l)
: t;
}),
(l.y = function (t) {
return arguments.length
? ((n = "function" == typeof t ? t : uo(+t)), l)
: n;
}),
(l.weight = function (t) {
return arguments.length
? ((e = "function" == typeof t ? t : uo(+t)), l)
: e;
}),
(l.size = function (t) {
if (!arguments.length) return [r, i];
var n = Math.ceil(t[0]),
e = Math.ceil(t[1]);
if (!(n >= 0 || n >= 0)) throw new Error("invalid size");
return (r = n), (i = e), y();
}),
(l.cellSize = function (t) {
if (!arguments.length) return 1 << a;
if (!((t = +t) >= 1)) throw new Error("invalid cell size");
return (a = Math.floor(Math.log(t) / Math.LN2)), y();
}),
(l.thresholds = function (t) {
return arguments.length
? ((s =
"function" == typeof t
? t
: Array.isArray(t)
? uo(oo.call(t))
: uo(t)),
l)
: s;
}),
(l.bandwidth = function (t) {
if (!arguments.length) return Math.sqrt(o * (o + 1));
if (!((t = +t) >= 0)) throw new Error("invalid bandwidth");
return (o = Math.round((Math.sqrt(4 * t * t + 1) - 1) / 2)), y();
}),
l
);
}),
(t.dispatch = I),
(t.drag = function () {
var n,
e,
r,
i,
o = Gt,
a = Vt,
u = $t,
c = Wt,
f = {},
s = I("start", "drag", "end"),
l = 0,
h = 0;
function d(t) {
t.on("mousedown.drag", p)
.filter(c)
.on("touchstart.drag", y)
.on("touchmove.drag", _)
.on("touchend.drag touchcancel.drag", b)
.style("touch-action", "none")
.style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
}
function p() {
if (!i && o.apply(this, arguments)) {
var u = m("mouse", a.apply(this, arguments), Ot, this, arguments);
u &&
(zt(t.event.view)
.on("mousemove.drag", v, !0)
.on("mouseup.drag", g, !0),
It(t.event.view),
Bt(),
(r = !1),
(n = t.event.clientX),
(e = t.event.clientY),
u("start"));
}
}
function v() {
if ((Ft(), !r)) {
var i = t.event.clientX - n,
o = t.event.clientY - e;
r = i * i + o * o > h;
}
f.mouse("drag");
}
function g() {
zt(t.event.view).on("mousemove.drag mouseup.drag", null),
Ht(t.event.view, r),
Ft(),
f.mouse("end");
}
function y() {
if (o.apply(this, arguments)) {
var n,
e,
r = t.event.changedTouches,
i = a.apply(this, arguments),
u = r.length;
for (n = 0; n < u; ++n)
(e = m(r[n].identifier, i, Yt, this, arguments)) &&
(Bt(), e("start"));
}
}
function _() {
var n,
e,
r = t.event.changedTouches,
i = r.length;
for (n = 0; n < i; ++n) (e = f[r[n].identifier]) && (Ft(), e("drag"));
}
function b() {
var n,
e,
r = t.event.changedTouches,
o = r.length;
for (
i && clearTimeout(i),
i = setTimeout(function () {
i = null;
}, 500),
n = 0;
n < o;
++n
)
(e = f[r[n].identifier]) && (Bt(), e("end"));
}
function m(n, e, r, i, o) {
var a,
c,
h,
p = r(e, n),
v = s.copy();
if (
St(
new Xt(d, "beforestart", a, n, l, p[0], p[1], 0, 0, v),
function () {
return (
null != (t.event.subject = a = u.apply(i, o)) &&
((c = a.x - p[0] || 0), (h = a.y - p[1] || 0), !0)
);
}
)
)
return function t(u) {
var s,
g = p;
switch (u) {
case "start":
(f[n] = t), (s = l++);
break;
case "end":
delete f[n], --l;
case "drag":
(p = r(e, n)), (s = l);
}
St(
new Xt(
d,
u,
a,
n,
s,
p[0] + c,
p[1] + h,
p[0] - g[0],
p[1] - g[1],
v
),
v.apply,
v,
[u, i, o]
);
};
}
return (
(d.filter = function (t) {
return arguments.length
? ((o = "function" == typeof t ? t : jt(!!t)), d)
: o;
}),
(d.container = function (t) {
return arguments.length
? ((a = "function" == typeof t ? t : jt(t)), d)
: a;
}),
(d.subject = function (t) {
return arguments.length
? ((u = "function" == typeof t ? t : jt(t)), d)
: u;
}),
(d.touchable = function (t) {
return arguments.length
? ((c = "function" == typeof t ? t : jt(!!t)), d)
: c;
}),
(d.on = function () {
var t = s.on.apply(s, arguments);
return t === s ? d : t;
}),
(d.clickDistance = function (t) {
return arguments.length ? ((h = (t = +t) * t), d) : Math.sqrt(h);
}),
d
);
}),
(t.dragDisable = It),
(t.dragEnable = Ht),
(t.dsvFormat = ko),
(t.csvParse = To),
(t.csvParseRows = Eo),
(t.csvFormat = Co),
(t.csvFormatRows = Po),
(t.tsvParse = Ro),
(t.tsvParseRows = qo),
(t.tsvFormat = Do),
(t.tsvFormatRows = Lo),
(t.easeLinear = function (t) {
return +t;
}),
(t.easeQuad = Rr),
(t.easeQuadIn = function (t) {
return t * t;
}),
(t.easeQuadOut = function (t) {
return t * (2 - t);
}),
(t.easeQuadInOut = Rr),
(t.easeCubic = qr),
(t.easeCubicIn = function (t) {
return t * t * t;
}),
(t.easeCubicOut = function (t) {
return --t * t * t + 1;
}),
(t.easeCubicInOut = qr),
(t.easePoly = Ur),
(t.easePolyIn = Dr),
(t.easePolyOut = Lr),
(t.easePolyInOut = Ur),
(t.easeSin = Br),
(t.easeSinIn = function (t) {
return 1 - Math.cos(t * Yr);
}),
(t.easeSinOut = function (t) {
return Math.sin(t * Yr);
}),
(t.easeSinInOut = Br),
(t.easeExp = Fr),
(t.easeExpIn = function (t) {
return Math.pow(2, 10 * t - 10);
}),
(t.easeExpOut = function (t) {
return 1 - Math.pow(2, -10 * t);
}),
(t.easeExpInOut = Fr),
(t.easeCircle = Ir),
(t.easeCircleIn = function (t) {
return 1 - Math.sqrt(1 - t * t);
}),
(t.easeCircleOut = function (t) {
return Math.sqrt(1 - --t * t);
}),
(t.easeCircleInOut = Ir),
(t.easeBounce = Kr),
(t.easeBounceIn = function (t) {
return 1 - Kr(1 - t);
}),
(t.easeBounceOut = Kr),
(t.easeBounceInOut = function (t) {
return ((t *= 2) <= 1 ? 1 - Kr(1 - t) : Kr(t - 1) + 1) / 2;
}),
(t.easeBack = ei),
(t.easeBackIn = ti),
(t.easeBackOut = ni),
(t.easeBackInOut = ei),
(t.easeElastic = oi),
(t.easeElasticIn = ii),
(t.easeElasticOut = oi),
(t.easeElasticInOut = ai),
(t.blob = function (t, n) {
return fetch(t, n).then(Uo);
}),
(t.buffer = function (t, n) {
return fetch(t, n).then(Oo);
}),
(t.dsv = function (t, n, e, r) {
3 === arguments.length &&
"function" == typeof e &&
((r = e), (e = void 0));
var i = ko(t);
return Bo(n, e).then(function (t) {
return i.parse(t, r);
});
}),
(t.csv = Io),
(t.tsv = Ho),
(t.image = function (t, n) {
return new Promise(function (e, r) {
var i = new Image();
for (var o in n) i[o] = n[o];
(i.onerror = r),
(i.onload = function () {
e(i);
}),
(i.src = t);
});
}),
(t.json = function (t, n) {
return fetch(t, n).then(jo);
}),
(t.text = Bo),
(t.xml = Go),
(t.html = Vo),
(t.svg = $o),
(t.forceCenter = function (t, n) {
var e;
function r() {
var r,
i,
o = e.length,
a = 0,
u = 0;
for (r = 0; r < o; ++r) (a += (i = e[r]).x), (u += i.y);
for (a = a / o - t, u = u / o - n, r = 0; r < o; ++r)
((i = e[r]).x -= a), (i.y -= u);
}
return (
null == t && (t = 0),
null == n && (n = 0),
(r.initialize = function (t) {
e = t;
}),
(r.x = function (n) {
return arguments.length ? ((t = +n), r) : t;
}),
(r.y = function (t) {
return arguments.length ? ((n = +t), r) : n;
}),
r
);
}),
(t.forceCollide = function (t) {
var n,
e,
r = 1,
i = 1;
function o() {
for (var t, o, u, c, f, s, l, h = n.length, d = 0; d < i; ++d)
for (o = na(n, oa, aa).visitAfter(a), t = 0; t < h; ++t)
(u = n[t]),
(s = e[u.index]),
(l = s * s),
(c = u.x + u.vx),
(f = u.y + u.vy),
o.visit(p);
function p(t, n, e, i, o) {
var a = t.data,
h = t.r,
d = s + h;
if (!a) return n > c + d || i < c - d || e > f + d || o < f - d;
if (a.index > u.index) {
var p = c - a.x - a.vx,
v = f - a.y - a.vy,
g = p * p + v * v;
g < d * d &&
(0 === p && (g += (p = Zo()) * p),
0 === v && (g += (v = Zo()) * v),
(g = ((d - (g = Math.sqrt(g))) / g) * r),
(u.vx += (p *= g) * (d = (h *= h) / (l + h))),
(u.vy += (v *= g) * d),
(a.vx -= p * (d = 1 - d)),
(a.vy -= v * d));
}
}
}
function a(t) {
if (t.data) return (t.r = e[t.data.index]);
for (var n = (t.r = 0); n < 4; ++n)
t[n] && t[n].r > t.r && (t.r = t[n].r);
}
function u() {
if (n) {
var r,
i,
o = n.length;
for (e = new Array(o), r = 0; r < o; ++r)
(i = n[r]), (e[i.index] = +t(i, r, n));
}
}
return (
"function" != typeof t && (t = Wo(null == t ? 1 : +t)),
(o.initialize = function (t) {
(n = t), u();
}),
(o.iterations = function (t) {
return arguments.length ? ((i = +t), o) : i;
}),
(o.strength = function (t) {
return arguments.length ? ((r = +t), o) : r;
}),
(o.radius = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : Wo(+n)), u(), o)
: t;
}),
o
);
}),
(t.forceLink = function (t) {
var n,
e,
r,
i,
o,
a = ua,
u = function (t) {
return 1 / Math.min(i[t.source.index], i[t.target.index]);
},
c = Wo(30),
f = 1;
function s(r) {
for (var i = 0, a = t.length; i < f; ++i)
for (var u, c, s, l, h, d, p, v = 0; v < a; ++v)
(c = (u = t[v]).source),
(l = (s = u.target).x + s.vx - c.x - c.vx || Zo()),
(h = s.y + s.vy - c.y - c.vy || Zo()),
(l *= d =
(((d = Math.sqrt(l * l + h * h)) - e[v]) / d) * r * n[v]),
(h *= d),
(s.vx -= l * (p = o[v])),
(s.vy -= h * p),
(c.vx += l * (p = 1 - p)),
(c.vy += h * p);
}
function l() {
if (r) {
var u,
c,
f = r.length,
s = t.length,
l = Qi(r, a);
for (u = 0, i = new Array(f); u < s; ++u)
((c = t[u]).index = u),
"object" != typeof c.source && (c.source = ca(l, c.source)),
"object" != typeof c.target && (c.target = ca(l, c.target)),
(i[c.source.index] = (i[c.source.index] || 0) + 1),
(i[c.target.index] = (i[c.target.index] || 0) + 1);
for (u = 0, o = new Array(s); u < s; ++u)
(c = t[u]),
(o[u] =
i[c.source.index] / (i[c.source.index] + i[c.target.index]));
(n = new Array(s)), h(), (e = new Array(s)), d();
}
}
function h() {
if (r) for (var e = 0, i = t.length; e < i; ++e) n[e] = +u(t[e], e, t);
}
function d() {
if (r) for (var n = 0, i = t.length; n < i; ++n) e[n] = +c(t[n], n, t);
}
return (
null == t && (t = []),
(s.initialize = function (t) {
(r = t), l();
}),
(s.links = function (n) {
return arguments.length ? ((t = n), l(), s) : t;
}),
(s.id = function (t) {
return arguments.length ? ((a = t), s) : a;
}),
(s.iterations = function (t) {
return arguments.length ? ((f = +t), s) : f;
}),
(s.strength = function (t) {
return arguments.length
? ((u = "function" == typeof t ? t : Wo(+t)), h(), s)
: u;
}),
(s.distance = function (t) {
return arguments.length
? ((c = "function" == typeof t ? t : Wo(+t)), d(), s)
: c;
}),
s
);
}),
(t.forceManyBody = function () {
var t,
n,
e,
r,
i = Wo(-30),
o = 1,
a = 1 / 0,
u = 0.81;
function c(r) {
var i,
o = t.length,
a = na(t, fa, sa).visitAfter(s);
for (e = r, i = 0; i < o; ++i) (n = t[i]), a.visit(l);
}
function f() {
if (t) {
var n,
e,
o = t.length;
for (r = new Array(o), n = 0; n < o; ++n)
(e = t[n]), (r[e.index] = +i(e, n, t));
}
}
function s(t) {
var n,
e,
i,
o,
a,
u = 0,
c = 0;
if (t.length) {
for (i = o = a = 0; a < 4; ++a)
(n = t[a]) &&
(e = Math.abs(n.value)) &&
((u += n.value), (c += e), (i += e * n.x), (o += e * n.y));
(t.x = i / c), (t.y = o / c);
} else {
((n = t).x = n.data.x), (n.y = n.data.y);
do {
u += r[n.data.index];
} while ((n = n.next));
}
t.value = u;
}
function l(t, i, c, f) {
if (!t.value) return !0;
var s = t.x - n.x,
l = t.y - n.y,
h = f - i,
d = s * s + l * l;
if ((h * h) / u < d)
return (
d < a &&
(0 === s && (d += (s = Zo()) * s),
0 === l && (d += (l = Zo()) * l),
d < o && (d = Math.sqrt(o * d)),
(n.vx += (s * t.value * e) / d),
(n.vy += (l * t.value * e) / d)),
!0
);
if (!(t.length || d >= a)) {
(t.data !== n || t.next) &&
(0 === s && (d += (s = Zo()) * s),
0 === l && (d += (l = Zo()) * l),
d < o && (d = Math.sqrt(o * d)));
do {
t.data !== n &&
((h = (r[t.data.index] * e) / d),
(n.vx += s * h),
(n.vy += l * h));
} while ((t = t.next));
}
}
return (
(c.initialize = function (n) {
(t = n), f();
}),
(c.strength = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : Wo(+t)), f(), c)
: i;
}),
(c.distanceMin = function (t) {
return arguments.length ? ((o = t * t), c) : Math.sqrt(o);
}),
(c.distanceMax = function (t) {
return arguments.length ? ((a = t * t), c) : Math.sqrt(a);
}),
(c.theta = function (t) {
return arguments.length ? ((u = t * t), c) : Math.sqrt(u);
}),
c
);
}),
(t.forceRadial = function (t, n, e) {
var r,
i,
o,
a = Wo(0.1);
function u(t) {
for (var a = 0, u = r.length; a < u; ++a) {
var c = r[a],
f = c.x - n || 1e-6,
s = c.y - e || 1e-6,
l = Math.sqrt(f * f + s * s),
h = ((o[a] - l) * i[a] * t) / l;
(c.vx += f * h), (c.vy += s * h);
}
}
function c() {
if (r) {
var n,
e = r.length;
for (i = new Array(e), o = new Array(e), n = 0; n < e; ++n)
(o[n] = +t(r[n], n, r)), (i[n] = isNaN(o[n]) ? 0 : +a(r[n], n, r));
}
}
return (
"function" != typeof t && (t = Wo(+t)),
null == n && (n = 0),
null == e && (e = 0),
(u.initialize = function (t) {
(r = t), c();
}),
(u.strength = function (t) {
return arguments.length
? ((a = "function" == typeof t ? t : Wo(+t)), c(), u)
: a;
}),
(u.radius = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : Wo(+n)), c(), u)
: t;
}),
(u.x = function (t) {
return arguments.length ? ((n = +t), u) : n;
}),
(u.y = function (t) {
return arguments.length ? ((e = +t), u) : e;
}),
u
);
}),
(t.forceSimulation = function (t) {
var n,
e = 1,
r = 0.001,
i = 1 - Math.pow(r, 1 / 300),
o = 0,
a = 0.6,
u = Qi(),
c = ir(s),
f = I("tick", "end");
function s() {
l(), f.call("tick", n), e < r && (c.stop(), f.call("end", n));
}
function l(r) {
var c,
f,
s = t.length;
void 0 === r && (r = 1);
for (var l = 0; l < r; ++l)
for (
e += (o - e) * i,
u.each(function (t) {
t(e);
}),
c = 0;
c < s;
++c
)
null == (f = t[c]).fx
? (f.x += f.vx *= a)
: ((f.x = f.fx), (f.vx = 0)),
null == f.fy ? (f.y += f.vy *= a) : ((f.y = f.fy), (f.vy = 0));
return n;
}
function h() {
for (var n, e = 0, r = t.length; e < r; ++e) {
if (
(((n = t[e]).index = e),
isNaN(n.fx) || (n.x = n.fx),
isNaN(n.fy) || (n.y = n.fy),
isNaN(n.x) || isNaN(n.y))
) {
var i = la * Math.sqrt(e),
o = e * ha;
(n.x = i * Math.cos(o)), (n.y = i * Math.sin(o));
}
(isNaN(n.vx) || isNaN(n.vy)) && (n.vx = n.vy = 0);
}
}
function d(n) {
return n.initialize && n.initialize(t), n;
}
return (
null == t && (t = []),
h(),
(n = {
tick: l,
restart: function () {
return c.restart(s), n;
},
stop: function () {
return c.stop(), n;
},
nodes: function (e) {
return arguments.length ? ((t = e), h(), u.each(d), n) : t;
},
alpha: function (t) {
return arguments.length ? ((e = +t), n) : e;
},
alphaMin: function (t) {
return arguments.length ? ((r = +t), n) : r;
},
alphaDecay: function (t) {
return arguments.length ? ((i = +t), n) : +i;
},
alphaTarget: function (t) {
return arguments.length ? ((o = +t), n) : o;
},
velocityDecay: function (t) {
return arguments.length ? ((a = 1 - t), n) : 1 - a;
},
force: function (t, e) {
return arguments.length > 1
? (null == e ? u.remove(t) : u.set(t, d(e)), n)
: u.get(t);
},
find: function (n, e, r) {
var i,
o,
a,
u,
c,
f = 0,
s = t.length;
for (null == r ? (r = 1 / 0) : (r *= r), f = 0; f < s; ++f)
(a = (i = n - (u = t[f]).x) * i + (o = e - u.y) * o) < r &&
((c = u), (r = a));
return c;
},
on: function (t, e) {
return arguments.length > 1 ? (f.on(t, e), n) : f.on(t);
},
})
);
}),
(t.forceX = function (t) {
var n,
e,
r,
i = Wo(0.1);
function o(t) {
for (var i, o = 0, a = n.length; o < a; ++o)
(i = n[o]).vx += (r[o] - i.x) * e[o] * t;
}
function a() {
if (n) {
var o,
a = n.length;
for (e = new Array(a), r = new Array(a), o = 0; o < a; ++o)
e[o] = isNaN((r[o] = +t(n[o], o, n))) ? 0 : +i(n[o], o, n);
}
}
return (
"function" != typeof t && (t = Wo(null == t ? 0 : +t)),
(o.initialize = function (t) {
(n = t), a();
}),
(o.strength = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : Wo(+t)), a(), o)
: i;
}),
(o.x = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : Wo(+n)), a(), o)
: t;
}),
o
);
}),
(t.forceY = function (t) {
var n,
e,
r,
i = Wo(0.1);
function o(t) {
for (var i, o = 0, a = n.length; o < a; ++o)
(i = n[o]).vy += (r[o] - i.y) * e[o] * t;
}
function a() {
if (n) {
var o,
a = n.length;
for (e = new Array(a), r = new Array(a), o = 0; o < a; ++o)
e[o] = isNaN((r[o] = +t(n[o], o, n))) ? 0 : +i(n[o], o, n);
}
}
return (
"function" != typeof t && (t = Wo(null == t ? 0 : +t)),
(o.initialize = function (t) {
(n = t), a();
}),
(o.strength = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : Wo(+t)), a(), o)
: i;
}),
(o.y = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : Wo(+n)), a(), o)
: t;
}),
o
);
}),
(t.formatDefaultLocale = Aa),
(t.formatLocale = Na),
(t.formatSpecifier = ya),
(t.precisionFixed = ka),
(t.precisionPrefix = Sa),
(t.precisionRound = Ta),
(t.geoArea = function (t) {
return vu.reset(), cu(t, gu), 2 * vu;
}),
(t.geoBounds = function (t) {
var n, e, r, i, o, a, u;
if (
((Pu = Cu = -(Tu = Eu = 1 / 0)), (Lu = []), cu(t, nc), (e = Lu.length))
) {
for (Lu.sort(sc), n = 1, o = [(r = Lu[0])]; n < e; ++n)
lc(r, (i = Lu[n])[0]) || lc(r, i[1])
? (fc(r[0], i[1]) > fc(r[0], r[1]) && (r[1] = i[1]),
fc(i[0], r[1]) > fc(r[0], r[1]) && (r[0] = i[0]))
: o.push((r = i));
for (a = -1 / 0, n = 0, r = o[(e = o.length - 1)]; n <= e; r = i, ++n)
(i = o[n]),
(u = fc(r[1], i[0])) > a && ((a = u), (Tu = i[0]), (Cu = r[1]));
}
return (
(Lu = Uu = null),
Tu === 1 / 0 || Eu === 1 / 0
? [
[NaN, NaN],
[NaN, NaN],
]
: [
[Tu, Eu],
[Cu, Pu],
]
);
}),
(t.geoCentroid = function (t) {
(Ou = Yu = Bu = Fu = Iu = Hu = ju = Xu = Gu = Vu = $u = 0), cu(t, hc);
var n = Gu,
e = Vu,
r = $u,
i = n * n + e * e + r * r;
return i < qa &&
((n = Hu),
(e = ju),
(r = Xu),
Yu < Ra && ((n = Bu), (e = Fu), (r = Iu)),
(i = n * n + e * e + r * r) < qa)
? [NaN, NaN]
: [Ha(e, n) * Ya, tu(r / Qa(i)) * Ya];
}),
(t.geoCircle = function () {
var t,
n,
e = Mc([0, 0]),
r = Mc(90),
i = Mc(6),
o = {
point: function (e, r) {
t.push((e = n(e, r))), (e[0] *= Ya), (e[1] *= Ya);
},
};
function a() {
var a = e.apply(this, arguments),
u = r.apply(this, arguments) * Ba,
c = i.apply(this, arguments) * Ba;
return (
(t = []),
(n = kc(-a[0] * Ba, -a[1] * Ba, 0).invert),
Pc(o, u, c, 1),
(a = { type: "Polygon", coordinates: [t] }),
(t = n = null),
a
);
}
return (
(a.center = function (t) {
return arguments.length
? ((e = "function" == typeof t ? t : Mc([+t[0], +t[1]])), a)
: e;
}),
(a.radius = function (t) {
return arguments.length
? ((r = "function" == typeof t ? t : Mc(+t)), a)
: r;
}),
(a.precision = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : Mc(+t)), a)
: i;
}),
a
);
}),
(t.geoClipAntimeridian = Hc),
(t.geoClipCircle = jc),
(t.geoClipExtent = function () {
var t,
n,
e,
r = 0,
i = 0,
o = 960,
a = 500;
return (e = {
stream: function (e) {
return t && n === e ? t : (t = Vc(r, i, o, a)((n = e)));
},
extent: function (u) {
return arguments.length
? ((r = +u[0][0]),
(i = +u[0][1]),
(o = +u[1][0]),
(a = +u[1][1]),
(t = n = null),
e)
: [
[r, i],
[o, a],
];
},
});
}),
(t.geoClipRectangle = Vc),
(t.geoContains = function (t, n) {
return (t && uf.hasOwnProperty(t.type) ? uf[t.type] : ff)(t, n);
}),
(t.geoDistance = af),
(t.geoGraticule = yf),
(t.geoGraticule10 = function () {
return yf()();
}),
(t.geoInterpolate = function (t, n) {
var e = t[0] * Ba,
r = t[1] * Ba,
i = n[0] * Ba,
o = n[1] * Ba,
a = ja(r),
u = Wa(r),
c = ja(o),
f = Wa(o),
s = a * ja(e),
l = a * Wa(e),
h = c * ja(i),
d = c * Wa(i),
p = 2 * tu(Qa(nu(o - r) + a * c * nu(i - e))),
v = Wa(p),
g = p
? function (t) {
var n = Wa((t *= p)) / v,
e = Wa(p - t) / v,
r = e * s + n * h,
i = e * l + n * d,
o = e * u + n * f;
return [Ha(i, r) * Ya, Ha(o, Qa(r * r + i * i)) * Ya];
}
: function () {
return [e * Ya, r * Ya];
};
return (g.distance = p), g;
}),
(t.geoLength = ef),
(t.geoPath = function (t, n) {
var e,
r,
i = 4.5;
function o(t) {
return (
t &&
("function" == typeof i && r.pointRadius(+i.apply(this, arguments)),
cu(t, e(r))),
r.result()
);
}
return (
(o.area = function (t) {
return cu(t, e(Af)), Af.result();
}),
(o.measure = function (t) {
return cu(t, e(ls)), ls.result();
}),
(o.bounds = function (t) {
return cu(t, e(qf)), qf.result();
}),
(o.centroid = function (t) {
return cu(t, e($f)), $f.result();
}),
(o.projection = function (n) {
return arguments.length
? ((e = null == n ? ((t = null), _f) : (t = n).stream), o)
: t;
}),
(o.context = function (t) {
return arguments.length
? ((r = null == t ? ((n = null), new ps()) : new is((n = t))),
"function" != typeof i && r.pointRadius(i),
o)
: n;
}),
(o.pointRadius = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : (r.pointRadius(+t), +t)), o)
: i;
}),
o.projection(t).context(n)
);
}),
(t.geoAlbers = Rs),
(t.geoAlbersUsa = function () {
var t,
n,
e,
r,
i,
o,
a = Rs(),
u = zs().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]),
c = zs().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]),
f = {
point: function (t, n) {
o = [t, n];
},
};
function s(t) {
var n = t[0],
a = t[1];
return (
(o = null),
e.point(n, a),
o || (r.point(n, a), o) || (i.point(n, a), o)
);
}
function l() {
return (t = n = null), s;
}
return (
(s.invert = function (t) {
var n = a.scale(),
e = a.translate(),
r = (t[0] - e[0]) / n,
i = (t[1] - e[1]) / n;
return (
i >= 0.12 && i < 0.234 && r >= -0.425 && r < -0.214
? u
: i >= 0.166 && i < 0.234 && r >= -0.214 && r < -0.115
? c
: a
).invert(t);
}),
(s.stream = function (e) {
return t && n === e
? t
: ((r = [a.stream((n = e)), u.stream(e), c.stream(e)]),
(i = r.length),
(t = {
point: function (t, n) {
for (var e = -1; ++e < i; ) r[e].point(t, n);
},
sphere: function () {
for (var t = -1; ++t < i; ) r[t].sphere();
},
lineStart: function () {
for (var t = -1; ++t < i; ) r[t].lineStart();
},
lineEnd: function () {
for (var t = -1; ++t < i; ) r[t].lineEnd();
},
polygonStart: function () {
for (var t = -1; ++t < i; ) r[t].polygonStart();
},
polygonEnd: function () {
for (var t = -1; ++t < i; ) r[t].polygonEnd();
},
}));
var r, i;
}),
(s.precision = function (t) {
return arguments.length
? (a.precision(t), u.precision(t), c.precision(t), l())
: a.precision();
}),
(s.scale = function (t) {
return arguments.length
? (a.scale(t),
u.scale(0.35 * t),
c.scale(t),
s.translate(a.translate()))
: a.scale();
}),
(s.translate = function (t) {
if (!arguments.length) return a.translate();
var n = a.scale(),
o = +t[0],
s = +t[1];
return (
(e = a
.translate(t)
.clipExtent([
[o - 0.455 * n, s - 0.238 * n],
[o + 0.455 * n, s + 0.238 * n],
])
.stream(f)),
(r = u
.translate([o - 0.307 * n, s + 0.201 * n])
.clipExtent([
[o - 0.425 * n + Ra, s + 0.12 * n + Ra],
[o - 0.214 * n - Ra, s + 0.234 * n - Ra],
])
.stream(f)),
(i = c
.translate([o - 0.205 * n, s + 0.212 * n])
.clipExtent([
[o - 0.214 * n + Ra, s + 0.166 * n + Ra],
[o - 0.115 * n - Ra, s + 0.234 * n - Ra],
])
.stream(f)),
l()
);
}),
(s.fitExtent = function (t, n) {
return bs(s, t, n);
}),
(s.fitSize = function (t, n) {
return ms(s, t, n);
}),
(s.fitWidth = function (t, n) {
return xs(s, t, n);
}),
(s.fitHeight = function (t, n) {
return ws(s, t, n);
}),
s.scale(1070)
);
}),
(t.geoAzimuthalEqualArea = function () {
return Ts(Ls).scale(124.75).clipAngle(179.999);
}),
(t.geoAzimuthalEqualAreaRaw = Ls),
(t.geoAzimuthalEquidistant = function () {
return Ts(Us).scale(79.4188).clipAngle(179.999);
}),
(t.geoAzimuthalEquidistantRaw = Us),
(t.geoConicConformal = function () {
return Cs(Fs).scale(109.5).parallels([30, 30]);
}),
(t.geoConicConformalRaw = Fs),
(t.geoConicEqualArea = zs),
(t.geoConicEqualAreaRaw = Ps),
(t.geoConicEquidistant = function () {
return Cs(Hs).scale(131.154).center([0, 13.9389]);
}),
(t.geoConicEquidistantRaw = Hs),
(t.geoEqualEarth = function () {
return Ts(Ws).scale(177.158);
}),
(t.geoEqualEarthRaw = Ws),
(t.geoEquirectangular = function () {
return Ts(Is).scale(152.63);
}),
(t.geoEquirectangularRaw = Is),
(t.geoGnomonic = function () {
return Ts(Zs).scale(144.049).clipAngle(60);
}),
(t.geoGnomonicRaw = Zs),
(t.geoIdentity = function () {
var t,
n,
e,
r,
i,
o,
a = 1,
u = 0,
c = 0,
f = 1,
s = 1,
l = _f,
h = null,
d = _f;
function p() {
return (r = i = null), o;
}
return (o = {
stream: function (t) {
return r && i === t ? r : (r = l(d((i = t))));
},
postclip: function (r) {
return arguments.length ? ((d = r), (h = t = n = e = null), p()) : d;
},
clipExtent: function (r) {
return arguments.length
? ((d =
null == r
? ((h = t = n = e = null), _f)
: Vc(
(h = +r[0][0]),
(t = +r[0][1]),
(n = +r[1][0]),
(e = +r[1][1])
)),
p())
: null == h
? null
: [
[h, t],
[n, e],
];
},
scale: function (t) {
return arguments.length
? ((l = Qs((a = +t) * f, a * s, u, c)), p())
: a;
},
translate: function (t) {
return arguments.length
? ((l = Qs(a * f, a * s, (u = +t[0]), (c = +t[1]))), p())
: [u, c];
},
reflectX: function (t) {
return arguments.length
? ((l = Qs(a * (f = t ? -1 : 1), a * s, u, c)), p())
: f < 0;
},
reflectY: function (t) {
return arguments.length
? ((l = Qs(a * f, a * (s = t ? -1 : 1), u, c)), p())
: s < 0;
},
fitExtent: function (t, n) {
return bs(o, t, n);
},
fitSize: function (t, n) {
return ms(o, t, n);
},
fitWidth: function (t, n) {
return xs(o, t, n);
},
fitHeight: function (t, n) {
return ws(o, t, n);
},
});
}),
(t.geoProjection = Ts),
(t.geoProjectionMutator = Es),
(t.geoMercator = function () {
return Ys(Os).scale(961 / Oa);
}),
(t.geoMercatorRaw = Os),
(t.geoNaturalEarth1 = function () {
return Ts(Js).scale(175.295);
}),
(t.geoNaturalEarth1Raw = Js),
(t.geoOrthographic = function () {
return Ts(Ks)
.scale(249.5)
.clipAngle(90 + Ra);
}),
(t.geoOrthographicRaw = Ks),
(t.geoStereographic = function () {
return Ts(tl).scale(250).clipAngle(142);
}),
(t.geoStereographicRaw = tl),
(t.geoTransverseMercator = function () {
var t = Ys(nl),
n = t.center,
e = t.rotate;
return (
(t.center = function (t) {
return arguments.length ? n([-t[1], t[0]]) : [(t = n())[1], -t[0]];
}),
(t.rotate = function (t) {
return arguments.length
? e([t[0], t[1], t.length > 2 ? t[2] + 90 : 90])
: [(t = e())[0], t[1], t[2] - 90];
}),
e([0, 0, 90]).scale(159.155)
);
}),
(t.geoTransverseMercatorRaw = nl),
(t.geoRotation = Cc),
(t.geoStream = cu),
(t.geoTransform = function (t) {
return { stream: gs(t) };
}),
(t.cluster = function () {
var t = el,
n = 1,
e = 1,
r = !1;
function i(i) {
var o,
a = 0;
i.eachAfter(function (n) {
var e = n.children;
e
? ((n.x = (function (t) {
return t.reduce(rl, 0) / t.length;
})(e)),
(n.y = (function (t) {
return 1 + t.reduce(il, 0);
})(e)))
: ((n.x = o ? (a += t(n, o)) : 0), (n.y = 0), (o = n));
});
var u = (function (t) {
for (var n; (n = t.children); ) t = n[0];
return t;
})(i),
c = (function (t) {
for (var n; (n = t.children); ) t = n[n.length - 1];
return t;
})(i),
f = u.x - t(u, c) / 2,
s = c.x + t(c, u) / 2;
return i.eachAfter(
r
? function (t) {
(t.x = (t.x - i.x) * n), (t.y = (i.y - t.y) * e);
}
: function (t) {
(t.x = ((t.x - f) / (s - f)) * n),
(t.y = (1 - (i.y ? t.y / i.y : 1)) * e);
}
);
}
return (
(i.separation = function (n) {
return arguments.length ? ((t = n), i) : t;
}),
(i.size = function (t) {
return arguments.length
? ((r = !1), (n = +t[0]), (e = +t[1]), i)
: r
? null
: [n, e];
}),
(i.nodeSize = function (t) {
return arguments.length
? ((r = !0), (n = +t[0]), (e = +t[1]), i)
: r
? [n, e]
: null;
}),
i
);
}),
(t.hierarchy = al),
(t.pack = function () {
var t = null,
n = 1,
e = 1,
r = kl;
function i(i) {
return (
(i.x = n / 2),
(i.y = e / 2),
t
? i.eachBefore(El(t)).eachAfter(Cl(r, 0.5)).eachBefore(Pl(1))
: i
.eachBefore(El(Tl))
.eachAfter(Cl(kl, 1))
.eachAfter(Cl(r, i.r / Math.min(n, e)))
.eachBefore(Pl(Math.min(n, e) / (2 * i.r))),
i
);
}
return (
(i.radius = function (n) {
return arguments.length
? ((t = null == (e = n) ? null : Al(e)), i)
: t;
var e;
}),
(i.size = function (t) {
return arguments.length ? ((n = +t[0]), (e = +t[1]), i) : [n, e];
}),
(i.padding = function (t) {
return arguments.length
? ((r = "function" == typeof t ? t : Sl(+t)), i)
: r;
}),
i
);
}),
(t.packSiblings = function (t) {
return Nl(t), t;
}),
(t.packEnclose = hl),
(t.partition = function () {
var t = 1,
n = 1,
e = 0,
r = !1;
function i(i) {
var o = i.height + 1;
return (
(i.x0 = i.y0 = e),
(i.x1 = t),
(i.y1 = n / o),
i.eachBefore(
(function (t, n) {
return function (r) {
r.children &&
Rl(
r,
r.x0,
(t * (r.depth + 1)) / n,
r.x1,
(t * (r.depth + 2)) / n
);
var i = r.x0,
o = r.y0,
a = r.x1 - e,
u = r.y1 - e;
a < i && (i = a = (i + a) / 2),
u < o && (o = u = (o + u) / 2),
(r.x0 = i),
(r.y0 = o),
(r.x1 = a),
(r.y1 = u);
};
})(n, o)
),
r && i.eachBefore(zl),
i
);
}
return (
(i.round = function (t) {
return arguments.length ? ((r = !!t), i) : r;
}),
(i.size = function (e) {
return arguments.length ? ((t = +e[0]), (n = +e[1]), i) : [t, n];
}),
(i.padding = function (t) {
return arguments.length ? ((e = +t), i) : e;
}),
i
);
}),
(t.stratify = function () {
var t = Ul,
n = Ol;
function e(e) {
var r,
i,
o,
a,
u,
c,
f,
s = e.length,
l = new Array(s),
h = {};
for (i = 0; i < s; ++i)
(r = e[i]),
(u = l[i] = new sl(r)),
null != (c = t(r, i, e)) &&
(c += "") &&
(h[(f = ql + (u.id = c))] = f in h ? Ll : u);
for (i = 0; i < s; ++i)
if (((u = l[i]), null != (c = n(e[i], i, e)) && (c += ""))) {
if (!(a = h[ql + c])) throw new Error("missing: " + c);
if (a === Ll) throw new Error("ambiguous: " + c);
a.children ? a.children.push(u) : (a.children = [u]),
(u.parent = a);
} else {
if (o) throw new Error("multiple roots");
o = u;
}
if (!o) throw new Error("no root");
if (
((o.parent = Dl),
o
.eachBefore(function (t) {
(t.depth = t.parent.depth + 1), --s;
})
.eachBefore(fl),
(o.parent = null),
s > 0)
)
throw new Error("cycle");
return o;
}
return (
(e.id = function (n) {
return arguments.length ? ((t = Al(n)), e) : t;
}),
(e.parentId = function (t) {
return arguments.length ? ((n = Al(t)), e) : n;
}),
e
);
}),
(t.tree = function () {
var t = Yl,
n = 1,
e = 1,
r = null;
function i(i) {
var c = (function (t) {
for (var n, e, r, i, o, a = new jl(t, 0), u = [a]; (n = u.pop()); )
if ((r = n._.children))
for (
n.children = new Array((o = r.length)), i = o - 1;
i >= 0;
--i
)
u.push((e = n.children[i] = new jl(r[i], i))), (e.parent = n);
return ((a.parent = new jl(null, 0)).children = [a]), a;
})(i);
if ((c.eachAfter(o), (c.parent.m = -c.z), c.eachBefore(a), r))
i.eachBefore(u);
else {
var f = i,
s = i,
l = i;
i.eachBefore(function (t) {
t.x < f.x && (f = t),
t.x > s.x && (s = t),
t.depth > l.depth && (l = t);
});
var h = f === s ? 1 : t(f, s) / 2,
d = h - f.x,
p = n / (s.x + h + d),
v = e / (l.depth || 1);
i.eachBefore(function (t) {
(t.x = (t.x + d) * p), (t.y = t.depth * v);
});
}
return i;
}
function o(n) {
var e = n.children,
r = n.parent.children,
i = n.i ? r[n.i - 1] : null;
if (e) {
!(function (t) {
for (var n, e = 0, r = 0, i = t.children, o = i.length; --o >= 0; )
((n = i[o]).z += e), (n.m += e), (e += n.s + (r += n.c));
})(n);
var o = (e[0].z + e[e.length - 1].z) / 2;
i ? ((n.z = i.z + t(n._, i._)), (n.m = n.z - o)) : (n.z = o);
} else i && (n.z = i.z + t(n._, i._));
n.parent.A = (function (n, e, r) {
if (e) {
for (
var i,
o = n,
a = n,
u = e,
c = o.parent.children[0],
f = o.m,
s = a.m,
l = u.m,
h = c.m;
(u = Fl(u)), (o = Bl(o)), u && o;
)
(c = Bl(c)),
((a = Fl(a)).a = n),
(i = u.z + l - o.z - f + t(u._, o._)) > 0 &&
(Il(Hl(u, n, r), n, i), (f += i), (s += i)),
(l += u.m),
(f += o.m),
(h += c.m),
(s += a.m);
u && !Fl(a) && ((a.t = u), (a.m += l - s)),
o && !Bl(c) && ((c.t = o), (c.m += f - h), (r = n));
}
return r;
})(n, i, n.parent.A || r[0]);
}
function a(t) {
(t._.x = t.z + t.parent.m), (t.m += t.parent.m);
}
function u(t) {
(t.x *= n), (t.y = t.depth * e);
}
return (
(i.separation = function (n) {
return arguments.length ? ((t = n), i) : t;
}),
(i.size = function (t) {
return arguments.length
? ((r = !1), (n = +t[0]), (e = +t[1]), i)
: r
? null
: [n, e];
}),
(i.nodeSize = function (t) {
return arguments.length
? ((r = !0), (n = +t[0]), (e = +t[1]), i)
: r
? [n, e]
: null;
}),
i
);
}),
(t.treemap = function () {
var t = $l,
n = !1,
e = 1,
r = 1,
i = [0],
o = kl,
a = kl,
u = kl,
c = kl,
f = kl;
function s(t) {
return (
(t.x0 = t.y0 = 0),
(t.x1 = e),
(t.y1 = r),
t.eachBefore(l),
(i = [0]),
n && t.eachBefore(zl),
t
);
}
function l(n) {
var e = i[n.depth],
r = n.x0 + e,
s = n.y0 + e,
l = n.x1 - e,
h = n.y1 - e;
l < r && (r = l = (r + l) / 2),
h < s && (s = h = (s + h) / 2),
(n.x0 = r),
(n.y0 = s),
(n.x1 = l),
(n.y1 = h),
n.children &&
((e = i[n.depth + 1] = o(n) / 2),
(r += f(n) - e),
(s += a(n) - e),
(l -= u(n) - e) < r && (r = l = (r + l) / 2),
(h -= c(n) - e) < s && (s = h = (s + h) / 2),
t(n, r, s, l, h));
}
return (
(s.round = function (t) {
return arguments.length ? ((n = !!t), s) : n;
}),
(s.size = function (t) {
return arguments.length ? ((e = +t[0]), (r = +t[1]), s) : [e, r];
}),
(s.tile = function (n) {
return arguments.length ? ((t = Al(n)), s) : t;
}),
(s.padding = function (t) {
return arguments.length
? s.paddingInner(t).paddingOuter(t)
: s.paddingInner();
}),
(s.paddingInner = function (t) {
return arguments.length
? ((o = "function" == typeof t ? t : Sl(+t)), s)
: o;
}),
(s.paddingOuter = function (t) {
return arguments.length
? s.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t)
: s.paddingTop();
}),
(s.paddingTop = function (t) {
return arguments.length
? ((a = "function" == typeof t ? t : Sl(+t)), s)
: a;
}),
(s.paddingRight = function (t) {
return arguments.length
? ((u = "function" == typeof t ? t : Sl(+t)), s)
: u;
}),
(s.paddingBottom = function (t) {
return arguments.length
? ((c = "function" == typeof t ? t : Sl(+t)), s)
: c;
}),
(s.paddingLeft = function (t) {
return arguments.length
? ((f = "function" == typeof t ? t : Sl(+t)), s)
: f;
}),
s
);
}),
(t.treemapBinary = function (t, n, e, r, i) {
var o,
a,
u = t.children,
c = u.length,
f = new Array(c + 1);
for (f[0] = a = o = 0; o < c; ++o) f[o + 1] = a += u[o].value;
!(function t(n, e, r, i, o, a, c) {
if (n >= e - 1) {
var s = u[n];
return (s.x0 = i), (s.y0 = o), (s.x1 = a), void (s.y1 = c);
}
for (var l = f[n], h = r / 2 + l, d = n + 1, p = e - 1; d < p; ) {
var v = (d + p) >>> 1;
f[v] < h ? (d = v + 1) : (p = v);
}
h - f[d - 1] < f[d] - h && n + 1 < d && --d;
var g = f[d] - l,
y = r - g;
if (a - i > c - o) {
var _ = (i * y + a * g) / r;
t(n, d, g, i, o, _, c), t(d, e, y, _, o, a, c);
} else {
var b = (o * y + c * g) / r;
t(n, d, g, i, o, a, b), t(d, e, y, i, b, a, c);
}
})(0, c, t.value, n, e, r, i);
}),
(t.treemapDice = Rl),
(t.treemapSlice = Xl),
(t.treemapSliceDice = function (t, n, e, r, i) {
(1 & t.depth ? Xl : Rl)(t, n, e, r, i);
}),
(t.treemapSquarify = $l),
(t.treemapResquarify = Wl),
(t.interpolate = ye),
(t.interpolateArray = se),
(t.interpolateBasis = Kn),
(t.interpolateBasisClosed = te),
(t.interpolateDate = le),
(t.interpolateDiscrete = function (t) {
var n = t.length;
return function (e) {
return t[Math.max(0, Math.min(n - 1, Math.floor(e * n)))];
};
}),
(t.interpolateHue = function (t, n) {
var e = re(+t, +n);
return function (t) {
var n = e(t);
return n - 360 * Math.floor(n / 360);
};
}),
(t.interpolateNumber = he),
(t.interpolateObject = de),
(t.interpolateRound = _e),
(t.interpolateString = ge),
(t.interpolateTransformCss = Se),
(t.interpolateTransformSvg = Te),
(t.interpolateZoom = qe),
(t.interpolateRgb = ae),
(t.interpolateRgbBasis = ce),
(t.interpolateRgbBasisClosed = fe),
(t.interpolateHsl = Le),
(t.interpolateHslLong = Ue),
(t.interpolateLab = function (t, n) {
var e = oe((t = Rn(t)).l, (n = Rn(n)).l),
r = oe(t.a, n.a),
i = oe(t.b, n.b),
o = oe(t.opacity, n.opacity);
return function (n) {
return (
(t.l = e(n)), (t.a = r(n)), (t.b = i(n)), (t.opacity = o(n)), t + ""
);
};
}),
(t.interpolateHcl = Ye),
(t.interpolateHclLong = Be),
(t.interpolateCubehelix = Ie),
(t.interpolateCubehelixLong = He),
(t.piecewise = function (t, n) {
for (
var e = 0, r = n.length - 1, i = n[0], o = new Array(r < 0 ? 0 : r);
e < r;
)
o[e] = t(i, (i = n[++e]));
return function (t) {
var n = Math.max(0, Math.min(r - 1, Math.floor((t *= r))));
return o[n](t - n);
};
}),
(t.quantize = function (t, n) {
for (var e = new Array(n), r = 0; r < n; ++r) e[r] = t(r / (n - 1));
return e;
}),
(t.path = ji),
(t.polygonArea = function (t) {
for (var n, e = -1, r = t.length, i = t[r - 1], o = 0; ++e < r; )
(n = i), (i = t[e]), (o += n[1] * i[0] - n[0] * i[1]);
return o / 2;
}),
(t.polygonCentroid = function (t) {
for (
var n, e, r = -1, i = t.length, o = 0, a = 0, u = t[i - 1], c = 0;
++r < i;
)
(n = u),
(u = t[r]),
(c += e = n[0] * u[1] - u[0] * n[1]),
(o += (n[0] + u[0]) * e),
(a += (n[1] + u[1]) * e);
return [o / (c *= 3), a / c];
}),
(t.polygonHull = function (t) {
if ((e = t.length) < 3) return null;
var n,
e,
r = new Array(e),
i = new Array(e);
for (n = 0; n < e; ++n) r[n] = [+t[n][0], +t[n][1], n];
for (r.sort(Zl), n = 0; n < e; ++n) i[n] = [r[n][0], -r[n][1]];
var o = Ql(r),
a = Ql(i),
u = a[0] === o[0],
c = a[a.length - 1] === o[o.length - 1],
f = [];
for (n = o.length - 1; n >= 0; --n) f.push(t[r[o[n]][2]]);
for (n = +u; n < a.length - c; ++n) f.push(t[r[a[n]][2]]);
return f;
}),
(t.polygonContains = function (t, n) {
for (
var e,
r,
i = t.length,
o = t[i - 1],
a = n[0],
u = n[1],
c = o[0],
f = o[1],
s = !1,
l = 0;
l < i;
++l
)
(e = (o = t[l])[0]),
(r = o[1]) > u != f > u &&
a < ((c - e) * (u - r)) / (f - r) + e &&
(s = !s),
(c = e),
(f = r);
return s;
}),
(t.polygonLength = function (t) {
for (
var n, e, r = -1, i = t.length, o = t[i - 1], a = o[0], u = o[1], c = 0;
++r < i;
)
(n = a),
(e = u),
(n -= a = (o = t[r])[0]),
(e -= u = o[1]),
(c += Math.sqrt(n * n + e * e));
return c;
}),
(t.quadtree = na),
(t.randomUniform = Kl),
(t.randomNormal = th),
(t.randomLogNormal = nh),
(t.randomBates = rh),
(t.randomIrwinHall = eh),
(t.randomExponential = ih),
(t.scaleBand = hh),
(t.scalePoint = function () {
return (function t(n) {
var e = n.copy;
return (
(n.padding = n.paddingOuter),
delete n.paddingInner,
delete n.paddingOuter,
(n.copy = function () {
return t(e());
}),
n
);
})(hh.apply(null, arguments).paddingInner(1));
}),
(t.scaleIdentity = function t(n) {
var e;
function r(t) {
return isNaN((t = +t)) ? e : t;
}
return (
(r.invert = r),
(r.domain = r.range =
function (t) {
return arguments.length ? ((n = ch.call(t, dh)), r) : n.slice();
}),
(r.unknown = function (t) {
return arguments.length ? ((e = t), r) : e;
}),
(r.copy = function () {
return t(n).unknown(e);
}),
(n = arguments.length ? ch.call(n, dh) : [0, 1]),
Nh(r)
);
}),
(t.scaleLinear = function t() {
var n = wh(vh, vh);
return (
(n.copy = function () {
return mh(n, t());
}),
oh.apply(n, arguments),
Nh(n)
);
}),
(t.scaleLog = function t() {
var n = zh(xh()).domain([1, 10]);
return (
(n.copy = function () {
return mh(n, t()).base(n.base());
}),
oh.apply(n, arguments),
n
);
}),
(t.scaleSymlog = function t() {
var n = Dh(xh());
return (
(n.copy = function () {
return mh(n, t()).constant(n.constant());
}),
oh.apply(n, arguments)
);
}),
(t.scaleOrdinal = lh),
(t.scaleImplicit = sh),
(t.scalePow = Bh),
(t.scaleSqrt = function () {
return Bh.apply(null, arguments).exponent(0.5);
}),
(t.scaleQuantile = function t() {
var e,
r = [],
o = [],
a = [];
function u() {
var t = 0,
n = Math.max(1, o.length);
for (a = new Array(n - 1); ++t < n; ) a[t - 1] = N(r, t / n);
return c;
}
function c(t) {
return isNaN((t = +t)) ? e : o[i(a, t)];
}
return (
(c.invertExtent = function (t) {
var n = o.indexOf(t);
return n < 0
? [NaN, NaN]
: [n > 0 ? a[n - 1] : r[0], n < a.length ? a[n] : r[r.length - 1]];
}),
(c.domain = function (t) {
if (!arguments.length) return r.slice();
r = [];
for (var e, i = 0, o = t.length; i < o; ++i)
null == (e = t[i]) || isNaN((e = +e)) || r.push(e);
return r.sort(n), u();
}),
(c.range = function (t) {
return arguments.length ? ((o = fh.call(t)), u()) : o.slice();
}),
(c.unknown = function (t) {
return arguments.length ? ((e = t), c) : e;
}),
(c.quantiles = function () {
return a.slice();
}),
(c.copy = function () {
return t().domain(r).range(o).unknown(e);
}),
oh.apply(c, arguments)
);
}),
(t.scaleQuantize = function t() {
var n,
e = 0,
r = 1,
o = 1,
a = [0.5],
u = [0, 1];
function c(t) {
return t <= t ? u[i(a, t, 0, o)] : n;
}
function f() {
var t = -1;
for (a = new Array(o); ++t < o; )
a[t] = ((t + 1) * r - (t - o) * e) / (o + 1);
return c;
}
return (
(c.domain = function (t) {
return arguments.length ? ((e = +t[0]), (r = +t[1]), f()) : [e, r];
}),
(c.range = function (t) {
return arguments.length
? ((o = (u = fh.call(t)).length - 1), f())
: u.slice();
}),
(c.invertExtent = function (t) {
var n = u.indexOf(t);
return n < 0
? [NaN, NaN]
: n < 1
? [e, a[0]]
: n >= o
? [a[o - 1], r]
: [a[n - 1], a[n]];
}),
(c.unknown = function (t) {
return arguments.length ? ((n = t), c) : c;
}),
(c.thresholds = function () {
return a.slice();
}),
(c.copy = function () {
return t().domain([e, r]).range(u).unknown(n);
}),
oh.apply(Nh(c), arguments)
);
}),
(t.scaleThreshold = function t() {
var n,
e = [0.5],
r = [0, 1],
o = 1;
function a(t) {
return t <= t ? r[i(e, t, 0, o)] : n;
}
return (
(a.domain = function (t) {
return arguments.length
? ((e = fh.call(t)), (o = Math.min(e.length, r.length - 1)), a)
: e.slice();
}),
(a.range = function (t) {
return arguments.length
? ((r = fh.call(t)), (o = Math.min(e.length, r.length - 1)), a)
: r.slice();
}),
(a.invertExtent = function (t) {
var n = r.indexOf(t);
return [e[n - 1], e[n]];
}),
(a.unknown = function (t) {
return arguments.length ? ((n = t), a) : n;
}),
(a.copy = function () {
return t().domain(e).range(r).unknown(n);
}),
oh.apply(a, arguments)
);
}),
(t.scaleTime = function () {
return oh.apply(
bv(bd, yd, rd, td, Jh, Zh, $h, jh, t.timeFormat).domain([
new Date(2e3, 0, 1),
new Date(2e3, 0, 2),
]),
arguments
);
}),
(t.scaleUtc = function () {
return oh.apply(
bv(jd, Id, Td, Ad, Md, xd, $h, jh, t.utcFormat).domain([
Date.UTC(2e3, 0, 1),
Date.UTC(2e3, 0, 2),
]),
arguments
);
}),
(t.scaleSequential = function t() {
var n = Nh(mv()(vh));
return (
(n.copy = function () {
return xv(n, t());
}),
ah.apply(n, arguments)
);
}),
(t.scaleSequentialLog = function t() {
var n = zh(mv()).domain([1, 10]);
return (
(n.copy = function () {
return xv(n, t()).base(n.base());
}),
ah.apply(n, arguments)
);
}),
(t.scaleSequentialPow = wv),
(t.scaleSequentialSqrt = function () {
return wv.apply(null, arguments).exponent(0.5);
}),
(t.scaleSequentialSymlog = function t() {
var n = Dh(mv());
return (
(n.copy = function () {
return xv(n, t()).constant(n.constant());
}),
ah.apply(n, arguments)
);
}),
(t.scaleSequentialQuantile = function t() {
var e = [],
r = vh;
function o(t) {
if (!isNaN((t = +t))) return r((i(e, t) - 1) / (e.length - 1));
}
return (
(o.domain = function (t) {
if (!arguments.length) return e.slice();
e = [];
for (var r, i = 0, a = t.length; i < a; ++i)
null == (r = t[i]) || isNaN((r = +r)) || e.push(r);
return e.sort(n), o;
}),
(o.interpolator = function (t) {
return arguments.length ? ((r = t), o) : r;
}),
(o.copy = function () {
return t(r).domain(e);
}),
ah.apply(o, arguments)
);
}),
(t.scaleDiverging = function t() {
var n = Nh(Mv()(vh));
return (
(n.copy = function () {
return xv(n, t());
}),
ah.apply(n, arguments)
);
}),
(t.scaleDivergingLog = function t() {
var n = zh(Mv()).domain([0.1, 1, 10]);
return (
(n.copy = function () {
return xv(n, t()).base(n.base());
}),
ah.apply(n, arguments)
);
}),
(t.scaleDivergingPow = Nv),
(t.scaleDivergingSqrt = function () {
return Nv.apply(null, arguments).exponent(0.5);
}),
(t.scaleDivergingSymlog = function t() {
var n = Dh(Mv());
return (
(n.copy = function () {
return xv(n, t()).constant(n.constant());
}),
ah.apply(n, arguments)
);
}),
(t.tickFormat = Mh),
(t.schemeCategory10 = kv),
(t.schemeAccent = Sv),
(t.schemeDark2 = Tv),
(t.schemePaired = Ev),
(t.schemePastel1 = Cv),
(t.schemePastel2 = Pv),
(t.schemeSet1 = zv),
(t.schemeSet2 = Rv),
(t.schemeSet3 = qv),
(t.interpolateBrBG = Uv),
(t.schemeBrBG = Lv),
(t.interpolatePRGn = Yv),
(t.schemePRGn = Ov),
(t.interpolatePiYG = Fv),
(t.schemePiYG = Bv),
(t.interpolatePuOr = Hv),
(t.schemePuOr = Iv),
(t.interpolateRdBu = Xv),
(t.schemeRdBu = jv),
(t.interpolateRdGy = Vv),
(t.schemeRdGy = Gv),
(t.interpolateRdYlBu = Wv),
(t.schemeRdYlBu = $v),
(t.interpolateRdYlGn = Qv),
(t.schemeRdYlGn = Zv),
(t.interpolateSpectral = Kv),
(t.schemeSpectral = Jv),
(t.interpolateBuGn = ng),
(t.schemeBuGn = tg),
(t.interpolateBuPu = rg),
(t.schemeBuPu = eg),
(t.interpolateGnBu = og),
(t.schemeGnBu = ig),
(t.interpolateOrRd = ug),
(t.schemeOrRd = ag),
(t.interpolatePuBuGn = fg),
(t.schemePuBuGn = cg),
(t.interpolatePuBu = lg),
(t.schemePuBu = sg),
(t.interpolatePuRd = dg),
(t.schemePuRd = hg),
(t.interpolateRdPu = vg),
(t.schemeRdPu = pg),
(t.interpolateYlGnBu = yg),
(t.schemeYlGnBu = gg),
(t.interpolateYlGn = bg),
(t.schemeYlGn = _g),
(t.interpolateYlOrBr = xg),
(t.schemeYlOrBr = mg),
(t.interpolateYlOrRd = Mg),
(t.schemeYlOrRd = wg),
(t.interpolateBlues = Ag),
(t.schemeBlues = Ng),
(t.interpolateGreens = Sg),
(t.schemeGreens = kg),
(t.interpolateGreys = Eg),
(t.schemeGreys = Tg),
(t.interpolatePurples = Pg),
(t.schemePurples = Cg),
(t.interpolateReds = Rg),
(t.schemeReds = zg),
(t.interpolateOranges = Dg),
(t.schemeOranges = qg),
(t.interpolateCubehelixDefault = Lg),
(t.interpolateRainbow = function (t) {
(t < 0 || t > 1) && (t -= Math.floor(t));
var n = Math.abs(t - 0.5);
return (
(Yg.h = 360 * t - 100),
(Yg.s = 1.5 - 1.5 * n),
(Yg.l = 0.8 - 0.9 * n),
Yg + ""
);
}),
(t.interpolateWarm = Ug),
(t.interpolateCool = Og),
(t.interpolateSinebow = function (t) {
var n;
return (
(t = (0.5 - t) * Math.PI),
(Bg.r = 255 * (n = Math.sin(t)) * n),
(Bg.g = 255 * (n = Math.sin(t + Fg)) * n),
(Bg.b = 255 * (n = Math.sin(t + Ig)) * n),
Bg + ""
);
}),
(t.interpolateViridis = jg),
(t.interpolateMagma = Xg),
(t.interpolateInferno = Gg),
(t.interpolatePlasma = Vg),
(t.create = function (t) {
return zt(W(t).call(document.documentElement));
}),
(t.creator = W),
(t.local = qt),
(t.matcher = tt),
(t.mouse = Ot),
(t.namespace = $),
(t.namespaces = V),
(t.clientPoint = Ut),
(t.select = zt),
(t.selectAll = function (t) {
return "string" == typeof t
? new Ct([document.querySelectorAll(t)], [document.documentElement])
: new Ct([null == t ? [] : t], Et);
}),
(t.selection = Pt),
(t.selector = Q),
(t.selectorAll = K),
(t.style = ct),
(t.touch = Yt),
(t.touches = function (t, n) {
null == n && (n = Lt().touches);
for (var e = 0, r = n ? n.length : 0, i = new Array(r); e < r; ++e)
i[e] = Ut(t, n[e]);
return i;
}),
(t.window = ut),
(t.customEvent = St),
(t.arc = function () {
var t = uy,
n = cy,
e = $g(0),
r = null,
i = fy,
o = sy,
a = ly,
u = null;
function c() {
var c,
f,
s,
l = +t.apply(this, arguments),
h = +n.apply(this, arguments),
d = i.apply(this, arguments) - iy,
p = o.apply(this, arguments) - iy,
v = Wg(p - d),
g = p > d;
if ((u || (u = c = ji()), h < l && ((f = h), (h = l), (l = f)), h > ey))
if (v > oy - ey)
u.moveTo(h * Qg(d), h * ty(d)),
u.arc(0, 0, h, d, p, !g),
l > ey &&
(u.moveTo(l * Qg(p), l * ty(p)), u.arc(0, 0, l, p, d, g));
else {
var y,
_,
b = d,
m = p,
x = d,
w = p,
M = v,
N = v,
A = a.apply(this, arguments) / 2,
k = A > ey && (r ? +r.apply(this, arguments) : ny(l * l + h * h)),
S = Kg(Wg(h - l) / 2, +e.apply(this, arguments)),
T = S,
E = S;
if (k > ey) {
var C = ay((k / l) * ty(A)),
P = ay((k / h) * ty(A));
(M -= 2 * C) > ey
? ((x += C *= g ? 1 : -1), (w -= C))
: ((M = 0), (x = w = (d + p) / 2)),
(N -= 2 * P) > ey
? ((b += P *= g ? 1 : -1), (m -= P))
: ((N = 0), (b = m = (d + p) / 2));
}
var z = h * Qg(b),
R = h * ty(b),
q = l * Qg(w),
D = l * ty(w);
if (S > ey) {
var L,
U = h * Qg(m),
O = h * ty(m),
Y = l * Qg(x),
B = l * ty(x);
if (
v <= oy - ey &&
(L = (function (t, n, e, r, i, o, a, u) {
var c = e - t,
f = r - n,
s = a - i,
l = u - o,
h = l * c - s * f;
if (!(h * h < ey))
return [
t + (h = (s * (n - o) - l * (t - i)) / h) * c,
n + h * f,
];
})(z, R, Y, B, U, O, q, D))
) {
var F = z - L[0],
I = R - L[1],
H = U - L[0],
j = O - L[1],
X =
1 /
ty(
((s =
(F * H + I * j) /
(ny(F * F + I * I) * ny(H * H + j * j))) > 1
? 0
: s < -1
? ry
: Math.acos(s)) / 2
),
G = ny(L[0] * L[0] + L[1] * L[1]);
(T = Kg(S, (l - G) / (X - 1))), (E = Kg(S, (h - G) / (X + 1)));
}
}
N > ey
? E > ey
? ((y = hy(Y, B, z, R, h, E, g)),
(_ = hy(U, O, q, D, h, E, g)),
u.moveTo(y.cx + y.x01, y.cy + y.y01),
E < S
? u.arc(
y.cx,
y.cy,
E,
Zg(y.y01, y.x01),
Zg(_.y01, _.x01),
!g
)
: (u.arc(
y.cx,
y.cy,
E,
Zg(y.y01, y.x01),
Zg(y.y11, y.x11),
!g
),
u.arc(
0,
0,
h,
Zg(y.cy + y.y11, y.cx + y.x11),
Zg(_.cy + _.y11, _.cx + _.x11),
!g
),
u.arc(
_.cx,
_.cy,
E,
Zg(_.y11, _.x11),
Zg(_.y01, _.x01),
!g
)))
: (u.moveTo(z, R), u.arc(0, 0, h, b, m, !g))
: u.moveTo(z, R),
l > ey && M > ey
? T > ey
? ((y = hy(q, D, U, O, l, -T, g)),
(_ = hy(z, R, Y, B, l, -T, g)),
u.lineTo(y.cx + y.x01, y.cy + y.y01),
T < S
? u.arc(
y.cx,
y.cy,
T,
Zg(y.y01, y.x01),
Zg(_.y01, _.x01),
!g
)
: (u.arc(
y.cx,
y.cy,
T,
Zg(y.y01, y.x01),
Zg(y.y11, y.x11),
!g
),
u.arc(
0,
0,
l,
Zg(y.cy + y.y11, y.cx + y.x11),
Zg(_.cy + _.y11, _.cx + _.x11),
g
),
u.arc(
_.cx,
_.cy,
T,
Zg(_.y11, _.x11),
Zg(_.y01, _.x01),
!g
)))
: u.arc(0, 0, l, w, x, g)
: u.lineTo(q, D);
}
else u.moveTo(0, 0);
if ((u.closePath(), c)) return (u = null), c + "" || null;
}
return (
(c.centroid = function () {
var e = (+t.apply(this, arguments) + +n.apply(this, arguments)) / 2,
r =
(+i.apply(this, arguments) + +o.apply(this, arguments)) / 2 -
ry / 2;
return [Qg(r) * e, ty(r) * e];
}),
(c.innerRadius = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : $g(+n)), c)
: t;
}),
(c.outerRadius = function (t) {
return arguments.length
? ((n = "function" == typeof t ? t : $g(+t)), c)
: n;
}),
(c.cornerRadius = function (t) {
return arguments.length
? ((e = "function" == typeof t ? t : $g(+t)), c)
: e;
}),
(c.padRadius = function (t) {
return arguments.length
? ((r = null == t ? null : "function" == typeof t ? t : $g(+t)), c)
: r;
}),
(c.startAngle = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : $g(+t)), c)
: i;
}),
(c.endAngle = function (t) {
return arguments.length
? ((o = "function" == typeof t ? t : $g(+t)), c)
: o;
}),
(c.padAngle = function (t) {
return arguments.length
? ((a = "function" == typeof t ? t : $g(+t)), c)
: a;
}),
(c.context = function (t) {
return arguments.length ? ((u = null == t ? null : t), c) : u;
}),
c
);
}),
(t.area = _y),
(t.line = yy),
(t.pie = function () {
var t = my,
n = by,
e = null,
r = $g(0),
i = $g(oy),
o = $g(0);
function a(a) {
var u,
c,
f,
s,
l,
h = a.length,
d = 0,
p = new Array(h),
v = new Array(h),
g = +r.apply(this, arguments),
y = Math.min(oy, Math.max(-oy, i.apply(this, arguments) - g)),
_ = Math.min(Math.abs(y) / h, o.apply(this, arguments)),
b = _ * (y < 0 ? -1 : 1);
for (u = 0; u < h; ++u)
(l = v[(p[u] = u)] = +t(a[u], u, a)) > 0 && (d += l);
for (
null != n
? p.sort(function (t, e) {
return n(v[t], v[e]);
})
: null != e &&
p.sort(function (t, n) {
return e(a[t], a[n]);
}),
u = 0,
f = d ? (y - h * b) / d : 0;
u < h;
++u, g = s
)
(c = p[u]),
(s = g + ((l = v[c]) > 0 ? l * f : 0) + b),
(v[c] = {
data: a[c],
index: u,
value: l,
startAngle: g,
endAngle: s,
padAngle: _,
});
return v;
}
return (
(a.value = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : $g(+n)), a)
: t;
}),
(a.sortValues = function (t) {
return arguments.length ? ((n = t), (e = null), a) : n;
}),
(a.sort = function (t) {
return arguments.length ? ((e = t), (n = null), a) : e;
}),
(a.startAngle = function (t) {
return arguments.length
? ((r = "function" == typeof t ? t : $g(+t)), a)
: r;
}),
(a.endAngle = function (t) {
return arguments.length
? ((i = "function" == typeof t ? t : $g(+t)), a)
: i;
}),
(a.padAngle = function (t) {
return arguments.length
? ((o = "function" == typeof t ? t : $g(+t)), a)
: o;
}),
a
);
}),
(t.areaRadial = ky),
(t.radialArea = ky),
(t.lineRadial = Ay),
(t.radialLine = Ay),
(t.pointRadial = Sy),
(t.linkHorizontal = function () {
return Py(zy);
}),
(t.linkVertical = function () {
return Py(Ry);
}),
(t.linkRadial = function () {
var t = Py(qy);
return (t.angle = t.x), delete t.x, (t.radius = t.y), delete t.y, t;
}),
(t.symbol = function () {
var t = $g(Dy),
n = $g(64),
e = null;
function r() {
var r;
if (
(e || (e = r = ji()),
t.apply(this, arguments).draw(e, +n.apply(this, arguments)),
r)
)
return (e = null), r + "" || null;
}
return (
(r.type = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : $g(n)), r)
: t;
}),
(r.size = function (t) {
return arguments.length
? ((n = "function" == typeof t ? t : $g(+t)), r)
: n;
}),
(r.context = function (t) {
return arguments.length ? ((e = null == t ? null : t), r) : e;
}),
r
);
}),
(t.symbols = Qy),
(t.symbolCircle = Dy),
(t.symbolCross = Ly),
(t.symbolDiamond = Yy),
(t.symbolSquare = jy),
(t.symbolStar = Hy),
(t.symbolTriangle = Gy),
(t.symbolWye = Zy),
(t.curveBasisClosed = function (t) {
return new n_(t);
}),
(t.curveBasisOpen = function (t) {
return new e_(t);
}),
(t.curveBasis = function (t) {
return new t_(t);
}),
(t.curveBundle = i_),
(t.curveCardinalClosed = f_),
(t.curveCardinalOpen = l_),
(t.curveCardinal = u_),
(t.curveCatmullRomClosed = g_),
(t.curveCatmullRomOpen = __),
(t.curveCatmullRom = p_),
(t.curveLinearClosed = function (t) {
return new b_(t);
}),
(t.curveLinear = py),
(t.curveMonotoneX = function (t) {
return new N_(t);
}),
(t.curveMonotoneY = function (t) {
return new A_(t);
}),
(t.curveNatural = function (t) {
return new S_(t);
}),
(t.curveStep = function (t) {
return new E_(t, 0.5);
}),
(t.curveStepAfter = function (t) {
return new E_(t, 1);
}),
(t.curveStepBefore = function (t) {
return new E_(t, 0);
}),
(t.stack = function () {
var t = $g([]),
n = P_,
e = C_,
r = z_;
function i(i) {
var o,
a,
u = t.apply(this, arguments),
c = i.length,
f = u.length,
s = new Array(f);
for (o = 0; o < f; ++o) {
for (var l, h = u[o], d = (s[o] = new Array(c)), p = 0; p < c; ++p)
(d[p] = l = [0, +r(i[p], h, p, i)]), (l.data = i[p]);
d.key = h;
}
for (o = 0, a = n(s); o < f; ++o) s[a[o]].index = o;
return e(s, a), s;
}
return (
(i.keys = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : $g(Ty.call(n))), i)
: t;
}),
(i.value = function (t) {
return arguments.length
? ((r = "function" == typeof t ? t : $g(+t)), i)
: r;
}),
(i.order = function (t) {
return arguments.length
? ((n =
null == t ? P_ : "function" == typeof t ? t : $g(Ty.call(t))),
i)
: n;
}),
(i.offset = function (t) {
return arguments.length ? ((e = null == t ? C_ : t), i) : e;
}),
i
);
}),
(t.stackOffsetExpand = function (t, n) {
if ((r = t.length) > 0) {
for (var e, r, i, o = 0, a = t[0].length; o < a; ++o) {
for (i = e = 0; e < r; ++e) i += t[e][o][1] || 0;
if (i) for (e = 0; e < r; ++e) t[e][o][1] /= i;
}
C_(t, n);
}
}),
(t.stackOffsetDiverging = function (t, n) {
if ((u = t.length) > 1)
for (var e, r, i, o, a, u, c = 0, f = t[n[0]].length; c < f; ++c)
for (o = a = 0, e = 0; e < u; ++e)
(i = (r = t[n[e]][c])[1] - r[0]) >= 0
? ((r[0] = o), (r[1] = o += i))
: i < 0
? ((r[1] = a), (r[0] = a += i))
: (r[0] = o);
}),
(t.stackOffsetNone = C_),
(t.stackOffsetSilhouette = function (t, n) {
if ((e = t.length) > 0) {
for (var e, r = 0, i = t[n[0]], o = i.length; r < o; ++r) {
for (var a = 0, u = 0; a < e; ++a) u += t[a][r][1] || 0;
i[r][1] += i[r][0] = -u / 2;
}
C_(t, n);
}
}),
(t.stackOffsetWiggle = function (t, n) {
if ((i = t.length) > 0 && (r = (e = t[n[0]]).length) > 0) {
for (var e, r, i, o = 0, a = 1; a < r; ++a) {
for (var u = 0, c = 0, f = 0; u < i; ++u) {
for (
var s = t[n[u]],
l = s[a][1] || 0,
h = (l - (s[a - 1][1] || 0)) / 2,
d = 0;
d < u;
++d
) {
var p = t[n[d]];
h += (p[a][1] || 0) - (p[a - 1][1] || 0);
}
(c += l), (f += h * l);
}
(e[a - 1][1] += e[a - 1][0] = o), c && (o -= f / c);
}
(e[a - 1][1] += e[a - 1][0] = o), C_(t, n);
}
}),
(t.stackOrderAppearance = R_),
(t.stackOrderAscending = D_),
(t.stackOrderDescending = function (t) {
return D_(t).reverse();
}),
(t.stackOrderInsideOut = function (t) {
var n,
e,
r = t.length,
i = t.map(L_),
o = R_(t),
a = 0,
u = 0,
c = [],
f = [];
for (n = 0; n < r; ++n)
(e = o[n]), a < u ? ((a += i[e]), c.push(e)) : ((u += i[e]), f.push(e));
return f.reverse().concat(c);
}),
(t.stackOrderNone = P_),
(t.stackOrderReverse = function (t) {
return P_(t).reverse();
}),
(t.timeInterval = Hh),
(t.timeMillisecond = jh),
(t.timeMilliseconds = Xh),
(t.utcMillisecond = jh),
(t.utcMilliseconds = Xh),
(t.timeSecond = $h),
(t.timeSeconds = Wh),
(t.utcSecond = $h),
(t.utcSeconds = Wh),
(t.timeMinute = Zh),
(t.timeMinutes = Qh),
(t.timeHour = Jh),
(t.timeHours = Kh),
(t.timeDay = td),
(t.timeDays = nd),
(t.timeWeek = rd),
(t.timeWeeks = sd),
(t.timeSunday = rd),
(t.timeSundays = sd),
(t.timeMonday = id),
(t.timeMondays = ld),
(t.timeTuesday = od),
(t.timeTuesdays = hd),
(t.timeWednesday = ad),
(t.timeWednesdays = dd),
(t.timeThursday = ud),
(t.timeThursdays = pd),
(t.timeFriday = cd),
(t.timeFridays = vd),
(t.timeSaturday = fd),
(t.timeSaturdays = gd),
(t.timeMonth = yd),
(t.timeMonths = _d),
(t.timeYear = bd),
(t.timeYears = md),
(t.utcMinute = xd),
(t.utcMinutes = wd),
(t.utcHour = Md),
(t.utcHours = Nd),
(t.utcDay = Ad),
(t.utcDays = kd),
(t.utcWeek = Td),
(t.utcWeeks = Dd),
(t.utcSunday = Td),
(t.utcSundays = Dd),
(t.utcMonday = Ed),
(t.utcMondays = Ld),
(t.utcTuesday = Cd),
(t.utcTuesdays = Ud),
(t.utcWednesday = Pd),
(t.utcWednesdays = Od),
(t.utcThursday = zd),
(t.utcThursdays = Yd),
(t.utcFriday = Rd),
(t.utcFridays = Bd),
(t.utcSaturday = qd),
(t.utcSaturdays = Fd),
(t.utcMonth = Id),
(t.utcMonths = Hd),
(t.utcYear = jd),
(t.utcYears = Xd),
(t.timeFormatDefaultLocale = uv),
(t.timeFormatLocale = Wd),
(t.isoFormat = cv),
(t.isoParse = fv),
(t.now = nr),
(t.timer = ir),
(t.timerFlush = or),
(t.timeout = fr),
(t.interval = function (t, n, e) {
var r = new rr(),
i = n;
return null == n
? (r.restart(t, n, e), r)
: ((n = +n),
(e = null == e ? nr() : +e),
r.restart(
function o(a) {
(a += i), r.restart(o, (i += n), e), t(a);
},
n,
e
),
r);
}),
(t.transition = Cr),
(t.active = function (t, n) {
var e,
r,
i = t.__transition;
if (i)
for (r in ((n = null == n ? null : n + ""), i))
if ((e = i[r]).state > dr && e.name === n)
return new Er([[t]], fi, n, +r);
return null;
}),
(t.interrupt = Mr),
(t.voronoi = function () {
var t = O_,
n = Y_,
e = null;
function r(r) {
return new bb(
r.map(function (e, i) {
var o = [
Math.round(t(e, i, r) / gb) * gb,
Math.round(n(e, i, r) / gb) * gb,
];
return (o.index = i), (o.data = e), o;
}),
e
);
}
return (
(r.polygons = function (t) {
return r(t).polygons();
}),
(r.links = function (t) {
return r(t).links();
}),
(r.triangles = function (t) {
return r(t).triangles();
}),
(r.x = function (n) {
return arguments.length
? ((t = "function" == typeof n ? n : U_(+n)), r)
: t;
}),
(r.y = function (t) {
return arguments.length
? ((n = "function" == typeof t ? t : U_(+t)), r)
: n;
}),
(r.extent = function (t) {
return arguments.length
? ((e =
null == t
? null
: [
[+t[0][0], +t[0][1]],
[+t[1][0], +t[1][1]],
]),
r)
: e && [
[e[0][0], e[0][1]],
[e[1][0], e[1][1]],
];
}),
(r.size = function (t) {
return arguments.length
? ((e =
null == t
? null
: [
[0, 0],
[+t[0], +t[1]],
]),
r)
: e && [e[1][0] - e[0][0], e[1][1] - e[0][1]];
}),
r
);
}),
(t.zoom = function () {
var n,
e,
r = Sb,
i = Tb,
o = zb,
a = Cb,
u = Pb,
c = [0, 1 / 0],
f = [
[-1 / 0, -1 / 0],
[1 / 0, 1 / 0],
],
s = 250,
l = qe,
h = [],
d = I("start", "zoom", "end"),
p = 500,
v = 150,
g = 0;
function y(t) {
t.property("__zoom", Eb)
.on("wheel.zoom", N)
.on("mousedown.zoom", A)
.on("dblclick.zoom", k)
.filter(u)
.on("touchstart.zoom", S)
.on("touchmove.zoom", T)
.on("touchend.zoom touchcancel.zoom", E)
.style("touch-action", "none")
.style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
}
function _(t, n) {
return (n = Math.max(c[0], Math.min(c[1], n))) === t.k
? t
: new wb(n, t.x, t.y);
}
function b(t, n, e) {
var r = n[0] - e[0] * t.k,
i = n[1] - e[1] * t.k;
return r === t.x && i === t.y ? t : new wb(t.k, r, i);
}
function m(t) {
return [(+t[0][0] + +t[1][0]) / 2, (+t[0][1] + +t[1][1]) / 2];
}
function x(t, n, e) {
t.on("start.zoom", function () {
w(this, arguments).start();
})
.on("interrupt.zoom end.zoom", function () {
w(this, arguments).end();
})
.tween("zoom", function () {
var t = arguments,
r = w(this, t),
o = i.apply(this, t),
a = e || m(o),
u = Math.max(o[1][0] - o[0][0], o[1][1] - o[0][1]),
c = this.__zoom,
f = "function" == typeof n ? n.apply(this, t) : n,
s = l(c.invert(a).concat(u / c.k), f.invert(a).concat(u / f.k));
return function (t) {
if (1 === t) t = f;
else {
var n = s(t),
e = u / n[2];
t = new wb(e, a[0] - n[0] * e, a[1] - n[1] * e);
}
r.zoom(null, t);
};
});
}
function w(t, n) {
for (var e, r = 0, i = h.length; r < i; ++r)
if ((e = h[r]).that === t) return e;
return new M(t, n);
}
function M(t, n) {
(this.that = t),
(this.args = n),
(this.index = -1),
(this.active = 0),
(this.extent = i.apply(t, n));
}
function N() {
if (r.apply(this, arguments)) {
var t = w(this, arguments),
n = this.__zoom,
e = Math.max(
c[0],
Math.min(c[1], n.k * Math.pow(2, a.apply(this, arguments)))
),
i = Ot(this);
if (t.wheel)
(t.mouse[0][0] === i[0] && t.mouse[0][1] === i[1]) ||
(t.mouse[1] = n.invert((t.mouse[0] = i))),
clearTimeout(t.wheel);
else {
if (n.k === e) return;
(t.mouse = [i, n.invert(i)]), Mr(this), t.start();
}
kb(),
(t.wheel = setTimeout(function () {
(t.wheel = null), t.end();
}, v)),
t.zoom("mouse", o(b(_(n, e), t.mouse[0], t.mouse[1]), t.extent, f));
}
}
function A() {
if (!e && r.apply(this, arguments)) {
var n = w(this, arguments),
i = zt(t.event.view)
.on(
"mousemove.zoom",
function () {
if ((kb(), !n.moved)) {
var e = t.event.clientX - u,
r = t.event.clientY - c;
n.moved = e * e + r * r > g;
}
n.zoom(
"mouse",
o(
b(n.that.__zoom, (n.mouse[0] = Ot(n.that)), n.mouse[1]),
n.extent,
f
)
);
},
!0
)
.on(
"mouseup.zoom",
function () {
i.on("mousemove.zoom mouseup.zoom", null),
Ht(t.event.view, n.moved),
kb(),
n.end();
},
!0
),
a = Ot(this),
u = t.event.clientX,
c = t.event.clientY;
It(t.event.view),
Ab(),
(n.mouse = [a, this.__zoom.invert(a)]),
Mr(this),
n.start();
}
}
function k() {
if (r.apply(this, arguments)) {
var n = this.__zoom,
e = Ot(this),
a = n.invert(e),
u = n.k * (t.event.shiftKey ? 0.5 : 2),
c = o(b(_(n, u), e, a), i.apply(this, arguments), f);
kb(),
s > 0
? zt(this).transition().duration(s).call(x, c, e)
: zt(this).call(y.transform, c);
}
}
function S() {
if (r.apply(this, arguments)) {
var e,
i,
o,
a,
u = w(this, arguments),
c = t.event.changedTouches,
f = c.length;
for (Ab(), i = 0; i < f; ++i)
(a = [
(a = Yt(this, c, (o = c[i]).identifier)),
this.__zoom.invert(a),
o.identifier,
]),
u.touch0
? u.touch1 || (u.touch1 = a)
: ((u.touch0 = a), (e = !0));
if (n && ((n = clearTimeout(n)), !u.touch1))
return (
u.end(),
void (
(a = zt(this).on("dblclick.zoom")) && a.apply(this, arguments)
)
);
e &&
((n = setTimeout(function () {
n = null;
}, p)),
Mr(this),
u.start());
}
}
function T() {
var e,
r,
i,
a,
u = w(this, arguments),
c = t.event.changedTouches,
s = c.length;
for (kb(), n && (n = clearTimeout(n)), e = 0; e < s; ++e)
(i = Yt(this, c, (r = c[e]).identifier)),
u.touch0 && u.touch0[2] === r.identifier
? (u.touch0[0] = i)
: u.touch1 && u.touch1[2] === r.identifier && (u.touch1[0] = i);
if (((r = u.that.__zoom), u.touch1)) {
var l = u.touch0[0],
h = u.touch0[1],
d = u.touch1[0],
p = u.touch1[1],
v = (v = d[0] - l[0]) * v + (v = d[1] - l[1]) * v,
g = (g = p[0] - h[0]) * g + (g = p[1] - h[1]) * g;
(r = _(r, Math.sqrt(v / g))),
(i = [(l[0] + d[0]) / 2, (l[1] + d[1]) / 2]),
(a = [(h[0] + p[0]) / 2, (h[1] + p[1]) / 2]);
} else {
if (!u.touch0) return;
(i = u.touch0[0]), (a = u.touch0[1]);
}
u.zoom("touch", o(b(r, i, a), u.extent, f));
}
function E() {
var n,
r,
i = w(this, arguments),
o = t.event.changedTouches,
a = o.length;
for (
Ab(),
e && clearTimeout(e),
e = setTimeout(function () {
e = null;
}, p),
n = 0;
n < a;
++n
)
(r = o[n]),
i.touch0 && i.touch0[2] === r.identifier
? delete i.touch0
: i.touch1 && i.touch1[2] === r.identifier && delete i.touch1;
i.touch1 && !i.touch0 && ((i.touch0 = i.touch1), delete i.touch1),
i.touch0 ? (i.touch0[1] = this.__zoom.invert(i.touch0[0])) : i.end();
}
return (
(y.transform = function (t, n) {
var e = t.selection ? t.selection() : t;
e.property("__zoom", Eb),
t !== e
? x(t, n)
: e.interrupt().each(function () {
w(this, arguments)
.start()
.zoom(
null,
"function" == typeof n ? n.apply(this, arguments) : n
)
.end();
});
}),
(y.scaleBy = function (t, n) {
y.scaleTo(t, function () {
return (
this.__zoom.k *
("function" == typeof n ? n.apply(this, arguments) : n)
);
});
}),
(y.scaleTo = function (t, n) {
y.transform(t, function () {
var t = i.apply(this, arguments),
e = this.__zoom,
r = m(t),
a = e.invert(r),
u = "function" == typeof n ? n.apply(this, arguments) : n;
return o(b(_(e, u), r, a), t, f);
});
}),
(y.translateBy = function (t, n, e) {
y.transform(t, function () {
return o(
this.__zoom.translate(
"function" == typeof n ? n.apply(this, arguments) : n,
"function" == typeof e ? e.apply(this, arguments) : e
),
i.apply(this, arguments),
f
);
});
}),
(y.translateTo = function (t, n, e) {
y.transform(t, function () {
var t = i.apply(this, arguments),
r = this.__zoom,
a = m(t);
return o(
Mb.translate(a[0], a[1])
.scale(r.k)
.translate(
"function" == typeof n ? -n.apply(this, arguments) : -n,
"function" == typeof e ? -e.apply(this, arguments) : -e
),
t,
f
);
});
}),
(M.prototype = {
start: function () {
return (
1 == ++this.active &&
((this.index = h.push(this) - 1), this.emit("start")),
this
);
},
zoom: function (t, n) {
return (
this.mouse &&
"mouse" !== t &&
(this.mouse[1] = n.invert(this.mouse[0])),
this.touch0 &&
"touch" !== t &&
(this.touch0[1] = n.invert(this.touch0[0])),
this.touch1 &&
"touch" !== t &&
(this.touch1[1] = n.invert(this.touch1[0])),
(this.that.__zoom = n),
this.emit("zoom"),
this
);
},
end: function () {
return (
0 == --this.active &&
(h.splice(this.index, 1), (this.index = -1), this.emit("end")),
this
);
},
emit: function (t) {
St(new xb(y, t, this.that.__zoom), d.apply, d, [
t,
this.that,
this.args,
]);
},
}),
(y.wheelDelta = function (t) {
return arguments.length
? ((a = "function" == typeof t ? t : mb(+t)), y)
: a;
}),
(y.filter = function (t) {
return arguments.length
? ((r = "function" == typeof t ? t : mb(!!t)), y)
: r;
}),
(y.touchable = function (t) {
return arguments.length
? ((u = "function" == typeof t ? t : mb(!!t)), y)
: u;
}),
(y.extent = function (t) {
return arguments.length
? ((i =
"function" == typeof t
? t
: mb([
[+t[0][0], +t[0][1]],
[+t[1][0], +t[1][1]],
])),
y)
: i;
}),
(y.scaleExtent = function (t) {
return arguments.length
? ((c[0] = +t[0]), (c[1] = +t[1]), y)
: [c[0], c[1]];
}),
(y.translateExtent = function (t) {
return arguments.length
? ((f[0][0] = +t[0][0]),
(f[1][0] = +t[1][0]),
(f[0][1] = +t[0][1]),
(f[1][1] = +t[1][1]),
y)
: [
[f[0][0], f[0][1]],
[f[1][0], f[1][1]],
];
}),
(y.constrain = function (t) {
return arguments.length ? ((o = t), y) : o;
}),
(y.duration = function (t) {
return arguments.length ? ((s = +t), y) : s;
}),
(y.interpolate = function (t) {
return arguments.length ? ((l = t), y) : l;
}),
(y.on = function () {
var t = d.on.apply(d, arguments);
return t === d ? y : t;
}),
(y.clickDistance = function (t) {
return arguments.length ? ((g = (t = +t) * t), y) : Math.sqrt(g);
}),
y
);
}),
(t.zoomTransform = Nb),
(t.zoomIdentity = Mb),
Object.defineProperty(t, "__esModule", { value: !0 });
});