{ "version": 3, "sources": ["../ui/web_modules/common/quantile-0d207231.js", "../ui/web_modules/d3-array.js", "../ui/web_modules/common/index-e88ffd88.js", "../ui/web_modules/common/touch-775b0bb4.js", "../ui/web_modules/d3-selection.js", "../ui/web_modules/common/rgb-50db7803.js", "../ui/web_modules/common/cubehelix-b37f4760.js", "../ui/web_modules/d3-scale-chromatic.js", "../ui/web_modules/common/precisionRound-dc953fe5.js", "../ui/web_modules/common/string-cfd0b55d.js", "../ui/web_modules/common/value-2cd045dd.js", "../ui/web_modules/common/piecewise-ef887050.js", "../ui/web_modules/d3-scale.js", "../ui/web_modules/d3-axis.js", "../ui/web_modules/d3-shape.js", "../ui/web_modules/common/index-f3df269c.js", "../ui/web_modules/common/zoom-74300348.js", "../ui/web_modules/common/index-35caf4f7.js", "../ui/web_modules/common/nodrag-20481c62.js"], "sourcesContent": ["function ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction bisector(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n\nvar ascendingBisect = bisector(ascending);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\n\nfunction sequence(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n\nvar e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction ticks(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nfunction tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nfunction tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\nfunction max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n\nfunction min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nfunction quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n\nfunction number(x) {\n return x === null ? NaN : +x;\n}\n\nfunction* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n\nfunction quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nfunction quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport { ascending as a, bisectRight as b, bisectRight as c, bisectLeft as d, bisector as e, max as f, quantileSorted as g, quickselect as h, ticks as i, tickIncrement as j, min as m, quantile as q, sequence as s, tickStep as t };\n", "import { t as tickStep, s as sequence, b as bisect, q as quantile, a as ascending, m as min } from './common/quantile-0d207231.js';\nexport { a as ascending, b as bisect, d as bisectLeft, c as bisectRight, e as bisector, f as max, m as min, q as quantile, g as quantileSorted, h as quickselect, s as range, j as tickIncrement, t as tickStep, i as ticks } from './common/quantile-0d207231.js';\n\nfunction count(values, valueof) {\n let count = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n ++count;\n }\n }\n }\n return count;\n}\n\nfunction length(array) {\n return array.length | 0;\n}\n\nfunction empty(length) {\n return !(length > 0);\n}\n\nfunction arrayify(values) {\n return typeof values !== \"object\" || \"length\" in values ? values : Array.from(values);\n}\n\nfunction reducer(reduce) {\n return values => reduce(...values);\n}\n\nfunction cross(...values) {\n const reduce = typeof values[values.length - 1] === \"function\" && reducer(values.pop());\n values = values.map(arrayify);\n const lengths = values.map(length);\n const j = values.length - 1;\n const index = new Array(j + 1).fill(0);\n const product = [];\n if (j < 0 || lengths.some(empty)) return product;\n while (true) {\n product.push(index.map((j, i) => values[i][j]));\n let i = j;\n while (++index[i] === lengths[i]) {\n if (i === 0) return reduce ? product.map(reduce) : product;\n index[i--] = 0;\n }\n }\n}\n\nfunction cumsum(values, valueof) {\n var sum = 0, index = 0;\n return Float64Array.from(values, valueof === undefined\n ? v => (sum += +v || 0)\n : v => (sum += +valueof(v, index++, values) || 0));\n}\n\nfunction descending(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n\nfunction variance(values, valueof) {\n let count = 0;\n let delta;\n let mean = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n }\n if (count > 1) return sum / (count - 1);\n}\n\nfunction deviation(values, valueof) {\n const v = variance(values, valueof);\n return v ? Math.sqrt(v) : v;\n}\n\nfunction extent(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n\nfunction identity(x) {\n return x;\n}\n\nfunction group(values, ...keys) {\n return nest(values, identity, identity, keys);\n}\n\nfunction groups(values, ...keys) {\n return nest(values, Array.from, identity, keys);\n}\n\nfunction rollup(values, reduce, ...keys) {\n return nest(values, identity, reduce, keys);\n}\n\nfunction rollups(values, reduce, ...keys) {\n return nest(values, Array.from, reduce, keys);\n}\n\nfunction nest(values, map, reduce, keys) {\n return (function regroup(values, i) {\n if (i >= keys.length) return reduce(values);\n const groups = new Map();\n const keyof = keys[i++];\n let index = -1;\n for (const value of values) {\n const key = keyof(value, ++index, values);\n const group = groups.get(key);\n if (group) group.push(value);\n else groups.set(key, [value]);\n }\n for (const [key, values] of groups) {\n groups.set(key, regroup(values, i));\n }\n return map(groups);\n })(values, 0);\n}\n\nvar array = Array.prototype;\n\nvar slice = array.slice;\n\nfunction constant(x) {\n return function() {\n return x;\n };\n}\n\nfunction sturges(values) {\n return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;\n}\n\nfunction bin() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = sequence(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n\nfunction freedmanDiaconis(values, min, max) {\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(count(values), -1 / 3)));\n}\n\nfunction scott(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count(values), -1 / 3)));\n}\n\nfunction maxIndex(values, valueof) {\n let max;\n let maxIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n }\n return maxIndex;\n}\n\nfunction mean(values, valueof) {\n let count = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n }\n }\n if (count) return sum / count;\n}\n\nfunction median(values, valueof) {\n return quantile(values, 0.5, valueof);\n}\n\nfunction* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nfunction merge(arrays) {\n return Array.from(flatten(arrays));\n}\n\nfunction minIndex(values, valueof) {\n let min;\n let minIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n }\n return minIndex;\n}\n\nfunction pairs(values, pairof = pair) {\n const pairs = [];\n let previous;\n let first = false;\n for (const value of values) {\n if (first) pairs.push(pairof(previous, value));\n previous = value;\n first = true;\n }\n return pairs;\n}\n\nfunction pair(a, b) {\n return [a, b];\n}\n\nfunction permute(source, keys) {\n return Array.from(keys, key => source[key]);\n}\n\nfunction least(values, compare = ascending) {\n let min;\n let defined = false;\n if (compare.length === 1) {\n let minValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, minValue) < 0\n : ascending(value, value) === 0) {\n min = element;\n minValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, min) < 0\n : compare(value, value) === 0) {\n min = value;\n defined = true;\n }\n }\n }\n return min;\n}\n\nfunction leastIndex(values, compare = ascending) {\n if (compare.length === 1) return minIndex(values, compare);\n let minValue;\n let min = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (min < 0\n ? compare(value, value) === 0\n : compare(value, minValue) < 0) {\n minValue = value;\n min = index;\n }\n }\n return min;\n}\n\nfunction greatest(values, compare = ascending) {\n let max;\n let defined = false;\n if (compare.length === 1) {\n let maxValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, maxValue) > 0\n : ascending(value, value) === 0) {\n max = element;\n maxValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, max) > 0\n : compare(value, value) === 0) {\n max = value;\n defined = true;\n }\n }\n }\n return max;\n}\n\nfunction greatestIndex(values, compare = ascending) {\n if (compare.length === 1) return maxIndex(values, compare);\n let maxValue;\n let max = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (max < 0\n ? compare(value, value) === 0\n : compare(value, maxValue) > 0) {\n maxValue = value;\n max = index;\n }\n }\n return max;\n}\n\nfunction scan(values, compare) {\n const index = leastIndex(values, compare);\n return index < 0 ? undefined : index;\n}\n\nfunction shuffle(array, i0 = 0, i1 = array.length) {\n var m = i1 - (i0 = +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n\nfunction sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n\nfunction transpose(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length$1), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length$1(d) {\n return d.length;\n}\n\nfunction zip() {\n return transpose(arguments);\n}\n\nexport { bin, count, cross, cumsum, descending, deviation, extent, greatest, greatestIndex, group, groups, bin as histogram, least, leastIndex, maxIndex, mean, median, merge, minIndex, pairs, permute, rollup, rollups, scan, shuffle, sum, freedmanDiaconis as thresholdFreedmanDiaconis, scott as thresholdScott, sturges as thresholdSturges, transpose, variance, zip };\n", "var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nvar namespaces = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n\nfunction namespace(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nfunction creator(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n\nfunction none() {}\n\nfunction selector(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n\nfunction selection_select(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n\nfunction empty() {\n return [];\n}\n\nfunction selectorAll(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n\nfunction selection_selectAll(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n\nfunction matcher(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nfunction selection_filter(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n\nfunction sparse(update) {\n return new Array(update.length);\n}\n\nfunction selection_enter() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nfunction EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\nfunction constant(x) {\n return function() {\n return x;\n };\n}\n\nvar keyPrefix = \"$\"; // Protect against keys like \u201C__proto__\u201D.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don\u2019t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction selection_data(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\nfunction selection_exit() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n\nfunction selection_join(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n\nfunction selection_merge(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n\nfunction selection_order() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n\nfunction selection_sort(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction selection_call() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n\nfunction selection_nodes() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n\nfunction selection_node() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n\nfunction selection_size() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n\nfunction selection_empty() {\n return !this.node();\n}\n\nfunction selection_each(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nfunction selection_attr(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n\nfunction defaultView(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nfunction selection_style(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nfunction styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nfunction selection_property(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nfunction selection_classed(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n\nfunction textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nfunction selection_text(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nfunction selection_html(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n\nfunction raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nfunction selection_raise() {\n return this.each(raise);\n}\n\nfunction lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nfunction selection_lower() {\n return this.each(lower);\n}\n\nfunction selection_append(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n\nfunction constantNull() {\n return null;\n}\n\nfunction selection_insert(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n\nfunction remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nfunction selection_remove() {\n return this.each(remove);\n}\n\nfunction selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_clone(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n\nfunction selection_datum(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n\nvar filterEvents = {};\n\nvar event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nfunction selection_on(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nfunction customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nfunction selection_dispatch(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n\nvar root = [null];\n\nfunction Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport { Selection as S, selectorAll as a, selection as b, customEvent as c, styleValue as d, event as e, creator as f, namespaces as g, defaultView as h, matcher as m, namespace as n, root as r, selector as s };\n", "import { S as Selection, r as root, e as event } from './index-e88ffd88.js';\n\nfunction select(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n\nfunction sourceEvent() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n\nfunction point(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n\nfunction mouse(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n\nfunction touch(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n\nexport { sourceEvent as a, mouse as m, point as p, select as s, touch as t };\n", "import { f as creator, S as Selection, r as root } from './common/index-e88ffd88.js';\nexport { f as creator, c as customEvent, e as event, m as matcher, n as namespace, g as namespaces, b as selection, s as selector, a as selectorAll, d as style, h as window } from './common/index-e88ffd88.js';\nimport { s as select, a as sourceEvent, p as point } from './common/touch-775b0bb4.js';\nexport { p as clientPoint, m as mouse, s as select, t as touch } from './common/touch-775b0bb4.js';\n\nfunction create(name) {\n return select(creator(name).call(document.documentElement));\n}\n\nvar nextId = 0;\n\nfunction local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n\nfunction selectAll(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n\nfunction touches(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n\nexport { create, local, selectAll, touches };\n", "function define(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nfunction color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nfunction hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\nfunction basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nfunction basis$1(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\nfunction basisClosed(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\nfunction constant(x) {\n return function() {\n return x;\n };\n}\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nfunction hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n\nvar interpolateRgb = (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb$1(start, end) {\n var r = color((start = rgb(start)).r, (end = rgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb$1.gamma = rgbGamma;\n\n return rgb$1;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = rgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nvar rgbBasis = rgbSpline(basis$1);\nvar rgbBasisClosed = rgbSpline(basisClosed);\n\nexport { Color as C, Rgb as R, constant as a, hsl as b, color as c, define as d, extend as e, basis$1 as f, basisClosed as g, hue as h, interpolateRgb as i, rgbBasis as j, rgbBasisClosed as k, brighter as l, darker as m, nogamma as n, rgb as o, rgbConvert as r };\n", "import { R as Rgb, r as rgbConvert, d as define, e as extend, C as Color, l as brighter, m as darker, n as nogamma, h as hue } from './rgb-50db7803.js';\n\nvar deg2rad = Math.PI / 180;\nvar rad2deg = 180 / Math.PI;\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nfunction cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\nfunction cubehelix$1(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix$1(start, end) {\n var h = hue((start = cubehelix(start)).h, (end = cubehelix(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix$1.gamma = cubehelixGamma;\n\n return cubehelix$1;\n })(1);\n}\n\nvar cubehelix$2 = cubehelix$1(hue);\nvar cubehelixLong = cubehelix$1(nogamma);\n\nexport { cubehelixLong as a, cubehelix as b, cubehelix$2 as c, deg2rad as d, rad2deg as r };\n", "import { j as rgbBasis, o as rgb } from './common/rgb-50db7803.js';\nimport { a as cubehelixLong, b as cubehelix$1 } from './common/cubehelix-b37f4760.js';\n\nfunction colors(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n\nvar category10 = colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n\nvar Accent = colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n\nvar Dark2 = colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n\nvar Paired = colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n\nvar Pastel1 = colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n\nvar Pastel2 = colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n\nvar Set1 = colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n\nvar Set2 = colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n\nvar Set3 = colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n\nvar Tableau10 = colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n\nfunction ramp(scheme) {\n return rgbBasis(scheme[scheme.length - 1]);\n}\n\nvar scheme = new Array(3).concat(\n \"d8b365f5f5f55ab4ac\",\n \"a6611adfc27d80cdc1018571\",\n \"a6611adfc27df5f5f580cdc1018571\",\n \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nvar BrBG = ramp(scheme);\n\nvar scheme$1 = new Array(3).concat(\n \"af8dc3f7f7f77fbf7b\",\n \"7b3294c2a5cfa6dba0008837\",\n \"7b3294c2a5cff7f7f7a6dba0008837\",\n \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nvar PRGn = ramp(scheme$1);\n\nvar scheme$2 = new Array(3).concat(\n \"e9a3c9f7f7f7a1d76a\",\n \"d01c8bf1b6dab8e1864dac26\",\n \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nvar PiYG = ramp(scheme$2);\n\nvar scheme$3 = new Array(3).concat(\n \"998ec3f7f7f7f1a340\",\n \"5e3c99b2abd2fdb863e66101\",\n \"5e3c99b2abd2f7f7f7fdb863e66101\",\n \"542788998ec3d8daebfee0b6f1a340b35806\",\n \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nvar PuOr = ramp(scheme$3);\n\nvar scheme$4 = new Array(3).concat(\n \"ef8a62f7f7f767a9cf\",\n \"ca0020f4a58292c5de0571b0\",\n \"ca0020f4a582f7f7f792c5de0571b0\",\n \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nvar RdBu = ramp(scheme$4);\n\nvar scheme$5 = new Array(3).concat(\n \"ef8a62ffffff999999\",\n \"ca0020f4a582bababa404040\",\n \"ca0020f4a582ffffffbababa404040\",\n \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nvar RdGy = ramp(scheme$5);\n\nvar scheme$6 = new Array(3).concat(\n \"fc8d59ffffbf91bfdb\",\n \"d7191cfdae61abd9e92c7bb6\",\n \"d7191cfdae61ffffbfabd9e92c7bb6\",\n \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nvar RdYlBu = ramp(scheme$6);\n\nvar scheme$7 = new Array(3).concat(\n \"fc8d59ffffbf91cf60\",\n \"d7191cfdae61a6d96a1a9641\",\n \"d7191cfdae61ffffbfa6d96a1a9641\",\n \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nvar RdYlGn = ramp(scheme$7);\n\nvar scheme$8 = new Array(3).concat(\n \"fc8d59ffffbf99d594\",\n \"d7191cfdae61abdda42b83ba\",\n \"d7191cfdae61ffffbfabdda42b83ba\",\n \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nvar Spectral = ramp(scheme$8);\n\nvar scheme$9 = new Array(3).concat(\n \"e5f5f999d8c92ca25f\",\n \"edf8fbb2e2e266c2a4238b45\",\n \"edf8fbb2e2e266c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nvar BuGn = ramp(scheme$9);\n\nvar scheme$a = new Array(3).concat(\n \"e0ecf49ebcda8856a7\",\n \"edf8fbb3cde38c96c688419d\",\n \"edf8fbb3cde38c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nvar BuPu = ramp(scheme$a);\n\nvar scheme$b = new Array(3).concat(\n \"e0f3dba8ddb543a2ca\",\n \"f0f9e8bae4bc7bccc42b8cbe\",\n \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nvar GnBu = ramp(scheme$b);\n\nvar scheme$c = new Array(3).concat(\n \"fee8c8fdbb84e34a33\",\n \"fef0d9fdcc8afc8d59d7301f\",\n \"fef0d9fdcc8afc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nvar OrRd = ramp(scheme$c);\n\nvar scheme$d = new Array(3).concat(\n \"ece2f0a6bddb1c9099\",\n \"f6eff7bdc9e167a9cf02818a\",\n \"f6eff7bdc9e167a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nvar PuBuGn = ramp(scheme$d);\n\nvar scheme$e = new Array(3).concat(\n \"ece7f2a6bddb2b8cbe\",\n \"f1eef6bdc9e174a9cf0570b0\",\n \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nvar PuBu = ramp(scheme$e);\n\nvar scheme$f = new Array(3).concat(\n \"e7e1efc994c7dd1c77\",\n \"f1eef6d7b5d8df65b0ce1256\",\n \"f1eef6d7b5d8df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nvar PuRd = ramp(scheme$f);\n\nvar scheme$g = new Array(3).concat(\n \"fde0ddfa9fb5c51b8a\",\n \"feebe2fbb4b9f768a1ae017e\",\n \"feebe2fbb4b9f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nvar RdPu = ramp(scheme$g);\n\nvar scheme$h = new Array(3).concat(\n \"edf8b17fcdbb2c7fb8\",\n \"ffffcca1dab441b6c4225ea8\",\n \"ffffcca1dab441b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nvar YlGnBu = ramp(scheme$h);\n\nvar scheme$i = new Array(3).concat(\n \"f7fcb9addd8e31a354\",\n \"ffffccc2e69978c679238443\",\n \"ffffccc2e69978c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nvar YlGn = ramp(scheme$i);\n\nvar scheme$j = new Array(3).concat(\n \"fff7bcfec44fd95f0e\",\n \"ffffd4fed98efe9929cc4c02\",\n \"ffffd4fed98efe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nvar YlOrBr = ramp(scheme$j);\n\nvar scheme$k = new Array(3).concat(\n \"ffeda0feb24cf03b20\",\n \"ffffb2fecc5cfd8d3ce31a1c\",\n \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nvar YlOrRd = ramp(scheme$k);\n\nvar scheme$l = new Array(3).concat(\n \"deebf79ecae13182bd\",\n \"eff3ffbdd7e76baed62171b5\",\n \"eff3ffbdd7e76baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nvar Blues = ramp(scheme$l);\n\nvar scheme$m = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nvar Greens = ramp(scheme$m);\n\nvar scheme$n = new Array(3).concat(\n \"f0f0f0bdbdbd636363\",\n \"f7f7f7cccccc969696525252\",\n \"f7f7f7cccccc969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nvar Greys = ramp(scheme$n);\n\nvar scheme$o = new Array(3).concat(\n \"efedf5bcbddc756bb1\",\n \"f2f0f7cbc9e29e9ac86a51a3\",\n \"f2f0f7cbc9e29e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nvar Purples = ramp(scheme$o);\n\nvar scheme$p = new Array(3).concat(\n \"fee0d2fc9272de2d26\",\n \"fee5d9fcae91fb6a4acb181d\",\n \"fee5d9fcae91fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nvar Reds = ramp(scheme$p);\n\nvar scheme$q = new Array(3).concat(\n \"fee6cefdae6be6550d\",\n \"feeddefdbe85fd8d3cd94701\",\n \"feeddefdbe85fd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nvar Oranges = ramp(scheme$q);\n\nfunction cividis(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))\n + \")\";\n}\n\nvar cubehelix = cubehelixLong(cubehelix$1(300, 0.5, 0.0), cubehelix$1(-240, 0.5, 1.0));\n\nvar warm = cubehelixLong(cubehelix$1(-100, 0.75, 0.35), cubehelix$1(80, 1.50, 0.8));\n\nvar cool = cubehelixLong(cubehelix$1(260, 0.75, 0.35), cubehelix$1(80, 1.50, 0.8));\n\nvar c = cubehelix$1();\n\nfunction rainbow(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n\nvar c$1 = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\n\nfunction sinebow(t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c$1.r = 255 * (x = Math.sin(t)) * x;\n c$1.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c$1.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c$1 + \"\";\n}\n\nfunction turbo(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))\n + \")\";\n}\n\nfunction ramp$1(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nvar viridis = ramp$1(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nvar magma = ramp$1(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nvar inferno = ramp$1(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nvar plasma = ramp$1(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n\nexport { Blues as interpolateBlues, BrBG as interpolateBrBG, BuGn as interpolateBuGn, BuPu as interpolateBuPu, cividis as interpolateCividis, cool as interpolateCool, cubehelix as interpolateCubehelixDefault, GnBu as interpolateGnBu, Greens as interpolateGreens, Greys as interpolateGreys, inferno as interpolateInferno, magma as interpolateMagma, OrRd as interpolateOrRd, Oranges as interpolateOranges, PRGn as interpolatePRGn, PiYG as interpolatePiYG, plasma as interpolatePlasma, PuBu as interpolatePuBu, PuBuGn as interpolatePuBuGn, PuOr as interpolatePuOr, PuRd as interpolatePuRd, Purples as interpolatePurples, rainbow as interpolateRainbow, RdBu as interpolateRdBu, RdGy as interpolateRdGy, RdPu as interpolateRdPu, RdYlBu as interpolateRdYlBu, RdYlGn as interpolateRdYlGn, Reds as interpolateReds, sinebow as interpolateSinebow, Spectral as interpolateSpectral, turbo as interpolateTurbo, viridis as interpolateViridis, warm as interpolateWarm, YlGn as interpolateYlGn, YlGnBu as interpolateYlGnBu, YlOrBr as interpolateYlOrBr, YlOrRd as interpolateYlOrRd, Accent as schemeAccent, scheme$l as schemeBlues, scheme as schemeBrBG, scheme$9 as schemeBuGn, scheme$a as schemeBuPu, category10 as schemeCategory10, Dark2 as schemeDark2, scheme$b as schemeGnBu, scheme$m as schemeGreens, scheme$n as schemeGreys, scheme$c as schemeOrRd, scheme$q as schemeOranges, scheme$1 as schemePRGn, Paired as schemePaired, Pastel1 as schemePastel1, Pastel2 as schemePastel2, scheme$2 as schemePiYG, scheme$e as schemePuBu, scheme$d as schemePuBuGn, scheme$3 as schemePuOr, scheme$f as schemePuRd, scheme$o as schemePurples, scheme$4 as schemeRdBu, scheme$5 as schemeRdGy, scheme$g as schemeRdPu, scheme$6 as schemeRdYlBu, scheme$7 as schemeRdYlGn, scheme$p as schemeReds, Set1 as schemeSet1, Set2 as schemeSet2, Set3 as schemeSet3, scheme$8 as schemeSpectral, Tableau10 as schemeTableau10, scheme$i as schemeYlGn, scheme$h as schemeYlGnBu, scheme$j as schemeYlOrBr, scheme$k as schemeYlOrRd };\n", "// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nfunction formatDecimal(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, \u00B1Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n\nfunction exponent(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n\nfunction formatGroup(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n\nfunction formatNumerals(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nfunction formatTrim(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n\nvar prefixExponent;\n\nfunction formatPrefixAuto(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n\nfunction formatRounded(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n\nvar formatTypes = {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n\nfunction identity(x) {\n return x;\n}\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"\u00B5\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nfunction formatLocale(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer \u201Cvalue\u201D part that can be\n // grouped, and fractional or exponential \u201Csuffix\u201D part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n\nvar locale;\nvar format;\nvar formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nfunction defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n\nfunction precisionFixed(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n\nfunction precisionPrefix(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n\nfunction precisionRound(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n\nexport { FormatSpecifier as F, formatPrefix as a, formatLocale as b, formatSpecifier as c, defaultLocale as d, precisionPrefix as e, format as f, precisionRound as g, precisionFixed as p };\n", "function interpolateNumber(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nfunction interpolateString(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: interpolateNumber(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n\nexport { interpolateString as a, interpolateNumber as i };\n", "import { a as constant, c as color, i as interpolateRgb } from './rgb-50db7803.js';\nimport { i as interpolateNumber, a as interpolateString } from './string-cfd0b55d.js';\n\nfunction numberArray(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nfunction isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nfunction array(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nfunction genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = interpolate(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n\nfunction date(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n\nfunction object(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = interpolate(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n\nfunction interpolate(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? interpolateNumber\n : t === \"string\" ? ((c = color(b)) ? (b = c, interpolateRgb) : interpolateString)\n : b instanceof color ? interpolateRgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : interpolateNumber)(a, b);\n}\n\nexport { array as a, date as d, interpolate as i, numberArray as n, object as o };\n", "function interpolateRound(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n\nfunction piecewise(interpolate, values) {\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n\nexport { interpolateRound as i, piecewise as p };\n", "import { s as sequence, b as bisect, t as tickStep, i as ticks, j as tickIncrement, a as ascending, q as quantile$1, e as bisector } from './common/quantile-0d207231.js';\nimport './common/rgb-50db7803.js';\nimport { i as interpolate } from './common/value-2cd045dd.js';\nimport { i as interpolateNumber } from './common/string-cfd0b55d.js';\nimport { i as interpolateRound, p as piecewise } from './common/piecewise-ef887050.js';\nimport { c as formatSpecifier, p as precisionFixed, g as precisionRound, e as precisionPrefix, a as formatPrefix, f as format } from './common/precisionRound-dc953fe5.js';\nimport { t as timeDay, s as sunday, a as timeYear, u as utcDay, b as utcSunday, c as utcYear } from './common/utcYear-c83ede8f.js';\nimport { u as utcMillisecond, a as utcSecond, t as timeMinute, b as timeHour, c as timeMonth, d as utcMinute, e as utcHour, f as utcMonth } from './common/utcMonth-4fcc394c.js';\nimport { t as timeFormat, u as utcFormat } from './common/defaultLocale-579b98ca.js';\n\nfunction initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nfunction initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n\nconst implicit = Symbol(\"implicit\");\n\nfunction ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nfunction band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nfunction point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n\nfunction constant(x) {\n return function() {\n return x;\n };\n}\n\nfunction number(x) {\n return +x;\n}\n\nvar unit = [0, 1];\n\nfunction identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nfunction copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nfunction transformer() {\n var domain = unit,\n range = unit,\n interpolate$1 = interpolate,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate$1)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate$1 = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate$1 = _, rescale()) : interpolate$1;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nfunction continuous() {\n return transformer()(identity, identity);\n}\n\nfunction tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n\nfunction linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nfunction linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n\nfunction identity$1(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity$1(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n\nfunction nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nfunction loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nfunction log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nfunction symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nfunction symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nfunction powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nfunction pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nfunction sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nfunction radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n\nfunction quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = quantile$1(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n\nfunction quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n\nfunction threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number$1(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nfunction calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target),\n step;\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n return interval.every(step);\n }\n\n return interval;\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number$1)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1]))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nfunction time() {\n return initRange.apply(calendar(timeYear, timeMonth, sunday, timeDay, timeHour, timeMinute, utcSecond, utcMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n\nfunction utcTime() {\n return initRange.apply(calendar(utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n\nfunction transformer$1() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nfunction copy$1(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nfunction sequential() {\n var scale = linearish(transformer$1()(identity));\n\n scale.copy = function() {\n return copy$1(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nfunction sequentialLog() {\n var scale = loggish(transformer$1()).domain([1, 10]);\n\n scale.copy = function() {\n return copy$1(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nfunction sequentialSymlog() {\n var scale = symlogish(transformer$1());\n\n scale.copy = function() {\n return copy$1(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nfunction sequentialPow() {\n var scale = powish(transformer$1());\n\n scale.copy = function() {\n return copy$1(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nfunction sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n\nfunction sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile$1(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nfunction transformer$2() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nfunction diverging() {\n var scale = linearish(transformer$2()(identity));\n\n scale.copy = function() {\n return copy$1(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nfunction divergingLog() {\n var scale = loggish(transformer$2()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy$1(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nfunction divergingSymlog() {\n var scale = symlogish(transformer$2());\n\n scale.copy = function() {\n return copy$1(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nfunction divergingPow() {\n var scale = powish(transformer$2());\n\n scale.copy = function() {\n return copy$1(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nfunction divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n\nexport { band as scaleBand, diverging as scaleDiverging, divergingLog as scaleDivergingLog, divergingPow as scaleDivergingPow, divergingSqrt as scaleDivergingSqrt, divergingSymlog as scaleDivergingSymlog, identity$1 as scaleIdentity, implicit as scaleImplicit, linear as scaleLinear, log as scaleLog, ordinal as scaleOrdinal, point as scalePoint, pow as scalePow, quantile as scaleQuantile, quantize as scaleQuantize, radial as scaleRadial, sequential as scaleSequential, sequentialLog as scaleSequentialLog, sequentialPow as scaleSequentialPow, sequentialQuantile as scaleSequentialQuantile, sequentialSqrt as scaleSequentialSqrt, sequentialSymlog as scaleSequentialSymlog, sqrt as scaleSqrt, symlog as scaleSymlog, threshold as scaleThreshold, time as scaleTime, utcTime as scaleUtc, tickFormat };\n", "var slice = Array.prototype.slice;\n\nfunction identity(x) {\n return x;\n}\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function(d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nfunction axisTop(scale) {\n return axis(top, scale);\n}\n\nfunction axisRight(scale) {\n return axis(right, scale);\n}\n\nfunction axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nfunction axisLeft(scale) {\n return axis(left, scale);\n}\n\nexport { axisBottom, axisLeft, axisRight, axisTop };\n", "var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We\u2019re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nfunction constant(x) {\n return function constant() {\n return x;\n };\n}\n\nvar abs = Math.abs;\nvar atan2 = Math.atan2;\nvar cos = Math.cos;\nvar max = Math.max;\nvar min = Math.min;\nvar sin = Math.sin;\nvar sqrt = Math.sqrt;\n\nvar epsilon$1 = 1e-12;\nvar pi$1 = Math.PI;\nvar halfPi = pi$1 / 2;\nvar tau$1 = 2 * pi$1;\n\nfunction acos(x) {\n return x > 1 ? 0 : x < -1 ? pi$1 : Math.acos(x);\n}\n\nfunction asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon$1) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nfunction arc() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon$1)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau$1 - epsilon$1) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon$1) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon$1) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 \u2265 r0, da1 \u2265 da0.\n if (rp > epsilon$1) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon$1) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon$1) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon$1) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi$1 && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon$1)) context.moveTo(x01, y01);\n\n // Does the sector\u2019s outer ring have rounded corners?\n else if (rc1 > epsilon$1) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it\u2019s a circular sector?\n // Or perhaps it\u2019s an annular sector collapsed due to padding?\n if (!(r0 > epsilon$1) || !(da0 > epsilon$1)) context.lineTo(x10, y10);\n\n // Does the sector\u2019s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon$1) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi$1 / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n\nfunction Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nfunction curveLinear(context) {\n return new Linear(context);\n}\n\nfunction x(p) {\n return p[0];\n}\n\nfunction y(p) {\n return p[1];\n}\n\nfunction line() {\n var x$1 = x,\n y$1 = y,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x$1 = typeof _ === \"function\" ? _ : constant(+_), line) : x$1;\n };\n\n line.y = function(_) {\n return arguments.length ? (y$1 = typeof _ === \"function\" ? _ : constant(+_), line) : y$1;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n\nfunction area() {\n var x0 = x,\n x1 = null,\n y0 = constant(0),\n y1 = y,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n\nfunction descending(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n\nfunction identity(d) {\n return d;\n}\n\nfunction pie() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau$1),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau$1, Math.max(-tau$1, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n\nvar curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nfunction curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n\nfunction lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nfunction lineRadial$1() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n\nfunction areaRadial() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n\nfunction pointRadial(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n\nvar slice = Array.prototype.slice;\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x$1 = x,\n y$1 = y,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x$1.apply(this, (argv[0] = s, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x$1 = typeof _ === \"function\" ? _ : constant(+_), link) : x$1;\n };\n\n link.y = function(_) {\n return arguments.length ? (y$1 = typeof _ === \"function\" ? _ : constant(+_), link) : y$1;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial$1(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nfunction linkHorizontal() {\n return link(curveHorizontal);\n}\n\nfunction linkVertical() {\n return link(curveVertical);\n}\n\nfunction linkRadial() {\n var l = link(curveRadial$1);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n\nvar circle = {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi$1);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau$1);\n }\n};\n\nvar cross = {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n\nvar tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nvar diamond = {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi$1 / 10) / Math.sin(7 * pi$1 / 10),\n kx = Math.sin(tau$1 / 10) * kr,\n ky = -Math.cos(tau$1 / 10) * kr;\n\nvar star = {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau$1 * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n\nvar square = {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n\nvar sqrt3 = Math.sqrt(3);\n\nvar triangle = {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n\nvar c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nvar wye = {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n\nvar symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nfunction symbol() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n\nfunction noop() {}\n\nfunction point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nfunction Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nfunction basis(context) {\n return new Basis(context);\n}\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nfunction basisClosed(context) {\n return new BasisClosed(context);\n}\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nfunction basisOpen(context) {\n return new BasisOpen(context);\n}\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nvar bundle = (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n\nfunction point$1(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nfunction Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point$1(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point$1(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar cardinal = (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\nfunction CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point$1(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar cardinalClosed = (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\nfunction CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point$1(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar cardinalOpen = (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\nfunction point$2(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon$1) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon$1) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point$2(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar catmullRom = (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point$2(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar catmullRomClosed = (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point$2(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar catmullRomOpen = (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nfunction linearClosed(context) {\n return new LinearClosed(context);\n}\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic B\u00E9zier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point$3(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point$3(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point$3(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point$3(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n};\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nfunction monotoneX(context) {\n return new MonotoneX(context);\n}\n\nfunction monotoneY(context) {\n return new MonotoneY(context);\n}\n\nfunction Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nfunction natural(context) {\n return new Natural(context);\n}\n\nfunction Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nfunction step(context) {\n return new Step(context, 0.5);\n}\n\nfunction stepBefore(context) {\n return new Step(context, 0);\n}\n\nfunction stepAfter(context) {\n return new Step(context, 1);\n}\n\nfunction none(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n\nfunction none$1(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stack() {\n var keys = constant([]),\n order = none$1,\n offset = none,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? none$1 : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? none : _, stack) : offset;\n };\n\n return stack;\n}\n\nfunction expand(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n\nfunction diverging(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n\nfunction silhouette(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n\nfunction wiggle(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n\nfunction appearance(series) {\n var peaks = series.map(peak);\n return none$1(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n\nfunction ascending(series) {\n var sums = series.map(sum);\n return none$1(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nfunction sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n\nfunction descending$1(series) {\n return ascending(series).reverse();\n}\n\nfunction insideOut(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n\nfunction reverse(series) {\n return none$1(series).reverse();\n}\n\nexport { arc, area, areaRadial, basis as curveBasis, basisClosed as curveBasisClosed, basisOpen as curveBasisOpen, bundle as curveBundle, cardinal as curveCardinal, cardinalClosed as curveCardinalClosed, cardinalOpen as curveCardinalOpen, catmullRom as curveCatmullRom, catmullRomClosed as curveCatmullRomClosed, catmullRomOpen as curveCatmullRomOpen, curveLinear, linearClosed as curveLinearClosed, monotoneX as curveMonotoneX, monotoneY as curveMonotoneY, natural as curveNatural, step as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore, line, lineRadial$1 as lineRadial, linkHorizontal, linkRadial, linkVertical, pie, pointRadial, areaRadial as radialArea, lineRadial$1 as radialLine, stack, diverging as stackOffsetDiverging, expand as stackOffsetExpand, none as stackOffsetNone, silhouette as stackOffsetSilhouette, wiggle as stackOffsetWiggle, appearance as stackOrderAppearance, ascending as stackOrderAscending, descending$1 as stackOrderDescending, insideOut as stackOrderInsideOut, none$1 as stackOrderNone, reverse as stackOrderReverse, symbol, circle as symbolCircle, cross as symbolCross, diamond as symbolDiamond, square as symbolSquare, star as symbolStar, triangle as symbolTriangle, wye as symbolWye, symbols };\n", "import { i as interpolateNumber } from './string-cfd0b55d.js';\n\nvar degrees = 180 / Math.PI;\n\nvar identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nfunction decompose(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nfunction parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nfunction parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: interpolateNumber(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: interpolateNumber(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nvar interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\nexport { interpolateTransformCss as a, interpolateTransformSvg as i };\n", "var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nfunction interpolateZoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 \u2245 u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n };\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n };\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n\nexport { interpolateZoom as i };\n", "import { n as namespace, m as matcher, s as selector, a as selectorAll, b as selection, d as styleValue } from './index-e88ffd88.js';\nimport { c as color, i as interpolateRgb } from './rgb-50db7803.js';\nimport { i as interpolateNumber, a as interpolateString } from './string-cfd0b55d.js';\nimport { i as interpolateTransformSvg, a as interpolateTransformCss } from './index-f3df269c.js';\n\nvar noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nvar frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nfunction Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nfunction timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nfunction timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we\u2019ve set an alarm, if we haven\u2019t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n\nfunction timeout$1(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar RUNNING = 4;\nvar ENDING = 5;\nvar ENDED = 6;\n\nfunction schedule(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nfunction init(node, id) {\n var schedule = get$1(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nfunction set$1(node, id) {\n var schedule = get$1(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nfunction get$1(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout$1(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout$1(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n\nfunction interrupt(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n\nfunction selection_interrupt(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set$1(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we\u2019re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set$1(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we\u2019re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction transition_tween(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get$1(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nfunction tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set$1(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get$1(node, id).value[name];\n };\n}\n\nfunction interpolate(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction transition_attr(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransformSvg : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction transition_attrTween(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nfunction transition_delay(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get$1(this.node(), id).delay;\n}\n\nfunction durationFunction(id, value) {\n return function() {\n set$1(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set$1(this, id).duration = value;\n };\n}\n\nfunction transition_duration(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get$1(this.node(), id).duration;\n}\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set$1(this, id).ease = value;\n };\n}\n\nfunction transition_ease(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get$1(this.node(), id).ease;\n}\n\nfunction transition_filter(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n\nfunction transition_merge(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set$1;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nfunction transition_on(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get$1(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n\nfunction removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nfunction transition_remove() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n\nfunction transition_select(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get$1(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n\nfunction transition_selectAll(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get$1(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n\nvar Selection = selection.prototype.constructor;\n\nfunction transition_selection() {\n return new Selection(this._groups, this._parents);\n}\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = styleValue(this, name),\n string1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = styleValue(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = styleValue(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set$1(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nfunction transition_style(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransformCss : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n\nfunction styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nfunction transition_styleTween(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nfunction transition_text(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n\nfunction textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction transition_textTween(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n\nfunction transition_transition() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get$1(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n\nfunction transition_end() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set$1(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}\n\nvar id = 0;\n\nfunction Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nfunction transition(name) {\n return selection().transition(name);\n}\n\nfunction newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};\n\nfunction cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: cubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nfunction selection_transition(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n\nexport { SCHEDULED as S, Transition as T, dispatch as d, interrupt as i, transition as t };\n", "import { e as event } from './index-e88ffd88.js';\nimport { s as select } from './touch-775b0bb4.js';\n\nfunction noevent() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n\nfunction dragDisable(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nfunction yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n\nexport { dragDisable as d, yesdrag as y };\n"], "mappings": "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", "names": [] }