vendor: 220,159 bytes, lines 1-2765
1! function() { 2 function n(n) { return n && (n.ownerDocument || n.document || n).documentElement } 3 4 function t(n) { return n && (n.ownerDocument && n.ownerDocument.defaultView || n.document && n || n.defaultView) } 5 6 function e(n, t) { return t > n ? -1 : n > t ? 1 : n >= t ? 0 : NaN } 7 8 function r(n) { return null === n ? NaN : +n } 9 10 function u(n) { return !isNaN(n) } 11 12 function i(n) { return { left: function(t, e, r, u) { for (arguments.length < 3 && (r = 0), arguments.length < 4 && (u = t.length); u > r;) { var i = r + u >>> 1; 13 n(t[i], e) < 0 ? r = i + 1 : u = i } return r }, right: function(t, e, r, u) { for (arguments.length < 3 && (r = 0), arguments.length < 4 && (u = t.length); u > r;) { var i = r + u >>> 1; 14 n(t[i], e) > 0 ? u = i : r = i + 1 } return r } } } 15 16 function a(n) { return n.length } 17 18 function o(n) { for (var t = 1; n * t % 1;) t *= 10; return t } 19 20 function l(n, t) { for (var e in t) Object.defineProperty(n.prototype, e, { value: t[e], enumerable: !1 }) } 21 22 function c() { this._ = Object.create(null) } 23 24 function s(n) { return (n += "") === xa || n[0] === ba ? ba + n : n } 25 26 function f(n) { return (n += "")[0] === ba ? n.slice(1) : n } 27 28 function h(n) { return s(n) in this._ } 29 30 function g(n) { return (n = s(n)) in this._ && delete this._[n] } 31 32 function p() { var n = []; for (var t in this._) n.push(f(t)); return n } 33 34 function v() { var n = 0; for (var t in this._) ++n; return n } 35 36 function d() { for (var n in this._) return !1; return !0 } 37 38 function m() { this._ = Object.create(null) } 39 40 function y(n) { return n } 41 42 function M(n, t, e) { return function() { var r = e.apply(t, arguments); return r === t ? n : r } } 43 44 function x(n, t) { if (t in n) return t; 45 t = t.charAt(0).toUpperCase() + t.slice(1); for (var e = 0, r = _a.length; r > e; ++e) { var u = _a[e] + t; if (u in n) return u } } 46 47 function b() {} 48 49 function _() {} 50 51 function w(n) { 52 function t() { for (var t, r = e, u = -1, i = r.length; ++u < i;)(t = r[u].on) && t.apply(this, arguments); return n } var e = [], 53 r = new c; return t.on = function(t, u) { var i, a = r.get(t); return arguments.length < 2 ? a && a.on : (a && (a.on = null, e = e.slice(0, i = e.indexOf(a)).concat(e.slice(i + 1)), r.remove(t)), u && e.push(r.set(t, { on: u })), n) }, t } 54 55 function S() { oa.event.preventDefault() } 56 57 function k() { for (var n, t = oa.event; n = t.sourceEvent;) t = n; return t } 58 59 function N(n) { for (var t = new _, e = 0, r = arguments.length; ++e < r;) t[arguments[e]] = w(t); return t.of = function(e, r) { return function(u) { try { var i = u.sourceEvent = oa.event; 60 u.target = n, oa.event = u, t[u.type].apply(e, r) } finally { oa.event = i } } }, t } 61 62 function E(n) { return Sa(n, Aa), n } 63 64 function A(n) { return "function" == typeof n ? n : function() { return ka(n, this) } } 65 66 function C(n) { return "function" == typeof n ? n : function() { return Na(n, this) } } 67 68 function z(n, t) { 69 function e() { this.removeAttribute(n) } 70 71 function r() { this.removeAttributeNS(n.space, n.local) } 72 73 function u() { this.setAttribute(n, t) } 74 75 function i() { this.setAttributeNS(n.space, n.local, t) } 76 77 function a() { var e = t.apply(this, arguments); 78 null == e ? this.removeAttribute(n) : this.setAttribute(n, e) } 79 80 function o() { var e = t.apply(this, arguments); 81 null == e ? this.removeAttributeNS(n.space, n.local) : this.setAttributeNS(n.space, n.local, e) } return n = oa.ns.qualify(n), null == t ? n.local ? r : e : "function" == typeof t ? n.local ? o : a : n.local ? i : u } 82 83 function L(n) { return n.trim().replace(/\s+/g, " ") } 84 85 function q(n) { return new RegExp("(?:^|\\s+)" + oa.requote(n) + "(?:\\s+|$)", "g") } 86 87 function T(n) { return (n + "").trim().split(/^|\s+/) } 88 89 function R(n, t) { 90 function e() { for (var e = -1; ++e < u;) n[e](this, t) } 91 92 function r() { for (var e = -1, r = t.apply(this, arguments); ++e < u;) n[e](this, r) } 93 n = T(n).map(D); var u = n.length; return "function" == typeof t ? r : e } 94 95 function D(n) { var t = q(n); return function(e, r) { if (u = e.classList) return r ? u.add(n) : u.remove(n); var u = e.getAttribute("class") || ""; 96 r ? (t.lastIndex = 0, t.test(u) || e.setAttribute("class", L(u + " " + n))) : e.setAttribute("class", L(u.replace(t, " "))) } } 97 98 function P(n, t, e) { 99 function r() { this.style.removeProperty(n) } 100 101 function u() { this.style.setProperty(n, t, e) } 102 103 function i() { var r = t.apply(this, arguments); 104 null == r ? this.style.removeProperty(n) : this.style.setProperty(n, r, e) } return null == t ? r : "function" == typeof t ? i : u } 105 106 function U(n, t) { 107 function e() { delete this[n] } 108 109 function r() { this[n] = t } 110 111 function u() { var e = t.apply(this, arguments); 112 null == e ? delete this[n] : this[n] = e } return null == t ? e : "function" == typeof t ? u : r } 113 114 function j(n) { 115 function t() { var t = this.ownerDocument, 116 e = this.namespaceURI; return e === Ca && t.documentElement.namespaceURI === Ca ? t.createElement(n) : t.createElementNS(e, n) } 117 118 function e() { return this.ownerDocument.createElementNS(n.space, n.local) } return "function" == typeof n ? n : (n = oa.ns.qualify(n)).local ? e : t } 119 120 function F() { var n = this.parentNode; 121 n && n.removeChild(this) } 122 123 function H(n) { return { __data__: n } } 124 125 function O(n) { return function() { return Ea(this, n) } } 126 127 function I(n) { return arguments.length || (n = e), 128 function(t, e) { return t && e ? n(t.__data__, e.__data__) : !t - !e } } 129 130 function Y(n, t) { for (var e = 0, r = n.length; r > e; e++) 131 for (var u, i = n[e], a = 0, o = i.length; o > a; a++)(u = i[a]) && t(u, a, e); return n } 132 133 function Z(n) { return Sa(n, La), n } 134 135 function V(n) { var t, e; return function(r, u, i) { var a, o = n[i].update, 136 l = o.length; for (i != e && (e = i, t = 0), u >= t && (t = u + 1); !(a = o[t]) && ++t < l;); return a } } 137 138 function X(n, t, e) { 139 function r() { var t = this[a]; 140 t && (this.removeEventListener(n, t, t.$), delete this[a]) } 141 142 function u() { var u = l(t, ca(arguments)); 143 r.call(this), this.addEventListener(n, this[a] = u, u.$ = e), u._ = t } 144 145 function i() { var t, e = new RegExp("^__on([^.]+)" + oa.requote(n) + "$"); for (var r in this) 146 if (t = r.match(e)) { var u = this[r]; 147 this.removeEventListener(t[1], u, u.$), delete this[r] } } var a = "__on" + n, 148 o = n.indexOf("."), 149 l = $; 150 o > 0 && (n = n.slice(0, o)); var c = qa.get(n); return c && (n = c, l = B), o ? t ? u : r : t ? b : i } 151 152 function $(n, t) { return function(e) { var r = oa.event; 153 oa.event = e, t[0] = this.__data__; try { n.apply(this, t) } finally { oa.event = r } } } 154 155 function B(n, t) { var e = $(n, t); return function(n) { var t = this, 156 r = n.relatedTarget; 157 r && (r === t || 8 & r.compareDocumentPosition(t)) || e.call(t, n) } } 158 159 function W(e) { var r = ".dragsuppress-" + ++Ra, 160 u = "click" + r, 161 i = oa.select(t(e)).on("touchmove" + r, S).on("dragstart" + r, S).on("selectstart" + r, S); if (null == Ta && (Ta = "onselectstart" in e ? !1 : x(e.style, "userSelect")), Ta) { var a = n(e).style, 162 o = a[Ta]; 163 a[Ta] = "none" } return function(n) { if (i.on(r, null), Ta && (a[Ta] = o), n) { var t = function() { i.on(u, null) }; 164 i.on(u, function() { S(), t() }, !0), setTimeout(t, 0) } } } 165 166 function J(n, e) { e.changedTouches && (e = e.changedTouches[0]); var r = n.ownerSVGElement || n; if (r.createSVGPoint) { var u = r.createSVGPoint(); if (0 > Da) { var i = t(n); if (i.scrollX || i.scrollY) { r = oa.select("body").append("svg").style({ position: "absolute", top: 0, left: 0, margin: 0, padding: 0, border: "none" }, "important"); var a = r[0][0].getScreenCTM(); 167 Da = !(a.f || a.e), r.remove() } } return Da ? (u.x = e.pageX, u.y = e.pageY) : (u.x = e.clientX, u.y = e.clientY), u = u.matrixTransform(n.getScreenCTM().inverse()), [u.x, u.y] } var o = n.getBoundingClientRect(); return [e.clientX - o.left - n.clientLeft, e.clientY - o.top - n.clientTop] } 168 169 function G() { return oa.event.changedTouches[0].identifier } 170 171 function K(n) { return n > 0 ? 1 : 0 > n ? -1 : 0 } 172 173 function Q(n, t, e) { return (t[0] - n[0]) * (e[1] - n[1]) - (t[1] - n[1]) * (e[0] - n[0]) } 174 175 function nn(n) { return n > 1 ? 0 : -1 > n ? ja : Math.acos(n) } 176 177 function tn(n) { return n > 1 ? Oa : -1 > n ? -Oa : Math.asin(n) } 178 179 function en(n) { return ((n = Math.exp(n)) - 1 / n) / 2 } 180 181 function rn(n) { return ((n = Math.exp(n)) + 1 / n) / 2 } 182 183 function un(n) { return ((n = Math.exp(2 * n)) - 1) / (n + 1) } 184 185 function an(n) { return (n = Math.sin(n / 2)) * n } 186 187 function on() {} 188 189 function ln(n, t, e) { return this instanceof ln ? (this.h = +n, this.s = +t, void(this.l = +e)) : arguments.length < 2 ? n instanceof ln ? new ln(n.h, n.s, n.l) : _n("" + n, wn, ln) : new ln(n, t, e) } 190 191 function cn(n, t, e) { 192 function r(n) { return n > 360 ? n -= 360 : 0 > n && (n += 360), 60 > n ? i + (a - i) * n / 60 : 180 > n ? a : 240 > n ? i + (a - i) * (240 - n) / 60 : i } 193 194 function u(n) { return Math.round(255 * r(n)) } var i, a; return n = isNaN(n) ? 0 : (n %= 360) < 0 ? n + 360 : n, t = isNaN(t) ? 0 : 0 > t ? 0 : t > 1 ? 1 : t, e = 0 > e ? 0 : e > 1 ? 1 : e, a = .5 >= e ? e * (1 + t) : e + t - e * t, i = 2 * e - a, new yn(u(n + 120), u(n), u(n - 120)) } 195 196 function sn(n, t, e) { return this instanceof sn ? (this.h = +n, this.c = +t, void(this.l = +e)) : arguments.length < 2 ? n instanceof sn ? new sn(n.h, n.c, n.l) : n instanceof hn ? pn(n.l, n.a, n.b) : pn((n = Sn((n = oa.rgb(n)).r, n.g, n.b)).l, n.a, n.b) : new sn(n, t, e) } 197 198 function fn(n, t, e) { return isNaN(n) && (n = 0), isNaN(t) && (t = 0), new hn(e, Math.cos(n *= Ia) * t, Math.sin(n) * t) } 199 200 function hn(n, t, e) { return this instanceof hn ? (this.l = +n, this.a = +t, void(this.b = +e)) : arguments.length < 2 ? n instanceof hn ? new hn(n.l, n.a, n.b) : n instanceof sn ? fn(n.h, n.c, n.l) : Sn((n = yn(n)).r, n.g, n.b) : new hn(n, t, e) } 201 202 function gn(n, t, e) { var r = (n + 16) / 116, 203 u = r + t / 500, 204 i = r - e / 200; return u = vn(u) * Qa, r = vn(r) * no, i = vn(i) * to, new yn(mn(3.2404542 * u - 1.5371385 * r - .4985314 * i), mn(-.969266 * u + 1.8760108 * r + .041556 * i), mn(.0556434 * u - .2040259 * r + 1.0572252 * i)) } 205 206 function pn(n, t, e) { return n > 0 ? new sn(Math.atan2(e, t) * Ya, Math.sqrt(t * t + e * e), n) : new sn(NaN, NaN, n) } 207 208 function vn(n) { return n > .206893034 ? n * n * n : (n - 4 / 29) / 7.787037 } 209 210 function dn(n) { return n > .008856 ? Math.pow(n, 1 / 3) : 7.787037 * n + 4 / 29 } 211 212 function mn(n) { return Math.round(255 * (.00304 >= n ? 12.92 * n : 1.055 * Math.pow(n, 1 / 2.4) - .055)) } 213 214 function yn(n, t, e) { return this instanceof yn ? (this.r = ~~n, this.g = ~~t, void(this.b = ~~e)) : arguments.length < 2 ? n instanceof yn ? new yn(n.r, n.g, n.b) : _n("" + n, yn, cn) : new yn(n, t, e) } 215 216 function Mn(n) { return new yn(n >> 16, n >> 8 & 255, 255 & n) } 217 218 function xn(n) { return Mn(n) + "" } 219 220 function bn(n) { return 16 > n ? "0" + Math.max(0, n).toString(16) : Math.min(255, n).toString(16) } 221 222 function _n(n, t, e) { var r, u, i, a = 0, 223 o = 0, 224 l = 0; if (r = /([a-z]+)\((.*)\)/.exec(n = n.toLowerCase())) switch (u = r[2].split(","), r[1]) { 225 case "hsl": 226 return e(parseFloat(u[0]), parseFloat(u[1]) / 100, parseFloat(u[2]) / 100); 227 case "rgb": 228 return t(Nn(u[0]), Nn(u[1]), Nn(u[2])) } 229 return (i = uo.get(n)) ? t(i.r, i.g, i.b) : (null == n || "#" !== n.charAt(0) || isNaN(i = parseInt(n.slice(1), 16)) || (4 === n.length ? (a = (3840 & i) >> 4, a = a >> 4 | a, o = 240 & i, o = o >> 4 | o, l = 15 & i, l = l << 4 | l) : 7 === n.length && (a = (16711680 & i) >> 16, o = (65280 & i) >> 8, l = 255 & i)), t(a, o, l)) } 230 231 function wn(n, t, e) { var r, u, i = Math.min(n /= 255, t /= 255, e /= 255), 232 a = Math.max(n, t, e), 233 o = a - i, 234 l = (a + i) / 2; return o ? (u = .5 > l ? o / (a + i) : o / (2 - a - i), r = n == a ? (t - e) / o + (e > t ? 6 : 0) : t == a ? (e - n) / o + 2 : (n - t) / o + 4, r *= 60) : (r = NaN, u = l > 0 && 1 > l ? 0 : r), new ln(r, u, l) } 235 236 function Sn(n, t, e) { n = kn(n), t = kn(t), e = kn(e); var r = dn((.4124564 * n + .3575761 * t + .1804375 * e) / Qa), 237 u = dn((.2126729 * n + .7151522 * t + .072175 * e) / no), 238 i = dn((.0193339 * n + .119192 * t + .9503041 * e) / to); return hn(116 * u - 16, 500 * (r - u), 200 * (u - i)) } 239 240 function kn(n) { return (n /= 255) <= .04045 ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4) } 241 242 function Nn(n) { var t = parseFloat(n); return "%" === n.charAt(n.length - 1) ? Math.round(2.55 * t) : t } 243 244 function En(n) { return "function" == typeof n ? n : function() { return n } } 245 246 function An(n) { return function(t, e, r) { return 2 === arguments.length && "function" == typeof e && (r = e, e = null), Cn(t, e, n, r) } } 247 248 function Cn(n, t, e, r) { 249 function u() { var n, t = l.status; if (!t && Ln(l) || t >= 200 && 300 > t || 304 === t) { try { n = e.call(i, l) } catch (r) { return void a.error.call(i, r) } 250 a.load.call(i, n) } else a.error.call(i, l) } var i = {}, 251 a = oa.dispatch("beforesend", "progress", "load", "error"), 252 o = {}, 253 l = new XMLHttpRequest, 254 c = null; return !this.XDomainRequest || "withCredentials" in l || !/^(http(s)?:)?\/\//.test(n) || (l = new XDomainRequest), "onload" in l ? l.onload = l.onerror = u : l.onreadystatechange = function() { l.readyState > 3 && u() }, l.onprogress = function(n) { var t = oa.event; 255 oa.event = n; try { a.progress.call(i, l) } finally { oa.event = t } }, i.header = function(n, t) { return n = (n + "").toLowerCase(), arguments.length < 2 ? o[n] : (null == t ? delete o[n] : o[n] = t + "", i) }, i.mimeType = function(n) { return arguments.length ? (t = null == n ? null : n + "", i) : t }, i.responseType = function(n) { return arguments.length ? (c = n, i) : c }, i.response = function(n) { return e = n, i }, ["get", "post"].forEach(function(n) { i[n] = function() { return i.send.apply(i, [n].concat(ca(arguments))) } }), i.send = function(e, r, u) { if (2 === arguments.length && "function" == typeof r && (u = r, r = null), l.open(e, n, !0), null == t || "accept" in o || (o.accept = t + ",*/*"), l.setRequestHeader) 256 for (var s in o) l.setRequestHeader(s, o[s]); return null != t && l.overrideMimeType && l.overrideMimeType(t), null != c && (l.responseType = c), null != u && i.on("error", u).on("load", function(n) { u(null, n) }), a.beforesend.call(i, l), l.send(null == r ? null : r), i }, i.abort = function() { return l.abort(), i }, oa.rebind(i, a, "on"), null == r ? i : i.get(zn(r)) } 257 258 function zn(n) { return 1 === n.length ? function(t, e) { n(null == t ? e : null) } : n } 259 260 function Ln(n) { var t = n.responseType; return t && "text" !== t ? n.response : n.responseText } 261 262 function qn(n, t, e) { var r = arguments.length; 263 2 > r && (t = 0), 3 > r && (e = Date.now()); var u = e + t, 264 i = { c: n, t: u, n: null }; return ao ? ao.n = i : io = i, ao = i, oo || (lo = clearTimeout(lo), oo = 1, co(Tn)), i } 265 266 function Tn() { var n = Rn(), 267 t = Dn() - n; 268 t > 24 ? (isFinite(t) && (clearTimeout(lo), lo = setTimeout(Tn, t)), oo = 0) : (oo = 1, co(Tn)) } 269 270 function Rn() { for (var n = Date.now(), t = io; t;) n >= t.t && t.c(n - t.t) && (t.c = null), t = t.n; return n } 271 272 function Dn() { for (var n, t = io, e = 1 / 0; t;) t.c ? (t.t < e && (e = t.t), t = (n = t).n) : t = n ? n.n = t.n : io = t.n; return ao = n, e } 273 274 function Pn(n, t) { return t - (n ? Math.ceil(Math.log(n) / Math.LN10) : 1) } 275 276 function Un(n, t) { var e = Math.pow(10, 3 * Ma(8 - t)); return { scale: t > 8 ? function(n) { return n / e } : function(n) { return n * e }, symbol: n } } 277 278 function jn(n) { var t = n.decimal, 279 e = n.thousands, 280 r = n.grouping, 281 u = n.currency, 282 i = r && e ? function(n, t) { for (var u = n.length, i = [], a = 0, o = r[0], l = 0; u > 0 && o > 0 && (l + o + 1 > t && (o = Math.max(1, t - l)), i.push(n.substring(u -= o, u + o)), !((l += o + 1) > t));) o = r[a = (a + 1) % r.length]; return i.reverse().join(e) } : y; return function(n) { var e = fo.exec(n), 283 r = e[1] || " ", 284 a = e[2] || ">", 285 o = e[3] || "-", 286 l = e[4] || "", 287 c = e[5], 288 s = +e[6], 289 f = e[7], 290 h = e[8], 291 g = e[9], 292 p = 1, 293 v = "", 294 d = "", 295 m = !1, 296 y = !0; switch (h && (h = +h.substring(1)), (c || "0" === r && "=" === a) && (c = r = "0", a = "="), g) { 297 case "n": 298 f = !0, g = "g"; break; 299 case "%": 300 p = 100, d = "%", g = "f"; break; 301 case "p": 302 p = 100, d = "%", g = "r"; break; 303 case "b": 304 case "o": 305 case "x": 306 case "X": 307 "#" === l && (v = "0" + g.toLowerCase()); 308 case "c": 309 y = !1; 310 case "d": 311 m = !0, h = 0; break; 312 case "s": 313 p = -1, g = "r" } "$" === l && (v = u[0], d = u[1]), "r" != g || h || (g = "g"), null != h && ("g" == g ? h = Math.max(1, Math.min(21, h)) : ("e" == g || "f" == g) && (h = Math.max(0, Math.min(20, h)))), g = ho.get(g) || Fn; var M = c && f; return function(n) { var e = d; if (m && n % 1) return ""; var u = 0 > n || 0 === n && 0 > 1 / n ? (n = -n, "-") : "-" === o ? "" : o; if (0 > p) { var l = oa.formatPrefix(n, h); 314 n = l.scale(n), e = l.symbol + d } else n *= p; 315 n = g(n, h); var x, b, _ = n.lastIndexOf("."); if (0 > _) { var w = y ? n.lastIndexOf("e") : -1; 316 0 > w ? (x = n, b = "") : (x = n.substring(0, w), b = n.substring(w)) } else x = n.substring(0, _), b = t + n.substring(_ + 1);!c && f && (x = i(x, 1 / 0)); var S = v.length + x.length + b.length + (M ? 0 : u.length), 317 k = s > S ? new Array(S = s - S + 1).join(r) : ""; return M && (x = i(k + x, k.length ? s - b.length : 1 / 0)), u += v, n = x + b, ("<" === a ? u + n + k : ">" === a ? k + u + n : "^" === a ? k.substring(0, S >>= 1) + u + n + k.substring(S) : u + (M ? n : k + n)) + e } } } 318 319 function Fn(n) { return n + "" } 320 321 function Hn() { this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]) } 322 323 function On(n, t, e) { 324 function r(t) { var e = n(t), 325 r = i(e, 1); return r - t > t - e ? e : r } 326 327 function u(e) { return t(e = n(new po(e - 1)), 1), e } 328 329 function i(n, e) { return t(n = new po(+n), e), n } 330 331 function a(n, r, i) { var a = u(n), 332 o = []; if (i > 1) 333 for (; r > a;) e(a) % i || o.push(new Date(+a)), t(a, 1); 334 else 335 for (; r > a;) o.push(new Date(+a)), t(a, 1); return o } 336 337 function o(n, t, e) { try { po = Hn; var r = new Hn; return r._ = n, a(r, t, e) } finally { po = Date } } 338 n.floor = n, n.round = r, n.ceil = u, n.offset = i, n.range = a; var l = n.utc = In(n); return l.floor = l, l.round = In(r), l.ceil = In(u), l.offset = In(i), l.range = o, n } 339 340 function In(n) { return function(t, e) { try { po = Hn; var r = new Hn; return r._ = t, n(r, e)._ } finally { po = Date } } } 341 342 function Yn(n) { 343 function t(n) { 344 function t(t) { for (var e, u, i, a = [], o = -1, l = 0; ++o < r;) 37 === n.charCodeAt(o) && (a.push(n.slice(l, o)), null != (u = mo[e = n.charAt(++o)]) && (e = n.charAt(++o)), (i = A[e]) && (e = i(t, null == u ? "e" === e ? " " : "0" : u)), a.push(e), l = o + 1); return a.push(n.slice(l, o)), a.join("") } var r = n.length; return t.parse = function(t) { var r = { y: 1900, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0, Z: null }, 345 u = e(r, n, t, 0); if (u != t.length) return null; "p" in r && (r.H = r.H % 12 + 12 * r.p); var i = null != r.Z && po !== Hn, 346 a = new(i ? Hn : po); return "j" in r ? a.setFullYear(r.y, 0, r.j) : "W" in r || "U" in r ? ("w" in r || (r.w = "W" in r ? 1 : 0), a.setFullYear(r.y, 0, 1), a.setFullYear(r.y, 0, "W" in r ? (r.w + 6) % 7 + 7 * r.W - (a.getDay() + 5) % 7 : r.w + 7 * r.U - (a.getDay() + 6) % 7)) : a.setFullYear(r.y, r.m, r.d), a.setHours(r.H + (r.Z / 100 | 0), r.M + r.Z % 100, r.S, r.L), i ? a._ : a }, t.toString = function() { return n }, t } 347 348 function e(n, t, e, r) { for (var u, i, a, o = 0, l = t.length, c = e.length; l > o;) { if (r >= c) return -1; if (u = t.charCodeAt(o++), 37 === u) { if (a = t.charAt(o++), i = C[a in mo ? t.charAt(o++) : a], !i || (r = i(n, e, r)) < 0) return -1 } else if (u != e.charCodeAt(r++)) return -1 } return r } 349 350 function r(n, t, e) { _.lastIndex = 0; var r = _.exec(t.slice(e)); return r ? (n.w = w.get(r[0].toLowerCase()), e + r[0].length) : -1 } 351 352 function u(n, t, e) { x.lastIndex = 0; var r = x.exec(t.slice(e)); return r ? (n.w = b.get(r[0].toLowerCase()), e + r[0].length) : -1 } 353 354 function i(n, t, e) { N.lastIndex = 0; var r = N.exec(t.slice(e)); return r ? (n.m = E.get(r[0].toLowerCase()), e + r[0].length) : -1 } 355 356 function a(n, t, e) { S.lastIndex = 0; var r = S.exec(t.slice(e)); return r ? (n.m = k.get(r[0].toLowerCase()), e + r[0].length) : -1 } 357 358 function o(n, t, r) { return e(n, A.c.toString(), t, r) } 359 360 function l(n, t, r) { return e(n, A.x.toString(), t, r) } 361 362 function c(n, t, r) { return e(n, A.X.toString(), t, r) } 363 364 function s(n, t, e) { var r = M.get(t.slice(e, e += 2).toLowerCase()); return null == r ? -1 : (n.p = r, e) } var f = n.dateTime, 365 h = n.date, 366 g = n.time, 367 p = n.periods, 368 v = n.days, 369 d = n.shortDays, 370 m = n.months, 371 y = n.shortMonths; 372 t.utc = function(n) { 373 function e(n) { try { po = Hn; var t = new po; return t._ = n, r(t) } finally { po = Date } } var r = t(n); return e.parse = function(n) { try { po = Hn; var t = r.parse(n); return t && t._ } finally { po = Date } }, e.toString = r.toString, e }, t.multi = t.utc.multi = ct; var M = oa.map(), 374 x = Vn(v), 375 b = Xn(v), 376 _ = Vn(d), 377 w = Xn(d), 378 S = Vn(m), 379 k = Xn(m), 380 N = Vn(y), 381 E = Xn(y); 382 p.forEach(function(n, t) { M.set(n.toLowerCase(), t) }); var A = { a: function(n) { return d[n.getDay()] }, A: function(n) { return v[n.getDay()] }, b: function(n) { return y[n.getMonth()] }, B: function(n) { return m[n.getMonth()] }, c: t(f), d: function(n, t) { return Zn(n.getDate(), t, 2) }, e: function(n, t) { return Zn(n.getDate(), t, 2) }, H: function(n, t) { return Zn(n.getHours(), t, 2) }, I: function(n, t) { return Zn(n.getHours() % 12 || 12, t, 2) }, j: function(n, t) { return Zn(1 + go.dayOfYear(n), t, 3) }, L: function(n, t) { return Zn(n.getMilliseconds(), t, 3) }, m: function(n, t) { return Zn(n.getMonth() + 1, t, 2) }, M: function(n, t) { return Zn(n.getMinutes(), t, 2) }, p: function(n) { return p[+(n.getHours() >= 12)] }, S: function(n, t) { return Zn(n.getSeconds(), t, 2) }, U: function(n, t) { return Zn(go.sundayOfYear(n), t, 2) }, w: function(n) { return n.getDay() }, W: function(n, t) { return Zn(go.mondayOfYear(n), t, 2) }, x: t(h), X: t(g), y: function(n, t) { return Zn(n.getFullYear() % 100, t, 2) }, Y: function(n, t) { return Zn(n.getFullYear() % 1e4, t, 4) }, Z: ot, "%": function() { return "%" } }, 383 C = { a: r, A: u, b: i, B: a, c: o, d: tt, e: tt, H: rt, I: rt, j: et, L: at, m: nt, M: ut, p: s, S: it, U: Bn, w: $n, W: Wn, x: l, X: c, y: Gn, Y: Jn, Z: Kn, "%": lt }; return t } 384 385 function Zn(n, t, e) { var r = 0 > n ? "-" : "", 386 u = (r ? -n : n) + "", 387 i = u.length; return r + (e > i ? new Array(e - i + 1).join(t) + u : u) } 388 389 function Vn(n) { return new RegExp("^(?:" + n.map(oa.requote).join("|") + ")", "i") } 390 391 function Xn(n) { for (var t = new c, e = -1, r = n.length; ++e < r;) t.set(n[e].toLowerCase(), e); return t } 392 393 function $n(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 1)); return r ? (n.w = +r[0], e + r[0].length) : -1 } 394 395 function Bn(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e)); return r ? (n.U = +r[0], e + r[0].length) : -1 } 396 397 function Wn(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e)); return r ? (n.W = +r[0], e + r[0].length) : -1 } 398 399 function Jn(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 4)); return r ? (n.y = +r[0], e + r[0].length) : -1 } 400 401 function Gn(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.y = Qn(+r[0]), e + r[0].length) : -1 } 402 403 function Kn(n, t, e) { return /^[+-]\d{4}$/.test(t = t.slice(e, e + 5)) ? (n.Z = -t, e + 5) : -1 } 404 405 function Qn(n) { return n + (n > 68 ? 1900 : 2e3) } 406 407 function nt(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.m = r[0] - 1, e + r[0].length) : -1 } 408 409 function tt(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.d = +r[0], e + r[0].length) : -1 } 410 411 function et(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 3)); return r ? (n.j = +r[0], e + r[0].length) : -1 } 412 413 function rt(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.H = +r[0], e + r[0].length) : -1 } 414 415 function ut(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.M = +r[0], e + r[0].length) : -1 } 416 417 function it(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 2)); return r ? (n.S = +r[0], e + r[0].length) : -1 } 418 419 function at(n, t, e) { yo.lastIndex = 0; var r = yo.exec(t.slice(e, e + 3)); return r ? (n.L = +r[0], e + r[0].length) : -1 } 420 421 function ot(n) { var t = n.getTimezoneOffset(), 422 e = t > 0 ? "-" : "+", 423 r = Ma(t) / 60 | 0, 424 u = Ma(t) % 60; return e + Zn(r, "0", 2) + Zn(u, "0", 2) } 425 426 function lt(n, t, e) { Mo.lastIndex = 0; var r = Mo.exec(t.slice(e, e + 1)); return r ? e + r[0].length : -1 } 427 428 function ct(n) { for (var t = n.length, e = -1; ++e < t;) n[e][0] = this(n[e][0]); return function(t) { for (var e = 0, r = n[e]; !r[1](t);) r = n[++e]; return r[0](t) } } 429 430 function st() {} 431 432 function ft(n, t, e) { var r = e.s = n + t, 433 u = r - n, 434 i = r - u; 435 e.t = n - i + (t - u) } 436 437 function ht(n, t) { n && wo.hasOwnProperty(n.type) && wo[n.type](n, t) } 438 439 function gt(n, t, e) { var r, u = -1, 440 i = n.length - e; for (t.lineStart(); ++u < i;) r = n[u], t.point(r[0], r[1], r[2]); 441 t.lineEnd() } 442 443 function pt(n, t) { var e = -1, 444 r = n.length; for (t.polygonStart(); ++e < r;) gt(n[e], t, 1); 445 t.polygonEnd() } 446 447 function vt() { 448 function n(n, t) { n *= Ia, t = t * Ia / 2 + ja / 4; var e = n - r, 449 a = e >= 0 ? 1 : -1, 450 o = a * e, 451 l = Math.cos(t), 452 c = Math.sin(t), 453 s = i * c, 454 f = u * l + s * Math.cos(o), 455 h = s * a * Math.sin(o); 456 ko.add(Math.atan2(h, f)), r = n, u = l, i = c } var t, e, r, u, i; 457 No.point = function(a, o) { No.point = n, r = (t = a) * Ia, u = Math.cos(o = (e = o) * Ia / 2 + ja / 4), i = Math.sin(o) }, No.lineEnd = function() { n(t, e) } } 458 459 function dt(n) { var t = n[0], 460 e = n[1], 461 r = Math.cos(e); return [r * Math.cos(t), r * Math.sin(t), Math.sin(e)] } 462 463 function mt(n, t) { return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] } 464 465 function yt(n, t) { return [n[1] * t[2] - n[2] * t[1], n[2] * t[0] - n[0] * t[2], n[0] * t[1] - n[1] * t[0]] } 466 467 function Mt(n, t) { n[0] += t[0], n[1] += t[1], n[2] += t[2] } 468 469 function xt(n, t) { return [n[0] * t, n[1] * t, n[2] * t] } 470 471 function bt(n) { var t = Math.sqrt(n[0] * n[0] + n[1] * n[1] + n[2] * n[2]); 472 n[0] /= t, n[1] /= t, n[2] /= t } 473 474 function _t(n) { return [Math.atan2(n[1], n[0]), tn(n[2])] } 475 476 function wt(n, t) { return Ma(n[0] - t[0]) < Pa && Ma(n[1] - t[1]) < Pa } 477 478 function St(n, t) { n *= Ia; var e = Math.cos(t *= Ia); 479 kt(e * Math.cos(n), e * Math.sin(n), Math.sin(t)) } 480 481 function kt(n, t, e) {++Eo, Co += (n - Co) / Eo, zo += (t - zo) / Eo, Lo += (e - Lo) / Eo } 482 483 function Nt() { 484 function n(n, u) { n *= Ia; var i = Math.cos(u *= Ia), 485 a = i * Math.cos(n), 486 o = i * Math.sin(n), 487 l = Math.sin(u), 488 c = Math.atan2(Math.sqrt((c = e * l - r * o) * c + (c = r * a - t * l) * c + (c = t * o - e * a) * c), t * a + e * o + r * l); 489 Ao += c, qo += c * (t + (t = a)), To += c * (e + (e = o)), Ro += c * (r + (r = l)), kt(t, e, r) } var t, e, r; 490 jo.point = function(u, i) { u *= Ia; var a = Math.cos(i *= Ia); 491 t = a * Math.cos(u), e = a * Math.sin(u), r = Math.sin(i), jo.point = n, kt(t, e, r) } } 492 493 function Et() { jo.point = St } 494 495 function At() { 496 function n(n, t) { n *= Ia; var e = Math.cos(t *= Ia), 497 a = e * Math.cos(n), 498 o = e * Math.sin(n), 499 l = Math.sin(t), 500 c = u * l - i * o, 501 s = i * a - r * l, 502 f = r * o - u * a, 503 h = Math.sqrt(c * c + s * s + f * f), 504 g = r * a + u * o + i * l, 505 p = h && -nn(g) / h, 506 v = Math.atan2(h, g); 507 Do += p * c, Po += p * s, Uo += p * f, Ao += v, qo += v * (r + (r = a)), To += v * (u + (u = o)), Ro += v * (i + (i = l)), kt(r, u, i) } var t, e, r, u, i; 508 jo.point = function(a, o) { t = a, e = o, jo.point = n, a *= Ia; var l = Math.cos(o *= Ia); 509 r = l * Math.cos(a), u = l * Math.sin(a), i = Math.sin(o), kt(r, u, i) }, jo.lineEnd = function() { n(t, e), jo.lineEnd = Et, jo.point = St } } 510 511 function Ct(n, t) { 512 function e(e, r) { return e = n(e, r), t(e[0], e[1]) } return n.invert && t.invert && (e.invert = function(e, r) { return e = t.invert(e, r), e && n.invert(e[0], e[1]) }), e } 513 514 function zt() { return !0 } 515 516 function Lt(n, t, e, r, u) { var i = [], 517 a = []; if (n.forEach(function(n) { if (!((t = n.length - 1) <= 0)) { var t, e = n[0], 518 r = n[t]; if (wt(e, r)) { u.lineStart(); for (var o = 0; t > o; ++o) u.point((e = n[o])[0], e[1]); return void u.lineEnd() } var l = new Tt(e, n, null, !0), 519 c = new Tt(e, null, l, !1); 520 l.o = c, i.push(l), a.push(c), l = new Tt(r, n, null, !1), c = new Tt(r, null, l, !0), l.o = c, i.push(l), a.push(c) } }), a.sort(t), qt(i), qt(a), i.length) { for (var o = 0, l = e, c = a.length; c > o; ++o) a[o].e = l = !l; for (var s, f, h = i[0];;) { for (var g = h, p = !0; g.v;) 521 if ((g = g.n) === h) return; 522 s = g.z, u.lineStart(); 523 do { if (g.v = g.o.v = !0, g.e) { if (p) 524 for (var o = 0, c = s.length; c > o; ++o) u.point((f = s[o])[0], f[1]); 525 else r(g.x, g.n.x, 1, u); 526 g = g.n } else { if (p) { s = g.p.z; for (var o = s.length - 1; o >= 0; --o) u.point((f = s[o])[0], f[1]) } else r(g.x, g.p.x, -1, u); 527 g = g.p } 528 g = g.o, s = g.z, p = !p } while (!g.v); 529 u.lineEnd() } } } 530 531 function qt(n) { if (t = n.length) { for (var t, e, r = 0, u = n[0]; ++r < t;) u.n = e = n[r], e.p = u, u = e; 532 u.n = e = n[0], e.p = u } } 533 534 function Tt(n, t, e, r) { this.x = n, this.z = t, this.o = e, this.e = r, this.v = !1, this.n = this.p = null } 535 536 function Rt(n, t, e, r) { return function(u, i) { 537 function a(t, e) { var r = u(t, e); 538 n(t = r[0], e = r[1]) && i.point(t, e) } 539 540 function o(n, t) { var e = u(n, t); 541 d.point(e[0], e[1]) } 542 543 function l() { y.point = o, d.lineStart() } 544 545 function c() { y.point = a, d.lineEnd() } 546 547 function s(n, t) { v.push([n, t]); var e = u(n, t); 548 x.point(e[0], e[1]) } 549 550 function f() { x.lineStart(), v = [] } 551 552 function h() { s(v[0][0], v[0][1]), x.lineEnd(); var n, t = x.clean(), 553 e = M.buffer(), 554 r = e.length; if (v.pop(), p.push(v), v = null, r) 555 if (1 & t) { n = e[0]; var u, r = n.length - 1, 556 a = -1; if (r > 0) { for (b || (i.polygonStart(), b = !0), i.lineStart(); ++a < r;) i.point((u = n[a])[0], u[1]); 557 i.lineEnd() } } else r > 1 && 2 & t && e.push(e.pop().concat(e.shift())), g.push(e.filter(Dt)) } var g, p, v, d = t(i), 558 m = u.invert(r[0], r[1]), 559 y = { point: a, lineStart: l, lineEnd: c, polygonStart: function() { y.point = s, y.lineStart = f, y.lineEnd = h, g = [], p = [] }, polygonEnd: function() { y.point = a, y.lineStart = l, y.lineEnd = c, g = oa.merge(g); var n = Ot(m, p); 560 g.length ? (b || (i.polygonStart(), b = !0), Lt(g, Ut, n, e, i)) : n && (b || (i.polygonStart(), b = !0), i.lineStart(), e(null, null, 1, i), i.lineEnd()), b && (i.polygonEnd(), b = !1), g = p = null }, sphere: function() { i.polygonStart(), i.lineStart(), e(null, null, 1, i), i.lineEnd(), i.polygonEnd() } }, 561 M = Pt(), 562 x = t(M), 563 b = !1; return y } } 564 565 function Dt(n) { return n.length > 1 } 566 567 function Pt() { var n, t = []; return { lineStart: function() { t.push(n = []) }, point: function(t, e) { n.push([t, e]) }, lineEnd: b, buffer: function() { var e = t; return t = [], n = null, e }, rejoin: function() { t.length > 1 && t.push(t.pop().concat(t.shift())) } } } 568 569 function Ut(n, t) { return ((n = n.x)[0] < 0 ? n[1] - Oa - Pa : Oa - n[1]) - ((t = t.x)[0] < 0 ? t[1] - Oa - Pa : Oa - t[1]) } 570 571 function jt(n) { var t, e = NaN, 572 r = NaN, 573 u = NaN; return { lineStart: function() { n.lineStart(), t = 1 }, point: function(i, a) { var o = i > 0 ? ja : -ja, 574 l = Ma(i - e); 575 Ma(l - ja) < Pa ? (n.point(e, r = (r + a) / 2 > 0 ? Oa : -Oa), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(o, r), n.point(i, r), t = 0) : u !== o && l >= ja && (Ma(e - u) < Pa && (e -= u * Pa), Ma(i - o) < Pa && (i -= o * Pa), r = Ft(e, r, i, a), n.point(u, r), n.lineEnd(), n.lineStart(), n.point(o, r), t = 0), n.point(e = i, r = a), u = o }, lineEnd: function() { n.lineEnd(), e = r = NaN }, clean: function() { return 2 - t } } } 576 577 function Ft(n, t, e, r) { var u, i, a = Math.sin(n - e); return Ma(a) > Pa ? Math.atan((Math.sin(t) * (i = Math.cos(r)) * Math.sin(e) - Math.sin(r) * (u = Math.cos(t)) * Math.sin(n)) / (u * i * a)) : (t + r) / 2 } 578 579 function Ht(n, t, e, r) { var u; if (null == n) u = e * Oa, r.point(-ja, u), r.point(0, u), r.point(ja, u), r.point(ja, 0), r.point(ja, -u), r.point(0, -u), r.point(-ja, -u), r.point(-ja, 0), r.point(-ja, u); 580 else if (Ma(n[0] - t[0]) > Pa) { var i = n[0] < t[0] ? ja : -ja; 581 u = e * i / 2, r.point(-i, u), r.point(0, u), r.point(i, u) } else r.point(t[0], t[1]) } 582 583 function Ot(n, t) { var e = n[0], 584 r = n[1], 585 u = [Math.sin(e), -Math.cos(e), 0], 586 i = 0, 587 a = 0; 588 ko.reset(); for (var o = 0, l = t.length; l > o; ++o) { var c = t[o], 589 s = c.length; if (s) 590 for (var f = c[0], h = f[0], g = f[1] / 2 + ja / 4, p = Math.sin(g), v = Math.cos(g), d = 1;;) { d === s && (d = 0), n = c[d]; var m = n[0], 591 y = n[1] / 2 + ja / 4, 592 M = Math.sin(y), 593 x = Math.cos(y), 594 b = m - h, 595 _ = b >= 0 ? 1 : -1, 596 w = _ * b, 597 S = w > ja, 598 k = p * M; if (ko.add(Math.atan2(k * _ * Math.sin(w), v * x + k * Math.cos(w))), i += S ? b + _ * Fa : b, S ^ h >= e ^ m >= e) { var N = yt(dt(f), dt(n)); 599 bt(N); var E = yt(u, N); 600 bt(E); var A = (S ^ b >= 0 ? -1 : 1) * tn(E[2]); 601 (r > A || r === A && (N[0] || N[1])) && (a += S ^ b >= 0 ? 1 : -1) } if (!d++) break; 602 h = m, p = M, v = x, f = n } } return (-Pa > i || Pa > i && 0 > ko) ^ 1 & a } 603 604 function It(n) { 605 function t(n, t) { return Math.cos(n) * Math.cos(t) > i } 606 607 function e(n) { var e, i, l, c, s; return { lineStart: function() { c = l = !1, s = 1 }, point: function(f, h) { var g, p = [f, h], 608 v = t(f, h), 609 d = a ? v ? 0 : u(f, h) : v ? u(f + (0 > f ? ja : -ja), h) : 0; if (!e && (c = l = v) && n.lineStart(), v !== l && (g = r(e, p), (wt(e, g) || wt(p, g)) && (p[0] += Pa, p[1] += Pa, v = t(p[0], p[1]))), v !== l) s = 0, v ? (n.lineStart(), g = r(p, e), n.point(g[0], g[1])) : (g = r(e, p), n.point(g[0], g[1]), n.lineEnd()), e = g; 610 else if (o && e && a ^ v) { var m; 611 d & i || !(m = r(p, e, !0)) || (s = 0, a ? (n.lineStart(), n.point(m[0][0], m[0][1]), n.point(m[1][0], m[1][1]), n.lineEnd()) : (n.point(m[1][0], m[1][1]), n.lineEnd(), n.lineStart(), n.point(m[0][0], m[0][1]))) }!v || e && wt(e, p) || n.point(p[0], p[1]), e = p, l = v, i = d }, lineEnd: function() { l && n.lineEnd(), e = null }, clean: function() { return s | (c && l) << 1 } } } 612 613 function r(n, t, e) { var r = dt(n), 614 u = dt(t), 615 a = [1, 0, 0], 616 o = yt(r, u), 617 l = mt(o, o), 618 c = o[0], 619 s = l - c * c; if (!s) return !e && n; var f = i * l / s, 620 h = -i * c / s, 621 g = yt(a, o), 622 p = xt(a, f), 623 v = xt(o, h); 624 Mt(p, v); var d = g, 625 m = mt(p, d), 626 y = mt(d, d), 627 M = m * m - y * (mt(p, p) - 1); if (!(0 > M)) { var x = Math.sqrt(M), 628 b = xt(d, (-m - x) / y); if (Mt(b, p), b = _t(b), !e) return b; var _, w = n[0], 629 S = t[0], 630 k = n[1], 631 N = t[1]; 632 w > S && (_ = w, w = S, S = _); var E = S - w, 633 A = Ma(E - ja) < Pa, 634 C = A || Pa > E; if (!A && k > N && (_ = k, k = N, N = _), C ? A ? k + N > 0 ^ b[1] < (Ma(b[0] - w) < Pa ? k : N) : k <= b[1] && b[1] <= N : E > ja ^ (w <= b[0] && b[0] <= S)) { var z = xt(d, (-m + x) / y); return Mt(z, p), [b, _t(z)] } } } 635 636 function u(t, e) { var r = a ? n : ja - n, 637 u = 0; return -r > t ? u |= 1 : t > r && (u |= 2), -r > e ? u |= 4 : e > r && (u |= 8), u } var i = Math.cos(n), 638 a = i > 0, 639 o = Ma(i) > Pa, 640 l = ve(n, 6 * Ia); return Rt(t, e, l, a ? [0, -n] : [-ja, n - ja]) } 641 642 function Yt(n, t, e, r) { return function(u) { var i, a = u.a, 643 o = u.b, 644 l = a.x, 645 c = a.y, 646 s = o.x, 647 f = o.y, 648 h = 0, 649 g = 1, 650 p = s - l, 651 v = f - c; if (i = n - l, p || !(i > 0)) { if (i /= p, 0 > p) { if (h > i) return; 652 g > i && (g = i) } else if (p > 0) { if (i > g) return; 653 i > h && (h = i) } if (i = e - l, p || !(0 > i)) { if (i /= p, 0 > p) { if (i > g) return; 654 i > h && (h = i) } else if (p > 0) { if (h > i) return; 655 g > i && (g = i) } if (i = t - c, v || !(i > 0)) { if (i /= v, 0 > v) { if (h > i) return; 656 g > i && (g = i) } else if (v > 0) { if (i > g) return; 657 i > h && (h = i) } if (i = r - c, v || !(0 > i)) { if (i /= v, 0 > v) { if (i > g) return; 658 i > h && (h = i) } else if (v > 0) { if (h > i) return; 659 g > i && (g = i) } return h > 0 && (u.a = { x: l + h * p, y: c + h * v }), 1 > g && (u.b = { x: l + g * p, y: c + g * v }), u } } } } } } 660 661 function Zt(n, t, e, r) { 662 function u(r, u) { return Ma(r[0] - n) < Pa ? u > 0 ? 0 : 3 : Ma(r[0] - e) < Pa ? u > 0 ? 2 : 1 : Ma(r[1] - t) < Pa ? u > 0 ? 1 : 0 : u > 0 ? 3 : 2 } 663 664 function i(n, t) { return a(n.x, t.x) } 665 666 function a(n, t) { var e = u(n, 1), 667 r = u(t, 1); return e !== r ? e - r : 0 === e ? t[1] - n[1] : 1 === e ? n[0] - t[0] : 2 === e ? n[1] - t[1] : t[0] - n[0] } return function(o) { 668 function l(n) { for (var t = 0, e = d.length, r = n[1], u = 0; e > u; ++u) 669 for (var i, a = 1, o = d[u], l = o.length, c = o[0]; l > a; ++a) i = o[a], c[1] <= r ? i[1] > r && Q(c, i, n) > 0 && ++t : i[1] <= r && Q(c, i, n) < 0 && --t, c = i; return 0 !== t } 670 671 function c(i, o, l, c) { var s = 0, 672 f = 0; if (null == i || (s = u(i, l)) !== (f = u(o, l)) || a(i, o) < 0 ^ l > 0) { do c.point(0 === s || 3 === s ? n : e, s > 1 ? r : t); while ((s = (s + l + 4) % 4) !== f) } else c.point(o[0], o[1]) } 673 674 function s(u, i) { return u >= n && e >= u && i >= t && r >= i } 675 676 function f(n, t) { s(n, t) && o.point(n, t) } 677 678 function h() { C.point = p, d && d.push(m = []), S = !0, w = !1, b = _ = NaN } 679 680 function g() { v && (p(y, M), x && w && E.rejoin(), v.push(E.buffer())), C.point = f, w && o.lineEnd() } 681 682 function p(n, t) { n = Math.max(-Ho, Math.min(Ho, n)), t = Math.max(-Ho, Math.min(Ho, t)); var e = s(n, t); if (d && m.push([n, t]), S) y = n, M = t, x = e, S = !1, e && (o.lineStart(), o.point(n, t)); 683 else if (e && w) o.point(n, t); 684 else { var r = { a: { x: b, y: _ }, b: { x: n, y: t } }; 685 A(r) ? (w || (o.lineStart(), o.point(r.a.x, r.a.y)), o.point(r.b.x, r.b.y), e || o.lineEnd(), k = !1) : e && (o.lineStart(), o.point(n, t), k = !1) } 686 b = n, _ = t, w = e } var v, d, m, y, M, x, b, _, w, S, k, N = o, 687 E = Pt(), 688 A = Yt(n, t, e, r), 689 C = { point: f, lineStart: h, lineEnd: g, polygonStart: function() { o = E, v = [], d = [], k = !0 }, polygonEnd: function() { o = N, v = oa.merge(v); var t = l([n, r]), 690 e = k && t, 691 u = v.length; 692 (e || u) && (o.polygonStart(), e && (o.lineStart(), c(null, null, 1, o), o.lineEnd()), u && Lt(v, i, t, c, o), o.polygonEnd()), v = d = m = null } }; return C } } 693 694 function Vt(n) { var t = 0, 695 e = ja / 3, 696 r = oe(n), 697 u = r(t, e); return u.parallels = function(n) { return arguments.length ? r(t = n[0] * ja / 180, e = n[1] * ja / 180) : [t / ja * 180, e / ja * 180] }, u } 698 699 function Xt(n, t) { 700 function e(n, t) { var e = Math.sqrt(i - 2 * u * Math.sin(t)) / u; return [e * Math.sin(n *= u), a - e * Math.cos(n)] } var r = Math.sin(n), 701 u = (r + Math.sin(t)) / 2, 702 i = 1 + r * (2 * u - r), 703 a = Math.sqrt(i) / u; return e.invert = function(n, t) { var e = a - t; return [Math.atan2(n, e) / u, tn((i - (n * n + e * e) * u * u) / (2 * u))] }, e } 704 705 function $t() { 706 function n(n, t) { Io += u * n - r * t, r = n, u = t } var t, e, r, u; 707 $o.point = function(i, a) { $o.point = n, t = r = i, e = u = a }, $o.lineEnd = function() { n(t, e) } } 708 709 function Bt(n, t) { Yo > n && (Yo = n), n > Vo && (Vo = n), Zo > t && (Zo = t), t > Xo && (Xo = t) } 710 711 function Wt() { 712 function n(n, t) { a.push("M", n, ",", t, i) } 713 714 function t(n, t) { a.push("M", n, ",", t), o.point = e } 715 716 function e(n, t) { a.push("L", n, ",", t) } 717 718 function r() { o.point = n } 719 720 function u() { a.push("Z") } var i = Jt(4.5), 721 a = [], 722 o = { point: n, lineStart: function() { o.point = t }, lineEnd: r, polygonStart: function() { o.lineEnd = u }, polygonEnd: function() { o.lineEnd = r, o.point = n }, pointRadius: function(n) { return i = Jt(n), o }, result: function() { if (a.length) { var n = a.join(""); return a = [], n } } }; return o } 723 724 function Jt(n) { return "m0," + n + "a" + n + "," + n + " 0 1,1 0," + -2 * n + "a" + n + "," + n + " 0 1,1 0," + 2 * n + "z" } 725 726 function Gt(n, t) { Co += n, zo += t, ++Lo } 727 728 function Kt() { 729 function n(n, r) { var u = n - t, 730 i = r - e, 731 a = Math.sqrt(u * u + i * i); 732 qo += a * (t + n) / 2, To += a * (e + r) / 2, Ro += a, Gt(t = n, e = r) } var t, e; 733 Wo.point = function(r, u) { Wo.point = n, Gt(t = r, e = u) } } 734 735 function Qt() { Wo.point = Gt } 736 737 function ne() { 738 function n(n, t) { var e = n - r, 739 i = t - u, 740 a = Math.sqrt(e * e + i * i); 741 qo += a * (r + n) / 2, To += a * (u + t) / 2, Ro += a, a = u * n - r * t, Do += a * (r + n), Po += a * (u + t), Uo += 3 * a, Gt(r = n, u = t) } var t, e, r, u; 742 Wo.point = function(i, a) { Wo.point = n, Gt(t = r = i, e = u = a) }, Wo.lineEnd = function() { n(t, e) } } 743 744 function te(n) { 745 function t(t, e) { n.moveTo(t + a, e), n.arc(t, e, a, 0, Fa) } 746 747 function e(t, e) { n.moveTo(t, e), o.point = r } 748 749 function r(t, e) { n.lineTo(t, e) } 750 751 function u() { o.point = t } 752 753 function i() { n.closePath() } var a = 4.5, 754 o = { point: t, lineStart: function() { o.point = e }, lineEnd: u, polygonStart: function() { o.lineEnd = i }, polygonEnd: function() { o.lineEnd = u, o.point = t }, pointRadius: function(n) { return a = n, o }, result: b }; return o } 755 756 function ee(n) { 757 function t(n) { return (o ? r : e)(n) } 758 759 function e(t) { return ie(t, function(e, r) { e = n(e, r), t.point(e[0], e[1]) }) } 760 761 function r(t) { 762 function e(e, r) { e = n(e, r), t.point(e[0], e[1]) } 763 764 function r() { M = NaN, S.point = i, t.lineStart() } 765 766 function i(e, r) { var i = dt([e, r]), 767 a = n(e, r); 768 u(M, x, y, b, _, w, M = a[0], x = a[1], y = e, b = i[0], _ = i[1], w = i[2], o, t), t.point(M, x) } 769 770 function a() { S.point = e, t.lineEnd() } 771 772 function l() { 773 r(), S.point = c, S.lineEnd = s 774 } 775 776 function c(n, t) { i(f = n, h = t), g = M, p = x, v = b, d = _, m = w, S.point = i } 777 778 function s() { u(M, x, y, b, _, w, g, p, f, v, d, m, o, t), S.lineEnd = a, a() } 779 var f, h, g, p, v, d, m, y, M, x, b, _, w, S = { point: e, lineStart: r, lineEnd: a, polygonStart: function() { t.polygonStart(), S.lineStart = l }, polygonEnd: function() { t.polygonEnd(), S.lineStart = r } }; 780 return S 781 } 782 783 function u(t, e, r, o, l, c, s, f, h, g, p, v, d, m) { var y = s - t, 784 M = f - e, 785 x = y * y + M * M; if (x > 4 * i && d--) { var b = o + g, 786 _ = l + p, 787 w = c + v, 788 S = Math.sqrt(b * b + _ * _ + w * w), 789 k = Math.asin(w /= S), 790 N = Ma(Ma(w) - 1) < Pa || Ma(r - h) < Pa ? (r + h) / 2 : Math.atan2(_, b), 791 E = n(N, k), 792 A = E[0], 793 C = E[1], 794 z = A - t, 795 L = C - e, 796 q = M * z - y * L; 797 (q * q / x > i || Ma((y * z + M * L) / x - .5) > .3 || a > o * g + l * p + c * v) && (u(t, e, r, o, l, c, A, C, N, b /= S, _ /= S, w, d, m), m.point(A, C), u(A, C, N, b, _, w, s, f, h, g, p, v, d, m)) } } 798 var i = .5, 799 a = Math.cos(30 * Ia), 800 o = 16; 801 return t.precision = function(n) { return arguments.length ? (o = (i = n * n) > 0 && 16, t) : Math.sqrt(i) }, t 802 } 803 804 function re(n) { var t = ee(function(t, e) { return n([t * Ya, e * Ya]) }); return function(n) { return le(t(n)) } } 805 806 function ue(n) { this.stream = n } 807 808 function ie(n, t) { return { point: t, sphere: function() { n.sphere() }, lineStart: function() { n.lineStart() }, lineEnd: function() { n.lineEnd() }, polygonStart: function() { n.polygonStart() }, polygonEnd: function() { n.polygonEnd() } } } 809 810 function ae(n) { return oe(function() { return n })() } 811 812 function oe(n) { 813 function t(n) { return n = o(n[0] * Ia, n[1] * Ia), [n[0] * h + l, c - n[1] * h] } 814 815 function e(n) { return n = o.invert((n[0] - l) / h, (c - n[1]) / h), n && [n[0] * Ya, n[1] * Ya] } 816 817 function r() { o = Ct(a = fe(m, M, x), i); var n = i(v, d); return l = g - n[0] * h, c = p + n[1] * h, u() } 818 819 function u() { return s && (s.valid = !1, s = null), t } var i, a, o, l, c, s, f = ee(function(n, t) { return n = i(n, t), [n[0] * h + l, c - n[1] * h] }), 820 h = 150, 821 g = 480, 822 p = 250, 823 v = 0, 824 d = 0, 825 m = 0, 826 M = 0, 827 x = 0, 828 b = Fo, 829 _ = y, 830 w = null, 831 S = null; return t.stream = function(n) { return s && (s.valid = !1), s = le(b(a, f(_(n)))), s.valid = !0, s }, t.clipAngle = function(n) { return arguments.length ? (b = null == n ? (w = n, Fo) : It((w = +n) * Ia), u()) : w }, t.clipExtent = function(n) { return arguments.length ? (S = n, _ = n ? Zt(n[0][0], n[0][1], n[1][0], n[1][1]) : y, u()) : S }, t.scale = function(n) { return arguments.length ? (h = +n, r()) : h }, t.translate = function(n) { return arguments.length ? (g = +n[0], p = +n[1], r()) : [g, p] }, t.center = function(n) { return arguments.length ? (v = n[0] % 360 * Ia, d = n[1] % 360 * Ia, r()) : [v * Ya, d * Ya] }, t.rotate = function(n) { return arguments.length ? (m = n[0] % 360 * Ia, M = n[1] % 360 * Ia, x = n.length > 2 ? n[2] % 360 * Ia : 0, r()) : [m * Ya, M * Ya, x * Ya] }, oa.rebind(t, f, "precision"), 832 function() { return i = n.apply(this, arguments), t.invert = i.invert && e, r() } } 833 834 function le(n) { return ie(n, function(t, e) { n.point(t * Ia, e * Ia) }) } 835 836 function ce(n, t) { return [n, t] } 837 838 function se(n, t) { return [n > ja ? n - Fa : -ja > n ? n + Fa : n, t] } 839 840 function fe(n, t, e) { return n ? t || e ? Ct(ge(n), pe(t, e)) : ge(n) : t || e ? pe(t, e) : se } 841 842 function he(n) { return function(t, e) { return t += n, [t > ja ? t - Fa : -ja > t ? t + Fa : t, e] } } 843 844 function ge(n) { var t = he(n); return t.invert = he(-n), t } 845 846 function pe(n, t) { 847 function e(n, t) { var e = Math.cos(t), 848 o = Math.cos(n) * e, 849 l = Math.sin(n) * e, 850 c = Math.sin(t), 851 s = c * r + o * u; return [Math.atan2(l * i - s * a, o * r - c * u), tn(s * i + l * a)] } var r = Math.cos(n), 852 u = Math.sin(n), 853 i = Math.cos(t), 854 a = Math.sin(t); return e.invert = function(n, t) { var e = Math.cos(t), 855 o = Math.cos(n) * e, 856 l = Math.sin(n) * e, 857 c = Math.sin(t), 858 s = c * i - l * a; return [Math.atan2(l * i + c * a, o * r + s * u), tn(s * r - o * u)] }, e } 859 860 function ve(n, t) { var e = Math.cos(n), 861 r = Math.sin(n); return function(u, i, a, o) { var l = a * t; 862 null != u ? (u = de(e, u), i = de(e, i), (a > 0 ? i > u : u > i) && (u += a * Fa)) : (u = n + a * Fa, i = n - .5 * l); for (var c, s = u; a > 0 ? s > i : i > s; s -= l) o.point((c = _t([e, -r * Math.cos(s), -r * Math.sin(s)]))[0], c[1]) } } 863 864 function de(n, t) { var e = dt(t); 865 e[0] -= n, bt(e); var r = nn(-e[1]); return ((-e[2] < 0 ? -r : r) + 2 * Math.PI - Pa) % (2 * Math.PI) } 866 867 function me(n, t, e) { var r = oa.range(n, t - Pa, e).concat(t); return function(n) { return r.map(function(t) { return [n, t] }) } } 868 869 function ye(n, t, e) { var r = oa.range(n, t - Pa, e).concat(t); return function(n) { return r.map(function(t) { return [t, n] }) } } 870 871 function Me(n) { return n.source } 872 873 function xe(n) { return n.target } 874 875 function be(n, t, e, r) { var u = Math.cos(t), 876 i = Math.sin(t), 877 a = Math.cos(r), 878 o = Math.sin(r), 879 l = u * Math.cos(n), 880 c = u * Math.sin(n), 881 s = a * Math.cos(e), 882 f = a * Math.sin(e), 883 h = 2 * Math.asin(Math.sqrt(an(r - t) + u * a * an(e - n))), 884 g = 1 / Math.sin(h), 885 p = h ? function(n) { var t = Math.sin(n *= h) * g, 886 e = Math.sin(h - n) * g, 887 r = e * l + t * s, 888 u = e * c + t * f, 889 a = e * i + t * o; return [Math.atan2(u, r) * Ya, Math.atan2(a, Math.sqrt(r * r + u * u)) * Ya] } : function() { return [n * Ya, t * Ya] }; return p.distance = h, p } 890 891 function _e() { 892 function n(n, u) { var i = Math.sin(u *= Ia), 893 a = Math.cos(u), 894 o = Ma((n *= Ia) - t), 895 l = Math.cos(o); 896 Jo += Math.atan2(Math.sqrt((o = a * Math.sin(o)) * o + (o = r * i - e * a * l) * o), e * i + r * a * l), t = n, e = i, r = a } var t, e, r; 897 Go.point = function(u, i) { t = u * Ia, e = Math.sin(i *= Ia), r = Math.cos(i), Go.point = n }, Go.lineEnd = function() { Go.point = Go.lineEnd = b } } 898 899 function we(n, t) { 900 function e(t, e) { var r = Math.cos(t), 901 u = Math.cos(e), 902 i = n(r * u); return [i * u * Math.sin(t), i * Math.sin(e)] } return e.invert = function(n, e) { var r = Math.sqrt(n * n + e * e), 903 u = t(r), 904 i = Math.sin(u), 905 a = Math.cos(u); return [Math.atan2(n * i, r * a), Math.asin(r && e * i / r)] }, e } 906 907 function Se(n, t) { 908 function e(n, t) { a > 0 ? -Oa + Pa > t && (t = -Oa + Pa) : t > Oa - Pa && (t = Oa - Pa); var e = a / Math.pow(u(t), i); return [e * Math.sin(i * n), a - e * Math.cos(i * n)] } var r = Math.cos(n), 909 u = function(n) { return Math.tan(ja / 4 + n / 2) }, 910 i = n === t ? Math.sin(n) : Math.log(r / Math.cos(t)) / Math.log(u(t) / u(n)), 911 a = r * Math.pow(u(n), i) / i; return i ? (e.invert = function(n, t) { var e = a - t, 912 r = K(i) * Math.sqrt(n * n + e * e); return [Math.atan2(n, e) / i, 2 * Math.atan(Math.pow(a / r, 1 / i)) - Oa] }, e) : Ne } 913 914 function ke(n, t) { 915 function e(n, t) { var e = i - t; return [e * Math.sin(u * n), i - e * Math.cos(u * n)] } var r = Math.cos(n), 916 u = n === t ? Math.sin(n) : (r - Math.cos(t)) / (t - n), 917 i = r / u + n; return Ma(u) < Pa ? ce : (e.invert = function(n, t) { var e = i - t; return [Math.atan2(n, e) / u, i - K(u) * Math.sqrt(n * n + e * e)] }, e) } 918 919 function Ne(n, t) { return [n, Math.log(Math.tan(ja / 4 + t / 2))] } 920 921 function Ee(n) { var t, e = ae(n), 922 r = e.scale, 923 u = e.translate, 924 i = e.clipExtent; return e.scale = function() { var n = r.apply(e, arguments); return n === e ? t ? e.clipExtent(null) : e : n }, e.translate = function() { var n = u.apply(e, arguments); return n === e ? t ? e.clipExtent(null) : e : n }, e.clipExtent = function(n) { var a = i.apply(e, arguments); if (a === e) { if (t = null == n) { var o = ja * r(), 925 l = u(); 926 i([ 927 [l[0] - o, l[1] - o], 928 [l[0] + o, l[1] + o] 929 ]) } } else t && (a = null); return a }, e.clipExtent(null) } 930 931 function Ae(n, t) { return [Math.log(Math.tan(ja / 4 + t / 2)), -n] } 932 933 function Ce(n) { return n[0] } 934 935 function ze(n) { return n[1] } 936 937 function Le(n) { for (var t = n.length, e = [0, 1], r = 2, u = 2; t > u; u++) { for (; r > 1 && Q(n[e[r - 2]], n[e[r - 1]], n[u]) <= 0;) --r; 938 e[r++] = u } return e.slice(0, r) } 939 940 function qe(n, t) { return n[0] - t[0] || n[1] - t[1] } 941 942 function Te(n, t, e) { return (e[0] - t[0]) * (n[1] - t[1]) < (e[1] - t[1]) * (n[0] - t[0]) } 943 944 function Re(n, t, e, r) { var u = n[0], 945 i = e[0], 946 a = t[0] - u, 947 o = r[0] - i, 948 l = n[1], 949 c = e[1], 950 s = t[1] - l, 951 f = r[1] - c, 952 h = (o * (l - c) - f * (u - i)) / (f * a - o * s); return [u + h * a, l + h * s] } 953 954 function De(n) { var t = n[0], 955 e = n[n.length - 1]; return !(t[0] - e[0] || t[1] - e[1]) } 956 957 function Pe() { rr(this), this.edge = this.site = this.circle = null } 958 959 function Ue(n) { var t = cl.pop() || new Pe; return t.site = n, t } 960 961 function je(n) { Be(n), al.remove(n), cl.push(n), rr(n) } 962 963 function Fe(n) { var t = n.circle, 964 e = t.x, 965 r = t.cy, 966 u = { x: e, y: r }, 967 i = n.P, 968 a = n.N, 969 o = [n]; 970 je(n); for (var l = i; l.circle && Ma(e - l.circle.x) < Pa && Ma(r - l.circle.cy) < Pa;) i = l.P, o.unshift(l), je(l), l = i; 971 o.unshift(l), Be(l); for (var c = a; c.circle && Ma(e - c.circle.x) < Pa && Ma(r - c.circle.cy) < Pa;) a = c.N, o.push(c), je(c), c = a; 972 o.push(c), Be(c); var s, f = o.length; for (s = 1; f > s; ++s) c = o[s], l = o[s - 1], nr(c.edge, l.site, c.site, u); 973 l = o[0], c = o[f - 1], c.edge = Ke(l.site, c.site, null, u), $e(l), $e(c) } 974 975 function He(n) { for (var t, e, r, u, i = n.x, a = n.y, o = al._; o;) 976 if (r = Oe(o, a) - i, r > Pa) o = o.L; 977 else { if (u = i - Ie(o, a), !(u > Pa)) { r > -Pa ? (t = o.P, e = o) : u > -Pa ? (t = o, e = o.N) : t = e = o; break } if (!o.R) { t = o; break } 978 o = o.R } 979 var l = Ue(n); if (al.insert(t, l), t || e) { if (t === e) return Be(t), e = Ue(t.site), al.insert(l, e), l.edge = e.edge = Ke(t.site, l.site), $e(t), void $e(e); if (!e) return void(l.edge = Ke(t.site, l.site)); 980 Be(t), Be(e); var c = t.site, 981 s = c.x, 982 f = c.y, 983 h = n.x - s, 984 g = n.y - f, 985 p = e.site, 986 v = p.x - s, 987 d = p.y - f, 988 m = 2 * (h * d - g * v), 989 y = h * h + g * g, 990 M = v * v + d * d, 991 x = { x: (d * y - g * M) / m + s, y: (h * M - v * y) / m + f }; 992 nr(e.edge, c, p, x), l.edge = Ke(c, n, null, x), e.edge = Ke(n, p, null, x), $e(t), $e(e) } } 993 994 function Oe(n, t) { var e = n.site, 995 r = e.x, 996 u = e.y, 997 i = u - t; if (!i) return r; var a = n.P; if (!a) return -(1 / 0); 998 e = a.site; var o = e.x, 999 l = e.y, 1000 c = l - t; if (!c) return o; var s = o - r, 1001 f = 1 / i - 1 / c, 1002 h = s / c; return f ? (-h + Math.sqrt(h * h - 2 * f * (s * s / (-2 * c) - l + c / 2 + u - i / 2))) / f + r : (r + o) / 2 } 1003 1004 function Ie(n, t) { var e = n.N; if (e) return Oe(e, t); var r = n.site; return r.y === t ? r.x : 1 / 0 } 1005 1006 function Ye(n) { this.site = n, this.edges = [] } 1007 1008 function Ze(n) { for (var t, e, r, u, i, a, o, l, c, s, f = n[0][0], h = n[1][0], g = n[0][1], p = n[1][1], v = il, d = v.length; d--;) 1009 if (i = v[d], i && i.prepare()) 1010 for (o = i.edges, l = o.length, a = 0; l > a;) s = o[a].end(), r = s.x, u = s.y, c = o[++a % l].start(), t = c.x, e = c.y, (Ma(r - t) > Pa || Ma(u - e) > Pa) && (o.splice(a, 0, new tr(Qe(i.site, s, Ma(r - f) < Pa && p - u > Pa ? { x: f, y: Ma(t - f) < Pa ? e : p } : Ma(u - p) < Pa && h - r > Pa ? { x: Ma(e - p) < Pa ? t : h, y: p } : Ma(r - h) < Pa && u - g > Pa ? { x: h, y: Ma(t - h) < Pa ? e : g } : Ma(u - g) < Pa && r - f > Pa ? { x: Ma(e - g) < Pa ? t : f, y: g } : null), i.site, null)), ++l) } 1011 1012 function Ve(n, t) { return t.angle - n.angle } 1013 1014 function Xe() { rr(this), this.x = this.y = this.arc = this.site = this.cy = null } 1015 1016 function $e(n) { var t = n.P, 1017 e = n.N; if (t && e) { var r = t.site, 1018 u = n.site, 1019 i = e.site; if (r !== i) { var a = u.x, 1020 o = u.y, 1021 l = r.x - a, 1022 c = r.y - o, 1023 s = i.x - a, 1024 f = i.y - o, 1025 h = 2 * (l * f - c * s); if (!(h >= -Ua)) { var g = l * l + c * c, 1026 p = s * s + f * f, 1027 v = (f * g - c * p) / h, 1028 d = (l * p - s * g) / h, 1029 f = d + o, 1030 m = sl.pop() || new Xe; 1031 m.arc = n, m.site = u, m.x = v + a, m.y = f + Math.sqrt(v * v + d * d), m.cy = f, n.circle = m; for (var y = null, M = ll._; M;) 1032 if (m.y < M.y || m.y === M.y && m.x <= M.x) { if (!M.L) { y = M.P; break } 1033 M = M.L } else { if (!M.R) { y = M; break } 1034 M = M.R } 1035 ll.insert(y, m), y || (ol = m) } } } } 1036 1037 function Be(n) { var t = n.circle; 1038 t && (t.P || (ol = t.N), ll.remove(t), sl.push(t), rr(t), n.circle = null) } 1039 1040 function We(n) { for (var t, e = ul, r = Yt(n[0][0], n[0][1], n[1][0], n[1][1]), u = e.length; u--;) t = e[u], (!Je(t, n) || !r(t) || Ma(t.a.x - t.b.x) < Pa && Ma(t.a.y - t.b.y) < Pa) && (t.a = t.b = null, e.splice(u, 1)) } 1041 1042 function Je(n, t) { var e = n.b; if (e) return !0; var r, u, i = n.a, 1043 a = t[0][0], 1044 o = t[1][0], 1045 l = t[0][1], 1046 c = t[1][1], 1047 s = n.l, 1048 f = n.r, 1049 h = s.x, 1050 g = s.y, 1051 p = f.x, 1052 v = f.y, 1053 d = (h + p) / 2, 1054 m = (g + v) / 2; if (v === g) { if (a > d || d >= o) return; if (h > p) { if (i) { if (i.y >= c) return } else i = { x: d, y: l }; 1055 e = { x: d, y: c } } else { if (i) { if (i.y < l) return } else i = { x: d, y: c }; 1056 e = { x: d, y: l } } } else if (r = (h - p) / (v - g), u = m - r * d, -1 > r || r > 1) 1057 if (h > p) { if (i) { if (i.y >= c) return } else i = { x: (l - u) / r, y: l }; 1058 e = { x: (c - u) / r, y: c } } else { if (i) { if (i.y < l) return } else i = { x: (c - u) / r, y: c }; 1059 e = { x: (l - u) / r, y: l } } 1060 else if (v > g) { if (i) { if (i.x >= o) return } else i = { x: a, y: r * a + u }; 1061 e = { x: o, y: r * o + u } } else { if (i) { if (i.x < a) return } else i = { x: o, y: r * o + u }; 1062 e = { x: a, y: r * a + u } } return n.a = i, n.b = e, !0 } 1063 1064 function Ge(n, t) { this.l = n, this.r = t, this.a = this.b = null } 1065 1066 function Ke(n, t, e, r) { var u = new Ge(n, t); return ul.push(u), e && nr(u, n, t, e), r && nr(u, t, n, r), il[n.i].edges.push(new tr(u, n, t)), il[t.i].edges.push(new tr(u, t, n)), u } 1067 1068 function Qe(n, t, e) { var r = new Ge(n, null); return r.a = t, r.b = e, ul.push(r), r } 1069 1070 function nr(n, t, e, r) { n.a || n.b ? n.l === e ? n.b = r : n.a = r : (n.a = r, n.l = t, n.r = e) } 1071 1072 function tr(n, t, e) { var r = n.a, 1073 u = n.b; 1074 this.edge = n, this.site = t, this.angle = e ? Math.atan2(e.y - t.y, e.x - t.x) : n.l === t ? Math.atan2(u.x - r.x, r.y - u.y) : Math.atan2(r.x - u.x, u.y - r.y) } 1075 1076 function er() { this._ = null } 1077 1078 function rr(n) { n.U = n.C = n.L = n.R = n.P = n.N = null } 1079 1080 function ur(n, t) { var e = t, 1081 r = t.R, 1082 u = e.U; 1083 u ? u.L === e ? u.L = r : u.R = r : n._ = r, r.U = u, e.U = r, e.R = r.L, e.R && (e.R.U = e), r.L = e } 1084 1085 function ir(n, t) { var e = t, 1086 r = t.L, 1087 u = e.U; 1088 u ? u.L === e ? u.L = r : u.R = r : n._ = r, r.U = u, e.U = r, e.L = r.R, e.L && (e.L.U = e), r.R = e } 1089 1090 function ar(n) { for (; n.L;) n = n.L; return n } 1091 1092 function or(n, t) { var e, r, u, i = n.sort(lr).pop(); for (ul = [], il = new Array(n.length), al = new er, ll = new er;;) 1093 if (u = ol, i && (!u || i.y < u.y || i.y === u.y && i.x < u.x))(i.x !== e || i.y !== r) && (il[i.i] = new Ye(i), He(i), e = i.x, r = i.y), i = n.pop(); 1094 else { if (!u) break; 1095 Fe(u.arc) } 1096 t && (We(t), Ze(t)); var a = { cells: il, edges: ul }; return al = ll = ul = il = null, a } 1097 1098 function lr(n, t) { return t.y - n.y || t.x - n.x } 1099 1100 function cr(n, t, e) { return (n.x - e.x) * (t.y - n.y) - (n.x - t.x) * (e.y - n.y) } 1101 1102 function sr(n) { return n.x } 1103 1104 function fr(n) { return n.y } 1105 1106 function hr() { return { leaf: !0, nodes: [], point: null, x: null, y: null } } 1107 1108 function gr(n, t, e, r, u, i) { if (!n(t, e, r, u, i)) { var a = .5 * (e + u), 1109 o = .5 * (r + i), 1110 l = t.nodes; 1111 l[0] && gr(n, l[0], e, r, a, o), l[1] && gr(n, l[1], a, r, u, o), l[2] && gr(n, l[2], e, o, a, i), l[3] && gr(n, l[3], a, o, u, i) } } 1112 1113 function pr(n, t, e, r, u, i, a) { var o, l = 1 / 0; return function c(n, s, f, h, g) { if (!(s > i || f > a || r > h || u > g)) { if (p = n.point) { var p, v = t - n.x, 1114 d = e - n.y, 1115 m = v * v + d * d; if (l > m) { var y = Math.sqrt(l = m); 1116 r = t - y, u = e - y, i = t + y, a = e + y, o = p } } for (var M = n.nodes, x = .5 * (s + h), b = .5 * (f + g), _ = t >= x, w = e >= b, S = w << 1 | _, k = S + 4; k > S; ++S) 1117 if (n = M[3 & S]) switch (3 & S) { 1118 case 0: 1119 c(n, s, f, x, b); break; 1120 case 1: 1121 c(n, x, f, h, b); break; 1122 case 2: 1123 c(n, s, b, x, g); break; 1124 case 3: 1125 c(n, x, b, h, g) } } }(n, r, u, i, a), o } 1126 1127 function vr(n, t) { n = oa.rgb(n), t = oa.rgb(t); var e = n.r, 1128 r = n.g, 1129 u = n.b, 1130 i = t.r - e, 1131 a = t.g - r, 1132 o = t.b - u; return function(n) { return "#" + bn(Math.round(e + i * n)) + bn(Math.round(r + a * n)) + bn(Math.round(u + o * n)) } } 1133 1134 function dr(n, t) { var e, r = {}, 1135 u = {}; for (e in n) e in t ? r[e] = Mr(n[e], t[e]) : u[e] = n[e]; for (e in t) e in n || (u[e] = t[e]); return function(n) { for (e in r) u[e] = r[e](n); return u } } 1136 1137 function mr(n, t) { return n = +n, t = +t, 1138 function(e) { return n * (1 - e) + t * e } } 1139 1140 function yr(n, t) { var e, r, u, i = hl.lastIndex = gl.lastIndex = 0, 1141 a = -1, 1142 o = [], 1143 l = []; for (n += "", t += ""; 1144 (e = hl.exec(n)) && (r = gl.exec(t));)(u = r.index) > i && (u = t.slice(i, u), o[a] ? o[a] += u : o[++a] = u), (e = e[0]) === (r = r[0]) ? o[a] ? o[a] += r : o[++a] = r : (o[++a] = null, l.push({ i: a, x: mr(e, r) })), i = gl.lastIndex; return i < t.length && (u = t.slice(i), o[a] ? o[a] += u : o[++a] = u), o.length < 2 ? l[0] ? (t = l[0].x, function(n) { return t(n) + "" }) : function() { return t } : (t = l.length, function(n) { for (var e, r = 0; t > r; ++r) o[(e = l[r]).i] = e.x(n); return o.join("") }) } 1145 1146 function Mr(n, t) { for (var e, r = oa.interpolators.length; --r >= 0 && !(e = oa.interpolators[r](n, t));); return e } 1147 1148 function xr(n, t) { var e, r = [], 1149 u = [], 1150 i = n.length, 1151 a = t.length, 1152 o = Math.min(n.length, t.length); for (e = 0; o > e; ++e) r.push(Mr(n[e], t[e])); for (; i > e; ++e) u[e] = n[e]; for (; a > e; ++e) u[e] = t[e]; return function(n) { for (e = 0; o > e; ++e) u[e] = r[e](n); return u } } 1153 1154 function br(n) { return function(t) { return 0 >= t ? 0 : t >= 1 ? 1 : n(t) } } 1155 1156 function _r(n) { return function(t) { return 1 - n(1 - t) } } 1157 1158 function wr(n) { return function(t) { return .5 * (.5 > t ? n(2 * t) : 2 - n(2 - 2 * t)) } } 1159 1160 function Sr(n) { return n * n } 1161 1162 function kr(n) { return n * n * n } 1163 1164 function Nr(n) { if (0 >= n) return 0; if (n >= 1) return 1; var t = n * n, 1165 e = t * n; return 4 * (.5 > n ? e : 3 * (n - t) + e - .75) } 1166 1167 function Er(n) { return function(t) { return Math.pow(t, n) } } 1168 1169 function Ar(n) { return 1 - Math.cos(n * Oa) } 1170 1171 function Cr(n) { return Math.pow(2, 10 * (n - 1)) } 1172 1173 function zr(n) { return 1 - Math.sqrt(1 - n * n) } 1174 1175 function Lr(n, t) { var e; return arguments.length < 2 && (t = .45), arguments.length ? e = t / Fa * Math.asin(1 / n) : (n = 1, e = t / 4), 1176 function(r) { return 1 + n * Math.pow(2, -10 * r) * Math.sin((r - e) * Fa / t) } } 1177 1178 function qr(n) { return n || (n = 1.70158), 1179 function(t) { return t * t * ((n + 1) * t - n) } } 1180 1181 function Tr(n) { return 1 / 2.75 > n ? 7.5625 * n * n : 2 / 2.75 > n ? 7.5625 * (n -= 1.5 / 2.75) * n + .75 : 2.5 / 2.75 > n ? 7.5625 * (n -= 2.25 / 2.75) * n + .9375 : 7.5625 * (n -= 2.625 / 2.75) * n + .984375 } 1182 1183 function Rr(n, t) { n = oa.hcl(n), t = oa.hcl(t); var e = n.h, 1184 r = n.c, 1185 u = n.l, 1186 i = t.h - e, 1187 a = t.c - r, 1188 o = t.l - u; return isNaN(a) && (a = 0, r = isNaN(r) ? t.c : r), isNaN(i) ? (i = 0, e = isNaN(e) ? t.h : e) : i > 180 ? i -= 360 : -180 > i && (i += 360), 1189 function(n) { return fn(e + i * n, r + a * n, u + o * n) + "" } } 1190 1191 function Dr(n, t) { n = oa.hsl(n), t = oa.hsl(t); var e = n.h, 1192 r = n.s, 1193 u = n.l, 1194 i = t.h - e, 1195 a = t.s - r, 1196 o = t.l - u; return isNaN(a) && (a = 0, r = isNaN(r) ? t.s : r), isNaN(i) ? (i = 0, e = isNaN(e) ? t.h : e) : i > 180 ? i -= 360 : -180 > i && (i += 360), 1197 function(n) { return cn(e + i * n, r + a * n, u + o * n) + "" } } 1198 1199 function Pr(n, t) { n = oa.lab(n), t = oa.lab(t); var e = n.l, 1200 r = n.a, 1201 u = n.b, 1202 i = t.l - e, 1203 a = t.a - r, 1204 o = t.b - u; return function(n) { return gn(e + i * n, r + a * n, u + o * n) + "" } } 1205 1206 function Ur(n, t) { return t -= n, 1207 function(e) { return Math.round(n + t * e) } } 1208 1209 function jr(n) { var t = [n.a, n.b], 1210 e = [n.c, n.d], 1211 r = Hr(t), 1212 u = Fr(t, e), 1213 i = Hr(Or(e, t, -u)) || 0; 1214 t[0] * e[1] < e[0] * t[1] && (t[0] *= -1, t[1] *= -1, r *= -1, u *= -1), this.rotate = (r ? Math.atan2(t[1], t[0]) : Math.atan2(-e[0], e[1])) * Ya, this.translate = [n.e, n.f], this.scale = [r, i], this.skew = i ? Math.atan2(u, i) * Ya : 0 } 1215 1216 function Fr(n, t) { return n[0] * t[0] + n[1] * t[1] } 1217 1218 function Hr(n) { var t = Math.sqrt(Fr(n, n)); return t && (n[0] /= t, n[1] /= t), t } 1219 1220 function Or(n, t, e) { return n[0] += e * t[0], n[1] += e * t[1], n } 1221 1222 function Ir(n) { return n.length ? n.pop() + "," : "" } 1223 1224 function Yr(n, t, e, r) { if (n[0] !== t[0] || n[1] !== t[1]) { var u = e.push("translate(", null, ",", null, ")"); 1225 r.push({ i: u - 4, x: mr(n[0], t[0]) }, { i: u - 2, x: mr(n[1], t[1]) }) } else(t[0] || t[1]) && e.push("translate(" + t + ")") } 1226 1227 function Zr(n, t, e, r) { n !== t ? (n - t > 180 ? t += 360 : t - n > 180 && (n += 360), r.push({ i: e.push(Ir(e) + "rotate(", null, ")") - 2, x: mr(n, t) })) : t && e.push(Ir(e) + "rotate(" + t + ")") } 1228 1229 function Vr(n, t, e, r) { n !== t ? r.push({ i: e.push(Ir(e) + "skewX(", null, ")") - 2, x: mr(n, t) }) : t && e.push(Ir(e) + "skewX(" + t + ")") } 1230 1231 function Xr(n, t, e, r) { if (n[0] !== t[0] || n[1] !== t[1]) { var u = e.push(Ir(e) + "scale(", null, ",", null, ")"); 1232 r.push({ i: u - 4, x: mr(n[0], t[0]) }, { i: u - 2, x: mr(n[1], t[1]) }) } else(1 !== t[0] || 1 !== t[1]) && e.push(Ir(e) + "scale(" + t + ")") } 1233 1234 function $r(n, t) { var e = [], 1235 r = []; return n = oa.transform(n), t = oa.transform(t), Yr(n.translate, t.translate, e, r), Zr(n.rotate, t.rotate, e, r), Vr(n.skew, t.skew, e, r), Xr(n.scale, t.scale, e, r), n = t = null, 1236 function(n) { for (var t, u = -1, i = r.length; ++u < i;) e[(t = r[u]).i] = t.x(n); return e.join("") } } 1237 1238 function Br(n, t) { return t = (t -= n = +n) || 1 / t, 1239 function(e) { return (e - n) / t } } 1240 1241 function Wr(n, t) { return t = (t -= n = +n) || 1 / t, 1242 function(e) { return Math.max(0, Math.min(1, (e - n) / t)) } } 1243 1244 function Jr(n) { for (var t = n.source, e = n.target, r = Kr(t, e), u = [t]; t !== r;) t = t.parent, u.push(t); for (var i = u.length; e !== r;) u.splice(i, 0, e), e = e.parent; return u } 1245 1246 function Gr(n) { for (var t = [], e = n.parent; null != e;) t.push(n), n = e, e = e.parent; return t.push(n), t } 1247 1248 function Kr(n, t) { if (n === t) return n; for (var e = Gr(n), r = Gr(t), u = e.pop(), i = r.pop(), a = null; u === i;) a = u, u = e.pop(), i = r.pop(); return a } 1249 1250 function Qr(n) { n.fixed |= 2 } 1251 1252 function nu(n) { n.fixed &= -7 } 1253 1254 function tu(n) { n.fixed |= 4, n.px = n.x, n.py = n.y } 1255 1256 function eu(n) { n.fixed &= -5 } 1257 1258 function ru(n, t, e) { var r = 0, 1259 u = 0; if (n.charge = 0, !n.leaf) 1260 for (var i, a = n.nodes, o = a.length, l = -1; ++l < o;) i = a[l], null != i && (ru(i, t, e), n.charge += i.charge, r += i.charge * i.cx, u += i.charge * i.cy); if (n.point) { n.leaf || (n.point.x += Math.random() - .5, n.point.y += Math.random() - .5); var c = t * e[n.point.index]; 1261 n.charge += n.pointCharge = c, r += c * n.point.x, u += c * n.point.y } 1262 n.cx = r / n.charge, n.cy = u / n.charge } 1263 1264 function uu(n, t) { return oa.rebind(n, t, "sort", "children", "value"), n.nodes = n, n.links = su, n } 1265 1266 function iu(n, t) { for (var e = [n]; null != (n = e.pop());) 1267 if (t(n), (u = n.children) && (r = u.length)) 1268 for (var r, u; --r >= 0;) e.push(u[r]) } 1269 1270 function au(n, t) { for (var e = [n], r = []; null != (n = e.pop());) 1271 if (r.push(n), (i = n.children) && (u = i.length)) 1272 for (var u, i, a = -1; ++a < u;) e.push(i[a]); 1273 for (; null != (n = r.pop());) t(n) } 1274 1275 function ou(n) { return n.children } 1276 1277 function lu(n) { return n.value } 1278 1279 function cu(n, t) { return t.value - n.value } 1280 1281 function su(n) { return oa.merge(n.map(function(n) { return (n.children || []).map(function(t) { return { source: n, target: t } }) })) } 1282 1283 function fu(n) { return n.x } 1284 1285 function hu(n) { return n.y } 1286 1287 function gu(n, t, e) { n.y0 = t, n.y = e } 1288 1289 function pu(n) { return oa.range(n.length) } 1290 1291 function vu(n) { for (var t = -1, e = n[0].length, r = []; ++t < e;) r[t] = 0; return r } 1292 1293 function du(n) { for (var t, e = 1, r = 0, u = n[0][1], i = n.length; i > e; ++e)(t = n[e][1]) > u && (r = e, u = t); return r } 1294 1295 function mu(n) { return n.reduce(yu, 0) } 1296 1297 function yu(n, t) { return n + t[1] } 1298 1299 function Mu(n, t) { return xu(n, Math.ceil(Math.log(t.length) / Math.LN2 + 1)) } 1300 1301 function xu(n, t) { for (var e = -1, r = +n[0], u = (n[1] - r) / t, i = []; ++e <= t;) i[e] = u * e + r; return i } 1302 1303 function bu(n) { return [oa.min(n), oa.max(n)] } 1304 1305 function _u(n, t) { return n.value - t.value } 1306 1307 function wu(n, t) { var e = n._pack_next; 1308 n._pack_next = t, t._pack_prev = n, t._pack_next = e, e._pack_prev = t } 1309 1310 function Su(n, t) { n._pack_next = t, t._pack_prev = n } 1311 1312 function ku(n, t) { var e = t.x - n.x, 1313 r = t.y - n.y, 1314 u = n.r + t.r; return .999 * u * u > e * e + r * r } 1315 1316 function Nu(n) { 1317 function t(n) { s = Math.min(n.x - n.r, s), f = Math.max(n.x + n.r, f), h = Math.min(n.y - n.r, h), g = Math.max(n.y + n.r, g) } if ((e = n.children) && (c = e.length)) { var e, r, u, i, a, o, l, c, s = 1 / 0, 1318 f = -(1 / 0), 1319 h = 1 / 0, 1320 g = -(1 / 0); if (e.forEach(Eu), r = e[0], r.x = -r.r, r.y = 0, t(r), c > 1 && (u = e[1], u.x = u.r, u.y = 0, t(u), c > 2)) 1321 for (i = e[2], zu(r, u, i), t(i), wu(r, i), r._pack_prev = i, wu(i, u), u = r._pack_next, a = 3; c > a; a++) { zu(r, u, i = e[a]); var p = 0, 1322 v = 1, 1323 d = 1; for (o = u._pack_next; o !== u; o = o._pack_next, v++) 1324 if (ku(o, i)) { p = 1; break } 1325 if (1 == p) 1326 for (l = r._pack_prev; l !== o._pack_prev && !ku(l, i); l = l._pack_prev, d++); 1327 p ? (d > v || v == d && u.r < r.r ? Su(r, u = o) : Su(r = l, u), a--) : (wu(r, i), u = i, t(i)) } 1328 var m = (s + f) / 2, 1329 y = (h + g) / 2, 1330 M = 0; for (a = 0; c > a; a++) i = e[a], i.x -= m, i.y -= y, M = Math.max(M, i.r + Math.sqrt(i.x * i.x + i.y * i.y)); 1331 n.r = M, e.forEach(Au) } } 1332 1333 function Eu(n) { n._pack_next = n._pack_prev = n } 1334 1335 function Au(n) { delete n._pack_next, delete n._pack_prev } 1336 1337 function Cu(n, t, e, r) { var u = n.children; if (n.x = t += r * n.x, n.y = e += r * n.y, n.r *= r, u) 1338 for (var i = -1, a = u.length; ++i < a;) Cu(u[i], t, e, r) } 1339 1340 function zu(n, t, e) { var r = n.r + e.r, 1341 u = t.x - n.x, 1342 i = t.y - n.y; if (r && (u || i)) { var a = t.r + e.r, 1343 o = u * u + i * i; 1344 a *= a, r *= r; var l = .5 + (r - a) / (2 * o), 1345 c = Math.sqrt(Math.max(0, 2 * a * (r + o) - (r -= o) * r - a * a)) / (2 * o); 1346 e.x = n.x + l * u + c * i, e.y = n.y + l * i - c * u } else e.x = n.x + r, e.y = n.y } 1347 1348 function Lu(n, t) { return n.parent == t.parent ? 1 : 2 } 1349 1350 function qu(n) { var t = n.children; return t.length ? t[0] : n.t } 1351 1352 function Tu(n) { var t, e = n.children; return (t = e.length) ? e[t - 1] : n.t } 1353 1354 function Ru(n, t, e) { var r = e / (t.i - n.i); 1355 t.c -= r, t.s += e, n.c += r, t.z += e, t.m += e } 1356 1357 function Du(n) { for (var t, e = 0, r = 0, u = n.children, i = u.length; --i >= 0;) t = u[i], t.z += e, t.m += e, e += t.s + (r += t.c) } 1358 1359 function Pu(n, t, e) { return n.a.parent === t.parent ? n.a : e } 1360 1361 function Uu(n) { return 1 + oa.max(n, function(n) { return n.y }) } 1362 1363 function ju(n) { return n.reduce(function(n, t) { return n + t.x }, 0) / n.length } 1364 1365 function Fu(n) { var t = n.children; return t && t.length ? Fu(t[0]) : n } 1366 1367 function Hu(n) { var t, e = n.children; return e && (t = e.length) ? Hu(e[t - 1]) : n } 1368 1369 function Ou(n) { return { x: n.x, y: n.y, dx: n.dx, dy: n.dy } } 1370 1371 function Iu(n, t) { var e = n.x + t[3], 1372 r = n.y + t[0], 1373 u = n.dx - t[1] - t[3], 1374 i = n.dy - t[0] - t[2]; return 0 > u && (e += u / 2, u = 0), 0 > i && (r += i / 2, i = 0), { x: e, y: r, dx: u, dy: i } } 1375 1376 function Yu(n) { var t = n[0], 1377 e = n[n.length - 1]; return e > t ? [t, e] : [e, t] } 1378 1379 function Zu(n) { return n.rangeExtent ? n.rangeExtent() : Yu(n.range()) } 1380 1381 function Vu(n, t, e, r) { var u = e(n[0], n[1]), 1382 i = r(t[0], t[1]); return function(n) { return i(u(n)) } } 1383 1384 function Xu(n, t) { var e, r = 0, 1385 u = n.length - 1, 1386 i = n[r], 1387 a = n[u]; return i > a && (e = r, r = u, u = e, e = i, i = a, a = e), n[r] = t.floor(i), n[u] = t.ceil(a), n } 1388 1389 function $u(n) { return n ? { floor: function(t) { return Math.floor(t / n) * n }, ceil: function(t) { return Math.ceil(t / n) * n } } : Sl } 1390 1391 function Bu(n, t, e, r) { var u = [], 1392 i = [], 1393 a = 0, 1394 o = Math.min(n.length, t.length) - 1; for (n[o] < n[0] && (n = n.slice().reverse(), t = t.slice().reverse()); ++a <= o;) u.push(e(n[a - 1], n[a])), i.push(r(t[a - 1], t[a])); return function(t) { var e = oa.bisect(n, t, 1, o) - 1; return i[e](u[e](t)) } } 1395 1396 function Wu(n, t, e, r) { 1397 function u() { var u = Math.min(n.length, t.length) > 2 ? Bu : Vu, 1398 l = r ? Wr : Br; return a = u(n, t, l, e), o = u(t, n, l, Mr), i } 1399 1400 function i(n) { return a(n) } var a, o; return i.invert = function(n) { return o(n) }, i.domain = function(t) { return arguments.length ? (n = t.map(Number), u()) : n }, i.range = function(n) { return arguments.length ? (t = n, u()) : t }, i.rangeRound = function(n) { return i.range(n).interpolate(Ur) }, i.clamp = function(n) { return arguments.length ? (r = n, u()) : r }, i.interpolate = function(n) { return arguments.length ? (e = n, u()) : e }, i.ticks = function(t) { return Qu(n, t) }, i.tickFormat = function(t, e) { return ni(n, t, e) }, i.nice = function(t) { return Gu(n, t), u() }, i.copy = function() { return Wu(n, t, e, r) }, u() } 1401 1402 function Ju(n, t) { return oa.rebind(n, t, "range", "rangeRound", "interpolate", "clamp") } 1403 1404 function Gu(n, t) { return Xu(n, $u(Ku(n, t)[2])), Xu(n, $u(Ku(n, t)[2])), n } 1405 1406 function Ku(n, t) { null == t && (t = 10); var e = Yu(n), 1407 r = e[1] - e[0], 1408 u = Math.pow(10, Math.floor(Math.log(r / t) / Math.LN10)), 1409 i = t / r * u; return .15 >= i ? u *= 10 : .35 >= i ? u *= 5 : .75 >= i && (u *= 2), e[0] = Math.ceil(e[0] / u) * u, e[1] = Math.floor(e[1] / u) * u + .5 * u, e[2] = u, e } 1410 1411 function Qu(n, t) { return oa.range.apply(oa, Ku(n, t)) } 1412 1413 function ni(n, t, e) { var r = Ku(n, t); if (e) { var u = fo.exec(e); if (u.shift(), "s" === u[8]) { var i = oa.formatPrefix(Math.max(Ma(r[0]), Ma(r[1]))); return u[7] || (u[7] = "." + ti(i.scale(r[2]))), u[8] = "f", e = oa.format(u.join("")), 1414 function(n) { return e(i.scale(n)) + i.symbol } } 1415 u[7] || (u[7] = "." + ei(u[8], r)), e = u.join("") } else e = ",." + ti(r[2]) + "f"; return oa.format(e) } 1416 1417 function ti(n) { return -Math.floor(Math.log(n) / Math.LN10 + .01) } 1418 1419 function ei(n, t) { var e = ti(t[2]); return n in kl ? Math.abs(e - ti(Math.max(Ma(t[0]), Ma(t[1])))) + +("e" !== n) : e - 2 * ("%" === n) } 1420 1421 function ri(n, t, e, r) { 1422 function u(n) { return (e ? Math.log(0 > n ? 0 : n) : -Math.log(n > 0 ? 0 : -n)) / Math.log(t) } 1423 1424 function i(n) { return e ? Math.pow(t, n) : -Math.pow(t, -n) } 1425 1426 function a(t) { return n(u(t)) } return a.invert = function(t) { return i(n.invert(t)) }, a.domain = function(t) { return arguments.length ? (e = t[0] >= 0, n.domain((r = t.map(Number)).map(u)), a) : r }, a.base = function(e) { return arguments.length ? (t = +e, n.domain(r.map(u)), a) : t }, a.nice = function() { var t = Xu(r.map(u), e ? Math : El); return n.domain(t), r = t.map(i), a }, a.ticks = function() { var n = Yu(r), 1427 a = [], 1428 o = n[0], 1429 l = n[1], 1430 c = Math.floor(u(o)), 1431 s = Math.ceil(u(l)), 1432 f = t % 1 ? 2 : t; if (isFinite(s - c)) { if (e) { for (; s > c; c++) 1433 for (var h = 1; f > h; h++) a.push(i(c) * h); 1434 a.push(i(c)) } else 1435 for (a.push(i(c)); c++ < s;) 1436 for (var h = f - 1; h > 0; h--) a.push(i(c) * h); for (c = 0; a[c] < o; c++); for (s = a.length; a[s - 1] > l; s--); 1437 a = a.slice(c, s) } return a }, a.tickFormat = function(n, e) { if (!arguments.length) return Nl; 1438 arguments.length < 2 ? e = Nl : "function" != typeof e && (e = oa.format(e)); var r = Math.max(1, t * n / a.ticks().length); return function(n) { var a = n / i(Math.round(u(n))); return t - .5 > a * t && (a *= t), r >= a ? e(n) : "" } }, a.copy = function() { return ri(n.copy(), t, e, r) }, Ju(a, n) } 1439 1440 function ui(n, t, e) { 1441 function r(t) { return n(u(t)) } var u = ii(t), 1442 i = ii(1 / t); return r.invert = function(t) { return i(n.invert(t)) }, r.domain = function(t) { return arguments.length ? (n.domain((e = t.map(Number)).map(u)), r) : e }, r.ticks = function(n) { return Qu(e, n) }, r.tickFormat = function(n, t) { return ni(e, n, t) }, r.nice = function(n) { return r.domain(Gu(e, n)) }, r.exponent = function(a) { return arguments.length ? (u = ii(t = a), i = ii(1 / t), n.domain(e.map(u)), r) : t }, r.copy = function() { return ui(n.copy(), t, e) }, Ju(r, n) } 1443 1444 function ii(n) { return function(t) { return 0 > t ? -Math.pow(-t, n) : Math.pow(t, n) } } 1445 1446 function ai(n, t) { 1447 function e(e) { return i[((u.get(e) || ("range" === t.t ? u.set(e, n.push(e)) : NaN)) - 1) % i.length] } 1448 1449 function r(t, e) { return oa.range(n.length).map(function(n) { return t + e * n }) } var u, i, a; return e.domain = function(r) { if (!arguments.length) return n; 1450 n = [], u = new c; for (var i, a = -1, o = r.length; ++a < o;) u.has(i = r[a]) || u.set(i, n.push(i)); return e[t.t].apply(e, t.a) }, e.range = function(n) { return arguments.length ? (i = n, a = 0, t = { t: "range", a: arguments }, e) : i }, e.rangePoints = function(u, o) { arguments.length < 2 && (o = 0); var l = u[0], 1451 c = u[1], 1452 s = n.length < 2 ? (l = (l + c) / 2, 0) : (c - l) / (n.length - 1 + o); return i = r(l + s * o / 2, s), a = 0, t = { t: "rangePoints", a: arguments }, e }, e.rangeRoundPoints = function(u, o) { arguments.length < 2 && (o = 0); var l = u[0], 1453 c = u[1], 1454 s = n.length < 2 ? (l = c = Math.round((l + c) / 2), 0) : (c - l) / (n.length - 1 + o) | 0; return i = r(l + Math.round(s * o / 2 + (c - l - (n.length - 1 + o) * s) / 2), s), a = 0, t = { t: "rangeRoundPoints", a: arguments }, e }, e.rangeBands = function(u, o, l) { arguments.length < 2 && (o = 0), arguments.length < 3 && (l = o); var c = u[1] < u[0], 1455 s = u[c - 0], 1456 f = u[1 - c], 1457 h = (f - s) / (n.length - o + 2 * l); return i = r(s + h * l, h), c && i.reverse(), a = h * (1 - o), t = { t: "rangeBands", a: arguments }, e }, e.rangeRoundBands = function(u, o, l) { arguments.length < 2 && (o = 0), arguments.length < 3 && (l = o); var c = u[1] < u[0], 1458 s = u[c - 0], 1459 f = u[1 - c], 1460 h = Math.floor((f - s) / (n.length - o + 2 * l)); return i = r(s + Math.round((f - s - (n.length - o) * h) / 2), h), c && i.reverse(), a = Math.round(h * (1 - o)), t = { t: "rangeRoundBands", a: arguments }, e }, e.rangeBand = function() { return a }, e.rangeExtent = function() { return Yu(t.a[0]) }, e.copy = function() { return ai(n, t) }, e.domain(n) } 1461 1462 function oi(n, t) { 1463 function i() { var e = 0, 1464 r = t.length; for (o = []; ++e < r;) o[e - 1] = oa.quantile(n, e / r); return a } 1465 1466 function a(n) { return isNaN(n = +n) ? void 0 : t[oa.bisect(o, n)] } var o; return a.domain = function(t) { return arguments.length ? (n = t.map(r).filter(u).sort(e), i()) : n }, a.range = function(n) { return arguments.length ? (t = n, i()) : t }, a.quantiles = function() { return o }, a.invertExtent = function(e) { return e = t.indexOf(e), 0 > e ? [NaN, NaN] : [e > 0 ? o[e - 1] : n[0], e < o.length ? o[e] : n[n.length - 1]] }, a.copy = function() { return oi(n, t) }, i() } 1467 1468 function li(n, t, e) { 1469 function r(t) { return e[Math.max(0, Math.min(a, Math.floor(i * (t - n))))] } 1470 1471 function u() { return i = e.length / (t - n), a = e.length - 1, r } var i, a; return r.domain = function(e) { return arguments.length ? (n = +e[0], t = +e[e.length - 1], u()) : [n, t] }, r.range = function(n) { return arguments.length ? (e = n, u()) : e }, r.invertExtent = function(t) { return t = e.indexOf(t), t = 0 > t ? NaN : t / i + n, [t, t + 1 / i] }, r.copy = function() { return li(n, t, e) }, u() } 1472 1473 function ci(n, t) { 1474 function e(e) { return e >= e ? t[oa.bisect(n, e)] : void 0 } return e.domain = function(t) { return arguments.length ? (n = t, e) : n }, e.range = function(n) { return arguments.length ? (t = n, e) : t }, e.invertExtent = function(e) { return e = t.indexOf(e), [n[e - 1], n[e]] }, e.copy = function() { return ci(n, t) }, e } 1475 1476 function si(n) { 1477 function t(n) { return +n } return t.invert = t, t.domain = t.range = function(e) { return arguments.length ? (n = e.map(t), t) : n }, t.ticks = function(t) { return Qu(n, t) }, t.tickFormat = function(t, e) { return ni(n, t, e) }, t.copy = function() { return si(n) }, t } 1478 1479 function fi() { return 0 } 1480 1481 function hi(n) { return n.innerRadius } 1482 1483 function gi(n) { return n.outerRadius } 1484 1485 function pi(n) { return n.startAngle } 1486 1487 function vi(n) { return n.endAngle } 1488 1489 function di(n) { return n && n.padAngle } 1490 1491 function mi(n, t, e, r) { return (n - e) * t - (t - r) * n > 0 ? 0 : 1 } 1492 1493 function yi(n, t, e, r, u) { var i = n[0] - t[0], 1494 a = n[1] - t[1], 1495 o = (u ? r : -r) / Math.sqrt(i * i + a * a), 1496 l = o * a, 1497 c = -o * i, 1498 s = n[0] + l, 1499 f = n[1] + c, 1500 h = t[0] + l, 1501 g = t[1] + c, 1502 p = (s + h) / 2, 1503 v = (f + g) / 2, 1504 d = h - s, 1505 m = g - f, 1506 y = d * d + m * m, 1507 M = e - r, 1508 x = s * g - h * f, 1509 b = (0 > m ? -1 : 1) * Math.sqrt(Math.max(0, M * M * y - x * x)), 1510 _ = (x * m - d * b) / y, 1511 w = (-x * d - m * b) / y, 1512 S = (x * m + d * b) / y, 1513 k = (-x * d + m * b) / y, 1514 N = _ - p, 1515 E = w - v, 1516 A = S - p, 1517 C = k - v; return N * N + E * E > A * A + C * C && (_ = S, w = k), [ 1518 [_ - l, w - c], 1519 [_ * e / M, w * e / M] 1520 ] } 1521 1522 function Mi(n) { 1523 function t(t) { 1524 function a() { c.push("M", i(n(s), o)) } for (var l, c = [], s = [], f = -1, h = t.length, g = En(e), p = En(r); ++f < h;) u.call(this, l = t[f], f) ? s.push([+g.call(this, l, f), +p.call(this, l, f)]) : s.length && (a(), s = []); return s.length && a(), c.length ? c.join("") : null } var e = Ce, 1525 r = ze, 1526 u = zt, 1527 i = xi, 1528 a = i.key, 1529 o = .7; return t.x = function(n) { return arguments.length ? (e = n, t) : e }, t.y = function(n) { return arguments.length ? (r = n, t) : r }, t.defined = function(n) { return arguments.length ? (u = n, t) : u }, t.interpolate = function(n) { return arguments.length ? (a = "function" == typeof n ? i = n : (i = Tl.get(n) || xi).key, t) : a }, t.tension = function(n) { return arguments.length ? (o = n, t) : o }, t } 1530 1531 function xi(n) { return n.length > 1 ? n.join("L") : n + "Z" } 1532 1533 function bi(n) { return n.join("L") + "Z" } 1534 1535 function _i(n) { for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;) u.push("H", (r[0] + (r = n[t])[0]) / 2, "V", r[1]); return e > 1 && u.push("H", r[0]), u.join("") } 1536 1537 function wi(n) { for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;) u.push("V", (r = n[t])[1], "H", r[0]); return u.join("") } 1538 1539 function Si(n) { for (var t = 0, e = n.length, r = n[0], u = [r[0], ",", r[1]]; ++t < e;) u.push("H", (r = n[t])[0], "V", r[1]); return u.join("") } 1540 1541 function ki(n, t) { return n.length < 4 ? xi(n) : n[1] + Ai(n.slice(1, -1), Ci(n, t)) } 1542 1543 function Ni(n, t) { return n.length < 3 ? bi(n) : n[0] + Ai((n.push(n[0]), n), Ci([n[n.length - 2]].concat(n, [n[1]]), t)) } 1544 1545 function Ei(n, t) { return n.length < 3 ? xi(n) : n[0] + Ai(n, Ci(n, t)) } 1546 1547 function Ai(n, t) { if (t.length < 1 || n.length != t.length && n.length != t.length + 2) return xi(n); var e = n.length != t.length, 1548 r = "", 1549 u = n[0], 1550 i = n[1], 1551 a = t[0], 1552 o = a, 1553 l = 1; if (e && (r += "Q" + (i[0] - 2 * a[0] / 3) + "," + (i[1] - 2 * a[1] / 3) + "," + i[0] + "," + i[1], u = n[1], l = 2), t.length > 1) { o = t[1], i = n[l], l++, r += "C" + (u[0] + a[0]) + "," + (u[1] + a[1]) + "," + (i[0] - o[0]) + "," + (i[1] - o[1]) + "," + i[0] + "," + i[1]; for (var c = 2; c < t.length; c++, l++) i = n[l], o = t[c], r += "S" + (i[0] - o[0]) + "," + (i[1] - o[1]) + "," + i[0] + "," + i[1] } if (e) { var s = n[l]; 1554 r += "Q" + (i[0] + 2 * o[0] / 3) + "," + (i[1] + 2 * o[1] / 3) + "," + s[0] + "," + s[1] } return r } 1555 1556 function Ci(n, t) { for (var e, r = [], u = (1 - t) / 2, i = n[0], a = n[1], o = 1, l = n.length; ++o < l;) e = i, i = a, a = n[o], r.push([u * (a[0] - e[0]), u * (a[1] - e[1])]); return r } 1557 1558 function zi(n) { if (n.length < 3) return xi(n); var t = 1, 1559 e = n.length, 1560 r = n[0], 1561 u = r[0], 1562 i = r[1], 1563 a = [u, u, u, (r = n[1])[0]], 1564 o = [i, i, i, r[1]], 1565 l = [u, ",", i, "L", Ri(Pl, a), ",", Ri(Pl, o)]; for (n.push(n[e - 1]); ++t <= e;) r = n[t], a.shift(), a.push(r[0]), o.shift(), o.push(r[1]), Di(l, a, o); return n.pop(), l.push("L", r), l.join("") } 1566 1567 function Li(n) { if (n.length < 4) return xi(n); for (var t, e = [], r = -1, u = n.length, i = [0], a = [0]; ++r < 3;) t = n[r], i.push(t[0]), a.push(t[1]); for (e.push(Ri(Pl, i) + "," + Ri(Pl, a)), --r; ++r < u;) t = n[r], i.shift(), i.push(t[0]), a.shift(), a.push(t[1]), Di(e, i, a); return e.join("") } 1568 1569 function qi(n) { for (var t, e, r = -1, u = n.length, i = u + 4, a = [], o = []; ++r < 4;) e = n[r % u], a.push(e[0]), o.push(e[1]); for (t = [Ri(Pl, a), ",", Ri(Pl, o)], --r; ++r < i;) e = n[r % u], a.shift(), a.push(e[0]), o.shift(), o.push(e[1]), Di(t, a, o); return t.join("") } 1570 1571 function Ti(n, t) { var e = n.length - 1; if (e) 1572 for (var r, u, i = n[0][0], a = n[0][1], o = n[e][0] - i, l = n[e][1] - a, c = -1; ++c <= e;) r = n[c], u = c / e, r[0] = t * r[0] + (1 - t) * (i + u * o), r[1] = t * r[1] + (1 - t) * (a + u * l); return zi(n) } 1573 1574 function Ri(n, t) { return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] + n[3] * t[3] } 1575 1576 function Di(n, t, e) { n.push("C", Ri(Rl, t), ",", Ri(Rl, e), ",", Ri(Dl, t), ",", Ri(Dl, e), ",", Ri(Pl, t), ",", Ri(Pl, e)) } 1577 1578 function Pi(n, t) { return (t[1] - n[1]) / (t[0] - n[0]) } 1579 1580 function Ui(n) { for (var t = 0, e = n.length - 1, r = [], u = n[0], i = n[1], a = r[0] = Pi(u, i); ++t < e;) r[t] = (a + (a = Pi(u = i, i = n[t + 1]))) / 2; return r[t] = a, r } 1581 1582 function ji(n) { for (var t, e, r, u, i = [], a = Ui(n), o = -1, l = n.length - 1; ++o < l;) t = Pi(n[o], n[o + 1]), Ma(t) < Pa ? a[o] = a[o + 1] = 0 : (e = a[o] / t, r = a[o + 1] / t, u = e * e + r * r, u > 9 && (u = 3 * t / Math.sqrt(u), a[o] = u * e, a[o + 1] = u * r)); for (o = -1; ++o <= l;) u = (n[Math.min(l, o + 1)][0] - n[Math.max(0, o - 1)][0]) / (6 * (1 + a[o] * a[o])), i.push([u || 0, a[o] * u || 0]); return i } 1583 1584 function Fi(n) { return n.length < 3 ? xi(n) : n[0] + Ai(n, ji(n)) } 1585 1586 function Hi(n) { for (var t, e, r, u = -1, i = n.length; ++u < i;) t = n[u], e = t[0], r = t[1] - Oa, t[0] = e * Math.cos(r), t[1] = e * Math.sin(r); return n } 1587 1588 function Oi(n) { 1589 function t(t) { 1590 function l() { v.push("M", o(n(m), f), s, c(n(d.reverse()), f), "Z") } 1591 for (var h, g, p, v = [], d = [], m = [], y = -1, M = t.length, x = En(e), b = En(u), _ = e === r ? function() { 1592 return g 1593 } : En(r), w = u === i ? function() { return p } : En(i); ++y < M;) a.call(this, h = t[y], y) ? (d.push([g = +x.call(this, h, y), p = +b.call(this, h, y)]), m.push([+_.call(this, h, y), +w.call(this, h, y)])) : d.length && (l(), d = [], m = []); 1594 return d.length && l(), v.length ? v.join("") : null 1595 } 1596 var e = Ce, 1597 r = Ce, 1598 u = 0, 1599 i = ze, 1600 a = zt, 1601 o = xi, 1602 l = o.key, 1603 c = o, 1604 s = "L", 1605 f = .7; 1606 return t.x = function(n) { return arguments.length ? (e = r = n, t) : r }, t.x0 = function(n) { return arguments.length ? (e = n, t) : e }, t.x1 = function(n) { return arguments.length ? (r = n, t) : r }, t.y = function(n) { return arguments.length ? (u = i = n, t) : i }, t.y0 = function(n) { return arguments.length ? (u = n, t) : u }, t.y1 = function(n) { return arguments.length ? (i = n, t) : i }, t.defined = function(n) { return arguments.length ? (a = n, t) : a }, t.interpolate = function(n) { return arguments.length ? (l = "function" == typeof n ? o = n : (o = Tl.get(n) || xi).key, c = o.reverse || o, s = o.closed ? "M" : "L", t) : l }, t.tension = function(n) { return arguments.length ? (f = n, t) : f }, t 1607 } 1608 1609 function Ii(n) { return n.radius } 1610 1611 function Yi(n) { return [n.x, n.y] } 1612 1613 function Zi(n) { return function() { var t = n.apply(this, arguments), 1614 e = t[0], 1615 r = t[1] - Oa; return [e * Math.cos(r), e * Math.sin(r)] } } 1616 1617 function Vi() { return 64 } 1618 1619 function Xi() { return "circle" } 1620 1621 function $i(n) { var t = Math.sqrt(n / ja); return "M0," + t + "A" + t + "," + t + " 0 1,1 0," + -t + "A" + t + "," + t + " 0 1,1 0," + t + "Z" } 1622 1623 function Bi(n) { return function() { var t, e, r; 1624 (t = this[n]) && (r = t[e = t.active]) && (r.timer.c = null, r.timer.t = NaN, --t.count ? delete t[e] : delete this[n], t.active += .5, r.event && r.event.interrupt.call(this, this.__data__, r.index)) } } 1625 1626 function Wi(n, t, e) { return Sa(n, Yl), n.namespace = t, n.id = e, n } 1627 1628 function Ji(n, t, e, r) { var u = n.id, 1629 i = n.namespace; return Y(n, "function" == typeof e ? function(n, a, o) { n[i][u].tween.set(t, r(e.call(n, n.__data__, a, o))) } : (e = r(e), function(n) { n[i][u].tween.set(t, e) })) } 1630 1631 function Gi(n) { return null == n && (n = ""), 1632 function() { this.textContent = n } } 1633 1634 function Ki(n) { return null == n ? "__transition__" : "__transition_" + n + "__" } 1635 1636 function Qi(n, t, e, r, u) { 1637 function i(n) { var t = v.delay; return s.t = t + l, n >= t ? a(n - t) : void(s.c = a) } 1638 1639 function a(e) { var u = p.active, 1640 i = p[u]; 1641 i && (i.timer.c = null, i.timer.t = NaN, --p.count, delete p[u], i.event && i.event.interrupt.call(n, n.__data__, i.index)); for (var a in p) 1642 if (r > +a) { var c = p[a]; 1643 c.timer.c = null, c.timer.t = NaN, --p.count, delete p[a] } 1644 s.c = o, qn(function() { return s.c && o(e || 1) && (s.c = null, s.t = NaN), 1 }, 0, l), p.active = r, v.event && v.event.start.call(n, n.__data__, t), g = [], v.tween.forEach(function(e, r) { 1645 (r = r.call(n, n.__data__, t)) && g.push(r) }), h = v.ease, f = v.duration } 1646 1647 function o(u) { for (var i = u / f, a = h(i), o = g.length; o > 0;) g[--o].call(n, a); return i >= 1 ? (v.event && v.event.end.call(n, n.__data__, t), --p.count ? delete p[r] : delete n[e], 1) : void 0 } var l, s, f, h, g, p = n[e] || (n[e] = { active: 0, count: 0 }), 1648 v = p[r]; 1649 v || (l = u.time, s = qn(i, 0, l), v = p[r] = { tween: new c, time: l, timer: s, delay: u.delay, duration: u.duration, ease: u.ease, index: t }, u = null, ++p.count) } 1650 1651 function na(n, t, e) { n.attr("transform", function(n) { var r = t(n); return "translate(" + (isFinite(r) ? r : e(n)) + ",0)" }) } 1652 1653 function ta(n, t, e) { n.attr("transform", function(n) { var r = t(n); return "translate(0," + (isFinite(r) ? r : e(n)) + ")" }) } 1654 1655 function ea(n) { return n.toISOString() } 1656 1657 function ra(n, t, e) { 1658 function r(t) { return n(t) } 1659 1660 function u(n, e) { var r = n[1] - n[0], 1661 u = r / e, 1662 i = oa.bisect(Kl, u); return i == Kl.length ? [t.year, Ku(n.map(function(n) { return n / 31536e6 }), e)[2]] : i ? t[u / Kl[i - 1] < Kl[i] / u ? i - 1 : i] : [tc, Ku(n, e)[2]] } return r.invert = function(t) { return ua(n.invert(t)) }, r.domain = function(t) { return arguments.length ? (n.domain(t), r) : n.domain().map(ua) }, r.nice = function(n, t) { 1663 function e(e) { return !isNaN(e) && !n.range(e, ua(+e + 1), t).length } var i = r.domain(), 1664 a = Yu(i), 1665 o = null == n ? u(a, 10) : "number" == typeof n && u(a, n); return o && (n = o[0], t = o[1]), r.domain(Xu(i, t > 1 ? { floor: function(t) { for (; e(t = n.floor(t));) t = ua(t - 1); return t }, ceil: function(t) { for (; e(t = n.ceil(t));) t = ua(+t + 1); return t } } : n)) }, r.ticks = function(n, t) { var e = Yu(r.domain()), 1666 i = null == n ? u(e, 10) : "number" == typeof n ? u(e, n) : !n.range && [{ range: n }, t]; return i && (n = i[0], t = i[1]), n.range(e[0], ua(+e[1] + 1), 1 > t ? 1 : t) }, r.tickFormat = function() { return e }, r.copy = function() { return ra(n.copy(), t, e) }, Ju(r, n) } 1667 1668 function ua(n) { return new Date(n) } 1669 1670 function ia(n) { return JSON.parse(n.responseText) } 1671 1672 function aa(n) { var t = sa.createRange(); return t.selectNode(sa.body), t.createContextualFragment(n.responseText) } 1673 var oa = { version: "3.5.16" }, 1674 la = [].slice, 1675 ca = function(n) { return la.call(n) }, 1676 sa = this.document; 1677 if (sa) try { ca(sa.documentElement.childNodes)[0].nodeType } catch (fa) { ca = function(n) { for (var t = n.length, e = new Array(t); t--;) e[t] = n[t]; return e } } 1678 if (Date.now || (Date.now = function() { return +new Date }), sa) try { sa.createElement("DIV").style.setProperty("opacity", 0, "") } catch (ha) { var ga = this.Element.prototype, 1679 pa = ga.setAttribute, 1680 va = ga.setAttributeNS, 1681 da = this.CSSStyleDeclaration.prototype, 1682 ma = da.setProperty; 1683 ga.setAttribute = function(n, t) { pa.call(this, n, t + "") }, ga.setAttributeNS = function(n, t, e) { va.call(this, n, t, e + "") }, da.setProperty = function(n, t, e) { ma.call(this, n, t + "", e) } } 1684 oa.ascending = e, oa.descending = function(n, t) { return n > t ? -1 : t > n ? 1 : t >= n ? 0 : NaN }, oa.min = function(n, t) { var e, r, u = -1, 1685 i = n.length; if (1 === arguments.length) { for (; ++u < i;) 1686 if (null != (r = n[u]) && r >= r) { e = r; break } 1687 for (; ++u < i;) null != (r = n[u]) && e > r && (e = r) } else { for (; ++u < i;) 1688 if (null != (r = t.call(n, n[u], u)) && r >= r) { e = r; break } 1689 for (; ++u < i;) null != (r = t.call(n, n[u], u)) && e > r && (e = r) } return e }, oa.max = function(n, t) { var e, r, u = -1, 1690 i = n.length; if (1 === arguments.length) { for (; ++u < i;) 1691 if (null != (r = n[u]) && r >= r) { e = r; break } 1692 for (; ++u < i;) null != (r = n[u]) && r > e && (e = r) } else { for (; ++u < i;) 1693 if (null != (r = t.call(n, n[u], u)) && r >= r) { e = r; break } 1694 for (; ++u < i;) null != (r = t.call(n, n[u], u)) && r > e && (e = r) } return e }, oa.extent = function(n, t) { var e, r, u, i = -1, 1695 a = n.length; if (1 === arguments.length) { for (; ++i < a;) 1696 if (null != (r = n[i]) && r >= r) { e = u = r; break } 1697 for (; ++i < a;) null != (r = n[i]) && (e > r && (e = r), r > u && (u = r)) } else { for (; ++i < a;) 1698 if (null != (r = t.call(n, n[i], i)) && r >= r) { e = u = r; break } 1699 for (; ++i < a;) null != (r = t.call(n, n[i], i)) && (e > r && (e = r), r > u && (u = r)) } return [e, u] }, oa.sum = function(n, t) { var e, r = 0, 1700 i = n.length, 1701 a = -1; if (1 === arguments.length) 1702 for (; ++a < i;) u(e = +n[a]) && (r += e); 1703 else 1704 for (; ++a < i;) u(e = +t.call(n, n[a], a)) && (r += e); return r }, oa.mean = function(n, t) { var e, i = 0, 1705 a = n.length, 1706 o = -1, 1707 l = a; if (1 === arguments.length) 1708 for (; ++o < a;) u(e = r(n[o])) ? i += e : --l; 1709 else 1710 for (; ++o < a;) u(e = r(t.call(n, n[o], o))) ? i += e : --l; return l ? i / l : void 0 }, oa.quantile = function(n, t) { var e = (n.length - 1) * t + 1, 1711 r = Math.floor(e), 1712 u = +n[r - 1], 1713 i = e - r; return i ? u + i * (n[r] - u) : u }, oa.median = function(n, t) { var i, a = [], 1714 o = n.length, 1715 l = -1; if (1 === arguments.length) 1716 for (; ++l < o;) u(i = r(n[l])) && a.push(i); 1717 else 1718 for (; ++l < o;) u(i = r(t.call(n, n[l], l))) && a.push(i); return a.length ? oa.quantile(a.sort(e), .5) : void 0 }, oa.variance = function(n, t) { var e, i, a = n.length, 1719 o = 0, 1720 l = 0, 1721 c = -1, 1722 s = 0; if (1 === arguments.length) 1723 for (; ++c < a;) u(e = r(n[c])) && (i = e - o, o += i / ++s, l += i * (e - o)); 1724 else 1725 for (; ++c < a;) u(e = r(t.call(n, n[c], c))) && (i = e - o, o += i / ++s, l += i * (e - o)); return s > 1 ? l / (s - 1) : void 0 }, oa.deviation = function() { var n = oa.variance.apply(this, arguments); return n ? Math.sqrt(n) : n }; 1726 var ya = i(e); 1727 oa.bisectLeft = ya.left, oa.bisect = oa.bisectRight = ya.right, oa.bisector = function(n) { return i(1 === n.length ? function(t, r) { return e(n(t), r) } : n) }, oa.shuffle = function(n, t, e) { 1728 (i = arguments.length) < 3 && (e = n.length, 2 > i && (t = 0)); for (var r, u, i = e - t; i;) u = Math.random() * i-- | 0, r = n[i + t], n[i + t] = n[u + t], n[u + t] = r; return n }, oa.permute = function(n, t) { for (var e = t.length, r = new Array(e); e--;) r[e] = n[t[e]]; return r }, oa.pairs = function(n) { for (var t, e = 0, r = n.length - 1, u = n[0], i = new Array(0 > r ? 0 : r); r > e;) i[e] = [t = u, u = n[++e]]; return i }, oa.transpose = function(n) { if (!(u = n.length)) return []; for (var t = -1, e = oa.min(n, a), r = new Array(e); ++t < e;) 1729 for (var u, i = -1, o = r[t] = new Array(u); ++i < u;) o[i] = n[i][t]; return r }, oa.zip = function() { return oa.transpose(arguments) }, oa.keys = function(n) { var t = []; for (var e in n) t.push(e); return t }, oa.values = function(n) { var t = []; for (var e in n) t.push(n[e]); return t }, oa.entries = function(n) { var t = []; for (var e in n) t.push({ key: e, value: n[e] }); return t }, oa.merge = function(n) { for (var t, e, r, u = n.length, i = -1, a = 0; ++i < u;) a += n[i].length; for (e = new Array(a); --u >= 0;) 1730 for (r = n[u], t = r.length; --t >= 0;) e[--a] = r[t]; return e }; 1731 var Ma = Math.abs; 1732 oa.range = function(n, t, e) { if (arguments.length < 3 && (e = 1, arguments.length < 2 && (t = n, n = 0)), (t - n) / e === 1 / 0) throw new Error("infinite range"); var r, u = [], 1733 i = o(Ma(e)), 1734 a = -1; if (n *= i, t *= i, e *= i, 0 > e) 1735 for (; 1736 (r = n + e * ++a) > t;) u.push(r / i); 1737 else 1738 for (; 1739 (r = n + e * ++a) < t;) u.push(r / i); return u }, oa.map = function(n, t) { var e = new c; if (n instanceof c) n.forEach(function(n, t) { e.set(n, t) }); 1740 else if (Array.isArray(n)) { var r, u = -1, 1741 i = n.length; if (1 === arguments.length) 1742 for (; ++u < i;) e.set(u, n[u]); 1743 else 1744 for (; ++u < i;) e.set(t.call(n, r = n[u], u), r) } else 1745 for (var a in n) e.set(a, n[a]); return e }; 1746 var xa = "__proto__", 1747 ba = "\x00"; 1748 l(c, { has: h, get: function(n) { return this._[s(n)] }, set: function(n, t) { return this._[s(n)] = t }, remove: g, keys: p, values: function() { var n = []; for (var t in this._) n.push(this._[t]); return n }, entries: function() { var n = []; for (var t in this._) n.push({ key: f(t), value: this._[t] }); return n }, size: v, empty: d, forEach: function(n) { for (var t in this._) n.call(this, f(t), this._[t]) } }), oa.nest = function() { 1749 function n(t, a, o) { if (o >= i.length) return r ? r.call(u, a) : e ? a.sort(e) : a; for (var l, s, f, h, g = -1, p = a.length, v = i[o++], d = new c; ++g < p;)(h = d.get(l = v(s = a[g]))) ? h.push(s) : d.set(l, [s]); return t ? (s = t(), f = function(e, r) { s.set(e, n(t, r, o)) }) : (s = {}, f = function(e, r) { s[e] = n(t, r, o) }), d.forEach(f), s } 1750 1751 function t(n, e) { if (e >= i.length) return n; var r = [], 1752 u = a[e++]; return n.forEach(function(n, u) { r.push({ key: n, values: t(u, e) }) }), u ? r.sort(function(n, t) { return u(n.key, t.key) }) : r } var e, r, u = {}, 1753 i = [], 1754 a = []; return u.map = function(t, e) { return n(e, t, 0) }, u.entries = function(e) { return t(n(oa.map, e, 0), 0) }, u.key = function(n) { return i.push(n), u }, u.sortKeys = function(n) { return a[i.length - 1] = n, u }, u.sortValues = function(n) { return e = n, u }, u.rollup = function(n) { return r = n, u }, u }, oa.set = function(n) { var t = new m; if (n) 1755 for (var e = 0, r = n.length; r > e; ++e) t.add(n[e]); return t }, l(m, { has: h, add: function(n) { return this._[s(n += "")] = !0, n }, remove: g, values: p, size: v, empty: d, forEach: function(n) { for (var t in this._) n.call(this, f(t)) } }), oa.behavior = {}, oa.rebind = function(n, t) { for (var e, r = 1, u = arguments.length; ++r < u;) n[e = arguments[r]] = M(n, t, t[e]); return n }; 1756 var _a = ["webkit", "ms", "moz", "Moz", "o", "O"]; 1757 oa.dispatch = function() { for (var n = new _, t = -1, e = arguments.length; ++t < e;) n[arguments[t]] = w(n); return n }, _.prototype.on = function(n, t) { var e = n.indexOf("."), 1758 r = ""; if (e >= 0 && (r = n.slice(e + 1), n = n.slice(0, e)), n) return arguments.length < 2 ? this[n].on(r) : this[n].on(r, t); if (2 === arguments.length) { if (null == t) 1759 for (n in this) this.hasOwnProperty(n) && this[n].on(r, null); return this } }, oa.event = null, oa.requote = function(n) { return n.replace(wa, "\\$&") }; 1760 var wa = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g, 1761 Sa = {}.__proto__ ? function(n, t) { n.__proto__ = t } : function(n, t) { for (var e in t) n[e] = t[e] }, 1762 ka = function(n, t) { return t.querySelector(n) }, 1763 Na = function(n, t) { return t.querySelectorAll(n) }, 1764 Ea = function(n, t) { var e = n.matches || n[x(n, "matchesSelector")]; return (Ea = function(n, t) { return e.call(n, t) })(n, t) }; 1765 "function" == typeof Sizzle && (ka = function(n, t) { return Sizzle(n, t)[0] || null }, Na = Sizzle, Ea = Sizzle.matchesSelector), oa.selection = function() { return oa.select(sa.documentElement) }; 1766 var Aa = oa.selection.prototype = []; 1767 Aa.select = function(n) { var t, e, r, u, i = []; 1768 n = A(n); for (var a = -1, o = this.length; ++a < o;) { i.push(t = []), t.parentNode = (r = this[a]).parentNode; for (var l = -1, c = r.length; ++l < c;)(u = r[l]) ? (t.push(e = n.call(u, u.__data__, l, a)), e && "__data__" in u && (e.__data__ = u.__data__)) : t.push(null) } return E(i) }, Aa.selectAll = function(n) { var t, e, r = []; 1769 n = C(n); for (var u = -1, i = this.length; ++u < i;) 1770 for (var a = this[u], o = -1, l = a.length; ++o < l;)(e = a[o]) && (r.push(t = ca(n.call(e, e.__data__, o, u))), t.parentNode = e); return E(r) }; 1771 var Ca = "http://www.w3.org/1999/xhtml", 1772 za = { svg: "http://www.w3.org/2000/svg", xhtml: Ca, xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/" }; 1773 oa.ns = { prefix: za, qualify: function(n) { var t = n.indexOf(":"), 1774 e = n; return t >= 0 && "xmlns" !== (e = n.slice(0, t)) && (n = n.slice(t + 1)), za.hasOwnProperty(e) ? { space: za[e], local: n } : n } }, Aa.attr = function(n, t) { if (arguments.length < 2) { if ("string" == typeof n) { var e = this.node(); return n = oa.ns.qualify(n), n.local ? e.getAttributeNS(n.space, n.local) : e.getAttribute(n) } for (t in n) this.each(z(t, n[t])); return this } return this.each(z(n, t)) }, Aa.classed = function(n, t) { if (arguments.length < 2) { if ("string" == typeof n) { var e = this.node(), 1775 r = (n = T(n)).length, 1776 u = -1; if (t = e.classList) { for (; ++u < r;) 1777 if (!t.contains(n[u])) return !1 } else 1778 for (t = e.getAttribute("class"); ++u < r;) 1779 if (!q(n[u]).test(t)) return !1; return !0 } for (t in n) this.each(R(t, n[t])); return this } return this.each(R(n, t)) }, Aa.style = function(n, e, r) { var u = arguments.length; if (3 > u) { if ("string" != typeof n) { 2 > u && (e = ""); for (r in n) this.each(P(r, n[r], e)); return this } if (2 > u) { var i = this.node(); return t(i).getComputedStyle(i, null).getPropertyValue(n) } 1780 r = "" } return this.each(P(n, e, r)) }, Aa.property = function(n, t) { if (arguments.length < 2) { if ("string" == typeof n) return this.node()[n]; for (t in n) this.each(U(t, n[t])); return this } return this.each(U(n, t)) }, Aa.text = function(n) { return arguments.length ? this.each("function" == typeof n ? function() { var t = n.apply(this, arguments); 1781 this.textContent = null == t ? "" : t } : null == n ? function() { this.textContent = "" } : function() { this.textContent = n }) : this.node().textContent }, Aa.html = function(n) { return arguments.length ? this.each("function" == typeof n ? function() { var t = n.apply(this, arguments); 1782 this.innerHTML = null == t ? "" : t } : null == n ? function() { this.innerHTML = "" } : function() { this.innerHTML = n }) : this.node().innerHTML }, Aa.append = function(n) { return n = j(n), this.select(function() { return this.appendChild(n.apply(this, arguments)) }) }, Aa.insert = function(n, t) { return n = j(n), t = A(t), this.select(function() { return this.insertBefore(n.apply(this, arguments), t.apply(this, arguments) || null) }) }, Aa.remove = function() { return this.each(F) }, Aa.data = function(n, t) { 1783 function e(n, e) { var r, u, i, a = n.length, 1784 f = e.length, 1785 h = Math.min(a, f), 1786 g = new Array(f), 1787 p = new Array(f), 1788 v = new Array(a); if (t) { var d, m = new c, 1789 y = new Array(a); for (r = -1; ++r < a;)(u = n[r]) && (m.has(d = t.call(u, u.__data__, r)) ? v[r] = u : m.set(d, u), y[r] = d); for (r = -1; ++r < f;)(u = m.get(d = t.call(e, i = e[r], r))) ? u !== !0 && (g[r] = u, u.__data__ = i) : p[r] = H(i), m.set(d, !0); for (r = -1; ++r < a;) r in y && m.get(y[r]) !== !0 && (v[r] = n[r]) } else { for (r = -1; ++r < h;) u = n[r], i = e[r], u ? (u.__data__ = i, g[r] = u) : p[r] = H(i); for (; f > r; ++r) p[r] = H(e[r]); for (; a > r; ++r) v[r] = n[r] } 1790 p.update = g, p.parentNode = g.parentNode = v.parentNode = n.parentNode, o.push(p), l.push(g), s.push(v) } var r, u, i = -1, 1791 a = this.length; if (!arguments.length) { for (n = new Array(a = (r = this[0]).length); ++i < a;)(u = r[i]) && (n[i] = u.__data__); return n } var o = Z([]), 1792 l = E([]), 1793 s = E([]); if ("function" == typeof n) 1794 for (; ++i < a;) e(r = this[i], n.call(r, r.parentNode.__data__, i)); 1795 else 1796 for (; ++i < a;) e(r = this[i], n); return l.enter = function() { return o }, l.exit = function() { return s }, l }, Aa.datum = function(n) { return arguments.length ? this.property("__data__", n) : this.property("__data__") }, Aa.filter = function(n) { var t, e, r, u = []; "function" != typeof n && (n = O(n)); for (var i = 0, a = this.length; a > i; i++) { u.push(t = []), t.parentNode = (e = this[i]).parentNode; for (var o = 0, l = e.length; l > o; o++)(r = e[o]) && n.call(r, r.__data__, o, i) && t.push(r) } return E(u) }, Aa.order = function() { for (var n = -1, t = this.length; ++n < t;) 1797 for (var e, r = this[n], u = r.length - 1, i = r[u]; --u >= 0;)(e = r[u]) && (i && i !== e.nextSibling && i.parentNode.insertBefore(e, i), i = e); return this }, Aa.sort = function(n) { n = I.apply(this, arguments); for (var t = -1, e = this.length; ++t < e;) this[t].sort(n); return this.order() }, Aa.each = function(n) { return Y(this, function(t, e, r) { n.call(t, t.__data__, e, r) }) }, Aa.call = function(n) { var t = ca(arguments); return n.apply(t[0] = this, t), this }, Aa.empty = function() { return !this.node() }, Aa.node = function() { for (var n = 0, t = this.length; t > n; n++) 1798 for (var e = this[n], r = 0, u = e.length; u > r; r++) { var i = e[r]; if (i) return i } 1799 return null }, Aa.size = function() { var n = 0; return Y(this, function() {++n }), n }; 1800 var La = []; 1801 oa.selection.enter = Z, oa.selection.enter.prototype = La, La.append = Aa.append, La.empty = Aa.empty, La.node = Aa.node, La.call = Aa.call, La.size = Aa.size, La.select = function(n) { for (var t, e, r, u, i, a = [], o = -1, l = this.length; ++o < l;) { r = (u = this[o]).update, a.push(t = []), t.parentNode = u.parentNode; for (var c = -1, s = u.length; ++c < s;)(i = u[c]) ? (t.push(r[c] = e = n.call(u.parentNode, i.__data__, c, o)), e.__data__ = i.__data__) : t.push(null) } return E(a) }, La.insert = function(n, t) { return arguments.length < 2 && (t = V(this)), Aa.insert.call(this, n, t) }, oa.select = function(t) { var e; return "string" == typeof t ? (e = [ka(t, sa)], e.parentNode = sa.documentElement) : (e = [t], e.parentNode = n(t)), E([e]) }, oa.selectAll = function(n) { var t; return "string" == typeof n ? (t = ca(Na(n, sa)), t.parentNode = sa.documentElement) : (t = ca(n), t.parentNode = null), E([t]) }, Aa.on = function(n, t, e) { var r = arguments.length; if (3 > r) { if ("string" != typeof n) { 2 > r && (t = !1); for (e in n) this.each(X(e, n[e], t)); return this } if (2 > r) return (r = this.node()["__on" + n]) && r._; 1802 e = !1 } return this.each(X(n, t, e)) }; 1803 var qa = oa.map({ mouseenter: "mouseover", mouseleave: "mouseout" }); 1804 sa && qa.forEach(function(n) { "on" + n in sa && qa.remove(n) }); 1805 var Ta, Ra = 0; 1806 oa.mouse = function(n) { return J(n, k()) }; 1807 var Da = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0; 1808 oa.touch = function(n, t, e) { if (arguments.length < 3 && (e = t, t = k().changedTouches), t) 1809 for (var r, u = 0, i = t.length; i > u; ++u) 1810 if ((r = t[u]).identifier === e) return J(n, r) }, oa.behavior.drag = function() { 1811 function n() { this.on("mousedown.drag", i).on("touchstart.drag", a) } 1812 1813 function e(n, t, e, i, a) { return function() { 1814 function o() { var n, e, r = t(h, v); 1815 r && (n = r[0] - M[0], e = r[1] - M[1], p |= n | e, M = r, g({ type: "drag", x: r[0] + c[0], y: r[1] + c[1], dx: n, dy: e })) } 1816 1817 function l() { t(h, v) && (m.on(i + d, null).on(a + d, null), y(p), g({ type: "dragend" })) } var c, s = this, 1818 f = oa.event.target.correspondingElement || oa.event.target, 1819 h = s.parentNode, 1820 g = r.of(s, arguments), 1821 p = 0, 1822 v = n(), 1823 d = ".drag" + (null == v ? "" : "-" + v), 1824 m = oa.select(e(f)).on(i + d, o).on(a + d, l), 1825 y = W(f), 1826 M = t(h, v); 1827 u ? (c = u.apply(s, arguments), c = [c.x - M[0], c.y - M[1]]) : c = [0, 0], g({ type: "dragstart" }) } } var r = N(n, "drag", "dragstart", "dragend"), 1828 u = null, 1829 i = e(b, oa.mouse, t, "mousemove", "mouseup"), 1830 a = e(G, oa.touch, y, "touchmove", "touchend"); return n.origin = function(t) { return arguments.length ? (u = t, n) : u }, oa.rebind(n, r, "on") }, oa.touches = function(n, t) { return arguments.length < 2 && (t = k().touches), t ? ca(t).map(function(t) { var e = J(n, t); return e.identifier = t.identifier, e }) : [] }; 1831 var Pa = 1e-6, 1832 Ua = Pa * Pa, 1833 ja = Math.PI, 1834 Fa = 2 * ja, 1835 Ha = Fa - Pa, 1836 Oa = ja / 2, 1837 Ia = ja / 180, 1838 Ya = 180 / ja, 1839 Za = Math.SQRT2, 1840 Va = 2, 1841 Xa = 4; 1842 oa.interpolateZoom = function(n, t) { var e, r, u = n[0], 1843 i = n[1], 1844 a = n[2], 1845 o = t[0], 1846 l = t[1], 1847 c = t[2], 1848 s = o - u, 1849 f = l - i, 1850 h = s * s + f * f; if (Ua > h) r = Math.log(c / a) / Za, e = function(n) { return [u + n * s, i + n * f, a * Math.exp(Za * n * r)] }; 1851 else { var g = Math.sqrt(h), 1852 p = (c * c - a * a + Xa * h) / (2 * a * Va * g), 1853 v = (c * c - a * a - Xa * h) / (2 * c * Va * g), 1854 d = Math.log(Math.sqrt(p * p + 1) - p), 1855 m = Math.log(Math.sqrt(v * v + 1) - v); 1856 r = (m - d) / Za, e = function(n) { var t = n * r, 1857 e = rn(d), 1858 o = a / (Va * g) * (e * un(Za * t + d) - en(d)); return [u + o * s, i + o * f, a * e / rn(Za * t + d)] } } return e.duration = 1e3 * r, e }, oa.behavior.zoom = function() { 1859 function n(n) { n.on(L, f).on(Ba + ".zoom", g).on("dblclick.zoom", p).on(R, h) } 1860 1861 function e(n) { return [(n[0] - k.x) / k.k, (n[1] - k.y) / k.k] } 1862 1863 function r(n) { return [n[0] * k.k + k.x, n[1] * k.k + k.y] } 1864 1865 function u(n) { k.k = Math.max(A[0], Math.min(A[1], n)) } 1866 1867 function i(n, t) { t = r(t), k.x += n[0] - t[0], k.y += n[1] - t[1] } 1868 1869 function a(t, e, r, a) { t.__chart__ = { x: k.x, y: k.y, k: k.k }, u(Math.pow(2, a)), i(d = e, r), t = oa.select(t), C > 0 && (t = t.transition().duration(C)), t.call(n.event) } 1870 1871 function o() { b && b.domain(x.range().map(function(n) { return (n - k.x) / k.k }).map(x.invert)), w && w.domain(_.range().map(function(n) { return (n - k.y) / k.k }).map(_.invert)) } 1872 1873 function l(n) { z++ || n({ type: "zoomstart" }) } 1874 1875 function c(n) { o(), n({ type: "zoom", scale: k.k, translate: [k.x, k.y] }) } 1876 1877 function s(n) {--z || (n({ type: "zoomend" }), d = null) } 1878 1879 function f() { 1880 function n() { o = 1, i(oa.mouse(u), h), c(a) } 1881 1882 function r() { f.on(q, null).on(T, null), g(o), s(a) } var u = this, 1883 a = D.of(u, arguments), 1884 o = 0, 1885 f = oa.select(t(u)).on(q, n).on(T, r), 1886 h = e(oa.mouse(u)), 1887 g = W(u); 1888 Il.call(u), l(a) } 1889 1890 function h() { 1891 function n() { var n = oa.touches(p); return g = k.k, n.forEach(function(n) { n.identifier in d && (d[n.identifier] = e(n)) }), n } 1892 1893 function t() { var t = oa.event.target; 1894 oa.select(t).on(x, r).on(b, o), _.push(t); for (var e = oa.event.changedTouches, u = 0, i = e.length; i > u; ++u) d[e[u].identifier] = null; var l = n(), 1895 c = Date.now(); if (1 === l.length) { if (500 > c - M) { var s = l[0]; 1896 a(p, s, d[s.identifier], Math.floor(Math.log(k.k) / Math.LN2) + 1), S() } 1897 M = c } else if (l.length > 1) { var s = l[0], 1898 f = l[1], 1899 h = s[0] - f[0], 1900 g = s[1] - f[1]; 1901 m = h * h + g * g } } 1902 1903 function r() { var n, t, e, r, a = oa.touches(p); 1904 Il.call(p); for (var o = 0, l = a.length; l > o; ++o, r = null) 1905 if (e = a[o], r = d[e.identifier]) { if (t) break; 1906 n = e, t = r } 1907 if (r) { var s = (s = e[0] - n[0]) * s + (s = e[1] - n[1]) * s, 1908 f = m && Math.sqrt(s / m); 1909 n = [(n[0] + e[0]) / 2, (n[1] + e[1]) / 2], t = [(t[0] + r[0]) / 2, (t[1] + r[1]) / 2], u(f * g) } 1910 M = null, i(n, t), c(v) } 1911 1912 function o() { if (oa.event.touches.length) { for (var t = oa.event.changedTouches, e = 0, r = t.length; r > e; ++e) delete d[t[e].identifier]; for (var u in d) return void n() } 1913 oa.selectAll(_).on(y, null), w.on(L, f).on(R, h), N(), s(v) } var g, p = this, 1914 v = D.of(p, arguments), 1915 d = {}, 1916 m = 0, 1917 y = ".zoom-" + oa.event.changedTouches[0].identifier, 1918 x = "touchmove" + y, 1919 b = "touchend" + y, 1920 _ = [], 1921 w = oa.select(p), 1922 N = W(p); 1923 t(), l(v), w.on(L, null).on(R, t) } 1924 1925 function g() { var n = D.of(this, arguments); 1926 y ? clearTimeout(y) : (Il.call(this), v = e(d = m || oa.mouse(this)), l(n)), y = setTimeout(function() { y = null, s(n) }, 50), S(), u(Math.pow(2, .002 * $a()) * k.k), i(d, v), c(n) } 1927 1928 function p() { var n = oa.mouse(this), 1929 t = Math.log(k.k) / Math.LN2; 1930 a(this, n, e(n), oa.event.shiftKey ? Math.ceil(t) - 1 : Math.floor(t) + 1) } var v, d, m, y, M, x, b, _, w, k = { x: 0, y: 0, k: 1 }, 1931 E = [960, 500], 1932 A = Wa, 1933 C = 250, 1934 z = 0, 1935 L = "mousedown.zoom", 1936 q = "mousemove.zoom", 1937 T = "mouseup.zoom", 1938 R = "touchstart.zoom", 1939 D = N(n, "zoomstart", "zoom", "zoomend"); return Ba || (Ba = "onwheel" in sa ? ($a = function() { return -oa.event.deltaY * (oa.event.deltaMode ? 120 : 1) }, "wheel") : "onmousewheel" in sa ? ($a = function() { return oa.event.wheelDelta }, "mousewheel") : ($a = function() { return -oa.event.detail }, "MozMousePixelScroll")), n.event = function(n) { n.each(function() { var n = D.of(this, arguments), 1940 t = k; 1941 Hl ? oa.select(this).transition().each("start.zoom", function() { k = this.__chart__ || { x: 0, y: 0, k: 1 }, l(n) }).tween("zoom:zoom", function() { var e = E[0], 1942 r = E[1], 1943 u = d ? d[0] : e / 2, 1944 i = d ? d[1] : r / 2, 1945 a = oa.interpolateZoom([(u - k.x) / k.k, (i - k.y) / k.k, e / k.k], [(u - t.x) / t.k, (i - t.y) / t.k, e / t.k]); return function(t) { var r = a(t), 1946 o = e / r[2]; 1947 this.__chart__ = k = { x: u - r[0] * o, y: i - r[1] * o, k: o }, c(n) } }).each("interrupt.zoom", function() { s(n) }).each("end.zoom", function() { s(n) }) : (this.__chart__ = k, l(n), c(n), s(n)) }) }, n.translate = function(t) { return arguments.length ? (k = { x: +t[0], y: +t[1], k: k.k }, o(), n) : [k.x, k.y] }, n.scale = function(t) { return arguments.length ? (k = { x: k.x, y: k.y, k: null }, u(+t), o(), n) : k.k }, n.scaleExtent = function(t) { return arguments.length ? (A = null == t ? Wa : [+t[0], +t[1]], n) : A }, n.center = function(t) { return arguments.length ? (m = t && [+t[0], +t[1]], n) : m }, n.size = function(t) { return arguments.length ? (E = t && [+t[0], +t[1]], n) : E }, n.duration = function(t) { return arguments.length ? (C = +t, n) : C }, n.x = function(t) { return arguments.length ? (b = t, x = t.copy(), k = { x: 0, y: 0, k: 1 }, n) : b }, n.y = function(t) { return arguments.length ? (w = t, _ = t.copy(), k = { x: 0, y: 0, k: 1 }, n) : w }, oa.rebind(n, D, "on") }; 1948 var $a, Ba, Wa = [0, 1 / 0]; 1949 oa.color = on, on.prototype.toString = function() { return this.rgb() + "" }, oa.hsl = ln; 1950 var Ja = ln.prototype = new on; 1951 Ja.brighter = function(n) { return n = Math.pow(.7, arguments.length ? n : 1), new ln(this.h, this.s, this.l / n) }, Ja.darker = function(n) { return n = Math.pow(.7, arguments.length ? n : 1), new ln(this.h, this.s, n * this.l) }, Ja.rgb = function() { return cn(this.h, this.s, this.l) }, oa.hcl = sn; 1952 var Ga = sn.prototype = new on; 1953 Ga.brighter = function(n) { return new sn(this.h, this.c, Math.min(100, this.l + Ka * (arguments.length ? n : 1))) }, Ga.darker = function(n) { return new sn(this.h, this.c, Math.max(0, this.l - Ka * (arguments.length ? n : 1))) }, Ga.rgb = function() { return fn(this.h, this.c, this.l).rgb() }, oa.lab = hn; 1954 var Ka = 18, 1955 Qa = .95047, 1956 no = 1, 1957 to = 1.08883, 1958 eo = hn.prototype = new on; 1959 eo.brighter = function(n) { return new hn(Math.min(100, this.l + Ka * (arguments.length ? n : 1)), this.a, this.b) }, eo.darker = function(n) { return new hn(Math.max(0, this.l - Ka * (arguments.length ? n : 1)), this.a, this.b) }, eo.rgb = function() { return gn(this.l, this.a, this.b) }, oa.rgb = yn; 1960 var ro = yn.prototype = new on; 1961 ro.brighter = function(n) { n = Math.pow(.7, arguments.length ? n : 1); var t = this.r, 1962 e = this.g, 1963 r = this.b, 1964 u = 30; return t || e || r ? (t && u > t && (t = u), e && u > e && (e = u), r && u > r && (r = u), new yn(Math.min(255, t / n), Math.min(255, e / n), Math.min(255, r / n))) : new yn(u, u, u) }, ro.darker = function(n) { return n = Math.pow(.7, arguments.length ? n : 1), new yn(n * this.r, n * this.g, n * this.b) }, ro.hsl = function() { return wn(this.r, this.g, this.b) }, ro.toString = function() { return "#" + bn(this.r) + bn(this.g) + bn(this.b) }; 1965 var uo = oa.map({ 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 }); 1966 uo.forEach(function(n, t) { uo.set(n, Mn(t)) }), oa.functor = En, oa.xhr = An(y), oa.dsv = function(n, t) { 1967 function e(n, e, i) { arguments.length < 3 && (i = e, e = null); var a = Cn(n, t, null == e ? r : u(e), i); return a.row = function(n) { return arguments.length ? a.response(null == (e = n) ? r : u(n)) : e }, a } 1968 1969 function r(n) { return e.parse(n.responseText) } 1970 1971 function u(n) { return function(t) { return e.parse(t.responseText, n) } } 1972 1973 function i(t) { return t.map(a).join(n) } 1974 1975 function a(n) { return o.test(n) ? '"' + n.replace(/\"/g, '""') + '"' : n } var o = new RegExp('["' + n + "\n]"), 1976 l = n.charCodeAt(0); return e.parse = function(n, t) { var r; return e.parseRows(n, function(n, e) { if (r) return r(n, e - 1); var u = new Function("d", "return {" + n.map(function(n, t) { return JSON.stringify(n) + ": d[" + t + "]" }).join(",") + "}"); 1977 r = t ? function(n, e) { return t(u(n), e) } : u }) }, e.parseRows = function(n, t) { 1978 function e() { if (s >= c) return a; if (u) return u = !1, i; var t = s; if (34 === n.charCodeAt(t)) { for (var e = t; e++ < c;) 1979 if (34 === n.charCodeAt(e)) { if (34 !== n.charCodeAt(e + 1)) break;++e } 1980 s = e + 2; var r = n.charCodeAt(e + 1); return 13 === r ? (u = !0, 10 === n.charCodeAt(e + 2) && ++s) : 10 === r && (u = !0), n.slice(t + 1, e).replace(/""/g, '"') } for (; c > s;) { var r = n.charCodeAt(s++), 1981 o = 1; if (10 === r) u = !0; 1982 else if (13 === r) u = !0, 10 === n.charCodeAt(s) && (++s, ++o); 1983 else if (r !== l) continue; return n.slice(t, s - o) } return n.slice(t) } for (var r, u, i = {}, a = {}, o = [], c = n.length, s = 0, f = 0; 1984 (r = e()) !== a;) { for (var h = []; r !== i && r !== a;) h.push(r), r = e(); 1985 t && null == (h = t(h, f++)) || o.push(h) } return o }, e.format = function(t) { if (Array.isArray(t[0])) return e.formatRows(t); var r = new m, 1986 u = []; return t.forEach(function(n) { for (var t in n) r.has(t) || u.push(r.add(t)) }), [u.map(a).join(n)].concat(t.map(function(t) { return u.map(function(n) { return a(t[n]) }).join(n) })).join("\n") }, e.formatRows = function(n) { return n.map(i).join("\n") }, e }, oa.csv = oa.dsv(",", "text/csv"), oa.tsv = oa.dsv(" ", "text/tab-separated-values"); 1987 var io, ao, oo, lo, co = this[x(this, "requestAnimationFrame")] || function(n) { setTimeout(n, 17) }; 1988 oa.timer = function() { qn.apply(this, arguments) }, oa.timer.flush = function() { Rn(), Dn() }, oa.round = function(n, t) { return t ? Math.round(n * (t = Math.pow(10, t))) / t : Math.round(n) }; 1989 var so = ["y", "z", "a", "f", "p", "n", "\xb5", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"].map(Un); 1990 oa.formatPrefix = function(n, t) { var e = 0; return (n = +n) && (0 > n && (n *= -1), t && (n = oa.round(n, Pn(n, t))), e = 1 + Math.floor(1e-12 + Math.log(n) / Math.LN10), e = Math.max(-24, Math.min(24, 3 * Math.floor((e - 1) / 3)))), so[8 + e / 3] }; 1991 var fo = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i, 1992 ho = oa.map({ b: function(n) { return n.toString(2) }, c: function(n) { return String.fromCharCode(n) }, o: function(n) { return n.toString(8) }, x: function(n) { return n.toString(16) }, X: function(n) { return n.toString(16).toUpperCase() }, g: function(n, t) { return n.toPrecision(t) }, e: function(n, t) { return n.toExponential(t) }, f: function(n, t) { return n.toFixed(t) }, r: function(n, t) { return (n = oa.round(n, Pn(n, t))).toFixed(Math.max(0, Math.min(20, Pn(n * (1 + 1e-15), t)))) } }), 1993 go = oa.time = {}, 1994 po = Date; 1995 Hn.prototype = { getDate: function() { return this._.getUTCDate() }, getDay: function() { return this._.getUTCDay() }, getFullYear: function() { return this._.getUTCFullYear() }, getHours: function() { return this._.getUTCHours() }, getMilliseconds: function() { return this._.getUTCMilliseconds() }, getMinutes: function() { return this._.getUTCMinutes() }, getMonth: function() { return this._.getUTCMonth() }, getSeconds: function() { return this._.getUTCSeconds() }, getTime: function() { return this._.getTime() }, getTimezoneOffset: function() { return 0 }, valueOf: function() { return this._.valueOf() }, setDate: function() { vo.setUTCDate.apply(this._, arguments) }, setDay: function() { vo.setUTCDay.apply(this._, arguments) }, setFullYear: function() { vo.setUTCFullYear.apply(this._, arguments) }, setHours: function() { vo.setUTCHours.apply(this._, arguments) }, setMilliseconds: function() { vo.setUTCMilliseconds.apply(this._, arguments) }, setMinutes: function() { vo.setUTCMinutes.apply(this._, arguments) }, setMonth: function() { vo.setUTCMonth.apply(this._, arguments) }, setSeconds: function() { vo.setUTCSeconds.apply(this._, arguments) }, setTime: function() { vo.setTime.apply(this._, arguments) } }; 1996 var vo = Date.prototype; 1997 go.year = On(function(n) { return n = go.day(n), n.setMonth(0, 1), n }, function(n, t) { n.setFullYear(n.getFullYear() + t) }, function(n) { return n.getFullYear() }), go.years = go.year.range, go.years.utc = go.year.utc.range, go.day = On(function(n) { var t = new po(2e3, 0); return t.setFullYear(n.getFullYear(), n.getMonth(), n.getDate()), t }, function(n, t) { n.setDate(n.getDate() + t) }, function(n) { return n.getDate() - 1 }), go.days = go.day.range, go.days.utc = go.day.utc.range, go.dayOfYear = function(n) { var t = go.year(n); return Math.floor((n - t - 6e4 * (n.getTimezoneOffset() - t.getTimezoneOffset())) / 864e5) }, ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"].forEach(function(n, t) { t = 7 - t; var e = go[n] = On(function(n) { return (n = go.day(n)).setDate(n.getDate() - (n.getDay() + t) % 7), n }, function(n, t) { n.setDate(n.getDate() + 7 * Math.floor(t)) }, function(n) { var e = go.year(n).getDay(); return Math.floor((go.dayOfYear(n) + (e + t) % 7) / 7) - (e !== t) }); 1998 go[n + "s"] = e.range, go[n + "s"].utc = e.utc.range, go[n + "OfYear"] = function(n) { var e = go.year(n).getDay(); return Math.floor((go.dayOfYear(n) + (e + t) % 7) / 7) } }), go.week = go.sunday, go.weeks = go.sunday.range, go.weeks.utc = go.sunday.utc.range, go.weekOfYear = go.sundayOfYear; 1999 var mo = { "-": "", _: " ", 0: "0" }, 2000 yo = /^\s*\d+/, 2001 Mo = /^%/; 2002 oa.locale = function(n) { return { numberFormat: jn(n), timeFormat: Yn(n) } }; 2003 var xo = oa.locale({ 2004 decimal: ".", 2005 thousands: ",", 2006 grouping: [3], 2007 currency: ["$", ""], 2008 dateTime: "%a %b %e %X %Y", 2009 date: "%m/%d/%Y", 2010 time: "%H:%M:%S", 2011 periods: ["AM", "PM"], 2012 days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], 2013 shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 2014 months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], 2015 shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] 2016 }); 2017 oa.format = xo.numberFormat, oa.geo = {}, st.prototype = { s: 0, t: 0, add: function(n) { ft(n, this.t, bo), ft(bo.s, this.s, this), this.s ? this.t += bo.t : this.s = bo.t }, reset: function() { this.s = this.t = 0 }, valueOf: function() { return this.s } }; 2018 var bo = new st; 2019 oa.geo.stream = function(n, t) { n && _o.hasOwnProperty(n.type) ? _o[n.type](n, t) : ht(n, t) }; 2020 var _o = { Feature: function(n, t) { ht(n.geometry, t) }, FeatureCollection: function(n, t) { for (var e = n.features, r = -1, u = e.length; ++r < u;) ht(e[r].geometry, t) } }, 2021 wo = { Sphere: function(n, t) { t.sphere() }, Point: function(n, t) { n = n.coordinates, t.point(n[0], n[1], n[2]) }, MultiPoint: function(n, t) { for (var e = n.coordinates, r = -1, u = e.length; ++r < u;) n = e[r], t.point(n[0], n[1], n[2]) }, LineString: function(n, t) { gt(n.coordinates, t, 0) }, MultiLineString: function(n, t) { for (var e = n.coordinates, r = -1, u = e.length; ++r < u;) gt(e[r], t, 0) }, Polygon: function(n, t) { pt(n.coordinates, t) }, MultiPolygon: function(n, t) { for (var e = n.coordinates, r = -1, u = e.length; ++r < u;) pt(e[r], t) }, GeometryCollection: function(n, t) { for (var e = n.geometries, r = -1, u = e.length; ++r < u;) ht(e[r], t) } }; 2022 oa.geo.area = function(n) { return So = 0, oa.geo.stream(n, No), So }; 2023 var So, ko = new st, 2024 No = { sphere: function() { So += 4 * ja }, point: b, lineStart: b, lineEnd: b, polygonStart: function() { ko.reset(), No.lineStart = vt }, polygonEnd: function() { var n = 2 * ko; 2025 So += 0 > n ? 4 * ja + n : n, No.lineStart = No.lineEnd = No.point = b } }; 2026 oa.geo.bounds = function() { 2027 function n(n, t) { M.push(x = [s = n, h = n]), f > t && (f = t), t > g && (g = t) } 2028 2029 function t(t, e) { var r = dt([t * Ia, e * Ia]); if (m) { var u = yt(m, r), 2030 i = [u[1], -u[0], 0], 2031 a = yt(i, u); 2032 bt(a), a = _t(a); var l = t - p, 2033 c = l > 0 ? 1 : -1, 2034 v = a[0] * Ya * c, 2035 d = Ma(l) > 180; if (d ^ (v > c * p && c * t > v)) { var y = a[1] * Ya; 2036 y > g && (g = y) } else if (v = (v + 360) % 360 - 180, d ^ (v > c * p && c * t > v)) { var y = -a[1] * Ya; 2037 f > y && (f = y) } else f > e && (f = e), e > g && (g = e); 2038 d ? p > t ? o(s, t) > o(s, h) && (h = t) : o(t, h) > o(s, h) && (s = t) : h >= s ? (s > t && (s = t), t > h && (h = t)) : t > p ? o(s, t) > o(s, h) && (h = t) : o(t, h) > o(s, h) && (s = t) } else n(t, e); 2039 m = r, p = t } 2040 2041 function e() { b.point = t } 2042 2043 function r() { x[0] = s, x[1] = h, b.point = n, m = null } 2044 2045 function u(n, e) { if (m) { var r = n - p; 2046 y += Ma(r) > 180 ? r + (r > 0 ? 360 : -360) : r } else v = n, d = e; 2047 No.point(n, e), t(n, e) } 2048 2049 function i() { No.lineStart() } 2050 2051 function a() { u(v, d), No.lineEnd(), Ma(y) > Pa && (s = -(h = 180)), x[0] = s, x[1] = h, m = null } 2052 2053 function o(n, t) { return (t -= n) < 0 ? t + 360 : t } 2054 2055 function l(n, t) { return n[0] - t[0] } 2056 2057 function c(n, t) { return t[0] <= t[1] ? t[0] <= n && n <= t[1] : n < t[0] || t[1] < n } var s, f, h, g, p, v, d, m, y, M, x, b = { point: n, lineStart: e, lineEnd: r, polygonStart: function() { b.point = u, b.lineStart = i, b.lineEnd = a, y = 0, No.polygonStart() }, polygonEnd: function() { No.polygonEnd(), b.point = n, b.lineStart = e, b.lineEnd = r, 0 > ko ? (s = -(h = 180), f = -(g = 90)) : y > Pa ? g = 90 : -Pa > y && (f = -90), x[0] = s, x[1] = h } }; return function(n) { g = h = -(s = f = 1 / 0), M = [], oa.geo.stream(n, b); var t = M.length; if (t) { M.sort(l); for (var e, r = 1, u = M[0], i = [u]; t > r; ++r) e = M[r], c(e[0], u) || c(e[1], u) ? (o(u[0], e[1]) > o(u[0], u[1]) && (u[1] = e[1]), o(e[0], u[1]) > o(u[0], u[1]) && (u[0] = e[0])) : i.push(u = e); for (var a, e, p = -(1 / 0), t = i.length - 1, r = 0, u = i[t]; t >= r; u = e, ++r) e = i[r], (a = o(u[1], e[0])) > p && (p = a, s = e[0], h = u[1]) } return M = x = null, s === 1 / 0 || f === 1 / 0 ? [ 2058 [NaN, NaN], 2059 [NaN, NaN] 2060 ] : [ 2061 [s, f], 2062 [h, g] 2063 ] } }(), oa.geo.centroid = function(n) { Eo = Ao = Co = zo = Lo = qo = To = Ro = Do = Po = Uo = 0, oa.geo.stream(n, jo); var t = Do, 2064 e = Po, 2065 r = Uo, 2066 u = t * t + e * e + r * r; return Ua > u && (t = qo, e = To, r = Ro, Pa > Ao && (t = Co, e = zo, r = Lo), u = t * t + e * e + r * r, Ua > u) ? [NaN, NaN] : [Math.atan2(e, t) * Ya, tn(r / Math.sqrt(u)) * Ya] }; 2067 var Eo, Ao, Co, zo, Lo, qo, To, Ro, Do, Po, Uo, jo = { sphere: b, point: St, lineStart: Nt, lineEnd: Et, polygonStart: function() { jo.lineStart = At }, polygonEnd: function() { jo.lineStart = Nt } }, 2068 Fo = Rt(zt, jt, Ht, [-ja, -ja / 2]), 2069 Ho = 1e9; 2070 oa.geo.clipExtent = function() { var n, t, e, r, u, i, a = { stream: function(n) { return u && (u.valid = !1), u = i(n), u.valid = !0, u }, extent: function(o) { return arguments.length ? (i = Zt(n = +o[0][0], t = +o[0][1], e = +o[1][0], r = +o[1][1]), u && (u.valid = !1, u = null), a) : [ 2071 [n, t], 2072 [e, r] 2073 ] } }; return a.extent([ 2074 [0, 0], 2075 [960, 500] 2076 ]) }, (oa.geo.conicEqualArea = function() { return Vt(Xt) }).raw = Xt, oa.geo.albers = function() { return oa.geo.conicEqualArea().rotate([96, 0]).center([-.6, 38.7]).parallels([29.5, 45.5]).scale(1070) }, oa.geo.albersUsa = function() { 2077 function n(n) { var i = n[0], 2078 a = n[1]; return t = null, e(i, a), t || (r(i, a), t) || u(i, a), t } var t, e, r, u, i = oa.geo.albers(), 2079 a = oa.geo.conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), 2080 o = oa.geo.conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), 2081 l = { point: function(n, e) { t = [n, e] } }; return n.invert = function(n) { var t = i.scale(), 2082 e = i.translate(), 2083 r = (n[0] - e[0]) / t, 2084 u = (n[1] - e[1]) / t; return (u >= .12 && .234 > u && r >= -.425 && -.214 > r ? a : u >= .166 && .234 > u && r >= -.214 && -.115 > r ? o : i).invert(n) }, n.stream = function(n) { var t = i.stream(n), 2085 e = a.stream(n), 2086 r = o.stream(n); return { point: function(n, u) { t.point(n, u), e.point(n, u), r.point(n, u) }, sphere: function() { t.sphere(), e.sphere(), r.sphere() }, lineStart: function() { t.lineStart(), e.lineStart(), r.lineStart() }, lineEnd: function() { t.lineEnd(), e.lineEnd(), r.lineEnd() }, polygonStart: function() { t.polygonStart(), e.polygonStart(), r.polygonStart() }, polygonEnd: function() { t.polygonEnd(), e.polygonEnd(), r.polygonEnd() } } }, n.precision = function(t) { return arguments.length ? (i.precision(t), a.precision(t), o.precision(t), n) : i.precision() }, n.scale = function(t) { return arguments.length ? (i.scale(t), a.scale(.35 * t), o.scale(t), n.translate(i.translate())) : i.scale() }, n.translate = function(t) { if (!arguments.length) return i.translate(); var c = i.scale(), 2087 s = +t[0], 2088 f = +t[1]; return e = i.translate(t).clipExtent([ 2089 [s - .455 * c, f - .238 * c], 2090 [s + .455 * c, f + .238 * c] 2091 ]).stream(l).point, r = a.translate([s - .307 * c, f + .201 * c]).clipExtent([ 2092 [s - .425 * c + Pa, f + .12 * c + Pa], 2093 [s - .214 * c - Pa, f + .234 * c - Pa] 2094 ]).stream(l).point, u = o.translate([s - .205 * c, f + .212 * c]).clipExtent([ 2095 [s - .214 * c + Pa, f + .166 * c + Pa], 2096 [s - .115 * c - Pa, f + .234 * c - Pa] 2097 ]).stream(l).point, n }, n.scale(1070) }; 2098 var Oo, Io, Yo, Zo, Vo, Xo, $o = { point: b, lineStart: b, lineEnd: b, polygonStart: function() { Io = 0, $o.lineStart = $t }, polygonEnd: function() { $o.lineStart = $o.lineEnd = $o.point = b, Oo += Ma(Io / 2) } }, 2099 Bo = { point: Bt, lineStart: b, lineEnd: b, polygonStart: b, polygonEnd: b }, 2100 Wo = { point: Gt, lineStart: Kt, lineEnd: Qt, polygonStart: function() { Wo.lineStart = ne }, polygonEnd: function() { Wo.point = Gt, Wo.lineStart = Kt, Wo.lineEnd = Qt } }; 2101 oa.geo.path = function() { 2102 function n(n) { return n && ("function" == typeof o && i.pointRadius(+o.apply(this, arguments)), a && a.valid || (a = u(i)), oa.geo.stream(n, a)), i.result() } 2103 2104 function t() { return a = null, n } var e, r, u, i, a, o = 4.5; return n.area = function(n) { return Oo = 0, oa.geo.stream(n, u($o)), Oo }, n.centroid = function(n) { return Co = zo = Lo = qo = To = Ro = Do = Po = Uo = 0, oa.geo.stream(n, u(Wo)), Uo ? [Do / Uo, Po / Uo] : Ro ? [qo / Ro, To / Ro] : Lo ? [Co / Lo, zo / Lo] : [NaN, NaN] }, n.bounds = function(n) { return Vo = Xo = -(Yo = Zo = 1 / 0), oa.geo.stream(n, u(Bo)), [ 2105 [Yo, Zo], 2106 [Vo, Xo] 2107 ] }, n.projection = function(n) { return arguments.length ? (u = (e = n) ? n.stream || re(n) : y, t()) : e }, n.context = function(n) { return arguments.length ? (i = null == (r = n) ? new Wt : new te(n), "function" != typeof o && i.pointRadius(o), t()) : r }, n.pointRadius = function(t) { return arguments.length ? (o = "function" == typeof t ? t : (i.pointRadius(+t), +t), n) : o }, n.projection(oa.geo.albersUsa()).context(null) }, oa.geo.transform = function(n) { return { stream: function(t) { var e = new ue(t); for (var r in n) e[r] = n[r]; return e } } }, ue.prototype = { point: function(n, t) { this.stream.point(n, t) }, 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() } }, oa.geo.projection = ae, oa.geo.projectionMutator = oe, (oa.geo.equirectangular = function() { return ae(ce) }).raw = ce.invert = ce, oa.geo.rotation = function(n) { 2108 function t(t) { return t = n(t[0] * Ia, t[1] * Ia), t[0] *= Ya, t[1] *= Ya, t } return n = fe(n[0] % 360 * Ia, n[1] * Ia, n.length > 2 ? n[2] * Ia : 0), t.invert = function(t) { return t = n.invert(t[0] * Ia, t[1] * Ia), t[0] *= Ya, t[1] *= Ya, t }, t }, se.invert = ce, oa.geo.circle = function() { 2109 function n() { var n = "function" == typeof r ? r.apply(this, arguments) : r, 2110 t = fe(-n[0] * Ia, -n[1] * Ia, 0).invert, 2111 u = []; return e(null, null, 1, { point: function(n, e) { u.push(n = t(n, e)), n[0] *= Ya, n[1] *= Ya } }), { type: "Polygon", coordinates: [u] } } var t, e, r = [0, 0], 2112 u = 6; return n.origin = function(t) { return arguments.length ? (r = t, n) : r }, n.angle = function(r) { return arguments.length ? (e = ve((t = +r) * Ia, u * Ia), n) : t }, n.precision = function(r) { return arguments.length ? (e = ve(t * Ia, (u = +r) * Ia), n) : u }, n.angle(90) }, oa.geo.distance = function(n, t) { var e, r = (t[0] - n[0]) * Ia, 2113 u = n[1] * Ia, 2114 i = t[1] * Ia, 2115 a = Math.sin(r), 2116 o = Math.cos(r), 2117 l = Math.sin(u), 2118 c = Math.cos(u), 2119 s = Math.sin(i), 2120 f = Math.cos(i); return Math.atan2(Math.sqrt((e = f * a) * e + (e = c * s - l * f * o) * e), l * s + c * f * o) }, oa.geo.graticule = function() { 2121 function n() { return { type: "MultiLineString", coordinates: t() } } 2122 2123 function t() { return oa.range(Math.ceil(i / d) * d, u, d).map(h).concat(oa.range(Math.ceil(c / m) * m, l, m).map(g)).concat(oa.range(Math.ceil(r / p) * p, e, p).filter(function(n) { return Ma(n % d) > Pa }).map(s)).concat(oa.range(Math.ceil(o / v) * v, a, v).filter(function(n) { return Ma(n % m) > Pa }).map(f)) } var e, r, u, i, a, o, l, c, s, f, h, g, p = 10, 2124 v = p, 2125 d = 90, 2126 m = 360, 2127 y = 2.5; return n.lines = function() { return t().map(function(n) { return { type: "LineString", coordinates: n } }) }, n.outline = function() { return { type: "Polygon", coordinates: [h(i).concat(g(l).slice(1), h(u).reverse().slice(1), g(c).reverse().slice(1))] } }, n.extent = function(t) { return arguments.length ? n.majorExtent(t).minorExtent(t) : n.minorExtent() }, n.majorExtent = function(t) { return arguments.length ? (i = +t[0][0], u = +t[1][0], c = +t[0][1], l = +t[1][1], i > u && (t = i, i = u, u = t), c > l && (t = c, c = l, l = t), n.precision(y)) : [ 2128 [i, c], 2129 [u, l] 2130 ] }, n.minorExtent = function(t) { return arguments.length ? (r = +t[0][0], e = +t[1][0], o = +t[0][1], a = +t[1][1], r > e && (t = r, r = e, e = t), o > a && (t = o, o = a, a = t), n.precision(y)) : [ 2131 [r, o], 2132 [e, a] 2133 ] }, n.step = function(t) { return arguments.length ? n.majorStep(t).minorStep(t) : n.minorStep() }, n.majorStep = function(t) { return arguments.length ? (d = +t[0], m = +t[1], n) : [d, m] }, n.minorStep = function(t) { return arguments.length ? (p = +t[0], v = +t[1], n) : [p, v] }, n.precision = function(t) { return arguments.length ? (y = +t, s = me(o, a, 90), f = ye(r, e, y), h = me(c, l, 90), g = ye(i, u, y), n) : y }, n.majorExtent([ 2134 [-180, -90 + Pa], 2135 [180, 90 - Pa] 2136 ]).minorExtent([ 2137 [-180, -80 - Pa], 2138 [180, 80 + Pa] 2139 ]) }, oa.geo.greatArc = function() { 2140 function n() { return { type: "LineString", coordinates: [t || r.apply(this, arguments), e || u.apply(this, arguments)] } } var t, e, r = Me, 2141 u = xe; return n.distance = function() { return oa.geo.distance(t || r.apply(this, arguments), e || u.apply(this, arguments)) }, n.source = function(e) { return arguments.length ? (r = e, t = "function" == typeof e ? null : e, n) : r }, n.target = function(t) { return arguments.length ? (u = t, e = "function" == typeof t ? null : t, n) : u }, n.precision = function() { return arguments.length ? n : 0 }, n }, oa.geo.interpolate = function(n, t) { return be(n[0] * Ia, n[1] * Ia, t[0] * Ia, t[1] * Ia) }, oa.geo.length = function(n) { return Jo = 0, oa.geo.stream(n, Go), Jo }; 2142 var Jo, Go = { sphere: b, point: b, lineStart: _e, lineEnd: b, polygonStart: b, polygonEnd: b }, 2143 Ko = we(function(n) { return Math.sqrt(2 / (1 + n)) }, function(n) { return 2 * Math.asin(n / 2) }); 2144 (oa.geo.azimuthalEqualArea = function() { return ae(Ko) }).raw = Ko; 2145 var Qo = we(function(n) { var t = Math.acos(n); return t && t / Math.sin(t) }, y); 2146 (oa.geo.azimuthalEquidistant = function() { return ae(Qo) }).raw = Qo, (oa.geo.conicConformal = function() { return Vt(Se) }).raw = Se, (oa.geo.conicEquidistant = function() { return Vt(ke) }).raw = ke; 2147 var nl = we(function(n) { return 1 / n }, Math.atan); 2148 (oa.geo.gnomonic = function() { return ae(nl) }).raw = nl, Ne.invert = function(n, t) { return [n, 2 * Math.atan(Math.exp(t)) - Oa] }, (oa.geo.mercator = function() { return Ee(Ne) }).raw = Ne; 2149 var tl = we(function() { return 1 }, Math.asin); 2150 (oa.geo.orthographic = function() { return ae(tl) }).raw = tl; 2151 var el = we(function(n) { return 1 / (1 + n) }, function(n) { return 2 * Math.atan(n) }); 2152 (oa.geo.stereographic = function() { return ae(el) }).raw = el, Ae.invert = function(n, t) { return [-t, 2 * Math.atan(Math.exp(n)) - Oa] }, (oa.geo.transverseMercator = function() { var n = Ee(Ae), 2153 t = n.center, 2154 e = n.rotate; return n.center = function(n) { return n ? t([-n[1], n[0]]) : (n = t(), [n[1], -n[0]]) }, n.rotate = function(n) { return n ? e([n[0], n[1], n.length > 2 ? n[2] + 90 : 90]) : (n = e(), [n[0], n[1], n[2] - 90]) }, e([0, 0, 90]) }).raw = Ae, oa.geom = {}, oa.geom.hull = function(n) { 2155 function t(n) { if (n.length < 3) return []; var t, u = En(e), 2156 i = En(r), 2157 a = n.length, 2158 o = [], 2159 l = []; for (t = 0; a > t; t++) o.push([+u.call(this, n[t], t), +i.call(this, n[t], t), t]); for (o.sort(qe), t = 0; a > t; t++) l.push([o[t][0], -o[t][1]]); var c = Le(o), 2160 s = Le(l), 2161 f = s[0] === c[0], 2162 h = s[s.length - 1] === c[c.length - 1], 2163 g = []; for (t = c.length - 1; t >= 0; --t) g.push(n[o[c[t]][2]]); for (t = +f; t < s.length - h; ++t) g.push(n[o[s[t]][2]]); return g } var e = Ce, 2164 r = ze; return arguments.length ? t(n) : (t.x = function(n) { return arguments.length ? (e = n, t) : e }, t.y = function(n) { return arguments.length ? (r = n, t) : r }, t) }, oa.geom.polygon = function(n) { return Sa(n, rl), n }; 2165 var rl = oa.geom.polygon.prototype = []; 2166 rl.area = function() { for (var n, t = -1, e = this.length, r = this[e - 1], u = 0; ++t < e;) n = r, r = this[t], u += n[1] * r[0] - n[0] * r[1]; return .5 * u }, rl.centroid = function(n) { var t, e, r = -1, 2167 u = this.length, 2168 i = 0, 2169 a = 0, 2170 o = this[u - 1]; for (arguments.length || (n = -1 / (6 * this.area())); ++r < u;) t = o, o = this[r], e = t[0] * o[1] - o[0] * t[1], i += (t[0] + o[0]) * e, a += (t[1] + o[1]) * e; return [i * n, a * n] }, rl.clip = function(n) { for (var t, e, r, u, i, a, o = De(n), l = -1, c = this.length - De(this), s = this[c - 1]; ++l < c;) { for (t = n.slice(), n.length = 0, u = this[l], i = t[(r = t.length - o) - 1], e = -1; ++e < r;) a = t[e], Te(a, s, u) ? (Te(i, s, u) || n.push(Re(i, a, s, u)), n.push(a)) : Te(i, s, u) && n.push(Re(i, a, s, u)), i = a; 2171 o && n.push(n[0]), s = u } return n }; 2172 var ul, il, al, ol, ll, cl = [], 2173 sl = []; 2174 Ye.prototype.prepare = function() { for (var n, t = this.edges, e = t.length; e--;) n = t[e].edge, n.b && n.a || t.splice(e, 1); return t.sort(Ve), t.length }, tr.prototype = { start: function() { return this.edge.l === this.site ? this.edge.a : this.edge.b }, end: function() { return this.edge.l === this.site ? this.edge.b : this.edge.a } }, er.prototype = { insert: function(n, t) { var e, r, u; if (n) { if (t.P = n, t.N = n.N, n.N && (n.N.P = t), n.N = t, n.R) { for (n = n.R; n.L;) n = n.L; 2175 n.L = t } else n.R = t; 2176 e = n } else this._ ? (n = ar(this._), t.P = null, t.N = n, n.P = n.L = t, e = n) : (t.P = t.N = null, this._ = t, e = null); for (t.L = t.R = null, t.U = e, t.C = !0, n = t; e && e.C;) r = e.U, e === r.L ? (u = r.R, u && u.C ? (e.C = u.C = !1, r.C = !0, n = r) : (n === e.R && (ur(this, e), n = e, e = n.U), e.C = !1, r.C = !0, ir(this, r))) : (u = r.L, u && u.C ? (e.C = u.C = !1, r.C = !0, n = r) : (n === e.L && (ir(this, e), n = e, e = n.U), e.C = !1, r.C = !0, ur(this, r))), e = n.U; 2177 this._.C = !1 }, remove: function(n) { n.N && (n.N.P = n.P), n.P && (n.P.N = n.N), n.N = n.P = null; var t, e, r, u = n.U, 2178 i = n.L, 2179 a = n.R; if (e = i ? a ? ar(a) : i : a, u ? u.L === n ? u.L = e : u.R = e : this._ = e, i && a ? (r = e.C, e.C = n.C, e.L = i, i.U = e, e !== a ? (u = e.U, e.U = n.U, n = e.R, u.L = n, e.R = a, a.U = e) : (e.U = u, u = e, n = e.R)) : (r = n.C, n = e), n && (n.U = u), !r) { if (n && n.C) return void(n.C = !1); 2180 do { if (n === this._) break; if (n === u.L) { if (t = u.R, t.C && (t.C = !1, u.C = !0, ur(this, u), t = u.R), t.L && t.L.C || t.R && t.R.C) { t.R && t.R.C || (t.L.C = !1, t.C = !0, ir(this, t), t = u.R), t.C = u.C, u.C = t.R.C = !1, ur(this, u), n = this._; break } } else if (t = u.L, t.C && (t.C = !1, u.C = !0, ir(this, u), t = u.L), t.L && t.L.C || t.R && t.R.C) { t.L && t.L.C || (t.R.C = !1, t.C = !0, ur(this, t), t = u.L), t.C = u.C, u.C = t.L.C = !1, ir(this, u), n = this._; break } 2181 t.C = !0, n = u, u = u.U } while (!n.C); 2182 n && (n.C = !1) } } }, oa.geom.voronoi = function(n) { 2183 function t(n) { var t = new Array(n.length), 2184 r = o[0][0], 2185 u = o[0][1], 2186 i = o[1][0], 2187 a = o[1][1]; return or(e(n), o).cells.forEach(function(e, o) { var l = e.edges, 2188 c = e.site, 2189 s = t[o] = l.length ? l.map(function(n) { var t = n.start(); return [t.x, t.y] }) : c.x >= r && c.x <= i && c.y >= u && c.y <= a ? [ 2190 [r, a], 2191 [i, a], 2192 [i, u], 2193 [r, u] 2194 ] : []; 2195 s.point = n[o] }), t } 2196 2197 function e(n) { return n.map(function(n, t) { return { x: Math.round(i(n, t) / Pa) * Pa, y: Math.round(a(n, t) / Pa) * Pa, i: t } }) } var r = Ce, 2198 u = ze, 2199 i = r, 2200 a = u, 2201 o = fl; return n ? t(n) : (t.links = function(n) { return or(e(n)).edges.filter(function(n) { return n.l && n.r }).map(function(t) { return { source: n[t.l.i], target: n[t.r.i] } }) }, t.triangles = function(n) { var t = []; return or(e(n)).cells.forEach(function(e, r) { for (var u, i, a = e.site, o = e.edges.sort(Ve), l = -1, c = o.length, s = o[c - 1].edge, f = s.l === a ? s.r : s.l; ++l < c;) u = s, i = f, s = o[l].edge, f = s.l === a ? s.r : s.l, r < i.i && r < f.i && cr(a, i, f) < 0 && t.push([n[r], n[i.i], n[f.i]]) }), t }, t.x = function(n) { return arguments.length ? (i = En(r = n), t) : r }, t.y = function(n) { return arguments.length ? (a = En(u = n), t) : u }, t.clipExtent = function(n) { return arguments.length ? (o = null == n ? fl : n, t) : o === fl ? null : o }, t.size = function(n) { return arguments.length ? t.clipExtent(n && [ 2202 [0, 0], n 2203 ]) : o === fl ? null : o && o[1] }, t) }; 2204 var fl = [ 2205 [-1e6, -1e6], 2206 [1e6, 1e6] 2207 ]; 2208 oa.geom.delaunay = function(n) { return oa.geom.voronoi().triangles(n) }, oa.geom.quadtree = function(n, t, e, r, u) { 2209 function i(n) { 2210 function i(n, t, e, r, u, i, a, o) { if (!isNaN(e) && !isNaN(r)) 2211 if (n.leaf) { var l = n.x, 2212 s = n.y; if (null != l) 2213 if (Ma(l - e) + Ma(s - r) < .01) c(n, t, e, r, u, i, a, o); 2214 else { var f = n.point; 2215 n.x = n.y = n.point = null, c(n, f, l, s, u, i, a, o), c(n, t, e, r, u, i, a, o) } 2216 else n.x = e, n.y = r, n.point = t } else c(n, t, e, r, u, i, a, o) } 2217 2218 function c(n, t, e, r, u, a, o, l) { var c = .5 * (u + o), 2219 s = .5 * (a + l), 2220 f = e >= c, 2221 h = r >= s, 2222 g = h << 1 | f; 2223 n.leaf = !1, n = n.nodes[g] || (n.nodes[g] = hr()), f ? u = c : o = c, h ? a = s : l = s, i(n, t, e, r, u, a, o, l) } var s, f, h, g, p, v, d, m, y, M = En(o), 2224 x = En(l); if (null != t) v = t, d = e, m = r, y = u; 2225 else if (m = y = -(v = d = 1 / 0), f = [], h = [], p = n.length, a) 2226 for (g = 0; p > g; ++g) s = n[g], s.x < v && (v = s.x), s.y < d && (d = s.y), s.x > m && (m = s.x), s.y > y && (y = s.y), f.push(s.x), h.push(s.y); 2227 else 2228 for (g = 0; p > g; ++g) { var b = +M(s = n[g], g), 2229 _ = +x(s, g); 2230 v > b && (v = b), d > _ && (d = _), b > m && (m = b), _ > y && (y = _), f.push(b), h.push(_) } 2231 var w = m - v, 2232 S = y - d; 2233 w > S ? y = d + w : m = v + S; var k = hr(); if (k.add = function(n) { i(k, n, +M(n, ++g), +x(n, g), v, d, m, y) }, k.visit = function(n) { gr(n, k, v, d, m, y) }, k.find = function(n) { return pr(k, n[0], n[1], v, d, m, y) }, g = -1, null == t) { for (; ++g < p;) i(k, n[g], f[g], h[g], v, d, m, y);--g } else n.forEach(k.add); return f = h = n = s = null, k } var a, o = Ce, 2234 l = ze; return (a = arguments.length) ? (o = sr, l = fr, 3 === a && (u = e, r = t, e = t = 0), i(n)) : (i.x = function(n) { return arguments.length ? (o = n, i) : o }, i.y = function(n) { return arguments.length ? (l = n, i) : l }, i.extent = function(n) { return arguments.length ? (null == n ? t = e = r = u = null : (t = +n[0][0], e = +n[0][1], r = +n[1][0], u = +n[1][1]), i) : null == t ? null : [ 2235 [t, e], 2236 [r, u] 2237 ] }, i.size = function(n) { return arguments.length ? (null == n ? t = e = r = u = null : (t = e = 0, r = +n[0], u = +n[1]), i) : null == t ? null : [r - t, u - e] }, i) }, oa.interpolateRgb = vr, oa.interpolateObject = dr, oa.interpolateNumber = mr, oa.interpolateString = yr; 2238 var hl = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, 2239 gl = new RegExp(hl.source, "g"); 2240 oa.interpolate = Mr, oa.interpolators = [function(n, t) { var e = typeof t; return ("string" === e ? uo.has(t.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(t) ? vr : yr : t instanceof on ? vr : Array.isArray(t) ? xr : "object" === e && isNaN(t) ? dr : mr)(n, t) }], oa.interpolateArray = xr; 2241 var pl = function() { return y }, 2242 vl = oa.map({ linear: pl, poly: Er, quad: function() { return Sr }, cubic: function() { return kr }, sin: function() { return Ar }, exp: function() { return Cr }, circle: function() { return zr }, elastic: Lr, back: qr, bounce: function() { return Tr } }), 2243 dl = oa.map({ "in": y, out: _r, "in-out": wr, "out-in": function(n) { return wr(_r(n)) } }); 2244 oa.ease = function(n) { var t = n.indexOf("-"), 2245 e = t >= 0 ? n.slice(0, t) : n, 2246 r = t >= 0 ? n.slice(t + 1) : "in"; return e = vl.get(e) || pl, r = dl.get(r) || y, br(r(e.apply(null, la.call(arguments, 1)))) }, oa.interpolateHcl = Rr, oa.interpolateHsl = Dr, oa.interpolateLab = Pr, oa.interpolateRound = Ur, oa.transform = function(n) { var t = sa.createElementNS(oa.ns.prefix.svg, "g"); return (oa.transform = function(n) { if (null != n) { t.setAttribute("transform", n); var e = t.transform.baseVal.consolidate() } return new jr(e ? e.matrix : ml) })(n) }, jr.prototype.toString = function() { return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")" }; 2247 var ml = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }; 2248 oa.interpolateTransform = $r, oa.layout = {}, oa.layout.bundle = function() { return function(n) { for (var t = [], e = -1, r = n.length; ++e < r;) t.push(Jr(n[e])); return t } }, oa.layout.chord = function() { 2249 function n() { var n, c, f, h, g, p = {}, 2250 v = [], 2251 d = oa.range(i), 2252 m = []; for (e = [], r = [], n = 0, h = -1; ++h < i;) { for (c = 0, g = -1; ++g < i;) c += u[h][g]; 2253 v.push(c), m.push(oa.range(i)), n += c } for (a && d.sort(function(n, t) { return a(v[n], v[t]) }), o && m.forEach(function(n, t) { n.sort(function(n, e) { return o(u[t][n], u[t][e]) }) }), n = (Fa - s * i) / n, c = 0, h = -1; ++h < i;) { for (f = c, g = -1; ++g < i;) { var y = d[h], 2254 M = m[y][g], 2255 x = u[y][M], 2256 b = c, 2257 _ = c += x * n; 2258 p[y + "-" + M] = { index: y, subindex: M, startAngle: b, endAngle: _, value: x } } 2259 r[y] = { index: y, startAngle: f, endAngle: c, value: v[y] }, c += s } for (h = -1; ++h < i;) 2260 for (g = h - 1; ++g < i;) { var w = p[h + "-" + g], 2261 S = p[g + "-" + h]; 2262 (w.value || S.value) && e.push(w.value < S.value ? { source: S, target: w } : { source: w, target: S }) } 2263 l && t() } 2264 2265 function t() { e.sort(function(n, t) { return l((n.source.value + n.target.value) / 2, (t.source.value + t.target.value) / 2) }) } var e, r, u, i, a, o, l, c = {}, 2266 s = 0; return c.matrix = function(n) { return arguments.length ? (i = (u = n) && u.length, e = r = null, c) : u }, c.padding = function(n) { return arguments.length ? (s = n, e = r = null, c) : s }, c.sortGroups = function(n) { return arguments.length ? (a = n, e = r = null, c) : a }, c.sortSubgroups = function(n) { return arguments.length ? (o = n, e = null, c) : o }, c.sortChords = function(n) { return arguments.length ? (l = n, e && t(), c) : l }, c.chords = function() { return e || n(), e }, c.groups = function() { return r || n(), r }, c }, oa.layout.force = function() { 2267 function n(n) { return function(t, e, r, u) { if (t.point !== n) { var i = t.cx - n.x, 2268 a = t.cy - n.y, 2269 o = u - e, 2270 l = i * i + a * a; if (l > o * o / m) { if (v > l) { var c = t.charge / l; 2271 n.px -= i * c, n.py -= a * c } return !0 } if (t.point && l && v > l) { var c = t.pointCharge / l; 2272 n.px -= i * c, n.py -= a * c } } return !t.charge } } 2273 2274 function t(n) { n.px = oa.event.x, n.py = oa.event.y, l.resume() } var e, r, u, i, a, o, l = {}, 2275 c = oa.dispatch("start", "tick", "end"), 2276 s = [1, 1], 2277 f = .9, 2278 h = yl, 2279 g = Ml, 2280 p = -30, 2281 v = xl, 2282 d = .1, 2283 m = .64, 2284 M = [], 2285 x = []; return l.tick = function() { if ((u *= .99) < .005) return e = null, c.end({ type: "end", alpha: u = 0 }), !0; var t, r, l, h, g, v, m, y, b, _ = M.length, 2286 w = x.length; for (r = 0; w > r; ++r) l = x[r], h = l.source, g = l.target, y = g.x - h.x, b = g.y - h.y, (v = y * y + b * b) && (v = u * a[r] * ((v = Math.sqrt(v)) - i[r]) / v, y *= v, b *= v, g.x -= y * (m = h.weight + g.weight ? h.weight / (h.weight + g.weight) : .5), g.y -= b * m, h.x += y * (m = 1 - m), h.y += b * m); if ((m = u * d) && (y = s[0] / 2, b = s[1] / 2, r = -1, m)) 2287 for (; ++r < _;) l = M[r], l.x += (y - l.x) * m, l.y += (b - l.y) * m; if (p) 2288 for (ru(t = oa.geom.quadtree(M), u, o), r = -1; ++r < _;)(l = M[r]).fixed || t.visit(n(l)); for (r = -1; ++r < _;) l = M[r], l.fixed ? (l.x = l.px, l.y = l.py) : (l.x -= (l.px - (l.px = l.x)) * f, l.y -= (l.py - (l.py = l.y)) * f); 2289 c.tick({ type: "tick", alpha: u }) }, l.nodes = function(n) { return arguments.length ? (M = n, l) : M }, l.links = function(n) { return arguments.length ? (x = n, l) : x }, l.size = function(n) { return arguments.length ? (s = n, l) : s }, l.linkDistance = function(n) { return arguments.length ? (h = "function" == typeof n ? n : +n, l) : h }, l.distance = l.linkDistance, l.linkStrength = function(n) { return arguments.length ? (g = "function" == typeof n ? n : +n, l) : g }, l.friction = function(n) { return arguments.length ? (f = +n, l) : f }, l.charge = function(n) { return arguments.length ? (p = "function" == typeof n ? n : +n, l) : p }, l.chargeDistance = function(n) { return arguments.length ? (v = n * n, l) : Math.sqrt(v) }, l.gravity = function(n) { return arguments.length ? (d = +n, l) : d }, l.theta = function(n) { return arguments.length ? (m = n * n, l) : Math.sqrt(m) }, l.alpha = function(n) { return arguments.length ? (n = +n, u ? n > 0 ? u = n : (e.c = null, e.t = NaN, e = null, c.end({ type: "end", alpha: u = 0 })) : n > 0 && (c.start({ type: "start", alpha: u = n }), e = qn(l.tick)), l) : u }, l.start = function() { 2290 function n(n, r) { if (!e) { for (e = new Array(u), l = 0; u > l; ++l) e[l] = []; for (l = 0; c > l; ++l) { var i = x[l]; 2291 e[i.source.index].push(i.target), e[i.target.index].push(i.source) } } for (var a, o = e[t], l = -1, s = o.length; ++l < s;) 2292 if (!isNaN(a = o[l][n])) return a; 2293 return Math.random() * r } var t, e, r, u = M.length, 2294 c = x.length, 2295 f = s[0], 2296 v = s[1]; for (t = 0; u > t; ++t)(r = M[t]).index = t, r.weight = 0; for (t = 0; c > t; ++t) r = x[t], "number" == typeof r.source && (r.source = M[r.source]), "number" == typeof r.target && (r.target = M[r.target]), ++r.source.weight, ++r.target.weight; for (t = 0; u > t; ++t) r = M[t], isNaN(r.x) && (r.x = n("x", f)), isNaN(r.y) && (r.y = n("y", v)), isNaN(r.px) && (r.px = r.x), isNaN(r.py) && (r.py = r.y); if (i = [], "function" == typeof h) 2297 for (t = 0; c > t; ++t) i[t] = +h.call(this, x[t], t); 2298 else 2299 for (t = 0; c > t; ++t) i[t] = h; if (a = [], "function" == typeof g) 2300 for (t = 0; c > t; ++t) a[t] = +g.call(this, x[t], t); 2301 else 2302 for (t = 0; c > t; ++t) a[t] = g; if (o = [], "function" == typeof p) 2303 for (t = 0; u > t; ++t) o[t] = +p.call(this, M[t], t); 2304 else 2305 for (t = 0; u > t; ++t) o[t] = p; return l.resume() }, l.resume = function() { return l.alpha(.1) }, l.stop = function() { return l.alpha(0) }, l.drag = function() { return r || (r = oa.behavior.drag().origin(y).on("dragstart.force", Qr).on("drag.force", t).on("dragend.force", nu)), arguments.length ? void this.on("mouseover.force", tu).on("mouseout.force", eu).call(r) : r }, oa.rebind(l, c, "on") }; 2306 var yl = 20, 2307 Ml = 1, 2308 xl = 1 / 0; 2309 oa.layout.hierarchy = function() { 2310 function n(u) { var i, a = [u], 2311 o = []; for (u.depth = 0; null != (i = a.pop());) 2312 if (o.push(i), (c = e.call(n, i, i.depth)) && (l = c.length)) { for (var l, c, s; --l >= 0;) a.push(s = c[l]), s.parent = i, s.depth = i.depth + 1; 2313 r && (i.value = 0), i.children = c } else r && (i.value = +r.call(n, i, i.depth) || 0), delete i.children; 2314 return au(u, function(n) { var e, u; 2315 t && (e = n.children) && e.sort(t), r && (u = n.parent) && (u.value += n.value) }), o } var t = cu, 2316 e = ou, 2317 r = lu; return n.sort = function(e) { return arguments.length ? (t = e, n) : t }, n.children = function(t) { return arguments.length ? (e = t, n) : e }, n.value = function(t) { return arguments.length ? (r = t, n) : r }, n.revalue = function(t) { return r && (iu(t, function(n) { n.children && (n.value = 0) }), au(t, function(t) { var e; 2318 t.children || (t.value = +r.call(n, t, t.depth) || 0), (e = t.parent) && (e.value += t.value) })), t }, n }, oa.layout.partition = function() { 2319 function n(t, e, r, u) { var i = t.children; if (t.x = e, t.y = t.depth * u, t.dx = r, t.dy = u, i && (a = i.length)) { var a, o, l, c = -1; for (r = t.value ? r / t.value : 0; ++c < a;) n(o = i[c], e, l = o.value * r, u), e += l } } 2320 2321 function t(n) { var e = n.children, 2322 r = 0; if (e && (u = e.length)) 2323 for (var u, i = -1; ++i < u;) r = Math.max(r, t(e[i])); return 1 + r } 2324 2325 function e(e, i) { var a = r.call(this, e, i); return n(a[0], 0, u[0], u[1] / t(a[0])), a } var r = oa.layout.hierarchy(), 2326 u = [1, 1]; return e.size = function(n) { return arguments.length ? (u = n, e) : u }, uu(e, r) }, oa.layout.pie = function() { 2327 function n(a) { var o, l = a.length, 2328 c = a.map(function(e, r) { return +t.call(n, e, r) }), 2329 s = +("function" == typeof r ? r.apply(this, arguments) : r), 2330 f = ("function" == typeof u ? u.apply(this, arguments) : u) - s, 2331 h = Math.min(Math.abs(f) / l, +("function" == typeof i ? i.apply(this, arguments) : i)), 2332 g = h * (0 > f ? -1 : 1), 2333 p = oa.sum(c), 2334 v = p ? (f - l * g) / p : 0, 2335 d = oa.range(l), 2336 m = []; return null != e && d.sort(e === bl ? function(n, t) { return c[t] - c[n] } : function(n, t) { return e(a[n], a[t]) }), d.forEach(function(n) { m[n] = { data: a[n], value: o = c[n], startAngle: s, endAngle: s += o * v + g, padAngle: h } }), m } var t = Number, 2337 e = bl, 2338 r = 0, 2339 u = Fa, 2340 i = 0; return n.value = function(e) { return arguments.length ? (t = e, n) : t }, n.sort = function(t) { return arguments.length ? (e = t, n) : e }, n.startAngle = function(t) { return arguments.length ? (r = t, n) : r }, n.endAngle = function(t) { return arguments.length ? (u = t, n) : u }, n.padAngle = function(t) { return arguments.length ? (i = t, n) : i }, n }; 2341 var bl = {}; 2342 oa.layout.stack = function() { 2343 function n(o, l) { if (!(h = o.length)) return o; var c = o.map(function(e, r) { return t.call(n, e, r) }), 2344 s = c.map(function(t) { return t.map(function(t, e) { return [i.call(n, t, e), a.call(n, t, e)] }) }), 2345 f = e.call(n, s, l); 2346 c = oa.permute(c, f), s = oa.permute(s, f); var h, g, p, v, d = r.call(n, s, l), 2347 m = c[0].length; for (p = 0; m > p; ++p) 2348 for (u.call(n, c[0][p], v = d[p], s[0][p][1]), g = 1; h > g; ++g) u.call(n, c[g][p], v += s[g - 1][p][1], s[g][p][1]); return o } var t = y, 2349 e = pu, 2350 r = vu, 2351 u = gu, 2352 i = fu, 2353 a = hu; return n.values = function(e) { return arguments.length ? (t = e, n) : t }, n.order = function(t) { return arguments.length ? (e = "function" == typeof t ? t : _l.get(t) || pu, n) : e }, n.offset = function(t) { return arguments.length ? (r = "function" == typeof t ? t : wl.get(t) || vu, n) : r }, n.x = function(t) { return arguments.length ? (i = t, n) : i }, n.y = function(t) { return arguments.length ? (a = t, n) : a }, n.out = function(t) { return arguments.length ? (u = t, n) : u }, n }; 2354 var _l = oa.map({ "inside-out": function(n) { var t, e, r = n.length, 2355 u = n.map(du), 2356 i = n.map(mu), 2357 a = oa.range(r).sort(function(n, t) { return u[n] - u[t] }), 2358 o = 0, 2359 l = 0, 2360 c = [], 2361 s = []; for (t = 0; r > t; ++t) e = a[t], l > o ? (o += i[e], c.push(e)) : (l += i[e], s.push(e)); return s.reverse().concat(c) }, reverse: function(n) { return oa.range(n.length).reverse() }, "default": pu }), 2362 wl = oa.map({ silhouette: function(n) { var t, e, r, u = n.length, 2363 i = n[0].length, 2364 a = [], 2365 o = 0, 2366 l = []; for (e = 0; i > e; ++e) { for (t = 0, r = 0; u > t; t++) r += n[t][e][1]; 2367 r > o && (o = r), a.push(r) } for (e = 0; i > e; ++e) l[e] = (o - a[e]) / 2; return l }, wiggle: function(n) { var t, e, r, u, i, a, o, l, c, s = n.length, 2368 f = n[0], 2369 h = f.length, 2370 g = []; for (g[0] = l = c = 0, e = 1; h > e; ++e) { for (t = 0, u = 0; s > t; ++t) u += n[t][e][1]; for (t = 0, i = 0, o = f[e][0] - f[e - 1][0]; s > t; ++t) { for (r = 0, a = (n[t][e][1] - n[t][e - 1][1]) / (2 * o); t > r; ++r) a += (n[r][e][1] - n[r][e - 1][1]) / o; 2371 i += a * n[t][e][1] } 2372 g[e] = l -= u ? i / u * o : 0, c > l && (c = l) } for (e = 0; h > e; ++e) g[e] -= c; return g }, expand: function(n) { var t, e, r, u = n.length, 2373 i = n[0].length, 2374 a = 1 / u, 2375 o = []; for (e = 0; i > e; ++e) { for (t = 0, r = 0; u > t; t++) r += n[t][e][1]; if (r) 2376 for (t = 0; u > t; t++) n[t][e][1] /= r; 2377 else 2378 for (t = 0; u > t; t++) n[t][e][1] = a } for (e = 0; i > e; ++e) o[e] = 0; return o }, zero: vu }); 2379 oa.layout.histogram = function() { 2380 function n(n, i) { for (var a, o, l = [], c = n.map(e, this), s = r.call(this, c, i), f = u.call(this, s, c, i), i = -1, h = c.length, g = f.length - 1, p = t ? 1 : 1 / h; ++i < g;) a = l[i] = [], a.dx = f[i + 1] - (a.x = f[i]), a.y = 0; if (g > 0) 2381 for (i = -1; ++i < h;) o = c[i], o >= s[0] && o <= s[1] && (a = l[oa.bisect(f, o, 1, g) - 1], a.y += p, a.push(n[i])); return l } var t = !0, 2382 e = Number, 2383 r = bu, 2384 u = Mu; return n.value = function(t) { return arguments.length ? (e = t, n) : e }, n.range = function(t) { return arguments.length ? (r = En(t), n) : r }, n.bins = function(t) { return arguments.length ? (u = "number" == typeof t ? function(n) { return xu(n, t) } : En(t), n) : u }, n.frequency = function(e) { return arguments.length ? (t = !!e, n) : t }, n }, oa.layout.pack = function() { 2385 function n(n, i) { var a = e.call(this, n, i), 2386 o = a[0], 2387 l = u[0], 2388 c = u[1], 2389 s = null == t ? Math.sqrt : "function" == typeof t ? t : function() { return t }; if (o.x = o.y = 0, au(o, function(n) { n.r = +s(n.value) }), au(o, Nu), r) { var f = r * (t ? 1 : Math.max(2 * o.r / l, 2 * o.r / c)) / 2; 2390 au(o, function(n) { n.r += f }), au(o, Nu), au(o, function(n) { n.r -= f }) } return Cu(o, l / 2, c / 2, t ? 1 : 1 / Math.max(2 * o.r / l, 2 * o.r / c)), a } var t, e = oa.layout.hierarchy().sort(_u), 2391 r = 0, 2392 u = [1, 1]; return n.size = function(t) { return arguments.length ? (u = t, n) : u }, n.radius = function(e) { return arguments.length ? (t = null == e || "function" == typeof e ? e : +e, n) : t }, n.padding = function(t) { return arguments.length ? (r = +t, n) : r }, uu(n, e) }, oa.layout.tree = function() { 2393 function n(n, u) { var s = a.call(this, n, u), 2394 f = s[0], 2395 h = t(f); if (au(h, e), h.parent.m = -h.z, iu(h, r), c) iu(f, i); 2396 else { var g = f, 2397 p = f, 2398 v = f; 2399 iu(f, function(n) { n.x < g.x && (g = n), n.x > p.x && (p = n), n.depth > v.depth && (v = n) }); var d = o(g, p) / 2 - g.x, 2400 m = l[0] / (p.x + o(p, g) / 2 + d), 2401 y = l[1] / (v.depth || 1); 2402 iu(f, function(n) { n.x = (n.x + d) * m, n.y = n.depth * y }) } return s } 2403 2404 function t(n) { for (var t, e = { A: null, children: [n] }, r = [e]; null != (t = r.pop());) 2405 for (var u, i = t.children, a = 0, o = i.length; o > a; ++a) r.push((i[a] = u = { _: i[a], parent: t, children: (u = i[a].children) && u.slice() || [], A: null, a: null, z: 0, m: 0, c: 0, s: 0, t: null, i: a }).a = u); return e.children[0] } 2406 2407 function e(n) { var t = n.children, 2408 e = n.parent.children, 2409 r = n.i ? e[n.i - 1] : null; if (t.length) { Du(n); var i = (t[0].z + t[t.length - 1].z) / 2; 2410 r ? (n.z = r.z + o(n._, r._), n.m = n.z - i) : n.z = i } else r && (n.z = r.z + o(n._, r._)); 2411 n.parent.A = u(n, r, n.parent.A || e[0]) } 2412 2413 function r(n) { n._.x = n.z + n.parent.m, n.m += n.parent.m } 2414 2415 function u(n, t, e) { if (t) { for (var r, u = n, i = n, a = t, l = u.parent.children[0], c = u.m, s = i.m, f = a.m, h = l.m; a = Tu(a), u = qu(u), a && u;) l = qu(l), i = Tu(i), i.a = n, r = a.z + f - u.z - c + o(a._, u._), r > 0 && (Ru(Pu(a, n, e), n, r), c += r, s += r), f += a.m, c += u.m, h += l.m, s += i.m; 2416 a && !Tu(i) && (i.t = a, i.m += f - s), u && !qu(l) && (l.t = u, l.m += c - h, e = n) } return e } 2417 2418 function i(n) { n.x *= l[0], n.y = n.depth * l[1] } var a = oa.layout.hierarchy().sort(null).value(null), 2419 o = Lu, 2420 l = [1, 1], 2421 c = null; return n.separation = function(t) { return arguments.length ? (o = t, n) : o }, n.size = function(t) { return arguments.length ? (c = null == (l = t) ? i : null, n) : c ? null : l }, n.nodeSize = function(t) { return arguments.length ? (c = null == (l = t) ? null : i, n) : c ? l : null }, uu(n, a) }, oa.layout.cluster = function() { 2422 function n(n, i) { var a, o = t.call(this, n, i), 2423 l = o[0], 2424 c = 0; 2425 au(l, function(n) { var t = n.children; 2426 t && t.length ? (n.x = ju(t), n.y = Uu(t)) : (n.x = a ? c += e(n, a) : 0, n.y = 0, a = n) }); var s = Fu(l), 2427 f = Hu(l), 2428 h = s.x - e(s, f) / 2, 2429 g = f.x + e(f, s) / 2; return au(l, u ? function(n) { n.x = (n.x - l.x) * r[0], n.y = (l.y - n.y) * r[1] } : function(n) { n.x = (n.x - h) / (g - h) * r[0], n.y = (1 - (l.y ? n.y / l.y : 1)) * r[1] }), o } var t = oa.layout.hierarchy().sort(null).value(null), 2430 e = Lu, 2431 r = [1, 1], 2432 u = !1; return n.separation = function(t) { return arguments.length ? (e = t, n) : e }, n.size = function(t) { return arguments.length ? (u = null == (r = t), n) : u ? null : r }, n.nodeSize = function(t) { return arguments.length ? (u = null != (r = t), n) : u ? r : null }, uu(n, t) }, oa.layout.treemap = function() { 2433 function n(n, t) { for (var e, r, u = -1, i = n.length; ++u < i;) r = (e = n[u]).value * (0 > t ? 0 : t), e.area = isNaN(r) || 0 >= r ? 0 : r } 2434 2435 function t(e) { var i = e.children; if (i && i.length) { var a, o, l, c = f(e), 2436 s = [], 2437 h = i.slice(), 2438 p = 1 / 0, 2439 v = "slice" === g ? c.dx : "dice" === g ? c.dy : "slice-dice" === g ? 1 & e.depth ? c.dy : c.dx : Math.min(c.dx, c.dy); for (n(h, c.dx * c.dy / e.value), s.area = 0; 2440 (l = h.length) > 0;) s.push(a = h[l - 1]), s.area += a.area, "squarify" !== g || (o = r(s, v)) <= p ? (h.pop(), p = o) : (s.area -= s.pop().area, u(s, v, c, !1), v = Math.min(c.dx, c.dy), s.length = s.area = 0, p = 1 / 0); 2441 s.length && (u(s, v, c, !0), s.length = s.area = 0), i.forEach(t) } } 2442 2443 function e(t) { var r = t.children; if (r && r.length) { var i, a = f(t), 2444 o = r.slice(), 2445 l = []; for (n(o, a.dx * a.dy / t.value), l.area = 0; i = o.pop();) l.push(i), l.area += i.area, null != i.z && (u(l, i.z ? a.dx : a.dy, a, !o.length), l.length = l.area = 0); 2446 r.forEach(e) } } 2447 2448 function r(n, t) { for (var e, r = n.area, u = 0, i = 1 / 0, a = -1, o = n.length; ++a < o;)(e = n[a].area) && (i > e && (i = e), e > u && (u = e)); return r *= r, t *= t, r ? Math.max(t * u * p / r, r / (t * i * p)) : 1 / 0 } 2449 2450 function u(n, t, e, r) { 2451 var u, i = -1, 2452 a = n.length, 2453 o = e.x, 2454 c = e.y, 2455 s = t ? l(n.area / t) : 0; 2456 if (t == e.dx) { for ((r || s > e.dy) && (s = e.dy); ++i < a;) u = n[i], u.x = o, u.y = c, u.dy = s, o += u.dx = Math.min(e.x + e.dx - o, s ? l(u.area / s) : 0); 2457 u.z = !0, u.dx += e.x + e.dx - o, e.y += s, e.dy -= s } else { for ((r || s > e.dx) && (s = e.dx); ++i < a;) u = n[i], u.x = o, u.y = c, u.dx = s, c += u.dy = Math.min(e.y + e.dy - c, s ? l(u.area / s) : 0); 2458 u.z = !1, u.dy += e.y + e.dy - c, e.x += s, e.dx -= s } 2459 } 2460 2461 function i(r) { var u = a || o(r), 2462 i = u[0]; return i.x = i.y = 0, i.value ? (i.dx = c[0], i.dy = c[1]) : i.dx = i.dy = 0, a && o.revalue(i), n([i], i.dx * i.dy / i.value), (a ? e : t)(i), h && (a = u), u } 2463 var a, o = oa.layout.hierarchy(), 2464 l = Math.round, 2465 c = [1, 1], 2466 s = null, 2467 f = Ou, 2468 h = !1, 2469 g = "squarify", 2470 p = .5 * (1 + Math.sqrt(5)); 2471 return i.size = function(n) { return arguments.length ? (c = n, i) : c }, i.padding = function(n) { 2472 function t(t) { var e = n.call(i, t, t.depth); return null == e ? Ou(t) : Iu(t, "number" == typeof e ? [e, e, e, e] : e) } 2473 2474 function e(t) { return Iu(t, n) } if (!arguments.length) return s; var r; return f = null == (s = n) ? Ou : "function" == (r = typeof n) ? t : "number" === r ? (n = [n, n, n, n], e) : e, i }, i.round = function(n) { return arguments.length ? (l = n ? Math.round : Number, i) : l != Number }, i.sticky = function(n) { return arguments.length ? (h = n, a = null, i) : h }, i.ratio = function(n) { return arguments.length ? (p = n, i) : p }, i.mode = function(n) { return arguments.length ? (g = n + "", i) : g }, uu(i, o) 2475 }, oa.random = { normal: function(n, t) { var e = arguments.length; return 2 > e && (t = 1), 1 > e && (n = 0), 2476 function() { var e, r, u; 2477 do e = 2 * Math.random() - 1, r = 2 * Math.random() - 1, u = e * e + r * r; while (!u || u > 1); return n + t * e * Math.sqrt(-2 * Math.log(u) / u) } }, logNormal: function() { var n = oa.random.normal.apply(oa, arguments); return function() { return Math.exp(n()) } }, bates: function(n) { var t = oa.random.irwinHall(n); return function() { return t() / n } }, irwinHall: function(n) { return function() { for (var t = 0, e = 0; n > e; e++) t += Math.random(); return t } } }, oa.scale = {}; 2478 var Sl = { floor: y, ceil: y }; 2479 oa.scale.linear = function() { return Wu([0, 1], [0, 1], Mr, !1) }; 2480 var kl = { s: 1, g: 1, p: 1, r: 1, e: 1 }; 2481 oa.scale.log = function() { return ri(oa.scale.linear().domain([0, 1]), 10, !0, [1, 10]) }; 2482 var Nl = oa.format(".0e"), 2483 El = { floor: function(n) { return -Math.ceil(-n) }, ceil: function(n) { return -Math.floor(-n) } }; 2484 oa.scale.pow = function() { return ui(oa.scale.linear(), 1, [0, 1]) }, oa.scale.sqrt = function() { return oa.scale.pow().exponent(.5) }, oa.scale.ordinal = function() { return ai([], { t: "range", a: [ 2485 [] 2486 ] }) }, oa.scale.category10 = function() { return oa.scale.ordinal().range(Al) }, oa.scale.category20 = function() { return oa.scale.ordinal().range(Cl) }, oa.scale.category20b = function() { return oa.scale.ordinal().range(zl) }, oa.scale.category20c = function() { return oa.scale.ordinal().range(Ll) }; 2487 var Al = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(xn), 2488 Cl = [2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725].map(xn), 2489 zl = [3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654].map(xn), 2490 Ll = [3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081].map(xn); 2491 oa.scale.quantile = function() { return oi([], []) }, oa.scale.quantize = function() { return li(0, 1, [0, 1]) }, oa.scale.threshold = function() { return ci([.5], [0, 1]) }, oa.scale.identity = function() { return si([0, 1]) }, oa.svg = {}, oa.svg.arc = function() { 2492 function n() { var n = Math.max(0, +e.apply(this, arguments)), 2493 c = Math.max(0, +r.apply(this, arguments)), 2494 s = a.apply(this, arguments) - Oa, 2495 f = o.apply(this, arguments) - Oa, 2496 h = Math.abs(f - s), 2497 g = s > f ? 0 : 1; if (n > c && (p = c, c = n, n = p), h >= Ha) return t(c, g) + (n ? t(n, 1 - g) : "") + "Z"; var p, v, d, m, y, M, x, b, _, w, S, k, N = 0, 2498 E = 0, 2499 A = []; if ((m = (+l.apply(this, arguments) || 0) / 2) && (d = i === ql ? Math.sqrt(n * n + c * c) : +i.apply(this, arguments), g || (E *= -1), c && (E = tn(d / c * Math.sin(m))), n && (N = tn(d / n * Math.sin(m)))), c) { y = c * Math.cos(s + E), M = c * Math.sin(s + E), x = c * Math.cos(f - E), b = c * Math.sin(f - E); var C = Math.abs(f - s - 2 * E) <= ja ? 0 : 1; if (E && mi(y, M, x, b) === g ^ C) { var z = (s + f) / 2; 2500 y = c * Math.cos(z), M = c * Math.sin(z), x = b = null } } else y = M = 0; if (n) { _ = n * Math.cos(f - N), w = n * Math.sin(f - N), S = n * Math.cos(s + N), k = n * Math.sin(s + N); var L = Math.abs(s - f + 2 * N) <= ja ? 0 : 1; if (N && mi(_, w, S, k) === 1 - g ^ L) { var q = (s + f) / 2; 2501 _ = n * Math.cos(q), w = n * Math.sin(q), S = k = null } } else _ = w = 0; if (h > Pa && (p = Math.min(Math.abs(c - n) / 2, +u.apply(this, arguments))) > .001) { v = c > n ^ g ? 0 : 1; var T = p, 2502 R = p; if (ja > h) { var D = null == S ? [_, w] : null == x ? [y, M] : Re([y, M], [S, k], [x, b], [_, w]), 2503 P = y - D[0], 2504 U = M - D[1], 2505 j = x - D[0], 2506 F = b - D[1], 2507 H = 1 / Math.sin(Math.acos((P * j + U * F) / (Math.sqrt(P * P + U * U) * Math.sqrt(j * j + F * F))) / 2), 2508 O = Math.sqrt(D[0] * D[0] + D[1] * D[1]); 2509 R = Math.min(p, (n - O) / (H - 1)), T = Math.min(p, (c - O) / (H + 1)) } if (null != x) { var I = yi(null == S ? [_, w] : [S, k], [y, M], c, T, g), 2510 Y = yi([x, b], [_, w], c, T, g); 2511 p === T ? A.push("M", I[0], "A", T, ",", T, " 0 0,", v, " ", I[1], "A", c, ",", c, " 0 ", 1 - g ^ mi(I[1][0], I[1][1], Y[1][0], Y[1][1]), ",", g, " ", Y[1], "A", T, ",", T, " 0 0,", v, " ", Y[0]) : A.push("M", I[0], "A", T, ",", T, " 0 1,", v, " ", Y[0]) } else A.push("M", y, ",", M); if (null != S) { var Z = yi([y, M], [S, k], n, -R, g), 2512 V = yi([_, w], null == x ? [y, M] : [x, b], n, -R, g); 2513 p === R ? A.push("L", V[0], "A", R, ",", R, " 0 0,", v, " ", V[1], "A", n, ",", n, " 0 ", g ^ mi(V[1][0], V[1][1], Z[1][0], Z[1][1]), ",", 1 - g, " ", Z[1], "A", R, ",", R, " 0 0,", v, " ", Z[0]) : A.push("L", V[0], "A", R, ",", R, " 0 0,", v, " ", Z[0]) } else A.push("L", _, ",", w) } else A.push("M", y, ",", M), null != x && A.push("A", c, ",", c, " 0 ", C, ",", g, " ", x, ",", b), A.push("L", _, ",", w), null != S && A.push("A", n, ",", n, " 0 ", L, ",", 1 - g, " ", S, ",", k); return A.push("Z"), A.join("") } 2514 2515 function t(n, t) { return "M0," + n + "A" + n + "," + n + " 0 1," + t + " 0," + -n + "A" + n + "," + n + " 0 1," + t + " 0," + n } var e = hi, 2516 r = gi, 2517 u = fi, 2518 i = ql, 2519 a = pi, 2520 o = vi, 2521 l = di; return n.innerRadius = function(t) { return arguments.length ? (e = En(t), n) : e }, n.outerRadius = function(t) { return arguments.length ? (r = En(t), n) : r }, n.cornerRadius = function(t) { return arguments.length ? (u = En(t), n) : u }, n.padRadius = function(t) { return arguments.length ? (i = t == ql ? ql : En(t), n) : i }, n.startAngle = function(t) { return arguments.length ? (a = En(t), n) : a }, n.endAngle = function(t) { return arguments.length ? (o = En(t), n) : o }, n.padAngle = function(t) { return arguments.length ? (l = En(t), n) : l }, n.centroid = function() { var n = (+e.apply(this, arguments) + +r.apply(this, arguments)) / 2, 2522 t = (+a.apply(this, arguments) + +o.apply(this, arguments)) / 2 - Oa; return [Math.cos(t) * n, Math.sin(t) * n] }, n }; 2523 var ql = "auto"; 2524 oa.svg.line = function() { return Mi(y) }; 2525 var Tl = oa.map({ linear: xi, "linear-closed": bi, step: _i, "step-before": wi, "step-after": Si, basis: zi, "basis-open": Li, "basis-closed": qi, bundle: Ti, cardinal: Ei, "cardinal-open": ki, "cardinal-closed": Ni, monotone: Fi }); 2526 Tl.forEach(function(n, t) { t.key = n, t.closed = /-closed$/.test(n) }); 2527 var Rl = [0, 2 / 3, 1 / 3, 0], 2528 Dl = [0, 1 / 3, 2 / 3, 0], 2529 Pl = [0, 1 / 6, 2 / 3, 1 / 6]; 2530 oa.svg.line.radial = function() { var n = Mi(Hi); return n.radius = n.x, delete n.x, n.angle = n.y, delete n.y, n }, wi.reverse = Si, Si.reverse = wi, oa.svg.area = function() { return Oi(y) }, oa.svg.area.radial = function() { var n = Oi(Hi); return n.radius = n.x, delete n.x, n.innerRadius = n.x0, delete n.x0, n.outerRadius = n.x1, delete n.x1, n.angle = n.y, delete n.y, n.startAngle = n.y0, delete n.y0, n.endAngle = n.y1, delete n.y1, n }, oa.svg.chord = function() { 2531 function n(n, o) { var l = t(this, i, n, o), 2532 c = t(this, a, n, o); return "M" + l.p0 + r(l.r, l.p1, l.a1 - l.a0) + (e(l, c) ? u(l.r, l.p1, l.r, l.p0) : u(l.r, l.p1, c.r, c.p0) + r(c.r, c.p1, c.a1 - c.a0) + u(c.r, c.p1, l.r, l.p0)) + "Z" } 2533 2534 function t(n, t, e, r) { var u = t.call(n, e, r), 2535 i = o.call(n, u, r), 2536 a = l.call(n, u, r) - Oa, 2537 s = c.call(n, u, r) - Oa; return { r: i, a0: a, a1: s, p0: [i * Math.cos(a), i * Math.sin(a)], p1: [i * Math.cos(s), i * Math.sin(s)] } } 2538 2539 function e(n, t) { return n.a0 == t.a0 && n.a1 == t.a1 } 2540 2541 function r(n, t, e) { return "A" + n + "," + n + " 0 " + +(e > ja) + ",1 " + t } 2542 2543 function u(n, t, e, r) { return "Q 0,0 " + r } var i = Me, 2544 a = xe, 2545 o = Ii, 2546 l = pi, 2547 c = vi; return n.radius = function(t) { return arguments.length ? (o = En(t), n) : o }, n.source = function(t) { return arguments.length ? (i = En(t), n) : i }, n.target = function(t) { return arguments.length ? (a = En(t), n) : a }, n.startAngle = function(t) { return arguments.length ? (l = En(t), n) : l }, n.endAngle = function(t) { return arguments.length ? (c = En(t), n) : c }, n }, oa.svg.diagonal = function() { 2548 function n(n, u) { var i = t.call(this, n, u), 2549 a = e.call(this, n, u), 2550 o = (i.y + a.y) / 2, 2551 l = [i, { x: i.x, y: o }, { x: a.x, y: o }, a]; return l = l.map(r), "M" + l[0] + "C" + l[1] + " " + l[2] + " " + l[3] } var t = Me, 2552 e = xe, 2553 r = Yi; return n.source = function(e) { return arguments.length ? (t = En(e), n) : t }, n.target = function(t) { return arguments.length ? (e = En(t), n) : e }, n.projection = function(t) { return arguments.length ? (r = t, n) : r }, n }, oa.svg.diagonal.radial = function() { var n = oa.svg.diagonal(), 2554 t = Yi, 2555 e = n.projection; return n.projection = function(n) { return arguments.length ? e(Zi(t = n)) : t }, n }, oa.svg.symbol = function() { 2556 function n(n, r) { return (Ul.get(t.call(this, n, r)) || $i)(e.call(this, n, r)) } var t = Xi, 2557 e = Vi; return n.type = function(e) { return arguments.length ? (t = En(e), n) : t }, n.size = function(t) { return arguments.length ? (e = En(t), n) : e }, n }; 2558 var Ul = oa.map({ circle: $i, cross: function(n) { var t = Math.sqrt(n / 5) / 2; return "M" + -3 * t + "," + -t + "H" + -t + "V" + -3 * t + "H" + t + "V" + -t + "H" + 3 * t + "V" + t + "H" + t + "V" + 3 * t + "H" + -t + "V" + t + "H" + -3 * t + "Z" }, diamond: function(n) { var t = Math.sqrt(n / (2 * Fl)), 2559 e = t * Fl; return "M0," + -t + "L" + e + ",0 0," + t + " " + -e + ",0Z" }, square: function(n) { var t = Math.sqrt(n) / 2; return "M" + -t + "," + -t + "L" + t + "," + -t + " " + t + "," + t + " " + -t + "," + t + "Z" }, "triangle-down": function(n) { var t = Math.sqrt(n / jl), 2560 e = t * jl / 2; return "M0," + e + "L" + t + "," + -e + " " + -t + "," + -e + "Z" }, "triangle-up": function(n) { var t = Math.sqrt(n / jl), 2561 e = t * jl / 2; return "M0," + -e + "L" + t + "," + e + " " + -t + "," + e + "Z" } }); 2562 oa.svg.symbolTypes = Ul.keys(); 2563 var jl = Math.sqrt(3), 2564 Fl = Math.tan(30 * Ia); 2565 Aa.transition = function(n) { for (var t, e, r = Hl || ++Zl, u = Ki(n), i = [], a = Ol || { time: Date.now(), ease: Nr, delay: 0, duration: 250 }, o = -1, l = this.length; ++o < l;) { i.push(t = []); for (var c = this[o], s = -1, f = c.length; ++s < f;)(e = c[s]) && Qi(e, s, u, r, a), t.push(e) } return Wi(i, u, r) }, Aa.interrupt = function(n) { return this.each(null == n ? Il : Bi(Ki(n))) }; 2566 var Hl, Ol, Il = Bi(Ki()), 2567 Yl = [], 2568 Zl = 0; 2569 Yl.call = Aa.call, Yl.empty = Aa.empty, Yl.node = Aa.node, Yl.size = Aa.size, oa.transition = function(n, t) { return n && n.transition ? Hl ? n.transition(t) : n : oa.selection().transition(n) }, oa.transition.prototype = Yl, Yl.select = function(n) { var t, e, r, u = this.id, 2570 i = this.namespace, 2571 a = []; 2572 n = A(n); for (var o = -1, l = this.length; ++o < l;) { a.push(t = []); for (var c = this[o], s = -1, f = c.length; ++s < f;)(r = c[s]) && (e = n.call(r, r.__data__, s, o)) ? ("__data__" in r && (e.__data__ = r.__data__), Qi(e, s, i, u, r[i][u]), t.push(e)) : t.push(null) } return Wi(a, i, u) }, Yl.selectAll = function(n) { var t, e, r, u, i, a = this.id, 2573 o = this.namespace, 2574 l = []; 2575 n = C(n); for (var c = -1, s = this.length; ++c < s;) 2576 for (var f = this[c], h = -1, g = f.length; ++h < g;) 2577 if (r = f[h]) { i = r[o][a], e = n.call(r, r.__data__, h, c), l.push(t = []); for (var p = -1, v = e.length; ++p < v;)(u = e[p]) && Qi(u, p, o, a, i), t.push(u) } 2578 return Wi(l, o, a) }, Yl.filter = function(n) { var t, e, r, u = []; "function" != typeof n && (n = O(n)); for (var i = 0, a = this.length; a > i; i++) { u.push(t = []); for (var e = this[i], o = 0, l = e.length; l > o; o++)(r = e[o]) && n.call(r, r.__data__, o, i) && t.push(r) } return Wi(u, this.namespace, this.id) }, Yl.tween = function(n, t) { var e = this.id, 2579 r = this.namespace; return arguments.length < 2 ? this.node()[r][e].tween.get(n) : Y(this, null == t ? function(t) { t[r][e].tween.remove(n) } : function(u) { u[r][e].tween.set(n, t) }) }, Yl.attr = function(n, t) { 2580 function e() { this.removeAttribute(o) } 2581 2582 function r() { this.removeAttributeNS(o.space, o.local) } 2583 2584 function u(n) { return null == n ? e : (n += "", function() { var t, e = this.getAttribute(o); return e !== n && (t = a(e, n), function(n) { this.setAttribute(o, t(n)) }) }) } 2585 2586 function i(n) { return null == n ? r : (n += "", function() { var t, e = this.getAttributeNS(o.space, o.local); return e !== n && (t = a(e, n), function(n) { this.setAttributeNS(o.space, o.local, t(n)) }) }) } if (arguments.length < 2) { for (t in n) this.attr(t, n[t]); return this } var a = "transform" == n ? $r : Mr, 2587 o = oa.ns.qualify(n); return Ji(this, "attr." + n, t, o.local ? i : u) }, Yl.attrTween = function(n, t) { 2588 function e(n, e) { var r = t.call(this, n, e, this.getAttribute(u)); return r && function(n) { this.setAttribute(u, r(n)) } } 2589 2590 function r(n, e) { var r = t.call(this, n, e, this.getAttributeNS(u.space, u.local)); return r && function(n) { this.setAttributeNS(u.space, u.local, r(n)) } } var u = oa.ns.qualify(n); return this.tween("attr." + n, u.local ? r : e) }, Yl.style = function(n, e, r) { 2591 function u() { this.style.removeProperty(n) } 2592 2593 function i(e) { return null == e ? u : (e += "", function() { var u, i = t(this).getComputedStyle(this, null).getPropertyValue(n); return i !== e && (u = Mr(i, e), function(t) { this.style.setProperty(n, u(t), r) }) }) } var a = arguments.length; if (3 > a) { if ("string" != typeof n) { 2 > a && (e = ""); for (r in n) this.style(r, n[r], e); return this } 2594 r = "" } return Ji(this, "style." + n, e, i) }, Yl.styleTween = function(n, e, r) { 2595 function u(u, i) { var a = e.call(this, u, i, t(this).getComputedStyle(this, null).getPropertyValue(n)); return a && function(t) { this.style.setProperty(n, a(t), r) } } return arguments.length < 3 && (r = ""), this.tween("style." + n, u) }, Yl.text = function(n) { return Ji(this, "text", n, Gi) }, Yl.remove = function() { var n = this.namespace; return this.each("end.transition", function() { var t; 2596 this[n].count < 2 && (t = this.parentNode) && t.removeChild(this) }) }, Yl.ease = function(n) { var t = this.id, 2597 e = this.namespace; return arguments.length < 1 ? this.node()[e][t].ease : ("function" != typeof n && (n = oa.ease.apply(oa, arguments)), Y(this, function(r) { r[e][t].ease = n })) }, Yl.delay = function(n) { var t = this.id, 2598 e = this.namespace; return arguments.length < 1 ? this.node()[e][t].delay : Y(this, "function" == typeof n ? function(r, u, i) { r[e][t].delay = +n.call(r, r.__data__, u, i) } : (n = +n, function(r) { r[e][t].delay = n })) }, Yl.duration = function(n) { var t = this.id, 2599 e = this.namespace; return arguments.length < 1 ? this.node()[e][t].duration : Y(this, "function" == typeof n ? function(r, u, i) { r[e][t].duration = Math.max(1, n.call(r, r.__data__, u, i)) } : (n = Math.max(1, n), function(r) { r[e][t].duration = n })) }, Yl.each = function(n, t) { var e = this.id, 2600 r = this.namespace; if (arguments.length < 2) { var u = Ol, 2601 i = Hl; try { Hl = e, Y(this, function(t, u, i) { Ol = t[r][e], n.call(t, t.__data__, u, i) }) } finally { Ol = u, Hl = i } } else Y(this, function(u) { var i = u[r][e]; 2602 (i.event || (i.event = oa.dispatch("start", "end", "interrupt"))).on(n, t) }); return this }, Yl.transition = function() { for (var n, t, e, r, u = this.id, i = ++Zl, a = this.namespace, o = [], l = 0, c = this.length; c > l; l++) { o.push(n = []); for (var t = this[l], s = 0, f = t.length; f > s; s++)(e = t[s]) && (r = e[a][u], Qi(e, s, a, i, { time: r.time, ease: r.ease, delay: r.delay + r.duration, duration: r.duration })), n.push(e) } return Wi(o, a, i) }, oa.svg.axis = function() { 2603 function n(n) { 2604 n.each(function() { 2605 var n, c = oa.select(this), 2606 s = this.__chart__ || e, 2607 f = this.__chart__ = e.copy(), 2608 h = null == l ? f.ticks ? f.ticks.apply(f, o) : f.domain() : l, 2609 g = null == t ? f.tickFormat ? f.tickFormat.apply(f, o) : y : t, 2610 p = c.selectAll(".tick").data(h, f), 2611 v = p.enter().insert("g", ".domain").attr("class", "tick").style("opacity", Pa), 2612 d = oa.transition(p.exit()).style("opacity", Pa).remove(), 2613 m = oa.transition(p.order()).style("opacity", 1), 2614 M = Math.max(u, 0) + a, 2615 x = Zu(f), 2616 b = c.selectAll(".domain").data([0]), 2617 _ = (b.enter().append("path").attr("class", "domain"), oa.transition(b)); 2618 v.append("line"), v.append("text"); 2619 var w, S, k, N, E = v.select("line"), 2620 A = m.select("line"), 2621 C = p.select("text").text(g), 2622 z = v.select("text"), 2623 L = m.select("text"), 2624 q = "top" === r || "left" === r ? -1 : 1; 2625 if ("bottom" === r || "top" === r ? (n = na, w = "x", k = "y", S = "x2", N = "y2", C.attr("dy", 0 > q ? "0em" : ".71em") 2626 2627 2628 .style("text-anchor", "right"), _.attr("d", "M" + x[0] + "," + q * i + "V0H" + x[1] + "V" + q * i)) : (n = ta, w = "y", k = "x", S = "y2", N = "x2", C.attr("dy", ".32em") 2629 2630 2631 2632 .style("text-anchor", 0 > q ? "end" : "start"), _.attr("d", "M" + q * i + "," + x[0] + "H0V" + x[1] + "H" + q * i)), E.attr(N, q * u), z.attr(k, q * M), A.attr(S, 0).attr(N, q * u), L.attr(w, 0).attr(k, q * M), f.rangeBand) { var T = f, 2633 R = T.rangeBand() / 2; 2634 s = f = function(n) { return T(n) + R } } else s.rangeBand ? s = f : d.call(n, f, s); 2635 v.call(n, s, f), m.call(n, f, f) 2636 }) 2637 } 2638 var t, e = oa.scale.linear(), 2639 r = Vl, 2640 u = 6, 2641 i = 6, 2642 a = 3, 2643 o = [10], 2644 l = null; 2645 return n.scale = function(t) { return arguments.length ? (e = t, n) : e }, n.orient = function(t) { return arguments.length ? (r = t in Xl ? t + "" : Vl, n) : r }, n.ticks = function() { return arguments.length ? (o = ca(arguments), n) : o }, n.tickValues = function(t) { return arguments.length ? (l = t, n) : l }, n.tickFormat = function(e) { return arguments.length ? (t = e, n) : t }, n.tickSize = function(t) { var e = arguments.length; return e ? (u = +t, i = +arguments[e - 1], n) : u }, n.innerTickSize = function(t) { return arguments.length ? (u = +t, n) : u }, n.outerTickSize = function(t) { return arguments.length ? (i = +t, n) : i }, n.tickPadding = function(t) { return arguments.length ? (a = +t, n) : a }, n.tickSubdivide = function() { return arguments.length && n }, n 2646 }; 2647 var Vl = "bottom", 2648 Xl = { top: 1, right: 1, bottom: 1, left: 1 }; 2649 oa.svg.brush = function() { 2650 function n(t) { t.each(function() { var t = oa.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", i).on("touchstart.brush", i), 2651 a = t.selectAll(".background").data([0]); 2652 a.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"), t.selectAll(".extent").data([0]).enter().append("rect").attr("class", "extent").style("cursor", "move"); var o = t.selectAll(".resize").data(v, y); 2653 o.exit().remove(), o.enter().append("g").attr("class", function(n) { return "resize " + n }).style("cursor", function(n) { return $l[n] }).append("rect").attr("x", function(n) { return /[ew]$/.test(n) ? -3 : null }).attr("y", function(n) { return /^[ns]/.test(n) ? -3 : null }).attr("width", 6).attr("height", 6).style("visibility", "hidden"), o.style("display", n.empty() ? "none" : null); var l, f = oa.transition(t), 2654 h = oa.transition(a); 2655 c && (l = Zu(c), h.attr("x", l[0]).attr("width", l[1] - l[0]), r(f)), s && (l = Zu(s), h.attr("y", l[0]).attr("height", l[1] - l[0]), u(f)), e(f) }) } 2656 2657 function e(n) { n.selectAll(".resize").attr("transform", function(n) { return "translate(" + f[+/e$/.test(n)] + "," + h[+/^s/.test(n)] + ")" }) } 2658 2659 function r(n) { n.select(".extent").attr("x", f[0]), n.selectAll(".extent,.n>rect,.s>rect").attr("width", f[1] - f[0]) } 2660 2661 function u(n) { n.select(".extent").attr("y", h[0]), n.selectAll(".extent,.e>rect,.w>rect").attr("height", h[1] - h[0]) } 2662 2663 function i() { 2664 function i() { 32 == oa.event.keyCode && (C || (M = null, L[0] -= f[1], L[1] -= h[1], C = 2), S()) } 2665 2666 function v() { 32 == oa.event.keyCode && 2 == C && (L[0] += f[1], L[1] += h[1], C = 0, S()) } 2667 2668 function d() { var n = oa.mouse(b), 2669 t = !1; 2670 x && (n[0] += x[0], n[1] += x[1]), C || (oa.event.altKey ? (M || (M = [(f[0] + f[1]) / 2, (h[0] + h[1]) / 2]), L[0] = f[+(n[0] < M[0])], L[1] = h[+(n[1] < M[1])]) : M = null), E && m(n, c, 0) && (r(k), t = !0), A && m(n, s, 1) && (u(k), t = !0), t && (e(k), w({ type: "brush", mode: C ? "move" : "resize" })) } 2671 2672 function m(n, t, e) { var r, u, i = Zu(t), 2673 l = i[0], 2674 c = i[1], 2675 s = L[e], 2676 v = e ? h : f, 2677 d = v[1] - v[0]; return C && (l -= s, c -= d + s), r = (e ? p : g) ? Math.max(l, Math.min(c, n[e])) : n[e], C ? u = (r += s) + d : (M && (s = Math.max(l, Math.min(c, 2 * M[e] - r))), r > s ? (u = r, r = s) : u = s), v[0] != r || v[1] != u ? (e ? o = null : a = null, v[0] = r, v[1] = u, !0) : void 0 } 2678 2679 function y() { d(), k.style("pointer-events", "all").selectAll(".resize").style("display", n.empty() ? "none" : null), oa.select("body").style("cursor", null), q.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null), z(), w({ type: "brushend" }) } var M, x, b = this, 2680 _ = oa.select(oa.event.target), 2681 w = l.of(b, arguments), 2682 k = oa.select(b), 2683 N = _.datum(), 2684 E = !/^(n|s)$/.test(N) && c, 2685 A = !/^(e|w)$/.test(N) && s, 2686 C = _.classed("extent"), 2687 z = W(b), 2688 L = oa.mouse(b), 2689 q = oa.select(t(b)).on("keydown.brush", i).on("keyup.brush", v); if (oa.event.changedTouches ? q.on("touchmove.brush", d).on("touchend.brush", y) : q.on("mousemove.brush", d).on("mouseup.brush", y), k.interrupt().selectAll("*").interrupt(), C) L[0] = f[0] - L[0], L[1] = h[0] - L[1]; 2690 else if (N) { var T = +/w$/.test(N), 2691 R = +/^n/.test(N); 2692 x = [f[1 - T] - L[0], h[1 - R] - L[1]], L[0] = f[T], L[1] = h[R] } else oa.event.altKey && (M = L.slice()); 2693 k.style("pointer-events", "none").selectAll(".resize").style("display", null), oa.select("body").style("cursor", _.style("cursor")), w({ type: "brushstart" }), d() } var a, o, l = N(n, "brushstart", "brush", "brushend"), 2694 c = null, 2695 s = null, 2696 f = [0, 0], 2697 h = [0, 0], 2698 g = !0, 2699 p = !0, 2700 v = Bl[0]; return n.event = function(n) { n.each(function() { var n = l.of(this, arguments), 2701 t = { x: f, y: h, i: a, j: o }, 2702 e = this.__chart__ || t; 2703 this.__chart__ = t, Hl ? oa.select(this).transition().each("start.brush", function() { a = e.i, o = e.j, f = e.x, h = e.y, n({ type: "brushstart" }) }).tween("brush:brush", function() { var e = xr(f, t.x), 2704 r = xr(h, t.y); return a = o = null, 2705 function(u) { f = t.x = e(u), h = t.y = r(u), n({ type: "brush", mode: "resize" }) } }).each("end.brush", function() { a = t.i, o = t.j, n({ type: "brush", mode: "resize" }), n({ type: "brushend" }) }) : (n({ type: "brushstart" }), n({ type: "brush", mode: "resize" }), n({ type: "brushend" })) }) }, n.x = function(t) { return arguments.length ? (c = t, v = Bl[!c << 1 | !s], n) : c }, n.y = function(t) { return arguments.length ? (s = t, v = Bl[!c << 1 | !s], n) : s }, n.clamp = function(t) { return arguments.length ? (c && s ? (g = !!t[0], p = !!t[1]) : c ? g = !!t : s && (p = !!t), n) : c && s ? [g, p] : c ? g : s ? p : null }, n.extent = function(t) { var e, r, u, i, l; return arguments.length ? (c && (e = t[0], r = t[1], s && (e = e[0], r = r[0]), a = [e, r], c.invert && (e = c(e), r = c(r)), e > r && (l = e, e = r, r = l), (e != f[0] || r != f[1]) && (f = [e, r])), s && (u = t[0], i = t[1], c && (u = u[1], i = i[1]), o = [u, i], s.invert && (u = s(u), i = s(i)), u > i && (l = u, u = i, i = l), (u != h[0] || i != h[1]) && (h = [u, i])), n) : (c && (a ? (e = a[0], r = a[1]) : (e = f[0], r = f[1], c.invert && (e = c.invert(e), r = c.invert(r)), e > r && (l = e, e = r, r = l))), s && (o ? (u = o[0], i = o[1]) : (u = h[0], i = h[1], s.invert && (u = s.invert(u), i = s.invert(i)), u > i && (l = u, u = i, i = l))), c && s ? [ 2706 [e, u], 2707 [r, i] 2708 ] : c ? [e, r] : s && [u, i]) }, n.clear = function() { return n.empty() || (f = [0, 0], h = [0, 0], a = o = null), n }, n.empty = function() { return !!c && f[0] == f[1] || !!s && h[0] == h[1] }, oa.rebind(n, l, "on") }; 2709 var $l = { n: "ns-resize", e: "ew-resize", s: "ns-resize", w: "ew-resize", nw: "nwse-resize", ne: "nesw-resize", se: "nwse-resize", sw: "nesw-resize" }, 2710 Bl = [ 2711 ["n", "e", "s", "w", "nw", "ne", "se", "sw"], 2712 ["e", "w"], 2713 ["n", "s"], 2714 [] 2715 ], 2716 Wl = go.format = xo.timeFormat, 2717 Jl = Wl.utc, 2718 Gl = Jl("%Y-%m-%dT%H:%M:%S.%LZ"); 2719 Wl.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? ea : Gl, ea.parse = function(n) { var t = new Date(n); return isNaN(t) ? null : t }, ea.toString = Gl.toString, go.second = On(function(n) { return new po(1e3 * Math.floor(n / 1e3)) }, function(n, t) { n.setTime(n.getTime() + 1e3 * Math.floor(t)) }, function(n) { return n.getSeconds() }), go.seconds = go.second.range, go.seconds.utc = go.second.utc.range, go.minute = On(function(n) { return new po(6e4 * Math.floor(n / 6e4)) }, function(n, t) { n.setTime(n.getTime() + 6e4 * Math.floor(t)) }, function(n) { return n.getMinutes() }), go.minutes = go.minute.range, go.minutes.utc = go.minute.utc.range, go.hour = On(function(n) { var t = n.getTimezoneOffset() / 60; return new po(36e5 * (Math.floor(n / 36e5 - t) + t)) }, function(n, t) { n.setTime(n.getTime() + 36e5 * Math.floor(t)) }, function(n) { return n.getHours() }), go.hours = go.hour.range, go.hours.utc = go.hour.utc.range, go.month = On(function(n) { return n = go.day(n), n.setDate(1), n }, function(n, t) { n.setMonth(n.getMonth() + t) }, function(n) { return n.getMonth() }), go.months = go.month.range, go.months.utc = go.month.utc.range; 2720 var Kl = [1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6], 2721 Ql = [ 2722 [go.second, 1], 2723 [go.second, 5], 2724 [go.second, 15], 2725 [go.second, 30], 2726 [go.minute, 1], 2727 [go.minute, 5], 2728 [go.minute, 15], 2729 [go.minute, 30], 2730 [go.hour, 1], 2731 [go.hour, 3], 2732 [go.hour, 6], 2733 [go.hour, 12], 2734 [go.day, 1], 2735 [go.day, 2], 2736 [go.week, 1], 2737 [go.month, 1], 2738 [go.month, 3], 2739 [go.year, 1] 2740 ], 2741 nc = Wl.multi([ 2742 [".%L", function(n) { return n.getMilliseconds() }], 2743 [":%S", function(n) { return n.getSeconds() }], 2744 ["%I:%M", function(n) { return n.getMinutes() }], 2745 ["%I %p", function(n) { return n.getHours() }], 2746 ["%a %d", function(n) { return n.getDay() && 1 != n.getDate() }], 2747 ["%b %d", function(n) { return 1 != n.getDate() }], 2748 ["%B", function(n) { return n.getMonth() }], 2749 ["%Y", zt] 2750 ]), 2751 tc = { range: function(n, t, e) { return oa.range(Math.ceil(n / e) * e, +t, e).map(ua) }, floor: y, ceil: y }; 2752 Ql.year = go.year, go.scale = function() { return ra(oa.scale.linear(), Ql, nc) }; 2753 var ec = Ql.map(function(n) { return [n[0].utc, n[1]] }), 2754 rc = Jl.multi([ 2755 [".%L", function(n) { return n.getUTCMilliseconds() }], 2756 [":%S", function(n) { return n.getUTCSeconds() }], 2757 ["%I:%M", function(n) { return n.getUTCMinutes() }], 2758 ["%I %p", function(n) { return n.getUTCHours() }], 2759 ["%a %d", function(n) { return n.getUTCDay() && 1 != n.getUTCDate() }], 2760 ["%b %d", function(n) { return 1 != n.getUTCDate() }], 2761 ["%B", function(n) { return n.getUTCMonth() }], 2762 ["%Y", zt] 2763 ]); 2764 ec.year = go.year.utc, go.scale.utc = function() { return ra(oa.scale.linear(), ec, rc) }, oa.text = An(function(n) { return n.responseText }), oa.json = function(n, t) { return Cn(n, "application/json", ia, t) }, oa.html = function(n, t) { return Cn(n, "text/html", aa, t) }, oa.xml = An(function(n) { return n.responseXML }), "function" == typeof define && define.amd ? (this.d3 = oa, define(oa)) : "object" == typeof module && module.exports ? module.exports = oa : this.d3 = oa 2765}();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.