Skip to content

Instantly share code, notes, and snippets.

@micahstubbs
Last active September 30, 2016 00:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save micahstubbs/2e7c882e69aa10d9dc317b59baf64692 to your computer and use it in GitHub Desktop.
Save micahstubbs/2e7c882e69aa10d9dc317b59baf64692 to your computer and use it in GitHub Desktop.
Voronoi clipCells() end[1] null Example
license: MIT
border: no
height: 330
rawData.csv
rawData.html
prepareData.js
node_modules/
package.json
d3.js.modified

an effort at a minimal example of the Cannot read property '0' of null in clipCells() error message described in d3-voronoi github issue 16

this example renders the Voronoi example as expected, and does not reproduce the error.

strangely, when I pass the same data to d3.voronoi() inside my larger app elsewhere, I experience the error.

the code for the d3-voronoi-scatterplot chart plugin is at https://github.com/micahstubbs/d3-voronoi-scatterplot

function createEdge(left, right, v0, v1) {
var edge = [null, null];
var index = edges.length;
// index = edges.push(edge) - 1;
edges.push(edge);
edge.left = left;
edge.right = right;
if (v0) setEdgeEnd(edge, left, right, v0);
if (v1) setEdgeEnd(edge, right, left, v1);
cells[left.index].halfedges.push(index);
cells[right.index].halfedges.push(index);
return edge;
}
// https://github.com/micahstubbs/d3-voronoi-scatterplot Version 0.1.0. Copyright 2016 Contributors.
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3'), require('lodash')) :
typeof define === 'function' && define.amd ? define(['exports', 'd3', 'lodash'], factory) :
(factory((global.d3VoronoiScatterplot = global.d3VoronoiScatterplot || {}),global.d3,global._));
}(this, function (exports,d3,_) { 'use strict';
_ = 'default' in _ ? _['default'] : _;
function d3Tip () {
// Mappings to new version of d3
var d3$$ = {
select: d3.select,
event: function event() {
return d3.event;
},
selection: d3.selection,
functor: function functor(v) {
return typeof v === "function" ? v : function () {
return v;
};
}
};
var direction = d3_tip_direction,
offset = d3_tip_offset,
html = d3_tip_html,
node = initNode(),
svg = null,
point = null,
target = null,
parent = null;
function tip(vis) {
svg = getSVGNode(vis);
point = svg.createSVGPoint();
}
// Public - show the tooltip on the screen
//
// Returns a tip
tip.show = function () {
if (!parent) tip.parent(document.body);
var args = Array.prototype.slice.call(arguments);
// console.log('args from tip.show', args);
if (args[args.length - 1] instanceof SVGElement) target = args.pop();
var content = html.apply(this, args),
poffset = offset.apply(this, args),
dir = direction.apply(this, args),
nodel = getNodeEl(),
i = directions.length,
coords,
parentCoords = node.offsetParent.getBoundingClientRect();
nodel.html(content).style('position', 'absolute').style('opacity', 1).style('pointer-events', 'all');
while (i--) {
nodel.classed(directions[i], false);
}coords = direction_callbacks[dir].apply(this);
nodel.classed(dir, true).style('top', coords.top + poffset[0] - parentCoords.top + 'px').style('left', coords.left + poffset[1] - parentCoords.left + 'px');
// .style('top', (coords.top - parentCoords.top + 'px')
// .style('left', (coords.left - parentCoords.left) + 'px')
return tip;
};
// Public - hide the tooltip
//
// Returns a tip
tip.hide = function () {
var nodel = getNodeEl();
nodel.style('opacity', 0).style('pointer-events', 'none');
return tip;
};
// Public: Proxy attr calls to the d3 tip container. Sets or gets attribute value.
//
// n - name of the attribute
// v - value of the attribute
//
// Returns tip or attribute value
tip.attr = function (n, v) {
if (arguments.length < 2 && typeof n === 'string') {
return getNodeEl().attr(n);
} else {
var args = Array.prototype.slice.call(arguments);
d3$$.selection.prototype.attr.apply(getNodeEl(), args);
}
return tip;
};
// Public: Proxy style calls to the d3 tip container. Sets or gets a style value.
//
// n - name of the property
// v - value of the property
//
// Returns tip or style property value
tip.style = function (n, v) {
// debugger;
if (arguments.length < 2 && typeof n === 'string') {
return getNodeEl().style(n);
} else {
var args = Array.prototype.slice.call(arguments);
if (args.length === 1) {
var styles = args[0];
Object.keys(styles).forEach(function (key) {
d3$$.selection.prototype.style.apply(getNodeEl(), [key, styles[key]]);
});
}
}
return tip;
};
// Public: Sets or gets the parent of the tooltip element
//
// v - New parent for the tip
//
// Returns parent element or tip
tip.parent = function (v) {
if (!arguments.length) return parent;
parent = v || document.body;
// console.log('parent from tip.parent', parent);
parent.appendChild(node);
// Make sure offsetParent has a position so the tip can be
// based from it. Mainly a concern with <body>.
var offsetParent = d3$$.select(node.offsetParent);
if (offsetParent.style('position') === 'static') {
offsetParent.style('position', 'relative');
}
return tip;
};
// Public: Set or get the direction of the tooltip
//
// v - One of n(north), s(south), e(east), or w(west), nw(northwest),
// sw(southwest), ne(northeast) or se(southeast)
//
// Returns tip or direction
tip.direction = function (v) {
if (!arguments.length) return direction;
direction = v == null ? v : d3$$.functor(v);
return tip;
};
// Public: Sets or gets the offset of the tip
//
// v - Array of [x, y] offset
//
// Returns offset or
tip.offset = function (v) {
if (!arguments.length) return offset;
offset = v == null ? v : d3$$.functor(v);
return tip;
};
// Public: sets or gets the html value of the tooltip
//
// v - String value of the tip
//
// Returns html value or tip
tip.html = function (v) {
if (!arguments.length) return html;
html = v == null ? v : d3$$.functor(v);
return tip;
};
// Public: destroys the tooltip and removes it from the DOM
//
// Returns a tip
tip.destroy = function () {
if (node) {
getNodeEl().remove();
node = null;
}
return tip;
};
function d3_tip_direction() {
return 'n';
}
function d3_tip_offset() {
return [0, 0];
}
function d3_tip_html() {
return ' ';
}
var direction_callbacks = {
n: direction_n,
s: direction_s,
e: direction_e,
w: direction_w,
nw: direction_nw,
ne: direction_ne,
sw: direction_sw,
se: direction_se
};
var directions = Object.keys(direction_callbacks);
function direction_n() {
var bbox = getScreenBBox();
return {
top: bbox.n.y - node.offsetHeight,
left: bbox.n.x - node.offsetWidth / 2
};
}
function direction_s() {
var bbox = getScreenBBox();
return {
top: bbox.s.y,
left: bbox.s.x - node.offsetWidth / 2
};
}
function direction_e() {
var bbox = getScreenBBox();
return {
top: bbox.e.y - node.offsetHeight / 2,
left: bbox.e.x
};
}
function direction_w() {
var bbox = getScreenBBox();
return {
top: bbox.w.y - node.offsetHeight / 2,
left: bbox.w.x - node.offsetWidth
};
}
function direction_nw() {
var bbox = getScreenBBox();
return {
top: bbox.nw.y - node.offsetHeight,
left: bbox.nw.x - node.offsetWidth
};
}
function direction_ne() {
var bbox = getScreenBBox();
return {
top: bbox.ne.y - node.offsetHeight,
left: bbox.ne.x
};
}
function direction_sw() {
var bbox = getScreenBBox();
return {
top: bbox.sw.y,
left: bbox.sw.x - node.offsetWidth
};
}
function direction_se() {
var bbox = getScreenBBox();
return {
top: bbox.se.y,
left: bbox.e.x
};
}
function initNode() {
var node = d3$$.select(document.createElement('div'));
node.style('position', 'absolute').style('top', 0).style('opacity', 0).style('pointer-events', 'none').style('box-sizing', 'border-box');
return node.node();
}
function getSVGNode(el) {
el = el.node();
if (el.tagName.toLowerCase() === 'svg') return el;
return el.ownerSVGElement;
}
function getNodeEl() {
if (node === null) {
node = initNode();
// re-add node to DOM
document.body.appendChild(node);
};
return d3$$.select(node);
}
// Private - gets the screen coordinates of a shape
//
// Given a shape on the screen, will return an SVGPoint for the directions
// n(north), s(south), e(east), w(west), ne(northeast), se(southeast), nw(northwest),
// sw(southwest).
//
// +-+-+
// | |
// + +
// | |
// +-+-+
//
// Returns an Object {n, s, e, w, nw, sw, ne, se}
function getScreenBBox() {
var targetel = target || d3$$.event().target;
while ('undefined' === typeof targetel.getScreenCTM && 'undefined' === targetel.parentNode) {
targetel = targetel.parentNode;
}
var bbox = {},
matrix = targetel.getScreenCTM(),
tbbox = targetel.getBBox(),
width = tbbox.width,
height = tbbox.height,
x = tbbox.x,
y = tbbox.y;
point.x = x;
point.y = y;
bbox.nw = point.matrixTransform(matrix);
point.x += width;
bbox.ne = point.matrixTransform(matrix);
point.y += height;
bbox.se = point.matrixTransform(matrix);
point.x -= width;
bbox.sw = point.matrixTransform(matrix);
point.y -= height / 2;
bbox.w = point.matrixTransform(matrix);
point.x += width;
bbox.e = point.matrixTransform(matrix);
point.x -= width / 2;
point.y -= height / 2;
bbox.n = point.matrixTransform(matrix);
point.y += height;
bbox.s = point.matrixTransform(matrix);
return bbox;
}
return tip;
};
function tooltip(tooltipVariables) {
var tip = d3Tip().parent(document.getElementById('chart')).attr('class', 'd3-tip').html(function (d) {
// console.log('d from tooltip html function', d);
var allRows = '';
tooltipVariables.forEach(function (e) {
var currentValue = void 0;
if (typeof e.format !== 'undefined') {
if (e.type === 'time') {
// time formatting
var inputValue = new Date(Number(d.datum[e.name]));
// TODO: handle case where date values are strings
var currentFormat = d3.timeFormat(e.format);
currentValue = currentFormat(inputValue);
} else {
// number formatting
var _inputValue = Number(d.datum[e.name]);
var _currentFormat = d3.format(e.format);
currentValue = _currentFormat(_inputValue);
}
} else {
// no formatting
currentValue = d.datum[e.name];
}
var currentRow = '<span style=\'font-size: 11px; display: block; text-align: center;\'>' + e.name + ' ' + currentValue + '</span>';
allRows = allRows.concat(currentRow);
});
return '<div style=\'background-color: white; padding: 5px; border-radius: 6px;\n border-style: solid; border-color: #D1D1D1; border-width: 1px;\'>\n ' + allRows + '\n </div>';
});
return tip;
}
function d3DistanceLimitedVoronoi() {
/////// Internals ///////
var voronoi = d3.voronoi().extent([[-1e6, -1e6], [1e6, 1e6]]);
var limit = 20; // default limit
var context = null; // set it to render to a canvas' 2D context
function _distanceLimitedVoronoi(data) {
if (context != null) {
//renders into a Canvas
context.beginPath();
voronoi.polygons(data).forEach(function (cell) {
distanceLimitedCell(cell, limit, context);
});
return true;
} else {
//final viz is an SVG
return voronoi.polygons(data).map(function (cell) {
return {
path: distanceLimitedCell(cell, limit, d3.path()).toString(),
datum: cell.data
};
});
}
}
///////////////////////
///////// API /////////
///////////////////////
_distanceLimitedVoronoi.limit = function (_) {
if (!arguments.length) {
return limit;
}
if (typeof _ === "number") {
limit = Math.abs(_);
}
return _distanceLimitedVoronoi;
};
_distanceLimitedVoronoi.x = function (_) {
if (!arguments.length) {
return voronoi.x();
}
voronoi.x(_);
return _distanceLimitedVoronoi;
};
_distanceLimitedVoronoi.y = function (_) {
if (!arguments.length) {
return voronoi.y();
}
voronoi.y(_);
return _distanceLimitedVoronoi;
};
_distanceLimitedVoronoi.extent = function (_) {
if (!arguments.length) {
return voronoi.extent();
}
voronoi.extent(_);
return _distanceLimitedVoronoi;
};
//exposes the underlying d3.geom.voronoi
//eg. allows to code 'limitedVoronoi.voronoi().triangle(data)'
_distanceLimitedVoronoi.voronoi = function (_) {
if (!arguments.length) {
return voronoi;
}
voronoi = _;
return _distanceLimitedVoronoi;
};
_distanceLimitedVoronoi.context = function (_) {
if (!arguments.length) {
return context;
}
context = _;
return _distanceLimitedVoronoi;
};
///////////////////////
/////// Private ///////
///////////////////////
function distanceLimitedCell(cell, r, context) {
var seed = [voronoi.x()(cell.data), voronoi.y()(cell.data)];
if (allVertecesInsideMaxDistanceCircle(cell, seed, r)) {
context.moveTo(cell[0][0], cell[0][1]);
for (var j = 1, m = cell.length; j < m; ++j) {
context.lineTo(cell[j][0], cell[j][1]);
}
context.closePath();
return context;
} else {
var pathNotYetStarted = true;
var firstPointTooFar = pointTooFarFromSeed(cell[0], seed, r);
var p0TooFar = firstPointTooFar;
var p0, p1, intersections;
var openingArcPoint, lastClosingArcPoint;
var startAngle, endAngle;
//begin: loop through all segments to compute path
for (var iseg = 0; iseg < cell.length; iseg++) {
p0 = cell[iseg];
p1 = cell[(iseg + 1) % cell.length];
// compute intersections between segment and maxDistance circle
intersections = segmentCircleIntersections(p0, p1, seed, r);
// complete the path (with lines or arc) depending on:
// intersection count (0, 1, or 2)
// if the segment is the first to start the path
// if the first point of the segment is inside or outside of the maxDistance circle
if (intersections.length === 2) {
if (p0TooFar) {
if (pathNotYetStarted) {
pathNotYetStarted = false;
// entire path will finish with an arc
// store first intersection to close last arc
lastClosingArcPoint = intersections[0];
// init path at 1st intersection
context.moveTo(intersections[0][0], intersections[0][1]);
} else {
//draw arc until first intersection
startAngle = angle(seed, openingArcPoint);
endAngle = angle(seed, intersections[0]);
context.arc(seed[0], seed[1], r, startAngle, endAngle, 1);
}
// then line to 2nd intersection, then initiliaze an arc
context.lineTo(intersections[1][0], intersections[1][1]);
openingArcPoint = intersections[1];
} else {
// THIS CASE IS IMPOSSIBLE AND SHOULD NOT ARISE
console.error("What's the f**k");
}
} else if (intersections.length === 1) {
if (p0TooFar) {
if (pathNotYetStarted) {
pathNotYetStarted = false;
// entire path will finish with an arc
// store first intersection to close last arc
lastClosingArcPoint = intersections[0];
// init path at first intersection
context.moveTo(intersections[0][0], intersections[0][1]);
} else {
// draw an arc until intersection
startAngle = angle(seed, openingArcPoint);
endAngle = angle(seed, intersections[0]);
context.arc(seed[0], seed[1], r, startAngle, endAngle, 1);
}
// then line to next point (1st out, 2nd in)
context.lineTo(p1[0], p1[1]);
} else {
if (pathNotYetStarted) {
pathNotYetStarted = false;
// init path at p0
context.moveTo(p0[0], p0[1]);
}
// line to intersection, then initiliaze arc (1st in, 2nd out)
context.lineTo(intersections[0][0], intersections[0][1]);
openingArcPoint = intersections[0];
}
p0TooFar = !p0TooFar;
} else {
if (p0TooFar) {
// entire segment too far, nothing to do
true;
} else {
// entire segment in maxDistance
if (pathNotYetStarted) {
pathNotYetStarted = false;
// init path at p0
context.moveTo(p0[0], p0[1]);
}
// line to next point
context.lineTo(p1[0], p1[1]);
}
}
} //end: loop through all segments
if (pathNotYetStarted) {
// special case: no segment intersects the maxDistance circle
// cell perimeter is entirely outside the maxDistance circle
// path is the maxDistance circle
pathNotYetStarted = false;
context.moveTo(seed[0] + r, seed[1]);
context.arc(seed[0], seed[1], r, 0, 2 * Math.PI, false);
} else {
// if final segment ends with an opened arc, close it
if (firstPointTooFar) {
startAngle = angle(seed, openingArcPoint);
endAngle = angle(seed, lastClosingArcPoint);
context.arc(seed[0], seed[1], r, startAngle, endAngle, 1);
}
context.closePath();
}
return context;
}
function allVertecesInsideMaxDistanceCircle(cell, seed, r) {
var result = true;
var p;
for (var ip = 0; ip < cell.length; ip++) {
result = result && !pointTooFarFromSeed(cell[ip], seed, r);
}
return result;
}
function pointTooFarFromSeed(p, seed, r) {
return Math.pow(p[0] - seed[0], 2) + Math.pow(p[1] - seed[1], 2) > Math.pow(r, 2);
}
function angle(seed, p) {
var v = [p[0] - seed[0], p[1] - seed[1]];
// from http://stackoverflow.com/questions/2150050/finding-signed-angle-between-vectors, with v1 = horizontal radius = [seed[0]+r - seed[0], seed[0] - seed[0]]
return Math.atan2(v[1], v[0]);
}
}
function segmentCircleIntersections(A, B, C, r) {
/*
from http://stackoverflow.com/questions/1073336/circle-line-segment-collision-detection-algorithm
*/
var Ax = A[0],
Ay = A[1],
Bx = B[0],
By = B[1],
Cx = C[0],
Cy = C[1];
// compute the euclidean distance between A and B
var LAB = Math.sqrt(Math.pow(Bx - Ax, 2) + Math.pow(By - Ay, 2));
// compute the direction vector D from A to B
var Dx = (Bx - Ax) / LAB;
var Dy = (By - Ay) / LAB;
// Now the line equation is x = Dx*t + Ax, y = Dy*t + Ay with 0 <= t <= 1.
// compute the value t of the closest point to the circle center (Cx, Cy)
var t = Dx * (Cx - Ax) + Dy * (Cy - Ay);
// This is the projection of C on the line from A to B.
// compute the coordinates of the point E on line and closest to C
var Ex = t * Dx + Ax;
var Ey = t * Dy + Ay;
// compute the euclidean distance from E to C
var LEC = Math.sqrt(Math.pow(Ex - Cx, 2) + Math.pow(Ey - Cy, 2));
// test if the line intersects the circle
if (LEC < r) {
// compute distance from t to circle intersection point
var dt = Math.sqrt(Math.pow(r, 2) - Math.pow(LEC, 2));
var tF = t - dt; // t of first intersection point
var tG = t + dt; // t of second intersection point
var result = [];
if (tF > 0 && tF < LAB) {
// test if first intersection point in segment
// compute first intersection point
var Fx = (t - dt) * Dx + Ax;
var Fy = (t - dt) * Dy + Ay;
result.push([Fx, Fy]);
}
if (tG > 0 && tG < LAB) {
// test if second intersection point in segment
// compute second intersection point
var Gx = (t + dt) * Dx + Ax;
var Gy = (t + dt) * Dy + Ay;
result.push([Gx, Gy]);
}
return result;
} else {
// either (LEC === r), tangent point to circle is E
// or (LEC < r), line doesn't touch circle
// in both cases, returning nothing is OK
return [];
}
}
return _distanceLimitedVoronoi;
};
function drawVoronoiOverlay(selector, data, options) {
/*
Initiate the Voronoi function
Use the same variables of the data in the .x and .y as used
in the cx and cy of the circle call
The clip extent will make the boundaries end nicely along
the chart area instead of splitting up the entire SVG
(if you do not do this it would mean that you already see
a tooltip when your mouse is still in the axis area, which
is confusing)
*/
var xVariable = options.xVariable;
var yVariable = options.yVariable;
var xScale = options.xScale;
var yScale = options.yScale;
var width = options.width;
var height = options.height;
var tip = options.tip;
var idVariable = options.idVariable;
if (typeof idVariable === 'undefined') idVariable = 'id';
var xAccessor = function xAccessor(d) {
return xScale(d[xVariable]);
};
var yAccessor = function yAccessor(d) {
return yScale(d[yVariable]);
};
var limitedVoronoi = d3DistanceLimitedVoronoi().x(xAccessor).y(yAccessor).limit(50).extent([[0, 0], [width, height]]);
// console.log('data[0]', data[0]);
// console.log('data from drawVoronoiOverlay', data);
var xValues = data.map(function (d) {
return d[xVariable];
});
// console.log('current xVariable', xVariable);
// console.log('xValues', xValues);
var yValues = data.map(function (d) {
return d[yVariable];
});
// console.log('current yVariable', yVariable);
// console.log('yValues', yValues);
var limitedVoronoiCells = limitedVoronoi(data);
// remove any existing Voronoi overlay
selector.selectAll('.voronoiWrapper').remove();
// create a group element to place the Voronoi diagram in
var limitedVoronoiGroup = selector.append('g').attr('class', 'voronoiWrapper');
// Create the distance-limited Voronoi diagram
limitedVoronoiGroup.selectAll('path').data(limitedVoronoiCells) // Use Voronoi() with your dataset inside
.enter().append('path')
// .attr("d", function(d, i) { return "M" + d.join("L") + "Z"; })
.attr('d', function (d) {
// console.log('d from limitedVoronoiGroup', d);
if (typeof d !== 'undefined') {
return d.path;
}
return '';
})
// Give each cell a unique class where the unique part corresponds to the circle classes
// .attr('class', d => `voronoi ${d.datum[idVariable]}`)
.attr('class', function (d) {
if (typeof d !== 'undefined') {
if (typeof d.datum[idVariable] !== 'undefined') {
return 'voronoi id' + xVariable + yVariable + d.datum[idVariable];
}
return 'voronoi id' + xVariable + yVariable + d[idVariable];
}
return 'voronoi';
}).style('stroke', 'lightblue') // I use this to look at how the cells are dispersed as a check
// .style('stroke', 'none')
.style('fill', 'none').style('pointer-events', 'all')
// .on('mouseover', tip.show)
// .on('mouseout', tip.hide);
.on('mouseover', function (d, i, nodes) {
// console.log('d from mouseover', d);
// console.log('i from mouseover', i);
// console.log('nodes from mouseover', nodes);
// console.log('this from mouseover', this);
showTooltip(d, i, nodes);
}).on('mouseout', function (d, i, nodes) {
// console.log('this from mouseout', this);
removeTooltip(d, i, nodes);
});
// Show the tooltip on the hovered over circle
function showTooltip(d, i, nodes) {
// Save the circle element (so not the voronoi which is triggering the hover event)
// in a variable by using the unique class of the voronoi (idVariable)
var elementSelector = void 0;
if (typeof d.datum[idVariable] !== 'undefined') {
elementSelector = '.marks.id' + xVariable + yVariable + d.datum[idVariable];
} else {
elementSelector = '.marks.id' + xVariable + yVariable + d[idVariable];
}
// console.log('elementSelector', elementSelector);
var element = void 0;
if (typeof d.datum[idVariable] !== 'undefined') {
element = d3.selectAll('.marks.id' + xVariable + yVariable + d.datum[idVariable]);
} else {
element = d3.selectAll('.marks.id' + xVariable + yVariable + d[idVariable]);
}
// console.log('element from showTooltip', element);
// console.log('d from showTooltip', d);
var pathStartX = Number(d.path.split('M')[1].split(',')[0]);
var pathStartY = Number(d.path.split(',')[1].split('L')[0]);
// console.log('pathStartX', pathStartX);
// console.log('pathStartY', pathStartY);
// console.log('element.nodes()[0] from showTooltip', element.nodes()[0]);
var currentDOMNode = element.nodes()[0];
var cx = currentDOMNode.cx.baseVal.value;
var cy = currentDOMNode.cy.baseVal.value;
tip.show(d, i, nodes);
// const tipTop = tip.style('top');
// const tipLeft = tip.style('left');
// const tipTopValue = Number(tipTop.slice(0, -2));
// const tipLeftValue = Number(tipLeft.slice(0, -2));
// const offsetX = tipLeftValue - cx;
// const offsetY = tipTopValue - cy;
var offsetX = 0; // pathStartX + (pathStartX - cx);
var offsetY = pathStartY + (pathStartY - cy);
// console.log('cx', cx);
// console.log('tipLeft', tipLeft);
// console.log('tipLeftValue', tipLeftValue);
// console.log('calculated offsetX', offsetX);
// console.log('cy', cy);
// console.log('tipTop', tipTop);
// console.log('tipTopValue', tipTopValue);
// console.log('calculated offsetY', offsetY);
// tip.offset([offsetX,offsetY]);
// tip.offset([150, 150]);
// Make chosen circle more visible
element.style('fill-opacity', 1);
} // function showTooltip
// Hide the tooltip when the mouse moves away
function removeTooltip(d, i, nodes) {
// Save the circle element (so not the voronoi which is triggering the hover event)
// in a variable by using the unique class of the voronoi (idVariable)
var element = void 0;
if (typeof d.datum[idVariable] !== 'undefined') {
element = d3.selectAll('.marks.id' + xVariable + yVariable + d.datum[idVariable]);
} else {
element = d3.selectAll('.marks.id' + xVariable + yVariable + d[idVariable]);
}
// console.log('element from removeTooltip', element);
// console.log('element.nodes()[0] from removeTooltip', element.nodes()[0]);
var currentDOMNode = element.nodes()[0];
tip.hide(d, i, nodes);
// Fade out the bright circle again
element.style('fill-opacity', 0.3);
} // function removeTooltip
}
function drawVoronoiScatterplot(selector, inputData, options) {
//
// Set-up
//
// vanilla JS window width and height
var wV = window;
var dV = document;
var eV = dV.documentElement;
var gV = dV.getElementsByTagName('body')[0];
var xV = wV.innerWidth || eV.clientWidth || gV.clientWidth;
var yV = wV.innerHeight || eV.clientHeight || gV.clientHeight;
// Quick fix for resizing some things for mobile-ish viewers
var mobileScreen = xV < 500;
// set default configuration
var cfg = {
margin: { left: 120, top: 20, right: 80, bottom: 20 },
width: 1000,
animateFromXAxis: undefined,
hideXLabel: undefined,
yVariable: 'y',
idVariable: undefined,
marks: {
r: 2,
fillOpacity: 0.3
}
};
// Put all of the options into a variable called cfg
if (typeof options !== 'undefined') {
for (var i in options) {
if (typeof options[i] !== 'undefined') {
cfg[i] = options[i];
}
} // for i
} // if
// console.log('options passed in to scatterplot', options);
// console.log('cfg from scatterplot', cfg);
// map variables to our dataset
var xVariable = cfg.xVariable;
var yVariable = cfg.yVariable;
var rVariable = undefined;
var idVariable = cfg.idVariable;
var groupByVariable = cfg.groupByVariable;
var wrapperId = cfg.wrapperId;
var wrapperLabel = cfg.wrapperLabel;
var tooltipVariables = cfg.tooltipColumns;
var numericVariables = cfg.numericColumns;
var xLabelDetail = cfg.xLabelDetail;
var hideXLabel = cfg.hideXLabel;
var xLabelTransform = cfg.xLabelTransform;
var yLabelTransform = cfg.yLabelTransform;
var dependent = cfg.dependent;
var globalExtents = cfg.globalExtents;
var animateFromXAxis = cfg.animateFromXAxis;
var opacityCircles = cfg.marks.fillOpacity;
var marksRadius = cfg.marks.r;
var dynamicWidth = cfg.dynamicWidth;
// labels
var xLabel = cfg.xLabel || xVariable;
if (typeof xLabelDetail !== 'undefined') {
xLabel = xLabel + ' (' + xLabelDetail + ')';
}
var yLabel = cfg.yLabel || yVariable;;
// const xLabel = 'y\u{0302}'; // y-hat for the prediction
// const yLabel = 'r\u{0302}'; // r-hat for the residual
var div = d3.select(selector).append('div').attr('id', 'chart');
// Scatterplot
var margin = cfg.margin;
var chartWidth = document.getElementById('chart').offsetWidth;
var height = cfg.width * 0.25;
// const maxDistanceFromPoint = 50;
var width = void 0;
if (typeof dynamicWidth !== 'undefined') {
// use a dynamic width derived from the window width
width = chartWidth - margin.left - margin.right;
} else {
// use width specified in the options passed in
width = cfg.width - margin.left - margin.right;
}
var svg = div.append('svg').attr('width', width + margin.left + margin.right).attr('height', height + margin.top + margin.bottom);
var wrapper = svg.append('g').classed('chartWrapper', true).classed('' + xVariable, true).attr('transform', 'translate(' + margin.left + ', ' + margin.top + ')');
if (typeof dependent !== 'undefined') {
svg.classed('dependent', true);
wrapper.classed('dependent', true);
wrapper.attr('id', wrapperId);
// draw model label
wrapper.append('g').attr('transform', 'translate(' + 20 + ', ' + 45 + ')').append('text').classed('modelLabel', true).style('font-size', '40px').style('font-weight', 400).style('opacity', 0.15).style('fill', 'gray').style('font-family', 'Work Sans, sans-serif').text('' + wrapperLabel);
} else {
svg.classed('independent', true);
wrapper.classed('independent', true);
wrapper.attr('id', wrapperId);
}
//
// Initialize Axes & Scales
//
// Set the color for each region
var color = d3.scaleOrdinal().range(['#1f78b4', '#ff7f00', '#33a02c', '#e31a1c', '#6a3d9a', '#b15928', '#a6cee3', '#fdbf6f', '#b2df8a', '#fb9a99', '#cab2d6', '#ffff99']);
// parse strings to numbers
var data = _.cloneDeep(inputData);
// console.log('data from scatterplot', data);
data.forEach(function (d, i) {
numericVariables.forEach(function (e) {
d[e] = Number(d[e]);
});
if (typeof idVariable === 'undefined') {
data[i].id = '' + i;
}
});
if (typeof idVariable === 'undefined') idVariable = 'id';
// console.log('data from drawVoronoiScatterplot', data);
//
// Scales
//
// Set the new x axis range
var xScale = d3.scaleLinear().range([0, width]);
// Set the new y axis range
var yScale = d3.scaleLinear().range([height, 0]);
if (typeof globalExtents !== 'undefined') {
// retrieve global extents
var xExtent = globalExtents[0];
var yExtent = globalExtents[1];
// set scale domains with global extents
xScale.domain(xExtent);
yScale.domain(yExtent).nice();
} else {
// set scale domains from the local extent
xScale.domain(d3.extent(data, function (d) {
return d[xVariable];
}));
// .nice();
yScale.domain(d3.extent(data, function (d) {
return d[yVariable];
})).nice();
}
// console.log('yScale.domain()', yScale.domain());
//
// Axes
//
// Set new x-axis
var xAxis = d3.axisBottom().ticks(4).tickSizeOuter(0)
// .tickFormat(d => // Difficult function to create better ticks
// xScale.tickFormat((mobileScreen ? 4 : 8), e => {
// const prefix = d3.format(',.0s');
// return `${prefix(e)}`;
// })(d))
.scale(xScale);
// calculate y-position we'd like for the x-axis
var xAxisYTranslate = d3.max([0, yScale.domain()[0]]);
// Append the x-axis
wrapper.append('g').attr('class', 'x axis').attr('transform', 'translate(' + 0 + ', ' + yScale(xAxisYTranslate) + ')').call(xAxis);
var yAxis = d3.axisLeft().ticks(6) // Set rough # of ticks
.scale(yScale);
// Append the y-axis
wrapper.append('g').attr('class', 'y axis').attr('transform', 'translate(' + 0 + ', ' + 0 + ')').call(yAxis);
// Scale for the bubble size
if (typeof rVariable !== 'undefined') {
var _rScale = d3.scaleSqrt().range([mobileScreen ? 1 : 2, mobileScreen ? 10 : 16]).domain(d3.extent(data, function (d) {
return d[rVariable];
}));
}
//
// Tooltips
//
var tip = tooltip(tooltipVariables);
svg.call(tip);
//
// Scatterplot Circles
//
// Initiate a group element for the circles
var circleGroup = wrapper.append('g').attr('class', 'circleWrapper');
function update(data, options) {
console.log('update function was called');
// console.log('data from update function', data);
// handle NaN values
data = data.filter(function (d) {
return !Number.isNaN(d[xVariable]) && !Number.isNaN(d[yVariable]);
});
// an extra delay to allow large
// amounts of points time to render
var marksDelay = 0;
if (typeof options !== 'undefined') {
marksDelay = options.marksDelay;
// if a new groupByVariable is passed in, use it
if (typeof options.groupByVariable !== 'undefined') {
groupByVariable = options.groupByVariable;
};
}
// Place the circles
var updateSelection = circleGroup.selectAll('circle') // circleGroup.selectAll('.marks')
.data(function () {
if (typeof rVariable !== 'undefined') {
// Sort so the biggest circles are below
return data.sort(function (a, b) {
return b[rVariable] > a[rVariable];
});
}
return data;
}, function (d) {
return d[idVariable];
});
// console.log('updateSelection', updateSelection);
var enterSelection = updateSelection.enter().append('circle');
// console.log('enterSelection', enterSelection);
var exitSelection = updateSelection.exit();
// console.log('exitSelection', exitSelection);
updateSelection;
// .style('fill', 'black');
enterSelection.attr('class', function (d) {
return 'marks id' + xVariable + yVariable + d[idVariable];
}).style('fill-opacity', 0).style('fill', function (d) {
// console.log('d from style', d);
if (typeof groupByVariable !== 'undefined') {
return color(d[groupByVariable]);
}
return color.range()[0]; // 'green'
}).attr('cx', function (d) {
// console.log('cx parameters from drawVoronoiScatterplot');
// console.log('xScale', xScale);
// console.log('d', d);
// console.log('xVariable', xVariable);
// console.log('xScale(d[xVariable])', xScale(d[xVariable]));
return xScale(d[xVariable]);
}).attr('cy', function (d) {
if (typeof animateFromXAxis !== 'undefined') {
return yScale(xAxisYTranslate);
} else {
return yScale(d[yVariable]);
}
}).attr('r', function (d) {
if (typeof rVariable !== 'undefined') {
return rScale(d[rVariable]);
}
return marksRadius;
}).transition().delay(marksDelay).duration(2000).style('fill-opacity', opacityCircles);
// .append('title')
// .text(d => `${d[idVariable]} ${d[xLabelDetail]}`);
exitSelection.transition().delay(marksDelay).duration(0).style('fill', 'lightgray') // 'red'
.transition().delay(2000).duration(2000).style('fill-opacity', 0).remove();
var mergedSelection = updateSelection.merge(enterSelection);
// console.log('mergedSelection', mergedSelection);
// console.log('mergedSelection.nodes()', mergedSelection.nodes());
var mergedSelectionData = mergedSelection.nodes().map(function (d) {
return d.__data__;
});
// console.log('mergedSelectionData', mergedSelectionData);
if (typeof animateFromXAxis !== 'undefined') {
updateSelection.transition().delay(2000).duration(2000).attr('cy', function (d) {
return yScale(d[yVariable]);
});
}
//
// distance-limited Voronoi overlay
//
var voronoiOptions = {
xVariable: xVariable,
yVariable: yVariable,
idVariable: idVariable,
xScale: xScale,
yScale: yScale,
width: width,
height: height,
tip: tip
};
drawVoronoiOverlay(wrapper, mergedSelectionData, voronoiOptions);
}
// call the update function once to kick things off
update(data);
//
// Initialize Labels
//
var xlabelText = xLabel || xVariable;
var yLabelText = yLabel || yVariable;
if (typeof hideXLabel === 'undefined') {
// Set up X axis label
var xTextAnchor = 'start';
var xLabelTranslate = void 0;
if (xLabelTransform === 'top') {
// label on top
xLabelTranslate = 'translate(' + 30 + ',' + -10 + ')';
} else if (typeof xLabelTransform !== 'undefined') {
// use specified [x, y, rotate] transform
xLabelTranslate = 'rotate(' + yLabelTransform[2] + ') translate(' + xLabelTransform[0] + ',' + xLabelTransform[1] + ')';
} else {
// default to no translation
xLabelTranslate = 'translate(' + width + ',' + (height - 10) + ')';
xTextAnchor = 'end';
}
wrapper.append('g').append('text').attr('class', 'x title').attr('text-anchor', xTextAnchor).style('font-size', (mobileScreen ? 8 : 12) + 'px').style('font-weight', 600).attr('transform', xLabelTranslate).text('' + xlabelText);
}
// Set up y axis label
var yLabelTranslate = void 0;
if (yLabelTransform === 'left') {
// label on the left
yLabelTranslate = 'translate(' + -(margin.left / 4) + ',' + yScale(xAxisYTranslate) + ')';
} else if (typeof yLabelTransform !== 'undefined') {
// use specified [x, y, rotate] transform
yLabelTranslate = 'rotate(' + yLabelTransform[2] + ') translate(' + yLabelTransform[0] + ',' + yLabelTransform[1] + ')';
} else {
// default
yLabelTranslate = 'rotate(270) translate(' + 0 + ',' + 10 + ')';
}
wrapper.append('g').append('text').attr('class', 'y title').attr('text-anchor', 'end').attr('dy', '0.35em').style('font-size', (mobileScreen ? 8 : 12) + 'px')
// .attr('transform', 'translate(18, 0) rotate(-90)')
.attr('transform', yLabelTranslate).text('' + yLabelText);
//
// Hide axes on click
//
var axisVisible = true;
function click() {
if (axisVisible) {
d3.selectAll('.y.axis').style('opacity', 0);
d3.selectAll('.x.axis text').style('opacity', 0);
d3.selectAll('.x.axis .tick').style('opacity', 0);
axisVisible = false;
} else {
d3.selectAll('.axis').style('opacity', 1);
d3.selectAll('.x.axis text').style('opacity', 1);
d3.selectAll('.x.axis .tick').style('opacity', 1);
axisVisible = true;
}
}
d3.selectAll('.chartWrapper').on('click', function () {
click();
});
// console.log('update from drawVoronoiScatterplot', update);
return update;
// drawVoronoiScatterplot.update = (data) => {
// // console.log('drawVoronoiScatterplot.update() was called');
// if (typeof update === 'function') update(data);
// };
}
exports.drawVoronoiScatterplot = drawVoronoiScatterplot;
Object.defineProperty(exports, '__esModule', { value: true });
}));
x y
38.39184120178223 2.58617472028523
246.2907321166992 94.26988282969606
194.8600180053711 446.8988387332339
7.5848326396942145 0.17236393706327469
23.837577095031737 0.026381200058329488
15.689796867370605 0.09622598349309004
261.65521423339845 336.5311648225067
39.19309921264649 0.6510888806317189
1.0596628047525882 0.0035596502709454646
74.94333145141601 4.229885518734559
41.68494239807129 0.09926129253307225
88.58326049804687 2.0071508163944065
31.6809903717041 0.1017671429454872
50.17773811340332 0.6761146101495281
64.59828311920165 1.9648102139150463
27.043609428405762 0.9146829254343524
29.261916122436528 0.0686000551921844
1.9668922781944276 0.0010961212431551755
2.8135515880584716 0.034763010315517866
18.044091835021973 0.0019440899156049048
4.879263963699342 0.014577190461594128
8.891957197189331 0.011673247239185064
10.742688689231873 0.06620911064921178
9.755473456382752 0.05979323053339773
98.67498077392578 1.75567594946632
82.90450805664062 4.39108648468406
241.37164062500003 1.8813980041503844
24.79449993133545 0.04223027822113561
4.152724289894104 0.02332470872365843
78.52623092651368 0.2244571349920895
5.749713258743286 0.0626434528489052
60.20459678649903 0.04185984504572744
55.12195922851563 0.0148740534201272
40.409432334899904 0.1676348368615872
34.294205360412604 1.674967514920701
113.8158073425293 14.560385675300497
188.5296200561523 2.16201717926945
17.3299135017395 0.1088429186300197
32.79537345886231 0.6326189390625913
6.804653580188751 0.03816022373307261
13.018195247650146 3.310670370501482E-4
18.81678194046021 0.03356885734152737
20.72448234558106 0.07590997789651699
20.07418701171875 0.005503712707757781
139.23274459838868 0.5886808513017517
128.95712768554688 15.658859519721606
52.27577857971191 0.07605382502791896
53.27404670715332 2.9789147690883064
48.7847183227539 0.6157828460656993
0.3229155194759369 0.10427443271841419
131.1936015319824 1.4246846171507546
234.95443908691405 100.91329405852022
112.17830276489258 4.7450029355386505
106.9682667541504 3.874074015493718
112.7380859375 7.497114601135269
229.43526947021485 20.836764809552633
8.326999855041503 0.10692890519716412
30.64199060440064 0.41215193613869394
296.80828247070315 718.6840090290096
249.319130859375 591.4201257554058
62.09256187438965 8.453196454252653
11.934423599243164 0.004300264336221134
23.07661827087402 0.8526338176836815
208.14140014648441 8.17159312251949
192.10631347656252 3.5860486490488395
208.7644161987305 10.469002535037857
37.71452898025513 5.2233777820936815
47.70051963806152 0.08968848718680196
55.75519790649414 1.5495322519965735
11.358340091705324 0.12840762132337896
14.338871688842776 0.1148340214991539
14.957690944671633 0.0017900561627789832
289.13401184082034 0.7499354918393842
21.291879291534425 0.08519352082663775
71.73747596740722 1.5939669328743327
54.30472190856934 299.4534003329195
81.94549545288086 4.220988934133211
65.22913246154785 0.5942367618392791
16.30990043640137 0.09603828048175793
57.19304634094238 0.6511742078664803
19.390221767425537 0.15227302777270976
22.098284282684325 0.009659800222772371
93.88292602539065 0.013706315530835117
89.22617126464844 0.5988109116557906
13.748644790649417 0.06317944126767645
35.571080226898204 6.610453533146883
26.420749130249025 0.17702983060531077
76.86903533935546 1.2790810636268126
49.482890625 0.2674021057128874
77.62500839233398 0.14061870581994512
58.826942138671875 1.3760647460237152
109.58605140686036 29.310839369158806
74.36444274902344 6.946162023175127
43.72514987945557 0.07554258876329077
57.896746673583976 0.010661249415972449
87.9765291595459 4.094434242168004
105.03005577087404 24.70034564062255
93.14594688415528 8.145619188062959
51.70948883056641 0.08439673956567371
72.83117446899413 1.3661531219311425
46.07888328552246 0.006222572734817693
111.45496879577637 20.65730864736653
36.52366039276123 0.2268994214243863
25.43296340942383 0.3215304950522501
42.43816432952881 0.3156593206138116
128.21427536010742 3.1888124895194783
209.6552813720703 0.11883093244173105
215.82087982177737 17.465045464027806
62.81140850067139 1.4127497522762484
28.23959419250488 0.0574053770820663
45.051075057983404 0.0026086615480073383
84.41328269958495 12.864540993096597
141.7979736328125 1.4448673874139786
132.46167068481446 0.21313982121705666
121.74623489379884 0.06439672912529204
140.07699768066405 0.8519332814995431
68.06225505828857 3.75485545912823
47.15387672424316 0.023678046263806058
87.17633888244629 3.3257398716772544
69.75889766693115 5.022539667286654
80.26174453735352 3.0215320534203216
37.15923435211182 0.02535557889247002
29.94247486114502 0.0033091416002848325
69.13280685424805 3.4864102435430815
166.94308837890625 1.1170621748030114
348.2448483276367 76.65268080608584
153.3460528564453 11.196069718125829
3.511181824207306 0.26130685739990916
532.0273727416992 63.562785399800994
33.46580307006836 0.21697250008511054
70.39330200195313 0.1546864647403409
44.29467540740967 0.4974827809127147
59.46817123413086 0.28284183620589587
27.63766773223877 0.13128467226099724
244.6554296875 53.9427130752563
165.17089920043946 8.003811334074063
164.59192092895512 11.615002954494333
144.35888397216797 6.9754938724712225
67.3060774230957 0.481528542737503
345.05056640624997 142.78896321144038
1012.7855529785156 3388.921842017211
764.7817346191406 263.0321319639827
902.9520471191406 1092.1671896155021
50.75523574829102 0.0599095389146599
103.93756072998048 1.1287772024796199
34.95479160308838 1.092460592974556
108.15642257690428 0.7116228687567975
86.04016616821289 15.680283975365773
239.96068420410157 144.9451248333695
220.4289877319336 91.60427583547748
170.39454040527343 12.99933888920587
140.99541763305663 2.0998086803665673E-5
63.68494010925293 1.7293825162517018
75.98605255126954 16.111774121169788
119.02337478637696 0.953796807884272
309.780929107666 2521.9550812892685
118.14278182983398 3.4492593315948246
90.96161254882811 4.155023401094959
65.82840259552002 0.02944566922426661
101.0878712463379 1.1834638486087703
94.95540069580078 0.0019890979350549076
239.09660644531252 9.588971477150848
60.86141098022461 0.7420288768515266
124.66299942016602 0.1135693908084409
125.406326751709 0.35244792573640116
156.07349060058593 1.1523820695463352
265.6553328704834 1179.5561602372986
90.12729904174805 97.47022421106904
2449.513332519531 4968.370292502192
2044.1533325195312 7081.783374142789
2470.1533325195314 2484.6902589084025
1390.1343115234374 97.33180911657972
2219.671667480469 25705.17420849335
1266.4718359375001 41.88466040191545
1574.7826684570311 11070.686857023027
1511.716667480469 799.9468984103776
1603.436667480469 55.30402321506089
820.7501672363281 370.55606142933465
395.71384185791015 589.8174773025969
32.80603561401367 1076.2359727079336
66.46174415588379 0.2897193537252511
371.74157165527345 1.583641898811213
149.62294403076172 2.6339473269850835
342.35205581665036 31.899273498232994
317.0891645812988 79.40298785917973
117.14579528808594 0.021256266028060845
129.90132667541505 25.99646967083416
172.67150817871095 53.70679237470048
219.58583274841308 416.73822457576375
85.49503219604492 2.264928090941384
92.55282012939452 2.0943295778856563
120.61956680297853 0.38386302335301314
161.30573486328126 22.03612517381302
99.9899178314209 16.080758998756085
80.89092613220215 16.884488051019154
106.18318954467772 0.6671793199237724
365.1815539550782 1.3960697487607703
399.5924932861328 11.611102005049897
102.19964569091798 3.2412756382302135
136.54221878051757 19.87181340077024
79.62830223083496 19.111741384922578
216.46429069519044 183.21542638430805
173.35308403015136 31.88765997053155
489.17762573242186 950.0187554906632
429.7847778320312 635.8074289800232
114.780591506958 27.242225017238926
169.31123153686522 1.7193281432699317
284.50679986953736 240.03925028256756
688.2286071777344 138.56568897608668
296.95367668151863 9.280085760723697
406.63587829589846 44.03488075797631
997.0224987792968 8.865513519288898
790.2777893066407 94.52138076607051
277.4716167640686 507.52805122499564
199.28463930130005 0.5117409292444856
388.66115633010867 128.56937577023473
286.59224023818973 179.76802183042008
497.1542608642578 8.09823122869464
281.214877872467 352.88081334632943
283.0296395301819 287.99313447556494
199.9069467353821 0.0086589100560503
282.42258630752565 308.96547211638483
498.55352294921875 2.0922958584368363
988.0613891601564 142.5304287852336
390.39219270706184 92.30996097823684
193.77825929641725 38.710057382618416
197.868735370636 4.542288920378117
1979.6000000000001 416.1600000000037
1926.8000000000002 5358.240000000007
598.2812060546876 2.9542526264430498
1383.0008325195313 13688.805191122769
2393.29 11387.024100000008
692.2628747558593 59.86310704351862
500.26316589355474 0.06925628753043593
492.3344476318359 58.76069310906581
280.2237783241272 391.0989437732619
596.8136071777344 10.153099217785662
699.0228747558593 0.954773742736956
397.2166387939453 7.747099603370154
595.7897778320313 17.725970703655136
969.248055419922 945.682095456194
214.98058532714845 64.31101169514679
232.74597045898437 52.62094458192738
157.32825637817382 7.13821398076888
257.9089303588867 1.1904329617590594
43.007415313720706 5.498687757649439E-5
83.66416061401367 1.7844668651523423
126.91706604003906 3.675142201871043
61.52420883178711 0.27479489932360296
120.0073127746582 5.3476673201657825E-5
154.88830429077152 23.89551883917493
560.7196459960937 1704.0676266878202
39.84343067169189 0.024513954566852385
166.367431640625 74.52123647928238
228.6004440307617 129.9498762957964
259.43349304199216 111.651069293628
41.02243530273437 5.033428087829395E-4
335.56921295166023 0.18557748101733726
235.9755802917481 49.34247223767828
273.0598585510254 48.16556333177527
309.05321060180665 438.7679860922651
146.70051666259766 176.87625704184236
143.7600910949707 38.936463143063904
554.0194793701172 196.5458018091421
200.87930862426757 83.18701117136001
172.10262863159178 23.984246320104557
263.90050384521487 26.00486103266832
137.5876206970215 11.644332507396086
71.0887515258789 0.8303737815880238
153.96841278076172 3.8746488754661046
258.66664428710936 0.11112603131682441
315.37221923828133 92.69416239572121
362.06088134765633 98.78607958536688
95.95598960876464 0.0019369145366882592
828.8729748535156 123.81068861049522
110.61498344421386 11.458337082946246
159.08945068359375 34.93459322167035
698.4664184570313 463.6951340676824
667.9839709472657 0.9681988250629098
666.2182141113282 33.42904806244475
656.0221020507812 64.35412131314793
115.44839736938476 0.20106020087117693
91.99361404418946 9.038356515294877
56.43273460388183 0.3217900296331005
122.80206314086914 4.830926436726043
108.83509811401368 1.3569964039744962
1267.1490325927734 29877.4569336141
180.64395935058593 87.53549663348844
116.27342330932618 13.887373831473466
135.98922271728514 9.064779846111849
103.29358001708984 22.1503890555361
190.17842111587524 96.4634117770854
218.9207445335388 444.3350110203334
274.3040692138672 187.57852009854037
86.59542030334472 1.9728441242562265
298.30138305664065 75.66593672729844
73.73202766418457 1.607753844393235
210.83218048095705 117.33613397202627
168.17858123779297 61.17459145380417
190.7871103858948 84.87733504168787
156.74473947525024 10.59672108399407
394.51206665039064 30.11741244975465
431.65248039245597 7805.284220805367
517.5317964172364 1803.5483155470579
225.20990297317505 218.74697006289628
196.83631469726564 17.336275300206157
368.61483978271485 0.37802795840884745
247.0827606201172 8.51028559953899
569.2635443115234 45.37983524280811
291.2526916503906 3.053086468614717
272.0654870605469 0.8733144340052733
329.92865814208983 9.433140808151094
290.2484774780273 7.570876188922868
256.430295715332 31.02160581864883
325.1032040405273 0.01065107398116398
203.16993499755856 33.98965793269222
245.49604064941408 0.25397502704300673
202.12375183105468 8.272803529361328
319.95163970947266 35.4220152313718
248.5914169311523 11.618438537234947
415.93473388671873 9.395856345230452
163.83772155761721 1.3508911776278194
238.1699938964844 8.008934545935634
370.4410916137695 12.665828901581673
162.77462524414062 3.1492947571411647
369.67081542968754 53.71694646570713
247.81133239746097 17.54493628456028
374.3645755004883 13.21631129165
318.4659225463867 2.3533936336846444
96.64423919677736 11.261130568445532
204.37325561523437 31.66025237149154
283.98980804443363 16.08163952048968
267.9816961669922 4.073550362333945
552.4505090332032 422.2815789944649
151.4433592224121 30.87625673115252
206.28393310546875 7.377019375568642
160.61673477172852 54.512605431002754
741.2729028320314 2675.692581424479
158.04408004760742 80.20850219366346
523.8141326904297 230.61056594387628
328.8237628173828 26.793431370708554
207.0392651367187 3.8444812040865823
738.5221057128906 3077.796754531685
557.8935107421876 259.41899621203083
249.8097750854492 0.03618551811585246
421.4875775146484 2.2128868620875752
402.55078674316405 5.9986455774609455
322.0492321777344 194.6239228307618
331.1785400390625 23.24647615492333
853.0121185302735 13686.164410774782
98.12676574707032 3.5090065663490595
525.924546508789 4.307507194179784
260.1629180908203 14.723197577754037
354.3451513671875 31.97731306002143
427.8532672119141 17.195392815787127
333.189443359375 7.899228630161336
475.3481396484375 13.33608402731422
138.56175903320312 2.439091277791535
357.9191009521484 4.330140847349587
821.8032849121093 331.1204399898673
353.62964294433596 40.58144901664867
476.50303405761724 756.0831360365604
306.4521337890625 30.77881949446217
309.9350921630859 4.2638443749491595
590.2122180175783 77.22511217057806
1069.3589233398438 113.23251248732016
308.5758947753906 11.724496589197233
279.24488159179685 76.65209834165758
1099.3604504394532 10128.318935749758
231.9672930908203 64.52438028878319
954.6186169433595 863.265670321049
356.04896057128906 15.61071256722849
572.039644165039 15.684418339509469
293.71966217041023 10.760616276238089
392.135856628418 47.11646422563354
265.0643377685547 8.618112737134354
270.70572753906254 1.6751412031412654
186.42708190917972 31.05741604699228
237.07559753417968 8.552129782095978
133.6949496459961 5.313257134493488
134.61351165771484 1.9223499232926564
145.53035461425782 0.22056678834892385
184.5690444946289 11.77145567983618
269.29870178222654 1.6866263191584026
276.451279296875 30.788301441288148
274.8866827392578 26.1460134090039
181.92013381958012 16.64530805013417
631.7709362792968 67.7174897193928
180.05489501953124 3606.590415806919
380.85670379638674 124.17305028146173
949.4433837890624 933.7067942625272
696.787954711914 538.7990464561536
69.72059036254883 4860.960720502338
1074.9170654296877 13205.931926971069
142.73187179565429 1.6081491426570862
839.8404980468749 0.025440873050676646
411.9950048828125 15.96006401369579
195.8085168457031 51.71742995853553
522.6102972412109 88.16651789841161
152.5312335205078 2.157274971279878
372.5126605224609 20.13621558668071
515.4230053710937 274.7967509267876
477.8628216552734 147.3110981716998
567.2637121582031 45.37757388754028
608.1524267578125 61.5844057914978
224.56186401367188 0.31569116985947404
307.5714685058594 0.18363924147037508
634.6897656250001 86.68046411743258
545.9962091064453 196.10615939040417
300.464049987793 6.4310424644128075
126.20441116333008 0.6329615970337987
226.18306701660157 3.3012454661611224
177.44763275146485 2.409844074324587
179.1127537536621 0.7872059016406849
254.84151519775392 1.3420870370352023
171.53142333984374 6.09387072706823
234.00994903564452 15.92050669815406
366.1332650756836 165.55286761262346
130.48710708618165 20.36620245159186
230.22619537353515 0.051164347008705265
203.81360565185548 1.4075315493092548
211.7102423095703 53.14056718517889
418.07448425292966 321.32411479846655
176.29461029052734 0.08679522328460658
187.65361846923827 5.50550628789977
250.5943637084961 108.27726663106296
226.86478546142575 50.91128651148089
183.90204284667968 1.2055099105272666
360.96259765624995 25.37542237281788
159.70834289550783 5.2516922845694545
97.31530960083008 7.2075625393951634
193.1836373901367 3.299173130509383
567.8194317626953 148.36624258363537
355.2849237060547 22.231944457724826
352.06605041503906 8.608060167092484
490.80961364746094 852.078655410499
454.20988586425784 432.2288457771882
612.2439373779297 76.66863264161691
408.14552917480466 583.0065791313432
376.2086340332031 46.12265169496704
692.8600866699219 293.7766289625895
494.6936791992187 86.60760684705352
502.06852233886724 222.94902514490835
662.8095306396484 84.46472706356127
278.243330078125 95.19260796442065
351.1017120361328 0.010345338294284868
429.2720294189453 22.353705815318772
480.31797058105474 387.382282048229
675.3435644531249 44.308134189700354
648.6763690185547 1.7519989750417488
654.3548321533203 13.2872486304673
482.98528442382815 81.26509691927541
517.0731518554687 15.420136350208736
364.31871215820314 7.189304490567658
636.4975762939454 90.29605628939116
683.2453424072265 33.11608401006534
741.8426586914062 536.2624564827048
467.63033874511723 19.093939482424176
929.3347961425783 3680.2669590625483
974.5545288085939 2856.418390871433
738.6516357421875 374.35919945299537
519.8202935791015 330.501725550057
572.5984490966797 11.570548547879143
435.53683471679693 109.47782774362712
624.4890643310547 30.37041194725367
816.2378454589843 663.6886065951738
652.9309344482422 170.80047439614322
655.4453936767578 42.96286405268641
485.54630554199224 131.18711673739898
443.9237530517578 326.75070373383596
566.6745953369141 28.35993482561726
291.84934478759766 26.52924911704741
577.6530072021484 53.97830317168347
544.997308959961 16.021535562008918
554.7254913330078 150.66356301606746
613.27564453125 188.35793303260775
620.9361950683593 101.28016970211516
252.8660690307617 123.96441882776357
183.2774513244629 22.302465992817197
528.810693359375 67.06474325418435
663.9943536376953 100.11295912750076
762.2218762207033 886.7366558151235
529.8083764648437 51.71944907141374
513.2416418457033 95.22555386753167
469.31376770019534 187.31295456421785
507.5648352050781 29.541016347958298
302.4471624755859 12.622654474884824
150.53303985595704 0.2841314880387048
336.97355285644534 25.26517088694883
336.42717407226564 5.891173977078585
323.6531805419922 2.7330059044215753
213.8034051513672 4.8250289290401485
339.07839599609383 1.1629379243910851
175.20034194946288 4.8415046945661135
482.0246661376953 168.35928883827086
434.22883850097656 95.47559703999792
442.2271228027344 45.871865529240914
393.80045410156254 17.6361857530834
281.71322845458985 39.52349646417869
322.8837902832031 3.5486658310904073
379.3885516357422 21.26545601621591
352.63523559570314 0.4035242620483186
275.7262158203125 0.07495777704714733
503.93044677734383 49.97858276796902
439.65837524414064 28.532955032409536
430.27279479980473 32.80087940514442
646.9335754394531 25.66865782771306
346.58636291503905 108.44383733727406
403.54371520996096 20.64534790923062
303.08816162109383 0.007772471433882356
220.98263793945313 1.0350255622401787
311.79206909179686 493.19219522352427
528.0708203125 4.288296766662674
205.11063873291016 0.012240929219965897
273.7022180175781 1.6842380738989051
267.19643646240235 1.4314602085658403
452.4734857177734 90.75447436946683
148.47757019042967 6.1383540485057315
174.53721527099611 19.91644753743054
222.57843963623048 2.491471685223335
212.28912048339845 86.28775935509263
251.17436309814457 23.28677150854917
431.55148193359383 460.03892724495415
458.1388641357422 8.18609843374217
547.8419665527343 17.289242148579998
223.59904022216796 0.3588491877750357
312.3728939819336 13.155898066293494
301.3822787475586 2.6170220506006143
213.25497924804688 7.535138928653276
179.67879180908204 5.388007465584616
178.32918395996094 7.13325831972991
311.3266583251953 21.84012240946643
379.97287902832034 49.38042915062016
383.1304370117187 47.19089564996356
255.7478756713867 18.080561305985036
217.42993072509765 12.745394627601804
305.06601379394533 3.7403026452097343
385.1236730957031 1080.8528707181954
310.6956506347656 10.918724727524802
470.9091149902344 171.3712703389057
769.4789331054687 0.2293769195139321
242.56423645019532 11.80447117016643
271.3454522705078 13.355719107136654
253.70124603271483 161.32165078355433
405.8279412841797 173.5031308130175
349.26298767089844 137.75745841348203
455.35258300781254 135.66232258989848
269.98221191406253 4.071468759751421
303.8983392333984 16.823621044278685
327.1037316894531 141.52119971652175
414.4765698242187 210.9300240707932
397.9940887451172 144.14190506012125
517.805922241211 4.813977211612716
483.61674621582034 236.64449698847952
440.2249645996094 474.1521666882641
410.68810760498053 106.33512476646156
254.243498840332 60.16331023993067
664.8733825683594 534.840433829464
763.8244921875 10.083849867248365
358.75511779785154 18.019024910116762
536.1187042236328 3.5392737981771045
288.17397155761716 23.290550526688097
326.01942749023436 15.844957505501897
534.837353515625 17.327625753879925
401.26003967285163 1.5876999771599072
185.21706848144532 1.4812556885276267
356.749521484375 68.07039573678955
680.0559197998048 6408.9502949927555
447.85898559570313 9.86597148800041
463.47626831054686 72.65400191378774
340.58070190429686 88.72317661571682
339.6242694091797 0.14117347687816914
737.2547277832032 115.46087501306566
404.18955078125 139.48671074867303
461.0165686035156 24.83458848346623
476.85166748046873 9.911997653538089
252.24138763427737 14.127166915763254
205.67537384033204 0.10538214354076617
299.59216857910155 41.06030351865341
407.5286389160156 109.64940295118276
586.7811285400389 4.9233905558292435
419.21203552246095 33.50053279325388
563.9871960449219 1.0257718514218095
438.6486053466797 267.3681071086321
260.98691711425784 16.10483424783666
512.6208752441406 0.14373558050543414
362.71977966308594 18.320286132532672
438.0321728515625 143.2288866548775
320.76551177978513 17.930890487138505
863.9886999511718 256.36172925360466
1154.526602783203 1258.3619101006548
724.0085583496094 255.72620605784672
764.6298889160156 1629.74586893324
774.7549365234377 202.92183345129348
367.1443115234375 140.5573492532963
384.66617553710944 177.79087480718027
547.1155651855469 3.5510945699230008
623.2787683105469 0.07771177096515387
836.2750341796875 188.37468676874613
479.5752319335937 417.1711505664894
489.3712219238281 92.71336724016861
599.4957434082031 0.2457615267768367
705.8538940429687 229.40452566161892
345.6471484375 5.535910475158723
542.1376428222657 14.917802968395968
617.1224914550781 34.545106695629386
981.769033203125 149.59654878625892
971.7498669433594 52.564429338992866
579.1602319335938 23.42335493660556
640.3307434082031 93.49452303800688
519.1855255126953 10.14757279203288
718.4634838867188 463.82152629762123
551.0999584960938 15.210323732191005
752.1059753417969 1672.3212527457217
562.6003039550782 54.7555015572317
422.5009783935547 6.245108989480432
426.2673645019531 350.9116327026859
451.91989868164063 326.89006368214024
486.65640014648443 178.05165705074228
287.6264889526367 0.13951050250243568
321.3505828857422 2.720576816806532
398.62216064453133 457.01201550822736
377.8435754394531 8.085921279860917
412.7697784423828 104.65743311793568
441.0463458251953 80.16792308199733
565.1948193359375 96.14156785490522
625.2246447753906 1.4997548258915654
488.1734954833984 14.642136815572245
176.85363098144532 0.7286858524833011
1241.1420654296876 5454.994498992549
349.8058801269531 51.75536074776795
266.4224932861328 12.798554287764853
243.59486328124999 19.4052295108794
509.79351928710935 538.5407470777658
473.23092041015633 0.5914834155141958
227.46170471191405 0.28976181717553345
319.02190551757815 8.86904674623148
433.88556579589846 681.9636738003485
586.6452392578125 1180.249585652949
268.53310333251954 41.82075250786981
221.7036038208008 68.83018956223118
376.8765832519531 1.2620651897921595
415.01549072265624 24.845332735926025
484.14798400878914 1.3178672844354482
536.915082397461 37.02622222968907
417.1914971923828 7.887688020393549
907.5779699707032 11.7102895214092
680.6057702636718 70.46309286625588
610.9357153320312 1.1327018544733816
360.22242431640626 7.714926678091224
510.8626898193359 17.117335531026704
661.4835278320312 110.59618685966241
640.8627319335939 293.6859567798674
304.5015493774414 12.239156758480709
386.6261798095703 0.13974153477288442
424.37789306640633 31.608086372762667
710.1988903808593 0.6417766218797174
1100.5579223632812 459.76269337907434
679.7279077148437 0.07403421164157976
295.5142266845703 0.23597571398355954
743.239833984375 22.659180496311492
296.25998779296873 137.82788662124324
436.50786193847654 12.195028240740848
524.716703491211 265.1457451931407
884.4360424804687 308.4926037479001
660.7781921386719 3.1619672820345377
182.61479370117183 236.704572857501
456.3116687011718 2.850462574602686
716.8511254882812 83.70190483117716
394.4285668945312 2748.754626614336
760.6972045898439 0.4860942400991917
971.0768579101564 396.931590732103
851.6583129882813 40.216994154601714
315.99175415039065 196.23095178309765
314.13922790527346 192.12100306194998
726.6072973632813 376.07691555619624
1098.531435546875 460.89925967798473
1167.403543701172 466.40692466719264
526.8776092529297 1.2597609891090542
560.7762939453125 67.62934127390311
262.47249055862426 307.21358721751574
328.9596123504639 963.5056654334742
173.94803604125977 36.62626775789073
285.20736724853515 7.798797684554143
194.40655181884765 2.539077106017745
147.94296184539795 145.37216906152972
230.88527153015136 83.07827507906939
689.2127734375 947.8533194107052
670.8500610351563 970.3186975134896
452.2938793945313 2275.8739432235307
131.77551330566405 1.4993676646057852
549.0814599609375 119.21451658461014
617.0048681640625 1088.6787248708972
465.5687921142578 5.910771783695043
561.5538818359375 699.3971659475541
645.6173498535156 1182.1666310955413
757.2262353515625 6851.496114074916
168.7508950805664 27.553102455221936
934.6842700195313 514.5761063190046
265.6450764083862 206.06383132106996
465.78921966552736 1954.5930977829933
490.6543701171875 107.03205767214274
149.079893951416 0.0063830434728639395
444.52539611816405 89.76811871770079
695.98408203125 324.57330025673076
357.29648559570313 7.30899013424065
1028.9680615234374 730.7256978006641
588.9205218505859 122.75483606334356
466.5289324951172 181.4696597211092
850.0435046386718 194.78376277077464
341.3219287109375 44.596636141800516
64.42708801269531 3413.7246136432436
757.0706921386719 1842.9254734526853
910.1483947753908 1588.1504389781096
714.2646362304688 714.7796758891618
420.11833557128904 0.014003307432302875
438.4209643554687 1061.3935635276375
469.0383004760742 958.6268374098672
187.04212951660156 3.8332568297628313
189.58933868408204 5.811287980063327
520.6346160888672 107.44118362517
478.4333264160156 274.4546736382855
472.30081115722663 114.47264189332732
425.5696875 5.906418847656316
495.2856311035157 94.36896305698276
509.2262255859375 95.52666629698224
470.3522717285156 93.07866080039877
813.1941491699218 1665.1174619665899
292.8708279418945 4.533373653017194
445.6659649658203 266.8007004978096
720.3561181640625 214.44327522489917
388.06944091796873 3.727058369213404
616.1536083984375 0.7163787431954645
294.7018020629883 68.86008900182536
597.511273803711 209.92318679103136
464.5483657836914 304.5595368198333
434.8455798339844 260.9652909001714
409.53050231933594 29.91540487878956
556.603955078125 0.1568515801430109
711.6121838378906 268.56051856309415
559.1495147705078 23.527206961521657
633.478876953125 56.56729188623435
642.4621765136719 2.364901075102249
654.2257202148437 827.9591771544542
601.5397729492188 12.529992532021065
973.9232299804688 171.00191414371253
453.7040161132812 28.04744532838488
373.6586395263672 128.62645739288018
428.4458453369141 705.1231298710871
910.2931555175783 187.8775856652981
305.87748779296874 1.2600336549341984
600.1479809570312 4.613822191768769
627.8043225097656 3.2555797192468257
400.5118734741211 42.09578581581337
344.02441833496096 1.0494329250041767
495.8497283935547 4.623667981484856
619.8960906982422 228.12807619572482
783.0420007324219 1021.3137171865217
941.1677282714844 317.98991499961653
821.4244836425781 934.8622005229719
327.69988891601565 28.09117750257374
395.2099865722656 139.00441662615697
493.55870666503904 55.37284649693441
317.88630249023436 1.240322143258195
593.0182513427734 15.85432236932586
659.4916979980469 240.50743098378248
806.3699072265625 606.6414700281366
389.23801452636724 248.440186071012
803.1494970703126 394.04246656153344
789.3440808105469 879.4735429713744
747.5661926269531 2443.7013113955036
638.1025122070313 79.16528902602735
581.3701696777343 21.435328812970557
722.490916748047 930.8041608746079
650.0044458007812 15.96445335889466
657.4207885742187 2.493908727318192
343.08646606445313 15.315747864676943
499.1158074951172 1671.5171967763176
500.484052734375 1483.4781937684072
237.6771090698242 3443.003128792047
383.8280804443359 38.09259100158882
401.9140148925781 101.72709558713618
571.9886346435546 729.6138584193769
334.55344116210944 55.45123852616691
753.2044018554687 84.72101351695649
765.4652844238283 2648.67550082553
332.06809326171873 167.23421188760452
614.8241906738281 851.227849837141
656.7848815917969 1103.2440908709539
511.62982788085935 267.9825352102898
546.3906982421876 818.4921470695759
543.9105767822266 65.43876799625137
570.5923095703125 645.5507329708328
616.0083166503906 728.5509700455807
382.23135803222664 76.88908195899731
396.611396484375 236.80911816110589
604.2545727539062 14.028225255781448
686.9564013671875 226.30985982515867
878.6083984375 11.502961158752441
521.2865405273437 114.77821387224832
755.9824145507813 196.49270182614785
514.8098834228516 10.176843775796945
555.3066906738281 22.02715243113173
136.1116192626953 18526.37289831293
1103.0516845703125 254.34876504480692
1022.9573779296876 170.1099904690032
424.976669921875 100.4671458550456
487.4886511230469 6.306873181773849
428.6114599609375 19.25928367445461
650.6319665527344 40.551849985493256
413.5933129882813 41.045638466125844
690.7076391601563 176.6868566966102
775.66052734375 235.2994213718413
881.6702624511719 335.9792786089195
1411.33857421875 1573.0286950016057
432.0021618652344 63.96541482991137
540.815560913086 66.98504316740632
539.9388934326172 82.10365222546785
338.03816284179686 194.93289683218188
770.8215026855469 448.5287484982982
538.027671508789 48.61336458935249
477.5426788330078 1563.6234492904039
867.3455590820313 58.59046576667373
562.0046618652344 35.94407935017436
381.40075134277345 158.74106672662512
593.5811468505859 0.1754379607740904
605.5933917236329 88.48427926501873
903.8311096191406 406.784139195121
862.5025146484376 306.16199362814586
707.9182250976562 326.95058361903
1084.8389929199218 229.8561356821815
1145.1111474609374 2126.237920164318
603.3179534912109 44.64974554562041
505.1569714355469 0.7106971604838661
541.4795202636719 20.4347370465527
917.435792236328 5265.564248369342
309.8622952461243 908.2812478317826
754.4798211669922 757.3602430007293
978.0973168945312 479.7275272185876
834.4165063476562 2.0064902329502945
36.81838275909424 773.8624193314719
385.36772216796874 21.457997913128267
742.2866467285156 0.08216634696870781
606.2931048583985 246.70655498926592
943.6443432617189 267.507507340485
1134.3669470214845 6994.487550507215
869.6026806640625 1183.1755774984586
902.0579333496095 4891.892687327687
992.2811901855468 1422.7086138188874
602.2542547607422 76.48805978999974
420.9176153564453 9.501095090821773
554.3937304687499 1129.3813518070187
811.1637097167969 4738.4348599534005
284.7294870185852 1244.0090859721506
762.4315185546875 212.24065162241462
825.6574182128908 413.82063376523257
847.5211096191406 551.2582935164127
766.464609375 307.48992437133757
830.4174182128908 134.15620085507717
3608.5644433593748 1460628.0137525564
3154.2176806640623 54654.17283409035
2013.7366967773437 5.122541477686414
4285.54 199326.53160000002
1498.9460034179688 4768.454443951181
1803.5084790039064 10098.545792108327
1490.6870629882812 35839.388120002994
1879.8084790039065 585.2296881044416
1004.3533325195312 18.9515040256083
1000.3533325195312 0.12484386935830116
1505.8079272460936 33.732018895916866
1090.5417407226562 89.45866855746031
481.2124499511719 352.9720368372211
879.1127001953125 436.2792931308973
984.9203894042969 227.39465571804172
562.761376953125 1386.7150464272481
491.2677130126953 76.25283602865082
371.07511260986325 24.25451580552793
703.6146740722656 206.93760204714633
474.2284497070313 33.31079278426772
841.2998217773437 1.6895366528569589
1393.4489282226561 14054.356619556931
393.16573425292967 84.01068439532816
685.8950183105469 198.95050845980717
553.0010833740234 48.98483393737115
1158.3423388671874 10334.28006699375
739.9555334472657 902.6699704383713
264.5473002624512 238.78592917884112
574.4612701416015 56.83244787790881
668.711875 18.38801601562531
809.1137780761719 570.5515977943656
919.1541528320312 617.316121494059
450.32944030761723 312.24867984206463
386.2053289794922 614.7757110152089
663.4484838867188 1193.8072657263301
457.9286224365234 732.8594831843028
779.5222814941408 505.2478292286516
510.2504962158203 7.55977105921846
459.15230865478514 434.6262344253463
514.147060546875 191.90393149194804
450.81835388183595 738.841885693103
708.6263659667969 236.34862338685983
700.8760290527343 328.47832289732975
865.5268408203125 55.84810812494775
533.6695062255859 18.753176330239228
1030.8231604003906 295.0438186307084
453.761396484375 914.3731425751696
495.1147937011719 1081.436793316484
598.0353320312499 1518.2453499149285
893.2640594482423 2375.1919014644736
874.5400616455079 2066.6059951942343
468.30607543945314 349.4628154754172
972.714833984375 53.07364387521757
449.5536242675782 71.34126301324508
688.9448522949219 226.6574724217175
671.2121325683594 116.3780837226524
761.1675744628906 950.6384645013976
1565.6234643554687 21719.843258583795
1681.981501464844 33130.73380899264
1777.4494677734374 41026.718105263775
1420.730477294922 2527.0249129963613
543.1108740234375 47.46005672094778
1686.65 44.22250000000121
655.0921508789063 835.6637408079181
666.8174928283693 1101.0787821953325
850.247626953125 2475.2986237954187
4126.00458984375 232319.57541169148
3333.2322656250003 15071.916603570591
3345.472265625 12216.380066070536
2374.0200634765624 4902.8092892618315
4300.68458984375 94442.76131950444
3655.386552734375 34082.124911297666
2234.7083984375 3446.6760470962417
551.8303631591797 2320.313913376514
445.92209716796873 1606.2382954137402
2175.5219024658204 50390.416272564646
443.07152404785154 1363.712336148407
889.3196813964844 114.06920547260177
1066.1912890625001 1143.0289352554396
575.9558282470704 578.1221952843845
722.0317102050781 224.049699384764
1489.057919921875 226.7409523736017
721.2917102050782 246.75036828124516
1259.4756396484374 421.24936784079335
1877.197712402344 888.1763460534145
1512.2598950195313 5221.492428233686
1140.6583337402344 3679.433452141661
2364.1298193359376 24295.513220247467
1679.065769042969 5031.665121465462
2318.3487133789063 4310.091435005001
2682.3852587890624 31546.996295428336
1275.9839501953124 12103.531214627492
752.6403747558594 235.91808764044129
917.7099450683594 1788.4487461211804
855.24115234375 76.71741226539707
1208.2356030273438 67.82515722399461
423.16798583984377 61.34044580488776
734.0025146484376 1295.8189516359598
555.0708963012695 2018.624359171279
480.8973153686523 1529.019945378631
104.81330253601074 5747.656841416692
787.4993957519531 812.2844425037889
725.3569934082033 468.4197343325618
687.6714953613281 128.33501734841113
855.8496057128906 632.5423327970656
576.7099279785157 53.14515007842849
641.8574401855469 102.87151958975848
614.1632690429689 1.3531948663294315
739.7349047851562 1.6004659026206
591.407835083008 243.11560679868072
751.2257312011719 163.1819433447125
1178.9795471191405 842.1866854101845
1043.126707763672 61.988730638624304
1371.326103515625 2086.104820065409
678.1251879882814 284.75928043084724
728.0088903808594 399.64446380449647
622.7393017578125 105.2819284172288
673.0073645019531 483.6760161499511
600.98154296875 81.33256722450297
673.6107434082031 750.1713766512888
765.5911328125001 1050.3346723770173
449.26257751464846 884.3142960722918
573.383657836914 425.03356418543586
123.8399787902832 4.665691626426439
127.55804710388183 19.73094553133257
185.88072204589844 0.01422723033465445
285.9092758178711 171.36705961257422
858.9718542480468 530.2954967731985
198.69252960205077 10.939360433310448
451.17336975097663 96.56266205102216
917.952138671875 36.57662664423
609.3854406738283 43.752395079446906
798.1778784179687 250.3395313565802
457.4445227050781 12.641418794705153
629.3347845458984 160.40768249881398
446.25353271484374 217.45829739218377
584.9009454345703 146.3871213772452
426.50575439453127 991.8875062575868
437.2696759033203 472.2069853467375
536.6759558105468 2054.2689816875027
519.5327062988281 1637.6018594969078
777.9574035644531 325.53528613600963
586.1806860351562 117.05755466986378
218.42968063354493 12.74718037848411
447.288876953125 350.10612567529694
585.4292224121094 344.8737802188989
463.91512084960937 580.0814036889216
495.7326232910156 1959.6006406951333
869.0933874511719 571.5261235597849
1899.0305004882812 9598.022834576675
1369.6045043945312 4276.570845484888
968.292938232422 388.36828351113945
1169.4914819335938 4033.3318669910386
1087.687703857422 2238.4533662830136
1840.0532446289064 4753.6550762014485
1412.5482690429687 1119.0183040216034
800.2188598632813 565.5426262022535
1126.7538940429688 1387.2724089623953
744.5971850585937 213.07781163483145
794.9100744628906 327.2454059381616
1050.9878845214844 529.5574587965384
1251.7645141601565 3050.9588959635744
1179.2416455078126 4065.127767551438
1835.899912109375 4238.021443367099
1499.2853393554688 27.93481210246682
1549.1101049804688 285.2685537707847
1814.9065795898437 4237.1533806933585
1322.6552612304688 2739.971676850463
2644.5566650390624 65251.297375965754
1888.6634545898437 8526.037618281858
535.5605798339843 1118.194821039336
324.44500122070315 57.07800655517693
313.2739733886719 13.883274308325234
682.707431640625 204.2775103074065
527.7958850097656 635.2474124409592
496.5845617675781 807.437129940583
462.747607421875 588.1785457634932
567.7737237548828 1103.9854331168408
375.5677465820313 208.28993872047073
333.7472369384766 105.11915039573888
161.92044372558593 4.3245542984549425
347.43939514160155 57.16274582483823
760.4555279541015 4165.988871683771
1013.6432861328125 414.39579947054483
785.2894030761719 45.03211107409143
1804.1914477539065 1076.4011004846645
1187.2745068359377 714.251984862353
1783.6214477539065 1323.3990635217692
1402.0761157226561 7907.457194970442
1973.2519995117189 2835.7754519961045
2156.04 15.681600000000289
1563.198857421875 13642.506907555511
1155.3752981567384 1991.3640145999968
650.3079211425783 1497.076966308951
933.0407470703125 254.69775407373982
1016.2770959472656 1006.342641538993
1807.656669921875 152.3577974175469
1360.1278491210937 1589.788415710266
2512.2000024414065 21844.839278320254
583.3673937988282 546.0350929495136
686.0849346923828 1150.2316548199376
32.07185623168945 1028.6039621461575
566.4662579345703 1895.1866982193624
688.0372546386719 1597.0210168143485
596.8603839111328 1098.2341545175077
594.6683929443359 641.6903160225717
702.9862048339844 8.917419310511812
795.7885034179687 17.736703460460976
796.7485034179688 10.572230022960724
693.3919250488282 43.66665456030458
1140.0765325927734 3590.821946104943
897.6612243652344 5.469871469773352
989.3678381347656 113.0428659285439
582.8596838378908 293.79043813706676
494.11373291015633 34.64814025297734
587.8648544311524 147.26175797712236
1518.0798461914062 6710.911600023665
1774.4650000000001 652.0362250000043
978.7615631103516 451.0712015155815
979.9190631103517 403.24402636604424
782.1887655639648 317.2400721354059
1384.5498461914062 238.7072527092045
875.4619132995606 602.1176989182813
1104.3352416992188 18.794320590645864
1193.027578125 48.61466680297864
1002.9229260253908 8.543496549906077
982.8320928955078 294.7370343484738
1415.5092456054688 7138.687578156997
412.2495069885254 770.0898623799001
651.0805267333984 4749.893795345811
1822.2842871093749 5000.712049629293
2332.8496630859377 10434.691331656446
1777.7112866210937 176.5899032667239
466.85525482177735 2824.3639400582197
2751.6705664062497 544.2624718051843
2249.2254638671875 1662.5627968460321
1554.8713354492188 356.1273016369423
350.45002197265626 91.20208032274824
1348.2853515625 388.667363014223
1399.7983520507812 1169.7527224423022
1421.4997802734374 5256.281860399856
279.5477700805664 3311.7458412457345
136.0860609436035 1302.2037944254669
1078.8107373046876 448.98485357095933
808.0016760253907 1023.8927371840576
460.0157722473144 399.36935887120814
39.79814964294434 1583.8927150021905
430.67031143188484 7979.793259676454
251.65453651428223 803.4653002201595
916.4389306640625 6982.45230856536
733.4950732421876 4422.905283062009
586.612543334961 2850.2205291614227
557.7265130615234 1787.0476979375512
452.56412780761724 4547.5968583473905
845.426870727539 8944.076780385612
566.0795916748046 193.7777679401681
1107.1979760742188 33.66348163533765
289.47887788772584 931.5388949923504
398.85757812500003 1692.6988777404806
291.4093301582336 817.4264020008899
400.48719665527346 1561.2616281590324
448.5336932373047 1403.7241424363874
545.6540197753907 1249.338318038473
544.5744421386719 1185.1190340636501
629.9364697265624 170.65582320501937
257.0817236328125 8.516336955285087
992.3354272460938 513.6828581171079
1237.0677734375001 2594.09170261384
997.879716796875 489.30692898645583
1280.6240600585938 6785.795481230154
852.7295581054689 68.40020913081757
1309.225007324219 4868.549602905331
750.3506762695313 386.09592306476134
651.3413500976562 74.97221813135775
508.5644146728516 417.6131476631642
841.8560522460938 4.596511971479519
1113.9302490234377 145.67888863623253
892.10125 835.1377515624971
980.821785888672 295.0910400546315
1170.1230541992188 1511.416914796878
828.2384533691406 60.24160610300423
878.3772375488281 1064.244629945589
713.1653918457031 434.0808969430955
953.5661157226564 503.2791637692505
638.7727478027343 409.14173145178887
647.4316662597656 308.6463504082577
975.1075732421876 97.8601071586842
516.003999633789 224.8800269833998
1170.460244140625 273.5635238877284
694.6384362792969 11.300110648347193
606.8388537597656 294.50494027871184
867.8338098144533 448.0076069707393
1120.0995703125 835.2348361221334
901.2818139648439 216.62500016546807
990.2763232421877 94.5498896904238
1220.2864990234377 5433.680226221681
1060.108522949219 395.6708592617593
676.7187170410157 94.45346092332856
1035.667116699219 235.0973103153782
406.83754882812497 1167.073070070742
587.6643524169922 2146.9922369366977
374.9159631347656 37.01550457753117
359.60009704589845 129.95778736293323
512.5106018066406 929.6034021932288
543.3765002441406 763.0577387619627
502.9218237304688 1029.0093927791172
655.6885302734377 918.785196984312
474.3267077636719 822.1576876698738
391.0950927734375 193.34644497931004
691.5277893066407 2.3341401654855805
758.2686633300781 76.23624004352314
542.7026135253906 858.3368542426273
475.8476434326172 1033.7740328361244
393.2614926147461 944.8558362733093
1020.0236242675783 76162.95996240288
879.8759027099609 12571.813193106158
411.0299407958984 1933.3661064121977
3208.07 247934.28489999982
110.00242813110351 2704.252531530586
268.55114847183233 989.0302624407373
380.60708862304693 1324.443998490764
465.94270080566406 531.6390461371249
455.1625549316406 1356.9973591643952
518.8232104492188 1534.8208395062009
511.3373962402344 1271.8213069260478
483.8633660888672 1379.129578249501
479.5940576171875 2343.1352579681634
679.1628295898438 78.09558085814038
662.1380187988282 17.12319957945534
414.77591491699224 1240.7361699349742
723.04951171875 481.8239357852956
765.3886376953125 213.49190839884375
1051.7049743652344 4006.260270105632
843.6038134765627 1883.2290047769739
729.2861450195312 429.0637881518919
1008.3978942871095 4173.4320625394985
834.8123840332031 851.9169258252173
848.9934399414062 225.19684479218208
848.771591796875 1956.152092182256
1437.086484375 21583.581073297104
1195.9340478515626 2710.863373123375
817.3414916992189 245.1888822056353
849.2886352539062 2884.9107028879225
1615.2432934570313 60396.358810846825
522.0744836425781 1219.7916928325437
497.29336303710943 1998.6833885316985
506.72127685546883 2141.72021588817
570.0073553466797 120.83823647417196
704.6283599853516 31.678436124707154
1165.8126220703125 3867.269973769784
807.2343225097658 22.711681940926265
811.5149401855468 6.175522281410005
500.26019104003905 769.49700113513
927.5578369140625 926.7252933508172
1074.194970703125 1747.6604745125846
740.6226318359376 40.670824699998484
848.172811279297 219.84552535934623
506.7857397460937 912.9015226907804
1255.9431298828124 2505.690245928989
1233.1728515625 2384.0904245376587
712.2202075195313 14.286831195407729
986.0195959472657 1598.4327082198968
1271.3938745117186 3919.526948654432
959.8748962402344 405.01980134133066
1687.490908203125 1260.8956002388993
472.0347106933594 1222.5714562970763
1014.3110144042969 881.4358657018671
1177.566611328125 1716.7256968346626
803.8573779296876 535.5809562893171
1177.1106591796874 141.3564251415504
1229.9728833007812 4099.471672815386
788.9847473144531 196.4273078397295
1001.0618395996095 358.6539193509243
885.7127124023439 542.2977636559544
889.8891735839844 534.1102976312037
948.081551513672 895.1135598290675
1252.9586669921875 6730.780321698778
1228.163229980469 6861.930467268718
794.0504064941406 48.296849896683305
1023.8160803222656 911.06900711192
1183.2639501953124 1659.4257536899872
852.3381579589844 940.14855734819
1114.3072485351565 6350.9346360373465
217.91898681640623 14864.239346339044
448.9547088623047 0.002051287153734727
531.3678845214844 878.0622677320855
536.8464624023437 970.5429048485836
634.1480712890625 434.8029309660196
683.9328295898438 363.55698744993697
742.8817028808594 847.8752271185522
534.1807067871093 1283.0217662710356
375.579541015625 2248.6999302887907
310.56027069091795 699.0592859375325
144.9170001220703 6547.560908755126
513.7094787597656 1175.8398469269664
550.5180224609376 701.295134379413
458.73779235839845 977.3256266266104
509.1065637207031 1435.9125130531306
469.72268310546883 1787.3715238006153
487.5754052734375 752.1083959161983
498.41817443847657 1338.2299614137291
432.1402160644531 1836.961079001763
539.2654553222657 1423.8958620359285
448.0114306640625 1763.0399548788296
432.81210144042973 1615.0671906343148
478.8702264404297 1164.841443227545
1040.317860107422 4995.964899793981
123.43722724914552 1255.797075107581
812.838076171875 0.026219326114672217
773.0831835937499 24.175083572768674
1074.6621826171877 128.54610300600632
1161.9085546875 1607.3239872451702
1326.2844873046874 3331.080405682785
1268.6905786132813 372.85375428986833
677.2684350585937 115.1664860916209
665.4403100585937 157.7458114242627
819.2826904296875 2.9491521602869817
915.3882067871094 467.06960587674314
827.4987194824218 182.28457561433535
747.2447082519532 3.0810491207612944
759.7677160644531 175.09333815093223
1586.532177734375 307.3772561097129
970.0994714355468 166.42363724227064
1131.3677734375 938.333304176325
808.2599548339845 389.66938315633774
1314.012116699219 168.68511263471316
1044.2268383789062 664.2558599470212
1041.564597167969 1117.9261625402057
700.1521203613281 3.4146591590181328
1491.7994067382813 125.45328941445884
1072.2011071777345 190.40944312037152
482.6590478515625 1394.3467073518998
538.4970153808595 1332.467886105219
504.2183569335937 828.3829776020124
470.3655090332031 1651.1618561306968
712.4646130371094 4697.099266153153
914.3326855468749 469.4725156105977
866.3357824707032 13.426490102006097
3136.744345703125 49843.087175525776
2301.1749975585935 2583.180873168974
2499.0533349609377 25903.82898719611
1684.8116650390625 6270.792393885634
1339.806123046875 3623.302822647957
1438.2460009765625 16836.100262574208
967.71333984375 150.96201779518216
1373.9141821289065 6738.0814955663645
4154.04 106249.92160000003
901.0331115722656 1227.3189064348117
1066.7871282958984 4517.570122712027
1229.2579760742187 5004.43394911581
992.7552355957032 2232.067763617521
625.9681825256348 577.5282511212044
1372.9221459960938 733.2101774568573
1867.31 1068.6361000000036
877.0377551269531 527.2646896097673
1387.6960595703124 151.38695009730108
1379.9160595703124 403.36466318323903
698.0564001464844 3.777580390585835
1166.890625 1096.230712890625
783.5666650390625 270.05449793837033
1294.174873046875 33.93210402002261
1165.2786181640624 1205.574356596975
2054.65 2056.622499999992
1190.2786181640624 94.5052648000968
1380.5821459960937 377.05305411702045
499.56179748535163 0.19202144384420217
1280.7338500976562 371.1845320595836
1177.88322265625 489.1518400730165
1174.3493774414062 657.9544376434409
594.9754315185547 25.246288424733248
1088.1379272460938 140.70877001896392
899.338095703125 0.4381172982216363
790.86533203125 83.44215889930767
1493.5954541015626 11321.92738785267
210.7067225265503 858.096105136516
953.6291735839844 4405.086599144871
1425.8669995117189 16606.703563153347
681.7699188232422 2230.6805679631348
748.3239819335937 4182.987312926114
636.0214001464843 4353.175638630339
1124.8590576171875 1306.1677163177696
960.4149865722657 2170.1634760621887
767.391484375 213.408728765869
709.6921533203125 1545.1068105938186
868.3100000000001 8591.43610000001
1127.2913842773437 8969.721892101781
548.1325622558594 669.1243354469899
442.1070770263672 2692.8754547473904
691.2778918457033 661.6268479013444
689.8874096679688 790.3177351766159
712.2700610351562 1912.3075618689613
498.08430725097656 620.7917451637389
509.64408020019533 1250.0410648902198
527.3111193847657 1346.073960798917
505.5466876220703 647.8711110084696
927.6051123046876 43.62750855753434
911.6822302246094 106.45637313796412
529.6087048339843 1551.6741348561682
776.8786108398439 4.500291968828401
999.671925048828 1546.6974793649913
1214.7170703125 1042.1875492080671
921.8052124023436 230.88157013788887
1074.897880859375 1095.7502916001365
1160.32244140625 2467.8598278354707
1190.9847583007813 2305.463435434388
1007.6652600097656 1626.8912500798162
928.1022888183594 357.12348790470423
617.9438464355469 36.67699599623796
1244.437802734375 5265.272472015468
961.2604431152345 314.6918784678363
1032.5815869140624 1326.300811697989
1159.5816137695313 751.767903483158
1076.4680249023438 872.1375531685851
1684.0956201171878 9197.650080706804
1081.2243579101562 315.97345170622697
1062.1962329101561 282.36658840971955
981.1336572265624 1752.7906572229629
949.7382580566406 150.35031548553977
1730.2584765625002 5889.261419508372
913.3124047851562 427.97659577322736
657.9539233398439 197.292269542986
773.3548815917969 820.5428086199747
4026.29533203125 308807.67800225876
1971.0148583984376 35715.383746162595
894.3870202636718 4305.0631098798085
995.9199072265625 1928.958250789856
1135.9864990234375 2917.458287745113
1037.2300317382812 1426.5705024912425
230.67971557617187 880.8855166824593
1369.6180883789064 923.0605537519452
373.10954330444343 2489.0576692912105
365.787352142334 1311.355864863323
172.52737808227542 5260.220571489321
1512.3897778320313 1049.0977080083471
695.4200854492187 604.1721993237087
701.8795446777344 3.5326881955998206
579.8021868896484 407.95165444069113
1342.08 1770.726399999994
511.91176330566407 1218.831217110712
403.7840505981445 796.1398006480688
2055.935339355469 5485.573956389563
1752.9354760742187 2215.0694123604367
2596.74404296875 9851.745006189363
2269.263332519531 25836.276272726827
3160.0942138671876 67551.01766531523
745.5776293945313 654.2151254439916
439.82875457763674 971.6465411812022
610.4560025024414 652.4958081552811
501.002769165039 441.11631259991594
787.1884045410156 164.1369782046686
818.0422337341308 781.636694576972
218.26552642822264 1138.0147071649449
457.5414276123047 1403.1446453242097
389.8183544158936 103.66590680035404
1099.8569464111329 5797.7646098370915
72.28350357055665 2.94635999229178
461.8101446533203 3.2766236659441472
43.16688378810883 793.373342332828
363.6607354736328 0.11510041885114279
741.1880383300781 77.650668472172
771.2587683105469 32.96174131198068
605.1339025878906 618.3228005085143
790.7835046386718 1460.5005177024166
631.1520382690429 832.2048960307643
784.3138134765625 246.05644764807312
323.27876373291014 516.2545775049198
361.7336187744141 1007.022560519846
1610.76375 22.693314062500693
1704.72375 714.1588140625058
1982.6982568359376 14957.716380968332
503.5996646118164 806.5790501613126
920.6882641601562 1004.1460854838414
530.6188381958008 302.104785663754
378.3890328979492 31.48295182029612
454.53970825195313 2066.6381258175384
370.870399017334 848.533653409338
48.56815782546997 2358.86595455976
191.40841171264648 73.81538929939013
774.7316357421874 3632.2757303123767
614.0945877075195 894.3336843832433
347.0096771240234 1443.264632220949
336.67063171386724 1319.823000069473
366.34829498291015 879.2236104205116
2133.0249993896487 18762.15079220575
2679.2479980468747 29156.246170999937
4027.92 425208.3263999999
3115.2266650390625 7186.518320399311
1546.7905712890624 7.787288119339538
507.75746185302734 2729.282792037894
337.57172515869144 808.1668104529807
359.2597964477539 825.9993002245394
381.46335449218753 994.5600098854318
701.0275896453858 16121.992991260546
2574.6734130859377 641.4360047155526
289.68244598388674 106.45192087541491
258.13488700866696 1752.6876857770822
270.31852836608886 609.1750420155604
431.06378845214846 0.8764920623305802
1161.2627709960936 1500.5729109010833
1905.015 49.2102250000014
1000.8303887939452 1534.2584420334856
1182.9212109375 50.10925459136873
1185.5662109375 19.65848545074423
1365.7784521484377 33.39050923178206
1345.427451171875 212.35917934808836
550.0855480957031 3.665126093866123
794.8857141113281 7244.441662338578
305.8967156982422 1163.0340001665206
322.5933671569824 751.1235237919698
858.0437951660156 16629.70276518455
471.62510803222654 467.6452974054686
3737.6800000000003 49426.18240000007
170.9616471862793 121.84523284017584
1690.7845410156249 4253.056090542684
1113.7315161132813 1786.6247300818018
967.4705871582032 1058.162699832061
189.75865417480472 11184.892932865934
1698.8688110351563 11692.354026950728
426.7553759765625 8694.559909272217
440.4303775024414 1565.7550245992966
1388.7058227539062 497.03033908024634
697.7794415283204 3049.310077924201
681.39232421875 557.3223557926183
453.00562072753905 288.80892685625025
695.8589685058594 2931.251291249528
735.2936950683594 94.21235542599068
614.8134777832031 4.78087940454644
775.9152842712402 4106.850790035949
951.0255058288574 2398.501079319283
49.23777381896973 1619.0784419065658
432.6650970458985 300.4988604281187
522.0457415771484 322.35539551453695
1145.1646496582032 3006.915647107596
1835.0249975585937 3193458.3418992916
724.5975268554688 761.6234885383217
950.4532604980468 30.76631910252675
635.7966033935547 249.5326787732649
568.5485229492189 6.494969222694635
424.2608087158203 1071.8546459421077
240.5888134765625 11.636193497681573
506.93925231933594 226.826120700628
2050.52 3914541.3904000004
780.3227160644532 1134.1594532754402
580.4760156250001 156.8501846252455
592.239732055664 60.22175856788835
937.1475 2585.9767562499965
731.3245703125 659.2276896377571
848.2176049804689 1074.6854232165865
1042.202292480469 3943.5520697085963
1106.6274963378905 456.7839127868825
940.61224609375 375.88500152931425
927.2672802734374 2329.730344994564
669.9430603027345 16.458759707249886
845.3501965332031 764.5116317524953
490.03172912597654 195.11259121009212
663.3790844726562 11.418211873346538
618.546064453125 41.65328404321618
757.568563232422 130.67774657113722
665.401615600586 1568.0320470437578
1258.7841406250002 7959.469564019781
1291.122705078125 10378.983220598715
411.41232421875 73.74817532386827
494.2688543701172 769.0164379457681
646.0931005859375 222.215650140978
800.6167138671875 1630.8097988846052
539.2121221923828 3.1965070549700085
367.8104998779297 173.96291347009208
423.0268780517578 1087.2267710136505
2264.3233349609377 577108.6354048718
117.75975128173827 10766.085986048187
569.4634857177734 5261.545904215658
80.70637809753418 2571.1367797700946
788.42953125 208.21137209472565
1537.0285302734376 99.4302085077508
823.8271203613281 4924.2330367835375
312.9766555023193 1851.0081717661105
1247.6492724609377 642.6593867597827
1517.238681640625 232.21741814431897
1016.4490087890624 238.67187256453136
3080.982666015625 7572.016413748263
2899.055998535156 48816.25178329697
1312.826142578125 4202.428761559388
2810.602666015625 95726.71027663896
863.1908959960938 219.30956139851105
1954.7192602539064 2235.468350937853
2954.857497558594 2317.7005413207944
1045.8615747070312 1234.7089320695497
925.1560620117189 355.09399890618937
2919.1774975585936 7194.856920422397
1534.5887548828125 73.76671043703571
467.5830462646484 1326.1945193627366
1075.300030517578 5882.8853186044535
1915.3733325195312 59842.206442599825
804.1905737304687 1282.3150097529974
796.130565185547 1924.5273109395537
815.5879724121095 269.3546495456833
345.3206658935547 119246.36229316803
447.36652282714846 1064.9438323910226
654.2925561523438 5581.2021662507095
293.5612275123596 699.0086906532106
397.3247372436523 1821.178051323313
754.4808239746094 3420.0067727492487
165.73315505981446 39.27334550432905
544.942400970459 3031.3392108977196
589.5279541015625 341.21647967398167
407.7039849853515 1135.958603892803
717.3294689941406 1495.4099682751337
771.9749072265627 6565.065658944146
899.6557385253906 7629.020012544939
644.7634655761718 202.67891240084464
937.9188197326661 3854.072943385212
1322.2259423828125 4.95481949160095
1317.9459423828125 4.219152694725915
1393.8021240234377 51.80941857397556
738.1243981933594 3828.590098933944
1650.5080004882811 30.338069378905285
1216.669998779297 277.88885930176264
1477.585576171875 1412.6755361718097
1591.40228515625 309.679567721941
1376.3227905273438 514.2558294667264
559.702421875 1623.8948027404765
2889.5 6480.25
2884.3 7344.489999999969
1254.6904345703124 93.9045221615055
706.589575805664 179.83947707203166
927.6555969238283 1793.0484718773102
1016.5129907226562 4554.4964212002815
972.2585607910156 2184.7621393271834
1231.3586181640626 1992.8529722219625
1089.9575976562498 12330.41511827124
1438.3264794921874 186.9651630775705
748.0764501953125 253.55943838236232
1420.8957202148438 364.9735061095286
576.8213250732422 1168.1818197489838
1358.2791027832031 9745.815547289369
860.2466790771484 390.19368748116574
664.2198828125 4067.903348451229
846.7388977050781 126.81242489669523
688.3952362060547 998.8610944710737
832.0844885253906 62.6553219046729
538.6667810058593 87.10897679258836
593.2051947021484 717.9615909497737
904.0226739501952 9211.647115670516
537.3127072143554 3929.696676793125
445.34845916748054 1572.2446903929624
516.9671557617188 1227.3001754236725
697.4880493164062 506.7879235805591
1115.5229052734376 2254.0745236749817
643.128539428711 1147.2758412323888
489.5087670898438 1559.5574767642097
1224.63201171875 70.02322787513839
1951.55408203125 8180.464077209874
942.2672558593749 825.5705858506179
611.3079852294921 609.695593426978
749.2382763671875 0.05677562716007016
1989.3787475585937 922.8683032287603
227.52407775878908 1261.9601006124926
1082.5612475585938 926.5176501892132
3692.1960009765626 47003.97399255466
727.7509643554688 1242.4945138694313
1009.9556335449221 49.62309875343027
725.70896484375 1390.621303024675
615.2826330566406 429.2092930657994
499.12418518066414 435.799644371205
880.232137451172 1581.4828917024872
290.38187379837035 877.2333996956609
1835.5691204833984 7128.573415946901
1142.2905151367188 1910.5190670134089
1668.3010009765626 136.86657815038944
2018.4754998779297 3785.264115270631
2002.0554998779296 6075.3450992794305
2000.1354998779298 6378.3383797481565
2001.3354998779296 6188.103579455217
393.9303405761719 1942.1348817322018
793.5935137939455 4409.821410234925
985.7837817382813 2939.398322602323
1335.2066662597656 70115.50959326714
1025.5822204589845 30421.561820018294
702.0429382324219 9595.585950137116
937.0968383789062 524.5548122419427
318.11094284057623 1217.246309473543
52.66473300933838 765.3374524779764
2514.9885717773436 1612929.0278161517
2208.728330078125 36584.85171470268
1333.7747583007813 189.74396624494295
1538.2427783203125 9651.64349209406
1227.681044921875 822.602337810606
1188.1814282226562 448.6529015515375
455.71008666992185 691.1595429030208
718.5567993164062 2156.970889736565
935.3960632324221 1197.4324398145468
1002.2996203613283 5.288253806235023
496.40367477416993 2153.3010325469345
926.1805395507812 190.97748710751975
1637.5720825195312 55.17395809665322
2644.7506640625 5547199.434434034
1018.4620629882812 463.88273072076584
812.4846844482422 757.0925899128043
744.4571325683594 1263.2954252631791
422.4535400390625 758.8074563795334
1119.970771484375 8.543061256371475E-4
1155.9182556152343 8851.374626480387
995.410518798828 21.06333769591033
836.920493774414 733.2996574215504
735.4935046386719 1056.6722406760466
680.6550585937499 1548.0244142612437
1004.1108666992188 1945.768560956243
908.8977630615234 123.25966503807444
465.70873481750493 1175.8908678162024
2061.5649987792967 83194.74992918709
1367.0640795898437 1843.4932614672778
1335.6013977050782 4147.179977539511
1707.8282421875 1778.4571569961456
1198.3815100097656 21.330449789895034
2540.5021679687497 3539.9920164188147
476.3618829345703 1904.2852610161465
974.7056475830078 4263.352457554373
2491.17216796875 43609.06343087204
2487.55466796875 68877.55230499305
1461.5929028320313 7815.814829666657
271.45648468017583 1643.7766344888214
283.44177581787113 995.9215135295068
707.0914611816406 955.3377718860285
1303.090908203125 9.553713520145925
900.6050280761718 302.58504823077016
1614.1873754882813 2133.2736544954887
503.247578125 45.59520117797827
2270.694167480469 78011.74807942836
978.613643798828 5683.102701289969
94.92150451660156 9010.09201969521
327.98989669799806 1024.6467134048353
395.6944682312012 1962.98014531604
133.09708724975587 118.87350643943596
766.37396484375 1064.4581700168644
894.450146484375 183.5985302948964
777.2888830566408 610.6393005883813
798.8967663574218 846.9982084544941
1168.072155761719 2908.212384188329
1247.893125 5344.615172265617
636.9217919921875 532.6036848518593
672.4032153320312 1062.5503706899253
522.6082659912109 1398.1417721840323
455.0255218505859 2398.499510007434
491.29252441406254 1823.928470923449
450.7413214111328 1541.243844543981
460.0559692382813 2494.406208727509
409.0824407958984 1150.4008223637347
1129.8689929199218 446.51946021831645
997.3791760253906 1064.1181567824501
1257.549801025391 3300.5253622221985
574.0462829589844 838.317730491196
627.1941223144531 1076.2256107190624
1440.123515625 3122.1815061096213
1248.1579321289062 7368.860616385479
872.28998046875 388.4848699222586
987.8514709472656 1455.310268887319
648.019525756836 80.64891763213298
938.9737658691406 9795.80633031946
822.713446044922 5.22832898948352
314.65751976013183 13146.34683754502
801.8416735839844 970.8413050469754
727.1725048828125 774.3694844970931
849.5209411621095 2160.302910456101
756.5606677246094 12.6783546450751
1443.8943505859374 356.9964840643147
1651.7094140625002 176.63967456207422
594.0699060058594 1290.9716544277808
1529.44212890625 866.8389545322412
1344.756181640625 3051.8794669236104
66.36672929763795 4404.542757665955
1751.7566674804686 540.2525066135037
1257.7324755859374 59.7911786871185
1936.9571435546877 3974.4017487842807
922.6816931152345 53.55761565960848
1161.4893481445313 210.55901727061791
877.8261047363281 491.681631164289
1371.2966162109376 823.8842409422102
1290.6320751953126 643.5316088962738
733.777294921875 104.50369911432361
1252.3919433593749 8392.036041471942
1054.4870239257812 2071.4309911324167
733.6456213378906 2148.7284211502238
596.6724682617188 2054.5851334848903
1980.8166235351562 22856.413319310697
992.9262036132812 326.6621158285679
2174.850524902344 7595.031009797007
1599.9108715820312 1094.890419460832
1134.0844384765626 437.46071384069575
1279.2475756835938 217.63402321129223
2651.5060742187497 2070.802790802402
1306.788171386719 14.35024245515397
1834.2951245117188 334.71158089929287
1838.9872680664064 528.4144931568163
3128.3366650390626 2466.446839442266
2655.3049023437497 2530.5831998142444
1524.3439501953126 0.4304013462304115
1584.75681640625 18.004607010269318
1285.2220751953125 316.0546103611221
2591.49490234375 210.39785801735505
1287.7790283203126 231.67797887384617
1801.6361254882813 206.32089098840143
1804.7961254882812 125.52680407434268
982.2456237792968 1207.8666664901716
1914.5921923828125 1632.790916427634
2587.0099023437497 360.6238089939069
2698.8213330078124 633.965271503476
887.6050109863281 415.95557686779654
1993.5281933593749 1637.9671327561289
416.5917395019531 237.4144915756725
229.4049186706543 936.059001549278
47.23567951202393 2231.2094189626373
399.13288970947264 721.8416153633614
285.4028093910217 1196.9655980339749
1784.2580444335938 8787.554233414075
641.7531884765625 1870.2867069437257
285.9859620666504 1156.9547765313444
250.54097894668575 867.8339214196103
453.01568420410155 2207.525930808713
394.00232788085935 840.8649883291869
503.44917022705084 3197.996348009079
403.28114051818847 1348.274641645021
1668.1236669921877 5166.207246649956
1876.33533203125 6999.776666321201
1116.1862890625 261.99595361480743
893.3815197753906 4676.0322467921405
2948.742080078125 29329.275135967302
561.7317767333984 1464.4569119824666
891.0740051269531 836.7131793955341
330.72235832214363 857.1803022169554
547.4420269775392 1336.485391510982
750.2477990722656 2475.2814971536563
1114.493878173828 7311.296869752154
216.9899459838867 22198.00400428148
1024.9979772949218 1849.1739567280576
1053.11806640625 1590.568627176292
1229.4161059570313 6986.267343386222
607.5399328613281 42.7707218306793
477.2276556396485 716.7584225492476
649.2464190673828 315.1896359309884
771.8340594482422 1863.2984237178873
456.22477844238284 1209.3160343813652
518.561683959961 3073.4068853552467
533.47068359375 932.0391602329264
706.422973022461 2870.4978197519467
513.102826538086 1217.8127156309154
116.00772121429443 1600.6177567607049
488.7911853027344 1616.7487793590428
372.3806298828125 999.7845666076889
224.02314361572263 1370.7131631904256
542.4374026489257 1645.3243038653766
420.261791381836 2184.460144835023
442.3073974609375 942.0358506208644
60.04680946350098 1447.5597103519476
550.6024652099609 1552.1657475323425
1173.0813952636718 1290.146166204581
104.98380584716796 2023.5427884957037
821.7405041503906 1785.8649894631524
864.37544921875 763.115805865862
491.5916668701172 22377.666796980116
606.9028247070313 1231.8117135453726
660.2347314453125 1208.6238976795441
1070.7663586425779 4125.960682033901
952.361729736328 12625.158309339646
83.28865821838379 4262.608891956933
1447.7117749023437 59.47147214441783
895.4395642089844 1645.1489515570997
798.1145581054687 1512.0775913329664
1198.7138061523438 4940.149045590311
1194.5992626953125 108.17533648111782
1555.4518505859376 7664.678465827001
1408.6285205078125 12853.092362247497
632.9252465820313 198.09868377662264
1034.4531311035157 5557.235662269616
616.7901727294923 3995.4822635674377
1306.5063354492188 3421.5087925793177
1165.6108203125 2744.626148329165
2117.6604272460936 1815323.924308679
135.15978897094726 23.427642805763778
181.3420759582519 21.69625637869459
517.6874743652344 1044.0993128973853
1399.8000000000002 53916.84000000002
827.1406420898437 3951.298876877128
1414.8649243164064 33905.72609700276
1764.0433349609377 226534.7469951063
256.36509574890135 763.68793296739
584.1097790527343 252.49912175292084
572.7635949707031 741.8217589199073
563.2351452636718 1915.3625100919064
237.62687927246097 28.87042635270988
331.31909423828125 822.5943553125917
330.48854736328127 56.421920713668754
580.4919470214844 1122.7896144110077
469.8433154296875 1099.3657316951994
679.1313159179688 1359.2998659406226
510.35370056152345 2270.1698501809706
735.9604357910156 36.47633583444556
649.8373840332031 793.1329380932848
79.25297659397125 742.7247332315451
1139.528251953125 1330.188405594735
1128.5480444335938 1975.9763536777548
225.42652374267576 1885.8629643731836
647.795078125 973.7471492248517
1724.3530004882812 74.77060055566572
831.1486450195313 318.67087463870564
1960.746999511719 21683.44615280176
1114.9592919921874 2212.8282098762797
658.7987683105468 635.1020786654977
2338.2633349609373 55101.30191366112
624.5563110351562 866.930819858463
442.8127313232422 201.27859250651332
441.4001254272461 707.553327286239
518.3677917480469 938.3321823910236
531.9493383789063 843.9409406232862
599.0334753417969 1761.1891918875665
520.315346069336 1273.3945261512545
432.047494506836 838.2475743316938
462.4961181640625 1406.541152763961
1514.1392065429689 522.6158774850384
1545.5189379882813 131.8147849169297
709.9458129882812 2709.6383854509936
667.3456726074219 245.05796611402184
442.6919989013672 28456.990493338868
420.6533331298828 44797.133424989144
786.4804772949219 240.85558499343432
872.826572265625 1237.1700185852985
1550.1786669921876 3578.5918828315885
755.4559686279297 2975.0513583173915
702.5385272216797 1257.516051607551
1127.9641186523438 5189.1682015336
867.5928454589845 1798.3667562655837
718.8631988525391 1305.8683971711325
652.3134783935546 387.5591329610397
427.3067822265625 7.253421975159547
1160.8081640625 739.3959416519135
1210.0399951171876 439.3218046875208
557.2453051757814 217.70101935582744
674.438359375 57.17840894165033
1152.5438183593749 181.0688243454904
979.293172607422 114.63615281446148
999.2165661621094 163.41618068772598
814.1774340820314 666.8049105878409
833.5640808105469 597.1141466334824
575.5160760498047 109.91266139347812
748.8046752929688 449.2417894364874
932.7286083984376 2945.3839463701515
1591.8851904296876 184139.51979256552
769.2032849121093 887.8442300289317
302.09652297973633 778.6040298203824
608.7762854003906 38.73462341739077
813.3045336914063 387.91139311295046
571.0930041503906 15.264616568865204
410.1003567504883 15.207217473462265
582.1325805664062 14.956933075338956
604.8003857421875 10.23753139879721
1491.321298828125 8404.984248561952
871.5407446289063 71.55900143337792
262.9900994873047 1.0198990455422503
685.0895959472656 98.21610848845457
789.3342407226562 2567.0191631497487
493.00271850585943 24.972822331680337
530.64986328125 1966.9346269718205
749.8311669921875 3043.600135443903
801.2564282226563 162.39862164431167
1047.401280517578 876.0841949991068
594.2044854736329 95.95210483627166
493.2277935791016 1074.017513693977
936.5283129882812 155.54297691827293
906.048212890625 481.8809572953226
837.7259509277344 333.94086949557123
797.3374377441406 658.567101535858
501.4382501220703 20.809561948791497
732.4864538574219 90.50756020696252
1076.213671875 2380.1058119201616
851.3693713378906 2364.938044071978
718.9797131347656 81.36557513112069
739.7169445800781 2142.12121900356
1448.2910009765626 10142.302484302716
1110.6625048828125 0.11390295412538595
1105.9946044921876 99.89211895525638
825.8125482177734 5503.778001940199
568.7572917175294 5075.523483421225
74.94812393188477 5617.221280909158
459.76399291992186 1618.9362657480979
2165.7577099609375 473.3979427442797
2362.860712890625 9242.762525898816
1993.325712890625 106.62034669961986
2885.29125 23015.544826562433
2344.7057080078125 18.44094371416553
2505.1723779296876 10988.830348916239
871.7371075439453 5969.554550675876
228.77529342651368 974.9823006003196
2146.4306640625 2869.673752784729
1474.6654809570311 641.8378551385513
987.3664038085939 1131.2187927665764
1006.7534741210936 409.92181016522073
1189.0542822265625 25.545768825745213
1441.0542114257812 257.7377045036838
935.397119140625 213.24412939310008
1849.3404687500001 2566.388106469737
1193.7809497070311 565.5335689683445
1056.297783203125 216.1551787423153
2502.7616650390623 18560.88391292865
1409.6948779296874 234.24676158716875
947.9660681152344 4.136878911866118
2296.711708984375 1873.8761390534369
2069.6714208984376 75.19354039786114
1550.2482153320314 39900.77547803851
1593.1348828125 24606.664990248075
2282.31404296875 1068.371787048717
1417.1210229492187 16.982830147987528
2505.2040478515623 432.47162576010913
2191.5051538085936 2351.7501071281636
1498.4370532226562 29.561547745996517
1310.86150390625 0.019181167984026425
1319.9498364257813 145.20644216542686
1171.329140625 7.133489801025196
1692.1833764648438 116.99934470129432
1082.6169079589845 40.743864004075625
211.4652749633789 1889.2301276421329
694.4197143554687 2077.5624394370634
522.6775982666015 2843.278526617936
1110.3529431152344 8036.594808100393
942.9427856445312 290.94856156840996
523.3970556640625 1989.4226434347424
357.39194732666016 936.8528884539462
626.5285137939453 1330.1693060784378
76.47700180053711 5848.7318043993555
40.82438949584961 1212.7381037586406
609.8155163574219 1035.8409873393791
294.88929656982424 967.8758679203498
514.6102258300781 39446.02180427462
820.0931945800781 24.07673942897447
1052.0991430664062 118.82868188667972
853.9917626953124 1444.6261030094429
1125.6533312988279 28.58686620009114
1145.6254162597656 206.6286577050099
639.7325378417969 27.746157588101685
870.9219787597656 1094.1554891693997
1221.3420092773438 5425.49959729891
753.9316931152343 170.78064483441358
235.45454101562498 55438.840884878635
485.29341064453126 882.4814511344484
443.69101257324223 1391.9605428099733
487.1734606933594 1586.1532331433884
438.90582580566405 2033.4845462691144
461.607099609375 806.1567925919542
482.3683984375 1991.9798580337533
556.4327160644531 1727.8390937783774
475.1312701416016 2196.677838539527
803.4293786621093 1645.9753157425089
835.9339953613281 2310.340801924826
977.2745458984376 3810.031684044098
1622.8496166992188 12577.70847451214
4072.4766650390625 8560.567512293843
3531.645771484375 1065.7463958100332
621.9677050781249 64.51776171197811
810.1145837402345 893.1381050194641
42.54663520812989 1810.2161675336777
1233.844500732422 3382.0620950612747
905.6250024414062 2956.640359497082
910.1850024414065 2481.533981762701
1211.6947399902344 3214.2935425602877
935.2964697265625 4941.593656017513
2104.854997558594 24694.55179230955
484.8091662597656 103.85309232109948
950.6817004394533 859.5626891219615
368.99026428222663 961.6037092861528
2621.6546630859375 205.7886911779642
2774.940439453125 18241.084895115055
2647.6746630859375 1044.927406607653
2779.4271044921875 1646.1598498878732
3770.253330078125 58441.452418315916
1197.3515673828124 7.014195327783209
1213.3315673828124 177.73068888246772
660.227109375 126.04798491821413
45.712504323422905 2089.633051518958
388.9781832885742 1522.7021794601098
805.5449060058594 5999.291585641157
542.2596380615234 5146.679531063615
514.6926263427736 2237.987602344453
730.2466351318359 115.63485598786616
1186.6887231445312 177.19009152293947
1089.3634350585937 1269.964760823067
1026.44234375 554.9631679931658
1373.787507324219 912.7947136841374
995.2944348144532 1998.5875585591832
1247.367625732422 2770.166821042422
1046.3313220214845 40.08563853973219
997.3211022949218 1821.4883093205256
2225.4886669921875 27063.97868800737
1686.2226538085938 1582.237270030977
1275.7330432128906 799.0208460043099
368.3291470336914 1419.0931632092404
582.2429772949218 2280.7332176533505
600.6841479492189 2432.053263494545
387.42530334472656 2.4796695561293656
476.1654864501953 61.37960256207318
731.004715576172 0.9905910843149099
508.1181231689453 1016.4540702705415
804.7165588378906 589.685514673629
904.6001806640625 806.5497383138917
1053.5358923339845 304.99505657018864
1184.697880859375 61354.24018222507
1488.2951416015626 10343.878221846204
715.2344494628907 60.30377514439907
561.3381945800783 13.40881893336902
451.64807678222655 1321.4623216308962
812.1459326171877 165.22704828188282
150.1120001220703 22533.61258064843
984.3617041015624 3556.726337669586
923.23908203125 2003.5397774051712
727.5084851074218 90.08885495603283
835.0573254394533 98.85677741694518
793.1759936523438 283.04718958597687
1106.6178564453126 3178.946111821383
792.1287219238283 78.69957470476729
1102.9409130859376 2922.3848779821515
799.5528283691406 208.72076813150952
882.7117285156249 978.9559324799504
687.3766479492189 763.0495785214007
555.8706591796877 199.63827201654772
601.8946337890625 2927.3906528196594
818.7879162597658 740.4975014855258
1313.8214624023437 10035.739395205028
1528.443447265625 4039.4353954773796
873.9073193359375 4636.613160017995
1215.7580883789062 4521.474678458986
838.6441625976563 152.6667179131554
675.9564916992189 963.6994076206738
2155.295830078125 12702.229917778835
2109.6725 5979.542256249981
463.6074981689453 1797.124211495975
680.4823175048829 2452.0008796872407
29.649411344528197 879.0875930770375
945.737801513672 915.800657225918
757.05421875 438.72575217285083
30.281320686340333 916.9583825089828
923.7971350097656 686.5901336964512
1020.4305664062499 1411.4623405551893
1174.4491015625001 10110.48317658846
1061.6625439453126 1111.385976198216
928.9199633789062 326.88772422009174
993.2408117675782 6203.009731030052
1239.8877319335938 847.5241519702919
121.87410247802734 1147.454818691898
27.58988883972168 761.201966188199
494.08316589355474 2296.0229907846015
411.6676763916016 3173.330683121324
601.7855126953125 853.4862684757477
2798.6533349609376 40540.479522352376
726.1700134277344 889.8280989015475
2642.157576904297 228333.3813099728
1094.9810180664062 36.22814351692796
3082.4700000000003 37067.800900000075
1462.099521484375 285.62617405710495
1097.5116674804688 755.6084247043187
1418.2363598632812 854.7647380552812
1901.18 476.1123999999972
986.5265991210938 181.53253124371048
1262.0205883789065 35336.25919341259
1142.5124523925779 81503.13983889998
846.4422631835937 6015.202540082946
130.23448593139648 2137.627689340499
650.8256152343749 851.1447264527292
435.37793098449714 1991.1290432243056
603.525424194336 1330.394680203131
2469.33 482566.4089000001
590.3571694946289 2464.4106205850017
1524.3813989257812 9725.628477835902
1700.8769995117189 1304.8711642763599
81.72999130249023 2000.772121920852
1467.08302734375 5763.386737289808
1066.7858166503906 104.329541499437
1195.2341857910155 2003.9781217933157
584.9159930419922 1450.3915859775836
51.72890289306641 2675.8793945202938
719.6370825195313 4014.8593116366856
815.9113146972658 1289.6225232860481
364.173985824585 1283.5032916970385
338.115551071167 953.8491856376952
287.1481319618225 1079.2452335978273
327.17660903930664 889.4346483943664
274.2029787445068 1011.0505607222848
696.1003173828125 9005.949760842923
335.6856619262695 1109.8451212908085
715.9551416015624 36.54031305716104
596.0627740478516 672.7396900928018
2151.890002441406 549244.028481299
55.42994049072266 3072.478302805055
610.4612646484375 1809.5440053102764
58.05383850097656 2029.8483636720778
371.0411918640137 1845.459196464484
404.21659133911135 5743.125028263254
317.34174880981453 1819.7263946049648
699.8201712036133 21957.261662126468
2616.63 854459.8968999998
2461.53 764697.7808999998
800.3641784667968 14312.72979392444
495.77582321166994 4124.744884138673
709.3451379394531 879.4108438300616
728.6680139160156 920.029379799021
670.1149230957031 953.8879753843308
953.5639599609376 1645.4348477125402
584.2907092285158 2276.1764259180413
1375.2080004882812 73870.89099857815
1005.9030786132812 8117.455243364589
855.6643334960937 3403.049986454974
259.16371551513674 1667.6021305286836
815.4009576416015 4173.036273622162
301.3034910583496 767.0966075549202
635.3454357910156 1066.3205636786865
641.306396484375 1203.6461248993874
564.1414038085937 1285.8389208183357
1602.4044458007813 345.79463597607906
1684.1533325195312 32344.82380383031
1195.551140136719 10495.76888728625
551.4226440429687 1488.2123926354961
875.9852233886719 11232.867576746683
923.5841326904297 2643.591411195343
2603.2596630859375 5737268.853606559
3294.5978759765626 3069.3953463083403
1636.3546850585938 5830.037930397041
4177.447333984375 20321.262588162244
4248.067333984375 11221.729729177914
3037.3821044921874 35112.05308392104
1425.3895504760742 18119.973121033374
1717.9358834838868 14899.648540859269
2937.99875 831746.2800015621
1737.73943359375 26328.491410477087
1079.938946533203 28920.76190623676
2351.576748046875 61714.1121109659
189.65246643066405 764.6588996990022
488.0233023071289 1598.1363584272044
558.4732550048828 1724.4705498894878
1309.1367443847657 891.8140359408209
118.65812496185303 5425.519372895957
283.44461944580075 1897.0711752211178
454.59914611816413 3294.8580263638787
359.19897796630863 4596.97858881311
1051.840155029297 1166.8950084224657
912.0095092773438 729.5135914029206
1189.3846606445313 708.37628900676
1085.7776538085936 741.0561321647763
265.03337142944343 839.0655707445871
2105.635810546875 2057.9096847390324
2127.7691601562497 5811.140943283446
1696.1634985351564 737.8556526694413
864.4264294433593 8944.160247831893
1382.774645624161 2615417.8468360594
734.1436804199219 3347.353715352128
692.1038854980469 1082.1543493256086
619.3557330322266 113.30041928123264
645.4075219726562 184.75545892382289
43.80755546569824 1919.101915880228
242.29228698730472 5371.759331829433
870.6015344238281 88.33115518648876
607.5678070068359 1327.304686291156
943.2655590820312 3935.6100772901123
976.948233642578 101.03800690419897
620.6459246826172 748.2454364690515
904.7948095703124 104.14591170618516
780.3851452636719 129.62153267491107
892.9510766601562 362.8614804072451
1326.873935546875 15656.532005527612
668.9355358886719 965.000930523992
397.9036421203613 1857.2960624898944
356.2342362976074 1140.126798405812
805.6726458740235 1045.057824786291
524.1953479003906 948.926590977968
977.5990673828124 1049.820434463528
742.8355078125 1613.1864326797445
2025.5866015625002 2062.3767576431333
410.8177505493164 3866.6321467470375
525.3052954101563 5579.298893764017
1049.9069665527345 2509.3119999488827
1022.3607763671877 3322.280100993365
579.5142620849609 1055.3231678846068
379.51591430664064 869.3113091733583
526.1154229736328 1148.1645602558117
1021.8637817382812 736.3743415476406
838.8486560058594 1166.3142966061216
842.3451403808593 710.4815413160957
861.0918469238281 1592.6606819511653
841.3962072753907 1815.0831545214744
898.2632635498047 2184.322534015012
419.09579589843753 7938.060846776028
888.9677978515625 785.8043572908629
905.3874768066406 1198.026761810841
587.689443359375 980.3509571457869
761.264842529297 2184.17494381142
549.2121533203125 1210.1942766094448
717.910078125 1094.942929693601
575.5594860839843 2346.4833884477084
26.65288516998291 710.3762878842949
758.9090283203125 1528.1040668621322
391.4731443786621 2354.8557164941753
342.30056732177735 882.0563014082794
367.4060604858398 1062.364893052733
281.3680023193359 1880.7836251699252
1921.7458325195312 6123.7147280612635
1070.334970703125 205.4913850594523
844.8662268066406 66.15826636101178
709.2496618652344 95.06909374226376
515.9721862792969 3603.338420087429
485.9918365478515 1156.5551813880447
1840.2046154785157 601858.4786448376
642.2991912841796 882.1380383737505
468.75164123535154 2232.4074059529325
503.35240356445314 2464.883831826925
995.878916015625 404.85802070627176
1863.372744140625 4176.682199913127
743.9616223144532 81.69227118659094
845.782568359375 202.13536245584552
824.2559912109375 45.48165454695212
499.7261944580078 1621.979412834202
722.3221881103516 4137.343883303455
626.9534680175781 36.56054901445121
837.2292712402344 2727.8967742859786
896.5976989746093 54.79406047049977
985.6229736328124 268.20699263155313
1076.2803747558594 137.349615863098
733.05484375 80.01582033691349
1391.3130419921874 514.6980636482506
1055.6753869628906 69.29918221761228
1132.9975939941405 841.1395541287143
1352.84462890625 406.2389839267767
1308.5903125 70.72284384765656
1020.7507360839844 68.05035515607692
1044.594782714844 130.0789813216244
37.45434880584478 1402.8282444698864
1148.95771484375 627.1160458469413
882.2519921875 5.071468812561199
559.746361694336 10.586162224084276
505.1428210449219 1146.3085667961832
565.5442822265625 927.5507450952784
34.439843781888484 1186.102839720883
1226.1868212890624 13879.945077975312
779.0291931152344 63.53376239422637
964.313211669922 13.592408190800183
689.6838989257812 86.78973922505975
669.3521862792969 44.19342726516818
923.7366931152344 1702.6604950663439
1369.512119140625 4968.541348045456
1368.5541186523437 5104.513961543378
1119.3618762207032 374.8822507858302
1005.8136413574218 38.271033254601626
1278.6776379394532 1707.5376062629148
781.937998046875 1160.2199770546906
1280.9907946777344 1521.7180998746785
1367.388026123047 159.06188507294527
1123.2646594238279 280.0716242004654
1504.9017553710937 4502.174432280552
792.65423828125 920.8652542911562
579.036872329712 11872.96319169149
1099.9904431152345 400.38236672466707
196.15504425048832 4115.86970278211
880.0020861816406 63.96662544590413
543.6117199707031 1815.758678861619
918.1780212402344 3578.669142733855
759.0000451660156 120.99900634969592
871.6694592285156 1272.3103216547381
1012.066239013672 1594.7052665131832
1090.1446313476565 2688.979258070471
1242.0623803710937 13909.282123732586
428.71081787109375 1543.639832358366
414.48563659667974 1893.4998223962225
830.2881787109375 14330.920156344444
617.6440222167969 983.1973427407274
876.089267578125 24.11529291925399
712.9392041015625 1448.6241844225171
2059.6716650390626 40131.441788221506
1127.7008312988282 151.26955073988321
1526.285983886719 5433.7561715491
1068.8069970703125 829.8430802089924
1523.3849780273438 276.0589551518491
663.9866229248047 1296.963328360203
111.93500427246094 12529.445181475849
311.2915591430664 8890.898125630392
36.16126800447702 737.7344796110273
714.7941949462889 1310.8603195873209
311.3640710449219 1047.4330946007522
1624.401022949219 1197.0892129604902
1531.985859375 64.22644995727511
1690.2330297851565 9953.448345849507
2456.748571777344 2381624.970711268
148.01516998291015 12999.458986231895
272.07944152832033 779.5575853704835
1801.8386669921872 39267.91389943319
1430.2586108398436 4863.8613619883745
618.2889489746094 3330.565410455236
551.9968124389649 7396.548270658588
861.5375732421875 181.2369342094666
537.9429504394532 1941.0236159804797
2107.2143798828124 52.047277093528386
2505.5790478515623 8915.316204617555
2146.0043798828124 1.0087789489981955
966.3023767089844 5882.525418490537
959.7688781738283 3872.71252374384
1143.7113549804687 233.742666533238
1490.250612792969 95.05055091262568
1096.1018908691406 835.1007113390617
1492.9106127929688 50.25941097121796
1225.5333203125 598.6184149307197
1250.7030810546876 858.3094596882062
881.1364624023438 8.199847573190668
1085.0003906250001 1225.0273439025816
749.2571923828125 1659.9763725311525
677.2882214355469 943.213342592
1567.9867602539061 323.5235444314977
2997.6388842773435 161894.4674455809
3024.3155493164063 8590.407398519512
1079.553040161133 1125.8065040545982
1015.0981341552734 629.9163380761033
912.5588397216796 382.54821125835355
1350.826912841797 14.645261898710114
3559.895771484375 36139.61769952096
3673.795771484375 5070.042158505329
1069.1404516601565 4604.91830088759
461.59487304687497 2540.676823160646
465.00099182128906 3248.8869333567563
1362.9767211914063 8840.376957918537
1494.8529663085938 4244.135998789221
1224.5986914062498 5837.15995483741
1282.9148559570312 17183.314988765866
432.23198974609375 2890.9989266641683
441.6608312988281 3174.1019299391073
602.3000549316406 1576.0856384307538
269.5820964050293 925.248859112932
926.5596014404297 1186.141052942054
1459.2294775390626 1279.530277128427
1312.02673828125 1367.0220821231924
902.7584753417968 14.126136894894865
1319.2654052734374 769.2077446466735
683.7632781982422 1386.5734505415019
747.725322265625 1703.599022076513
313.0629512023926 957.1009883055424
1101.1691796875 831.2161998916631
1334.5121752929688 599.6535588822887
1180.6012060546877 985.8842612201925
1169.8077807617187 634.6479101496288
1043.8430871582032 1380.6361719328868
1716.0417504882812 398.3317235720239
430.507880859375 811.8008531235691
1087.7227502441406 638.9393552200955
1284.2586328125 3569.030953431692
712.163715209961 3580.3809774746564
1286.975634765625 400.9752030396443
1175.0261401367188 100.52348604112412
1394.6810375976565 13.550037795359367
1998.8435473632812 2130.418120005663
1141.2798583984377 713.9659672075534
888.1672619628906 521.3339262712615
1945.457431640625 1263.2741655808506
1054.9702978515625 11031.238333389503
995.799755859375 5806.477207090861
564.6368420410156 748.7424134883314
685.7950201416015 4516.5093177677445
320.6673455810547 1495.1636142847096
1133.7613610839844 2890.2839456025536
393.196120300293 2007.3876361458179
734.6561938476564 28.556264193826866
1419.2510009765624 7.55699563086083
2116.9037109375 10795.981146583536
2232.293330078125 265.47260503473643
2095.879375 4.497050390625077
1316.2013110351566 77.4169275000619
1093.2669995117187 389.3913082705091
1140.42552734375 706.2025969577794
1231.8286401367188 738.2827968199268
3535.1000000000004 1599972.0100000002
1971.951999511719 2699.010253265617
2366.617856445313 1114.3675083057606
753.7572204589844 1039.5968325305328
3327.0193481445312 29922.305916342884
2620.2066674804687 32325.64241847875
1358.4823852539062 1723.7123342050688
2027.170810546875 5304.090836399186
2646.620002441406 23525.42365107427
3628.4910131835936 186200.00570332154
2170.6466674804688 4809.884731564671
1094.621112060547 644.0879530433169
2026.5654760742189 5392.629304206124
1331.28529296875 9353.734556140538
1628.085 5488.587225000006
1324.3777783203125 29714.09845864679
1945.5146752929688 16259.992415071276
736.6753759765626 1345.083203022215
972.975419921875 730.3279283989929
1853.32 2179.0224000000057
2154.260952148438 2092.0604983675375
863.3324320983887 1344.5105358192736
951.6302459716796 2339.633104760214
1181.8204309082032 330.4967323634133
1274.7995623779298 635.0620563438532
300.57633529663093 1051.294032796505
1398.2195068359374 3.1701559072736165
1946.2070458984376 2096.9946453478187
1484.4974829101564 240.32803612089444
1542.4720434570313 1408.347522290947
1747.8183251953126 3.3063065159085387
953.8756420898436 2613.6999717257586
860.5447814941406 1119.2516452747986
1290.7580633544922 43782.18805116272
2160.8003344726562 78848.8278399556
4206.1 305698.4099999996
741.0288287353516 1518.7521897385598
759.8933453369141 2314.250222873406
820.274390258789 1205.8679718988865
3400.38234375 247623.33181174315
3570.407998046875 1451041.8911694374
2586.2200000000003 136737.24840000016
2100.883330078125 11049.514295464462
2489.1466650390626 86349.7824676649
3506.9747705078125 17949.239132621035
3518.830771484375 1431.1672711029978
4435.9800000000005 290542.5604000005
3545.6997705078124 14568.434600638591
4420.10400390625 5945.027418375015
1663.7835961914066 1698.7919429130545
2426.500710449219 552.2166093914551
3632.975771484375 49.339786239720155
2597.485710449219 156.60744296078872
3076.085771484375 82.55124346628321
3212.355771484375 1651.9533116303398
4421.32 264895.5024000003
2594.983330078125 81.30033648004236
2185.449521484375 1125.6346086274111
3137.415771484375 8726.50636202097
443.58271720886233 2344.233272877001
918.5330114746092 460.8315963492543
861.9681811523437 677.6555925171921
958.3277062988283 659.0666638792272
986.1002624511718 893.9943054888054
1264.7114477539062 3056.8240094690423
883.3558244323731 277.0285803259888
844.1239404296875 62.03231435511055
1382.2476672363282 2475.294615427131
1030.0110888671877 99.77834561922586
214.81704223632812 2191.835443758131
2023.03361328125 25910.1776532902
633.2087565612793 7189.554963884396
591.8808679199219 2220.212607979844
676.4370745849609 1645.3509182260252
762.5741516113281 2063.507701830601
634.3770819091798 3554.8923616646725
460.6096154785157 1551.6023927503938
719.5267608642578 928.618303424132
213.211073551178 2006.0479324379892
540.0862133789062 1018.4897764967043
863.8492993164062 3041.599785891349
355.1062518310547 834.8486832504303
894.3887609863282 6302.5753709443425
1378.3880273437499 3796.035174594488
608.3865551757813 1268.317452247672
1490.596569824219 2766.3991572739137
1749.0783325195312 21585.976375241455
922.8975036621092 1376.5952345031906
920.598466796875 4019.754412506967
1978.273330078125 156599.59728745668
134.24089050292972 18020.616683019558
1078.8977978515625 3733.4791073885235
916.3111950683592 1908.711676354951
271.77474792480473 4593.416456270815
750.4381103515625 3913.9900363832708
191.49601623535156 2549.8476556408887
653.6657147216797 2.7746055340204996
1003.0304577636718 898.173461855057
888.6167065429687 54.51302227264121
177.04767150878905 3849.913539662593
486.26617431640625 1826.1798575557768
637.3187255859375 0.1015859991312027
408.16488464355473 1533.8881891429446
283.97531158447265 730.3337839563383
642.5170129394531 1890.7701637076857
930.8939013671876 65.70883504488498
1132.2758349609376 562.836006800672
1440.1926538085938 12500.882662364947
1190.7879296875 586.2243488174399
1664.31244140625 8777.35863525735
1138.4106396484376 510.27920109273896
1562.1094409179686 13663.402802509863
973.5026208496092 6479.828050081748
750.6400036621094 1710.6492970703246
392.4239141845703 1195.5057103159577
28.181280736923217 794.1845839732796
384.0182110595703 8652.38758872277
377.2328326416016 1073.6872566932902
767.612067565918 17526.564654171067
1149.6307092285156 20554.753536318447
786.8401126098632 1694.1363299687393
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html;charset=utf-8'/>
<title>Scatterplot with Distance-Limited Voronoi</title>
<script src='https://d3js.org/d3.v4.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.10.3/babel.min.js'></script>
<script src='d3-voronoi-scatterplot.js'></script>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:700,400,300' rel='stylesheet' type='text/css'>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<style>
body {
font-family: 'Open Sans', sans-serif;
font-size: 12px;
font-weight: 400;
color: #525252;
text-align: center;
}
html, body {
width:auto;
height:auto;
}
.axis path,
.axis line {
fill: none;
stroke: #B3B3B3;
shape-rendering: crispEdges;
}
.axis text {
font-size: 10px;
fill: #6B6B6B;
}
</style>
</head>
<body>
<div>
<div id='chart'></div>
</div>
<script lang='babel' type='text/babel'>
d3.csv('data.csv', (error, data) => {
const tooltipColumns = [
{
name: 'x',
type: 'numeric',
format: ',.4f'
},
{
name: 'y',
type: 'numeric',
format: ',.4f'
}
];
const numericColumns = [
'x',
'y'
];
const marks = {
r: 2,
fillOpacity: 0.3,
colors: [
'#1f78b4',
'#ff7f00',
'#33a02c',
'#e31a1c',
'#6a3d9a',
'#b15928',
'#a6cee3',
'#fdbf6f',
'#b2df8a',
'#fb9a99',
'#cab2d6',
'#ffff99'
]
};
const categoricalColumns = [];
const options = {
width: 960,
xVariable: 'x',
yVariable: 'y',
idVariable: undefined,
tooltipColumns,
numericColumns,
xLabelDetail: undefined,
wrapperId: 'voronoiExample',
wrapperLabel: 'Voronoi clipCells() end[1] null Example',
dependent: true,
globalExtents: undefined,
marks,
categoricalColumns
}
d3VoronoiScatterplot.drawVoronoiScatterplot('#chart', data, options);
})
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment