A data-driven lava lamp. That's the D3 library, can't you tell?
Created
September 8, 2016 02:24
-
-
Save emeeks/a247a6741373c82366a5be7a6b5c7eac to your computer and use it in GitHub Desktop.
Data Driven Lava Lamp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function (global, factory) { | |
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : | |
typeof define === 'function' && define.amd ? define('d3-glyphEdge', ['exports'], factory) : | |
factory((global.d3_glyphEdge = {})); | |
}(this, function (exports) { 'use strict'; | |
function halfArrow(d, nodeTargetSize, bodySize, headSize) { | |
var diffX = d.target.y - d.source.y; | |
var diffY = d.target.x - d.source.x; | |
var headDistance = headSize * 3; | |
var angle0 = ( Math.atan2( diffY, diffX ) + ( Math.PI / 2 ) ); | |
var angle1 = angle0 - ( Math.PI / 2 ); | |
var angle2 = angle0 + ( Math.PI / 2 ); | |
var x1 = d.source.x + (headSize * Math.cos(angle1)); | |
var y1 = d.source.y - (headSize * Math.sin(angle1)); | |
var x2 = d.source.x + (headSize * Math.cos(angle2)); | |
var y2 = d.source.y - (headSize * Math.sin(angle2)); | |
var x3 = d.target.x - (headSize * Math.cos(angle1)); | |
var y3 = d.target.y + (headSize * Math.sin(angle1)); | |
var mx1 = d.source.x + (bodySize * Math.cos(angle1)); | |
var my1 = d.source.y - (bodySize * Math.sin(angle1)); | |
var mx2 = d.source.x + (bodySize * Math.cos(angle2)); | |
var my2 = d.source.y - (bodySize * Math.sin(angle2)); | |
var mx3 = d.target.x + (bodySize * Math.cos(angle1)); | |
var my3 = d.target.y - (bodySize * Math.sin(angle1)); | |
var dY = d.source.y - d.target.y; | |
var dX = d.source.x - d.target.x; | |
var midDiffY1 = my1 - my3; | |
var midDiffX1 = mx1 - mx3; | |
var diffY1 = y1 - y3; | |
var diffX1 = x1 - x3; | |
var pythag = Math.sqrt((midDiffX1 * midDiffX1) + (midDiffY1 * midDiffY1)); | |
var pythag2 = Math.sqrt((dX * dX) + (dY * dY)); | |
var adjX1 = mx2 - ((midDiffX1 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var adjY1 = my2 - ((midDiffY1 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var headX1 = x2 - ((diffX1 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var headY1 = y2 - ((diffY1 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var tipX = d.source.x - ((dX * (pythag2 - nodeTargetSize)) / pythag2); | |
var tipY = d.source.y - ((dY * (pythag2 - nodeTargetSize)) / pythag2); | |
return "M" + d.source.x + "," + d.source.y + "L" + mx2 + "," + my2 + "L" + adjX1 + "," + adjY1 + "L" + headX1 + "," + headY1 + "L" + tipX + "," + tipY + "L" + d.source.x + "," + d.source.y + "z"; | |
}; | |
function lineArc(d) { | |
var dx = d.target.x - d.source.x, | |
dy = d.target.y - d.source.y, | |
dr = Math.sqrt(dx * dx + dy * dy); | |
return "M" + d.source.x + "," + d.source.y + "A" + dr + "," + dr + " 0 0,1 " + d.target.x + "," + d.target.y; | |
}; | |
function ribbon(d, bodySize) { | |
var diffX = d.target.y - d.source.y; | |
var diffY = d.target.x - d.source.x; | |
var angle0 = ( Math.atan2( diffY, diffX ) + ( Math.PI / 2 ) ); | |
var angle1 = angle0 - ( Math.PI / 2 ); | |
var angle2 = angle0 + ( Math.PI / 2 ); | |
var mx1 = d.source.x + (bodySize * Math.cos(angle1)); | |
var my1 = d.source.y - (bodySize * Math.sin(angle1)); | |
var mx2 = d.source.x + (bodySize * Math.cos(angle2)); | |
var my2 = d.source.y - (bodySize * Math.sin(angle2)); | |
var mx3 = d.target.x - (bodySize * Math.cos(angle1)); | |
var my3 = d.target.y + (bodySize * Math.sin(angle1)); | |
var mx4 = d.target.x - (bodySize * Math.cos(angle2)); | |
var my4 = d.target.y + (bodySize * Math.sin(angle2)); | |
return "M" + mx1 + "," + my1 + "L" + mx2 + "," + my2 + "L" + mx3 + "," + my3 + "L" + mx4 + "," + my4 + "z"; | |
} | |
function taffy(d, nodeSourceSize, nodeTargetSize, midpointSize) { | |
var diffX = d.target.y - d.source.y; | |
var diffY = d.target.x - d.source.x; | |
var angle0 = ( Math.atan2( diffY, diffX ) + ( Math.PI / 2 ) ); | |
var angle1 = angle0 - ( Math.PI / 2 ); | |
var angle2 = angle0 + ( Math.PI / 2 ); | |
var x1 = d.source.x + (nodeSourceSize * Math.cos(angle1)); | |
var y1 = d.source.y - (nodeSourceSize * Math.sin(angle1)); | |
var x2 = d.source.x + (nodeSourceSize * Math.cos(angle2)); | |
var y2 = d.source.y - (nodeSourceSize * Math.sin(angle2)); | |
var x3 = d.target.x + (nodeTargetSize * Math.cos(angle2)); | |
var y3 = d.target.y - (nodeTargetSize * Math.sin(angle2)); | |
var x4 = d.target.x + (nodeTargetSize * Math.cos(angle1)); | |
var y4 = d.target.y - (nodeTargetSize * Math.sin(angle1)); | |
var mx1 = d.source.x + (midpointSize * Math.cos(angle1)); | |
var my1 = d.source.y - (midpointSize * Math.sin(angle1)); | |
var mx2 = d.source.x + (midpointSize * Math.cos(angle2)); | |
var my2 = d.source.y - (midpointSize * Math.sin(angle2)); | |
var mx3 = d.target.x + (midpointSize * Math.cos(angle1)); | |
var my3 = d.target.y - (midpointSize * Math.sin(angle1)); | |
var mx4 = d.target.x + (midpointSize * Math.cos(angle2)); | |
var my4 = d.target.y - (midpointSize * Math.sin(angle2)); | |
var midY2 = (my1 + my3) / 2; | |
var midX2 = (mx1 + mx3) / 2; | |
var midY1 = (my2 + my4) / 2; | |
var midX1 = (mx2 + mx4) / 2; | |
return "M" + x1 + "," + y1 + "L" + x2 + "," + y2 + " L " + midX1 + "," + midY1 + " L " + x3 + "," + y3 + " L " + x4 + "," + y4 + " L " + midX2 + "," + midY2 + "z"; | |
}; | |
function nail(d, nodeSize) { | |
var diffX = d.target.y - d.source.y; | |
var diffY = d.target.x - d.source.x; | |
var angle0 = ( Math.atan2( diffY, diffX ) + ( Math.PI / 2 ) ); | |
var angle1 = angle0 - ( Math.PI / 2 ); | |
var angle2 = angle0 + ( Math.PI / 2 ); | |
var x1 = d.source.x + (nodeSize * Math.cos(angle1)); | |
var y1 = d.source.y - (nodeSize * Math.sin(angle1)); | |
var x2 = d.source.x + (nodeSize * Math.cos(angle2)); | |
var y2 = d.source.y - (nodeSize * Math.sin(angle2)); | |
return "M" + x1 + "," + y1 + "L" + x2 + "," + y2 + " L " + d.target.x + "," + d.target.y + "z"; | |
}; | |
function comet(d, nodeSize) { | |
var diffX = d.target.y - d.source.y; | |
var diffY = d.target.x - d.source.x; | |
var angle0 = ( Math.atan2( diffY, diffX ) + ( Math.PI / 2 ) ); | |
var angle1 = angle0 - ( Math.PI / 2 ); | |
var angle2 = angle0 + ( Math.PI / 2 ); | |
var x1 = d.target.x + (nodeSize * Math.cos(angle1)); | |
var y1 = d.target.y - (nodeSize * Math.sin(angle1)); | |
var x2 = d.target.x + (nodeSize * Math.cos(angle2)); | |
var y2 = d.target.y - (nodeSize * Math.sin(angle2)); | |
return "M" + x1 + "," + y1 + "L" + x2 + "," + y2 + " L " + d.source.x + "," + d.source.y + "z"; | |
}; | |
function arrowhead(d, nodeTargetSize, bodySize, headSize) { | |
var diffX = d.target.y - d.source.y; | |
var diffY = d.target.x - d.source.x; | |
var headDistance = headSize * 3; | |
var angle0 = ( Math.atan2( diffY, diffX ) + ( Math.PI / 2 ) ); | |
var angle1 = angle0 - ( Math.PI / 2 ); | |
var angle2 = angle0 + ( Math.PI / 2 ); | |
var x1 = d.source.x + (headSize * Math.cos(angle1)); | |
var y1 = d.source.y - (headSize * Math.sin(angle1)); | |
var x2 = d.source.x + (headSize * Math.cos(angle2)); | |
var y2 = d.source.y - (headSize * Math.sin(angle2)); | |
var x3 = d.target.x - (headSize * Math.cos(angle1)); | |
var y3 = d.target.y + (headSize * Math.sin(angle1)); | |
var x4 = d.target.x - (headSize * Math.cos(angle2)); | |
var y4 = d.target.y + (headSize * Math.sin(angle2)); | |
var mx1 = d.source.x + (bodySize * Math.cos(angle1)); | |
var my1 = d.source.y - (bodySize * Math.sin(angle1)); | |
var mx2 = d.source.x + (bodySize * Math.cos(angle2)); | |
var my2 = d.source.y - (bodySize * Math.sin(angle2)); | |
var mx3 = d.target.x + (bodySize * Math.cos(angle1)); | |
var my3 = d.target.y - (bodySize * Math.sin(angle1)); | |
var mx4 = d.target.x + (bodySize * Math.cos(angle2)); | |
var my4 = d.target.y - (bodySize * Math.sin(angle2)); | |
var dY = d.source.y - d.target.y; | |
var dX = d.source.x - d.target.x; | |
var midDiffY1 = my1 - my3; | |
var midDiffX1 = mx1 - mx3; | |
var midDiffY2 = my2 - my4; | |
var midDiffX2 = mx2 - mx4; | |
var diffY1 = y1 - y3; | |
var diffX1 = x1 - x3; | |
var diffY2 = y2 - y4; | |
var diffX2 = x2 - x4; | |
var pythag = Math.sqrt((midDiffX1 * midDiffX1) + (midDiffY1 * midDiffY1)); | |
var pythag2 = Math.sqrt((dX * dX) + (dY * dY)); | |
var adjX1 = mx2 - ((midDiffX1 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var adjY1 = my2 - ((midDiffY1 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var adjX2 = mx1 - ((midDiffX2 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var adjY2 = my1 - ((midDiffY2 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var headX2 = x1 - ((diffX2 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var headY2 = y1 - ((diffY2 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var headX1 = x2 - ((diffX1 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var headY1 = y2 - ((diffY1 * (pythag - headDistance - nodeTargetSize)) / pythag); | |
var tipX = d.source.x - ((dX * (pythag2 - nodeTargetSize)) / pythag2); | |
var tipY = d.source.y - ((dY * (pythag2 - nodeTargetSize)) / pythag2); | |
return "M" + mx2 + "," + my2 + "L" + adjX1 + "," + adjY1 + "L" + headX1 + "," + headY1 + "L" + tipX + "," + tipY + "L" + headX2 + "," + headY2 + "L" + adjX2 + "," + adjY2 + "L" + mx1 + "," + my1 + "z"; | |
}; | |
function parallel(d, sourceSize, targetSize, edgeNumber) { | |
var diffX = d.target.y - d.source.y; | |
var diffY = d.target.x - d.source.x; | |
var angle0 = ( Math.atan2( diffY, diffX ) + ( Math.PI / 2 ) ); | |
var angle1 = angle0 + ( (Math.PI * 0.75) + (edgeNumber * 0.25) ); | |
var angle2 = angle0 + ( (Math.PI * 0.25) - (edgeNumber * 0.25) ); | |
var x1 = d.source.x + (sourceSize * Math.cos(angle1)); | |
var y1 = d.source.y - (sourceSize * Math.sin(angle1)); | |
var x2 = d.target.x + (targetSize * Math.cos(angle2)); | |
var y2 = d.target.y - (targetSize * Math.sin(angle2)); | |
return {source: {x: x1, y: y1}, target: {x: x2, y: y2}}; | |
} | |
function offset(d, nodeSize) { | |
var diffX = d.target.y - d.source.y; | |
var diffY = d.target.x - d.source.x; | |
var angle0 = ( Math.atan2( diffY, diffX ) + ( Math.PI / 2 ) ); | |
var angle1 = angle0 + ( Math.PI * 0.75 ); | |
var angle2 = angle0 + ( Math.PI * 0.25 ); | |
var x1 = d.source.x + (nodeSize * Math.cos(angle1)); | |
var y1 = d.source.y - (nodeSize * Math.sin(angle1)); | |
var x2 = d.target.x + (nodeSize * Math.cos(angle2)); | |
var y2 = d.target.y - (nodeSize * Math.sin(angle2)); | |
return {source: {x: x1, y: y1}, target: {x: x2, y: y2}}; | |
} | |
function particle(d, path, pathWidth, speed) { | |
pathWidth = pathWidth / 2; | |
d.particles = d.particles.filter(function (d) {return d.current < path.getTotalLength()}); | |
if (d.frequency < 1) { | |
if (Math.random() < d.frequency) { | |
pushParticle(); | |
} | |
} else { | |
for (var x = 0; x < d.frequency; x++) { | |
pushParticle(); | |
} | |
} | |
function pushParticle() { | |
d.particles.push({current: 0, xOffset: pathWidth - (pathWidth * Math.random() * 2), yOffset: pathWidth - (pathWidth * Math.random() * 2)}); | |
} | |
d.particles.forEach(function (particle) { | |
particle.current = particle.current + speed; | |
var currentPosition = path.getPointAtLength(particle.current); | |
particle.x = currentPosition.x + particle.xOffset; | |
particle.y = currentPosition.y + particle.yOffset; | |
}); | |
}; | |
var d = { | |
arrowhead: arrowhead, | |
comet: comet, | |
nail: nail, | |
taffy: taffy, | |
ribbon: ribbon, | |
lineArc: lineArc, | |
halfArrow: halfArrow | |
}; | |
var project = { | |
offset: offset, | |
parallel: parallel | |
} | |
var mutate = { | |
particle: particle | |
} | |
var version = "1.0.0"; | |
exports.version = version; | |
exports.d = d; | |
exports.project = project; | |
exports.mutate = mutate; | |
})); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<head> | |
<title>Data Driven Lava Lamp</title> | |
</head> | |
<meta charset="utf-8"> | |
<style> | |
svg { | |
height: 1000px; | |
width: 1000px; | |
} | |
</style> | |
<body> | |
<div id="viz"> | |
<svg></svg> | |
</div> | |
</body> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.16/d3.min.js"></script> | |
<script src="d3-glyphEdge.js" charset="utf-8" type="text/javascript"></script> | |
<script> | |
d3.json("sotu.json", dendrogram); | |
function dendrogram(data) { | |
data = data; | |
treeChart = d3.layout.tree(); | |
treeChart.size([500,500]) | |
.children(function(d) {return d["children"]}) | |
var linkGenerator = d3.svg.diagonal() | |
var filter = d3.select("svg").append("defs").append("filter").attr("id", "gooeyCodeFilter"); | |
filter.append("feGaussianBlur").attr("id", "gaussblurrer").attr("in", "SourceGraphic").attr("stdDeviation", 6).attr("color-interpolation-filters", "sRGB").attr("result", "blur"); | |
filter.append("feColorMatrix").attr("in", "blur").attr("mode", "matrix").attr("values", "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 34 -7").attr("result", "gooey"); | |
var chartG = d3.select("svg") | |
.append("g") | |
.style("filter", "url(#gooeyCodeFilter)") | |
.attr("class", "dendrogram") | |
.attr("transform", "translate(0,20)"); | |
chartG | |
.selectAll("g.link") | |
.data(treeChart.links(treeChart(data))) | |
.enter().append("g") | |
.attr("class", "link") | |
.append("path") | |
.attr("d", linkGenerator) | |
.style("fill", "none") | |
.style("stroke", "lightgray") | |
.style("stroke-width", "0px") | |
.each(function (d) { | |
d.particles = []; | |
d.frequency = d.target.blockCalls ? particleScale(d.target.blockCalls) : 0; | |
d.speed = Math.random() + 1; | |
}) | |
chartG | |
.selectAll("circle") | |
.data(treeChart(data)) | |
.enter().append("ellipse") | |
.attr("rx", 4) | |
.attr("ry", 2) | |
.style("stroke-width", 1) | |
.attr("cx", function (d) {return d.x}) | |
.attr("cy", function (d) {return d.y}) | |
.style("fill", "white") | |
.style("stroke", "#f5e0b7") | |
var t = d3.timer(tick, 1000); | |
function tick(elapsed, time) { | |
particles(); | |
} | |
function step(timestamp) { | |
if (!start) start = timestamp; | |
// var progress = timestamp - start; | |
particles(); | |
window.requestAnimationFrame(step); | |
} | |
window.requestAnimationFrame(step); | |
} | |
var blockScale = d3.scale.linear().domain([1,5,50,1000,3000]).range(["#b9e3c5", "#6f89b6", "#827abf", "#f62150", "#5b1e37"]).clamp(true) | |
var particleScale = d3.scale.linear().domain([0,3000]).range([0.01,0.05]) | |
function particles() { | |
d3.selectAll("g.link") | |
.each(function (d, i) { | |
d3_glyphEdge.mutate.particle(d, d3.select(this).select("path").node(), 3, d.speed); | |
d3.select(this).selectAll("circle") | |
.data(d.particles) | |
.enter() | |
.append("circle") | |
.style("fill", d.target.blockCalls ? blockScale(d.target.blockCalls) : "blue") | |
.attr("r", 5); | |
d3.select(this).selectAll("circle") | |
.data(d.particles) | |
.exit() | |
.remove(); | |
d3.select(this).selectAll("circle") | |
.attr("cx", function (p) {return p.x}) | |
.attr("cy", function (p) {return p.y}); | |
}) | |
} | |
</script> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"name":"d3","children":[{"name":"version","leafColor":"#fdcc8a","blockCalls":1},{"name":"ascending","leafColor":"#e34a33","blockCalls":120},{"name":"descending","leafColor":"#e34a33","blockCalls":119},{"name":"min","leafColor":"#b30000","blockCalls":1200},{"name":"max","leafColor":"#b30000","blockCalls":721},{"name":"extent","leafColor":"#e34a33","blockCalls":443},{"name":"sum","leafColor":"#e34a33","blockCalls":103},{"name":"mean","leafColor":"#fc8d59","blockCalls":49},{"name":"quantile","leafColor":"#fc8d59","blockCalls":37},{"name":"median","leafColor":"#fc8d59","blockCalls":28},{"name":"variance","leafColor":"#fc8d59","blockCalls":8},{"name":"deviation","leafColor":"#fc8d59","blockCalls":8},{"name":"bisectLeft","leafColor":"#fc8d59","blockCalls":24},{"name":"bisectRight","leafColor":"#fc8d59","blockCalls":24},{"name":"bisect","leafColor":"#e34a33","blockCalls":73},{"name":"bisector","leafColor":"#fc8d59","blockCalls":49},{"name":"shuffle","leafColor":"#fc8d59","blockCalls":44},{"name":"permute","leafColor":"#fc8d59","blockCalls":25},{"name":"pairs","leafColor":"#fc8d59","blockCalls":19},{"name":"zip","leafColor":"#fc8d59","blockCalls":38},{"name":"transpose","leafColor":"#fc8d59","blockCalls":27},{"name":"keys","leafColor":"#e34a33","blockCalls":255},{"name":"values","leafColor":"#e34a33","blockCalls":77},{"name":"entries","leafColor":"#e34a33","blockCalls":84},{"name":"merge","leafColor":"#e34a33","blockCalls":76},{"name":"range","leafColor":"#b30000","blockCalls":1204},{"name":"map","leafColor":"#e34a33","blockCalls":74},{"name":"nest","leafColor":"#e34a33","blockCalls":331},{"name":"set","leafColor":"#fc8d59","blockCalls":36},{"name":"behavior","children":[{"name":"drag","leafColor":"#e34a33","blockCalls":242},{"name":"zoom","leafColor":"#e34a33","blockCalls":189}],"leafColor":"#e34a33","blockCalls":394},{"name":"rebind","leafColor":"#e34a33","blockCalls":128},{"name":"dispatch","leafColor":"#e34a33","blockCalls":177},{"name":"event","leafColor":"#b30000","blockCalls":619},{"name":"requote","leafColor":"#fc8d59","blockCalls":24},{"name":"selection","children":[{"name":"enter","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#e34a33","blockCalls":94},{"name":"ns","children":[{"name":"prefix","children":[{"name":"svg","leafColor":"#fdcc8a","blockCalls":1},{"name":"xhtml","leafColor":"#fdcc8a","blockCalls":1},{"name":"xlink","leafColor":"#fdcc8a","blockCalls":1},{"name":"xml","leafColor":"#fdcc8a","blockCalls":1},{"name":"xmlns","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":32},{"name":"qualify","leafColor":"#fc8d59","blockCalls":29}],"leafColor":"#fc8d59","blockCalls":38},{"name":"select","leafColor":"#7f0000","blockCalls":4195},{"name":"selectAll","leafColor":"#b30000","blockCalls":600},{"name":"mouse","leafColor":"#e34a33","blockCalls":339},{"name":"touch","leafColor":"#fc8d59","blockCalls":39},{"name":"touches","leafColor":"#fc8d59","blockCalls":39},{"name":"interpolateZoom","leafColor":"#fc8d59","blockCalls":17},{"name":"color","leafColor":"#fdcc8a","blockCalls":1},{"name":"hsl","leafColor":"#e34a33","blockCalls":80},{"name":"hcl","leafColor":"#fc8d59","blockCalls":38},{"name":"lab","leafColor":"#fc8d59","blockCalls":31},{"name":"rgb","leafColor":"#e34a33","blockCalls":188},{"name":"functor","leafColor":"#e34a33","blockCalls":104},{"name":"xhr","leafColor":"#fc8d59","blockCalls":29},{"name":"dsv","leafColor":"#fc8d59","blockCalls":18},{"name":"csv","children":[{"name":"parse","leafColor":"#fc8d59","blockCalls":17},{"name":"parseRows","leafColor":"#fc8d59","blockCalls":9},{"name":"format","leafColor":"#fc8d59","blockCalls":12},{"name":"formatRows","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#e34a33","blockCalls":492},{"name":"tsv","children":[{"name":"parse","leafColor":"#fdcc8a","blockCalls":1},{"name":"parseRows","leafColor":"#fdcc8a","blockCalls":1},{"name":"format","leafColor":"#fc8d59","blockCalls":13},{"name":"formatRows","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#e34a33","blockCalls":148},{"name":"timer","children":[{"name":"flush","leafColor":"#e34a33","blockCalls":54}],"leafColor":"#e34a33","blockCalls":269},{"name":"round","leafColor":"#e34a33","blockCalls":52},{"name":"formatPrefix","leafColor":"#fc8d59","blockCalls":28},{"name":"time","children":[{"name":"year","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":42},{"name":"years","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":38},{"name":"day","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#e34a33","blockCalls":86},{"name":"days","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":46},{"name":"dayOfYear","leafColor":"#fc8d59","blockCalls":23},{"name":"sunday","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":22},{"name":"sundays","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"sundayOfYear","leafColor":"#fc8d59","blockCalls":22},{"name":"monday","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":23},{"name":"mondays","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"mondayOfYear","leafColor":"#fc8d59","blockCalls":22},{"name":"tuesday","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"tuesdays","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"tuesdayOfYear","leafColor":"#fdcc8a","blockCalls":1},{"name":"wednesday","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"wednesdays","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"wednesdayOfYear","leafColor":"#fdcc8a","blockCalls":1},{"name":"thursday","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"thursdays","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"thursdayOfYear","leafColor":"#fdcc8a","blockCalls":1},{"name":"friday","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"fridays","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"fridayOfYear","leafColor":"#fdcc8a","blockCalls":1},{"name":"saturday","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"saturdays","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"saturdayOfYear","leafColor":"#fdcc8a","blockCalls":1},{"name":"week","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":26},{"name":"weeks","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":24},{"name":"weekOfYear","leafColor":"#fc8d59","blockCalls":23},{"name":"format","children":[{"name":"utc","children":[{"name":"multi","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":35},{"name":"multi","leafColor":"#fc8d59","blockCalls":13},{"name":"iso","children":[{"name":"parse","leafColor":"#fdcc8a","blockCalls":1},{"name":"toString","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":32}],"leafColor":"#e34a33","blockCalls":371},{"name":"second","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":26},{"name":"seconds","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":23},{"name":"minute","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":28},{"name":"minutes","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":27},{"name":"hour","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":43},{"name":"hours","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":36},{"name":"month","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"utc","children":[{"name":"round","leafColor":"#fdcc8a","blockCalls":1},{"name":"ceil","leafColor":"#fdcc8a","blockCalls":1},{"name":"offset","leafColor":"#fdcc8a","blockCalls":1},{"name":"range","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#e34a33","blockCalls":54},{"name":"months","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":43},{"name":"scale","children":[{"name":"utc","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#e34a33","blockCalls":365}],"leafColor":"#b30000","blockCalls":700},{"name":"locale","leafColor":"#fc8d59","blockCalls":11},{"name":"format","leafColor":"#e34a33","blockCalls":343},{"name":"geo","children":[{"name":"stream","leafColor":"#fc8d59","blockCalls":25},{"name":"area","leafColor":"#fc8d59","blockCalls":19},{"name":"bounds","leafColor":"#fc8d59","blockCalls":38},{"name":"centroid","leafColor":"#fc8d59","blockCalls":46},{"name":"clipExtent","leafColor":"#fc8d59","blockCalls":19},{"name":"conicEqualArea","children":[{"name":"raw","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":25},{"name":"albers","leafColor":"#e34a33","blockCalls":181},{"name":"albersUsa","leafColor":"#e34a33","blockCalls":112},{"name":"path","leafColor":"#b30000","blockCalls":760},{"name":"transform","leafColor":"#fc8d59","blockCalls":34},{"name":"projection","leafColor":"#e34a33","blockCalls":235},{"name":"projectionMutator","leafColor":"#fc8d59","blockCalls":23},{"name":"equirectangular","children":[{"name":"raw","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#e34a33","blockCalls":95},{"name":"rotation","leafColor":"#fc8d59","blockCalls":21},{"name":"circle","leafColor":"#fc8d59","blockCalls":42},{"name":"distance","leafColor":"#fc8d59","blockCalls":16},{"name":"graticule","leafColor":"#e34a33","blockCalls":294},{"name":"greatArc","leafColor":"#fc8d59","blockCalls":29},{"name":"interpolate","leafColor":"#fc8d59","blockCalls":27},{"name":"length","leafColor":"#fc8d59","blockCalls":19},{"name":"azimuthalEqualArea","children":[{"name":"raw","children":[{"name":"invert","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":5}],"leafColor":"#fc8d59","blockCalls":39},{"name":"azimuthalEquidistant","children":[{"name":"raw","children":[{"name":"invert","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":5}],"leafColor":"#fc8d59","blockCalls":35},{"name":"conicConformal","children":[{"name":"raw","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":33},{"name":"conicEquidistant","children":[{"name":"raw","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":27},{"name":"gnomonic","children":[{"name":"raw","children":[{"name":"invert","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":4}],"leafColor":"#fc8d59","blockCalls":36},{"name":"mercator","children":[{"name":"raw","children":[{"name":"invert","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#e34a33","blockCalls":222},{"name":"orthographic","children":[{"name":"raw","children":[{"name":"invert","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#e34a33","blockCalls":93},{"name":"stereographic","children":[{"name":"raw","children":[{"name":"invert","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":25},{"name":"transverseMercator","children":[{"name":"raw","children":[{"name":"invert","leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fdcc8a","blockCalls":1}],"leafColor":"#fc8d59","blockCalls":20}],"leafColor":"#b30000","blockCalls":1015},{"name":"geom","children":[{"name":"hull","leafColor":"#fc8d59","blockCalls":25},{"name":"polygon","leafColor":"#e34a33","blockCalls":62},{"name":"voronoi","leafColor":"#e34a33","blockCalls":129},{"name":"delaunay","leafColor":"#fc8d59","blockCalls":34},{"name":"quadtree","leafColor":"#e34a33","blockCalls":97}],"leafColor":"#e34a33","blockCalls":234},{"name":"interpolateRgb","leafColor":"#e34a33","blockCalls":94},{"name":"interpolateObject","leafColor":"#fc8d59","blockCalls":24},{"name":"interpolateNumber","leafColor":"#e34a33","blockCalls":149},{"name":"interpolateString","leafColor":"#fc8d59","blockCalls":41},{"name":"interpolate","leafColor":"#b30000","blockCalls":616},{"name":"interpolators","leafColor":"#fc8d59","blockCalls":24},{"name":"interpolateArray","leafColor":"#fc8d59","blockCalls":26},{"name":"ease","leafColor":"#e34a33","blockCalls":87},{"name":"interpolateHcl","leafColor":"#e34a33","blockCalls":104},{"name":"interpolateHsl","leafColor":"#e34a33","blockCalls":207},{"name":"interpolateLab","leafColor":"#e34a33","blockCalls":80},{"name":"interpolateRound","leafColor":"#fc8d59","blockCalls":27},{"name":"transform","leafColor":"#fc8d59","blockCalls":41},{"name":"interpolateTransform","leafColor":"#fc8d59","blockCalls":27},{"name":"layout","children":[{"name":"bundle","leafColor":"#fc8d59","blockCalls":30},{"name":"chord","leafColor":"#e34a33","blockCalls":56},{"name":"force","leafColor":"#e34a33","blockCalls":258},{"name":"hierarchy","leafColor":"#fc8d59","blockCalls":29},{"name":"partition","leafColor":"#e34a33","blockCalls":56},{"name":"pie","leafColor":"#e34a33","blockCalls":145},{"name":"stack","leafColor":"#e34a33","blockCalls":78},{"name":"histogram","leafColor":"#fc8d59","blockCalls":46},{"name":"pack","leafColor":"#e34a33","blockCalls":61},{"name":"tree","leafColor":"#e34a33","blockCalls":122},{"name":"cluster","leafColor":"#fc8d59","blockCalls":41},{"name":"treemap","leafColor":"#e34a33","blockCalls":52}],"leafColor":"#b30000","blockCalls":672},{"name":"random","children":[{"name":"normal","leafColor":"#e34a33","blockCalls":55},{"name":"logNormal","leafColor":"#fdcc8a","blockCalls":1},{"name":"bates","leafColor":"#fdcc8a","blockCalls":2},{"name":"irwinHall","leafColor":"#fc8d59","blockCalls":13}],"leafColor":"#fdcc8a","blockCalls":1},{"name":"scale","children":[{"name":"linear","leafColor":"#b30000","blockCalls":1730},{"name":"log","leafColor":"#e34a33","blockCalls":75},{"name":"pow","leafColor":"#fc8d59","blockCalls":39},{"name":"sqrt","leafColor":"#e34a33","blockCalls":152},{"name":"ordinal","leafColor":"#b30000","blockCalls":613},{"name":"category10","leafColor":"#fdcc8a","blockCalls":1},{"name":"category20","leafColor":"#fdcc8a","blockCalls":1},{"name":"category20b","leafColor":"#fdcc8a","blockCalls":1},{"name":"category20c","leafColor":"#fdcc8a","blockCalls":1},{"name":"quantile","leafColor":"#fc8d59","blockCalls":36},{"name":"quantize","leafColor":"#e34a33","blockCalls":94},{"name":"threshold","leafColor":"#fc8d59","blockCalls":42},{"name":"identity","leafColor":"#fc8d59","blockCalls":47}],"leafColor":"#7f0000","blockCalls":2391},{"name":"svg","children":[{"name":"arc","leafColor":"#e34a33","blockCalls":306},{"name":"line","children":[{"name":"radial","leafColor":"#fc8d59","blockCalls":37}],"leafColor":"#b30000","blockCalls":550},{"name":"area","children":[{"name":"radial","leafColor":"#fc8d59","blockCalls":27}],"leafColor":"#e34a33","blockCalls":142},{"name":"chord","leafColor":"#e34a33","blockCalls":57},{"name":"diagonal","children":[{"name":"radial","leafColor":"#fc8d59","blockCalls":36}],"leafColor":"#e34a33","blockCalls":86},{"name":"symbol","leafColor":"#e34a33","blockCalls":56},{"name":"symbolTypes","leafColor":"#fc8d59","blockCalls":29},{"name":"axis","leafColor":"#b30000","blockCalls":782},{"name":"brush","leafColor":"#e34a33","blockCalls":195}],"leafColor":"#b30000","blockCalls":1434},{"name":"transition","leafColor":"#e34a33","blockCalls":81},{"name":"text","leafColor":"#fc8d59","blockCalls":37},{"name":"json","leafColor":"#b30000","blockCalls":1014},{"name":"html","leafColor":"#fc8d59","blockCalls":32},{"name":"xml","leafColor":"#fc8d59","blockCalls":42},{"name":"hexbin","leafColor":"#fc8d59","blockCalls":21}]} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment