diff --git a/README.md b/README.md
index fc197e0674..793208ec82 100644
--- a/README.md
+++ b/README.md
@@ -293,19 +293,20 @@ For a *band* scale, you can further fine-tune padding:
Align defaults to 0.5 (centered). Band scale padding defaults to 0.1 (10% of available space reserved for separating bands), while point scale padding defaults to 0.5 (the gap between the first point and the edge is half the distance of the gap between points, and likewise for the gap between the last point and the opposite edge). Note that rounding and mark insets (e.g., for bars and rects) also affect separation between adjacent marks.
-Plot automatically generates axes for position scales. You can configure these axes with the following options:
+Plot automatically generates [axis](#axis) and optionally [grid](#grid) marks for position scales. (For more control, declare these marks explicitly.) You can configure the implicit axes with the following scale options:
-* *scale*.**axis** - the orientation: *top* or *bottom* for *x*; *left* or *right* for *y*; null to suppress
-* *scale*.**ticks** - the approximate number of ticks to generate
-* *scale*.**tickSize** - the size of each tick (in pixels; default 6)
+* *scale*.**axis** - the orientation: *top* or *bottom* for *x* and *fx*; *left* or *right* for *y* and *fy*; null to suppress
+* *scale*.**ticks** - the approximate number of ticks to generate, or interval, or array of values
+* *scale*.**tickSize** - the length of each tick (in pixels; default 6 for *x* and *y*, or 0 for *fx* and *fy*)
+* *scale*.**tickSpacing** - the approximate number of pixels between ticks (if *scale*.**ticks** is not specified)
* *scale*.**tickPadding** - the separation between the tick and its label (in pixels; default 3)
-* *scale*.**tickFormat** - to format tick values, either a function or format specifier string; see [Formats](#formats)
+* *scale*.**tickFormat** - either a function or specifier string to format tick values; see [Formats](#formats)
* *scale*.**tickRotate** - whether to rotate tick labels (an angle in degrees clockwise; default 0)
* *scale*.**grid** - if true, draw grid lines across the plot for each tick
-* *scale*.**line** - if true, draw the axis line
+* *scale*.**line** - if true, draw the axis line (only for *x* and *y*)
* *scale*.**label** - a string to label the axis
* *scale*.**labelAnchor** - the label anchor: *top*, *right*, *bottom*, *left*, or *center*
-* *scale*.**labelOffset** - the label position offset (in pixels; default 0, typically for facet axes)
+* *scale*.**labelOffset** - the label position offset (in pixels; default depends on margins and orientation)
* *scale*.**fontVariant** - the font-variant attribute for axis ticks; defaults to tabular-nums for quantitative axes
* *scale*.**ariaLabel** - a short label representing the axis in the accessibility tree
* *scale*.**ariaDescription** - a textual description for the axis
@@ -585,6 +586,12 @@ When top-level faceting is used, the default *auto* setting is equivalent to *in
When mark-level faceting is used, the default *auto* setting is equivalent to *include*: the mark will be faceted if either the *mark*.**fx** or *mark*.**fy** channel option (or both) is specified. The null or false option will disable faceting, while *exclude* draws the subset of the mark’s data *not* in the current facet.
+The *mark*.**facetAnchor** option controls TK. It supports the following settings:
+
+* null - display the mark on each non-empty facet (default for all marks, with the exception of axis marks)
+* *top*, *right*, *bottom*, or *left* - display the mark on facets on the specified side
+* *top-empty*, *right-empty*, *bottom-empty*, or *left-empty* - display the mark on facets that have an empty space on the specified side (the empty space being either the margin, or an empty facet); this is the default for axis marks
+
## Legends
Plot can generate legends for *color*, *opacity*, and *symbol* [scales](#scale-options). (An opacity scale is treated as a color scale with varying transparency.) For an inline legend, use the *scale*.**legend** option:
@@ -958,6 +965,50 @@ Returns a new arrow with the given *data* and *options*.
+### Axis
+
+[Source](./src/marks/axis.js) · [Examples](https://observablehq.com/@observablehq/plot-axis) · Draws an axis.
+
+Plot automatically generates axes for position scales, and draws them below the other marks. Each axis is composed of up to 5 marks: a grid, and an axis mark which might contain a line, ticks, tick labels, and axis label.
+
+When you need more control, you can add axis and grid marks explicitly in the marks options. Note that Plot’s automatic axis for *x* is disabled when a mark’s aria-label property begins by `x-axis `—and likewise for *y*, *fx*, and *fy*.
+
+The optional *data* is an array of tick values—it defaults to the scale’s ticks.
+
+The axis options described in [position options](#position-options) are all supported, except the **grid** option which is handled by the [grid](#grid) mark. The **y** channel, if any, describes the vertical position of the tick and defaults to the axis anchor.
+
+The **axis** option, in this context, is called **anchor** and is one of *top* or *bottom*.
+
+The **color** option controls both **stroke** for the ticks, and the **fill** for labels. It defaults to currentColor.
+
+The (rarely used) text label’s stroke is controlled by the **textStroke**,**textStrokeOpacity**, and **textStrokeWidth** options.
+
+The **facetAnchor** option defaults to *bottom-empty* if anchor is bottom, and *top-empty* if anchor is top. This ensures the proper positioning of the axes with respect to empty facets.
+
+#### Plot.axisX(*data*, *options*)
+
+
+
+```js
+Plot.axisX({anchor: "bottom"})
+```
+
+Returns a new *x*-axis with the given *options*.
+
+
+
+#### Plot.axisY(*data*, *options*)
+
+…same…
+
+#### Plot.axisFx(*data*, *options*)
+
+…same…
+
+#### Plot.axisFy(*data*, *options*)
+
+…same…
+
### Bar
[
](https://observablehq.com/@observablehq/plot-bar)
@@ -1358,6 +1409,52 @@ Plot.graticule()
Returns a new geo mark with a [default 10° global graticule](https://github.com/d3/d3-geo/blob/main/README.md#geoGraticule10) geometry object and the given *options*.
+### Grid
+
+[Source](./src/marks/axis.js) · [Examples](https://observablehq.com/@observablehq/plot-axis) · Draws an axis-aligned grid.
+
+The optional *data* is an array of tick values—it defaults to the scale’s ticks. The grid mark draws a line for each tick value, across the whole frame.
+
+The following options are supported:
+
+* **strokeDasharray** - the [stroke dasharray](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray) for dashed lines, defaults to null
+
+The following options are supported as constant or data-driven channels:
+
+* **stroke** - the grid color, defaults to currentColor
+* **strokeWidth** - the grid’s line width, defaults to 1
+* **strokeOpacity** - the stroke opacity, defaults to 0.1
+* **y1** - the start of the line, a channel of y positions.
+* **y2** - the end of the line, a channel of y positions.
+
+All the other common options are supported when applicable (e.g., **title**).
+
+#### Plot.gridX(*data*, *options*)
+
+
+
+```js
+Plot.gridX({strokeDasharray: "5,3"})
+```
+
+Returns a new *x*-grid with the given *options*.
+
+
+
+#### Plot.gridY(*data*, *options*)
+
+…same…
+
+
+#### Plot.gridFx(*data*, *options*)
+
+…same…
+
+#### Plot.gridFy(*data*, *options*)
+
+…same…
+
+
### Hexgrid
The hexgrid mark can be used to support marks using the [hexbin](#hexbin) layout.
@@ -1950,7 +2047,7 @@ For example, to draw bars only for letters that commonly form vowels:
Plot.barY(alphabet, {filter: d => /[aeiou]/i.test(d.letter), x: "letter", y: "frequency"})
```
-The **filter** transform is similar to filtering the data with [*array*.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), except that it will preserve [faceting](#faceting) and will not affect inferred [scale domains](#scale-options); domains are inferred from the unfiltered channel values.
+The **filter** transform is similar to filtering the data with [*array*.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), except that it will preserve [faceting](#facet-options) and will not affect inferred [scale domains](#scale-options); domains are inferred from the unfiltered channel values.
```js
Plot.barY(alphabet.filter(d => /[aeiou]/i.test(d.letter)), {x: "letter", y: "frequency"})
diff --git a/src/axes.js b/src/axes.js
index 672ae94c06..8ff27f4084 100644
--- a/src/axes.js
+++ b/src/axes.js
@@ -1,172 +1,22 @@
-import {extent} from "d3";
-import {AxisX, AxisY} from "./axis.js";
-import {formatDefault} from "./format.js";
-import {isOrdinalScale, isTemporalScale, scaleOrder} from "./scales.js";
-import {position, registry} from "./scales/index.js";
-
-export function Axes(
- {x: xScale, y: yScale, fx: fxScale, fy: fyScale},
- {
- x = {},
- y = {},
- fx = {},
- fy = {},
- axis = true,
- grid,
- line,
- label,
- facet: {axis: facetAxis = axis, grid: facetGrid, label: facetLabel = label} = {}
- } = {}
-) {
- let {axis: xAxis = axis} = x;
- let {axis: yAxis = axis} = y;
- let {axis: fxAxis = facetAxis} = fx;
- let {axis: fyAxis = facetAxis} = fy;
- if (!xScale) xAxis = null;
- else if (xAxis === true) xAxis = "bottom";
- if (!yScale) yAxis = null;
- else if (yAxis === true) yAxis = "left";
- if (!fxScale) fxAxis = null;
- else if (fxAxis === true) fxAxis = xAxis === "bottom" ? "top" : "bottom";
- if (!fyScale) fyAxis = null;
- else if (fyAxis === true) fyAxis = yAxis === "left" ? "right" : "left";
- return {
- ...(xAxis && {x: new AxisX(xScale, {grid, line, label, ...x, axis: xAxis})}),
- ...(yAxis && {y: new AxisY(yScale, {grid, line, label, ...y, axis: yAxis})}),
- ...(fxAxis && {fx: new AxisX(fxScale, {name: "fx", grid: facetGrid, label: facetLabel, ...fx, axis: fxAxis})}),
- ...(fyAxis && {fy: new AxisY(fyScale, {name: "fy", grid: facetGrid, label: facetLabel, ...fy, axis: fyAxis})})
- };
-}
-
-// Mutates axis.ticks!
-// TODO Populate tickFormat if undefined, too?
-export function autoAxisTicks({x, y, fx, fy}, {x: xAxis, y: yAxis, fx: fxAxis, fy: fyAxis}) {
- if (fxAxis) autoAxisTicksK(fx, fxAxis, 80);
- if (fyAxis) autoAxisTicksK(fy, fyAxis, 35);
- if (xAxis) autoAxisTicksK(x, xAxis, 80);
- if (yAxis) autoAxisTicksK(y, yAxis, 35);
-}
-
-function autoAxisTicksK(scale, axis, k) {
- if (axis.ticks === undefined) {
- const interval = scale.interval;
- if (interval !== undefined) {
- const [min, max] = extent(scale.scale.domain());
- axis.ticks = interval.range(interval.floor(min), interval.offset(interval.floor(max)));
- } else {
- const [min, max] = extent(scale.scale.range());
- axis.ticks = (max - min) / k;
- }
- }
- // D3’s ordinal scales simply use toString by default, but if the ordinal
- // scale domain (or ticks) are numbers or dates (say because we’re applying a
- // time interval to the ordinal scale), we want Plot’s default formatter.
- if (axis.tickFormat === undefined && isOrdinalScale(scale)) {
- axis.tickFormat = formatDefault;
- }
-}
-
-// Mutates axis.{label,labelAnchor,labelOffset} and scale.label!
-export function autoScaleLabels(channels, scales, {x, y, fx, fy}, dimensions, options) {
- if (fx) {
- autoAxisLabelsX(fx, scales.fx, channels.get("fx"));
- if (fx.labelOffset === undefined) {
- const {facetMarginTop, facetMarginBottom} = dimensions;
- fx.labelOffset = fx.axis === "top" ? facetMarginTop : facetMarginBottom;
- }
- }
- if (fy) {
- autoAxisLabelsY(fy, fx, scales.fy, channels.get("fy"));
- if (fy.labelOffset === undefined) {
- const {facetMarginLeft, facetMarginRight} = dimensions;
- fy.labelOffset = fy.axis === "left" ? facetMarginLeft : facetMarginRight;
- }
- }
- if (x) {
- autoAxisLabelsX(x, scales.x, channels.get("x"));
- if (x.labelOffset === undefined) {
- const {marginTop, marginBottom, facetMarginTop, facetMarginBottom} = dimensions;
- x.labelOffset = x.axis === "top" ? marginTop - facetMarginTop : marginBottom - facetMarginBottom;
- }
- }
- if (y) {
- autoAxisLabelsY(y, x, scales.y, channels.get("y"));
- if (y.labelOffset === undefined) {
- const {marginRight, marginLeft, facetMarginLeft, facetMarginRight} = dimensions;
- y.labelOffset = y.axis === "left" ? marginLeft - facetMarginLeft : marginRight - facetMarginRight;
- }
- }
- for (const [key, type] of registry) {
- if (type !== position && scales[key]) {
- // not already handled above
- autoScaleLabel(key, scales[key], channels.get(key), options[key]);
- }
- }
-}
-
-// Mutates axis.labelAnchor, axis.label, scale.label!
-function autoAxisLabelsX(axis, scale, channels) {
- if (axis.labelAnchor === undefined) {
- axis.labelAnchor = isOrdinalScale(scale) ? "center" : scaleOrder(scale) < 0 ? "left" : "right";
- }
- if (axis.label === undefined) {
- axis.label = inferLabel(channels, scale, axis, "x");
- }
- scale.label = axis.label;
-}
-
-// Mutates axis.labelAnchor, axis.label, scale.label!
-function autoAxisLabelsY(axis, opposite, scale, channels) {
- if (axis.labelAnchor === undefined) {
- axis.labelAnchor = isOrdinalScale(scale)
- ? "center"
- : opposite && opposite.axis === "top"
- ? "bottom" // TODO scaleOrder?
- : "top";
- }
- if (axis.label === undefined) {
- axis.label = inferLabel(channels, scale, axis, "y");
- }
- scale.label = axis.label;
-}
-
-// Mutates scale.label!
-function autoScaleLabel(key, scale, channels, options) {
- if (options) {
- scale.label = options.label;
- }
- if (scale.label === undefined) {
- scale.label = inferLabel(channels, scale, null, key);
- }
-}
-
-// Channels can have labels; if all the channels for a given scale are
-// consistently labeled (i.e., have the same value if not undefined), and the
-// corresponding axis doesn’t already have an explicit label, then the channels’
-// label is promoted to the corresponding axis.
-function inferLabel(channels = [], scale, axis, key) {
- let candidate;
- for (const {label} of channels) {
- if (label === undefined) continue;
- if (candidate === undefined) candidate = label;
- else if (candidate !== label) return;
- }
- if (candidate !== undefined) {
- // Ignore the implicit label for temporal scales if it’s simply “date”.
- if (isTemporalScale(scale) && /^(date|time|year)$/i.test(candidate)) return;
- if (!isOrdinalScale(scale)) {
- if (scale.percent) candidate = `${candidate} (%)`;
- if (key === "x" || key === "y") {
- const order = scaleOrder(scale);
- if (order) {
- if (key === "x" || (axis && axis.labelAnchor === "center")) {
- candidate = (key === "x") === order < 0 ? `← ${candidate}` : `${candidate} →`;
- } else {
- candidate = `${order < 0 ? "↑ " : "↓ "}${candidate}`;
- }
- }
- }
- }
- }
- return candidate;
+import {format, utcFormat} from "d3";
+import {formatIsoDate} from "./format.js";
+import {constant, isTemporal, string} from "./options.js";
+import {isOrdinalScale} from "./scales.js";
+
+export function inferFontVariant(scale) {
+ return isOrdinalScale(scale) && scale.interval === undefined ? undefined : "tabular-nums";
+}
+
+// D3 doesn’t provide a tick format for ordinal scales; we want shorthand when
+// an ordinal domain is numbers or dates, and we want null to mean the empty
+// string, not the default identity format. TODO Remove this in favor of the
+// axis mark’s inferTickFormat.
+export function maybeAutoTickFormat(tickFormat, domain) {
+ return tickFormat === undefined
+ ? isTemporal(domain)
+ ? formatIsoDate
+ : string
+ : typeof tickFormat === "function"
+ ? tickFormat
+ : (typeof tickFormat === "string" ? (isTemporal(domain) ? utcFormat : format) : constant)(tickFormat);
}
diff --git a/src/axis.js b/src/axis.js
deleted file mode 100644
index a733a28e62..0000000000
--- a/src/axis.js
+++ /dev/null
@@ -1,298 +0,0 @@
-import {axisTop, axisBottom, axisRight, axisLeft, format, utcFormat} from "d3";
-import {create} from "./context.js";
-import {formatIsoDate} from "./format.js";
-import {radians} from "./math.js";
-import {boolean, take, number, string, keyword, maybeKeyword, constant, isTemporal} from "./options.js";
-import {isOrdinalScale, isTemporalScale} from "./scales.js";
-import {applyAttr, impliedString} from "./style.js";
-import {maybeTimeInterval, maybeUtcInterval} from "./time.js";
-
-export class AxisX {
- constructor(
- scale,
- {
- name = "x",
- axis,
- ticks,
- tickSize = name === "fx" ? 0 : 6,
- tickPadding = tickSize === 0 ? 9 : 3,
- tickFormat,
- fontVariant = inferFontVariant(scale),
- grid,
- label,
- labelAnchor,
- labelOffset,
- line,
- tickRotate,
- ariaLabel,
- ariaDescription
- } = {}
- ) {
- this.name = name;
- this.axis = keyword(axis, "axis", ["top", "bottom"]);
- this.ticks = maybeTicks(ticks, scale);
- this.tickSize = number(tickSize);
- this.tickPadding = number(tickPadding);
- this.tickFormat = maybeTickFormat(tickFormat);
- this.fontVariant = impliedString(fontVariant, "normal");
- this.grid = boolean(grid);
- this.label = string(label);
- this.labelAnchor = maybeKeyword(labelAnchor, "labelAnchor", ["center", "left", "right"]);
- this.labelOffset = number(labelOffset);
- this.line = boolean(line);
- this.tickRotate = number(tickRotate);
- this.ariaLabel = string(ariaLabel);
- this.ariaDescription = string(ariaDescription);
- }
- render(
- index,
- {[this.name]: x, fy},
- {
- width,
- height,
- marginTop,
- marginRight,
- marginBottom,
- marginLeft,
- offsetLeft = 0,
- facetMarginTop,
- facetMarginBottom,
- labelMarginLeft = 0,
- labelMarginRight = 0
- },
- context
- ) {
- const {axis, fontVariant, grid, label, labelAnchor, labelOffset, line, name, tickRotate} = this;
- const offset = name === "x" ? 0 : axis === "top" ? marginTop - facetMarginTop : marginBottom - facetMarginBottom;
- const offsetSign = axis === "top" ? -1 : 1;
- const ty = offsetSign * offset + (axis === "top" ? marginTop : height - marginBottom);
- return create("svg:g", context)
- .call(applyAria, this)
- .attr("transform", `translate(${offsetLeft},${ty})`)
- .call(createAxis(axis === "top" ? axisTop : axisBottom, x, this))
- .call(maybeTickRotate, tickRotate)
- .attr("font-size", null)
- .attr("font-family", null)
- .attr("font-variant", fontVariant)
- .call(!line ? (g) => g.select(".domain").remove() : () => {})
- .call(
- !grid ? () => {} : fy ? gridFacetX(index, fy, -ty) : gridX(offsetSign * (marginBottom + marginTop - height))
- )
- .call(
- !label
- ? () => {}
- : (g) =>
- g
- .append("text")
- .attr("fill", "currentColor")
- .attr(
- "transform",
- `translate(${
- labelAnchor === "center"
- ? (width + marginLeft - marginRight) / 2
- : labelAnchor === "right"
- ? width + labelMarginRight
- : -labelMarginLeft
- },${labelOffset * offsetSign})`
- )
- .attr("dy", axis === "top" ? "1em" : "-0.32em")
- .attr("text-anchor", labelAnchor === "center" ? "middle" : labelAnchor === "right" ? "end" : "start")
- .text(label)
- )
- .node();
- }
-}
-
-export class AxisY {
- constructor(
- scale,
- {
- name = "y",
- axis,
- ticks,
- tickSize = name === "fy" ? 0 : 6,
- tickPadding = tickSize === 0 ? 9 : 3,
- tickFormat,
- fontVariant = inferFontVariant(scale),
- grid,
- label,
- labelAnchor,
- labelOffset,
- line,
- tickRotate,
- ariaLabel,
- ariaDescription
- } = {}
- ) {
- this.name = name;
- this.axis = keyword(axis, "axis", ["left", "right"]);
- this.ticks = maybeTicks(ticks, scale);
- this.tickSize = number(tickSize);
- this.tickPadding = number(tickPadding);
- this.tickFormat = maybeTickFormat(tickFormat);
- this.fontVariant = impliedString(fontVariant, "normal");
- this.grid = boolean(grid);
- this.label = string(label);
- this.labelAnchor = maybeKeyword(labelAnchor, "labelAnchor", ["center", "top", "bottom"]);
- this.labelOffset = number(labelOffset);
- this.line = boolean(line);
- this.tickRotate = number(tickRotate);
- this.ariaLabel = string(ariaLabel);
- this.ariaDescription = string(ariaDescription);
- }
- render(
- index,
- {[this.name]: y, fx},
- {width, height, marginTop, marginRight, marginBottom, marginLeft, offsetTop = 0, facetMarginLeft, facetMarginRight},
- context
- ) {
- const {axis, fontVariant, grid, label, labelAnchor, labelOffset, line, name, tickRotate} = this;
- const offset = name === "y" ? 0 : axis === "left" ? marginLeft - facetMarginLeft : marginRight - facetMarginRight;
- const offsetSign = axis === "left" ? -1 : 1;
- const tx = offsetSign * offset + (axis === "right" ? width - marginRight : marginLeft);
- return create("svg:g", context)
- .call(applyAria, this)
- .attr("transform", `translate(${tx},${offsetTop})`)
- .call(createAxis(axis === "right" ? axisRight : axisLeft, y, this))
- .call(maybeTickRotate, tickRotate)
- .attr("font-size", null)
- .attr("font-family", null)
- .attr("font-variant", fontVariant)
- .call(!line ? (g) => g.select(".domain").remove() : () => {})
- .call(!grid ? () => {} : fx ? gridFacetY(index, fx, -tx) : gridY(offsetSign * (marginLeft + marginRight - width)))
- .call(
- !label
- ? () => {}
- : (g) =>
- g
- .append("text")
- .attr("fill", "currentColor")
- .attr("font-variant", fontVariant == null ? null : "normal")
- .attr(
- "transform",
- `translate(${labelOffset * offsetSign},${
- labelAnchor === "center"
- ? (height + marginTop - marginBottom) / 2
- : labelAnchor === "bottom"
- ? height - marginBottom
- : marginTop
- })${labelAnchor === "center" ? ` rotate(-90)` : ""}`
- )
- .attr(
- "dy",
- labelAnchor === "center"
- ? axis === "right"
- ? "-0.32em"
- : "0.75em"
- : labelAnchor === "bottom"
- ? "1.4em"
- : "-1em"
- )
- .attr("text-anchor", labelAnchor === "center" ? "middle" : axis === "right" ? "end" : "start")
- .text(label)
- )
- .node();
- }
-}
-
-function applyAria(selection, {name, label, ariaLabel = `${name}-axis`, ariaDescription = label}) {
- applyAttr(selection, "aria-label", ariaLabel);
- applyAttr(selection, "aria-description", ariaDescription);
-}
-
-function gridX(y2) {
- return (g) => g.selectAll(".tick line").clone(true).attr("stroke-opacity", 0.1).attr("y2", y2);
-}
-
-function gridY(x2) {
- return (g) => g.selectAll(".tick line").clone(true).attr("stroke-opacity", 0.1).attr("x2", x2);
-}
-
-function gridFacetX(index, fy, ty) {
- const dy = fy.bandwidth();
- const domain = fy.domain();
- return (g) =>
- g
- .selectAll(".tick")
- .append("path")
- .attr("stroke", "currentColor")
- .attr("stroke-opacity", 0.1)
- .attr("d", (index ? take(domain, index) : domain).map((v) => `M0,${fy(v) + ty}v${dy}`).join(""));
-}
-
-function gridFacetY(index, fx, tx) {
- const dx = fx.bandwidth();
- const domain = fx.domain();
- return (g) =>
- g
- .selectAll(".tick")
- .append("path")
- .attr("stroke", "currentColor")
- .attr("stroke-opacity", 0.1)
- .attr("d", (index ? take(domain, index) : domain).map((v) => `M${fx(v) + tx},0h${dx}`).join(""));
-}
-
-function maybeTicks(ticks, scale) {
- return ticks === null
- ? []
- : isTemporalScale(scale) && typeof ticks === "string"
- ? (scale.type === "time" ? maybeTimeInterval : maybeUtcInterval)(ticks)
- : ticks;
-}
-
-function maybeTickFormat(tickFormat) {
- return tickFormat === null ? () => null : tickFormat;
-}
-
-// D3 doesn’t provide a tick format for ordinal scales; we want shorthand when
-// an ordinal domain is numbers or dates, and we want null to mean the empty
-// string, not the default identity format.
-export function maybeAutoTickFormat(tickFormat, domain) {
- return tickFormat === undefined
- ? isTemporal(domain)
- ? formatIsoDate
- : string
- : typeof tickFormat === "function"
- ? tickFormat
- : (typeof tickFormat === "string" ? (isTemporal(domain) ? utcFormat : format) : constant)(tickFormat);
-}
-
-function createAxis(axis, scale, {ticks, tickSize, tickPadding, tickFormat}) {
- if (!scale.tickFormat) {
- tickFormat = maybeAutoTickFormat(tickFormat, scale.domain());
- }
- return axis(scale)
- .ticks(Array.isArray(ticks) ? null : ticks, typeof tickFormat === "function" ? null : tickFormat)
- .tickFormat(typeof tickFormat === "function" ? tickFormat : null)
- .tickSizeInner(tickSize)
- .tickSizeOuter(0)
- .tickPadding(tickPadding)
- .tickValues(Array.isArray(ticks) ? ticks : null);
-}
-
-function maybeTickRotate(g, rotate) {
- if (!(rotate = +rotate)) return;
- for (const text of g.selectAll("text")) {
- const x = +text.getAttribute("x");
- const y = +text.getAttribute("y");
- if (Math.abs(y) > Math.abs(x)) {
- const s = Math.sign(y);
- text.setAttribute("transform", `translate(0, ${y + s * 4 * Math.cos(rotate * radians)}) rotate(${rotate})`);
- text.setAttribute("text-anchor", Math.abs(rotate) < 10 ? "middle" : (rotate < 0) ^ (s > 0) ? "start" : "end");
- } else {
- const s = Math.sign(x);
- text.setAttribute(
- "transform",
- `translate(${x + s * 4 * Math.abs(Math.sin(rotate * radians))}, 0) rotate(${rotate})`
- );
- text.setAttribute("text-anchor", Math.abs(rotate) > 60 ? "middle" : s > 0 ? "start" : "end");
- }
- text.removeAttribute("x");
- text.removeAttribute("y");
- text.setAttribute("dy", "0.32em");
- }
-}
-
-export function inferFontVariant(scale) {
- return isOrdinalScale(scale) && scale.interval === undefined ? undefined : "tabular-nums";
-}
diff --git a/src/dimensions.js b/src/dimensions.js
index f919629817..a939725599 100644
--- a/src/dimensions.js
+++ b/src/dimensions.js
@@ -2,35 +2,20 @@ import {projectionAspectRatio} from "./projection.js";
import {isOrdinalScale} from "./scales.js";
import {offset} from "./style.js";
-export function Dimensions(scales, geometry, axes, options = {}) {
- // The default margins depend on the presence and orientation of axes. If the
- // corresponding scale is not present, the axis is necessarily null.
- const {x: {axis: x} = {}, y: {axis: y} = {}, fx: {axis: fx} = {}, fy: {axis: fy} = {}} = axes;
+export function Dimensions(scales, marks, options = {}) {
+ // Compute the default margins: the maximum of the marks’ margins. While not
+ // always used, they may be needed to compute the default height of the plot.
+ let marginTopDefault = 0.5 - offset,
+ marginRightDefault = 0.5 + offset,
+ marginBottomDefault = 0.5 + offset,
+ marginLeftDefault = 0.5 - offset;
- // Compute the default facet margins. When faceting is not present (and hence
- // the fx and fy axis are null), these will all be zero.
- let {
- facet: {
- margin: facetMargin,
- marginTop: facetMarginTop = facetMargin !== undefined ? facetMargin : fx === "top" ? 30 : 0,
- marginRight: facetMarginRight = facetMargin !== undefined ? facetMargin : fy === "right" ? 40 : 0,
- marginBottom: facetMarginBottom = facetMargin !== undefined ? facetMargin : fx === "bottom" ? 30 : 0,
- marginLeft: facetMarginLeft = facetMargin !== undefined ? facetMargin : fy === "left" ? 40 : 0
- } = {}
- } = options;
-
- // Coerce the facet margin options to numbers.
- facetMarginTop = +facetMarginTop;
- facetMarginRight = +facetMarginRight;
- facetMarginBottom = +facetMarginBottom;
- facetMarginLeft = +facetMarginLeft;
-
- // Compute the default margins; while not always used, they may be needed to
- // compute the default height of the plot.
- const marginTopDefault = Math.max((x === "top" ? 30 : 0) + facetMarginTop, y || fy ? 20 : 0.5 - offset);
- const marginBottomDefault = Math.max((x === "bottom" ? 30 : 0) + facetMarginBottom, y || fy ? 20 : 0.5 + offset);
- const marginRightDefault = Math.max((y === "right" ? 40 : 0) + facetMarginRight, x || fx ? 20 : 0.5 + offset);
- const marginLeftDefault = Math.max((y === "left" ? 40 : 0) + facetMarginLeft, x || fx ? 20 : 0.5 - offset);
+ for (const {marginTop, marginRight, marginBottom, marginLeft} of marks) {
+ if (marginTop > marginTopDefault) marginTopDefault = marginTop;
+ if (marginRight > marginRightDefault) marginRightDefault = marginRight;
+ if (marginBottom > marginBottomDefault) marginBottomDefault = marginBottom;
+ if (marginLeft > marginLeftDefault) marginLeftDefault = marginLeft;
+ }
// Compute the actual margins. The order of precedence is: the side-specific
// margin options, then the global margin option, then the defaults.
@@ -52,11 +37,11 @@ export function Dimensions(scales, geometry, axes, options = {}) {
// specified explicitly, adjust the automatic height accordingly.
let {
width = 640,
- height = autoHeight(scales, geometry, options, {
+ height = autoHeight(scales, marks, options, {
width,
marginTopDefault,
- marginBottomDefault,
marginRightDefault,
+ marginBottomDefault,
marginLeftDefault
}) + Math.max(0, marginTop - marginTopDefault + marginBottom - marginBottomDefault)
} = options;
@@ -65,30 +50,52 @@ export function Dimensions(scales, geometry, axes, options = {}) {
width = +width;
height = +height;
- return {
+ const dimensions = {
width,
height,
marginTop,
marginRight,
marginBottom,
- marginLeft,
- facetMarginTop,
- facetMarginRight,
- facetMarginBottom,
- facetMarginLeft
+ marginLeft
};
+
+ // Compute the facet margins.
+ if (scales.fx || scales.fy) {
+ let {
+ margin: facetMargin,
+ marginTop: facetMarginTop = facetMargin !== undefined ? facetMargin : marginTop,
+ marginRight: facetMarginRight = facetMargin !== undefined ? facetMargin : marginRight,
+ marginBottom: facetMarginBottom = facetMargin !== undefined ? facetMargin : marginBottom,
+ marginLeft: facetMarginLeft = facetMargin !== undefined ? facetMargin : marginLeft
+ } = options.facet ?? {};
+
+ // Coerce the facet margin options to numbers.
+ facetMarginTop = +facetMarginTop;
+ facetMarginRight = +facetMarginRight;
+ facetMarginBottom = +facetMarginBottom;
+ facetMarginLeft = +facetMarginLeft;
+
+ dimensions.facet = {
+ marginTop: facetMarginTop,
+ marginRight: facetMarginRight,
+ marginBottom: facetMarginBottom,
+ marginLeft: facetMarginLeft
+ };
+ }
+
+ return dimensions;
}
function autoHeight(
{y, fy, fx},
- geometry,
+ marks,
{projection},
- {width, marginTopDefault, marginBottomDefault, marginRightDefault, marginLeftDefault}
+ {width, marginTopDefault, marginRightDefault, marginBottomDefault, marginLeftDefault}
) {
const nfy = fy ? fy.scale.domain().length : 1;
// If a projection is specified, use its natural aspect ratio (if known).
- const ar = projectionAspectRatio(projection, geometry);
+ const ar = projectionAspectRatio(projection, marks);
if (ar) {
const nfx = fx ? fx.scale.domain().length : 1;
const far = ((1.1 * nfy - 0.1) / (1.1 * nfx - 0.1)) * ar; // 0.1 is default facet padding
diff --git a/src/facet.js b/src/facet.js
new file mode 100644
index 0000000000..66f3f33941
--- /dev/null
+++ b/src/facet.js
@@ -0,0 +1,165 @@
+import {cross, rollup, sum} from "d3";
+import {range} from "./options.js";
+import {Scales} from "./scales.js";
+
+// Returns an array of {x?, y?, i} objects representing the facet domain.
+export function Facets(channelsByScale, options) {
+ const {fx, fy} = Scales(channelsByScale, options);
+ const fxDomain = fx?.scale.domain();
+ const fyDomain = fy?.scale.domain();
+ return fxDomain && fyDomain
+ ? cross(fxDomain, fyDomain).map(([x, y], i) => ({x, y, i}))
+ : fxDomain
+ ? fxDomain.map((x, i) => ({x, i}))
+ : fyDomain
+ ? fyDomain.map((y, i) => ({y, i}))
+ : undefined;
+}
+
+// Returns an accessor function that returns the order of the given facet value
+// in the associated facet scales’ domains.
+export function facetOrder({x: X, y: Y}) {
+ const xi = X && new Map(X.map((v, i) => [v, i]));
+ const yi = Y && new Map(Y.map((v, i) => [v, i]));
+ return X && Y
+ ? (a, b) => xi.get(a.x) - xi.get(b.x) || yi.get(a.y) - yi.get(b.y)
+ : X
+ ? (a, b) => xi.get(a.x) - xi.get(b.x)
+ : (a, b) => yi.get(a.y) - yi.get(b.y);
+}
+
+// Returns a (possibly nested) Map of [[key1, index1], [key2, index2], …]
+// representing the data indexes associated with each facet.
+export function facetGroups(data, {fx, fy}) {
+ const I = range(data);
+ const FX = fx?.value;
+ const FY = fy?.value;
+ return fx && fy
+ ? rollup(
+ I,
+ (G) => ((G.fx = FX[G[0]]), (G.fy = FY[G[0]]), G),
+ (i) => FX[i],
+ (i) => FY[i]
+ )
+ : fx
+ ? rollup(
+ I,
+ (G) => ((G.fx = FX[G[0]]), G),
+ (i) => FX[i]
+ )
+ : rollup(
+ I,
+ (G) => ((G.fy = FY[G[0]]), G),
+ (i) => FY[i]
+ );
+}
+
+export function facetTranslate(fx, fy, {marginTop, marginLeft}) {
+ return fx && fy
+ ? ({x, y}) => `translate(${fx(x) - marginLeft},${fy(y) - marginTop})`
+ : fx
+ ? ({x}) => `translate(${fx(x) - marginLeft},0)`
+ : ({y}) => `translate(0,${fy(y) - marginTop})`;
+}
+
+// Returns an index that for each facet lists all the elements present in other
+// facets in the original index. TODO Memoize to avoid repeated work?
+export function facetExclude(index) {
+ const ex = [];
+ const e = new Uint32Array(sum(index, (d) => d.length));
+ for (const i of index) {
+ let n = 0;
+ for (const j of index) {
+ if (i === j) continue;
+ e.set(j, n);
+ n += j.length;
+ }
+ ex.push(e.slice(0, n));
+ }
+ return ex;
+}
+
+const facetAnchors = new Map([
+ ["top", facetAnchorTop],
+ ["right", facetAnchorRight],
+ ["bottom", facetAnchorBottom],
+ ["left", facetAnchorLeft],
+ ["top-left", and(facetAnchorTop, facetAnchorLeft)],
+ ["top-right", and(facetAnchorTop, facetAnchorRight)],
+ ["bottom-left", and(facetAnchorBottom, facetAnchorLeft)],
+ ["bottom-right", and(facetAnchorBottom, facetAnchorRight)],
+ ["top-empty", facetAnchorTopEmpty],
+ ["right-empty", facetAnchorRightEmpty],
+ ["bottom-empty", facetAnchorBottomEmpty],
+ ["left-empty", facetAnchorLeftEmpty]
+]);
+
+export function maybeFacetAnchor(facetAnchor) {
+ if (facetAnchor == null) return null;
+ const anchor = facetAnchors.get(`${facetAnchor}`.toLowerCase());
+ if (anchor) return anchor;
+ throw new Error(`invalid facet anchor: ${facetAnchor}`);
+}
+
+function facetAnchorTop(facets, {y: Y}, {y}) {
+ return Y ? Y.indexOf(y) === 0 : true;
+}
+
+function facetAnchorBottom(facets, {y: Y}, {y}) {
+ return Y ? Y.indexOf(y) === Y.length - 1 : true;
+}
+
+function facetAnchorLeft(facets, {x: X}, {x}) {
+ return X ? X.indexOf(x) === 0 : true;
+}
+
+function facetAnchorRight(facets, {x: X}, {x}) {
+ return X ? X.indexOf(x) === X.length - 1 : true;
+}
+
+function facetAnchorTopEmpty(facets, {y: Y}, {x, y}) {
+ const i = Y?.indexOf(y);
+ if (i > 0) {
+ const y = Y[i - 1];
+ return facets.find((f) => f.x === x && f.y === y)?.empty;
+ }
+}
+
+function facetAnchorBottomEmpty(facets, {y: Y}, {x, y}) {
+ const i = Y?.indexOf(y);
+ if (i < Y?.length - 1) {
+ const y = Y[i + 1];
+ return facets.find((f) => f.x === x && f.y === y)?.empty;
+ }
+}
+
+function facetAnchorLeftEmpty(facets, {x: X}, {x, y}) {
+ const i = X?.indexOf(x);
+ if (i > 0) {
+ const x = X[i - 1];
+ return facets.find((f) => f.x === x && f.y === y)?.empty;
+ }
+}
+
+function facetAnchorRightEmpty(facets, {x: X}, {x, y}) {
+ const i = X?.indexOf(x);
+ if (i < X?.length - 1) {
+ const x = X[i + 1];
+ return facets.find((f) => f.x === x && f.y === y)?.empty;
+ }
+}
+
+function and(a, b) {
+ return function () {
+ return a.apply(null, arguments) && b.apply(null, arguments);
+ };
+}
+
+// Facet filter, by mark; for now only the "eq" filter is provided.
+export function facetFilter(facets, {channels: {fx, fy}, groups}) {
+ return fx && fy
+ ? facets.map(({x, y}) => groups.get(x)?.get(y) ?? [])
+ : fx
+ ? facets.map(({x}) => groups.get(x) ?? [])
+ : facets.map(({y}) => groups.get(y) ?? []);
+}
diff --git a/src/index.js b/src/index.js
index 1b7c7c4611..406907ba67 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,7 +1,8 @@
-export {plot, marks} from "./plot.js";
-export {Mark} from "./mark.js";
+export {plot} from "./plot.js";
+export {Mark, marks} from "./mark.js";
export {Area, area, areaX, areaY} from "./marks/area.js";
export {Arrow, arrow} from "./marks/arrow.js";
+export {axisX, axisY, axisFx, axisFy, gridX, gridY, gridFx, gridFy} from "./marks/axis.js";
export {BarX, BarY, barX, barY} from "./marks/bar.js";
export {boxX, boxY} from "./marks/box.js";
export {Cell, cell, cellX, cellY} from "./marks/cell.js";
diff --git a/src/legends/ramp.js b/src/legends/ramp.js
index 09c9b360a2..a5494b1cb8 100644
--- a/src/legends/ramp.js
+++ b/src/legends/ramp.js
@@ -1,5 +1,5 @@
import {quantize, interpolateNumber, piecewise, format, scaleBand, scaleLinear, axisBottom} from "d3";
-import {inferFontVariant} from "../axis.js";
+import {inferFontVariant} from "../axes.js";
import {Context, create} from "../context.js";
import {map} from "../options.js";
import {interpolatePiecewise} from "../scales/quantitative.js";
diff --git a/src/legends/swatches.js b/src/legends/swatches.js
index 39c21e2032..2b4820eeb4 100644
--- a/src/legends/swatches.js
+++ b/src/legends/swatches.js
@@ -1,6 +1,5 @@
import {pathRound as path} from "d3";
-import {inferFontVariant} from "../axis.js";
-import {maybeAutoTickFormat} from "../axis.js";
+import {inferFontVariant, maybeAutoTickFormat} from "../axes.js";
import {Context, create} from "../context.js";
import {isNoneish, maybeColorChannel, maybeNumberChannel} from "../options.js";
import {isOrdinalScale, isThresholdScale} from "../scales.js";
diff --git a/src/mark.js b/src/mark.js
index e707e9d57b..1e44ef5179 100644
--- a/src/mark.js
+++ b/src/mark.js
@@ -1,5 +1,6 @@
import {Channels, channelDomain, valueObject} from "./channel.js";
import {defined} from "./defined.js";
+import {maybeFacetAnchor} from "./facet.js";
import {arrayify, isDomainSort, range} from "./options.js";
import {keyword, maybeNamed} from "./options.js";
import {maybeProject} from "./projection.js";
@@ -8,7 +9,22 @@ import {basic, initializer} from "./transforms/basic.js";
export class Mark {
constructor(data, channels = {}, options = {}, defaults) {
- const {facet = "auto", fx, fy, sort, dx, dy, clip, channels: extraChannels} = options;
+ const {
+ facet = "auto",
+ facetAnchor,
+ fx,
+ fy,
+ sort,
+ dx = 0,
+ dy = 0,
+ margin = 0,
+ marginTop = margin,
+ marginRight = margin,
+ marginBottom = margin,
+ marginLeft = margin,
+ clip,
+ channels: extraChannels
+ } = options;
this.data = data;
this.sort = isDomainSort(sort) ? sort : null;
this.initializer = initializer(options).initializer;
@@ -16,10 +32,11 @@ export class Mark {
if (facet === null || facet === false) {
this.facet = null;
} else {
- this.facet = keyword(facet === true ? "include" : facet, "facet", ["auto", "include", "exclude"]);
+ this.facet = keyword(facet === true ? "include" : facet, "facet", ["auto", "include", "exclude", "super"]);
this.fx = fx;
this.fy = fy;
}
+ this.facetAnchor = maybeFacetAnchor(facetAnchor);
channels = maybeNamed(channels);
if (extraChannels !== undefined) channels = {...maybeNamed(extraChannels), ...channels};
if (defaults !== undefined) channels = {...styles(this, options, defaults), ...channels};
@@ -30,9 +47,24 @@ export class Mark {
throw new Error(`missing channel value: ${name}`);
})
);
- this.dx = +dx || 0;
- this.dy = +dy || 0;
+ this.dx = +dx;
+ this.dy = +dy;
+ this.marginTop = +marginTop;
+ this.marginRight = +marginRight;
+ this.marginBottom = +marginBottom;
+ this.marginLeft = +marginLeft;
this.clip = maybeClip(clip);
+ // Super-faceting currently disallow position channels; in the future, we
+ // could allow position to be specified in fx and fy in addition to (or
+ // instead of) x and y.
+ if (this.facet === "super") {
+ if (fx || fy) throw new Error(`super-faceting cannot use fx or fy`);
+ for (const name in this.channels) {
+ const {scale} = channels[name];
+ if (scale !== "x" && scale !== "y") continue;
+ throw new Error(`super-faceting cannot use x or y`);
+ }
+ }
}
initialize(facets, facetChannels) {
let data = arrayify(this.data);
@@ -71,3 +103,9 @@ export class Mark {
return values;
}
}
+
+/** @jsdoc marks */
+export function marks(...marks) {
+ marks.plot = Mark.prototype.plot; // Note: depends on side-effect in plot!
+ return marks;
+}
diff --git a/src/marks/area.js b/src/marks/area.js
index 779137c77a..ae7d9e2da7 100644
--- a/src/marks/area.js
+++ b/src/marks/area.js
@@ -1,8 +1,8 @@
import {area as shapeArea} from "d3";
import {create} from "../context.js";
import {Curve} from "../curve.js";
-import {first, indexOf, maybeZ, second} from "../options.js";
import {Mark} from "../mark.js";
+import {first, indexOf, maybeZ, second} from "../options.js";
import {
applyDirectStyles,
applyIndirectStyles,
diff --git a/src/marks/arrow.js b/src/marks/arrow.js
index 39f0df2a41..087a8a1a12 100644
--- a/src/marks/arrow.js
+++ b/src/marks/arrow.js
@@ -1,7 +1,7 @@
import {create} from "../context.js";
+import {Mark} from "../mark.js";
import {radians} from "../math.js";
import {constant} from "../options.js";
-import {Mark} from "../mark.js";
import {applyChannelStyles, applyDirectStyles, applyIndirectStyles, applyTransform} from "../style.js";
import {maybeSameValue} from "./link.js";
diff --git a/src/marks/axis.js b/src/marks/axis.js
new file mode 100644
index 0000000000..961c82a01b
--- /dev/null
+++ b/src/marks/axis.js
@@ -0,0 +1,674 @@
+import {extent, format, utcFormat} from "d3";
+import {create} from "../context.js";
+import {formatDefault} from "../format.js";
+import {Mark, marks} from "../mark.js";
+import {radians} from "../math.js";
+import {range, valueof, arrayify, constant, keyword, identity, number} from "../options.js";
+import {isNone, isNoneish, isIterable, isTemporal, maybeInterval, orderof} from "../options.js";
+import {isTemporalScale} from "../scales.js";
+import {applyDirectStyles, applyIndirectStyles, applyTransform, offset} from "../style.js";
+import {initializer} from "../transforms/basic.js";
+import {ruleX, ruleY} from "./rule.js";
+import {text, textX, textY} from "./text.js";
+import {vectorX, vectorY} from "./vector.js";
+
+function maybeData(data, options) {
+ if (arguments.length < 2 && !isIterable(data)) (options = data), (data = null);
+ if (options === undefined) options = {};
+ return [data, options];
+}
+
+function maybeAnchor({anchor} = {}, anchors) {
+ return anchor === undefined ? anchors[0] : keyword(anchor, "anchor", anchors);
+}
+
+function anchorY(options) {
+ return maybeAnchor(options, ["left", "right"]);
+}
+
+function anchorFy(options) {
+ return maybeAnchor(options, ["right", "left"]);
+}
+
+function anchorX(options) {
+ return maybeAnchor(options, ["bottom", "top"]);
+}
+
+function anchorFx(options) {
+ return maybeAnchor(options, ["top", "bottom"]);
+}
+
+export function axisY() {
+ const [data, options] = maybeData(...arguments);
+ return axisKy("y", anchorY(options), data, options);
+}
+
+export function axisFy() {
+ const [data, options] = maybeData(...arguments);
+ return axisKy("fy", anchorFy(options), data, options);
+}
+
+/** @jsdoc axisX */
+export function axisX() {
+ const [data, options] = maybeData(...arguments);
+ return axisKx("x", anchorX(options), data, options);
+}
+
+export function axisFx() {
+ const [data, options] = maybeData(...arguments);
+ return axisKx("fx", anchorFx(options), data, options);
+}
+
+function axisKy(
+ k,
+ anchor,
+ data,
+ {
+ line,
+ color = "currentColor",
+ opacity = 1,
+ stroke = color,
+ strokeOpacity = opacity,
+ strokeWidth = 1,
+ fill = color,
+ fillOpacity = opacity,
+ textAnchor,
+ textStroke,
+ textStrokeOpacity,
+ textStrokeWidth,
+ tickSize = k === "y" ? 6 : 0,
+ tickPadding,
+ tickRotate,
+ x,
+ marginTop = 20,
+ marginRight = anchor === "right" ? 40 : 0,
+ marginBottom = 20,
+ marginLeft = anchor === "left" ? 40 : 0,
+ label,
+ labelOffset,
+ labelAnchor,
+ ...options
+ }
+) {
+ tickSize = number(tickSize);
+ tickPadding = number(tickPadding);
+ tickRotate = number(tickRotate);
+ if (labelAnchor !== undefined) labelAnchor = keyword(labelAnchor, "labelAnchor", ["center", "top", "bottom"]);
+ return marks(
+ k === "y" && line && !isNone(line)
+ ? new AxisLine(k, anchor, {
+ stroke: line === true ? stroke : line,
+ strokeOpacity,
+ strokeWidth,
+ ...options
+ })
+ : null,
+ tickSize && !isNoneish(stroke)
+ ? axisTickKy(k, anchor, data, {
+ stroke,
+ strokeOpacity,
+ strokeWidth,
+ tickSize,
+ tickPadding,
+ tickRotate,
+ x,
+ ...options
+ })
+ : null,
+ !isNoneish(fill)
+ ? axisTextKy(k, anchor, data, {
+ fill,
+ fillOpacity,
+ stroke: textStroke,
+ strokeOpacity: textStrokeOpacity,
+ strokeWidth: textStrokeWidth,
+ textAnchor,
+ tickSize,
+ tickPadding,
+ tickRotate,
+ x,
+ marginTop,
+ marginRight,
+ marginBottom,
+ marginLeft,
+ ...options
+ })
+ : null,
+ !isNoneish(fill) && label !== null
+ ? text([], {
+ fill,
+ fillOpacity,
+ ...options,
+ facet: "super",
+ x: null,
+ y: null,
+ initializer: function (data, facets, channels, scales, dimensions) {
+ const scale = scales[k];
+ const {marginTop, marginRight, marginBottom, marginLeft} = (k === "y" && dimensions.inset) || dimensions;
+ const cla = labelAnchor ?? (scale.bandwidth ? "center" : "top");
+ const clo = labelOffset ?? (anchor === "right" ? marginRight : marginLeft) - 3;
+ if (cla === "center") {
+ this.textAnchor = undefined; // middle
+ this.lineAnchor = anchor === "right" ? "bottom" : "top";
+ this.frameAnchor = anchor;
+ this.rotate = -90;
+ } else {
+ this.textAnchor = anchor === "right" ? "end" : "start";
+ this.lineAnchor = cla;
+ this.frameAnchor = `${cla}-${anchor}`;
+ this.rotate = 0;
+ }
+ this.dy = cla === "top" ? 3 - marginTop : cla === "bottom" ? marginBottom - 3 : 0;
+ this.dx = anchor === "right" ? clo : -clo;
+ this.ariaLabel = `${k}-axis label`;
+ return {
+ facets: [[0]],
+ channels: {
+ text: {
+ value: [label === undefined ? inferAxisLabel(k, scale, cla) : label]
+ }
+ }
+ };
+ }
+ })
+ : null
+ );
+}
+
+function axisKx(
+ k,
+ anchor,
+ data,
+ {
+ line,
+ color = "currentColor",
+ opacity = 1,
+ stroke = color,
+ strokeOpacity = opacity,
+ strokeWidth = 1,
+ fill = color,
+ fillOpacity = opacity,
+ textAnchor,
+ textStroke,
+ textStrokeOpacity,
+ textStrokeWidth,
+ tickSize = k === "x" ? 6 : 0,
+ tickPadding,
+ tickRotate,
+ y,
+ marginTop = anchor === "top" ? 30 : 0,
+ marginRight = 20,
+ marginBottom = anchor === "bottom" ? 30 : 0,
+ marginLeft = 20,
+ label,
+ labelAnchor,
+ labelOffset,
+ ...options
+ }
+) {
+ tickSize = number(tickSize);
+ tickPadding = number(tickPadding);
+ tickRotate = number(tickRotate);
+ if (labelAnchor !== undefined) labelAnchor = keyword(labelAnchor, "labelAnchor", ["center", "left", "right"]);
+ return marks(
+ k === "x" && line && !isNone(line)
+ ? new AxisLine(k, anchor, {
+ stroke: line === true ? stroke : line,
+ strokeOpacity,
+ strokeWidth,
+ ...options
+ })
+ : null,
+ tickSize && !isNoneish(stroke)
+ ? axisTickKx(k, anchor, data, {
+ stroke,
+ strokeOpacity,
+ strokeWidth,
+ tickSize,
+ tickPadding,
+ tickRotate,
+ y,
+ ...options
+ })
+ : null,
+ !isNoneish(fill)
+ ? axisTextKx(k, anchor, data, {
+ fill,
+ fillOpacity,
+ stroke: textStroke,
+ strokeOpacity: textStrokeOpacity,
+ strokeWidth: textStrokeWidth,
+ textAnchor,
+ tickSize,
+ tickPadding,
+ tickRotate,
+ y,
+ marginTop,
+ marginRight,
+ marginBottom,
+ marginLeft,
+ ...options
+ })
+ : null,
+ !isNoneish(fill) && label !== null
+ ? text([], {
+ fill,
+ fillOpacity,
+ ...options,
+ facet: "super",
+ x: null,
+ y: null,
+ initializer: function (data, facets, channels, scales, dimensions) {
+ const scale = scales[k];
+ const {marginTop, marginRight, marginBottom, marginLeft} = (k === "x" && dimensions.inset) || dimensions;
+ const cla = labelAnchor ?? (scale.bandwidth ? "center" : "right");
+ const clo = labelOffset ?? (anchor === "top" ? marginTop : marginBottom) - 3;
+ if (cla === "center") {
+ this.frameAnchor = anchor;
+ this.textAnchor = undefined; // middle
+ } else {
+ this.frameAnchor = `${anchor}-${cla}`;
+ this.textAnchor = cla === "right" ? "end" : "start";
+ }
+ this.lineAnchor = anchor;
+ this.dy = anchor === "top" ? -clo : clo;
+ this.dx = cla === "right" ? marginRight - 3 : cla === "left" ? 3 - marginLeft : 0;
+ this.ariaLabel = `${k}-axis label`;
+ return {
+ facets: [[0]],
+ channels: {
+ text: {
+ value: [label === undefined ? inferAxisLabel(k, scale, cla) : label]
+ }
+ }
+ };
+ }
+ })
+ : null
+ );
+}
+
+function axisTickKy(
+ k,
+ anchor,
+ data,
+ {
+ strokeWidth = 1,
+ strokeLinecap = null,
+ strokeLinejoin = null,
+ facetAnchor = anchor + (k === "y" ? "-empty" : ""),
+ frameAnchor = anchor,
+ tickSize,
+ inset = 0,
+ insetLeft = inset,
+ insetRight = inset,
+ dx = 0,
+ y = k === "y" ? undefined : null,
+ ...options
+ }
+) {
+ return axisMark(vectorY, k, `${k}-axis tick`, data, {
+ strokeWidth,
+ strokeLinecap,
+ strokeLinejoin,
+ facetAnchor,
+ frameAnchor,
+ y,
+ ...options,
+ dx: anchor === "left" ? +dx - offset + +insetLeft : +dx + offset - insetRight,
+ anchor: "start",
+ length: tickSize,
+ shape: anchor === "left" ? shapeTickLeft : shapeTickRight
+ });
+}
+
+function axisTickKx(
+ k,
+ anchor,
+ data,
+ {
+ strokeWidth = 1,
+ strokeLinecap = null,
+ strokeLinejoin = null,
+ facetAnchor = anchor + (k === "x" ? "-empty" : ""),
+ frameAnchor = anchor,
+ tickSize,
+ inset = 0,
+ insetTop = inset,
+ insetBottom = inset,
+ dy = 0,
+ x = k === "x" ? undefined : null,
+ ...options
+ }
+) {
+ return axisMark(vectorX, k, `${k}-axis tick`, data, {
+ strokeWidth,
+ strokeLinejoin,
+ strokeLinecap,
+ facetAnchor,
+ frameAnchor,
+ x,
+ ...options,
+ dy: anchor === "bottom" ? +dy - offset - insetBottom : +dy + offset + +insetTop,
+ anchor: "start",
+ length: tickSize,
+ shape: anchor === "bottom" ? shapeTickBottom : shapeTickTop
+ });
+}
+
+function axisTextKy(
+ k,
+ anchor,
+ data,
+ {
+ facetAnchor = anchor + (k === "y" ? "-empty" : ""),
+ frameAnchor = anchor,
+ tickSize,
+ tickRotate = 0,
+ tickPadding = Math.max(3, 9 - tickSize) + (Math.abs(tickRotate) > 60 ? 4 * Math.cos(tickRotate * radians) : 0),
+ tickFormat,
+ text = typeof tickFormat === "function" ? tickFormat : undefined,
+ textAnchor = Math.abs(tickRotate) > 60 ? "middle" : anchor === "left" ? "end" : "start",
+ lineAnchor = tickRotate > 60 ? "top" : tickRotate < -60 ? "bottom" : "middle",
+ fontVariant,
+ inset = 0,
+ insetLeft = inset,
+ insetRight = inset,
+ dx = 0,
+ y = k === "y" ? undefined : null,
+ ...options
+ }
+) {
+ return axisMark(
+ textY,
+ k,
+ `${k}-axis tick label`,
+ data,
+ {
+ facetAnchor,
+ frameAnchor,
+ text: text === undefined ? null : text,
+ textAnchor,
+ lineAnchor,
+ fontVariant,
+ rotate: tickRotate,
+ y,
+ ...options,
+ dx: anchor === "left" ? +dx - tickSize - tickPadding + +insetLeft : +dx + +tickSize + +tickPadding - insetRight
+ },
+ function (scale, ticks, channels) {
+ if (fontVariant === undefined) this.fontVariant = inferFontVariant(scale);
+ if (text === undefined) channels.text = inferTextChannel(scale, ticks, tickFormat);
+ }
+ );
+}
+
+function axisTextKx(
+ k,
+ anchor,
+ data,
+ {
+ facetAnchor = anchor + (k === "x" ? "-empty" : ""),
+ frameAnchor = anchor,
+ tickSize,
+ tickRotate = 0,
+ tickPadding = Math.max(3, 9 - tickSize) + (Math.abs(tickRotate) >= 10 ? 4 * Math.cos(tickRotate * radians) : 0),
+ tickFormat,
+ text = typeof tickFormat === "function" ? tickFormat : undefined,
+ textAnchor = Math.abs(tickRotate) >= 10 ? ((tickRotate < 0) ^ (anchor === "bottom") ? "start" : "end") : "middle",
+ lineAnchor = Math.abs(tickRotate) >= 10 ? "middle" : anchor === "bottom" ? "top" : "bottom",
+ fontVariant,
+ inset = 0,
+ insetTop = inset,
+ insetBottom = inset,
+ dy = 0,
+ x = k === "x" ? undefined : null,
+ ...options
+ }
+) {
+ return axisMark(
+ textX,
+ k,
+ `${k}-axis tick label`,
+ data,
+ {
+ facetAnchor,
+ frameAnchor,
+ text: text === undefined ? null : text,
+ textAnchor,
+ lineAnchor,
+ fontVariant,
+ rotate: tickRotate,
+ x,
+ ...options,
+ dy: anchor === "bottom" ? +dy + +tickSize + +tickPadding - insetBottom : +dy - tickSize - tickPadding + +insetTop
+ },
+ function (scale, ticks, channels) {
+ if (fontVariant === undefined) this.fontVariant = inferFontVariant(scale);
+ if (text === undefined) channels.text = inferTextChannel(scale, ticks, tickFormat);
+ }
+ );
+}
+
+export function gridY() {
+ const [data, options] = maybeData(...arguments);
+ return gridKy("y", anchorY(options), data, options);
+}
+
+export function gridFy() {
+ const [data, options] = maybeData(...arguments);
+ return gridKy("fy", anchorFy(options), data, options);
+}
+
+/** @jsdoc gridX */
+export function gridX() {
+ const [data, options] = maybeData(...arguments);
+ return gridKx("x", anchorX(options), data, options);
+}
+
+export function gridFx() {
+ const [data, options] = maybeData(...arguments);
+ return gridKx("fx", anchorFx(options), data, options);
+}
+
+function gridKy(
+ k,
+ anchor,
+ data,
+ {
+ y = k === "y" ? undefined : null,
+ x = null,
+ x1 = anchor === "left" ? x : null,
+ x2 = anchor === "right" ? x : null,
+ ...options
+ }
+) {
+ return axisMark(ruleY, k, `${k}-grid`, data, {y, x1, x2, ...gridDefaults(options)});
+}
+
+function gridKx(
+ k,
+ anchor,
+ data,
+ {
+ x = k === "x" ? undefined : null,
+ y = null,
+ y1 = anchor === "top" ? y : null,
+ y2 = anchor === "bottom" ? y : null,
+ ...options
+ }
+) {
+ return axisMark(ruleX, k, `${k}-grid`, data, {x, y1, y2, ...gridDefaults(options)});
+}
+
+function gridDefaults({
+ color = "currentColor",
+ opacity = 0.1,
+ stroke = color,
+ strokeOpacity = opacity,
+ strokeWidth = 1,
+ ...options
+}) {
+ return {stroke, strokeOpacity, strokeWidth, ...options};
+}
+
+function axisMark(mark, k, ariaLabel, data, options, initialize) {
+ let channels;
+ const m = mark(
+ data,
+ initializer(options, function (data, facets, _channels, scales) {
+ const {[k]: scale} = scales;
+ if (!scale) throw new Error(`missing scale: ${k}`);
+ let {ticks, tickSpacing, interval} = options;
+ if (isTemporalScale(scale) && typeof ticks === "string") (interval = ticks), (ticks = undefined);
+ if (data == null) {
+ if (isIterable(ticks)) {
+ data = arrayify(ticks);
+ } else if (scale.ticks) {
+ if (ticks !== undefined) {
+ data = scale.ticks(ticks);
+ } else {
+ interval = maybeInterval(interval === undefined ? scale.interval : interval, scale.type);
+ if (interval !== undefined) {
+ // For time scales, we could pass the interval directly to
+ // scale.ticks because it’s supported by d3.utcTicks; but
+ // quantitative scales and d3.ticks do not support numeric
+ // intervals for scale.ticks, so we compute them here.
+ const [min, max] = extent(scale.domain());
+ data = interval.range(min, interval.offset(interval.floor(max))); // inclusive max
+ } else {
+ const [min, max] = extent(scale.range());
+ ticks = (max - min) / (tickSpacing === undefined ? (k === "x" ? 80 : 35) : tickSpacing);
+ data = scale.ticks(ticks);
+ }
+ }
+ } else {
+ data = scale.domain();
+ }
+ if (k === "y" || k === "x") {
+ facets = [range(data)];
+ } else {
+ channels[k] = {scale: k, value: identity};
+ facets = undefined; // computed automatically by plot
+ }
+ }
+ initialize?.call(this, scale, ticks, channels);
+ return {
+ data,
+ facets,
+ channels: Object.fromEntries(
+ Object.entries(channels).map(([name, channel]) => [name, {...channel, value: valueof(data, channel.value)}])
+ )
+ };
+ })
+ );
+ if (data == null) {
+ channels = m.channels;
+ m.channels = {};
+ } else {
+ channels = {};
+ }
+ m.ariaLabel = ariaLabel;
+ return m;
+}
+
+const axisLineDefaults = {
+ fill: null,
+ stroke: "currentColor"
+};
+
+class AxisLine extends Mark {
+ constructor(k, anchor, {facetAnchor = anchor + "-empty", ...options} = {}) {
+ super(undefined, undefined, {facetAnchor, ...options}, axisLineDefaults);
+ this.anchor = anchor;
+ this.ariaLabel = `${k}-axis line`;
+ }
+ render(index, scales, channels, dimensions, context) {
+ const {marginTop, marginRight, marginBottom, marginLeft, width, height} = dimensions;
+ const {anchor} = this;
+ const tx = anchor === "left" ? -0.5 : anchor === "right" ? 0.5 : undefined;
+ const ty = anchor === "top" ? -0.5 : anchor === "bottom" ? 0.5 : undefined;
+ return create("svg:line", context)
+ .call(applyIndirectStyles, this, dimensions, context)
+ .call(applyDirectStyles, this)
+ .call(applyTransform, this, {}, tx, ty)
+ .attr("x1", anchor === "right" ? width - marginRight : marginLeft)
+ .attr("y1", anchor === "bottom" ? height - marginBottom : marginTop)
+ .attr("x2", anchor === "left" ? marginLeft : width - marginRight)
+ .attr("y2", anchor === "top" ? marginTop : height - marginBottom)
+ .node();
+ }
+}
+
+function inferTextChannel(scale, ticks, tickFormat) {
+ return {value: inferTickFormat(scale, ticks, tickFormat)};
+}
+
+// D3’s ordinal scales simply use toString by default, but if the ordinal scale
+// domain (or ticks) are numbers or dates (say because we’re applying a time
+// interval to the ordinal scale), we want Plot’s default formatter.
+function inferTickFormat(scale, ticks, tickFormat) {
+ return scale.tickFormat
+ ? scale.tickFormat(isIterable(ticks) ? null : ticks, tickFormat)
+ : tickFormat === undefined
+ ? formatDefault
+ : typeof tickFormat === "string"
+ ? (isTemporal(scale.domain()) ? utcFormat : format)(tickFormat)
+ : constant(tickFormat);
+}
+
+const shapeTickBottom = {
+ draw(context, l) {
+ context.moveTo(0, 0);
+ context.lineTo(0, l);
+ }
+};
+
+const shapeTickTop = {
+ draw(context, l) {
+ context.moveTo(0, 0);
+ context.lineTo(0, -l);
+ }
+};
+
+const shapeTickLeft = {
+ draw(context, l) {
+ context.moveTo(0, 0);
+ context.lineTo(-l, 0);
+ }
+};
+
+const shapeTickRight = {
+ draw(context, l) {
+ context.moveTo(0, 0);
+ context.lineTo(l, 0);
+ }
+};
+
+// TODO Unify this with the other inferFontVariant; here we only have a scale
+// function rather than a scale descriptor.
+function inferFontVariant(scale) {
+ return scale.bandwidth && scale.interval === undefined ? undefined : "tabular-nums";
+}
+
+// Determines whether the scale points in the “positive” (right or down) or
+// “negative” (left or up) direction; if the scale order cannot be determined,
+// returns NaN; used to assign an appropriate label arrow.
+function inferScaleOrder(scale) {
+ return Math.sign(orderof(scale.domain())) * Math.sign(orderof(scale.range()));
+}
+
+// Takes the scale label, and if this is not an ordinal scale and the label was
+// inferred from an associated channel, adds an orientation-appropriate arrow.
+function inferAxisLabel(key, scale, labelAnchor) {
+ const label = scale.label;
+ if (scale.bandwidth || !label?.inferred) return label;
+ const order = inferScaleOrder(scale);
+ return order
+ ? key === "x" || labelAnchor === "center"
+ ? (key === "x") === order < 0
+ ? `← ${label}`
+ : `${label} →`
+ : `${order < 0 ? "↑ " : "↓ "}${label}`
+ : label;
+}
diff --git a/src/marks/bar.js b/src/marks/bar.js
index c659fcb3ab..e365695d99 100644
--- a/src/marks/bar.js
+++ b/src/marks/bar.js
@@ -1,6 +1,6 @@
import {create} from "../context.js";
-import {identity, indexOf, number} from "../options.js";
import {Mark} from "../mark.js";
+import {identity, indexOf, number} from "../options.js";
import {isCollapsed} from "../scales.js";
import {
applyDirectStyles,
diff --git a/src/marks/box.js b/src/marks/box.js
index dcf15af8fd..73b6097c78 100644
--- a/src/marks/box.js
+++ b/src/marks/box.js
@@ -1,5 +1,5 @@
import {min, max, quantile} from "d3";
-import {marks} from "../plot.js";
+import {marks} from "../mark.js";
import {groupX, groupY, groupZ} from "../transforms/group.js";
import {map} from "../transforms/map.js";
import {barX, barY} from "./bar.js";
diff --git a/src/marks/delaunay.js b/src/marks/delaunay.js
index a9566c4a69..af069e8ba5 100644
--- a/src/marks/delaunay.js
+++ b/src/marks/delaunay.js
@@ -1,8 +1,8 @@
import {group, pathRound as path, select, Delaunay} from "d3";
import {create} from "../context.js";
import {Curve} from "../curve.js";
-import {constant, maybeTuple, maybeZ} from "../options.js";
import {Mark} from "../mark.js";
+import {constant, maybeTuple, maybeZ} from "../options.js";
import {
applyChannelStyles,
applyDirectStyles,
diff --git a/src/marks/density.js b/src/marks/density.js
index 090f2f619b..afd18e3338 100644
--- a/src/marks/density.js
+++ b/src/marks/density.js
@@ -1,6 +1,6 @@
import {contourDensity, create, geoPath} from "d3";
-import {isTypedArray, maybeTuple, maybeZ} from "../options.js";
import {Mark} from "../mark.js";
+import {isTypedArray, maybeTuple, maybeZ} from "../options.js";
import {Position} from "../projection.js";
import {coerceNumbers} from "../scales.js";
import {
diff --git a/src/marks/dot.js b/src/marks/dot.js
index bc9edbf111..93f176b94b 100644
--- a/src/marks/dot.js
+++ b/src/marks/dot.js
@@ -1,8 +1,8 @@
import {pathRound as path, symbolCircle} from "d3";
import {create} from "../context.js";
import {negative, positive} from "../defined.js";
-import {identity, maybeFrameAnchor, maybeNumberChannel, maybeTuple} from "../options.js";
import {Mark} from "../mark.js";
+import {identity, maybeFrameAnchor, maybeNumberChannel, maybeTuple} from "../options.js";
import {
applyChannelStyles,
applyDirectStyles,
diff --git a/src/marks/frame.js b/src/marks/frame.js
index 9181e81ab8..9ae2ca545a 100644
--- a/src/marks/frame.js
+++ b/src/marks/frame.js
@@ -1,6 +1,6 @@
import {create} from "../context.js";
-import {number} from "../options.js";
import {Mark} from "../mark.js";
+import {number} from "../options.js";
import {applyDirectStyles, applyIndirectStyles, applyTransform} from "../style.js";
const defaults = {
diff --git a/src/marks/geo.js b/src/marks/geo.js
index 1e901e2384..7797189fee 100644
--- a/src/marks/geo.js
+++ b/src/marks/geo.js
@@ -1,8 +1,8 @@
import {geoGraticule10, geoPath, geoTransform} from "d3";
import {create} from "../context.js";
import {negative, positive} from "../defined.js";
-import {identity, maybeNumberChannel} from "../options.js";
import {Mark} from "../mark.js";
+import {identity, maybeNumberChannel} from "../options.js";
import {applyChannelStyles, applyDirectStyles, applyIndirectStyles, applyTransform} from "../style.js";
import {withDefaultSort} from "./dot.js";
diff --git a/src/marks/hexgrid.js b/src/marks/hexgrid.js
index ac920550b9..2ec7d0a5b0 100644
--- a/src/marks/hexgrid.js
+++ b/src/marks/hexgrid.js
@@ -1,6 +1,6 @@
import {create} from "../context.js";
-import {number} from "../options.js";
import {Mark} from "../mark.js";
+import {number} from "../options.js";
import {applyDirectStyles, applyIndirectStyles, applyTransform, offset} from "../style.js";
import {sqrt4_3} from "../symbols.js";
import {ox, oy} from "../transforms/hexbin.js";
diff --git a/src/marks/image.js b/src/marks/image.js
index 0d8b003b9c..381aecaca6 100644
--- a/src/marks/image.js
+++ b/src/marks/image.js
@@ -1,7 +1,7 @@
import {create} from "../context.js";
import {positive} from "../defined.js";
-import {maybeFrameAnchor, maybeNumberChannel, maybeTuple, string} from "../options.js";
import {Mark} from "../mark.js";
+import {maybeFrameAnchor, maybeNumberChannel, maybeTuple, string} from "../options.js";
import {
applyChannelStyles,
applyDirectStyles,
diff --git a/src/marks/line.js b/src/marks/line.js
index b195c3c9db..77a7d080ad 100644
--- a/src/marks/line.js
+++ b/src/marks/line.js
@@ -1,8 +1,8 @@
import {curveLinear, geoPath, line as shapeLine} from "d3";
import {create} from "../context.js";
import {Curve} from "../curve.js";
-import {indexOf, identity, maybeTuple, maybeZ} from "../options.js";
import {Mark} from "../mark.js";
+import {indexOf, identity, maybeTuple, maybeZ} from "../options.js";
import {coerceNumbers} from "../scales.js";
import {
applyDirectStyles,
diff --git a/src/marks/linearRegression.js b/src/marks/linearRegression.js
index 9528de4dba..39cd8182e3 100644
--- a/src/marks/linearRegression.js
+++ b/src/marks/linearRegression.js
@@ -1,7 +1,7 @@
import {extent, range, sum, area as shapeArea, namespaces} from "d3";
import {create} from "../context.js";
-import {identity, indexOf, isNone, isNoneish, maybeZ} from "../options.js";
import {Mark} from "../mark.js";
+import {identity, indexOf, isNone, isNoneish, maybeZ} from "../options.js";
import {qt} from "../stats.js";
import {applyDirectStyles, applyGroupedChannelStyles, applyIndirectStyles, applyTransform, groupZ} from "../style.js";
import {maybeDenseIntervalX, maybeDenseIntervalY} from "../transforms/bin.js";
diff --git a/src/marks/rect.js b/src/marks/rect.js
index 4713ba7ef5..5230122cad 100644
--- a/src/marks/rect.js
+++ b/src/marks/rect.js
@@ -1,6 +1,6 @@
import {create} from "../context.js";
-import {identity, indexOf, number} from "../options.js";
import {Mark} from "../mark.js";
+import {identity, indexOf, number} from "../options.js";
import {isCollapsed} from "../scales.js";
import {
applyDirectStyles,
diff --git a/src/marks/rule.js b/src/marks/rule.js
index 6ee8867a1d..8de70a1e0d 100644
--- a/src/marks/rule.js
+++ b/src/marks/rule.js
@@ -1,6 +1,6 @@
import {create} from "../context.js";
-import {identity, number} from "../options.js";
import {Mark} from "../mark.js";
+import {identity, number} from "../options.js";
import {isCollapsed} from "../scales.js";
import {applyDirectStyles, applyIndirectStyles, applyTransform, applyChannelStyles, offset} from "../style.js";
import {maybeIntervalX, maybeIntervalY} from "../transforms/interval.js";
diff --git a/src/marks/text.js b/src/marks/text.js
index a76199b989..dc5a76f0de 100644
--- a/src/marks/text.js
+++ b/src/marks/text.js
@@ -2,6 +2,7 @@ import {namespaces} from "d3";
import {create} from "../context.js";
import {nonempty} from "../defined.js";
import {formatDefault} from "../format.js";
+import {Mark} from "../mark.js";
import {
indexOf,
identity,
@@ -16,7 +17,6 @@ import {
isTextual,
isIterable
} from "../options.js";
-import {Mark} from "../mark.js";
import {
applyChannelStyles,
applyDirectStyles,
@@ -36,6 +36,8 @@ const defaults = {
paintOrder: "stroke"
};
+const softHyphen = "\u00ad";
+
export class Text extends Mark {
constructor(data, options = {}) {
const {
@@ -64,7 +66,7 @@ export class Text extends Mark {
y: {value: y, scale: "y", optional: true},
fontSize: {value: vfontSize, optional: true},
rotate: {value: numberChannel(vrotate), optional: true},
- text: {value: text, filter: nonempty}
+ text: {value: text, filter: nonempty, optional: true}
},
options,
defaults
@@ -223,7 +225,7 @@ function lineWrap(input, maxWidth, widthof = (_, i, j) => j - i) {
// make the line longer than the allowed width, then break the line at the
// previous word end.
if (lineEnd > lineStart && widthof(input, lineStart, wordEnd) > maxWidth) {
- lines.push(input.slice(lineStart, lineEnd));
+ lines.push(input.slice(lineStart, lineEnd) + (input[lineEnd - 1] === softHyphen ? "-" : ""));
lineStart = wordStart;
}
@@ -251,6 +253,7 @@ function* lineBreaks(input) {
while (j < n) {
let k = 1;
switch (input[j]) {
+ case softHyphen:
case "-": // hyphen
++j;
yield [i, j, false];
diff --git a/src/marks/tree.js b/src/marks/tree.js
index 326f47f586..d24c219bb9 100644
--- a/src/marks/tree.js
+++ b/src/marks/tree.js
@@ -1,6 +1,6 @@
import {cluster as Cluster} from "d3";
import {isNoneish} from "../options.js";
-import {marks} from "../plot.js";
+import {marks} from "../mark.js";
import {maybeTreeAnchor, treeLink, treeNode} from "../transforms/tree.js";
import {dot} from "./dot.js";
import {link} from "./link.js";
diff --git a/src/marks/vector.js b/src/marks/vector.js
index c5f85ad858..cae03e0b63 100644
--- a/src/marks/vector.js
+++ b/src/marks/vector.js
@@ -1,7 +1,7 @@
import {pathRound as path} from "d3";
import {create} from "../context.js";
-import {maybeFrameAnchor, maybeNumberChannel, maybeTuple, keyword, identity} from "../options.js";
import {Mark} from "../mark.js";
+import {maybeFrameAnchor, maybeNumberChannel, maybeTuple, keyword, identity} from "../options.js";
import {
applyChannelStyles,
applyDirectStyles,
diff --git a/src/options.js b/src/options.js
index dad2df2f62..0ddae11e30 100644
--- a/src/options.js
+++ b/src/options.js
@@ -1,6 +1,6 @@
import {parse as isoParse} from "isoformat";
import {color, descending, range as rangei, quantile} from "d3";
-import {maybeUtcInterval} from "./time.js";
+import {maybeTimeInterval, maybeUtcInterval} from "./time.js";
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
const TypedArray = Object.getPrototypeOf(Uint8Array);
@@ -236,10 +236,10 @@ export function mid(x1, x2) {
};
}
-// TODO Allow the interval to be specified as a string, e.g. “day” or “hour”?
-// This will require the interval knowing the type of the associated scale to
-// chose between UTC and local time (or better, an explicit timeZone option).
-export function maybeInterval(interval) {
+// If interval is not nullish, converts interval shorthand such as a number (for
+// multiples) or a time interval name (such as “day”) to a {floor, offset,
+// range} object similar to a D3 time interval.
+export function maybeInterval(interval, type) {
if (interval == null) return;
if (typeof interval === "number") {
const n = interval;
@@ -249,7 +249,7 @@ export function maybeInterval(interval) {
range: (lo, hi) => rangei(Math.ceil(lo / n), hi / n).map((x) => n * x)
};
}
- if (typeof interval === "string") return maybeUtcInterval(interval); // TODO local time, or timeZone option
+ if (typeof interval === "string") return (type === "time" ? maybeTimeInterval : maybeUtcInterval)(interval);
if (typeof interval.floor !== "function") throw new Error("invalid interval; missing floor method");
if (typeof interval.offset !== "function") throw new Error("invalid interval; missing offset method");
return interval;
@@ -400,7 +400,7 @@ export function maybeFrameAnchor(value = "middle") {
// Like a sort comparator, returns a positive value if the given array of values
// is in ascending order, a negative value if the values are in descending
// order. Assumes monotonicity; only tests the first and last values.
-export function order(values) {
+export function orderof(values) {
if (values == null) return;
const first = values[0];
const last = values[values.length - 1];
diff --git a/src/plot.js b/src/plot.js
index b59f183f7e..1bbb1e84b5 100644
--- a/src/plot.js
+++ b/src/plot.js
@@ -1,12 +1,13 @@
-import {cross, group, sum, select, sort, InternMap, rollup} from "d3";
-import {Axes, autoAxisTicks, autoScaleLabels} from "./axes.js";
+import {select} from "d3";
import {Channel} from "./channel.js";
import {Context, create} from "./context.js";
import {Dimensions} from "./dimensions.js";
+import {Facets, facetExclude, facetGroups, facetOrder, facetTranslate, facetFilter} from "./facet.js";
import {Legends, exposeLegends} from "./legends.js";
import {Mark} from "./mark.js";
-import {arrayify, isScaleOptions, map, range, where, yes, maybeInterval} from "./options.js";
-import {Scales, ScaleFunctions, autoScaleRange, exposeScales} from "./scales.js";
+import {axisFx, axisFy, axisX, axisY, gridFx, gridFy, gridX, gridY} from "./marks/axis.js";
+import {arrayify, isColor, isIterable, isNone, isScaleOptions, map, yes, maybeInterval} from "./options.js";
+import {Scales, ScaleFunctions, autoScaleRange, exposeScales, innerDimensions, outerDimensions} from "./scales.js";
import {position, registry as scaleRegistry} from "./scales/index.js";
import {applyInlineStyles, maybeClassName} from "./style.js";
import {consumeWarnings, warn} from "./warnings.js";
@@ -42,22 +43,32 @@ export function plot(options = {}) {
if (topFacetState) addScaleChannels(channelsByScale, [topFacetState]);
addScaleChannels(channelsByScale, facetStateByMark);
+ // Add implicit axis marks. Because this happens after faceting (because it
+ // depends on whether faceting is present), we must initialize the facet state
+ // of any implicit axes, too.
+ const axes = flatMarks(inferAxes(marks, channelsByScale, options));
+ for (const mark of axes) {
+ const facetState = maybeMarkFacet(mark, topFacetState, options);
+ if (facetState) facetStateByMark.set(mark, facetState);
+ }
+ marks.unshift(...axes);
+
// All the possible facets are given by the domains of the fx or fy scales, or
// the cross-product of these domains if we facet by both x and y. We sort
// them in order to apply the facet filters afterwards.
- let facets = Facets(channelsByScale, options);
+ const facets = Facets(channelsByScale, options);
if (facets !== undefined) {
- const topFacetsIndex = topFacetState ? filterFacets(facets, topFacetState) : undefined;
+ const topFacetsIndex = topFacetState ? facetFilter(facets, topFacetState) : undefined;
// Compute a facet index for each mark, parallel to the facets array. For
// mark-level facets, compute an index for that mark’s data and options.
// Otherwise, use the top-level facet index.
for (const mark of marks) {
- if (mark.facet === null) continue;
+ if (mark.facet === null || mark.facet === "super") continue;
const facetState = facetStateByMark.get(mark);
if (facetState === undefined) continue;
- facetState.facetsIndex = mark.fx != null || mark.fy != null ? filterFacets(facets, facetState) : topFacetsIndex;
+ facetState.facetsIndex = mark.fx != null || mark.fy != null ? facetFilter(facets, facetState) : topFacetsIndex;
}
// The cross product of the domains of fx and fy can include fx-fy
@@ -75,20 +86,20 @@ export function plot(options = {}) {
}
});
}
- if (0 < nonEmpty.size && nonEmpty.size < facets.length) {
- facets = facets.filter((_, i) => nonEmpty.has(i));
- for (const state of facetStateByMark.values()) {
- const {facetsIndex} = state;
- if (!facetsIndex) continue;
- state.facetsIndex = facetsIndex.filter((_, i) => nonEmpty.has(i));
- }
- }
+
+ // If all the facets are empty (as when none of the marks are actually
+ // faceted), none of them are empty.
+ facets.forEach(
+ 0 < nonEmpty.size && nonEmpty.size < facets.length
+ ? (f, i) => (f.empty = !nonEmpty.has(i))
+ : (f) => (f.empty = false)
+ );
// For any mark using the “exclude” facet mode, invert the index.
for (const mark of marks) {
if (mark.facet === "exclude") {
const facetState = facetStateByMark.get(mark);
- facetState.facetsIndex = excludeIndex(facetState.facetsIndex);
+ facetState.facetsIndex = facetExclude(facetState.facetsIndex);
}
}
}
@@ -113,72 +124,78 @@ export function plot(options = {}) {
// Initialize the marks’ state.
for (const mark of marks) {
if (stateByMark.has(mark)) throw new Error("duplicate mark; each mark must be unique");
- const {facetsIndex, channels: facetChannels} = facetStateByMark.get(mark) || {};
+ const {facetsIndex, channels: facetChannels} = facetStateByMark.get(mark) ?? {};
const {data, facets, channels} = mark.initialize(facetsIndex, facetChannels);
applyScaleTransforms(channels, options);
stateByMark.set(mark, {data, facets, channels});
}
- // Initalize the scales and axes.
+ // Initalize the scales and dimensions.
const scaleDescriptors = Scales(addScaleChannels(channelsByScale, stateByMark), options);
const scales = ScaleFunctions(scaleDescriptors);
- const axes = Axes(scaleDescriptors, options);
- const dimensions = Dimensions(scaleDescriptors, hasGeometry(stateByMark), axes, options);
+ const dimensions = Dimensions(scaleDescriptors, marks, options);
autoScaleRange(scaleDescriptors, dimensions);
- autoAxisTicks(scaleDescriptors, axes);
const {fx, fy} = scales;
- const fyMargins = fy && {marginTop: 0, marginBottom: 0, height: fy.bandwidth()};
- const fxMargins = fx && {marginRight: 0, marginLeft: 0, width: fx.bandwidth()};
- const subdimensions = {...dimensions, ...fxMargins, ...fyMargins};
- const context = Context(options, subdimensions);
+ const subdimensions = fx || fy ? innerDimensions(scaleDescriptors, dimensions) : dimensions;
+ const superdimensions = fx || fy ? actualDimensions(scales, dimensions) : dimensions;
+ const context = Context(options, subdimensions, scaleDescriptors);
// Reinitialize; for deriving channels dependent on other channels.
const newByScale = new Set();
for (const [mark, state] of stateByMark) {
if (mark.initializer != null) {
- const {facets, channels} = mark.initializer(
- state.data,
- state.facets,
- state.channels,
- scales,
- subdimensions,
- context
- );
- if (facets !== undefined) {
- state.facets = facets;
+ const dimensions = mark.facet === "super" ? superdimensions : subdimensions;
+ const update = mark.initializer(state.data, state.facets, state.channels, scales, dimensions, context);
+ if (update.data !== undefined) {
+ state.data = update.data;
}
- if (channels !== undefined) {
- inferChannelScale(channels, mark);
- applyScaleTransforms(channels, options);
- Object.assign(state.channels, channels);
- for (const {scale} of Object.values(channels)) if (scale != null) newByScale.add(scale);
+ if (update.facets !== undefined) {
+ state.facets = update.facets;
+ }
+ if (update.channels !== undefined) {
+ inferChannelScale(update.channels, mark);
+ Object.assign(state.channels, update.channels);
+ for (const channel of Object.values(update.channels)) {
+ const {scale} = channel;
+ // Initializers aren’t allowed to redefine position scales as this
+ // would introduce a circular dependency; so simply scale these
+ // channels as-is rather than creating new scales, and assume that
+ // they already have the scale’s transform applied, if any (e.g., when
+ // generating ticks for the axis mark).
+ if (scale != null && scaleRegistry.get(scale) !== position) {
+ applyScaleTransform(channel, options);
+ newByScale.add(scale);
+ }
+ }
+ // If the initializer returns new mark-level facet channels, we must
+ // also recompute the facet state.
+ const {fx, fy} = update.channels;
+ if (fx != null || fy != null) {
+ const facetState = facetStateByMark.get(mark) ?? {channels: {}};
+ if (fx != null) facetState.channels.fx = fx;
+ if (fy != null) facetState.channels.fy = fy;
+ facetState.groups = facetGroups(state.data, facetState.channels);
+ facetState.facetsIndex = state.facets = facetFilter(facets, facetState);
+ facetStateByMark.set(mark, facetState);
+ }
}
}
}
- // Reconstruct scales if new scaled channels were created during reinitialization.
+ // Reconstruct scales if new scaled channels were created during
+ // reinitialization. Preserve existing scale labels, if any.
if (newByScale.size) {
- for (const key of newByScale) {
- if (scaleRegistry.get(key) === position) {
- throw new Error(`initializers cannot declare position scales: ${key}`);
- }
- }
const newChannelsByScale = new Map();
addScaleChannels(newChannelsByScale, stateByMark, (key) => newByScale.has(key));
addScaleChannels(channelsByScale, stateByMark, (key) => newByScale.has(key));
- const newScaleDescriptors = Scales(newChannelsByScale, options);
+ const newScaleDescriptors = inheritScaleLabels(Scales(newChannelsByScale, options), scaleDescriptors);
const newScales = ScaleFunctions(newScaleDescriptors);
Object.assign(scaleDescriptors, newScaleDescriptors);
Object.assign(scales, newScales);
}
- // Compute the scale labels. Note that with initializers, this may include
- // both old channels (no longer used) and new channels for redefined scales;
- // we include both because initializers don’t always propagate labels.
- autoScaleLabels(channelsByScale, scaleDescriptors, axes, dimensions, options);
-
// Compute value objects, applying scales and projection as needed.
for (const [mark, state] of stateByMark) {
state.values = mark.scale(state.channels, scales, context);
@@ -215,110 +232,56 @@ export function plot(options = {}) {
.call(applyInlineStyles, style)
.node();
- // When faceting, render axes for fx and fy instead of x and y.
- const axisY = axes[facets !== undefined && fy ? "fy" : "y"];
- const axisX = axes[facets !== undefined && fx ? "fx" : "x"];
- if (axisY) svg.appendChild(axisY.render(null, scales, dimensions, context));
- if (axisX) svg.appendChild(axisX.render(null, scales, dimensions, context));
-
- // Render (possibly faceted) marks.
+ // Render facets.
if (facets !== undefined) {
- const fxDomain = fx?.domain();
- const fyDomain = fy?.domain();
- const selection = select(svg);
- // When faceting by both fx and fy, this nested Map allows to look up the
- // non-empty facets and draw the grid lines properly.
- const fxy =
- fx && fy && (axes.x || axes.y)
- ? group(
- facets,
- ({x}) => x,
- ({y}) => y
- )
- : undefined;
- if (fy && axes.y) {
- const axis1 = axes.y,
- axis2 = nolabel(axis1);
- const j =
- axis1.labelAnchor === "bottom"
- ? fyDomain.length - 1
- : axis1.labelAnchor === "center"
- ? fyDomain.length >> 1
- : 0;
- selection
- .selectAll()
- .data(fyDomain)
- .enter()
- .append((ky, i) =>
- (i === j ? axis1 : axis2).render(
- fx && where(fxDomain, (kx) => fxy.get(kx).has(ky)),
- scales,
- {...dimensions, ...fyMargins, offsetTop: fy(ky)},
- context
- )
- );
- }
- if (fx && axes.x) {
- const axis1 = axes.x,
- axis2 = nolabel(axis1);
- const j =
- axis1.labelAnchor === "right" ? fxDomain.length - 1 : axis1.labelAnchor === "center" ? fxDomain.length >> 1 : 0;
- const {marginLeft, marginRight} = dimensions;
- selection
- .selectAll()
- .data(fxDomain)
- .enter()
- .append((kx, i) =>
- (i === j ? axis1 : axis2).render(
- fy && where(fyDomain, (ky) => fxy.get(kx).has(ky)),
- scales,
- {
- ...dimensions,
- ...fxMargins,
- labelMarginLeft: marginLeft,
- labelMarginRight: marginRight,
- offsetLeft: fx(kx)
- },
- context
- )
- );
- }
+ const facetDomains = {x: fx?.domain(), y: fy?.domain()};
+
+ // Sort the facets to match the fx and fy domains; this is needed because
+ // the facets were constructed prior to the fx and fy scales.
+ facets.sort(facetOrder(facetDomains));
- // Render facets in the order of the fx-fy domain, which might not be the
- // ordering used to build the nested index initially; see domainChannel.
- const facetPosition = new Map(facets.map((f, j) => [f, j]));
- selection
+ // Render the facets.
+ select(svg)
.selectAll()
- .data(facetKeys(facets, fx, fy))
+ .data(facets)
.enter()
.append("g")
.attr("aria-label", "facet")
- .attr("transform", facetTranslate(fx, fy))
- .each(function (key) {
- for (const [mark, {channels, values, facets}] of stateByMark) {
- let facet = null;
- if (facets) {
- const fi = facetPosition.get(key);
- facet = facets[fi] ?? facets[0];
- facet = mark.filter(facet, channels, values);
- if (!facet.length) continue;
- facet.fi = fi;
+ .attr("transform", facetTranslate(fx, fy, dimensions))
+ .each(function (f) {
+ let empty = true;
+ for (const mark of marks) {
+ if (mark.facet === "super") continue; // rendered below
+ const {channels, values, facets: indexes} = stateByMark.get(mark);
+ if (!(mark.facetAnchor?.(facets, facetDomains, f) ?? !f.empty)) continue;
+ let index = null;
+ if (indexes) {
+ index = indexes[facetStateByMark.has(mark) ? f.i : 0];
+ index = mark.filter(index, channels, values);
+ if (index.length === 0) continue;
+ index.fi = f.i; // TODO cleaner way of exposing the current facet index?
}
- const node = mark.render(facet, scales, values, subdimensions, context);
- if (node != null) this.appendChild(node);
+ const node = mark.render(index, scales, values, subdimensions, context);
+ if (node == null) continue;
+ empty = false;
+ this.appendChild(node);
}
+ if (empty) this.remove();
});
- } else {
- for (const [mark, {channels, values, facets}] of stateByMark) {
- let facet = null;
- if (facets) {
- facet = facets[0];
- facet = mark.filter(facet, channels, values);
- if (!facet.length) continue;
- }
- const node = mark.render(facet, scales, values, dimensions, context);
- if (node != null) svg.appendChild(node);
+ }
+
+ // Render non-faceted marks.
+ for (const mark of marks) {
+ if (facets !== undefined && mark.facet !== "super") continue;
+ const {channels, values, facets: indexes} = stateByMark.get(mark);
+ let index = null;
+ if (indexes) {
+ index = indexes[0];
+ index = mark.filter(index, channels, values);
+ if (index.length === 0) continue;
}
+ const node = mark.render(index, scales, values, superdimensions, context);
+ if (node != null) svg.appendChild(node);
}
// Wrap the plot in a figure with a caption, if desired.
@@ -364,12 +327,6 @@ function plotThis({marks = [], ...options} = {}) {
// Note: This side-effect avoids a circular dependency.
Mark.prototype.plot = plotThis;
-/** @jsdoc marks */
-export function marks(...marks) {
- marks.plot = plotThis;
- return marks;
-}
-
function flatMarks(marks) {
return marks
.flat(Infinity)
@@ -392,21 +349,23 @@ class Render extends Mark {
// Note: mutates channel.value to apply the scale transform, if any.
function applyScaleTransforms(channels, options) {
- for (const name in channels) {
- const channel = channels[name];
- const {scale} = channel;
- if (scale != null) {
- const {
- percent,
- interval,
- transform = percent ? (x) => x * 100 : maybeInterval(interval)?.floor
- } = options[scale] || {};
- if (transform != null) channel.value = map(channel.value, transform);
- }
- }
+ for (const name in channels) applyScaleTransform(channels[name], options);
return channels;
}
+// Note: mutates channel.value to apply the scale transform, if any.
+function applyScaleTransform(channel, options) {
+ const {scale} = channel;
+ if (scale == null) return;
+ const {
+ type,
+ percent,
+ interval,
+ transform = percent ? (x) => x * 100 : maybeInterval(interval, type)?.floor
+ } = options[scale] ?? {};
+ if (transform != null) channel.value = map(channel.value, transform);
+}
+
// An initializer may generate channels without knowing how the downstream mark
// will use them. Marks are typically responsible associated scales with
// channels, but here we assume common behavior across marks.
@@ -449,94 +408,6 @@ function addScaleChannels(channelsByScale, stateByMark, filter = yes) {
return channelsByScale;
}
-function hasGeometry(stateByMark) {
- for (const {channels} of stateByMark.values()) {
- if (channels.geometry) return true;
- }
- return false;
-}
-
-// Derives a copy of the specified axis with the label disabled.
-function nolabel(axis) {
- return axis === undefined || axis.label === undefined
- ? axis // use the existing axis if unlabeled
- : Object.assign(Object.create(axis), {label: undefined});
-}
-
-// Returns an array of {x?, y?} objects representing the facet domain.
-function Facets(channelsByScale, options) {
- const {fx, fy} = Scales(channelsByScale, options);
- const fxDomain = fx?.scale.domain();
- const fyDomain = fy?.scale.domain();
- return fxDomain && fyDomain
- ? cross(fxDomain, fyDomain).map(([x, y]) => ({x, y}))
- : fxDomain
- ? fxDomain.map((x) => ({x}))
- : fyDomain
- ? fyDomain.map((y) => ({y}))
- : undefined;
-}
-
-// Returns keys in order of the associated scale’s domains. (We don’t want to
-// recompute the keys here because facets may already be filtered, and facets
-// isn’t sorted because it’s constructed prior to the other mark channels.)
-function facetKeys(facets, fx, fy) {
- const fxI = fx && new InternMap(fx.domain().map((x, i) => [x, i]));
- const fyI = fy && new InternMap(fy.domain().map((y, i) => [y, i]));
- return sort(facets, (a, b) => (fxI && fxI.get(a.x) - fxI.get(b.x)) || (fyI && fyI.get(a.y) - fyI.get(b.y)));
-}
-
-// Returns a (possibly nested) Map of [[key1, index1], [key2, index2], …]
-// representing the data indexes associated with each facet.
-function facetGroups(data, {fx, fy}) {
- const I = range(data);
- const FX = fx?.value;
- const FY = fy?.value;
- return fx && fy
- ? rollup(
- I,
- (G) => ((G.fx = FX[G[0]]), (G.fy = FY[G[0]]), G),
- (i) => FX[i],
- (i) => FY[i]
- )
- : fx
- ? rollup(
- I,
- (G) => ((G.fx = FX[G[0]]), G),
- (i) => FX[i]
- )
- : rollup(
- I,
- (G) => ((G.fy = FY[G[0]]), G),
- (i) => FY[i]
- );
-}
-
-function facetTranslate(fx, fy) {
- return fx && fy
- ? ({x, y}) => `translate(${fx(x)},${fy(y)})`
- : fx
- ? ({x}) => `translate(${fx(x)},0)`
- : ({y}) => `translate(0,${fy(y)})`;
-}
-
-// Returns an index that for each facet lists all the elements present in other
-// facets in the original index. TODO Memoize to avoid repeated work?
-function excludeIndex(index) {
- const ex = [];
- const e = new Uint32Array(sum(index, (d) => d.length));
- for (const i of index) {
- let n = 0;
- for (const j of index) {
- if (i === j) continue;
- e.set(j, n);
- n += j.length;
- }
- ex.push(e.slice(0, n));
- }
- return ex;
-}
-
// Returns the facet groups, and possibly fx and fy channels, associated with
// the top-level facet option {data, x, y}.
function maybeTopFacet(facet, options) {
@@ -550,29 +421,24 @@ function maybeTopFacet(facet, options) {
if (y != null) channels.fy = Channel(data, {value: y, scale: "fy"});
applyScaleTransforms(channels, options);
const groups = facetGroups(data, channels);
- // When the top-level facet option generated several frames, track the
- // corresponding data length in order to compare it for the warning above.
- const dataLength =
- groups.size > 1 || (channels.fx && channels.fy && groups.size === 1 && [...groups][0][1].size > 1)
- ? data.length
- : undefined;
- return {channels, groups, data: facet.data, dataLength};
+ return {channels, groups, data: facet.data};
}
// Returns the facet groups, and possibly fx and fy channels, associated with a
// mark, either through top-level faceting or mark-level facet options {fx, fy}.
function maybeMarkFacet(mark, topFacetState, options) {
- if (mark.facet === null) return;
+ if (mark.facet === null || mark.facet === "super") return;
// This mark defines a mark-level facet. TODO There’s some code duplication
// here with maybeTopFacet that we could reduce.
- const {fx: x, fy: y} = mark;
- if (x != null || y != null) {
- const data = arrayify(mark.data ?? x ?? y);
+ const {fx, fy} = mark;
+ if (fx != null || fy != null) {
+ const data = arrayify(mark.data ?? fx ?? fy);
if (data === undefined) throw new Error(`missing facet data in ${mark.ariaLabel}`);
+ if (data === null) return; // ignore channel definitions if no data is provided TODO this right?
const channels = {};
- if (x != null) channels.fx = Channel(data, {value: x, scale: "fx"});
- if (y != null) channels.fy = Channel(data, {value: y, scale: "fy"});
+ if (fx != null) channels.fx = Channel(data, {value: fx, scale: "fx"});
+ if (fy != null) channels.fy = Channel(data, {value: fy, scale: "fy"});
applyScaleTransforms(channels, options);
return {channels, groups: facetGroups(data, channels)};
}
@@ -581,23 +447,210 @@ function maybeMarkFacet(mark, topFacetState, options) {
if (topFacetState === undefined) return;
// TODO Can we link the top-level facet channels here?
- const {channels, groups, data, dataLength} = topFacetState;
+ const {channels, groups, data} = topFacetState;
if (mark.facet !== "auto" || mark.data === data) return {channels, groups};
- // Warn for the common pitfall of wanting to facet mapped data. See above for
- // the initialization of dataLength.
- if (dataLength !== undefined && arrayify(mark.data)?.length === dataLength) {
+ // Warn for the common pitfall of wanting to facet mapped data with the
+ // top-level facet option.
+ if (
+ (groups.size > 1 || (groups.size === 1 && channels.fx && channels.fy && [...groups][0][1].size > 1)) &&
+ arrayify(mark.data)?.length === data.length
+ ) {
warn(
`Warning: the ${mark.ariaLabel} mark appears to use faceted data, but isn’t faceted. The mark data has the same length as the facet data and the mark facet option is "auto", but the mark data and facet data are distinct. If this mark should be faceted, set the mark facet option to true; otherwise, suppress this warning by setting the mark facet option to false.`
);
}
}
-// Facet filter, by mark; for now only the "eq" filter is provided.
-function filterFacets(facets, {channels: {fx, fy}, groups}) {
- return fx && fy
- ? facets.map(({x, y}) => groups.get(x)?.get(y) ?? [])
- : fx
- ? facets.map(({x}) => groups.get(x) ?? [])
- : facets.map(({y}) => groups.get(y) ?? []);
+function inferAxes(marks, channelsByScale, options) {
+ let {
+ projection,
+ x = {},
+ y = {},
+ fx = {},
+ fy = {},
+ axis,
+ grid,
+ facet = {},
+ facet: {axis: facetAxis = axis, grid: facetGrid} = facet,
+ x: {type: xType = hasScale(marks, "x"), axis: xAxis = axis, grid: xGrid = xAxis === null ? null : grid} = x,
+ y: {type: yType = hasScale(marks, "y"), axis: yAxis = axis, grid: yGrid = yAxis === null ? null : grid} = y,
+ fx: {axis: fxAxis = facetAxis, grid: fxGrid = fxAxis === null ? null : facetGrid} = fx,
+ fy: {axis: fyAxis = facetAxis, grid: fyGrid = fyAxis === null ? null : facetGrid} = fy
+ } = options;
+
+ // Disable axes if the corresponding scale is not present.
+ if (projection || !xType) xAxis = xGrid = null;
+ if (projection || !yType) yAxis = yGrid = null;
+ if (!channelsByScale.has("fx")) fxAxis = fxGrid = null;
+ if (!channelsByScale.has("fy")) fyAxis = fyGrid = null;
+
+ // Resolve the default implicit axes by checking for explicit ones.
+ if (xAxis === undefined) xAxis = !hasAxis(marks, "x");
+ if (yAxis === undefined) yAxis = !hasAxis(marks, "y");
+ if (fxAxis === undefined) fxAxis = !hasAxis(marks, "fx");
+ if (fyAxis === undefined) fyAxis = !hasAxis(marks, "fy");
+
+ // Resolve the default orientation of axes.
+ if (xAxis === true) xAxis = "bottom";
+ if (yAxis === true) yAxis = "left";
+ if (fxAxis === true) fxAxis = xAxis === "top" || xAxis === null ? "bottom" : "top";
+ if (fyAxis === true) fyAxis = yAxis === "right" || yAxis === null ? "left" : "right";
+
+ const axes = [];
+ maybeGrid(axes, fyGrid, gridFy, fy);
+ maybeAxis(axes, fyAxis, axisFy, "right", "left", facet, fy);
+ maybeGrid(axes, fxGrid, gridFx, fx);
+ maybeAxis(axes, fxAxis, axisFx, "top", "bottom", facet, fx);
+ maybeGrid(axes, yGrid, gridY, y);
+ maybeAxis(axes, yAxis, axisY, "left", "right", options, y);
+ maybeGrid(axes, xGrid, gridX, x);
+ maybeAxis(axes, xAxis, axisX, "bottom", "top", options, x);
+ return axes;
+}
+
+function maybeAxis(axes, axis, axisType, primary, secondary, defaults, options) {
+ if (!axis) return;
+ const both = isBoth(axis);
+ options = axisOptions(both ? primary : axis, defaults, options);
+ axes.push(axisType(options));
+ if (both) axes.push(axisType({...options, anchor: secondary, label: null}));
+}
+
+function maybeGrid(axes, grid, gridType, options) {
+ if (!grid || isNone(grid)) return;
+ axes.push(gridType(gridOptions(grid, options)));
+}
+
+function isBoth(value) {
+ return /^\s*both\s*$/i.test(value);
+}
+
+function axisOptions(
+ anchor,
+ defaults,
+ {
+ line = defaults.line,
+ ticks,
+ tickSize,
+ tickSpacing,
+ tickPadding,
+ tickFormat,
+ tickRotate,
+ fontVariant,
+ ariaLabel,
+ ariaDescription,
+ label = defaults.label,
+ labelAnchor,
+ labelOffset
+ }
+) {
+ return {
+ anchor,
+ line,
+ ticks,
+ tickSize,
+ tickSpacing,
+ tickPadding,
+ tickFormat,
+ tickRotate,
+ fontVariant,
+ ariaLabel,
+ ariaDescription,
+ label,
+ labelAnchor,
+ labelOffset
+ };
+}
+
+function gridOptions(
+ grid,
+ {
+ stroke = isColor(grid) ? grid : undefined,
+ ticks = isGridTicks(grid) ? grid : undefined,
+ tickSpacing,
+ ariaLabel,
+ ariaDescription
+ }
+) {
+ return {
+ stroke,
+ ticks,
+ tickSpacing,
+ ariaLabel,
+ ariaDescription
+ };
+}
+
+function isGridTicks(grid) {
+ switch (typeof grid) {
+ case "number":
+ return true;
+ case "string":
+ return !isColor(grid);
+ }
+ return isIterable(grid) || typeof grid?.range === "function";
+}
+
+// Is there an explicit axis already present? TODO We probably want a more
+// explicit test than looking for the ARIA label, but it does afford some
+// flexibility in axis implementation which is nice.
+function hasAxis(marks, k) {
+ const prefix = `${k}-axis `;
+ return marks.some((m) => m.ariaLabel?.startsWith(prefix));
+}
+
+function hasScale(marks, k) {
+ for (const mark of marks) {
+ for (const key in mark.channels) {
+ if (mark.channels[key].scale === k) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+function inheritScaleLabels(newScales, scales) {
+ for (const key in newScales) {
+ const newScale = newScales[key];
+ const scale = scales[key];
+ if (newScale.label === undefined && scale) {
+ newScale.label = scale.label;
+ }
+ }
+ return newScales;
+}
+
+// This differs from the other outerDimensions in that it accounts for rounding
+// and outer padding in the fact scales; we want the frame to align exactly with
+// the actual range, not the desired range.
+function actualDimensions({fx, fy}, dimensions) {
+ const {marginTop, marginRight, marginBottom, marginLeft, width, height} = outerDimensions(dimensions);
+ const fxr = fx && outerRange(fx);
+ const fyr = fy && outerRange(fy);
+ return {
+ marginTop: fy ? fyr[0] : marginTop,
+ marginRight: fx ? width - fxr[1] : marginRight,
+ marginBottom: fy ? height - fyr[1] : marginBottom,
+ marginLeft: fx ? fxr[0] : marginLeft,
+ // Some marks, namely the x- and y-axis labels, want to know what the
+ // desired (rather than actual) margins are for positioning.
+ inset: {
+ marginTop: dimensions.marginTop,
+ marginRight: dimensions.marginRight,
+ marginBottom: dimensions.marginBottom,
+ marginLeft: dimensions.marginLeft
+ },
+ width,
+ height
+ };
+}
+
+function outerRange(scale) {
+ const domain = scale.domain();
+ let x1 = scale(domain[0]);
+ let x2 = scale(domain[domain.length - 1]);
+ if (x2 < x1) [x1, x2] = [x2, x1];
+ return [x1, x2 + scale.bandwidth()];
}
diff --git a/src/projection.js b/src/projection.js
index 36a9f1cfee..f6f31b99d0 100644
--- a/src/projection.js
+++ b/src/projection.js
@@ -242,10 +242,10 @@ function project(cx, cy, values, projection) {
// construct the projection), we have to test the raw projection option rather
// than the materialized projection; therefore we must be extremely careful that
// the logic of this function exactly matches Projection above!
-export function projectionAspectRatio(projection, geometry) {
+export function projectionAspectRatio(projection, marks) {
if (typeof projection?.stream === "function") return defaultAspectRatio;
if (isObject(projection)) projection = projection.type;
- if (projection == null) return geometry ? defaultAspectRatio : undefined;
+ if (projection == null) return hasGeometry(marks) ? defaultAspectRatio : undefined;
if (typeof projection !== "function") {
const {aspectRatio} = namedProjection(projection);
if (aspectRatio) return aspectRatio;
@@ -266,3 +266,8 @@ export function Position(channels, scales, context) {
if (y) position.y = coerceNumbers(position.y);
return position;
}
+
+function hasGeometry(marks) {
+ for (const mark of marks) if (mark.channels.geometry) return true;
+ return false;
+}
diff --git a/src/scales.js b/src/scales.js
index 54ea764c8f..3d690eeed2 100644
--- a/src/scales.js
+++ b/src/scales.js
@@ -10,7 +10,6 @@ import {
isScaleOptions,
isTypedArray,
map,
- order,
slice
} from "./options.js";
import {registry, color, position, radius, opacity, symbol, length} from "./scales/index.js";
@@ -41,6 +40,7 @@ import {warn} from "./warnings.js";
export function Scales(
channelsByScale,
{
+ label: globalLabel,
inset: globalInset = 0,
insetTop: globalInsetTop = globalInset,
insetRight: globalInsetRight = globalInset,
@@ -53,6 +53,7 @@ export function Scales(
align,
padding,
projection,
+ facet: {label: facetLabel = globalLabel} = {},
...options
} = {}
) {
@@ -72,6 +73,7 @@ export function Scales(
if (scale) {
// populate generic scale options (percent, transform, insets)
let {
+ label = key === "fx" || key === "fy" ? facetLabel : globalLabel,
percent,
transform,
inset,
@@ -83,6 +85,7 @@ export function Scales(
if (transform == null) transform = undefined;
else if (typeof transform !== "function") throw new Error("invalid scale transform; not a function");
scale.percent = !!percent;
+ scale.label = label === undefined ? inferScaleLabel(channels, scale) : label;
scale.transform = transform;
if (key === "x" || key === "fx") {
scale.insetLeft = +insetLeft;
@@ -98,15 +101,88 @@ export function Scales(
}
export function ScaleFunctions(scales) {
- return Object.fromEntries(Object.entries(scales).map(([name, {scale}]) => [name, scale]));
+ return Object.fromEntries(
+ Object.entries(scales)
+ .filter(([, {scale}]) => scale) // drop identity scales
+ .map(([name, {scale, type, interval, label}]) => {
+ scale.type = type; // for axis
+ if (interval != null) scale.interval = interval; // for axis
+ if (label != null) scale.label = label; // for axis
+ return [name, scale];
+ })
+ );
}
// Mutates scale.range!
-export function autoScaleRange({x, y, fx, fy}, dimensions) {
- if (fx) autoScaleRangeX(fx, dimensions);
- if (fy) autoScaleRangeY(fy, dimensions);
- if (x) autoScaleRangeX(x, fx ? {width: fx.scale.bandwidth()} : dimensions);
- if (y) autoScaleRangeY(y, fy ? {height: fy.scale.bandwidth()} : dimensions);
+export function autoScaleRange(scales, dimensions) {
+ const {x, y, fx, fy} = scales;
+ const superdimensions = fx || fy ? outerDimensions(dimensions) : dimensions;
+ if (fx) autoScaleRangeX(fx, superdimensions);
+ if (fy) autoScaleRangeY(fy, superdimensions);
+ const subdimensions = fx || fy ? innerDimensions(scales, dimensions) : dimensions;
+ if (x) autoScaleRangeX(x, subdimensions);
+ if (y) autoScaleRangeY(y, subdimensions);
+}
+
+// Channels can have labels; if all the channels for a given scale are
+// consistently labeled (i.e., have the same value if not undefined), and the
+// corresponding scale doesn’t already have an explicit label, then the
+// channels’ label is promoted to the scale. This inferred label should have an
+// orientation-appropriate arrow added when used as an axis, but we don’t want
+// to add the arrow when the label is set explicitly as an option; so, the
+// inferred label is distinguished as an object with an “inferred” property.
+function inferScaleLabel(channels = [], scale) {
+ let label;
+ for (const {label: l} of channels) {
+ if (l === undefined) continue;
+ if (label === undefined) label = l;
+ else if (label !== l) return;
+ }
+ if (label === undefined) return;
+ // Ignore the implicit label for temporal scales if it’s simply “date”.
+ if (isTemporalScale(scale) && /^(date|time|year)$/i.test(label)) return;
+ if (!isOrdinalScale(scale) && scale.percent) label = `${label} (%)`;
+ return {inferred: true, toString: () => label};
+}
+
+// Returns the dimensions of the outer frame; this is subdivided into facets
+// with the margins of each facet collapsing into the outer margins.
+export function outerDimensions(dimensions) {
+ const {
+ marginTop,
+ marginRight,
+ marginBottom,
+ marginLeft,
+ width,
+ height,
+ facet: {
+ marginTop: facetMarginTop,
+ marginRight: facetMarginRight,
+ marginBottom: facetMarginBottom,
+ marginLeft: facetMarginLeft
+ }
+ } = dimensions;
+ return {
+ marginTop: Math.max(marginTop, facetMarginTop),
+ marginRight: Math.max(marginRight, facetMarginRight),
+ marginBottom: Math.max(marginBottom, facetMarginBottom),
+ marginLeft: Math.max(marginLeft, facetMarginLeft),
+ width,
+ height
+ };
+}
+
+// Returns the dimensions of each facet.
+export function innerDimensions({fx, fy}, dimensions) {
+ const {marginTop, marginRight, marginBottom, marginLeft, width, height} = outerDimensions(dimensions);
+ return {
+ marginTop,
+ marginRight,
+ marginBottom,
+ marginLeft,
+ width: fx ? fx.scale.bandwidth() + marginLeft + marginRight : width,
+ height: fy ? fy.scale.bandwidth() + marginTop + marginBottom : height
+ };
}
function autoScaleRangeX(scale, dimensions) {
@@ -412,11 +488,6 @@ export function isDivergingScale({type}) {
return /^diverging($|-)/.test(type);
}
-// If the domain is undefined, we assume an identity scale.
-export function scaleOrder({range, domain = range}) {
- return Math.sign(order(domain)) * Math.sign(order(range));
-}
-
// Certain marks have special behavior if a scale is collapsed, i.e. if the
// domain is degenerate and represents only a single value such as [3, 3]; for
// example, a rect will span the full extent of the chart along a collapsed
@@ -502,7 +573,9 @@ export function exposeScales(scaleDescriptors) {
};
}
-function exposeScale({scale, type, domain, range, label, interpolate, interval, transform, percent, pivot}) {
+// Note: axis- and legend-related properties (such as label, ticks and
+// tickFormat) are not included here as they do not affect the scale’s behavior.
+function exposeScale({scale, type, domain, range, interpolate, interval, transform, percent, pivot}) {
if (type === "identity") return {type: "identity", apply: (d) => d, invert: (d) => d};
const unknown = scale.unknown ? scale.unknown() : undefined;
return {
@@ -511,7 +584,6 @@ function exposeScale({scale, type, domain, range, label, interpolate, interval,
...(range !== undefined && {range: slice(range)}), // defensive copy
...(transform !== undefined && {transform}),
...(percent && {percent}), // only exposed if truthy
- ...(label !== undefined && {label}),
...(unknown !== undefined && {unknown}),
...(interval !== undefined && {interval}),
diff --git a/src/scales/ordinal.js b/src/scales/ordinal.js
index 97593f340c..2ba97d847f 100644
--- a/src/scales/ordinal.js
+++ b/src/scales/ordinal.js
@@ -13,7 +13,7 @@ import {maybeBooleanRange, ordinalScheme, quantitativeScheme} from "./schemes.js
export const ordinalImplicit = Symbol("ordinal");
function ScaleO(key, scale, channels, {type, interval, domain, range, reverse, hint}) {
- interval = maybeInterval(interval);
+ interval = maybeInterval(interval, type);
if (domain === undefined) domain = inferDomain(channels, interval, key);
if (type === "categorical" || type === ordinalImplicit) type = "ordinal"; // shorthand for color schemes
if (reverse) domain = reverseof(domain);
@@ -27,7 +27,7 @@ function ScaleO(key, scale, channels, {type, interval, domain, range, reverse, h
}
export function ScaleOrdinal(key, channels, {type, interval, domain, range, scheme, unknown, ...options}) {
- interval = maybeInterval(interval);
+ interval = maybeInterval(interval, type);
if (domain === undefined) domain = inferDomain(channels, interval, key);
let hint;
if (registry.get(key) === symbol) {
diff --git a/src/scales/quantitative.js b/src/scales/quantitative.js
index 355aee8583..fa682a5d6a 100644
--- a/src/scales/quantitative.js
+++ b/src/scales/quantitative.js
@@ -24,7 +24,7 @@ import {
ticks
} from "d3";
import {positive, negative, finite} from "../defined.js";
-import {arrayify, constant, order, slice, maybeInterval} from "../options.js";
+import {arrayify, constant, orderof, slice, maybeInterval} from "../options.js";
import {ordinalRange, quantitativeScheme} from "./schemes.js";
import {registry, radius, opacity, color, length} from "./index.js";
@@ -79,7 +79,7 @@ export function ScaleQ(
reverse
}
) {
- interval = maybeInterval(interval);
+ interval = maybeInterval(interval, type);
if (type === "cyclical" || type === "sequential") type = "linear"; // shorthand for color schemes
reverse = !!reverse;
@@ -114,7 +114,7 @@ export function ScaleQ(
const [min, max] = extent(domain);
if (min > 0 || max < 0) {
domain = slice(domain);
- if (order(domain) !== Math.sign(min)) domain[domain.length - 1] = 0;
+ if (orderof(domain) !== Math.sign(min)) domain[domain.length - 1] = 0;
// [2, 1] or [-2, -1]
else domain[0] = 0; // [1, 2] or [-1, -2]
}
@@ -205,7 +205,7 @@ export function ScaleQuantize(
thresholds = quantize(interpolateNumber(min, max), n + 1).slice(1, -1); // exactly n - 1 thresholds to match range
if (min instanceof Date) thresholds = thresholds.map((x) => new Date(x)); // preserve date types
}
- if (order(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain
+ if (orderof(arrayify(domain)) < 0) thresholds.reverse(); // preserve descending domain
return ScaleThreshold(key, channels, {domain: thresholds, range, reverse, unknown});
}
@@ -225,7 +225,7 @@ export function ScaleThreshold(
reverse
}
) {
- const sign = order(arrayify(domain)); // preserve descending domain
+ const sign = orderof(arrayify(domain)); // preserve descending domain
if (!pairs(domain).every(([a, b]) => isOrdered(a, b, sign)))
throw new Error(`the ${key} scale has a non-monotonic domain`);
if (reverse) range = reverseof(range); // domain ascending, so reverse range
diff --git a/test/data/README.md b/test/data/README.md
index 102f145925..e4e77a68a3 100644
--- a/test/data/README.md
+++ b/test/data/README.md
@@ -71,10 +71,18 @@ https://archive.nytimes.com/www.nytimes.com/imagepages/2010/05/02/business/02met
Daily downloads of the npm “@observablehq/cars” package
https://observablehq.com/@mbostock/npm-daily-downloads?name=@observablehq/cars
+## electricity-demand.csv
+Hourly electricity demand for California from the U.S. Energy Information Administration, Jan. 2021
+https://www.eia.gov/opendata/
+
## energy-production.csv
U.S. Energy Information Administration; monthly energy review, primary energy production by source, Jan. 2022
https://www.eia.gov/totalenergy/data/monthly/index.php
+## federal-funds.csv
+U.S. Federal Reserve, Jan. 2023
+https://www.federalreserve.gov/releases/h15/
+
## flare.csv
Flare visualization toolkit package hierarchy
https://observablehq.com/@d3/treemap
diff --git a/test/data/electricity-demand.csv b/test/data/electricity-demand.csv
new file mode 100644
index 0000000000..7d07461845
--- /dev/null
+++ b/test/data/electricity-demand.csv
@@ -0,0 +1,9962 @@
+date,mwh
+2020-12-05,30186
+2020-12-05T01:00Z,32275
+2020-12-05T02:00Z,34912
+2020-12-05T03:00Z,34773
+2020-12-05T04:00Z,34135
+2020-12-05T05:00Z,33375
+2020-12-05T06:00Z,32403
+2020-12-05T07:00Z,30772
+2020-12-05T08:00Z,28506
+2020-12-05T09:00Z,27356
+2020-12-05T10:00Z,26443
+2020-12-05T11:00Z,25808
+2020-12-05T12:00Z,25567
+2020-12-05T13:00Z,25816
+2020-12-05T14:00Z,26565
+2020-12-05T15:00Z,27717
+2020-12-05T16:00Z,28044
+2020-12-05T17:00Z,27615
+2020-12-05T18:00Z,26992
+2020-12-05T19:00Z,26041
+2020-12-05T20:00Z,25183
+2020-12-05T21:00Z,25092
+2020-12-05T22:00Z,25855
+2020-12-05T23:00Z,26545
+2020-12-06,27851
+2020-12-06T01:00Z,30118
+2020-12-06T02:00Z,32863
+2020-12-06T03:00Z,32959
+2020-12-06T04:00Z,32481
+2020-12-06T05:00Z,31853
+2020-12-06T06:00Z,30868
+2020-12-06T07:00Z,29282
+2020-12-06T08:00Z,27544
+2020-12-06T09:00Z,26379
+2020-12-06T10:00Z,25391
+2020-12-06T11:00Z,24845
+2020-12-06T12:00Z,24652
+2020-12-06T13:00Z,24660
+2020-12-06T14:00Z,25174
+2020-12-06T15:00Z,26047
+2020-12-06T16:00Z,26380
+2020-12-06T17:00Z,25825
+2020-12-06T18:00Z,25099
+2020-12-06T19:00Z,24442
+2020-12-06T20:00Z,23991
+2020-12-06T21:00Z,24207
+2020-12-06T22:00Z,24663
+2020-12-06T23:00Z,25399
+2020-12-07,26893
+2020-12-07T01:00Z,29369
+2020-12-07T02:00Z,32608
+2020-12-07T03:00Z,32992
+2020-12-07T04:00Z,32558
+2020-12-07T05:00Z,31796
+2020-12-07T06:00Z,30648
+2020-12-07T07:00Z,28748
+2020-12-07T08:00Z,26915
+2020-12-07T09:00Z,25771
+2020-12-07T10:00Z,24965
+2020-12-07T11:00Z,24595
+2020-12-07T12:00Z,24588
+2020-12-07T13:00Z,25299
+2020-12-07T14:00Z,27096
+2020-12-07T15:00Z,29630
+2020-12-07T16:00Z,31635
+2020-12-07T17:00Z,32297
+2020-12-07T18:00Z,31873
+2020-12-07T19:00Z,31001
+2020-12-07T20:00Z,30369
+2020-12-07T21:00Z,29851
+2020-12-07T22:00Z,29693
+2020-12-07T23:00Z,29987
+2020-12-08,30912
+2020-12-08T01:00Z,32532
+2020-12-08T02:00Z,35351
+2020-12-08T03:00Z,35326
+2020-12-08T04:00Z,34354
+2020-12-08T05:00Z,33222
+2020-12-08T06:00Z,31711
+2020-12-08T07:00Z,29557
+2020-12-08T08:00Z,27467
+2020-12-08T09:00Z,26090
+2020-12-08T10:00Z,25141
+2020-12-08T11:00Z,24630
+2020-12-08T12:00Z,24555
+2020-12-08T13:00Z,25165
+2020-12-08T14:00Z,26768
+2020-12-08T15:00Z,29300
+2020-12-08T16:00Z,30768
+2020-12-08T17:00Z,30934
+2020-12-08T18:00Z,30166
+2020-12-08T19:00Z,29621
+2020-12-08T20:00Z,29427
+2020-12-08T21:00Z,29247
+2020-12-08T22:00Z,29541
+2020-12-08T23:00Z,30114
+2020-12-09,31004
+2020-12-09T01:00Z,32494
+2020-12-09T02:00Z,35230
+2020-12-09T03:00Z,34976
+2020-12-09T04:00Z,34124
+2020-12-09T05:00Z,33033
+2020-12-09T06:00Z,31620
+2020-12-09T07:00Z,29433
+2020-12-09T08:00Z,27420
+2020-12-09T09:00Z,26065
+2020-12-09T10:00Z,25250
+2020-12-09T11:00Z,24921
+2020-12-09T12:00Z,24846
+2020-12-09T13:00Z,25436
+2020-12-09T14:00Z,27172
+2020-12-09T15:00Z,29627
+2020-12-09T16:00Z,31130
+2020-12-09T17:00Z,31145
+2020-12-09T18:00Z,30154
+2020-12-09T19:00Z,29241
+2020-12-09T20:00Z,28628
+2020-12-09T21:00Z,28715
+2020-12-09T22:00Z,29069
+2020-12-09T23:00Z,29770
+2020-12-10,30930
+2020-12-10T01:00Z,32164
+2020-12-10T02:00Z,34886
+2020-12-10T03:00Z,34893
+2020-12-10T04:00Z,34129
+2020-12-10T05:00Z,33094
+2020-12-10T06:00Z,31750
+2020-12-10T07:00Z,29701
+2020-12-10T08:00Z,27713
+2020-12-10T09:00Z,26330
+2020-12-10T10:00Z,25426
+2020-12-10T11:00Z,25032
+2020-12-10T12:00Z,24956
+2020-12-10T13:00Z,25549
+2020-12-10T14:00Z,27225
+2020-12-10T15:00Z,29809
+2020-12-10T16:00Z,31264
+2020-12-10T17:00Z,31074
+2020-12-10T18:00Z,30269
+2020-12-10T19:00Z,29298
+2020-12-10T20:00Z,28512
+2020-12-10T21:00Z,27921
+2020-12-10T22:00Z,28229
+2020-12-10T23:00Z,28905
+2020-12-11,30157
+2020-12-11T01:00Z,31988
+2020-12-11T02:00Z,34733
+2020-12-11T03:00Z,35241
+2020-12-11T04:00Z,34568
+2020-12-11T05:00Z,33656
+2020-12-11T06:00Z,32240
+2020-12-11T07:00Z,30186
+2020-12-11T08:00Z,28132
+2020-12-11T09:00Z,26756
+2020-12-11T10:00Z,25861
+2020-12-11T11:00Z,25392
+2020-12-11T12:00Z,25303
+2020-12-11T13:00Z,25849
+2020-12-11T14:00Z,27566
+2020-12-11T15:00Z,29939
+2020-12-11T16:00Z,31311
+2020-12-11T17:00Z,31911
+2020-12-11T18:00Z,31168
+2020-12-11T19:00Z,30498
+2020-12-11T20:00Z,30305
+2020-12-11T21:00Z,29877
+2020-12-11T22:00Z,29923
+2020-12-11T23:00Z,30264
+2020-12-12,30978
+2020-12-12T01:00Z,32666
+2020-12-12T02:00Z,35366
+2020-12-12T03:00Z,35320
+2020-12-12T04:00Z,34596
+2020-12-12T05:00Z,33715
+2020-12-12T06:00Z,32537
+2020-12-12T07:00Z,30584
+2020-12-12T08:00Z,28622
+2020-12-12T09:00Z,27072
+2020-12-12T10:00Z,25967
+2020-12-12T11:00Z,25279
+2020-12-12T12:00Z,24873
+2020-12-12T13:00Z,24995
+2020-12-12T14:00Z,25635
+2020-12-12T15:00Z,28714
+2020-12-12T16:00Z,27434
+2020-12-12T17:00Z,28225
+2020-12-12T18:00Z,28629
+2020-12-12T19:00Z,28737
+2020-12-12T20:00Z,28288
+2020-12-12T21:00Z,27815
+2020-12-12T22:00Z,27633
+2020-12-12T23:00Z,27955
+2020-12-13,28794
+2020-12-13T01:00Z,30514
+2020-12-13T02:00Z,33263
+2020-12-13T03:00Z,33472
+2020-12-13T04:00Z,32856
+2020-12-13T05:00Z,32131
+2020-12-13T06:00Z,31069
+2020-12-13T07:00Z,29390
+2020-12-13T08:00Z,27461
+2020-12-13T09:00Z,26174
+2020-12-13T10:00Z,25184
+2020-12-13T11:00Z,24610
+2020-12-13T12:00Z,24323
+2020-12-13T13:00Z,24323
+2020-12-13T14:00Z,24778
+2020-12-13T15:00Z,25573
+2020-12-13T16:00Z,25838
+2020-12-13T17:00Z,26251
+2020-12-13T18:00Z,26508
+2020-12-13T19:00Z,26825
+2020-12-13T20:00Z,26890
+2020-12-13T21:00Z,27030
+2020-12-13T22:00Z,27204
+2020-12-13T23:00Z,27684
+2020-12-14,28622
+2020-12-14T01:00Z,30397
+2020-12-14T02:00Z,33146
+2020-12-14T03:00Z,33217
+2020-12-14T04:00Z,32650
+2020-12-14T05:00Z,31763
+2020-12-14T06:00Z,30514
+2020-12-14T07:00Z,28548
+2020-12-14T08:00Z,26500
+2020-12-14T09:00Z,25169
+2020-12-14T10:00Z,24436
+2020-12-14T11:00Z,24107
+2020-12-14T12:00Z,24131
+2020-12-14T13:00Z,24858
+2020-12-14T14:00Z,26543
+2020-12-14T15:00Z,29140
+2020-12-14T16:00Z,30862
+2020-12-14T17:00Z,31222
+2020-12-14T18:00Z,30426
+2020-12-14T19:00Z,29647
+2020-12-14T20:00Z,28858
+2020-12-14T21:00Z,28372
+2020-12-14T22:00Z,28167
+2020-12-14T23:00Z,28772
+2020-12-15,29990
+2020-12-15T01:00Z,32133
+2020-12-15T02:00Z,35405
+2020-12-15T03:00Z,35677
+2020-12-15T04:00Z,35023
+2020-12-15T05:00Z,34100
+2020-12-15T06:00Z,32625
+2020-12-15T07:00Z,30369
+2020-12-15T08:00Z,28219
+2020-12-15T09:00Z,26939
+2020-12-15T10:00Z,25951
+2020-12-15T11:00Z,25382
+2020-12-15T12:00Z,25331
+2020-12-15T13:00Z,26031
+2020-12-15T14:00Z,27828
+2020-12-15T15:00Z,30350
+2020-12-15T16:00Z,31871
+2020-12-15T17:00Z,31679
+2020-12-15T18:00Z,30602
+2020-12-15T19:00Z,29620
+2020-12-15T20:00Z,28899
+2020-12-15T21:00Z,28845
+2020-12-15T22:00Z,28767
+2020-12-15T23:00Z,29173
+2020-12-16,30181
+2020-12-16T01:00Z,32377
+2020-12-16T02:00Z,35476
+2020-12-16T03:00Z,35837
+2020-12-16T04:00Z,35124
+2020-12-16T05:00Z,34193
+2020-12-16T06:00Z,32837
+2020-12-16T07:00Z,30551
+2020-12-16T08:00Z,28522
+2020-12-16T09:00Z,27162
+2020-12-16T10:00Z,26222
+2020-12-16T11:00Z,25728
+2020-12-16T12:00Z,25631
+2020-12-16T13:00Z,26205
+2020-12-16T14:00Z,27974
+2020-12-16T15:00Z,30522
+2020-12-16T16:00Z,32172
+2020-12-16T17:00Z,32002
+2020-12-16T18:00Z,30864
+2020-12-16T19:00Z,29654
+2020-12-16T20:00Z,28658
+2020-12-16T21:00Z,28278
+2020-12-16T22:00Z,28434
+2020-12-16T23:00Z,29195
+2020-12-17,30504
+2020-12-17T01:00Z,32277
+2020-12-17T02:00Z,35368
+2020-12-17T03:00Z,35597
+2020-12-17T04:00Z,34880
+2020-12-17T05:00Z,33915
+2020-12-17T06:00Z,32515
+2020-12-17T07:00Z,30486
+2020-12-17T08:00Z,28463
+2020-12-17T09:00Z,27093
+2020-12-17T10:00Z,26026
+2020-12-17T11:00Z,25298
+2020-12-17T12:00Z,25130
+2020-12-17T13:00Z,25664
+2020-12-17T14:00Z,27123
+2020-12-17T15:00Z,29305
+2020-12-17T16:00Z,30960
+2020-12-17T17:00Z,31555
+2020-12-17T18:00Z,30845
+2020-12-17T19:00Z,29591
+2020-12-17T20:00Z,28904
+2020-12-17T21:00Z,28677
+2020-12-17T22:00Z,28792
+2020-12-17T23:00Z,29317
+2020-12-18,30267
+2020-12-18T01:00Z,32107
+2020-12-18T02:00Z,35177
+2020-12-18T03:00Z,35444
+2020-12-18T04:00Z,34797
+2020-12-18T05:00Z,33852
+2020-12-18T06:00Z,32656
+2020-12-18T07:00Z,30524
+2020-12-18T08:00Z,28331
+2020-12-18T09:00Z,27076
+2020-12-18T10:00Z,26105
+2020-12-18T11:00Z,25597
+2020-12-18T12:00Z,25570
+2020-12-18T13:00Z,26201
+2020-12-18T14:00Z,27798
+2020-12-18T15:00Z,30277
+2020-12-18T16:00Z,31677
+2020-12-18T17:00Z,31573
+2020-12-18T18:00Z,30262
+2020-12-18T19:00Z,29155
+2020-12-18T20:00Z,28266
+2020-12-18T21:00Z,27840
+2020-12-18T22:00Z,27832
+2020-12-18T23:00Z,28350
+2020-12-19,29321
+2020-12-19T01:00Z,31416
+2020-12-19T02:00Z,34580
+2020-12-19T03:00Z,34827
+2020-12-19T04:00Z,34253
+2020-12-19T05:00Z,33481
+2020-12-19T06:00Z,32488
+2020-12-19T07:00Z,30637
+2020-12-19T08:00Z,28760
+2020-12-19T09:00Z,27495
+2020-12-19T10:00Z,26500
+2020-12-19T11:00Z,25808
+2020-12-19T12:00Z,25552
+2020-12-19T13:00Z,25761
+2020-12-19T14:00Z,26613
+2020-12-19T15:00Z,27835
+2020-12-19T16:00Z,28489
+2020-12-19T17:00Z,28202
+2020-12-19T18:00Z,27010
+2020-12-19T19:00Z,26026
+2020-12-19T20:00Z,25175
+2020-12-19T21:00Z,24718
+2020-12-19T22:00Z,24784
+2020-12-19T23:00Z,25363
+2020-12-20,27029
+2020-12-20T01:00Z,29559
+2020-12-20T02:00Z,33052
+2020-12-20T03:00Z,33484
+2020-12-20T04:00Z,33038
+2020-12-20T05:00Z,32333
+2020-12-20T06:00Z,31460
+2020-12-20T07:00Z,30002
+2020-12-20T08:00Z,28302
+2020-12-20T09:00Z,27047
+2020-12-20T10:00Z,26094
+2020-12-20T11:00Z,25501
+2020-12-20T12:00Z,25335
+2020-12-20T13:00Z,25510
+2020-12-20T14:00Z,26073
+2020-12-20T15:00Z,26572
+2020-12-20T16:00Z,27097
+2020-12-20T17:00Z,27043
+2020-12-20T18:00Z,26175
+2020-12-20T19:00Z,25351
+2020-12-20T20:00Z,24908
+2020-12-20T21:00Z,24674
+2020-12-20T22:00Z,24810
+2020-12-20T23:00Z,25493
+2020-12-21,27004
+2020-12-21T01:00Z,29254
+2020-12-21T02:00Z,32452
+2020-12-21T03:00Z,32890
+2020-12-21T04:00Z,32691
+2020-12-21T05:00Z,31991
+2020-12-21T06:00Z,30947
+2020-12-21T07:00Z,29161
+2020-12-21T08:00Z,27253
+2020-12-21T09:00Z,25928
+2020-12-21T10:00Z,25081
+2020-12-21T11:00Z,24738
+2020-12-21T12:00Z,24755
+2020-12-21T13:00Z,25435
+2020-12-21T14:00Z,27070
+2020-12-21T15:00Z,29370
+2020-12-21T16:00Z,30725
+2020-12-21T17:00Z,30794
+2020-12-21T18:00Z,30122
+2020-12-21T19:00Z,29569
+2020-12-21T20:00Z,29045
+2020-12-21T21:00Z,28769
+2020-12-21T22:00Z,28925
+2020-12-21T23:00Z,29371
+2020-12-22,30286
+2020-12-22T01:00Z,32127
+2020-12-22T02:00Z,35053
+2020-12-22T03:00Z,34967
+2020-12-22T04:00Z,34355
+2020-12-22T05:00Z,33395
+2020-12-22T06:00Z,32080
+2020-12-22T07:00Z,30067
+2020-12-22T08:00Z,28064
+2020-12-22T09:00Z,26593
+2020-12-22T10:00Z,25693
+2020-12-22T11:00Z,25115
+2020-12-22T12:00Z,25083
+2020-12-22T13:00Z,25533
+2020-12-22T14:00Z,26989
+2020-12-22T15:00Z,29174
+2020-12-22T16:00Z,30516
+2020-12-22T17:00Z,30810
+2020-12-22T18:00Z,30084
+2020-12-22T19:00Z,29474
+2020-12-22T20:00Z,28882
+2020-12-22T21:00Z,28369
+2020-12-22T22:00Z,28332
+2020-12-22T23:00Z,28858
+2020-12-23,29754
+2020-12-23T01:00Z,31634
+2020-12-23T02:00Z,34709
+2020-12-23T03:00Z,34877
+2020-12-23T04:00Z,34303
+2020-12-23T05:00Z,33504
+2020-12-23T06:00Z,32210
+2020-12-23T07:00Z,30265
+2020-12-23T08:00Z,28244
+2020-12-23T09:00Z,26897
+2020-12-23T10:00Z,26018
+2020-12-23T11:00Z,25612
+2020-12-23T12:00Z,25434
+2020-12-23T13:00Z,25940
+2020-12-23T14:00Z,27356
+2020-12-23T15:00Z,29383
+2020-12-23T16:00Z,30511
+2020-12-23T17:00Z,30904
+2020-12-23T18:00Z,30554
+2020-12-23T19:00Z,29852
+2020-12-23T20:00Z,29093
+2020-12-23T21:00Z,28524
+2020-12-23T22:00Z,28424
+2020-12-23T23:00Z,28643
+2020-12-24,29671
+2020-12-24T01:00Z,32679
+2020-12-24T02:00Z,34799
+2020-12-24T03:00Z,35119
+2020-12-24T04:00Z,34554
+2020-12-24T05:00Z,33798
+2020-12-24T06:00Z,32675
+2020-12-24T07:00Z,30728
+2020-12-24T08:00Z,28729
+2020-12-24T09:00Z,27127
+2020-12-24T10:00Z,26009
+2020-12-24T11:00Z,25457
+2020-12-24T12:00Z,25147
+2020-12-24T13:00Z,25400
+2020-12-24T14:00Z,26290
+2020-12-24T15:00Z,27867
+2020-12-24T16:00Z,28886
+2020-12-24T17:00Z,29738
+2020-12-24T18:00Z,30424
+2020-12-24T19:00Z,30402
+2020-12-24T20:00Z,29655
+2020-12-24T21:00Z,28610
+2020-12-24T22:00Z,28315
+2020-12-24T23:00Z,28714
+2020-12-25,29379
+2020-12-25T01:00Z,30903
+2020-12-25T02:00Z,33380
+2020-12-25T03:00Z,32850
+2020-12-25T04:00Z,31887
+2020-12-25T05:00Z,31016
+2020-12-25T06:00Z,30183
+2020-12-25T07:00Z,28782
+2020-12-25T08:00Z,27304
+2020-12-25T09:00Z,25961
+2020-12-25T10:00Z,25174
+2020-12-25T11:00Z,24552
+2020-12-25T12:00Z,24188
+2020-12-25T13:00Z,24183
+2020-12-25T14:00Z,24765
+2020-12-25T15:00Z,25702
+2020-12-25T16:00Z,26028
+2020-12-25T17:00Z,25858
+2020-12-25T18:00Z,25301
+2020-12-25T19:00Z,24706
+2020-12-25T20:00Z,24296
+2020-12-25T21:00Z,24124
+2020-12-25T22:00Z,24527
+2020-12-25T23:00Z,25127
+2020-12-26,26213
+2020-12-26T01:00Z,28066
+2020-12-26T02:00Z,30534
+2020-12-26T03:00Z,30506
+2020-12-26T04:00Z,29851
+2020-12-26T05:00Z,29275
+2020-12-26T06:00Z,28570
+2020-12-26T07:00Z,27227
+2020-12-26T08:00Z,25678
+2020-12-26T09:00Z,24501
+2020-12-26T10:00Z,23700
+2020-12-26T11:00Z,23256
+2020-12-26T12:00Z,23103
+2020-12-26T13:00Z,23273
+2020-12-26T14:00Z,23888
+2020-12-26T15:00Z,24877
+2020-12-26T16:00Z,25214
+2020-12-26T17:00Z,25218
+2020-12-26T18:00Z,24872
+2020-12-26T19:00Z,24493
+2020-12-26T20:00Z,24010
+2020-12-26T21:00Z,23754
+2020-12-26T22:00Z,23944
+2020-12-26T23:00Z,24225
+2020-12-27,25458
+2020-12-27T01:00Z,27696
+2020-12-27T02:00Z,31340
+2020-12-27T03:00Z,31812
+2020-12-27T04:00Z,31317
+2020-12-27T05:00Z,30711
+2020-12-27T06:00Z,29750
+2020-12-27T07:00Z,28212
+2020-12-27T08:00Z,26581
+2020-12-27T09:00Z,25296
+2020-12-27T10:00Z,24426
+2020-12-27T11:00Z,23909
+2020-12-27T12:00Z,23582
+2020-12-27T13:00Z,23583
+2020-12-27T14:00Z,24107
+2020-12-27T15:00Z,24879
+2020-12-27T16:00Z,25166
+2020-12-27T17:00Z,25582
+2020-12-27T18:00Z,26056
+2020-12-27T19:00Z,25745
+2020-12-27T20:00Z,25041
+2020-12-27T21:00Z,24686
+2020-12-27T22:00Z,24259
+2020-12-27T23:00Z,24499
+2020-12-28,25973
+2020-12-28T01:00Z,28463
+2020-12-28T02:00Z,31777
+2020-12-28T03:00Z,32416
+2020-12-28T04:00Z,32023
+2020-12-28T05:00Z,31238
+2020-12-28T06:00Z,30182
+2020-12-28T07:00Z,28614
+2020-12-28T08:00Z,26609
+2020-12-28T09:00Z,25334
+2020-12-28T10:00Z,24374
+2020-12-28T11:00Z,23956
+2020-12-28T12:00Z,23834
+2020-12-28T13:00Z,24395
+2020-12-28T14:00Z,25822
+2020-12-28T15:00Z,27763
+2020-12-28T16:00Z,29131
+2020-12-28T17:00Z,29640
+2020-12-28T18:00Z,29528
+2020-12-28T19:00Z,28829
+2020-12-28T20:00Z,28693
+2020-12-28T21:00Z,28978
+2020-12-28T22:00Z,29466
+2020-12-28T23:00Z,30045
+2020-12-29,31020
+2020-12-29T01:00Z,32570
+2020-12-29T02:00Z,35258
+2020-12-29T03:00Z,35323
+2020-12-29T04:00Z,34645
+2020-12-29T05:00Z,33615
+2020-12-29T06:00Z,32018
+2020-12-29T07:00Z,30094
+2020-12-29T08:00Z,28141
+2020-12-29T09:00Z,26851
+2020-12-29T10:00Z,25884
+2020-12-29T11:00Z,25236
+2020-12-29T12:00Z,25040
+2020-12-29T13:00Z,25595
+2020-12-29T14:00Z,27044
+2020-12-29T15:00Z,29124
+2020-12-29T16:00Z,30235
+2020-12-29T17:00Z,29745
+2020-12-29T18:00Z,28422
+2020-12-29T19:00Z,27355
+2020-12-29T20:00Z,26476
+2020-12-29T21:00Z,26111
+2020-12-29T22:00Z,26203
+2020-12-29T23:00Z,26669
+2020-12-30,28077
+2020-12-30T01:00Z,30285
+2020-12-30T02:00Z,33804
+2020-12-30T03:00Z,34275
+2020-12-30T04:00Z,33734
+2020-12-30T05:00Z,33191
+2020-12-30T06:00Z,32127
+2020-12-30T07:00Z,30309
+2020-12-30T08:00Z,28503
+2020-12-30T09:00Z,27154
+2020-12-30T10:00Z,26165
+2020-12-30T11:00Z,25651
+2020-12-30T12:00Z,25625
+2020-12-30T13:00Z,26109
+2020-12-30T14:00Z,27601
+2020-12-30T15:00Z,29756
+2020-12-30T16:00Z,30693
+2020-12-30T17:00Z,30236
+2020-12-30T18:00Z,28967
+2020-12-30T19:00Z,27969
+2020-12-30T20:00Z,26795
+2020-12-30T21:00Z,26166
+2020-12-30T22:00Z,26272
+2020-12-30T23:00Z,26784
+2020-12-31,28238
+2020-12-31T01:00Z,30676
+2020-12-31T02:00Z,33772
+2020-12-31T03:00Z,34114
+2020-12-31T04:00Z,33505
+2020-12-31T05:00Z,32702
+2020-12-31T06:00Z,31476
+2020-12-31T07:00Z,29569
+2020-12-31T08:00Z,27708
+2020-12-31T09:00Z,26450
+2020-12-31T10:00Z,25504
+2020-12-31T11:00Z,24881
+2020-12-31T12:00Z,24740
+2020-12-31T13:00Z,25132
+2020-12-31T14:00Z,26329
+2020-12-31T15:00Z,28152
+2020-12-31T16:00Z,29122
+2020-12-31T17:00Z,28776
+2020-12-31T18:00Z,27853
+2020-12-31T19:00Z,26970
+2020-12-31T20:00Z,26281
+2020-12-31T21:00Z,25586
+2020-12-31T22:00Z,25379
+2020-12-31T23:00Z,25850
+2021-01-01,27145
+2021-01-01T01:00Z,29416
+2021-01-01T02:00Z,32605
+2021-01-01T03:00Z,32836
+2021-01-01T04:00Z,31907
+2021-01-01T05:00Z,30914
+2021-01-01T06:00Z,29934
+2021-01-01T07:00Z,28669
+2021-01-01T08:00Z,27497
+2021-01-01T09:00Z,26257
+2021-01-01T10:00Z,25234
+2021-01-01T11:00Z,24414
+2021-01-01T12:00Z,24031
+2021-01-01T13:00Z,24017
+2021-01-01T14:00Z,24566
+2021-01-01T15:00Z,25439
+2021-01-01T16:00Z,25486
+2021-01-01T17:00Z,24620
+2021-01-01T18:00Z,23651
+2021-01-01T19:00Z,22861
+2021-01-01T20:00Z,22627
+2021-01-01T21:00Z,22485
+2021-01-01T22:00Z,22766
+2021-01-01T23:00Z,23337
+2021-01-02,24662
+2021-01-02T01:00Z,27271
+2021-01-02T02:00Z,30692
+2021-01-02T03:00Z,31108
+2021-01-02T04:00Z,30789
+2021-01-02T05:00Z,30175
+2021-01-02T06:00Z,29298
+2021-01-02T07:00Z,27783
+2021-01-02T08:00Z,26205
+2021-01-02T09:00Z,25297
+2021-01-02T10:00Z,24378
+2021-01-02T11:00Z,23816
+2021-01-02T12:00Z,23591
+2021-01-02T13:00Z,23739
+2021-01-02T14:00Z,24329
+2021-01-02T15:00Z,25362
+2021-01-02T16:00Z,25860
+2021-01-02T17:00Z,25835
+2021-01-02T18:00Z,25401
+2021-01-02T19:00Z,25175
+2021-01-02T20:00Z,25054
+2021-01-02T21:00Z,25045
+2021-01-02T22:00Z,25301
+2021-01-02T23:00Z,25807
+2021-01-03,26841
+2021-01-03T01:00Z,28736
+2021-01-03T02:00Z,31736
+2021-01-03T03:00Z,32038
+2021-01-03T04:00Z,31462
+2021-01-03T05:00Z,30536
+2021-01-03T06:00Z,29540
+2021-01-03T07:00Z,27931
+2021-01-03T08:00Z,26351
+2021-01-03T09:00Z,25251
+2021-01-03T10:00Z,24273
+2021-01-03T11:00Z,23584
+2021-01-03T12:00Z,23322
+2021-01-03T13:00Z,23454
+2021-01-03T14:00Z,23963
+2021-01-03T15:00Z,24756
+2021-01-03T16:00Z,25150
+2021-01-03T17:00Z,25177
+2021-01-03T18:00Z,24591
+2021-01-03T19:00Z,24071
+2021-01-03T20:00Z,23696
+2021-01-03T21:00Z,23489
+2021-01-03T22:00Z,23828
+2021-01-03T23:00Z,24350
+2021-01-04,25622
+2021-01-04T01:00Z,28025
+2021-01-04T02:00Z,31465
+2021-01-04T03:00Z,31911
+2021-01-04T04:00Z,31401
+2021-01-04T05:00Z,30573
+2021-01-04T06:00Z,29406
+2021-01-04T07:00Z,27693
+2021-01-04T08:00Z,25993
+2021-01-04T09:00Z,24816
+2021-01-04T10:00Z,24123
+2021-01-04T11:00Z,23717
+2021-01-04T12:00Z,23720
+2021-01-04T13:00Z,24412
+2021-01-04T14:00Z,25990
+2021-01-04T15:00Z,28482
+2021-01-04T16:00Z,29851
+2021-01-04T17:00Z,30155
+2021-01-04T18:00Z,29457
+2021-01-04T19:00Z,29030
+2021-01-04T20:00Z,28862
+2021-01-04T21:00Z,28708
+2021-01-04T22:00Z,28566
+2021-01-04T23:00Z,28572
+2021-01-05,29188
+2021-01-05T01:00Z,30744
+2021-01-05T02:00Z,33388
+2021-01-05T03:00Z,33638
+2021-01-05T04:00Z,32917
+2021-01-05T05:00Z,31850
+2021-01-05T06:00Z,30514
+2021-01-05T07:00Z,28665
+2021-01-05T08:00Z,26932
+2021-01-05T09:00Z,25940
+2021-01-05T10:00Z,25167
+2021-01-05T11:00Z,24650
+2021-01-05T12:00Z,24571
+2021-01-05T13:00Z,25241
+2021-01-05T14:00Z,26828
+2021-01-05T15:00Z,29218
+2021-01-05T16:00Z,30915
+2021-01-05T17:00Z,30887
+2021-01-05T18:00Z,29779
+2021-01-05T19:00Z,28471
+2021-01-05T20:00Z,27480
+2021-01-05T21:00Z,26955
+2021-01-05T22:00Z,27110
+2021-01-05T23:00Z,27782
+2021-01-06,28971
+2021-01-06T01:00Z,30579
+2021-01-06T02:00Z,33403
+2021-01-06T03:00Z,33790
+2021-01-06T04:00Z,33203
+2021-01-06T05:00Z,32254
+2021-01-06T06:00Z,30973
+2021-01-06T07:00Z,29158
+2021-01-06T08:00Z,27196
+2021-01-06T09:00Z,25896
+2021-01-06T10:00Z,25129
+2021-01-06T11:00Z,24693
+2021-01-06T12:00Z,24659
+2021-01-06T13:00Z,25340
+2021-01-06T14:00Z,27086
+2021-01-06T15:00Z,29602
+2021-01-06T16:00Z,31270
+2021-01-06T17:00Z,31461
+2021-01-06T18:00Z,30849
+2021-01-06T19:00Z,29956
+2021-01-06T20:00Z,29276
+2021-01-06T21:00Z,29165
+2021-01-06T22:00Z,29305
+2021-01-06T23:00Z,29378
+2021-01-07,29666
+2021-01-07T01:00Z,31030
+2021-01-07T02:00Z,33743
+2021-01-07T03:00Z,33866
+2021-01-07T04:00Z,33178
+2021-01-07T05:00Z,32391
+2021-01-07T06:00Z,31152
+2021-01-07T07:00Z,29253
+2021-01-07T08:00Z,27348
+2021-01-07T09:00Z,26116
+2021-01-07T10:00Z,25217
+2021-01-07T11:00Z,24733
+2021-01-07T12:00Z,24880
+2021-01-07T13:00Z,25582
+2021-01-07T14:00Z,27202
+2021-01-07T15:00Z,29700
+2021-01-07T16:00Z,31341
+2021-01-07T17:00Z,31587
+2021-01-07T18:00Z,30856
+2021-01-07T19:00Z,29915
+2021-01-07T20:00Z,29217
+2021-01-07T21:00Z,28644
+2021-01-07T22:00Z,28203
+2021-01-07T23:00Z,28429
+2021-01-08,29452
+2021-01-08T01:00Z,31051
+2021-01-08T02:00Z,33869
+2021-01-08T03:00Z,34224
+2021-01-08T04:00Z,33522
+2021-01-08T05:00Z,32666
+2021-01-08T06:00Z,31400
+2021-01-08T07:00Z,29565
+2021-01-08T08:00Z,27678
+2021-01-08T09:00Z,26321
+2021-01-08T10:00Z,25480
+2021-01-08T11:00Z,24938
+2021-01-08T12:00Z,24838
+2021-01-08T13:00Z,25448
+2021-01-08T14:00Z,27064
+2021-01-08T15:00Z,29480
+2021-01-08T16:00Z,31192
+2021-01-08T17:00Z,31566
+2021-01-08T18:00Z,30733
+2021-01-08T19:00Z,29696
+2021-01-08T20:00Z,28851
+2021-01-08T21:00Z,28229
+2021-01-08T22:00Z,27904
+2021-01-08T23:00Z,27883
+2021-01-09,28556
+2021-01-09T01:00Z,30155
+2021-01-09T02:00Z,32546
+2021-01-09T03:00Z,32925
+2021-01-09T04:00Z,32277
+2021-01-09T05:00Z,31504
+2021-01-09T06:00Z,30432
+2021-01-09T07:00Z,29014
+2021-01-09T08:00Z,27295
+2021-01-09T09:00Z,26165
+2021-01-09T10:00Z,25148
+2021-01-09T11:00Z,24676
+2021-01-09T12:00Z,24440
+2021-01-09T13:00Z,24711
+2021-01-09T14:00Z,25636
+2021-01-09T15:00Z,26973
+2021-01-09T16:00Z,27738
+2021-01-09T17:00Z,27443
+2021-01-09T18:00Z,26793
+2021-01-09T19:00Z,25878
+2021-01-09T20:00Z,24964
+2021-01-09T21:00Z,24572
+2021-01-09T22:00Z,24352
+2021-01-09T23:00Z,24741
+2021-01-10,25999
+2021-01-10T01:00Z,27941
+2021-01-10T02:00Z,30808
+2021-01-10T03:00Z,31448
+2021-01-10T04:00Z,30998
+2021-01-10T05:00Z,30386
+2021-01-10T06:00Z,29348
+2021-01-10T07:00Z,27890
+2021-01-10T08:00Z,26441
+2021-01-10T09:00Z,25347
+2021-01-10T10:00Z,24624
+2021-01-10T11:00Z,24115
+2021-01-10T12:00Z,23913
+2021-01-10T13:00Z,24041
+2021-01-10T14:00Z,24544
+2021-01-10T15:00Z,25515
+2021-01-10T16:00Z,25975
+2021-01-10T17:00Z,25624
+2021-01-10T18:00Z,25006
+2021-01-10T19:00Z,24405
+2021-01-10T20:00Z,24078
+2021-01-10T21:00Z,24168
+2021-01-10T22:00Z,23934
+2021-01-10T23:00Z,24366
+2021-01-11,25764
+2021-01-11T01:00Z,27643
+2021-01-11T02:00Z,30782
+2021-01-11T03:00Z,31331
+2021-01-11T04:00Z,30807
+2021-01-11T05:00Z,30116
+2021-01-11T06:00Z,29054
+2021-01-11T07:00Z,27373
+2021-01-11T08:00Z,25724
+2021-01-11T09:00Z,24735
+2021-01-11T10:00Z,24048
+2021-01-11T11:00Z,23753
+2021-01-11T12:00Z,23841
+2021-01-11T13:00Z,24770
+2021-01-11T14:00Z,26658
+2021-01-11T15:00Z,29402
+2021-01-11T16:00Z,31306
+2021-01-11T17:00Z,31372
+2021-01-11T18:00Z,30288
+2021-01-11T19:00Z,29091
+2021-01-11T20:00Z,27995
+2021-01-11T21:00Z,27252
+2021-01-11T22:00Z,27086
+2021-01-11T23:00Z,27516
+2021-01-12,28622
+2021-01-12T01:00Z,30083
+2021-01-12T02:00Z,33031
+2021-01-12T03:00Z,33368
+2021-01-12T04:00Z,32597
+2021-01-12T05:00Z,31607
+2021-01-12T06:00Z,30385
+2021-01-12T07:00Z,28494
+2021-01-12T08:00Z,26685
+2021-01-12T09:00Z,25582
+2021-01-12T10:00Z,24768
+2021-01-12T11:00Z,24327
+2021-01-12T12:00Z,24299
+2021-01-12T13:00Z,24991
+2021-01-12T14:00Z,26698
+2021-01-12T15:00Z,29337
+2021-01-12T16:00Z,30848
+2021-01-12T17:00Z,31090
+2021-01-12T18:00Z,30624
+2021-01-12T19:00Z,29968
+2021-01-12T20:00Z,29427
+2021-01-12T21:00Z,29035
+2021-01-12T22:00Z,28938
+2021-01-12T23:00Z,29265
+2021-01-13,29997
+2021-01-13T01:00Z,30809
+2021-01-13T02:00Z,33313
+2021-01-13T03:00Z,33404
+2021-01-13T04:00Z,32538
+2021-01-13T05:00Z,31505
+2021-01-13T06:00Z,30164
+2021-01-13T07:00Z,28343
+2021-01-13T08:00Z,26528
+2021-01-13T09:00Z,25407
+2021-01-13T10:00Z,24533
+2021-01-13T11:00Z,24130
+2021-01-13T12:00Z,24127
+2021-01-13T13:00Z,24764
+2021-01-13T14:00Z,26422
+2021-01-13T15:00Z,28900
+2021-01-13T16:00Z,30407
+2021-01-13T17:00Z,30431
+2021-01-13T18:00Z,29317
+2021-01-13T19:00Z,28131
+2021-01-13T20:00Z,27772
+2021-01-13T21:00Z,27290
+2021-01-13T22:00Z,27108
+2021-01-13T23:00Z,27591
+2021-01-14,28453
+2021-01-14T01:00Z,29973
+2021-01-14T02:00Z,32491
+2021-01-14T03:00Z,32860
+2021-01-14T04:00Z,32051
+2021-01-14T05:00Z,31217
+2021-01-14T06:00Z,29878
+2021-01-14T07:00Z,28047
+2021-01-14T08:00Z,26446
+2021-01-14T09:00Z,25443
+2021-01-14T10:00Z,24619
+2021-01-14T11:00Z,24165
+2021-01-14T12:00Z,24151
+2021-01-14T13:00Z,24723
+2021-01-14T14:00Z,26338
+2021-01-14T15:00Z,28802
+2021-01-14T16:00Z,30290
+2021-01-14T17:00Z,30197
+2021-01-14T18:00Z,29262
+2021-01-14T19:00Z,28107
+2021-01-14T20:00Z,27809
+2021-01-14T21:00Z,27694
+2021-01-14T22:00Z,27868
+2021-01-14T23:00Z,28133
+2021-01-15,28798
+2021-01-15T01:00Z,30202
+2021-01-15T02:00Z,32415
+2021-01-15T03:00Z,32675
+2021-01-15T04:00Z,31802
+2021-01-15T05:00Z,30709
+2021-01-15T06:00Z,29402
+2021-01-15T07:00Z,27696
+2021-01-15T08:00Z,26120
+2021-01-15T09:00Z,24990
+2021-01-15T10:00Z,24170
+2021-01-15T11:00Z,23835
+2021-01-15T12:00Z,23786
+2021-01-15T13:00Z,24336
+2021-01-15T14:00Z,25796
+2021-01-15T15:00Z,28058
+2021-01-15T16:00Z,29413
+2021-01-15T17:00Z,29564
+2021-01-15T18:00Z,28992
+2021-01-15T19:00Z,28488
+2021-01-15T20:00Z,27949
+2021-01-15T21:00Z,27693
+2021-01-15T22:00Z,28210
+2021-01-15T23:00Z,28727
+2021-01-16,29901
+2021-01-16T01:00Z,31311
+2021-01-16T02:00Z,32902
+2021-01-16T03:00Z,32583
+2021-01-16T04:00Z,31378
+2021-01-16T05:00Z,30191
+2021-01-16T06:00Z,28999
+2021-01-16T07:00Z,27573
+2021-01-16T08:00Z,26080
+2021-01-16T09:00Z,24909
+2021-01-16T10:00Z,24168
+2021-01-16T11:00Z,23794
+2021-01-16T12:00Z,23514
+2021-01-16T13:00Z,23726
+2021-01-16T14:00Z,24310
+2021-01-16T15:00Z,25446
+2021-01-16T16:00Z,25826
+2021-01-16T17:00Z,25823
+2021-01-16T18:00Z,25174
+2021-01-16T19:00Z,24618
+2021-01-16T20:00Z,23865
+2021-01-16T21:00Z,23816
+2021-01-16T22:00Z,24409
+2021-01-16T23:00Z,25057
+2021-01-17,26169
+2021-01-17T01:00Z,27955
+2021-01-17T02:00Z,30172
+2021-01-17T03:00Z,30734
+2021-01-17T04:00Z,29935
+2021-01-17T05:00Z,28956
+2021-01-17T06:00Z,28025
+2021-01-17T07:00Z,26650
+2021-01-17T08:00Z,25261
+2021-01-17T09:00Z,24267
+2021-01-17T10:00Z,23380
+2021-01-17T11:00Z,22841
+2021-01-17T12:00Z,22708
+2021-01-17T13:00Z,22805
+2021-01-17T14:00Z,23284
+2021-01-17T15:00Z,24070
+2021-01-17T16:00Z,24282
+2021-01-17T17:00Z,24082
+2021-01-17T18:00Z,23605
+2021-01-17T19:00Z,23165
+2021-01-17T20:00Z,23048
+2021-01-17T21:00Z,23258
+2021-01-17T22:00Z,23796
+2021-01-17T23:00Z,24728
+2021-01-18,25771
+2021-01-18T01:00Z,27632
+2021-01-18T02:00Z,29973
+2021-01-18T03:00Z,30377
+2021-01-18T04:00Z,29581
+2021-01-18T05:00Z,28560
+2021-01-18T06:00Z,27426
+2021-01-18T07:00Z,26123
+2021-01-18T08:00Z,24910
+2021-01-18T09:00Z,24264
+2021-01-18T10:00Z,23550
+2021-01-18T11:00Z,23133
+2021-01-18T12:00Z,23054
+2021-01-18T13:00Z,23555
+2021-01-18T14:00Z,24822
+2021-01-18T15:00Z,26454
+2021-01-18T16:00Z,27150
+2021-01-18T17:00Z,26930
+2021-01-18T18:00Z,26134
+2021-01-18T19:00Z,25887
+2021-01-18T20:00Z,25592
+2021-01-18T21:00Z,25679
+2021-01-18T22:00Z,26090
+2021-01-18T23:00Z,26698
+2021-01-19,27740
+2021-01-19T01:00Z,29332
+2021-01-19T02:00Z,31772
+2021-01-19T03:00Z,32273
+2021-01-19T04:00Z,31235
+2021-01-19T05:00Z,30174
+2021-01-19T06:00Z,28888
+2021-01-19T07:00Z,27069
+2021-01-19T08:00Z,25374
+2021-01-19T09:00Z,24555
+2021-01-19T10:00Z,23719
+2021-01-19T11:00Z,23214
+2021-01-19T12:00Z,23116
+2021-01-19T13:00Z,23730
+2021-01-19T14:00Z,25300
+2021-01-19T15:00Z,27688
+2021-01-19T16:00Z,29194
+2021-01-19T17:00Z,29424
+2021-01-19T18:00Z,28431
+2021-01-19T19:00Z,27590
+2021-01-19T20:00Z,27446
+2021-01-19T21:00Z,27352
+2021-01-19T22:00Z,27426
+2021-01-19T23:00Z,27929
+2021-01-20,28711
+2021-01-20T01:00Z,29828
+2021-01-20T02:00Z,32041
+2021-01-20T03:00Z,32543
+2021-01-20T04:00Z,31707
+2021-01-20T05:00Z,30626
+2021-01-20T06:00Z,29279
+2021-01-20T07:00Z,27403
+2021-01-20T08:00Z,25788
+2021-01-20T09:00Z,24803
+2021-01-20T10:00Z,24045
+2021-01-20T11:00Z,23569
+2021-01-20T12:00Z,23570
+2021-01-20T13:00Z,24227
+2021-01-20T14:00Z,25882
+2021-01-20T15:00Z,28364
+2021-01-20T16:00Z,29978
+2021-01-20T17:00Z,29875
+2021-01-20T18:00Z,28594
+2021-01-20T19:00Z,28188
+2021-01-20T20:00Z,27759
+2021-01-20T21:00Z,27458
+2021-01-20T22:00Z,27347
+2021-01-20T23:00Z,27719
+2021-01-21,28569
+2021-01-21T01:00Z,30015
+2021-01-21T02:00Z,32290
+2021-01-21T03:00Z,32869
+2021-01-21T04:00Z,32006
+2021-01-21T05:00Z,30963
+2021-01-21T06:00Z,29628
+2021-01-21T07:00Z,27855
+2021-01-21T08:00Z,26182
+2021-01-21T09:00Z,25187
+2021-01-21T10:00Z,24343
+2021-01-21T11:00Z,23928
+2021-01-21T12:00Z,23880
+2021-01-21T13:00Z,24630
+2021-01-21T14:00Z,26227
+2021-01-21T15:00Z,28663
+2021-01-21T16:00Z,30135
+2021-01-21T17:00Z,29999
+2021-01-21T18:00Z,28806
+2021-01-21T19:00Z,27839
+2021-01-21T20:00Z,27048
+2021-01-21T21:00Z,26849
+2021-01-21T22:00Z,27156
+2021-01-21T23:00Z,27595
+2021-01-22,28252
+2021-01-22T01:00Z,29766
+2021-01-22T02:00Z,32347
+2021-01-22T03:00Z,33075
+2021-01-22T04:00Z,32222
+2021-01-22T05:00Z,31255
+2021-01-22T06:00Z,30077
+2021-01-22T07:00Z,28273
+2021-01-22T08:00Z,26589
+2021-01-22T09:00Z,25475
+2021-01-22T10:00Z,24645
+2021-01-22T11:00Z,24157
+2021-01-22T12:00Z,24029
+2021-01-22T13:00Z,24486
+2021-01-22T14:00Z,26040
+2021-01-22T15:00Z,28451
+2021-01-22T16:00Z,29977
+2021-01-22T17:00Z,30526
+2021-01-22T18:00Z,30167
+2021-01-22T19:00Z,29640
+2021-01-22T20:00Z,29415
+2021-01-22T21:00Z,29227
+2021-01-22T22:00Z,29184
+2021-01-22T23:00Z,29007
+2021-01-23,29564
+2021-01-23T01:00Z,30561
+2021-01-23T02:00Z,32695
+2021-01-23T03:00Z,33065
+2021-01-23T04:00Z,32340
+2021-01-23T05:00Z,31453
+2021-01-23T06:00Z,30214
+2021-01-23T07:00Z,28584
+2021-01-23T08:00Z,26979
+2021-01-23T09:00Z,25863
+2021-01-23T10:00Z,25030
+2021-01-23T11:00Z,24523
+2021-01-23T12:00Z,24209
+2021-01-23T13:00Z,24385
+2021-01-23T14:00Z,25158
+2021-01-23T15:00Z,26334
+2021-01-23T16:00Z,27161
+2021-01-23T17:00Z,27545
+2021-01-23T18:00Z,27486
+2021-01-23T19:00Z,27272
+2021-01-23T20:00Z,26981
+2021-01-23T21:00Z,26600
+2021-01-23T22:00Z,26579
+2021-01-23T23:00Z,26942
+2021-01-24,27740
+2021-01-24T01:00Z,28941
+2021-01-24T02:00Z,31360
+2021-01-24T03:00Z,32216
+2021-01-24T04:00Z,31656
+2021-01-24T05:00Z,30921
+2021-01-24T06:00Z,29898
+2021-01-24T07:00Z,28267
+2021-01-24T08:00Z,26665
+2021-01-24T09:00Z,25499
+2021-01-24T10:00Z,24627
+2021-01-24T11:00Z,24149
+2021-01-24T12:00Z,23977
+2021-01-24T13:00Z,24144
+2021-01-24T14:00Z,24687
+2021-01-24T15:00Z,25630
+2021-01-24T16:00Z,26223
+2021-01-24T17:00Z,26507
+2021-01-24T18:00Z,26275
+2021-01-24T19:00Z,25826
+2021-01-24T20:00Z,25973
+2021-01-24T21:00Z,26207
+2021-01-24T22:00Z,26380
+2021-01-24T23:00Z,26589
+2021-01-25,27156
+2021-01-25T01:00Z,28953
+2021-01-25T02:00Z,31734
+2021-01-25T03:00Z,32428
+2021-01-25T04:00Z,31831
+2021-01-25T05:00Z,30815
+2021-01-25T06:00Z,29592
+2021-01-25T07:00Z,27729
+2021-01-25T08:00Z,25999
+2021-01-25T09:00Z,24541
+2021-01-25T10:00Z,23852
+2021-01-25T11:00Z,23604
+2021-01-25T12:00Z,23877
+2021-01-25T13:00Z,24582
+2021-01-25T14:00Z,26189
+2021-01-25T15:00Z,28743
+2021-01-25T16:00Z,30700
+2021-01-25T17:00Z,31428
+2021-01-25T18:00Z,31183
+2021-01-25T19:00Z,30213
+2021-01-25T20:00Z,29477
+2021-01-25T21:00Z,29168
+2021-01-25T22:00Z,28763
+2021-01-25T23:00Z,29072
+2021-01-26,30006
+2021-01-26T01:00Z,31233
+2021-01-26T02:00Z,34217
+2021-01-26T03:00Z,35303
+2021-01-26T04:00Z,34552
+2021-01-26T05:00Z,33540
+2021-01-26T06:00Z,32108
+2021-01-26T07:00Z,30008
+2021-01-26T08:00Z,28034
+2021-01-26T09:00Z,26702
+2021-01-26T10:00Z,25958
+2021-01-26T11:00Z,25615
+2021-01-26T12:00Z,25665
+2021-01-26T13:00Z,26401
+2021-01-26T14:00Z,28198
+2021-01-26T15:00Z,31039
+2021-01-26T16:00Z,32603
+2021-01-26T17:00Z,32255
+2021-01-26T18:00Z,31087
+2021-01-26T19:00Z,30009
+2021-01-26T20:00Z,29528
+2021-01-26T21:00Z,29176
+2021-01-26T22:00Z,29312
+2021-01-26T23:00Z,29529
+2021-01-27,30008
+2021-01-27T01:00Z,31549
+2021-01-27T02:00Z,34519
+2021-01-27T03:00Z,35514
+2021-01-27T04:00Z,34860
+2021-01-27T05:00Z,33698
+2021-01-27T06:00Z,32074
+2021-01-27T07:00Z,29662
+2021-01-27T08:00Z,27629
+2021-01-27T09:00Z,26495
+2021-01-27T10:00Z,25526
+2021-01-27T11:00Z,25030
+2021-01-27T12:00Z,24814
+2021-01-27T13:00Z,25436
+2021-01-27T14:00Z,26932
+2021-01-27T15:00Z,29443
+2021-01-27T16:00Z,31155
+2021-01-27T17:00Z,31577
+2021-01-27T18:00Z,31351
+2021-01-27T19:00Z,30951
+2021-01-27T20:00Z,30844
+2021-01-27T21:00Z,30823
+2021-01-27T22:00Z,30556
+2021-01-27T23:00Z,30357
+2021-01-28,30482
+2021-01-28T01:00Z,31590
+2021-01-28T02:00Z,33735
+2021-01-28T03:00Z,34296
+2021-01-28T04:00Z,33450
+2021-01-28T05:00Z,32363
+2021-01-28T06:00Z,30837
+2021-01-28T07:00Z,28659
+2021-01-28T08:00Z,26935
+2021-01-28T09:00Z,25703
+2021-01-28T10:00Z,25007
+2021-01-28T11:00Z,24835
+2021-01-28T12:00Z,24806
+2021-01-28T13:00Z,25423
+2021-01-28T14:00Z,27017
+2021-01-28T15:00Z,29187
+2021-01-28T16:00Z,30907
+2021-01-28T17:00Z,31771
+2021-01-28T18:00Z,31293
+2021-01-28T19:00Z,30562
+2021-01-28T20:00Z,29772
+2021-01-28T21:00Z,29520
+2021-01-28T22:00Z,29430
+2021-01-28T23:00Z,29515
+2021-01-29,29966
+2021-01-29T01:00Z,30907
+2021-01-29T02:00Z,32987
+2021-01-29T03:00Z,33657
+2021-01-29T04:00Z,32957
+2021-01-29T05:00Z,32016
+2021-01-29T06:00Z,30810
+2021-01-29T07:00Z,28852
+2021-01-29T08:00Z,26903
+2021-01-29T09:00Z,25735
+2021-01-29T10:00Z,24963
+2021-01-29T11:00Z,24356
+2021-01-29T12:00Z,24158
+2021-01-29T13:00Z,24653
+2021-01-29T14:00Z,26172
+2021-01-29T15:00Z,28735
+2021-01-29T16:00Z,30445
+2021-01-29T17:00Z,30872
+2021-01-29T18:00Z,30468
+2021-01-29T19:00Z,30052
+2021-01-29T20:00Z,30116
+2021-01-29T21:00Z,30193
+2021-01-29T22:00Z,29249
+2021-01-29T23:00Z,28940
+2021-01-30,29178
+2021-01-30T01:00Z,29859
+2021-01-30T02:00Z,32168
+2021-01-30T03:00Z,33193
+2021-01-30T04:00Z,32546
+2021-01-30T05:00Z,31740
+2021-01-30T06:00Z,30683
+2021-01-30T07:00Z,28979
+2021-01-30T08:00Z,27358
+2021-01-30T09:00Z,26369
+2021-01-30T10:00Z,25426
+2021-01-30T11:00Z,24742
+2021-01-30T12:00Z,24496
+2021-01-30T13:00Z,24635
+2021-01-30T14:00Z,25449
+2021-01-30T15:00Z,26344
+2021-01-30T16:00Z,26968
+2021-01-30T17:00Z,26787
+2021-01-30T18:00Z,25850
+2021-01-30T19:00Z,24536
+2021-01-30T20:00Z,23293
+2021-01-30T21:00Z,22613
+2021-01-30T22:00Z,22336
+2021-01-30T23:00Z,22923
+2021-01-31,24341
+2021-01-31T01:00Z,26327
+2021-01-31T02:00Z,29096
+2021-01-31T03:00Z,30705
+2021-01-31T04:00Z,30374
+2021-01-31T05:00Z,29780
+2021-01-31T06:00Z,28882
+2021-01-31T07:00Z,27516
+2021-01-31T08:00Z,26237
+2021-01-31T09:00Z,24750
+2021-01-31T10:00Z,23881
+2021-01-31T11:00Z,23373
+2021-01-31T12:00Z,23081
+2021-01-31T13:00Z,23101
+2021-01-31T14:00Z,23616
+2021-01-31T15:00Z,24415
+2021-01-31T16:00Z,24661
+2021-01-31T17:00Z,24945
+2021-01-31T18:00Z,24304
+2021-01-31T19:00Z,23186
+2021-01-31T20:00Z,22475
+2021-01-31T21:00Z,22525
+2021-01-31T22:00Z,23144
+2021-01-31T23:00Z,24260
+2021-02-01,25289
+2021-02-01T01:00Z,26790
+2021-02-01T02:00Z,29167
+2021-02-01T03:00Z,30060
+2021-02-01T04:00Z,29550
+2021-02-01T05:00Z,28714
+2021-02-01T06:00Z,27601
+2021-02-01T07:00Z,26124
+2021-02-01T08:00Z,24558
+2021-02-01T09:00Z,23671
+2021-02-01T10:00Z,23045
+2021-02-01T11:00Z,22680
+2021-02-01T12:00Z,22682
+2021-02-01T13:00Z,23378
+2021-02-01T14:00Z,25109
+2021-02-01T15:00Z,27552
+2021-02-01T16:00Z,28979
+2021-02-01T17:00Z,29877
+2021-02-01T18:00Z,29539
+2021-02-01T19:00Z,28400
+2021-02-01T20:00Z,27862
+2021-02-01T21:00Z,27766
+2021-02-01T22:00Z,27540
+2021-02-01T23:00Z,27452
+2021-02-02,28041
+2021-02-02T01:00Z,28918
+2021-02-02T02:00Z,31124
+2021-02-02T03:00Z,32141
+2021-02-02T04:00Z,31364
+2021-02-02T05:00Z,30298
+2021-02-02T06:00Z,28896
+2021-02-02T07:00Z,26996
+2021-02-02T08:00Z,25158
+2021-02-02T09:00Z,24229
+2021-02-02T10:00Z,23535
+2021-02-02T11:00Z,23087
+2021-02-02T12:00Z,23071
+2021-02-02T13:00Z,23624
+2021-02-02T14:00Z,24876
+2021-02-02T15:00Z,27309
+2021-02-02T16:00Z,28714
+2021-02-02T17:00Z,28891
+2021-02-02T18:00Z,28354
+2021-02-02T19:00Z,27775
+2021-02-02T20:00Z,27129
+2021-02-02T21:00Z,26798
+2021-02-02T22:00Z,26539
+2021-02-02T23:00Z,26856
+2021-02-03,27514
+2021-02-03T01:00Z,28637
+2021-02-03T02:00Z,30830
+2021-02-03T03:00Z,32116
+2021-02-03T04:00Z,31291
+2021-02-03T05:00Z,30219
+2021-02-03T06:00Z,28930
+2021-02-03T07:00Z,27180
+2021-02-03T08:00Z,25352
+2021-02-03T09:00Z,24785
+2021-02-03T10:00Z,24204
+2021-02-03T11:00Z,23926
+2021-02-03T12:00Z,23881
+2021-02-03T13:00Z,24425
+2021-02-03T14:00Z,25844
+2021-02-03T15:00Z,28011
+2021-02-03T16:00Z,29275
+2021-02-03T17:00Z,29074
+2021-02-03T18:00Z,28608
+2021-02-03T19:00Z,28218
+2021-02-03T20:00Z,27468
+2021-02-03T21:00Z,26815
+2021-02-03T22:00Z,26406
+2021-02-03T23:00Z,27048
+2021-02-04,27769
+2021-02-04T01:00Z,28794
+2021-02-04T02:00Z,31186
+2021-02-04T03:00Z,32453
+2021-02-04T04:00Z,31740
+2021-02-04T05:00Z,30796
+2021-02-04T06:00Z,29648
+2021-02-04T07:00Z,27970
+2021-02-04T08:00Z,26422
+2021-02-04T09:00Z,25824
+2021-02-04T10:00Z,25207
+2021-02-04T11:00Z,24759
+2021-02-04T12:00Z,24720
+2021-02-04T13:00Z,25379
+2021-02-04T14:00Z,26747
+2021-02-04T15:00Z,28771
+2021-02-04T16:00Z,30340
+2021-02-04T17:00Z,30182
+2021-02-04T18:00Z,29248
+2021-02-04T19:00Z,27898
+2021-02-04T20:00Z,26690
+2021-02-04T21:00Z,25896
+2021-02-04T22:00Z,25729
+2021-02-04T23:00Z,25990
+2021-02-05,26921
+2021-02-05T01:00Z,28222
+2021-02-05T02:00Z,31268
+2021-02-05T03:00Z,32788
+2021-02-05T04:00Z,32261
+2021-02-05T05:00Z,31344
+2021-02-05T06:00Z,30222
+2021-02-05T07:00Z,28398
+2021-02-05T08:00Z,26631
+2021-02-05T09:00Z,25441
+2021-02-05T10:00Z,24784
+2021-02-05T11:00Z,24431
+2021-02-05T12:00Z,24461
+2021-02-05T13:00Z,25103
+2021-02-05T14:00Z,26795
+2021-02-05T15:00Z,29132
+2021-02-05T16:00Z,30355
+2021-02-05T17:00Z,29637
+2021-02-05T18:00Z,27983
+2021-02-05T19:00Z,26646
+2021-02-05T20:00Z,25991
+2021-02-05T21:00Z,25550
+2021-02-05T22:00Z,25406
+2021-02-05T23:00Z,25529
+2021-02-06,27188
+2021-02-06T01:00Z,28221
+2021-02-06T02:00Z,30751
+2021-02-06T03:00Z,32060
+2021-02-06T04:00Z,31410
+2021-02-06T05:00Z,30589
+2021-02-06T06:00Z,29613
+2021-02-06T07:00Z,28223
+2021-02-06T08:00Z,26771
+2021-02-06T09:00Z,25641
+2021-02-06T10:00Z,24700
+2021-02-06T11:00Z,24135
+2021-02-06T12:00Z,24002
+2021-02-06T13:00Z,24208
+2021-02-06T14:00Z,25041
+2021-02-06T15:00Z,26262
+2021-02-06T16:00Z,26521
+2021-02-06T17:00Z,25911
+2021-02-06T18:00Z,24731
+2021-02-06T19:00Z,23576
+2021-02-06T20:00Z,22597
+2021-02-06T21:00Z,22122
+2021-02-06T22:00Z,22118
+2021-02-06T23:00Z,22822
+2021-02-07,24154
+2021-02-07T01:00Z,25911
+2021-02-07T02:00Z,28770
+2021-02-07T03:00Z,30355
+2021-02-07T04:00Z,29892
+2021-02-07T05:00Z,29243
+2021-02-07T06:00Z,28316
+2021-02-07T07:00Z,26955
+2021-02-07T08:00Z,25604
+2021-02-07T09:00Z,24592
+2021-02-07T10:00Z,23753
+2021-02-07T11:00Z,23271
+2021-02-07T12:00Z,23136
+2021-02-07T13:00Z,23300
+2021-02-07T14:00Z,23882
+2021-02-07T15:00Z,24896
+2021-02-07T16:00Z,24960
+2021-02-07T17:00Z,24469
+2021-02-07T18:00Z,23463
+2021-02-07T19:00Z,22255
+2021-02-07T20:00Z,21522
+2021-02-07T21:00Z,21360
+2021-02-07T22:00Z,21670
+2021-02-07T23:00Z,22671
+2021-02-08,23975
+2021-02-08T01:00Z,25566
+2021-02-08T02:00Z,28020
+2021-02-08T03:00Z,29459
+2021-02-08T04:00Z,29193
+2021-02-08T05:00Z,28756
+2021-02-08T06:00Z,27824
+2021-02-08T07:00Z,26449
+2021-02-08T08:00Z,24951
+2021-02-08T09:00Z,24091
+2021-02-08T10:00Z,23393
+2021-02-08T11:00Z,23258
+2021-02-08T12:00Z,23496
+2021-02-08T13:00Z,24246
+2021-02-08T14:00Z,25787
+2021-02-08T15:00Z,28257
+2021-02-08T16:00Z,29600
+2021-02-08T17:00Z,29644
+2021-02-08T18:00Z,28561
+2021-02-08T19:00Z,27032
+2021-02-08T20:00Z,26067
+2021-02-08T21:00Z,25936
+2021-02-08T22:00Z,25921
+2021-02-08T23:00Z,26869
+2021-02-09,27692
+2021-02-09T01:00Z,29122
+2021-02-09T02:00Z,31607
+2021-02-09T03:00Z,32976
+2021-02-09T04:00Z,32293
+2021-02-09T05:00Z,31241
+2021-02-09T06:00Z,29976
+2021-02-09T07:00Z,28312
+2021-02-09T08:00Z,26645
+2021-02-09T09:00Z,25298
+2021-02-09T10:00Z,24415
+2021-02-09T11:00Z,23895
+2021-02-09T12:00Z,23806
+2021-02-09T13:00Z,24390
+2021-02-09T14:00Z,26048
+2021-02-09T15:00Z,28246
+2021-02-09T16:00Z,29863
+2021-02-09T17:00Z,30841
+2021-02-09T18:00Z,30838
+2021-02-09T19:00Z,30223
+2021-02-09T20:00Z,29522
+2021-02-09T21:00Z,28531
+2021-02-09T22:00Z,27903
+2021-02-09T23:00Z,27632
+2021-02-10,28320
+2021-02-10T01:00Z,29532
+2021-02-10T02:00Z,31869
+2021-02-10T03:00Z,33243
+2021-02-10T04:00Z,32520
+2021-02-10T05:00Z,31449
+2021-02-10T06:00Z,30001
+2021-02-10T07:00Z,28143
+2021-02-10T08:00Z,26317
+2021-02-10T09:00Z,25298
+2021-02-10T10:00Z,24635
+2021-02-10T11:00Z,24257
+2021-02-10T12:00Z,24072
+2021-02-10T13:00Z,24726
+2021-02-10T14:00Z,26409
+2021-02-10T15:00Z,28595
+2021-02-10T16:00Z,29722
+2021-02-10T17:00Z,29304
+2021-02-10T18:00Z,28264
+2021-02-10T19:00Z,27210
+2021-02-10T20:00Z,27379
+2021-02-10T21:00Z,25942
+2021-02-10T22:00Z,25647
+2021-02-10T23:00Z,26290
+2021-02-11,26788
+2021-02-11T01:00Z,28348
+2021-02-11T02:00Z,30875
+2021-02-11T03:00Z,32608
+2021-02-11T04:00Z,32166
+2021-02-11T05:00Z,31197
+2021-02-11T06:00Z,29911
+2021-02-11T07:00Z,28140
+2021-02-11T08:00Z,26266
+2021-02-11T09:00Z,25298
+2021-02-11T10:00Z,24651
+2021-02-11T11:00Z,24198
+2021-02-11T12:00Z,24106
+2021-02-11T13:00Z,24802
+2021-02-11T14:00Z,26522
+2021-02-11T15:00Z,29068
+2021-02-11T16:00Z,29863
+2021-02-11T17:00Z,29561
+2021-02-11T18:00Z,28879
+2021-02-11T19:00Z,28494
+2021-02-11T20:00Z,28104
+2021-02-11T21:00Z,28052
+2021-02-11T22:00Z,27942
+2021-02-11T23:00Z,28676
+2021-02-12,29347
+2021-02-12T01:00Z,30573
+2021-02-12T02:00Z,32321
+2021-02-12T03:00Z,33204
+2021-02-12T04:00Z,32398
+2021-02-12T05:00Z,31359
+2021-02-12T06:00Z,30008
+2021-02-12T07:00Z,28241
+2021-02-12T08:00Z,26521
+2021-02-12T09:00Z,25604
+2021-02-12T10:00Z,24704
+2021-02-12T11:00Z,24111
+2021-02-12T12:00Z,24034
+2021-02-12T13:00Z,24563
+2021-02-12T14:00Z,25827
+2021-02-12T15:00Z,27829
+2021-02-12T16:00Z,29107
+2021-02-12T17:00Z,28972
+2021-02-12T18:00Z,28241
+2021-02-12T19:00Z,26968
+2021-02-12T20:00Z,26126
+2021-02-12T21:00Z,25517
+2021-02-12T22:00Z,25774
+2021-02-12T23:00Z,25159
+2021-02-13,26004
+2021-02-13T01:00Z,27469
+2021-02-13T02:00Z,30091
+2021-02-13T03:00Z,31727
+2021-02-13T04:00Z,31094
+2021-02-13T05:00Z,30309
+2021-02-13T06:00Z,29362
+2021-02-13T07:00Z,27784
+2021-02-13T08:00Z,26205
+2021-02-13T09:00Z,25219
+2021-02-13T10:00Z,24259
+2021-02-13T11:00Z,23698
+2021-02-13T12:00Z,23494
+2021-02-13T13:00Z,23753
+2021-02-13T14:00Z,24214
+2021-02-13T15:00Z,25280
+2021-02-13T16:00Z,25720
+2021-02-13T17:00Z,25772
+2021-02-13T18:00Z,25592
+2021-02-13T19:00Z,25093
+2021-02-13T20:00Z,24628
+2021-02-13T21:00Z,23731
+2021-02-13T22:00Z,23103
+2021-02-13T23:00Z,23362
+2021-02-14,24228
+2021-02-14T01:00Z,25652
+2021-02-14T02:00Z,28286
+2021-02-14T03:00Z,30297
+2021-02-14T04:00Z,30041
+2021-02-14T05:00Z,29461
+2021-02-14T06:00Z,28550
+2021-02-14T07:00Z,27214
+2021-02-14T08:00Z,25763
+2021-02-14T09:00Z,24660
+2021-02-14T10:00Z,23861
+2021-02-14T11:00Z,23321
+2021-02-14T12:00Z,23054
+2021-02-14T13:00Z,23211
+2021-02-14T14:00Z,23767
+2021-02-14T15:00Z,24558
+2021-02-14T16:00Z,24741
+2021-02-14T17:00Z,24868
+2021-02-14T18:00Z,23974
+2021-02-14T19:00Z,23579
+2021-02-14T20:00Z,23241
+2021-02-14T21:00Z,23061
+2021-02-14T22:00Z,23300
+2021-02-14T23:00Z,24039
+2021-02-15,24372
+2021-02-15T01:00Z,25581
+2021-02-15T02:00Z,28526
+2021-02-15T03:00Z,30215
+2021-02-15T04:00Z,29852
+2021-02-15T05:00Z,29262
+2021-02-15T06:00Z,28415
+2021-02-15T07:00Z,26997
+2021-02-15T08:00Z,25436
+2021-02-15T09:00Z,24406
+2021-02-15T10:00Z,23739
+2021-02-15T11:00Z,23223
+2021-02-15T12:00Z,23382
+2021-02-15T13:00Z,23895
+2021-02-15T14:00Z,25138
+2021-02-15T15:00Z,26930
+2021-02-15T16:00Z,27903
+2021-02-15T17:00Z,28393
+2021-02-15T18:00Z,29025
+2021-02-15T19:00Z,28743
+2021-02-15T20:00Z,28659
+2021-02-15T21:00Z,28132
+2021-02-15T22:00Z,27577
+2021-02-15T23:00Z,27522
+2021-02-16,27634
+2021-02-16T01:00Z,28788
+2021-02-16T02:00Z,30953
+2021-02-16T03:00Z,32720
+2021-02-16T04:00Z,32200
+2021-02-16T05:00Z,31238
+2021-02-16T06:00Z,29968
+2021-02-16T07:00Z,28225
+2021-02-16T08:00Z,26477
+2021-02-16T09:00Z,25217
+2021-02-16T10:00Z,24417
+2021-02-16T11:00Z,24001
+2021-02-16T12:00Z,23965
+2021-02-16T13:00Z,24639
+2021-02-16T14:00Z,26332
+2021-02-16T15:00Z,28614
+2021-02-16T16:00Z,29663
+2021-02-16T17:00Z,29639
+2021-02-16T18:00Z,29269
+2021-02-16T19:00Z,28191
+2021-02-16T20:00Z,27442
+2021-02-16T21:00Z,26654
+2021-02-16T22:00Z,26463
+2021-02-16T23:00Z,26665
+2021-02-17,27191
+2021-02-17T01:00Z,28448
+2021-02-17T02:00Z,31110
+2021-02-17T03:00Z,33157
+2021-02-17T04:00Z,32670
+2021-02-17T05:00Z,31729
+2021-02-17T06:00Z,30579
+2021-02-17T07:00Z,28848
+2021-02-17T08:00Z,27071
+2021-02-17T09:00Z,26140
+2021-02-17T10:00Z,25394
+2021-02-17T11:00Z,24886
+2021-02-17T12:00Z,24964
+2021-02-17T13:00Z,25681
+2021-02-17T14:00Z,27340
+2021-02-17T15:00Z,29672
+2021-02-17T16:00Z,30512
+2021-02-17T17:00Z,29824
+2021-02-17T18:00Z,28535
+2021-02-17T19:00Z,27632
+2021-02-17T20:00Z,26688
+2021-02-17T21:00Z,26196
+2021-02-17T22:00Z,25813
+2021-02-17T23:00Z,26069
+2021-02-18,26394
+2021-02-18T01:00Z,28254
+2021-02-18T02:00Z,31213
+2021-02-18T03:00Z,33291
+2021-02-18T04:00Z,32822
+2021-02-18T05:00Z,31952
+2021-02-18T06:00Z,30711
+2021-02-18T07:00Z,29019
+2021-02-18T08:00Z,27501
+2021-02-18T09:00Z,26350
+2021-02-18T10:00Z,25840
+2021-02-18T11:00Z,25246
+2021-02-18T12:00Z,25118
+2021-02-18T13:00Z,25830
+2021-02-18T14:00Z,27623
+2021-02-18T15:00Z,29894
+2021-02-18T16:00Z,30546
+2021-02-18T17:00Z,29656
+2021-02-18T18:00Z,28544
+2021-02-18T19:00Z,28210
+2021-02-18T20:00Z,27171
+2021-02-18T21:00Z,26450
+2021-02-18T22:00Z,26570
+2021-02-18T23:00Z,26623
+2021-02-19,26720
+2021-02-19T01:00Z,27912
+2021-02-19T02:00Z,30491
+2021-02-19T03:00Z,32492
+2021-02-19T04:00Z,32385
+2021-02-19T05:00Z,31464
+2021-02-19T06:00Z,30197
+2021-02-19T07:00Z,28605
+2021-02-19T08:00Z,27250
+2021-02-19T09:00Z,25921
+2021-02-19T10:00Z,25128
+2021-02-19T11:00Z,24609
+2021-02-19T12:00Z,24479
+2021-02-19T13:00Z,25201
+2021-02-19T14:00Z,26920
+2021-02-19T15:00Z,29155
+2021-02-19T16:00Z,29959
+2021-02-19T17:00Z,29394
+2021-02-19T18:00Z,29042
+2021-02-19T19:00Z,28479
+2021-02-19T20:00Z,28108
+2021-02-19T21:00Z,27452
+2021-02-19T22:00Z,27132
+2021-02-19T23:00Z,27013
+2021-02-20,27176
+2021-02-20T01:00Z,28041
+2021-02-20T02:00Z,30347
+2021-02-20T03:00Z,32229
+2021-02-20T04:00Z,31718
+2021-02-20T05:00Z,30918
+2021-02-20T06:00Z,29938
+2021-02-20T07:00Z,28422
+2021-02-20T08:00Z,26828
+2021-02-20T09:00Z,25946
+2021-02-20T10:00Z,25188
+2021-02-20T11:00Z,24677
+2021-02-20T12:00Z,24410
+2021-02-20T13:00Z,24636
+2021-02-20T14:00Z,25465
+2021-02-20T15:00Z,26332
+2021-02-20T16:00Z,26338
+2021-02-20T17:00Z,26028
+2021-02-20T18:00Z,24905
+2021-02-20T19:00Z,24256
+2021-02-20T20:00Z,23374
+2021-02-20T21:00Z,22495
+2021-02-20T22:00Z,22258
+2021-02-20T23:00Z,22654
+2021-02-21,23705
+2021-02-21T01:00Z,25428
+2021-02-21T02:00Z,28043
+2021-02-21T03:00Z,30453
+2021-02-21T04:00Z,30243
+2021-02-21T05:00Z,29589
+2021-02-21T06:00Z,28660
+2021-02-21T07:00Z,27531
+2021-02-21T08:00Z,26158
+2021-02-21T09:00Z,25675
+2021-02-21T10:00Z,24883
+2021-02-21T11:00Z,24328
+2021-02-21T12:00Z,24118
+2021-02-21T13:00Z,24075
+2021-02-21T14:00Z,24579
+2021-02-21T15:00Z,25353
+2021-02-21T16:00Z,25330
+2021-02-21T17:00Z,24185
+2021-02-21T18:00Z,22925
+2021-02-21T19:00Z,21854
+2021-02-21T20:00Z,21380
+2021-02-21T21:00Z,21078
+2021-02-21T22:00Z,21091
+2021-02-21T23:00Z,21763
+2021-02-22,22699
+2021-02-22T01:00Z,24678
+2021-02-22T02:00Z,27571
+2021-02-22T03:00Z,29869
+2021-02-22T04:00Z,29916
+2021-02-22T05:00Z,29180
+2021-02-22T06:00Z,28080
+2021-02-22T07:00Z,26599
+2021-02-22T08:00Z,25440
+2021-02-22T09:00Z,24464
+2021-02-22T10:00Z,23861
+2021-02-22T11:00Z,23653
+2021-02-22T12:00Z,23805
+2021-02-22T13:00Z,24405
+2021-02-22T14:00Z,26273
+2021-02-22T15:00Z,28416
+2021-02-22T16:00Z,29182
+2021-02-22T17:00Z,28412
+2021-02-22T18:00Z,27143
+2021-02-22T19:00Z,26358
+2021-02-22T20:00Z,25660
+2021-02-22T21:00Z,25418
+2021-02-22T22:00Z,25546
+2021-02-22T23:00Z,26141
+2021-02-23,26960
+2021-02-23T01:00Z,28623
+2021-02-23T02:00Z,31033
+2021-02-23T03:00Z,32616
+2021-02-23T04:00Z,31810
+2021-02-23T05:00Z,30859
+2021-02-23T06:00Z,29546
+2021-02-23T07:00Z,27561
+2021-02-23T08:00Z,25875
+2021-02-23T09:00Z,24913
+2021-02-23T10:00Z,24117
+2021-02-23T11:00Z,23653
+2021-02-23T12:00Z,23584
+2021-02-23T13:00Z,24110
+2021-02-23T14:00Z,25874
+2021-02-23T15:00Z,28146
+2021-02-23T16:00Z,28862
+2021-02-23T17:00Z,28668
+2021-02-23T18:00Z,27555
+2021-02-23T19:00Z,26644
+2021-02-23T20:00Z,25947
+2021-02-23T21:00Z,25726
+2021-02-23T22:00Z,25830
+2021-02-23T23:00Z,26289
+2021-02-24,27041
+2021-02-24T01:00Z,28364
+2021-02-24T02:00Z,30381
+2021-02-24T03:00Z,31832
+2021-02-24T04:00Z,31226
+2021-02-24T05:00Z,30025
+2021-02-24T06:00Z,28657
+2021-02-24T07:00Z,26954
+2021-02-24T08:00Z,25337
+2021-02-24T09:00Z,24685
+2021-02-24T10:00Z,23690
+2021-02-24T11:00Z,23279
+2021-02-24T12:00Z,23182
+2021-02-24T13:00Z,23812
+2021-02-24T14:00Z,25545
+2021-02-24T15:00Z,27822
+2021-02-24T16:00Z,28432
+2021-02-24T17:00Z,28083
+2021-02-24T18:00Z,27004
+2021-02-24T19:00Z,25939
+2021-02-24T20:00Z,25442
+2021-02-24T21:00Z,25305
+2021-02-24T22:00Z,25478
+2021-02-24T23:00Z,26014
+2021-02-25,26688
+2021-02-25T01:00Z,28263
+2021-02-25T02:00Z,30336
+2021-02-25T03:00Z,32280
+2021-02-25T04:00Z,31747
+2021-02-25T05:00Z,30615
+2021-02-25T06:00Z,29351
+2021-02-25T07:00Z,27625
+2021-02-25T08:00Z,25977
+2021-02-25T09:00Z,24888
+2021-02-25T10:00Z,24015
+2021-02-25T11:00Z,23767
+2021-02-25T12:00Z,23748
+2021-02-25T13:00Z,24222
+2021-02-25T14:00Z,26233
+2021-02-25T15:00Z,28472
+2021-02-25T16:00Z,29118
+2021-02-25T17:00Z,28161
+2021-02-25T18:00Z,27237
+2021-02-25T19:00Z,26181
+2021-02-25T20:00Z,25452
+2021-02-25T21:00Z,25077
+2021-02-25T22:00Z,25219
+2021-02-25T23:00Z,25654
+2021-02-26,26547
+2021-02-26T01:00Z,27847
+2021-02-26T02:00Z,30401
+2021-02-26T03:00Z,32459
+2021-02-26T04:00Z,32054
+2021-02-26T05:00Z,31095
+2021-02-26T06:00Z,29957
+2021-02-26T07:00Z,28250
+2021-02-26T08:00Z,26649
+2021-02-26T09:00Z,25581
+2021-02-26T10:00Z,24827
+2021-02-26T11:00Z,24500
+2021-02-26T12:00Z,24534
+2021-02-26T13:00Z,25093
+2021-02-26T14:00Z,26766
+2021-02-26T15:00Z,28952
+2021-02-26T16:00Z,29457
+2021-02-26T17:00Z,28940
+2021-02-26T18:00Z,27446
+2021-02-26T19:00Z,26368
+2021-02-26T20:00Z,25553
+2021-02-26T21:00Z,24897
+2021-02-26T22:00Z,24880
+2021-02-26T23:00Z,25412
+2021-02-27,26352
+2021-02-27T01:00Z,27417
+2021-02-27T02:00Z,29706
+2021-02-27T03:00Z,31754
+2021-02-27T04:00Z,31387
+2021-02-27T05:00Z,30574
+2021-02-27T06:00Z,29513
+2021-02-27T07:00Z,28176
+2021-02-27T08:00Z,26594
+2021-02-27T09:00Z,25421
+2021-02-27T10:00Z,24559
+2021-02-27T11:00Z,24002
+2021-02-27T12:00Z,23813
+2021-02-27T13:00Z,24066
+2021-02-27T14:00Z,24913
+2021-02-27T15:00Z,25890
+2021-02-27T16:00Z,25713
+2021-02-27T17:00Z,24717
+2021-02-27T18:00Z,23877
+2021-02-27T19:00Z,23220
+2021-02-27T20:00Z,22298
+2021-02-27T21:00Z,21780
+2021-02-27T22:00Z,21752
+2021-02-27T23:00Z,22324
+2021-02-28,23456
+2021-02-28T01:00Z,25049
+2021-02-28T02:00Z,27594
+2021-02-28T03:00Z,29828
+2021-02-28T04:00Z,29456
+2021-02-28T05:00Z,28703
+2021-02-28T06:00Z,27956
+2021-02-28T07:00Z,26740
+2021-02-28T08:00Z,25357
+2021-02-28T09:00Z,24342
+2021-02-28T10:00Z,23632
+2021-02-28T11:00Z,23346
+2021-02-28T12:00Z,23150
+2021-02-28T13:00Z,23329
+2021-02-28T14:00Z,23852
+2021-02-28T15:00Z,24427
+2021-02-28T16:00Z,24116
+2021-02-28T17:00Z,23396
+2021-02-28T18:00Z,22380
+2021-02-28T19:00Z,21390
+2021-02-28T20:00Z,20636
+2021-02-28T21:00Z,20317
+2021-02-28T22:00Z,20264
+2021-02-28T23:00Z,20996
+2021-03-01,22270
+2021-03-01T01:00Z,23887
+2021-03-01T02:00Z,27000
+2021-03-01T03:00Z,29458
+2021-03-01T04:00Z,29310
+2021-03-01T05:00Z,28587
+2021-03-01T06:00Z,27654
+2021-03-01T07:00Z,26109
+2021-03-01T08:00Z,24575
+2021-03-01T09:00Z,23796
+2021-03-01T10:00Z,23265
+2021-03-01T11:00Z,23040
+2021-03-01T12:00Z,23093
+2021-03-01T13:00Z,23961
+2021-03-01T14:00Z,25825
+2021-03-01T15:00Z,28102
+2021-03-01T16:00Z,28603
+2021-03-01T17:00Z,27929
+2021-03-01T18:00Z,27017
+2021-03-01T19:00Z,25817
+2021-03-01T20:00Z,25067
+2021-03-01T21:00Z,24801
+2021-03-01T22:00Z,24818
+2021-03-01T23:00Z,25388
+2021-03-02,26226
+2021-03-02T01:00Z,27500
+2021-03-02T02:00Z,30036
+2021-03-02T03:00Z,32204
+2021-03-02T04:00Z,31597
+2021-03-02T05:00Z,30626
+2021-03-02T06:00Z,29403
+2021-03-02T07:00Z,27598
+2021-03-02T08:00Z,25968
+2021-03-02T09:00Z,24901
+2021-03-02T10:00Z,24176
+2021-03-02T11:00Z,23795
+2021-03-02T12:00Z,23837
+2021-03-02T13:00Z,24651
+2021-03-02T14:00Z,26315
+2021-03-02T15:00Z,28417
+2021-03-02T16:00Z,29252
+2021-03-02T17:00Z,28865
+2021-03-02T18:00Z,27249
+2021-03-02T19:00Z,26287
+2021-03-02T20:00Z,25957
+2021-03-02T21:00Z,25588
+2021-03-02T22:00Z,25794
+2021-03-02T23:00Z,26226
+2021-03-03,26984
+2021-03-03T01:00Z,28605
+2021-03-03T02:00Z,30666
+2021-03-03T03:00Z,32558
+2021-03-03T04:00Z,32042
+2021-03-03T05:00Z,30864
+2021-03-03T06:00Z,29389
+2021-03-03T07:00Z,27609
+2021-03-03T08:00Z,25944
+2021-03-03T09:00Z,24937
+2021-03-03T10:00Z,24238
+2021-03-03T11:00Z,23896
+2021-03-03T12:00Z,23866
+2021-03-03T13:00Z,24554
+2021-03-03T14:00Z,26316
+2021-03-03T15:00Z,28445
+2021-03-03T16:00Z,29478
+2021-03-03T17:00Z,29979
+2021-03-03T18:00Z,30551
+2021-03-03T19:00Z,30967
+2021-03-03T20:00Z,30774
+2021-03-03T21:00Z,30336
+2021-03-03T22:00Z,29123
+2021-03-03T23:00Z,28546
+2021-03-04,28930
+2021-03-04T01:00Z,29597
+2021-03-04T02:00Z,31413
+2021-03-04T03:00Z,33438
+2021-03-04T04:00Z,33056
+2021-03-04T05:00Z,32076
+2021-03-04T06:00Z,30698
+2021-03-04T07:00Z,28922
+2021-03-04T08:00Z,27073
+2021-03-04T09:00Z,25834
+2021-03-04T10:00Z,25140
+2021-03-04T11:00Z,24708
+2021-03-04T12:00Z,24728
+2021-03-04T13:00Z,25462
+2021-03-04T14:00Z,27105
+2021-03-04T15:00Z,29251
+2021-03-04T16:00Z,29698
+2021-03-04T17:00Z,29135
+2021-03-04T18:00Z,28119
+2021-03-04T19:00Z,26991
+2021-03-04T20:00Z,26075
+2021-03-04T21:00Z,25545
+2021-03-04T22:00Z,25486
+2021-03-04T23:00Z,25995
+2021-03-05,26658
+2021-03-05T01:00Z,27676
+2021-03-05T02:00Z,30045
+2021-03-05T03:00Z,32171
+2021-03-05T04:00Z,31901
+2021-03-05T05:00Z,31009
+2021-03-05T06:00Z,29817
+2021-03-05T07:00Z,28142
+2021-03-05T08:00Z,26400
+2021-03-05T09:00Z,25260
+2021-03-05T10:00Z,24763
+2021-03-05T11:00Z,24517
+2021-03-05T12:00Z,24500
+2021-03-05T13:00Z,25227
+2021-03-05T14:00Z,26815
+2021-03-05T15:00Z,28572
+2021-03-05T16:00Z,28873
+2021-03-05T17:00Z,28518
+2021-03-05T18:00Z,27528
+2021-03-05T19:00Z,26503
+2021-03-05T20:00Z,25662
+2021-03-05T21:00Z,25427
+2021-03-05T22:00Z,25426
+2021-03-05T23:00Z,25716
+2021-03-06,26417
+2021-03-06T01:00Z,28015
+2021-03-06T02:00Z,30149
+2021-03-06T03:00Z,32176
+2021-03-06T04:00Z,31757
+2021-03-06T05:00Z,30910
+2021-03-06T06:00Z,29843
+2021-03-06T07:00Z,28291
+2021-03-06T08:00Z,26658
+2021-03-06T09:00Z,25618
+2021-03-06T10:00Z,24801
+2021-03-06T11:00Z,24247
+2021-03-06T12:00Z,24311
+2021-03-06T13:00Z,24484
+2021-03-06T14:00Z,25202
+2021-03-06T15:00Z,25583
+2021-03-06T16:00Z,25431
+2021-03-06T17:00Z,25094
+2021-03-06T18:00Z,24540
+2021-03-06T19:00Z,23728
+2021-03-06T20:00Z,23075
+2021-03-06T21:00Z,22671
+2021-03-06T22:00Z,22280
+2021-03-06T23:00Z,22427
+2021-03-07,23550
+2021-03-07T01:00Z,25232
+2021-03-07T02:00Z,27643
+2021-03-07T03:00Z,30177
+2021-03-07T04:00Z,30248
+2021-03-07T05:00Z,29512
+2021-03-07T06:00Z,28547
+2021-03-07T07:00Z,27236
+2021-03-07T08:00Z,25793
+2021-03-07T09:00Z,24725
+2021-03-07T10:00Z,23915
+2021-03-07T11:00Z,23813
+2021-03-07T12:00Z,23613
+2021-03-07T13:00Z,23713
+2021-03-07T14:00Z,24230
+2021-03-07T15:00Z,24281
+2021-03-07T16:00Z,24179
+2021-03-07T17:00Z,24625
+2021-03-07T18:00Z,23829
+2021-03-07T19:00Z,22931
+2021-03-07T20:00Z,21584
+2021-03-07T21:00Z,21387
+2021-03-07T22:00Z,21672
+2021-03-07T23:00Z,22004
+2021-03-08,23562
+2021-03-08T01:00Z,25673
+2021-03-08T02:00Z,28111
+2021-03-08T03:00Z,30508
+2021-03-08T04:00Z,30640
+2021-03-08T05:00Z,29764
+2021-03-08T06:00Z,28762
+2021-03-08T07:00Z,27009
+2021-03-08T08:00Z,25373
+2021-03-08T09:00Z,24305
+2021-03-08T10:00Z,23681
+2021-03-08T11:00Z,23463
+2021-03-08T12:00Z,23854
+2021-03-08T13:00Z,24636
+2021-03-08T14:00Z,26403
+2021-03-08T15:00Z,28227
+2021-03-08T16:00Z,29084
+2021-03-08T17:00Z,29137
+2021-03-08T18:00Z,29073
+2021-03-08T19:00Z,28043
+2021-03-08T20:00Z,27501
+2021-03-08T21:00Z,27342
+2021-03-08T22:00Z,27416
+2021-03-08T23:00Z,27641
+2021-03-09,27939
+2021-03-09T01:00Z,28869
+2021-03-09T02:00Z,31058
+2021-03-09T03:00Z,33302
+2021-03-09T04:00Z,32886
+2021-03-09T05:00Z,31979
+2021-03-09T06:00Z,30744
+2021-03-09T07:00Z,28821
+2021-03-09T08:00Z,27066
+2021-03-09T09:00Z,26122
+2021-03-09T10:00Z,25603
+2021-03-09T11:00Z,25157
+2021-03-09T12:00Z,25144
+2021-03-09T13:00Z,25817
+2021-03-09T14:00Z,27521
+2021-03-09T15:00Z,29190
+2021-03-09T16:00Z,29949
+2021-03-09T17:00Z,29930
+2021-03-09T18:00Z,29128
+2021-03-09T19:00Z,28220
+2021-03-09T20:00Z,27488
+2021-03-09T21:00Z,27502
+2021-03-09T22:00Z,27132
+2021-03-09T23:00Z,27620
+2021-03-10,27648
+2021-03-10T01:00Z,29086
+2021-03-10T02:00Z,31662
+2021-03-10T03:00Z,33932
+2021-03-10T04:00Z,33670
+2021-03-10T05:00Z,32669
+2021-03-10T06:00Z,31408
+2021-03-10T07:00Z,29365
+2021-03-10T08:00Z,27537
+2021-03-10T09:00Z,26757
+2021-03-10T10:00Z,25994
+2021-03-10T11:00Z,25848
+2021-03-10T12:00Z,25771
+2021-03-10T13:00Z,26423
+2021-03-10T14:00Z,28100
+2021-03-10T15:00Z,29511
+2021-03-10T16:00Z,30451
+2021-03-10T17:00Z,30738
+2021-03-10T18:00Z,29966
+2021-03-10T19:00Z,29422
+2021-03-10T20:00Z,28955
+2021-03-10T21:00Z,28853
+2021-03-10T22:00Z,28588
+2021-03-10T23:00Z,28849
+2021-03-11,28893
+2021-03-11T01:00Z,29646
+2021-03-11T02:00Z,31624
+2021-03-11T03:00Z,33740
+2021-03-11T04:00Z,33451
+2021-03-11T05:00Z,32493
+2021-03-11T06:00Z,31169
+2021-03-11T07:00Z,29303
+2021-03-11T08:00Z,27421
+2021-03-11T09:00Z,26053
+2021-03-11T10:00Z,25349
+2021-03-11T11:00Z,24966
+2021-03-11T12:00Z,24882
+2021-03-11T13:00Z,25526
+2021-03-11T14:00Z,27339
+2021-03-11T15:00Z,29439
+2021-03-11T16:00Z,30156
+2021-03-11T17:00Z,29980
+2021-03-11T18:00Z,28713
+2021-03-11T19:00Z,27975
+2021-03-11T20:00Z,27457
+2021-03-11T21:00Z,26993
+2021-03-11T22:00Z,26441
+2021-03-11T23:00Z,26042
+2021-03-12,26600
+2021-03-12T01:00Z,28108
+2021-03-12T02:00Z,30640
+2021-03-12T03:00Z,33053
+2021-03-12T04:00Z,33107
+2021-03-12T05:00Z,32442
+2021-03-12T06:00Z,31171
+2021-03-12T07:00Z,29218
+2021-03-12T08:00Z,27417
+2021-03-12T09:00Z,26224
+2021-03-12T10:00Z,25631
+2021-03-12T11:00Z,25372
+2021-03-12T12:00Z,25392
+2021-03-12T13:00Z,26151
+2021-03-12T14:00Z,27820
+2021-03-12T15:00Z,29405
+2021-03-12T16:00Z,29524
+2021-03-12T17:00Z,28337
+2021-03-12T18:00Z,27649
+2021-03-12T19:00Z,26766
+2021-03-12T20:00Z,26124
+2021-03-12T21:00Z,26012
+2021-03-12T22:00Z,25845
+2021-03-12T23:00Z,26023
+2021-03-13,26423
+2021-03-13T01:00Z,27715
+2021-03-13T02:00Z,29967
+2021-03-13T03:00Z,32094
+2021-03-13T04:00Z,31985
+2021-03-13T05:00Z,31274
+2021-03-13T06:00Z,30254
+2021-03-13T07:00Z,28644
+2021-03-13T08:00Z,27042
+2021-03-13T09:00Z,25891
+2021-03-13T10:00Z,25137
+2021-03-13T11:00Z,24894
+2021-03-13T12:00Z,24789
+2021-03-13T13:00Z,24965
+2021-03-13T14:00Z,25850
+2021-03-13T15:00Z,26393
+2021-03-13T16:00Z,26193
+2021-03-13T17:00Z,25674
+2021-03-13T18:00Z,24912
+2021-03-13T19:00Z,23542
+2021-03-13T20:00Z,22425
+2021-03-13T21:00Z,21663
+2021-03-13T22:00Z,21642
+2021-03-13T23:00Z,22030
+2021-03-14,23207
+2021-03-14T01:00Z,24975
+2021-03-14T02:00Z,27529
+2021-03-14T03:00Z,30272
+2021-03-14T04:00Z,30513
+2021-03-14T05:00Z,29959
+2021-03-14T06:00Z,29167
+2021-03-14T07:00Z,27840
+2021-03-14T08:00Z,26612
+2021-03-14T09:00Z,25636
+2021-03-14T10:00Z,24595
+2021-03-14T11:00Z,24360
+2021-03-14T12:00Z,23837
+2021-03-14T13:00Z,24076
+2021-03-14T14:00Z,24874
+2021-03-14T15:00Z,25180
+2021-03-14T16:00Z,24985
+2021-03-14T17:00Z,24755
+2021-03-14T18:00Z,24479
+2021-03-14T19:00Z,23909
+2021-03-14T20:00Z,23659
+2021-03-14T21:00Z,23225
+2021-03-14T22:00Z,23130
+2021-03-14T23:00Z,23816
+2021-03-15,24772
+2021-03-15T01:00Z,26288
+2021-03-15T02:00Z,28678
+2021-03-15T03:00Z,30530
+2021-03-15T04:00Z,30447
+2021-03-15T05:00Z,29623
+2021-03-15T06:00Z,28148
+2021-03-15T07:00Z,26600
+2021-03-15T08:00Z,25253
+2021-03-15T09:00Z,24388
+2021-03-15T10:00Z,23966
+2021-03-15T11:00Z,23872
+2021-03-15T12:00Z,24629
+2021-03-15T13:00Z,26104
+2021-03-15T14:00Z,28634
+2021-03-15T15:00Z,30641
+2021-03-15T16:00Z,30698
+2021-03-15T17:00Z,31395
+2021-03-15T18:00Z,30976
+2021-03-15T19:00Z,30193
+2021-03-15T20:00Z,29271
+2021-03-15T21:00Z,28889
+2021-03-15T22:00Z,28381
+2021-03-15T23:00Z,28031
+2021-03-16,28251
+2021-03-16T01:00Z,29216
+2021-03-16T02:00Z,31322
+2021-03-16T03:00Z,33642
+2021-03-16T04:00Z,33816
+2021-03-16T05:00Z,32745
+2021-03-16T06:00Z,30781
+2021-03-16T07:00Z,28885
+2021-03-16T08:00Z,27570
+2021-03-16T09:00Z,26629
+2021-03-16T10:00Z,26112
+2021-03-16T11:00Z,26150
+2021-03-16T12:00Z,26858
+2021-03-16T13:00Z,28566
+2021-03-16T14:00Z,31332
+2021-03-16T15:00Z,32809
+2021-03-16T16:00Z,32142
+2021-03-16T17:00Z,30331
+2021-03-16T18:00Z,28319
+2021-03-16T19:00Z,26881
+2021-03-16T20:00Z,26177
+2021-03-16T21:00Z,25534
+2021-03-16T22:00Z,25436
+2021-03-16T23:00Z,25842
+2021-03-17,26041
+2021-03-17T01:00Z,27112
+2021-03-17T02:00Z,29726
+2021-03-17T03:00Z,32281
+2021-03-17T04:00Z,32443
+2021-03-17T05:00Z,31585
+2021-03-17T06:00Z,29793
+2021-03-17T07:00Z,27861
+2021-03-17T08:00Z,27064
+2021-03-17T09:00Z,26465
+2021-03-17T10:00Z,25954
+2021-03-17T11:00Z,25930
+2021-03-17T12:00Z,26564
+2021-03-17T13:00Z,28244
+2021-03-17T14:00Z,30476
+2021-03-17T15:00Z,32204
+2021-03-17T16:00Z,32083
+2021-03-17T17:00Z,30798
+2021-03-17T18:00Z,29352
+2021-03-17T19:00Z,27950
+2021-03-17T20:00Z,27158
+2021-03-17T21:00Z,26957
+2021-03-17T22:00Z,26514
+2021-03-17T23:00Z,26766
+2021-03-18,26776
+2021-03-18T01:00Z,28470
+2021-03-18T02:00Z,30347
+2021-03-18T03:00Z,32198
+2021-03-18T04:00Z,32031
+2021-03-18T05:00Z,31002
+2021-03-18T06:00Z,29222
+2021-03-18T07:00Z,27649
+2021-03-18T08:00Z,26716
+2021-03-18T09:00Z,25798
+2021-03-18T10:00Z,25283
+2021-03-18T11:00Z,25107
+2021-03-18T12:00Z,25580
+2021-03-18T13:00Z,26849
+2021-03-18T14:00Z,29245
+2021-03-18T15:00Z,30706
+2021-03-18T16:00Z,30901
+2021-03-18T17:00Z,29698
+2021-03-18T18:00Z,28616
+2021-03-18T19:00Z,27781
+2021-03-18T20:00Z,27161
+2021-03-18T21:00Z,27162
+2021-03-18T22:00Z,27284
+2021-03-18T23:00Z,27265
+2021-03-19,27985
+2021-03-19T01:00Z,29247
+2021-03-19T02:00Z,30499
+2021-03-19T03:00Z,31935
+2021-03-19T04:00Z,31386
+2021-03-19T05:00Z,30263
+2021-03-19T06:00Z,28384
+2021-03-19T07:00Z,26671
+2021-03-19T08:00Z,25626
+2021-03-19T09:00Z,24783
+2021-03-19T10:00Z,24207
+2021-03-19T11:00Z,24072
+2021-03-19T12:00Z,24543
+2021-03-19T13:00Z,25809
+2021-03-19T14:00Z,28180
+2021-03-19T15:00Z,29845
+2021-03-19T16:00Z,29899
+2021-03-19T17:00Z,29109
+2021-03-19T18:00Z,27816
+2021-03-19T19:00Z,26847
+2021-03-19T20:00Z,26610
+2021-03-19T21:00Z,26324
+2021-03-19T22:00Z,26037
+2021-03-19T23:00Z,26159
+2021-03-20,26978
+2021-03-20T01:00Z,28013
+2021-03-20T02:00Z,29487
+2021-03-20T03:00Z,31200
+2021-03-20T04:00Z,31084
+2021-03-20T05:00Z,30298
+2021-03-20T06:00Z,28950
+2021-03-20T07:00Z,27435
+2021-03-20T08:00Z,26186
+2021-03-20T09:00Z,25317
+2021-03-20T10:00Z,24678
+2021-03-20T11:00Z,24342
+2021-03-20T12:00Z,24456
+2021-03-20T13:00Z,24750
+2021-03-20T14:00Z,25589
+2021-03-20T15:00Z,26147
+2021-03-20T16:00Z,25825
+2021-03-20T17:00Z,25820
+2021-03-20T18:00Z,25260
+2021-03-20T19:00Z,23809
+2021-03-20T20:00Z,22623
+2021-03-20T21:00Z,21909
+2021-03-20T22:00Z,21701
+2021-03-20T23:00Z,22147
+2021-03-21,23301
+2021-03-21T01:00Z,24789
+2021-03-21T02:00Z,26572
+2021-03-21T03:00Z,29052
+2021-03-21T04:00Z,29402
+2021-03-21T05:00Z,28751
+2021-03-21T06:00Z,27464
+2021-03-21T07:00Z,26016
+2021-03-21T08:00Z,24741
+2021-03-21T09:00Z,23877
+2021-03-21T10:00Z,23406
+2021-03-21T11:00Z,23055
+2021-03-21T12:00Z,23144
+2021-03-21T13:00Z,23627
+2021-03-21T14:00Z,24623
+2021-03-21T15:00Z,24736
+2021-03-21T16:00Z,23960
+2021-03-21T17:00Z,23560
+2021-03-21T18:00Z,22518
+2021-03-21T19:00Z,21361
+2021-03-21T20:00Z,20718
+2021-03-21T21:00Z,20364
+2021-03-21T22:00Z,20480
+2021-03-21T23:00Z,21129
+2021-03-22,22583
+2021-03-22T01:00Z,24161
+2021-03-22T02:00Z,26433
+2021-03-22T03:00Z,28973
+2021-03-22T04:00Z,29406
+2021-03-22T05:00Z,28535
+2021-03-22T06:00Z,27053
+2021-03-22T07:00Z,25388
+2021-03-22T08:00Z,24151
+2021-03-22T09:00Z,23361
+2021-03-22T10:00Z,23052
+2021-03-22T11:00Z,23050
+2021-03-22T12:00Z,23836
+2021-03-22T13:00Z,25685
+2021-03-22T14:00Z,28202
+2021-03-22T15:00Z,29709
+2021-03-22T16:00Z,29662
+2021-03-22T17:00Z,28527
+2021-03-22T18:00Z,27136
+2021-03-22T19:00Z,26310
+2021-03-22T20:00Z,25422
+2021-03-22T21:00Z,24888
+2021-03-22T22:00Z,24908
+2021-03-22T23:00Z,24834
+2021-03-23,25550
+2021-03-23T01:00Z,26933
+2021-03-23T02:00Z,28843
+2021-03-23T03:00Z,31085
+2021-03-23T04:00Z,31073
+2021-03-23T05:00Z,29933
+2021-03-23T06:00Z,28151
+2021-03-23T07:00Z,26252
+2021-03-23T08:00Z,24830
+2021-03-23T09:00Z,24031
+2021-03-23T10:00Z,23547
+2021-03-23T11:00Z,23562
+2021-03-23T12:00Z,24103
+2021-03-23T13:00Z,25665
+2021-03-23T14:00Z,28217
+2021-03-23T15:00Z,29735
+2021-03-23T16:00Z,29499
+2021-03-23T17:00Z,28717
+2021-03-23T18:00Z,27742
+2021-03-23T19:00Z,26943
+2021-03-23T20:00Z,28253
+2021-03-23T21:00Z,25226
+2021-03-23T22:00Z,24919
+2021-03-23T23:00Z,25307
+2021-03-24,25899
+2021-03-24T01:00Z,26582
+2021-03-24T02:00Z,28712
+2021-03-24T03:00Z,30986
+2021-03-24T04:00Z,31026
+2021-03-24T05:00Z,30180
+2021-03-24T06:00Z,28363
+2021-03-24T07:00Z,26500
+2021-03-24T08:00Z,25471
+2021-03-24T09:00Z,24827
+2021-03-24T10:00Z,24376
+2021-03-24T11:00Z,24252
+2021-03-24T12:00Z,24814
+2021-03-24T13:00Z,26274
+2021-03-24T14:00Z,28690
+2021-03-24T15:00Z,29869
+2021-03-24T16:00Z,29166
+2021-03-24T17:00Z,27958
+2021-03-24T18:00Z,26482
+2021-03-24T19:00Z,25380
+2021-03-24T20:00Z,24189
+2021-03-24T21:00Z,23806
+2021-03-24T22:00Z,23673
+2021-03-24T23:00Z,24335
+2021-03-25,25312
+2021-03-25T01:00Z,26730
+2021-03-25T02:00Z,28745
+2021-03-25T03:00Z,30711
+2021-03-25T04:00Z,30620
+2021-03-25T05:00Z,29618
+2021-03-25T06:00Z,28057
+2021-03-25T07:00Z,26463
+2021-03-25T08:00Z,25433
+2021-03-25T09:00Z,24900
+2021-03-25T10:00Z,24401
+2021-03-25T11:00Z,24282
+2021-03-25T12:00Z,24462
+2021-03-25T13:00Z,25653
+2021-03-25T14:00Z,28162
+2021-03-25T15:00Z,29776
+2021-03-25T16:00Z,29634
+2021-03-25T17:00Z,28494
+2021-03-25T18:00Z,27492
+2021-03-25T19:00Z,26748
+2021-03-25T20:00Z,26268
+2021-03-25T21:00Z,26140
+2021-03-25T22:00Z,26364
+2021-03-25T23:00Z,26156
+2021-03-26,26602
+2021-03-26T01:00Z,27757
+2021-03-26T02:00Z,29681
+2021-03-26T03:00Z,31641
+2021-03-26T04:00Z,31659
+2021-03-26T05:00Z,30561
+2021-03-26T06:00Z,28793
+2021-03-26T07:00Z,26981
+2021-03-26T08:00Z,25547
+2021-03-26T09:00Z,24676
+2021-03-26T10:00Z,24250
+2021-03-26T11:00Z,24141
+2021-03-26T12:00Z,25013
+2021-03-26T13:00Z,26690
+2021-03-26T14:00Z,28990
+2021-03-26T15:00Z,30480
+2021-03-26T16:00Z,29969
+2021-03-26T17:00Z,28062
+2021-03-26T18:00Z,26264
+2021-03-26T19:00Z,25331
+2021-03-26T20:00Z,24485
+2021-03-26T21:00Z,24093
+2021-03-26T22:00Z,23687
+2021-03-26T23:00Z,24039
+2021-03-27,24796
+2021-03-27T01:00Z,26318
+2021-03-27T02:00Z,28364
+2021-03-27T03:00Z,30372
+2021-03-27T04:00Z,30635
+2021-03-27T05:00Z,29784
+2021-03-27T06:00Z,28299
+2021-03-27T07:00Z,26823
+2021-03-27T08:00Z,25845
+2021-03-27T09:00Z,24884
+2021-03-27T10:00Z,24388
+2021-03-27T11:00Z,24102
+2021-03-27T12:00Z,24484
+2021-03-27T13:00Z,25311
+2021-03-27T14:00Z,26515
+2021-03-27T15:00Z,26484
+2021-03-27T16:00Z,25074
+2021-03-27T17:00Z,24270
+2021-03-27T18:00Z,23285
+2021-03-27T19:00Z,22707
+2021-03-27T20:00Z,22028
+2021-03-27T21:00Z,21395
+2021-03-27T22:00Z,21503
+2021-03-27T23:00Z,22462
+2021-03-28,23920
+2021-03-28T01:00Z,24990
+2021-03-28T02:00Z,27178
+2021-03-28T03:00Z,29095
+2021-03-28T04:00Z,29280
+2021-03-28T05:00Z,28497
+2021-03-28T06:00Z,27105
+2021-03-28T07:00Z,25674
+2021-03-28T08:00Z,24764
+2021-03-28T09:00Z,23979
+2021-03-28T10:00Z,23379
+2021-03-28T11:00Z,23023
+2021-03-28T12:00Z,23289
+2021-03-28T13:00Z,23732
+2021-03-28T14:00Z,24490
+2021-03-28T15:00Z,24344
+2021-03-28T16:00Z,23386
+2021-03-28T17:00Z,22553
+2021-03-28T18:00Z,21730
+2021-03-28T19:00Z,21074
+2021-03-28T20:00Z,21188
+2021-03-28T21:00Z,21160
+2021-03-28T22:00Z,21711
+2021-03-28T23:00Z,22916
+2021-03-29,24656
+2021-03-29T01:00Z,26333
+2021-03-29T02:00Z,28682
+2021-03-29T03:00Z,30217
+2021-03-29T04:00Z,30240
+2021-03-29T05:00Z,29120
+2021-03-29T06:00Z,27400
+2021-03-29T07:00Z,25610
+2021-03-29T08:00Z,24597
+2021-03-29T09:00Z,23890
+2021-03-29T10:00Z,23670
+2021-03-29T11:00Z,23476
+2021-03-29T12:00Z,23623
+2021-03-29T13:00Z,24904
+2021-03-29T14:00Z,27076
+2021-03-29T15:00Z,28124
+2021-03-29T16:00Z,28045
+2021-03-29T17:00Z,28594
+2021-03-29T18:00Z,27200
+2021-03-29T19:00Z,26745
+2021-03-29T20:00Z,26440
+2021-03-29T21:00Z,26515
+2021-03-29T22:00Z,26417
+2021-03-29T23:00Z,26727
+2021-03-30,27615
+2021-03-30T01:00Z,28940
+2021-03-30T02:00Z,30644
+2021-03-30T03:00Z,32247
+2021-03-30T04:00Z,32176
+2021-03-30T05:00Z,30887
+2021-03-30T06:00Z,28956
+2021-03-30T07:00Z,26979
+2021-03-30T08:00Z,25491
+2021-03-30T09:00Z,24572
+2021-03-30T10:00Z,24094
+2021-03-30T11:00Z,23889
+2021-03-30T12:00Z,24311
+2021-03-30T13:00Z,25727
+2021-03-30T14:00Z,27871
+2021-03-30T15:00Z,29004
+2021-03-30T16:00Z,28533
+2021-03-30T17:00Z,27194
+2021-03-30T18:00Z,26463
+2021-03-30T19:00Z,26080
+2021-03-30T20:00Z,25649
+2021-03-30T21:00Z,25600
+2021-03-30T22:00Z,25804
+2021-03-30T23:00Z,26412
+2021-03-31,27651
+2021-03-31T01:00Z,29029
+2021-03-31T02:00Z,30809
+2021-03-31T03:00Z,32095
+2021-03-31T04:00Z,32055
+2021-03-31T05:00Z,30803
+2021-03-31T06:00Z,28762
+2021-03-31T07:00Z,26940
+2021-03-31T08:00Z,25953
+2021-03-31T09:00Z,24993
+2021-03-31T10:00Z,24426
+2021-03-31T11:00Z,24247
+2021-03-31T12:00Z,24530
+2021-03-31T13:00Z,25845
+2021-03-31T14:00Z,28336
+2021-03-31T15:00Z,29164
+2021-03-31T16:00Z,28831
+2021-03-31T17:00Z,27932
+2021-03-31T18:00Z,27117
+2021-03-31T19:00Z,26392
+2021-03-31T20:00Z,26096
+2021-03-31T21:00Z,26352
+2021-03-31T22:00Z,26799
+2021-03-31T23:00Z,27637
+2021-04-01,28837
+2021-04-01T01:00Z,30592
+2021-04-01T02:00Z,32186
+2021-04-01T03:00Z,33198
+2021-04-01T04:00Z,32932
+2021-04-01T05:00Z,31451
+2021-04-01T06:00Z,29354
+2021-04-01T07:00Z,27206
+2021-04-01T08:00Z,25969
+2021-04-01T09:00Z,25033
+2021-04-01T10:00Z,24358
+2021-04-01T11:00Z,23998
+2021-04-01T12:00Z,24355
+2021-04-01T13:00Z,25666
+2021-04-01T14:00Z,27580
+2021-04-01T15:00Z,28487
+2021-04-01T16:00Z,28250
+2021-04-01T17:00Z,27761
+2021-04-01T18:00Z,27765
+2021-04-01T19:00Z,27924
+2021-04-01T20:00Z,27981
+2021-04-01T21:00Z,28283
+2021-04-01T22:00Z,29029
+2021-04-01T23:00Z,29642
+2021-04-02,30449
+2021-04-02T01:00Z,31493
+2021-04-02T02:00Z,32856
+2021-04-02T03:00Z,33534
+2021-04-02T04:00Z,33124
+2021-04-02T05:00Z,31648
+2021-04-02T06:00Z,29577
+2021-04-02T07:00Z,27440
+2021-04-02T08:00Z,25823
+2021-04-02T09:00Z,24739
+2021-04-02T10:00Z,23936
+2021-04-02T11:00Z,23596
+2021-04-02T12:00Z,23867
+2021-04-02T13:00Z,25054
+2021-04-02T14:00Z,26713
+2021-04-02T15:00Z,27440
+2021-04-02T16:00Z,27267
+2021-04-02T17:00Z,27224
+2021-04-02T18:00Z,26826
+2021-04-02T19:00Z,26465
+2021-04-02T20:00Z,26160
+2021-04-02T21:00Z,26514
+2021-04-02T22:00Z,26936
+2021-04-02T23:00Z,27429
+2021-04-03,27521
+2021-04-03T01:00Z,29507
+2021-04-03T02:00Z,30986
+2021-04-03T03:00Z,31890
+2021-04-03T04:00Z,31794
+2021-04-03T05:00Z,30518
+2021-04-03T06:00Z,28664
+2021-04-03T07:00Z,26995
+2021-04-03T08:00Z,25646
+2021-04-03T09:00Z,24631
+2021-04-03T10:00Z,24104
+2021-04-03T11:00Z,23686
+2021-04-03T12:00Z,23625
+2021-04-03T13:00Z,24050
+2021-04-03T14:00Z,24844
+2021-04-03T15:00Z,24978
+2021-04-03T16:00Z,25094
+2021-04-03T17:00Z,24730
+2021-04-03T18:00Z,23707
+2021-04-03T19:00Z,22716
+2021-04-03T20:00Z,22121
+2021-04-03T21:00Z,22104
+2021-04-03T22:00Z,22667
+2021-04-03T23:00Z,23636
+2021-04-04,25279
+2021-04-04T01:00Z,26672
+2021-04-04T02:00Z,28272
+2021-04-04T03:00Z,29791
+2021-04-04T04:00Z,29967
+2021-04-04T05:00Z,29041
+2021-04-04T06:00Z,27490
+2021-04-04T07:00Z,26133
+2021-04-04T08:00Z,24684
+2021-04-04T09:00Z,23729
+2021-04-04T10:00Z,23126
+2021-04-04T11:00Z,22711
+2021-04-04T12:00Z,22509
+2021-04-04T13:00Z,22770
+2021-04-04T14:00Z,23375
+2021-04-04T15:00Z,23440
+2021-04-04T16:00Z,23520
+2021-04-04T17:00Z,22586
+2021-04-04T18:00Z,21426
+2021-04-04T19:00Z,20763
+2021-04-04T20:00Z,20500
+2021-04-04T21:00Z,20489
+2021-04-04T22:00Z,20863
+2021-04-04T23:00Z,22125
+2021-04-05,23987
+2021-04-05T01:00Z,25417
+2021-04-05T02:00Z,26718
+2021-04-05T03:00Z,28361
+2021-04-05T04:00Z,28885
+2021-04-05T05:00Z,28131
+2021-04-05T06:00Z,26800
+2021-04-05T07:00Z,25118
+2021-04-05T08:00Z,24211
+2021-04-05T09:00Z,23448
+2021-04-05T10:00Z,23051
+2021-04-05T11:00Z,22953
+2021-04-05T12:00Z,23541
+2021-04-05T13:00Z,24691
+2021-04-05T14:00Z,26782
+2021-04-05T15:00Z,27886
+2021-04-05T16:00Z,28334
+2021-04-05T17:00Z,27860
+2021-04-05T18:00Z,27136
+2021-04-05T19:00Z,26392
+2021-04-05T20:00Z,25890
+2021-04-05T21:00Z,25610
+2021-04-05T22:00Z,25939
+2021-04-05T23:00Z,26442
+2021-04-06,27473
+2021-04-06T01:00Z,28478
+2021-04-06T02:00Z,30057
+2021-04-06T03:00Z,31573
+2021-04-06T04:00Z,31760
+2021-04-06T05:00Z,30481
+2021-04-06T06:00Z,28399
+2021-04-06T07:00Z,26546
+2021-04-06T08:00Z,25418
+2021-04-06T09:00Z,24451
+2021-04-06T10:00Z,23801
+2021-04-06T11:00Z,23559
+2021-04-06T12:00Z,23940
+2021-04-06T13:00Z,25310
+2021-04-06T14:00Z,27309
+2021-04-06T15:00Z,28429
+2021-04-06T16:00Z,28641
+2021-04-06T17:00Z,27862
+2021-04-06T18:00Z,26374
+2021-04-06T19:00Z,25832
+2021-04-06T20:00Z,25547
+2021-04-06T21:00Z,25487
+2021-04-06T22:00Z,25656
+2021-04-06T23:00Z,26311
+2021-04-07,27613
+2021-04-07T01:00Z,28939
+2021-04-07T02:00Z,30525
+2021-04-07T03:00Z,31707
+2021-04-07T04:00Z,31833
+2021-04-07T05:00Z,30728
+2021-04-07T06:00Z,28743
+2021-04-07T07:00Z,26854
+2021-04-07T08:00Z,25653
+2021-04-07T09:00Z,24713
+2021-04-07T10:00Z,24125
+2021-04-07T11:00Z,23902
+2021-04-07T12:00Z,24369
+2021-04-07T13:00Z,25629
+2021-04-07T14:00Z,27547
+2021-04-07T15:00Z,28370
+2021-04-07T16:00Z,28203
+2021-04-07T17:00Z,27449
+2021-04-07T18:00Z,27147
+2021-04-07T19:00Z,26679
+2021-04-07T20:00Z,26458
+2021-04-07T21:00Z,26536
+2021-04-07T22:00Z,27274
+2021-04-07T23:00Z,28291
+2021-04-08,28600
+2021-04-08T01:00Z,29710
+2021-04-08T02:00Z,31081
+2021-04-08T03:00Z,32407
+2021-04-08T04:00Z,32511
+2021-04-08T05:00Z,31137
+2021-04-08T06:00Z,29106
+2021-04-08T07:00Z,27203
+2021-04-08T08:00Z,25994
+2021-04-08T09:00Z,24998
+2021-04-08T10:00Z,24507
+2021-04-08T11:00Z,24320
+2021-04-08T12:00Z,24749
+2021-04-08T13:00Z,26118
+2021-04-08T14:00Z,28085
+2021-04-08T15:00Z,28775
+2021-04-08T16:00Z,28831
+2021-04-08T17:00Z,28159
+2021-04-08T18:00Z,27119
+2021-04-08T19:00Z,26383
+2021-04-08T20:00Z,26128
+2021-04-08T21:00Z,26259
+2021-04-08T22:00Z,26390
+2021-04-08T23:00Z,27334
+2021-04-09,28077
+2021-04-09T01:00Z,29552
+2021-04-09T02:00Z,31079
+2021-04-09T03:00Z,32433
+2021-04-09T04:00Z,32514
+2021-04-09T05:00Z,31285
+2021-04-09T06:00Z,29286
+2021-04-09T07:00Z,27308
+2021-04-09T08:00Z,26183
+2021-04-09T09:00Z,25148
+2021-04-09T10:00Z,24520
+2021-04-09T11:00Z,24263
+2021-04-09T12:00Z,24667
+2021-04-09T13:00Z,25879
+2021-04-09T14:00Z,27770
+2021-04-09T15:00Z,28528
+2021-04-09T16:00Z,28338
+2021-04-09T17:00Z,27304
+2021-04-09T18:00Z,26295
+2021-04-09T19:00Z,25540
+2021-04-09T20:00Z,25191
+2021-04-09T21:00Z,25314
+2021-04-09T22:00Z,25869
+2021-04-09T23:00Z,26566
+2021-04-10,27636
+2021-04-10T01:00Z,29289
+2021-04-10T02:00Z,30823
+2021-04-10T03:00Z,32101
+2021-04-10T04:00Z,32242
+2021-04-10T05:00Z,31090
+2021-04-10T06:00Z,29405
+2021-04-10T07:00Z,27567
+2021-04-10T08:00Z,26177
+2021-04-10T09:00Z,25153
+2021-04-10T10:00Z,24364
+2021-04-10T11:00Z,23973
+2021-04-10T12:00Z,23972
+2021-04-10T13:00Z,24416
+2021-04-10T14:00Z,25103
+2021-04-10T15:00Z,25231
+2021-04-10T16:00Z,24871
+2021-04-10T17:00Z,24319
+2021-04-10T18:00Z,23737
+2021-04-10T19:00Z,23106
+2021-04-10T20:00Z,22874
+2021-04-10T21:00Z,23081
+2021-04-10T22:00Z,23611
+2021-04-10T23:00Z,24369
+2021-04-11,25537
+2021-04-11T01:00Z,27195
+2021-04-11T02:00Z,29046
+2021-04-11T03:00Z,30533
+2021-04-11T04:00Z,30729
+2021-04-11T05:00Z,29660
+2021-04-11T06:00Z,28033
+2021-04-11T07:00Z,26406
+2021-04-11T08:00Z,25298
+2021-04-11T09:00Z,24350
+2021-04-11T10:00Z,23708
+2021-04-11T11:00Z,23308
+2021-04-11T12:00Z,23223
+2021-04-11T13:00Z,23490
+2021-04-11T14:00Z,23761
+2021-04-11T15:00Z,23468
+2021-04-11T16:00Z,23009
+2021-04-11T17:00Z,22207
+2021-04-11T18:00Z,21472
+2021-04-11T19:00Z,21176
+2021-04-11T20:00Z,21058
+2021-04-11T21:00Z,20924
+2021-04-11T22:00Z,21178
+2021-04-11T23:00Z,22311
+2021-04-12,24041
+2021-04-12T01:00Z,26323
+2021-04-12T02:00Z,28185
+2021-04-12T03:00Z,29521
+2021-04-12T04:00Z,30006
+2021-04-12T05:00Z,28955
+2021-04-12T06:00Z,27158
+2021-04-12T07:00Z,25338
+2021-04-12T08:00Z,24104
+2021-04-12T09:00Z,23385
+2021-04-12T10:00Z,22927
+2021-04-12T11:00Z,22846
+2021-04-12T12:00Z,23362
+2021-04-12T13:00Z,24741
+2021-04-12T14:00Z,26888
+2021-04-12T15:00Z,28195
+2021-04-12T16:00Z,28688
+2021-04-12T17:00Z,28110
+2021-04-12T18:00Z,27153
+2021-04-12T19:00Z,26481
+2021-04-12T20:00Z,25848
+2021-04-12T21:00Z,25644
+2021-04-12T22:00Z,25916
+2021-04-12T23:00Z,26755
+2021-04-13,27702
+2021-04-13T01:00Z,29099
+2021-04-13T02:00Z,30363
+2021-04-13T03:00Z,31710
+2021-04-13T04:00Z,31903
+2021-04-13T05:00Z,30713
+2021-04-13T06:00Z,28573
+2021-04-13T07:00Z,26627
+2021-04-13T08:00Z,25658
+2021-04-13T09:00Z,24898
+2021-04-13T10:00Z,24328
+2021-04-13T11:00Z,24035
+2021-04-13T12:00Z,24506
+2021-04-13T13:00Z,25897
+2021-04-13T14:00Z,27848
+2021-04-13T15:00Z,29031
+2021-04-13T16:00Z,29613
+2021-04-13T17:00Z,29517
+2021-04-13T18:00Z,29300
+2021-04-13T19:00Z,28642
+2021-04-13T20:00Z,28131
+2021-04-13T21:00Z,27899
+2021-04-13T22:00Z,27794
+2021-04-13T23:00Z,27996
+2021-04-14,28278
+2021-04-14T01:00Z,29378
+2021-04-14T02:00Z,30432
+2021-04-14T03:00Z,31596
+2021-04-14T04:00Z,31727
+2021-04-14T05:00Z,30619
+2021-04-14T06:00Z,28759
+2021-04-14T07:00Z,26960
+2021-04-14T08:00Z,25823
+2021-04-14T09:00Z,24884
+2021-04-14T10:00Z,24458
+2021-04-14T11:00Z,24278
+2021-04-14T12:00Z,24779
+2021-04-14T13:00Z,26225
+2021-04-14T14:00Z,27960
+2021-04-14T15:00Z,28775
+2021-04-14T16:00Z,28585
+2021-04-14T17:00Z,27870
+2021-04-14T18:00Z,27220
+2021-04-14T19:00Z,26378
+2021-04-14T20:00Z,25839
+2021-04-14T21:00Z,25505
+2021-04-14T22:00Z,25640
+2021-04-14T23:00Z,26064
+2021-04-15,26813
+2021-04-15T01:00Z,27770
+2021-04-15T02:00Z,29292
+2021-04-15T03:00Z,30968
+2021-04-15T04:00Z,31548
+2021-04-15T05:00Z,30547
+2021-04-15T06:00Z,28616
+2021-04-15T07:00Z,26891
+2021-04-15T08:00Z,25595
+2021-04-15T09:00Z,24648
+2021-04-15T10:00Z,24221
+2021-04-15T11:00Z,24195
+2021-04-15T12:00Z,24726
+2021-04-15T13:00Z,26142
+2021-04-15T14:00Z,28127
+2021-04-15T15:00Z,28885
+2021-04-15T16:00Z,28452
+2021-04-15T17:00Z,27283
+2021-04-15T18:00Z,26430
+2021-04-15T19:00Z,25782
+2021-04-15T20:00Z,25127
+2021-04-15T21:00Z,24924
+2021-04-15T22:00Z,25272
+2021-04-15T23:00Z,25871
+2021-04-16,26818
+2021-04-16T01:00Z,28107
+2021-04-16T02:00Z,29521
+2021-04-16T03:00Z,30992
+2021-04-16T04:00Z,31548
+2021-04-16T05:00Z,30478
+2021-04-16T06:00Z,28686
+2021-04-16T07:00Z,26789
+2021-04-16T08:00Z,25438
+2021-04-16T09:00Z,24518
+2021-04-16T10:00Z,23966
+2021-04-16T11:00Z,23978
+2021-04-16T12:00Z,24315
+2021-04-16T13:00Z,25464
+2021-04-16T14:00Z,27371
+2021-04-16T15:00Z,28344
+2021-04-16T16:00Z,28185
+2021-04-16T17:00Z,27147
+2021-04-16T18:00Z,26067
+2021-04-16T19:00Z,25330
+2021-04-16T20:00Z,25199
+2021-04-16T21:00Z,25203
+2021-04-16T22:00Z,25488
+2021-04-16T23:00Z,26201
+2021-04-17,27541
+2021-04-17T01:00Z,28611
+2021-04-17T02:00Z,29934
+2021-04-17T03:00Z,31441
+2021-04-17T04:00Z,31831
+2021-04-17T05:00Z,30822
+2021-04-17T06:00Z,29221
+2021-04-17T07:00Z,27421
+2021-04-17T08:00Z,26005
+2021-04-17T09:00Z,24926
+2021-04-17T10:00Z,24133
+2021-04-17T11:00Z,23850
+2021-04-17T12:00Z,23862
+2021-04-17T13:00Z,24050
+2021-04-17T14:00Z,24614
+2021-04-17T15:00Z,24906
+2021-04-17T16:00Z,25430
+2021-04-17T17:00Z,24208
+2021-04-17T18:00Z,22949
+2021-04-17T19:00Z,22390
+2021-04-17T20:00Z,22044
+2021-04-17T21:00Z,22089
+2021-04-17T22:00Z,22606
+2021-04-17T23:00Z,23655
+2021-04-18,24938
+2021-04-18T01:00Z,26720
+2021-04-18T02:00Z,28685
+2021-04-18T03:00Z,30123
+2021-04-18T04:00Z,30590
+2021-04-18T05:00Z,29682
+2021-04-18T06:00Z,28196
+2021-04-18T07:00Z,26298
+2021-04-18T08:00Z,24775
+2021-04-18T09:00Z,23731
+2021-04-18T10:00Z,23032
+2021-04-18T11:00Z,22620
+2021-04-18T12:00Z,22795
+2021-04-18T13:00Z,23156
+2021-04-18T14:00Z,23343
+2021-04-18T15:00Z,23186
+2021-04-18T16:00Z,22852
+2021-04-18T17:00Z,22256
+2021-04-18T18:00Z,21986
+2021-04-18T19:00Z,21835
+2021-04-18T20:00Z,22104
+2021-04-18T21:00Z,22686
+2021-04-18T22:00Z,23359
+2021-04-18T23:00Z,24592
+2021-04-19,26503
+2021-04-19T01:00Z,28367
+2021-04-19T02:00Z,30297
+2021-04-19T03:00Z,31301
+2021-04-19T04:00Z,31338
+2021-04-19T05:00Z,29943
+2021-04-19T06:00Z,27917
+2021-04-19T07:00Z,25923
+2021-04-19T08:00Z,24831
+2021-04-19T09:00Z,24209
+2021-04-19T10:00Z,23815
+2021-04-19T11:00Z,23651
+2021-04-19T12:00Z,23907
+2021-04-19T13:00Z,25103
+2021-04-19T14:00Z,26651
+2021-04-19T15:00Z,27684
+2021-04-19T16:00Z,28341
+2021-04-19T17:00Z,28129
+2021-04-19T18:00Z,27668
+2021-04-19T19:00Z,27331
+2021-04-19T20:00Z,27435
+2021-04-19T21:00Z,28098
+2021-04-19T22:00Z,29076
+2021-04-19T23:00Z,30042
+2021-04-20,31325
+2021-04-20T01:00Z,32955
+2021-04-20T02:00Z,34070
+2021-04-20T03:00Z,34664
+2021-04-20T04:00Z,34394
+2021-04-20T05:00Z,32674
+2021-04-20T06:00Z,30218
+2021-04-20T07:00Z,27939
+2021-04-20T08:00Z,26275
+2021-04-20T09:00Z,25253
+2021-04-20T10:00Z,24645
+2021-04-20T11:00Z,24378
+2021-04-20T12:00Z,24759
+2021-04-20T13:00Z,26046
+2021-04-20T14:00Z,27540
+2021-04-20T15:00Z,28300
+2021-04-20T16:00Z,28263
+2021-04-20T17:00Z,27801
+2021-04-20T18:00Z,27060
+2021-04-20T19:00Z,26483
+2021-04-20T20:00Z,26385
+2021-04-20T21:00Z,26751
+2021-04-20T22:00Z,27153
+2021-04-20T23:00Z,27893
+2021-04-21,28826
+2021-04-21T01:00Z,29888
+2021-04-21T02:00Z,31185
+2021-04-21T03:00Z,32213
+2021-04-21T04:00Z,32368
+2021-04-21T05:00Z,31145
+2021-04-21T06:00Z,28968
+2021-04-21T07:00Z,27011
+2021-04-21T08:00Z,25684
+2021-04-21T09:00Z,24692
+2021-04-21T10:00Z,24377
+2021-04-21T11:00Z,24341
+2021-04-21T12:00Z,24821
+2021-04-21T13:00Z,26120
+2021-04-21T14:00Z,27704
+2021-04-21T15:00Z,28644
+2021-04-21T16:00Z,28803
+2021-04-21T17:00Z,28715
+2021-04-21T18:00Z,28289
+2021-04-21T19:00Z,27571
+2021-04-21T20:00Z,27321
+2021-04-21T21:00Z,27184
+2021-04-21T22:00Z,27453
+2021-04-21T23:00Z,27930
+2021-04-22,28806
+2021-04-22T01:00Z,29549
+2021-04-22T02:00Z,30790
+2021-04-22T03:00Z,32073
+2021-04-22T04:00Z,32363
+2021-04-22T05:00Z,31184
+2021-04-22T06:00Z,29176
+2021-04-22T07:00Z,27575
+2021-04-22T08:00Z,26314
+2021-04-22T09:00Z,25487
+2021-04-22T10:00Z,24876
+2021-04-22T11:00Z,24446
+2021-04-22T12:00Z,24681
+2021-04-22T13:00Z,26077
+2021-04-22T14:00Z,27892
+2021-04-22T15:00Z,29351
+2021-04-22T16:00Z,30047
+2021-04-22T17:00Z,29665
+2021-04-22T18:00Z,29297
+2021-04-22T19:00Z,28957
+2021-04-22T20:00Z,28480
+2021-04-22T21:00Z,28312
+2021-04-22T22:00Z,28338
+2021-04-22T23:00Z,28272
+2021-04-23,28814
+2021-04-23T01:00Z,29926
+2021-04-23T02:00Z,30854
+2021-04-23T03:00Z,32075
+2021-04-23T04:00Z,32267
+2021-04-23T05:00Z,31117
+2021-04-23T06:00Z,29198
+2021-04-23T07:00Z,27545
+2021-04-23T08:00Z,26055
+2021-04-23T09:00Z,25061
+2021-04-23T10:00Z,24474
+2021-04-23T11:00Z,24257
+2021-04-23T12:00Z,24769
+2021-04-23T13:00Z,26160
+2021-04-23T14:00Z,27864
+2021-04-23T15:00Z,28735
+2021-04-23T16:00Z,29214
+2021-04-23T17:00Z,29295
+2021-04-23T18:00Z,28756
+2021-04-23T19:00Z,28141
+2021-04-23T20:00Z,27440
+2021-04-23T21:00Z,27434
+2021-04-23T22:00Z,27397
+2021-04-23T23:00Z,27325
+2021-04-24,27904
+2021-04-24T01:00Z,29122
+2021-04-24T02:00Z,29903
+2021-04-24T03:00Z,31200
+2021-04-24T04:00Z,31616
+2021-04-24T05:00Z,30644
+2021-04-24T06:00Z,29017
+2021-04-24T07:00Z,27251
+2021-04-24T08:00Z,25949
+2021-04-24T09:00Z,25023
+2021-04-24T10:00Z,24464
+2021-04-24T11:00Z,24184
+2021-04-24T12:00Z,24056
+2021-04-24T13:00Z,24432
+2021-04-24T14:00Z,24793
+2021-04-24T15:00Z,25151
+2021-04-24T16:00Z,26138
+2021-04-24T17:00Z,26694
+2021-04-24T18:00Z,25977
+2021-04-24T19:00Z,24803
+2021-04-24T20:00Z,23823
+2021-04-24T21:00Z,23134
+2021-04-24T22:00Z,23193
+2021-04-24T23:00Z,24221
+2021-04-25,25304
+2021-04-25T01:00Z,26463
+2021-04-25T02:00Z,27866
+2021-04-25T03:00Z,29241
+2021-04-25T04:00Z,29882
+2021-04-25T05:00Z,28963
+2021-04-25T06:00Z,27638
+2021-04-25T07:00Z,26160
+2021-04-25T08:00Z,24891
+2021-04-25T09:00Z,24162
+2021-04-25T10:00Z,23696
+2021-04-25T11:00Z,23088
+2021-04-25T12:00Z,23051
+2021-04-25T13:00Z,23306
+2021-04-25T14:00Z,23537
+2021-04-25T15:00Z,23444
+2021-04-25T16:00Z,23739
+2021-04-25T17:00Z,23974
+2021-04-25T18:00Z,23876
+2021-04-25T19:00Z,23477
+2021-04-25T20:00Z,23355
+2021-04-25T21:00Z,23336
+2021-04-25T22:00Z,23650
+2021-04-25T23:00Z,24600
+2021-04-26,24746
+2021-04-26T01:00Z,25924
+2021-04-26T02:00Z,27240
+2021-04-26T03:00Z,28777
+2021-04-26T04:00Z,29541
+2021-04-26T05:00Z,28723
+2021-04-26T06:00Z,27159
+2021-04-26T07:00Z,25472
+2021-04-26T08:00Z,24522
+2021-04-26T09:00Z,23837
+2021-04-26T10:00Z,23570
+2021-04-26T11:00Z,23514
+2021-04-26T12:00Z,23976
+2021-04-26T13:00Z,25501
+2021-04-26T14:00Z,27390
+2021-04-26T15:00Z,28650
+2021-04-26T16:00Z,28793
+2021-04-26T17:00Z,28612
+2021-04-26T18:00Z,28166
+2021-04-26T19:00Z,27570
+2021-04-26T20:00Z,27085
+2021-04-26T21:00Z,26251
+2021-04-26T22:00Z,25236
+2021-04-26T23:00Z,25385
+2021-04-27,25703
+2021-04-27T01:00Z,26832
+2021-04-27T02:00Z,28725
+2021-04-27T03:00Z,30788
+2021-04-27T04:00Z,31439
+2021-04-27T05:00Z,30396
+2021-04-27T06:00Z,28622
+2021-04-27T07:00Z,26806
+2021-04-27T08:00Z,26156
+2021-04-27T09:00Z,25401
+2021-04-27T10:00Z,24585
+2021-04-27T11:00Z,24327
+2021-04-27T12:00Z,24963
+2021-04-27T13:00Z,26200
+2021-04-27T14:00Z,27909
+2021-04-27T15:00Z,28560
+2021-04-27T16:00Z,28152
+2021-04-27T17:00Z,26925
+2021-04-27T18:00Z,25563
+2021-04-27T19:00Z,24754
+2021-04-27T20:00Z,24446
+2021-04-27T21:00Z,24443
+2021-04-27T22:00Z,24613
+2021-04-27T23:00Z,25106
+2021-04-28,26050
+2021-04-28T01:00Z,27554
+2021-04-28T02:00Z,29326
+2021-04-28T03:00Z,30960
+2021-04-28T04:00Z,31861
+2021-04-28T05:00Z,30838
+2021-04-28T06:00Z,28886
+2021-04-28T07:00Z,26988
+2021-04-28T08:00Z,25717
+2021-04-28T09:00Z,24856
+2021-04-28T10:00Z,24325
+2021-04-28T11:00Z,24235
+2021-04-28T12:00Z,24692
+2021-04-28T13:00Z,26094
+2021-04-28T14:00Z,27615
+2021-04-28T15:00Z,28350
+2021-04-28T16:00Z,28209
+2021-04-28T17:00Z,27763
+2021-04-28T18:00Z,27129
+2021-04-28T19:00Z,27021
+2021-04-28T20:00Z,26439
+2021-04-28T21:00Z,26816
+2021-04-28T22:00Z,27668
+2021-04-28T23:00Z,28124
+2021-04-29,29271
+2021-04-29T01:00Z,30894
+2021-04-29T02:00Z,32419
+2021-04-29T03:00Z,33385
+2021-04-29T04:00Z,33700
+2021-04-29T05:00Z,32255
+2021-04-29T06:00Z,30388
+2021-04-29T07:00Z,27912
+2021-04-29T08:00Z,26470
+2021-04-29T09:00Z,25370
+2021-04-29T10:00Z,24563
+2021-04-29T11:00Z,24630
+2021-04-29T12:00Z,24927
+2021-04-29T13:00Z,26026
+2021-04-29T14:00Z,27459
+2021-04-29T15:00Z,28317
+2021-04-29T16:00Z,28310
+2021-04-29T17:00Z,28131
+2021-04-29T18:00Z,27998
+2021-04-29T19:00Z,28289
+2021-04-29T20:00Z,29012
+2021-04-29T21:00Z,30090
+2021-04-29T22:00Z,31389
+2021-04-29T23:00Z,32437
+2021-04-30,33399
+2021-04-30T01:00Z,34941
+2021-04-30T02:00Z,36239
+2021-04-30T03:00Z,36454
+2021-04-30T04:00Z,36031
+2021-04-30T05:00Z,34395
+2021-04-30T06:00Z,31714
+2021-04-30T07:00Z,29268
+2021-04-30T08:00Z,27610
+2021-04-30T09:00Z,26552
+2021-04-30T10:00Z,25560
+2021-04-30T11:00Z,25198
+2021-04-30T12:00Z,25363
+2021-04-30T13:00Z,26260
+2021-04-30T14:00Z,27390
+2021-04-30T15:00Z,28711
+2021-04-30T16:00Z,29142
+2021-04-30T17:00Z,29081
+2021-04-30T18:00Z,30192
+2021-04-30T19:00Z,30112
+2021-04-30T20:00Z,30970
+2021-04-30T21:00Z,32485
+2021-04-30T22:00Z,34081
+2021-04-30T23:00Z,35076
+2021-05-01,35885
+2021-05-01T01:00Z,36628
+2021-05-01T02:00Z,36969
+2021-05-01T03:00Z,36490
+2021-05-01T04:00Z,35829
+2021-05-01T05:00Z,34123
+2021-05-01T06:00Z,31949
+2021-05-01T07:00Z,29387
+2021-05-01T08:00Z,27752
+2021-05-01T09:00Z,26285
+2021-05-01T10:00Z,25253
+2021-05-01T11:00Z,24653
+2021-05-01T12:00Z,24496
+2021-05-01T13:00Z,24807
+2021-05-01T14:00Z,24887
+2021-05-01T15:00Z,25159
+2021-05-01T16:00Z,25740
+2021-05-01T17:00Z,25179
+2021-05-01T18:00Z,25383
+2021-05-01T19:00Z,25127
+2021-05-01T20:00Z,25180
+2021-05-01T21:00Z,25412
+2021-05-01T22:00Z,26504
+2021-05-01T23:00Z,27248
+2021-05-02,28461
+2021-05-02T01:00Z,29393
+2021-05-02T02:00Z,30754
+2021-05-02T03:00Z,31345
+2021-05-02T04:00Z,31422
+2021-05-02T05:00Z,30319
+2021-05-02T06:00Z,28774
+2021-05-02T07:00Z,26951
+2021-05-02T08:00Z,25495
+2021-05-02T09:00Z,24515
+2021-05-02T10:00Z,23707
+2021-05-02T11:00Z,23219
+2021-05-02T12:00Z,23170
+2021-05-02T13:00Z,23389
+2021-05-02T14:00Z,23465
+2021-05-02T15:00Z,23292
+2021-05-02T16:00Z,23324
+2021-05-02T17:00Z,23154
+2021-05-02T18:00Z,23024
+2021-05-02T19:00Z,22848
+2021-05-02T20:00Z,22755
+2021-05-02T21:00Z,22816
+2021-05-02T22:00Z,23346
+2021-05-02T23:00Z,24317
+2021-05-03,25630
+2021-05-03T01:00Z,27256
+2021-05-03T02:00Z,28953
+2021-05-03T03:00Z,29952
+2021-05-03T04:00Z,30696
+2021-05-03T05:00Z,29899
+2021-05-03T06:00Z,28045
+2021-05-03T07:00Z,26101
+2021-05-03T08:00Z,24807
+2021-05-03T09:00Z,23918
+2021-05-03T10:00Z,23291
+2021-05-03T11:00Z,23129
+2021-05-03T12:00Z,23631
+2021-05-03T13:00Z,24942
+2021-05-03T14:00Z,26386
+2021-05-03T15:00Z,27580
+2021-05-03T16:00Z,28255
+2021-05-03T17:00Z,28077
+2021-05-03T18:00Z,27605
+2021-05-03T19:00Z,27627
+2021-05-03T20:00Z,27962
+2021-05-03T21:00Z,28415
+2021-05-03T22:00Z,29264
+2021-05-03T23:00Z,30165
+2021-05-04,31337
+2021-05-04T01:00Z,32924
+2021-05-04T02:00Z,34303
+2021-05-04T03:00Z,34765
+2021-05-04T04:00Z,34948
+2021-05-04T05:00Z,33569
+2021-05-04T06:00Z,31008
+2021-05-04T07:00Z,28612
+2021-05-04T08:00Z,27056
+2021-05-04T09:00Z,25863
+2021-05-04T10:00Z,25118
+2021-05-04T11:00Z,24752
+2021-05-04T12:00Z,24962
+2021-05-04T13:00Z,25990
+2021-05-04T14:00Z,27195
+2021-05-04T15:00Z,28244
+2021-05-04T16:00Z,28863
+2021-05-04T17:00Z,28930
+2021-05-04T18:00Z,29064
+2021-05-04T19:00Z,29070
+2021-05-04T20:00Z,29623
+2021-05-04T21:00Z,30527
+2021-05-04T22:00Z,31842
+2021-05-04T23:00Z,33518
+2021-05-05,34856
+2021-05-05T01:00Z,36544
+2021-05-05T02:00Z,37366
+2021-05-05T03:00Z,37419
+2021-05-05T04:00Z,36919
+2021-05-05T05:00Z,35049
+2021-05-05T06:00Z,32230
+2021-05-05T07:00Z,29557
+2021-05-05T08:00Z,27602
+2021-05-05T09:00Z,26261
+2021-05-05T10:00Z,25411
+2021-05-05T11:00Z,24845
+2021-05-05T12:00Z,25114
+2021-05-05T13:00Z,26262
+2021-05-05T14:00Z,27409
+2021-05-05T15:00Z,28420
+2021-05-05T16:00Z,29365
+2021-05-05T17:00Z,29679
+2021-05-05T18:00Z,29917
+2021-05-05T19:00Z,30287
+2021-05-05T20:00Z,31372
+2021-05-05T21:00Z,32371
+2021-05-05T22:00Z,33818
+2021-05-05T23:00Z,35422
+2021-05-06,36747
+2021-05-06T01:00Z,38156
+2021-05-06T02:00Z,38752
+2021-05-06T03:00Z,38234
+2021-05-06T04:00Z,37481
+2021-05-06T05:00Z,35374
+2021-05-06T06:00Z,32518
+2021-05-06T07:00Z,29782
+2021-05-06T08:00Z,28097
+2021-05-06T09:00Z,26853
+2021-05-06T10:00Z,25914
+2021-05-06T11:00Z,25382
+2021-05-06T12:00Z,25549
+2021-05-06T13:00Z,26589
+2021-05-06T14:00Z,27869
+2021-05-06T15:00Z,28849
+2021-05-06T16:00Z,29364
+2021-05-06T17:00Z,28942
+2021-05-06T18:00Z,28576
+2021-05-06T19:00Z,28727
+2021-05-06T20:00Z,28941
+2021-05-06T21:00Z,29802
+2021-05-06T22:00Z,30695
+2021-05-06T23:00Z,31381
+2021-05-07,32435
+2021-05-07T01:00Z,33594
+2021-05-07T02:00Z,34228
+2021-05-07T03:00Z,34358
+2021-05-07T04:00Z,34537
+2021-05-07T05:00Z,33167
+2021-05-07T06:00Z,31031
+2021-05-07T07:00Z,29048
+2021-05-07T08:00Z,27569
+2021-05-07T09:00Z,26351
+2021-05-07T10:00Z,25641
+2021-05-07T11:00Z,25363
+2021-05-07T12:00Z,25784
+2021-05-07T13:00Z,26937
+2021-05-07T14:00Z,28211
+2021-05-07T15:00Z,29101
+2021-05-07T16:00Z,29700
+2021-05-07T17:00Z,29142
+2021-05-07T18:00Z,28132
+2021-05-07T19:00Z,27537
+2021-05-07T20:00Z,27462
+2021-05-07T21:00Z,27812
+2021-05-07T22:00Z,28435
+2021-05-07T23:00Z,29220
+2021-05-08,30278
+2021-05-08T01:00Z,31294
+2021-05-08T02:00Z,32386
+2021-05-08T03:00Z,33172
+2021-05-08T04:00Z,33673
+2021-05-08T05:00Z,32500
+2021-05-08T06:00Z,30682
+2021-05-08T07:00Z,28782
+2021-05-08T08:00Z,27261
+2021-05-08T09:00Z,25960
+2021-05-08T10:00Z,25135
+2021-05-08T11:00Z,25056
+2021-05-08T12:00Z,24804
+2021-05-08T13:00Z,25198
+2021-05-08T14:00Z,25344
+2021-05-08T15:00Z,25736
+2021-05-08T16:00Z,25866
+2021-05-08T17:00Z,25314
+2021-05-08T18:00Z,24729
+2021-05-08T19:00Z,24161
+2021-05-08T20:00Z,23945
+2021-05-08T21:00Z,24405
+2021-05-08T22:00Z,25329
+2021-05-08T23:00Z,26757
+2021-05-09,28180
+2021-05-09T01:00Z,30112
+2021-05-09T02:00Z,31146
+2021-05-09T03:00Z,32105
+2021-05-09T04:00Z,32582
+2021-05-09T05:00Z,31711
+2021-05-09T06:00Z,29992
+2021-05-09T07:00Z,28116
+2021-05-09T08:00Z,26314
+2021-05-09T09:00Z,25168
+2021-05-09T10:00Z,24615
+2021-05-09T11:00Z,24044
+2021-05-09T12:00Z,23790
+2021-05-09T13:00Z,23859
+2021-05-09T14:00Z,23751
+2021-05-09T15:00Z,24331
+2021-05-09T16:00Z,24635
+2021-05-09T17:00Z,24363
+2021-05-09T18:00Z,23954
+2021-05-09T19:00Z,23452
+2021-05-09T20:00Z,22865
+2021-05-09T21:00Z,23362
+2021-05-09T22:00Z,24447
+2021-05-09T23:00Z,26096
+2021-05-10,27762
+2021-05-10T01:00Z,29216
+2021-05-10T02:00Z,30281
+2021-05-10T03:00Z,31068
+2021-05-10T04:00Z,31674
+2021-05-10T05:00Z,30937
+2021-05-10T06:00Z,28861
+2021-05-10T07:00Z,26979
+2021-05-10T08:00Z,25557
+2021-05-10T09:00Z,24559
+2021-05-10T10:00Z,24058
+2021-05-10T11:00Z,23753
+2021-05-10T12:00Z,24101
+2021-05-10T13:00Z,25417
+2021-05-10T14:00Z,26827
+2021-05-10T15:00Z,28217
+2021-05-10T16:00Z,29077
+2021-05-10T17:00Z,29223
+2021-05-10T18:00Z,29021
+2021-05-10T19:00Z,29082
+2021-05-10T20:00Z,29234
+2021-05-10T21:00Z,29595
+2021-05-10T22:00Z,30375
+2021-05-10T23:00Z,31456
+2021-05-11,32815
+2021-05-11T01:00Z,33878
+2021-05-11T02:00Z,34970
+2021-05-11T03:00Z,35529
+2021-05-11T04:00Z,35662
+2021-05-11T05:00Z,34225
+2021-05-11T06:00Z,31506
+2021-05-11T07:00Z,28992
+2021-05-11T08:00Z,27286
+2021-05-11T09:00Z,26097
+2021-05-11T10:00Z,25292
+2021-05-11T11:00Z,24840
+2021-05-11T12:00Z,25128
+2021-05-11T13:00Z,26227
+2021-05-11T14:00Z,27402
+2021-05-11T15:00Z,28711
+2021-05-11T16:00Z,29250
+2021-05-11T17:00Z,29037
+2021-05-11T18:00Z,28724
+2021-05-11T19:00Z,28450
+2021-05-11T20:00Z,28756
+2021-05-11T21:00Z,29849
+2021-05-11T22:00Z,31024
+2021-05-11T23:00Z,32534
+2021-05-12,34268
+2021-05-12T01:00Z,35880
+2021-05-12T02:00Z,36631
+2021-05-12T03:00Z,36582
+2021-05-12T04:00Z,36300
+2021-05-12T05:00Z,34615
+2021-05-12T06:00Z,32006
+2021-05-12T07:00Z,29382
+2021-05-12T08:00Z,27559
+2021-05-12T09:00Z,26295
+2021-05-12T10:00Z,25522
+2021-05-12T11:00Z,25207
+2021-05-12T12:00Z,25259
+2021-05-12T13:00Z,26288
+2021-05-12T14:00Z,27584
+2021-05-12T15:00Z,28794
+2021-05-12T16:00Z,29389
+2021-05-12T17:00Z,29138
+2021-05-12T18:00Z,29152
+2021-05-12T19:00Z,29564
+2021-05-12T20:00Z,30254
+2021-05-12T21:00Z,31079
+2021-05-12T22:00Z,32432
+2021-05-12T23:00Z,34133
+2021-05-13,35536
+2021-05-13T01:00Z,36745
+2021-05-13T02:00Z,37612
+2021-05-13T03:00Z,37634
+2021-05-13T04:00Z,37416
+2021-05-13T05:00Z,35395
+2021-05-13T06:00Z,32631
+2021-05-13T07:00Z,29948
+2021-05-13T08:00Z,28040
+2021-05-13T09:00Z,26755
+2021-05-13T10:00Z,25827
+2021-05-13T11:00Z,25320
+2021-05-13T12:00Z,25609
+2021-05-13T13:00Z,26709
+2021-05-13T14:00Z,28000
+2021-05-13T15:00Z,29110
+2021-05-13T16:00Z,30103
+2021-05-13T17:00Z,30370
+2021-05-13T18:00Z,29946
+2021-05-13T19:00Z,29918
+2021-05-13T20:00Z,30277
+2021-05-13T21:00Z,30681
+2021-05-13T22:00Z,31130
+2021-05-13T23:00Z,32408
+2021-05-14,33432
+2021-05-14T01:00Z,34794
+2021-05-14T02:00Z,35639
+2021-05-14T03:00Z,35780
+2021-05-14T04:00Z,35728
+2021-05-14T05:00Z,34270
+2021-05-14T06:00Z,31656
+2021-05-14T07:00Z,29098
+2021-05-14T08:00Z,27430
+2021-05-14T09:00Z,26299
+2021-05-14T10:00Z,25571
+2021-05-14T11:00Z,25178
+2021-05-14T12:00Z,25379
+2021-05-14T13:00Z,26456
+2021-05-14T14:00Z,27650
+2021-05-14T15:00Z,29066
+2021-05-14T16:00Z,30124
+2021-05-14T17:00Z,30120
+2021-05-14T18:00Z,29474
+2021-05-14T19:00Z,28916
+2021-05-14T20:00Z,28563
+2021-05-14T21:00Z,28986
+2021-05-14T22:00Z,29599
+2021-05-14T23:00Z,30525
+2021-05-15,31694
+2021-05-15T01:00Z,33696
+2021-05-15T02:00Z,33403
+2021-05-15T03:00Z,33608
+2021-05-15T04:00Z,33748
+2021-05-15T05:00Z,32542
+2021-05-15T06:00Z,30681
+2021-05-15T07:00Z,28634
+2021-05-15T08:00Z,27009
+2021-05-15T09:00Z,25715
+2021-05-15T10:00Z,24852
+2021-05-15T11:00Z,24603
+2021-05-15T12:00Z,24510
+2021-05-15T13:00Z,24855
+2021-05-15T14:00Z,25332
+2021-05-15T15:00Z,26167
+2021-05-15T16:00Z,26506
+2021-05-15T17:00Z,26690
+2021-05-15T18:00Z,26300
+2021-05-15T19:00Z,25359
+2021-05-15T20:00Z,24400
+2021-05-15T21:00Z,24042
+2021-05-15T22:00Z,24595
+2021-05-15T23:00Z,25650
+2021-05-16,26658
+2021-05-16T01:00Z,27760
+2021-05-16T02:00Z,28624
+2021-05-16T03:00Z,29631
+2021-05-16T04:00Z,30422
+2021-05-16T05:00Z,29701
+2021-05-16T06:00Z,28216
+2021-05-16T07:00Z,26513
+2021-05-16T08:00Z,25314
+2021-05-16T09:00Z,24411
+2021-05-16T10:00Z,23685
+2021-05-16T11:00Z,23236
+2021-05-16T12:00Z,23123
+2021-05-16T13:00Z,23223
+2021-05-16T14:00Z,23056
+2021-05-16T15:00Z,23084
+2021-05-16T16:00Z,23419
+2021-05-16T17:00Z,23893
+2021-05-16T18:00Z,23879
+2021-05-16T19:00Z,23753
+2021-05-16T20:00Z,23724
+2021-05-16T21:00Z,23738
+2021-05-16T22:00Z,23821
+2021-05-16T23:00Z,24626
+2021-05-17,25941
+2021-05-17T01:00Z,27106
+2021-05-17T02:00Z,28236
+2021-05-17T03:00Z,29548
+2021-05-17T04:00Z,30264
+2021-05-17T05:00Z,29564
+2021-05-17T06:00Z,27750
+2021-05-17T07:00Z,26005
+2021-05-17T08:00Z,24922
+2021-05-17T09:00Z,24539
+2021-05-17T10:00Z,24323
+2021-05-17T11:00Z,24169
+2021-05-17T12:00Z,24697
+2021-05-17T13:00Z,26079
+2021-05-17T14:00Z,27629
+2021-05-17T15:00Z,29058
+2021-05-17T16:00Z,29922
+2021-05-17T17:00Z,29827
+2021-05-17T18:00Z,29684
+2021-05-17T19:00Z,29445
+2021-05-17T20:00Z,29282
+2021-05-17T21:00Z,29309
+2021-05-17T22:00Z,29623
+2021-05-17T23:00Z,30179
+2021-05-18,30880
+2021-05-18T01:00Z,31209
+2021-05-18T02:00Z,31989
+2021-05-18T03:00Z,32844
+2021-05-18T04:00Z,33465
+2021-05-18T05:00Z,32477
+2021-05-18T06:00Z,30386
+2021-05-18T07:00Z,28217
+2021-05-18T08:00Z,27097
+2021-05-18T09:00Z,26168
+2021-05-18T10:00Z,25479
+2021-05-18T11:00Z,25492
+2021-05-18T12:00Z,25551
+2021-05-18T13:00Z,26789
+2021-05-18T14:00Z,28061
+2021-05-18T15:00Z,29310
+2021-05-18T16:00Z,29866
+2021-05-18T17:00Z,29684
+2021-05-18T18:00Z,29339
+2021-05-18T19:00Z,28727
+2021-05-18T20:00Z,28691
+2021-05-18T21:00Z,28947
+2021-05-18T22:00Z,29641
+2021-05-18T23:00Z,30351
+2021-05-19,31693
+2021-05-19T01:00Z,32787
+2021-05-19T02:00Z,33908
+2021-05-19T03:00Z,34264
+2021-05-19T04:00Z,34761
+2021-05-19T05:00Z,33575
+2021-05-19T06:00Z,31221
+2021-05-19T07:00Z,28882
+2021-05-19T08:00Z,27255
+2021-05-19T09:00Z,26052
+2021-05-19T10:00Z,25345
+2021-05-19T11:00Z,25055
+2021-05-19T12:00Z,25436
+2021-05-19T13:00Z,26469
+2021-05-19T14:00Z,27533
+2021-05-19T15:00Z,28421
+2021-05-19T16:00Z,29171
+2021-05-19T17:00Z,29292
+2021-05-19T18:00Z,28654
+2021-05-19T19:00Z,27966
+2021-05-19T20:00Z,27867
+2021-05-19T21:00Z,28034
+2021-05-19T22:00Z,28718
+2021-05-19T23:00Z,29487
+2021-05-20,30486
+2021-05-20T01:00Z,31524
+2021-05-20T02:00Z,32562
+2021-05-20T03:00Z,33298
+2021-05-20T04:00Z,33917
+2021-05-20T05:00Z,32876
+2021-05-20T06:00Z,30707
+2021-05-20T07:00Z,28493
+2021-05-20T08:00Z,26922
+2021-05-20T09:00Z,25949
+2021-05-20T10:00Z,25202
+2021-05-20T11:00Z,24889
+2021-05-20T12:00Z,25204
+2021-05-20T13:00Z,26361
+2021-05-20T14:00Z,27569
+2021-05-20T15:00Z,28848
+2021-05-20T16:00Z,29133
+2021-05-20T17:00Z,28670
+2021-05-20T18:00Z,27940
+2021-05-20T19:00Z,27290
+2021-05-20T20:00Z,27068
+2021-05-20T21:00Z,27384
+2021-05-20T22:00Z,27783
+2021-05-20T23:00Z,27988
+2021-05-21,28429
+2021-05-21T01:00Z,29252
+2021-05-21T02:00Z,30230
+2021-05-21T03:00Z,31331
+2021-05-21T04:00Z,32439
+2021-05-21T05:00Z,31704
+2021-05-21T06:00Z,29590
+2021-05-21T07:00Z,27530
+2021-05-21T08:00Z,26130
+2021-05-21T09:00Z,26068
+2021-05-21T10:00Z,24830
+2021-05-21T11:00Z,24603
+2021-05-21T12:00Z,25018
+2021-05-21T13:00Z,26151
+2021-05-21T14:00Z,27466
+2021-05-21T15:00Z,28085
+2021-05-21T16:00Z,28435
+2021-05-21T17:00Z,27948
+2021-05-21T18:00Z,27267
+2021-05-21T19:00Z,26724
+2021-05-21T20:00Z,26336
+2021-05-21T21:00Z,26300
+2021-05-21T22:00Z,26411
+2021-05-21T23:00Z,26923
+2021-05-22,27609
+2021-05-22T01:00Z,28495
+2021-05-22T02:00Z,29625
+2021-05-22T03:00Z,30803
+2021-05-22T04:00Z,31712
+2021-05-22T05:00Z,31204
+2021-05-22T06:00Z,29543
+2021-05-22T07:00Z,27715
+2021-05-22T08:00Z,26447
+2021-05-22T09:00Z,25365
+2021-05-22T10:00Z,24625
+2021-05-22T11:00Z,24240
+2021-05-22T12:00Z,24298
+2021-05-22T13:00Z,24687
+2021-05-22T14:00Z,24790
+2021-05-22T15:00Z,25385
+2021-05-22T16:00Z,25446
+2021-05-22T17:00Z,25115
+2021-05-22T18:00Z,24031
+2021-05-22T19:00Z,22969
+2021-05-22T20:00Z,22511
+2021-05-22T21:00Z,22366
+2021-05-22T22:00Z,22913
+2021-05-22T23:00Z,23151
+2021-05-23,24260
+2021-05-23T01:00Z,25961
+2021-05-23T02:00Z,27844
+2021-05-23T03:00Z,29055
+2021-05-23T04:00Z,30270
+2021-05-23T05:00Z,29845
+2021-05-23T06:00Z,28354
+2021-05-23T07:00Z,26769
+2021-05-23T08:00Z,25530
+2021-05-23T09:00Z,24586
+2021-05-23T10:00Z,23991
+2021-05-23T11:00Z,23596
+2021-05-23T12:00Z,23566
+2021-05-23T13:00Z,23628
+2021-05-23T14:00Z,23114
+2021-05-23T15:00Z,22822
+2021-05-23T16:00Z,22892
+2021-05-23T17:00Z,22310
+2021-05-23T18:00Z,21810
+2021-05-23T19:00Z,21475
+2021-05-23T20:00Z,21575
+2021-05-23T21:00Z,21764
+2021-05-23T22:00Z,22168
+2021-05-23T23:00Z,23077
+2021-05-24,24808
+2021-05-24T01:00Z,26890
+2021-05-24T02:00Z,28832
+2021-05-24T03:00Z,30067
+2021-05-24T04:00Z,31093
+2021-05-24T05:00Z,30610
+2021-05-24T06:00Z,28718
+2021-05-24T07:00Z,26735
+2021-05-24T08:00Z,25408
+2021-05-24T09:00Z,24465
+2021-05-24T10:00Z,23835
+2021-05-24T11:00Z,23668
+2021-05-24T12:00Z,24177
+2021-05-24T13:00Z,25373
+2021-05-24T14:00Z,26538
+2021-05-24T15:00Z,27662
+2021-05-24T16:00Z,28049
+2021-05-24T17:00Z,27756
+2021-05-24T18:00Z,28071
+2021-05-24T19:00Z,28492
+2021-05-24T20:00Z,28848
+2021-05-24T21:00Z,29687
+2021-05-24T22:00Z,30352
+2021-05-24T23:00Z,31700
+2021-05-25,33486
+2021-05-25T01:00Z,35502
+2021-05-25T02:00Z,36490
+2021-05-25T03:00Z,36610
+2021-05-25T04:00Z,36372
+2021-05-25T05:00Z,34996
+2021-05-25T06:00Z,32287
+2021-05-25T07:00Z,29897
+2021-05-25T08:00Z,28001
+2021-05-25T09:00Z,26717
+2021-05-25T10:00Z,25987
+2021-05-25T11:00Z,25507
+2021-05-25T12:00Z,25734
+2021-05-25T13:00Z,26673
+2021-05-25T14:00Z,27692
+2021-05-25T15:00Z,28803
+2021-05-25T16:00Z,29047
+2021-05-25T17:00Z,29209
+2021-05-25T18:00Z,29706
+2021-05-25T19:00Z,30409
+2021-05-25T20:00Z,33213
+2021-05-25T21:00Z,31825
+2021-05-25T22:00Z,32932
+2021-05-25T23:00Z,34119
+2021-05-26,35467
+2021-05-26T01:00Z,36470
+2021-05-26T02:00Z,36827
+2021-05-26T03:00Z,36769
+2021-05-26T04:00Z,36892
+2021-05-26T05:00Z,35551
+2021-05-26T06:00Z,32874
+2021-05-26T07:00Z,30403
+2021-05-26T08:00Z,28605
+2021-05-26T09:00Z,27350
+2021-05-26T10:00Z,26741
+2021-05-26T11:00Z,26366
+2021-05-26T12:00Z,26572
+2021-05-26T13:00Z,27259
+2021-05-26T14:00Z,28296
+2021-05-26T15:00Z,29280
+2021-05-26T16:00Z,29868
+2021-05-26T17:00Z,29811
+2021-05-26T18:00Z,29627
+2021-05-26T19:00Z,30086
+2021-05-26T20:00Z,30434
+2021-05-26T21:00Z,31160
+2021-05-26T22:00Z,31775
+2021-05-26T23:00Z,33176
+2021-05-27,34418
+2021-05-27T01:00Z,35683
+2021-05-27T02:00Z,36567
+2021-05-27T03:00Z,36533
+2021-05-27T04:00Z,36175
+2021-05-27T05:00Z,34868
+2021-05-27T06:00Z,32245
+2021-05-27T07:00Z,29893
+2021-05-27T08:00Z,28091
+2021-05-27T09:00Z,26778
+2021-05-27T10:00Z,25973
+2021-05-27T11:00Z,25939
+2021-05-27T12:00Z,26517
+2021-05-27T13:00Z,27139
+2021-05-27T14:00Z,28171
+2021-05-27T15:00Z,29772
+2021-05-27T16:00Z,30225
+2021-05-27T17:00Z,29393
+2021-05-27T18:00Z,28808
+2021-05-27T19:00Z,28769
+2021-05-27T20:00Z,29267
+2021-05-27T21:00Z,30241
+2021-05-27T22:00Z,31089
+2021-05-27T23:00Z,32297
+2021-05-28,33865
+2021-05-28T01:00Z,35235
+2021-05-28T02:00Z,35661
+2021-05-28T03:00Z,35798
+2021-05-28T04:00Z,35982
+2021-05-28T05:00Z,34970
+2021-05-28T06:00Z,32550
+2021-05-28T07:00Z,30323
+2021-05-28T08:00Z,28516
+2021-05-28T09:00Z,27201
+2021-05-28T10:00Z,26567
+2021-05-28T11:00Z,26273
+2021-05-28T12:00Z,26427
+2021-05-28T13:00Z,27302
+2021-05-28T14:00Z,28597
+2021-05-28T15:00Z,29911
+2021-05-28T16:00Z,30162
+2021-05-28T17:00Z,30091
+2021-05-28T18:00Z,29852
+2021-05-28T19:00Z,30049
+2021-05-28T20:00Z,30127
+2021-05-28T21:00Z,31071
+2021-05-28T22:00Z,31930
+2021-05-28T23:00Z,33235
+2021-05-29,34515
+2021-05-29T01:00Z,35890
+2021-05-29T02:00Z,36212
+2021-05-29T03:00Z,35896
+2021-05-29T04:00Z,35779
+2021-05-29T05:00Z,34707
+2021-05-29T06:00Z,32563
+2021-05-29T07:00Z,30229
+2021-05-29T08:00Z,28460
+2021-05-29T09:00Z,27291
+2021-05-29T10:00Z,26241
+2021-05-29T11:00Z,25576
+2021-05-29T12:00Z,25398
+2021-05-29T13:00Z,25560
+2021-05-29T14:00Z,25689
+2021-05-29T15:00Z,26215
+2021-05-29T16:00Z,26734
+2021-05-29T17:00Z,26751
+2021-05-29T18:00Z,26388
+2021-05-29T19:00Z,25798
+2021-05-29T20:00Z,25639
+2021-05-29T21:00Z,25757
+2021-05-29T22:00Z,26498
+2021-05-29T23:00Z,27892
+2021-05-30,29583
+2021-05-30T01:00Z,31048
+2021-05-30T02:00Z,31987
+2021-05-30T03:00Z,32418
+2021-05-30T04:00Z,32758
+2021-05-30T05:00Z,32153
+2021-05-30T06:00Z,30390
+2021-05-30T07:00Z,28406
+2021-05-30T08:00Z,26860
+2021-05-30T09:00Z,25628
+2021-05-30T10:00Z,24792
+2021-05-30T11:00Z,24267
+2021-05-30T12:00Z,24078
+2021-05-30T13:00Z,24107
+2021-05-30T14:00Z,24075
+2021-05-30T15:00Z,24445
+2021-05-30T16:00Z,24702
+2021-05-30T17:00Z,24508
+2021-05-30T18:00Z,24089
+2021-05-30T19:00Z,23892
+2021-05-30T20:00Z,24085
+2021-05-30T21:00Z,25005
+2021-05-30T22:00Z,26337
+2021-05-30T23:00Z,28282
+2021-05-31,30142
+2021-05-31T01:00Z,32312
+2021-05-31T02:00Z,33866
+2021-05-31T03:00Z,34331
+2021-05-31T04:00Z,34254
+2021-05-31T05:00Z,33318
+2021-05-31T06:00Z,31302
+2021-05-31T07:00Z,29104
+2021-05-31T08:00Z,27551
+2021-05-31T09:00Z,26114
+2021-05-31T10:00Z,25334
+2021-05-31T11:00Z,24792
+2021-05-31T12:00Z,24659
+2021-05-31T13:00Z,24919
+2021-05-31T14:00Z,25163
+2021-05-31T15:00Z,26478
+2021-05-31T16:00Z,27402
+2021-05-31T17:00Z,27570
+2021-05-31T18:00Z,27855
+2021-05-31T19:00Z,28637
+2021-05-31T20:00Z,29434
+2021-05-31T21:00Z,30981
+2021-05-31T22:00Z,32616
+2021-05-31T23:00Z,34791
+2021-06-01,36725
+2021-06-01T01:00Z,38453
+2021-06-01T02:00Z,39500
+2021-06-01T03:00Z,39375
+2021-06-01T04:00Z,38809
+2021-06-01T05:00Z,37149
+2021-06-01T06:00Z,34216
+2021-06-01T07:00Z,31225
+2021-06-01T08:00Z,29367
+2021-06-01T09:00Z,27829
+2021-06-01T10:00Z,26798
+2021-06-01T11:00Z,26340
+2021-06-01T12:00Z,26323
+2021-06-01T13:00Z,27194
+2021-06-01T14:00Z,28333
+2021-06-01T15:00Z,29832
+2021-06-01T16:00Z,30869
+2021-06-01T17:00Z,31465
+2021-06-01T18:00Z,32492
+2021-06-01T19:00Z,33637
+2021-06-01T20:00Z,34783
+2021-06-01T21:00Z,36512
+2021-06-01T22:00Z,38531
+2021-06-01T23:00Z,40336
+2021-06-02,41478
+2021-06-02T01:00Z,42088
+2021-06-02T02:00Z,42116
+2021-06-02T03:00Z,41270
+2021-06-02T04:00Z,40462
+2021-06-02T05:00Z,38540
+2021-06-02T06:00Z,35527
+2021-06-02T07:00Z,32490
+2021-06-02T08:00Z,30230
+2021-06-02T09:00Z,28761
+2021-06-02T10:00Z,27832
+2021-06-02T11:00Z,27223
+2021-06-02T12:00Z,27141
+2021-06-02T13:00Z,27975
+2021-06-02T14:00Z,29016
+2021-06-02T15:00Z,30223
+2021-06-02T16:00Z,31527
+2021-06-02T17:00Z,31766
+2021-06-02T18:00Z,32053
+2021-06-02T19:00Z,32861
+2021-06-02T20:00Z,33924
+2021-06-02T21:00Z,35618
+2021-06-02T22:00Z,37399
+2021-06-02T23:00Z,38955
+2021-06-03,40402
+2021-06-03T01:00Z,41386
+2021-06-03T02:00Z,41802
+2021-06-03T03:00Z,41007
+2021-06-03T04:00Z,40012
+2021-06-03T05:00Z,38279
+2021-06-03T06:00Z,35201
+2021-06-03T07:00Z,32340
+2021-06-03T08:00Z,30569
+2021-06-03T09:00Z,28953
+2021-06-03T10:00Z,27744
+2021-06-03T11:00Z,27043
+2021-06-03T12:00Z,27219
+2021-06-03T13:00Z,28131
+2021-06-03T14:00Z,29235
+2021-06-03T15:00Z,30875
+2021-06-03T16:00Z,31730
+2021-06-03T17:00Z,32083
+2021-06-03T18:00Z,32607
+2021-06-03T19:00Z,33315
+2021-06-03T20:00Z,34044
+2021-06-03T21:00Z,35634
+2021-06-03T22:00Z,37535
+2021-06-03T23:00Z,39913
+2021-06-04,41168
+2021-06-04T01:00Z,42274
+2021-06-04T02:00Z,42707
+2021-06-04T03:00Z,41974
+2021-06-04T04:00Z,40881
+2021-06-04T05:00Z,39139
+2021-06-04T06:00Z,36275
+2021-06-04T07:00Z,33574
+2021-06-04T08:00Z,31641
+2021-06-04T09:00Z,30010
+2021-06-04T10:00Z,28380
+2021-06-04T11:00Z,27532
+2021-06-04T12:00Z,27563
+2021-06-04T13:00Z,28272
+2021-06-04T14:00Z,29484
+2021-06-04T15:00Z,31079
+2021-06-04T16:00Z,31723
+2021-06-04T17:00Z,32630
+2021-06-04T18:00Z,33031
+2021-06-04T19:00Z,33760
+2021-06-04T20:00Z,34602
+2021-06-04T21:00Z,36088
+2021-06-04T22:00Z,37168
+2021-06-04T23:00Z,38435
+2021-06-05,39754
+2021-06-05T01:00Z,40808
+2021-06-05T02:00Z,41240
+2021-06-05T03:00Z,40487
+2021-06-05T04:00Z,39396
+2021-06-05T05:00Z,37909
+2021-06-05T06:00Z,35201
+2021-06-05T07:00Z,32565
+2021-06-05T08:00Z,30580
+2021-06-05T09:00Z,29061
+2021-06-05T10:00Z,27872
+2021-06-05T11:00Z,27158
+2021-06-05T12:00Z,26784
+2021-06-05T13:00Z,26847
+2021-06-05T14:00Z,27183
+2021-06-05T15:00Z,27603
+2021-06-05T16:00Z,27846
+2021-06-05T17:00Z,27876
+2021-06-05T18:00Z,28115
+2021-06-05T19:00Z,28814
+2021-06-05T20:00Z,29529
+2021-06-05T21:00Z,30610
+2021-06-05T22:00Z,32012
+2021-06-05T23:00Z,33569
+2021-06-06,35370
+2021-06-06T01:00Z,36938
+2021-06-06T02:00Z,37974
+2021-06-06T03:00Z,37813
+2021-06-06T04:00Z,37224
+2021-06-06T05:00Z,36037
+2021-06-06T06:00Z,33722
+2021-06-06T07:00Z,31300
+2021-06-06T08:00Z,29366
+2021-06-06T09:00Z,27741
+2021-06-06T10:00Z,26737
+2021-06-06T11:00Z,25966
+2021-06-06T12:00Z,25475
+2021-06-06T13:00Z,25435
+2021-06-06T14:00Z,25415
+2021-06-06T15:00Z,25814
+2021-06-06T16:00Z,26378
+2021-06-06T17:00Z,26150
+2021-06-06T18:00Z,25964
+2021-06-06T19:00Z,26206
+2021-06-06T20:00Z,26443
+2021-06-06T21:00Z,27585
+2021-06-06T22:00Z,28929
+2021-06-06T23:00Z,30233
+2021-06-07,31862
+2021-06-07T01:00Z,33911
+2021-06-07T02:00Z,34979
+2021-06-07T03:00Z,35138
+2021-06-07T04:00Z,34825
+2021-06-07T05:00Z,33918
+2021-06-07T06:00Z,31726
+2021-06-07T07:00Z,29412
+2021-06-07T08:00Z,27564
+2021-06-07T09:00Z,26512
+2021-06-07T10:00Z,25914
+2021-06-07T11:00Z,25579
+2021-06-07T12:00Z,25844
+2021-06-07T13:00Z,26979
+2021-06-07T14:00Z,28234
+2021-06-07T15:00Z,29724
+2021-06-07T16:00Z,31036
+2021-06-07T17:00Z,31251
+2021-06-07T18:00Z,31573
+2021-06-07T19:00Z,31601
+2021-06-07T20:00Z,31622
+2021-06-07T21:00Z,30814
+2021-06-07T22:00Z,30477
+2021-06-07T23:00Z,30858
+2021-06-08,31465
+2021-06-08T01:00Z,32398
+2021-06-08T02:00Z,33157
+2021-06-08T03:00Z,33379
+2021-06-08T04:00Z,33878
+2021-06-08T05:00Z,33314
+2021-06-08T06:00Z,31231
+2021-06-08T07:00Z,29257
+2021-06-08T08:00Z,27908
+2021-06-08T09:00Z,26867
+2021-06-08T10:00Z,26141
+2021-06-08T11:00Z,25810
+2021-06-08T12:00Z,25880
+2021-06-08T13:00Z,26792
+2021-06-08T14:00Z,27780
+2021-06-08T15:00Z,28767
+2021-06-08T16:00Z,29531
+2021-06-08T17:00Z,29543
+2021-06-08T18:00Z,28927
+2021-06-08T19:00Z,28273
+2021-06-08T20:00Z,28365
+2021-06-08T21:00Z,28456
+2021-06-08T22:00Z,29084
+2021-06-08T23:00Z,29878
+2021-06-09,30635
+2021-06-09T01:00Z,31540
+2021-06-09T02:00Z,32809
+2021-06-09T03:00Z,33475
+2021-06-09T04:00Z,34122
+2021-06-09T05:00Z,33511
+2021-06-09T06:00Z,31638
+2021-06-09T07:00Z,29371
+2021-06-09T08:00Z,27824
+2021-06-09T09:00Z,26740
+2021-06-09T10:00Z,25953
+2021-06-09T11:00Z,25505
+2021-06-09T12:00Z,25618
+2021-06-09T13:00Z,26559
+2021-06-09T14:00Z,27354
+2021-06-09T15:00Z,28572
+2021-06-09T16:00Z,28905
+2021-06-09T17:00Z,29199
+2021-06-09T18:00Z,28881
+2021-06-09T19:00Z,28668
+2021-06-09T20:00Z,28595
+2021-06-09T21:00Z,28908
+2021-06-09T22:00Z,28994
+2021-06-09T23:00Z,29561
+2021-06-10,30269
+2021-06-10T01:00Z,31303
+2021-06-10T02:00Z,32308
+2021-06-10T03:00Z,32827
+2021-06-10T04:00Z,33479
+2021-06-10T05:00Z,33096
+2021-06-10T06:00Z,31235
+2021-06-10T07:00Z,29246
+2021-06-10T08:00Z,27575
+2021-06-10T09:00Z,26375
+2021-06-10T10:00Z,25603
+2021-06-10T11:00Z,25498
+2021-06-10T12:00Z,25508
+2021-06-10T13:00Z,26435
+2021-06-10T14:00Z,27475
+2021-06-10T15:00Z,28493
+2021-06-10T16:00Z,28438
+2021-06-10T17:00Z,27972
+2021-06-10T18:00Z,27654
+2021-06-10T19:00Z,27279
+2021-06-10T20:00Z,27434
+2021-06-10T21:00Z,27786
+2021-06-10T22:00Z,28623
+2021-06-10T23:00Z,29415
+2021-06-11,30174
+2021-06-11T01:00Z,31354
+2021-06-11T02:00Z,32530
+2021-06-11T03:00Z,33371
+2021-06-11T04:00Z,33971
+2021-06-11T05:00Z,33620
+2021-06-11T06:00Z,31729
+2021-06-11T07:00Z,29568
+2021-06-11T08:00Z,27865
+2021-06-11T09:00Z,26760
+2021-06-11T10:00Z,25901
+2021-06-11T11:00Z,25430
+2021-06-11T12:00Z,25564
+2021-06-11T13:00Z,26457
+2021-06-11T14:00Z,27347
+2021-06-11T15:00Z,28457
+2021-06-11T16:00Z,28418
+2021-06-11T17:00Z,28378
+2021-06-11T18:00Z,28031
+2021-06-11T19:00Z,28354
+2021-06-11T20:00Z,28640
+2021-06-11T21:00Z,29106
+2021-06-11T22:00Z,30059
+2021-06-11T23:00Z,31172
+2021-06-12,32707
+2021-06-12T01:00Z,34276
+2021-06-12T02:00Z,35364
+2021-06-12T03:00Z,35514
+2021-06-12T04:00Z,35442
+2021-06-12T05:00Z,34788
+2021-06-12T06:00Z,32809
+2021-06-12T07:00Z,30628
+2021-06-12T08:00Z,28765
+2021-06-12T09:00Z,27324
+2021-06-12T10:00Z,26296
+2021-06-12T11:00Z,25651
+2021-06-12T12:00Z,25503
+2021-06-12T13:00Z,25633
+2021-06-12T14:00Z,25741
+2021-06-12T15:00Z,26423
+2021-06-12T16:00Z,26832
+2021-06-12T17:00Z,27046
+2021-06-12T18:00Z,27619
+2021-06-12T19:00Z,28276
+2021-06-12T20:00Z,28576
+2021-06-12T21:00Z,29888
+2021-06-12T22:00Z,31672
+2021-06-12T23:00Z,33778
+2021-06-13,35730
+2021-06-13T01:00Z,37502
+2021-06-13T02:00Z,38775
+2021-06-13T03:00Z,38581
+2021-06-13T04:00Z,37786
+2021-06-13T05:00Z,36586
+2021-06-13T06:00Z,34043
+2021-06-13T07:00Z,31626
+2021-06-13T08:00Z,29499
+2021-06-13T09:00Z,27869
+2021-06-13T10:00Z,26674
+2021-06-13T11:00Z,25833
+2021-06-13T12:00Z,25464
+2021-06-13T13:00Z,25273
+2021-06-13T14:00Z,24959
+2021-06-13T15:00Z,25197
+2021-06-13T16:00Z,25739
+2021-06-13T17:00Z,26266
+2021-06-13T18:00Z,26928
+2021-06-13T19:00Z,27428
+2021-06-13T20:00Z,28268
+2021-06-13T21:00Z,30053
+2021-06-13T22:00Z,31808
+2021-06-13T23:00Z,34207
+2021-06-14,36345
+2021-06-14T01:00Z,38443
+2021-06-14T02:00Z,39953
+2021-06-14T03:00Z,39649
+2021-06-14T04:00Z,38649
+2021-06-14T05:00Z,37428
+2021-06-14T06:00Z,34679
+2021-06-14T07:00Z,31811
+2021-06-14T08:00Z,29607
+2021-06-14T09:00Z,28019
+2021-06-14T10:00Z,27031
+2021-06-14T11:00Z,26848
+2021-06-14T12:00Z,27158
+2021-06-14T13:00Z,27760
+2021-06-14T14:00Z,28961
+2021-06-14T15:00Z,31126
+2021-06-14T16:00Z,32484
+2021-06-14T17:00Z,33192
+2021-06-14T18:00Z,34019
+2021-06-14T19:00Z,35039
+2021-06-14T20:00Z,36447
+2021-06-14T21:00Z,37779
+2021-06-14T22:00Z,39807
+2021-06-14T23:00Z,41577
+2021-06-15,43150
+2021-06-15T01:00Z,44272
+2021-06-15T02:00Z,44800
+2021-06-15T03:00Z,43820
+2021-06-15T04:00Z,42568
+2021-06-15T05:00Z,40833
+2021-06-15T06:00Z,37499
+2021-06-15T07:00Z,34178
+2021-06-15T08:00Z,31985
+2021-06-15T09:00Z,30132
+2021-06-15T10:00Z,29031
+2021-06-15T11:00Z,28531
+2021-06-15T12:00Z,28391
+2021-06-15T13:00Z,29347
+2021-06-15T14:00Z,29997
+2021-06-15T15:00Z,31422
+2021-06-15T16:00Z,32628
+2021-06-15T17:00Z,33587
+2021-06-15T18:00Z,34884
+2021-06-15T19:00Z,36464
+2021-06-15T20:00Z,38521
+2021-06-15T21:00Z,40729
+2021-06-15T22:00Z,42587
+2021-06-15T23:00Z,44502
+2021-06-16,46305
+2021-06-16T01:00Z,47676
+2021-06-16T02:00Z,48383
+2021-06-16T03:00Z,47471
+2021-06-16T04:00Z,46265
+2021-06-16T05:00Z,44072
+2021-06-16T06:00Z,40381
+2021-06-16T07:00Z,36686
+2021-06-16T08:00Z,33822
+2021-06-16T09:00Z,31664
+2021-06-16T10:00Z,30194
+2021-06-16T11:00Z,29310
+2021-06-16T12:00Z,29149
+2021-06-16T13:00Z,30049
+2021-06-16T14:00Z,31122
+2021-06-16T15:00Z,33019
+2021-06-16T16:00Z,34763
+2021-06-16T17:00Z,35750
+2021-06-16T18:00Z,37186
+2021-06-16T19:00Z,38918
+2021-06-16T20:00Z,41124
+2021-06-16T21:00Z,43044
+2021-06-16T22:00Z,45073
+2021-06-16T23:00Z,47021
+2021-06-17,48310
+2021-06-17T01:00Z,48760
+2021-06-17T02:00Z,48498
+2021-06-17T03:00Z,46940
+2021-06-17T04:00Z,45566
+2021-06-17T05:00Z,43548
+2021-06-17T06:00Z,40131
+2021-06-17T07:00Z,36639
+2021-06-17T08:00Z,33855
+2021-06-17T09:00Z,31771
+2021-06-17T10:00Z,30511
+2021-06-17T11:00Z,29974
+2021-06-17T12:00Z,29531
+2021-06-17T13:00Z,30345
+2021-06-17T14:00Z,31747
+2021-06-17T15:00Z,33926
+2021-06-17T16:00Z,35470
+2021-06-17T17:00Z,36566
+2021-06-17T18:00Z,38270
+2021-06-17T19:00Z,40415
+2021-06-17T20:00Z,42545
+2021-06-17T21:00Z,45162
+2021-06-17T22:00Z,47617
+2021-06-17T23:00Z,49843
+2021-06-18,51401
+2021-06-18T01:00Z,51602
+2021-06-18T02:00Z,51444
+2021-06-18T03:00Z,50014
+2021-06-18T04:00Z,48091
+2021-06-18T05:00Z,46161
+2021-06-18T06:00Z,42606
+2021-06-18T07:00Z,39115
+2021-06-18T08:00Z,36341
+2021-06-18T09:00Z,33873
+2021-06-18T10:00Z,32503
+2021-06-18T11:00Z,31842
+2021-06-18T12:00Z,31080
+2021-06-18T13:00Z,31620
+2021-06-18T14:00Z,32460
+2021-06-18T15:00Z,34062
+2021-06-18T16:00Z,35824
+2021-06-18T17:00Z,37162
+2021-06-18T18:00Z,38488
+2021-06-18T19:00Z,40602
+2021-06-18T20:00Z,42815
+2021-06-18T21:00Z,45047
+2021-06-18T22:00Z,47287
+2021-06-18T23:00Z,49088
+2021-06-19,50438
+2021-06-19T01:00Z,50861
+2021-06-19T02:00Z,50164
+2021-06-19T03:00Z,48664
+2021-06-19T04:00Z,46685
+2021-06-19T05:00Z,44579
+2021-06-19T06:00Z,41562
+2021-06-19T07:00Z,38301
+2021-06-19T08:00Z,35359
+2021-06-19T09:00Z,32898
+2021-06-19T10:00Z,31385
+2021-06-19T11:00Z,30108
+2021-06-19T12:00Z,29568
+2021-06-19T13:00Z,29361
+2021-06-19T14:00Z,29422
+2021-06-19T15:00Z,30660
+2021-06-19T16:00Z,31741
+2021-06-19T17:00Z,32682
+2021-06-19T18:00Z,33937
+2021-06-19T19:00Z,35531
+2021-06-19T20:00Z,37148
+2021-06-19T21:00Z,39170
+2021-06-19T22:00Z,41412
+2021-06-19T23:00Z,43284
+2021-06-20,44696
+2021-06-20T01:00Z,45793
+2021-06-20T02:00Z,46198
+2021-06-20T03:00Z,44964
+2021-06-20T04:00Z,43335
+2021-06-20T05:00Z,41428
+2021-06-20T06:00Z,38514
+2021-06-20T07:00Z,35787
+2021-06-20T08:00Z,33320
+2021-06-20T09:00Z,31099
+2021-06-20T10:00Z,29480
+2021-06-20T11:00Z,28436
+2021-06-20T12:00Z,27765
+2021-06-20T13:00Z,27394
+2021-06-20T14:00Z,27356
+2021-06-20T15:00Z,28392
+2021-06-20T16:00Z,29310
+2021-06-20T17:00Z,30132
+2021-06-20T18:00Z,31104
+2021-06-20T19:00Z,32157
+2021-06-20T20:00Z,33162
+2021-06-20T21:00Z,34809
+2021-06-20T22:00Z,36668
+2021-06-20T23:00Z,38386
+2021-06-21,40131
+2021-06-21T01:00Z,41772
+2021-06-21T02:00Z,42491
+2021-06-21T03:00Z,41517
+2021-06-21T04:00Z,40189
+2021-06-21T05:00Z,38877
+2021-06-21T06:00Z,35919
+2021-06-21T07:00Z,33013
+2021-06-21T08:00Z,30795
+2021-06-21T09:00Z,29096
+2021-06-21T10:00Z,27739
+2021-06-21T11:00Z,27201
+2021-06-21T12:00Z,27129
+2021-06-21T13:00Z,28402
+2021-06-21T14:00Z,29432
+2021-06-21T15:00Z,31141
+2021-06-21T16:00Z,31874
+2021-06-21T17:00Z,32248
+2021-06-21T18:00Z,33595
+2021-06-21T19:00Z,34402
+2021-06-21T20:00Z,35369
+2021-06-21T21:00Z,37036
+2021-06-21T22:00Z,38758
+2021-06-21T23:00Z,40605
+2021-06-22,42172
+2021-06-22T01:00Z,43153
+2021-06-22T02:00Z,43311
+2021-06-22T03:00Z,42249
+2021-06-22T04:00Z,40876
+2021-06-22T05:00Z,39227
+2021-06-22T06:00Z,36475
+2021-06-22T07:00Z,33575
+2021-06-22T08:00Z,31511
+2021-06-22T09:00Z,29709
+2021-06-22T10:00Z,28658
+2021-06-22T11:00Z,27950
+2021-06-22T12:00Z,27760
+2021-06-22T13:00Z,28607
+2021-06-22T14:00Z,29663
+2021-06-22T15:00Z,31119
+2021-06-22T16:00Z,32488
+2021-06-22T17:00Z,33130
+2021-06-22T18:00Z,33342
+2021-06-22T19:00Z,34064
+2021-06-22T20:00Z,34964
+2021-06-22T21:00Z,36274
+2021-06-22T22:00Z,38156
+2021-06-22T23:00Z,39559
+2021-06-23,40403
+2021-06-23T01:00Z,41223
+2021-06-23T02:00Z,41401
+2021-06-23T03:00Z,40714
+2021-06-23T04:00Z,40072
+2021-06-23T05:00Z,39013
+2021-06-23T06:00Z,36586
+2021-06-23T07:00Z,33765
+2021-06-23T08:00Z,31763
+2021-06-23T09:00Z,30341
+2021-06-23T10:00Z,29025
+2021-06-23T11:00Z,28474
+2021-06-23T12:00Z,28460
+2021-06-23T13:00Z,29256
+2021-06-23T14:00Z,30274
+2021-06-23T15:00Z,31972
+2021-06-23T16:00Z,33256
+2021-06-23T17:00Z,33715
+2021-06-23T18:00Z,34509
+2021-06-23T19:00Z,34737
+2021-06-23T20:00Z,35411
+2021-06-23T21:00Z,36919
+2021-06-23T22:00Z,37976
+2021-06-23T23:00Z,39451
+2021-06-24,40800
+2021-06-24T01:00Z,41128
+2021-06-24T02:00Z,41337
+2021-06-24T03:00Z,40755
+2021-06-24T04:00Z,40024
+2021-06-24T05:00Z,38756
+2021-06-24T06:00Z,35980
+2021-06-24T07:00Z,33132
+2021-06-24T08:00Z,30998
+2021-06-24T09:00Z,29338
+2021-06-24T10:00Z,28518
+2021-06-24T11:00Z,28019
+2021-06-24T12:00Z,28170
+2021-06-24T13:00Z,29003
+2021-06-24T14:00Z,29919
+2021-06-24T15:00Z,31450
+2021-06-24T16:00Z,32435
+2021-06-24T17:00Z,32536
+2021-06-24T18:00Z,32671
+2021-06-24T19:00Z,33087
+2021-06-24T20:00Z,33912
+2021-06-24T21:00Z,34885
+2021-06-24T22:00Z,36390
+2021-06-24T23:00Z,38302
+2021-06-25,39296
+2021-06-25T01:00Z,40079
+2021-06-25T02:00Z,40479
+2021-06-25T03:00Z,39947
+2021-06-25T04:00Z,39339
+2021-06-25T05:00Z,38014
+2021-06-25T06:00Z,35377
+2021-06-25T07:00Z,32697
+2021-06-25T08:00Z,30538
+2021-06-25T09:00Z,29091
+2021-06-25T10:00Z,28072
+2021-06-25T11:00Z,28030
+2021-06-25T12:00Z,27940
+2021-06-25T13:00Z,28332
+2021-06-25T14:00Z,29243
+2021-06-25T15:00Z,30880
+2021-06-25T16:00Z,32056
+2021-06-25T17:00Z,31928
+2021-06-25T18:00Z,32089
+2021-06-25T19:00Z,32726
+2021-06-25T20:00Z,33788
+2021-06-25T21:00Z,34917
+2021-06-25T22:00Z,36408
+2021-06-25T23:00Z,38054
+2021-06-26,39932
+2021-06-26T01:00Z,41730
+2021-06-26T02:00Z,42494
+2021-06-26T03:00Z,41699
+2021-06-26T04:00Z,40614
+2021-06-26T05:00Z,39249
+2021-06-26T06:00Z,36996
+2021-06-26T07:00Z,34139
+2021-06-26T08:00Z,31698
+2021-06-26T09:00Z,29967
+2021-06-26T10:00Z,28724
+2021-06-26T11:00Z,27813
+2021-06-26T12:00Z,27469
+2021-06-26T13:00Z,27757
+2021-06-26T14:00Z,27729
+2021-06-26T15:00Z,29234
+2021-06-26T16:00Z,29808
+2021-06-26T17:00Z,30194
+2021-06-26T18:00Z,31020
+2021-06-26T19:00Z,31683
+2021-06-26T20:00Z,33088
+2021-06-26T21:00Z,34944
+2021-06-26T22:00Z,36830
+2021-06-26T23:00Z,39207
+2021-06-27,41400
+2021-06-27T01:00Z,43360
+2021-06-27T02:00Z,44458
+2021-06-27T03:00Z,43823
+2021-06-27T04:00Z,42343
+2021-06-27T05:00Z,40734
+2021-06-27T06:00Z,38211
+2021-06-27T07:00Z,35399
+2021-06-27T08:00Z,32994
+2021-06-27T09:00Z,30857
+2021-06-27T10:00Z,29519
+2021-06-27T11:00Z,28516
+2021-06-27T12:00Z,28191
+2021-06-27T13:00Z,28049
+2021-06-27T14:00Z,27721
+2021-06-27T15:00Z,28882
+2021-06-27T16:00Z,29104
+2021-06-27T17:00Z,30316
+2021-06-27T18:00Z,31372
+2021-06-27T19:00Z,32946
+2021-06-27T20:00Z,34699
+2021-06-27T21:00Z,36815
+2021-06-27T22:00Z,38220
+2021-06-27T23:00Z,40204
+2021-06-28,42119
+2021-06-28T01:00Z,43739
+2021-06-28T02:00Z,44367
+2021-06-28T03:00Z,43353
+2021-06-28T04:00Z,41723
+2021-06-28T05:00Z,40036
+2021-06-28T06:00Z,37119
+2021-06-28T07:00Z,34346
+2021-06-28T08:00Z,32203
+2021-06-28T09:00Z,30597
+2021-06-28T10:00Z,29590
+2021-06-28T11:00Z,28882
+2021-06-28T12:00Z,28941
+2021-06-28T13:00Z,29592
+2021-06-28T14:00Z,30456
+2021-06-28T15:00Z,32127
+2021-06-28T16:00Z,33867
+2021-06-28T17:00Z,34810
+2021-06-28T18:00Z,35684
+2021-06-28T19:00Z,37617
+2021-06-28T20:00Z,39348
+2021-06-28T21:00Z,41416
+2021-06-28T22:00Z,43487
+2021-06-28T23:00Z,45237
+2021-06-29,46361
+2021-06-29T01:00Z,46834
+2021-06-29T02:00Z,46374
+2021-06-29T03:00Z,44835
+2021-06-29T04:00Z,43459
+2021-06-29T05:00Z,41646
+2021-06-29T06:00Z,38516
+2021-06-29T07:00Z,35449
+2021-06-29T08:00Z,33470
+2021-06-29T09:00Z,31787
+2021-06-29T10:00Z,30424
+2021-06-29T11:00Z,29723
+2021-06-29T12:00Z,29647
+2021-06-29T13:00Z,30283
+2021-06-29T14:00Z,30834
+2021-06-29T15:00Z,32262
+2021-06-29T16:00Z,33648
+2021-06-29T17:00Z,34347
+2021-06-29T18:00Z,35099
+2021-06-29T19:00Z,37053
+2021-06-29T20:00Z,38015
+2021-06-29T21:00Z,39724
+2021-06-29T22:00Z,41732
+2021-06-29T23:00Z,43473
+2021-06-30,44767
+2021-06-30T01:00Z,45544
+2021-06-30T02:00Z,45510
+2021-06-30T03:00Z,44443
+2021-06-30T04:00Z,43521
+2021-06-30T05:00Z,41973
+2021-06-30T06:00Z,39073
+2021-06-30T07:00Z,36082
+2021-06-30T08:00Z,33864
+2021-06-30T09:00Z,31736
+2021-06-30T10:00Z,30414
+2021-06-30T11:00Z,29688
+2021-06-30T12:00Z,29484
+2021-06-30T13:00Z,30295
+2021-06-30T14:00Z,31280
+2021-06-30T15:00Z,33272
+2021-06-30T16:00Z,34433
+2021-06-30T17:00Z,35115
+2021-06-30T18:00Z,36041
+2021-06-30T19:00Z,37353
+2021-06-30T20:00Z,38466
+2021-06-30T21:00Z,40384
+2021-06-30T22:00Z,42301
+2021-06-30T23:00Z,44097
+2021-07-01,45387
+2021-07-01T01:00Z,46383
+2021-07-01T02:00Z,46310
+2021-07-01T03:00Z,44843
+2021-07-01T04:00Z,43356
+2021-07-01T05:00Z,41534
+2021-07-01T06:00Z,38479
+2021-07-01T07:00Z,35262
+2021-07-01T08:00Z,33129
+2021-07-01T09:00Z,31309
+2021-07-01T10:00Z,30094
+2021-07-01T11:00Z,29421
+2021-07-01T12:00Z,29440
+2021-07-01T13:00Z,30072
+2021-07-01T14:00Z,31007
+2021-07-01T15:00Z,32770
+2021-07-01T16:00Z,33952
+2021-07-01T17:00Z,34632
+2021-07-01T18:00Z,35203
+2021-07-01T19:00Z,36858
+2021-07-01T20:00Z,38606
+2021-07-01T21:00Z,40081
+2021-07-01T22:00Z,42204
+2021-07-01T23:00Z,44381
+2021-07-02,46116
+2021-07-02T01:00Z,47233
+2021-07-02T02:00Z,47239
+2021-07-02T03:00Z,45819
+2021-07-02T04:00Z,44105
+2021-07-02T05:00Z,42361
+2021-07-02T06:00Z,39223
+2021-07-02T07:00Z,36350
+2021-07-02T08:00Z,33636
+2021-07-02T09:00Z,31712
+2021-07-02T10:00Z,30313
+2021-07-02T11:00Z,29474
+2021-07-02T12:00Z,29273
+2021-07-02T13:00Z,29892
+2021-07-02T14:00Z,30922
+2021-07-02T15:00Z,32702
+2021-07-02T16:00Z,33603
+2021-07-02T17:00Z,34144
+2021-07-02T18:00Z,35411
+2021-07-02T19:00Z,37039
+2021-07-02T20:00Z,38428
+2021-07-02T21:00Z,40215
+2021-07-02T22:00Z,42263
+2021-07-02T23:00Z,44269
+2021-07-03,45565
+2021-07-03T01:00Z,46210
+2021-07-03T02:00Z,46077
+2021-07-03T03:00Z,44682
+2021-07-03T04:00Z,43083
+2021-07-03T05:00Z,41409
+2021-07-03T06:00Z,38467
+2021-07-03T07:00Z,35586
+2021-07-03T08:00Z,33372
+2021-07-03T09:00Z,31532
+2021-07-03T10:00Z,30279
+2021-07-03T11:00Z,29372
+2021-07-03T12:00Z,28869
+2021-07-03T13:00Z,28769
+2021-07-03T14:00Z,28613
+2021-07-03T15:00Z,29866
+2021-07-03T16:00Z,30578
+2021-07-03T17:00Z,31112
+2021-07-03T18:00Z,31682
+2021-07-03T19:00Z,32555
+2021-07-03T20:00Z,34130
+2021-07-03T21:00Z,36418
+2021-07-03T22:00Z,38556
+2021-07-03T23:00Z,40289
+2021-07-04,41572
+2021-07-04T01:00Z,42653
+2021-07-04T02:00Z,43082
+2021-07-04T03:00Z,42042
+2021-07-04T04:00Z,40677
+2021-07-04T05:00Z,39145
+2021-07-04T06:00Z,36622
+2021-07-04T07:00Z,34531
+2021-07-04T08:00Z,31868
+2021-07-04T09:00Z,29921
+2021-07-04T10:00Z,28886
+2021-07-04T11:00Z,28019
+2021-07-04T12:00Z,27205
+2021-07-04T13:00Z,27108
+2021-07-04T14:00Z,26725
+2021-07-04T15:00Z,27104
+2021-07-04T16:00Z,27293
+2021-07-04T17:00Z,27590
+2021-07-04T18:00Z,28239
+2021-07-04T19:00Z,29269
+2021-07-04T20:00Z,31044
+2021-07-04T21:00Z,32561
+2021-07-04T22:00Z,34407
+2021-07-04T23:00Z,36257
+2021-07-05,37352
+2021-07-05T01:00Z,38687
+2021-07-05T02:00Z,39577
+2021-07-05T03:00Z,38909
+2021-07-05T04:00Z,37601
+2021-07-05T05:00Z,36292
+2021-07-05T06:00Z,34554
+2021-07-05T07:00Z,32479
+2021-07-05T08:00Z,30367
+2021-07-05T09:00Z,28732
+2021-07-05T10:00Z,27657
+2021-07-05T11:00Z,26989
+2021-07-05T12:00Z,26744
+2021-07-05T13:00Z,26951
+2021-07-05T14:00Z,27299
+2021-07-05T15:00Z,28319
+2021-07-05T16:00Z,28557
+2021-07-05T17:00Z,28901
+2021-07-05T18:00Z,29479
+2021-07-05T19:00Z,33967
+2021-07-05T20:00Z,32198
+2021-07-05T21:00Z,34071
+2021-07-05T22:00Z,36293
+2021-07-05T23:00Z,38415
+2021-07-06,40529
+2021-07-06T01:00Z,42422
+2021-07-06T02:00Z,43294
+2021-07-06T03:00Z,42594
+2021-07-06T04:00Z,41218
+2021-07-06T05:00Z,39500
+2021-07-06T06:00Z,36515
+2021-07-06T07:00Z,33376
+2021-07-06T08:00Z,31031
+2021-07-06T09:00Z,29345
+2021-07-06T10:00Z,28576
+2021-07-06T11:00Z,28286
+2021-07-06T12:00Z,28144
+2021-07-06T13:00Z,28823
+2021-07-06T14:00Z,30001
+2021-07-06T15:00Z,31859
+2021-07-06T16:00Z,33165
+2021-07-06T17:00Z,33732
+2021-07-06T18:00Z,33903
+2021-07-06T19:00Z,34778
+2021-07-06T20:00Z,35957
+2021-07-06T21:00Z,37149
+2021-07-06T22:00Z,39099
+2021-07-06T23:00Z,41429
+2021-07-07,43417
+2021-07-07T01:00Z,44749
+2021-07-07T02:00Z,45087
+2021-07-07T03:00Z,44186
+2021-07-07T04:00Z,42800
+2021-07-07T05:00Z,40997
+2021-07-07T06:00Z,37949
+2021-07-07T07:00Z,34752
+2021-07-07T08:00Z,32718
+2021-07-07T09:00Z,31115
+2021-07-07T10:00Z,29757
+2021-07-07T11:00Z,29280
+2021-07-07T12:00Z,29136
+2021-07-07T13:00Z,29780
+2021-07-07T14:00Z,30916
+2021-07-07T15:00Z,32439
+2021-07-07T16:00Z,33780
+2021-07-07T17:00Z,34717
+2021-07-07T18:00Z,35542
+2021-07-07T19:00Z,36560
+2021-07-07T20:00Z,38151
+2021-07-07T21:00Z,39769
+2021-07-07T22:00Z,41643
+2021-07-07T23:00Z,43544
+2021-07-08,45332
+2021-07-08T01:00Z,46381
+2021-07-08T02:00Z,46641
+2021-07-08T03:00Z,45431
+2021-07-08T04:00Z,43936
+2021-07-08T05:00Z,42207
+2021-07-08T06:00Z,39039
+2021-07-08T07:00Z,35422
+2021-07-08T08:00Z,32849
+2021-07-08T09:00Z,31192
+2021-07-08T10:00Z,30336
+2021-07-08T11:00Z,29437
+2021-07-08T12:00Z,29214
+2021-07-08T13:00Z,30166
+2021-07-08T14:00Z,31341
+2021-07-08T15:00Z,33501
+2021-07-08T16:00Z,34902
+2021-07-08T17:00Z,35999
+2021-07-08T18:00Z,37516
+2021-07-08T19:00Z,39542
+2021-07-08T20:00Z,41264
+2021-07-08T21:00Z,43556
+2021-07-08T22:00Z,45827
+2021-07-08T23:00Z,48305
+2021-07-09,49779
+2021-07-09T01:00Z,50462
+2021-07-09T02:00Z,50338
+2021-07-09T03:00Z,49214
+2021-07-09T04:00Z,47787
+2021-07-09T05:00Z,45797
+2021-07-09T06:00Z,42247
+2021-07-09T07:00Z,38503
+2021-07-09T08:00Z,36070
+2021-07-09T09:00Z,33877
+2021-07-09T10:00Z,32348
+2021-07-09T11:00Z,31541
+2021-07-09T12:00Z,31347
+2021-07-09T13:00Z,31893
+2021-07-09T14:00Z,32877
+2021-07-09T15:00Z,34716
+2021-07-09T16:00Z,36647
+2021-07-09T17:00Z,38140
+2021-07-09T18:00Z,40507
+2021-07-09T19:00Z,43199
+2021-07-09T20:00Z,45447
+2021-07-09T21:00Z,47851
+2021-07-09T22:00Z,50043
+2021-07-09T23:00Z,51992
+2021-07-10,53225
+2021-07-10T01:00Z,53390
+2021-07-10T02:00Z,52074
+2021-07-10T03:00Z,50260
+2021-07-10T04:00Z,48244
+2021-07-10T05:00Z,46566
+2021-07-10T06:00Z,43465
+2021-07-10T07:00Z,39910
+2021-07-10T08:00Z,36991
+2021-07-10T09:00Z,34832
+2021-07-10T10:00Z,33029
+2021-07-10T11:00Z,31902
+2021-07-10T12:00Z,31245
+2021-07-10T13:00Z,31358
+2021-07-10T14:00Z,30912
+2021-07-10T15:00Z,32155
+2021-07-10T16:00Z,33858
+2021-07-10T17:00Z,35290
+2021-07-10T18:00Z,36884
+2021-07-10T19:00Z,39110
+2021-07-10T20:00Z,41779
+2021-07-10T21:00Z,44102
+2021-07-10T22:00Z,46195
+2021-07-10T23:00Z,47833
+2021-07-11,49050
+2021-07-11T01:00Z,50039
+2021-07-11T02:00Z,49957
+2021-07-11T03:00Z,48670
+2021-07-11T04:00Z,47050
+2021-07-11T05:00Z,45119
+2021-07-11T06:00Z,42024
+2021-07-11T07:00Z,39152
+2021-07-11T08:00Z,36312
+2021-07-11T09:00Z,33990
+2021-07-11T10:00Z,32225
+2021-07-11T11:00Z,30890
+2021-07-11T12:00Z,29944
+2021-07-11T13:00Z,29505
+2021-07-11T14:00Z,28887
+2021-07-11T15:00Z,30226
+2021-07-11T16:00Z,31708
+2021-07-11T17:00Z,32919
+2021-07-11T18:00Z,34531
+2021-07-11T19:00Z,36246
+2021-07-11T20:00Z,37467
+2021-07-11T21:00Z,39365
+2021-07-11T22:00Z,41355
+2021-07-11T23:00Z,43378
+2021-07-12,44875
+2021-07-12T01:00Z,46277
+2021-07-12T02:00Z,46681
+2021-07-12T03:00Z,45408
+2021-07-12T04:00Z,43988
+2021-07-12T05:00Z,42056
+2021-07-12T06:00Z,38907
+2021-07-12T07:00Z,35657
+2021-07-12T08:00Z,32932
+2021-07-12T09:00Z,30977
+2021-07-12T10:00Z,29821
+2021-07-12T11:00Z,29133
+2021-07-12T12:00Z,29109
+2021-07-12T13:00Z,29762
+2021-07-12T14:00Z,31392
+2021-07-12T15:00Z,33415
+2021-07-12T16:00Z,34561
+2021-07-12T17:00Z,35831
+2021-07-12T18:00Z,37158
+2021-07-12T19:00Z,38448
+2021-07-12T20:00Z,39996
+2021-07-12T21:00Z,41878
+2021-07-12T22:00Z,43792
+2021-07-12T23:00Z,45659
+2021-07-13,46904
+2021-07-13T01:00Z,47633
+2021-07-13T02:00Z,47412
+2021-07-13T03:00Z,45995
+2021-07-13T04:00Z,44512
+2021-07-13T05:00Z,42572
+2021-07-13T06:00Z,39412
+2021-07-13T07:00Z,36224
+2021-07-13T08:00Z,34066
+2021-07-13T09:00Z,32395
+2021-07-13T10:00Z,30973
+2021-07-13T11:00Z,30310
+2021-07-13T12:00Z,30390
+2021-07-13T13:00Z,31062
+2021-07-13T14:00Z,31922
+2021-07-13T15:00Z,33818
+2021-07-13T16:00Z,35082
+2021-07-13T17:00Z,36319
+2021-07-13T18:00Z,37542
+2021-07-13T19:00Z,38693
+2021-07-13T20:00Z,40010
+2021-07-13T21:00Z,41562
+2021-07-13T22:00Z,43168
+2021-07-13T23:00Z,44976
+2021-07-14,46214
+2021-07-14T01:00Z,47096
+2021-07-14T02:00Z,46874
+2021-07-14T03:00Z,45444
+2021-07-14T04:00Z,44244
+2021-07-14T05:00Z,42459
+2021-07-14T06:00Z,39779
+2021-07-14T07:00Z,36665
+2021-07-14T08:00Z,34340
+2021-07-14T09:00Z,32728
+2021-07-14T10:00Z,31301
+2021-07-14T11:00Z,30721
+2021-07-14T12:00Z,30770
+2021-07-14T13:00Z,31493
+2021-07-14T14:00Z,32142
+2021-07-14T15:00Z,33758
+2021-07-14T16:00Z,35193
+2021-07-14T17:00Z,36694
+2021-07-14T18:00Z,37081
+2021-07-14T19:00Z,38009
+2021-07-14T20:00Z,39632
+2021-07-14T21:00Z,41603
+2021-07-14T22:00Z,43111
+2021-07-14T23:00Z,44822
+2021-07-15,45828
+2021-07-15T01:00Z,46874
+2021-07-15T02:00Z,46920
+2021-07-15T03:00Z,45640
+2021-07-15T04:00Z,44184
+2021-07-15T05:00Z,42597
+2021-07-15T06:00Z,39452
+2021-07-15T07:00Z,36377
+2021-07-15T08:00Z,34166
+2021-07-15T09:00Z,32272
+2021-07-15T10:00Z,31084
+2021-07-15T11:00Z,30486
+2021-07-15T12:00Z,30451
+2021-07-15T13:00Z,31171
+2021-07-15T14:00Z,31978
+2021-07-15T15:00Z,33736
+2021-07-15T16:00Z,34976
+2021-07-15T17:00Z,35691
+2021-07-15T18:00Z,36605
+2021-07-15T19:00Z,37716
+2021-07-15T20:00Z,38916
+2021-07-15T21:00Z,40582
+2021-07-15T22:00Z,42604
+2021-07-15T23:00Z,44472
+2021-07-16,45562
+2021-07-16T01:00Z,46403
+2021-07-16T02:00Z,45871
+2021-07-16T03:00Z,44521
+2021-07-16T04:00Z,43198
+2021-07-16T05:00Z,41703
+2021-07-16T06:00Z,38788
+2021-07-16T07:00Z,35586
+2021-07-16T08:00Z,33138
+2021-07-16T09:00Z,31262
+2021-07-16T10:00Z,30012
+2021-07-16T11:00Z,29384
+2021-07-16T12:00Z,29333
+2021-07-16T13:00Z,30258
+2021-07-16T14:00Z,31170
+2021-07-16T15:00Z,32723
+2021-07-16T16:00Z,33943
+2021-07-16T17:00Z,34683
+2021-07-16T18:00Z,35642
+2021-07-16T19:00Z,36596
+2021-07-16T20:00Z,37882
+2021-07-16T21:00Z,39797
+2021-07-16T22:00Z,41593
+2021-07-16T23:00Z,43285
+2021-07-17,44493
+2021-07-17T01:00Z,45446
+2021-07-17T02:00Z,45414
+2021-07-17T03:00Z,44265
+2021-07-17T04:00Z,43152
+2021-07-17T05:00Z,41748
+2021-07-17T06:00Z,38656
+2021-07-17T07:00Z,35582
+2021-07-17T08:00Z,33077
+2021-07-17T09:00Z,31741
+2021-07-17T10:00Z,30477
+2021-07-17T11:00Z,29486
+2021-07-17T12:00Z,29047
+2021-07-17T13:00Z,29048
+2021-07-17T14:00Z,29050
+2021-07-17T15:00Z,30525
+2021-07-17T16:00Z,31547
+2021-07-17T17:00Z,32280
+2021-07-17T18:00Z,33411
+2021-07-17T19:00Z,34955
+2021-07-17T20:00Z,36631
+2021-07-17T21:00Z,38196
+2021-07-17T22:00Z,40473
+2021-07-17T23:00Z,42335
+2021-07-18,44090
+2021-07-18T01:00Z,45174
+2021-07-18T02:00Z,45230
+2021-07-18T03:00Z,44172
+2021-07-18T04:00Z,42894
+2021-07-18T05:00Z,41260
+2021-07-18T06:00Z,38603
+2021-07-18T07:00Z,36194
+2021-07-18T08:00Z,33898
+2021-07-18T09:00Z,31824
+2021-07-18T10:00Z,30507
+2021-07-18T11:00Z,29751
+2021-07-18T12:00Z,29317
+2021-07-18T13:00Z,29356
+2021-07-18T14:00Z,29075
+2021-07-18T15:00Z,29680
+2021-07-18T16:00Z,30276
+2021-07-18T17:00Z,31637
+2021-07-18T18:00Z,32819
+2021-07-18T19:00Z,34576
+2021-07-18T20:00Z,36969
+2021-07-18T21:00Z,38981
+2021-07-18T22:00Z,41341
+2021-07-18T23:00Z,43516
+2021-07-19,45192
+2021-07-19T01:00Z,46476
+2021-07-19T02:00Z,46686
+2021-07-19T03:00Z,45691
+2021-07-19T04:00Z,44344
+2021-07-19T05:00Z,42683
+2021-07-19T06:00Z,39970
+2021-07-19T07:00Z,36730
+2021-07-19T08:00Z,34175
+2021-07-19T09:00Z,32680
+2021-07-19T10:00Z,31605
+2021-07-19T11:00Z,31139
+2021-07-19T12:00Z,30990
+2021-07-19T13:00Z,31614
+2021-07-19T14:00Z,32544
+2021-07-19T15:00Z,34693
+2021-07-19T16:00Z,36584
+2021-07-19T17:00Z,38076
+2021-07-19T18:00Z,39565
+2021-07-19T19:00Z,41574
+2021-07-19T20:00Z,43719
+2021-07-19T21:00Z,46340
+2021-07-19T22:00Z,48893
+2021-07-19T23:00Z,50839
+2021-07-20,51756
+2021-07-20T01:00Z,52149
+2021-07-20T02:00Z,51583
+2021-07-20T03:00Z,49766
+2021-07-20T04:00Z,47738
+2021-07-20T05:00Z,45246
+2021-07-20T06:00Z,41577
+2021-07-20T07:00Z,38128
+2021-07-20T08:00Z,35430
+2021-07-20T09:00Z,33433
+2021-07-20T10:00Z,32090
+2021-07-20T11:00Z,31346
+2021-07-20T12:00Z,31229
+2021-07-20T13:00Z,31782
+2021-07-20T14:00Z,32617
+2021-07-20T15:00Z,34650
+2021-07-20T16:00Z,36247
+2021-07-20T17:00Z,37506
+2021-07-20T18:00Z,38873
+2021-07-20T19:00Z,40646
+2021-07-20T20:00Z,42363
+2021-07-20T21:00Z,44348
+2021-07-20T22:00Z,46271
+2021-07-20T23:00Z,48359
+2021-07-21,49918
+2021-07-21T01:00Z,50815
+2021-07-21T02:00Z,50698
+2021-07-21T03:00Z,48956
+2021-07-21T04:00Z,47171
+2021-07-21T05:00Z,44959
+2021-07-21T06:00Z,41361
+2021-07-21T07:00Z,38017
+2021-07-21T08:00Z,35563
+2021-07-21T09:00Z,33732
+2021-07-21T10:00Z,32432
+2021-07-21T11:00Z,31810
+2021-07-21T12:00Z,31729
+2021-07-21T13:00Z,32343
+2021-07-21T14:00Z,32995
+2021-07-21T15:00Z,34419
+2021-07-21T16:00Z,35978
+2021-07-21T17:00Z,37194
+2021-07-21T18:00Z,38950
+2021-07-21T19:00Z,40487
+2021-07-21T20:00Z,42540
+2021-07-21T21:00Z,44922
+2021-07-21T22:00Z,46970
+2021-07-21T23:00Z,48950
+2021-07-22,50627
+2021-07-22T01:00Z,51367
+2021-07-22T02:00Z,51125
+2021-07-22T03:00Z,49369
+2021-07-22T04:00Z,47545
+2021-07-22T05:00Z,45433
+2021-07-22T06:00Z,41731
+2021-07-22T07:00Z,38368
+2021-07-22T08:00Z,35613
+2021-07-22T09:00Z,34020
+2021-07-22T10:00Z,32487
+2021-07-22T11:00Z,31826
+2021-07-22T12:00Z,31428
+2021-07-22T13:00Z,32084
+2021-07-22T14:00Z,32985
+2021-07-22T15:00Z,34601
+2021-07-22T16:00Z,36560
+2021-07-22T17:00Z,37719
+2021-07-22T18:00Z,38606
+2021-07-22T19:00Z,40215
+2021-07-22T20:00Z,41912
+2021-07-22T21:00Z,43987
+2021-07-22T22:00Z,45880
+2021-07-22T23:00Z,47984
+2021-07-23,49172
+2021-07-23T01:00Z,49771
+2021-07-23T02:00Z,48777
+2021-07-23T03:00Z,47073
+2021-07-23T04:00Z,45821
+2021-07-23T05:00Z,43893
+2021-07-23T06:00Z,40868
+2021-07-23T07:00Z,37492
+2021-07-23T08:00Z,35119
+2021-07-23T09:00Z,33171
+2021-07-23T10:00Z,31679
+2021-07-23T11:00Z,30960
+2021-07-23T12:00Z,30981
+2021-07-23T13:00Z,31767
+2021-07-23T14:00Z,32734
+2021-07-23T15:00Z,34283
+2021-07-23T16:00Z,36015
+2021-07-23T17:00Z,37137
+2021-07-23T18:00Z,38063
+2021-07-23T19:00Z,39288
+2021-07-23T20:00Z,41086
+2021-07-23T21:00Z,43354
+2021-07-23T22:00Z,45588
+2021-07-23T23:00Z,47416
+2021-07-24,48696
+2021-07-24T01:00Z,49468
+2021-07-24T02:00Z,48791
+2021-07-24T03:00Z,47038
+2021-07-24T04:00Z,45368
+2021-07-24T05:00Z,43273
+2021-07-24T06:00Z,40238
+2021-07-24T07:00Z,37229
+2021-07-24T08:00Z,34477
+2021-07-24T09:00Z,32838
+2021-07-24T10:00Z,31625
+2021-07-24T11:00Z,30502
+2021-07-24T12:00Z,30043
+2021-07-24T13:00Z,30118
+2021-07-24T14:00Z,30167
+2021-07-24T15:00Z,30969
+2021-07-24T16:00Z,31738
+2021-07-24T17:00Z,32615
+2021-07-24T18:00Z,33409
+2021-07-24T19:00Z,34952
+2021-07-24T20:00Z,36285
+2021-07-24T21:00Z,37736
+2021-07-24T22:00Z,39557
+2021-07-24T23:00Z,41067
+2021-07-25,42538
+2021-07-25T01:00Z,43551
+2021-07-25T02:00Z,43757
+2021-07-25T03:00Z,42843
+2021-07-25T04:00Z,41870
+2021-07-25T05:00Z,40391
+2021-07-25T06:00Z,37972
+2021-07-25T07:00Z,35142
+2021-07-25T08:00Z,33040
+2021-07-25T09:00Z,31146
+2021-07-25T10:00Z,29802
+2021-07-25T11:00Z,28783
+2021-07-25T12:00Z,28294
+2021-07-25T13:00Z,28138
+2021-07-25T14:00Z,27911
+2021-07-25T15:00Z,28966
+2021-07-25T16:00Z,29767
+2021-07-25T17:00Z,30463
+2021-07-25T18:00Z,31578
+2021-07-25T19:00Z,32787
+2021-07-25T20:00Z,33756
+2021-07-25T21:00Z,35706
+2021-07-25T22:00Z,38111
+2021-07-25T23:00Z,39869
+2021-07-26,41296
+2021-07-26T01:00Z,42292
+2021-07-26T02:00Z,42624
+2021-07-26T03:00Z,41664
+2021-07-26T04:00Z,41073
+2021-07-26T05:00Z,39666
+2021-07-26T06:00Z,36913
+2021-07-26T07:00Z,33977
+2021-07-26T08:00Z,31884
+2021-07-26T09:00Z,30346
+2021-07-26T10:00Z,29445
+2021-07-26T11:00Z,29225
+2021-07-26T12:00Z,29142
+2021-07-26T13:00Z,29886
+2021-07-26T14:00Z,31263
+2021-07-26T15:00Z,32889
+2021-07-26T16:00Z,34608
+2021-07-26T17:00Z,35934
+2021-07-26T18:00Z,36483
+2021-07-26T19:00Z,36963
+2021-07-26T20:00Z,37765
+2021-07-26T21:00Z,38370
+2021-07-26T22:00Z,39312
+2021-07-26T23:00Z,40278
+2021-07-27,41195
+2021-07-27T01:00Z,41899
+2021-07-27T02:00Z,41941
+2021-07-27T03:00Z,41058
+2021-07-27T04:00Z,40686
+2021-07-27T05:00Z,39443
+2021-07-27T06:00Z,36920
+2021-07-27T07:00Z,34219
+2021-07-27T08:00Z,32505
+2021-07-27T09:00Z,31146
+2021-07-27T10:00Z,30322
+2021-07-27T11:00Z,30040
+2021-07-27T12:00Z,29864
+2021-07-27T13:00Z,30563
+2021-07-27T14:00Z,31879
+2021-07-27T15:00Z,33656
+2021-07-27T16:00Z,34840
+2021-07-27T17:00Z,35717
+2021-07-27T18:00Z,36500
+2021-07-27T19:00Z,38065
+2021-07-27T20:00Z,39432
+2021-07-27T21:00Z,40958
+2021-07-27T22:00Z,43176
+2021-07-27T23:00Z,45380
+2021-07-28,47034
+2021-07-28T01:00Z,48129
+2021-07-28T02:00Z,47998
+2021-07-28T03:00Z,46538
+2021-07-28T04:00Z,45152
+2021-07-28T05:00Z,43178
+2021-07-28T06:00Z,39863
+2021-07-28T07:00Z,36376
+2021-07-28T08:00Z,34033
+2021-07-28T09:00Z,32137
+2021-07-28T10:00Z,31016
+2021-07-28T11:00Z,30334
+2021-07-28T12:00Z,30189
+2021-07-28T13:00Z,30984
+2021-07-28T14:00Z,31875
+2021-07-28T15:00Z,33676
+2021-07-28T16:00Z,35753
+2021-07-28T17:00Z,36494
+2021-07-28T18:00Z,37765
+2021-07-28T19:00Z,39466
+2021-07-28T20:00Z,41169
+2021-07-28T21:00Z,43535
+2021-07-28T22:00Z,45828
+2021-07-28T23:00Z,48280
+2021-07-29,49897
+2021-07-29T01:00Z,50617
+2021-07-29T02:00Z,50260
+2021-07-29T03:00Z,48505
+2021-07-29T04:00Z,46783
+2021-07-29T05:00Z,44557
+2021-07-29T06:00Z,41126
+2021-07-29T07:00Z,37607
+2021-07-29T08:00Z,35093
+2021-07-29T09:00Z,33380
+2021-07-29T10:00Z,32247
+2021-07-29T11:00Z,31193
+2021-07-29T12:00Z,30965
+2021-07-29T13:00Z,31730
+2021-07-29T14:00Z,32202
+2021-07-29T15:00Z,33687
+2021-07-29T16:00Z,35674
+2021-07-29T17:00Z,36795
+2021-07-29T18:00Z,38184
+2021-07-29T19:00Z,40186
+2021-07-29T20:00Z,42509
+2021-07-29T21:00Z,45284
+2021-07-29T22:00Z,47540
+2021-07-29T23:00Z,49734
+2021-07-30,50817
+2021-07-30T01:00Z,51558
+2021-07-30T02:00Z,50910
+2021-07-30T03:00Z,49299
+2021-07-30T04:00Z,47598
+2021-07-30T05:00Z,45295
+2021-07-30T06:00Z,41625
+2021-07-30T07:00Z,38035
+2021-07-30T08:00Z,35591
+2021-07-30T09:00Z,33860
+2021-07-30T10:00Z,32600
+2021-07-30T11:00Z,31481
+2021-07-30T12:00Z,31249
+2021-07-30T13:00Z,32035
+2021-07-30T14:00Z,32266
+2021-07-30T15:00Z,33375
+2021-07-30T16:00Z,35315
+2021-07-30T17:00Z,36297
+2021-07-30T18:00Z,37703
+2021-07-30T19:00Z,39496
+2021-07-30T20:00Z,41845
+2021-07-30T21:00Z,44578
+2021-07-30T22:00Z,46992
+2021-07-30T23:00Z,49201
+2021-07-31,50185
+2021-07-31T01:00Z,50071
+2021-07-31T02:00Z,49027
+2021-07-31T03:00Z,47205
+2021-07-31T04:00Z,45696
+2021-07-31T05:00Z,43480
+2021-07-31T06:00Z,40347
+2021-07-31T07:00Z,37516
+2021-07-31T08:00Z,35375
+2021-07-31T09:00Z,33156
+2021-07-31T10:00Z,31909
+2021-07-31T11:00Z,30950
+2021-07-31T12:00Z,30494
+2021-07-31T13:00Z,30113
+2021-07-31T14:00Z,29931
+2021-07-31T15:00Z,30965
+2021-07-31T16:00Z,32402
+2021-07-31T17:00Z,33376
+2021-07-31T18:00Z,34496
+2021-07-31T19:00Z,35533
+2021-07-31T20:00Z,37148
+2021-07-31T21:00Z,38649
+2021-07-31T22:00Z,40624
+2021-07-31T23:00Z,42534
+2021-08-01,44134
+2021-08-01T01:00Z,45413
+2021-08-01T02:00Z,45734
+2021-08-01T03:00Z,44524
+2021-08-01T04:00Z,43014
+2021-08-01T05:00Z,41074
+2021-08-01T06:00Z,38120
+2021-08-01T07:00Z,35373
+2021-08-01T08:00Z,32977
+2021-08-01T09:00Z,31206
+2021-08-01T10:00Z,29771
+2021-08-01T11:00Z,28623
+2021-08-01T12:00Z,28030
+2021-08-01T13:00Z,28060
+2021-08-01T14:00Z,27546
+2021-08-01T15:00Z,27914
+2021-08-01T16:00Z,28921
+2021-08-01T17:00Z,29757
+2021-08-01T18:00Z,30993
+2021-08-01T19:00Z,32823
+2021-08-01T20:00Z,34505
+2021-08-01T21:00Z,36626
+2021-08-01T22:00Z,39072
+2021-08-01T23:00Z,41167
+2021-08-02,43106
+2021-08-02T01:00Z,44930
+2021-08-02T02:00Z,45523
+2021-08-02T03:00Z,44265
+2021-08-02T04:00Z,42603
+2021-08-02T05:00Z,40407
+2021-08-02T06:00Z,37213
+2021-08-02T07:00Z,33985
+2021-08-02T08:00Z,31799
+2021-08-02T09:00Z,30662
+2021-08-02T10:00Z,29400
+2021-08-02T11:00Z,28744
+2021-08-02T12:00Z,28221
+2021-08-02T13:00Z,29110
+2021-08-02T14:00Z,30780
+2021-08-02T15:00Z,32857
+2021-08-02T16:00Z,34323
+2021-08-02T17:00Z,35059
+2021-08-02T18:00Z,35972
+2021-08-02T19:00Z,37731
+2021-08-02T20:00Z,39940
+2021-08-02T21:00Z,42360
+2021-08-02T22:00Z,44708
+2021-08-02T23:00Z,47195
+2021-08-03,48892
+2021-08-03T01:00Z,50120
+2021-08-03T02:00Z,49894
+2021-08-03T03:00Z,48092
+2021-08-03T04:00Z,46182
+2021-08-03T05:00Z,43668
+2021-08-03T06:00Z,39783
+2021-08-03T07:00Z,36332
+2021-08-03T08:00Z,33568
+2021-08-03T09:00Z,31615
+2021-08-03T10:00Z,30760
+2021-08-03T11:00Z,30380
+2021-08-03T12:00Z,30202
+2021-08-03T13:00Z,30456
+2021-08-03T14:00Z,31507
+2021-08-03T15:00Z,33238
+2021-08-03T16:00Z,35141
+2021-08-03T17:00Z,35843
+2021-08-03T18:00Z,36643
+2021-08-03T19:00Z,38210
+2021-08-03T20:00Z,40014
+2021-08-03T21:00Z,42913
+2021-08-03T22:00Z,45940
+2021-08-03T23:00Z,48504
+2021-08-04,50020
+2021-08-04T01:00Z,51206
+2021-08-04T02:00Z,51104
+2021-08-04T03:00Z,49464
+2021-08-04T04:00Z,47412
+2021-08-04T05:00Z,44702
+2021-08-04T06:00Z,41413
+2021-08-04T07:00Z,37470
+2021-08-04T08:00Z,35082
+2021-08-04T09:00Z,33004
+2021-08-04T10:00Z,31722
+2021-08-04T11:00Z,31033
+2021-08-04T12:00Z,30703
+2021-08-04T13:00Z,31211
+2021-08-04T14:00Z,32331
+2021-08-04T15:00Z,33636
+2021-08-04T16:00Z,34613
+2021-08-04T17:00Z,35642
+2021-08-04T18:00Z,37128
+2021-08-04T19:00Z,38837
+2021-08-04T20:00Z,40907
+2021-08-04T21:00Z,43648
+2021-08-04T22:00Z,45901
+2021-08-04T23:00Z,47960
+2021-08-05,49487
+2021-08-05T01:00Z,50348
+2021-08-05T02:00Z,50015
+2021-08-05T03:00Z,48268
+2021-08-05T04:00Z,46445
+2021-08-05T05:00Z,43914
+2021-08-05T06:00Z,40592
+2021-08-05T07:00Z,37175
+2021-08-05T08:00Z,34342
+2021-08-05T09:00Z,32837
+2021-08-05T10:00Z,31318
+2021-08-05T11:00Z,30859
+2021-08-05T12:00Z,30886
+2021-08-05T13:00Z,31331
+2021-08-05T14:00Z,32238
+2021-08-05T15:00Z,33492
+2021-08-05T16:00Z,35072
+2021-08-05T17:00Z,36053
+2021-08-05T18:00Z,37154
+2021-08-05T19:00Z,38570
+2021-08-05T20:00Z,39876
+2021-08-05T21:00Z,41486
+2021-08-05T22:00Z,43314
+2021-08-05T23:00Z,44747
+2021-08-06,46379
+2021-08-06T01:00Z,47579
+2021-08-06T02:00Z,47674
+2021-08-06T03:00Z,46172
+2021-08-06T04:00Z,44508
+2021-08-06T05:00Z,42481
+2021-08-06T06:00Z,39117
+2021-08-06T07:00Z,35890
+2021-08-06T08:00Z,34082
+2021-08-06T09:00Z,32662
+2021-08-06T10:00Z,31252
+2021-08-06T11:00Z,30491
+2021-08-06T12:00Z,30636
+2021-08-06T13:00Z,31485
+2021-08-06T14:00Z,32469
+2021-08-06T15:00Z,33586
+2021-08-06T16:00Z,34896
+2021-08-06T17:00Z,35937
+2021-08-06T18:00Z,36580
+2021-08-06T19:00Z,37072
+2021-08-06T20:00Z,38256
+2021-08-06T21:00Z,40105
+2021-08-06T22:00Z,42018
+2021-08-06T23:00Z,43750
+2021-08-07,45060
+2021-08-07T01:00Z,46114
+2021-08-07T02:00Z,45762
+2021-08-07T03:00Z,44395
+2021-08-07T04:00Z,43090
+2021-08-07T05:00Z,41065
+2021-08-07T06:00Z,38291
+2021-08-07T07:00Z,35331
+2021-08-07T08:00Z,33130
+2021-08-07T09:00Z,31255
+2021-08-07T10:00Z,29843
+2021-08-07T11:00Z,28901
+2021-08-07T12:00Z,28633
+2021-08-07T13:00Z,28313
+2021-08-07T14:00Z,28451
+2021-08-07T15:00Z,29115
+2021-08-07T16:00Z,30640
+2021-08-07T17:00Z,31495
+2021-08-07T18:00Z,32253
+2021-08-07T19:00Z,33165
+2021-08-07T20:00Z,34206
+2021-08-07T21:00Z,36079
+2021-08-07T22:00Z,38376
+2021-08-07T23:00Z,40486
+2021-08-08,42282
+2021-08-08T01:00Z,43282
+2021-08-08T02:00Z,43221
+2021-08-08T03:00Z,41765
+2021-08-08T04:00Z,40544
+2021-08-08T05:00Z,38945
+2021-08-08T06:00Z,36545
+2021-08-08T07:00Z,33901
+2021-08-08T08:00Z,31644
+2021-08-08T09:00Z,30218
+2021-08-08T10:00Z,29030
+2021-08-08T11:00Z,28201
+2021-08-08T12:00Z,27745
+2021-08-08T13:00Z,27647
+2021-08-08T14:00Z,27395
+2021-08-08T15:00Z,27464
+2021-08-08T16:00Z,28567
+2021-08-08T17:00Z,29245
+2021-08-08T18:00Z,29428
+2021-08-08T19:00Z,30457
+2021-08-08T20:00Z,32097
+2021-08-08T21:00Z,34141
+2021-08-08T22:00Z,36905
+2021-08-08T23:00Z,39823
+2021-08-09,41931
+2021-08-09T01:00Z,43655
+2021-08-09T02:00Z,44138
+2021-08-09T03:00Z,42947
+2021-08-09T04:00Z,41652
+2021-08-09T05:00Z,39695
+2021-08-09T06:00Z,36593
+2021-08-09T07:00Z,33653
+2021-08-09T08:00Z,31926
+2021-08-09T09:00Z,30406
+2021-08-09T10:00Z,29267
+2021-08-09T11:00Z,28637
+2021-08-09T12:00Z,28977
+2021-08-09T13:00Z,29910
+2021-08-09T14:00Z,30922
+2021-08-09T15:00Z,32809
+2021-08-09T16:00Z,34096
+2021-08-09T17:00Z,34676
+2021-08-09T18:00Z,35381
+2021-08-09T19:00Z,36872
+2021-08-09T20:00Z,38787
+2021-08-09T21:00Z,40911
+2021-08-09T22:00Z,43697
+2021-08-09T23:00Z,45873
+2021-08-10,47352
+2021-08-10T01:00Z,48444
+2021-08-10T02:00Z,48305
+2021-08-10T03:00Z,46489
+2021-08-10T04:00Z,44824
+2021-08-10T05:00Z,42408
+2021-08-10T06:00Z,38792
+2021-08-10T07:00Z,35396
+2021-08-10T08:00Z,33132
+2021-08-10T09:00Z,31921
+2021-08-10T10:00Z,30315
+2021-08-10T11:00Z,30098
+2021-08-10T12:00Z,29939
+2021-08-10T13:00Z,30932
+2021-08-10T14:00Z,32376
+2021-08-10T15:00Z,33519
+2021-08-10T16:00Z,35207
+2021-08-10T17:00Z,36100
+2021-08-10T18:00Z,37253
+2021-08-10T19:00Z,38858
+2021-08-10T20:00Z,41015
+2021-08-10T21:00Z,43431
+2021-08-10T22:00Z,45921
+2021-08-10T23:00Z,48752
+2021-08-11,50659
+2021-08-11T01:00Z,51632
+2021-08-11T02:00Z,51270
+2021-08-11T03:00Z,49393
+2021-08-11T04:00Z,47699
+2021-08-11T05:00Z,44943
+2021-08-11T06:00Z,41154
+2021-08-11T07:00Z,37475
+2021-08-11T08:00Z,34901
+2021-08-11T09:00Z,33425
+2021-08-11T10:00Z,32207
+2021-08-11T11:00Z,31373
+2021-08-11T12:00Z,31570
+2021-08-11T13:00Z,32481
+2021-08-11T14:00Z,33546
+2021-08-11T15:00Z,34821
+2021-08-11T16:00Z,36880
+2021-08-11T17:00Z,37977
+2021-08-11T18:00Z,39946
+2021-08-11T19:00Z,42095
+2021-08-11T20:00Z,44327
+2021-08-11T21:00Z,46816
+2021-08-11T22:00Z,48703
+2021-08-11T23:00Z,49998
+2021-08-12,50588
+2021-08-12T01:00Z,50523
+2021-08-12T02:00Z,49254
+2021-08-12T03:00Z,47665
+2021-08-12T04:00Z,46305
+2021-08-12T05:00Z,43812
+2021-08-12T06:00Z,40388
+2021-08-12T07:00Z,36973
+2021-08-12T08:00Z,34970
+2021-08-12T09:00Z,33093
+2021-08-12T10:00Z,32254
+2021-08-12T11:00Z,31413
+2021-08-12T12:00Z,31541
+2021-08-12T13:00Z,32183
+2021-08-12T14:00Z,33611
+2021-08-12T15:00Z,35107
+2021-08-12T16:00Z,37124
+2021-08-12T17:00Z,37829
+2021-08-12T18:00Z,39667
+2021-08-12T19:00Z,41565
+2021-08-12T20:00Z,43695
+2021-08-12T21:00Z,46111
+2021-08-12T22:00Z,48003
+2021-08-12T23:00Z,50118
+2021-08-13,51653
+2021-08-13T01:00Z,52032
+2021-08-13T02:00Z,50903
+2021-08-13T03:00Z,48879
+2021-08-13T04:00Z,47049
+2021-08-13T05:00Z,44735
+2021-08-13T06:00Z,41180
+2021-08-13T07:00Z,37926
+2021-08-13T08:00Z,35094
+2021-08-13T09:00Z,32998
+2021-08-13T10:00Z,31229
+2021-08-13T11:00Z,30465
+2021-08-13T12:00Z,30346
+2021-08-13T13:00Z,31252
+2021-08-13T14:00Z,32585
+2021-08-13T15:00Z,33500
+2021-08-13T16:00Z,35206
+2021-08-13T17:00Z,36223
+2021-08-13T18:00Z,37663
+2021-08-13T19:00Z,39442
+2021-08-13T20:00Z,40662
+2021-08-13T21:00Z,42895
+2021-08-13T22:00Z,45093
+2021-08-13T23:00Z,47093
+2021-08-14,48420
+2021-08-14T01:00Z,48963
+2021-08-14T02:00Z,48091
+2021-08-14T03:00Z,46033
+2021-08-14T04:00Z,44577
+2021-08-14T05:00Z,42633
+2021-08-14T06:00Z,39814
+2021-08-14T07:00Z,36890
+2021-08-14T08:00Z,34551
+2021-08-14T09:00Z,32502
+2021-08-14T10:00Z,30987
+2021-08-14T11:00Z,30233
+2021-08-14T12:00Z,29814
+2021-08-14T13:00Z,30093
+2021-08-14T14:00Z,30894
+2021-08-14T15:00Z,31573
+2021-08-14T16:00Z,32650
+2021-08-14T17:00Z,33600
+2021-08-14T18:00Z,34634
+2021-08-14T19:00Z,36808
+2021-08-14T20:00Z,39195
+2021-08-14T21:00Z,41817
+2021-08-14T22:00Z,43535
+2021-08-14T23:00Z,45092
+2021-08-15,46455
+2021-08-15T01:00Z,46510
+2021-08-15T02:00Z,46110
+2021-08-15T03:00Z,44865
+2021-08-15T04:00Z,43647
+2021-08-15T05:00Z,41579
+2021-08-15T06:00Z,38754
+2021-08-15T07:00Z,36006
+2021-08-15T08:00Z,33761
+2021-08-15T09:00Z,31658
+2021-08-15T10:00Z,30140
+2021-08-15T11:00Z,29387
+2021-08-15T12:00Z,28816
+2021-08-15T13:00Z,28632
+2021-08-15T14:00Z,28414
+2021-08-15T15:00Z,29452
+2021-08-15T16:00Z,30652
+2021-08-15T17:00Z,31741
+2021-08-15T18:00Z,33064
+2021-08-15T19:00Z,34951
+2021-08-15T20:00Z,36422
+2021-08-15T21:00Z,39341
+2021-08-15T22:00Z,42204
+2021-08-15T23:00Z,45088
+2021-08-16,47010
+2021-08-16T01:00Z,48255
+2021-08-16T02:00Z,48335
+2021-08-16T03:00Z,46989
+2021-08-16T04:00Z,45710
+2021-08-16T05:00Z,43242
+2021-08-16T06:00Z,39800
+2021-08-16T07:00Z,36452
+2021-08-16T08:00Z,34274
+2021-08-16T09:00Z,32513
+2021-08-16T10:00Z,31128
+2021-08-16T11:00Z,30359
+2021-08-16T12:00Z,30494
+2021-08-16T13:00Z,31305
+2021-08-16T14:00Z,33169
+2021-08-16T15:00Z,35428
+2021-08-16T16:00Z,37454
+2021-08-16T17:00Z,39023
+2021-08-16T18:00Z,39969
+2021-08-16T19:00Z,41984
+2021-08-16T20:00Z,44207
+2021-08-16T21:00Z,46925
+2021-08-16T22:00Z,49465
+2021-08-16T23:00Z,51329
+2021-08-17,52624
+2021-08-17T01:00Z,52947
+2021-08-17T02:00Z,51926
+2021-08-17T03:00Z,50000
+2021-08-17T04:00Z,47989
+2021-08-17T05:00Z,45234
+2021-08-17T06:00Z,41333
+2021-08-17T07:00Z,37673
+2021-08-17T08:00Z,35405
+2021-08-17T09:00Z,33435
+2021-08-17T10:00Z,32466
+2021-08-17T11:00Z,31361
+2021-08-17T12:00Z,31245
+2021-08-17T13:00Z,32338
+2021-08-17T14:00Z,33948
+2021-08-17T15:00Z,35383
+2021-08-17T16:00Z,37033
+2021-08-17T17:00Z,38281
+2021-08-17T18:00Z,39118
+2021-08-17T19:00Z,40313
+2021-08-17T20:00Z,41742
+2021-08-17T21:00Z,43196
+2021-08-17T22:00Z,45091
+2021-08-17T23:00Z,46718
+2021-08-18,47820
+2021-08-18T01:00Z,48091
+2021-08-18T02:00Z,47409
+2021-08-18T03:00Z,45834
+2021-08-18T04:00Z,44342
+2021-08-18T05:00Z,41859
+2021-08-18T06:00Z,38372
+2021-08-18T07:00Z,35355
+2021-08-18T08:00Z,33054
+2021-08-18T09:00Z,31313
+2021-08-18T10:00Z,30335
+2021-08-18T11:00Z,29892
+2021-08-18T12:00Z,29952
+2021-08-18T13:00Z,30742
+2021-08-18T14:00Z,32718
+2021-08-18T15:00Z,33899
+2021-08-18T16:00Z,35592
+2021-08-18T17:00Z,36352
+2021-08-18T18:00Z,36673
+2021-08-18T19:00Z,36688
+2021-08-18T20:00Z,36719
+2021-08-18T21:00Z,37087
+2021-08-18T22:00Z,38063
+2021-08-18T23:00Z,39043
+2021-08-19,39924
+2021-08-19T01:00Z,40144
+2021-08-19T02:00Z,40191
+2021-08-19T03:00Z,40085
+2021-08-19T04:00Z,39823
+2021-08-19T05:00Z,38420
+2021-08-19T06:00Z,35696
+2021-08-19T07:00Z,33093
+2021-08-19T08:00Z,31143
+2021-08-19T09:00Z,29837
+2021-08-19T10:00Z,29030
+2021-08-19T11:00Z,28391
+2021-08-19T12:00Z,28631
+2021-08-19T13:00Z,29832
+2021-08-19T14:00Z,31696
+2021-08-19T15:00Z,32981
+2021-08-19T16:00Z,34319
+2021-08-19T17:00Z,35211
+2021-08-19T18:00Z,35499
+2021-08-19T19:00Z,35803
+2021-08-19T20:00Z,36152
+2021-08-19T21:00Z,36857
+2021-08-19T22:00Z,38508
+2021-08-19T23:00Z,40349
+2021-08-20,41438
+2021-08-20T01:00Z,41969
+2021-08-20T02:00Z,41594
+2021-08-20T03:00Z,40769
+2021-08-20T04:00Z,40255
+2021-08-20T05:00Z,38503
+2021-08-20T06:00Z,35699
+2021-08-20T07:00Z,32968
+2021-08-20T08:00Z,30931
+2021-08-20T09:00Z,29635
+2021-08-20T10:00Z,28554
+2021-08-20T11:00Z,27890
+2021-08-20T12:00Z,28127
+2021-08-20T13:00Z,29333
+2021-08-20T14:00Z,31317
+2021-08-20T15:00Z,32799
+2021-08-20T16:00Z,33912
+2021-08-20T17:00Z,34093
+2021-08-20T18:00Z,34115
+2021-08-20T19:00Z,34376
+2021-08-20T20:00Z,34686
+2021-08-20T21:00Z,35716
+2021-08-20T22:00Z,37414
+2021-08-20T23:00Z,39225
+2021-08-21,40533
+2021-08-21T01:00Z,41051
+2021-08-21T02:00Z,40694
+2021-08-21T03:00Z,39970
+2021-08-21T04:00Z,39309
+2021-08-21T05:00Z,37633
+2021-08-21T06:00Z,35230
+2021-08-21T07:00Z,32764
+2021-08-21T08:00Z,30873
+2021-08-21T09:00Z,29155
+2021-08-21T10:00Z,28024
+2021-08-21T11:00Z,27380
+2021-08-21T12:00Z,27227
+2021-08-21T13:00Z,27520
+2021-08-21T14:00Z,28273
+2021-08-21T15:00Z,28979
+2021-08-21T16:00Z,29911
+2021-08-21T17:00Z,30305
+2021-08-21T18:00Z,30228
+2021-08-21T19:00Z,30282
+2021-08-21T20:00Z,29986
+2021-08-21T21:00Z,29894
+2021-08-21T22:00Z,30498
+2021-08-21T23:00Z,31458
+2021-08-22,33304
+2021-08-22T01:00Z,34498
+2021-08-22T02:00Z,35635
+2021-08-22T03:00Z,35966
+2021-08-22T04:00Z,35752
+2021-08-22T05:00Z,34405
+2021-08-22T06:00Z,32316
+2021-08-22T07:00Z,30269
+2021-08-22T08:00Z,28813
+2021-08-22T09:00Z,27502
+2021-08-22T10:00Z,26512
+2021-08-22T11:00Z,25901
+2021-08-22T12:00Z,25643
+2021-08-22T13:00Z,25727
+2021-08-22T14:00Z,25915
+2021-08-22T15:00Z,26538
+2021-08-22T16:00Z,27706
+2021-08-22T17:00Z,28151
+2021-08-22T18:00Z,28161
+2021-08-22T19:00Z,27818
+2021-08-22T20:00Z,28147
+2021-08-22T21:00Z,28716
+2021-08-22T22:00Z,30035
+2021-08-22T23:00Z,32063
+2021-08-23,33908
+2021-08-23T01:00Z,35911
+2021-08-23T02:00Z,36997
+2021-08-23T03:00Z,36894
+2021-08-23T04:00Z,36676
+2021-08-23T05:00Z,35116
+2021-08-23T06:00Z,32593
+2021-08-23T07:00Z,30121
+2021-08-23T08:00Z,28286
+2021-08-23T09:00Z,27023
+2021-08-23T10:00Z,26150
+2021-08-23T11:00Z,25830
+2021-08-23T12:00Z,26229
+2021-08-23T13:00Z,27530
+2021-08-23T14:00Z,29470
+2021-08-23T15:00Z,30667
+2021-08-23T16:00Z,31753
+2021-08-23T17:00Z,32861
+2021-08-23T18:00Z,33234
+2021-08-23T19:00Z,33075
+2021-08-23T20:00Z,33400
+2021-08-23T21:00Z,34294
+2021-08-23T22:00Z,35778
+2021-08-23T23:00Z,37735
+2021-08-24,39527
+2021-08-24T01:00Z,40732
+2021-08-24T02:00Z,40914
+2021-08-24T03:00Z,40384
+2021-08-24T04:00Z,39751
+2021-08-24T05:00Z,37775
+2021-08-24T06:00Z,34643
+2021-08-24T07:00Z,31948
+2021-08-24T08:00Z,29740
+2021-08-24T09:00Z,28240
+2021-08-24T10:00Z,27217
+2021-08-24T11:00Z,26723
+2021-08-24T12:00Z,26969
+2021-08-24T13:00Z,28137
+2021-08-24T14:00Z,30025
+2021-08-24T15:00Z,30899
+2021-08-24T16:00Z,31921
+2021-08-24T17:00Z,32311
+2021-08-24T18:00Z,32999
+2021-08-24T19:00Z,33412
+2021-08-24T20:00Z,34125
+2021-08-24T21:00Z,35213
+2021-08-24T22:00Z,37231
+2021-08-24T23:00Z,39272
+2021-08-25,40992
+2021-08-25T01:00Z,42111
+2021-08-25T02:00Z,42107
+2021-08-25T03:00Z,41312
+2021-08-25T04:00Z,40499
+2021-08-25T05:00Z,38424
+2021-08-25T06:00Z,35237
+2021-08-25T07:00Z,32278
+2021-08-25T08:00Z,30454
+2021-08-25T09:00Z,28927
+2021-08-25T10:00Z,27956
+2021-08-25T11:00Z,27784
+2021-08-25T12:00Z,27552
+2021-08-25T13:00Z,28643
+2021-08-25T14:00Z,30275
+2021-08-25T15:00Z,31334
+2021-08-25T16:00Z,32516
+2021-08-25T17:00Z,33415
+2021-08-25T18:00Z,33883
+2021-08-25T19:00Z,34318
+2021-08-25T20:00Z,35529
+2021-08-25T21:00Z,37733
+2021-08-25T22:00Z,40395
+2021-08-25T23:00Z,42754
+2021-08-26,44997
+2021-08-26T01:00Z,45973
+2021-08-26T02:00Z,45837
+2021-08-26T03:00Z,44525
+2021-08-26T04:00Z,43197
+2021-08-26T05:00Z,40697
+2021-08-26T06:00Z,37181
+2021-08-26T07:00Z,34003
+2021-08-26T08:00Z,31737
+2021-08-26T09:00Z,29994
+2021-08-26T10:00Z,28959
+2021-08-26T11:00Z,28051
+2021-08-26T12:00Z,28054
+2021-08-26T13:00Z,29080
+2021-08-26T14:00Z,31018
+2021-08-26T15:00Z,32332
+2021-08-26T16:00Z,33712
+2021-08-26T17:00Z,34804
+2021-08-26T18:00Z,35335
+2021-08-26T19:00Z,36623
+2021-08-26T20:00Z,38744
+2021-08-26T21:00Z,41519
+2021-08-26T22:00Z,44319
+2021-08-26T23:00Z,46867
+2021-08-27,49208
+2021-08-27T01:00Z,50124
+2021-08-27T02:00Z,49518
+2021-08-27T03:00Z,47709
+2021-08-27T04:00Z,45845
+2021-08-27T05:00Z,42836
+2021-08-27T06:00Z,38939
+2021-08-27T07:00Z,35354
+2021-08-27T08:00Z,32831
+2021-08-27T09:00Z,30825
+2021-08-27T10:00Z,29245
+2021-08-27T11:00Z,28414
+2021-08-27T12:00Z,28658
+2021-08-27T13:00Z,29571
+2021-08-27T14:00Z,31058
+2021-08-27T15:00Z,31849
+2021-08-27T16:00Z,33916
+2021-08-27T17:00Z,34861
+2021-08-27T18:00Z,36377
+2021-08-27T19:00Z,38173
+2021-08-27T20:00Z,40534
+2021-08-27T21:00Z,43482
+2021-08-27T22:00Z,46600
+2021-08-27T23:00Z,49509
+2021-08-28,51601
+2021-08-28T01:00Z,52263
+2021-08-28T02:00Z,51397
+2021-08-28T03:00Z,49291
+2021-08-28T04:00Z,47045
+2021-08-28T05:00Z,44001
+2021-08-28T06:00Z,40233
+2021-08-28T07:00Z,36711
+2021-08-28T08:00Z,34141
+2021-08-28T09:00Z,31878
+2021-08-28T10:00Z,30460
+2021-08-28T11:00Z,29232
+2021-08-28T12:00Z,28636
+2021-08-28T13:00Z,28734
+2021-08-28T14:00Z,29051
+2021-08-28T15:00Z,29542
+2021-08-28T16:00Z,31383
+2021-08-28T17:00Z,32553
+2021-08-28T18:00Z,34127
+2021-08-28T19:00Z,36263
+2021-08-28T20:00Z,38289
+2021-08-28T21:00Z,40797
+2021-08-28T22:00Z,43701
+2021-08-28T23:00Z,46364
+2021-08-29,48320
+2021-08-29T01:00Z,49234
+2021-08-29T02:00Z,48555
+2021-08-29T03:00Z,46550
+2021-08-29T04:00Z,44417
+2021-08-29T05:00Z,41773
+2021-08-29T06:00Z,38906
+2021-08-29T07:00Z,35396
+2021-08-29T08:00Z,32776
+2021-08-29T09:00Z,30906
+2021-08-29T10:00Z,29432
+2021-08-29T11:00Z,29103
+2021-08-29T12:00Z,28444
+2021-08-29T13:00Z,28454
+2021-08-29T14:00Z,28287
+2021-08-29T15:00Z,28546
+2021-08-29T16:00Z,29969
+2021-08-29T17:00Z,30478
+2021-08-29T18:00Z,32485
+2021-08-29T19:00Z,34502
+2021-08-29T20:00Z,36612
+2021-08-29T21:00Z,39380
+2021-08-29T22:00Z,42687
+2021-08-29T23:00Z,44963
+2021-08-30,46754
+2021-08-30T01:00Z,47820
+2021-08-30T02:00Z,47660
+2021-08-30T03:00Z,46244
+2021-08-30T04:00Z,44484
+2021-08-30T05:00Z,41717
+2021-08-30T06:00Z,38147
+2021-08-30T07:00Z,34813
+2021-08-30T08:00Z,32525
+2021-08-30T09:00Z,31143
+2021-08-30T10:00Z,30097
+2021-08-30T11:00Z,29604
+2021-08-30T12:00Z,29574
+2021-08-30T13:00Z,30105
+2021-08-30T14:00Z,32244
+2021-08-30T15:00Z,34237
+2021-08-30T16:00Z,34676
+2021-08-30T17:00Z,36498
+2021-08-30T18:00Z,37559
+2021-08-30T19:00Z,38951
+2021-08-30T20:00Z,40922
+2021-08-30T21:00Z,43104
+2021-08-30T22:00Z,45425
+2021-08-30T23:00Z,47632
+2021-08-31,49023
+2021-08-31T01:00Z,49879
+2021-08-31T02:00Z,48739
+2021-08-31T03:00Z,46748
+2021-08-31T04:00Z,44728
+2021-08-31T05:00Z,41747
+2021-08-31T06:00Z,38153
+2021-08-31T07:00Z,34937
+2021-08-31T08:00Z,32596
+2021-08-31T09:00Z,30668
+2021-08-31T10:00Z,29463
+2021-08-31T11:00Z,28909
+2021-08-31T12:00Z,29052
+2021-08-31T13:00Z,30323
+2021-08-31T14:00Z,32197
+2021-08-31T15:00Z,33690
+2021-08-31T16:00Z,35051
+2021-08-31T17:00Z,35856
+2021-08-31T18:00Z,36483
+2021-08-31T19:00Z,37003
+2021-08-31T20:00Z,37386
+2021-08-31T21:00Z,38555
+2021-08-31T22:00Z,39903
+2021-08-31T23:00Z,41493
+2021-09-01,42368
+2021-09-01T01:00Z,43285
+2021-09-01T02:00Z,42690
+2021-09-01T03:00Z,41817
+2021-09-01T04:00Z,40527
+2021-09-01T05:00Z,38342
+2021-09-01T06:00Z,35290
+2021-09-01T07:00Z,32426
+2021-09-01T08:00Z,30414
+2021-09-01T09:00Z,28999
+2021-09-01T10:00Z,27872
+2021-09-01T11:00Z,27582
+2021-09-01T12:00Z,27684
+2021-09-01T13:00Z,28956
+2021-09-01T14:00Z,30988
+2021-09-01T15:00Z,32447
+2021-09-01T16:00Z,33241
+2021-09-01T17:00Z,33757
+2021-09-01T18:00Z,34264
+2021-09-01T19:00Z,34417
+2021-09-01T20:00Z,34487
+2021-09-01T21:00Z,34617
+2021-09-01T22:00Z,35573
+2021-09-01T23:00Z,37017
+2021-09-02,37882
+2021-09-02T01:00Z,38987
+2021-09-02T02:00Z,39431
+2021-09-02T03:00Z,39242
+2021-09-02T04:00Z,38755
+2021-09-02T05:00Z,36905
+2021-09-02T06:00Z,34213
+2021-09-02T07:00Z,31635
+2021-09-02T08:00Z,29793
+2021-09-02T09:00Z,28557
+2021-09-02T10:00Z,27802
+2021-09-02T11:00Z,27504
+2021-09-02T12:00Z,27423
+2021-09-02T13:00Z,28720
+2021-09-02T14:00Z,30771
+2021-09-02T15:00Z,32174
+2021-09-02T16:00Z,33281
+2021-09-02T17:00Z,34198
+2021-09-02T18:00Z,34017
+2021-09-02T19:00Z,33683
+2021-09-02T20:00Z,33827
+2021-09-02T21:00Z,34733
+2021-09-02T22:00Z,35553
+2021-09-02T23:00Z,38298
+2021-09-03,39269
+2021-09-03T01:00Z,40041
+2021-09-03T02:00Z,39718
+2021-09-03T03:00Z,39304
+2021-09-03T04:00Z,38497
+2021-09-03T05:00Z,36887
+2021-09-03T06:00Z,34126
+2021-09-03T07:00Z,31480
+2021-09-03T08:00Z,29532
+2021-09-03T09:00Z,28284
+2021-09-03T10:00Z,27300
+2021-09-03T11:00Z,26831
+2021-09-03T12:00Z,26949
+2021-09-03T13:00Z,28040
+2021-09-03T14:00Z,29826
+2021-09-03T15:00Z,31177
+2021-09-03T16:00Z,32625
+2021-09-03T17:00Z,33045
+2021-09-03T18:00Z,33174
+2021-09-03T19:00Z,33522
+2021-09-03T20:00Z,34791
+2021-09-03T21:00Z,35542
+2021-09-03T22:00Z,36983
+2021-09-03T23:00Z,39058
+2021-09-04,41098
+2021-09-04T01:00Z,42354
+2021-09-04T02:00Z,42174
+2021-09-04T03:00Z,41038
+2021-09-04T04:00Z,39617
+2021-09-04T05:00Z,37531
+2021-09-04T06:00Z,34656
+2021-09-04T07:00Z,32117
+2021-09-04T08:00Z,30075
+2021-09-04T09:00Z,28357
+2021-09-04T10:00Z,27181
+2021-09-04T11:00Z,26467
+2021-09-04T12:00Z,28574
+2021-09-04T13:00Z,26408
+2021-09-04T14:00Z,26718
+2021-09-04T15:00Z,27036
+2021-09-04T16:00Z,28899
+2021-09-04T17:00Z,29678
+2021-09-04T18:00Z,30152
+2021-09-04T19:00Z,31227
+2021-09-04T20:00Z,32805
+2021-09-04T21:00Z,34570
+2021-09-04T22:00Z,37040
+2021-09-04T23:00Z,39845
+2021-09-05,42421
+2021-09-05T01:00Z,44229
+2021-09-05T02:00Z,44401
+2021-09-05T03:00Z,42819
+2021-09-05T04:00Z,40844
+2021-09-05T05:00Z,38364
+2021-09-05T06:00Z,35345
+2021-09-05T07:00Z,32577
+2021-09-05T08:00Z,30318
+2021-09-05T09:00Z,28560
+2021-09-05T10:00Z,27316
+2021-09-05T11:00Z,26298
+2021-09-05T12:00Z,25789
+2021-09-05T13:00Z,25774
+2021-09-05T14:00Z,25914
+2021-09-05T15:00Z,26452
+2021-09-05T16:00Z,27417
+2021-09-05T17:00Z,28079
+2021-09-05T18:00Z,29417
+2021-09-05T19:00Z,31568
+2021-09-05T20:00Z,33923
+2021-09-05T21:00Z,36441
+2021-09-05T22:00Z,39715
+2021-09-05T23:00Z,42812
+2021-09-06,45232
+2021-09-06T01:00Z,46926
+2021-09-06T02:00Z,46751
+2021-09-06T03:00Z,45066
+2021-09-06T04:00Z,42963
+2021-09-06T05:00Z,40299
+2021-09-06T06:00Z,37158
+2021-09-06T07:00Z,34165
+2021-09-06T08:00Z,31789
+2021-09-06T09:00Z,29938
+2021-09-06T10:00Z,28652
+2021-09-06T11:00Z,27890
+2021-09-06T12:00Z,27473
+2021-09-06T13:00Z,27757
+2021-09-06T14:00Z,28244
+2021-09-06T15:00Z,28925
+2021-09-06T16:00Z,30471
+2021-09-06T17:00Z,31463
+2021-09-06T18:00Z,32982
+2021-09-06T19:00Z,35080
+2021-09-06T20:00Z,37315
+2021-09-06T21:00Z,40128
+2021-09-06T22:00Z,43221
+2021-09-06T23:00Z,46041
+2021-09-07,48086
+2021-09-07T01:00Z,49359
+2021-09-07T02:00Z,48668
+2021-09-07T03:00Z,47007
+2021-09-07T04:00Z,44935
+2021-09-07T05:00Z,42003
+2021-09-07T06:00Z,38203
+2021-09-07T07:00Z,35005
+2021-09-07T08:00Z,32643
+2021-09-07T09:00Z,30876
+2021-09-07T10:00Z,29759
+2021-09-07T11:00Z,29047
+2021-09-07T12:00Z,29170
+2021-09-07T13:00Z,30432
+2021-09-07T14:00Z,32463
+2021-09-07T15:00Z,34092
+2021-09-07T16:00Z,35855
+2021-09-07T17:00Z,36884
+2021-09-07T18:00Z,38310
+2021-09-07T19:00Z,39845
+2021-09-07T20:00Z,41999
+2021-09-07T21:00Z,44862
+2021-09-07T22:00Z,47925
+2021-09-07T23:00Z,50741
+2021-09-08,52526
+2021-09-08T01:00Z,52891
+2021-09-08T02:00Z,51596
+2021-09-08T03:00Z,49688
+2021-09-08T04:00Z,47390
+2021-09-08T05:00Z,44453
+2021-09-08T06:00Z,40516
+2021-09-08T07:00Z,36953
+2021-09-08T08:00Z,34505
+2021-09-08T09:00Z,32727
+2021-09-08T10:00Z,31550
+2021-09-08T11:00Z,30663
+2021-09-08T12:00Z,30428
+2021-09-08T13:00Z,31347
+2021-09-08T14:00Z,32931
+2021-09-08T15:00Z,34176
+2021-09-08T16:00Z,35674
+2021-09-08T17:00Z,36648
+2021-09-08T18:00Z,38135
+2021-09-08T19:00Z,40038
+2021-09-08T20:00Z,42821
+2021-09-08T21:00Z,45792
+2021-09-08T22:00Z,49006
+2021-09-08T23:00Z,52026
+2021-09-09,53947
+2021-09-09T01:00Z,54543
+2021-09-09T02:00Z,53248
+2021-09-09T03:00Z,51056
+2021-09-09T04:00Z,48541
+2021-09-09T05:00Z,45114
+2021-09-09T06:00Z,41114
+2021-09-09T07:00Z,37398
+2021-09-09T08:00Z,35057
+2021-09-09T09:00Z,33077
+2021-09-09T10:00Z,31901
+2021-09-09T11:00Z,30972
+2021-09-09T12:00Z,31249
+2021-09-09T13:00Z,32208
+2021-09-09T14:00Z,34118
+2021-09-09T15:00Z,35502
+2021-09-09T16:00Z,37353
+2021-09-09T17:00Z,38756
+2021-09-09T18:00Z,40483
+2021-09-09T19:00Z,42150
+2021-09-09T20:00Z,44817
+2021-09-09T21:00Z,47688
+2021-09-09T22:00Z,50726
+2021-09-09T23:00Z,53066
+2021-09-10,53825
+2021-09-10T01:00Z,53780
+2021-09-10T02:00Z,51851
+2021-09-10T03:00Z,50034
+2021-09-10T04:00Z,47699
+2021-09-10T05:00Z,44823
+2021-09-10T06:00Z,41203
+2021-09-10T07:00Z,37710
+2021-09-10T08:00Z,34967
+2021-09-10T09:00Z,33193
+2021-09-10T10:00Z,31886
+2021-09-10T11:00Z,31162
+2021-09-10T12:00Z,31042
+2021-09-10T13:00Z,32092
+2021-09-10T14:00Z,34160
+2021-09-10T15:00Z,35466
+2021-09-10T16:00Z,37581
+2021-09-10T17:00Z,38477
+2021-09-10T18:00Z,39722
+2021-09-10T19:00Z,41110
+2021-09-10T20:00Z,42026
+2021-09-10T21:00Z,44495
+2021-09-10T22:00Z,46587
+2021-09-10T23:00Z,48487
+2021-09-11,49747
+2021-09-11T01:00Z,49920
+2021-09-11T02:00Z,48563
+2021-09-11T03:00Z,46737
+2021-09-11T04:00Z,44748
+2021-09-11T05:00Z,42224
+2021-09-11T06:00Z,39097
+2021-09-11T07:00Z,36218
+2021-09-11T08:00Z,34058
+2021-09-11T09:00Z,32059
+2021-09-11T10:00Z,30694
+2021-09-11T11:00Z,29753
+2021-09-11T12:00Z,29395
+2021-09-11T13:00Z,29742
+2021-09-11T14:00Z,30087
+2021-09-11T15:00Z,30291
+2021-09-11T16:00Z,31501
+2021-09-11T17:00Z,32528
+2021-09-11T18:00Z,33980
+2021-09-11T19:00Z,35519
+2021-09-11T20:00Z,37989
+2021-09-11T21:00Z,40446
+2021-09-11T22:00Z,42908
+2021-09-11T23:00Z,44872
+2021-09-12,46507
+2021-09-12T01:00Z,47604
+2021-09-12T02:00Z,47140
+2021-09-12T03:00Z,45385
+2021-09-12T04:00Z,43296
+2021-09-12T05:00Z,40726
+2021-09-12T06:00Z,37546
+2021-09-12T07:00Z,34755
+2021-09-12T08:00Z,32330
+2021-09-12T09:00Z,30665
+2021-09-12T10:00Z,29526
+2021-09-12T11:00Z,28592
+2021-09-12T12:00Z,27977
+2021-09-12T13:00Z,27856
+2021-09-12T14:00Z,27916
+2021-09-12T15:00Z,28049
+2021-09-12T16:00Z,28817
+2021-09-12T17:00Z,29721
+2021-09-12T18:00Z,31306
+2021-09-12T19:00Z,32657
+2021-09-12T20:00Z,34809
+2021-09-12T21:00Z,37700
+2021-09-12T22:00Z,40885
+2021-09-12T23:00Z,42999
+2021-09-13,44850
+2021-09-13T01:00Z,46457
+2021-09-13T02:00Z,46220
+2021-09-13T03:00Z,44594
+2021-09-13T04:00Z,42405
+2021-09-13T05:00Z,39510
+2021-09-13T06:00Z,36059
+2021-09-13T07:00Z,32768
+2021-09-13T08:00Z,31127
+2021-09-13T09:00Z,29790
+2021-09-13T10:00Z,28424
+2021-09-13T11:00Z,27795
+2021-09-13T12:00Z,27881
+2021-09-13T13:00Z,29208
+2021-09-13T14:00Z,31323
+2021-09-13T15:00Z,32446
+2021-09-13T16:00Z,33393
+2021-09-13T17:00Z,33884
+2021-09-13T18:00Z,35084
+2021-09-13T19:00Z,36848
+2021-09-13T20:00Z,39203
+2021-09-13T21:00Z,41593
+2021-09-13T22:00Z,43913
+2021-09-13T23:00Z,46696
+2021-09-14,48552
+2021-09-14T01:00Z,49396
+2021-09-14T02:00Z,48117
+2021-09-14T03:00Z,46188
+2021-09-14T04:00Z,43617
+2021-09-14T05:00Z,40348
+2021-09-14T06:00Z,36756
+2021-09-14T07:00Z,33524
+2021-09-14T08:00Z,31010
+2021-09-14T09:00Z,29376
+2021-09-14T10:00Z,28147
+2021-09-14T11:00Z,27382
+2021-09-14T12:00Z,27533
+2021-09-14T13:00Z,28703
+2021-09-14T14:00Z,30785
+2021-09-14T15:00Z,31904
+2021-09-14T16:00Z,33036
+2021-09-14T17:00Z,33272
+2021-09-14T18:00Z,33990
+2021-09-14T19:00Z,35078
+2021-09-14T20:00Z,36558
+2021-09-14T21:00Z,38944
+2021-09-14T22:00Z,41553
+2021-09-14T23:00Z,44199
+2021-09-15,46030
+2021-09-15T01:00Z,46877
+2021-09-15T02:00Z,45965
+2021-09-15T03:00Z,44255
+2021-09-15T04:00Z,42017
+2021-09-15T05:00Z,39228
+2021-09-15T06:00Z,35807
+2021-09-15T07:00Z,32830
+2021-09-15T08:00Z,30628
+2021-09-15T09:00Z,29080
+2021-09-15T10:00Z,27914
+2021-09-15T11:00Z,27354
+2021-09-15T12:00Z,27451
+2021-09-15T13:00Z,28624
+2021-09-15T14:00Z,30727
+2021-09-15T15:00Z,31922
+2021-09-15T16:00Z,32797
+2021-09-15T17:00Z,32756
+2021-09-15T18:00Z,32815
+2021-09-15T19:00Z,33578
+2021-09-15T20:00Z,34380
+2021-09-15T21:00Z,35787
+2021-09-15T22:00Z,38243
+2021-09-15T23:00Z,40296
+2021-09-16,42020
+2021-09-16T01:00Z,42973
+2021-09-16T02:00Z,42502
+2021-09-16T03:00Z,41497
+2021-09-16T04:00Z,39643
+2021-09-16T05:00Z,37327
+2021-09-16T06:00Z,34385
+2021-09-16T07:00Z,31473
+2021-09-16T08:00Z,29539
+2021-09-16T09:00Z,28334
+2021-09-16T10:00Z,27548
+2021-09-16T11:00Z,27143
+2021-09-16T12:00Z,27033
+2021-09-16T13:00Z,28079
+2021-09-16T14:00Z,30173
+2021-09-16T15:00Z,31321
+2021-09-16T16:00Z,31961
+2021-09-16T17:00Z,31983
+2021-09-16T18:00Z,31867
+2021-09-16T19:00Z,31801
+2021-09-16T20:00Z,33105
+2021-09-16T21:00Z,32964
+2021-09-16T22:00Z,34091
+2021-09-16T23:00Z,35896
+2021-09-17,37704
+2021-09-17T01:00Z,39205
+2021-09-17T02:00Z,39413
+2021-09-17T03:00Z,39073
+2021-09-17T04:00Z,37692
+2021-09-17T05:00Z,35760
+2021-09-17T06:00Z,32956
+2021-09-17T07:00Z,30497
+2021-09-17T08:00Z,28851
+2021-09-17T09:00Z,27569
+2021-09-17T10:00Z,26643
+2021-09-17T11:00Z,26227
+2021-09-17T12:00Z,26455
+2021-09-17T13:00Z,27634
+2021-09-17T14:00Z,29732
+2021-09-17T15:00Z,30867
+2021-09-17T16:00Z,31716
+2021-09-17T17:00Z,31338
+2021-09-17T18:00Z,30978
+2021-09-17T19:00Z,31258
+2021-09-17T20:00Z,31828
+2021-09-17T21:00Z,32732
+2021-09-17T22:00Z,33661
+2021-09-17T23:00Z,35706
+2021-09-18,37455
+2021-09-18T01:00Z,38611
+2021-09-18T02:00Z,38500
+2021-09-18T03:00Z,38241
+2021-09-18T04:00Z,36765
+2021-09-18T05:00Z,35019
+2021-09-18T06:00Z,32811
+2021-09-18T07:00Z,30635
+2021-09-18T08:00Z,28950
+2021-09-18T09:00Z,27587
+2021-09-18T10:00Z,26718
+2021-09-18T11:00Z,26170
+2021-09-18T12:00Z,26037
+2021-09-18T13:00Z,26425
+2021-09-18T14:00Z,27231
+2021-09-18T15:00Z,27429
+2021-09-18T16:00Z,27588
+2021-09-18T17:00Z,27827
+2021-09-18T18:00Z,27974
+2021-09-18T19:00Z,27553
+2021-09-18T20:00Z,28167
+2021-09-18T21:00Z,28953
+2021-09-18T22:00Z,29973
+2021-09-18T23:00Z,31599
+2021-09-19,32992
+2021-09-19T01:00Z,34354
+2021-09-19T02:00Z,35121
+2021-09-19T03:00Z,35195
+2021-09-19T04:00Z,34248
+2021-09-19T05:00Z,32991
+2021-09-19T06:00Z,31145
+2021-09-19T07:00Z,29167
+2021-09-19T08:00Z,27713
+2021-09-19T09:00Z,26432
+2021-09-19T10:00Z,25526
+2021-09-19T11:00Z,24989
+2021-09-19T12:00Z,24722
+2021-09-19T13:00Z,24910
+2021-09-19T14:00Z,25279
+2021-09-19T15:00Z,25151
+2021-09-19T16:00Z,26043
+2021-09-19T17:00Z,26120
+2021-09-19T18:00Z,26306
+2021-09-19T19:00Z,26313
+2021-09-19T20:00Z,26590
+2021-09-19T21:00Z,27529
+2021-09-19T22:00Z,29084
+2021-09-19T23:00Z,30387
+2021-09-20,32235
+2021-09-20T01:00Z,33743
+2021-09-20T02:00Z,34811
+2021-09-20T03:00Z,35268
+2021-09-20T04:00Z,34368
+2021-09-20T05:00Z,32909
+2021-09-20T06:00Z,30651
+2021-09-20T07:00Z,28509
+2021-09-20T08:00Z,27105
+2021-09-20T09:00Z,26001
+2021-09-20T10:00Z,25503
+2021-09-20T11:00Z,25095
+2021-09-20T12:00Z,25304
+2021-09-20T13:00Z,26645
+2021-09-20T14:00Z,28974
+2021-09-20T15:00Z,30044
+2021-09-20T16:00Z,30743
+2021-09-20T17:00Z,30688
+2021-09-20T18:00Z,30926
+2021-09-20T19:00Z,32004
+2021-09-20T20:00Z,33100
+2021-09-20T21:00Z,34361
+2021-09-20T22:00Z,36149
+2021-09-20T23:00Z,38582
+2021-09-21,40854
+2021-09-21T01:00Z,42400
+2021-09-21T02:00Z,42134
+2021-09-21T03:00Z,41524
+2021-09-21T04:00Z,39817
+2021-09-21T05:00Z,37493
+2021-09-21T06:00Z,34424
+2021-09-21T07:00Z,31764
+2021-09-21T08:00Z,29769
+2021-09-21T09:00Z,28523
+2021-09-21T10:00Z,27694
+2021-09-21T11:00Z,27065
+2021-09-21T12:00Z,27113
+2021-09-21T13:00Z,28226
+2021-09-21T14:00Z,30515
+2021-09-21T15:00Z,31371
+2021-09-21T16:00Z,32464
+2021-09-21T17:00Z,33527
+2021-09-21T18:00Z,34766
+2021-09-21T19:00Z,36381
+2021-09-21T20:00Z,38823
+2021-09-21T21:00Z,41486
+2021-09-21T22:00Z,44523
+2021-09-21T23:00Z,47734
+2021-09-22,49826
+2021-09-22T01:00Z,50550
+2021-09-22T02:00Z,49076
+2021-09-22T03:00Z,47442
+2021-09-22T04:00Z,44895
+2021-09-22T05:00Z,41811
+2021-09-22T06:00Z,38070
+2021-09-22T07:00Z,34767
+2021-09-22T08:00Z,32383
+2021-09-22T09:00Z,30575
+2021-09-22T10:00Z,29306
+2021-09-22T11:00Z,28641
+2021-09-22T12:00Z,28740
+2021-09-22T13:00Z,29807
+2021-09-22T14:00Z,31938
+2021-09-22T15:00Z,33038
+2021-09-22T16:00Z,34286
+2021-09-22T17:00Z,35612
+2021-09-22T18:00Z,37028
+2021-09-22T19:00Z,39013
+2021-09-22T20:00Z,41680
+2021-09-22T21:00Z,44566
+2021-09-22T22:00Z,47189
+2021-09-22T23:00Z,49343
+2021-09-23,50009
+2021-09-23T01:00Z,50027
+2021-09-23T02:00Z,48380
+2021-09-23T03:00Z,46739
+2021-09-23T04:00Z,44259
+2021-09-23T05:00Z,41318
+2021-09-23T06:00Z,37810
+2021-09-23T07:00Z,34470
+2021-09-23T08:00Z,31879
+2021-09-23T09:00Z,30035
+2021-09-23T10:00Z,28826
+2021-09-23T11:00Z,28380
+2021-09-23T12:00Z,28196
+2021-09-23T13:00Z,29310
+2021-09-23T14:00Z,31380
+2021-09-23T15:00Z,32429
+2021-09-23T16:00Z,33687
+2021-09-23T17:00Z,34499
+2021-09-23T18:00Z,35407
+2021-09-23T19:00Z,36591
+2021-09-23T20:00Z,38139
+2021-09-23T21:00Z,40536
+2021-09-23T22:00Z,42443
+2021-09-23T23:00Z,43880
+2021-09-24,44789
+2021-09-24T01:00Z,44788
+2021-09-24T02:00Z,43677
+2021-09-24T03:00Z,42213
+2021-09-24T04:00Z,40765
+2021-09-24T05:00Z,38330
+2021-09-24T06:00Z,35250
+2021-09-24T07:00Z,32492
+2021-09-24T08:00Z,30578
+2021-09-24T09:00Z,29068
+2021-09-24T10:00Z,28018
+2021-09-24T11:00Z,27536
+2021-09-24T12:00Z,27603
+2021-09-24T13:00Z,28805
+2021-09-24T14:00Z,30718
+2021-09-24T15:00Z,32003
+2021-09-24T16:00Z,32780
+2021-09-24T17:00Z,33174
+2021-09-24T18:00Z,34024
+2021-09-24T19:00Z,34718
+2021-09-24T20:00Z,36231
+2021-09-24T21:00Z,38251
+2021-09-24T22:00Z,40204
+2021-09-24T23:00Z,41429
+2021-09-25,41882
+2021-09-25T01:00Z,41662
+2021-09-25T02:00Z,40740
+2021-09-25T03:00Z,40001
+2021-09-25T04:00Z,38249
+2021-09-25T05:00Z,36378
+2021-09-25T06:00Z,33856
+2021-09-25T07:00Z,31410
+2021-09-25T08:00Z,29633
+2021-09-25T09:00Z,28154
+2021-09-25T10:00Z,27196
+2021-09-25T11:00Z,26501
+2021-09-25T12:00Z,26243
+2021-09-25T13:00Z,26728
+2021-09-25T14:00Z,27529
+2021-09-25T15:00Z,27844
+2021-09-25T16:00Z,28610
+2021-09-25T17:00Z,29035
+2021-09-25T18:00Z,29246
+2021-09-25T19:00Z,29631
+2021-09-25T20:00Z,30622
+2021-09-25T21:00Z,32008
+2021-09-25T22:00Z,33844
+2021-09-25T23:00Z,35312
+2021-09-26,36592
+2021-09-26T01:00Z,37342
+2021-09-26T02:00Z,37150
+2021-09-26T03:00Z,36633
+2021-09-26T04:00Z,35093
+2021-09-26T05:00Z,33482
+2021-09-26T06:00Z,31534
+2021-09-26T07:00Z,29518
+2021-09-26T08:00Z,27979
+2021-09-26T09:00Z,26786
+2021-09-26T10:00Z,25849
+2021-09-26T11:00Z,25207
+2021-09-26T12:00Z,24949
+2021-09-26T13:00Z,25251
+2021-09-26T14:00Z,25729
+2021-09-26T15:00Z,25843
+2021-09-26T16:00Z,26603
+2021-09-26T17:00Z,27395
+2021-09-26T18:00Z,28049
+2021-09-26T19:00Z,27714
+2021-09-26T20:00Z,27481
+2021-09-26T21:00Z,27725
+2021-09-26T22:00Z,28482
+2021-09-26T23:00Z,29997
+2021-09-27,31403
+2021-09-27T01:00Z,32891
+2021-09-27T02:00Z,33645
+2021-09-27T03:00Z,34074
+2021-09-27T04:00Z,32979
+2021-09-27T05:00Z,31650
+2021-09-27T06:00Z,29678
+2021-09-27T07:00Z,27779
+2021-09-27T08:00Z,26661
+2021-09-27T09:00Z,25713
+2021-09-27T10:00Z,25020
+2021-09-27T11:00Z,24902
+2021-09-27T12:00Z,25363
+2021-09-27T13:00Z,26817
+2021-09-27T14:00Z,29175
+2021-09-27T15:00Z,30767
+2021-09-27T16:00Z,31844
+2021-09-27T17:00Z,32389
+2021-09-27T18:00Z,32566
+2021-09-27T19:00Z,32699
+2021-09-27T20:00Z,32498
+2021-09-27T21:00Z,32437
+2021-09-27T22:00Z,32551
+2021-09-27T23:00Z,33149
+2021-09-28,34011
+2021-09-28T01:00Z,34965
+2021-09-28T02:00Z,35592
+2021-09-28T03:00Z,36018
+2021-09-28T04:00Z,34890
+2021-09-28T05:00Z,33372
+2021-09-28T06:00Z,31123
+2021-09-28T07:00Z,29034
+2021-09-28T08:00Z,27724
+2021-09-28T09:00Z,26589
+2021-09-28T10:00Z,25880
+2021-09-28T11:00Z,25554
+2021-09-28T12:00Z,25853
+2021-09-28T13:00Z,27141
+2021-09-28T14:00Z,29501
+2021-09-28T15:00Z,30789
+2021-09-28T16:00Z,31686
+2021-09-28T17:00Z,31948
+2021-09-28T18:00Z,31511
+2021-09-28T19:00Z,31315
+2021-09-28T20:00Z,30759
+2021-09-28T21:00Z,30587
+2021-09-28T22:00Z,30779
+2021-09-28T23:00Z,31436
+2021-09-29,32766
+2021-09-29T01:00Z,33804
+2021-09-29T02:00Z,35589
+2021-09-29T03:00Z,35419
+2021-09-29T04:00Z,34383
+2021-09-29T05:00Z,32982
+2021-09-29T06:00Z,30943
+2021-09-29T07:00Z,28819
+2021-09-29T08:00Z,27138
+2021-09-29T09:00Z,26181
+2021-09-29T10:00Z,25444
+2021-09-29T11:00Z,25075
+2021-09-29T12:00Z,25356
+2021-09-29T13:00Z,26670
+2021-09-29T14:00Z,29097
+2021-09-29T15:00Z,30082
+2021-09-29T16:00Z,29963
+2021-09-29T17:00Z,30103
+2021-09-29T18:00Z,29583
+2021-09-29T19:00Z,29631
+2021-09-29T20:00Z,30075
+2021-09-29T21:00Z,30510
+2021-09-29T22:00Z,31349
+2021-09-29T23:00Z,32677
+2021-09-30,33847
+2021-09-30T01:00Z,34840
+2021-09-30T02:00Z,35600
+2021-09-30T03:00Z,36038
+2021-09-30T04:00Z,34799
+2021-09-30T05:00Z,33332
+2021-09-30T06:00Z,31048
+2021-09-30T07:00Z,28846
+2021-09-30T08:00Z,27295
+2021-09-30T09:00Z,26061
+2021-09-30T10:00Z,25510
+2021-09-30T11:00Z,25174
+2021-09-30T12:00Z,25420
+2021-09-30T13:00Z,26678
+2021-09-30T14:00Z,28910
+2021-09-30T15:00Z,29909
+2021-09-30T16:00Z,30168
+2021-09-30T17:00Z,30140
+2021-09-30T18:00Z,30253
+2021-09-30T19:00Z,30610
+2021-09-30T20:00Z,31519
+2021-09-30T21:00Z,33241
+2021-09-30T22:00Z,34902
+2021-09-30T23:00Z,36467
+2021-10-01,37801
+2021-10-01T01:00Z,39246
+2021-10-01T02:00Z,39180
+2021-10-01T03:00Z,38690
+2021-10-01T04:00Z,36909
+2021-10-01T05:00Z,34950
+2021-10-01T06:00Z,32268
+2021-10-01T07:00Z,29492
+2021-10-01T08:00Z,27976
+2021-10-01T09:00Z,26760
+2021-10-01T10:00Z,25937
+2021-10-01T11:00Z,25447
+2021-10-01T12:00Z,25718
+2021-10-01T13:00Z,26908
+2021-10-01T14:00Z,28968
+2021-10-01T15:00Z,29968
+2021-10-01T16:00Z,30480
+2021-10-01T17:00Z,30871
+2021-10-01T18:00Z,31252
+2021-10-01T19:00Z,32258
+2021-10-01T20:00Z,32936
+2021-10-01T21:00Z,34244
+2021-10-01T22:00Z,35790
+2021-10-01T23:00Z,38085
+2021-10-02,39954
+2021-10-02T01:00Z,40878
+2021-10-02T02:00Z,39994
+2021-10-02T03:00Z,38990
+2021-10-02T04:00Z,37066
+2021-10-02T05:00Z,35129
+2021-10-02T06:00Z,32795
+2021-10-02T07:00Z,30124
+2021-10-02T08:00Z,28650
+2021-10-02T09:00Z,27178
+2021-10-02T10:00Z,26070
+2021-10-02T11:00Z,25313
+2021-10-02T12:00Z,25132
+2021-10-02T13:00Z,25509
+2021-10-02T14:00Z,26260
+2021-10-02T15:00Z,26523
+2021-10-02T16:00Z,27511
+2021-10-02T17:00Z,27924
+2021-10-02T18:00Z,28800
+2021-10-02T19:00Z,29556
+2021-10-02T20:00Z,30254
+2021-10-02T21:00Z,31884
+2021-10-02T22:00Z,33755
+2021-10-02T23:00Z,36302
+2021-10-03,38658
+2021-10-03T01:00Z,39958
+2021-10-03T02:00Z,39533
+2021-10-03T03:00Z,38473
+2021-10-03T04:00Z,36439
+2021-10-03T05:00Z,34457
+2021-10-03T06:00Z,32173
+2021-10-03T07:00Z,29656
+2021-10-03T08:00Z,28095
+2021-10-03T09:00Z,26686
+2021-10-03T10:00Z,25607
+2021-10-03T11:00Z,24992
+2021-10-03T12:00Z,24616
+2021-10-03T13:00Z,24672
+2021-10-03T14:00Z,25132
+2021-10-03T15:00Z,25126
+2021-10-03T16:00Z,25832
+2021-10-03T17:00Z,26039
+2021-10-03T18:00Z,26859
+2021-10-03T19:00Z,27829
+2021-10-03T20:00Z,29285
+2021-10-03T21:00Z,31419
+2021-10-03T22:00Z,33945
+2021-10-03T23:00Z,36376
+2021-10-04,38767
+2021-10-04T01:00Z,40162
+2021-10-04T02:00Z,39949
+2021-10-04T03:00Z,39151
+2021-10-04T04:00Z,37107
+2021-10-04T05:00Z,34966
+2021-10-04T06:00Z,31878
+2021-10-04T07:00Z,29254
+2021-10-04T08:00Z,27839
+2021-10-04T09:00Z,26561
+2021-10-04T10:00Z,25918
+2021-10-04T11:00Z,25546
+2021-10-04T12:00Z,25889
+2021-10-04T13:00Z,27128
+2021-10-04T14:00Z,29519
+2021-10-04T15:00Z,31031
+2021-10-04T16:00Z,31766
+2021-10-04T17:00Z,32418
+2021-10-04T18:00Z,33118
+2021-10-04T19:00Z,33876
+2021-10-04T20:00Z,35266
+2021-10-04T21:00Z,36984
+2021-10-04T22:00Z,38534
+2021-10-04T23:00Z,40292
+2021-10-05,40693
+2021-10-05T01:00Z,40366
+2021-10-05T02:00Z,39688
+2021-10-05T03:00Z,39142
+2021-10-05T04:00Z,37364
+2021-10-05T05:00Z,35375
+2021-10-05T06:00Z,32752
+2021-10-05T07:00Z,30457
+2021-10-05T08:00Z,28974
+2021-10-05T09:00Z,27697
+2021-10-05T10:00Z,26762
+2021-10-05T11:00Z,26347
+2021-10-05T12:00Z,26530
+2021-10-05T13:00Z,27769
+2021-10-05T14:00Z,30082
+2021-10-05T15:00Z,31360
+2021-10-05T16:00Z,31691
+2021-10-05T17:00Z,31781
+2021-10-05T18:00Z,32013
+2021-10-05T19:00Z,32361
+2021-10-05T20:00Z,32953
+2021-10-05T21:00Z,34169
+2021-10-05T22:00Z,35587
+2021-10-05T23:00Z,36710
+2021-10-06,37862
+2021-10-06T01:00Z,38628
+2021-10-06T02:00Z,38498
+2021-10-06T03:00Z,38214
+2021-10-06T04:00Z,36729
+2021-10-06T05:00Z,35028
+2021-10-06T06:00Z,32489
+2021-10-06T07:00Z,29760
+2021-10-06T08:00Z,28667
+2021-10-06T09:00Z,27405
+2021-10-06T10:00Z,26527
+2021-10-06T11:00Z,26107
+2021-10-06T12:00Z,26435
+2021-10-06T13:00Z,27468
+2021-10-06T14:00Z,29639
+2021-10-06T15:00Z,30919
+2021-10-06T16:00Z,31675
+2021-10-06T17:00Z,32074
+2021-10-06T18:00Z,32015
+2021-10-06T19:00Z,31816
+2021-10-06T20:00Z,31480
+2021-10-06T21:00Z,31649
+2021-10-06T22:00Z,32452
+2021-10-06T23:00Z,33453
+2021-10-07,34408
+2021-10-07T01:00Z,35146
+2021-10-07T02:00Z,35795
+2021-10-07T03:00Z,36041
+2021-10-07T04:00Z,34801
+2021-10-07T05:00Z,33510
+2021-10-07T06:00Z,31692
+2021-10-07T07:00Z,29396
+2021-10-07T08:00Z,27686
+2021-10-07T09:00Z,26677
+2021-10-07T10:00Z,26018
+2021-10-07T11:00Z,25605
+2021-10-07T12:00Z,25891
+2021-10-07T13:00Z,27180
+2021-10-07T14:00Z,29688
+2021-10-07T15:00Z,31327
+2021-10-07T16:00Z,31836
+2021-10-07T17:00Z,32020
+2021-10-07T18:00Z,31804
+2021-10-07T19:00Z,31722
+2021-10-07T20:00Z,31353
+2021-10-07T21:00Z,31288
+2021-10-07T22:00Z,31481
+2021-10-07T23:00Z,31986
+2021-10-08,32378
+2021-10-08T01:00Z,33161
+2021-10-08T02:00Z,34124
+2021-10-08T03:00Z,34475
+2021-10-08T04:00Z,33517
+2021-10-08T05:00Z,32284
+2021-10-08T06:00Z,30319
+2021-10-08T07:00Z,28437
+2021-10-08T08:00Z,27332
+2021-10-08T09:00Z,26301
+2021-10-08T10:00Z,25705
+2021-10-08T11:00Z,25284
+2021-10-08T12:00Z,25543
+2021-10-08T13:00Z,26893
+2021-10-08T14:00Z,29210
+2021-10-08T15:00Z,30785
+2021-10-08T16:00Z,31280
+2021-10-08T17:00Z,31100
+2021-10-08T18:00Z,30422
+2021-10-08T19:00Z,29774
+2021-10-08T20:00Z,29277
+2021-10-08T21:00Z,29333
+2021-10-08T22:00Z,29075
+2021-10-08T23:00Z,29647
+2021-10-09,29816
+2021-10-09T01:00Z,30817
+2021-10-09T02:00Z,32137
+2021-10-09T03:00Z,32695
+2021-10-09T04:00Z,31760
+2021-10-09T05:00Z,30736
+2021-10-09T06:00Z,29256
+2021-10-09T07:00Z,27804
+2021-10-09T08:00Z,26219
+2021-10-09T09:00Z,25246
+2021-10-09T10:00Z,24492
+2021-10-09T11:00Z,24304
+2021-10-09T12:00Z,24360
+2021-10-09T13:00Z,24896
+2021-10-09T14:00Z,25630
+2021-10-09T15:00Z,25985
+2021-10-09T16:00Z,26609
+2021-10-09T17:00Z,26214
+2021-10-09T18:00Z,25406
+2021-10-09T19:00Z,24875
+2021-10-09T20:00Z,24863
+2021-10-09T21:00Z,24672
+2021-10-09T22:00Z,24898
+2021-10-09T23:00Z,26018
+2021-10-10,27411
+2021-10-10T01:00Z,29432
+2021-10-10T02:00Z,30718
+2021-10-10T03:00Z,31235
+2021-10-10T04:00Z,30377
+2021-10-10T05:00Z,29435
+2021-10-10T06:00Z,27938
+2021-10-10T07:00Z,26447
+2021-10-10T08:00Z,25431
+2021-10-10T09:00Z,24461
+2021-10-10T10:00Z,23743
+2021-10-10T11:00Z,23323
+2021-10-10T12:00Z,23278
+2021-10-10T13:00Z,23507
+2021-10-10T14:00Z,24199
+2021-10-10T15:00Z,24577
+2021-10-10T16:00Z,24542
+2021-10-10T17:00Z,24196
+2021-10-10T18:00Z,23699
+2021-10-10T19:00Z,23484
+2021-10-10T20:00Z,23600
+2021-10-10T21:00Z,24115
+2021-10-10T22:00Z,24925
+2021-10-10T23:00Z,26175
+2021-10-11,28228
+2021-10-11T01:00Z,30637
+2021-10-11T02:00Z,31783
+2021-10-11T03:00Z,32156
+2021-10-11T04:00Z,31221
+2021-10-11T05:00Z,29830
+2021-10-11T06:00Z,28014
+2021-10-11T07:00Z,26264
+2021-10-11T08:00Z,25245
+2021-10-11T09:00Z,24459
+2021-10-11T10:00Z,23916
+2021-10-11T11:00Z,23693
+2021-10-11T12:00Z,24036
+2021-10-11T13:00Z,25327
+2021-10-11T14:00Z,27609
+2021-10-11T15:00Z,28752
+2021-10-11T16:00Z,28994
+2021-10-11T17:00Z,28843
+2021-10-11T18:00Z,28549
+2021-10-11T19:00Z,28083
+2021-10-11T20:00Z,27610
+2021-10-11T21:00Z,27837
+2021-10-11T22:00Z,28142
+2021-10-11T23:00Z,28553
+2021-10-12,29527
+2021-10-12T01:00Z,30796
+2021-10-12T02:00Z,32285
+2021-10-12T03:00Z,32721
+2021-10-12T04:00Z,31724
+2021-10-12T05:00Z,30468
+2021-10-12T06:00Z,28548
+2021-10-12T07:00Z,26707
+2021-10-12T08:00Z,25648
+2021-10-12T09:00Z,24795
+2021-10-12T10:00Z,24236
+2021-10-12T11:00Z,24048
+2021-10-12T12:00Z,24454
+2021-10-12T13:00Z,25934
+2021-10-12T14:00Z,28236
+2021-10-12T15:00Z,29577
+2021-10-12T16:00Z,29094
+2021-10-12T17:00Z,28516
+2021-10-12T18:00Z,27519
+2021-10-12T19:00Z,27036
+2021-10-12T20:00Z,26652
+2021-10-12T21:00Z,27563
+2021-10-12T22:00Z,26967
+2021-10-12T23:00Z,27877
+2021-10-13,28946
+2021-10-13T01:00Z,30885
+2021-10-13T02:00Z,32444
+2021-10-13T03:00Z,32903
+2021-10-13T04:00Z,31999
+2021-10-13T05:00Z,30735
+2021-10-13T06:00Z,28756
+2021-10-13T07:00Z,26974
+2021-10-13T08:00Z,25696
+2021-10-13T09:00Z,24822
+2021-10-13T10:00Z,24328
+2021-10-13T11:00Z,24128
+2021-10-13T12:00Z,24671
+2021-10-13T13:00Z,26210
+2021-10-13T14:00Z,28833
+2021-10-13T15:00Z,30292
+2021-10-13T16:00Z,29949
+2021-10-13T17:00Z,29809
+2021-10-13T18:00Z,29470
+2021-10-13T19:00Z,28572
+2021-10-13T20:00Z,28022
+2021-10-13T21:00Z,28329
+2021-10-13T22:00Z,28545
+2021-10-13T23:00Z,29438
+2021-10-14,29865
+2021-10-14T01:00Z,31194
+2021-10-14T02:00Z,32897
+2021-10-14T03:00Z,33226
+2021-10-14T04:00Z,32148
+2021-10-14T05:00Z,30842
+2021-10-14T06:00Z,28971
+2021-10-14T07:00Z,27219
+2021-10-14T08:00Z,26100
+2021-10-14T09:00Z,25168
+2021-10-14T10:00Z,24628
+2021-10-14T11:00Z,24323
+2021-10-14T12:00Z,24637
+2021-10-14T13:00Z,26106
+2021-10-14T14:00Z,28771
+2021-10-14T15:00Z,30135
+2021-10-14T16:00Z,29800
+2021-10-14T17:00Z,28960
+2021-10-14T18:00Z,28707
+2021-10-14T19:00Z,28339
+2021-10-14T20:00Z,28057
+2021-10-14T21:00Z,28269
+2021-10-14T22:00Z,28765
+2021-10-14T23:00Z,29827
+2021-10-15,30498
+2021-10-15T01:00Z,32103
+2021-10-15T02:00Z,33499
+2021-10-15T03:00Z,33727
+2021-10-15T04:00Z,32681
+2021-10-15T05:00Z,31214
+2021-10-15T06:00Z,29329
+2021-10-15T07:00Z,27407
+2021-10-15T08:00Z,26050
+2021-10-15T09:00Z,25265
+2021-10-15T10:00Z,24768
+2021-10-15T11:00Z,24611
+2021-10-15T12:00Z,24905
+2021-10-15T13:00Z,26291
+2021-10-15T14:00Z,28614
+2021-10-15T15:00Z,30066
+2021-10-15T16:00Z,29996
+2021-10-15T17:00Z,30299
+2021-10-15T18:00Z,29732
+2021-10-15T19:00Z,29385
+2021-10-15T20:00Z,29500
+2021-10-15T21:00Z,30171
+2021-10-15T22:00Z,30849
+2021-10-15T23:00Z,31500
+2021-10-16,32865
+2021-10-16T01:00Z,34175
+2021-10-16T02:00Z,34536
+2021-10-16T03:00Z,34080
+2021-10-16T04:00Z,32835
+2021-10-16T05:00Z,31550
+2021-10-16T06:00Z,29657
+2021-10-16T07:00Z,27860
+2021-10-16T08:00Z,26461
+2021-10-16T09:00Z,25281
+2021-10-16T10:00Z,24581
+2021-10-16T11:00Z,24082
+2021-10-16T12:00Z,24041
+2021-10-16T13:00Z,24509
+2021-10-16T14:00Z,25536
+2021-10-16T15:00Z,25970
+2021-10-16T16:00Z,26481
+2021-10-16T17:00Z,26645
+2021-10-16T18:00Z,26389
+2021-10-16T19:00Z,26242
+2021-10-16T20:00Z,26555
+2021-10-16T21:00Z,27237
+2021-10-16T22:00Z,28259
+2021-10-16T23:00Z,29446
+2021-10-17,30992
+2021-10-17T01:00Z,32558
+2021-10-17T02:00Z,33113
+2021-10-17T03:00Z,32668
+2021-10-17T04:00Z,31452
+2021-10-17T05:00Z,30210
+2021-10-17T06:00Z,28527
+2021-10-17T07:00Z,26806
+2021-10-17T08:00Z,25495
+2021-10-17T09:00Z,24456
+2021-10-17T10:00Z,23701
+2021-10-17T11:00Z,23266
+2021-10-17T12:00Z,23477
+2021-10-17T13:00Z,23608
+2021-10-17T14:00Z,24295
+2021-10-17T15:00Z,24397
+2021-10-17T16:00Z,24885
+2021-10-17T17:00Z,24650
+2021-10-17T18:00Z,24566
+2021-10-17T19:00Z,24366
+2021-10-17T20:00Z,24400
+2021-10-17T21:00Z,24591
+2021-10-17T22:00Z,25219
+2021-10-17T23:00Z,26710
+2021-10-18,28044
+2021-10-18T01:00Z,29404
+2021-10-18T02:00Z,30956
+2021-10-18T03:00Z,31117
+2021-10-18T04:00Z,30147
+2021-10-18T05:00Z,29061
+2021-10-18T06:00Z,27451
+2021-10-18T07:00Z,25964
+2021-10-18T08:00Z,24984
+2021-10-18T09:00Z,24488
+2021-10-18T10:00Z,24060
+2021-10-18T11:00Z,24129
+2021-10-18T12:00Z,24535
+2021-10-18T13:00Z,25841
+2021-10-18T14:00Z,28204
+2021-10-18T15:00Z,29968
+2021-10-18T16:00Z,30426
+2021-10-18T17:00Z,30793
+2021-10-18T18:00Z,30504
+2021-10-18T19:00Z,29694
+2021-10-18T20:00Z,29283
+2021-10-18T21:00Z,29036
+2021-10-18T22:00Z,28805
+2021-10-18T23:00Z,29130
+2021-10-19,29324
+2021-10-19T01:00Z,30830
+2021-10-19T02:00Z,32673
+2021-10-19T03:00Z,32805
+2021-10-19T04:00Z,31870
+2021-10-19T05:00Z,30546
+2021-10-19T06:00Z,28670
+2021-10-19T07:00Z,26971
+2021-10-19T08:00Z,25690
+2021-10-19T09:00Z,24817
+2021-10-19T10:00Z,24343
+2021-10-19T11:00Z,24293
+2021-10-19T12:00Z,24701
+2021-10-19T13:00Z,26243
+2021-10-19T14:00Z,28924
+2021-10-19T15:00Z,30581
+2021-10-19T16:00Z,30110
+2021-10-19T17:00Z,29440
+2021-10-19T18:00Z,28852
+2021-10-19T19:00Z,27968
+2021-10-19T20:00Z,27367
+2021-10-19T21:00Z,27347
+2021-10-19T22:00Z,27883
+2021-10-19T23:00Z,28658
+2021-10-20,29597
+2021-10-20T01:00Z,31235
+2021-10-20T02:00Z,33163
+2021-10-20T03:00Z,33184
+2021-10-20T04:00Z,32159
+2021-10-20T05:00Z,30872
+2021-10-20T06:00Z,28883
+2021-10-20T07:00Z,27031
+2021-10-20T08:00Z,25827
+2021-10-20T09:00Z,24991
+2021-10-20T10:00Z,24464
+2021-10-20T11:00Z,24370
+2021-10-20T12:00Z,24742
+2021-10-20T13:00Z,26108
+2021-10-20T14:00Z,28642
+2021-10-20T15:00Z,30191
+2021-10-20T16:00Z,30467
+2021-10-20T17:00Z,30328
+2021-10-20T18:00Z,29797
+2021-10-20T19:00Z,29628
+2021-10-20T20:00Z,29659
+2021-10-20T21:00Z,29980
+2021-10-20T22:00Z,30117
+2021-10-20T23:00Z,30125
+2021-10-21,31155
+2021-10-21T01:00Z,32339
+2021-10-21T02:00Z,33577
+2021-10-21T03:00Z,33418
+2021-10-21T04:00Z,32434
+2021-10-21T05:00Z,31295
+2021-10-21T06:00Z,29338
+2021-10-21T07:00Z,27566
+2021-10-21T08:00Z,26222
+2021-10-21T09:00Z,25295
+2021-10-21T10:00Z,24776
+2021-10-21T11:00Z,24574
+2021-10-21T12:00Z,25008
+2021-10-21T13:00Z,26321
+2021-10-21T14:00Z,28844
+2021-10-21T15:00Z,30448
+2021-10-21T16:00Z,30570
+2021-10-21T17:00Z,30108
+2021-10-21T18:00Z,30181
+2021-10-21T19:00Z,29888
+2021-10-21T20:00Z,29766
+2021-10-21T21:00Z,30096
+2021-10-21T22:00Z,30712
+2021-10-21T23:00Z,31309
+2021-10-22,32137
+2021-10-22T01:00Z,33125
+2021-10-22T02:00Z,34078
+2021-10-22T03:00Z,33860
+2021-10-22T04:00Z,32718
+2021-10-22T05:00Z,31349
+2021-10-22T06:00Z,29340
+2021-10-22T07:00Z,27475
+2021-10-22T08:00Z,26247
+2021-10-22T09:00Z,25326
+2021-10-22T10:00Z,24671
+2021-10-22T11:00Z,24826
+2021-10-22T12:00Z,25151
+2021-10-22T13:00Z,26397
+2021-10-22T14:00Z,28489
+2021-10-22T15:00Z,29848
+2021-10-22T16:00Z,30084
+2021-10-22T17:00Z,30285
+2021-10-22T18:00Z,30031
+2021-10-22T19:00Z,29837
+2021-10-22T20:00Z,29390
+2021-10-22T21:00Z,29447
+2021-10-22T22:00Z,29493
+2021-10-22T23:00Z,29820
+2021-10-23,29965
+2021-10-23T01:00Z,31320
+2021-10-23T02:00Z,32539
+2021-10-23T03:00Z,32261
+2021-10-23T04:00Z,31350
+2021-10-23T05:00Z,30308
+2021-10-23T06:00Z,28827
+2021-10-23T07:00Z,27294
+2021-10-23T08:00Z,26157
+2021-10-23T09:00Z,25151
+2021-10-23T10:00Z,24438
+2021-10-23T11:00Z,23964
+2021-10-23T12:00Z,23908
+2021-10-23T13:00Z,24267
+2021-10-23T14:00Z,25254
+2021-10-23T15:00Z,25961
+2021-10-23T16:00Z,26430
+2021-10-23T17:00Z,27086
+2021-10-23T18:00Z,27658
+2021-10-23T19:00Z,26862
+2021-10-23T20:00Z,26430
+2021-10-23T21:00Z,26227
+2021-10-23T22:00Z,26653
+2021-10-23T23:00Z,27509
+2021-10-24,27951
+2021-10-24T01:00Z,28986
+2021-10-24T02:00Z,30552
+2021-10-24T03:00Z,30541
+2021-10-24T04:00Z,29672
+2021-10-24T05:00Z,28990
+2021-10-24T06:00Z,27561
+2021-10-24T07:00Z,26183
+2021-10-24T08:00Z,25111
+2021-10-24T09:00Z,24150
+2021-10-24T10:00Z,23510
+2021-10-24T11:00Z,23076
+2021-10-24T12:00Z,22993
+2021-10-24T13:00Z,23218
+2021-10-24T14:00Z,24051
+2021-10-24T15:00Z,24655
+2021-10-24T16:00Z,25254
+2021-10-24T17:00Z,25615
+2021-10-24T18:00Z,25843
+2021-10-24T19:00Z,26164
+2021-10-24T20:00Z,26420
+2021-10-24T21:00Z,26605
+2021-10-24T22:00Z,26707
+2021-10-24T23:00Z,27335
+2021-10-25,28422
+2021-10-25T01:00Z,29877
+2021-10-25T02:00Z,31352
+2021-10-25T03:00Z,31213
+2021-10-25T04:00Z,30265
+2021-10-25T05:00Z,29288
+2021-10-25T06:00Z,27616
+2021-10-25T07:00Z,25893
+2021-10-25T08:00Z,24740
+2021-10-25T09:00Z,24297
+2021-10-25T10:00Z,23856
+2021-10-25T11:00Z,23886
+2021-10-25T12:00Z,24302
+2021-10-25T13:00Z,25587
+2021-10-25T14:00Z,27919
+2021-10-25T15:00Z,29277
+2021-10-25T16:00Z,30285
+2021-10-25T17:00Z,30403
+2021-10-25T18:00Z,30143
+2021-10-25T19:00Z,29936
+2021-10-25T20:00Z,30097
+2021-10-25T21:00Z,30101
+2021-10-25T22:00Z,31206
+2021-10-25T23:00Z,29459
+2021-10-26,29821
+2021-10-26T01:00Z,30677
+2021-10-26T02:00Z,32089
+2021-10-26T03:00Z,31981
+2021-10-26T04:00Z,31195
+2021-10-26T05:00Z,31087
+2021-10-26T06:00Z,28269
+2021-10-26T07:00Z,26574
+2021-10-26T08:00Z,25503
+2021-10-26T09:00Z,24942
+2021-10-26T10:00Z,24549
+2021-10-26T11:00Z,24363
+2021-10-26T12:00Z,24829
+2021-10-26T13:00Z,26003
+2021-10-26T14:00Z,28416
+2021-10-26T15:00Z,30092
+2021-10-26T16:00Z,29878
+2021-10-26T17:00Z,29937
+2021-10-26T18:00Z,29010
+2021-10-26T19:00Z,28614
+2021-10-26T20:00Z,28047
+2021-10-26T21:00Z,27824
+2021-10-26T22:00Z,28164
+2021-10-26T23:00Z,28714
+2021-10-27,29476
+2021-10-27T01:00Z,31163
+2021-10-27T02:00Z,32829
+2021-10-27T03:00Z,32743
+2021-10-27T04:00Z,31789
+2021-10-27T05:00Z,30503
+2021-10-27T06:00Z,28659
+2021-10-27T07:00Z,26854
+2021-10-27T08:00Z,25956
+2021-10-27T09:00Z,25354
+2021-10-27T10:00Z,24796
+2021-10-27T11:00Z,24678
+2021-10-27T12:00Z,24882
+2021-10-27T13:00Z,26032
+2021-10-27T14:00Z,28575
+2021-10-27T15:00Z,30270
+2021-10-27T16:00Z,29931
+2021-10-27T17:00Z,29440
+2021-10-27T18:00Z,29160
+2021-10-27T19:00Z,28950
+2021-10-27T20:00Z,28839
+2021-10-27T21:00Z,29066
+2021-10-27T22:00Z,29461
+2021-10-27T23:00Z,30103
+2021-10-28,31226
+2021-10-28T01:00Z,32721
+2021-10-28T02:00Z,34124
+2021-10-28T03:00Z,33929
+2021-10-28T04:00Z,32862
+2021-10-28T05:00Z,31494
+2021-10-28T06:00Z,29372
+2021-10-28T07:00Z,27470
+2021-10-28T08:00Z,26191
+2021-10-28T09:00Z,25288
+2021-10-28T10:00Z,24613
+2021-10-28T11:00Z,24460
+2021-10-28T12:00Z,24771
+2021-10-28T13:00Z,26084
+2021-10-28T14:00Z,28599
+2021-10-28T15:00Z,30239
+2021-10-28T16:00Z,30271
+2021-10-28T17:00Z,29700
+2021-10-28T18:00Z,29655
+2021-10-28T19:00Z,29698
+2021-10-28T20:00Z,30209
+2021-10-28T21:00Z,31003
+2021-10-28T22:00Z,31906
+2021-10-28T23:00Z,32962
+2021-10-29,34343
+2021-10-29T01:00Z,35821
+2021-10-29T02:00Z,36307
+2021-10-29T03:00Z,35567
+2021-10-29T04:00Z,34155
+2021-10-29T05:00Z,32637
+2021-10-29T06:00Z,30398
+2021-10-29T07:00Z,28329
+2021-10-29T08:00Z,26882
+2021-10-29T09:00Z,26158
+2021-10-29T10:00Z,25365
+2021-10-29T11:00Z,25143
+2021-10-29T12:00Z,25247
+2021-10-29T13:00Z,26234
+2021-10-29T14:00Z,28418
+2021-10-29T15:00Z,29895
+2021-10-29T16:00Z,29832
+2021-10-29T17:00Z,29848
+2021-10-29T18:00Z,29825
+2021-10-29T19:00Z,29961
+2021-10-29T20:00Z,30161
+2021-10-29T21:00Z,30515
+2021-10-29T22:00Z,31429
+2021-10-29T23:00Z,32570
+2021-10-30,33861
+2021-10-30T01:00Z,34648
+2021-10-30T02:00Z,34950
+2021-10-30T03:00Z,34197
+2021-10-30T04:00Z,32983
+2021-10-30T05:00Z,31750
+2021-10-30T06:00Z,29847
+2021-10-30T07:00Z,27986
+2021-10-30T08:00Z,26639
+2021-10-30T09:00Z,25517
+2021-10-30T10:00Z,24625
+2021-10-30T11:00Z,24229
+2021-10-30T12:00Z,24404
+2021-10-30T13:00Z,24898
+2021-10-30T14:00Z,25879
+2021-10-30T15:00Z,26581
+2021-10-30T16:00Z,26775
+2021-10-30T17:00Z,27140
+2021-10-30T18:00Z,26807
+2021-10-30T19:00Z,26272
+2021-10-30T20:00Z,26139
+2021-10-30T21:00Z,26466
+2021-10-30T22:00Z,26759
+2021-10-30T23:00Z,27409
+2021-10-31,28556
+2021-10-31T01:00Z,30139
+2021-10-31T02:00Z,31453
+2021-10-31T03:00Z,31052
+2021-10-31T04:00Z,30076
+2021-10-31T05:00Z,29169
+2021-10-31T06:00Z,27868
+2021-10-31T07:00Z,26510
+2021-10-31T08:00Z,25723
+2021-10-31T09:00Z,24814
+2021-10-31T10:00Z,24105
+2021-10-31T11:00Z,23732
+2021-10-31T12:00Z,23632
+2021-10-31T13:00Z,23807
+2021-10-31T14:00Z,24515
+2021-10-31T15:00Z,25153
+2021-10-31T16:00Z,25639
+2021-10-31T17:00Z,26299
+2021-10-31T18:00Z,26007
+2021-10-31T19:00Z,25144
+2021-10-31T20:00Z,24748
+2021-10-31T21:00Z,24582
+2021-10-31T22:00Z,25061
+2021-10-31T23:00Z,26021
+2021-11-01,27225
+2021-11-01T01:00Z,28663
+2021-11-01T02:00Z,29851
+2021-11-01T03:00Z,29410
+2021-11-01T04:00Z,28996
+2021-11-01T05:00Z,28430
+2021-11-01T06:00Z,27110
+2021-11-01T07:00Z,25594
+2021-11-01T08:00Z,24898
+2021-11-01T09:00Z,24312
+2021-11-01T10:00Z,23841
+2021-11-01T11:00Z,23657
+2021-11-01T12:00Z,24107
+2021-11-01T13:00Z,25500
+2021-11-01T14:00Z,27524
+2021-11-01T15:00Z,29310
+2021-11-01T16:00Z,29996
+2021-11-01T17:00Z,30435
+2021-11-01T18:00Z,30561
+2021-11-01T19:00Z,30673
+2021-11-01T20:00Z,30671
+2021-11-01T21:00Z,30417
+2021-11-01T22:00Z,30450
+2021-11-01T23:00Z,30559
+2021-11-02,30646
+2021-11-02T01:00Z,32084
+2021-11-02T02:00Z,33528
+2021-11-02T03:00Z,33131
+2021-11-02T04:00Z,32172
+2021-11-02T05:00Z,30869
+2021-11-02T06:00Z,28920
+2021-11-02T07:00Z,27160
+2021-11-02T08:00Z,25861
+2021-11-02T09:00Z,25052
+2021-11-02T10:00Z,24467
+2021-11-02T11:00Z,24176
+2021-11-02T12:00Z,24539
+2021-11-02T13:00Z,25844
+2021-11-02T14:00Z,28378
+2021-11-02T15:00Z,30401
+2021-11-02T16:00Z,30330
+2021-11-02T17:00Z,30396
+2021-11-02T18:00Z,29991
+2021-11-02T19:00Z,29430
+2021-11-02T20:00Z,28453
+2021-11-02T21:00Z,28615
+2021-11-02T22:00Z,29068
+2021-11-02T23:00Z,29324
+2021-11-03,30168
+2021-11-03T01:00Z,32024
+2021-11-03T02:00Z,33570
+2021-11-03T03:00Z,33348
+2021-11-03T04:00Z,32298
+2021-11-03T05:00Z,30945
+2021-11-03T06:00Z,28782
+2021-11-03T07:00Z,26851
+2021-11-03T08:00Z,25667
+2021-11-03T09:00Z,24672
+2021-11-03T10:00Z,24078
+2021-11-03T11:00Z,23996
+2021-11-03T12:00Z,24367
+2021-11-03T13:00Z,25581
+2021-11-03T14:00Z,28067
+2021-11-03T15:00Z,30001
+2021-11-03T16:00Z,29776
+2021-11-03T17:00Z,29572
+2021-11-03T18:00Z,28731
+2021-11-03T19:00Z,28473
+2021-11-03T20:00Z,28373
+2021-11-03T21:00Z,28719
+2021-11-03T22:00Z,29436
+2021-11-03T23:00Z,29864
+2021-11-04,31173
+2021-11-04T01:00Z,32751
+2021-11-04T02:00Z,33917
+2021-11-04T03:00Z,33371
+2021-11-04T04:00Z,32197
+2021-11-04T05:00Z,30919
+2021-11-04T06:00Z,28967
+2021-11-04T07:00Z,26940
+2021-11-04T08:00Z,25923
+2021-11-04T09:00Z,24962
+2021-11-04T10:00Z,24359
+2021-11-04T11:00Z,24168
+2021-11-04T12:00Z,24430
+2021-11-04T13:00Z,25790
+2021-11-04T14:00Z,28250
+2021-11-04T15:00Z,29972
+2021-11-04T16:00Z,30001
+2021-11-04T17:00Z,29969
+2021-11-04T18:00Z,30102
+2021-11-04T19:00Z,29673
+2021-11-04T20:00Z,29624
+2021-11-04T21:00Z,29860
+2021-11-04T22:00Z,30456
+2021-11-04T23:00Z,31005
+2021-11-05,31466
+2021-11-05T01:00Z,32804
+2021-11-05T02:00Z,33850
+2021-11-05T03:00Z,33421
+2021-11-05T04:00Z,32374
+2021-11-05T05:00Z,31019
+2021-11-05T06:00Z,29306
+2021-11-05T07:00Z,27822
+2021-11-05T08:00Z,26325
+2021-11-05T09:00Z,25240
+2021-11-05T10:00Z,24617
+2021-11-05T11:00Z,24353
+2021-11-05T12:00Z,24729
+2021-11-05T13:00Z,25886
+2021-11-05T14:00Z,28249
+2021-11-05T15:00Z,30180
+2021-11-05T16:00Z,30024
+2021-11-05T17:00Z,29637
+2021-11-05T18:00Z,29057
+2021-11-05T19:00Z,28498
+2021-11-05T20:00Z,28398
+2021-11-05T21:00Z,28767
+2021-11-05T22:00Z,28896
+2021-11-05T23:00Z,29925
+2021-11-06,31028
+2021-11-06T01:00Z,32193
+2021-11-06T02:00Z,33118
+2021-11-06T03:00Z,32421
+2021-11-06T04:00Z,31483
+2021-11-06T05:00Z,30400
+2021-11-06T06:00Z,28696
+2021-11-06T07:00Z,27045
+2021-11-06T08:00Z,25760
+2021-11-06T09:00Z,24734
+2021-11-06T10:00Z,24389
+2021-11-06T11:00Z,24088
+2021-11-06T12:00Z,23810
+2021-11-06T13:00Z,24251
+2021-11-06T14:00Z,25339
+2021-11-06T15:00Z,26372
+2021-11-06T16:00Z,26788
+2021-11-06T17:00Z,26960
+2021-11-06T18:00Z,27131
+2021-11-06T19:00Z,26659
+2021-11-06T20:00Z,26354
+2021-11-06T21:00Z,26251
+2021-11-06T22:00Z,26418
+2021-11-06T23:00Z,27032
+2021-11-07,27655
+2021-11-07T01:00Z,29276
+2021-11-07T02:00Z,30958
+2021-11-07T03:00Z,30513
+2021-11-07T04:00Z,29749
+2021-11-07T05:00Z,28838
+2021-11-07T06:00Z,27534
+2021-11-07T07:00Z,26100
+2021-11-07T08:00Z,24987
+2021-11-07T09:00Z,24242
+2021-11-07T10:00Z,23826
+2021-11-07T11:00Z,23551
+2021-11-07T12:00Z,23184
+2021-11-07T13:00Z,23150
+2021-11-07T14:00Z,23749
+2021-11-07T15:00Z,24444
+2021-11-07T16:00Z,25053
+2021-11-07T17:00Z,25360
+2021-11-07T18:00Z,24541
+2021-11-07T19:00Z,23322
+2021-11-07T20:00Z,22861
+2021-11-07T21:00Z,23203
+2021-11-07T22:00Z,23921
+2021-11-07T23:00Z,25513
+2021-11-08,26788
+2021-11-08T01:00Z,28678
+2021-11-08T02:00Z,30945
+2021-11-08T03:00Z,30951
+2021-11-08T04:00Z,30383
+2021-11-08T05:00Z,29616
+2021-11-08T06:00Z,28361
+2021-11-08T07:00Z,26770
+2021-11-08T08:00Z,25386
+2021-11-08T09:00Z,24481
+2021-11-08T10:00Z,24127
+2021-11-08T11:00Z,23700
+2021-11-08T12:00Z,23698
+2021-11-08T13:00Z,24370
+2021-11-08T14:00Z,25973
+2021-11-08T15:00Z,28328
+2021-11-08T16:00Z,29175
+2021-11-08T17:00Z,28421
+2021-11-08T18:00Z,27389
+2021-11-08T19:00Z,26719
+2021-11-08T20:00Z,26465
+2021-11-08T21:00Z,26849
+2021-11-08T22:00Z,27824
+2021-11-08T23:00Z,28685
+2021-11-09,30582
+2021-11-09T01:00Z,32056
+2021-11-09T02:00Z,33530
+2021-11-09T03:00Z,33108
+2021-11-09T04:00Z,32160
+2021-11-09T05:00Z,31209
+2021-11-09T06:00Z,29781
+2021-11-09T07:00Z,27738
+2021-11-09T08:00Z,26233
+2021-11-09T09:00Z,25635
+2021-11-09T10:00Z,25032
+2021-11-09T11:00Z,24685
+2021-11-09T12:00Z,24578
+2021-11-09T13:00Z,24901
+2021-11-09T14:00Z,26385
+2021-11-09T15:00Z,28779
+2021-11-09T16:00Z,29950
+2021-11-09T17:00Z,30258
+2021-11-09T18:00Z,30292
+2021-11-09T19:00Z,29999
+2021-11-09T20:00Z,29782
+2021-11-09T21:00Z,29661
+2021-11-09T22:00Z,29751
+2021-11-09T23:00Z,30215
+2021-11-10,30822
+2021-11-10T01:00Z,32362
+2021-11-10T02:00Z,34239
+2021-11-10T03:00Z,33896
+2021-11-10T04:00Z,33044
+2021-11-10T05:00Z,32016
+2021-11-10T06:00Z,30493
+2021-11-10T07:00Z,28459
+2021-11-10T08:00Z,26802
+2021-11-10T09:00Z,25812
+2021-11-10T10:00Z,24895
+2021-11-10T11:00Z,24744
+2021-11-10T12:00Z,24439
+2021-11-10T13:00Z,24687
+2021-11-10T14:00Z,26241
+2021-11-10T15:00Z,28545
+2021-11-10T16:00Z,29455
+2021-11-10T17:00Z,29587
+2021-11-10T18:00Z,29249
+2021-11-10T19:00Z,29125
+2021-11-10T20:00Z,28893
+2021-11-10T21:00Z,29071
+2021-11-10T22:00Z,29561
+2021-11-10T23:00Z,29716
+2021-11-11,31196
+2021-11-11T01:00Z,32710
+2021-11-11T02:00Z,34281
+2021-11-11T03:00Z,33901
+2021-11-11T04:00Z,32978
+2021-11-11T05:00Z,31879
+2021-11-11T06:00Z,30569
+2021-11-11T07:00Z,28678
+2021-11-11T08:00Z,26987
+2021-11-11T09:00Z,25846
+2021-11-11T10:00Z,25041
+2021-11-11T11:00Z,24525
+2021-11-11T12:00Z,24469
+2021-11-11T13:00Z,24757
+2021-11-11T14:00Z,25990
+2021-11-11T15:00Z,27657
+2021-11-11T16:00Z,28660
+2021-11-11T17:00Z,29309
+2021-11-11T18:00Z,29223
+2021-11-11T19:00Z,29420
+2021-11-11T20:00Z,29372
+2021-11-11T21:00Z,29854
+2021-11-11T22:00Z,30595
+2021-11-11T23:00Z,31877
+2021-11-12,33328
+2021-11-12T01:00Z,34550
+2021-11-12T02:00Z,35519
+2021-11-12T03:00Z,35101
+2021-11-12T04:00Z,33923
+2021-11-12T05:00Z,32693
+2021-11-12T06:00Z,31275
+2021-11-12T07:00Z,29340
+2021-11-12T08:00Z,27589
+2021-11-12T09:00Z,26262
+2021-11-12T10:00Z,25332
+2021-11-12T11:00Z,24780
+2021-11-12T12:00Z,24770
+2021-11-12T13:00Z,25271
+2021-11-12T14:00Z,26811
+2021-11-12T15:00Z,28729
+2021-11-12T16:00Z,29819
+2021-11-12T17:00Z,30537
+2021-11-12T18:00Z,30956
+2021-11-12T19:00Z,31683
+2021-11-12T20:00Z,31630
+2021-11-12T21:00Z,31814
+2021-11-12T22:00Z,32784
+2021-11-12T23:00Z,33995
+2021-11-13,35581
+2021-11-13T01:00Z,36593
+2021-11-13T02:00Z,36965
+2021-11-13T03:00Z,35720
+2021-11-13T04:00Z,34349
+2021-11-13T05:00Z,32980
+2021-11-13T06:00Z,31651
+2021-11-13T07:00Z,29820
+2021-11-13T08:00Z,27958
+2021-11-13T09:00Z,26491
+2021-11-13T10:00Z,25440
+2021-11-13T11:00Z,24884
+2021-11-13T12:00Z,24323
+2021-11-13T13:00Z,24257
+2021-11-13T14:00Z,24857
+2021-11-13T15:00Z,25495
+2021-11-13T16:00Z,26158
+2021-11-13T17:00Z,26916
+2021-11-13T18:00Z,27585
+2021-11-13T19:00Z,27734
+2021-11-13T20:00Z,28244
+2021-11-13T21:00Z,28614
+2021-11-13T22:00Z,29173
+2021-11-13T23:00Z,29708
+2021-11-14,31411
+2021-11-14T01:00Z,32523
+2021-11-14T02:00Z,33483
+2021-11-14T03:00Z,32715
+2021-11-14T04:00Z,31387
+2021-11-14T05:00Z,30291
+2021-11-14T06:00Z,29216
+2021-11-14T07:00Z,27717
+2021-11-14T08:00Z,26158
+2021-11-14T09:00Z,24922
+2021-11-14T10:00Z,23970
+2021-11-14T11:00Z,23424
+2021-11-14T12:00Z,23460
+2021-11-14T13:00Z,23571
+2021-11-14T14:00Z,23875
+2021-11-14T15:00Z,24498
+2021-11-14T16:00Z,25040
+2021-11-14T17:00Z,25091
+2021-11-14T18:00Z,25103
+2021-11-14T19:00Z,25963
+2021-11-14T20:00Z,26202
+2021-11-14T21:00Z,26555
+2021-11-14T22:00Z,27424
+2021-11-14T23:00Z,28492
+2021-11-15,30233
+2021-11-15T01:00Z,31724
+2021-11-15T02:00Z,33307
+2021-11-15T03:00Z,32747
+2021-11-15T04:00Z,31667
+2021-11-15T05:00Z,30531
+2021-11-15T06:00Z,29123
+2021-11-15T07:00Z,27255
+2021-11-15T08:00Z,25786
+2021-11-15T09:00Z,24848
+2021-11-15T10:00Z,24415
+2021-11-15T11:00Z,23953
+2021-11-15T12:00Z,24112
+2021-11-15T13:00Z,24205
+2021-11-15T14:00Z,25718
+2021-11-15T15:00Z,27661
+2021-11-15T16:00Z,28704
+2021-11-15T17:00Z,29673
+2021-11-15T18:00Z,30261
+2021-11-15T19:00Z,30855
+2021-11-15T20:00Z,30880
+2021-11-15T21:00Z,31045
+2021-11-15T22:00Z,31508
+2021-11-15T23:00Z,32140
+2021-11-16,33160
+2021-11-16T01:00Z,34266
+2021-11-16T02:00Z,35386
+2021-11-16T03:00Z,34644
+2021-11-16T04:00Z,33508
+2021-11-16T05:00Z,32230
+2021-11-16T06:00Z,30573
+2021-11-16T07:00Z,28601
+2021-11-16T08:00Z,26738
+2021-11-16T09:00Z,25499
+2021-11-16T10:00Z,24652
+2021-11-16T11:00Z,24278
+2021-11-16T12:00Z,23904
+2021-11-16T13:00Z,24411
+2021-11-16T14:00Z,25903
+2021-11-16T15:00Z,28226
+2021-11-16T16:00Z,29426
+2021-11-16T17:00Z,29972
+2021-11-16T18:00Z,29945
+2021-11-16T19:00Z,29997
+2021-11-16T20:00Z,29515
+2021-11-16T21:00Z,29801
+2021-11-16T22:00Z,29967
+2021-11-16T23:00Z,30356
+2021-11-17,30756
+2021-11-17T01:00Z,32326
+2021-11-17T02:00Z,34182
+2021-11-17T03:00Z,33587
+2021-11-17T04:00Z,32727
+2021-11-17T05:00Z,31639
+2021-11-17T06:00Z,30314
+2021-11-17T07:00Z,28307
+2021-11-17T08:00Z,26509
+2021-11-17T09:00Z,25310
+2021-11-17T10:00Z,24581
+2021-11-17T11:00Z,24069
+2021-11-17T12:00Z,23948
+2021-11-17T13:00Z,24397
+2021-11-17T14:00Z,25897
+2021-11-17T15:00Z,28245
+2021-11-17T16:00Z,29486
+2021-11-17T17:00Z,29780
+2021-11-17T18:00Z,29610
+2021-11-17T19:00Z,28980
+2021-11-17T20:00Z,28805
+2021-11-17T21:00Z,28777
+2021-11-17T22:00Z,29210
+2021-11-17T23:00Z,29956
+2021-11-18,30666
+2021-11-18T01:00Z,32249
+2021-11-18T02:00Z,34078
+2021-11-18T03:00Z,33690
+2021-11-18T04:00Z,32828
+2021-11-18T05:00Z,31870
+2021-11-18T06:00Z,30490
+2021-11-18T07:00Z,28546
+2021-11-18T08:00Z,26699
+2021-11-18T09:00Z,25511
+2021-11-18T10:00Z,24749
+2021-11-18T11:00Z,24282
+2021-11-18T12:00Z,24364
+2021-11-18T13:00Z,24681
+2021-11-18T14:00Z,26115
+2021-11-18T15:00Z,28513
+2021-11-18T16:00Z,29577
+2021-11-18T17:00Z,29756
+2021-11-18T18:00Z,29683
+2021-11-18T19:00Z,29190
+2021-11-18T20:00Z,29057
+2021-11-18T21:00Z,29376
+2021-11-18T22:00Z,29776
+2021-11-18T23:00Z,30223
+2021-11-19,31009
+2021-11-19T01:00Z,32389
+2021-11-19T02:00Z,34047
+2021-11-19T03:00Z,33616
+2021-11-19T04:00Z,32868
+2021-11-19T05:00Z,31925
+2021-11-19T06:00Z,30506
+2021-11-19T07:00Z,28617
+2021-11-19T08:00Z,26870
+2021-11-19T09:00Z,25641
+2021-11-19T10:00Z,24724
+2021-11-19T11:00Z,24246
+2021-11-19T12:00Z,24186
+2021-11-19T13:00Z,24651
+2021-11-19T14:00Z,26022
+2021-11-19T15:00Z,28326
+2021-11-19T16:00Z,29588
+2021-11-19T17:00Z,30053
+2021-11-19T18:00Z,29865
+2021-11-19T19:00Z,29457
+2021-11-19T20:00Z,29299
+2021-11-19T21:00Z,29512
+2021-11-19T22:00Z,29871
+2021-11-19T23:00Z,29962
+2021-11-20,30506
+2021-11-20T01:00Z,31906
+2021-11-20T02:00Z,33377
+2021-11-20T03:00Z,32741
+2021-11-20T04:00Z,31945
+2021-11-20T05:00Z,31071
+2021-11-20T06:00Z,29990
+2021-11-20T07:00Z,28438
+2021-11-20T08:00Z,26785
+2021-11-20T09:00Z,25635
+2021-11-20T10:00Z,24684
+2021-11-20T11:00Z,24392
+2021-11-20T12:00Z,24488
+2021-11-20T13:00Z,24379
+2021-11-20T14:00Z,25132
+2021-11-20T15:00Z,26112
+2021-11-20T16:00Z,26788
+2021-11-20T17:00Z,27314
+2021-11-20T18:00Z,26782
+2021-11-20T19:00Z,26190
+2021-11-20T20:00Z,25605
+2021-11-20T21:00Z,25351
+2021-11-20T22:00Z,25901
+2021-11-20T23:00Z,26756
+2021-11-21,27050
+2021-11-21T01:00Z,29013
+2021-11-21T02:00Z,31038
+2021-11-21T03:00Z,30796
+2021-11-21T04:00Z,30180
+2021-11-21T05:00Z,29502
+2021-11-21T06:00Z,28718
+2021-11-21T07:00Z,27277
+2021-11-21T08:00Z,26096
+2021-11-21T09:00Z,25105
+2021-11-21T10:00Z,23942
+2021-11-21T11:00Z,23444
+2021-11-21T12:00Z,23151
+2021-11-21T13:00Z,23197
+2021-11-21T14:00Z,23684
+2021-11-21T15:00Z,24462
+2021-11-21T16:00Z,24891
+2021-11-21T17:00Z,25697
+2021-11-21T18:00Z,25486
+2021-11-21T19:00Z,25083
+2021-11-21T20:00Z,24824
+2021-11-21T21:00Z,24832
+2021-11-21T22:00Z,25428
+2021-11-21T23:00Z,26166
+2021-11-22,27598
+2021-11-22T01:00Z,29281
+2021-11-22T02:00Z,31326
+2021-11-22T03:00Z,31186
+2021-11-22T04:00Z,30509
+2021-11-22T05:00Z,29685
+2021-11-22T06:00Z,28659
+2021-11-22T07:00Z,27086
+2021-11-22T08:00Z,25661
+2021-11-22T09:00Z,24604
+2021-11-22T10:00Z,23899
+2021-11-22T11:00Z,23723
+2021-11-22T12:00Z,23650
+2021-11-22T13:00Z,24070
+2021-11-22T14:00Z,25707
+2021-11-22T15:00Z,27967
+2021-11-22T16:00Z,29195
+2021-11-22T17:00Z,29843
+2021-11-22T18:00Z,29640
+2021-11-22T19:00Z,29125
+2021-11-22T20:00Z,28986
+2021-11-22T21:00Z,29212
+2021-11-22T22:00Z,29867
+2021-11-22T23:00Z,30528
+2021-11-23,31745
+2021-11-23T01:00Z,32788
+2021-11-23T02:00Z,34327
+2021-11-23T03:00Z,33940
+2021-11-23T04:00Z,32993
+2021-11-23T05:00Z,32068
+2021-11-23T06:00Z,30798
+2021-11-23T07:00Z,28853
+2021-11-23T08:00Z,27023
+2021-11-23T09:00Z,25802
+2021-11-23T10:00Z,24888
+2021-11-23T11:00Z,24279
+2021-11-23T12:00Z,24315
+2021-11-23T13:00Z,24697
+2021-11-23T14:00Z,26129
+2021-11-23T15:00Z,28088
+2021-11-23T16:00Z,29355
+2021-11-23T17:00Z,29823
+2021-11-23T18:00Z,30055
+2021-11-23T19:00Z,29585
+2021-11-23T20:00Z,29344
+2021-11-23T21:00Z,29266
+2021-11-23T22:00Z,29717
+2021-11-23T23:00Z,30535
+2021-11-24,30691
+2021-11-24T01:00Z,32291
+2021-11-24T02:00Z,34030
+2021-11-24T03:00Z,33506
+2021-11-24T04:00Z,32715
+2021-11-24T05:00Z,31852
+2021-11-24T06:00Z,30819
+2021-11-24T07:00Z,29384
+2021-11-24T08:00Z,27585
+2021-11-24T09:00Z,26242
+2021-11-24T10:00Z,25484
+2021-11-24T11:00Z,24707
+2021-11-24T12:00Z,24528
+2021-11-24T13:00Z,25054
+2021-11-24T14:00Z,26275
+2021-11-24T15:00Z,28324
+2021-11-24T16:00Z,29211
+2021-11-24T17:00Z,29297
+2021-11-24T18:00Z,29284
+2021-11-24T19:00Z,28366
+2021-11-24T20:00Z,28146
+2021-11-24T21:00Z,28240
+2021-11-24T22:00Z,28744
+2021-11-24T23:00Z,29079
+2021-11-25,29638
+2021-11-25T01:00Z,31536
+2021-11-25T02:00Z,33449
+2021-11-25T03:00Z,32971
+2021-11-25T04:00Z,32209
+2021-11-25T05:00Z,31467
+2021-11-25T06:00Z,30372
+2021-11-25T07:00Z,28697
+2021-11-25T08:00Z,26848
+2021-11-25T09:00Z,25573
+2021-11-25T10:00Z,24698
+2021-11-25T11:00Z,23892
+2021-11-25T12:00Z,23606
+2021-11-25T13:00Z,23643
+2021-11-25T14:00Z,24087
+2021-11-25T15:00Z,24948
+2021-11-25T16:00Z,25079
+2021-11-25T17:00Z,25345
+2021-11-25T18:00Z,25272
+2021-11-25T19:00Z,24998
+2021-11-25T20:00Z,24786
+2021-11-25T21:00Z,24674
+2021-11-25T22:00Z,25183
+2021-11-25T23:00Z,25758
+2021-11-26,26349
+2021-11-26T01:00Z,27750
+2021-11-26T02:00Z,28876
+2021-11-26T03:00Z,28209
+2021-11-26T04:00Z,27495
+2021-11-26T05:00Z,27394
+2021-11-26T06:00Z,26709
+2021-11-26T07:00Z,25825
+2021-11-26T08:00Z,24994
+2021-11-26T09:00Z,24026
+2021-11-26T10:00Z,23425
+2021-11-26T11:00Z,22997
+2021-11-26T12:00Z,22858
+2021-11-26T13:00Z,22959
+2021-11-26T14:00Z,23867
+2021-11-26T15:00Z,25029
+2021-11-26T16:00Z,25345
+2021-11-26T17:00Z,25388
+2021-11-26T18:00Z,24784
+2021-11-26T19:00Z,24336
+2021-11-26T20:00Z,24123
+2021-11-26T21:00Z,24068
+2021-11-26T22:00Z,24340
+2021-11-26T23:00Z,25450
+2021-11-27,27095
+2021-11-27T01:00Z,29104
+2021-11-27T02:00Z,30969
+2021-11-27T03:00Z,30619
+2021-11-27T04:00Z,30011
+2021-11-27T05:00Z,29285
+2021-11-27T06:00Z,28492
+2021-11-27T07:00Z,27150
+2021-11-27T08:00Z,25819
+2021-11-27T09:00Z,24623
+2021-11-27T10:00Z,23743
+2021-11-27T11:00Z,23166
+2021-11-27T12:00Z,22922
+2021-11-27T13:00Z,23009
+2021-11-27T14:00Z,23655
+2021-11-27T15:00Z,24595
+2021-11-27T16:00Z,24640
+2021-11-27T17:00Z,24631
+2021-11-27T18:00Z,24889
+2021-11-27T19:00Z,24615
+2021-11-27T20:00Z,24364
+2021-11-27T21:00Z,24237
+2021-11-27T22:00Z,24688
+2021-11-27T23:00Z,25578
+2021-11-28,26382
+2021-11-28T01:00Z,28437
+2021-11-28T02:00Z,30585
+2021-11-28T03:00Z,30461
+2021-11-28T04:00Z,29815
+2021-11-28T05:00Z,29179
+2021-11-28T06:00Z,28439
+2021-11-28T07:00Z,27001
+2021-11-28T08:00Z,25614
+2021-11-28T09:00Z,24482
+2021-11-28T10:00Z,23740
+2021-11-28T11:00Z,23177
+2021-11-28T12:00Z,22902
+2021-11-28T13:00Z,22916
+2021-11-28T14:00Z,23298
+2021-11-28T15:00Z,24000
+2021-11-28T16:00Z,24201
+2021-11-28T17:00Z,23928
+2021-11-28T18:00Z,24155
+2021-11-28T19:00Z,23860
+2021-11-28T20:00Z,23631
+2021-11-28T21:00Z,23859
+2021-11-28T22:00Z,24568
+2021-11-28T23:00Z,25726
+2021-11-29,26774
+2021-11-29T01:00Z,28869
+2021-11-29T02:00Z,31252
+2021-11-29T03:00Z,31209
+2021-11-29T04:00Z,29670
+2021-11-29T05:00Z,29779
+2021-11-29T06:00Z,28785
+2021-11-29T07:00Z,27089
+2021-11-29T08:00Z,25395
+2021-11-29T09:00Z,24572
+2021-11-29T10:00Z,24009
+2021-11-29T11:00Z,23539
+2021-11-29T12:00Z,23571
+2021-11-29T13:00Z,24235
+2021-11-29T14:00Z,25817
+2021-11-29T15:00Z,28171
+2021-11-29T16:00Z,29534
+2021-11-29T17:00Z,29471
+2021-11-29T18:00Z,29549
+2021-11-29T19:00Z,29053
+2021-11-29T20:00Z,28830
+2021-11-29T21:00Z,29183
+2021-11-29T22:00Z,29326
+2021-11-29T23:00Z,29985
+2021-11-30,31373
+2021-11-30T01:00Z,32956
+2021-11-30T02:00Z,34850
+2021-11-30T03:00Z,34389
+2021-11-30T04:00Z,33460
+2021-11-30T05:00Z,32311
+2021-11-30T06:00Z,31005
+2021-11-30T07:00Z,28905
+2021-11-30T08:00Z,27106
+2021-11-30T09:00Z,25924
+2021-11-30T10:00Z,25241
+2021-11-30T11:00Z,24635
+2021-11-30T12:00Z,24571
+2021-11-30T13:00Z,25122
+2021-11-30T14:00Z,26565
+2021-11-30T15:00Z,29227
+2021-11-30T16:00Z,30308
+2021-11-30T17:00Z,30448
+2021-11-30T18:00Z,29606
+2021-11-30T19:00Z,28917
+2021-11-30T20:00Z,28619
+2021-11-30T21:00Z,29030
+2021-11-30T22:00Z,29568
+2021-11-30T23:00Z,30361
+2021-12-01,31119
+2021-12-01T01:00Z,32959
+2021-12-01T02:00Z,34886
+2021-12-01T03:00Z,34490
+2021-12-01T04:00Z,33610
+2021-12-01T05:00Z,32707
+2021-12-01T06:00Z,31299
+2021-12-01T07:00Z,29373
+2021-12-01T08:00Z,27368
+2021-12-01T09:00Z,26016
+2021-12-01T10:00Z,25126
+2021-12-01T11:00Z,24593
+2021-12-01T12:00Z,24564
+2021-12-01T13:00Z,25189
+2021-12-01T14:00Z,26703
+2021-12-01T15:00Z,29141
+2021-12-01T16:00Z,30321
+2021-12-01T17:00Z,30053
+2021-12-01T18:00Z,29546
+2021-12-01T19:00Z,29248
+2021-12-01T20:00Z,29144
+2021-12-01T21:00Z,29310
+2021-12-01T22:00Z,29950
+2021-12-01T23:00Z,30415
+2021-12-02,31558
+2021-12-02T01:00Z,33055
+2021-12-02T02:00Z,34812
+2021-12-02T03:00Z,34365
+2021-12-02T04:00Z,33744
+2021-12-02T05:00Z,32712
+2021-12-02T06:00Z,31303
+2021-12-02T07:00Z,29285
+2021-12-02T08:00Z,27411
+2021-12-02T09:00Z,26293
+2021-12-02T10:00Z,25348
+2021-12-02T11:00Z,25044
+2021-12-02T12:00Z,24799
+2021-12-02T13:00Z,25165
+2021-12-02T14:00Z,26579
+2021-12-02T15:00Z,29075
+2021-12-02T16:00Z,30321
+2021-12-02T17:00Z,30542
+2021-12-02T18:00Z,30491
+2021-12-02T19:00Z,29640
+2021-12-02T20:00Z,29231
+2021-12-02T21:00Z,29111
+2021-12-02T22:00Z,29534
+2021-12-02T23:00Z,29904
+2021-12-03,30483
+2021-12-03T01:00Z,32391
+2021-12-03T02:00Z,34437
+2021-12-03T03:00Z,34342
+2021-12-03T04:00Z,33517
+2021-12-03T05:00Z,32587
+2021-12-03T06:00Z,31279
+2021-12-03T07:00Z,29247
+2021-12-03T08:00Z,27441
+2021-12-03T09:00Z,26173
+2021-12-03T10:00Z,25096
+2021-12-03T11:00Z,24508
+2021-12-03T12:00Z,24338
+2021-12-03T13:00Z,24895
+2021-12-03T14:00Z,26432
+2021-12-03T15:00Z,28917
+2021-12-03T16:00Z,30292
+2021-12-03T17:00Z,30429
+2021-12-03T18:00Z,30150
+2021-12-03T19:00Z,29549
+2021-12-03T20:00Z,29218
+2021-12-03T21:00Z,28900
+2021-12-03T22:00Z,28969
+2021-12-03T23:00Z,30580
+2021-12-04,30711
+2021-12-04T01:00Z,31996
+2021-12-04T02:00Z,33922
+2021-12-04T03:00Z,33464
+2021-12-04T04:00Z,32798
+2021-12-04T05:00Z,32100
+2021-12-04T06:00Z,31004
+2021-12-04T07:00Z,29389
+2021-12-04T08:00Z,27659
+2021-12-04T09:00Z,26353
+2021-12-04T10:00Z,25372
+2021-12-04T11:00Z,24970
+2021-12-04T12:00Z,24627
+2021-12-04T13:00Z,24578
+2021-12-04T14:00Z,25205
+2021-12-04T15:00Z,26309
+2021-12-04T16:00Z,26743
+2021-12-04T17:00Z,27946
+2021-12-04T18:00Z,28627
+2021-12-04T19:00Z,28256
+2021-12-04T20:00Z,27700
+2021-12-04T21:00Z,27014
+2021-12-04T22:00Z,27025
+2021-12-04T23:00Z,27255
+2021-12-05,27809
+2021-12-05T01:00Z,29906
+2021-12-05T02:00Z,32185
+2021-12-05T03:00Z,32150
+2021-12-05T04:00Z,31676
+2021-12-05T05:00Z,31102
+2021-12-05T06:00Z,30237
+2021-12-05T07:00Z,28706
+2021-12-05T08:00Z,27114
+2021-12-05T09:00Z,25874
+2021-12-05T10:00Z,25134
+2021-12-05T11:00Z,24365
+2021-12-05T12:00Z,24026
+2021-12-05T13:00Z,24017
+2021-12-05T14:00Z,24085
+2021-12-05T15:00Z,24887
+2021-12-05T16:00Z,25344
+2021-12-05T17:00Z,26383
+2021-12-05T18:00Z,27538
+2021-12-05T19:00Z,27700
+2021-12-05T20:00Z,27218
+2021-12-05T21:00Z,26918
+2021-12-05T22:00Z,26842
+2021-12-05T23:00Z,26773
+2021-12-06,27215
+2021-12-06T01:00Z,29355
+2021-12-06T02:00Z,32247
+2021-12-06T03:00Z,32492
+2021-12-06T04:00Z,32204
+2021-12-06T05:00Z,31469
+2021-12-06T06:00Z,30355
+2021-12-06T07:00Z,28583
+2021-12-06T08:00Z,26626
+2021-12-06T09:00Z,25545
+2021-12-06T10:00Z,24559
+2021-12-06T11:00Z,24227
+2021-12-06T12:00Z,24055
+2021-12-06T13:00Z,24805
+2021-12-06T14:00Z,26584
+2021-12-06T15:00Z,29197
+2021-12-06T16:00Z,30884
+2021-12-06T17:00Z,31253
+2021-12-06T18:00Z,31606
+2021-12-06T19:00Z,31465
+2021-12-06T20:00Z,31106
+2021-12-06T21:00Z,31067
+2021-12-06T22:00Z,31343
+2021-12-06T23:00Z,31571
+2021-12-07,32139
+2021-12-07T01:00Z,33810
+2021-12-07T02:00Z,35807
+2021-12-07T03:00Z,35345
+2021-12-07T04:00Z,34907
+2021-12-07T05:00Z,33785
+2021-12-07T06:00Z,32131
+2021-12-07T07:00Z,29838
+2021-12-07T08:00Z,27748
+2021-12-07T09:00Z,26499
+2021-12-07T10:00Z,25701
+2021-12-07T11:00Z,25331
+2021-12-07T12:00Z,25049
+2021-12-07T13:00Z,25329
+2021-12-07T14:00Z,26727
+2021-12-07T15:00Z,29269
+2021-12-07T16:00Z,31288
+2021-12-07T17:00Z,31720
+2021-12-07T18:00Z,31994
+2021-12-07T19:00Z,31984
+2021-12-07T20:00Z,31798
+2021-12-07T21:00Z,31191
+2021-12-07T22:00Z,30650
+2021-12-07T23:00Z,30305
+2021-12-08,31052
+2021-12-08T01:00Z,32774
+2021-12-08T02:00Z,35079
+2021-12-08T03:00Z,34976
+2021-12-08T04:00Z,34382
+2021-12-08T05:00Z,33536
+2021-12-08T06:00Z,32244
+2021-12-08T07:00Z,30046
+2021-12-08T08:00Z,28157
+2021-12-08T09:00Z,26729
+2021-12-08T10:00Z,25990
+2021-12-08T11:00Z,25995
+2021-12-08T12:00Z,25986
+2021-12-08T13:00Z,26105
+2021-12-08T14:00Z,27824
+2021-12-08T15:00Z,30447
+2021-12-08T16:00Z,32078
+2021-12-08T17:00Z,31620
+2021-12-08T18:00Z,31228
+2021-12-08T19:00Z,31113
+2021-12-08T20:00Z,30280
+2021-12-08T21:00Z,29950
+2021-12-08T22:00Z,30413
+2021-12-08T23:00Z,31034
+2021-12-09,31396
+2021-12-09T01:00Z,33360
+2021-12-09T02:00Z,35562
+2021-12-09T03:00Z,35361
+2021-12-09T04:00Z,34809
+2021-12-09T05:00Z,33898
+2021-12-09T06:00Z,32309
+2021-12-09T07:00Z,30211
+2021-12-09T08:00Z,28566
+2021-12-09T09:00Z,27747
+2021-12-09T10:00Z,27162
+2021-12-09T11:00Z,26045
+2021-12-09T12:00Z,25511
+2021-12-09T13:00Z,25792
+2021-12-09T14:00Z,26914
+2021-12-09T15:00Z,29174
+2021-12-09T16:00Z,30854
+2021-12-09T17:00Z,31561
+2021-12-09T18:00Z,31608
+2021-12-09T19:00Z,31658
+2021-12-09T20:00Z,31670
+2021-12-09T21:00Z,31313
+2021-12-09T22:00Z,31640
+2021-12-09T23:00Z,31067
+2021-12-10,31495
+2021-12-10T01:00Z,33001
+2021-12-10T02:00Z,35268
+2021-12-10T03:00Z,35351
+2021-12-10T04:00Z,38561
+2021-12-10T05:00Z,34195
+2021-12-10T06:00Z,32810
+2021-12-10T07:00Z,30762
+2021-12-10T08:00Z,28845
+2021-12-10T09:00Z,27661
+2021-12-10T10:00Z,26832
+2021-12-10T11:00Z,26480
+2021-12-10T12:00Z,26342
+2021-12-10T13:00Z,26559
+2021-12-10T14:00Z,28089
+2021-12-10T15:00Z,30680
+2021-12-10T16:00Z,32146
+2021-12-10T17:00Z,31783
+2021-12-10T18:00Z,30664
+2021-12-10T19:00Z,29717
+2021-12-10T20:00Z,29693
+2021-12-10T21:00Z,29549
+2021-12-10T22:00Z,28855
+2021-12-10T23:00Z,28983
+2021-12-11,29748
+2021-12-11T01:00Z,32131
+2021-12-11T02:00Z,34904
+2021-12-11T03:00Z,34979
+2021-12-11T04:00Z,34436
+2021-12-11T05:00Z,33960
+2021-12-11T06:00Z,32880
+2021-12-11T07:00Z,31151
+2021-12-11T08:00Z,29322
+2021-12-11T09:00Z,27789
+2021-12-11T10:00Z,26796
+2021-12-11T11:00Z,26216
+2021-12-11T12:00Z,26030
+2021-12-11T13:00Z,26160
+2021-12-11T14:00Z,26808
+2021-12-11T15:00Z,28192
+2021-12-11T16:00Z,28499
+2021-12-11T17:00Z,28145
+2021-12-11T18:00Z,27927
+2021-12-11T19:00Z,27506
+2021-12-11T20:00Z,26637
+2021-12-11T21:00Z,26243
+2021-12-11T22:00Z,26410
+2021-12-11T23:00Z,26869
+2021-12-12,27445
+2021-12-12T01:00Z,29988
+2021-12-12T02:00Z,32843
+2021-12-12T03:00Z,33105
+2021-12-12T04:00Z,32836
+2021-12-12T05:00Z,32216
+2021-12-12T06:00Z,31447
+2021-12-12T07:00Z,30086
+2021-12-12T08:00Z,28423
+2021-12-12T09:00Z,27012
+2021-12-12T10:00Z,26112
+2021-12-12T11:00Z,25776
+2021-12-12T12:00Z,25561
+2021-12-12T13:00Z,25560
+2021-12-12T14:00Z,25904
+2021-12-12T15:00Z,26879
+2021-12-12T16:00Z,27377
+2021-12-12T17:00Z,27829
+2021-12-12T18:00Z,27947
+2021-12-12T19:00Z,27470
+2021-12-12T20:00Z,27212
+2021-12-12T21:00Z,27287
+2021-12-12T22:00Z,27620
+2021-12-12T23:00Z,28177
+2021-12-13,28631
+2021-12-13T01:00Z,31090
+2021-12-13T02:00Z,33607
+2021-12-13T03:00Z,33771
+2021-12-13T04:00Z,33424
+2021-12-13T05:00Z,32723
+2021-12-13T06:00Z,31611
+2021-12-13T07:00Z,29677
+2021-12-13T08:00Z,27937
+2021-12-13T09:00Z,27048
+2021-12-13T10:00Z,26501
+2021-12-13T11:00Z,26117
+2021-12-13T12:00Z,25747
+2021-12-13T13:00Z,26359
+2021-12-13T14:00Z,27927
+2021-12-13T15:00Z,30396
+2021-12-13T16:00Z,32386
+2021-12-13T17:00Z,33202
+2021-12-13T18:00Z,33757
+2021-12-13T19:00Z,34163
+2021-12-13T20:00Z,34276
+2021-12-13T21:00Z,34356
+2021-12-13T22:00Z,34205
+2021-12-13T23:00Z,34233
+2021-12-14,34531
+2021-12-14T01:00Z,35829
+2021-12-14T02:00Z,37305
+2021-12-14T03:00Z,37134
+2021-12-14T04:00Z,36424
+2021-12-14T05:00Z,35476
+2021-12-14T06:00Z,33822
+2021-12-14T07:00Z,31456
+2021-12-14T08:00Z,29698
+2021-12-14T09:00Z,28360
+2021-12-14T10:00Z,27758
+2021-12-14T11:00Z,27265
+2021-12-14T12:00Z,26940
+2021-12-14T13:00Z,26998
+2021-12-14T14:00Z,28369
+2021-12-14T15:00Z,31044
+2021-12-14T16:00Z,33195
+2021-12-14T17:00Z,33918
+2021-12-14T18:00Z,34263
+2021-12-14T19:00Z,34022
+2021-12-14T20:00Z,33544
+2021-12-14T21:00Z,33635
+2021-12-14T22:00Z,33557
+2021-12-14T23:00Z,33426
+2021-12-15,33585
+2021-12-15T01:00Z,35115
+2021-12-15T02:00Z,37890
+2021-12-15T03:00Z,37955
+2021-12-15T04:00Z,37542
+2021-12-15T05:00Z,36736
+2021-12-15T06:00Z,35179
+2021-12-15T07:00Z,32789
+2021-12-15T08:00Z,30657
+2021-12-15T09:00Z,29127
+2021-12-15T10:00Z,28349
+2021-12-15T11:00Z,27828
+2021-12-15T12:00Z,27665
+2021-12-15T13:00Z,28169
+2021-12-15T14:00Z,29785
+2021-12-15T15:00Z,32753
+2021-12-15T16:00Z,34221
+2021-12-15T17:00Z,33705
+2021-12-15T18:00Z,32526
+2021-12-15T19:00Z,31350
+2021-12-15T20:00Z,31022
+2021-12-15T21:00Z,31207
+2021-12-15T22:00Z,31578
+2021-12-15T23:00Z,32119
+2021-12-16,32994
+2021-12-16T01:00Z,35095
+2021-12-16T02:00Z,37861
+2021-12-16T03:00Z,37893
+2021-12-16T04:00Z,37491
+2021-12-16T05:00Z,36781
+2021-12-16T06:00Z,35343
+2021-12-16T07:00Z,33149
+2021-12-16T08:00Z,30631
+2021-12-16T09:00Z,29476
+2021-12-16T10:00Z,28472
+2021-12-16T11:00Z,27943
+2021-12-16T12:00Z,27989
+2021-12-16T13:00Z,28370
+2021-12-16T14:00Z,29826
+2021-12-16T15:00Z,32543
+2021-12-16T16:00Z,33974
+2021-12-16T17:00Z,33658
+2021-12-16T18:00Z,32922
+2021-12-16T19:00Z,31985
+2021-12-16T20:00Z,31230
+2021-12-16T21:00Z,31292
+2021-12-16T22:00Z,32198
+2021-12-16T23:00Z,32185
+2021-12-17,32717
+2021-12-17T01:00Z,34953
+2021-12-17T02:00Z,37190
+2021-12-17T03:00Z,37218
+2021-12-17T04:00Z,36560
+2021-12-17T05:00Z,35764
+2021-12-17T06:00Z,34608
+2021-12-17T07:00Z,32476
+2021-12-17T08:00Z,30357
+2021-12-17T09:00Z,29007
+2021-12-17T10:00Z,27943
+2021-12-17T11:00Z,27488
+2021-12-17T12:00Z,27398
+2021-12-17T13:00Z,27845
+2021-12-17T14:00Z,29416
+2021-12-17T15:00Z,32243
+2021-12-17T16:00Z,33662
+2021-12-17T17:00Z,33240
+2021-12-17T18:00Z,32459
+2021-12-17T19:00Z,32068
+2021-12-17T20:00Z,31519
+2021-12-17T21:00Z,30841
+2021-12-17T22:00Z,30489
+2021-12-17T23:00Z,30323
+2021-12-18,31125
+2021-12-18T01:00Z,33062
+2021-12-18T02:00Z,35732
+2021-12-18T03:00Z,35979
+2021-12-18T04:00Z,35455
+2021-12-18T05:00Z,34888
+2021-12-18T06:00Z,33950
+2021-12-18T07:00Z,32269
+2021-12-18T08:00Z,30393
+2021-12-18T09:00Z,29449
+2021-12-18T10:00Z,28570
+2021-12-18T11:00Z,27868
+2021-12-18T12:00Z,27579
+2021-12-18T13:00Z,27731
+2021-12-18T14:00Z,28521
+2021-12-18T15:00Z,29849
+2021-12-18T16:00Z,30681
+2021-12-18T17:00Z,30703
+2021-12-18T18:00Z,30187
+2021-12-18T19:00Z,29299
+2021-12-18T20:00Z,28645
+2021-12-18T21:00Z,28151
+2021-12-18T22:00Z,28394
+2021-12-18T23:00Z,28639
+2021-12-19,29088
+2021-12-19T01:00Z,31591
+2021-12-19T02:00Z,34650
+2021-12-19T03:00Z,34886
+2021-12-19T04:00Z,34561
+2021-12-19T05:00Z,34161
+2021-12-19T06:00Z,33555
+2021-12-19T07:00Z,32027
+2021-12-19T08:00Z,30346
+2021-12-19T09:00Z,28888
+2021-12-19T10:00Z,27930
+2021-12-19T11:00Z,27484
+2021-12-19T12:00Z,27242
+2021-12-19T13:00Z,27301
+2021-12-19T14:00Z,27771
+2021-12-19T15:00Z,28752
+2021-12-19T16:00Z,29233
+2021-12-19T17:00Z,29467
+2021-12-19T18:00Z,29433
+2021-12-19T19:00Z,28777
+2021-12-19T20:00Z,28380
+2021-12-19T21:00Z,27827
+2021-12-19T22:00Z,27838
+2021-12-19T23:00Z,28263
+2021-12-20,28996
+2021-12-20T01:00Z,31503
+2021-12-20T02:00Z,34548
+2021-12-20T03:00Z,34849
+2021-12-20T04:00Z,34757
+2021-12-20T05:00Z,34402
+2021-12-20T06:00Z,33558
+2021-12-20T07:00Z,31684
+2021-12-20T08:00Z,29658
+2021-12-20T09:00Z,28345
+2021-12-20T10:00Z,27910
+2021-12-20T11:00Z,27545
+2021-12-20T12:00Z,27500
+2021-12-20T13:00Z,27752
+2021-12-20T14:00Z,29478
+2021-12-20T15:00Z,31909
+2021-12-20T16:00Z,33624
+2021-12-20T17:00Z,33819
+2021-12-20T18:00Z,32974
+2021-12-20T19:00Z,31932
+2021-12-20T20:00Z,31434
+2021-12-20T21:00Z,31754
+2021-12-20T22:00Z,31825
+2021-12-20T23:00Z,32616
+2021-12-21,32887
+2021-12-21T01:00Z,34369
+2021-12-21T02:00Z,36484
+2021-12-21T03:00Z,36561
+2021-12-21T04:00Z,36130
+2021-12-21T05:00Z,35317
+2021-12-21T06:00Z,34023
+2021-12-21T07:00Z,31789
+2021-12-21T08:00Z,29650
+2021-12-21T09:00Z,28037
+2021-12-21T10:00Z,27103
+2021-12-21T11:00Z,26798
+2021-12-21T12:00Z,26484
+2021-12-21T13:00Z,26842
+2021-12-21T14:00Z,28142
+2021-12-21T15:00Z,30699
+2021-12-21T16:00Z,32639
+2021-12-21T17:00Z,33162
+2021-12-21T18:00Z,32907
+2021-12-21T19:00Z,32378
+2021-12-21T20:00Z,31921
+2021-12-21T21:00Z,31481
+2021-12-21T22:00Z,31393
+2021-12-21T23:00Z,31315
+2021-12-22,32061
+2021-12-22T01:00Z,33617
+2021-12-22T02:00Z,35910
+2021-12-22T03:00Z,36012
+2021-12-22T04:00Z,35543
+2021-12-22T05:00Z,34854
+2021-12-22T06:00Z,33690
+2021-12-22T07:00Z,31718
+2021-12-22T08:00Z,29753
+2021-12-22T09:00Z,28208
+2021-12-22T10:00Z,27264
+2021-12-22T11:00Z,26894
+2021-12-22T12:00Z,26503
+2021-12-22T13:00Z,26847
+2021-12-22T14:00Z,28287
+2021-12-22T15:00Z,30545
+2021-12-22T16:00Z,32016
+2021-12-22T17:00Z,32369
+2021-12-22T18:00Z,32150
+2021-12-22T19:00Z,31567
+2021-12-22T20:00Z,31659
+2021-12-22T21:00Z,31871
+2021-12-22T22:00Z,31982
+2021-12-22T23:00Z,32175
+2021-12-23,32828
+2021-12-23T01:00Z,33821
+2021-12-23T02:00Z,35659
+2021-12-23T03:00Z,35465
+2021-12-23T04:00Z,34729
+2021-12-23T05:00Z,33926
+2021-12-23T06:00Z,32665
+2021-12-23T07:00Z,30638
+2021-12-23T08:00Z,28623
+2021-12-23T09:00Z,27117
+2021-12-23T10:00Z,25982
+2021-12-23T11:00Z,25328
+2021-12-23T12:00Z,25173
+2021-12-23T13:00Z,25455
+2021-12-23T14:00Z,26605
+2021-12-23T15:00Z,28497
+2021-12-23T16:00Z,29983
+2021-12-23T17:00Z,30834
+2021-12-23T18:00Z,31887
+2021-12-23T19:00Z,32546
+2021-12-23T20:00Z,33109
+2021-12-23T21:00Z,32999
+2021-12-23T22:00Z,32470
+2021-12-23T23:00Z,32160
+2021-12-24,32475
+2021-12-24T01:00Z,33304
+2021-12-24T02:00Z,35027
+2021-12-24T03:00Z,34796
+2021-12-24T04:00Z,34102
+2021-12-24T05:00Z,33336
+2021-12-24T06:00Z,32330
+2021-12-24T07:00Z,30641
+2021-12-24T08:00Z,28845
+2021-12-24T09:00Z,27473
+2021-12-24T10:00Z,26685
+2021-12-24T11:00Z,26063
+2021-12-24T12:00Z,25680
+2021-12-24T13:00Z,25461
+2021-12-24T14:00Z,25659
+2021-12-24T15:00Z,26694
+2021-12-24T16:00Z,27662
+2021-12-24T17:00Z,27892
+2021-12-24T18:00Z,28284
+2021-12-24T19:00Z,27468
+2021-12-24T20:00Z,26519
+2021-12-24T21:00Z,25982
+2021-12-24T22:00Z,26334
+2021-12-24T23:00Z,27001
+2021-12-25,28336
+2021-12-25T01:00Z,29939
+2021-12-25T02:00Z,31997
+2021-12-25T03:00Z,31427
+2021-12-25T04:00Z,30818
+2021-12-25T05:00Z,30709
+2021-12-25T06:00Z,30132
+2021-12-25T07:00Z,29080
+2021-12-25T08:00Z,27894
+2021-12-25T09:00Z,26924
+2021-12-25T10:00Z,25979
+2021-12-25T11:00Z,25235
+2021-12-25T12:00Z,24997
+2021-12-25T13:00Z,24784
+2021-12-25T14:00Z,24675
+2021-12-25T15:00Z,25292
+2021-12-25T16:00Z,25884
+2021-12-25T17:00Z,26936
+2021-12-25T18:00Z,27505
+2021-12-25T19:00Z,27474
+2021-12-25T20:00Z,27291
+2021-12-25T21:00Z,27280
+2021-12-25T22:00Z,27285
+2021-12-25T23:00Z,27706
+2021-12-26,28043
+2021-12-26T01:00Z,29081
+2021-12-26T02:00Z,30744
+2021-12-26T03:00Z,30546
+2021-12-26T04:00Z,30193
+2021-12-26T05:00Z,29967
+2021-12-26T06:00Z,29496
+2021-12-26T07:00Z,28556
+2021-12-26T08:00Z,27514
+2021-12-26T09:00Z,26488
+2021-12-26T10:00Z,25410
+2021-12-26T11:00Z,24823
+2021-12-26T12:00Z,24650
+2021-12-26T13:00Z,24754
+2021-12-26T14:00Z,25179
+2021-12-26T15:00Z,26268
+2021-12-26T16:00Z,26627
+2021-12-26T17:00Z,26483
+2021-12-26T18:00Z,26807
+2021-12-26T19:00Z,26328
+2021-12-26T20:00Z,26149
+2021-12-26T21:00Z,26288
+2021-12-26T22:00Z,26265
+2021-12-26T23:00Z,26561
+2021-12-27,27567
+2021-12-27T01:00Z,29528
+2021-12-27T02:00Z,32497
+2021-12-27T03:00Z,32888
+2021-12-27T04:00Z,32618
+2021-12-27T05:00Z,31989
+2021-12-27T06:00Z,31106
+2021-12-27T07:00Z,29430
+2021-12-27T08:00Z,27619
+2021-12-27T09:00Z,26734
+2021-12-27T10:00Z,26077
+2021-12-27T11:00Z,25914
+2021-12-27T12:00Z,25745
+2021-12-27T13:00Z,26178
+2021-12-27T14:00Z,27135
+2021-12-27T15:00Z,28721
+2021-12-27T16:00Z,30207
+2021-12-27T17:00Z,30725
+2021-12-27T18:00Z,30527
+2021-12-27T19:00Z,30149
+2021-12-27T20:00Z,30301
+2021-12-27T21:00Z,30636
+2021-12-27T22:00Z,30814
+2021-12-27T23:00Z,31402
+2021-12-28,31779
+2021-12-28T01:00Z,33399
+2021-12-28T02:00Z,35658
+2021-12-28T03:00Z,35579
+2021-12-28T04:00Z,34982
+2021-12-28T05:00Z,34121
+2021-12-28T06:00Z,32842
+2021-12-28T07:00Z,30917
+2021-12-28T08:00Z,28866
+2021-12-28T09:00Z,27693
+2021-12-28T10:00Z,26818
+2021-12-28T11:00Z,26382
+2021-12-28T12:00Z,26396
+2021-12-28T13:00Z,26999
+2021-12-28T14:00Z,27915
+2021-12-28T15:00Z,29709
+2021-12-28T16:00Z,31039
+2021-12-28T17:00Z,31415
+2021-12-28T18:00Z,31119
+2021-12-28T19:00Z,30964
+2021-12-28T20:00Z,30668
+2021-12-28T21:00Z,30438
+2021-12-28T22:00Z,30472
+2021-12-28T23:00Z,31058
+2021-12-29,31810
+2021-12-29T01:00Z,33401
+2021-12-29T02:00Z,35855
+2021-12-29T03:00Z,35942
+2021-12-29T04:00Z,35252
+2021-12-29T05:00Z,34470
+2021-12-29T06:00Z,33220
+2021-12-29T07:00Z,31399
+2021-12-29T08:00Z,29468
+2021-12-29T09:00Z,27877
+2021-12-29T10:00Z,26992
+2021-12-29T11:00Z,26533
+2021-12-29T12:00Z,26364
+2021-12-29T13:00Z,26495
+2021-12-29T14:00Z,27603
+2021-12-29T15:00Z,29498
+2021-12-29T16:00Z,30795
+2021-12-29T17:00Z,31459
+2021-12-29T18:00Z,31712
+2021-12-29T19:00Z,31814
+2021-12-29T20:00Z,31974
+2021-12-29T21:00Z,32464
+2021-12-29T22:00Z,32573
+2021-12-29T23:00Z,32772
+2021-12-30,33147
+2021-12-30T01:00Z,34399
+2021-12-30T02:00Z,36367
+2021-12-30T03:00Z,36174
+2021-12-30T04:00Z,35396
+2021-12-30T05:00Z,34469
+2021-12-30T06:00Z,33150
+2021-12-30T07:00Z,31259
+2021-12-30T08:00Z,29074
+2021-12-30T09:00Z,27715
+2021-12-30T10:00Z,26724
+2021-12-30T11:00Z,26182
+2021-12-30T12:00Z,25981
+2021-12-30T13:00Z,26170
+2021-12-30T14:00Z,27312
+2021-12-30T15:00Z,29246
+2021-12-30T16:00Z,30667
+2021-12-30T17:00Z,31288
+2021-12-30T18:00Z,31098
+2021-12-30T19:00Z,30553
+2021-12-30T20:00Z,30142
+2021-12-30T21:00Z,29785
+2021-12-30T22:00Z,29577
+2021-12-30T23:00Z,29658
+2021-12-31,30501
+2021-12-31T01:00Z,32418
+2021-12-31T02:00Z,34825
+2021-12-31T03:00Z,34788
+2021-12-31T04:00Z,34166
+2021-12-31T05:00Z,33387
+2021-12-31T06:00Z,32246
+2021-12-31T07:00Z,30517
+2021-12-31T08:00Z,28629
+2021-12-31T09:00Z,27220
+2021-12-31T10:00Z,26257
+2021-12-31T11:00Z,25624
+2021-12-31T12:00Z,25258
+2021-12-31T13:00Z,25444
+2021-12-31T14:00Z,26431
+2021-12-31T15:00Z,27611
+2021-12-31T16:00Z,28312
+2021-12-31T17:00Z,28458
+2021-12-31T18:00Z,28294
+2021-12-31T19:00Z,27551
+2021-12-31T20:00Z,26946
+2021-12-31T21:00Z,26852
+2021-12-31T22:00Z,27100
+2021-12-31T23:00Z,27294
+2022-01-01,27730
+2022-01-01T01:00Z,29970
+2022-01-01T02:00Z,33002
+2022-01-01T03:00Z,33101
+2022-01-01T04:00Z,32336
+2022-01-01T05:00Z,31464
+2022-01-01T06:00Z,30535
+2022-01-01T07:00Z,29463
+2022-01-01T08:00Z,28453
+2022-01-01T09:00Z,27258
+2022-01-01T10:00Z,26281
+2022-01-01T11:00Z,25711
+2022-01-01T12:00Z,25480
+2022-01-01T13:00Z,25516
+2022-01-01T14:00Z,25987
+2022-01-01T15:00Z,26782
+2022-01-01T16:00Z,26947
+2022-01-01T17:00Z,26658
+2022-01-01T18:00Z,25800
+2022-01-01T19:00Z,24996
+2022-01-01T20:00Z,23778
+2022-01-01T21:00Z,23515
+2022-01-01T22:00Z,23518
+2022-01-01T23:00Z,24484
+2022-01-02,25435
+2022-01-02T01:00Z,27867
+2022-01-02T02:00Z,31261
+2022-01-02T03:00Z,32093
+2022-01-02T04:00Z,31986
+2022-01-02T05:00Z,31632
+2022-01-02T06:00Z,31002
+2022-01-02T07:00Z,29684
+2022-01-02T08:00Z,28195
+2022-01-02T09:00Z,27094
+2022-01-02T10:00Z,26349
+2022-01-02T11:00Z,26001
+2022-01-02T12:00Z,25865
+2022-01-02T13:00Z,26097
+2022-01-02T14:00Z,26743
+2022-01-02T15:00Z,27756
+2022-01-02T16:00Z,28268
+2022-01-02T17:00Z,27796
+2022-01-02T18:00Z,26880
+2022-01-02T19:00Z,25704
+2022-01-02T20:00Z,24655
+2022-01-02T21:00Z,24247
+2022-01-02T22:00Z,24390
+2022-01-02T23:00Z,25109
+2022-01-03,26144
+2022-01-03T01:00Z,29091
+2022-01-03T02:00Z,32582
+2022-01-03T03:00Z,33226
+2022-01-03T04:00Z,33002
+2022-01-03T05:00Z,32488
+2022-01-03T06:00Z,31540
+2022-01-03T07:00Z,29901
+2022-01-03T08:00Z,28107
+2022-01-03T09:00Z,27089
+2022-01-03T10:00Z,26320
+2022-01-03T11:00Z,26047
+2022-01-03T12:00Z,26180
+2022-01-03T13:00Z,26739
+2022-01-03T14:00Z,28573
+2022-01-03T15:00Z,30947
+2022-01-03T16:00Z,32393
+2022-01-03T17:00Z,31983
+2022-01-03T18:00Z,31056
+2022-01-03T19:00Z,30263
+2022-01-03T20:00Z,29356
+2022-01-03T21:00Z,29407
+2022-01-03T22:00Z,29414
+2022-01-03T23:00Z,29806
+2022-01-04,30463
+2022-01-04T01:00Z,32507
+2022-01-04T02:00Z,35381
+2022-01-04T03:00Z,35647
+2022-01-04T04:00Z,35102
+2022-01-04T05:00Z,34263
+2022-01-04T06:00Z,32897
+2022-01-04T07:00Z,30827
+2022-01-04T08:00Z,28830
+2022-01-04T09:00Z,27495
+2022-01-04T10:00Z,26586
+2022-01-04T11:00Z,26452
+2022-01-04T12:00Z,26278
+2022-01-04T13:00Z,26745
+2022-01-04T14:00Z,28307
+2022-01-04T15:00Z,30836
+2022-01-04T16:00Z,31858
+2022-01-04T17:00Z,31874
+2022-01-04T18:00Z,31336
+2022-01-04T19:00Z,30050
+2022-01-04T20:00Z,28726
+2022-01-04T21:00Z,28282
+2022-01-04T22:00Z,28133
+2022-01-04T23:00Z,28525
+2022-01-05,29294
+2022-01-05T01:00Z,31592
+2022-01-05T02:00Z,34529
+2022-01-05T03:00Z,34782
+2022-01-05T04:00Z,34287
+2022-01-05T05:00Z,33447
+2022-01-05T06:00Z,32184
+2022-01-05T07:00Z,30299
+2022-01-05T08:00Z,28373
+2022-01-05T09:00Z,27248
+2022-01-05T10:00Z,25831
+2022-01-05T11:00Z,25914
+2022-01-05T12:00Z,25949
+2022-01-05T13:00Z,26442
+2022-01-05T14:00Z,27870
+2022-01-05T15:00Z,30392
+2022-01-05T16:00Z,31893
+2022-01-05T17:00Z,31801
+2022-01-05T18:00Z,31025
+2022-01-05T19:00Z,30045
+2022-01-05T20:00Z,28774
+2022-01-05T21:00Z,28155
+2022-01-05T22:00Z,28123
+2022-01-05T23:00Z,28520
+2022-01-06,29346
+2022-01-06T01:00Z,31561
+2022-01-06T02:00Z,34085
+2022-01-06T03:00Z,34259
+2022-01-06T04:00Z,33686
+2022-01-06T05:00Z,32834
+2022-01-06T06:00Z,31569
+2022-01-06T07:00Z,29696
+2022-01-06T08:00Z,27833
+2022-01-06T09:00Z,26804
+2022-01-06T10:00Z,25947
+2022-01-06T11:00Z,25459
+2022-01-06T12:00Z,25432
+2022-01-06T13:00Z,25984
+2022-01-06T14:00Z,27441
+2022-01-06T15:00Z,29949
+2022-01-06T16:00Z,31403
+2022-01-06T17:00Z,31073
+2022-01-06T18:00Z,30597
+2022-01-06T19:00Z,29786
+2022-01-06T20:00Z,29377
+2022-01-06T21:00Z,29055
+2022-01-06T22:00Z,29066
+2022-01-06T23:00Z,29391
+2022-01-07,29888
+2022-01-07T01:00Z,31723
+2022-01-07T02:00Z,34084
+2022-01-07T03:00Z,34211
+2022-01-07T04:00Z,33499
+2022-01-07T05:00Z,32578
+2022-01-07T06:00Z,31380
+2022-01-07T07:00Z,29542
+2022-01-07T08:00Z,27759
+2022-01-07T09:00Z,26586
+2022-01-07T10:00Z,25817
+2022-01-07T11:00Z,25396
+2022-01-07T12:00Z,25286
+2022-01-07T13:00Z,25981
+2022-01-07T14:00Z,27413
+2022-01-07T15:00Z,29767
+2022-01-07T16:00Z,31306
+2022-01-07T17:00Z,31722
+2022-01-07T18:00Z,31769
+2022-01-07T19:00Z,31337
+2022-01-07T20:00Z,30568
+2022-01-07T21:00Z,30525
+2022-01-07T22:00Z,30583
+2022-01-07T23:00Z,30641
+2022-01-08,30789
+2022-01-08T01:00Z,32030
+2022-01-08T02:00Z,34227
+2022-01-08T03:00Z,34190
+2022-01-08T04:00Z,33467
+2022-01-08T05:00Z,32582
+2022-01-08T06:00Z,31412
+2022-01-08T07:00Z,29743
+2022-01-08T08:00Z,27926
+2022-01-08T09:00Z,26705
+2022-01-08T10:00Z,25628
+2022-01-08T11:00Z,25050
+2022-01-08T12:00Z,24675
+2022-01-08T13:00Z,24921
+2022-01-08T14:00Z,25515
+2022-01-08T15:00Z,26649
+2022-01-08T16:00Z,27438
+2022-01-08T17:00Z,27865
+2022-01-08T18:00Z,27337
+2022-01-08T19:00Z,26800
+2022-01-08T20:00Z,26240
+2022-01-08T21:00Z,25613
+2022-01-08T22:00Z,25375
+2022-01-08T23:00Z,25837
+2022-01-09,26618
+2022-01-09T01:00Z,28750
+2022-01-09T02:00Z,31668
+2022-01-09T03:00Z,32188
+2022-01-09T04:00Z,31846
+2022-01-09T05:00Z,31228
+2022-01-09T06:00Z,30374
+2022-01-09T07:00Z,28960
+2022-01-09T08:00Z,27534
+2022-01-09T09:00Z,26488
+2022-01-09T10:00Z,25687
+2022-01-09T11:00Z,25208
+2022-01-09T12:00Z,24943
+2022-01-09T13:00Z,25027
+2022-01-09T14:00Z,25640
+2022-01-09T15:00Z,26600
+2022-01-09T16:00Z,27046
+2022-01-09T17:00Z,26771
+2022-01-09T18:00Z,26206
+2022-01-09T19:00Z,25225
+2022-01-09T20:00Z,24102
+2022-01-09T21:00Z,23758
+2022-01-09T22:00Z,23807
+2022-01-09T23:00Z,24418
+2022-01-10,25392
+2022-01-10T01:00Z,28332
+2022-01-10T02:00Z,31567
+2022-01-10T03:00Z,32086
+2022-01-10T04:00Z,31664
+2022-01-10T05:00Z,30915
+2022-01-10T06:00Z,29921
+2022-01-10T07:00Z,28187
+2022-01-10T08:00Z,26500
+2022-01-10T09:00Z,25826
+2022-01-10T10:00Z,25184
+2022-01-10T11:00Z,24822
+2022-01-10T12:00Z,24816
+2022-01-10T13:00Z,25577
+2022-01-10T14:00Z,27267
+2022-01-10T15:00Z,30021
+2022-01-10T16:00Z,31953
+2022-01-10T17:00Z,31974
+2022-01-10T18:00Z,31489
+2022-01-10T19:00Z,30398
+2022-01-10T20:00Z,29230
+2022-01-10T21:00Z,28502
+2022-01-10T22:00Z,28309
+2022-01-10T23:00Z,28507
+2022-01-11,29547
+2022-01-11T01:00Z,31579
+2022-01-11T02:00Z,34078
+2022-01-11T03:00Z,34307
+2022-01-11T04:00Z,33691
+2022-01-11T05:00Z,32746
+2022-01-11T06:00Z,31406
+2022-01-11T07:00Z,29423
+2022-01-11T08:00Z,27616
+2022-01-11T09:00Z,26878
+2022-01-11T10:00Z,25979
+2022-01-11T11:00Z,25564
+2022-01-11T12:00Z,25370
+2022-01-11T13:00Z,26047
+2022-01-11T14:00Z,27816
+2022-01-11T15:00Z,30693
+2022-01-11T16:00Z,32318
+2022-01-11T17:00Z,31575
+2022-01-11T18:00Z,30212
+2022-01-11T19:00Z,28593
+2022-01-11T20:00Z,27516
+2022-01-11T21:00Z,27259
+2022-01-11T22:00Z,27635
+2022-01-11T23:00Z,28287
+2022-01-12,29252
+2022-01-12T01:00Z,31286
+2022-01-12T02:00Z,33928
+2022-01-12T03:00Z,34181
+2022-01-12T04:00Z,33352
+2022-01-12T05:00Z,32456
+2022-01-12T06:00Z,31166
+2022-01-12T07:00Z,29227
+2022-01-12T08:00Z,27468
+2022-01-12T09:00Z,26542
+2022-01-12T10:00Z,25804
+2022-01-12T11:00Z,25429
+2022-01-12T12:00Z,25438
+2022-01-12T13:00Z,26010
+2022-01-12T14:00Z,27681
+2022-01-12T15:00Z,30673
+2022-01-12T16:00Z,32392
+2022-01-12T17:00Z,31891
+2022-01-12T18:00Z,30650
+2022-01-12T19:00Z,29262
+2022-01-12T20:00Z,28391
+2022-01-12T21:00Z,28284
+2022-01-12T22:00Z,28347
+2022-01-12T23:00Z,28691
+2022-01-13,30122
+2022-01-13T01:00Z,32466
+2022-01-13T02:00Z,34233
+2022-01-13T03:00Z,34009
+2022-01-13T04:00Z,33343
+2022-01-13T05:00Z,32381
+2022-01-13T06:00Z,31151
+2022-01-13T07:00Z,29127
+2022-01-13T08:00Z,27448
+2022-01-13T09:00Z,26442
+2022-01-13T10:00Z,25724
+2022-01-13T11:00Z,25257
+2022-01-13T12:00Z,25262
+2022-01-13T13:00Z,25638
+2022-01-13T14:00Z,27250
+2022-01-13T15:00Z,29973
+2022-01-13T16:00Z,31519
+2022-01-13T17:00Z,31660
+2022-01-13T18:00Z,31211
+2022-01-13T19:00Z,30610
+2022-01-13T20:00Z,30316
+2022-01-13T21:00Z,30354
+2022-01-13T22:00Z,29928
+2022-01-13T23:00Z,30028
+2022-01-14,31062
+2022-01-14T01:00Z,32179
+2022-01-14T02:00Z,34085
+2022-01-14T03:00Z,34135
+2022-01-14T04:00Z,33381
+2022-01-14T05:00Z,32409
+2022-01-14T06:00Z,30960
+2022-01-14T07:00Z,29061
+2022-01-14T08:00Z,27290
+2022-01-14T09:00Z,26254
+2022-01-14T10:00Z,25633
+2022-01-14T11:00Z,25061
+2022-01-14T12:00Z,25053
+2022-01-14T13:00Z,25623
+2022-01-14T14:00Z,27164
+2022-01-14T15:00Z,29987
+2022-01-14T16:00Z,31599
+2022-01-14T17:00Z,31337
+2022-01-14T18:00Z,30173
+2022-01-14T19:00Z,28922
+2022-01-14T20:00Z,28051
+2022-01-14T21:00Z,27619
+2022-01-14T22:00Z,27746
+2022-01-14T23:00Z,28190
+2022-01-15,28960
+2022-01-15T01:00Z,30588
+2022-01-15T02:00Z,33068
+2022-01-15T03:00Z,33079
+2022-01-15T04:00Z,32362
+2022-01-15T05:00Z,31481
+2022-01-15T06:00Z,30440
+2022-01-15T07:00Z,28995
+2022-01-15T08:00Z,27394
+2022-01-15T09:00Z,26097
+2022-01-15T10:00Z,25215
+2022-01-15T11:00Z,24663
+2022-01-15T12:00Z,24323
+2022-01-15T13:00Z,24422
+2022-01-15T14:00Z,25162
+2022-01-15T15:00Z,26418
+2022-01-15T16:00Z,27332
+2022-01-15T17:00Z,28105
+2022-01-15T18:00Z,28554
+2022-01-15T19:00Z,28657
+2022-01-15T20:00Z,28094
+2022-01-15T21:00Z,27819
+2022-01-15T22:00Z,27555
+2022-01-15T23:00Z,27343
+2022-01-16,28113
+2022-01-16T01:00Z,29008
+2022-01-16T02:00Z,31397
+2022-01-16T03:00Z,31783
+2022-01-16T04:00Z,31003
+2022-01-16T05:00Z,30333
+2022-01-16T06:00Z,29379
+2022-01-16T07:00Z,28042
+2022-01-16T08:00Z,26541
+2022-01-16T09:00Z,25442
+2022-01-16T10:00Z,24489
+2022-01-16T11:00Z,23929
+2022-01-16T12:00Z,23561
+2022-01-16T13:00Z,23648
+2022-01-16T14:00Z,24090
+2022-01-16T15:00Z,24953
+2022-01-16T16:00Z,25455
+2022-01-16T17:00Z,25617
+2022-01-16T18:00Z,25278
+2022-01-16T19:00Z,24831
+2022-01-16T20:00Z,24310
+2022-01-16T21:00Z,24160
+2022-01-16T22:00Z,24381
+2022-01-16T23:00Z,24889
+2022-01-17,26174
+2022-01-17T01:00Z,27906
+2022-01-17T02:00Z,30476
+2022-01-17T03:00Z,31045
+2022-01-17T04:00Z,30466
+2022-01-17T05:00Z,29698
+2022-01-17T06:00Z,28624
+2022-01-17T07:00Z,27250
+2022-01-17T08:00Z,25832
+2022-01-17T09:00Z,24911
+2022-01-17T10:00Z,24281
+2022-01-17T11:00Z,23742
+2022-01-17T12:00Z,23798
+2022-01-17T13:00Z,24324
+2022-01-17T14:00Z,25844
+2022-01-17T15:00Z,27806
+2022-01-17T16:00Z,29124
+2022-01-17T17:00Z,29751
+2022-01-17T18:00Z,29561
+2022-01-17T19:00Z,29118
+2022-01-17T20:00Z,29013
+2022-01-17T21:00Z,28841
+2022-01-17T22:00Z,29012
+2022-01-17T23:00Z,29024
+2022-01-18,29710
+2022-01-18T01:00Z,31042
+2022-01-18T02:00Z,33329
+2022-01-18T03:00Z,33542
+2022-01-18T04:00Z,32862
+2022-01-18T05:00Z,31943
+2022-01-18T06:00Z,30593
+2022-01-18T07:00Z,28639
+2022-01-18T08:00Z,26804
+2022-01-18T09:00Z,25684
+2022-01-18T10:00Z,24885
+2022-01-18T11:00Z,24530
+2022-01-18T12:00Z,24640
+2022-01-18T13:00Z,24982
+2022-01-18T14:00Z,26647
+2022-01-18T15:00Z,29126
+2022-01-18T16:00Z,30796
+2022-01-18T17:00Z,31036
+2022-01-18T18:00Z,30351
+2022-01-18T19:00Z,29367
+2022-01-18T20:00Z,28629
+2022-01-18T21:00Z,27976
+2022-01-18T22:00Z,27975
+2022-01-18T23:00Z,27986
+2022-01-19,28506
+2022-01-19T01:00Z,30401
+2022-01-19T02:00Z,33149
+2022-01-19T03:00Z,33571
+2022-01-19T04:00Z,32791
+2022-01-19T05:00Z,31832
+2022-01-19T06:00Z,30742
+2022-01-19T07:00Z,28813
+2022-01-19T08:00Z,26940
+2022-01-19T09:00Z,25734
+2022-01-19T10:00Z,25038
+2022-01-19T11:00Z,24649
+2022-01-19T12:00Z,24590
+2022-01-19T13:00Z,25175
+2022-01-19T14:00Z,26857
+2022-01-19T15:00Z,29590
+2022-01-19T16:00Z,31374
+2022-01-19T17:00Z,31316
+2022-01-19T18:00Z,30626
+2022-01-19T19:00Z,29650
+2022-01-19T20:00Z,28364
+2022-01-19T21:00Z,27355
+2022-01-19T22:00Z,27048
+2022-01-19T23:00Z,27483
+2022-01-20,28325
+2022-01-20T01:00Z,30266
+2022-01-20T02:00Z,33063
+2022-01-20T03:00Z,33702
+2022-01-20T04:00Z,33085
+2022-01-20T05:00Z,32145
+2022-01-20T06:00Z,30874
+2022-01-20T07:00Z,28915
+2022-01-20T08:00Z,27190
+2022-01-20T09:00Z,26003
+2022-01-20T10:00Z,25182
+2022-01-20T11:00Z,25012
+2022-01-20T12:00Z,25061
+2022-01-20T13:00Z,25610
+2022-01-20T14:00Z,27271
+2022-01-20T15:00Z,30136
+2022-01-20T16:00Z,31660
+2022-01-20T17:00Z,31200
+2022-01-20T18:00Z,30163
+2022-01-20T19:00Z,28734
+2022-01-20T20:00Z,27603
+2022-01-20T21:00Z,27219
+2022-01-20T22:00Z,27186
+2022-01-20T23:00Z,27736
+2022-01-21,28447
+2022-01-21T01:00Z,30547
+2022-01-21T02:00Z,32916
+2022-01-21T03:00Z,33452
+2022-01-21T04:00Z,32763
+2022-01-21T05:00Z,31940
+2022-01-21T06:00Z,30741
+2022-01-21T07:00Z,28924
+2022-01-21T08:00Z,26925
+2022-01-21T09:00Z,26120
+2022-01-21T10:00Z,25315
+2022-01-21T11:00Z,24981
+2022-01-21T12:00Z,24946
+2022-01-21T13:00Z,25566
+2022-01-21T14:00Z,27102
+2022-01-21T15:00Z,29981
+2022-01-21T16:00Z,31650
+2022-01-21T17:00Z,30927
+2022-01-21T18:00Z,29694
+2022-01-21T19:00Z,28611
+2022-01-21T20:00Z,28029
+2022-01-21T21:00Z,27528
+2022-01-21T22:00Z,27306
+2022-01-21T23:00Z,27642
+2022-01-22,28149
+2022-01-22T01:00Z,30050
+2022-01-22T02:00Z,32566
+2022-01-22T03:00Z,33027
+2022-01-22T04:00Z,32208
+2022-01-22T05:00Z,31419
+2022-01-22T06:00Z,30355
+2022-01-22T07:00Z,28703
+2022-01-22T08:00Z,27124
+2022-01-22T09:00Z,26018
+2022-01-22T10:00Z,25153
+2022-01-22T11:00Z,24589
+2022-01-22T12:00Z,24306
+2022-01-22T13:00Z,24520
+2022-01-22T14:00Z,25204
+2022-01-22T15:00Z,26289
+2022-01-22T16:00Z,26765
+2022-01-22T17:00Z,26915
+2022-01-22T18:00Z,25973
+2022-01-22T19:00Z,25051
+2022-01-22T20:00Z,23873
+2022-01-22T21:00Z,23354
+2022-01-22T22:00Z,23372
+2022-01-22T23:00Z,24159
+2022-01-23,25007
+2022-01-23T01:00Z,27332
+2022-01-23T02:00Z,30212
+2022-01-23T03:00Z,30940
+2022-01-23T04:00Z,30375
+2022-01-23T05:00Z,29776
+2022-01-23T06:00Z,28952
+2022-01-23T07:00Z,27610
+2022-01-23T08:00Z,26174
+2022-01-23T09:00Z,25303
+2022-01-23T10:00Z,24453
+2022-01-23T11:00Z,23896
+2022-01-23T12:00Z,23756
+2022-01-23T13:00Z,23870
+2022-01-23T14:00Z,24413
+2022-01-23T15:00Z,25325
+2022-01-23T16:00Z,25662
+2022-01-23T17:00Z,25535
+2022-01-23T18:00Z,24661
+2022-01-23T19:00Z,23741
+2022-01-23T20:00Z,23107
+2022-01-23T21:00Z,22656
+2022-01-23T22:00Z,22665
+2022-01-23T23:00Z,23792
+2022-01-24,24754
diff --git a/test/data/federal-funds.csv b/test/data/federal-funds.csv
new file mode 100644
index 0000000000..ac65d52c6a
--- /dev/null
+++ b/test/data/federal-funds.csv
@@ -0,0 +1,1057 @@
+"Series Description","Federal funds effective rate"
+"Unit:","Percent:_Per_Year"
+"Multiplier:","1"
+"Currency:","NA"
+"Unique Identifier: ","H15/H15/RIFSPFF_N.BWAW"
+"Time Period","RIFSPFF_N.BWAW"
+1982-09-29,10.21
+1982-10-13,10.19
+1982-10-27,9.49
+1982-11-10,9.44
+1982-11-24,9.26
+1982-12-08,8.77
+1982-12-22,8.78
+1983-01-05,9.50
+1983-01-19,8.46
+1983-02-02,8.49
+1983-02-16,8.56
+1983-03-02,8.46
+1983-03-16,8.58
+1983-03-30,8.81
+1983-04-13,9.10
+1983-04-27,8.64
+1983-05-11,8.64
+1983-05-25,8.65
+1983-06-08,8.80
+1983-06-22,8.99
+1983-07-06,9.15
+1983-07-20,9.32
+1983-08-03,9.53
+1983-08-17,9.66
+1983-08-31,9.42
+1983-09-14,9.54
+1983-09-28,9.26
+1983-10-12,9.73
+1983-10-26,9.36
+1983-11-09,9.38
+1983-11-23,9.34
+1983-12-07,9.38
+1983-12-21,9.57
+1984-01-04,9.51
+1984-01-18,9.54
+1984-02-01,9.47
+1984-02-15,9.56
+1984-02-29,9.61
+1984-03-14,9.76
+1984-03-28,10.01
+1984-04-11,10.27
+1984-04-25,10.18
+1984-05-09,10.58
+1984-05-23,10.13
+1984-06-06,10.51
+1984-06-20,11.17
+1984-07-04,11.09
+1984-07-18,11.23
+1984-08-01,11.36
+1984-08-15,11.61
+1984-08-29,11.63
+1984-09-12,11.60
+1984-09-26,11.09
+1984-10-10,10.60
+1984-10-24,9.84
+1984-11-07,9.80
+1984-11-21,9.51
+1984-12-05,8.92
+1984-12-19,8.34
+1985-01-02,8.35
+1985-01-16,8.25
+1985-01-30,8.32
+1985-02-13,8.52
+1985-02-27,8.49
+1985-03-13,8.58
+1985-03-27,8.57
+1985-04-10,8.57
+1985-04-24,8.08
+1985-05-08,8.27
+1985-05-22,8.03
+1985-06-05,7.68
+1985-06-19,7.38
+1985-07-03,7.76
+1985-07-17,7.92
+1985-07-31,7.76
+1985-08-14,7.90
+1985-08-28,7.92
+1985-09-11,7.84
+1985-09-25,7.91
+1985-10-09,7.98
+1985-10-23,8.08
+1985-11-06,8.09
+1985-11-20,8.04
+1985-12-04,8.10
+1985-12-18,8.04
+1986-01-01,8.78
+1986-01-15,8.07
+1986-01-29,7.85
+1986-02-12,7.91
+1986-02-26,7.83
+1986-03-12,7.71
+1986-03-26,7.36
+1986-04-09,7.22
+1986-04-23,6.95
+1986-05-07,6.87
+1986-05-21,6.85
+1986-06-04,6.90
+1986-06-18,6.88
+1986-07-02,6.94
+1986-07-16,6.69
+1986-07-30,6.37
+1986-08-13,6.33
+1986-08-27,6.13
+1986-09-10,5.83
+1986-09-24,5.84
+1986-10-08,5.91
+1986-10-22,5.87
+1986-11-05,5.94
+1986-11-19,6.05
+1986-12-03,6.12
+1986-12-17,6.14
+1986-12-31,7.76
+1987-01-14,6.82
+1987-01-28,6.07
+1987-02-11,6.18
+1987-02-25,6.08
+1987-03-11,6.09
+1987-03-25,6.11
+1987-04-08,6.17
+1987-04-22,6.34
+1987-05-06,6.90
+1987-05-20,6.76
+1987-06-03,6.73
+1987-06-17,6.73
+1987-07-01,6.70
+1987-07-15,6.58
+1987-07-29,6.60
+1987-08-12,6.66
+1987-08-26,6.75
+1987-09-09,6.90
+1987-09-23,7.24
+1987-10-07,7.50
+1987-10-21,7.48
+1987-11-04,6.73
+1987-11-18,6.73
+1987-12-02,6.83
+1987-12-16,6.71
+1987-12-30,6.78
+1988-01-13,6.92
+1988-01-27,6.77
+1988-02-10,6.57
+1988-02-24,6.64
+1988-03-09,6.56
+1988-03-23,6.56
+1988-04-06,6.72
+1988-04-20,6.87
+1988-05-04,6.83
+1988-05-18,7.03
+1988-06-01,7.28
+1988-06-15,7.40
+1988-06-29,7.58
+1988-07-13,7.70
+1988-07-27,7.82
+1988-08-10,7.80
+1988-08-24,8.11
+1988-09-07,8.15
+1988-09-21,8.15
+1988-10-05,8.31
+1988-10-19,8.27
+1988-11-02,8.33
+1988-11-16,8.29
+1988-11-30,8.38
+1988-12-14,8.55
+1988-12-28,8.87
+1989-01-11,9.15
+1989-01-25,9.09
+1989-02-08,9.13
+1989-02-22,9.33
+1989-03-08,9.81
+1989-03-22,9.85
+1989-04-05,9.80
+1989-04-19,9.89
+1989-05-03,9.87
+1989-05-17,9.80
+1989-05-31,9.79
+1989-06-14,9.51
+1989-06-28,9.53
+1989-07-12,9.44
+1989-07-26,9.19
+1989-08-09,8.97
+1989-08-23,9.02
+1989-09-06,8.96
+1989-09-20,9.00
+1989-10-04,9.10
+1989-10-18,8.84
+1989-11-01,8.76
+1989-11-15,8.58
+1989-11-29,8.48
+1989-12-13,8.50
+1989-12-27,8.45
+1990-01-10,8.27
+1990-01-24,8.21
+1990-02-07,8.23
+1990-02-21,8.23
+1990-03-07,8.27
+1990-03-21,8.27
+1990-04-04,8.30
+1990-04-18,8.26
+1990-05-02,8.18
+1990-05-16,8.18
+1990-05-30,8.21
+1990-06-13,8.28
+1990-06-27,8.28
+1990-07-11,8.31
+1990-07-25,8.09
+1990-08-08,8.05
+1990-08-22,8.21
+1990-09-05,8.17
+1990-09-19,8.15
+1990-10-03,8.24
+1990-10-17,8.08
+1990-10-31,8.08
+1990-11-14,7.96
+1990-11-28,7.68
+1990-12-12,7.43
+1990-12-26,7.23
+1991-01-09,6.79
+1991-01-23,6.82
+1991-02-06,6.89
+1991-02-20,6.28
+1991-03-06,6.39
+1991-03-20,6.13
+1991-04-03,6.05
+1991-04-17,5.79
+1991-05-01,5.92
+1991-05-15,5.79
+1991-05-29,5.76
+1991-06-12,5.83
+1991-06-26,5.78
+1991-07-10,6.06
+1991-07-24,5.80
+1991-08-07,5.81
+1991-08-21,5.65
+1991-09-04,5.59
+1991-09-18,5.50
+1991-10-02,5.31
+1991-10-16,5.24
+1991-10-30,5.17
+1991-11-13,4.89
+1991-11-27,4.78
+1991-12-11,4.67
+1991-12-25,4.36
+1992-01-08,4.19
+1992-01-22,3.94
+1992-02-05,4.09
+1992-02-19,4.07
+1992-03-04,4.02
+1992-03-18,4.00
+1992-04-01,4.01
+1992-04-15,3.81
+1992-04-29,3.56
+1992-05-13,3.80
+1992-05-27,3.85
+1992-06-10,3.77
+1992-06-24,3.72
+1992-07-08,3.56
+1992-07-22,3.25
+1992-08-05,3.25
+1992-08-19,3.29
+1992-09-02,3.30
+1992-09-16,3.19
+1992-09-30,3.24
+1992-10-14,3.20
+1992-10-28,3.01
+1992-11-11,2.99
+1992-11-25,3.04
+1992-12-09,3.16
+1992-12-23,2.94
+1993-01-06,2.94
+1993-01-20,3.04
+1993-02-03,3.04
+1993-02-17,2.99
+1993-03-03,3.07
+1993-03-17,3.03
+1993-03-31,3.05
+1993-04-14,3.02
+1993-04-28,2.89
+1993-05-12,2.94
+1993-05-26,3.04
+1993-06-09,3.03
+1993-06-23,3.00
+1993-07-07,3.11
+1993-07-21,3.05
+1993-08-04,3.06
+1993-08-18,3.02
+1993-09-01,3.03
+1993-09-15,3.01
+1993-09-29,3.09
+1993-10-13,3.07
+1993-10-27,2.97
+1993-11-10,3.00
+1993-11-24,3.01
+1993-12-08,3.01
+1993-12-22,2.97
+1994-01-05,2.99
+1994-01-19,3.06
+1994-02-02,3.07
+1994-02-16,3.23
+1994-03-02,3.26
+1994-03-16,3.22
+1994-03-30,3.40
+1994-04-13,3.53
+1994-04-27,3.59
+1994-05-11,3.73
+1994-05-25,4.12
+1994-06-08,4.20
+1994-06-22,4.20
+1994-07-06,4.28
+1994-07-20,4.30
+1994-08-03,4.28
+1994-08-17,4.31
+1994-08-31,4.69
+1994-09-14,4.72
+1994-09-28,4.69
+1994-10-12,4.84
+1994-10-26,4.72
+1994-11-09,4.75
+1994-11-23,5.38
+1994-12-07,5.66
+1994-12-21,5.52
+1995-01-04,5.42
+1995-01-18,5.49
+1995-02-01,5.52
+1995-02-15,5.94
+1995-03-01,5.91
+1995-03-15,5.94
+1995-03-29,6.01
+1995-04-12,6.09
+1995-04-26,6.03
+1995-05-10,6.02
+1995-05-24,6.00
+1995-06-07,6.03
+1995-06-21,6.01
+1995-07-05,6.08
+1995-07-19,5.76
+1995-08-02,5.79
+1995-08-16,5.74
+1995-08-30,5.70
+1995-09-13,5.75
+1995-09-27,5.79
+1995-10-11,5.86
+1995-10-25,5.73
+1995-11-08,5.74
+1995-11-22,5.77
+1995-12-06,5.83
+1995-12-20,5.82
+1996-01-03,5.42
+1996-01-17,5.57
+1996-01-31,5.49
+1996-02-14,5.15
+1996-02-28,5.24
+1996-03-13,5.41
+1996-03-27,5.29
+1996-04-10,5.19
+1996-04-24,5.24
+1996-05-08,5.26
+1996-05-22,5.24
+1996-06-05,5.26
+1996-06-19,5.35
+1996-07-03,5.37
+1996-07-17,5.24
+1996-07-31,5.39
+1996-08-14,5.24
+1996-08-28,5.20
+1996-09-11,5.28
+1996-09-25,5.28
+1996-10-09,5.27
+1996-10-23,5.22
+1996-11-06,5.30
+1996-11-20,5.31
+1996-12-04,5.41
+1996-12-18,5.30
+1997-01-01,5.28
+1997-01-15,5.24
+1997-01-29,5.19
+1997-02-12,5.18
+1997-02-26,5.19
+1997-03-12,5.27
+1997-03-26,5.33
+1997-04-09,5.61
+1997-04-23,5.48
+1997-05-07,5.58
+1997-05-21,5.50
+1997-06-04,5.48
+1997-06-18,5.55
+1997-07-02,5.62
+1997-07-16,5.46
+1997-07-30,5.50
+1997-08-13,5.54
+1997-08-27,5.58
+1997-09-10,5.56
+1997-09-24,5.51
+1997-10-08,5.52
+1997-10-22,5.50
+1997-11-05,5.55
+1997-11-19,5.50
+1997-12-03,5.53
+1997-12-17,5.53
+1997-12-31,5.44
+1998-01-14,5.59
+1998-01-28,5.53
+1998-02-11,5.48
+1998-02-25,5.52
+1998-03-11,5.52
+1998-03-25,5.45
+1998-04-08,5.54
+1998-04-22,5.42
+1998-05-06,5.38
+1998-05-20,5.54
+1998-06-03,5.54
+1998-06-17,5.51
+1998-07-01,5.65
+1998-07-15,5.48
+1998-07-29,5.52
+1998-08-12,5.55
+1998-08-26,5.54
+1998-09-09,5.54
+1998-09-23,5.48
+1998-10-07,5.40
+1998-10-21,5.00
+1998-11-04,5.08
+1998-11-18,4.84
+1998-12-02,4.70
+1998-12-16,4.82
+1998-12-30,4.58
+1999-01-13,4.53
+1999-01-27,4.65
+1999-02-10,4.76
+1999-02-24,4.75
+1999-03-10,4.83
+1999-03-24,4.79
+1999-04-07,4.82
+1999-04-21,4.65
+1999-05-05,4.85
+1999-05-19,4.73
+1999-06-02,4.69
+1999-06-16,4.72
+1999-06-30,4.83
+1999-07-14,4.98
+1999-07-28,4.99
+1999-08-11,5.01
+1999-08-25,5.03
+1999-09-08,5.25
+1999-09-22,5.20
+1999-10-06,5.27
+1999-10-20,5.17
+1999-11-03,5.23
+1999-11-17,5.32
+1999-12-01,5.58
+1999-12-15,5.45
+1999-12-29,5.24
+2000-01-12,5.17
+2000-01-26,5.51
+2000-02-09,5.69
+2000-02-23,5.73
+2000-03-08,5.75
+2000-03-22,5.80
+2000-04-05,6.06
+2000-04-19,6.01
+2000-05-03,6.02
+2000-05-17,6.06
+2000-05-31,6.51
+2000-06-14,6.50
+2000-06-28,6.52
+2000-07-12,6.64
+2000-07-26,6.50
+2000-08-09,6.47
+2000-08-23,6.49
+2000-09-06,6.55
+2000-09-20,6.50
+2000-10-04,6.54
+2000-10-18,6.48
+2000-11-01,6.53
+2000-11-15,6.51
+2000-11-29,6.51
+2000-12-13,6.52
+2000-12-27,6.50
+2001-01-10,5.90
+2001-01-24,5.99
+2001-02-07,5.73
+2001-02-21,5.48
+2001-03-07,5.50
+2001-03-21,5.39
+2001-04-04,5.10
+2001-04-18,4.97
+2001-05-02,4.48
+2001-05-16,4.40
+2001-05-30,3.98
+2001-06-13,4.04
+2001-06-27,3.93
+2001-07-11,3.78
+2001-07-25,3.79
+2001-08-08,3.75
+2001-08-22,3.69
+2001-09-05,3.57
+2001-09-19,2.98
+2001-10-03,2.85
+2001-10-17,2.44
+2001-10-31,2.52
+2001-11-14,2.20
+2001-11-28,1.98
+2001-12-12,1.95
+2001-12-26,1.80
+2002-01-09,1.64
+2002-01-23,1.74
+2002-02-06,1.76
+2002-02-20,1.74
+2002-03-06,1.74
+2002-03-20,1.74
+2002-04-03,1.74
+2002-04-17,1.74
+2002-05-01,1.76
+2002-05-15,1.74
+2002-05-29,1.74
+2002-06-12,1.76
+2002-06-26,1.75
+2002-07-10,1.74
+2002-07-24,1.73
+2002-08-07,1.73
+2002-08-21,1.72
+2002-09-04,1.78
+2002-09-18,1.73
+2002-10-02,1.76
+2002-10-16,1.74
+2002-10-30,1.76
+2002-11-13,1.45
+2002-11-27,1.28
+2002-12-11,1.24
+2002-12-25,1.25
+2003-01-08,1.20
+2003-01-22,1.25
+2003-02-05,1.26
+2003-02-19,1.26
+2003-03-05,1.27
+2003-03-19,1.24
+2003-04-02,1.25
+2003-04-16,1.25
+2003-04-30,1.27
+2003-05-14,1.26
+2003-05-28,1.25
+2003-06-11,1.25
+2003-06-25,1.23
+2003-07-09,1.05
+2003-07-23,1.02
+2003-08-06,1.00
+2003-08-20,1.08
+2003-09-03,1.01
+2003-09-17,0.99
+2003-10-01,1.04
+2003-10-15,1.01
+2003-10-29,1.00
+2003-11-12,1.00
+2003-11-26,0.99
+2003-12-10,0.99
+2003-12-24,0.99
+2004-01-07,0.97
+2004-01-21,1.00
+2004-02-04,1.01
+2004-02-18,1.01
+2004-03-03,1.01
+2004-03-17,1.00
+2004-03-31,1.00
+2004-04-14,1.01
+2004-04-28,1.00
+2004-05-12,1.00
+2004-05-26,1.01
+2004-06-09,1.00
+2004-06-23,1.01
+2004-07-07,1.20
+2004-07-21,1.25
+2004-08-04,1.27
+2004-08-18,1.39
+2004-09-01,1.52
+2004-09-15,1.49
+2004-09-29,1.70
+2004-10-13,1.78
+2004-10-27,1.75
+2004-11-10,1.79
+2004-11-24,2.00
+2004-12-08,2.01
+2004-12-22,2.20
+2005-01-05,2.20
+2005-01-19,2.26
+2005-02-02,2.35
+2005-02-16,2.50
+2005-03-02,2.51
+2005-03-16,2.52
+2005-03-30,2.74
+2005-04-13,2.79
+2005-04-27,2.76
+2005-05-11,2.97
+2005-05-25,3.01
+2005-06-08,3.00
+2005-06-22,3.00
+2005-07-06,3.20
+2005-07-20,3.24
+2005-08-03,3.28
+2005-08-17,3.51
+2005-08-31,3.53
+2005-09-14,3.50
+2005-09-28,3.71
+2005-10-12,3.77
+2005-10-26,3.76
+2005-11-09,3.97
+2005-11-23,3.99
+2005-12-07,4.01
+2005-12-21,4.21
+2006-01-04,4.19
+2006-01-18,4.26
+2006-02-01,4.35
+2006-02-15,4.49
+2006-03-01,4.49
+2006-03-15,4.51
+2006-03-29,4.64
+2006-04-12,4.82
+2006-04-26,4.76
+2006-05-10,4.83
+2006-05-24,4.99
+2006-06-07,5.00
+2006-06-21,4.98
+2006-07-05,5.07
+2006-07-19,5.25
+2006-08-02,5.25
+2006-08-16,5.24
+2006-08-30,5.24
+2006-09-13,5.24
+2006-09-27,5.26
+2006-10-11,5.27
+2006-10-25,5.24
+2006-11-08,5.24
+2006-11-22,5.24
+2006-12-06,5.26
+2006-12-20,5.25
+2007-01-03,5.23
+2007-01-17,5.24
+2007-01-31,5.26
+2007-02-14,5.25
+2007-02-28,5.27
+2007-03-14,5.25
+2007-03-28,5.26
+2007-04-11,5.27
+2007-04-25,5.24
+2007-05-09,5.24
+2007-05-23,5.25
+2007-06-06,5.26
+2007-06-20,5.26
+2007-07-04,5.27
+2007-07-18,5.25
+2007-08-01,5.27
+2007-08-15,5.02
+2007-08-29,5.01
+2007-09-12,5.01
+2007-09-26,4.95
+2007-10-10,4.74
+2007-10-24,4.74
+2007-11-07,4.56
+2007-11-21,4.52
+2007-12-05,4.54
+2007-12-19,4.30
+2008-01-02,3.99
+2008-01-16,4.23
+2008-01-30,3.75
+2008-02-13,3.00
+2008-02-27,2.97
+2008-03-12,2.99
+2008-03-26,2.44
+2008-04-09,2.23
+2008-04-23,2.30
+2008-05-07,2.11
+2008-05-21,1.96
+2008-06-04,2.02
+2008-06-18,1.98
+2008-07-02,2.02
+2008-07-16,1.98
+2008-07-30,2.03
+2008-08-13,2.01
+2008-08-27,2.01
+2008-09-10,1.97
+2008-09-24,1.89
+2008-10-08,1.45
+2008-10-22,0.82
+2008-11-05,0.53
+2008-11-19,0.32
+2008-12-03,0.53
+2008-12-17,0.14
+2008-12-31,0.11
+2009-01-14,0.10
+2009-01-28,0.19
+2009-02-11,0.23
+2009-02-25,0.22
+2009-03-11,0.21
+2009-03-25,0.17
+2009-04-08,0.15
+2009-04-22,0.14
+2009-05-06,0.19
+2009-05-20,0.16
+2009-06-03,0.18
+2009-06-17,0.20
+2009-07-01,0.22
+2009-07-15,0.16
+2009-07-29,0.15
+2009-08-12,0.17
+2009-08-26,0.16
+2009-09-09,0.15
+2009-09-23,0.16
+2009-10-07,0.12
+2009-10-21,0.12
+2009-11-04,0.11
+2009-11-18,0.12
+2009-12-02,0.12
+2009-12-16,0.12
+2009-12-30,0.12
+2010-01-13,0.09
+2010-01-27,0.12
+2010-02-10,0.13
+2010-02-24,0.12
+2010-03-10,0.15
+2010-03-24,0.18
+2010-04-07,0.18
+2010-04-21,0.20
+2010-05-05,0.20
+2010-05-19,0.20
+2010-06-02,0.20
+2010-06-16,0.19
+2010-06-30,0.16
+2010-07-14,0.18
+2010-07-28,0.19
+2010-08-11,0.18
+2010-08-25,0.19
+2010-09-08,0.19
+2010-09-22,0.20
+2010-10-06,0.20
+2010-10-20,0.19
+2010-11-03,0.19
+2010-11-17,0.19
+2010-12-01,0.20
+2010-12-15,0.18
+2010-12-29,0.19
+2011-01-12,0.17
+2011-01-26,0.17
+2011-02-09,0.17
+2011-02-23,0.15
+2011-03-09,0.15
+2011-03-23,0.14
+2011-04-06,0.12
+2011-04-20,0.10
+2011-05-04,0.09
+2011-05-18,0.09
+2011-06-01,0.10
+2011-06-15,0.10
+2011-06-29,0.09
+2011-07-13,0.07
+2011-07-27,0.06
+2011-08-10,0.11
+2011-08-24,0.09
+2011-09-07,0.08
+2011-09-21,0.09
+2011-10-05,0.07
+2011-10-19,0.07
+2011-11-02,0.07
+2011-11-16,0.08
+2011-11-30,0.08
+2011-12-14,0.08
+2011-12-28,0.07
+2012-01-11,0.06
+2012-01-25,0.09
+2012-02-08,0.10
+2012-02-22,0.11
+2012-03-07,0.10
+2012-03-21,0.13
+2012-04-04,0.13
+2012-04-18,0.15
+2012-05-02,0.14
+2012-05-16,0.16
+2012-05-30,0.16
+2012-06-13,0.17
+2012-06-27,0.17
+2012-07-11,0.15
+2012-07-25,0.16
+2012-08-08,0.14
+2012-08-22,0.13
+2012-09-05,0.13
+2012-09-19,0.15
+2012-10-03,0.14
+2012-10-17,0.16
+2012-10-31,0.16
+2012-11-14,0.16
+2012-11-28,0.16
+2012-12-12,0.16
+2012-12-26,0.17
+2013-01-09,0.15
+2013-01-23,0.14
+2013-02-06,0.14
+2013-02-20,0.15
+2013-03-06,0.15
+2013-03-20,0.15
+2013-04-03,0.13
+2013-04-17,0.15
+2013-05-01,0.14
+2013-05-15,0.13
+2013-05-29,0.09
+2013-06-12,0.09
+2013-06-26,0.10
+2013-07-10,0.09
+2013-07-24,0.09
+2013-08-07,0.09
+2013-08-21,0.09
+2013-09-04,0.08
+2013-09-18,0.08
+2013-10-02,0.08
+2013-10-16,0.09
+2013-10-30,0.09
+2013-11-13,0.08
+2013-11-27,0.09
+2013-12-11,0.09
+2013-12-25,0.09
+2014-01-08,0.08
+2014-01-22,0.07
+2014-02-05,0.07
+2014-02-19,0.06
+2014-03-05,0.07
+2014-03-19,0.08
+2014-04-02,0.08
+2014-04-16,0.09
+2014-04-30,0.10
+2014-05-14,0.09
+2014-05-28,0.09
+2014-06-11,0.09
+2014-06-25,0.10
+2014-07-09,0.10
+2014-07-23,0.09
+2014-08-06,0.09
+2014-08-20,0.09
+2014-09-03,0.08
+2014-09-17,0.09
+2014-10-01,0.09
+2014-10-15,0.09
+2014-10-29,0.09
+2014-11-12,0.09
+2014-11-26,0.10
+2014-12-10,0.11
+2014-12-24,0.13
+2015-01-07,0.12
+2015-01-21,0.12
+2015-02-04,0.11
+2015-02-18,0.12
+2015-03-04,0.10
+2015-03-18,0.12
+2015-04-01,0.11
+2015-04-15,0.12
+2015-04-29,0.13
+2015-05-13,0.13
+2015-05-27,0.13
+2015-06-10,0.12
+2015-06-24,0.13
+2015-07-08,0.13
+2015-07-22,0.13
+2015-08-05,0.12
+2015-08-19,0.14
+2015-09-02,0.14
+2015-09-16,0.14
+2015-09-30,0.13
+2015-10-14,0.13
+2015-10-28,0.13
+2015-11-11,0.11
+2015-11-25,0.12
+2015-12-09,0.12
+2015-12-23,0.26
+2016-01-06,0.31
+2016-01-20,0.36
+2016-02-03,0.36
+2016-02-17,0.38
+2016-03-02,0.37
+2016-03-16,0.36
+2016-03-30,0.37
+2016-04-13,0.36
+2016-04-27,0.37
+2016-05-11,0.36
+2016-05-25,0.37
+2016-06-08,0.36
+2016-06-22,0.38
+2016-07-06,0.40
+2016-07-20,0.40
+2016-08-03,0.38
+2016-08-17,0.40
+2016-08-31,0.39
+2016-09-14,0.40
+2016-09-28,0.40
+2016-10-12,0.38
+2016-10-26,0.41
+2016-11-09,0.40
+2016-11-23,0.41
+2016-12-07,0.40
+2016-12-21,0.54
+2017-01-04,0.63
+2017-01-18,0.66
+2017-02-01,0.65
+2017-02-15,0.66
+2017-03-01,0.65
+2017-03-15,0.66
+2017-03-29,0.91
+2017-04-12,0.89
+2017-04-26,0.91
+2017-05-10,0.89
+2017-05-24,0.91
+2017-06-07,0.90
+2017-06-21,1.04
+2017-07-05,1.14
+2017-07-19,1.16
+2017-08-02,1.15
+2017-08-16,1.16
+2017-08-30,1.16
+2017-09-13,1.15
+2017-09-27,1.16
+2017-10-11,1.14
+2017-10-25,1.16
+2017-11-08,1.15
+2017-11-22,1.16
+2017-12-06,1.15
+2017-12-20,1.29
+2018-01-03,1.39
+2018-01-17,1.42
+2018-01-31,1.41
+2018-02-14,1.42
+2018-02-28,1.42
+2018-03-14,1.42
+2018-03-28,1.56
+2018-04-11,1.68
+2018-04-25,1.69
+2018-05-09,1.70
+2018-05-23,1.70
+2018-06-06,1.70
+2018-06-20,1.80
+2018-07-04,1.91
+2018-07-18,1.91
+2018-08-01,1.91
+2018-08-15,1.91
+2018-08-29,1.92
+2018-09-12,1.92
+2018-09-26,1.92
+2018-10-10,2.18
+2018-10-24,2.19
+2018-11-07,2.20
+2018-11-21,2.20
+2018-12-05,2.20
+2018-12-19,2.19
+2019-01-02,2.40
+2019-01-16,2.40
+2019-01-30,2.40
+2019-02-13,2.40
+2019-02-27,2.40
+2019-03-13,2.40
+2019-03-27,2.40
+2019-04-10,2.41
+2019-04-24,2.43
+2019-05-08,2.42
+2019-05-22,2.39
+2019-06-05,2.39
+2019-06-19,2.37
+2019-07-03,2.39
+2019-07-17,2.40
+2019-07-31,2.40
+2019-08-14,2.13
+2019-08-28,2.12
+2019-09-11,2.13
+2019-09-25,2.05
+2019-10-09,1.84
+2019-10-23,1.85
+2019-11-06,1.70
+2019-11-20,1.55
+2019-12-04,1.55
+2019-12-18,1.55
+2020-01-01,1.55
+2020-01-15,1.55
+2020-01-29,1.55
+2020-02-12,1.59
+2020-02-26,1.58
+2020-03-11,1.30
+2020-03-25,0.44
+2020-04-08,0.07
+2020-04-22,0.05
+2020-05-06,0.05
+2020-05-20,0.05
+2020-06-03,0.05
+2020-06-17,0.08
+2020-07-01,0.08
+2020-07-15,0.09
+2020-07-29,0.09
+2020-08-12,0.10
+2020-08-26,0.09
+2020-09-09,0.09
+2020-09-23,0.09
+2020-10-07,0.09
+2020-10-21,0.09
+2020-11-04,0.09
+2020-11-18,0.09
+2020-12-02,0.08
+2020-12-16,0.09
+2020-12-30,0.09
+2021-01-13,0.09
+2021-01-27,0.09
+2021-02-10,0.08
+2021-02-24,0.08
+2021-03-10,0.07
+2021-03-24,0.07
+2021-04-07,0.07
+2021-04-21,0.07
+2021-05-05,0.06
+2021-05-19,0.06
+2021-06-02,0.06
+2021-06-16,0.06
+2021-06-30,0.10
+2021-07-14,0.10
+2021-07-28,0.10
+2021-08-11,0.09
+2021-08-25,0.09
+2021-09-08,0.08
+2021-09-22,0.08
+2021-10-06,0.08
+2021-10-20,0.08
+2021-11-03,0.08
+2021-11-17,0.08
+2021-12-01,0.08
+2021-12-15,0.08
+2021-12-29,0.08
+2022-01-12,0.08
+2022-01-26,0.08
+2022-02-09,0.08
+2022-02-23,0.08
+2022-03-09,0.08
+2022-03-23,0.21
+2022-04-06,0.33
+2022-04-20,0.33
+2022-05-04,0.33
+2022-05-18,0.83
+2022-06-01,0.83
+2022-06-15,0.83
+2022-06-29,1.58
+2022-07-13,1.58
+2022-07-27,1.58
+2022-08-10,2.33
+2022-08-24,2.33
+2022-09-07,2.33
+2022-09-21,2.33
+2022-10-05,3.08
+2022-10-19,3.08
+2022-11-02,3.08
+2022-11-16,3.83
+2022-11-30,3.83
+2022-12-14,3.83
+2022-12-28,4.33
\ No newline at end of file
diff --git a/test/output/aaplBollinger.svg b/test/output/aaplBollinger.svg
index 943b12ca1f..e950133f03 100644
--- a/test/output/aaplBollinger.svg
+++ b/test/output/aaplBollinger.svg
@@ -13,80 +13,70 @@
white-space: pre;
}
-
-
-
- 60
-
-
-
- 70
-
-
-
- 80
-
-
-
- 90
-
-
-
- 100
-
-
-
- 110
-
-
-
- 120
-
-
-
- 130
-
-
-
- 140
-
-
-
- 150
-
-
-
- 160
-
-
-
- 170
-
-
-
- 180
-
-
-
- 190
- ↑ Close
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 2014
-
-
- 2015
-
-
- 2016
-
-
- 2017
-
-
- 2018
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 60
+ 70
+ 80
+ 90
+ 100
+ 110
+ 120
+ 130
+ 140
+ 150
+ 160
+ 170
+ 180
+ 190
+
+
+ ↑ Close
+
+
+
+
+
+
+
+
+
+ 2014
+ 2015
+ 2016
+ 2017
+ 2018
diff --git a/test/output/aaplBollingerGridInterval.svg b/test/output/aaplBollingerGridInterval.svg
new file mode 100644
index 0000000000..2d768aa5b5
--- /dev/null
+++ b/test/output/aaplBollingerGridInterval.svg
@@ -0,0 +1,115 @@
+
\ No newline at end of file
diff --git a/test/output/aaplBollingerGridSpacing.svg b/test/output/aaplBollingerGridSpacing.svg
new file mode 100644
index 0000000000..2d768aa5b5
--- /dev/null
+++ b/test/output/aaplBollingerGridSpacing.svg
@@ -0,0 +1,115 @@
+
\ No newline at end of file
diff --git a/test/output/aaplCandlestick.svg b/test/output/aaplCandlestick.svg
index 45b8595048..92e6ddda36 100644
--- a/test/output/aaplCandlestick.svg
+++ b/test/output/aaplCandlestick.svg
@@ -13,65 +13,62 @@
white-space: pre;
}
-
-
-
- 155
-
-
-
- 160
-
-
-
- 165
-
-
-
- 170
-
-
-
- 175
-
-
-
- 180
-
-
-
- 185
-
-
-
- 190
- ↑ Apple stock price ($)
+
+
+
+
+
+
+
+
+
-
-
-
- December
-
-
-
- 2018
-
-
-
- February
-
-
-
- March
-
-
-
- April
-
-
-
- May
-
+
+
+
+
+
+
+
+
+
+
+
+ 155
+ 160
+ 165
+ 170
+ 175
+ 180
+ 185
+ 190
+
+
+ ↑ Apple stock price ($)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ December
+ 2018
+ February
+ March
+ April
+ May
diff --git a/test/output/aaplChangeVolume.svg b/test/output/aaplChangeVolume.svg
index 41cb75666d..88bdd478d4 100644
--- a/test/output/aaplChangeVolume.svg
+++ b/test/output/aaplChangeVolume.svg
@@ -13,97 +13,89 @@
white-space: pre;
}
-
-
-
- 7.1
-
-
-
- 7.2
-
-
-
- 7.3
-
-
-
- 7.4
-
-
-
- 7.5
-
-
-
- 7.6
-
-
-
- 7.7
-
-
-
- 7.8
-
-
-
- 7.9
-
-
-
- 8.0
-
-
-
- 8.1
-
-
-
- 8.2
-
-
-
- 8.3
-
-
-
- 8.4
- ↑ Volume (log₁₀)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- −6
-
-
-
- −4
-
-
-
- −2
-
-
-
- +0
-
-
-
- +2
-
-
-
- +4
-
-
-
- +6
-
-
-
- +8
- Daily change (%) →
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 7.1
+ 7.2
+ 7.3
+ 7.4
+ 7.5
+ 7.6
+ 7.7
+ 7.8
+ 7.9
+ 8.0
+ 8.1
+ 8.2
+ 8.3
+ 8.4
+
+
+ ↑ Volume (log₁₀)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ −6
+ −4
+ −2
+ +0
+ +2
+ +4
+ +6
+ +8
+
+
+ Daily change (%) →
diff --git a/test/output/aaplClose.svg b/test/output/aaplClose.svg
index 890e976d80..8544d2e0d3 100644
--- a/test/output/aaplClose.svg
+++ b/test/output/aaplClose.svg
@@ -13,64 +13,58 @@
white-space: pre;
}
-
-
-
- 0
-
-
-
- 20
-
-
-
- 40
-
-
-
- 60
-
-
-
- 80
-
-
-
- 100
-
-
-
- 120
-
-
-
- 140
-
-
-
- 160
-
-
-
- 180
- ↑ Close
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 20
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+ 180
+
+
+ ↑ Close
+
+
+
+
+
+
+
-
-
- 2014
-
-
- 2015
-
-
- 2016
-
-
- 2017
-
-
- 2018
-
+
+ 2014
+ 2015
+ 2016
+ 2017
+ 2018
diff --git a/test/output/aaplCloseDataTicks.svg b/test/output/aaplCloseDataTicks.svg
new file mode 100644
index 0000000000..3f93df49a9
--- /dev/null
+++ b/test/output/aaplCloseDataTicks.svg
@@ -0,0 +1,62 @@
+
\ No newline at end of file
diff --git a/test/output/aaplCloseGridColor.svg b/test/output/aaplCloseGridColor.svg
new file mode 100644
index 0000000000..53f86885c1
--- /dev/null
+++ b/test/output/aaplCloseGridColor.svg
@@ -0,0 +1,84 @@
+
\ No newline at end of file
diff --git a/test/output/aaplCloseGridInterval.svg b/test/output/aaplCloseGridInterval.svg
new file mode 100644
index 0000000000..032b339173
--- /dev/null
+++ b/test/output/aaplCloseGridInterval.svg
@@ -0,0 +1,90 @@
+
\ No newline at end of file
diff --git a/test/output/aaplCloseGridIntervalName.svg b/test/output/aaplCloseGridIntervalName.svg
new file mode 100644
index 0000000000..6af3705714
--- /dev/null
+++ b/test/output/aaplCloseGridIntervalName.svg
@@ -0,0 +1,130 @@
+
\ No newline at end of file
diff --git a/test/output/aaplCloseGridIterable.svg b/test/output/aaplCloseGridIterable.svg
new file mode 100644
index 0000000000..b43ab04ec3
--- /dev/null
+++ b/test/output/aaplCloseGridIterable.svg
@@ -0,0 +1,73 @@
+
\ No newline at end of file
diff --git a/test/output/aaplCloseImplicitGrid.svg b/test/output/aaplCloseImplicitGrid.svg
new file mode 100644
index 0000000000..6fbb1528ed
--- /dev/null
+++ b/test/output/aaplCloseImplicitGrid.svg
@@ -0,0 +1,84 @@
+
\ No newline at end of file
diff --git a/test/output/aaplCloseUntyped.svg b/test/output/aaplCloseUntyped.svg
index 1237f5beb9..998c370b90 100644
--- a/test/output/aaplCloseUntyped.svg
+++ b/test/output/aaplCloseUntyped.svg
@@ -13,64 +13,58 @@
white-space: pre;
}
-
-
-
- 0
-
-
-
- 20
-
-
-
- 40
-
-
-
- 60
-
-
-
- 80
-
-
-
- 100
-
-
-
- 120
-
-
-
- 140
-
-
-
- 160
-
-
-
- 180
- ↑ Close
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 20
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+ 180
+
+
+ ↑ Close
+
+
+
+
+
+
+
-
-
- 2014
-
-
- 2015
-
-
- 2016
-
-
- 2017
-
-
- 2018
-
+
+ 2014
+ 2015
+ 2016
+ 2017
+ 2018
diff --git a/test/output/aaplFancyAxis.svg b/test/output/aaplFancyAxis.svg
new file mode 100644
index 0000000000..884f090764
--- /dev/null
+++ b/test/output/aaplFancyAxis.svg
@@ -0,0 +1,75 @@
+
\ No newline at end of file
diff --git a/test/output/aaplMonthly.svg b/test/output/aaplMonthly.svg
index 025a6daf94..07b1f27dff 100644
--- a/test/output/aaplMonthly.svg
+++ b/test/output/aaplMonthly.svg
@@ -13,66 +13,54 @@
white-space: pre;
}
-
-
- 0
-
-
- 20
-
-
- 40
-
-
- 60
-
-
- 80
-
-
- 100
-
-
- 120
-
-
- 140
-
-
- 160
-
-
- 180
-
-
- 200
-
-
- 220
-
-
- 240
-
-
- 260
- ↑ Daily trade volume (millions)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 2014
-
-
- 2015
-
-
- 2016
-
-
- 2017
-
-
- 2018
-
+
+ 0
+ 20
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+ 180
+ 200
+ 220
+ 240
+ 260
+
+
+ ↑ Daily trade volume (millions)
+
+
+
+
+
+
+
+
+
+ 2014
+ 2015
+ 2016
+ 2017
+ 2018
diff --git a/test/output/aaplVolume.svg b/test/output/aaplVolume.svg
index ba5a420a5f..5047d67640 100644
--- a/test/output/aaplVolume.svg
+++ b/test/output/aaplVolume.svg
@@ -13,69 +13,64 @@
white-space: pre;
}
-
-
-
- 0
-
-
-
- 2
-
-
-
- 4
-
-
-
- 6
-
-
-
- 8
-
-
-
- 10
-
-
-
- 12
-
-
-
- 14
-
-
-
- 16
- ↑ Frequency (%)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 2
+ 4
+ 6
+ 8
+ 10
+ 12
+ 14
+ 16
+
+
+ ↑ Frequency (%)
+
+
+
+
+
+
+
+
+
+
+
+
+ 7.0
+ 7.2
+ 7.4
+ 7.6
+ 7.8
+ 8.0
+ 8.2
+ 8.4
-
-
- 7.0
-
-
- 7.2
-
-
- 7.4
-
-
- 7.6
-
-
- 7.8
-
-
- 8.0
-
-
- 8.2
-
-
- 8.4
- Trade volume (log₁₀) →
+
+ Trade volume (log₁₀) →
diff --git a/test/output/aaplVolumeRect.svg b/test/output/aaplVolumeRect.svg
index 5b814e7cbd..42a109c0a3 100644
--- a/test/output/aaplVolumeRect.svg
+++ b/test/output/aaplVolumeRect.svg
@@ -13,89 +13,76 @@
white-space: pre;
}
-
-
-
- 0
-
-
-
- 5
-
-
-
- 10
-
-
-
- 15
-
-
-
- 20
-
-
-
- 25
-
-
-
- 30
-
-
-
- 35
-
-
-
- 40
-
-
-
- 45
-
-
-
- 50
-
-
-
- 55
-
-
-
- 60
-
-
-
- 65
- ↑ Daily trade volume (millions)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 5
+ 10
+ 15
+ 20
+ 25
+ 30
+ 35
+ 40
+ 45
+ 50
+ 55
+ 60
+ 65
+
+
+ ↑ Daily trade volume (millions)
+
+
+
+
+
+
+
+
+
+
-
-
- Mar 18
-
-
- Mar 25
-
-
- April
-
-
- Apr 08
-
-
- Apr 15
-
-
- Apr 22
-
-
- Apr 29
-
-
- May 06
-
+
+ Mar 18
+ Mar 25
+ April
+ Apr 08
+ Apr 15
+ Apr 22
+ Apr 29
+ May 06
diff --git a/test/output/anscombeQuartet.svg b/test/output/anscombeQuartet.svg
index 18f7b940fa..23a593cb1b 100644
--- a/test/output/anscombeQuartet.svg
+++ b/test/output/anscombeQuartet.svg
@@ -13,160 +13,191 @@
white-space: pre;
}
-
-
- 4
-
-
-
- 6
-
-
-
- 8
-
-
-
- 10
-
-
-
- 12
-
- ↑ y
-
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
- series
-
-
-
-
- 5
-
-
-
- 10
-
-
-
- 15
-
-
-
-
-
- 5
-
-
-
- 10
-
-
-
- 15
-
-
-
-
-
- 5
-
-
-
- 10
-
-
-
- 15
-
-
-
-
-
- 5
-
-
-
- 10
-
-
-
- 15
- x →
-
-
-
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4
+ 6
+ 8
+ 10
+ 12
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 10
+ 15
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 10
+ 15
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 10
+ 15
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 10
+ 15
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ series
+
+
+ ↑ y
+
+
+ x →
+
\ No newline at end of file
diff --git a/test/output/athletesBinsColors.svg b/test/output/athletesBinsColors.svg
index a3b2cc4b02..07b9674d25 100644
--- a/test/output/athletesBinsColors.svg
+++ b/test/output/athletesBinsColors.svg
@@ -13,69 +13,59 @@
white-space: pre;
}
-
-
- 0
-
-
- 50
-
-
- 100
-
-
- 150
-
-
- 200
-
-
- 250
-
-
- 300
-
-
- 350
-
-
- 400
-
-
- 450
-
-
- 500
-
-
- 550
-
-
- 600
- ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 40
-
-
- 60
-
-
- 80
-
-
- 100
-
-
- 120
-
-
- 140
-
-
- 160
- weight →
+
+ 0
+ 50
+ 100
+ 150
+ 200
+ 250
+ 300
+ 350
+ 400
+ 450
+ 500
+ 550
+ 600
+
+
+ ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+
+
+ weight →
diff --git a/test/output/athletesBirthdays.svg b/test/output/athletesBirthdays.svg
index abe4f60a31..5d268ed927 100644
--- a/test/output/athletesBirthdays.svg
+++ b/test/output/athletesBirthdays.svg
@@ -13,63 +13,52 @@
white-space: pre;
}
-
-
- Jan
-
-
- Feb
-
-
- Mar
-
-
- Apr
-
-
- May
-
-
- Jun
-
-
- Jul
-
-
- Aug
-
-
- Sep
-
-
- Oct
-
-
- Nov
-
-
- Dec
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 0
-
-
- 200
-
-
- 400
-
-
- 600
-
-
- 800
-
-
- 1,000
- Frequency →
+
+ Jan
+ Feb
+ Mar
+ Apr
+ May
+ Jun
+ Jul
+ Aug
+ Sep
+ Oct
+ Nov
+ Dec
+
+
+
+
+
+
+
+
+
+
+ 0
+ 200
+ 400
+ 600
+ 800
+ 1,000
+
+
+ Frequency →
@@ -85,7 +74,20 @@
- 1,0989561,0229621,028961988989961849827897
+
+ 1,098
+ 956
+ 1,022
+ 962
+ 1,028
+ 961
+ 988
+ 989
+ 961
+ 849
+ 827
+ 897
+
diff --git a/test/output/athletesBoxingHeight.svg b/test/output/athletesBoxingHeight.svg
index 0afcaa2f5a..fd1fc53b0f 100644
--- a/test/output/athletesBoxingHeight.svg
+++ b/test/output/athletesBoxingHeight.svg
@@ -13,894 +13,343 @@
white-space: pre;
}
-
-
- 1.5
+
+
+ Africa
-
- 1.6
+
+
+
+
+
+
+
+
-
- 1.7
+
+ 1.5
+ 1.6
+ 1.7
+ 1.8
+ 1.9
+ 2.0
+ 2.1
-
- 1.8
-
-
- 1.9
-
-
- 2.0
+
+
+ ALG
+ ALG
+ EGY
+ MAR
+ SEY
+ KEN
+ TUN
+ ALG
+ CPV
+ CMR
+ NGR
+ ALG
+ MAR
+ CMR
+ MAR
+ TUN
+ EGY
+ ALG
+ NAM
+ CAF
+ UGA
+ MRI
+ MAR
+ CMR
+ EGY
+ NAM
+ MRI
+ ALG
+ MAR
+ MAR
+ MAR
+ CGO
+ KEN
+ ALG
+ CMR
+ EGY
+ ALG
+ MAR
-
- 2.1
- ↑ height
-
-
- Africa
-
-
- Americas
+
+
+ Americas
-
- Asia
-
-
- Europe
-
-
- Oceania
- continent
-
-
-
+
-
- ALG
-
-
- ALG
-
-
- EGY
-
-
- MAR
-
-
- SEY
-
-
- KEN
-
-
- TUN
-
-
- ALG
-
-
- CPV
-
-
- CMR
-
-
- NGR
-
-
- ALG
-
-
- MAR
-
-
- CMR
-
-
- MAR
-
-
- TUN
-
-
- EGY
-
-
- ALG
-
-
- NAM
-
-
- CAF
-
-
- UGA
-
-
- MRI
-
-
- MAR
-
-
- CMR
-
-
- EGY
-
-
- NAM
-
-
- MRI
-
-
- ALG
-
-
- MAR
-
-
- MAR
-
-
- MAR
-
-
- CGO
-
-
- KEN
-
-
- ALG
-
-
- CMR
-
-
- EGY
-
-
- ALG
-
-
- MAR
-
+ BRA
+ VEN
+ ARG
+ ARG
+ BRA
+ USA
+ CAN
+ CUB
+ CAN
+ PAN
+ ECU
+ ECU
+ USA
+ COL
+ USA
+ USA
+ VEN
+ MEX
+ VEN
+ CUB
+ ARG
+ VEN
+ USA
+ DOM
+ ARG
+ COL
+ PUR
+ CUB
+ BRA
+ COL
+ MEX
+ COL
+ BRA
+ MEX
+ BRA
+ ECU
+ CUB
+ CUB
+ ARG
+ CUB
+ DOM
+ MEX
+ VEN
+ VEN
+ CAN
+ ECU
+ BRA
+ USA
+ MEX
+ USA
+ TTO
+ BRA
+ MEX
+ CUB
+ BRA
+ BRA
+ CUB
+ USA
+ VEN
+ ARG
+ CUB
+ VEN
+ CUB
+ COL
-
-
-
-
- BRA
-
-
- VEN
-
-
- ARG
-
-
- ARG
-
-
- BRA
-
-
- USA
-
-
- CAN
-
-
- CUB
-
-
- CAN
-
-
- PAN
-
-
- ECU
-
-
- ECU
-
-
- USA
-
-
- COL
-
-
- USA
-
-
- USA
-
-
- VEN
-
-
- MEX
-
-
- VEN
-
-
- CUB
-
-
- ARG
-
-
- VEN
-
-
- USA
-
-
- DOM
-
-
- ARG
-
-
- COL
-
-
- PUR
-
-
- CUB
-
-
- BRA
-
-
- COL
-
-
- MEX
-
-
- COL
-
-
- BRA
-
-
- MEX
-
-
- BRA
-
-
- ECU
-
-
- CUB
-
-
- CUB
-
-
- ARG
-
-
- CUB
-
-
- DOM
-
-
- MEX
-
-
- VEN
-
-
- VEN
-
-
- CAN
-
-
- ECU
-
-
- BRA
-
-
- USA
-
-
- MEX
-
-
- USA
-
-
- TTO
-
-
- BRA
-
-
- MEX
-
-
- CUB
-
-
- BRA
-
-
- BRA
-
-
- CUB
-
-
- USA
-
-
- VEN
-
-
- ARG
-
-
- CUB
-
-
- VEN
-
-
- CUB
-
-
- COL
-
+
+
+ Asia
-
-
-
+
-
- AZE
-
-
- KAZ
-
-
- KAZ
-
-
- RUS
-
-
- AZE
-
-
- TUR
-
-
- THA
-
-
- RUS
-
-
- RUS
-
-
- TJK
-
-
- ARM
-
-
- JPN
-
-
- TKM
-
-
- RUS
-
-
- ARM
-
-
- UZB
-
-
- TUR
-
-
- UZB
-
-
- KAZ
-
-
- CHN
-
-
- KAZ
-
-
- CHN
-
-
- PHI
-
-
- THA
-
-
- MGL
-
-
- TPE
-
-
- JPN
-
-
- KAZ
-
-
- KAZ
-
-
- IRI
-
-
- UZB
-
-
- AZE
-
-
- MGL
-
-
- KGZ
-
-
- RUS
-
-
- UZB
-
-
- CHN
-
-
- MGL
-
-
- QAT
-
-
- UZB
-
-
- ARM
-
-
- UZB
-
-
- JOR
-
-
- RUS
-
-
- KAZ
-
-
- AZE
-
-
- CHN
-
-
- CHN
-
-
- CHN
-
-
- CHN
-
-
- KAZ
-
-
- AZE
-
-
- IND
-
-
- AZE
-
-
- AZE
-
-
- IND
-
-
- TUR
-
-
- CHN
-
-
- RUS
-
-
- UZB
-
-
- ARM
-
-
- TPE
-
-
- JOR
-
-
- KAZ
-
-
- TUR
-
-
- TUR
-
-
- MGL
-
-
- AZE
-
-
- THA
-
-
- RUS
-
-
- CHN
-
-
- CHN
-
-
- PHI
-
-
- AZE
-
-
- UZB
-
-
- KOR
-
-
- THA
-
-
- TUR
-
-
- UZB
-
-
- UZB
-
-
- IND
-
-
- AZE
-
-
- QAT
-
-
- MGL
-
-
- MGL
-
-
- RUS
-
-
- KAZ
-
-
- RUS
-
-
- ARM
-
-
- RUS
-
-
- IRQ
-
-
- CHN
-
-
- THA
-
-
- AZE
-
-
- UZB
-
-
- KAZ
-
-
- KAZ
-
+ AZE
+ KAZ
+ KAZ
+ RUS
+ AZE
+ TUR
+ THA
+ RUS
+ RUS
+ TJK
+ ARM
+ JPN
+ TKM
+ RUS
+ ARM
+ UZB
+ TUR
+ UZB
+ KAZ
+ CHN
+ KAZ
+ CHN
+ PHI
+ THA
+ MGL
+ TPE
+ JPN
+ KAZ
+ KAZ
+ IRI
+ UZB
+ AZE
+ MGL
+ KGZ
+ RUS
+ UZB
+ CHN
+ MGL
+ QAT
+ UZB
+ ARM
+ UZB
+ JOR
+ RUS
+ KAZ
+ AZE
+ CHN
+ CHN
+ CHN
+ CHN
+ KAZ
+ AZE
+ IND
+ AZE
+ AZE
+ IND
+ TUR
+ CHN
+ RUS
+ UZB
+ ARM
+ TPE
+ JOR
+ KAZ
+ TUR
+ TUR
+ MGL
+ AZE
+ THA
+ RUS
+ CHN
+ CHN
+ PHI
+ AZE
+ UZB
+ KOR
+ THA
+ TUR
+ UZB
+ UZB
+ IND
+ AZE
+ QAT
+ MGL
+ MGL
+ RUS
+ KAZ
+ RUS
+ ARM
+ RUS
+ IRQ
+ CHN
+ THA
+ AZE
+ UZB
+ KAZ
+ KAZ
-
-
+
+
+ Europe
+
+
-
- SWE
-
-
- GBR
-
-
- GER
-
-
- GER
-
-
- IRL
-
-
- ITA
-
-
- FRA
-
-
- ITA
-
-
- BUL
-
-
- GER
-
-
- IRL
-
-
- UKR
-
-
- UKR
-
-
- BLR
-
-
- LTU
-
-
- FRA
-
-
- NED
-
-
- GER
-
-
- FRA
-
-
- LTU
-
-
- CRO
-
-
- GBR
-
-
- ITA
-
-
- GER
-
-
- FRA
-
-
- CRO
-
-
- POL
-
-
- HUN
-
-
- ITA
-
-
- GBR
-
-
- GBR
-
-
- IRL
-
-
- GBR
-
-
- GBR
-
-
- IRL
-
-
- GBR
-
-
- ITA
-
-
- FRA
-
-
- IRL
-
-
- IRL
-
-
- ROU
-
-
- BLR
-
-
- FIN
-
-
- GBR
-
-
- UKR
-
-
- GBR
-
-
- NED
-
-
- GBR
-
-
- IRL
-
-
- FRA
-
-
- BLR
-
-
- NED
-
-
- GBR
-
-
- ESP
-
-
- FRA
-
-
- GBR
-
-
- GER
-
-
- BUL
-
-
- FRA
-
-
- FRA
-
-
- BUL
-
-
- IRL
-
-
- HON
-
-
- UKR
-
-
- POL
-
-
- FRA
-
-
- ITA
-
-
- ITA
-
-
- UKR
-
-
- ESP
-
-
- HUN
-
+ SWE
+ GBR
+ GER
+ GER
+ IRL
+ ITA
+ FRA
+ ITA
+ BUL
+ GER
+ IRL
+ UKR
+ UKR
+ BLR
+ LTU
+ FRA
+ NED
+ GER
+ FRA
+ LTU
+ CRO
+ GBR
+ ITA
+ GER
+ FRA
+ CRO
+ POL
+ HUN
+ ITA
+ GBR
+ GBR
+ IRL
+ GBR
+ GBR
+ IRL
+ GBR
+ ITA
+ FRA
+ IRL
+ IRL
+ ROU
+ BLR
+ FIN
+ GBR
+ UKR
+ GBR
+ NED
+ GBR
+ IRL
+ FRA
+ BLR
+ NED
+ GBR
+ ESP
+ FRA
+ GBR
+ GER
+ BUL
+ FRA
+ FRA
+ BUL
+ IRL
+ HON
+ UKR
+ POL
+ FRA
+ ITA
+ ITA
+ UKR
+ ESP
+ HUN
-
-
+
+
+ Oceania
+
+
-
- AUS
-
-
- AUS
-
-
- FSM
-
-
- AUS
-
-
- PNG
-
+ AUS
+ AUS
+ FSM
+ AUS
+ PNG
+
+ continent
+
+
+ ↑ height
+
\ No newline at end of file
diff --git a/test/output/athletesHeightWeight.svg b/test/output/athletesHeightWeight.svg
index ef3205a465..02070ae474 100644
--- a/test/output/athletesHeightWeight.svg
+++ b/test/output/athletesHeightWeight.svg
@@ -13,117 +13,104 @@
white-space: pre;
}
-
-
-
- 1.25
-
-
-
- 1.30
-
-
-
- 1.35
-
-
-
- 1.40
-
-
-
- 1.45
-
-
-
- 1.50
-
-
-
- 1.55
-
-
-
- 1.60
-
-
-
- 1.65
-
-
-
- 1.70
-
-
-
- 1.75
-
-
-
- 1.80
-
-
-
- 1.85
-
-
-
- 1.90
-
-
-
- 1.95
-
-
-
- 2.00
-
-
-
- 2.05
-
-
-
- 2.10
-
-
-
- 2.15
-
-
-
- 2.20
- ↑ height
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 40
-
-
-
- 60
-
-
-
- 80
-
-
-
- 100
-
-
-
- 120
-
-
-
- 140
-
-
-
- 160
- weight →
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.25
+ 1.30
+ 1.35
+ 1.40
+ 1.45
+ 1.50
+ 1.55
+ 1.60
+ 1.65
+ 1.70
+ 1.75
+ 1.80
+ 1.85
+ 1.90
+ 1.95
+ 2.00
+ 2.05
+ 2.10
+ 2.15
+ 2.20
+
+
+ ↑ height
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+
+
+ weight →
diff --git a/test/output/athletesHeightWeightBin.svg b/test/output/athletesHeightWeightBin.svg
index 1ad0f26da5..2bf28cdab5 100644
--- a/test/output/athletesHeightWeightBin.svg
+++ b/test/output/athletesHeightWeightBin.svg
@@ -13,81 +13,77 @@
white-space: pre;
}
-
-
-
- 1.2
-
-
-
- 1.3
-
-
-
- 1.4
-
-
-
- 1.5
-
-
-
- 1.6
-
-
-
- 1.7
-
-
-
- 1.8
-
-
-
- 1.9
-
-
-
- 2.0
-
-
-
- 2.1
-
-
-
- 2.2
- ↑ height
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 40
-
-
-
- 60
-
-
-
- 80
-
-
-
- 100
-
-
-
- 120
-
-
-
- 140
-
-
-
- 160
- weight →
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.2
+ 1.3
+ 1.4
+ 1.5
+ 1.6
+ 1.7
+ 1.8
+ 1.9
+ 2.0
+ 2.1
+ 2.2
+
+
+ ↑ height
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+
+
+ weight →
diff --git a/test/output/athletesHeightWeightBinStroke.svg b/test/output/athletesHeightWeightBinStroke.svg
index 38afde6c1f..4633944613 100644
--- a/test/output/athletesHeightWeightBinStroke.svg
+++ b/test/output/athletesHeightWeightBinStroke.svg
@@ -13,81 +13,77 @@
white-space: pre;
}
-
-
-
- 1.2
-
-
-
- 1.3
-
-
-
- 1.4
-
-
-
- 1.5
-
-
-
- 1.6
-
-
-
- 1.7
-
-
-
- 1.8
-
-
-
- 1.9
-
-
-
- 2.0
-
-
-
- 2.1
-
-
-
- 2.2
- ↑ height
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 40
-
-
-
- 60
-
-
-
- 80
-
-
-
- 100
-
-
-
- 120
-
-
-
- 140
-
-
-
- 160
- weight →
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.2
+ 1.3
+ 1.4
+ 1.5
+ 1.6
+ 1.7
+ 1.8
+ 1.9
+ 2.0
+ 2.1
+ 2.2
+
+
+ ↑ height
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+
+
+ weight →
diff --git a/test/output/athletesHeightWeightSex.svg b/test/output/athletesHeightWeightSex.svg
index 7f0482abab..6b6eff9708 100644
--- a/test/output/athletesHeightWeightSex.svg
+++ b/test/output/athletesHeightWeightSex.svg
@@ -13,81 +13,77 @@
white-space: pre;
}
-
-
-
- 1.2
-
-
-
- 1.3
-
-
-
- 1.4
-
-
-
- 1.5
-
-
-
- 1.6
-
-
-
- 1.7
-
-
-
- 1.8
-
-
-
- 1.9
-
-
-
- 2.0
-
-
-
- 2.1
-
-
-
- 2.2
- ↑ height
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 40
-
-
-
- 60
-
-
-
- 80
-
-
-
- 100
-
-
-
- 120
-
-
-
- 140
-
-
-
- 160
- weight →
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.2
+ 1.3
+ 1.4
+ 1.5
+ 1.6
+ 1.7
+ 1.8
+ 1.9
+ 2.0
+ 2.1
+ 2.2
+
+
+ ↑ height
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+
+
+ weight →
diff --git a/test/output/athletesHeightWeightSport.svg b/test/output/athletesHeightWeightSport.svg
index 68965510bb..adba5477b5 100644
--- a/test/output/athletesHeightWeightSport.svg
+++ b/test/output/athletesHeightWeightSport.svg
@@ -13,117 +13,104 @@
white-space: pre;
}
-
-
-
- 1.25
-
-
-
- 1.30
-
-
-
- 1.35
-
-
-
- 1.40
-
-
-
- 1.45
-
-
-
- 1.50
-
-
-
- 1.55
-
-
-
- 1.60
-
-
-
- 1.65
-
-
-
- 1.70
-
-
-
- 1.75
-
-
-
- 1.80
-
-
-
- 1.85
-
-
-
- 1.90
-
-
-
- 1.95
-
-
-
- 2.00
-
-
-
- 2.05
-
-
-
- 2.10
-
-
-
- 2.15
-
-
-
- 2.20
- ↑ height
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 40
-
-
-
- 60
-
-
-
- 80
-
-
-
- 100
-
-
-
- 120
-
-
-
- 140
-
-
-
- 160
- weight →
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.25
+ 1.30
+ 1.35
+ 1.40
+ 1.45
+ 1.50
+ 1.55
+ 1.60
+ 1.65
+ 1.70
+ 1.75
+ 1.80
+ 1.85
+ 1.90
+ 1.95
+ 2.00
+ 2.05
+ 2.10
+ 2.15
+ 2.20
+
+
+ ↑ height
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+
+
+ weight →
diff --git a/test/output/athletesNationality.svg b/test/output/athletesNationality.svg
index 3866bc5cfa..c75e3a4220 100644
--- a/test/output/athletesNationality.svg
+++ b/test/output/athletesNationality.svg
@@ -13,93 +13,76 @@
white-space: pre;
}
-
-
- USA
-
-
- BRA
-
-
- GER
-
-
- AUS
-
-
- FRA
-
-
- CHN
-
-
- GBR
-
-
- JPN
-
-
- CAN
-
-
- ESP
-
-
- ITA
-
-
- RUS
-
-
- NED
-
-
- POL
-
-
- ARG
-
-
- KOR
-
-
- NZL
-
-
- UKR
-
-
- SWE
-
-
- COL
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 0
-
-
-
- 100
-
-
-
- 200
-
-
-
- 300
-
-
-
- 400
-
-
-
- 500
- Frequency →
+
+ USA
+ BRA
+ GER
+ AUS
+ FRA
+ CHN
+ GBR
+ JPN
+ CAN
+ ESP
+ ITA
+ RUS
+ NED
+ POL
+ ARG
+ KOR
+ NZL
+ UKR
+ SWE
+ COL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 100
+ 200
+ 300
+ 400
+ 500
+
+
+ Frequency →
diff --git a/test/output/athletesSample.svg b/test/output/athletesSample.svg
index 473eed4ee2..3f46ef41ae 100644
--- a/test/output/athletesSample.svg
+++ b/test/output/athletesSample.svg
@@ -13,634 +13,210 @@
white-space: pre;
}
-
-
- aquatics
-
-
- archery
-
-
- athletics
-
-
- badminton
-
-
- basketball
-
-
- boxing
-
-
- canoe
-
-
- cycling
-
-
- equestrian
-
-
- fencing
-
-
- football
-
-
- golf
-
-
- gymnastics
-
-
- handball
-
-
- hockey
-
-
- judo
-
-
- modern pentathlon
-
-
- rowing
-
-
- rugby sevens
-
-
- sailing
-
-
- shooting
-
-
- table tennis
-
-
- taekwondo
-
-
- tennis
-
-
- triathlon
-
-
- volleyball
-
-
- weightlifting
-
-
- wrestling
- sport
-
-
-
- 40
-
-
-
- 60
-
-
-
- 80
-
-
-
- 100
-
-
-
- 120
-
-
-
- 140
-
-
-
- 160
-
- weight →
-
-
-
-
- Aaron Younger
-
-
- Bjorn Hornikel
-
-
- Dusan Mandic
-
-
- Ilia Druzhinin
-
-
- Kosuke Hagino
-
-
- Miguel Ortiz Canavate Ozeki
-
-
- Ryan Pini
-
-
- Yaaqoub Alsaadi
-
-
- Abbey Weitzeil
-
-
- Bronte Barratt
-
-
- Evangelia Papazoglou
-
-
- Jing Zhang
-
-
- Lorena Molinos
-
-
- Natalia Ishchenko
-
-
- Shiwen Ye
-
-
- Yue Cao
-
-
-
-
-
-
- Adrian Andres Puentes Perez
-
-
- Adriana Martin
-
-
-
-
-
-
- A Jesus Garcia
-
-
- Anthony Zambrano
-
-
- Carl Dohmann
-
-
- Dmitry Kroyter
-
-
- Gil Roberts
-
-
- James Ellington
-
-
- Kapririel Kitson
-
-
- Lukas Melich
-
-
- Miguel Francis
-
-
- Paulo Amotun
-
-
- Ronnie Ash
-
-
- Tarik Langat Akdag
-
-
- Yordan L. O'Farrill
-
-
- Aauri Lorena Bokesa
-
-
- Anna Kornuta
-
-
- Chrisann Gordon
-
-
- Eliane Saholinirina
-
-
- Hanna Knyazyeva-Minenko
-
-
- Julia Takacs
-
-
- Marisol Romero
-
-
- Natthaya Thanaronnawat
-
-
- Rosemary Quispe
-
-
- Yasemin Can
-
-
-
-
-
-
- Adam Cwalina
-
-
- Akane Yamaguchi
-
-
-
-
-
-
- Adas Juskevicius
-
-
- Nicolas Laprovittola
-
-
- Adriana Moises
-
-
- Oumoul Thiam
-
-
-
-
-
-
-
- Adam van Koeverden
-
-
- Jordan Wood
-
-
- Stephen Bird
-
-
- Afef Ben Ismail
-
-
- Ursa Kragelj
-
-
-
-
-
-
- Aaron Gate
-
-
- Georg Preidler
-
-
- Michael Hepburn
-
-
- Toms Skujins
-
-
- Ahreum Na
-
-
- Katrin Garfoot
-
-
-
-
-
-
- Abdelkebir Ouaddar
-
-
- Pedro Tavares de Almeida
-
-
- Adelinde Cornelissen
-
-
-
-
-
-
- A Lam Shin
-
-
- Seona Hwang
-
-
- Richard Kruse
-
-
-
-
-
-
- Abbubaker Mobara
-
-
- Filipe Baravilala
-
-
- Mathias Hebo Rasmussen
-
-
- Abby Erceg
-
-
- Isabel Kerschowski
-
-
- Rebecca Quinn
-
-
-
-
-
-
- Adilson da Silva
-
-
- Aditi Ashok
-
-
-
-
-
-
- Aiko Sugihara
-
-
- Laura Zeng
-
-
- Yeon Jae Son
-
-
- Alexander Naddour
-
-
- Se Gwang Ri
-
-
-
-
-
-
- Abdulrazzaq Murad
-
-
- Makrem Missaoui
-
-
- Ailly Luciano
-
-
- Louise Sand
-
-
-
-
-
-
- Adam Dixon
-
-
- Juan Gilardi
-
-
- Thomas Briels
-
-
- Agustina Albertarrio
-
-
- Kathleen Bam
-
-
- Victoria Zuloaga
-
-
-
-
-
-
- Abderrahmane Benamadi
-
-
- Simon Yacoub
-
-
- Abigel Joo
-
-
- Miku Tashiro
-
-
-
-
-
-
- Adam Marosi
-
-
- Alice Sotero
-
-
-
-
-
-
- Abdelkhalek Elbanna
-
-
- Georgi Bozhilov
-
-
- Matt Langridge
-
-
- Thibault Colard
-
-
- Adelina Bogus
-
-
- Katherine Copeland
-
-
- Weiwei Zhu
-
-
-
-
-
-
- Abbie Brown
-
-
- Marina Bravo
-
-
- Akira Ioane
-
-
- Nicolas Bruzzone
-
-
-
-
-
-
- Afrodite Zegers
-
-
- Ahmed Ragab
-
-
- Juozas Bernotas
-
-
- Tonci Stipanovic
-
-
-
-
-
-
- Abdel Aziz Mehelba
-
-
- Jitu Rai
-
-
- Song Guk Kim
-
-
- Adela Bruns
-
-
- Natallia Kalnysh
-
-
-
-
-
-
- Adam Pattantyus
-
-
- Adriana Diaz
-
-
-
-
-
-
- Aaron Cook
-
-
- Ainur Yesbergenova
-
-
-
-
-
-
- Agnieszka Radwanska
-
-
- Albert Ramos-Vinolas
-
-
- Vasek Pospisil
-
-
-
-
-
-
- Aaron Royle
-
-
- Agnieszka Jerzyk
-
-
-
-
-
-
- Aaron Russell
-
-
- Kostyantyn Bakun
-
-
- Abdoulkarim Fawziya
-
-
- Kotoki Zayasu
-
-
-
-
-
-
- Adrian Edward Zielinski
-
-
- Myeongmok Han
-
-
- Alejandra Garza Garza
-
-
- Yuderqui Maridalia Contreras
-
-
-
-
-
-
- Abbos Rakhmonov
-
-
- Ibragim Labazanov
-
-
- Soslan Ramonov
-
-
- Adela Hanzlickova
-
-
- Valeriia Koblova Zholobova
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ aquatics
+ archery
+ athletics
+ badminton
+ basketball
+ boxing
+ canoe
+ cycling
+ equestrian
+ fencing
+ football
+ golf
+ gymnastics
+ handball
+ hockey
+ judo
+ modern pentathlon
+ rowing
+ rugby sevens
+ sailing
+ shooting
+ table tennis
+ taekwondo
+ tennis
+ triathlon
+ volleyball
+ weightlifting
+ wrestling
+
+
+ sport
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+
+
+ weight →
+
+
+ A Jesus Garcia
+ Aichen Wang
+ Alejandro Valverde Belmonte
+ Alexander Sigurbjornsson
+ Alin George Moldoveanu
+ Amas Daniel
+ Bachir Mahamat
+ Ben Kanute
+ Changrui Xue
+ Chun Hing Chan
+ Craig Miller
+ Danell Leyva
+ Davie Selke
+ Dong Keun Lee
+ Eduard Popp
+ Emanuel Silva
+ Erick Barrondo
+ Evan Van Moerkerke
+ Filip Dvorak
+ Frank Chamizo Marquez
+ Gauthier Grumier
+ Gregory Bauge
+ Hersony Canelon
+ Jack Green
+ Javier Garcia Gadea
+ Jeroen Dubbeldam
+ Joe Kovacs
+ Jordan Coelho
+ Kevin Staut
+ Kleber da Silva Ramos
+ Kurt Couto
+ Lomano Lemeki
+ Luguelin Santos
+ Marc Zwiebler
+ Markus Thormeyer
+ Matthew Glaetzer
+ Mehdi Marzouki
+ Michael Perez
+ Moises Duque
+ Myong Hyok Kim
+ Nic Woods
+ Pablo Herrera Allepuz
+ Paul Kipngetich Tanui
+ Pieter-Jan Postma
+ Raul Hernandez Hidalgo
+ Ricardas Nekriosius
+ Robert van der Horst
+ Ryan Bailie
+ Sam Webster
+ Seabelo Senatla
+ Serguey Torres
+ Simone Giannelli
+ Soslan Daurov
+ Stephen Bird
+ Taras Mishchuk
+ Theo Piniau
+ Tim Nedow
+ Tontowi Ahmad
+ Uvis Kalnins
+ Vicenc Ruiz
+ Will Brown
+ Yosuke Nakayama
+ Yuri Floriani
+ Ziv Kalontarov
+ Adela Hanzlickova
+ Anastasiia Lysenko
+ Angelique Kerber
+ Annika Beck
+ Aria Fischer
+ Ashlyn Harris
+ Birgit Michels
+ Brenda Flores
+ Caitlin van Sickle
+ Carolina Rodriguez
+ Chloe Leurquin
+ Daria Gavrilova
+ Diana Martin
+ Elena-Lavinia Tarlea
+ Farida Osman
+ Gil Cohen
+ Hye-Song Kim
+ Ilse Paulis
+ Isabel Kerschowski
+ Jamile Samuel
+ Jieni Shao
+ Julie Johnston
+ Kamia Yousufi
+ Katarzyna Krawczyk
+ Keesja Gofers
+ Leidy Asprilla
+ Liliyana Natsir
+ Maaike Head
+ Makenzie Fischer
+ Maria Casado
+ Mariia Shurochkina
+ Maryia Papova
+ Miho Yoshioka
+ Mirela Demireva
+ Natalia Vorobeva
+ Nikkita Holder
+ Nur Tatar
+ Olivia Schough
+ Persis William-Mensah
+ Rabia Guelec
+ Rosa Godoy
+ Sapsiree Taerattanachai
+ Shijie Qieyang
+ Svetlana Romashina
+ Vitoria Cristina Rosa
+ Xue Li
+ Yekaterina Nemich
\ No newline at end of file
diff --git a/test/output/athletesSampleFacet.svg b/test/output/athletesSampleFacet.svg
new file mode 100644
index 0000000000..f9ef88bb65
--- /dev/null
+++ b/test/output/athletesSampleFacet.svg
@@ -0,0 +1,589 @@
+
\ No newline at end of file
diff --git a/test/output/athletesSexWeight.svg b/test/output/athletesSexWeight.svg
index 03d7dfc5ad..4cb0ee8abd 100644
--- a/test/output/athletesSexWeight.svg
+++ b/test/output/athletesSexWeight.svg
@@ -13,74 +13,68 @@
white-space: pre;
}
-
-
-
- 0
-
-
-
- 100
-
-
-
- 200
-
-
-
- 300
-
-
-
- 400
-
-
-
- 500
-
-
-
- 600
-
-
-
- 700
-
-
-
- 800
-
-
-
- 900
-
-
-
- 1,000
- ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 100
+ 200
+ 300
+ 400
+ 500
+ 600
+ 700
+ 800
+ 900
+ 1,000
+
+
+ ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
-
-
- 40
-
-
- 60
-
-
- 80
-
-
- 100
-
-
- 120
-
-
- 140
-
-
- 160
- weight →
+
+ weight →
diff --git a/test/output/athletesSportSex.svg b/test/output/athletesSportSex.svg
index 1c6f71358f..800f0b6ea0 100644
--- a/test/output/athletesSportSex.svg
+++ b/test/output/athletesSportSex.svg
@@ -13,137 +13,107 @@
white-space: pre;
}
-
-
- boxing
-
-
- wrestling
-
-
- canoe
-
-
- cycling
-
-
- equestrian
-
-
- shooting
-
-
- judo
-
-
- rowing
-
-
- weightlifting
-
-
- sailing
-
-
- football
-
-
- tennis
-
-
- athletics
-
-
- golf
-
-
- rugby sevens
-
-
- aquatics
-
-
- handball
-
-
- archery
-
-
- badminton
-
-
- basketball
-
-
- hockey
-
-
- modern pentathlon
-
-
- table tennis
-
-
- taekwondo
-
-
- triathlon
-
-
- volleyball
-
-
- fencing
-
-
- gymnastics
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 0
-
-
-
- 10
-
-
-
- 20
-
-
-
- 30
-
-
-
- 40
-
-
-
- 50
-
-
-
- 60
-
-
-
- 70
-
-
-
- 80
-
-
-
- 90
-
-
-
- 100
- Women (%) →
+
+ boxing
+ wrestling
+ canoe
+ cycling
+ equestrian
+ shooting
+ judo
+ rowing
+ weightlifting
+ sailing
+ football
+ tennis
+ athletics
+ golf
+ rugby sevens
+ aquatics
+ handball
+ archery
+ badminton
+ basketball
+ hockey
+ modern pentathlon
+ table tennis
+ taekwondo
+ triathlon
+ volleyball
+ fencing
+ gymnastics
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 10
+ 20
+ 30
+ 40
+ 50
+ 60
+ 70
+ 80
+ 90
+ 100
+
+
+ Women (%) →
diff --git a/test/output/athletesSportWeight.svg b/test/output/athletesSportWeight.svg
index e26f008b22..7371cc93c6 100644
--- a/test/output/athletesSportWeight.svg
+++ b/test/output/athletesSportWeight.svg
@@ -13,1063 +13,1308 @@
white-space: pre;
}
-
-
- aquatics
+
+
+ aquatics
-
- archery
+
+
+
+
+
+
+
+
-
- athletics
-
-
- badminton
-
-
- basketball
-
-
- boxing
-
-
- canoe
-
-
- cycling
-
-
- equestrian
-
-
- fencing
-
-
- football
-
-
- golf
-
-
- gymnastics
-
-
- handball
-
-
- hockey
-
-
- judo
-
-
- modern pentathlon
-
-
- rowing
-
-
- rugby sevens
-
-
- sailing
-
-
- shooting
-
-
- table tennis
-
-
- taekwondo
-
-
- tennis
-
-
- triathlon
-
-
- volleyball
-
-
- weightlifting
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- wrestling
- sport
-
-
-
-
- 40
-
-
-
- 60
-
-
-
- 80
-
-
-
- 100
-
-
-
- 120
-
-
-
- 140
-
-
-
- 160
-
- weight →
+
+ archery
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ athletics
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ badminton
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ basketball
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ boxing
+
+
+
+
+
+
+
+
+
+
+
+
+
+ canoe
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+ cycling
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ equestrian
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ fencing
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ football
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ golf
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gymnastics
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ handball
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hockey
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ judo
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ modern pentathlon
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ rowing
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ rugby sevens
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sailing
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ shooting
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ table tennis
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ taekwondo
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tennis
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ triathlon
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ volleyball
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ weightlifting
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ wrestling
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sport
+
+
+ weight →
+
\ No newline at end of file
diff --git a/test/output/athletesWeight.svg b/test/output/athletesWeight.svg
index d9fd82fdfb..82b06898f5 100644
--- a/test/output/athletesWeight.svg
+++ b/test/output/athletesWeight.svg
@@ -13,69 +13,59 @@
white-space: pre;
}
-
-
- 0
-
-
- 50
-
-
- 100
-
-
- 150
-
-
- 200
-
-
- 250
-
-
- 300
-
-
- 350
-
-
- 400
-
-
- 450
-
-
- 500
-
-
- 550
-
-
- 600
- ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 40
-
-
- 60
-
-
- 80
-
-
- 100
-
-
- 120
-
-
- 140
-
-
- 160
- weight →
+
+ 0
+ 50
+ 100
+ 150
+ 200
+ 250
+ 300
+ 350
+ 400
+ 450
+ 500
+ 550
+ 600
+
+
+ ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+
+
+ weight →
diff --git a/test/output/athletesWeightCumulative.svg b/test/output/athletesWeightCumulative.svg
index b195fa9774..2ba43b5b8a 100644
--- a/test/output/athletesWeightCumulative.svg
+++ b/test/output/athletesWeightCumulative.svg
@@ -13,63 +13,55 @@
white-space: pre;
}
-
-
- 0
-
-
- 1,000
-
-
- 2,000
-
-
- 3,000
-
-
- 4,000
-
-
- 5,000
-
-
- 6,000
-
-
- 7,000
-
-
- 8,000
-
-
- 9,000
-
-
- 10,000
- ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 40
-
-
- 60
-
-
- 80
-
-
- 100
-
-
- 120
-
-
- 140
-
-
- 160
- weight →
+
+ 0
+ 1,000
+ 2,000
+ 3,000
+ 4,000
+ 5,000
+ 6,000
+ 7,000
+ 8,000
+ 9,000
+ 10,000
+
+
+ ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 60
+ 80
+ 100
+ 120
+ 140
+ 160
+
+
+ weight →
diff --git a/test/output/availability.svg b/test/output/availability.svg
index 4e971c9747..b153c1f0a3 100644
--- a/test/output/availability.svg
+++ b/test/output/availability.svg
@@ -13,45 +13,40 @@
white-space: pre;
}
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
- ↑ value
+
+
+
+
+
+
+
-
-
- 2020
-
-
- April
-
-
- July
-
-
- October
-
-
- 2021
-
-
- April
-
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+
+
+ ↑ value
+
+
+
+
+
+
+
+
+
+
+ 2020
+ April
+ July
+ October
+ 2021
+ April
diff --git a/test/output/axisLabelBoth.svg b/test/output/axisLabelBoth.svg
new file mode 100644
index 0000000000..70483a5fbb
--- /dev/null
+++ b/test/output/axisLabelBoth.svg
@@ -0,0 +1,114 @@
+
\ No newline at end of file
diff --git a/test/output/axisLabelBothReverse.svg b/test/output/axisLabelBothReverse.svg
new file mode 100644
index 0000000000..526d2d59fd
--- /dev/null
+++ b/test/output/axisLabelBothReverse.svg
@@ -0,0 +1,114 @@
+
\ No newline at end of file
diff --git a/test/output/axisLabelX.svg b/test/output/axisLabelX.svg
new file mode 100644
index 0000000000..11d858d13e
--- /dev/null
+++ b/test/output/axisLabelX.svg
@@ -0,0 +1,87 @@
+
\ No newline at end of file
diff --git a/test/output/axisLabelY.svg b/test/output/axisLabelY.svg
new file mode 100644
index 0000000000..3138af7481
--- /dev/null
+++ b/test/output/axisLabelY.svg
@@ -0,0 +1,87 @@
+
\ No newline at end of file
diff --git a/test/output/ballotStatusRace.svg b/test/output/ballotStatusRace.svg
index fae40f1d94..59b1b21a96 100644
--- a/test/output/ballotStatusRace.svg
+++ b/test/output/ballotStatusRace.svg
@@ -13,173 +13,170 @@
white-space: pre;
}
-
-
- WHITE
+
+
+ WHITE
-
- UNDESIGNATED
+
+
+
+
+
-
- ASIAN
-
-
- OTHER
-
-
- TWO or MORE RACES
+
+ 79.0%
+ 0.4%
+ 20.5%
-
- INDIAN AMERICAN or ALASKA NATIVE
+
+
-
- BLACK or AFRICAN AMERICAN
+
+
+
+ UNDESIGNATED
-
- NATIVE HAWAIIAN or PACIFIC ISLANDER
+
+
+
+
+
-
-
-
- 0
-
-
-
- 20
-
-
-
- 40
-
-
-
- 60
-
- Frequency (%) →
-
-
-
- 79.0%
-
-
- 0.4%
-
-
- 20.5%
-
+ 78.3%
+ 0.6%
+ 21.1%
-
+
-
-
-
- 78.3%
-
-
- 0.6%
-
-
- 21.1%
-
+
+
+ ASIAN
-
-
+
+
+
+
+
-
-
-
- 77.9%
-
-
- 21.5%
-
-
- 0.6%
-
+ 77.9%
+ 21.5%
+ 0.6%
-
+
-
+
+
+ OTHER
+
+
+
+
+
+
+
-
- 74.1%
-
-
- 0.8%
-
-
- 25.1%
-
+ 74.1%
+ 0.8%
+ 25.1%
-
+
-
+
+
+ TWO or MORE RACES
+
+
+
+
+
+
+
-
- 73.9%
-
-
- 25.3%
-
-
- 0.8%
-
+ 73.9%
+ 25.3%
+ 0.8%
-
+
-
+
+
+ INDIAN AMERICAN or ALASKA NATIVE
+
+
+
+
+
+
+
-
- 25.5%
-
-
- 72.2%
-
-
- 2.3%
-
+ 25.5%
+ 72.2%
+ 2.3%
-
+
-
+
+
+ BLACK or AFRICAN AMERICAN
+
+
+
+
+
+
+
-
- 67.4%
-
-
- 31.5%
-
-
- 1.1%
-
+ 67.4%
+ 31.5%
+ 1.1%
-
+
-
+
+
+ NATIVE HAWAIIAN or PACIFIC ISLANDER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 20
+ 40
+ 60
+
-
- 41.7%
-
-
- 58.3%
-
+ 41.7%
+ 58.3%
-
+
+
+ Frequency (%) →
+
\ No newline at end of file
diff --git a/test/output/bandClip.svg b/test/output/bandClip.svg
index 6c24b791e8..9212b5a80f 100644
--- a/test/output/bandClip.svg
+++ b/test/output/bandClip.svg
@@ -13,33 +13,35 @@
white-space: pre;
}
-
-
- A
-
-
- B
-
-
- C
-
+
+
+
+
-
-
- A
-
-
- B
-
-
- C
-
+
+ A
+ B
+ C
+
+
+
+
+
+
+
+ A
+ B
+ C
- ABC
+
+ A
+ B
+ C
+
\ No newline at end of file
diff --git a/test/output/bandClip2.svg b/test/output/bandClip2.svg
index 4597e86982..c04df8793b 100644
--- a/test/output/bandClip2.svg
+++ b/test/output/bandClip2.svg
@@ -13,77 +13,74 @@
white-space: pre;
}
-
-
-
- 0
-
-
-
- 1
-
-
-
- 2
-
-
-
- 3
-
-
-
- 4
-
-
-
- 5
-
-
-
- 6
-
-
-
- 7
-
-
-
- 8
-
-
-
- 9
-
-
-
- 10
- ↑ Count
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 2022-12-01
-
-
-
- 2022-12-02
-
-
-
- 2022-12-03
-
-
-
- 2022-12-04
-
-
-
- 2022-12-05
-
-
-
- 2022-12-06
- Date
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+
+
+ ↑ Count
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022-12-01
+ 2022-12-02
+ 2022-12-03
+ 2022-12-04
+ 2022-12-05
+ 2022-12-06
+
+
+ Date
diff --git a/test/output/beckerBarley.svg b/test/output/beckerBarley.svg
index ebcd8ae1a7..9843c8df67 100644
--- a/test/output/beckerBarley.svg
+++ b/test/output/beckerBarley.svg
@@ -13,456 +13,469 @@
white-space: pre;
}
-
-
- Waseca
-
-
- Crookston
-
-
- Morris
-
-
- University Farm
-
-
- Duluth
-
-
- Grand Rapids
- site
-
-
-
- 10
-
-
-
- 20
-
-
-
- 30
-
-
-
- 40
-
-
-
- 50
-
-
-
- 60
-
-
-
- 70
-
- yield →
-
-
-
-
- Trebi
-
-
-
- Wisconsin No. 38
-
-
-
- No. 457
-
-
-
- Glabron
-
-
-
- Peatland
-
-
-
- Velvet
-
-
-
- No. 475
-
-
-
- Manchuria
-
-
-
- No. 462
-
-
-
- Svansota
-
-
-
-
-
- Trebi
-
-
-
- Wisconsin No. 38
-
-
-
- No. 457
-
-
-
- Glabron
-
-
-
- Peatland
-
-
-
- Velvet
-
-
-
- No. 475
-
-
-
- Manchuria
-
-
-
- No. 462
-
-
-
- Svansota
-
-
-
-
-
- Trebi
-
-
-
- Wisconsin No. 38
-
-
-
- No. 457
-
-
-
- Glabron
-
-
-
- Peatland
-
-
-
- Velvet
-
-
-
- No. 475
-
-
-
- Manchuria
-
-
-
- No. 462
-
-
-
- Svansota
-
-
-
-
-
- Trebi
-
-
-
- Wisconsin No. 38
-
-
-
- No. 457
-
-
-
- Glabron
-
-
-
- Peatland
-
-
-
- Velvet
-
-
-
- No. 475
-
-
-
- Manchuria
-
-
-
- No. 462
-
-
-
- Svansota
- variety
-
-
-
-
- Trebi
-
-
-
- Wisconsin No. 38
-
-
-
- No. 457
-
-
-
- Glabron
-
-
-
- Peatland
-
-
-
- Velvet
-
-
-
- No. 475
-
-
-
- Manchuria
-
-
-
- No. 462
-
-
-
- Svansota
-
-
-
-
-
- Trebi
-
-
-
- Wisconsin No. 38
-
-
-
- No. 457
-
-
-
- Glabron
-
-
-
- Peatland
-
-
-
- Velvet
-
-
-
- No. 475
-
-
-
- Manchuria
-
-
-
- No. 462
-
-
-
- Svansota
-
-
-
-
+
+
+ Waseca
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Trebi
+ Wisconsin No. 38
+ No. 457
+ Glabron
+ Peatland
+ Velvet
+ No. 475
+ Manchuria
+ No. 462
+ Svansota
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+ Crookston
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Trebi
+ Wisconsin No. 38
+ No. 457
+ Glabron
+ Peatland
+ Velvet
+ No. 475
+ Manchuria
+ No. 462
+ Svansota
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+ Morris
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Trebi
+ Wisconsin No. 38
+ No. 457
+ Glabron
+ Peatland
+ Velvet
+ No. 475
+ Manchuria
+ No. 462
+ Svansota
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+ University Farm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Trebi
+ Wisconsin No. 38
+ No. 457
+ Glabron
+ Peatland
+ Velvet
+ No. 475
+ Manchuria
+ No. 462
+ Svansota
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+ Duluth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Trebi
+ Wisconsin No. 38
+ No. 457
+ Glabron
+ Peatland
+ Velvet
+ No. 475
+ Manchuria
+ No. 462
+ Svansota
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+ Grand Rapids
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Trebi
+ Wisconsin No. 38
+ No. 457
+ Glabron
+ Peatland
+ Velvet
+ No. 475
+ Manchuria
+ No. 462
+ Svansota
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 10
+ 20
+ 30
+ 40
+ 50
+ 60
+ 70
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ site
+
+
+ variety
+
+
+ yield →
+
\ No newline at end of file
diff --git a/test/output/bin1m.svg b/test/output/bin1m.svg
index ae3e666de3..12449de3d3 100644
--- a/test/output/bin1m.svg
+++ b/test/output/bin1m.svg
@@ -13,84 +13,66 @@
white-space: pre;
}
-
-
- 0
-
-
- 500
-
-
- 1,000
-
-
- 1,500
-
-
- 2,000
-
-
- 2,500
-
-
- 3,000
-
-
- 3,500
-
-
- 4,000
-
-
- 4,500
-
-
- 5,000
-
-
- 5,500
- ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 2020
-
-
- February
-
-
- March
-
-
- April
-
-
- May
-
-
- June
-
-
- July
-
-
- August
-
-
- September
-
-
- October
-
-
- November
-
-
- December
-
-
- 2021
-
+
+ 0
+ 500
+ 1,000
+ 1,500
+ 2,000
+ 2,500
+ 3,000
+ 3,500
+ 4,000
+ 4,500
+ 5,000
+ 5,500
+
+
+ ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2020
+ February
+ March
+ April
+ May
+ June
+ July
+ August
+ September
+ October
+ November
+ December
+ 2021
diff --git a/test/output/binStrings.svg b/test/output/binStrings.svg
index c283079adf..0856d3c6ed 100644
--- a/test/output/binStrings.svg
+++ b/test/output/binStrings.svg
@@ -13,90 +13,70 @@
white-space: pre;
}
-
-
- 0.0
-
-
- 0.2
-
-
- 0.4
-
-
- 0.6
-
-
- 0.8
-
-
- 1.0
-
-
- 1.2
-
-
- 1.4
-
-
- 1.6
-
-
- 1.8
-
-
- 2.0
-
-
- 2.2
-
-
- 2.4
-
-
- 2.6
-
-
- 2.8
-
-
- 3.0
- ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- 10
-
-
- 11
-
-
- 12
-
-
- 13
-
-
- 14
-
-
- 15
-
+
+ 0.0
+ 0.2
+ 0.4
+ 0.6
+ 0.8
+ 1.0
+ 1.2
+ 1.4
+ 1.6
+ 1.8
+ 2.0
+ 2.2
+ 2.4
+ 2.6
+ 2.8
+ 3.0
+
+
+ ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
diff --git a/test/output/binTimestamps.svg b/test/output/binTimestamps.svg
index 524017402f..dab9e7e3fd 100644
--- a/test/output/binTimestamps.svg
+++ b/test/output/binTimestamps.svg
@@ -13,66 +13,54 @@
white-space: pre;
}
-
-
- 0.0
-
-
- 0.1
-
-
- 0.2
-
-
- 0.3
-
-
- 0.4
-
-
- 0.5
-
-
- 0.6
-
-
- 0.7
-
-
- 0.8
-
-
- 0.9
-
-
- 1.0
- ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 2021
-
-
- Sat 02
-
-
- Jan 03
-
-
- Mon 04
-
-
- Tue 05
-
-
- Wed 06
-
-
- Thu 07
-
-
- Fri 08
-
+
+ 0.0
+ 0.1
+ 0.2
+ 0.3
+ 0.4
+ 0.5
+ 0.6
+ 0.7
+ 0.8
+ 0.9
+ 1.0
+
+
+ ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+ Sat 02
+ Jan 03
+ Mon 04
+ Tue 05
+ Wed 06
+ Thu 07
+ Fri 08
diff --git a/test/output/boxplot.svg b/test/output/boxplot.svg
index ea6c6d23c6..1a52874cd4 100644
--- a/test/output/boxplot.svg
+++ b/test/output/boxplot.svg
@@ -13,31 +13,25 @@
white-space: pre;
}
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
diff --git a/test/output/caltrain.html b/test/output/caltrain.html
index 1da9f0007d..3305eae204 100644
--- a/test/output/caltrain.html
+++ b/test/output/caltrain.html
@@ -51,11 +51,116 @@
white-space: pre;
}
- Northbound
- Southbound
- 5a8p9p10p11p8a9a5p6p10a11a12p1p2p3p4p6a7a7p12a
- 010101010105050506061011111116161616162123232324242436363636384141414141415454
- 010101020303030303030312121218181821252525262626263636363838384449495151515757
+
+ Northbound
+
+
+ Southbound
+
+
+ 5a
+ 8p
+ 9p
+ 10p
+ 11p
+ 8a
+ 9a
+ 5p
+ 6p
+ 10a
+ 11a
+ 12p
+ 1p
+ 2p
+ 3p
+ 4p
+ 6a
+ 7a
+ 7p
+ 12a
+
+
+ 01
+ 01
+ 01
+ 01
+ 01
+ 05
+ 05
+ 05
+ 06
+ 06
+ 10
+ 11
+ 11
+ 11
+ 16
+ 16
+ 16
+ 16
+ 16
+ 21
+ 23
+ 23
+ 23
+ 24
+ 24
+ 24
+ 36
+ 36
+ 36
+ 36
+ 38
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 54
+ 54
+
+
+ 01
+ 01
+ 01
+ 02
+ 03
+ 03
+ 03
+ 03
+ 03
+ 03
+ 03
+ 12
+ 12
+ 12
+ 18
+ 18
+ 18
+ 21
+ 25
+ 25
+ 25
+ 26
+ 26
+ 26
+ 26
+ 36
+ 36
+ 36
+ 38
+ 38
+ 38
+ 44
+ 49
+ 49
+ 51
+ 51
+ 51
+ 57
+ 57
+
diff --git a/test/output/caltrainDirection.svg b/test/output/caltrainDirection.svg
index e9f7a1fba7..a29db0b289 100644
--- a/test/output/caltrainDirection.svg
+++ b/test/output/caltrainDirection.svg
@@ -13,128 +13,121 @@
white-space: pre;
}
-
-
- B
+
+
+ B
-
- L
-
-
- N
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 06 AM
-
-
- 09 AM
-
-
- 12 PM
-
-
- 03 PM
-
-
- 06 PM
-
-
- 09 PM
+
+
+ L
-
- 12 AM
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ N
+
+
+
+
+
+
+
+
+
+
+
+ 06 AM
+ 09 AM
+ 12 PM
+ 03 PM
+ 06 PM
+ 09 PM
+ 12 AM
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/output/carsDodge.svg b/test/output/carsDodge.svg
index 030861b011..5583765dc2 100644
--- a/test/output/carsDodge.svg
+++ b/test/output/carsDodge.svg
@@ -13,29 +13,27 @@
white-space: pre;
}
-
-
-
- 2,000
-
-
- 2,500
-
-
- 3,000
-
-
- 3,500
-
-
- 4,000
-
-
- 4,500
-
-
- 5,000
- weight (lb) →
+
+
+
+
+
+
+
+
+
+
+
+ 2,000
+ 2,500
+ 3,000
+ 3,500
+ 4,000
+ 4,500
+ 5,000
+
+
+ weight (lb) →
diff --git a/test/output/carsHexbin.html b/test/output/carsHexbin.html
index ceab45ff29..2ae76c4a0d 100644
--- a/test/output/carsHexbin.html
+++ b/test/output/carsHexbin.html
@@ -16,18 +16,23 @@
- 2,000
+
+ 2,000
- 3,000
+
+ 3,000
- 4,000
+
+ 4,000
- 5,000
+
+ 5,000
- weight (lb)
+
+ weight (lb)
\ No newline at end of file
diff --git a/test/output/clamp.svg b/test/output/clamp.svg
index 646f39d9f7..0247b29d4f 100644
--- a/test/output/clamp.svg
+++ b/test/output/clamp.svg
@@ -13,34 +13,27 @@
white-space: pre;
}
-
-
- 2006
-
-
- April
-
-
- July
-
-
- October
-
-
- 2007
-
-
- April
-
-
- July
-
-
- October
-
-
- 2008
-
+
+
+
+
+
+
+
+
+
+
+
+
+ 2006
+ April
+ July
+ October
+ 2007
+ April
+ July
+ October
+ 2008
diff --git a/test/output/collapsedHistogram.svg b/test/output/collapsedHistogram.svg
index 7c06f06024..5a9c77549e 100644
--- a/test/output/collapsedHistogram.svg
+++ b/test/output/collapsedHistogram.svg
@@ -13,60 +13,50 @@
white-space: pre;
}
-
-
- 0.0
-
-
- 0.2
-
-
- 0.4
-
-
- 0.6
-
-
- 0.8
-
-
- 1.0
-
-
- 1.2
-
-
- 1.4
-
-
- 1.6
-
-
- 1.8
-
-
- 2.0
-
-
- 2.2
-
-
- 2.4
-
-
- 2.6
-
-
- 2.8
-
-
- 3.0
- ↑ Frequency
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 1
-
+
+ 0.0
+ 0.2
+ 0.4
+ 0.6
+ 0.8
+ 1.0
+ 1.2
+ 1.4
+ 1.6
+ 1.8
+ 2.0
+ 2.2
+ 2.4
+ 2.6
+ 2.8
+ 3.0
+
+
+ ↑ Frequency
+
+
+
+
+
+ 1
diff --git a/test/output/colorLegendDiverging.svg b/test/output/colorLegendDiverging.svg
index fe98cfbdbb..8efbac6aad 100644
--- a/test/output/colorLegendDiverging.svg
+++ b/test/output/colorLegendDiverging.svg
@@ -16,19 +16,25 @@
- −10%
+
+ −10%
- −5%
+
+ −5%
- +0%
+
+ +0%
- +5%
+
+ +5%
- +10%
+
+ +10%
- Daily change
+
+ Daily change
\ No newline at end of file
diff --git a/test/output/colorLegendDivergingPivot.svg b/test/output/colorLegendDivergingPivot.svg
index 6a79c777f3..dfcf2b1b6a 100644
--- a/test/output/colorLegendDivergingPivot.svg
+++ b/test/output/colorLegendDivergingPivot.svg
@@ -16,19 +16,24 @@
- 1
+
+ 1
- 2
+
+ 2
- 3
+
+ 3
- 4
+
+ 4
- 5
+
+ 5
\ No newline at end of file
diff --git a/test/output/colorLegendDivergingPivotAsymmetric.svg b/test/output/colorLegendDivergingPivotAsymmetric.svg
index 59cb76488e..ff416f9e03 100644
--- a/test/output/colorLegendDivergingPivotAsymmetric.svg
+++ b/test/output/colorLegendDivergingPivotAsymmetric.svg
@@ -16,16 +16,20 @@
- 1
+
+ 1
- 2
+
+ 2
- 3
+
+ 3
- 4
+
+ 4
\ No newline at end of file
diff --git a/test/output/colorLegendDivergingSqrt.svg b/test/output/colorLegendDivergingSqrt.svg
index 0f88f9649c..d85093e11d 100644
--- a/test/output/colorLegendDivergingSqrt.svg
+++ b/test/output/colorLegendDivergingSqrt.svg
@@ -16,19 +16,25 @@
- −10%
+
+ −10%
- −5%
+
+ −5%
- +0%
+
+ +0%
- +5%
+
+ +5%
- +10%
+
+ +10%
- Daily change
+
+ Daily change
\ No newline at end of file
diff --git a/test/output/colorLegendImplicitLabel.svg b/test/output/colorLegendImplicitLabel.svg
index 94ba7c13cd..1b72a9d134 100644
--- a/test/output/colorLegendImplicitLabel.svg
+++ b/test/output/colorLegendImplicitLabel.svg
@@ -16,19 +16,25 @@
- 0
+
+ 0
- 20
+
+ 20
- 40
+
+ 40
- 60
+
+ 60
- 80
+
+ 80
- thing
+
+ thing
\ No newline at end of file
diff --git a/test/output/colorLegendInterpolate.svg b/test/output/colorLegendInterpolate.svg
index 04b4e30ec0..4d51357bf2 100644
--- a/test/output/colorLegendInterpolate.svg
+++ b/test/output/colorLegendInterpolate.svg
@@ -16,22 +16,28 @@
- 0
+
+ 0
- 2
+
+ 2
- 4
+
+ 4
- 6
+
+ 6
- 8
+
+ 8
- 10
+
+ 10
\ No newline at end of file
diff --git a/test/output/colorLegendInterpolateSqrt.svg b/test/output/colorLegendInterpolateSqrt.svg
index 36f50d537a..327c231b27 100644
--- a/test/output/colorLegendInterpolateSqrt.svg
+++ b/test/output/colorLegendInterpolateSqrt.svg
@@ -16,22 +16,28 @@
- 0
+
+ 0
- 2
+
+ 2
- 4
+
+ 4
- 6
+
+ 6
- 8
+
+ 8
- 10
+
+ 10
\ No newline at end of file
diff --git a/test/output/colorLegendLabelBoth.svg b/test/output/colorLegendLabelBoth.svg
index 9dcdbc87eb..7c96c16cfd 100644
--- a/test/output/colorLegendLabelBoth.svg
+++ b/test/output/colorLegendLabelBoth.svg
@@ -16,22 +16,29 @@
- 0
+
+ 0
- 2
+
+ 2
- 4
+
+ 4
- 6
+
+ 6
- 8
+
+ 8
- 10
+
+ 10
- Legend
+
+ Legend
\ No newline at end of file
diff --git a/test/output/colorLegendLabelLegend.svg b/test/output/colorLegendLabelLegend.svg
index 9dcdbc87eb..7c96c16cfd 100644
--- a/test/output/colorLegendLabelLegend.svg
+++ b/test/output/colorLegendLabelLegend.svg
@@ -16,22 +16,29 @@
- 0
+
+ 0
- 2
+
+ 2
- 4
+
+ 4
- 6
+
+ 6
- 8
+
+ 8
- 10
+
+ 10
- Legend
+
+ Legend
\ No newline at end of file
diff --git a/test/output/colorLegendLabelScale.svg b/test/output/colorLegendLabelScale.svg
index ec93e9e2b2..779f131b25 100644
--- a/test/output/colorLegendLabelScale.svg
+++ b/test/output/colorLegendLabelScale.svg
@@ -16,22 +16,29 @@
- 0
+
+ 0
- 2
+
+ 2
- 4
+
+ 4
- 6
+
+ 6
- 8
+
+ 8
- 10
+
+ 10
- Scale
+
+ Scale
\ No newline at end of file
diff --git a/test/output/colorLegendLinear.svg b/test/output/colorLegendLinear.svg
index 2966023882..0a3c67929a 100644
--- a/test/output/colorLegendLinear.svg
+++ b/test/output/colorLegendLinear.svg
@@ -16,22 +16,28 @@
- 0
+
+ 0
- 2
+
+ 2
- 4
+
+ 4
- 6
+
+ 6
- 8
+
+ 8
- 10
+
+ 10
\ No newline at end of file
diff --git a/test/output/colorLegendLinearNoTicks.svg b/test/output/colorLegendLinearNoTicks.svg
index 3770d75ca1..4c90fe2103 100644
--- a/test/output/colorLegendLinearNoTicks.svg
+++ b/test/output/colorLegendLinearNoTicks.svg
@@ -16,22 +16,28 @@
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
\ No newline at end of file
diff --git a/test/output/colorLegendLinearTruncatedScheme.svg b/test/output/colorLegendLinearTruncatedScheme.svg
index e57b73d9fd..64affb8a8b 100644
--- a/test/output/colorLegendLinearTruncatedScheme.svg
+++ b/test/output/colorLegendLinearTruncatedScheme.svg
@@ -16,22 +16,28 @@
- 0.0
+
+ 0.0
- 0.2
+
+ 0.2
- 0.4
+
+ 0.4
- 0.6
+
+ 0.6
- 0.8
+
+ 0.8
- 1.0
+
+ 1.0
\ No newline at end of file
diff --git a/test/output/colorLegendLog.svg b/test/output/colorLegendLog.svg
index 056e328340..efc3552dfe 100644
--- a/test/output/colorLegendLog.svg
+++ b/test/output/colorLegendLog.svg
@@ -16,34 +16,44 @@
- 1
+
+ 1
- 2
+
+ 2
- 3
+
+ 3
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
- 10
+
+ 10
\ No newline at end of file
diff --git a/test/output/colorLegendLogTicks.svg b/test/output/colorLegendLogTicks.svg
index 2fec47899a..dbeb20f772 100644
--- a/test/output/colorLegendLogTicks.svg
+++ b/test/output/colorLegendLogTicks.svg
@@ -16,34 +16,44 @@
- 1
+
+ 1
- 2
+
+ 2
- 3
+
+ 3
- 4
+
+ 4
- 5
+
+ 5
- 6
+
+ 6
- 7
+
+ 7
- 8
+
+ 8
- 9
+
+ 9
- 10
+
+ 10
\ No newline at end of file
diff --git a/test/output/colorLegendMargins.svg b/test/output/colorLegendMargins.svg
index 740549c65c..360ccdd3cb 100644
--- a/test/output/colorLegendMargins.svg
+++ b/test/output/colorLegendMargins.svg
@@ -16,13 +16,17 @@
- 0
+
+ 0
- 5
+
+ 5
- 10
+
+ 10
- I feel blue
+
+ I feel blue
\ No newline at end of file
diff --git a/test/output/colorLegendOrdinalRamp.svg b/test/output/colorLegendOrdinalRamp.svg
index 4072e462b8..521a0a0ee5 100644
--- a/test/output/colorLegendOrdinalRamp.svg
+++ b/test/output/colorLegendOrdinalRamp.svg
@@ -27,34 +27,44 @@
- A
+
+ A
- B
+
+ B
- C
+
+ C
- D
+
+ D
- E
+
+ E
- F
+
+ F
- G
+
+ G
- H
+
+ H
- I
+
+ I
- J
+
+ J
\ No newline at end of file
diff --git a/test/output/colorLegendOrdinalRampTickSize.svg b/test/output/colorLegendOrdinalRampTickSize.svg
index f2bafcefa4..2a7b51ef5c 100644
--- a/test/output/colorLegendOrdinalRampTickSize.svg
+++ b/test/output/colorLegendOrdinalRampTickSize.svg
@@ -24,25 +24,33 @@
- <20
+
+ <20
- 20-29
+
+ 20-29
- 30-39
+
+ 30-39
- 40-49
+
+ 40-49
- 50-59
+
+ 50-59
- 60-69
+
+ 60-69
- ≥70
+
+ ≥70
- Age (years)
+
+ Age (years)
\ No newline at end of file
diff --git a/test/output/colorLegendOrdinalReverseRamp.svg b/test/output/colorLegendOrdinalReverseRamp.svg
index 615d05110d..07024e6f12 100644
--- a/test/output/colorLegendOrdinalReverseRamp.svg
+++ b/test/output/colorLegendOrdinalReverseRamp.svg
@@ -27,34 +27,44 @@
- J
+
+ J
- I
+
+ I
- H
+
+ H
- G
+
+ G
- F
+
+ F
- E
+
+ E
- D
+
+ D
- C
+
+ C
- B
+
+ B
- A
+
+ A
\ No newline at end of file
diff --git a/test/output/colorLegendOrdinalSchemeRamp.svg b/test/output/colorLegendOrdinalSchemeRamp.svg
index 11949d1986..2a2c2237a4 100644
--- a/test/output/colorLegendOrdinalSchemeRamp.svg
+++ b/test/output/colorLegendOrdinalSchemeRamp.svg
@@ -27,34 +27,44 @@
- A
+
+ A
- B
+
+ B
- C
+
+ C
- D
+
+ D
- E
+
+ E
- F
+
+ F
- G
+
+ G
- H
+
+ H
- I
+
+ I
- J
+
+ J
\ No newline at end of file
diff --git a/test/output/colorLegendOrdinalTicks.svg b/test/output/colorLegendOrdinalTicks.svg
index 7c9c9398ff..e0cfc4cac9 100644
--- a/test/output/colorLegendOrdinalTicks.svg
+++ b/test/output/colorLegendOrdinalTicks.svg
@@ -22,13 +22,16 @@
- 0
+
+ 0
- 1
+
+ 1
- 4
+
+ 4
\ No newline at end of file
diff --git a/test/output/colorLegendQuantile.svg b/test/output/colorLegendQuantile.svg
index acd341ba27..7f483cd5dc 100644
--- a/test/output/colorLegendQuantile.svg
+++ b/test/output/colorLegendQuantile.svg
@@ -24,22 +24,29 @@
- 200
+
+ 200
- 800
+
+ 800
- 1,800
+
+ 1,800
- 3,201
+
+ 3,201
- 5,001
+
+ 5,001
- 7,201
+
+ 7,201
- Inferno
+
+ Inferno
\ No newline at end of file
diff --git a/test/output/colorLegendQuantileImplicit.svg b/test/output/colorLegendQuantileImplicit.svg
index acd341ba27..7f483cd5dc 100644
--- a/test/output/colorLegendQuantileImplicit.svg
+++ b/test/output/colorLegendQuantileImplicit.svg
@@ -24,22 +24,29 @@
- 200
+
+ 200
- 800
+
+ 800
- 1,800
+
+ 1,800
- 3,201
+
+ 3,201
- 5,001
+
+ 5,001
- 7,201
+
+ 7,201
- Inferno
+
+ Inferno
\ No newline at end of file
diff --git a/test/output/colorLegendQuantitative.svg b/test/output/colorLegendQuantitative.svg
index 2966023882..0a3c67929a 100644
--- a/test/output/colorLegendQuantitative.svg
+++ b/test/output/colorLegendQuantitative.svg
@@ -16,22 +16,28 @@
- 0
+
+ 0
- 2
+
+ 2
- 4
+
+ 4
- 6
+
+ 6
- 8
+
+ 8
- 10
+
+ 10
\ No newline at end of file
diff --git a/test/output/colorLegendQuantitativeScheme.svg b/test/output/colorLegendQuantitativeScheme.svg
index 438418e60e..514f2a7495 100644
--- a/test/output/colorLegendQuantitativeScheme.svg
+++ b/test/output/colorLegendQuantitativeScheme.svg
@@ -16,22 +16,28 @@
- 0.0
+
+ 0.0
- 0.2
+
+ 0.2
- 0.4
+
+ 0.4
- 0.6
+
+ 0.6
- 0.8
+
+ 0.8
- 1.0
+
+ 1.0
\ No newline at end of file
diff --git a/test/output/colorLegendQuantize.svg b/test/output/colorLegendQuantize.svg
index 82ba4d62b1..12abb3a389 100644
--- a/test/output/colorLegendQuantize.svg
+++ b/test/output/colorLegendQuantize.svg
@@ -25,25 +25,33 @@
- 20
+
+ 20
- 40
+
+ 40
- 60
+
+ 60
- 80
+
+ 80
- 100
+
+ 100
- 120
+
+ 120
- 140
+
+ 140
- quantize scale
+
+ quantize scale
\ No newline at end of file
diff --git a/test/output/colorLegendQuantizeDescending.svg b/test/output/colorLegendQuantizeDescending.svg
index c22a7f594c..cbd41c0d34 100644
--- a/test/output/colorLegendQuantizeDescending.svg
+++ b/test/output/colorLegendQuantizeDescending.svg
@@ -25,25 +25,33 @@
- 140
+
+ 140
- 120
+
+ 120
- 100
+
+ 100
- 80
+
+ 80
- 60
+
+ 60
- 40
+
+ 40
- 20
+
+ 20
- quantize descending
+
+ quantize descending
\ No newline at end of file
diff --git a/test/output/colorLegendQuantizeDescendingReversed.svg b/test/output/colorLegendQuantizeDescendingReversed.svg
index e58b9b761f..0e0e66ab77 100644
--- a/test/output/colorLegendQuantizeDescendingReversed.svg
+++ b/test/output/colorLegendQuantizeDescendingReversed.svg
@@ -22,16 +22,21 @@
- 8
+
+ 8
- 6
+
+ 6
- 4
+
+ 4
- 2
+
+ 2
- quantize descending reversed
+
+ quantize descending reversed
\ No newline at end of file
diff --git a/test/output/colorLegendQuantizeRange.svg b/test/output/colorLegendQuantizeRange.svg
index 06839cb4e6..e7695ca363 100644
--- a/test/output/colorLegendQuantizeRange.svg
+++ b/test/output/colorLegendQuantizeRange.svg
@@ -22,16 +22,21 @@
- 29.6
+
+ 29.6
- 58.2
+
+ 58.2
- 86.8
+
+ 86.8
- 115.4
+
+ 115.4
- quantize scale
+
+ quantize scale
\ No newline at end of file
diff --git a/test/output/colorLegendQuantizeReverse.svg b/test/output/colorLegendQuantizeReverse.svg
index e386aab98e..2bcc4fba38 100644
--- a/test/output/colorLegendQuantizeReverse.svg
+++ b/test/output/colorLegendQuantizeReverse.svg
@@ -25,25 +25,33 @@
- -40
+
+ -40
- -20
+
+ -20
- 0
+
+ 0
- 20
+
+ 20
- 40
+
+ 40
- 60
+
+ 60
- 80
+
+ 80
- quantize reversed
+
+ quantize reversed
\ No newline at end of file
diff --git a/test/output/colorLegendSqrt.svg b/test/output/colorLegendSqrt.svg
index 36f50d537a..327c231b27 100644
--- a/test/output/colorLegendSqrt.svg
+++ b/test/output/colorLegendSqrt.svg
@@ -16,22 +16,28 @@
- 0
+
+ 0
- 2
+
+ 2
- 4
+
+ 4
- 6
+
+ 6
- 8
+
+ 8
- 10
+
+ 10
\ No newline at end of file
diff --git a/test/output/colorLegendSqrtPiecewise.svg b/test/output/colorLegendSqrtPiecewise.svg
index 431e48ecdb..0aaf7464a1 100644
--- a/test/output/colorLegendSqrtPiecewise.svg
+++ b/test/output/colorLegendSqrtPiecewise.svg
@@ -16,19 +16,24 @@
- −100
+
+ −100
- −50
+
+ −50
- 0
+
+ 0
- 50
+
+ 50
- 100
+
+ 100
\ No newline at end of file
diff --git a/test/output/colorLegendThreshold.svg b/test/output/colorLegendThreshold.svg
index ded6170848..546f436e4b 100644
--- a/test/output/colorLegendThreshold.svg
+++ b/test/output/colorLegendThreshold.svg
@@ -27,31 +27,41 @@
- 1
+
+ 1
- 2
+
+ 2
- 3
+
+ 3
- 4
+
+ 4
- 5
+
+ 5
- 6
+
+ 6
- 7
+
+ 7
- 8
+
+ 8
- 9
+
+ 9
- Viridis
+
+ Viridis
\ No newline at end of file
diff --git a/test/output/colorLegendThresholdTickSize.svg b/test/output/colorLegendThresholdTickSize.svg
index 2e38da5e45..7a9d44ea67 100644
--- a/test/output/colorLegendThresholdTickSize.svg
+++ b/test/output/colorLegendThresholdTickSize.svg
@@ -26,28 +26,37 @@
- 2.5
+
+ 2.5
- 3.1
+
+ 3.1
- 3.5
+
+ 3.5
- 3.9
+
+ 3.9
- 6
+
+ 6
- 7
+
+ 7
- 8
+
+ 8
- 9.5
+
+ 9.5
- Unemployment rate (%)
+
+ Unemployment rate (%)
\ No newline at end of file
diff --git a/test/output/colorSchemesQuantitative.html b/test/output/colorSchemesQuantitative.html
index 80b1c4a154..9161178809 100644
--- a/test/output/colorSchemesQuantitative.html
+++ b/test/output/colorSchemesQuantitative.html
@@ -14,7 +14,8 @@
}
- brbg
+
+ brbg
\ No newline at end of file
diff --git a/test/output/countryCentroids.svg b/test/output/countryCentroids.svg
index f1df39ff01..06d2c1cc95 100644
--- a/test/output/countryCentroids.svg
+++ b/test/output/countryCentroids.svg
@@ -198,7 +198,357 @@
- 242834732124840398860598360032152180706404729148332214643044238578304260626710426484858076068604170591188558340222320084862328740250218630388192716072516686466478204562566120768288384324624430694854140178266226894454508748024108376422450275270788012400784634414368512548116764418104704408410496356050064524586004762417795364760051752112804616040348498642440428233276100300792008191756442056528620724372540090554036144156158380208826352031268608458096705246703203232392600887682010196504818434231262800646070807688499780728
- 242834732124840398860598360032152180706404729148332214643044238578304260626710426484858076068604170591188558340222320084862328740250218630388192716072516686466478204562566120768288384324624430694854140178266226894454508748024108376422450275270788012400784634414368512548116764418104704408410496356050064524586004762417795364760051752112804616040348498642440428233276100300792008191756442056528620724372540090554036144156158380208826352031268608458096705246703203232392600887682010196504818434231262800646070807688499780728
+
+ 242
+ 834
+ 732
+ 124
+ 840
+ 398
+ 860
+ 598
+ 360
+ 032
+ 152
+ 180
+ 706
+ 404
+ 729
+ 148
+ 332
+ 214
+ 643
+ 044
+ 238
+ 578
+ 304
+ 260
+ 626
+ 710
+ 426
+ 484
+ 858
+ 076
+ 068
+ 604
+ 170
+ 591
+ 188
+ 558
+ 340
+ 222
+ 320
+ 084
+ 862
+ 328
+ 740
+ 250
+ 218
+ 630
+ 388
+ 192
+ 716
+ 072
+ 516
+ 686
+ 466
+ 478
+ 204
+ 562
+ 566
+ 120
+ 768
+ 288
+ 384
+ 324
+ 624
+ 430
+ 694
+ 854
+ 140
+ 178
+ 266
+ 226
+ 894
+ 454
+ 508
+ 748
+ 024
+ 108
+ 376
+ 422
+ 450
+ 275
+ 270
+ 788
+ 012
+ 400
+ 784
+ 634
+ 414
+ 368
+ 512
+ 548
+ 116
+ 764
+ 418
+ 104
+ 704
+ 408
+ 410
+ 496
+ 356
+ 050
+ 064
+ 524
+ 586
+ 004
+ 762
+ 417
+ 795
+ 364
+ 760
+ 051
+ 752
+ 112
+ 804
+ 616
+ 040
+ 348
+ 498
+ 642
+ 440
+ 428
+ 233
+ 276
+ 100
+ 300
+ 792
+ 008
+ 191
+ 756
+ 442
+ 056
+ 528
+ 620
+ 724
+ 372
+ 540
+ 090
+ 554
+ 036
+ 144
+ 156
+ 158
+ 380
+ 208
+ 826
+ 352
+ 031
+ 268
+ 608
+ 458
+ 096
+ 705
+ 246
+ 703
+ 203
+ 232
+ 392
+ 600
+ 887
+ 682
+ 010
+ 196
+ 504
+ 818
+ 434
+ 231
+ 262
+ 800
+ 646
+ 070
+ 807
+ 688
+ 499
+ 780
+ 728
+
+
+ 242
+ 834
+ 732
+ 124
+ 840
+ 398
+ 860
+ 598
+ 360
+ 032
+ 152
+ 180
+ 706
+ 404
+ 729
+ 148
+ 332
+ 214
+ 643
+ 044
+ 238
+ 578
+ 304
+ 260
+ 626
+ 710
+ 426
+ 484
+ 858
+ 076
+ 068
+ 604
+ 170
+ 591
+ 188
+ 558
+ 340
+ 222
+ 320
+ 084
+ 862
+ 328
+ 740
+ 250
+ 218
+ 630
+ 388
+ 192
+ 716
+ 072
+ 516
+ 686
+ 466
+ 478
+ 204
+ 562
+ 566
+ 120
+ 768
+ 288
+ 384
+ 324
+ 624
+ 430
+ 694
+ 854
+ 140
+ 178
+ 266
+ 226
+ 894
+ 454
+ 508
+ 748
+ 024
+ 108
+ 376
+ 422
+ 450
+ 275
+ 270
+ 788
+ 012
+ 400
+ 784
+ 634
+ 414
+ 368
+ 512
+ 548
+ 116
+ 764
+ 418
+ 104
+ 704
+ 408
+ 410
+ 496
+ 356
+ 050
+ 064
+ 524
+ 586
+ 004
+ 762
+ 417
+ 795
+ 364
+ 760
+ 051
+ 752
+ 112
+ 804
+ 616
+ 040
+ 348
+ 498
+ 642
+ 440
+ 428
+ 233
+ 276
+ 100
+ 300
+ 792
+ 008
+ 191
+ 756
+ 442
+ 056
+ 528
+ 620
+ 724
+ 372
+ 540
+ 090
+ 554
+ 036
+ 144
+ 156
+ 158
+ 380
+ 208
+ 826
+ 352
+ 031
+ 268
+ 608
+ 458
+ 096
+ 705
+ 246
+ 703
+ 203
+ 232
+ 392
+ 600
+ 887
+ 682
+ 010
+ 196
+ 504
+ 818
+ 434
+ 231
+ 262
+ 800
+ 646
+ 070
+ 807
+ 688
+ 499
+ 780
+ 728
+
\ No newline at end of file
diff --git a/test/output/covidIhmeProjectedDeaths.svg b/test/output/covidIhmeProjectedDeaths.svg
index 78c6ae43d4..f2c9c78991 100644
--- a/test/output/covidIhmeProjectedDeaths.svg
+++ b/test/output/covidIhmeProjectedDeaths.svg
@@ -13,231 +13,187 @@
white-space: pre;
}
-
-
-
- 1
-
-
-
- 2
-
-
-
- 3
-
-
-
- 4
-
-
-
- 5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 10
-
-
-
- 20
-
-
-
- 30
-
-
-
- 40
-
-
-
- 50
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 100
-
-
-
- 200
-
-
-
- 300
-
-
-
- 400
-
-
-
- 500
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1,000
-
-
-
- 2,000
-
-
-
- 3,000
-
-
-
- 4,000
- ↑ Deaths per day to COVID-19 (projected)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- March
-
-
-
- Mar 08
-
-
-
- Mar 15
-
-
-
- Mar 22
-
-
-
- Mar 29
-
-
-
- Apr 05
-
-
-
- Apr 12
-
-
-
- Apr 19
-
-
-
- Apr 26
-
-
-
- May 03
-
-
-
- May 10
-
-
-
- May 17
-
-
-
- May 24
-
-
-
- May 31
-
-
-
- Jun 07
-
-
-
- Jun 14
-
-
-
- Jun 21
-
-
-
- Jun 28
-
-
-
- Jul 05
-
-
-
- Jul 12
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1
+ 2
+ 3
+ 4
+ 5
+
+
+
+
+ 10
+ 20
+ 30
+ 40
+ 50
+
+
+
+
+ 100
+ 200
+ 300
+ 400
+ 500
+
+
+
+
+ 1,000
+ 2,000
+ 3,000
+ 4,000
+
+
+ ↑ Deaths per day to COVID-19 (projected)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 01March
+ 08
+ 15
+ 22
+ 29
+ 05April
+ 12
+ 19
+ 26
+ 03May
+ 10
+ 17
+ 24
+ 31
+ 07June
+ 14
+ 21
+ 28
+ 05July
+ 12
-
- cone of uncertainty
-
+ cone of uncertainty
-
- actual data
-
+ actual data
-
- projected values
-
+ projected values
- 900
+
+ 900
+
\ No newline at end of file
diff --git a/test/output/crimeanWarArrow.svg b/test/output/crimeanWarArrow.svg
index 11e9bea238..6cbdd9b0e8 100644
--- a/test/output/crimeanWarArrow.svg
+++ b/test/output/crimeanWarArrow.svg
@@ -13,75 +13,60 @@
white-space: pre;
}
-
-
- 0
-
-
- 200
-
-
- 400
-
-
- 600
-
-
- 800
-
-
- 1,000
-
-
- 1,200
-
-
- 1,400
-
-
- 1,600
-
-
- 1,800
-
-
- 2,000
-
-
- 2,200
-
-
- 2,400
-
-
- 2,600
- ↑ deaths
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- Apr
-
-
- Jul
-
-
- Oct
-
-
- Jan
-
-
- Apr
-
-
- Jul
-
-
- Oct
-
-
- Jan
-
+
+ 0
+ 200
+ 400
+ 600
+ 800
+ 1,000
+ 1,200
+ 1,400
+ 1,600
+ 1,800
+ 2,000
+ 2,200
+ 2,400
+ 2,600
+
+
+ ↑ deaths
+
+
+
+
+
+
+
+
+
+
+
+
+ Apr
+ Jul
+ Oct
+ Jan
+ Apr
+ Jul
+ Oct
+ Jan
diff --git a/test/output/crimeanWarLine.svg b/test/output/crimeanWarLine.svg
index b900cc2715..8a4581d3f4 100644
--- a/test/output/crimeanWarLine.svg
+++ b/test/output/crimeanWarLine.svg
@@ -13,75 +13,60 @@
white-space: pre;
}
-
-
- 0
-
-
- 200
-
-
- 400
-
-
- 600
-
-
- 800
-
-
- 1,000
-
-
- 1,200
-
-
- 1,400
-
-
- 1,600
-
-
- 1,800
-
-
- 2,000
-
-
- 2,200
-
-
- 2,400
-
-
- 2,600
- ↑ deaths
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- Apr
-
-
- Jul
-
-
- Oct
-
-
- Jan
-
-
- Apr
-
-
- Jul
-
-
- Oct
-
-
- Jan
-
+
+ 0
+ 200
+ 400
+ 600
+ 800
+ 1,000
+ 1,200
+ 1,400
+ 1,600
+ 1,800
+ 2,000
+ 2,200
+ 2,400
+ 2,600
+
+
+ ↑ deaths
+
+
+
+
+
+
+
+
+
+
+
+
+ Apr
+ Jul
+ Oct
+ Jan
+ Apr
+ Jul
+ Oct
+ Jan
diff --git a/test/output/crimeanWarOverlapped.svg b/test/output/crimeanWarOverlapped.svg
index 9682bdff9b..c8ce87e509 100644
--- a/test/output/crimeanWarOverlapped.svg
+++ b/test/output/crimeanWarOverlapped.svg
@@ -13,78 +13,62 @@
white-space: pre;
}
-
-
- 0
-
-
- 200
-
-
- 400
-
-
- 600
-
-
- 800
-
-
- 1,000
-
-
- 1,200
-
-
- 1,400
-
-
- 1,600
-
-
- 1,800
-
-
- 2,000
-
-
- 2,200
-
-
- 2,400
-
-
- 2,600
- ↑ deaths
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- Apr
-
-
- Jul
-
-
- Oct
-
-
- Jan
-
-
- Apr
-
-
- Jul
-
-
- Oct
-
-
- Jan
-
-
- Apr
-
+
+ 0
+ 200
+ 400
+ 600
+ 800
+ 1,000
+ 1,200
+ 1,400
+ 1,600
+ 1,800
+ 2,000
+ 2,200
+ 2,400
+ 2,600
+
+
+ ↑ deaths
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apr
+ Jul
+ Oct
+ Jan
+ Apr
+ Jul
+ Oct
+ Jan
+ Apr
diff --git a/test/output/crimeanWarStacked.svg b/test/output/crimeanWarStacked.svg
index 7a80e10444..7ac0a49b7c 100644
--- a/test/output/crimeanWarStacked.svg
+++ b/test/output/crimeanWarStacked.svg
@@ -13,57 +13,48 @@
white-space: pre;
}
-
-
- 0
-
-
- 500
-
-
- 1,000
-
-
- 1,500
-
-
- 2,000
-
-
- 2,500
-
-
- 3,000
- ↑ deaths
+
+
+
+
+
+
+
+
-
-
- Apr
-
-
- Jul
-
-
- Oct
-
-
- Jan
-
-
- Apr
-
-
- Jul
-
-
- Oct
-
-
- Jan
-
-
- Apr
-
+
+ 0
+ 500
+ 1,000
+ 1,500
+ 2,000
+ 2,500
+ 3,000
+
+
+ ↑ deaths
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apr
+ Jul
+ Oct
+ Jan
+ Apr
+ Jul
+ Oct
+ Jan
+ Apr
diff --git a/test/output/d3Survey2015Comfort.svg b/test/output/d3Survey2015Comfort.svg
index 1e97097915..00de2f47c7 100644
--- a/test/output/d3Survey2015Comfort.svg
+++ b/test/output/d3Survey2015Comfort.svg
@@ -13,68 +13,64 @@
white-space: pre;
}
-
-
- I looked at some examples!
-
-
- I've forked a bl.ock or two
-
-
- selectAll(".answers").enter()
-
-
- Someone told me I should learn it...
-
-
-
- How comfortable are you with d3 now?
+
+
+
+
+
+
-
-
-
- 0
-
-
-
- 10
-
-
-
- 20
-
-
-
- 30
-
-
-
- 40
-
-
-
- 50
-
-
-
- 60
-
-
-
- 70
-
-
-
- 80
-
-
-
- 90
-
-
-
- 100
- Frequency (%) →
+
+ I looked at some examples!
+ I've forked a bl.ock or two
+ selectAll(".answers").enter()
+ Someone told me I should learn it...
+
+
+
+ How comfortable are you with d3 now?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 10
+ 20
+ 30
+ 40
+ 50
+ 60
+ 70
+ 80
+ 90
+ 100
+
+
+ Frequency (%) →
diff --git a/test/output/d3Survey2015Why.svg b/test/output/d3Survey2015Why.svg
index 4df5938c81..59adba0ba4 100644
--- a/test/output/d3Survey2015Why.svg
+++ b/test/output/d3Survey2015Why.svg
@@ -13,98 +13,84 @@
white-space: pre;
}
-
-
- For work
-
-
- For fun
-
-
- To express myself
-
-
- To get a job
-
-
- For school
-
-
-
-
-
- I think digital interactive systems tha explain complex systems visually are the future
-
-
- Tableau to D3
-
-
- for my own projects
-
-
- improve as a product designer
-
-
- to address visual learners
-
-
- to do vis on the web
-
-
- to give back to the dataviz community
-
-
- to understand data better
-
-
- to work with open data
- Why do you want to learn d3?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 0
-
-
-
- 10
-
-
-
- 20
-
-
-
- 30
-
-
-
- 40
-
-
-
- 50
-
-
-
- 60
-
-
-
- 70
-
-
-
- 80
-
-
-
- 90
-
-
-
- 100
- Frequency (%) →
+
+ For work
+ For fun
+ To express myself
+ To get a job
+ For school
+
+ I think digital interactive systems tha explain complex systems visually are the future
+ Tableau to D3
+ for my own projects
+ improve as a product designer
+ to address visual learners
+ to do vis on the web
+ to give back to the dataviz community
+ to understand data better
+ to work with open data
+
+
+ Why do you want to learn d3?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 10
+ 20
+ 30
+ 40
+ 50
+ 60
+ 70
+ 80
+ 90
+ 100
+
+
+ Frequency (%) →
diff --git a/test/output/darkerDodge.svg b/test/output/darkerDodge.svg
index 038b00e89c..885cbdf99f 100644
--- a/test/output/darkerDodge.svg
+++ b/test/output/darkerDodge.svg
@@ -13,37 +13,29 @@
white-space: pre;
}
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
diff --git a/test/output/decathlon.html b/test/output/decathlon.html
index 4275a6ed53..6568116ab6 100644
--- a/test/output/decathlon.html
+++ b/test/output/decathlon.html
@@ -65,65 +65,65 @@
white-space: pre;
}
-
-
-
- 10.3
-
-
-
- 10.4
-
-
-
- 10.5
-
-
-
- 10.6
-
-
-
- 10.7
-
-
-
- 10.8
-
-
-
- 10.9
-
-
-
- 11.0
-
-
-
- 11.1
- ↑ 100 Meters
+
+
+
+
+
+
+
+
+
+
-
-
-
- 7.2
-
-
-
- 7.4
-
-
-
- 7.6
-
-
-
- 7.8
-
-
-
- 8.0
- Long Jump →
+
+
+
+
+
+
+
+
+
+
+
+
+ 10.3
+ 10.4
+ 10.5
+ 10.6
+ 10.7
+ 10.8
+ 10.9
+ 11.0
+ 11.1
+
+
+ ↑ 100 Meters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 7.2
+ 7.4
+ 7.6
+ 7.8
+ 8.0
+
+
+ Long Jump →
diff --git a/test/output/diamondsBoxplot.svg b/test/output/diamondsBoxplot.svg
index 173903773c..7025dcbc99 100644
--- a/test/output/diamondsBoxplot.svg
+++ b/test/output/diamondsBoxplot.svg
@@ -13,60 +13,53 @@
white-space: pre;
}
-
-
- IF
-
-
- VVS1
-
-
- VVS2
-
-
- VS1
-
-
- VS2
-
-
- SI1
-
-
- I1
-
-
- SI2
- clarity
+
+
+
+
+
+
+
+
+
-
-
- 2,000
-
-
- 4,000
-
-
- 6,000
-
-
- 8,000
-
-
- 10,000
-
-
- 12,000
-
-
- 14,000
-
-
- 16,000
-
-
- 18,000
- price →
+
+ IF
+ VVS1
+ VVS2
+ VS1
+ VS2
+ SI1
+ I1
+ SI2
+
+
+ clarity
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2,000
+ 4,000
+ 6,000
+ 8,000
+ 10,000
+ 12,000
+ 14,000
+ 16,000
+ 18,000
+
+
+ price →
diff --git a/test/output/diamondsCaratPrice.svg b/test/output/diamondsCaratPrice.svg
index 66c767f330..174e882d5c 100644
--- a/test/output/diamondsCaratPrice.svg
+++ b/test/output/diamondsCaratPrice.svg
@@ -13,96 +13,77 @@
white-space: pre;
}
-
-
- 1,000
-
-
- 2,000
-
-
- 3,000
-
-
- 4,000
-
-
- 5,000
-
-
- 6,000
-
-
- 7,000
-
-
- 8,000
-
-
- 9,000
-
-
- 10,000
-
-
- 11,000
-
-
- 12,000
-
-
- 13,000
-
-
- 14,000
-
-
- 15,000
-
-
- 16,000
-
-
- 17,000
-
-
- 18,000
-
-
- 19,000
- ↑ price
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 0.5
-
-
- 1.0
-
-
- 1.5
-
-
- 2.0
-
-
- 2.5
-
-
- 3.0
-
-
- 3.5
-
-
- 4.0
-
-
- 4.5
-
-
- 5.0
- carat →
+
+ 1,000
+ 2,000
+ 3,000
+ 4,000
+ 5,000
+ 6,000
+ 7,000
+ 8,000
+ 9,000
+ 10,000
+ 11,000
+ 12,000
+ 13,000
+ 14,000
+ 15,000
+ 16,000
+ 17,000
+ 18,000
+ 19,000
+
+
+ ↑ price
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.5
+ 1.0
+ 1.5
+ 2.0
+ 2.5
+ 3.0
+ 3.5
+ 4.0
+ 4.5
+ 5.0
+
+
+ carat →
diff --git a/test/output/diamondsCaratPriceDots.svg b/test/output/diamondsCaratPriceDots.svg
index 9c289ce6f9..a047134980 100644
--- a/test/output/diamondsCaratPriceDots.svg
+++ b/test/output/diamondsCaratPriceDots.svg
@@ -13,121 +13,107 @@
white-space: pre;
}
-
-
-
- 1,000
-
-
-
- 2,000
-
-
-
- 3,000
-
-
-
- 4,000
-
-
-
- 5,000
-
-
-
- 6,000
-
-
-
- 7,000
-
-
-
- 8,000
-
-
-
- 9,000
-
-
-
- 10,000
-
-
-
- 11,000
-
-
-
- 12,000
-
-
-
- 13,000
-
-
-
- 14,000
-
-
-
- 15,000
-
-
-
- 16,000
-
-
-
- 17,000
-
-
-
- 18,000
- ↑ Price ($)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 0.5
-
-
-
- 1.0
-
-
-
- 1.5
-
-
-
- 2.0
-
-
-
- 2.5
-
-
-
- 3.0
-
-
-
- 3.5
-
-
-
- 4.0
-
-
-
- 4.5
-
-
-
- 5.0
- Carats →
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1,000
+ 2,000
+ 3,000
+ 4,000
+ 5,000
+ 6,000
+ 7,000
+ 8,000
+ 9,000
+ 10,000
+ 11,000
+ 12,000
+ 13,000
+ 14,000
+ 15,000
+ 16,000
+ 17,000
+ 18,000
+
+
+ ↑ Price ($)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.5
+ 1.0
+ 1.5
+ 2.0
+ 2.5
+ 3.0
+ 3.5
+ 4.0
+ 4.5
+ 5.0
+
+
+ Carats →
diff --git a/test/output/diamondsCaratSampling.svg b/test/output/diamondsCaratSampling.svg
index 682c8246a4..454163d940 100644
--- a/test/output/diamondsCaratSampling.svg
+++ b/test/output/diamondsCaratSampling.svg
@@ -13,66 +13,57 @@
white-space: pre;
}
-
-
- 2,000
-
-
- 4,000
-
-
- 6,000
-
-
- 8,000
-
-
- 10,000
-
-
- 12,000
-
-
- 14,000
-
-
- 16,000
-
-
- 18,000
- ↑ price
+
+
+
+
+
+
+
+
+
+
-
-
- 0.5
-
-
- 1.0
-
-
- 1.5
-
-
- 2.0
-
-
- 2.5
-
-
- 3.0
-
-
- 3.5
-
-
- 4.0
-
-
- 4.5
-
-
- 5.0
- carat →
+
+ 2,000
+ 4,000
+ 6,000
+ 8,000
+ 10,000
+ 12,000
+ 14,000
+ 16,000
+ 18,000
+
+
+ ↑ price
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.5
+ 1.0
+ 1.5
+ 2.0
+ 2.5
+ 3.0
+ 3.5
+ 4.0
+ 4.5
+ 5.0
+
+
+ carat →
diff --git a/test/output/documentationLinks.svg b/test/output/documentationLinks.svg
index 558a76c4b7..1bf81d1de9 100644
--- a/test/output/documentationLinks.svg
+++ b/test/output/documentationLinks.svg
@@ -13,120 +13,95 @@
white-space: pre;
}
-
-
- Observable Plot
-
-
- Marks
-
-
- Scales
-
-
- Transforms
-
-
- Facets
-
-
- Area Mark
-
-
- Bar Mark
-
-
- Cell Mark
-
-
- Dot Mark
-
-
- Image Mark
-
-
- Line Mark
-
-
- Link Mark
-
-
- Rect Mark
-
-
- Rule Mark
-
-
- Text Mark
-
-
- Tick Mark
-
-
- Frame Mark
-
-
- Group Transform
-
-
- Bin Transform
-
-
- Stack Transform
-
-
- Map Transform
-
-
- Window Transform
-
-
- Select Transform
-
-
- Interval Transform
-
-
- Legends
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 0
-
-
-
- 5
-
-
-
- 10
-
-
-
- 15
-
-
-
- 20
-
-
-
- 25
-
-
-
- 30
-
-
-
- 35
-
-
-
- 40
- likes →
+
+ Observable Plot
+ Marks
+ Scales
+ Transforms
+ Facets
+ Area Mark
+ Bar Mark
+ Cell Mark
+ Dot Mark
+ Image Mark
+ Line Mark
+ Link Mark
+ Rect Mark
+ Rule Mark
+ Text Mark
+ Tick Mark
+ Frame Mark
+ Group Transform
+ Bin Transform
+ Stack Transform
+ Map Transform
+ Window Transform
+ Select Transform
+ Interval Transform
+ Legends
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 5
+ 10
+ 15
+ 20
+ 25
+ 30
+ 35
+ 40
+
+
+ likes →
@@ -179,7 +154,33 @@
- ⚡︎ 296 16 18 6 10 3 9 17 5 11 8 2 2 4 5 1 3 7 12 13 6 3 6 7 18
+
+ ⚡︎ 296
+ 16
+ 18
+ 6
+ 10
+ 3
+ 9
+ 17
+ 5
+ 11
+ 8
+ 2
+ 2
+ 4
+ 5
+ 1
+ 3
+ 7
+ 12
+ 13
+ 6
+ 3
+ 6
+ 7
+ 18
+
diff --git a/test/output/dodgeRule.svg b/test/output/dodgeRule.svg
index b9b7312edf..65a2e3c45a 100644
--- a/test/output/dodgeRule.svg
+++ b/test/output/dodgeRule.svg
@@ -13,40 +13,31 @@
white-space: pre;
}
-
-
- 1.0
-
-
- 1.2
-
-
- 1.4
-
-
- 1.6
-
-
- 1.8
-
-
- 2.0
-
-
- 2.2
-
-
- 2.4
-
-
- 2.6
-
-
- 2.8
-
-
- 3.0
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.0
+ 1.2
+ 1.4
+ 1.6
+ 1.8
+ 2.0
+ 2.2
+ 2.4
+ 2.6
+ 2.8
+ 3.0
diff --git a/test/output/dodgeTextRadius.svg b/test/output/dodgeTextRadius.svg
index 71edb18966..f23baabca7 100644
--- a/test/output/dodgeTextRadius.svg
+++ b/test/output/dodgeTextRadius.svg
@@ -13,40 +13,31 @@
white-space: pre;
}
-
-
- 0.0
-
-
- 0.1
-
-
- 0.2
-
-
- 0.3
-
-
- 0.4
-
-
- 0.5
-
-
- 0.6
-
-
- 0.7
-
-
- 0.8
-
-
- 0.9
-
-
- 1.0
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.0
+ 0.1
+ 0.2
+ 0.3
+ 0.4
+ 0.5
+ 0.6
+ 0.7
+ 0.8
+ 0.9
+ 1.0
@@ -150,5 +141,106 @@
- 5859328342312468212623893559053234614193665654503315873784479210466064178514759444712572368191166329576513011248406982207481911867099395354508088957792813496522971849677789876623843527327679
+
+ 58
+ 59
+ 32
+ 83
+ 42
+ 31
+ 24
+ 68
+ 21
+ 26
+ 23
+ 89
+ 3
+ 55
+ 90
+ 53
+ 2
+ 34
+ 61
+ 41
+ 93
+ 66
+ 56
+ 54
+ 50
+ 33
+ 15
+ 87
+ 37
+ 84
+ 47
+ 92
+ 10
+ 46
+ 60
+ 64
+ 17
+ 85
+ 14
+ 75
+ 94
+ 44
+ 71
+ 25
+ 72
+ 36
+ 81
+ 91
+ 16
+ 63
+ 29
+ 57
+ 6
+ 51
+ 30
+ 1
+ 12
+ 48
+ 40
+ 69
+ 82
+ 20
+ 74
+ 8
+ 19
+ 11
+ 86
+ 70
+ 99
+ 39
+ 5
+ 35
+ 45
+ 0
+ 80
+ 88
+ 95
+ 7
+ 79
+ 28
+ 13
+ 49
+ 65
+ 22
+ 97
+ 18
+ 4
+ 96
+ 77
+ 78
+ 98
+ 76
+ 62
+ 38
+ 43
+ 52
+ 73
+ 27
+ 67
+ 9
+
\ No newline at end of file
diff --git a/test/output/dodgeTick.svg b/test/output/dodgeTick.svg
index 12776e661f..01b69b07f7 100644
--- a/test/output/dodgeTick.svg
+++ b/test/output/dodgeTick.svg
@@ -13,40 +13,31 @@
white-space: pre;
}
-
-
- 1.0
-
-
- 1.2
-
-
- 1.4
-
-
- 1.6
-
-
- 1.8
-
-
- 2.0
-
-
- 2.2
-
-
- 2.4
-
-
- 2.6
-
-
- 2.8
-
-
- 3.0
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.0
+ 1.2
+ 1.4
+ 1.6
+ 1.8
+ 2.0
+ 2.2
+ 2.4
+ 2.6
+ 2.8
+ 3.0
diff --git a/test/output/downloads.svg b/test/output/downloads.svg
index a69355d6d9..0a1d547c3c 100644
--- a/test/output/downloads.svg
+++ b/test/output/downloads.svg
@@ -13,63 +13,52 @@
white-space: pre;
}
-
-
- 0
-
-
- 2
-
-
- 4
-
-
- 6
-
-
- 8
-
-
- 10
-
-
- 12
-
-
- 14
-
-
- 16
-
-
- 18
-
-
- 20
-
-
- 22
-
-
- 24
- ↑ downloads
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 2018
-
-
- 2019
-
-
- 2020
-
-
- 2021
-
-
- 2022
-
+
+ 0
+ 2
+ 4
+ 6
+ 8
+ 10
+ 12
+ 14
+ 16
+ 18
+ 20
+ 22
+ 24
+
+
+ ↑ downloads
+
+
+
+
+
+
+
+
+
+ 2018
+ 2019
+ 2020
+ 2021
+ 2022
diff --git a/test/output/downloadsOrdinal.svg b/test/output/downloadsOrdinal.svg
index c9be7271f4..a4a5b232b7 100644
--- a/test/output/downloadsOrdinal.svg
+++ b/test/output/downloadsOrdinal.svg
@@ -13,183 +13,135 @@
white-space: pre;
}
-
-
- 0
-
-
- 2
-
-
- 4
-
-
- 6
-
-
- 8
-
-
- 10
-
-
- 12
-
-
- 14
-
-
- 16
-
-
- 18
-
-
- 20
-
-
- 22
- ↑ downloads
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- Jan 01
-
-
- Jan 02
-
-
- Jan 03
-
-
- Jan 04
-
-
- Jan 05
-
-
- Jan 06
-
-
- Jan 07
-
-
- Jan 08
-
-
- Jan 09
-
-
- Jan 10
-
-
- Jan 11
-
-
- Jan 12
-
-
- Jan 13
-
-
- Jan 14
-
-
- Jan 15
-
-
- Jan 16
-
-
- Jan 17
-
-
- Jan 18
-
-
- Jan 19
-
-
- Jan 20
-
-
- Jan 21
-
-
- Jan 22
-
-
- Jan 23
-
-
- Jan 24
-
-
- Jan 25
-
-
- Jan 26
-
-
- Jan 27
-
-
- Jan 28
-
-
- Jan 29
-
-
- Jan 30
-
-
- Jan 31
-
-
- Feb 01
-
-
- Feb 02
-
-
- Feb 03
-
-
- Feb 04
-
-
- Feb 05
-
-
- Feb 06
-
-
- Feb 07
-
-
- Feb 08
-
-
- Feb 09
-
-
- Feb 10
-
-
- Feb 11
-
-
- Feb 12
-
-
- Feb 13
-
-
- Feb 14
-
-
- Feb 15
- date
+
+ 0
+ 2
+ 4
+ 6
+ 8
+ 10
+ 12
+ 14
+ 16
+ 18
+ 20
+ 22
+
+
+ ↑ downloads
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Jan 01
+ Jan 02
+ Jan 03
+ Jan 04
+ Jan 05
+ Jan 06
+ Jan 07
+ Jan 08
+ Jan 09
+ Jan 10
+ Jan 11
+ Jan 12
+ Jan 13
+ Jan 14
+ Jan 15
+ Jan 16
+ Jan 17
+ Jan 18
+ Jan 19
+ Jan 20
+ Jan 21
+ Jan 22
+ Jan 23
+ Jan 24
+ Jan 25
+ Jan 26
+ Jan 27
+ Jan 28
+ Jan 29
+ Jan 30
+ Jan 31
+ Feb 01
+ Feb 02
+ Feb 03
+ Feb 04
+ Feb 05
+ Feb 06
+ Feb 07
+ Feb 08
+ Feb 09
+ Feb 10
+ Feb 11
+ Feb 12
+ Feb 13
+ Feb 14
+ Feb 15
+
+
+ date
diff --git a/test/output/driving.svg b/test/output/driving.svg
index 4b5800cf68..eacb3ff226 100644
--- a/test/output/driving.svg
+++ b/test/output/driving.svg
@@ -13,77 +13,74 @@
white-space: pre;
}
-
-
-
- 1.4
-
-
-
- 1.6
-
-
-
- 1.8
-
-
-
- 2.0
-
-
-
- 2.2
-
-
-
- 2.4
-
-
-
- 2.6
-
-
-
- 2.8
-
-
-
- 3.0
-
-
-
- 3.2
- ↑ Cost of gasoline ($ per gallon)
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 4,000
-
-
-
- 5,000
-
-
-
- 6,000
-
-
-
- 7,000
-
-
-
- 8,000
-
-
-
- 9,000
-
-
-
- 10,000
- Miles driven (per person-year) →
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.4
+ 1.6
+ 1.8
+ 2.0
+ 2.2
+ 2.4
+ 2.6
+ 2.8
+ 3.0
+ 3.2
+
+
+ ↑ Cost of gasoline ($ per gallon)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4,000
+ 5,000
+ 6,000
+ 7,000
+ 8,000
+ 9,000
+ 10,000
+
+
+ Miles driven (per person-year) →
@@ -91,5 +88,17 @@
- 19601965197019751980198519901995200020052010
+
+ 1960
+ 1965
+ 1970
+ 1975
+ 1980
+ 1985
+ 1990
+ 1995
+ 2000
+ 2005
+ 2010
+
\ No newline at end of file
diff --git a/test/output/electricityDemand.svg b/test/output/electricityDemand.svg
new file mode 100644
index 0000000000..7c9ace6b68
--- /dev/null
+++ b/test/output/electricityDemand.svg
@@ -0,0 +1,10119 @@
+
\ No newline at end of file
diff --git a/test/output/empty.svg b/test/output/empty.svg
index bcc24254f7..07ddee3cd3 100644
--- a/test/output/empty.svg
+++ b/test/output/empty.svg
@@ -13,97 +13,83 @@
white-space: pre;
}
-
-
-
- 0.0
-
-
-
- 0.1
-
-
-
- 0.2
-
-
-
- 0.3
-
-
-
- 0.4
-
-
-
- 0.5
-
-
-
- 0.6
-
-
-
- 0.7
-
-
-
- 0.8
-
-
-
- 0.9
-
-
-
- 1.0
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 0.0
-
-
-
- 0.1
-
-
-
- 0.2
-
-
-
- 0.3
-
-
-
- 0.4
-
-
-
- 0.5
-
-
-
- 0.6
-
-
-
- 0.7
-
-
-
- 0.8
-
-
-
- 0.9
-
-
-
- 1.0
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.0
+ 0.1
+ 0.2
+ 0.3
+ 0.4
+ 0.5
+ 0.6
+ 0.7
+ 0.8
+ 0.9
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.0
+ 0.1
+ 0.2
+ 0.3
+ 0.4
+ 0.5
+ 0.6
+ 0.7
+ 0.8
+ 0.9
+ 1.0
diff --git a/test/output/emptyFacet.svg b/test/output/emptyFacet.svg
index d9835cf3a8..04215f8a30 100644
--- a/test/output/emptyFacet.svg
+++ b/test/output/emptyFacet.svg
@@ -13,35 +13,45 @@
white-space: pre;
}
-
-
- 0
- VALUE
-
-
-
- a
+
+
+ a
-
- b
- TYPE
-
-
-
- 1
+
+
+
+
+ 0
-
- 2
+
+
+
+
+
+ 1
+ 2
-
-
- 1
+
+
+ b
+
+
+
+
-
- 2
- PERIOD
+
+ 1
+ 2
+
+
+
+ TYPE
+
+
+ VALUE
+
+
+ PERIOD
-
-
\ No newline at end of file
diff --git a/test/output/energyProduction.html b/test/output/energyProduction.html
index 4f30d61798..219f9e0855 100644
--- a/test/output/energyProduction.html
+++ b/test/output/energyProduction.html
@@ -51,66 +51,54 @@
white-space: pre;
}
-
-
- 0
-
-
- 10
-
-
- 20
-
-
- 30
-
-
- 40
-
-
- 50
-
-
- 60
-
-
- 70
-
-
- 80
-
-
- 90
-
-
- 100
- ↑ Annual production (quads)
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 1950
-
-
- 1960
-
-
- 1970
-
-
- 1980
-
-
- 1990
-
-
- 2000
-
-
- 2010
-
-
- 2020
-
+
+ 0
+ 10
+ 20
+ 30
+ 40
+ 50
+ 60
+ 70
+ 80
+ 90
+ 100
+
+
+ ↑ Annual production (quads)
+
+
+
+
+
+
+
+
+
+
+
+
+ 1950
+ 1960
+ 1970
+ 1980
+ 1990
+ 2000
+ 2010
+ 2020
diff --git a/test/output/faithfulDensity.svg b/test/output/faithfulDensity.svg
index af790ae82a..642a6149b9 100644
--- a/test/output/faithfulDensity.svg
+++ b/test/output/faithfulDensity.svg
@@ -13,45 +13,43 @@
white-space: pre;
}
-
-
- 2.0
-
-
- 2.5
-
-
- 3.0
-
-
- 3.5
-
-
- 4.0
-
-
- 4.5
-
-
- 5.0
- ↑ eruptions
+
+
+
+
+
+
+
+
-
-
- 50
-
-
- 60
-
-
- 70
-
-
- 80
-
-
- 90
- waiting →
+
+ 2.0
+ 2.5
+ 3.0
+ 3.5
+ 4.0
+ 4.5
+ 5.0
+
+
+ ↑ eruptions
+
+
+
+
+
+
+
+
+
+ 50
+ 60
+ 70
+ 80
+ 90
+
+
+ waiting →
diff --git a/test/output/faithfulDensity1d.svg b/test/output/faithfulDensity1d.svg
index 49092e3524..8b586df10c 100644
--- a/test/output/faithfulDensity1d.svg
+++ b/test/output/faithfulDensity1d.svg
@@ -13,22 +13,22 @@
white-space: pre;
}
-
-
- 50
-
-
- 60
-
-
- 70
-
-
- 80
-
-
- 90
- waiting →
+
+
+
+
+
+
+
+
+ 50
+ 60
+ 70
+ 80
+ 90
+
+
+ waiting →
diff --git a/test/output/federalFunds.svg b/test/output/federalFunds.svg
new file mode 100644
index 0000000000..d3e5c06821
--- /dev/null
+++ b/test/output/federalFunds.svg
@@ -0,0 +1,64 @@
+
\ No newline at end of file
diff --git a/test/output/figcaption.html b/test/output/figcaption.html
index 65a6465ff8..9e6f16c36c 100644
--- a/test/output/figcaption.html
+++ b/test/output/figcaption.html
@@ -13,139 +13,109 @@
white-space: pre;
}
-
-
-
- 0
-
-
-
- 1
-
-
-
- 2
-
-
-
- 3
-
-
-
- 4
-
-
-
- 5
-
-
-
- 6
-
-
-
- 7
-
-
-
- 8
-
-
-
- 9
-
-
-
- 10
-
-
-
- 11
-
-
-
- 12
- ↑ Frequency (%)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+
+
+ ↑ Frequency (%)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
+
+ A
+ B
+ C
+ D
+ E
+ F
+ G
+ H
+ I
+ J
+ K
+ L
+ M
+ N
+ O
+ P
+ Q
+ R
+ S
+ T
+ U
+ V
+ W
+ X
+ Y
+ Z
diff --git a/test/output/figcaptionHtml.html b/test/output/figcaptionHtml.html
index 3b65399b21..8ad1bd9022 100644
--- a/test/output/figcaptionHtml.html
+++ b/test/output/figcaptionHtml.html
@@ -13,139 +13,109 @@
white-space: pre;
}
-
-
-
- 0
-
-
-
- 1
-
-
-
- 2
-
-
-
- 3
-
-
-
- 4
-
-
-
- 5
-
-
-
- 6
-
-
-
- 7
-
-
-
- 8
-
-
-
- 9
-
-
-
- 10
-
-
-
- 11
-
-
-
- 12
- ↑ Frequency (%)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+
+
+ ↑ Frequency (%)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
+
+ A
+ B
+ C
+ D
+ E
+ F
+ G
+ H
+ I
+ J
+ K
+ L
+ M
+ N
+ O
+ P
+ Q
+ R
+ S
+ T
+ U
+ V
+ W
+ X
+ Y
+ Z
diff --git a/test/output/firstLadies.svg b/test/output/firstLadies.svg
index 8ae1146835..6b7622d144 100644
--- a/test/output/firstLadies.svg
+++ b/test/output/firstLadies.svg
@@ -13,52 +13,39 @@
white-space: pre;
}
-
-
- 1740
-
-
- 1760
-
-
- 1780
-
-
- 1800
-
-
- 1820
-
-
- 1840
-
-
- 1860
-
-
- 1880
-
-
- 1900
-
-
- 1920
-
-
- 1940
-
-
- 1960
-
-
- 1980
-
-
- 2000
-
-
- 2020
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1740
+ 1760
+ 1780
+ 1800
+ 1820
+ 1840
+ 1860
+ 1880
+ 1900
+ 1920
+ 1940
+ 1960
+ 1980
+ 2000
+ 2020
@@ -172,5 +159,60 @@
- Martha WashingtonAbigail AdamsMartha JeffersonDolly MadisonElizabeth MonroeLouisa AdamsEmily DonelsonSarah JacksonSarah Van BurenAnna HarrisonJane HarrisonLetitia TylerElizabeth Priscilla TylerJulia TylerSarah PolkMargaret "Peggy" TaylorAbigail FillmoreJane PierceHarriet LaneMary LincolnEliza JohnsonJulia GrantLucy HayesLucretia GarfieldMary McElroyRose ClevelandFrances ClevelandCaroline HarrisonMary Harrison McKeeFrances ClevelandIda McKinleyEdith RooseveltHelen "Nellie" TaftEllen WilsonMargaret WilsonEdith WilsonFlorence HardingGrace CoolidgeLou HooverAnna Eleanor RooseveltElizabeth "Bess" TrumanMamie EisenhowerJacqueline "Jackie" KennedyClaudia "Lady Bird" JohnsonThelma "Pat" NixonElizabeth "Betty" FordEleanor Rosalynn CarterNancy ReaganBarbara BushHillary ClintonLaura BushMichelle ObamaMelania TrumpJill Biden
+
+ Martha Washington
+ Abigail Adams
+ Martha Jefferson
+ Dolly Madison
+ Elizabeth Monroe
+ Louisa Adams
+ Emily Donelson
+ Sarah Jackson
+ Sarah Van Buren
+ Anna Harrison
+ Jane Harrison
+ Letitia Tyler
+ Elizabeth Priscilla Tyler
+ Julia Tyler
+ Sarah Polk
+ Margaret "Peggy" Taylor
+ Abigail Fillmore
+ Jane Pierce
+ Harriet Lane
+ Mary Lincoln
+ Eliza Johnson
+ Julia Grant
+ Lucy Hayes
+ Lucretia Garfield
+ Mary McElroy
+ Rose Cleveland
+ Frances Cleveland
+ Caroline Harrison
+ Mary Harrison McKee
+ Frances Cleveland
+ Ida McKinley
+ Edith Roosevelt
+ Helen "Nellie" Taft
+ Ellen Wilson
+ Margaret Wilson
+ Edith Wilson
+ Florence Harding
+ Grace Coolidge
+ Lou Hoover
+ Anna Eleanor Roosevelt
+ Elizabeth "Bess" Truman
+ Mamie Eisenhower
+ Jacqueline "Jackie" Kennedy
+ Claudia "Lady Bird" Johnson
+ Thelma "Pat" Nixon
+ Elizabeth "Betty" Ford
+ Eleanor Rosalynn Carter
+ Nancy Reagan
+ Barbara Bush
+ Hillary Clinton
+ Laura Bush
+ Michelle Obama
+ Melania Trump
+ Jill Biden
+
\ No newline at end of file
diff --git a/test/output/flareCluster.svg b/test/output/flareCluster.svg
index 9016f8252e..6e54354e41 100644
--- a/test/output/flareCluster.svg
+++ b/test/output/flareCluster.svg
@@ -267,762 +267,511 @@
-
- /flare
-
-
- /flare/analytics
-
-
- /flare/animate
-
-
- /flare/data
-
-
- /flare/display
-
-
- /flare/flex
-
-
- /flare/physics
-
-
- /flare/query
-
-
- /flare/scale
-
-
- /flare/util
-
-
- /flare/vis
-
-
- /flare/analytics/cluster
-
-
- /flare/analytics/graph
-
-
- /flare/analytics/optimization
-
-
- /flare/animate/Easing
-
-
- /flare/animate/FunctionSequence
-
-
- /flare/animate/interpolate
-
-
- /flare/animate/ISchedulable
-
-
- /flare/animate/Parallel
-
-
- /flare/animate/Pause
-
-
- /flare/animate/Scheduler
-
-
- /flare/animate/Sequence
-
-
- /flare/animate/Transition
-
-
- /flare/animate/Transitioner
-
-
- /flare/animate/TransitionEvent
-
-
- /flare/animate/Tween
-
-
- /flare/data/converters
-
-
- /flare/data/DataField
-
-
- /flare/data/DataSchema
-
-
- /flare/data/DataSet
-
-
- /flare/data/DataSource
-
-
- /flare/data/DataTable
-
-
- /flare/data/DataUtil
-
-
- /flare/display/DirtySprite
-
-
- /flare/display/LineSprite
-
-
- /flare/display/RectSprite
-
-
- /flare/display/TextSprite
-
-
- /flare/flex/FlareVis
-
-
- /flare/physics/DragForce
-
-
- /flare/physics/GravityForce
-
-
- /flare/physics/IForce
-
-
- /flare/physics/NBodyForce
-
-
- /flare/physics/Particle
-
-
- /flare/physics/Simulation
-
-
- /flare/physics/Spring
-
-
- /flare/physics/SpringForce
-
-
- /flare/query/AggregateExpression
-
-
- /flare/query/And
-
-
- /flare/query/Arithmetic
-
-
- /flare/query/Average
-
-
- /flare/query/BinaryExpression
-
-
- /flare/query/Comparison
-
-
- /flare/query/CompositeExpression
-
-
- /flare/query/Count
-
-
- /flare/query/DateUtil
-
-
- /flare/query/Distinct
-
-
- /flare/query/Expression
-
-
- /flare/query/ExpressionIterator
-
-
- /flare/query/Fn
-
-
- /flare/query/If
-
-
- /flare/query/IsA
-
-
- /flare/query/Literal
-
-
- /flare/query/Match
-
-
- /flare/query/Maximum
-
-
- /flare/query/methods
-
-
- /flare/query/Minimum
-
-
- /flare/query/Not
-
-
- /flare/query/Or
-
-
- /flare/query/Query
-
-
- /flare/query/Range
-
-
- /flare/query/StringUtil
-
-
- /flare/query/Sum
-
-
- /flare/query/Variable
-
-
- /flare/query/Variance
-
-
- /flare/query/Xor
-
-
- /flare/scale/IScaleMap
-
-
- /flare/scale/LinearScale
-
-
- /flare/scale/LogScale
-
-
- /flare/scale/OrdinalScale
-
-
- /flare/scale/QuantileScale
-
-
- /flare/scale/QuantitativeScale
-
-
- /flare/scale/RootScale
-
-
- /flare/scale/Scale
-
-
- /flare/scale/ScaleType
-
-
- /flare/scale/TimeScale
-
-
- /flare/util/Arrays
-
-
- /flare/util/Colors
-
-
- /flare/util/Dates
-
-
- /flare/util/Displays
-
-
- /flare/util/Filter
-
-
- /flare/util/Geometry
-
-
- /flare/util/heap
-
-
- /flare/util/IEvaluable
-
-
- /flare/util/IPredicate
-
-
- /flare/util/IValueProxy
-
-
- /flare/util/math
-
-
- /flare/util/Maths
-
-
- /flare/util/Orientation
-
-
- /flare/util/palette
-
-
- /flare/util/Property
-
-
- /flare/util/Shapes
-
-
- /flare/util/Sort
-
-
- /flare/util/Stats
-
-
- /flare/util/Strings
-
-
- /flare/vis/axis
-
-
- /flare/vis/controls
-
-
- /flare/vis/data
-
-
- /flare/vis/events
-
-
- /flare/vis/legend
-
-
- /flare/vis/operator
-
-
- /flare/vis/Visualization
-
-
- /flare/analytics/cluster/AgglomerativeCluster
-
-
- /flare/analytics/cluster/CommunityStructure
-
-
- /flare/analytics/cluster/HierarchicalCluster
-
-
- /flare/analytics/cluster/MergeEdge
-
-
- /flare/analytics/graph/BetweennessCentrality
-
-
- /flare/analytics/graph/LinkDistance
-
-
- /flare/analytics/graph/MaxFlowMinCut
-
-
- /flare/analytics/graph/ShortestPaths
-
-
- /flare/analytics/graph/SpanningTree
-
-
- /flare/analytics/optimization/AspectRatioBanker
-
-
- /flare/animate/interpolate/ArrayInterpolator
-
-
- /flare/animate/interpolate/ColorInterpolator
-
-
- /flare/animate/interpolate/DateInterpolator
-
-
- /flare/animate/interpolate/Interpolator
-
-
- /flare/animate/interpolate/MatrixInterpolator
-
-
- /flare/animate/interpolate/NumberInterpolator
-
-
- /flare/animate/interpolate/ObjectInterpolator
-
-
- /flare/animate/interpolate/PointInterpolator
-
-
- /flare/animate/interpolate/RectangleInterpolator
-
-
- /flare/data/converters/Converters
-
-
- /flare/data/converters/DelimitedTextConverter
-
-
- /flare/data/converters/GraphMLConverter
-
-
- /flare/data/converters/IDataConverter
-
-
- /flare/data/converters/JSONConverter
-
-
- /flare/query/methods/add
-
-
- /flare/query/methods/and
-
-
- /flare/query/methods/average
-
-
- /flare/query/methods/count
-
-
- /flare/query/methods/distinct
-
-
- /flare/query/methods/div
-
-
- /flare/query/methods/eq
-
-
- /flare/query/methods/fn
-
-
- /flare/query/methods/gt
-
-
- /flare/query/methods/gte
-
-
- /flare/query/methods/iff
-
-
- /flare/query/methods/isa
-
-
- /flare/query/methods/lt
-
-
- /flare/query/methods/lte
-
-
- /flare/query/methods/max
-
-
- /flare/query/methods/min
-
-
- /flare/query/methods/mod
-
-
- /flare/query/methods/mul
-
-
- /flare/query/methods/neq
-
-
- /flare/query/methods/not
-
-
- /flare/query/methods/or
-
-
- /flare/query/methods/orderby
-
-
- /flare/query/methods/range
-
-
- /flare/query/methods/select
-
-
- /flare/query/methods/stddev
-
-
- /flare/query/methods/sub
-
-
- /flare/query/methods/sum
-
-
- /flare/query/methods/update
-
-
- /flare/query/methods/variance
-
-
- /flare/query/methods/where
-
-
- /flare/query/methods/xor
-
-
- /flare/query/methods/_
-
-
- /flare/util/heap/FibonacciHeap
-
-
- /flare/util/heap/HeapNode
-
-
- /flare/util/math/DenseMatrix
-
-
- /flare/util/math/IMatrix
-
-
- /flare/util/math/SparseMatrix
-
-
- /flare/util/palette/ColorPalette
-
-
- /flare/util/palette/Palette
-
-
- /flare/util/palette/ShapePalette
-
-
- /flare/util/palette/SizePalette
-
-
- /flare/vis/axis/Axes
-
-
- /flare/vis/axis/Axis
-
-
- /flare/vis/axis/AxisGridLine
-
-
- /flare/vis/axis/AxisLabel
-
-
- /flare/vis/axis/CartesianAxes
-
-
- /flare/vis/controls/AnchorControl
-
-
- /flare/vis/controls/ClickControl
-
-
- /flare/vis/controls/Control
-
-
- /flare/vis/controls/ControlList
-
-
- /flare/vis/controls/DragControl
-
-
- /flare/vis/controls/ExpandControl
-
-
- /flare/vis/controls/HoverControl
-
-
- /flare/vis/controls/IControl
-
-
- /flare/vis/controls/PanZoomControl
-
-
- /flare/vis/controls/SelectionControl
-
-
- /flare/vis/controls/TooltipControl
-
-
- /flare/vis/data/Data
-
-
- /flare/vis/data/DataList
-
-
- /flare/vis/data/DataSprite
-
-
- /flare/vis/data/EdgeSprite
-
-
- /flare/vis/data/NodeSprite
-
-
- /flare/vis/data/render
-
-
- /flare/vis/data/ScaleBinding
-
-
- /flare/vis/data/Tree
-
-
- /flare/vis/data/TreeBuilder
-
-
- /flare/vis/events/DataEvent
-
-
- /flare/vis/events/SelectionEvent
-
-
- /flare/vis/events/TooltipEvent
-
-
- /flare/vis/events/VisualizationEvent
-
-
- /flare/vis/legend/Legend
-
-
- /flare/vis/legend/LegendItem
-
-
- /flare/vis/legend/LegendRange
-
-
- /flare/vis/operator/distortion
-
-
- /flare/vis/operator/encoder
-
-
- /flare/vis/operator/filter
-
-
- /flare/vis/operator/IOperator
-
-
- /flare/vis/operator/label
-
-
- /flare/vis/operator/layout
-
-
- /flare/vis/operator/Operator
-
-
- /flare/vis/operator/OperatorList
-
-
- /flare/vis/operator/OperatorSequence
-
-
- /flare/vis/operator/OperatorSwitch
-
-
- /flare/vis/operator/SortOperator
-
-
- /flare/vis/data/render/ArrowType
-
-
- /flare/vis/data/render/EdgeRenderer
-
-
- /flare/vis/data/render/IRenderer
-
-
- /flare/vis/data/render/ShapeRenderer
-
-
- /flare/vis/operator/distortion/BifocalDistortion
-
-
- /flare/vis/operator/distortion/Distortion
-
-
- /flare/vis/operator/distortion/FisheyeDistortion
-
-
- /flare/vis/operator/encoder/ColorEncoder
-
-
- /flare/vis/operator/encoder/Encoder
-
-
- /flare/vis/operator/encoder/PropertyEncoder
-
-
- /flare/vis/operator/encoder/ShapeEncoder
-
-
- /flare/vis/operator/encoder/SizeEncoder
-
-
- /flare/vis/operator/filter/FisheyeTreeFilter
-
-
- /flare/vis/operator/filter/GraphDistanceFilter
-
-
- /flare/vis/operator/filter/VisibilityFilter
-
-
- /flare/vis/operator/label/Labeler
-
-
- /flare/vis/operator/label/RadialLabeler
-
-
- /flare/vis/operator/label/StackedAreaLabeler
-
-
- /flare/vis/operator/layout/AxisLayout
-
-
- /flare/vis/operator/layout/BundledEdgeRouter
-
-
- /flare/vis/operator/layout/CircleLayout
-
-
- /flare/vis/operator/layout/CirclePackingLayout
-
-
- /flare/vis/operator/layout/DendrogramLayout
-
-
- /flare/vis/operator/layout/ForceDirectedLayout
-
-
- /flare/vis/operator/layout/IcicleTreeLayout
-
-
- /flare/vis/operator/layout/IndentedTreeLayout
-
-
- /flare/vis/operator/layout/Layout
-
-
- /flare/vis/operator/layout/NodeLinkTreeLayout
-
-
- /flare/vis/operator/layout/PieLayout
-
-
- /flare/vis/operator/layout/RadialTreeLayout
-
-
- /flare/vis/operator/layout/RandomLayout
-
-
- /flare/vis/operator/layout/StackedAreaLayout
-
-
- /flare/vis/operator/layout/TreeMapLayout
-
+ /flare
+ /flare/analytics
+ /flare/animate
+ /flare/data
+ /flare/display
+ /flare/flex
+ /flare/physics
+ /flare/query
+ /flare/scale
+ /flare/util
+ /flare/vis
+ /flare/analytics/cluster
+ /flare/analytics/graph
+ /flare/analytics/optimization
+ /flare/animate/Easing
+ /flare/animate/FunctionSequence
+ /flare/animate/interpolate
+ /flare/animate/ISchedulable
+ /flare/animate/Parallel
+ /flare/animate/Pause
+ /flare/animate/Scheduler
+ /flare/animate/Sequence
+ /flare/animate/Transition
+ /flare/animate/Transitioner
+ /flare/animate/TransitionEvent
+ /flare/animate/Tween
+ /flare/data/converters
+ /flare/data/DataField
+ /flare/data/DataSchema
+ /flare/data/DataSet
+ /flare/data/DataSource
+ /flare/data/DataTable
+ /flare/data/DataUtil
+ /flare/display/DirtySprite
+ /flare/display/LineSprite
+ /flare/display/RectSprite
+ /flare/display/TextSprite
+ /flare/flex/FlareVis
+ /flare/physics/DragForce
+ /flare/physics/GravityForce
+ /flare/physics/IForce
+ /flare/physics/NBodyForce
+ /flare/physics/Particle
+ /flare/physics/Simulation
+ /flare/physics/Spring
+ /flare/physics/SpringForce
+ /flare/query/AggregateExpression
+ /flare/query/And
+ /flare/query/Arithmetic
+ /flare/query/Average
+ /flare/query/BinaryExpression
+ /flare/query/Comparison
+ /flare/query/CompositeExpression
+ /flare/query/Count
+ /flare/query/DateUtil
+ /flare/query/Distinct
+ /flare/query/Expression
+ /flare/query/ExpressionIterator
+ /flare/query/Fn
+ /flare/query/If
+ /flare/query/IsA
+ /flare/query/Literal
+ /flare/query/Match
+ /flare/query/Maximum
+ /flare/query/methods
+ /flare/query/Minimum
+ /flare/query/Not
+ /flare/query/Or
+ /flare/query/Query
+ /flare/query/Range
+ /flare/query/StringUtil
+ /flare/query/Sum
+ /flare/query/Variable
+ /flare/query/Variance
+ /flare/query/Xor
+ /flare/scale/IScaleMap
+ /flare/scale/LinearScale
+ /flare/scale/LogScale
+ /flare/scale/OrdinalScale
+ /flare/scale/QuantileScale
+ /flare/scale/QuantitativeScale
+ /flare/scale/RootScale
+ /flare/scale/Scale
+ /flare/scale/ScaleType
+ /flare/scale/TimeScale
+ /flare/util/Arrays
+ /flare/util/Colors
+ /flare/util/Dates
+ /flare/util/Displays
+ /flare/util/Filter
+ /flare/util/Geometry
+ /flare/util/heap
+ /flare/util/IEvaluable
+ /flare/util/IPredicate
+ /flare/util/IValueProxy
+ /flare/util/math
+ /flare/util/Maths
+ /flare/util/Orientation
+ /flare/util/palette
+ /flare/util/Property
+ /flare/util/Shapes
+ /flare/util/Sort
+ /flare/util/Stats
+ /flare/util/Strings
+ /flare/vis/axis
+ /flare/vis/controls
+ /flare/vis/data
+ /flare/vis/events
+ /flare/vis/legend
+ /flare/vis/operator
+ /flare/vis/Visualization
+ /flare/analytics/cluster/AgglomerativeCluster
+ /flare/analytics/cluster/CommunityStructure
+ /flare/analytics/cluster/HierarchicalCluster
+ /flare/analytics/cluster/MergeEdge
+ /flare/analytics/graph/BetweennessCentrality
+ /flare/analytics/graph/LinkDistance
+ /flare/analytics/graph/MaxFlowMinCut
+ /flare/analytics/graph/ShortestPaths
+ /flare/analytics/graph/SpanningTree
+ /flare/analytics/optimization/AspectRatioBanker
+ /flare/animate/interpolate/ArrayInterpolator
+ /flare/animate/interpolate/ColorInterpolator
+ /flare/animate/interpolate/DateInterpolator
+ /flare/animate/interpolate/Interpolator
+ /flare/animate/interpolate/MatrixInterpolator
+ /flare/animate/interpolate/NumberInterpolator
+ /flare/animate/interpolate/ObjectInterpolator
+ /flare/animate/interpolate/PointInterpolator
+ /flare/animate/interpolate/RectangleInterpolator
+ /flare/data/converters/Converters
+ /flare/data/converters/DelimitedTextConverter
+ /flare/data/converters/GraphMLConverter
+ /flare/data/converters/IDataConverter
+ /flare/data/converters/JSONConverter
+ /flare/query/methods/add
+ /flare/query/methods/and
+ /flare/query/methods/average
+ /flare/query/methods/count
+ /flare/query/methods/distinct
+ /flare/query/methods/div
+ /flare/query/methods/eq
+ /flare/query/methods/fn
+ /flare/query/methods/gt
+ /flare/query/methods/gte
+ /flare/query/methods/iff
+ /flare/query/methods/isa
+ /flare/query/methods/lt
+ /flare/query/methods/lte
+ /flare/query/methods/max
+ /flare/query/methods/min
+ /flare/query/methods/mod
+ /flare/query/methods/mul
+ /flare/query/methods/neq
+ /flare/query/methods/not
+ /flare/query/methods/or
+ /flare/query/methods/orderby
+ /flare/query/methods/range
+ /flare/query/methods/select
+ /flare/query/methods/stddev
+ /flare/query/methods/sub
+ /flare/query/methods/sum
+ /flare/query/methods/update
+ /flare/query/methods/variance
+ /flare/query/methods/where
+ /flare/query/methods/xor
+ /flare/query/methods/_
+ /flare/util/heap/FibonacciHeap
+ /flare/util/heap/HeapNode
+ /flare/util/math/DenseMatrix
+ /flare/util/math/IMatrix
+ /flare/util/math/SparseMatrix
+ /flare/util/palette/ColorPalette
+ /flare/util/palette/Palette
+ /flare/util/palette/ShapePalette
+ /flare/util/palette/SizePalette
+ /flare/vis/axis/Axes
+ /flare/vis/axis/Axis
+ /flare/vis/axis/AxisGridLine
+ /flare/vis/axis/AxisLabel
+ /flare/vis/axis/CartesianAxes
+ /flare/vis/controls/AnchorControl
+ /flare/vis/controls/ClickControl
+ /flare/vis/controls/Control
+ /flare/vis/controls/ControlList
+ /flare/vis/controls/DragControl
+ /flare/vis/controls/ExpandControl
+ /flare/vis/controls/HoverControl
+ /flare/vis/controls/IControl
+ /flare/vis/controls/PanZoomControl
+ /flare/vis/controls/SelectionControl
+ /flare/vis/controls/TooltipControl
+ /flare/vis/data/Data
+ /flare/vis/data/DataList
+ /flare/vis/data/DataSprite
+ /flare/vis/data/EdgeSprite
+ /flare/vis/data/NodeSprite
+ /flare/vis/data/render
+ /flare/vis/data/ScaleBinding
+ /flare/vis/data/Tree
+ /flare/vis/data/TreeBuilder
+ /flare/vis/events/DataEvent
+ /flare/vis/events/SelectionEvent
+ /flare/vis/events/TooltipEvent
+ /flare/vis/events/VisualizationEvent
+ /flare/vis/legend/Legend
+ /flare/vis/legend/LegendItem
+ /flare/vis/legend/LegendRange
+ /flare/vis/operator/distortion
+ /flare/vis/operator/encoder
+ /flare/vis/operator/filter
+ /flare/vis/operator/IOperator
+ /flare/vis/operator/label
+ /flare/vis/operator/layout
+ /flare/vis/operator/Operator
+ /flare/vis/operator/OperatorList
+ /flare/vis/operator/OperatorSequence
+ /flare/vis/operator/OperatorSwitch
+ /flare/vis/operator/SortOperator
+ /flare/vis/data/render/ArrowType
+ /flare/vis/data/render/EdgeRenderer
+ /flare/vis/data/render/IRenderer
+ /flare/vis/data/render/ShapeRenderer
+ /flare/vis/operator/distortion/BifocalDistortion
+ /flare/vis/operator/distortion/Distortion
+ /flare/vis/operator/distortion/FisheyeDistortion
+ /flare/vis/operator/encoder/ColorEncoder
+ /flare/vis/operator/encoder/Encoder
+ /flare/vis/operator/encoder/PropertyEncoder
+ /flare/vis/operator/encoder/ShapeEncoder
+ /flare/vis/operator/encoder/SizeEncoder
+ /flare/vis/operator/filter/FisheyeTreeFilter
+ /flare/vis/operator/filter/GraphDistanceFilter
+ /flare/vis/operator/filter/VisibilityFilter
+ /flare/vis/operator/label/Labeler
+ /flare/vis/operator/label/RadialLabeler
+ /flare/vis/operator/label/StackedAreaLabeler
+ /flare/vis/operator/layout/AxisLayout
+ /flare/vis/operator/layout/BundledEdgeRouter
+ /flare/vis/operator/layout/CircleLayout
+ /flare/vis/operator/layout/CirclePackingLayout
+ /flare/vis/operator/layout/DendrogramLayout
+ /flare/vis/operator/layout/ForceDirectedLayout
+ /flare/vis/operator/layout/IcicleTreeLayout
+ /flare/vis/operator/layout/IndentedTreeLayout
+ /flare/vis/operator/layout/Layout
+ /flare/vis/operator/layout/NodeLinkTreeLayout
+ /flare/vis/operator/layout/PieLayout
+ /flare/vis/operator/layout/RadialTreeLayout
+ /flare/vis/operator/layout/RandomLayout
+ /flare/vis/operator/layout/StackedAreaLayout
+ /flare/vis/operator/layout/TreeMapLayout
+
+
+ flare/flare
+ analytics/flare/analytics
+ animate/flare/animate
+ data/flare/data
+ display/flare/display
+ flex/flare/flex
+ physics/flare/physics
+ query/flare/query
+ scale/flare/scale
+ util/flare/util
+ vis/flare/vis
+ cluster/flare/analytics/cluster
+ graph/flare/analytics/graph
+ optimization/flare/analytics/optimization
+ Easing/flare/animate/Easing
+ FunctionSequence/flare/animate/FunctionSequence
+ interpolate/flare/animate/interpolate
+ ISchedulable/flare/animate/ISchedulable
+ Parallel/flare/animate/Parallel
+ Pause/flare/animate/Pause
+ Scheduler/flare/animate/Scheduler
+ Sequence/flare/animate/Sequence
+ Transition/flare/animate/Transition
+ Transitioner/flare/animate/Transitioner
+ TransitionEvent/flare/animate/TransitionEvent
+ Tween/flare/animate/Tween
+ converters/flare/data/converters
+ DataField/flare/data/DataField
+ DataSchema/flare/data/DataSchema
+ DataSet/flare/data/DataSet
+ DataSource/flare/data/DataSource
+ DataTable/flare/data/DataTable
+ DataUtil/flare/data/DataUtil
+ DirtySprite/flare/display/DirtySprite
+ LineSprite/flare/display/LineSprite
+ RectSprite/flare/display/RectSprite
+ TextSprite/flare/display/TextSprite
+ FlareVis/flare/flex/FlareVis
+ DragForce/flare/physics/DragForce
+ GravityForce/flare/physics/GravityForce
+ IForce/flare/physics/IForce
+ NBodyForce/flare/physics/NBodyForce
+ Particle/flare/physics/Particle
+ Simulation/flare/physics/Simulation
+ Spring/flare/physics/Spring
+ SpringForce/flare/physics/SpringForce
+ AggregateExpression/flare/query/AggregateExpression
+ And/flare/query/And
+ Arithmetic/flare/query/Arithmetic
+ Average/flare/query/Average
+ BinaryExpression/flare/query/BinaryExpression
+ Comparison/flare/query/Comparison
+ CompositeExpression/flare/query/CompositeExpression
+ Count/flare/query/Count
+ DateUtil/flare/query/DateUtil
+ Distinct/flare/query/Distinct
+ Expression/flare/query/Expression
+ ExpressionIterator/flare/query/ExpressionIterator
+ Fn/flare/query/Fn
+ If/flare/query/If
+ IsA/flare/query/IsA
+ Literal/flare/query/Literal
+ Match/flare/query/Match
+ Maximum/flare/query/Maximum
+ methods/flare/query/methods
+ Minimum/flare/query/Minimum
+ Not/flare/query/Not
+ Or/flare/query/Or
+ Query/flare/query/Query
+ Range/flare/query/Range
+ StringUtil/flare/query/StringUtil
+ Sum/flare/query/Sum
+ Variable/flare/query/Variable
+ Variance/flare/query/Variance
+ Xor/flare/query/Xor
+ IScaleMap/flare/scale/IScaleMap
+ LinearScale/flare/scale/LinearScale
+ LogScale/flare/scale/LogScale
+ OrdinalScale/flare/scale/OrdinalScale
+ QuantileScale/flare/scale/QuantileScale
+ QuantitativeScale/flare/scale/QuantitativeScale
+ RootScale/flare/scale/RootScale
+ Scale/flare/scale/Scale
+ ScaleType/flare/scale/ScaleType
+ TimeScale/flare/scale/TimeScale
+ Arrays/flare/util/Arrays
+ Colors/flare/util/Colors
+ Dates/flare/util/Dates
+ Displays/flare/util/Displays
+ Filter/flare/util/Filter
+ Geometry/flare/util/Geometry
+ heap/flare/util/heap
+ IEvaluable/flare/util/IEvaluable
+ IPredicate/flare/util/IPredicate
+ IValueProxy/flare/util/IValueProxy
+ math/flare/util/math
+ Maths/flare/util/Maths
+ Orientation/flare/util/Orientation
+ palette/flare/util/palette
+ Property/flare/util/Property
+ Shapes/flare/util/Shapes
+ Sort/flare/util/Sort
+ Stats/flare/util/Stats
+ Strings/flare/util/Strings
+ axis/flare/vis/axis
+ controls/flare/vis/controls
+ data/flare/vis/data
+ events/flare/vis/events
+ legend/flare/vis/legend
+ operator/flare/vis/operator
+ Visualization/flare/vis/Visualization
+ AgglomerativeCluster/flare/analytics/cluster/AgglomerativeCluster
+ CommunityStructure/flare/analytics/cluster/CommunityStructure
+ HierarchicalCluster/flare/analytics/cluster/HierarchicalCluster
+ MergeEdge/flare/analytics/cluster/MergeEdge
+ BetweennessCentrality/flare/analytics/graph/BetweennessCentrality
+ LinkDistance/flare/analytics/graph/LinkDistance
+ MaxFlowMinCut/flare/analytics/graph/MaxFlowMinCut
+ ShortestPaths/flare/analytics/graph/ShortestPaths
+ SpanningTree/flare/analytics/graph/SpanningTree
+ AspectRatioBanker/flare/analytics/optimization/AspectRatioBanker
+ ArrayInterpolator/flare/animate/interpolate/ArrayInterpolator
+ ColorInterpolator/flare/animate/interpolate/ColorInterpolator
+ DateInterpolator/flare/animate/interpolate/DateInterpolator
+ Interpolator/flare/animate/interpolate/Interpolator
+ MatrixInterpolator/flare/animate/interpolate/MatrixInterpolator
+ NumberInterpolator/flare/animate/interpolate/NumberInterpolator
+ ObjectInterpolator/flare/animate/interpolate/ObjectInterpolator
+ PointInterpolator/flare/animate/interpolate/PointInterpolator
+ RectangleInterpolator/flare/animate/interpolate/RectangleInterpolator
+ Converters/flare/data/converters/Converters
+ DelimitedTextConverter/flare/data/converters/DelimitedTextConverter
+ GraphMLConverter/flare/data/converters/GraphMLConverter
+ IDataConverter/flare/data/converters/IDataConverter
+ JSONConverter/flare/data/converters/JSONConverter
+ add/flare/query/methods/add
+ and/flare/query/methods/and
+ average/flare/query/methods/average
+ count/flare/query/methods/count
+ distinct/flare/query/methods/distinct
+ div/flare/query/methods/div
+ eq/flare/query/methods/eq
+ fn/flare/query/methods/fn
+ gt/flare/query/methods/gt
+ gte/flare/query/methods/gte
+ iff/flare/query/methods/iff
+ isa/flare/query/methods/isa
+ lt/flare/query/methods/lt
+ lte/flare/query/methods/lte
+ max/flare/query/methods/max
+ min/flare/query/methods/min
+ mod/flare/query/methods/mod
+ mul/flare/query/methods/mul
+ neq/flare/query/methods/neq
+ not/flare/query/methods/not
+ or/flare/query/methods/or
+ orderby/flare/query/methods/orderby
+ range/flare/query/methods/range
+ select/flare/query/methods/select
+ stddev/flare/query/methods/stddev
+ sub/flare/query/methods/sub
+ sum/flare/query/methods/sum
+ update/flare/query/methods/update
+ variance/flare/query/methods/variance
+ where/flare/query/methods/where
+ xor/flare/query/methods/xor
+ _/flare/query/methods/_
+ FibonacciHeap/flare/util/heap/FibonacciHeap
+ HeapNode/flare/util/heap/HeapNode
+ DenseMatrix/flare/util/math/DenseMatrix
+ IMatrix/flare/util/math/IMatrix
+ SparseMatrix/flare/util/math/SparseMatrix
+ ColorPalette/flare/util/palette/ColorPalette
+ Palette/flare/util/palette/Palette
+ ShapePalette/flare/util/palette/ShapePalette
+ SizePalette/flare/util/palette/SizePalette
+ Axes/flare/vis/axis/Axes
+ Axis/flare/vis/axis/Axis
+ AxisGridLine/flare/vis/axis/AxisGridLine
+ AxisLabel/flare/vis/axis/AxisLabel
+ CartesianAxes/flare/vis/axis/CartesianAxes
+ AnchorControl/flare/vis/controls/AnchorControl
+ ClickControl/flare/vis/controls/ClickControl
+ Control/flare/vis/controls/Control
+ ControlList/flare/vis/controls/ControlList
+ DragControl/flare/vis/controls/DragControl
+ ExpandControl/flare/vis/controls/ExpandControl
+ HoverControl/flare/vis/controls/HoverControl
+ IControl/flare/vis/controls/IControl
+ PanZoomControl/flare/vis/controls/PanZoomControl
+ SelectionControl/flare/vis/controls/SelectionControl
+ TooltipControl/flare/vis/controls/TooltipControl
+ Data/flare/vis/data/Data
+ DataList/flare/vis/data/DataList
+ DataSprite/flare/vis/data/DataSprite
+ EdgeSprite/flare/vis/data/EdgeSprite
+ NodeSprite/flare/vis/data/NodeSprite
+ render/flare/vis/data/render
+ ScaleBinding/flare/vis/data/ScaleBinding
+ Tree/flare/vis/data/Tree
+ TreeBuilder/flare/vis/data/TreeBuilder
+ DataEvent/flare/vis/events/DataEvent
+ SelectionEvent/flare/vis/events/SelectionEvent
+ TooltipEvent/flare/vis/events/TooltipEvent
+ VisualizationEvent/flare/vis/events/VisualizationEvent
+ Legend/flare/vis/legend/Legend
+ LegendItem/flare/vis/legend/LegendItem
+ LegendRange/flare/vis/legend/LegendRange
+ distortion/flare/vis/operator/distortion
+ encoder/flare/vis/operator/encoder
+ filter/flare/vis/operator/filter
+ IOperator/flare/vis/operator/IOperator
+ label/flare/vis/operator/label
+ layout/flare/vis/operator/layout
+ Operator/flare/vis/operator/Operator
+ OperatorList/flare/vis/operator/OperatorList
+ OperatorSequence/flare/vis/operator/OperatorSequence
+ OperatorSwitch/flare/vis/operator/OperatorSwitch
+ SortOperator/flare/vis/operator/SortOperator
+ ArrowType/flare/vis/data/render/ArrowType
+ EdgeRenderer/flare/vis/data/render/EdgeRenderer
+ IRenderer/flare/vis/data/render/IRenderer
+ ShapeRenderer/flare/vis/data/render/ShapeRenderer
+ BifocalDistortion/flare/vis/operator/distortion/BifocalDistortion
+ Distortion/flare/vis/operator/distortion/Distortion
+ FisheyeDistortion/flare/vis/operator/distortion/FisheyeDistortion
+ ColorEncoder/flare/vis/operator/encoder/ColorEncoder
+ Encoder/flare/vis/operator/encoder/Encoder
+ PropertyEncoder/flare/vis/operator/encoder/PropertyEncoder
+ ShapeEncoder/flare/vis/operator/encoder/ShapeEncoder
+ SizeEncoder/flare/vis/operator/encoder/SizeEncoder
+ FisheyeTreeFilter/flare/vis/operator/filter/FisheyeTreeFilter
+ GraphDistanceFilter/flare/vis/operator/filter/GraphDistanceFilter
+ VisibilityFilter/flare/vis/operator/filter/VisibilityFilter
+ Labeler/flare/vis/operator/label/Labeler
+ RadialLabeler/flare/vis/operator/label/RadialLabeler
+ StackedAreaLabeler/flare/vis/operator/label/StackedAreaLabeler
+ AxisLayout/flare/vis/operator/layout/AxisLayout
+ BundledEdgeRouter/flare/vis/operator/layout/BundledEdgeRouter
+ CircleLayout/flare/vis/operator/layout/CircleLayout
+ CirclePackingLayout/flare/vis/operator/layout/CirclePackingLayout
+ DendrogramLayout/flare/vis/operator/layout/DendrogramLayout
+ ForceDirectedLayout/flare/vis/operator/layout/ForceDirectedLayout
+ IcicleTreeLayout/flare/vis/operator/layout/IcicleTreeLayout
+ IndentedTreeLayout/flare/vis/operator/layout/IndentedTreeLayout
+ Layout/flare/vis/operator/layout/Layout
+ NodeLinkTreeLayout/flare/vis/operator/layout/NodeLinkTreeLayout
+ PieLayout/flare/vis/operator/layout/PieLayout
+ RadialTreeLayout/flare/vis/operator/layout/RadialTreeLayout
+ RandomLayout/flare/vis/operator/layout/RandomLayout
+ StackedAreaLayout/flare/vis/operator/layout/StackedAreaLayout
+ TreeMapLayout/flare/vis/operator/layout/TreeMapLayout
- flare/flareanalytics/flare/analyticsanimate/flare/animatedata/flare/datadisplay/flare/displayflex/flare/flexphysics/flare/physicsquery/flare/queryscale/flare/scaleutil/flare/utilvis/flare/viscluster/flare/analytics/clustergraph/flare/analytics/graphoptimization/flare/analytics/optimizationEasing/flare/animate/EasingFunctionSequence/flare/animate/FunctionSequenceinterpolate/flare/animate/interpolateISchedulable/flare/animate/ISchedulableParallel/flare/animate/ParallelPause/flare/animate/PauseScheduler/flare/animate/SchedulerSequence/flare/animate/SequenceTransition/flare/animate/TransitionTransitioner/flare/animate/TransitionerTransitionEvent/flare/animate/TransitionEventTween/flare/animate/Tweenconverters/flare/data/convertersDataField/flare/data/DataFieldDataSchema/flare/data/DataSchemaDataSet/flare/data/DataSetDataSource/flare/data/DataSourceDataTable/flare/data/DataTableDataUtil/flare/data/DataUtilDirtySprite/flare/display/DirtySpriteLineSprite/flare/display/LineSpriteRectSprite/flare/display/RectSpriteTextSprite/flare/display/TextSpriteFlareVis/flare/flex/FlareVisDragForce/flare/physics/DragForceGravityForce/flare/physics/GravityForceIForce/flare/physics/IForceNBodyForce/flare/physics/NBodyForceParticle/flare/physics/ParticleSimulation/flare/physics/SimulationSpring/flare/physics/SpringSpringForce/flare/physics/SpringForceAggregateExpression/flare/query/AggregateExpressionAnd/flare/query/AndArithmetic/flare/query/ArithmeticAverage/flare/query/AverageBinaryExpression/flare/query/BinaryExpressionComparison/flare/query/ComparisonCompositeExpression/flare/query/CompositeExpressionCount/flare/query/CountDateUtil/flare/query/DateUtilDistinct/flare/query/DistinctExpression/flare/query/ExpressionExpressionIterator/flare/query/ExpressionIteratorFn/flare/query/FnIf/flare/query/IfIsA/flare/query/IsALiteral/flare/query/LiteralMatch/flare/query/MatchMaximum/flare/query/Maximummethods/flare/query/methodsMinimum/flare/query/MinimumNot/flare/query/NotOr/flare/query/OrQuery/flare/query/QueryRange/flare/query/RangeStringUtil/flare/query/StringUtilSum/flare/query/SumVariable/flare/query/VariableVariance/flare/query/VarianceXor/flare/query/XorIScaleMap/flare/scale/IScaleMapLinearScale/flare/scale/LinearScaleLogScale/flare/scale/LogScaleOrdinalScale/flare/scale/OrdinalScaleQuantileScale/flare/scale/QuantileScaleQuantitativeScale/flare/scale/QuantitativeScaleRootScale/flare/scale/RootScaleScale/flare/scale/ScaleScaleType/flare/scale/ScaleTypeTimeScale/flare/scale/TimeScaleArrays/flare/util/ArraysColors/flare/util/ColorsDates/flare/util/DatesDisplays/flare/util/DisplaysFilter/flare/util/FilterGeometry/flare/util/Geometryheap/flare/util/heapIEvaluable/flare/util/IEvaluableIPredicate/flare/util/IPredicateIValueProxy/flare/util/IValueProxymath/flare/util/mathMaths/flare/util/MathsOrientation/flare/util/Orientationpalette/flare/util/paletteProperty/flare/util/PropertyShapes/flare/util/ShapesSort/flare/util/SortStats/flare/util/StatsStrings/flare/util/Stringsaxis/flare/vis/axiscontrols/flare/vis/controlsdata/flare/vis/dataevents/flare/vis/eventslegend/flare/vis/legendoperator/flare/vis/operatorVisualization/flare/vis/VisualizationAgglomerativeCluster/flare/analytics/cluster/AgglomerativeClusterCommunityStructure/flare/analytics/cluster/CommunityStructureHierarchicalCluster/flare/analytics/cluster/HierarchicalClusterMergeEdge/flare/analytics/cluster/MergeEdgeBetweennessCentrality/flare/analytics/graph/BetweennessCentralityLinkDistance/flare/analytics/graph/LinkDistanceMaxFlowMinCut/flare/analytics/graph/MaxFlowMinCutShortestPaths/flare/analytics/graph/ShortestPathsSpanningTree/flare/analytics/graph/SpanningTreeAspectRatioBanker/flare/analytics/optimization/AspectRatioBankerArrayInterpolator/flare/animate/interpolate/ArrayInterpolatorColorInterpolator/flare/animate/interpolate/ColorInterpolatorDateInterpolator/flare/animate/interpolate/DateInterpolatorInterpolator/flare/animate/interpolate/InterpolatorMatrixInterpolator/flare/animate/interpolate/MatrixInterpolatorNumberInterpolator/flare/animate/interpolate/NumberInterpolatorObjectInterpolator/flare/animate/interpolate/ObjectInterpolatorPointInterpolator/flare/animate/interpolate/PointInterpolatorRectangleInterpolator/flare/animate/interpolate/RectangleInterpolatorConverters/flare/data/converters/ConvertersDelimitedTextConverter/flare/data/converters/DelimitedTextConverterGraphMLConverter/flare/data/converters/GraphMLConverterIDataConverter/flare/data/converters/IDataConverterJSONConverter/flare/data/converters/JSONConverteradd/flare/query/methods/addand/flare/query/methods/andaverage/flare/query/methods/averagecount/flare/query/methods/countdistinct/flare/query/methods/distinctdiv/flare/query/methods/diveq/flare/query/methods/eqfn/flare/query/methods/fngt/flare/query/methods/gtgte/flare/query/methods/gteiff/flare/query/methods/iffisa/flare/query/methods/isalt/flare/query/methods/ltlte/flare/query/methods/ltemax/flare/query/methods/maxmin/flare/query/methods/minmod/flare/query/methods/modmul/flare/query/methods/mulneq/flare/query/methods/neqnot/flare/query/methods/notor/flare/query/methods/ororderby/flare/query/methods/orderbyrange/flare/query/methods/rangeselect/flare/query/methods/selectstddev/flare/query/methods/stddevsub/flare/query/methods/subsum/flare/query/methods/sumupdate/flare/query/methods/updatevariance/flare/query/methods/variancewhere/flare/query/methods/wherexor/flare/query/methods/xor_/flare/query/methods/_FibonacciHeap/flare/util/heap/FibonacciHeapHeapNode/flare/util/heap/HeapNodeDenseMatrix/flare/util/math/DenseMatrixIMatrix/flare/util/math/IMatrixSparseMatrix/flare/util/math/SparseMatrixColorPalette/flare/util/palette/ColorPalettePalette/flare/util/palette/PaletteShapePalette/flare/util/palette/ShapePaletteSizePalette/flare/util/palette/SizePaletteAxes/flare/vis/axis/AxesAxis/flare/vis/axis/AxisAxisGridLine/flare/vis/axis/AxisGridLineAxisLabel/flare/vis/axis/AxisLabelCartesianAxes/flare/vis/axis/CartesianAxesAnchorControl/flare/vis/controls/AnchorControlClickControl/flare/vis/controls/ClickControlControl/flare/vis/controls/ControlControlList/flare/vis/controls/ControlListDragControl/flare/vis/controls/DragControlExpandControl/flare/vis/controls/ExpandControlHoverControl/flare/vis/controls/HoverControlIControl/flare/vis/controls/IControlPanZoomControl/flare/vis/controls/PanZoomControlSelectionControl/flare/vis/controls/SelectionControlTooltipControl/flare/vis/controls/TooltipControlData/flare/vis/data/DataDataList/flare/vis/data/DataListDataSprite/flare/vis/data/DataSpriteEdgeSprite/flare/vis/data/EdgeSpriteNodeSprite/flare/vis/data/NodeSpriterender/flare/vis/data/renderScaleBinding/flare/vis/data/ScaleBindingTree/flare/vis/data/TreeTreeBuilder/flare/vis/data/TreeBuilderDataEvent/flare/vis/events/DataEventSelectionEvent/flare/vis/events/SelectionEventTooltipEvent/flare/vis/events/TooltipEventVisualizationEvent/flare/vis/events/VisualizationEventLegend/flare/vis/legend/LegendLegendItem/flare/vis/legend/LegendItemLegendRange/flare/vis/legend/LegendRangedistortion/flare/vis/operator/distortionencoder/flare/vis/operator/encoderfilter/flare/vis/operator/filterIOperator/flare/vis/operator/IOperatorlabel/flare/vis/operator/labellayout/flare/vis/operator/layoutOperator/flare/vis/operator/OperatorOperatorList/flare/vis/operator/OperatorListOperatorSequence/flare/vis/operator/OperatorSequenceOperatorSwitch/flare/vis/operator/OperatorSwitchSortOperator/flare/vis/operator/SortOperatorArrowType/flare/vis/data/render/ArrowTypeEdgeRenderer/flare/vis/data/render/EdgeRendererIRenderer/flare/vis/data/render/IRendererShapeRenderer/flare/vis/data/render/ShapeRendererBifocalDistortion/flare/vis/operator/distortion/BifocalDistortionDistortion/flare/vis/operator/distortion/DistortionFisheyeDistortion/flare/vis/operator/distortion/FisheyeDistortionColorEncoder/flare/vis/operator/encoder/ColorEncoderEncoder/flare/vis/operator/encoder/EncoderPropertyEncoder/flare/vis/operator/encoder/PropertyEncoderShapeEncoder/flare/vis/operator/encoder/ShapeEncoderSizeEncoder/flare/vis/operator/encoder/SizeEncoderFisheyeTreeFilter/flare/vis/operator/filter/FisheyeTreeFilterGraphDistanceFilter/flare/vis/operator/filter/GraphDistanceFilterVisibilityFilter/flare/vis/operator/filter/VisibilityFilterLabeler/flare/vis/operator/label/LabelerRadialLabeler/flare/vis/operator/label/RadialLabelerStackedAreaLabeler/flare/vis/operator/label/StackedAreaLabelerAxisLayout/flare/vis/operator/layout/AxisLayoutBundledEdgeRouter/flare/vis/operator/layout/BundledEdgeRouterCircleLayout/flare/vis/operator/layout/CircleLayoutCirclePackingLayout/flare/vis/operator/layout/CirclePackingLayoutDendrogramLayout/flare/vis/operator/layout/DendrogramLayoutForceDirectedLayout/flare/vis/operator/layout/ForceDirectedLayoutIcicleTreeLayout/flare/vis/operator/layout/IcicleTreeLayoutIndentedTreeLayout/flare/vis/operator/layout/IndentedTreeLayoutLayout/flare/vis/operator/layout/LayoutNodeLinkTreeLayout/flare/vis/operator/layout/NodeLinkTreeLayoutPieLayout/flare/vis/operator/layout/PieLayoutRadialTreeLayout/flare/vis/operator/layout/RadialTreeLayoutRandomLayout/flare/vis/operator/layout/RandomLayoutStackedAreaLayout/flare/vis/operator/layout/StackedAreaLayoutTreeMapLayout/flare/vis/operator/layout/TreeMapLayout
\ No newline at end of file
diff --git a/test/output/flareIndent.svg b/test/output/flareIndent.svg
index f26afd9d35..c21599c161 100644
--- a/test/output/flareIndent.svg
+++ b/test/output/flareIndent.svg
@@ -267,762 +267,511 @@
-
- /flare
-
-
- /flare/analytics
-
-
- /flare/animate
-
-
- /flare/data
-
-
- /flare/display
-
-
- /flare/flex
-
-
- /flare/physics
-
-
- /flare/query
-
-
- /flare/scale
-
-
- /flare/util
-
-
- /flare/vis
-
-
- /flare/analytics/cluster
-
-
- /flare/analytics/graph
-
-
- /flare/analytics/optimization
-
-
- /flare/animate/Easing
-
-
- /flare/animate/FunctionSequence
-
-
- /flare/animate/interpolate
-
-
- /flare/animate/ISchedulable
-
-
- /flare/animate/Parallel
-
-
- /flare/animate/Pause
-
-
- /flare/animate/Scheduler
-
-
- /flare/animate/Sequence
-
-
- /flare/animate/Transition
-
-
- /flare/animate/Transitioner
-
-
- /flare/animate/TransitionEvent
-
-
- /flare/animate/Tween
-
-
- /flare/data/converters
-
-
- /flare/data/DataField
-
-
- /flare/data/DataSchema
-
-
- /flare/data/DataSet
-
-
- /flare/data/DataSource
-
-
- /flare/data/DataTable
-
-
- /flare/data/DataUtil
-
-
- /flare/display/DirtySprite
-
-
- /flare/display/LineSprite
-
-
- /flare/display/RectSprite
-
-
- /flare/display/TextSprite
-
-
- /flare/flex/FlareVis
-
-
- /flare/physics/DragForce
-
-
- /flare/physics/GravityForce
-
-
- /flare/physics/IForce
-
-
- /flare/physics/NBodyForce
-
-
- /flare/physics/Particle
-
-
- /flare/physics/Simulation
-
-
- /flare/physics/Spring
-
-
- /flare/physics/SpringForce
-
-
- /flare/query/AggregateExpression
-
-
- /flare/query/And
-
-
- /flare/query/Arithmetic
-
-
- /flare/query/Average
-
-
- /flare/query/BinaryExpression
-
-
- /flare/query/Comparison
-
-
- /flare/query/CompositeExpression
-
-
- /flare/query/Count
-
-
- /flare/query/DateUtil
-
-
- /flare/query/Distinct
-
-
- /flare/query/Expression
-
-
- /flare/query/ExpressionIterator
-
-
- /flare/query/Fn
-
-
- /flare/query/If
-
-
- /flare/query/IsA
-
-
- /flare/query/Literal
-
-
- /flare/query/Match
-
-
- /flare/query/Maximum
-
-
- /flare/query/methods
-
-
- /flare/query/Minimum
-
-
- /flare/query/Not
-
-
- /flare/query/Or
-
-
- /flare/query/Query
-
-
- /flare/query/Range
-
-
- /flare/query/StringUtil
-
-
- /flare/query/Sum
-
-
- /flare/query/Variable
-
-
- /flare/query/Variance
-
-
- /flare/query/Xor
-
-
- /flare/scale/IScaleMap
-
-
- /flare/scale/LinearScale
-
-
- /flare/scale/LogScale
-
-
- /flare/scale/OrdinalScale
-
-
- /flare/scale/QuantileScale
-
-
- /flare/scale/QuantitativeScale
-
-
- /flare/scale/RootScale
-
-
- /flare/scale/Scale
-
-
- /flare/scale/ScaleType
-
-
- /flare/scale/TimeScale
-
-
- /flare/util/Arrays
-
-
- /flare/util/Colors
-
-
- /flare/util/Dates
-
-
- /flare/util/Displays
-
-
- /flare/util/Filter
-
-
- /flare/util/Geometry
-
-
- /flare/util/heap
-
-
- /flare/util/IEvaluable
-
-
- /flare/util/IPredicate
-
-
- /flare/util/IValueProxy
-
-
- /flare/util/math
-
-
- /flare/util/Maths
-
-
- /flare/util/Orientation
-
-
- /flare/util/palette
-
-
- /flare/util/Property
-
-
- /flare/util/Shapes
-
-
- /flare/util/Sort
-
-
- /flare/util/Stats
-
-
- /flare/util/Strings
-
-
- /flare/vis/axis
-
-
- /flare/vis/controls
-
-
- /flare/vis/data
-
-
- /flare/vis/events
-
-
- /flare/vis/legend
-
-
- /flare/vis/operator
-
-
- /flare/vis/Visualization
-
-
- /flare/analytics/cluster/AgglomerativeCluster
-
-
- /flare/analytics/cluster/CommunityStructure
-
-
- /flare/analytics/cluster/HierarchicalCluster
-
-
- /flare/analytics/cluster/MergeEdge
-
-
- /flare/analytics/graph/BetweennessCentrality
-
-
- /flare/analytics/graph/LinkDistance
-
-
- /flare/analytics/graph/MaxFlowMinCut
-
-
- /flare/analytics/graph/ShortestPaths
-
-
- /flare/analytics/graph/SpanningTree
-
-
- /flare/analytics/optimization/AspectRatioBanker
-
-
- /flare/animate/interpolate/ArrayInterpolator
-
-
- /flare/animate/interpolate/ColorInterpolator
-
-
- /flare/animate/interpolate/DateInterpolator
-
-
- /flare/animate/interpolate/Interpolator
-
-
- /flare/animate/interpolate/MatrixInterpolator
-
-
- /flare/animate/interpolate/NumberInterpolator
-
-
- /flare/animate/interpolate/ObjectInterpolator
-
-
- /flare/animate/interpolate/PointInterpolator
-
-
- /flare/animate/interpolate/RectangleInterpolator
-
-
- /flare/data/converters/Converters
-
-
- /flare/data/converters/DelimitedTextConverter
-
-
- /flare/data/converters/GraphMLConverter
-
-
- /flare/data/converters/IDataConverter
-
-
- /flare/data/converters/JSONConverter
-
-
- /flare/query/methods/add
-
-
- /flare/query/methods/and
-
-
- /flare/query/methods/average
-
-
- /flare/query/methods/count
-
-
- /flare/query/methods/distinct
-
-
- /flare/query/methods/div
-
-
- /flare/query/methods/eq
-
-
- /flare/query/methods/fn
-
-
- /flare/query/methods/gt
-
-
- /flare/query/methods/gte
-
-
- /flare/query/methods/iff
-
-
- /flare/query/methods/isa
-
-
- /flare/query/methods/lt
-
-
- /flare/query/methods/lte
-
-
- /flare/query/methods/max
-
-
- /flare/query/methods/min
-
-
- /flare/query/methods/mod
-
-
- /flare/query/methods/mul
-
-
- /flare/query/methods/neq
-
-
- /flare/query/methods/not
-
-
- /flare/query/methods/or
-
-
- /flare/query/methods/orderby
-
-
- /flare/query/methods/range
-
-
- /flare/query/methods/select
-
-
- /flare/query/methods/stddev
-
-
- /flare/query/methods/sub
-
-
- /flare/query/methods/sum
-
-
- /flare/query/methods/update
-
-
- /flare/query/methods/variance
-
-
- /flare/query/methods/where
-
-
- /flare/query/methods/xor
-
-
- /flare/query/methods/_
-
-
- /flare/util/heap/FibonacciHeap
-
-
- /flare/util/heap/HeapNode
-
-
- /flare/util/math/DenseMatrix
-
-
- /flare/util/math/IMatrix
-
-
- /flare/util/math/SparseMatrix
-
-
- /flare/util/palette/ColorPalette
-
-
- /flare/util/palette/Palette
-
-
- /flare/util/palette/ShapePalette
-
-
- /flare/util/palette/SizePalette
-
-
- /flare/vis/axis/Axes
-
-
- /flare/vis/axis/Axis
-
-
- /flare/vis/axis/AxisGridLine
-
-
- /flare/vis/axis/AxisLabel
-
-
- /flare/vis/axis/CartesianAxes
-
-
- /flare/vis/controls/AnchorControl
-
-
- /flare/vis/controls/ClickControl
-
-
- /flare/vis/controls/Control
-
-
- /flare/vis/controls/ControlList
-
-
- /flare/vis/controls/DragControl
-
-
- /flare/vis/controls/ExpandControl
-
-
- /flare/vis/controls/HoverControl
-
-
- /flare/vis/controls/IControl
-
-
- /flare/vis/controls/PanZoomControl
-
-
- /flare/vis/controls/SelectionControl
-
-
- /flare/vis/controls/TooltipControl
-
-
- /flare/vis/data/Data
-
-
- /flare/vis/data/DataList
-
-
- /flare/vis/data/DataSprite
-
-
- /flare/vis/data/EdgeSprite
-
-
- /flare/vis/data/NodeSprite
-
-
- /flare/vis/data/render
-
-
- /flare/vis/data/ScaleBinding
-
-
- /flare/vis/data/Tree
-
-
- /flare/vis/data/TreeBuilder
-
-
- /flare/vis/events/DataEvent
-
-
- /flare/vis/events/SelectionEvent
-
-
- /flare/vis/events/TooltipEvent
-
-
- /flare/vis/events/VisualizationEvent
-
-
- /flare/vis/legend/Legend
-
-
- /flare/vis/legend/LegendItem
-
-
- /flare/vis/legend/LegendRange
-
-
- /flare/vis/operator/distortion
-
-
- /flare/vis/operator/encoder
-
-
- /flare/vis/operator/filter
-
-
- /flare/vis/operator/IOperator
-
-
- /flare/vis/operator/label
-
-
- /flare/vis/operator/layout
-
-
- /flare/vis/operator/Operator
-
-
- /flare/vis/operator/OperatorList
-
-
- /flare/vis/operator/OperatorSequence
-
-
- /flare/vis/operator/OperatorSwitch
-
-
- /flare/vis/operator/SortOperator
-
-
- /flare/vis/data/render/ArrowType
-
-
- /flare/vis/data/render/EdgeRenderer
-
-
- /flare/vis/data/render/IRenderer
-
-
- /flare/vis/data/render/ShapeRenderer
-
-
- /flare/vis/operator/distortion/BifocalDistortion
-
-
- /flare/vis/operator/distortion/Distortion
-
-
- /flare/vis/operator/distortion/FisheyeDistortion
-
-
- /flare/vis/operator/encoder/ColorEncoder
-
-
- /flare/vis/operator/encoder/Encoder
-
-
- /flare/vis/operator/encoder/PropertyEncoder
-
-
- /flare/vis/operator/encoder/ShapeEncoder
-
-
- /flare/vis/operator/encoder/SizeEncoder
-
-
- /flare/vis/operator/filter/FisheyeTreeFilter
-
-
- /flare/vis/operator/filter/GraphDistanceFilter
-
-
- /flare/vis/operator/filter/VisibilityFilter
-
-
- /flare/vis/operator/label/Labeler
-
-
- /flare/vis/operator/label/RadialLabeler
-
-
- /flare/vis/operator/label/StackedAreaLabeler
-
-
- /flare/vis/operator/layout/AxisLayout
-
-
- /flare/vis/operator/layout/BundledEdgeRouter
-
-
- /flare/vis/operator/layout/CircleLayout
-
-
- /flare/vis/operator/layout/CirclePackingLayout
-
-
- /flare/vis/operator/layout/DendrogramLayout
-
-
- /flare/vis/operator/layout/ForceDirectedLayout
-
-
- /flare/vis/operator/layout/IcicleTreeLayout
-
-
- /flare/vis/operator/layout/IndentedTreeLayout
-
-
- /flare/vis/operator/layout/Layout
-
-
- /flare/vis/operator/layout/NodeLinkTreeLayout
-
-
- /flare/vis/operator/layout/PieLayout
-
-
- /flare/vis/operator/layout/RadialTreeLayout
-
-
- /flare/vis/operator/layout/RandomLayout
-
-
- /flare/vis/operator/layout/StackedAreaLayout
-
-
- /flare/vis/operator/layout/TreeMapLayout
-
+ /flare
+ /flare/analytics
+ /flare/animate
+ /flare/data
+ /flare/display
+ /flare/flex
+ /flare/physics
+ /flare/query
+ /flare/scale
+ /flare/util
+ /flare/vis
+ /flare/analytics/cluster
+ /flare/analytics/graph
+ /flare/analytics/optimization
+ /flare/animate/Easing
+ /flare/animate/FunctionSequence
+ /flare/animate/interpolate
+ /flare/animate/ISchedulable
+ /flare/animate/Parallel
+ /flare/animate/Pause
+ /flare/animate/Scheduler
+ /flare/animate/Sequence
+ /flare/animate/Transition
+ /flare/animate/Transitioner
+ /flare/animate/TransitionEvent
+ /flare/animate/Tween
+ /flare/data/converters
+ /flare/data/DataField
+ /flare/data/DataSchema
+ /flare/data/DataSet
+ /flare/data/DataSource
+ /flare/data/DataTable
+ /flare/data/DataUtil
+ /flare/display/DirtySprite
+ /flare/display/LineSprite
+ /flare/display/RectSprite
+ /flare/display/TextSprite
+ /flare/flex/FlareVis
+ /flare/physics/DragForce
+ /flare/physics/GravityForce
+ /flare/physics/IForce
+ /flare/physics/NBodyForce
+ /flare/physics/Particle
+ /flare/physics/Simulation
+ /flare/physics/Spring
+ /flare/physics/SpringForce
+ /flare/query/AggregateExpression
+ /flare/query/And
+ /flare/query/Arithmetic
+ /flare/query/Average
+ /flare/query/BinaryExpression
+ /flare/query/Comparison
+ /flare/query/CompositeExpression
+ /flare/query/Count
+ /flare/query/DateUtil
+ /flare/query/Distinct
+ /flare/query/Expression
+ /flare/query/ExpressionIterator
+ /flare/query/Fn
+ /flare/query/If
+ /flare/query/IsA
+ /flare/query/Literal
+ /flare/query/Match
+ /flare/query/Maximum
+ /flare/query/methods
+ /flare/query/Minimum
+ /flare/query/Not
+ /flare/query/Or
+ /flare/query/Query
+ /flare/query/Range
+ /flare/query/StringUtil
+ /flare/query/Sum
+ /flare/query/Variable
+ /flare/query/Variance
+ /flare/query/Xor
+ /flare/scale/IScaleMap
+ /flare/scale/LinearScale
+ /flare/scale/LogScale
+ /flare/scale/OrdinalScale
+ /flare/scale/QuantileScale
+ /flare/scale/QuantitativeScale
+ /flare/scale/RootScale
+ /flare/scale/Scale
+ /flare/scale/ScaleType
+ /flare/scale/TimeScale
+ /flare/util/Arrays
+ /flare/util/Colors
+ /flare/util/Dates
+ /flare/util/Displays
+ /flare/util/Filter
+ /flare/util/Geometry
+ /flare/util/heap
+ /flare/util/IEvaluable
+ /flare/util/IPredicate
+ /flare/util/IValueProxy
+ /flare/util/math
+ /flare/util/Maths
+ /flare/util/Orientation
+ /flare/util/palette
+ /flare/util/Property
+ /flare/util/Shapes
+ /flare/util/Sort
+ /flare/util/Stats
+ /flare/util/Strings
+ /flare/vis/axis
+ /flare/vis/controls
+ /flare/vis/data
+ /flare/vis/events
+ /flare/vis/legend
+ /flare/vis/operator
+ /flare/vis/Visualization
+ /flare/analytics/cluster/AgglomerativeCluster
+ /flare/analytics/cluster/CommunityStructure
+ /flare/analytics/cluster/HierarchicalCluster
+ /flare/analytics/cluster/MergeEdge
+ /flare/analytics/graph/BetweennessCentrality
+ /flare/analytics/graph/LinkDistance
+ /flare/analytics/graph/MaxFlowMinCut
+ /flare/analytics/graph/ShortestPaths
+ /flare/analytics/graph/SpanningTree
+ /flare/analytics/optimization/AspectRatioBanker
+ /flare/animate/interpolate/ArrayInterpolator
+ /flare/animate/interpolate/ColorInterpolator
+ /flare/animate/interpolate/DateInterpolator
+ /flare/animate/interpolate/Interpolator
+ /flare/animate/interpolate/MatrixInterpolator
+ /flare/animate/interpolate/NumberInterpolator
+ /flare/animate/interpolate/ObjectInterpolator
+ /flare/animate/interpolate/PointInterpolator
+ /flare/animate/interpolate/RectangleInterpolator
+ /flare/data/converters/Converters
+ /flare/data/converters/DelimitedTextConverter
+ /flare/data/converters/GraphMLConverter
+ /flare/data/converters/IDataConverter
+ /flare/data/converters/JSONConverter
+ /flare/query/methods/add
+ /flare/query/methods/and
+ /flare/query/methods/average
+ /flare/query/methods/count
+ /flare/query/methods/distinct
+ /flare/query/methods/div
+ /flare/query/methods/eq
+ /flare/query/methods/fn
+ /flare/query/methods/gt
+ /flare/query/methods/gte
+ /flare/query/methods/iff
+ /flare/query/methods/isa
+ /flare/query/methods/lt
+ /flare/query/methods/lte
+ /flare/query/methods/max
+ /flare/query/methods/min
+ /flare/query/methods/mod
+ /flare/query/methods/mul
+ /flare/query/methods/neq
+ /flare/query/methods/not
+ /flare/query/methods/or
+ /flare/query/methods/orderby
+ /flare/query/methods/range
+ /flare/query/methods/select
+ /flare/query/methods/stddev
+ /flare/query/methods/sub
+ /flare/query/methods/sum
+ /flare/query/methods/update
+ /flare/query/methods/variance
+ /flare/query/methods/where
+ /flare/query/methods/xor
+ /flare/query/methods/_
+ /flare/util/heap/FibonacciHeap
+ /flare/util/heap/HeapNode
+ /flare/util/math/DenseMatrix
+ /flare/util/math/IMatrix
+ /flare/util/math/SparseMatrix
+ /flare/util/palette/ColorPalette
+ /flare/util/palette/Palette
+ /flare/util/palette/ShapePalette
+ /flare/util/palette/SizePalette
+ /flare/vis/axis/Axes
+ /flare/vis/axis/Axis
+ /flare/vis/axis/AxisGridLine
+ /flare/vis/axis/AxisLabel
+ /flare/vis/axis/CartesianAxes
+ /flare/vis/controls/AnchorControl
+ /flare/vis/controls/ClickControl
+ /flare/vis/controls/Control
+ /flare/vis/controls/ControlList
+ /flare/vis/controls/DragControl
+ /flare/vis/controls/ExpandControl
+ /flare/vis/controls/HoverControl
+ /flare/vis/controls/IControl
+ /flare/vis/controls/PanZoomControl
+ /flare/vis/controls/SelectionControl
+ /flare/vis/controls/TooltipControl
+ /flare/vis/data/Data
+ /flare/vis/data/DataList
+ /flare/vis/data/DataSprite
+ /flare/vis/data/EdgeSprite
+ /flare/vis/data/NodeSprite
+ /flare/vis/data/render
+ /flare/vis/data/ScaleBinding
+ /flare/vis/data/Tree
+ /flare/vis/data/TreeBuilder
+ /flare/vis/events/DataEvent
+ /flare/vis/events/SelectionEvent
+ /flare/vis/events/TooltipEvent
+ /flare/vis/events/VisualizationEvent
+ /flare/vis/legend/Legend
+ /flare/vis/legend/LegendItem
+ /flare/vis/legend/LegendRange
+ /flare/vis/operator/distortion
+ /flare/vis/operator/encoder
+ /flare/vis/operator/filter
+ /flare/vis/operator/IOperator
+ /flare/vis/operator/label
+ /flare/vis/operator/layout
+ /flare/vis/operator/Operator
+ /flare/vis/operator/OperatorList
+ /flare/vis/operator/OperatorSequence
+ /flare/vis/operator/OperatorSwitch
+ /flare/vis/operator/SortOperator
+ /flare/vis/data/render/ArrowType
+ /flare/vis/data/render/EdgeRenderer
+ /flare/vis/data/render/IRenderer
+ /flare/vis/data/render/ShapeRenderer
+ /flare/vis/operator/distortion/BifocalDistortion
+ /flare/vis/operator/distortion/Distortion
+ /flare/vis/operator/distortion/FisheyeDistortion
+ /flare/vis/operator/encoder/ColorEncoder
+ /flare/vis/operator/encoder/Encoder
+ /flare/vis/operator/encoder/PropertyEncoder
+ /flare/vis/operator/encoder/ShapeEncoder
+ /flare/vis/operator/encoder/SizeEncoder
+ /flare/vis/operator/filter/FisheyeTreeFilter
+ /flare/vis/operator/filter/GraphDistanceFilter
+ /flare/vis/operator/filter/VisibilityFilter
+ /flare/vis/operator/label/Labeler
+ /flare/vis/operator/label/RadialLabeler
+ /flare/vis/operator/label/StackedAreaLabeler
+ /flare/vis/operator/layout/AxisLayout
+ /flare/vis/operator/layout/BundledEdgeRouter
+ /flare/vis/operator/layout/CircleLayout
+ /flare/vis/operator/layout/CirclePackingLayout
+ /flare/vis/operator/layout/DendrogramLayout
+ /flare/vis/operator/layout/ForceDirectedLayout
+ /flare/vis/operator/layout/IcicleTreeLayout
+ /flare/vis/operator/layout/IndentedTreeLayout
+ /flare/vis/operator/layout/Layout
+ /flare/vis/operator/layout/NodeLinkTreeLayout
+ /flare/vis/operator/layout/PieLayout
+ /flare/vis/operator/layout/RadialTreeLayout
+ /flare/vis/operator/layout/RandomLayout
+ /flare/vis/operator/layout/StackedAreaLayout
+ /flare/vis/operator/layout/TreeMapLayout
+
+
+ flare/flare
+ analytics/flare/analytics
+ animate/flare/animate
+ data/flare/data
+ display/flare/display
+ flex/flare/flex
+ physics/flare/physics
+ query/flare/query
+ scale/flare/scale
+ util/flare/util
+ vis/flare/vis
+ cluster/flare/analytics/cluster
+ graph/flare/analytics/graph
+ optimization/flare/analytics/optimization
+ Easing/flare/animate/Easing
+ FunctionSequence/flare/animate/FunctionSequence
+ interpolate/flare/animate/interpolate
+ ISchedulable/flare/animate/ISchedulable
+ Parallel/flare/animate/Parallel
+ Pause/flare/animate/Pause
+ Scheduler/flare/animate/Scheduler
+ Sequence/flare/animate/Sequence
+ Transition/flare/animate/Transition
+ Transitioner/flare/animate/Transitioner
+ TransitionEvent/flare/animate/TransitionEvent
+ Tween/flare/animate/Tween
+ converters/flare/data/converters
+ DataField/flare/data/DataField
+ DataSchema/flare/data/DataSchema
+ DataSet/flare/data/DataSet
+ DataSource/flare/data/DataSource
+ DataTable/flare/data/DataTable
+ DataUtil/flare/data/DataUtil
+ DirtySprite/flare/display/DirtySprite
+ LineSprite/flare/display/LineSprite
+ RectSprite/flare/display/RectSprite
+ TextSprite/flare/display/TextSprite
+ FlareVis/flare/flex/FlareVis
+ DragForce/flare/physics/DragForce
+ GravityForce/flare/physics/GravityForce
+ IForce/flare/physics/IForce
+ NBodyForce/flare/physics/NBodyForce
+ Particle/flare/physics/Particle
+ Simulation/flare/physics/Simulation
+ Spring/flare/physics/Spring
+ SpringForce/flare/physics/SpringForce
+ AggregateExpression/flare/query/AggregateExpression
+ And/flare/query/And
+ Arithmetic/flare/query/Arithmetic
+ Average/flare/query/Average
+ BinaryExpression/flare/query/BinaryExpression
+ Comparison/flare/query/Comparison
+ CompositeExpression/flare/query/CompositeExpression
+ Count/flare/query/Count
+ DateUtil/flare/query/DateUtil
+ Distinct/flare/query/Distinct
+ Expression/flare/query/Expression
+ ExpressionIterator/flare/query/ExpressionIterator
+ Fn/flare/query/Fn
+ If/flare/query/If
+ IsA/flare/query/IsA
+ Literal/flare/query/Literal
+ Match/flare/query/Match
+ Maximum/flare/query/Maximum
+ methods/flare/query/methods
+ Minimum/flare/query/Minimum
+ Not/flare/query/Not
+ Or/flare/query/Or
+ Query/flare/query/Query
+ Range/flare/query/Range
+ StringUtil/flare/query/StringUtil
+ Sum/flare/query/Sum
+ Variable/flare/query/Variable
+ Variance/flare/query/Variance
+ Xor/flare/query/Xor
+ IScaleMap/flare/scale/IScaleMap
+ LinearScale/flare/scale/LinearScale
+ LogScale/flare/scale/LogScale
+ OrdinalScale/flare/scale/OrdinalScale
+ QuantileScale/flare/scale/QuantileScale
+ QuantitativeScale/flare/scale/QuantitativeScale
+ RootScale/flare/scale/RootScale
+ Scale/flare/scale/Scale
+ ScaleType/flare/scale/ScaleType
+ TimeScale/flare/scale/TimeScale
+ Arrays/flare/util/Arrays
+ Colors/flare/util/Colors
+ Dates/flare/util/Dates
+ Displays/flare/util/Displays
+ Filter/flare/util/Filter
+ Geometry/flare/util/Geometry
+ heap/flare/util/heap
+ IEvaluable/flare/util/IEvaluable
+ IPredicate/flare/util/IPredicate
+ IValueProxy/flare/util/IValueProxy
+ math/flare/util/math
+ Maths/flare/util/Maths
+ Orientation/flare/util/Orientation
+ palette/flare/util/palette
+ Property/flare/util/Property
+ Shapes/flare/util/Shapes
+ Sort/flare/util/Sort
+ Stats/flare/util/Stats
+ Strings/flare/util/Strings
+ axis/flare/vis/axis
+ controls/flare/vis/controls
+ data/flare/vis/data
+ events/flare/vis/events
+ legend/flare/vis/legend
+ operator/flare/vis/operator
+ Visualization/flare/vis/Visualization
+ AgglomerativeCluster/flare/analytics/cluster/AgglomerativeCluster
+ CommunityStructure/flare/analytics/cluster/CommunityStructure
+ HierarchicalCluster/flare/analytics/cluster/HierarchicalCluster
+ MergeEdge/flare/analytics/cluster/MergeEdge
+ BetweennessCentrality/flare/analytics/graph/BetweennessCentrality
+ LinkDistance/flare/analytics/graph/LinkDistance
+ MaxFlowMinCut/flare/analytics/graph/MaxFlowMinCut
+ ShortestPaths/flare/analytics/graph/ShortestPaths
+ SpanningTree/flare/analytics/graph/SpanningTree
+ AspectRatioBanker/flare/analytics/optimization/AspectRatioBanker
+ ArrayInterpolator/flare/animate/interpolate/ArrayInterpolator
+ ColorInterpolator/flare/animate/interpolate/ColorInterpolator
+ DateInterpolator/flare/animate/interpolate/DateInterpolator
+ Interpolator/flare/animate/interpolate/Interpolator
+ MatrixInterpolator/flare/animate/interpolate/MatrixInterpolator
+ NumberInterpolator/flare/animate/interpolate/NumberInterpolator
+ ObjectInterpolator/flare/animate/interpolate/ObjectInterpolator
+ PointInterpolator/flare/animate/interpolate/PointInterpolator
+ RectangleInterpolator/flare/animate/interpolate/RectangleInterpolator
+ Converters/flare/data/converters/Converters
+ DelimitedTextConverter/flare/data/converters/DelimitedTextConverter
+ GraphMLConverter/flare/data/converters/GraphMLConverter
+ IDataConverter/flare/data/converters/IDataConverter
+ JSONConverter/flare/data/converters/JSONConverter
+ add/flare/query/methods/add
+ and/flare/query/methods/and
+ average/flare/query/methods/average
+ count/flare/query/methods/count
+ distinct/flare/query/methods/distinct
+ div/flare/query/methods/div
+ eq/flare/query/methods/eq
+ fn/flare/query/methods/fn
+ gt/flare/query/methods/gt
+ gte/flare/query/methods/gte
+ iff/flare/query/methods/iff
+ isa/flare/query/methods/isa
+ lt/flare/query/methods/lt
+ lte/flare/query/methods/lte
+ max/flare/query/methods/max
+ min/flare/query/methods/min
+ mod/flare/query/methods/mod
+ mul/flare/query/methods/mul
+ neq/flare/query/methods/neq
+ not/flare/query/methods/not
+ or/flare/query/methods/or
+ orderby/flare/query/methods/orderby
+ range/flare/query/methods/range
+ select/flare/query/methods/select
+ stddev/flare/query/methods/stddev
+ sub/flare/query/methods/sub
+ sum/flare/query/methods/sum
+ update/flare/query/methods/update
+ variance/flare/query/methods/variance
+ where/flare/query/methods/where
+ xor/flare/query/methods/xor
+ _/flare/query/methods/_
+ FibonacciHeap/flare/util/heap/FibonacciHeap
+ HeapNode/flare/util/heap/HeapNode
+ DenseMatrix/flare/util/math/DenseMatrix
+ IMatrix/flare/util/math/IMatrix
+ SparseMatrix/flare/util/math/SparseMatrix
+ ColorPalette/flare/util/palette/ColorPalette
+ Palette/flare/util/palette/Palette
+ ShapePalette/flare/util/palette/ShapePalette
+ SizePalette/flare/util/palette/SizePalette
+ Axes/flare/vis/axis/Axes
+ Axis/flare/vis/axis/Axis
+ AxisGridLine/flare/vis/axis/AxisGridLine
+ AxisLabel/flare/vis/axis/AxisLabel
+ CartesianAxes/flare/vis/axis/CartesianAxes
+ AnchorControl/flare/vis/controls/AnchorControl
+ ClickControl/flare/vis/controls/ClickControl
+ Control/flare/vis/controls/Control
+ ControlList/flare/vis/controls/ControlList
+ DragControl/flare/vis/controls/DragControl
+ ExpandControl/flare/vis/controls/ExpandControl
+ HoverControl/flare/vis/controls/HoverControl
+ IControl/flare/vis/controls/IControl
+ PanZoomControl/flare/vis/controls/PanZoomControl
+ SelectionControl/flare/vis/controls/SelectionControl
+ TooltipControl/flare/vis/controls/TooltipControl
+ Data/flare/vis/data/Data
+ DataList/flare/vis/data/DataList
+ DataSprite/flare/vis/data/DataSprite
+ EdgeSprite/flare/vis/data/EdgeSprite
+ NodeSprite/flare/vis/data/NodeSprite
+ render/flare/vis/data/render
+ ScaleBinding/flare/vis/data/ScaleBinding
+ Tree/flare/vis/data/Tree
+ TreeBuilder/flare/vis/data/TreeBuilder
+ DataEvent/flare/vis/events/DataEvent
+ SelectionEvent/flare/vis/events/SelectionEvent
+ TooltipEvent/flare/vis/events/TooltipEvent
+ VisualizationEvent/flare/vis/events/VisualizationEvent
+ Legend/flare/vis/legend/Legend
+ LegendItem/flare/vis/legend/LegendItem
+ LegendRange/flare/vis/legend/LegendRange
+ distortion/flare/vis/operator/distortion
+ encoder/flare/vis/operator/encoder
+ filter/flare/vis/operator/filter
+ IOperator/flare/vis/operator/IOperator
+ label/flare/vis/operator/label
+ layout/flare/vis/operator/layout
+ Operator/flare/vis/operator/Operator
+ OperatorList/flare/vis/operator/OperatorList
+ OperatorSequence/flare/vis/operator/OperatorSequence
+ OperatorSwitch/flare/vis/operator/OperatorSwitch
+ SortOperator/flare/vis/operator/SortOperator
+ ArrowType/flare/vis/data/render/ArrowType
+ EdgeRenderer/flare/vis/data/render/EdgeRenderer
+ IRenderer/flare/vis/data/render/IRenderer
+ ShapeRenderer/flare/vis/data/render/ShapeRenderer
+ BifocalDistortion/flare/vis/operator/distortion/BifocalDistortion
+ Distortion/flare/vis/operator/distortion/Distortion
+ FisheyeDistortion/flare/vis/operator/distortion/FisheyeDistortion
+ ColorEncoder/flare/vis/operator/encoder/ColorEncoder
+ Encoder/flare/vis/operator/encoder/Encoder
+ PropertyEncoder/flare/vis/operator/encoder/PropertyEncoder
+ ShapeEncoder/flare/vis/operator/encoder/ShapeEncoder
+ SizeEncoder/flare/vis/operator/encoder/SizeEncoder
+ FisheyeTreeFilter/flare/vis/operator/filter/FisheyeTreeFilter
+ GraphDistanceFilter/flare/vis/operator/filter/GraphDistanceFilter
+ VisibilityFilter/flare/vis/operator/filter/VisibilityFilter
+ Labeler/flare/vis/operator/label/Labeler
+ RadialLabeler/flare/vis/operator/label/RadialLabeler
+ StackedAreaLabeler/flare/vis/operator/label/StackedAreaLabeler
+ AxisLayout/flare/vis/operator/layout/AxisLayout
+ BundledEdgeRouter/flare/vis/operator/layout/BundledEdgeRouter
+ CircleLayout/flare/vis/operator/layout/CircleLayout
+ CirclePackingLayout/flare/vis/operator/layout/CirclePackingLayout
+ DendrogramLayout/flare/vis/operator/layout/DendrogramLayout
+ ForceDirectedLayout/flare/vis/operator/layout/ForceDirectedLayout
+ IcicleTreeLayout/flare/vis/operator/layout/IcicleTreeLayout
+ IndentedTreeLayout/flare/vis/operator/layout/IndentedTreeLayout
+ Layout/flare/vis/operator/layout/Layout
+ NodeLinkTreeLayout/flare/vis/operator/layout/NodeLinkTreeLayout
+ PieLayout/flare/vis/operator/layout/PieLayout
+ RadialTreeLayout/flare/vis/operator/layout/RadialTreeLayout
+ RandomLayout/flare/vis/operator/layout/RandomLayout
+ StackedAreaLayout/flare/vis/operator/layout/StackedAreaLayout
+ TreeMapLayout/flare/vis/operator/layout/TreeMapLayout
- flare/flareanalytics/flare/analyticsanimate/flare/animatedata/flare/datadisplay/flare/displayflex/flare/flexphysics/flare/physicsquery/flare/queryscale/flare/scaleutil/flare/utilvis/flare/viscluster/flare/analytics/clustergraph/flare/analytics/graphoptimization/flare/analytics/optimizationEasing/flare/animate/EasingFunctionSequence/flare/animate/FunctionSequenceinterpolate/flare/animate/interpolateISchedulable/flare/animate/ISchedulableParallel/flare/animate/ParallelPause/flare/animate/PauseScheduler/flare/animate/SchedulerSequence/flare/animate/SequenceTransition/flare/animate/TransitionTransitioner/flare/animate/TransitionerTransitionEvent/flare/animate/TransitionEventTween/flare/animate/Tweenconverters/flare/data/convertersDataField/flare/data/DataFieldDataSchema/flare/data/DataSchemaDataSet/flare/data/DataSetDataSource/flare/data/DataSourceDataTable/flare/data/DataTableDataUtil/flare/data/DataUtilDirtySprite/flare/display/DirtySpriteLineSprite/flare/display/LineSpriteRectSprite/flare/display/RectSpriteTextSprite/flare/display/TextSpriteFlareVis/flare/flex/FlareVisDragForce/flare/physics/DragForceGravityForce/flare/physics/GravityForceIForce/flare/physics/IForceNBodyForce/flare/physics/NBodyForceParticle/flare/physics/ParticleSimulation/flare/physics/SimulationSpring/flare/physics/SpringSpringForce/flare/physics/SpringForceAggregateExpression/flare/query/AggregateExpressionAnd/flare/query/AndArithmetic/flare/query/ArithmeticAverage/flare/query/AverageBinaryExpression/flare/query/BinaryExpressionComparison/flare/query/ComparisonCompositeExpression/flare/query/CompositeExpressionCount/flare/query/CountDateUtil/flare/query/DateUtilDistinct/flare/query/DistinctExpression/flare/query/ExpressionExpressionIterator/flare/query/ExpressionIteratorFn/flare/query/FnIf/flare/query/IfIsA/flare/query/IsALiteral/flare/query/LiteralMatch/flare/query/MatchMaximum/flare/query/Maximummethods/flare/query/methodsMinimum/flare/query/MinimumNot/flare/query/NotOr/flare/query/OrQuery/flare/query/QueryRange/flare/query/RangeStringUtil/flare/query/StringUtilSum/flare/query/SumVariable/flare/query/VariableVariance/flare/query/VarianceXor/flare/query/XorIScaleMap/flare/scale/IScaleMapLinearScale/flare/scale/LinearScaleLogScale/flare/scale/LogScaleOrdinalScale/flare/scale/OrdinalScaleQuantileScale/flare/scale/QuantileScaleQuantitativeScale/flare/scale/QuantitativeScaleRootScale/flare/scale/RootScaleScale/flare/scale/ScaleScaleType/flare/scale/ScaleTypeTimeScale/flare/scale/TimeScaleArrays/flare/util/ArraysColors/flare/util/ColorsDates/flare/util/DatesDisplays/flare/util/DisplaysFilter/flare/util/FilterGeometry/flare/util/Geometryheap/flare/util/heapIEvaluable/flare/util/IEvaluableIPredicate/flare/util/IPredicateIValueProxy/flare/util/IValueProxymath/flare/util/mathMaths/flare/util/MathsOrientation/flare/util/Orientationpalette/flare/util/paletteProperty/flare/util/PropertyShapes/flare/util/ShapesSort/flare/util/SortStats/flare/util/StatsStrings/flare/util/Stringsaxis/flare/vis/axiscontrols/flare/vis/controlsdata/flare/vis/dataevents/flare/vis/eventslegend/flare/vis/legendoperator/flare/vis/operatorVisualization/flare/vis/VisualizationAgglomerativeCluster/flare/analytics/cluster/AgglomerativeClusterCommunityStructure/flare/analytics/cluster/CommunityStructureHierarchicalCluster/flare/analytics/cluster/HierarchicalClusterMergeEdge/flare/analytics/cluster/MergeEdgeBetweennessCentrality/flare/analytics/graph/BetweennessCentralityLinkDistance/flare/analytics/graph/LinkDistanceMaxFlowMinCut/flare/analytics/graph/MaxFlowMinCutShortestPaths/flare/analytics/graph/ShortestPathsSpanningTree/flare/analytics/graph/SpanningTreeAspectRatioBanker/flare/analytics/optimization/AspectRatioBankerArrayInterpolator/flare/animate/interpolate/ArrayInterpolatorColorInterpolator/flare/animate/interpolate/ColorInterpolatorDateInterpolator/flare/animate/interpolate/DateInterpolatorInterpolator/flare/animate/interpolate/InterpolatorMatrixInterpolator/flare/animate/interpolate/MatrixInterpolatorNumberInterpolator/flare/animate/interpolate/NumberInterpolatorObjectInterpolator/flare/animate/interpolate/ObjectInterpolatorPointInterpolator/flare/animate/interpolate/PointInterpolatorRectangleInterpolator/flare/animate/interpolate/RectangleInterpolatorConverters/flare/data/converters/ConvertersDelimitedTextConverter/flare/data/converters/DelimitedTextConverterGraphMLConverter/flare/data/converters/GraphMLConverterIDataConverter/flare/data/converters/IDataConverterJSONConverter/flare/data/converters/JSONConverteradd/flare/query/methods/addand/flare/query/methods/andaverage/flare/query/methods/averagecount/flare/query/methods/countdistinct/flare/query/methods/distinctdiv/flare/query/methods/diveq/flare/query/methods/eqfn/flare/query/methods/fngt/flare/query/methods/gtgte/flare/query/methods/gteiff/flare/query/methods/iffisa/flare/query/methods/isalt/flare/query/methods/ltlte/flare/query/methods/ltemax/flare/query/methods/maxmin/flare/query/methods/minmod/flare/query/methods/modmul/flare/query/methods/mulneq/flare/query/methods/neqnot/flare/query/methods/notor/flare/query/methods/ororderby/flare/query/methods/orderbyrange/flare/query/methods/rangeselect/flare/query/methods/selectstddev/flare/query/methods/stddevsub/flare/query/methods/subsum/flare/query/methods/sumupdate/flare/query/methods/updatevariance/flare/query/methods/variancewhere/flare/query/methods/wherexor/flare/query/methods/xor_/flare/query/methods/_FibonacciHeap/flare/util/heap/FibonacciHeapHeapNode/flare/util/heap/HeapNodeDenseMatrix/flare/util/math/DenseMatrixIMatrix/flare/util/math/IMatrixSparseMatrix/flare/util/math/SparseMatrixColorPalette/flare/util/palette/ColorPalettePalette/flare/util/palette/PaletteShapePalette/flare/util/palette/ShapePaletteSizePalette/flare/util/palette/SizePaletteAxes/flare/vis/axis/AxesAxis/flare/vis/axis/AxisAxisGridLine/flare/vis/axis/AxisGridLineAxisLabel/flare/vis/axis/AxisLabelCartesianAxes/flare/vis/axis/CartesianAxesAnchorControl/flare/vis/controls/AnchorControlClickControl/flare/vis/controls/ClickControlControl/flare/vis/controls/ControlControlList/flare/vis/controls/ControlListDragControl/flare/vis/controls/DragControlExpandControl/flare/vis/controls/ExpandControlHoverControl/flare/vis/controls/HoverControlIControl/flare/vis/controls/IControlPanZoomControl/flare/vis/controls/PanZoomControlSelectionControl/flare/vis/controls/SelectionControlTooltipControl/flare/vis/controls/TooltipControlData/flare/vis/data/DataDataList/flare/vis/data/DataListDataSprite/flare/vis/data/DataSpriteEdgeSprite/flare/vis/data/EdgeSpriteNodeSprite/flare/vis/data/NodeSpriterender/flare/vis/data/renderScaleBinding/flare/vis/data/ScaleBindingTree/flare/vis/data/TreeTreeBuilder/flare/vis/data/TreeBuilderDataEvent/flare/vis/events/DataEventSelectionEvent/flare/vis/events/SelectionEventTooltipEvent/flare/vis/events/TooltipEventVisualizationEvent/flare/vis/events/VisualizationEventLegend/flare/vis/legend/LegendLegendItem/flare/vis/legend/LegendItemLegendRange/flare/vis/legend/LegendRangedistortion/flare/vis/operator/distortionencoder/flare/vis/operator/encoderfilter/flare/vis/operator/filterIOperator/flare/vis/operator/IOperatorlabel/flare/vis/operator/labellayout/flare/vis/operator/layoutOperator/flare/vis/operator/OperatorOperatorList/flare/vis/operator/OperatorListOperatorSequence/flare/vis/operator/OperatorSequenceOperatorSwitch/flare/vis/operator/OperatorSwitchSortOperator/flare/vis/operator/SortOperatorArrowType/flare/vis/data/render/ArrowTypeEdgeRenderer/flare/vis/data/render/EdgeRendererIRenderer/flare/vis/data/render/IRendererShapeRenderer/flare/vis/data/render/ShapeRendererBifocalDistortion/flare/vis/operator/distortion/BifocalDistortionDistortion/flare/vis/operator/distortion/DistortionFisheyeDistortion/flare/vis/operator/distortion/FisheyeDistortionColorEncoder/flare/vis/operator/encoder/ColorEncoderEncoder/flare/vis/operator/encoder/EncoderPropertyEncoder/flare/vis/operator/encoder/PropertyEncoderShapeEncoder/flare/vis/operator/encoder/ShapeEncoderSizeEncoder/flare/vis/operator/encoder/SizeEncoderFisheyeTreeFilter/flare/vis/operator/filter/FisheyeTreeFilterGraphDistanceFilter/flare/vis/operator/filter/GraphDistanceFilterVisibilityFilter/flare/vis/operator/filter/VisibilityFilterLabeler/flare/vis/operator/label/LabelerRadialLabeler/flare/vis/operator/label/RadialLabelerStackedAreaLabeler/flare/vis/operator/label/StackedAreaLabelerAxisLayout/flare/vis/operator/layout/AxisLayoutBundledEdgeRouter/flare/vis/operator/layout/BundledEdgeRouterCircleLayout/flare/vis/operator/layout/CircleLayoutCirclePackingLayout/flare/vis/operator/layout/CirclePackingLayoutDendrogramLayout/flare/vis/operator/layout/DendrogramLayoutForceDirectedLayout/flare/vis/operator/layout/ForceDirectedLayoutIcicleTreeLayout/flare/vis/operator/layout/IcicleTreeLayoutIndentedTreeLayout/flare/vis/operator/layout/IndentedTreeLayoutLayout/flare/vis/operator/layout/LayoutNodeLinkTreeLayout/flare/vis/operator/layout/NodeLinkTreeLayoutPieLayout/flare/vis/operator/layout/PieLayoutRadialTreeLayout/flare/vis/operator/layout/RadialTreeLayoutRandomLayout/flare/vis/operator/layout/RandomLayoutStackedAreaLayout/flare/vis/operator/layout/StackedAreaLayoutTreeMapLayout/flare/vis/operator/layout/TreeMapLayout
\ No newline at end of file
diff --git a/test/output/flareTree.svg b/test/output/flareTree.svg
index 2335808674..2d9271f72a 100644
--- a/test/output/flareTree.svg
+++ b/test/output/flareTree.svg
@@ -272,5 +272,258 @@
- flare/flareanalytics/flare/analyticsanimate/flare/animatedata/flare/datadisplay/flare/displayflex/flare/flexphysics/flare/physicsquery/flare/queryscale/flare/scaleutil/flare/utilvis/flare/viscluster/flare/analytics/clustergraph/flare/analytics/graphoptimization/flare/analytics/optimizationEasing/flare/animate/EasingFunctionSequence/flare/animate/FunctionSequenceinterpolate/flare/animate/interpolateISchedulable/flare/animate/ISchedulableParallel/flare/animate/ParallelPause/flare/animate/PauseScheduler/flare/animate/SchedulerSequence/flare/animate/SequenceTransition/flare/animate/TransitionTransitioner/flare/animate/TransitionerTransitionEvent/flare/animate/TransitionEventTween/flare/animate/Tweenconverters/flare/data/convertersDataField/flare/data/DataFieldDataSchema/flare/data/DataSchemaDataSet/flare/data/DataSetDataSource/flare/data/DataSourceDataTable/flare/data/DataTableDataUtil/flare/data/DataUtilDirtySprite/flare/display/DirtySpriteLineSprite/flare/display/LineSpriteRectSprite/flare/display/RectSpriteTextSprite/flare/display/TextSpriteFlareVis/flare/flex/FlareVisDragForce/flare/physics/DragForceGravityForce/flare/physics/GravityForceIForce/flare/physics/IForceNBodyForce/flare/physics/NBodyForceParticle/flare/physics/ParticleSimulation/flare/physics/SimulationSpring/flare/physics/SpringSpringForce/flare/physics/SpringForceAggregateExpression/flare/query/AggregateExpressionAnd/flare/query/AndArithmetic/flare/query/ArithmeticAverage/flare/query/AverageBinaryExpression/flare/query/BinaryExpressionComparison/flare/query/ComparisonCompositeExpression/flare/query/CompositeExpressionCount/flare/query/CountDateUtil/flare/query/DateUtilDistinct/flare/query/DistinctExpression/flare/query/ExpressionExpressionIterator/flare/query/ExpressionIteratorFn/flare/query/FnIf/flare/query/IfIsA/flare/query/IsALiteral/flare/query/LiteralMatch/flare/query/MatchMaximum/flare/query/Maximummethods/flare/query/methodsMinimum/flare/query/MinimumNot/flare/query/NotOr/flare/query/OrQuery/flare/query/QueryRange/flare/query/RangeStringUtil/flare/query/StringUtilSum/flare/query/SumVariable/flare/query/VariableVariance/flare/query/VarianceXor/flare/query/XorIScaleMap/flare/scale/IScaleMapLinearScale/flare/scale/LinearScaleLogScale/flare/scale/LogScaleOrdinalScale/flare/scale/OrdinalScaleQuantileScale/flare/scale/QuantileScaleQuantitativeScale/flare/scale/QuantitativeScaleRootScale/flare/scale/RootScaleScale/flare/scale/ScaleScaleType/flare/scale/ScaleTypeTimeScale/flare/scale/TimeScaleArrays/flare/util/ArraysColors/flare/util/ColorsDates/flare/util/DatesDisplays/flare/util/DisplaysFilter/flare/util/FilterGeometry/flare/util/Geometryheap/flare/util/heapIEvaluable/flare/util/IEvaluableIPredicate/flare/util/IPredicateIValueProxy/flare/util/IValueProxymath/flare/util/mathMaths/flare/util/MathsOrientation/flare/util/Orientationpalette/flare/util/paletteProperty/flare/util/PropertyShapes/flare/util/ShapesSort/flare/util/SortStats/flare/util/StatsStrings/flare/util/Stringsaxis/flare/vis/axiscontrols/flare/vis/controlsdata/flare/vis/dataevents/flare/vis/eventslegend/flare/vis/legendoperator/flare/vis/operatorVisualization/flare/vis/VisualizationAgglomerativeCluster/flare/analytics/cluster/AgglomerativeClusterCommunityStructure/flare/analytics/cluster/CommunityStructureHierarchicalCluster/flare/analytics/cluster/HierarchicalClusterMergeEdge/flare/analytics/cluster/MergeEdgeBetweennessCentrality/flare/analytics/graph/BetweennessCentralityLinkDistance/flare/analytics/graph/LinkDistanceMaxFlowMinCut/flare/analytics/graph/MaxFlowMinCutShortestPaths/flare/analytics/graph/ShortestPathsSpanningTree/flare/analytics/graph/SpanningTreeAspectRatioBanker/flare/analytics/optimization/AspectRatioBankerArrayInterpolator/flare/animate/interpolate/ArrayInterpolatorColorInterpolator/flare/animate/interpolate/ColorInterpolatorDateInterpolator/flare/animate/interpolate/DateInterpolatorInterpolator/flare/animate/interpolate/InterpolatorMatrixInterpolator/flare/animate/interpolate/MatrixInterpolatorNumberInterpolator/flare/animate/interpolate/NumberInterpolatorObjectInterpolator/flare/animate/interpolate/ObjectInterpolatorPointInterpolator/flare/animate/interpolate/PointInterpolatorRectangleInterpolator/flare/animate/interpolate/RectangleInterpolatorConverters/flare/data/converters/ConvertersDelimitedTextConverter/flare/data/converters/DelimitedTextConverterGraphMLConverter/flare/data/converters/GraphMLConverterIDataConverter/flare/data/converters/IDataConverterJSONConverter/flare/data/converters/JSONConverteradd/flare/query/methods/addand/flare/query/methods/andaverage/flare/query/methods/averagecount/flare/query/methods/countdistinct/flare/query/methods/distinctdiv/flare/query/methods/diveq/flare/query/methods/eqfn/flare/query/methods/fngt/flare/query/methods/gtgte/flare/query/methods/gteiff/flare/query/methods/iffisa/flare/query/methods/isalt/flare/query/methods/ltlte/flare/query/methods/ltemax/flare/query/methods/maxmin/flare/query/methods/minmod/flare/query/methods/modmul/flare/query/methods/mulneq/flare/query/methods/neqnot/flare/query/methods/notor/flare/query/methods/ororderby/flare/query/methods/orderbyrange/flare/query/methods/rangeselect/flare/query/methods/selectstddev/flare/query/methods/stddevsub/flare/query/methods/subsum/flare/query/methods/sumupdate/flare/query/methods/updatevariance/flare/query/methods/variancewhere/flare/query/methods/wherexor/flare/query/methods/xor_/flare/query/methods/_FibonacciHeap/flare/util/heap/FibonacciHeapHeapNode/flare/util/heap/HeapNodeDenseMatrix/flare/util/math/DenseMatrixIMatrix/flare/util/math/IMatrixSparseMatrix/flare/util/math/SparseMatrixColorPalette/flare/util/palette/ColorPalettePalette/flare/util/palette/PaletteShapePalette/flare/util/palette/ShapePaletteSizePalette/flare/util/palette/SizePaletteAxes/flare/vis/axis/AxesAxis/flare/vis/axis/AxisAxisGridLine/flare/vis/axis/AxisGridLineAxisLabel/flare/vis/axis/AxisLabelCartesianAxes/flare/vis/axis/CartesianAxesAnchorControl/flare/vis/controls/AnchorControlClickControl/flare/vis/controls/ClickControlControl/flare/vis/controls/ControlControlList/flare/vis/controls/ControlListDragControl/flare/vis/controls/DragControlExpandControl/flare/vis/controls/ExpandControlHoverControl/flare/vis/controls/HoverControlIControl/flare/vis/controls/IControlPanZoomControl/flare/vis/controls/PanZoomControlSelectionControl/flare/vis/controls/SelectionControlTooltipControl/flare/vis/controls/TooltipControlData/flare/vis/data/DataDataList/flare/vis/data/DataListDataSprite/flare/vis/data/DataSpriteEdgeSprite/flare/vis/data/EdgeSpriteNodeSprite/flare/vis/data/NodeSpriterender/flare/vis/data/renderScaleBinding/flare/vis/data/ScaleBindingTree/flare/vis/data/TreeTreeBuilder/flare/vis/data/TreeBuilderDataEvent/flare/vis/events/DataEventSelectionEvent/flare/vis/events/SelectionEventTooltipEvent/flare/vis/events/TooltipEventVisualizationEvent/flare/vis/events/VisualizationEventLegend/flare/vis/legend/LegendLegendItem/flare/vis/legend/LegendItemLegendRange/flare/vis/legend/LegendRangedistortion/flare/vis/operator/distortionencoder/flare/vis/operator/encoderfilter/flare/vis/operator/filterIOperator/flare/vis/operator/IOperatorlabel/flare/vis/operator/labellayout/flare/vis/operator/layoutOperator/flare/vis/operator/OperatorOperatorList/flare/vis/operator/OperatorListOperatorSequence/flare/vis/operator/OperatorSequenceOperatorSwitch/flare/vis/operator/OperatorSwitchSortOperator/flare/vis/operator/SortOperatorArrowType/flare/vis/data/render/ArrowTypeEdgeRenderer/flare/vis/data/render/EdgeRendererIRenderer/flare/vis/data/render/IRendererShapeRenderer/flare/vis/data/render/ShapeRendererBifocalDistortion/flare/vis/operator/distortion/BifocalDistortionDistortion/flare/vis/operator/distortion/DistortionFisheyeDistortion/flare/vis/operator/distortion/FisheyeDistortionColorEncoder/flare/vis/operator/encoder/ColorEncoderEncoder/flare/vis/operator/encoder/EncoderPropertyEncoder/flare/vis/operator/encoder/PropertyEncoderShapeEncoder/flare/vis/operator/encoder/ShapeEncoderSizeEncoder/flare/vis/operator/encoder/SizeEncoderFisheyeTreeFilter/flare/vis/operator/filter/FisheyeTreeFilterGraphDistanceFilter/flare/vis/operator/filter/GraphDistanceFilterVisibilityFilter/flare/vis/operator/filter/VisibilityFilterLabeler/flare/vis/operator/label/LabelerRadialLabeler/flare/vis/operator/label/RadialLabelerStackedAreaLabeler/flare/vis/operator/label/StackedAreaLabelerAxisLayout/flare/vis/operator/layout/AxisLayoutBundledEdgeRouter/flare/vis/operator/layout/BundledEdgeRouterCircleLayout/flare/vis/operator/layout/CircleLayoutCirclePackingLayout/flare/vis/operator/layout/CirclePackingLayoutDendrogramLayout/flare/vis/operator/layout/DendrogramLayoutForceDirectedLayout/flare/vis/operator/layout/ForceDirectedLayoutIcicleTreeLayout/flare/vis/operator/layout/IcicleTreeLayoutIndentedTreeLayout/flare/vis/operator/layout/IndentedTreeLayoutLayout/flare/vis/operator/layout/LayoutNodeLinkTreeLayout/flare/vis/operator/layout/NodeLinkTreeLayoutPieLayout/flare/vis/operator/layout/PieLayoutRadialTreeLayout/flare/vis/operator/layout/RadialTreeLayoutRandomLayout/flare/vis/operator/layout/RandomLayoutStackedAreaLayout/flare/vis/operator/layout/StackedAreaLayoutTreeMapLayout/flare/vis/operator/layout/TreeMapLayout
+
+ flare/flare
+ analytics/flare/analytics
+ animate/flare/animate
+ data/flare/data
+ display/flare/display
+ flex/flare/flex
+ physics/flare/physics
+ query/flare/query
+ scale/flare/scale
+ util/flare/util
+ vis/flare/vis
+ cluster/flare/analytics/cluster
+ graph/flare/analytics/graph
+ optimization/flare/analytics/optimization
+ Easing/flare/animate/Easing
+ FunctionSequence/flare/animate/FunctionSequence
+ interpolate/flare/animate/interpolate
+ ISchedulable/flare/animate/ISchedulable
+ Parallel/flare/animate/Parallel
+ Pause/flare/animate/Pause
+ Scheduler/flare/animate/Scheduler
+ Sequence/flare/animate/Sequence
+ Transition/flare/animate/Transition
+ Transitioner/flare/animate/Transitioner
+ TransitionEvent/flare/animate/TransitionEvent
+ Tween/flare/animate/Tween
+ converters/flare/data/converters
+ DataField/flare/data/DataField
+ DataSchema/flare/data/DataSchema
+ DataSet/flare/data/DataSet
+ DataSource/flare/data/DataSource
+ DataTable/flare/data/DataTable
+ DataUtil/flare/data/DataUtil
+ DirtySprite/flare/display/DirtySprite
+ LineSprite/flare/display/LineSprite
+ RectSprite/flare/display/RectSprite
+ TextSprite/flare/display/TextSprite
+ FlareVis/flare/flex/FlareVis
+ DragForce/flare/physics/DragForce
+ GravityForce/flare/physics/GravityForce
+ IForce/flare/physics/IForce
+ NBodyForce/flare/physics/NBodyForce
+ Particle/flare/physics/Particle
+ Simulation/flare/physics/Simulation
+ Spring/flare/physics/Spring
+ SpringForce/flare/physics/SpringForce
+ AggregateExpression/flare/query/AggregateExpression
+ And/flare/query/And
+ Arithmetic/flare/query/Arithmetic
+ Average/flare/query/Average
+ BinaryExpression/flare/query/BinaryExpression
+ Comparison/flare/query/Comparison
+ CompositeExpression/flare/query/CompositeExpression
+ Count/flare/query/Count
+ DateUtil/flare/query/DateUtil
+ Distinct/flare/query/Distinct
+ Expression/flare/query/Expression
+ ExpressionIterator/flare/query/ExpressionIterator
+ Fn/flare/query/Fn
+ If/flare/query/If
+ IsA/flare/query/IsA
+ Literal/flare/query/Literal
+ Match/flare/query/Match
+ Maximum/flare/query/Maximum
+ methods/flare/query/methods
+ Minimum/flare/query/Minimum
+ Not/flare/query/Not
+ Or/flare/query/Or
+ Query/flare/query/Query
+ Range/flare/query/Range
+ StringUtil/flare/query/StringUtil
+ Sum/flare/query/Sum
+ Variable/flare/query/Variable
+ Variance/flare/query/Variance
+ Xor/flare/query/Xor
+ IScaleMap/flare/scale/IScaleMap
+ LinearScale/flare/scale/LinearScale
+ LogScale/flare/scale/LogScale
+ OrdinalScale/flare/scale/OrdinalScale
+ QuantileScale/flare/scale/QuantileScale
+ QuantitativeScale/flare/scale/QuantitativeScale
+ RootScale/flare/scale/RootScale
+ Scale/flare/scale/Scale
+ ScaleType/flare/scale/ScaleType
+ TimeScale/flare/scale/TimeScale
+ Arrays/flare/util/Arrays
+ Colors/flare/util/Colors
+ Dates/flare/util/Dates
+ Displays/flare/util/Displays
+ Filter/flare/util/Filter
+ Geometry/flare/util/Geometry
+ heap/flare/util/heap
+ IEvaluable/flare/util/IEvaluable
+ IPredicate/flare/util/IPredicate
+ IValueProxy/flare/util/IValueProxy
+ math/flare/util/math
+ Maths/flare/util/Maths
+ Orientation/flare/util/Orientation
+ palette/flare/util/palette
+ Property/flare/util/Property
+ Shapes/flare/util/Shapes
+ Sort/flare/util/Sort
+ Stats/flare/util/Stats
+ Strings/flare/util/Strings
+ axis/flare/vis/axis
+ controls/flare/vis/controls
+ data/flare/vis/data
+ events/flare/vis/events
+ legend/flare/vis/legend
+ operator/flare/vis/operator
+ Visualization/flare/vis/Visualization
+ AgglomerativeCluster/flare/analytics/cluster/AgglomerativeCluster
+ CommunityStructure/flare/analytics/cluster/CommunityStructure
+ HierarchicalCluster/flare/analytics/cluster/HierarchicalCluster
+ MergeEdge/flare/analytics/cluster/MergeEdge
+ BetweennessCentrality/flare/analytics/graph/BetweennessCentrality
+ LinkDistance/flare/analytics/graph/LinkDistance
+ MaxFlowMinCut/flare/analytics/graph/MaxFlowMinCut
+ ShortestPaths/flare/analytics/graph/ShortestPaths
+ SpanningTree/flare/analytics/graph/SpanningTree
+ AspectRatioBanker/flare/analytics/optimization/AspectRatioBanker
+ ArrayInterpolator/flare/animate/interpolate/ArrayInterpolator
+ ColorInterpolator/flare/animate/interpolate/ColorInterpolator
+ DateInterpolator/flare/animate/interpolate/DateInterpolator
+ Interpolator/flare/animate/interpolate/Interpolator
+ MatrixInterpolator/flare/animate/interpolate/MatrixInterpolator
+ NumberInterpolator/flare/animate/interpolate/NumberInterpolator
+ ObjectInterpolator/flare/animate/interpolate/ObjectInterpolator
+ PointInterpolator/flare/animate/interpolate/PointInterpolator
+ RectangleInterpolator/flare/animate/interpolate/RectangleInterpolator
+ Converters/flare/data/converters/Converters
+ DelimitedTextConverter/flare/data/converters/DelimitedTextConverter
+ GraphMLConverter/flare/data/converters/GraphMLConverter
+ IDataConverter/flare/data/converters/IDataConverter
+ JSONConverter/flare/data/converters/JSONConverter
+ add/flare/query/methods/add
+ and/flare/query/methods/and
+ average/flare/query/methods/average
+ count/flare/query/methods/count
+ distinct/flare/query/methods/distinct
+ div/flare/query/methods/div
+ eq/flare/query/methods/eq
+ fn/flare/query/methods/fn
+ gt/flare/query/methods/gt
+ gte/flare/query/methods/gte
+ iff/flare/query/methods/iff
+ isa/flare/query/methods/isa
+ lt/flare/query/methods/lt
+ lte/flare/query/methods/lte
+ max/flare/query/methods/max
+ min/flare/query/methods/min
+ mod/flare/query/methods/mod
+ mul/flare/query/methods/mul
+ neq/flare/query/methods/neq
+ not/flare/query/methods/not
+ or/flare/query/methods/or
+ orderby/flare/query/methods/orderby
+ range/flare/query/methods/range
+ select/flare/query/methods/select
+ stddev/flare/query/methods/stddev
+ sub/flare/query/methods/sub
+ sum/flare/query/methods/sum
+ update/flare/query/methods/update
+ variance/flare/query/methods/variance
+ where/flare/query/methods/where
+ xor/flare/query/methods/xor
+ _/flare/query/methods/_
+ FibonacciHeap/flare/util/heap/FibonacciHeap
+ HeapNode/flare/util/heap/HeapNode
+ DenseMatrix/flare/util/math/DenseMatrix
+ IMatrix/flare/util/math/IMatrix
+ SparseMatrix/flare/util/math/SparseMatrix
+ ColorPalette/flare/util/palette/ColorPalette
+ Palette/flare/util/palette/Palette
+ ShapePalette/flare/util/palette/ShapePalette
+ SizePalette/flare/util/palette/SizePalette
+ Axes/flare/vis/axis/Axes
+ Axis/flare/vis/axis/Axis
+ AxisGridLine/flare/vis/axis/AxisGridLine
+ AxisLabel/flare/vis/axis/AxisLabel
+ CartesianAxes/flare/vis/axis/CartesianAxes
+ AnchorControl/flare/vis/controls/AnchorControl
+ ClickControl/flare/vis/controls/ClickControl
+ Control/flare/vis/controls/Control
+ ControlList/flare/vis/controls/ControlList
+ DragControl/flare/vis/controls/DragControl
+ ExpandControl/flare/vis/controls/ExpandControl
+ HoverControl/flare/vis/controls/HoverControl
+ IControl/flare/vis/controls/IControl
+ PanZoomControl/flare/vis/controls/PanZoomControl
+ SelectionControl/flare/vis/controls/SelectionControl
+ TooltipControl/flare/vis/controls/TooltipControl
+ Data/flare/vis/data/Data
+ DataList/flare/vis/data/DataList
+ DataSprite/flare/vis/data/DataSprite
+ EdgeSprite/flare/vis/data/EdgeSprite
+ NodeSprite/flare/vis/data/NodeSprite
+ render/flare/vis/data/render
+ ScaleBinding/flare/vis/data/ScaleBinding
+ Tree/flare/vis/data/Tree
+ TreeBuilder/flare/vis/data/TreeBuilder
+ DataEvent/flare/vis/events/DataEvent
+ SelectionEvent/flare/vis/events/SelectionEvent
+ TooltipEvent/flare/vis/events/TooltipEvent
+ VisualizationEvent/flare/vis/events/VisualizationEvent
+ Legend/flare/vis/legend/Legend
+ LegendItem/flare/vis/legend/LegendItem
+ LegendRange/flare/vis/legend/LegendRange
+ distortion/flare/vis/operator/distortion
+ encoder/flare/vis/operator/encoder
+ filter/flare/vis/operator/filter
+ IOperator/flare/vis/operator/IOperator
+ label/flare/vis/operator/label
+ layout/flare/vis/operator/layout
+ Operator/flare/vis/operator/Operator
+ OperatorList/flare/vis/operator/OperatorList
+ OperatorSequence/flare/vis/operator/OperatorSequence
+ OperatorSwitch/flare/vis/operator/OperatorSwitch
+ SortOperator/flare/vis/operator/SortOperator
+ ArrowType/flare/vis/data/render/ArrowType
+ EdgeRenderer/flare/vis/data/render/EdgeRenderer
+ IRenderer/flare/vis/data/render/IRenderer
+ ShapeRenderer/flare/vis/data/render/ShapeRenderer
+ BifocalDistortion/flare/vis/operator/distortion/BifocalDistortion
+ Distortion/flare/vis/operator/distortion/Distortion
+ FisheyeDistortion/flare/vis/operator/distortion/FisheyeDistortion
+ ColorEncoder/flare/vis/operator/encoder/ColorEncoder
+ Encoder/flare/vis/operator/encoder/Encoder
+ PropertyEncoder/flare/vis/operator/encoder/PropertyEncoder
+ ShapeEncoder/flare/vis/operator/encoder/ShapeEncoder
+ SizeEncoder/flare/vis/operator/encoder/SizeEncoder
+ FisheyeTreeFilter/flare/vis/operator/filter/FisheyeTreeFilter
+ GraphDistanceFilter/flare/vis/operator/filter/GraphDistanceFilter
+ VisibilityFilter/flare/vis/operator/filter/VisibilityFilter
+ Labeler/flare/vis/operator/label/Labeler
+ RadialLabeler/flare/vis/operator/label/RadialLabeler
+ StackedAreaLabeler/flare/vis/operator/label/StackedAreaLabeler
+ AxisLayout/flare/vis/operator/layout/AxisLayout
+ BundledEdgeRouter/flare/vis/operator/layout/BundledEdgeRouter
+ CircleLayout/flare/vis/operator/layout/CircleLayout
+ CirclePackingLayout/flare/vis/operator/layout/CirclePackingLayout
+ DendrogramLayout/flare/vis/operator/layout/DendrogramLayout
+ ForceDirectedLayout/flare/vis/operator/layout/ForceDirectedLayout
+ IcicleTreeLayout/flare/vis/operator/layout/IcicleTreeLayout
+ IndentedTreeLayout/flare/vis/operator/layout/IndentedTreeLayout
+ Layout/flare/vis/operator/layout/Layout
+ NodeLinkTreeLayout/flare/vis/operator/layout/NodeLinkTreeLayout
+ PieLayout/flare/vis/operator/layout/PieLayout
+ RadialTreeLayout/flare/vis/operator/layout/RadialTreeLayout
+ RandomLayout/flare/vis/operator/layout/RandomLayout
+ StackedAreaLayout/flare/vis/operator/layout/StackedAreaLayout
+ TreeMapLayout/flare/vis/operator/layout/TreeMapLayout
+
\ No newline at end of file
diff --git a/test/output/footballCoverage.svg b/test/output/footballCoverage.svg
index 05f2a4ee5f..f3e4902dec 100644
--- a/test/output/footballCoverage.svg
+++ b/test/output/footballCoverage.svg
@@ -13,332 +13,404 @@
white-space: pre;
}
-
-
- 0%
-
+
+
+ C2
-
- 5%
-
+
+
+
+
+
+
+
+
+
+
+
+
-
- 10%
-
+
+
+
+
+
+
+
+
+
+
+
+
-
- 15%
-
+
+ 0%
+ 5%
+ 10%
+ 15%
+ 20%
+ 25%
+ 30%
+ 35%
+ 40%
+ 45%
+ 50%
-
- 20%
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- 25%
-
+
+
+
+ C3
-
- 30%
-
+
+
+
+
+
+
+
+
+
+
+
+
-
- 35%
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- 40%
-
+
+
+
+ C4
-
- 45%
-
+
+
+
+
+
+
+
+
+
+
+
+
-
- 50%
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- C2
+
+
+ M0
-
- C3
+
+
+
+
+
+
+
+
+
+
+
+
-
- C4
-
-
- M0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- M1
+
+
+
+ M1
-
- M2
+
+
+
+
+
+
+
+
+
+
+
+
-
- T2
- coverage
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ M2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ T2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ coverage
+
\ No newline at end of file
diff --git a/test/output/fruitSales.svg b/test/output/fruitSales.svg
index 8120163833..ba70fb80a8 100644
--- a/test/output/fruitSales.svg
+++ b/test/output/fruitSales.svg
@@ -13,54 +13,46 @@
white-space: pre;
}
-
-
- bananas
-
-
- oranges
-
-
- grapes
-
-
- apples
-
+
+
+
+
+
-
-
- 0
-
-
- 2
-
-
- 4
-
-
- 6
-
-
- 8
-
-
- 10
-
-
- 12
-
-
- 14
-
-
- 16
-
-
- 18
-
-
- 20
- units →
+
+ bananas
+ oranges
+ grapes
+ apples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 2
+ 4
+ 6
+ 8
+ 10
+ 12
+ 14
+ 16
+ 18
+ 20
+
+
+ units →
diff --git a/test/output/fruitSalesDate.svg b/test/output/fruitSalesDate.svg
index 15a1aa5900..4425c34153 100644
--- a/test/output/fruitSalesDate.svg
+++ b/test/output/fruitSalesDate.svg
@@ -13,36 +13,37 @@
white-space: pre;
}
-
-
- 0
-
-
- 5
-
-
- 10
-
-
- 15
-
-
- 20
-
-
- 25
-
-
- 30
- ↑ units
-
-
-
- 2021-03-15
-
-
- 2021-03-16
- date
+
+
+
+
+
+
+
+
+
+
+ 0
+ 5
+ 10
+ 15
+ 20
+ 25
+ 30
+
+
+ ↑ units
+
+
+
+
+
+
+ 2021-03-15
+ 2021-03-16
+
+
+ date
@@ -53,5 +54,13 @@
- applesorangesgrapesapplesorangesgrapesbananas
+
+ apples
+ oranges
+ grapes
+ apples
+ oranges
+ grapes
+ bananas
+
\ No newline at end of file
diff --git a/test/output/functionContour.svg b/test/output/functionContour.svg
index d1d8ae818b..eeaac7e3c8 100644
--- a/test/output/functionContour.svg
+++ b/test/output/functionContour.svg
@@ -13,54 +13,43 @@
white-space: pre;
}
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
+
+
+
+
+
+
+
+
+
-
-
- 0
-
-
- 2
-
-
- 4
-
-
- 6
-
-
- 8
-
-
- 10
-
-
- 12
-
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 2
+ 4
+ 6
+ 8
+ 10
+ 12
diff --git a/test/output/functionContourFaceted.svg b/test/output/functionContourFaceted.svg
index 2cf41d5a2c..b6cf96d73e 100644
--- a/test/output/functionContourFaceted.svg
+++ b/test/output/functionContourFaceted.svg
@@ -13,148 +13,132 @@
white-space: pre;
}
-
-
- cos
-
-
- lin
-
-
-
-
- lin
-
-
- sin
-
-
-
-
- 0
-
-
- 2
-
-
- 4
-
-
- 6
-
-
- 8
-
-
- 10
-
-
- 12
+
+
+ lin
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 2
+ 4
+ 6
+ 8
+ 10
+ 12
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 0
-
-
- 2
-
-
- 4
-
-
- 6
-
-
- 8
-
-
- 10
-
-
- 12
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 2
+ 4
+ 6
+ 8
+ 10
+ 12
+
+
+
+
+
+
+
+ 0
+ 5
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 0
-
-
- 5
+
+
+ cos
-
- 10
+
+ sin
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 0
+
+
+ lin
-
- 5
+
+
+
+
-
- 10
+
+ 0
+ 5
+ 10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/output/functionContourFaceted2.svg b/test/output/functionContourFaceted2.svg
index 722b661a44..e2b7f44fd5 100644
--- a/test/output/functionContourFaceted2.svg
+++ b/test/output/functionContourFaceted2.svg
@@ -13,148 +13,132 @@
white-space: pre;
}
-
-
- cos
-
-
- lin
-
-
-
-
- lin
-
-
- sin
-
-
-
-
- 0
-
-
- 2
-
-
- 4
-
-
- 6
-
-
- 8
-
-
- 10
-
-
- 12
+
+
+ lin
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 2
+ 4
+ 6
+ 8
+ 10
+ 12
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 0
-
-
- 2
-
-
- 4
-
-
- 6
-
-
- 8
-
-
- 10
-
-
- 12
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 2
+ 4
+ 6
+ 8
+ 10
+ 12
+
+
+
+
+
+
+
+ 0
+ 5
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 0
-
-
- 5
+
+
+ cos
-
- 10
+
+ sin
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- 0
+
+
+ lin
-
- 5
+
+
+
+
-
- 10
+
+ 0
+ 5
+ 10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/output/gistempAnomaly.svg b/test/output/gistempAnomaly.svg
index 8817400f42..093eb9884c 100644
--- a/test/output/gistempAnomaly.svg
+++ b/test/output/gistempAnomaly.svg
@@ -13,70 +13,62 @@
white-space: pre;
}
-
-
-
- −0.6
-
-
-
- −0.4
-
-
-
- −0.2
-
-
-
- +0.0
-
-
-
- +0.2
-
-
-
- +0.4
-
-
-
- +0.6
-
-
-
- +0.8
-
-
-
- +1.0
-
-
-
- +1.2
- ↑ Temperature anomaly (°C)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ −0.6
+ −0.4
+ −0.2
+ +0.0
+ +0.2
+ +0.4
+ +0.6
+ +0.8
+ +1.0
+ +1.2
+
+
+ ↑ Temperature anomaly (°C)
+
+
+
+
+
+
+
+
+
-
-
- 1880
-
-
- 1900
-
-
- 1920
-
-
- 1940
-
-
- 1960
-
-
- 1980
-
-
- 2000
-
+
+ 1880
+ 1900
+ 1920
+ 1940
+ 1960
+ 1980
+ 2000
diff --git a/test/output/gistempAnomalyMoving.svg b/test/output/gistempAnomalyMoving.svg
index e127d2167a..57c2a4d765 100644
--- a/test/output/gistempAnomalyMoving.svg
+++ b/test/output/gistempAnomalyMoving.svg
@@ -13,70 +13,62 @@
white-space: pre;
}
-
-
-
- −0.6
-
-
-
- −0.4
-
-
-
- −0.2
-
-
-
- +0.0
-
-
-
- +0.2
-
-
-
- +0.4
-
-
-
- +0.6
-
-
-
- +0.8
-
-
-
- +1.0
-
-
-
- +1.2
- ↑ Temperature anomaly (°C)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ −0.6
+ −0.4
+ −0.2
+ +0.0
+ +0.2
+ +0.4
+ +0.6
+ +0.8
+ +1.0
+ +1.2
+
+
+ ↑ Temperature anomaly (°C)
+
+
+
+
+
+
+
+
+
-
-
- 1880
-
-
- 1900
-
-
- 1920
-
-
- 1940
-
-
- 1960
-
-
- 1980
-
-
- 2000
-
+
+ 1880
+ 1900
+ 1920
+ 1940
+ 1960
+ 1980
+ 2000
diff --git a/test/output/gistempAnomalyTransform.svg b/test/output/gistempAnomalyTransform.svg
index 18de62526f..504b9de015 100644
--- a/test/output/gistempAnomalyTransform.svg
+++ b/test/output/gistempAnomalyTransform.svg
@@ -13,58 +13,53 @@
white-space: pre;
}
-
-
-
- −1.0
-
-
-
- −0.5
-
-
-
- +0.0
-
-
-
- +0.5
-
-
-
- +1.0
-
-
-
- +1.5
-
-
-
- +2.0
- ↑ Temperature anomaly (°F)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ −1.0
+ −0.5
+ +0.0
+ +0.5
+ +1.0
+ +1.5
+ +2.0
+
+
+ ↑ Temperature anomaly (°F)
+
+
+
+
+
+
+
+
+
-
-
- 1880
-
-
- 1900
-
-
- 1920
-
-
- 1940
-
-
- 1960
-
-
- 1980
-
-
- 2000
-
+
+ 1880
+ 1900
+ 1920
+ 1940
+ 1960
+ 1980
+ 2000
diff --git a/test/output/googleTrendsRidgeline.svg b/test/output/googleTrendsRidgeline.svg
index 960267d91c..deb225ade6 100644
--- a/test/output/googleTrendsRidgeline.svg
+++ b/test/output/googleTrendsRidgeline.svg
@@ -13,940 +13,928 @@
white-space: pre;
}
-
-
- Australian bushfires
+
+
+ Australian bushfires
-
- Qasem Soleimani
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- Prince Harry, Meghan
+
+ 2020
+ February
+ March
+ April
+ May
+ June
+ July
+ August
+ September
+ October
+ November
+ December
-
- Brexit
-
-
- Impeachment
-
-
- Kobe Bryant
-
-
- Wuhan
-
-
- Nancy Pelosi
-
-
- Parasite
-
-
- Roger Stone
-
-
- Democratic primaries
-
-
- Love Is Blind
-
-
- Stock market
-
-
- Tom Hanks
-
-
- Trump coronavirus
-
-
- Locust
-
-
- Martial law
-
-
- Toilet paper
-
-
- Animal Crossing
-
-
- Anthony Fauci
-
-
- COVID-19
-
-
- Tiger King
-
-
- Zoom Video Communications
-
-
- Masks
-
-
- Stimulus check
-
-
- Sourdough
-
-
- The Last Dance
-
-
- Kim Jong-un
-
-
- Murder hornet
-
-
- SpaceX
-
-
- Black Lives Matter
-
-
- George Floyd
-
-
- Ghislaine Maxwell
-
-
- TikTok
-
-
- Taylor Swift
-
-
- Hydroxychloroquine
-
-
- John Lewis
-
-
- Regis Philbin
-
-
- William Barr
-
-
- Beirut explosion
-
-
- Kamala Harris
-
-
- QAnon
-
-
- Chadwick Boseman
-
-
- Hurricane Laura
-
-
- Jacob Blake
-
-
- Naomi Osaka
-
-
- Wildfires
-
-
- Hurricane Teddy
-
-
- Ruth Bader Ginsburg
-
-
- Breonna Taylor
-
-
- Presidential debates
-
-
- Proud Boys
-
-
- Eddie Van Halen
-
-
- Amy Coney Barrett
-
-
- Hunter Biden
-
-
- Absentee ballot
-
-
- Joe Biden
-
-
- Voter turnout
-
-
- Alex Trebek
-
-
- Electoral fraud
-
-
- Four seasons total landscaping
-
-
- Hurricane Iota
-
-
- Rudy Giuliani
-
-
- COVID-19 vaccine
-
-
-
-
- 2020
-
-
- February
-
-
- March
-
-
- April
-
-
- May
-
-
- June
-
-
- July
-
-
- August
-
-
- September
-
-
- October
-
-
- November
-
-
- December
-
-
-
-
+
-
+
-
+
-
+
+
+ Qasem Soleimani
+
-
+
-
+
-
+
-
+
+
+ Prince Harry, Meghan
+
-
+
-
+
-
+
-
+
+
+ Brexit
+
-
+
-
+
-
+
-
+
+
+ Impeachment
+
-
+
-
+
-
+
-
+
+
+ Kobe Bryant
+
-
+
-
+
-
+
-
+
+
+ Wuhan
+
-
+
-
+
-
+
-
+
+
+ Nancy Pelosi
+
-
+
-
+
-
+
-
+
+
+ Parasite
+
-
+
-
+
-
+
-
+
+
+ Roger Stone
+
-
+
-
+
-
+
-
+
+
+ Democratic primaries
+
-
+
-
+
-
+
-
+
+
+ Love Is Blind
+
-
+
-
+
-
+
-
+
+
+ Stock market
+
-
+
-
+
-
+
-
+
+
+ Tom Hanks
+
-
+
-
+
-
+
-
+
+
+