{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6******","webpack:///miniTooltip.min.js","webpack:///webpack/bootstrap 0a1eb6cfa29181d5999f?cc57******","webpack:///./src/charts/mini-tooltip.js","webpack:///./~/d3-array/build/d3-array.js?d8bc*****","webpack:///./~/d3-ease/build/d3-ease.js","webpack:///./~/d3-color/build/d3-color.js","webpack:///./~/d3-dispatch/build/d3-dispatch.js","webpack:///./~/d3-format/build/d3-format.js","webpack:///./~/d3-interpolate/build/d3-interpolate.js","webpack:///./~/d3-selection/build/d3-selection.js","webpack:///./~/d3-transition/build/d3-transition.js","webpack:///./~/d3-timer/build/d3-timer.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","__WEBPACK_AMD_DEFINE_RESULT__","_slicedToArray","sliceIterator","arr","i","_arr","_n","_d","_e","undefined","_s","_i","Symbol","iterator","next","done","push","value","length","err","Array","isArray","Object","TypeError","require","d3Array","d3Ease","d3Format","d3Selection","_selection","each","chartWidth","width","margin","left","right","chartHeight","height","top","bottom","buildSVG","drawTooltip","buildContainerGroups","container","svg","append","classed","attr","select","transition","hide","tooltipTextContainer","selectAll","tooltipBackground","backgroundBorderRadius","style","bodyFillColor","borderStrokeColor","getMaxLengthLine","_len","arguments","texts","_key","textSizes","filter","x","map","node","getBBox","max","getTooltipPosition","_ref","_ref2","_ref4","mouseX","mouseY","_ref3","parentChartWidth","parentChartHeight","tooltipX","tooltipY","hasEnoughHorizontalRoom","tooltipOffset","hasEnoughVerticalRoom","y","positionX","positionY","hideTooltip","showTooltip","dataPoint","updateContent","valueLabel","name","nameLabel","lineHeight","textSize","textLineHeight","valueLineHeight","valueTextSize","valueTextLineHeight","defaultDy","temporalHeight","tooltipValue","tooltipName","tooltipTitle","remove","title","titleFillColor","text","nameTextFillColor","valueTextFillColor","valueTextWeight","tooltipValueFormat","updatePositionAndSize","mousePosition","parentChartSize","_getTooltipPosition","_getTooltipPosition2","duration","mouseChaseDuration","ease","updateTooltip","position","chartSize","easeQuadInOut","format","_x","show","update","global","ascendingComparator","f","d","ascending","pair","a","b","tickIncrement","start","stop","count","step","Math","power","floor","log","LN10","error","pow","e10","e5","e2","tickStep","step0","abs","step1","NaN","bisector","compare","lo","hi","mid","ascendingBisect","bisectRight","bisectLeft","pairs","array","n","cross","values0","values1","reduce","i0","i1","value0","n0","n1","values","descending","number","variance","valueof","delta","mean","sum","isNaN","deviation","v","sqrt","extent","min","prototype","slice","constant","identity","range","ceil","ticks","reverse","isFinite","sturges","LN2","histogram","data","xz","domain","x0","x1","tz","threshold","shift","pop","bin","bins","_","thresholds","quantile","value1","freedmanDiaconis","sort","scott","median","numbers","merge","arrays","merged","j","permute","indexes","permutes","scan","xi","xj","shuffle","t","random","transpose","matrix","row","zip","bisect","thresholdFreedmanDiaconis","thresholdScott","thresholdSturges","defineProperty","linear","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","sinIn","cos","halfPi","sinOut","sin","sinInOut","pi","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","bounceIn","bounceOut","b1","b0","b3","b2","b4","b6","b5","b7","b8","b9","bounceInOut","exponent","polyIn","custom","e","polyOut","polyInOut","PI","overshoot","backIn","s","backOut","backInOut","tau","amplitude","period","elasticIn","asin","elasticOut","elasticInOut","easeLinear","easeQuad","easeQuadIn","easeQuadOut","easeCubic","easeCubicIn","easeCubicOut","easeCubicInOut","easePoly","easePolyIn","easePolyOut","easePolyInOut","easeSin","easeSinIn","easeSinOut","easeSinInOut","easeExp","easeExpIn","easeExpOut","easeExpInOut","easeCircle","easeCircleIn","easeCircleOut","easeCircleInOut","easeBounce","easeBounceIn","easeBounceOut","easeBounceInOut","easeBack","easeBackIn","easeBackOut","easeBackInOut","easeElastic","easeElasticIn","easeElasticOut","easeElasticInOut","extend","parent","definition","create","key","Color","color","trim","toLowerCase","reHex3","exec","parseInt","Rgb","reHex6","rgbn","reRgbInteger","reRgbPercent","reRgbaInteger","rgba","reRgbaPercent","reHslPercent","hsla","reHslaPercent","named","hasOwnProperty","r","g","rgbConvert","o","rgb","opacity","h","l","Hsl","hslConvert","hsl","hsl2rgb","m1","m2","labConvert","Lab","Hcl","deg2rad","rgb2xyz","xyz2lab","Xn","Yn","z","Zn","lab","t3","t2","t0","lab2xyz","t1","xyz2rgb","hclConvert","atan2","rad2deg","hcl","cubehelixConvert","Cubehelix","BC_DA","ED","EB","bl","k","E","C","D","cubehelix","constructor","darker","brighter","reI","reN","reP","RegExp","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","displayable","toString","round","Kn","A","B","cosh","sinh","dispatch","Error","Dispatch","parseTypenames","typenames","types","split","indexOf","type","get","set","callback","noop","concat","on","typename","T","copy","that","args","apply","formatSpecifier","specifier","FormatSpecifier","match","re","fill","align","sign","symbol","zero","comma","precision","formatTypes","defaultLocale","locale","formatLocale","formatPrefix","prefixExponent","formatDecimal","toExponential","coefficient","formatGroup","grouping","thousands","substring","join","formatNumerals","numerals","replace","formatDefault","toPrecision","out","formatPrefixAuto","formatRounded","","%","toFixed","X","toUpperCase","prefixes","newFormat","valuePrefix","prefix","valueSuffix","suffix","formatType","valueNegative","maybeSuffix","charCodeAt","decimal","group","Infinity","padding","currency","test","percent","precisionFixed","precisionPrefix","precisionRound","formatDefaultLocale","d3Color","basis","v0","v1","v2","v3","exponential","hue","gamma","nogamma","rgbSpline","spline","colors","color$$1","one","parseCss","cssNode","document","createElement","cssRoot","documentElement","cssView","defaultView","transform","getComputedStyle","appendChild","getPropertyValue","removeChild","decompose","parseSvg","svgNode","createElementNS","setAttribute","baseVal","consolidate","interpolateTransform","parse","pxComma","pxParen","degParen","translate","xa","ya","xb","yb","q","rotate","skewX","scale","translateX","translateY","scaleX","scaleY","exp","tanh","hsl$1","hue$$1","end","lab$1","hcl$1","cubehelix$1","cubehelixGamma","cubehelix$$1","basis$1","basisClosed","rgb$1","rgbGamma","rgb$$1","rgbBasis","rgbBasisClosed","nb","na","date","Date","setTime","object","reA","reB","source","string","am","bm","bs","bi","lastIndex","index","valueOf","degrees","atan","interpolateTransformCss","interpolateTransformSvg","rho","SQRT2","rho2","rho4","epsilon2","zoom","p0","p1","S","ux0","uy0","w0","ux1","uy1","w1","dx","dy","d2","d1","r0","r1","coshr0","u","hsl$2","hslLong","hcl$2","hclLong","cubehelix$2","cubehelixLong","quantize","interpolator","samples","interpolate","interpolateArray","interpolateBasis","interpolateBasisClosed","interpolateDate","interpolateNumber","interpolateObject","interpolateRound","interpolateString","interpolateZoom","interpolateRgb","interpolateRgbBasis","interpolateRgbBasisClosed","interpolateHsl","interpolateHslLong","interpolateLab","interpolateHcl","interpolateHclLong","interpolateCubehelix","interpolateCubehelixLong","creatorInherit","ownerDocument","uri","namespaceURI","xhtml","creatorFixed","fullname","space","local","Local","nextId","filterContextListener","listener","contextListener","event","related","relatedTarget","compareDocumentPosition","event1","event0","__data__","onRemove","__on","removeEventListener","capture","onAdd","wrap","filterEvents","addEventListener","customEvent","sourceEvent","none","empty","EnterNode","datum","_next","_parent","bindIndex","enter","exit","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","keyPrefix","attrRemove","removeAttribute","attrRemoveNS","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","propertyRemove","propertyConstant","propertyFunction","classArray","classList","ClassList","_node","_names","getAttribute","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","parentNode","lower","previousSibling","insertBefore","firstChild","constantNull","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","Selection","groups","parents","_groups","_parents","selection","namespaces","xlink","xml","xmlns","namespace","creator","matcher","selector","matches","element","vendorMatches","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","matcher$1","element$1","mouseenter","mouseleave","selection_on","current","point","ownerSVGElement","createSVGPoint","clientX","clientY","matrixTransform","getScreenCTM","inverse","rect","getBoundingClientRect","clientLeft","clientTop","mouse","changedTouches","querySelector","selection_select","subgroups","subnode","subgroup","selectorAll","querySelectorAll","selection_selectAll","selection_filter","sparse","selection_enter","_enter","child","selection_data","size","bind","enterGroup","updateGroup","exitGroup","previous","_exit","selection_exit","selection_merge","groups0","groups1","m0","merges","group0","group1","selection_order","selection_sort","compareNode","sortgroups","sortgroup","order","selection_call","selection_nodes","nodes","selection_node","selection_size","selection_empty","selection_each","selection_attr","getAttributeNS","selection_style","selection_property","splice","contains","selection_classed","selection_text","selection_html","selection_raise","selection_lower","selection_append","selection_insert","before","selection_remove","selection_datum","property","selection_dispatch","html","insert","touch","touches","identifier","points","d3Dispatch","d3Timer","d3Interpolate","init","schedule","__transition","state","CREATED","STARTING","self","elapsed","SCHEDULED","timer","restart","delay","time","schedules","STARTED","timeout","RUNNING","ENDED","tick","tween","ENDING","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","interpolate$$1","value00","interpolate0","value10","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","every","onFunction","on0","on1","sit","removeFunction","styleRemoveEnd","styleTween","Transition","_name","newId","inherit","timing","defaultTiming","now","emptyOn","emptyTween","interrupt","active","selection_interrupt","transition_tween","transition_attr","transition_attrTween","transition_delay","transition_duration","transition_ease","transition_filter","transition_merge","transition_on","transition_remove","transition_select","transition_selectAll","children","transition_selection","transition_style","transition_styleTween","transition_text","transition_transition","id0","id1","selection_prototype","selection_transition","clockNow","setFrame","clearNow","clock","clockSkew","Timer","_call","_time","timerFlush","frame","taskHead","wake","clockLast","nap","poke","pokeDelay","taskTail","sleep","clearTimeout","setTimeout","interval","clearInterval","setInterval","performance","requestAnimationFrame","timeout$1","interval$1","total"],"mappings":"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","file":"miniTooltip.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"miniTooltip\"] = factory();\n\telse\n\t\troot[\"britecharts\"] = root[\"britecharts\"] || {}, root[\"britecharts\"][\"miniTooltip\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"miniTooltip\"] = factory();\n\telse\n\t\troot[\"britecharts\"] = root[\"britecharts\"] || {}, root[\"britecharts\"][\"miniTooltip\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;'use strict';\n\t\n\tvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\t\n\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function (require) {\n\t 'use strict';\n\t\n\t var d3Array = __webpack_require__(1);\n\t var d3Ease = __webpack_require__(2);\n\t var d3Format = __webpack_require__(6);\n\t var d3Selection = __webpack_require__(12);\n\t var d3Transition = __webpack_require__(13);\n\t\n\t /**\n\t * Mini Tooltip Component reusable API class that renders a\n\t * simple and configurable tooltip element for Britechart's\n\t * bar and step chart.\n\t *\n\t * @module Mini-tooltip\n\t * @tutorial bar\n\t * @requires d3\n\t *\n\t * @example\n\t * var barChart = line(),\n\t * miniTooltip = miniTooltip();\n\t *\n\t * barChart\n\t * .width(500)\n\t * .height(300)\n\t * .on('customMouseHover', miniTooltip.show)\n\t * .on('customMouseMove', miniTooltip.update)\n\t * .on('customMouseOut', miniTooltip.hide);\n\t *\n\t * d3Selection.select('.css-selector')\n\t * .datum(dataset)\n\t * .call(barChart);\n\t *\n\t * d3Selection.select('.metadata-group .mini-tooltip-container')\n\t * .datum([])\n\t * .call(miniTooltip);\n\t *\n\t */\n\t return function module() {\n\t\n\t var margin = {\n\t top: 12,\n\t right: 12,\n\t bottom: 12,\n\t left: 12\n\t },\n\t width = 100,\n\t height = 100,\n\t\n\t\n\t // Optional Title\n\t title = '',\n\t\n\t\n\t // Data Format\n\t valueLabel = 'value',\n\t nameLabel = 'name',\n\t\n\t\n\t // Animations\n\t mouseChaseDuration = 100,\n\t ease = d3Ease.easeQuadInOut,\n\t\n\t\n\t // tooltip\n\t tooltipBackground = void 0,\n\t backgroundBorderRadius = 1,\n\t tooltipTextContainer = void 0,\n\t tooltipOffset = {\n\t y: 0,\n\t x: 20\n\t },\n\t\n\t\n\t // Fonts\n\t textSize = 14,\n\t textLineHeight = 1.5,\n\t valueTextSize = 27,\n\t valueTextLineHeight = 1.18,\n\t\n\t\n\t // Colors\n\t bodyFillColor = '#FFFFFF',\n\t borderStrokeColor = '#D2D6DF',\n\t titleFillColor = '#666a73',\n\t nameTextFillColor = '#666a73',\n\t valueTextFillColor = '#45494E',\n\t valueTextWeight = 200,\n\t\n\t\n\t // formats\n\t tooltipValueFormat = d3Format.format('.2f'),\n\t chartWidth = void 0,\n\t chartHeight = void 0,\n\t svg = void 0;\n\t\n\t /**\n\t * This function creates the graph using the selection as container\n\t * @param {D3Selection} _selection A d3 selection that represents\n\t * the container(s) where the chart(s) will be rendered\n\t */\n\t function exports(_selection) {\n\t _selection.each(function () {\n\t chartWidth = width - margin.left - margin.right;\n\t chartHeight = height - margin.top - margin.bottom;\n\t\n\t buildSVG(this);\n\t drawTooltip();\n\t });\n\t }\n\t\n\t /**\n\t * Builds containers for the tooltip\n\t * Also applies the Margin convention\n\t * @private\n\t */\n\t function buildContainerGroups() {\n\t var container = svg.append('g').classed('tooltip-container-group', true).attr('transform', 'translate( ' + margin.left + ', ' + margin.top + ')');\n\t\n\t container.append('g').classed('tooltip-group', true);\n\t }\n\t\n\t /**\n\t * Builds the SVG element that will contain the chart\n\t * @param {HTMLElement} container DOM element that will work as the container of the graph\n\t * @private\n\t */\n\t function buildSVG(container) {\n\t if (!svg) {\n\t svg = d3Selection.select(container).append('g').classed('britechart britechart-mini-tooltip', true);\n\t\n\t buildContainerGroups();\n\t }\n\t svg.transition().attr('width', width).attr('height', height);\n\t\n\t // Hidden by default\n\t exports.hide();\n\t }\n\t\n\t /**\n\t * Draws the different elements of the Tooltip box\n\t * @return void\n\t */\n\t function drawTooltip() {\n\t tooltipTextContainer = svg.selectAll('.tooltip-group').append('g').classed('tooltip-text', true);\n\t\n\t tooltipBackground = tooltipTextContainer.append('rect').classed('tooltip-background', true).attr('width', width).attr('height', height).attr('rx', backgroundBorderRadius).attr('ry', backgroundBorderRadius).attr('y', -margin.top).attr('x', -margin.left).style('fill', bodyFillColor).style('stroke', borderStrokeColor).style('stroke-width', 1).style('pointer-events', 'none').style('opacity', 0.9);\n\t }\n\t\n\t /**\n\t * Figures out the max length of the tooltip lines\n\t * @param {D3Selection[]} texts List of svg elements of each line\n\t * @return {Number} Max size of the lines\n\t */\n\t function getMaxLengthLine() {\n\t for (var _len = arguments.length, texts = Array(_len), _key = 0; _key < _len; _key++) {\n\t texts[_key] = arguments[_key];\n\t }\n\t\n\t var textSizes = texts.filter(function (x) {\n\t return !!x;\n\t }).map(function (x) {\n\t return x.node().getBBox().width;\n\t });\n\t\n\t return d3Array.max(textSizes);\n\t }\n\t\n\t /**\n\t * Calculates the desired position for the tooltip\n\t * @param {Number} mouseX Current horizontal mouse position\n\t * @param {Number} mouseY Current vertical mouse position\n\t * @param {Number} parentChartWidth Parent's chart width\n\t * @param {Number} parentChartHeight Parent's chart height\n\t * @return {Number[]} X and Y position\n\t * @private\n\t */\n\t function getTooltipPosition(_ref, _ref2) {\n\t var _ref4 = _slicedToArray(_ref, 2),\n\t mouseX = _ref4[0],\n\t mouseY = _ref4[1];\n\t\n\t var _ref3 = _slicedToArray(_ref2, 2),\n\t parentChartWidth = _ref3[0],\n\t parentChartHeight = _ref3[1];\n\t\n\t var tooltipX = void 0,\n\t tooltipY = void 0;\n\t\n\t if (hasEnoughHorizontalRoom(parentChartWidth, mouseX)) {\n\t tooltipX = mouseX + tooltipOffset.x;\n\t } else {\n\t tooltipX = mouseX - chartWidth - tooltipOffset.x - margin.right;\n\t }\n\t\n\t if (hasEnoughVerticalRoom(parentChartHeight, mouseY)) {\n\t tooltipY = mouseY + tooltipOffset.y;\n\t } else {\n\t tooltipY = mouseY - chartHeight - tooltipOffset.y - margin.bottom;\n\t }\n\t\n\t return [tooltipX, tooltipY];\n\t }\n\t\n\t /**\n\t * Checks if the mouse is over the bounds of the parent chart\n\t * @param {Number} chartWidth Parent's chart\n\t * @param {Number} positionX Mouse position\n\t * @return {Boolean} If the mouse position allows space for the tooltip\n\t */\n\t function hasEnoughHorizontalRoom(parentChartWidth, positionX) {\n\t return parentChartWidth - margin.left - margin.right - chartWidth - positionX > 0;\n\t }\n\t\n\t /**\n\t * Checks if the mouse is over the bounds of the parent chart\n\t * @param {Number} chartWidth Parent's chart\n\t * @param {Number} positionX Mouse position\n\t * @return {Boolean} If the mouse position allows space for the tooltip\n\t */\n\t function hasEnoughVerticalRoom(parentChartHeight, positionY) {\n\t return parentChartHeight - margin.top - margin.bottom - chartHeight - positionY > 0;\n\t }\n\t\n\t /**\n\t * Hides the tooltip\n\t * @return {void}\n\t */\n\t function hideTooltip() {\n\t svg.style('display', 'none');\n\t }\n\t\n\t /**\n\t * Shows the tooltip updating it's content\n\t * @param {Object} dataPoint Data point from the chart\n\t * @return {void}\n\t */\n\t function showTooltip(dataPoint) {\n\t updateContent(dataPoint);\n\t svg.style('display', 'block');\n\t }\n\t\n\t /**\n\t * Draws the data entries inside the tooltip for a given topic\n\t * @param {Object} topic Topic to extract data from\n\t * @return void\n\t */\n\t function updateContent() {\n\t var dataPoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t\n\t var value = dataPoint[valueLabel] || '',\n\t name = dataPoint[nameLabel] || '',\n\t lineHeight = textSize * textLineHeight,\n\t valueLineHeight = valueTextSize * valueTextLineHeight,\n\t defaultDy = '1em',\n\t temporalHeight = 0,\n\t tooltipValue = void 0,\n\t tooltipName = void 0,\n\t tooltipTitle = void 0;\n\t\n\t tooltipTextContainer.selectAll('text').remove();\n\t\n\t if (title) {\n\t tooltipTitle = tooltipTextContainer.append('text').classed('mini-tooltip-title', true).attr('dy', defaultDy).attr('y', 0).style('fill', titleFillColor).style('font-size', textSize).text(title);\n\t\n\t temporalHeight = lineHeight + temporalHeight;\n\t }\n\t\n\t if (name) {\n\t tooltipName = tooltipTextContainer.append('text').classed('mini-tooltip-name', true).attr('dy', defaultDy).attr('y', temporalHeight || 0).style('fill', nameTextFillColor).style('font-size', textSize).text(name);\n\t\n\t temporalHeight = lineHeight + temporalHeight;\n\t }\n\t\n\t if (value) {\n\t tooltipValue = tooltipTextContainer.append('text').classed('mini-tooltip-value', true).attr('dy', defaultDy).attr('y', temporalHeight || 0).style('fill', valueTextFillColor).style('font-size', valueTextSize).style('font-weight', valueTextWeight).text(tooltipValueFormat(value));\n\t\n\t temporalHeight = valueLineHeight + temporalHeight;\n\t }\n\t\n\t chartWidth = getMaxLengthLine(tooltipName, tooltipTitle, tooltipValue);\n\t chartHeight = temporalHeight;\n\t }\n\t\n\t /**\n\t * Updates size and position of tooltip depending on the side of the chart we are in\n\t * @param {Object} dataPoint DataPoint of the tooltip\n\t * @return void\n\t */\n\t function updatePositionAndSize(mousePosition, parentChartSize) {\n\t var _getTooltipPosition = getTooltipPosition(mousePosition, parentChartSize),\n\t _getTooltipPosition2 = _slicedToArray(_getTooltipPosition, 2),\n\t tooltipX = _getTooltipPosition2[0],\n\t tooltipY = _getTooltipPosition2[1];\n\t\n\t svg.transition().duration(mouseChaseDuration).ease(ease).attr('height', chartHeight + margin.top + margin.bottom).attr('width', chartWidth + margin.left + margin.right).attr('transform', 'translate(' + tooltipX + ',' + tooltipY + ')');\n\t\n\t tooltipBackground.attr('height', chartHeight + margin.top + margin.bottom).attr('width', chartWidth + margin.left + margin.right);\n\t }\n\t\n\t /**\n\t * Updates tooltip content, size and position\n\t *\n\t * @param {Object} dataPoint Current datapoint to show info about\n\t * @return void\n\t */\n\t function updateTooltip(dataPoint, position, chartSize) {\n\t updateContent(dataPoint);\n\t updatePositionAndSize(position, chartSize);\n\t }\n\t\n\t /**\n\t * Hides the tooltip\n\t * @return {Module} Tooltip module to chain calls\n\t * @public\n\t */\n\t exports.hide = function () {\n\t hideTooltip();\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Gets or Sets data's nameLabel\n\t * @param {text} _x Desired nameLabel\n\t * @return { text | module} nameLabel or Step Chart module to chain calls\n\t * @public\n\t */\n\t exports.nameLabel = function (_x) {\n\t if (!arguments.length) {\n\t return nameLabel;\n\t }\n\t nameLabel = _x;\n\t return this;\n\t };\n\t\n\t /**\n\t * Shows the tooltip\n\t * @return {Module} Tooltip module to chain calls\n\t * @public\n\t */\n\t exports.show = function () {\n\t showTooltip();\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Gets or Sets the title of the tooltip\n\t * @param {string} _x Desired title\n\t * @return { string | module} Current title or module to chain calls\n\t * @public\n\t */\n\t exports.title = function (_x) {\n\t if (!arguments.length) {\n\t return title;\n\t }\n\t title = _x;\n\t return this;\n\t };\n\t\n\t /**\n\t * Updates the position and content of the tooltip\n\t * @param {Object} dataPoint Datapoint of the hovered element\n\t * @param {Array} mousePosition Mouse position relative to the parent chart [x, y]\n\t * @param {Array} chartSize Parent chart size [x, y]\n\t * @return {module} Current component\n\t */\n\t exports.update = function (dataPoint, mousePosition, chartSize) {\n\t updateTooltip(dataPoint, mousePosition, chartSize);\n\t\n\t return this;\n\t };\n\t\n\t return exports;\n\t };\n\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-array/ Version 1.2.0. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar ascending = function(a, b) {\n\t return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n\t};\n\t\n\tvar bisector = function(compare) {\n\t if (compare.length === 1) compare = ascendingComparator(compare);\n\t return {\n\t left: function(a, x, lo, hi) {\n\t if (lo == null) lo = 0;\n\t if (hi == null) hi = a.length;\n\t while (lo < hi) {\n\t var mid = lo + hi >>> 1;\n\t if (compare(a[mid], x) < 0) lo = mid + 1;\n\t else hi = mid;\n\t }\n\t return lo;\n\t },\n\t right: function(a, x, lo, hi) {\n\t if (lo == null) lo = 0;\n\t if (hi == null) hi = a.length;\n\t while (lo < hi) {\n\t var mid = lo + hi >>> 1;\n\t if (compare(a[mid], x) > 0) hi = mid;\n\t else lo = mid + 1;\n\t }\n\t return lo;\n\t }\n\t };\n\t};\n\t\n\tfunction ascendingComparator(f) {\n\t return function(d, x) {\n\t return ascending(f(d), x);\n\t };\n\t}\n\t\n\tvar ascendingBisect = bisector(ascending);\n\tvar bisectRight = ascendingBisect.right;\n\tvar bisectLeft = ascendingBisect.left;\n\t\n\tvar pairs = function(array, f) {\n\t if (f == null) f = pair;\n\t var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n\t while (i < n) pairs[i] = f(p, p = array[++i]);\n\t return pairs;\n\t};\n\t\n\tfunction pair(a, b) {\n\t return [a, b];\n\t}\n\t\n\tvar cross = function(values0, values1, reduce) {\n\t var n0 = values0.length,\n\t n1 = values1.length,\n\t values = new Array(n0 * n1),\n\t i0,\n\t i1,\n\t i,\n\t value0;\n\t\n\t if (reduce == null) reduce = pair;\n\t\n\t for (i0 = i = 0; i0 < n0; ++i0) {\n\t for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n\t values[i] = reduce(value0, values1[i1]);\n\t }\n\t }\n\t\n\t return values;\n\t};\n\t\n\tvar descending = function(a, b) {\n\t return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n\t};\n\t\n\tvar number = function(x) {\n\t return x === null ? NaN : +x;\n\t};\n\t\n\tvar variance = function(values, valueof) {\n\t var n = values.length,\n\t m = 0,\n\t i = -1,\n\t mean = 0,\n\t value,\n\t delta,\n\t sum = 0;\n\t\n\t if (valueof == null) {\n\t while (++i < n) {\n\t if (!isNaN(value = number(values[i]))) {\n\t delta = value - mean;\n\t mean += delta / ++m;\n\t sum += delta * (value - mean);\n\t }\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) {\n\t if (!isNaN(value = number(valueof(values[i], i, values)))) {\n\t delta = value - mean;\n\t mean += delta / ++m;\n\t sum += delta * (value - mean);\n\t }\n\t }\n\t }\n\t\n\t if (m > 1) return sum / (m - 1);\n\t};\n\t\n\tvar deviation = function(array, f) {\n\t var v = variance(array, f);\n\t return v ? Math.sqrt(v) : v;\n\t};\n\t\n\tvar extent = function(values, valueof) {\n\t var n = values.length,\n\t i = -1,\n\t value,\n\t min,\n\t max;\n\t\n\t if (valueof == null) {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = values[i]) != null && value >= value) {\n\t min = max = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = values[i]) != null) {\n\t if (min > value) min = value;\n\t if (max < value) max = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = valueof(values[i], i, values)) != null && value >= value) {\n\t min = max = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = valueof(values[i], i, values)) != null) {\n\t if (min > value) min = value;\n\t if (max < value) max = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t return [min, max];\n\t};\n\t\n\tvar array = Array.prototype;\n\t\n\tvar slice = array.slice;\n\tvar map = array.map;\n\t\n\tvar constant = function(x) {\n\t return function() {\n\t return x;\n\t };\n\t};\n\t\n\tvar identity = function(x) {\n\t return x;\n\t};\n\t\n\tvar range = function(start, stop, step) {\n\t start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\t\n\t var i = -1,\n\t n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n\t range = new Array(n);\n\t\n\t while (++i < n) {\n\t range[i] = start + i * step;\n\t }\n\t\n\t return range;\n\t};\n\t\n\tvar e10 = Math.sqrt(50);\n\tvar e5 = Math.sqrt(10);\n\tvar e2 = Math.sqrt(2);\n\t\n\tvar ticks = function(start, stop, count) {\n\t var reverse = stop < start,\n\t i = -1,\n\t n,\n\t ticks,\n\t step;\n\t\n\t if (reverse) n = start, start = stop, stop = n;\n\t\n\t if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\t\n\t if (step > 0) {\n\t start = Math.ceil(start / step);\n\t stop = Math.floor(stop / step);\n\t ticks = new Array(n = Math.ceil(stop - start + 1));\n\t while (++i < n) ticks[i] = (start + i) * step;\n\t } else {\n\t start = Math.floor(start * step);\n\t stop = Math.ceil(stop * step);\n\t ticks = new Array(n = Math.ceil(start - stop + 1));\n\t while (++i < n) ticks[i] = (start - i) / step;\n\t }\n\t\n\t if (reverse) ticks.reverse();\n\t\n\t return ticks;\n\t};\n\t\n\tfunction tickIncrement(start, stop, count) {\n\t var step = (stop - start) / Math.max(0, count),\n\t power = Math.floor(Math.log(step) / Math.LN10),\n\t error = step / Math.pow(10, power);\n\t return power >= 0\n\t ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n\t : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n\t}\n\t\n\tfunction tickStep(start, stop, count) {\n\t var step0 = Math.abs(stop - start) / Math.max(0, count),\n\t step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n\t error = step0 / step1;\n\t if (error >= e10) step1 *= 10;\n\t else if (error >= e5) step1 *= 5;\n\t else if (error >= e2) step1 *= 2;\n\t return stop < start ? -step1 : step1;\n\t}\n\t\n\tvar sturges = function(values) {\n\t return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n\t};\n\t\n\tvar histogram = function() {\n\t var value = identity,\n\t domain = extent,\n\t threshold = sturges;\n\t\n\t function histogram(data) {\n\t var i,\n\t n = data.length,\n\t x,\n\t values = new Array(n);\n\t\n\t for (i = 0; i < n; ++i) {\n\t values[i] = value(data[i], i, data);\n\t }\n\t\n\t var xz = domain(values),\n\t x0 = xz[0],\n\t x1 = xz[1],\n\t tz = threshold(values, x0, x1);\n\t\n\t // Convert number of thresholds into uniform thresholds.\n\t if (!Array.isArray(tz)) {\n\t tz = tickStep(x0, x1, tz);\n\t tz = range(Math.ceil(x0 / tz) * tz, Math.floor(x1 / tz) * tz, tz); // exclusive\n\t }\n\t\n\t // Remove any thresholds outside the domain.\n\t var m = tz.length;\n\t while (tz[0] <= x0) tz.shift(), --m;\n\t while (tz[m - 1] > x1) tz.pop(), --m;\n\t\n\t var bins = new Array(m + 1),\n\t bin;\n\t\n\t // Initialize bins.\n\t for (i = 0; i <= m; ++i) {\n\t bin = bins[i] = [];\n\t bin.x0 = i > 0 ? tz[i - 1] : x0;\n\t bin.x1 = i < m ? tz[i] : x1;\n\t }\n\t\n\t // Assign data to bins by value, ignoring any outside the domain.\n\t for (i = 0; i < n; ++i) {\n\t x = values[i];\n\t if (x0 <= x && x <= x1) {\n\t bins[bisectRight(tz, x, 0, m)].push(data[i]);\n\t }\n\t }\n\t\n\t return bins;\n\t }\n\t\n\t histogram.value = function(_) {\n\t return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n\t };\n\t\n\t histogram.domain = function(_) {\n\t return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n\t };\n\t\n\t histogram.thresholds = function(_) {\n\t return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n\t };\n\t\n\t return histogram;\n\t};\n\t\n\tvar quantile = function(values, p, valueof) {\n\t if (valueof == null) valueof = number;\n\t if (!(n = values.length)) return;\n\t if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n\t if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n\t var n,\n\t i = (n - 1) * p,\n\t i0 = Math.floor(i),\n\t value0 = +valueof(values[i0], i0, values),\n\t value1 = +valueof(values[i0 + 1], i0 + 1, values);\n\t return value0 + (value1 - value0) * (i - i0);\n\t};\n\t\n\tvar freedmanDiaconis = function(values, min, max) {\n\t values = map.call(values, number).sort(ascending);\n\t return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n\t};\n\t\n\tvar scott = function(values, min, max) {\n\t return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n\t};\n\t\n\tvar max = function(values, valueof) {\n\t var n = values.length,\n\t i = -1,\n\t value,\n\t max;\n\t\n\t if (valueof == null) {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = values[i]) != null && value >= value) {\n\t max = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = values[i]) != null && value > max) {\n\t max = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = valueof(values[i], i, values)) != null && value >= value) {\n\t max = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = valueof(values[i], i, values)) != null && value > max) {\n\t max = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t return max;\n\t};\n\t\n\tvar mean = function(values, valueof) {\n\t var n = values.length,\n\t m = n,\n\t i = -1,\n\t value,\n\t sum = 0;\n\t\n\t if (valueof == null) {\n\t while (++i < n) {\n\t if (!isNaN(value = number(values[i]))) sum += value;\n\t else --m;\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) {\n\t if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n\t else --m;\n\t }\n\t }\n\t\n\t if (m) return sum / m;\n\t};\n\t\n\tvar median = function(values, valueof) {\n\t var n = values.length,\n\t i = -1,\n\t value,\n\t numbers = [];\n\t\n\t if (valueof == null) {\n\t while (++i < n) {\n\t if (!isNaN(value = number(values[i]))) {\n\t numbers.push(value);\n\t }\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) {\n\t if (!isNaN(value = number(valueof(values[i], i, values)))) {\n\t numbers.push(value);\n\t }\n\t }\n\t }\n\t\n\t return quantile(numbers.sort(ascending), 0.5);\n\t};\n\t\n\tvar merge = function(arrays) {\n\t var n = arrays.length,\n\t m,\n\t i = -1,\n\t j = 0,\n\t merged,\n\t array;\n\t\n\t while (++i < n) j += arrays[i].length;\n\t merged = new Array(j);\n\t\n\t while (--n >= 0) {\n\t array = arrays[n];\n\t m = array.length;\n\t while (--m >= 0) {\n\t merged[--j] = array[m];\n\t }\n\t }\n\t\n\t return merged;\n\t};\n\t\n\tvar min = function(values, valueof) {\n\t var n = values.length,\n\t i = -1,\n\t value,\n\t min;\n\t\n\t if (valueof == null) {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = values[i]) != null && value >= value) {\n\t min = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = values[i]) != null && min > value) {\n\t min = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) { // Find the first comparable value.\n\t if ((value = valueof(values[i], i, values)) != null && value >= value) {\n\t min = value;\n\t while (++i < n) { // Compare the remaining values.\n\t if ((value = valueof(values[i], i, values)) != null && min > value) {\n\t min = value;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t return min;\n\t};\n\t\n\tvar permute = function(array, indexes) {\n\t var i = indexes.length, permutes = new Array(i);\n\t while (i--) permutes[i] = array[indexes[i]];\n\t return permutes;\n\t};\n\t\n\tvar scan = function(values, compare) {\n\t if (!(n = values.length)) return;\n\t var n,\n\t i = 0,\n\t j = 0,\n\t xi,\n\t xj = values[j];\n\t\n\t if (compare == null) compare = ascending;\n\t\n\t while (++i < n) {\n\t if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n\t xj = xi, j = i;\n\t }\n\t }\n\t\n\t if (compare(xj, xj) === 0) return j;\n\t};\n\t\n\tvar shuffle = function(array, i0, i1) {\n\t var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n\t t,\n\t i;\n\t\n\t while (m) {\n\t i = Math.random() * m-- | 0;\n\t t = array[m + i0];\n\t array[m + i0] = array[i + i0];\n\t array[i + i0] = t;\n\t }\n\t\n\t return array;\n\t};\n\t\n\tvar sum = function(values, valueof) {\n\t var n = values.length,\n\t i = -1,\n\t value,\n\t sum = 0;\n\t\n\t if (valueof == null) {\n\t while (++i < n) {\n\t if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n\t }\n\t }\n\t\n\t else {\n\t while (++i < n) {\n\t if (value = +valueof(values[i], i, values)) sum += value;\n\t }\n\t }\n\t\n\t return sum;\n\t};\n\t\n\tvar transpose = function(matrix) {\n\t if (!(n = matrix.length)) return [];\n\t for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n\t for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n\t row[j] = matrix[j][i];\n\t }\n\t }\n\t return transpose;\n\t};\n\t\n\tfunction length(d) {\n\t return d.length;\n\t}\n\t\n\tvar zip = function() {\n\t return transpose(arguments);\n\t};\n\t\n\texports.bisect = bisectRight;\n\texports.bisectRight = bisectRight;\n\texports.bisectLeft = bisectLeft;\n\texports.ascending = ascending;\n\texports.bisector = bisector;\n\texports.cross = cross;\n\texports.descending = descending;\n\texports.deviation = deviation;\n\texports.extent = extent;\n\texports.histogram = histogram;\n\texports.thresholdFreedmanDiaconis = freedmanDiaconis;\n\texports.thresholdScott = scott;\n\texports.thresholdSturges = sturges;\n\texports.max = max;\n\texports.mean = mean;\n\texports.median = median;\n\texports.merge = merge;\n\texports.min = min;\n\texports.pairs = pairs;\n\texports.permute = permute;\n\texports.quantile = quantile;\n\texports.range = range;\n\texports.scan = scan;\n\texports.shuffle = shuffle;\n\texports.sum = sum;\n\texports.ticks = ticks;\n\texports.tickIncrement = tickIncrement;\n\texports.tickStep = tickStep;\n\texports.transpose = transpose;\n\texports.variance = variance;\n\texports.zip = zip;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-ease/ Version 1.0.3. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tfunction linear(t) {\n\t return +t;\n\t}\n\t\n\tfunction quadIn(t) {\n\t return t * t;\n\t}\n\t\n\tfunction quadOut(t) {\n\t return t * (2 - t);\n\t}\n\t\n\tfunction quadInOut(t) {\n\t return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n\t}\n\t\n\tfunction cubicIn(t) {\n\t return t * t * t;\n\t}\n\t\n\tfunction cubicOut(t) {\n\t return --t * t * t + 1;\n\t}\n\t\n\tfunction cubicInOut(t) {\n\t return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n\t}\n\t\n\tvar exponent = 3;\n\t\n\tvar polyIn = (function custom(e) {\n\t e = +e;\n\t\n\t function polyIn(t) {\n\t return Math.pow(t, e);\n\t }\n\t\n\t polyIn.exponent = custom;\n\t\n\t return polyIn;\n\t})(exponent);\n\t\n\tvar polyOut = (function custom(e) {\n\t e = +e;\n\t\n\t function polyOut(t) {\n\t return 1 - Math.pow(1 - t, e);\n\t }\n\t\n\t polyOut.exponent = custom;\n\t\n\t return polyOut;\n\t})(exponent);\n\t\n\tvar polyInOut = (function custom(e) {\n\t e = +e;\n\t\n\t function polyInOut(t) {\n\t return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n\t }\n\t\n\t polyInOut.exponent = custom;\n\t\n\t return polyInOut;\n\t})(exponent);\n\t\n\tvar pi = Math.PI;\n\tvar halfPi = pi / 2;\n\t\n\tfunction sinIn(t) {\n\t return 1 - Math.cos(t * halfPi);\n\t}\n\t\n\tfunction sinOut(t) {\n\t return Math.sin(t * halfPi);\n\t}\n\t\n\tfunction sinInOut(t) {\n\t return (1 - Math.cos(pi * t)) / 2;\n\t}\n\t\n\tfunction expIn(t) {\n\t return Math.pow(2, 10 * t - 10);\n\t}\n\t\n\tfunction expOut(t) {\n\t return 1 - Math.pow(2, -10 * t);\n\t}\n\t\n\tfunction expInOut(t) {\n\t return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n\t}\n\t\n\tfunction circleIn(t) {\n\t return 1 - Math.sqrt(1 - t * t);\n\t}\n\t\n\tfunction circleOut(t) {\n\t return Math.sqrt(1 - --t * t);\n\t}\n\t\n\tfunction circleInOut(t) {\n\t return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n\t}\n\t\n\tvar b1 = 4 / 11;\n\tvar b2 = 6 / 11;\n\tvar b3 = 8 / 11;\n\tvar b4 = 3 / 4;\n\tvar b5 = 9 / 11;\n\tvar b6 = 10 / 11;\n\tvar b7 = 15 / 16;\n\tvar b8 = 21 / 22;\n\tvar b9 = 63 / 64;\n\tvar b0 = 1 / b1 / b1;\n\t\n\tfunction bounceIn(t) {\n\t return 1 - bounceOut(1 - t);\n\t}\n\t\n\tfunction bounceOut(t) {\n\t return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n\t}\n\t\n\tfunction bounceInOut(t) {\n\t return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n\t}\n\t\n\tvar overshoot = 1.70158;\n\t\n\tvar backIn = (function custom(s) {\n\t s = +s;\n\t\n\t function backIn(t) {\n\t return t * t * ((s + 1) * t - s);\n\t }\n\t\n\t backIn.overshoot = custom;\n\t\n\t return backIn;\n\t})(overshoot);\n\t\n\tvar backOut = (function custom(s) {\n\t s = +s;\n\t\n\t function backOut(t) {\n\t return --t * t * ((s + 1) * t + s) + 1;\n\t }\n\t\n\t backOut.overshoot = custom;\n\t\n\t return backOut;\n\t})(overshoot);\n\t\n\tvar backInOut = (function custom(s) {\n\t s = +s;\n\t\n\t function backInOut(t) {\n\t return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n\t }\n\t\n\t backInOut.overshoot = custom;\n\t\n\t return backInOut;\n\t})(overshoot);\n\t\n\tvar tau = 2 * Math.PI;\n\tvar amplitude = 1;\n\tvar period = 0.3;\n\t\n\tvar elasticIn = (function custom(a, p) {\n\t var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\t\n\t function elasticIn(t) {\n\t return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n\t }\n\t\n\t elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n\t elasticIn.period = function(p) { return custom(a, p); };\n\t\n\t return elasticIn;\n\t})(amplitude, period);\n\t\n\tvar elasticOut = (function custom(a, p) {\n\t var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\t\n\t function elasticOut(t) {\n\t return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n\t }\n\t\n\t elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n\t elasticOut.period = function(p) { return custom(a, p); };\n\t\n\t return elasticOut;\n\t})(amplitude, period);\n\t\n\tvar elasticInOut = (function custom(a, p) {\n\t var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\t\n\t function elasticInOut(t) {\n\t return ((t = t * 2 - 1) < 0\n\t ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n\t : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n\t }\n\t\n\t elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n\t elasticInOut.period = function(p) { return custom(a, p); };\n\t\n\t return elasticInOut;\n\t})(amplitude, period);\n\t\n\texports.easeLinear = linear;\n\texports.easeQuad = quadInOut;\n\texports.easeQuadIn = quadIn;\n\texports.easeQuadOut = quadOut;\n\texports.easeQuadInOut = quadInOut;\n\texports.easeCubic = cubicInOut;\n\texports.easeCubicIn = cubicIn;\n\texports.easeCubicOut = cubicOut;\n\texports.easeCubicInOut = cubicInOut;\n\texports.easePoly = polyInOut;\n\texports.easePolyIn = polyIn;\n\texports.easePolyOut = polyOut;\n\texports.easePolyInOut = polyInOut;\n\texports.easeSin = sinInOut;\n\texports.easeSinIn = sinIn;\n\texports.easeSinOut = sinOut;\n\texports.easeSinInOut = sinInOut;\n\texports.easeExp = expInOut;\n\texports.easeExpIn = expIn;\n\texports.easeExpOut = expOut;\n\texports.easeExpInOut = expInOut;\n\texports.easeCircle = circleInOut;\n\texports.easeCircleIn = circleIn;\n\texports.easeCircleOut = circleOut;\n\texports.easeCircleInOut = circleInOut;\n\texports.easeBounce = bounceOut;\n\texports.easeBounceIn = bounceIn;\n\texports.easeBounceOut = bounceOut;\n\texports.easeBounceInOut = bounceInOut;\n\texports.easeBack = backInOut;\n\texports.easeBackIn = backIn;\n\texports.easeBackOut = backOut;\n\texports.easeBackInOut = backInOut;\n\texports.easeElastic = elasticOut;\n\texports.easeElasticIn = elasticIn;\n\texports.easeElasticOut = elasticOut;\n\texports.easeElasticInOut = elasticInOut;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 3 */,\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-color/ Version 1.0.3. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar define = function(constructor, factory, prototype) {\n\t constructor.prototype = factory.prototype = prototype;\n\t prototype.constructor = constructor;\n\t};\n\t\n\tfunction extend(parent, definition) {\n\t var prototype = Object.create(parent.prototype);\n\t for (var key in definition) prototype[key] = definition[key];\n\t return prototype;\n\t}\n\t\n\tfunction Color() {}\n\t\n\tvar darker = 0.7;\n\tvar brighter = 1 / darker;\n\t\n\tvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\";\n\tvar reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\";\n\tvar reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\";\n\tvar reHex3 = /^#([0-9a-f]{3})$/;\n\tvar reHex6 = /^#([0-9a-f]{6})$/;\n\tvar reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\");\n\tvar reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\");\n\tvar reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\");\n\tvar reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\");\n\tvar reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\");\n\tvar reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\t\n\tvar named = {\n\t aliceblue: 0xf0f8ff,\n\t antiquewhite: 0xfaebd7,\n\t aqua: 0x00ffff,\n\t aquamarine: 0x7fffd4,\n\t azure: 0xf0ffff,\n\t beige: 0xf5f5dc,\n\t bisque: 0xffe4c4,\n\t black: 0x000000,\n\t blanchedalmond: 0xffebcd,\n\t blue: 0x0000ff,\n\t blueviolet: 0x8a2be2,\n\t brown: 0xa52a2a,\n\t burlywood: 0xdeb887,\n\t cadetblue: 0x5f9ea0,\n\t chartreuse: 0x7fff00,\n\t chocolate: 0xd2691e,\n\t coral: 0xff7f50,\n\t cornflowerblue: 0x6495ed,\n\t cornsilk: 0xfff8dc,\n\t crimson: 0xdc143c,\n\t cyan: 0x00ffff,\n\t darkblue: 0x00008b,\n\t darkcyan: 0x008b8b,\n\t darkgoldenrod: 0xb8860b,\n\t darkgray: 0xa9a9a9,\n\t darkgreen: 0x006400,\n\t darkgrey: 0xa9a9a9,\n\t darkkhaki: 0xbdb76b,\n\t darkmagenta: 0x8b008b,\n\t darkolivegreen: 0x556b2f,\n\t darkorange: 0xff8c00,\n\t darkorchid: 0x9932cc,\n\t darkred: 0x8b0000,\n\t darksalmon: 0xe9967a,\n\t darkseagreen: 0x8fbc8f,\n\t darkslateblue: 0x483d8b,\n\t darkslategray: 0x2f4f4f,\n\t darkslategrey: 0x2f4f4f,\n\t darkturquoise: 0x00ced1,\n\t darkviolet: 0x9400d3,\n\t deeppink: 0xff1493,\n\t deepskyblue: 0x00bfff,\n\t dimgray: 0x696969,\n\t dimgrey: 0x696969,\n\t dodgerblue: 0x1e90ff,\n\t firebrick: 0xb22222,\n\t floralwhite: 0xfffaf0,\n\t forestgreen: 0x228b22,\n\t fuchsia: 0xff00ff,\n\t gainsboro: 0xdcdcdc,\n\t ghostwhite: 0xf8f8ff,\n\t gold: 0xffd700,\n\t goldenrod: 0xdaa520,\n\t gray: 0x808080,\n\t green: 0x008000,\n\t greenyellow: 0xadff2f,\n\t grey: 0x808080,\n\t honeydew: 0xf0fff0,\n\t hotpink: 0xff69b4,\n\t indianred: 0xcd5c5c,\n\t indigo: 0x4b0082,\n\t ivory: 0xfffff0,\n\t khaki: 0xf0e68c,\n\t lavender: 0xe6e6fa,\n\t lavenderblush: 0xfff0f5,\n\t lawngreen: 0x7cfc00,\n\t lemonchiffon: 0xfffacd,\n\t lightblue: 0xadd8e6,\n\t lightcoral: 0xf08080,\n\t lightcyan: 0xe0ffff,\n\t lightgoldenrodyellow: 0xfafad2,\n\t lightgray: 0xd3d3d3,\n\t lightgreen: 0x90ee90,\n\t lightgrey: 0xd3d3d3,\n\t lightpink: 0xffb6c1,\n\t lightsalmon: 0xffa07a,\n\t lightseagreen: 0x20b2aa,\n\t lightskyblue: 0x87cefa,\n\t lightslategray: 0x778899,\n\t lightslategrey: 0x778899,\n\t lightsteelblue: 0xb0c4de,\n\t lightyellow: 0xffffe0,\n\t lime: 0x00ff00,\n\t limegreen: 0x32cd32,\n\t linen: 0xfaf0e6,\n\t magenta: 0xff00ff,\n\t maroon: 0x800000,\n\t mediumaquamarine: 0x66cdaa,\n\t mediumblue: 0x0000cd,\n\t mediumorchid: 0xba55d3,\n\t mediumpurple: 0x9370db,\n\t mediumseagreen: 0x3cb371,\n\t mediumslateblue: 0x7b68ee,\n\t mediumspringgreen: 0x00fa9a,\n\t mediumturquoise: 0x48d1cc,\n\t mediumvioletred: 0xc71585,\n\t midnightblue: 0x191970,\n\t mintcream: 0xf5fffa,\n\t mistyrose: 0xffe4e1,\n\t moccasin: 0xffe4b5,\n\t navajowhite: 0xffdead,\n\t navy: 0x000080,\n\t oldlace: 0xfdf5e6,\n\t olive: 0x808000,\n\t olivedrab: 0x6b8e23,\n\t orange: 0xffa500,\n\t orangered: 0xff4500,\n\t orchid: 0xda70d6,\n\t palegoldenrod: 0xeee8aa,\n\t palegreen: 0x98fb98,\n\t paleturquoise: 0xafeeee,\n\t palevioletred: 0xdb7093,\n\t papayawhip: 0xffefd5,\n\t peachpuff: 0xffdab9,\n\t peru: 0xcd853f,\n\t pink: 0xffc0cb,\n\t plum: 0xdda0dd,\n\t powderblue: 0xb0e0e6,\n\t purple: 0x800080,\n\t rebeccapurple: 0x663399,\n\t red: 0xff0000,\n\t rosybrown: 0xbc8f8f,\n\t royalblue: 0x4169e1,\n\t saddlebrown: 0x8b4513,\n\t salmon: 0xfa8072,\n\t sandybrown: 0xf4a460,\n\t seagreen: 0x2e8b57,\n\t seashell: 0xfff5ee,\n\t sienna: 0xa0522d,\n\t silver: 0xc0c0c0,\n\t skyblue: 0x87ceeb,\n\t slateblue: 0x6a5acd,\n\t slategray: 0x708090,\n\t slategrey: 0x708090,\n\t snow: 0xfffafa,\n\t springgreen: 0x00ff7f,\n\t steelblue: 0x4682b4,\n\t tan: 0xd2b48c,\n\t teal: 0x008080,\n\t thistle: 0xd8bfd8,\n\t tomato: 0xff6347,\n\t turquoise: 0x40e0d0,\n\t violet: 0xee82ee,\n\t wheat: 0xf5deb3,\n\t white: 0xffffff,\n\t whitesmoke: 0xf5f5f5,\n\t yellow: 0xffff00,\n\t yellowgreen: 0x9acd32\n\t};\n\t\n\tdefine(Color, color, {\n\t displayable: function() {\n\t return this.rgb().displayable();\n\t },\n\t toString: function() {\n\t return this.rgb() + \"\";\n\t }\n\t});\n\t\n\tfunction color(format) {\n\t var m;\n\t format = (format + \"\").trim().toLowerCase();\n\t return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n\t : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n\t : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n\t : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n\t : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n\t : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n\t : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n\t : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n\t : named.hasOwnProperty(format) ? rgbn(named[format])\n\t : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n\t : null;\n\t}\n\t\n\tfunction rgbn(n) {\n\t return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n\t}\n\t\n\tfunction rgba(r, g, b, a) {\n\t if (a <= 0) r = g = b = NaN;\n\t return new Rgb(r, g, b, a);\n\t}\n\t\n\tfunction rgbConvert(o) {\n\t if (!(o instanceof Color)) o = color(o);\n\t if (!o) return new Rgb;\n\t o = o.rgb();\n\t return new Rgb(o.r, o.g, o.b, o.opacity);\n\t}\n\t\n\tfunction rgb(r, g, b, opacity) {\n\t return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n\t}\n\t\n\tfunction Rgb(r, g, b, opacity) {\n\t this.r = +r;\n\t this.g = +g;\n\t this.b = +b;\n\t this.opacity = +opacity;\n\t}\n\t\n\tdefine(Rgb, rgb, extend(Color, {\n\t brighter: function(k) {\n\t k = k == null ? brighter : Math.pow(brighter, k);\n\t return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n\t },\n\t darker: function(k) {\n\t k = k == null ? darker : Math.pow(darker, k);\n\t return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n\t },\n\t rgb: function() {\n\t return this;\n\t },\n\t displayable: function() {\n\t return (0 <= this.r && this.r <= 255)\n\t && (0 <= this.g && this.g <= 255)\n\t && (0 <= this.b && this.b <= 255)\n\t && (0 <= this.opacity && this.opacity <= 1);\n\t },\n\t toString: function() {\n\t var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n\t return (a === 1 ? \"rgb(\" : \"rgba(\")\n\t + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n\t + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n\t + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n\t + (a === 1 ? \")\" : \", \" + a + \")\");\n\t }\n\t}));\n\t\n\tfunction hsla(h, s, l, a) {\n\t if (a <= 0) h = s = l = NaN;\n\t else if (l <= 0 || l >= 1) h = s = NaN;\n\t else if (s <= 0) h = NaN;\n\t return new Hsl(h, s, l, a);\n\t}\n\t\n\tfunction hslConvert(o) {\n\t if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n\t if (!(o instanceof Color)) o = color(o);\n\t if (!o) return new Hsl;\n\t if (o instanceof Hsl) return o;\n\t o = o.rgb();\n\t var r = o.r / 255,\n\t g = o.g / 255,\n\t b = o.b / 255,\n\t min = Math.min(r, g, b),\n\t max = Math.max(r, g, b),\n\t h = NaN,\n\t s = max - min,\n\t l = (max + min) / 2;\n\t if (s) {\n\t if (r === max) h = (g - b) / s + (g < b) * 6;\n\t else if (g === max) h = (b - r) / s + 2;\n\t else h = (r - g) / s + 4;\n\t s /= l < 0.5 ? max + min : 2 - max - min;\n\t h *= 60;\n\t } else {\n\t s = l > 0 && l < 1 ? 0 : h;\n\t }\n\t return new Hsl(h, s, l, o.opacity);\n\t}\n\t\n\tfunction hsl(h, s, l, opacity) {\n\t return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n\t}\n\t\n\tfunction Hsl(h, s, l, opacity) {\n\t this.h = +h;\n\t this.s = +s;\n\t this.l = +l;\n\t this.opacity = +opacity;\n\t}\n\t\n\tdefine(Hsl, hsl, extend(Color, {\n\t brighter: function(k) {\n\t k = k == null ? brighter : Math.pow(brighter, k);\n\t return new Hsl(this.h, this.s, this.l * k, this.opacity);\n\t },\n\t darker: function(k) {\n\t k = k == null ? darker : Math.pow(darker, k);\n\t return new Hsl(this.h, this.s, this.l * k, this.opacity);\n\t },\n\t rgb: function() {\n\t var h = this.h % 360 + (this.h < 0) * 360,\n\t s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n\t l = this.l,\n\t m2 = l + (l < 0.5 ? l : 1 - l) * s,\n\t m1 = 2 * l - m2;\n\t return new Rgb(\n\t hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n\t hsl2rgb(h, m1, m2),\n\t hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n\t this.opacity\n\t );\n\t },\n\t displayable: function() {\n\t return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n\t && (0 <= this.l && this.l <= 1)\n\t && (0 <= this.opacity && this.opacity <= 1);\n\t }\n\t}));\n\t\n\t/* From FvD 13.37, CSS Color Module Level 3 */\n\tfunction hsl2rgb(h, m1, m2) {\n\t return (h < 60 ? m1 + (m2 - m1) * h / 60\n\t : h < 180 ? m2\n\t : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n\t : m1) * 255;\n\t}\n\t\n\tvar deg2rad = Math.PI / 180;\n\tvar rad2deg = 180 / Math.PI;\n\t\n\tvar Kn = 18;\n\tvar Xn = 0.950470;\n\tvar Yn = 1;\n\tvar Zn = 1.088830;\n\tvar t0 = 4 / 29;\n\tvar t1 = 6 / 29;\n\tvar t2 = 3 * t1 * t1;\n\tvar t3 = t1 * t1 * t1;\n\t\n\tfunction labConvert(o) {\n\t if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n\t if (o instanceof Hcl) {\n\t var h = o.h * deg2rad;\n\t return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n\t }\n\t if (!(o instanceof Rgb)) o = rgbConvert(o);\n\t var b = rgb2xyz(o.r),\n\t a = rgb2xyz(o.g),\n\t l = rgb2xyz(o.b),\n\t x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),\n\t y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),\n\t z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);\n\t return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n\t}\n\t\n\tfunction lab(l, a, b, opacity) {\n\t return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n\t}\n\t\n\tfunction Lab(l, a, b, opacity) {\n\t this.l = +l;\n\t this.a = +a;\n\t this.b = +b;\n\t this.opacity = +opacity;\n\t}\n\t\n\tdefine(Lab, lab, extend(Color, {\n\t brighter: function(k) {\n\t return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n\t },\n\t darker: function(k) {\n\t return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n\t },\n\t rgb: function() {\n\t var y = (this.l + 16) / 116,\n\t x = isNaN(this.a) ? y : y + this.a / 500,\n\t z = isNaN(this.b) ? y : y - this.b / 200;\n\t y = Yn * lab2xyz(y);\n\t x = Xn * lab2xyz(x);\n\t z = Zn * lab2xyz(z);\n\t return new Rgb(\n\t xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB\n\t xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),\n\t xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),\n\t this.opacity\n\t );\n\t }\n\t}));\n\t\n\tfunction xyz2lab(t) {\n\t return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n\t}\n\t\n\tfunction lab2xyz(t) {\n\t return t > t1 ? t * t * t : t2 * (t - t0);\n\t}\n\t\n\tfunction xyz2rgb(x) {\n\t return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n\t}\n\t\n\tfunction rgb2xyz(x) {\n\t return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n\t}\n\t\n\tfunction hclConvert(o) {\n\t if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n\t if (!(o instanceof Lab)) o = labConvert(o);\n\t var h = Math.atan2(o.b, o.a) * rad2deg;\n\t return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n\t}\n\t\n\tfunction hcl(h, c, l, opacity) {\n\t return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n\t}\n\t\n\tfunction Hcl(h, c, l, opacity) {\n\t this.h = +h;\n\t this.c = +c;\n\t this.l = +l;\n\t this.opacity = +opacity;\n\t}\n\t\n\tdefine(Hcl, hcl, extend(Color, {\n\t brighter: function(k) {\n\t return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);\n\t },\n\t darker: function(k) {\n\t return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);\n\t },\n\t rgb: function() {\n\t return labConvert(this).rgb();\n\t }\n\t}));\n\t\n\tvar A = -0.14861;\n\tvar B = +1.78277;\n\tvar C = -0.29227;\n\tvar D = -0.90649;\n\tvar E = +1.97294;\n\tvar ED = E * D;\n\tvar EB = E * B;\n\tvar BC_DA = B * C - D * A;\n\t\n\tfunction cubehelixConvert(o) {\n\t if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n\t if (!(o instanceof Rgb)) o = rgbConvert(o);\n\t var r = o.r / 255,\n\t g = o.g / 255,\n\t b = o.b / 255,\n\t l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n\t bl = b - l,\n\t k = (E * (g - l) - C * bl) / D,\n\t s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n\t h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n\t return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n\t}\n\t\n\tfunction cubehelix(h, s, l, opacity) {\n\t return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n\t}\n\t\n\tfunction Cubehelix(h, s, l, opacity) {\n\t this.h = +h;\n\t this.s = +s;\n\t this.l = +l;\n\t this.opacity = +opacity;\n\t}\n\t\n\tdefine(Cubehelix, cubehelix, extend(Color, {\n\t brighter: function(k) {\n\t k = k == null ? brighter : Math.pow(brighter, k);\n\t return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n\t },\n\t darker: function(k) {\n\t k = k == null ? darker : Math.pow(darker, k);\n\t return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n\t },\n\t rgb: function() {\n\t var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n\t l = +this.l,\n\t a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n\t cosh = Math.cos(h),\n\t sinh = Math.sin(h);\n\t return new Rgb(\n\t 255 * (l + a * (A * cosh + B * sinh)),\n\t 255 * (l + a * (C * cosh + D * sinh)),\n\t 255 * (l + a * (E * cosh)),\n\t this.opacity\n\t );\n\t }\n\t}));\n\t\n\texports.color = color;\n\texports.rgb = rgb;\n\texports.hsl = hsl;\n\texports.lab = lab;\n\texports.hcl = hcl;\n\texports.cubehelix = cubehelix;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-dispatch/ Version 1.0.3. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar noop = {value: function() {}};\n\t\n\tfunction dispatch() {\n\t for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n\t if (!(t = arguments[i] + \"\") || (t in _)) throw new Error(\"illegal type: \" + t);\n\t _[t] = [];\n\t }\n\t return new Dispatch(_);\n\t}\n\t\n\tfunction Dispatch(_) {\n\t this._ = _;\n\t}\n\t\n\tfunction parseTypenames(typenames, types) {\n\t return typenames.trim().split(/^|\\s+/).map(function(t) {\n\t var name = \"\", i = t.indexOf(\".\");\n\t if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n\t if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n\t return {type: t, name: name};\n\t });\n\t}\n\t\n\tDispatch.prototype = dispatch.prototype = {\n\t constructor: Dispatch,\n\t on: function(typename, callback) {\n\t var _ = this._,\n\t T = parseTypenames(typename + \"\", _),\n\t t,\n\t i = -1,\n\t n = T.length;\n\t\n\t // If no callback was specified, return the callback of the given type and name.\n\t if (arguments.length < 2) {\n\t while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n\t return;\n\t }\n\t\n\t // If a type was specified, set the callback for the given type and name.\n\t // Otherwise, if a null callback was specified, remove callbacks of the given name.\n\t if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n\t while (++i < n) {\n\t if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n\t else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n\t }\n\t\n\t return this;\n\t },\n\t copy: function() {\n\t var copy = {}, _ = this._;\n\t for (var t in _) copy[t] = _[t].slice();\n\t return new Dispatch(copy);\n\t },\n\t call: function(type, that) {\n\t if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n\t if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\t for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n\t },\n\t apply: function(type, that, args) {\n\t if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\t for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n\t }\n\t};\n\t\n\tfunction get(type, name) {\n\t for (var i = 0, n = type.length, c; i < n; ++i) {\n\t if ((c = type[i]).name === name) {\n\t return c.value;\n\t }\n\t }\n\t}\n\t\n\tfunction set(type, name, callback) {\n\t for (var i = 0, n = type.length; i < n; ++i) {\n\t if (type[i].name === name) {\n\t type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n\t break;\n\t }\n\t }\n\t if (callback != null) type.push({name: name, value: callback});\n\t return type;\n\t}\n\t\n\texports.dispatch = dispatch;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-format/ Version 1.2.0. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\t// Computes the decimal coefficient and exponent of the specified number x with\n\t// significant digits p, where x is positive and p is in [1, 21] or undefined.\n\t// For example, formatDecimal(1.23) returns [\"123\", 0].\n\tvar formatDecimal = function(x, p) {\n\t if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\t var i, coefficient = x.slice(0, i);\n\t\n\t // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n\t // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n\t return [\n\t coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n\t +x.slice(i + 1)\n\t ];\n\t};\n\t\n\tvar exponent = function(x) {\n\t return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n\t};\n\t\n\tvar formatGroup = function(grouping, thousands) {\n\t return function(value, width) {\n\t var i = value.length,\n\t t = [],\n\t j = 0,\n\t g = grouping[0],\n\t length = 0;\n\t\n\t while (i > 0 && g > 0) {\n\t if (length + g + 1 > width) g = Math.max(1, width - length);\n\t t.push(value.substring(i -= g, i + g));\n\t if ((length += g + 1) > width) break;\n\t g = grouping[j = (j + 1) % grouping.length];\n\t }\n\t\n\t return t.reverse().join(thousands);\n\t };\n\t};\n\t\n\tvar formatNumerals = function(numerals) {\n\t return function(value) {\n\t return value.replace(/[0-9]/g, function(i) {\n\t return numerals[+i];\n\t });\n\t };\n\t};\n\t\n\tvar formatDefault = function(x, p) {\n\t x = x.toPrecision(p);\n\t\n\t out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {\n\t switch (x[i]) {\n\t case \".\": i0 = i1 = i; break;\n\t case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n\t case \"e\": break out;\n\t default: if (i0 > 0) i0 = 0; break;\n\t }\n\t }\n\t\n\t return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;\n\t};\n\t\n\tvar prefixExponent;\n\t\n\tvar formatPrefixAuto = function(x, p) {\n\t var d = formatDecimal(x, p);\n\t if (!d) return x + \"\";\n\t var coefficient = d[0],\n\t exponent = d[1],\n\t i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n\t n = coefficient.length;\n\t return i === n ? coefficient\n\t : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n\t : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n\t : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n\t};\n\t\n\tvar formatRounded = function(x, p) {\n\t var d = formatDecimal(x, p);\n\t if (!d) return x + \"\";\n\t var coefficient = d[0],\n\t exponent = d[1];\n\t return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n\t : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n\t : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n\t};\n\t\n\tvar formatTypes = {\n\t \"\": formatDefault,\n\t \"%\": function(x, p) { return (x * 100).toFixed(p); },\n\t \"b\": function(x) { return Math.round(x).toString(2); },\n\t \"c\": function(x) { return x + \"\"; },\n\t \"d\": function(x) { return Math.round(x).toString(10); },\n\t \"e\": function(x, p) { return x.toExponential(p); },\n\t \"f\": function(x, p) { return x.toFixed(p); },\n\t \"g\": function(x, p) { return x.toPrecision(p); },\n\t \"o\": function(x) { return Math.round(x).toString(8); },\n\t \"p\": function(x, p) { return formatRounded(x * 100, p); },\n\t \"r\": formatRounded,\n\t \"s\": formatPrefixAuto,\n\t \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n\t \"x\": function(x) { return Math.round(x).toString(16); }\n\t};\n\t\n\t// [[fill]align][sign][symbol][0][width][,][.precision][type]\n\tvar re = /^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;\n\t\n\tfunction formatSpecifier(specifier) {\n\t return new FormatSpecifier(specifier);\n\t}\n\t\n\tformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\t\n\tfunction FormatSpecifier(specifier) {\n\t if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n\t\n\t var match,\n\t fill = match[1] || \" \",\n\t align = match[2] || \">\",\n\t sign = match[3] || \"-\",\n\t symbol = match[4] || \"\",\n\t zero = !!match[5],\n\t width = match[6] && +match[6],\n\t comma = !!match[7],\n\t precision = match[8] && +match[8].slice(1),\n\t type = match[9] || \"\";\n\t\n\t // The \"n\" type is an alias for \",g\".\n\t if (type === \"n\") comma = true, type = \"g\";\n\t\n\t // Map invalid types to the default format.\n\t else if (!formatTypes[type]) type = \"\";\n\t\n\t // If zero fill is specified, padding goes after sign and before digits.\n\t if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\t\n\t this.fill = fill;\n\t this.align = align;\n\t this.sign = sign;\n\t this.symbol = symbol;\n\t this.zero = zero;\n\t this.width = width;\n\t this.comma = comma;\n\t this.precision = precision;\n\t this.type = type;\n\t}\n\t\n\tFormatSpecifier.prototype.toString = function() {\n\t return this.fill\n\t + this.align\n\t + this.sign\n\t + this.symbol\n\t + (this.zero ? \"0\" : \"\")\n\t + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n\t + (this.comma ? \",\" : \"\")\n\t + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n\t + this.type;\n\t};\n\t\n\tvar identity = function(x) {\n\t return x;\n\t};\n\t\n\tvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\t\n\tvar formatLocale = function(locale) {\n\t var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity,\n\t currency = locale.currency,\n\t decimal = locale.decimal,\n\t numerals = locale.numerals ? formatNumerals(locale.numerals) : identity,\n\t percent = locale.percent || \"%\";\n\t\n\t function newFormat(specifier) {\n\t specifier = formatSpecifier(specifier);\n\t\n\t var fill = specifier.fill,\n\t align = specifier.align,\n\t sign = specifier.sign,\n\t symbol = specifier.symbol,\n\t zero = specifier.zero,\n\t width = specifier.width,\n\t comma = specifier.comma,\n\t precision = specifier.precision,\n\t type = specifier.type;\n\t\n\t // Compute the prefix and suffix.\n\t // For SI-prefix, the suffix is lazily computed.\n\t var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n\t suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? percent : \"\";\n\t\n\t // What format function should we use?\n\t // Is this an integer type?\n\t // Can this type generate exponential notation?\n\t var formatType = formatTypes[type],\n\t maybeSuffix = !type || /[defgprs%]/.test(type);\n\t\n\t // Set the default precision if not specified,\n\t // or clamp the specified precision to the supported range.\n\t // For significant precision, it must be in [1, 21].\n\t // For fixed precision, it must be in [0, 20].\n\t precision = precision == null ? (type ? 6 : 12)\n\t : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n\t : Math.max(0, Math.min(20, precision));\n\t\n\t function format(value) {\n\t var valuePrefix = prefix,\n\t valueSuffix = suffix,\n\t i, n, c;\n\t\n\t if (type === \"c\") {\n\t valueSuffix = formatType(value) + valueSuffix;\n\t value = \"\";\n\t } else {\n\t value = +value;\n\t\n\t // Perform the initial formatting.\n\t var valueNegative = value < 0;\n\t value = formatType(Math.abs(value), precision);\n\t\n\t // If a negative value rounds to zero during formatting, treat as positive.\n\t if (valueNegative && +value === 0) valueNegative = false;\n\t\n\t // Compute the prefix and suffix.\n\t valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n\t valueSuffix = valueSuffix + (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\t\n\t // Break the formatted value into the integer “value” part that can be\n\t // grouped, and fractional or exponential “suffix” part that is not.\n\t if (maybeSuffix) {\n\t i = -1, n = value.length;\n\t while (++i < n) {\n\t if (c = value.charCodeAt(i), 48 > c || c > 57) {\n\t valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n\t value = value.slice(0, i);\n\t break;\n\t }\n\t }\n\t }\n\t }\n\t\n\t // If the fill character is not \"0\", grouping is applied before padding.\n\t if (comma && !zero) value = group(value, Infinity);\n\t\n\t // Compute the padding.\n\t var length = valuePrefix.length + value.length + valueSuffix.length,\n\t padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\t\n\t // If the fill character is \"0\", grouping is applied after padding.\n\t if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\t\n\t // Reconstruct the final output based on the desired alignment.\n\t switch (align) {\n\t case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n\t case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n\t case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n\t default: value = padding + valuePrefix + value + valueSuffix; break;\n\t }\n\t\n\t return numerals(value);\n\t }\n\t\n\t format.toString = function() {\n\t return specifier + \"\";\n\t };\n\t\n\t return format;\n\t }\n\t\n\t function formatPrefix(specifier, value) {\n\t var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n\t e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n\t k = Math.pow(10, -e),\n\t prefix = prefixes[8 + e / 3];\n\t return function(value) {\n\t return f(k * value) + prefix;\n\t };\n\t }\n\t\n\t return {\n\t format: newFormat,\n\t formatPrefix: formatPrefix\n\t };\n\t};\n\t\n\tvar locale;\n\t\n\t\n\t\n\tdefaultLocale({\n\t decimal: \".\",\n\t thousands: \",\",\n\t grouping: [3],\n\t currency: [\"$\", \"\"]\n\t});\n\t\n\tfunction defaultLocale(definition) {\n\t locale = formatLocale(definition);\n\t exports.format = locale.format;\n\t exports.formatPrefix = locale.formatPrefix;\n\t return locale;\n\t}\n\t\n\tvar precisionFixed = function(step) {\n\t return Math.max(0, -exponent(Math.abs(step)));\n\t};\n\t\n\tvar precisionPrefix = function(step, value) {\n\t return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n\t};\n\t\n\tvar precisionRound = function(step, max) {\n\t step = Math.abs(step), max = Math.abs(max) - step;\n\t return Math.max(0, exponent(max) - exponent(step)) + 1;\n\t};\n\t\n\texports.formatDefaultLocale = defaultLocale;\n\texports.formatLocale = formatLocale;\n\texports.formatSpecifier = formatSpecifier;\n\texports.precisionFixed = precisionFixed;\n\texports.precisionPrefix = precisionPrefix;\n\texports.precisionRound = precisionRound;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 7 */,\n/* 8 */,\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-interpolate/ Version 1.1.5. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports, __webpack_require__(4)) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-color'], factory) :\n\t\t(factory((global.d3 = global.d3 || {}),global.d3));\n\t}(this, (function (exports,d3Color) { 'use strict';\n\t\n\tfunction basis(t1, v0, v1, v2, v3) {\n\t var t2 = t1 * t1, t3 = t2 * t1;\n\t return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n\t + (4 - 6 * t2 + 3 * t3) * v1\n\t + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n\t + t3 * v3) / 6;\n\t}\n\t\n\tvar basis$1 = function(values) {\n\t var n = values.length - 1;\n\t return function(t) {\n\t var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n\t v1 = values[i],\n\t v2 = values[i + 1],\n\t v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n\t v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n\t return basis((t - i / n) * n, v0, v1, v2, v3);\n\t };\n\t};\n\t\n\tvar basisClosed = function(values) {\n\t var n = values.length;\n\t return function(t) {\n\t var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n\t v0 = values[(i + n - 1) % n],\n\t v1 = values[i % n],\n\t v2 = values[(i + 1) % n],\n\t v3 = values[(i + 2) % n];\n\t return basis((t - i / n) * n, v0, v1, v2, v3);\n\t };\n\t};\n\t\n\tvar constant = function(x) {\n\t return function() {\n\t return x;\n\t };\n\t};\n\t\n\tfunction linear(a, d) {\n\t return function(t) {\n\t return a + t * d;\n\t };\n\t}\n\t\n\tfunction exponential(a, b, y) {\n\t return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n\t return Math.pow(a + t * b, y);\n\t };\n\t}\n\t\n\tfunction hue(a, b) {\n\t var d = b - a;\n\t return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n\t}\n\t\n\tfunction gamma(y) {\n\t return (y = +y) === 1 ? nogamma : function(a, b) {\n\t return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n\t };\n\t}\n\t\n\tfunction nogamma(a, b) {\n\t var d = b - a;\n\t return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n\t}\n\t\n\tvar rgb$1 = ((function rgbGamma(y) {\n\t var color$$1 = gamma(y);\n\t\n\t function rgb$$1(start, end) {\n\t var r = color$$1((start = d3Color.rgb(start)).r, (end = d3Color.rgb(end)).r),\n\t g = color$$1(start.g, end.g),\n\t b = color$$1(start.b, end.b),\n\t opacity = nogamma(start.opacity, end.opacity);\n\t return function(t) {\n\t start.r = r(t);\n\t start.g = g(t);\n\t start.b = b(t);\n\t start.opacity = opacity(t);\n\t return start + \"\";\n\t };\n\t }\n\t\n\t rgb$$1.gamma = rgbGamma;\n\t\n\t return rgb$$1;\n\t}))(1);\n\t\n\tfunction rgbSpline(spline) {\n\t return function(colors) {\n\t var n = colors.length,\n\t r = new Array(n),\n\t g = new Array(n),\n\t b = new Array(n),\n\t i, color$$1;\n\t for (i = 0; i < n; ++i) {\n\t color$$1 = d3Color.rgb(colors[i]);\n\t r[i] = color$$1.r || 0;\n\t g[i] = color$$1.g || 0;\n\t b[i] = color$$1.b || 0;\n\t }\n\t r = spline(r);\n\t g = spline(g);\n\t b = spline(b);\n\t color$$1.opacity = 1;\n\t return function(t) {\n\t color$$1.r = r(t);\n\t color$$1.g = g(t);\n\t color$$1.b = b(t);\n\t return color$$1 + \"\";\n\t };\n\t };\n\t}\n\t\n\tvar rgbBasis = rgbSpline(basis$1);\n\tvar rgbBasisClosed = rgbSpline(basisClosed);\n\t\n\tvar array = function(a, b) {\n\t var nb = b ? b.length : 0,\n\t na = a ? Math.min(nb, a.length) : 0,\n\t x = new Array(nb),\n\t c = new Array(nb),\n\t i;\n\t\n\t for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n\t for (; i < nb; ++i) c[i] = b[i];\n\t\n\t return function(t) {\n\t for (i = 0; i < na; ++i) c[i] = x[i](t);\n\t return c;\n\t };\n\t};\n\t\n\tvar date = function(a, b) {\n\t var d = new Date;\n\t return a = +a, b -= a, function(t) {\n\t return d.setTime(a + b * t), d;\n\t };\n\t};\n\t\n\tvar number = function(a, b) {\n\t return a = +a, b -= a, function(t) {\n\t return a + b * t;\n\t };\n\t};\n\t\n\tvar object = function(a, b) {\n\t var i = {},\n\t c = {},\n\t k;\n\t\n\t if (a === null || typeof a !== \"object\") a = {};\n\t if (b === null || typeof b !== \"object\") b = {};\n\t\n\t for (k in b) {\n\t if (k in a) {\n\t i[k] = value(a[k], b[k]);\n\t } else {\n\t c[k] = b[k];\n\t }\n\t }\n\t\n\t return function(t) {\n\t for (k in i) c[k] = i[k](t);\n\t return c;\n\t };\n\t};\n\t\n\tvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\n\tvar reB = new RegExp(reA.source, \"g\");\n\t\n\tfunction zero(b) {\n\t return function() {\n\t return b;\n\t };\n\t}\n\t\n\tfunction one(b) {\n\t return function(t) {\n\t return b(t) + \"\";\n\t };\n\t}\n\t\n\tvar string = function(a, b) {\n\t var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n\t am, // current match in a\n\t bm, // current match in b\n\t bs, // string preceding current number in b, if any\n\t i = -1, // index in s\n\t s = [], // string constants and placeholders\n\t q = []; // number interpolators\n\t\n\t // Coerce inputs to strings.\n\t a = a + \"\", b = b + \"\";\n\t\n\t // Interpolate pairs of numbers in a & b.\n\t while ((am = reA.exec(a))\n\t && (bm = reB.exec(b))) {\n\t if ((bs = bm.index) > bi) { // a string precedes the next number in b\n\t bs = b.slice(bi, bs);\n\t if (s[i]) s[i] += bs; // coalesce with previous string\n\t else s[++i] = bs;\n\t }\n\t if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n\t if (s[i]) s[i] += bm; // coalesce with previous string\n\t else s[++i] = bm;\n\t } else { // interpolate non-matching numbers\n\t s[++i] = null;\n\t q.push({i: i, x: number(am, bm)});\n\t }\n\t bi = reB.lastIndex;\n\t }\n\t\n\t // Add remains of b.\n\t if (bi < b.length) {\n\t bs = b.slice(bi);\n\t if (s[i]) s[i] += bs; // coalesce with previous string\n\t else s[++i] = bs;\n\t }\n\t\n\t // Special optimization for only a single match.\n\t // Otherwise, interpolate each of the numbers and rejoin the string.\n\t return s.length < 2 ? (q[0]\n\t ? one(q[0].x)\n\t : zero(b))\n\t : (b = q.length, function(t) {\n\t for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n\t return s.join(\"\");\n\t });\n\t};\n\t\n\tvar value = function(a, b) {\n\t var t = typeof b, c;\n\t return b == null || t === \"boolean\" ? constant(b)\n\t : (t === \"number\" ? number\n\t : t === \"string\" ? ((c = d3Color.color(b)) ? (b = c, rgb$1) : string)\n\t : b instanceof d3Color.color ? rgb$1\n\t : b instanceof Date ? date\n\t : Array.isArray(b) ? array\n\t : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n\t : number)(a, b);\n\t};\n\t\n\tvar round = function(a, b) {\n\t return a = +a, b -= a, function(t) {\n\t return Math.round(a + b * t);\n\t };\n\t};\n\t\n\tvar degrees = 180 / Math.PI;\n\t\n\tvar identity = {\n\t translateX: 0,\n\t translateY: 0,\n\t rotate: 0,\n\t skewX: 0,\n\t scaleX: 1,\n\t scaleY: 1\n\t};\n\t\n\tvar decompose = function(a, b, c, d, e, f) {\n\t var scaleX, scaleY, skewX;\n\t if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n\t if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n\t if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n\t if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n\t return {\n\t translateX: e,\n\t translateY: f,\n\t rotate: Math.atan2(b, a) * degrees,\n\t skewX: Math.atan(skewX) * degrees,\n\t scaleX: scaleX,\n\t scaleY: scaleY\n\t };\n\t};\n\t\n\tvar cssNode;\n\tvar cssRoot;\n\tvar cssView;\n\tvar svgNode;\n\t\n\tfunction parseCss(value) {\n\t if (value === \"none\") return identity;\n\t if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n\t cssNode.style.transform = value;\n\t value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n\t cssRoot.removeChild(cssNode);\n\t value = value.slice(7, -1).split(\",\");\n\t return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n\t}\n\t\n\tfunction parseSvg(value) {\n\t if (value == null) return identity;\n\t if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n\t svgNode.setAttribute(\"transform\", value);\n\t if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n\t value = value.matrix;\n\t return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n\t}\n\t\n\tfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\t\n\t function pop(s) {\n\t return s.length ? s.pop() + \" \" : \"\";\n\t }\n\t\n\t function translate(xa, ya, xb, yb, s, q) {\n\t if (xa !== xb || ya !== yb) {\n\t var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n\t q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n\t } else if (xb || yb) {\n\t s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n\t }\n\t }\n\t\n\t function rotate(a, b, s, q) {\n\t if (a !== b) {\n\t if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n\t q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n\t } else if (b) {\n\t s.push(pop(s) + \"rotate(\" + b + degParen);\n\t }\n\t }\n\t\n\t function skewX(a, b, s, q) {\n\t if (a !== b) {\n\t q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n\t } else if (b) {\n\t s.push(pop(s) + \"skewX(\" + b + degParen);\n\t }\n\t }\n\t\n\t function scale(xa, ya, xb, yb, s, q) {\n\t if (xa !== xb || ya !== yb) {\n\t var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n\t q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n\t } else if (xb !== 1 || yb !== 1) {\n\t s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n\t }\n\t }\n\t\n\t return function(a, b) {\n\t var s = [], // string constants and placeholders\n\t q = []; // number interpolators\n\t a = parse(a), b = parse(b);\n\t translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n\t rotate(a.rotate, b.rotate, s, q);\n\t skewX(a.skewX, b.skewX, s, q);\n\t scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n\t a = b = null; // gc\n\t return function(t) {\n\t var i = -1, n = q.length, o;\n\t while (++i < n) s[(o = q[i]).i] = o.x(t);\n\t return s.join(\"\");\n\t };\n\t };\n\t}\n\t\n\tvar interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\n\tvar interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\t\n\tvar rho = Math.SQRT2;\n\tvar rho2 = 2;\n\tvar rho4 = 4;\n\tvar epsilon2 = 1e-12;\n\t\n\tfunction cosh(x) {\n\t return ((x = Math.exp(x)) + 1 / x) / 2;\n\t}\n\t\n\tfunction sinh(x) {\n\t return ((x = Math.exp(x)) - 1 / x) / 2;\n\t}\n\t\n\tfunction tanh(x) {\n\t return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n\t}\n\t\n\t// p0 = [ux0, uy0, w0]\n\t// p1 = [ux1, uy1, w1]\n\tvar zoom = function(p0, p1) {\n\t var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n\t ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n\t dx = ux1 - ux0,\n\t dy = uy1 - uy0,\n\t d2 = dx * dx + dy * dy,\n\t i,\n\t S;\n\t\n\t // Special case for u0 ≅ u1.\n\t if (d2 < epsilon2) {\n\t S = Math.log(w1 / w0) / rho;\n\t i = function(t) {\n\t return [\n\t ux0 + t * dx,\n\t uy0 + t * dy,\n\t w0 * Math.exp(rho * t * S)\n\t ];\n\t };\n\t }\n\t\n\t // General case.\n\t else {\n\t var d1 = Math.sqrt(d2),\n\t b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n\t b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n\t r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n\t r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n\t S = (r1 - r0) / rho;\n\t i = function(t) {\n\t var s = t * S,\n\t coshr0 = cosh(r0),\n\t u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n\t return [\n\t ux0 + u * dx,\n\t uy0 + u * dy,\n\t w0 * coshr0 / cosh(rho * s + r0)\n\t ];\n\t };\n\t }\n\t\n\t i.duration = S * 1000;\n\t\n\t return i;\n\t};\n\t\n\tfunction hsl$1(hue$$1) {\n\t return function(start, end) {\n\t var h = hue$$1((start = d3Color.hsl(start)).h, (end = d3Color.hsl(end)).h),\n\t s = nogamma(start.s, end.s),\n\t l = nogamma(start.l, end.l),\n\t opacity = nogamma(start.opacity, end.opacity);\n\t return function(t) {\n\t start.h = h(t);\n\t start.s = s(t);\n\t start.l = l(t);\n\t start.opacity = opacity(t);\n\t return start + \"\";\n\t };\n\t }\n\t}\n\t\n\tvar hsl$2 = hsl$1(hue);\n\tvar hslLong = hsl$1(nogamma);\n\t\n\tfunction lab$1(start, end) {\n\t var l = nogamma((start = d3Color.lab(start)).l, (end = d3Color.lab(end)).l),\n\t a = nogamma(start.a, end.a),\n\t b = nogamma(start.b, end.b),\n\t opacity = nogamma(start.opacity, end.opacity);\n\t return function(t) {\n\t start.l = l(t);\n\t start.a = a(t);\n\t start.b = b(t);\n\t start.opacity = opacity(t);\n\t return start + \"\";\n\t };\n\t}\n\t\n\tfunction hcl$1(hue$$1) {\n\t return function(start, end) {\n\t var h = hue$$1((start = d3Color.hcl(start)).h, (end = d3Color.hcl(end)).h),\n\t c = nogamma(start.c, end.c),\n\t l = nogamma(start.l, end.l),\n\t opacity = nogamma(start.opacity, end.opacity);\n\t return function(t) {\n\t start.h = h(t);\n\t start.c = c(t);\n\t start.l = l(t);\n\t start.opacity = opacity(t);\n\t return start + \"\";\n\t };\n\t }\n\t}\n\t\n\tvar hcl$2 = hcl$1(hue);\n\tvar hclLong = hcl$1(nogamma);\n\t\n\tfunction cubehelix$1(hue$$1) {\n\t return (function cubehelixGamma(y) {\n\t y = +y;\n\t\n\t function cubehelix$$1(start, end) {\n\t var h = hue$$1((start = d3Color.cubehelix(start)).h, (end = d3Color.cubehelix(end)).h),\n\t s = nogamma(start.s, end.s),\n\t l = nogamma(start.l, end.l),\n\t opacity = nogamma(start.opacity, end.opacity);\n\t return function(t) {\n\t start.h = h(t);\n\t start.s = s(t);\n\t start.l = l(Math.pow(t, y));\n\t start.opacity = opacity(t);\n\t return start + \"\";\n\t };\n\t }\n\t\n\t cubehelix$$1.gamma = cubehelixGamma;\n\t\n\t return cubehelix$$1;\n\t })(1);\n\t}\n\t\n\tvar cubehelix$2 = cubehelix$1(hue);\n\tvar cubehelixLong = cubehelix$1(nogamma);\n\t\n\tvar quantize = function(interpolator, n) {\n\t var samples = new Array(n);\n\t for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n\t return samples;\n\t};\n\t\n\texports.interpolate = value;\n\texports.interpolateArray = array;\n\texports.interpolateBasis = basis$1;\n\texports.interpolateBasisClosed = basisClosed;\n\texports.interpolateDate = date;\n\texports.interpolateNumber = number;\n\texports.interpolateObject = object;\n\texports.interpolateRound = round;\n\texports.interpolateString = string;\n\texports.interpolateTransformCss = interpolateTransformCss;\n\texports.interpolateTransformSvg = interpolateTransformSvg;\n\texports.interpolateZoom = zoom;\n\texports.interpolateRgb = rgb$1;\n\texports.interpolateRgbBasis = rgbBasis;\n\texports.interpolateRgbBasisClosed = rgbBasisClosed;\n\texports.interpolateHsl = hsl$2;\n\texports.interpolateHslLong = hslLong;\n\texports.interpolateLab = lab$1;\n\texports.interpolateHcl = hcl$2;\n\texports.interpolateHclLong = hclLong;\n\texports.interpolateCubehelix = cubehelix$2;\n\texports.interpolateCubehelixLong = cubehelixLong;\n\texports.quantize = quantize;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 10 */,\n/* 11 */,\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-selection/ Version 1.1.0. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar xhtml = \"http://www.w3.org/1999/xhtml\";\n\t\n\tvar namespaces = {\n\t svg: \"http://www.w3.org/2000/svg\",\n\t xhtml: xhtml,\n\t xlink: \"http://www.w3.org/1999/xlink\",\n\t xml: \"http://www.w3.org/XML/1998/namespace\",\n\t xmlns: \"http://www.w3.org/2000/xmlns/\"\n\t};\n\t\n\tvar namespace = function(name) {\n\t var prefix = name += \"\", i = prefix.indexOf(\":\");\n\t if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n\t return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n\t};\n\t\n\tfunction creatorInherit(name) {\n\t return function() {\n\t var document = this.ownerDocument,\n\t uri = this.namespaceURI;\n\t return uri === xhtml && document.documentElement.namespaceURI === xhtml\n\t ? document.createElement(name)\n\t : document.createElementNS(uri, name);\n\t };\n\t}\n\t\n\tfunction creatorFixed(fullname) {\n\t return function() {\n\t return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n\t };\n\t}\n\t\n\tvar creator = function(name) {\n\t var fullname = namespace(name);\n\t return (fullname.local\n\t ? creatorFixed\n\t : creatorInherit)(fullname);\n\t};\n\t\n\tvar nextId = 0;\n\t\n\tfunction local() {\n\t return new Local;\n\t}\n\t\n\tfunction Local() {\n\t this._ = \"@\" + (++nextId).toString(36);\n\t}\n\t\n\tLocal.prototype = local.prototype = {\n\t constructor: Local,\n\t get: function(node) {\n\t var id = this._;\n\t while (!(id in node)) if (!(node = node.parentNode)) return;\n\t return node[id];\n\t },\n\t set: function(node, value) {\n\t return node[this._] = value;\n\t },\n\t remove: function(node) {\n\t return this._ in node && delete node[this._];\n\t },\n\t toString: function() {\n\t return this._;\n\t }\n\t};\n\t\n\tvar matcher = function(selector) {\n\t return function() {\n\t return this.matches(selector);\n\t };\n\t};\n\t\n\tif (typeof document !== \"undefined\") {\n\t var element = document.documentElement;\n\t if (!element.matches) {\n\t var vendorMatches = element.webkitMatchesSelector\n\t || element.msMatchesSelector\n\t || element.mozMatchesSelector\n\t || element.oMatchesSelector;\n\t matcher = function(selector) {\n\t return function() {\n\t return vendorMatches.call(this, selector);\n\t };\n\t };\n\t }\n\t}\n\t\n\tvar matcher$1 = matcher;\n\t\n\tvar filterEvents = {};\n\t\n\texports.event = null;\n\t\n\tif (typeof document !== \"undefined\") {\n\t var element$1 = document.documentElement;\n\t if (!(\"onmouseenter\" in element$1)) {\n\t filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n\t }\n\t}\n\t\n\tfunction filterContextListener(listener, index, group) {\n\t listener = contextListener(listener, index, group);\n\t return function(event) {\n\t var related = event.relatedTarget;\n\t if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n\t listener.call(this, event);\n\t }\n\t };\n\t}\n\t\n\tfunction contextListener(listener, index, group) {\n\t return function(event1) {\n\t var event0 = exports.event; // Events can be reentrant (e.g., focus).\n\t exports.event = event1;\n\t try {\n\t listener.call(this, this.__data__, index, group);\n\t } finally {\n\t exports.event = event0;\n\t }\n\t };\n\t}\n\t\n\tfunction parseTypenames(typenames) {\n\t return typenames.trim().split(/^|\\s+/).map(function(t) {\n\t var name = \"\", i = t.indexOf(\".\");\n\t if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n\t return {type: t, name: name};\n\t });\n\t}\n\t\n\tfunction onRemove(typename) {\n\t return function() {\n\t var on = this.__on;\n\t if (!on) return;\n\t for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n\t if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n\t this.removeEventListener(o.type, o.listener, o.capture);\n\t } else {\n\t on[++i] = o;\n\t }\n\t }\n\t if (++i) on.length = i;\n\t else delete this.__on;\n\t };\n\t}\n\t\n\tfunction onAdd(typename, value, capture) {\n\t var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n\t return function(d, i, group) {\n\t var on = this.__on, o, listener = wrap(value, i, group);\n\t if (on) for (var j = 0, m = on.length; j < m; ++j) {\n\t if ((o = on[j]).type === typename.type && o.name === typename.name) {\n\t this.removeEventListener(o.type, o.listener, o.capture);\n\t this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n\t o.value = value;\n\t return;\n\t }\n\t }\n\t this.addEventListener(typename.type, listener, capture);\n\t o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n\t if (!on) this.__on = [o];\n\t else on.push(o);\n\t };\n\t}\n\t\n\tvar selection_on = function(typename, value, capture) {\n\t var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\t\n\t if (arguments.length < 2) {\n\t var on = this.node().__on;\n\t if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n\t for (i = 0, o = on[j]; i < n; ++i) {\n\t if ((t = typenames[i]).type === o.type && t.name === o.name) {\n\t return o.value;\n\t }\n\t }\n\t }\n\t return;\n\t }\n\t\n\t on = value ? onAdd : onRemove;\n\t if (capture == null) capture = false;\n\t for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n\t return this;\n\t};\n\t\n\tfunction customEvent(event1, listener, that, args) {\n\t var event0 = exports.event;\n\t event1.sourceEvent = exports.event;\n\t exports.event = event1;\n\t try {\n\t return listener.apply(that, args);\n\t } finally {\n\t exports.event = event0;\n\t }\n\t}\n\t\n\tvar sourceEvent = function() {\n\t var current = exports.event, source;\n\t while (source = current.sourceEvent) current = source;\n\t return current;\n\t};\n\t\n\tvar point = function(node, event) {\n\t var svg = node.ownerSVGElement || node;\n\t\n\t if (svg.createSVGPoint) {\n\t var point = svg.createSVGPoint();\n\t point.x = event.clientX, point.y = event.clientY;\n\t point = point.matrixTransform(node.getScreenCTM().inverse());\n\t return [point.x, point.y];\n\t }\n\t\n\t var rect = node.getBoundingClientRect();\n\t return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n\t};\n\t\n\tvar mouse = function(node) {\n\t var event = sourceEvent();\n\t if (event.changedTouches) event = event.changedTouches[0];\n\t return point(node, event);\n\t};\n\t\n\tfunction none() {}\n\t\n\tvar selector = function(selector) {\n\t return selector == null ? none : function() {\n\t return this.querySelector(selector);\n\t };\n\t};\n\t\n\tvar selection_select = function(select) {\n\t if (typeof select !== \"function\") select = selector(select);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n\t if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n\t if (\"__data__\" in node) subnode.__data__ = node.__data__;\n\t subgroup[i] = subnode;\n\t }\n\t }\n\t }\n\t\n\t return new Selection(subgroups, this._parents);\n\t};\n\t\n\tfunction empty() {\n\t return [];\n\t}\n\t\n\tvar selectorAll = function(selector) {\n\t return selector == null ? empty : function() {\n\t return this.querySelectorAll(selector);\n\t };\n\t};\n\t\n\tvar selection_selectAll = function(select) {\n\t if (typeof select !== \"function\") select = selectorAll(select);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n\t if (node = group[i]) {\n\t subgroups.push(select.call(node, node.__data__, i, group));\n\t parents.push(node);\n\t }\n\t }\n\t }\n\t\n\t return new Selection(subgroups, parents);\n\t};\n\t\n\tvar selection_filter = function(match) {\n\t if (typeof match !== \"function\") match = matcher$1(match);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n\t if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n\t subgroup.push(node);\n\t }\n\t }\n\t }\n\t\n\t return new Selection(subgroups, this._parents);\n\t};\n\t\n\tvar sparse = function(update) {\n\t return new Array(update.length);\n\t};\n\t\n\tvar selection_enter = function() {\n\t return new Selection(this._enter || this._groups.map(sparse), this._parents);\n\t};\n\t\n\tfunction EnterNode(parent, datum) {\n\t this.ownerDocument = parent.ownerDocument;\n\t this.namespaceURI = parent.namespaceURI;\n\t this._next = null;\n\t this._parent = parent;\n\t this.__data__ = datum;\n\t}\n\t\n\tEnterNode.prototype = {\n\t constructor: EnterNode,\n\t appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n\t insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n\t querySelector: function(selector) { return this._parent.querySelector(selector); },\n\t querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n\t};\n\t\n\tvar constant = function(x) {\n\t return function() {\n\t return x;\n\t };\n\t};\n\t\n\tvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\t\n\tfunction bindIndex(parent, group, enter, update, exit, data) {\n\t var i = 0,\n\t node,\n\t groupLength = group.length,\n\t dataLength = data.length;\n\t\n\t // Put any non-null nodes that fit into update.\n\t // Put any null nodes into enter.\n\t // Put any remaining data into enter.\n\t for (; i < dataLength; ++i) {\n\t if (node = group[i]) {\n\t node.__data__ = data[i];\n\t update[i] = node;\n\t } else {\n\t enter[i] = new EnterNode(parent, data[i]);\n\t }\n\t }\n\t\n\t // Put any non-null nodes that don’t fit into exit.\n\t for (; i < groupLength; ++i) {\n\t if (node = group[i]) {\n\t exit[i] = node;\n\t }\n\t }\n\t}\n\t\n\tfunction bindKey(parent, group, enter, update, exit, data, key) {\n\t var i,\n\t node,\n\t nodeByKeyValue = {},\n\t groupLength = group.length,\n\t dataLength = data.length,\n\t keyValues = new Array(groupLength),\n\t keyValue;\n\t\n\t // Compute the key for each node.\n\t // If multiple nodes have the same key, the duplicates are added to exit.\n\t for (i = 0; i < groupLength; ++i) {\n\t if (node = group[i]) {\n\t keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n\t if (keyValue in nodeByKeyValue) {\n\t exit[i] = node;\n\t } else {\n\t nodeByKeyValue[keyValue] = node;\n\t }\n\t }\n\t }\n\t\n\t // Compute the key for each datum.\n\t // If there a node associated with this key, join and add it to update.\n\t // If there is not (or the key is a duplicate), add it to enter.\n\t for (i = 0; i < dataLength; ++i) {\n\t keyValue = keyPrefix + key.call(parent, data[i], i, data);\n\t if (node = nodeByKeyValue[keyValue]) {\n\t update[i] = node;\n\t node.__data__ = data[i];\n\t nodeByKeyValue[keyValue] = null;\n\t } else {\n\t enter[i] = new EnterNode(parent, data[i]);\n\t }\n\t }\n\t\n\t // Add any remaining nodes that were not bound to data to exit.\n\t for (i = 0; i < groupLength; ++i) {\n\t if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n\t exit[i] = node;\n\t }\n\t }\n\t}\n\t\n\tvar selection_data = function(value, key) {\n\t if (!value) {\n\t data = new Array(this.size()), j = -1;\n\t this.each(function(d) { data[++j] = d; });\n\t return data;\n\t }\n\t\n\t var bind = key ? bindKey : bindIndex,\n\t parents = this._parents,\n\t groups = this._groups;\n\t\n\t if (typeof value !== \"function\") value = constant(value);\n\t\n\t for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n\t var parent = parents[j],\n\t group = groups[j],\n\t groupLength = group.length,\n\t data = value.call(parent, parent && parent.__data__, j, parents),\n\t dataLength = data.length,\n\t enterGroup = enter[j] = new Array(dataLength),\n\t updateGroup = update[j] = new Array(dataLength),\n\t exitGroup = exit[j] = new Array(groupLength);\n\t\n\t bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\t\n\t // Now connect the enter nodes to their following update node, such that\n\t // appendChild can insert the materialized enter node before this node,\n\t // rather than at the end of the parent node.\n\t for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n\t if (previous = enterGroup[i0]) {\n\t if (i0 >= i1) i1 = i0 + 1;\n\t while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n\t previous._next = next || null;\n\t }\n\t }\n\t }\n\t\n\t update = new Selection(update, parents);\n\t update._enter = enter;\n\t update._exit = exit;\n\t return update;\n\t};\n\t\n\tvar selection_exit = function() {\n\t return new Selection(this._exit || this._groups.map(sparse), this._parents);\n\t};\n\t\n\tvar selection_merge = function(selection) {\n\t\n\t for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n\t for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n\t if (node = group0[i] || group1[i]) {\n\t merge[i] = node;\n\t }\n\t }\n\t }\n\t\n\t for (; j < m0; ++j) {\n\t merges[j] = groups0[j];\n\t }\n\t\n\t return new Selection(merges, this._parents);\n\t};\n\t\n\tvar selection_order = function() {\n\t\n\t for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n\t for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n\t if (node = group[i]) {\n\t if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n\t next = node;\n\t }\n\t }\n\t }\n\t\n\t return this;\n\t};\n\t\n\tvar selection_sort = function(compare) {\n\t if (!compare) compare = ascending;\n\t\n\t function compareNode(a, b) {\n\t return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n\t }\n\t\n\t for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n\t if (node = group[i]) {\n\t sortgroup[i] = node;\n\t }\n\t }\n\t sortgroup.sort(compareNode);\n\t }\n\t\n\t return new Selection(sortgroups, this._parents).order();\n\t};\n\t\n\tfunction ascending(a, b) {\n\t return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n\t}\n\t\n\tvar selection_call = function() {\n\t var callback = arguments[0];\n\t arguments[0] = this;\n\t callback.apply(null, arguments);\n\t return this;\n\t};\n\t\n\tvar selection_nodes = function() {\n\t var nodes = new Array(this.size()), i = -1;\n\t this.each(function() { nodes[++i] = this; });\n\t return nodes;\n\t};\n\t\n\tvar selection_node = function() {\n\t\n\t for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n\t for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n\t var node = group[i];\n\t if (node) return node;\n\t }\n\t }\n\t\n\t return null;\n\t};\n\t\n\tvar selection_size = function() {\n\t var size = 0;\n\t this.each(function() { ++size; });\n\t return size;\n\t};\n\t\n\tvar selection_empty = function() {\n\t return !this.node();\n\t};\n\t\n\tvar selection_each = function(callback) {\n\t\n\t for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n\t for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n\t if (node = group[i]) callback.call(node, node.__data__, i, group);\n\t }\n\t }\n\t\n\t return this;\n\t};\n\t\n\tfunction attrRemove(name) {\n\t return function() {\n\t this.removeAttribute(name);\n\t };\n\t}\n\t\n\tfunction attrRemoveNS(fullname) {\n\t return function() {\n\t this.removeAttributeNS(fullname.space, fullname.local);\n\t };\n\t}\n\t\n\tfunction attrConstant(name, value) {\n\t return function() {\n\t this.setAttribute(name, value);\n\t };\n\t}\n\t\n\tfunction attrConstantNS(fullname, value) {\n\t return function() {\n\t this.setAttributeNS(fullname.space, fullname.local, value);\n\t };\n\t}\n\t\n\tfunction attrFunction(name, value) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t if (v == null) this.removeAttribute(name);\n\t else this.setAttribute(name, v);\n\t };\n\t}\n\t\n\tfunction attrFunctionNS(fullname, value) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n\t else this.setAttributeNS(fullname.space, fullname.local, v);\n\t };\n\t}\n\t\n\tvar selection_attr = function(name, value) {\n\t var fullname = namespace(name);\n\t\n\t if (arguments.length < 2) {\n\t var node = this.node();\n\t return fullname.local\n\t ? node.getAttributeNS(fullname.space, fullname.local)\n\t : node.getAttribute(fullname);\n\t }\n\t\n\t return this.each((value == null\n\t ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n\t ? (fullname.local ? attrFunctionNS : attrFunction)\n\t : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n\t};\n\t\n\tvar defaultView = function(node) {\n\t return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n\t || (node.document && node) // node is a Window\n\t || node.defaultView; // node is a Document\n\t};\n\t\n\tfunction styleRemove(name) {\n\t return function() {\n\t this.style.removeProperty(name);\n\t };\n\t}\n\t\n\tfunction styleConstant(name, value, priority) {\n\t return function() {\n\t this.style.setProperty(name, value, priority);\n\t };\n\t}\n\t\n\tfunction styleFunction(name, value, priority) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t if (v == null) this.style.removeProperty(name);\n\t else this.style.setProperty(name, v, priority);\n\t };\n\t}\n\t\n\tvar selection_style = function(name, value, priority) {\n\t return arguments.length > 1\n\t ? this.each((value == null\n\t ? styleRemove : typeof value === \"function\"\n\t ? styleFunction\n\t : styleConstant)(name, value, priority == null ? \"\" : priority))\n\t : styleValue(this.node(), name);\n\t};\n\t\n\tfunction styleValue(node, name) {\n\t return node.style.getPropertyValue(name)\n\t || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n\t}\n\t\n\tfunction propertyRemove(name) {\n\t return function() {\n\t delete this[name];\n\t };\n\t}\n\t\n\tfunction propertyConstant(name, value) {\n\t return function() {\n\t this[name] = value;\n\t };\n\t}\n\t\n\tfunction propertyFunction(name, value) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t if (v == null) delete this[name];\n\t else this[name] = v;\n\t };\n\t}\n\t\n\tvar selection_property = function(name, value) {\n\t return arguments.length > 1\n\t ? this.each((value == null\n\t ? propertyRemove : typeof value === \"function\"\n\t ? propertyFunction\n\t : propertyConstant)(name, value))\n\t : this.node()[name];\n\t};\n\t\n\tfunction classArray(string) {\n\t return string.trim().split(/^|\\s+/);\n\t}\n\t\n\tfunction classList(node) {\n\t return node.classList || new ClassList(node);\n\t}\n\t\n\tfunction ClassList(node) {\n\t this._node = node;\n\t this._names = classArray(node.getAttribute(\"class\") || \"\");\n\t}\n\t\n\tClassList.prototype = {\n\t add: function(name) {\n\t var i = this._names.indexOf(name);\n\t if (i < 0) {\n\t this._names.push(name);\n\t this._node.setAttribute(\"class\", this._names.join(\" \"));\n\t }\n\t },\n\t remove: function(name) {\n\t var i = this._names.indexOf(name);\n\t if (i >= 0) {\n\t this._names.splice(i, 1);\n\t this._node.setAttribute(\"class\", this._names.join(\" \"));\n\t }\n\t },\n\t contains: function(name) {\n\t return this._names.indexOf(name) >= 0;\n\t }\n\t};\n\t\n\tfunction classedAdd(node, names) {\n\t var list = classList(node), i = -1, n = names.length;\n\t while (++i < n) list.add(names[i]);\n\t}\n\t\n\tfunction classedRemove(node, names) {\n\t var list = classList(node), i = -1, n = names.length;\n\t while (++i < n) list.remove(names[i]);\n\t}\n\t\n\tfunction classedTrue(names) {\n\t return function() {\n\t classedAdd(this, names);\n\t };\n\t}\n\t\n\tfunction classedFalse(names) {\n\t return function() {\n\t classedRemove(this, names);\n\t };\n\t}\n\t\n\tfunction classedFunction(names, value) {\n\t return function() {\n\t (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n\t };\n\t}\n\t\n\tvar selection_classed = function(name, value) {\n\t var names = classArray(name + \"\");\n\t\n\t if (arguments.length < 2) {\n\t var list = classList(this.node()), i = -1, n = names.length;\n\t while (++i < n) if (!list.contains(names[i])) return false;\n\t return true;\n\t }\n\t\n\t return this.each((typeof value === \"function\"\n\t ? classedFunction : value\n\t ? classedTrue\n\t : classedFalse)(names, value));\n\t};\n\t\n\tfunction textRemove() {\n\t this.textContent = \"\";\n\t}\n\t\n\tfunction textConstant(value) {\n\t return function() {\n\t this.textContent = value;\n\t };\n\t}\n\t\n\tfunction textFunction(value) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t this.textContent = v == null ? \"\" : v;\n\t };\n\t}\n\t\n\tvar selection_text = function(value) {\n\t return arguments.length\n\t ? this.each(value == null\n\t ? textRemove : (typeof value === \"function\"\n\t ? textFunction\n\t : textConstant)(value))\n\t : this.node().textContent;\n\t};\n\t\n\tfunction htmlRemove() {\n\t this.innerHTML = \"\";\n\t}\n\t\n\tfunction htmlConstant(value) {\n\t return function() {\n\t this.innerHTML = value;\n\t };\n\t}\n\t\n\tfunction htmlFunction(value) {\n\t return function() {\n\t var v = value.apply(this, arguments);\n\t this.innerHTML = v == null ? \"\" : v;\n\t };\n\t}\n\t\n\tvar selection_html = function(value) {\n\t return arguments.length\n\t ? this.each(value == null\n\t ? htmlRemove : (typeof value === \"function\"\n\t ? htmlFunction\n\t : htmlConstant)(value))\n\t : this.node().innerHTML;\n\t};\n\t\n\tfunction raise() {\n\t if (this.nextSibling) this.parentNode.appendChild(this);\n\t}\n\t\n\tvar selection_raise = function() {\n\t return this.each(raise);\n\t};\n\t\n\tfunction lower() {\n\t if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n\t}\n\t\n\tvar selection_lower = function() {\n\t return this.each(lower);\n\t};\n\t\n\tvar selection_append = function(name) {\n\t var create = typeof name === \"function\" ? name : creator(name);\n\t return this.select(function() {\n\t return this.appendChild(create.apply(this, arguments));\n\t });\n\t};\n\t\n\tfunction constantNull() {\n\t return null;\n\t}\n\t\n\tvar selection_insert = function(name, before) {\n\t var create = typeof name === \"function\" ? name : creator(name),\n\t select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n\t return this.select(function() {\n\t return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n\t });\n\t};\n\t\n\tfunction remove() {\n\t var parent = this.parentNode;\n\t if (parent) parent.removeChild(this);\n\t}\n\t\n\tvar selection_remove = function() {\n\t return this.each(remove);\n\t};\n\t\n\tvar selection_datum = function(value) {\n\t return arguments.length\n\t ? this.property(\"__data__\", value)\n\t : this.node().__data__;\n\t};\n\t\n\tfunction dispatchEvent(node, type, params) {\n\t var window = defaultView(node),\n\t event = window.CustomEvent;\n\t\n\t if (typeof event === \"function\") {\n\t event = new event(type, params);\n\t } else {\n\t event = window.document.createEvent(\"Event\");\n\t if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n\t else event.initEvent(type, false, false);\n\t }\n\t\n\t node.dispatchEvent(event);\n\t}\n\t\n\tfunction dispatchConstant(type, params) {\n\t return function() {\n\t return dispatchEvent(this, type, params);\n\t };\n\t}\n\t\n\tfunction dispatchFunction(type, params) {\n\t return function() {\n\t return dispatchEvent(this, type, params.apply(this, arguments));\n\t };\n\t}\n\t\n\tvar selection_dispatch = function(type, params) {\n\t return this.each((typeof params === \"function\"\n\t ? dispatchFunction\n\t : dispatchConstant)(type, params));\n\t};\n\t\n\tvar root = [null];\n\t\n\tfunction Selection(groups, parents) {\n\t this._groups = groups;\n\t this._parents = parents;\n\t}\n\t\n\tfunction selection() {\n\t return new Selection([[document.documentElement]], root);\n\t}\n\t\n\tSelection.prototype = selection.prototype = {\n\t constructor: Selection,\n\t select: selection_select,\n\t selectAll: selection_selectAll,\n\t filter: selection_filter,\n\t data: selection_data,\n\t enter: selection_enter,\n\t exit: selection_exit,\n\t merge: selection_merge,\n\t order: selection_order,\n\t sort: selection_sort,\n\t call: selection_call,\n\t nodes: selection_nodes,\n\t node: selection_node,\n\t size: selection_size,\n\t empty: selection_empty,\n\t each: selection_each,\n\t attr: selection_attr,\n\t style: selection_style,\n\t property: selection_property,\n\t classed: selection_classed,\n\t text: selection_text,\n\t html: selection_html,\n\t raise: selection_raise,\n\t lower: selection_lower,\n\t append: selection_append,\n\t insert: selection_insert,\n\t remove: selection_remove,\n\t datum: selection_datum,\n\t on: selection_on,\n\t dispatch: selection_dispatch\n\t};\n\t\n\tvar select = function(selector) {\n\t return typeof selector === \"string\"\n\t ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n\t : new Selection([[selector]], root);\n\t};\n\t\n\tvar selectAll = function(selector) {\n\t return typeof selector === \"string\"\n\t ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n\t : new Selection([selector == null ? [] : selector], root);\n\t};\n\t\n\tvar touch = function(node, touches, identifier) {\n\t if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\t\n\t for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n\t if ((touch = touches[i]).identifier === identifier) {\n\t return point(node, touch);\n\t }\n\t }\n\t\n\t return null;\n\t};\n\t\n\tvar touches = function(node, touches) {\n\t if (touches == null) touches = sourceEvent().touches;\n\t\n\t for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n\t points[i] = point(node, touches[i]);\n\t }\n\t\n\t return points;\n\t};\n\t\n\texports.creator = creator;\n\texports.local = local;\n\texports.matcher = matcher$1;\n\texports.mouse = mouse;\n\texports.namespace = namespace;\n\texports.namespaces = namespaces;\n\texports.select = select;\n\texports.selectAll = selectAll;\n\texports.selection = selection;\n\texports.selector = selector;\n\texports.selectorAll = selectorAll;\n\texports.style = styleValue;\n\texports.touch = touch;\n\texports.touches = touches;\n\texports.window = defaultView;\n\texports.customEvent = customEvent;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-transition/ Version 1.1.0. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports, __webpack_require__(12), __webpack_require__(5), __webpack_require__(14), __webpack_require__(9), __webpack_require__(4), __webpack_require__(2)) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-selection', 'd3-dispatch', 'd3-timer', 'd3-interpolate', 'd3-color', 'd3-ease'], factory) :\n\t\t(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3,global.d3,global.d3));\n\t}(this, (function (exports,d3Selection,d3Dispatch,d3Timer,d3Interpolate,d3Color,d3Ease) { 'use strict';\n\t\n\tvar emptyOn = d3Dispatch.dispatch(\"start\", \"end\", \"interrupt\");\n\tvar emptyTween = [];\n\t\n\tvar CREATED = 0;\n\tvar SCHEDULED = 1;\n\tvar STARTING = 2;\n\tvar STARTED = 3;\n\tvar RUNNING = 4;\n\tvar ENDING = 5;\n\tvar ENDED = 6;\n\t\n\tvar schedule = function(node, name, id, index, group, timing) {\n\t var schedules = node.__transition;\n\t if (!schedules) node.__transition = {};\n\t else if (id in schedules) return;\n\t create(node, id, {\n\t name: name,\n\t index: index, // For context during callback.\n\t group: group, // For context during callback.\n\t on: emptyOn,\n\t tween: emptyTween,\n\t time: timing.time,\n\t delay: timing.delay,\n\t duration: timing.duration,\n\t ease: timing.ease,\n\t timer: null,\n\t state: CREATED\n\t });\n\t};\n\t\n\tfunction init(node, id) {\n\t var schedule = node.__transition;\n\t if (!schedule || !(schedule = schedule[id]) || schedule.state > CREATED) throw new Error(\"too late\");\n\t return schedule;\n\t}\n\t\n\tfunction set(node, id) {\n\t var schedule = node.__transition;\n\t if (!schedule || !(schedule = schedule[id]) || schedule.state > STARTING) throw new Error(\"too late\");\n\t return schedule;\n\t}\n\t\n\tfunction get(node, id) {\n\t var schedule = node.__transition;\n\t if (!schedule || !(schedule = schedule[id])) throw new Error(\"too late\");\n\t return schedule;\n\t}\n\t\n\tfunction create(node, id, self) {\n\t var schedules = node.__transition,\n\t tween;\n\t\n\t // Initialize the self timer when the transition is created.\n\t // Note the actual delay is not known until the first callback!\n\t schedules[id] = self;\n\t self.timer = d3Timer.timer(schedule, 0, self.time);\n\t\n\t function schedule(elapsed) {\n\t self.state = SCHEDULED;\n\t self.timer.restart(start, self.delay, self.time);\n\t\n\t // If the elapsed delay is less than our first sleep, start immediately.\n\t if (self.delay <= elapsed) start(elapsed - self.delay);\n\t }\n\t\n\t function start(elapsed) {\n\t var i, j, n, o;\n\t\n\t // If the state is not SCHEDULED, then we previously errored on start.\n\t if (self.state !== SCHEDULED) return stop();\n\t\n\t for (i in schedules) {\n\t o = schedules[i];\n\t if (o.name !== self.name) continue;\n\t\n\t // While this element already has a starting transition during this frame,\n\t // defer starting an interrupting transition until that transition has a\n\t // chance to tick (and possibly end); see d3/d3-transition#54!\n\t if (o.state === STARTED) return d3Timer.timeout(start);\n\t\n\t // Interrupt the active transition, if any.\n\t // Dispatch the interrupt event.\n\t if (o.state === RUNNING) {\n\t o.state = ENDED;\n\t o.timer.stop();\n\t o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n\t delete schedules[i];\n\t }\n\t\n\t // Cancel any pre-empted transitions. No interrupt event is dispatched\n\t // because the cancelled transitions never started. Note that this also\n\t // removes this transition from the pending list!\n\t else if (+i < id) {\n\t o.state = ENDED;\n\t o.timer.stop();\n\t delete schedules[i];\n\t }\n\t }\n\t\n\t // Defer the first tick to end of the current frame; see d3/d3#1576.\n\t // Note the transition may be canceled after start and before the first tick!\n\t // Note this must be scheduled before the start event; see d3/d3-transition#16!\n\t // Assuming this is successful, subsequent callbacks go straight to tick.\n\t d3Timer.timeout(function() {\n\t if (self.state === STARTED) {\n\t self.state = RUNNING;\n\t self.timer.restart(tick, self.delay, self.time);\n\t tick(elapsed);\n\t }\n\t });\n\t\n\t // Dispatch the start event.\n\t // Note this must be done before the tween are initialized.\n\t self.state = STARTING;\n\t self.on.call(\"start\", node, node.__data__, self.index, self.group);\n\t if (self.state !== STARTING) return; // interrupted\n\t self.state = STARTED;\n\t\n\t // Initialize the tween, deleting null tween.\n\t tween = new Array(n = self.tween.length);\n\t for (i = 0, j = -1; i < n; ++i) {\n\t if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n\t tween[++j] = o;\n\t }\n\t }\n\t tween.length = j + 1;\n\t }\n\t\n\t function tick(elapsed) {\n\t var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n\t i = -1,\n\t n = tween.length;\n\t\n\t while (++i < n) {\n\t tween[i].call(null, t);\n\t }\n\t\n\t // Dispatch the end event.\n\t if (self.state === ENDING) {\n\t self.on.call(\"end\", node, node.__data__, self.index, self.group);\n\t stop();\n\t }\n\t }\n\t\n\t function stop() {\n\t self.state = ENDED;\n\t self.timer.stop();\n\t delete schedules[id];\n\t for (var i in schedules) return; // eslint-disable-line no-unused-vars\n\t delete node.__transition;\n\t }\n\t}\n\t\n\tvar interrupt = function(node, name) {\n\t var schedules = node.__transition,\n\t schedule,\n\t active,\n\t empty = true,\n\t i;\n\t\n\t if (!schedules) return;\n\t\n\t name = name == null ? null : name + \"\";\n\t\n\t for (i in schedules) {\n\t if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n\t active = schedule.state > STARTING && schedule.state < ENDING;\n\t schedule.state = ENDED;\n\t schedule.timer.stop();\n\t if (active) schedule.on.call(\"interrupt\", node, node.__data__, schedule.index, schedule.group);\n\t delete schedules[i];\n\t }\n\t\n\t if (empty) delete node.__transition;\n\t};\n\t\n\tvar selection_interrupt = function(name) {\n\t return this.each(function() {\n\t interrupt(this, name);\n\t });\n\t};\n\t\n\tfunction tweenRemove(id, name) {\n\t var tween0, tween1;\n\t return function() {\n\t var schedule = set(this, id),\n\t tween = schedule.tween;\n\t\n\t // If this node shared tween with the previous node,\n\t // just assign the updated shared tween and we’re done!\n\t // Otherwise, copy-on-write.\n\t if (tween !== tween0) {\n\t tween1 = tween0 = tween;\n\t for (var i = 0, n = tween1.length; i < n; ++i) {\n\t if (tween1[i].name === name) {\n\t tween1 = tween1.slice();\n\t tween1.splice(i, 1);\n\t break;\n\t }\n\t }\n\t }\n\t\n\t schedule.tween = tween1;\n\t };\n\t}\n\t\n\tfunction tweenFunction(id, name, value) {\n\t var tween0, tween1;\n\t if (typeof value !== \"function\") throw new Error;\n\t return function() {\n\t var schedule = set(this, id),\n\t tween = schedule.tween;\n\t\n\t // If this node shared tween with the previous node,\n\t // just assign the updated shared tween and we’re done!\n\t // Otherwise, copy-on-write.\n\t if (tween !== tween0) {\n\t tween1 = (tween0 = tween).slice();\n\t for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n\t if (tween1[i].name === name) {\n\t tween1[i] = t;\n\t break;\n\t }\n\t }\n\t if (i === n) tween1.push(t);\n\t }\n\t\n\t schedule.tween = tween1;\n\t };\n\t}\n\t\n\tvar transition_tween = function(name, value) {\n\t var id = this._id;\n\t\n\t name += \"\";\n\t\n\t if (arguments.length < 2) {\n\t var tween = get(this.node(), id).tween;\n\t for (var i = 0, n = tween.length, t; i < n; ++i) {\n\t if ((t = tween[i]).name === name) {\n\t return t.value;\n\t }\n\t }\n\t return null;\n\t }\n\t\n\t return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n\t};\n\t\n\tfunction tweenValue(transition, name, value) {\n\t var id = transition._id;\n\t\n\t transition.each(function() {\n\t var schedule = set(this, id);\n\t (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n\t });\n\t\n\t return function(node) {\n\t return get(node, id).value[name];\n\t };\n\t}\n\t\n\tvar interpolate = function(a, b) {\n\t var c;\n\t return (typeof b === \"number\" ? d3Interpolate.interpolateNumber\n\t : b instanceof d3Color.color ? d3Interpolate.interpolateRgb\n\t : (c = d3Color.color(b)) ? (b = c, d3Interpolate.interpolateRgb)\n\t : d3Interpolate.interpolateString)(a, b);\n\t};\n\t\n\tfunction attrRemove(name) {\n\t return function() {\n\t this.removeAttribute(name);\n\t };\n\t}\n\t\n\tfunction attrRemoveNS(fullname) {\n\t return function() {\n\t this.removeAttributeNS(fullname.space, fullname.local);\n\t };\n\t}\n\t\n\tfunction attrConstant(name, interpolate$$1, value1) {\n\t var value00,\n\t interpolate0;\n\t return function() {\n\t var value0 = this.getAttribute(name);\n\t return value0 === value1 ? null\n\t : value0 === value00 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value1);\n\t };\n\t}\n\t\n\tfunction attrConstantNS(fullname, interpolate$$1, value1) {\n\t var value00,\n\t interpolate0;\n\t return function() {\n\t var value0 = this.getAttributeNS(fullname.space, fullname.local);\n\t return value0 === value1 ? null\n\t : value0 === value00 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value1);\n\t };\n\t}\n\t\n\tfunction attrFunction(name, interpolate$$1, value) {\n\t var value00,\n\t value10,\n\t interpolate0;\n\t return function() {\n\t var value0, value1 = value(this);\n\t if (value1 == null) return void this.removeAttribute(name);\n\t value0 = this.getAttribute(name);\n\t return value0 === value1 ? null\n\t : value0 === value00 && value1 === value10 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n\t };\n\t}\n\t\n\tfunction attrFunctionNS(fullname, interpolate$$1, value) {\n\t var value00,\n\t value10,\n\t interpolate0;\n\t return function() {\n\t var value0, value1 = value(this);\n\t if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n\t value0 = this.getAttributeNS(fullname.space, fullname.local);\n\t return value0 === value1 ? null\n\t : value0 === value00 && value1 === value10 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n\t };\n\t}\n\t\n\tvar transition_attr = function(name, value) {\n\t var fullname = d3Selection.namespace(name), i = fullname === \"transform\" ? d3Interpolate.interpolateTransformSvg : interpolate;\n\t return this.attrTween(name, typeof value === \"function\"\n\t ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n\t : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n\t : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + \"\"));\n\t};\n\t\n\tfunction attrTweenNS(fullname, value) {\n\t function tween() {\n\t var node = this, i = value.apply(node, arguments);\n\t return i && function(t) {\n\t node.setAttributeNS(fullname.space, fullname.local, i(t));\n\t };\n\t }\n\t tween._value = value;\n\t return tween;\n\t}\n\t\n\tfunction attrTween(name, value) {\n\t function tween() {\n\t var node = this, i = value.apply(node, arguments);\n\t return i && function(t) {\n\t node.setAttribute(name, i(t));\n\t };\n\t }\n\t tween._value = value;\n\t return tween;\n\t}\n\t\n\tvar transition_attrTween = function(name, value) {\n\t var key = \"attr.\" + name;\n\t if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n\t if (value == null) return this.tween(key, null);\n\t if (typeof value !== \"function\") throw new Error;\n\t var fullname = d3Selection.namespace(name);\n\t return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n\t};\n\t\n\tfunction delayFunction(id, value) {\n\t return function() {\n\t init(this, id).delay = +value.apply(this, arguments);\n\t };\n\t}\n\t\n\tfunction delayConstant(id, value) {\n\t return value = +value, function() {\n\t init(this, id).delay = value;\n\t };\n\t}\n\t\n\tvar transition_delay = function(value) {\n\t var id = this._id;\n\t\n\t return arguments.length\n\t ? this.each((typeof value === \"function\"\n\t ? delayFunction\n\t : delayConstant)(id, value))\n\t : get(this.node(), id).delay;\n\t};\n\t\n\tfunction durationFunction(id, value) {\n\t return function() {\n\t set(this, id).duration = +value.apply(this, arguments);\n\t };\n\t}\n\t\n\tfunction durationConstant(id, value) {\n\t return value = +value, function() {\n\t set(this, id).duration = value;\n\t };\n\t}\n\t\n\tvar transition_duration = function(value) {\n\t var id = this._id;\n\t\n\t return arguments.length\n\t ? this.each((typeof value === \"function\"\n\t ? durationFunction\n\t : durationConstant)(id, value))\n\t : get(this.node(), id).duration;\n\t};\n\t\n\tfunction easeConstant(id, value) {\n\t if (typeof value !== \"function\") throw new Error;\n\t return function() {\n\t set(this, id).ease = value;\n\t };\n\t}\n\t\n\tvar transition_ease = function(value) {\n\t var id = this._id;\n\t\n\t return arguments.length\n\t ? this.each(easeConstant(id, value))\n\t : get(this.node(), id).ease;\n\t};\n\t\n\tvar transition_filter = function(match) {\n\t if (typeof match !== \"function\") match = d3Selection.matcher(match);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n\t if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n\t subgroup.push(node);\n\t }\n\t }\n\t }\n\t\n\t return new Transition(subgroups, this._parents, this._name, this._id);\n\t};\n\t\n\tvar transition_merge = function(transition) {\n\t if (transition._id !== this._id) throw new Error;\n\t\n\t for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n\t for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n\t if (node = group0[i] || group1[i]) {\n\t merge[i] = node;\n\t }\n\t }\n\t }\n\t\n\t for (; j < m0; ++j) {\n\t merges[j] = groups0[j];\n\t }\n\t\n\t return new Transition(merges, this._parents, this._name, this._id);\n\t};\n\t\n\tfunction start(name) {\n\t return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n\t var i = t.indexOf(\".\");\n\t if (i >= 0) t = t.slice(0, i);\n\t return !t || t === \"start\";\n\t });\n\t}\n\t\n\tfunction onFunction(id, name, listener) {\n\t var on0, on1, sit = start(name) ? init : set;\n\t return function() {\n\t var schedule = sit(this, id),\n\t on = schedule.on;\n\t\n\t // If this node shared a dispatch with the previous node,\n\t // just assign the updated shared dispatch and we’re done!\n\t // Otherwise, copy-on-write.\n\t if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\t\n\t schedule.on = on1;\n\t };\n\t}\n\t\n\tvar transition_on = function(name, listener) {\n\t var id = this._id;\n\t\n\t return arguments.length < 2\n\t ? get(this.node(), id).on.on(name)\n\t : this.each(onFunction(id, name, listener));\n\t};\n\t\n\tfunction removeFunction(id) {\n\t return function() {\n\t var parent = this.parentNode;\n\t for (var i in this.__transition) if (+i !== id) return;\n\t if (parent) parent.removeChild(this);\n\t };\n\t}\n\t\n\tvar transition_remove = function() {\n\t return this.on(\"end.remove\", removeFunction(this._id));\n\t};\n\t\n\tvar transition_select = function(select) {\n\t var name = this._name,\n\t id = this._id;\n\t\n\t if (typeof select !== \"function\") select = d3Selection.selector(select);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n\t if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n\t if (\"__data__\" in node) subnode.__data__ = node.__data__;\n\t subgroup[i] = subnode;\n\t schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n\t }\n\t }\n\t }\n\t\n\t return new Transition(subgroups, this._parents, name, id);\n\t};\n\t\n\tvar transition_selectAll = function(select) {\n\t var name = this._name,\n\t id = this._id;\n\t\n\t if (typeof select !== \"function\") select = d3Selection.selectorAll(select);\n\t\n\t for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n\t if (node = group[i]) {\n\t for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n\t if (child = children[k]) {\n\t schedule(child, name, id, k, children, inherit);\n\t }\n\t }\n\t subgroups.push(children);\n\t parents.push(node);\n\t }\n\t }\n\t }\n\t\n\t return new Transition(subgroups, parents, name, id);\n\t};\n\t\n\tvar Selection = d3Selection.selection.prototype.constructor;\n\t\n\tvar transition_selection = function() {\n\t return new Selection(this._groups, this._parents);\n\t};\n\t\n\tfunction styleRemove(name, interpolate$$1) {\n\t var value00,\n\t value10,\n\t interpolate0;\n\t return function() {\n\t var value0 = d3Selection.style(this, name),\n\t value1 = (this.style.removeProperty(name), d3Selection.style(this, name));\n\t return value0 === value1 ? null\n\t : value0 === value00 && value1 === value10 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n\t };\n\t}\n\t\n\tfunction styleRemoveEnd(name) {\n\t return function() {\n\t this.style.removeProperty(name);\n\t };\n\t}\n\t\n\tfunction styleConstant(name, interpolate$$1, value1) {\n\t var value00,\n\t interpolate0;\n\t return function() {\n\t var value0 = d3Selection.style(this, name);\n\t return value0 === value1 ? null\n\t : value0 === value00 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value1);\n\t };\n\t}\n\t\n\tfunction styleFunction(name, interpolate$$1, value) {\n\t var value00,\n\t value10,\n\t interpolate0;\n\t return function() {\n\t var value0 = d3Selection.style(this, name),\n\t value1 = value(this);\n\t if (value1 == null) value1 = (this.style.removeProperty(name), d3Selection.style(this, name));\n\t return value0 === value1 ? null\n\t : value0 === value00 && value1 === value10 ? interpolate0\n\t : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n\t };\n\t}\n\t\n\tvar transition_style = function(name, value, priority) {\n\t var i = (name += \"\") === \"transform\" ? d3Interpolate.interpolateTransformCss : interpolate;\n\t return value == null ? this\n\t .styleTween(name, styleRemove(name, i))\n\t .on(\"end.style.\" + name, styleRemoveEnd(name))\n\t : this.styleTween(name, typeof value === \"function\"\n\t ? styleFunction(name, i, tweenValue(this, \"style.\" + name, value))\n\t : styleConstant(name, i, value + \"\"), priority);\n\t};\n\t\n\tfunction styleTween(name, value, priority) {\n\t function tween() {\n\t var node = this, i = value.apply(node, arguments);\n\t return i && function(t) {\n\t node.style.setProperty(name, i(t), priority);\n\t };\n\t }\n\t tween._value = value;\n\t return tween;\n\t}\n\t\n\tvar transition_styleTween = function(name, value, priority) {\n\t var key = \"style.\" + (name += \"\");\n\t if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n\t if (value == null) return this.tween(key, null);\n\t if (typeof value !== \"function\") throw new Error;\n\t return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n\t};\n\t\n\tfunction textConstant(value) {\n\t return function() {\n\t this.textContent = value;\n\t };\n\t}\n\t\n\tfunction textFunction(value) {\n\t return function() {\n\t var value1 = value(this);\n\t this.textContent = value1 == null ? \"\" : value1;\n\t };\n\t}\n\t\n\tvar transition_text = function(value) {\n\t return this.tween(\"text\", typeof value === \"function\"\n\t ? textFunction(tweenValue(this, \"text\", value))\n\t : textConstant(value == null ? \"\" : value + \"\"));\n\t};\n\t\n\tvar transition_transition = function() {\n\t var name = this._name,\n\t id0 = this._id,\n\t id1 = newId();\n\t\n\t for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n\t if (node = group[i]) {\n\t var inherit = get(node, id0);\n\t schedule(node, name, id1, i, group, {\n\t time: inherit.time + inherit.delay + inherit.duration,\n\t delay: 0,\n\t duration: inherit.duration,\n\t ease: inherit.ease\n\t });\n\t }\n\t }\n\t }\n\t\n\t return new Transition(groups, this._parents, name, id1);\n\t};\n\t\n\tvar id = 0;\n\t\n\tfunction Transition(groups, parents, name, id) {\n\t this._groups = groups;\n\t this._parents = parents;\n\t this._name = name;\n\t this._id = id;\n\t}\n\t\n\tfunction transition(name) {\n\t return d3Selection.selection().transition(name);\n\t}\n\t\n\tfunction newId() {\n\t return ++id;\n\t}\n\t\n\tvar selection_prototype = d3Selection.selection.prototype;\n\t\n\tTransition.prototype = transition.prototype = {\n\t constructor: Transition,\n\t select: transition_select,\n\t selectAll: transition_selectAll,\n\t filter: transition_filter,\n\t merge: transition_merge,\n\t selection: transition_selection,\n\t transition: transition_transition,\n\t call: selection_prototype.call,\n\t nodes: selection_prototype.nodes,\n\t node: selection_prototype.node,\n\t size: selection_prototype.size,\n\t empty: selection_prototype.empty,\n\t each: selection_prototype.each,\n\t on: transition_on,\n\t attr: transition_attr,\n\t attrTween: transition_attrTween,\n\t style: transition_style,\n\t styleTween: transition_styleTween,\n\t text: transition_text,\n\t remove: transition_remove,\n\t tween: transition_tween,\n\t delay: transition_delay,\n\t duration: transition_duration,\n\t ease: transition_ease\n\t};\n\t\n\tvar defaultTiming = {\n\t time: null, // Set on use.\n\t delay: 0,\n\t duration: 250,\n\t ease: d3Ease.easeCubicInOut\n\t};\n\t\n\tfunction inherit(node, id) {\n\t var timing;\n\t while (!(timing = node.__transition) || !(timing = timing[id])) {\n\t if (!(node = node.parentNode)) {\n\t return defaultTiming.time = d3Timer.now(), defaultTiming;\n\t }\n\t }\n\t return timing;\n\t}\n\t\n\tvar selection_transition = function(name) {\n\t var id,\n\t timing;\n\t\n\t if (name instanceof Transition) {\n\t id = name._id, name = name._name;\n\t } else {\n\t id = newId(), (timing = defaultTiming).time = d3Timer.now(), name = name == null ? null : name + \"\";\n\t }\n\t\n\t for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n\t for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n\t if (node = group[i]) {\n\t schedule(node, name, id, i, group, timing || inherit(node, id));\n\t }\n\t }\n\t }\n\t\n\t return new Transition(groups, this._parents, name, id);\n\t};\n\t\n\td3Selection.selection.prototype.interrupt = selection_interrupt;\n\td3Selection.selection.prototype.transition = selection_transition;\n\t\n\tvar root = [null];\n\t\n\tvar active = function(node, name) {\n\t var schedules = node.__transition,\n\t schedule,\n\t i;\n\t\n\t if (schedules) {\n\t name = name == null ? null : name + \"\";\n\t for (i in schedules) {\n\t if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n\t return new Transition([[node]], root, name, +i);\n\t }\n\t }\n\t }\n\t\n\t return null;\n\t};\n\t\n\texports.transition = transition;\n\texports.active = active;\n\texports.interrupt = interrupt;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// https://d3js.org/d3-timer/ Version 1.0.6. Copyright 2017 Mike Bostock.\n\t(function (global, factory) {\n\t\t true ? factory(exports) :\n\t\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t\t(factory((global.d3 = global.d3 || {})));\n\t}(this, (function (exports) { 'use strict';\n\t\n\tvar frame = 0;\n\tvar timeout = 0;\n\tvar interval = 0;\n\tvar pokeDelay = 1000;\n\tvar taskHead;\n\tvar taskTail;\n\tvar clockLast = 0;\n\tvar clockNow = 0;\n\tvar clockSkew = 0;\n\tvar clock = typeof performance === \"object\" && performance.now ? performance : Date;\n\tvar setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\t\n\tfunction now() {\n\t return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n\t}\n\t\n\tfunction clearNow() {\n\t clockNow = 0;\n\t}\n\t\n\tfunction Timer() {\n\t this._call =\n\t this._time =\n\t this._next = null;\n\t}\n\t\n\tTimer.prototype = timer.prototype = {\n\t constructor: Timer,\n\t restart: function(callback, delay, time) {\n\t if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n\t time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\t if (!this._next && taskTail !== this) {\n\t if (taskTail) taskTail._next = this;\n\t else taskHead = this;\n\t taskTail = this;\n\t }\n\t this._call = callback;\n\t this._time = time;\n\t sleep();\n\t },\n\t stop: function() {\n\t if (this._call) {\n\t this._call = null;\n\t this._time = Infinity;\n\t sleep();\n\t }\n\t }\n\t};\n\t\n\tfunction timer(callback, delay, time) {\n\t var t = new Timer;\n\t t.restart(callback, delay, time);\n\t return t;\n\t}\n\t\n\tfunction timerFlush() {\n\t now(); // Get the current time, if not already set.\n\t ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\t var t = taskHead, e;\n\t while (t) {\n\t if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n\t t = t._next;\n\t }\n\t --frame;\n\t}\n\t\n\tfunction wake() {\n\t clockNow = (clockLast = clock.now()) + clockSkew;\n\t frame = timeout = 0;\n\t try {\n\t timerFlush();\n\t } finally {\n\t frame = 0;\n\t nap();\n\t clockNow = 0;\n\t }\n\t}\n\t\n\tfunction poke() {\n\t var now = clock.now(), delay = now - clockLast;\n\t if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n\t}\n\t\n\tfunction nap() {\n\t var t0, t1 = taskHead, t2, time = Infinity;\n\t while (t1) {\n\t if (t1._call) {\n\t if (time > t1._time) time = t1._time;\n\t t0 = t1, t1 = t1._next;\n\t } else {\n\t t2 = t1._next, t1._next = null;\n\t t1 = t0 ? t0._next = t2 : taskHead = t2;\n\t }\n\t }\n\t taskTail = t0;\n\t sleep(time);\n\t}\n\t\n\tfunction sleep(time) {\n\t if (frame) return; // Soonest alarm already set, or will be.\n\t if (timeout) timeout = clearTimeout(timeout);\n\t var delay = time - clockNow;\n\t if (delay > 24) {\n\t if (time < Infinity) timeout = setTimeout(wake, delay);\n\t if (interval) interval = clearInterval(interval);\n\t } else {\n\t if (!interval) clockLast = clockNow, interval = setInterval(poke, pokeDelay);\n\t frame = 1, setFrame(wake);\n\t }\n\t}\n\t\n\tvar timeout$1 = function(callback, delay, time) {\n\t var t = new Timer;\n\t delay = delay == null ? 0 : +delay;\n\t t.restart(function(elapsed) {\n\t t.stop();\n\t callback(elapsed + delay);\n\t }, delay, time);\n\t return t;\n\t};\n\t\n\tvar interval$1 = function(callback, delay, time) {\n\t var t = new Timer, total = delay;\n\t if (delay == null) return t.restart(callback, delay, time), t;\n\t delay = +delay, time = time == null ? now() : +time;\n\t t.restart(function tick(elapsed) {\n\t elapsed += total;\n\t t.restart(tick, total += delay, time);\n\t callback(elapsed);\n\t }, delay, time);\n\t return t;\n\t};\n\t\n\texports.now = now;\n\texports.timer = timer;\n\texports.timerFlush = timerFlush;\n\texports.timeout = timeout$1;\n\texports.interval = interval$1;\n\t\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\t\n\t})));\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// miniTooltip.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0a1eb6cfa29181d5999f","define(function(require){\n 'use strict';\n\n const d3Array = require('d3-array');\n const d3Ease = require('d3-ease');\n const d3Format = require('d3-format');\n const d3Selection = require('d3-selection');\n const d3Transition = require('d3-transition');\n\n\n /**\n * Mini Tooltip Component reusable API class that renders a\n * simple and configurable tooltip element for Britechart's\n * bar and step chart.\n *\n * @module Mini-tooltip\n * @tutorial bar\n * @requires d3\n *\n * @example\n * var barChart = line(),\n * miniTooltip = miniTooltip();\n *\n * barChart\n * .width(500)\n * .height(300)\n * .on('customMouseHover', miniTooltip.show)\n * .on('customMouseMove', miniTooltip.update)\n * .on('customMouseOut', miniTooltip.hide);\n *\n * d3Selection.select('.css-selector')\n * .datum(dataset)\n * .call(barChart);\n *\n * d3Selection.select('.metadata-group .mini-tooltip-container')\n * .datum([])\n * .call(miniTooltip);\n *\n */\n return function module() {\n\n let margin = {\n top: 12,\n right: 12,\n bottom: 12,\n left: 12\n },\n width = 100,\n height = 100,\n\n // Optional Title\n title = '',\n\n // Data Format\n valueLabel = 'value',\n nameLabel = 'name',\n\n // Animations\n mouseChaseDuration = 100,\n ease = d3Ease.easeQuadInOut,\n\n // tooltip\n tooltipBackground,\n backgroundBorderRadius = 1,\n tooltipTextContainer,\n tooltipOffset = {\n y: 0,\n x: 20\n },\n\n // Fonts\n textSize = 14,\n textLineHeight = 1.5,\n valueTextSize = 27,\n valueTextLineHeight = 1.18,\n\n // Colors\n bodyFillColor = '#FFFFFF',\n borderStrokeColor = '#D2D6DF',\n titleFillColor = '#666a73',\n nameTextFillColor = '#666a73',\n valueTextFillColor = '#45494E',\n valueTextWeight = 200,\n\n // formats\n tooltipValueFormat = d3Format.format('.2f'),\n\n chartWidth,\n chartHeight,\n svg;\n\n\n /**\n * This function creates the graph using the selection as container\n * @param {D3Selection} _selection A d3 selection that represents\n * the container(s) where the chart(s) will be rendered\n */\n function exports(_selection) {\n _selection.each(function(){\n chartWidth = width - margin.left - margin.right;\n chartHeight = height - margin.top - margin.bottom;\n\n buildSVG(this);\n drawTooltip();\n });\n }\n\n /**\n * Builds containers for the tooltip\n * Also applies the Margin convention\n * @private\n */\n function buildContainerGroups() {\n let container = svg\n .append('g')\n .classed('tooltip-container-group', true)\n .attr('transform', `translate( ${margin.left}, ${margin.top})`);\n\n container.append('g').classed('tooltip-group', true);\n }\n\n /**\n * Builds the SVG element that will contain the chart\n * @param {HTMLElement} container DOM element that will work as the container of the graph\n * @private\n */\n function buildSVG(container) {\n if (!svg) {\n svg = d3Selection.select(container)\n .append('g')\n .classed('britechart britechart-mini-tooltip', true);\n\n buildContainerGroups();\n }\n svg\n .transition()\n .attr('width', width)\n .attr('height', height);\n\n // Hidden by default\n exports.hide();\n }\n\n /**\n * Draws the different elements of the Tooltip box\n * @return void\n */\n function drawTooltip(){\n tooltipTextContainer = svg.selectAll('.tooltip-group')\n .append('g')\n .classed('tooltip-text', true);\n\n tooltipBackground = tooltipTextContainer\n .append('rect')\n .classed('tooltip-background', true)\n .attr('width', width)\n .attr('height', height)\n .attr('rx', backgroundBorderRadius)\n .attr('ry', backgroundBorderRadius)\n .attr('y', - margin.top)\n .attr('x', - margin.left)\n .style('fill', bodyFillColor)\n .style('stroke', borderStrokeColor)\n .style('stroke-width', 1)\n .style('pointer-events', 'none')\n .style('opacity', 0.9);\n }\n\n /**\n * Figures out the max length of the tooltip lines\n * @param {D3Selection[]} texts List of svg elements of each line\n * @return {Number} Max size of the lines\n */\n function getMaxLengthLine(...texts) {\n let textSizes = texts.filter(x => !!x)\n .map(x => x.node().getBBox().width);\n\n return d3Array.max(textSizes);\n }\n\n /**\n * Calculates the desired position for the tooltip\n * @param {Number} mouseX Current horizontal mouse position\n * @param {Number} mouseY Current vertical mouse position\n * @param {Number} parentChartWidth Parent's chart width\n * @param {Number} parentChartHeight Parent's chart height\n * @return {Number[]} X and Y position\n * @private\n */\n function getTooltipPosition([mouseX, mouseY], [parentChartWidth, parentChartHeight]) {\n let tooltipX, tooltipY;\n\n if (hasEnoughHorizontalRoom(parentChartWidth, mouseX)) {\n tooltipX = mouseX + tooltipOffset.x;\n } else {\n tooltipX = mouseX - chartWidth - tooltipOffset.x - margin.right;\n }\n\n if (hasEnoughVerticalRoom(parentChartHeight, mouseY)) {\n tooltipY = mouseY + tooltipOffset.y;\n } else {\n tooltipY = mouseY - chartHeight - tooltipOffset.y - margin.bottom;\n }\n\n return [tooltipX, tooltipY];\n }\n\n /**\n * Checks if the mouse is over the bounds of the parent chart\n * @param {Number} chartWidth Parent's chart\n * @param {Number} positionX Mouse position\n * @return {Boolean} If the mouse position allows space for the tooltip\n */\n function hasEnoughHorizontalRoom(parentChartWidth, positionX) {\n return (parentChartWidth - margin.left - margin.right - chartWidth) - positionX > 0;\n }\n\n /**\n * Checks if the mouse is over the bounds of the parent chart\n * @param {Number} chartWidth Parent's chart\n * @param {Number} positionX Mouse position\n * @return {Boolean} If the mouse position allows space for the tooltip\n */\n function hasEnoughVerticalRoom(parentChartHeight, positionY) {\n return (parentChartHeight - margin.top - margin.bottom - chartHeight) - positionY > 0;\n }\n\n /**\n * Hides the tooltip\n * @return {void}\n */\n function hideTooltip() {\n svg.style('display', 'none');\n }\n\n /**\n * Shows the tooltip updating it's content\n * @param {Object} dataPoint Data point from the chart\n * @return {void}\n */\n function showTooltip(dataPoint) {\n updateContent(dataPoint);\n svg.style('display', 'block');\n }\n\n /**\n * Draws the data entries inside the tooltip for a given topic\n * @param {Object} topic Topic to extract data from\n * @return void\n */\n function updateContent(dataPoint = {}){\n let value = dataPoint[valueLabel] || '',\n name = dataPoint[nameLabel] || '',\n lineHeight = textSize * textLineHeight,\n valueLineHeight = valueTextSize * valueTextLineHeight,\n defaultDy = '1em',\n temporalHeight = 0,\n tooltipValue,\n tooltipName,\n tooltipTitle;\n\n tooltipTextContainer.selectAll('text')\n .remove();\n\n if (title) {\n tooltipTitle = tooltipTextContainer\n .append('text')\n .classed('mini-tooltip-title', true)\n .attr('dy', defaultDy)\n .attr('y', 0)\n .style('fill', titleFillColor)\n .style('font-size', textSize)\n .text(title);\n\n temporalHeight = lineHeight + temporalHeight;\n }\n\n if (name) {\n tooltipName = tooltipTextContainer\n .append('text')\n .classed('mini-tooltip-name', true)\n .attr('dy', defaultDy)\n .attr('y', temporalHeight || 0)\n .style('fill', nameTextFillColor)\n .style('font-size', textSize)\n .text(name);\n\n temporalHeight = lineHeight + temporalHeight;\n }\n\n if (value) {\n tooltipValue = tooltipTextContainer\n .append('text')\n .classed('mini-tooltip-value', true)\n .attr('dy', defaultDy)\n .attr('y', temporalHeight || 0)\n .style('fill', valueTextFillColor)\n .style('font-size', valueTextSize)\n .style('font-weight', valueTextWeight)\n .text(tooltipValueFormat(value));\n\n temporalHeight = valueLineHeight + temporalHeight;\n }\n\n chartWidth = getMaxLengthLine(tooltipName, tooltipTitle, tooltipValue);\n chartHeight = temporalHeight;\n }\n\n /**\n * Updates size and position of tooltip depending on the side of the chart we are in\n * @param {Object} dataPoint DataPoint of the tooltip\n * @return void\n */\n function updatePositionAndSize(mousePosition, parentChartSize) {\n let [tooltipX, tooltipY] = getTooltipPosition(mousePosition, parentChartSize);\n\n svg.transition()\n .duration(mouseChaseDuration)\n .ease(ease)\n .attr('height', chartHeight + margin.top + margin.bottom)\n .attr('width', chartWidth + margin.left + margin.right)\n .attr('transform', `translate(${tooltipX},${tooltipY})`);\n\n tooltipBackground\n .attr('height', chartHeight + margin.top + margin.bottom)\n .attr('width', chartWidth + margin.left + margin.right);\n }\n\n /**\n * Updates tooltip content, size and position\n *\n * @param {Object} dataPoint Current datapoint to show info about\n * @return void\n */\n function updateTooltip(dataPoint, position, chartSize) {\n updateContent(dataPoint);\n updatePositionAndSize(position, chartSize);\n }\n\n /**\n * Hides the tooltip\n * @return {Module} Tooltip module to chain calls\n * @public\n */\n exports.hide = function() {\n hideTooltip();\n\n return this;\n };\n\n /**\n * Gets or Sets data's nameLabel\n * @param {text} _x Desired nameLabel\n * @return { text | module} nameLabel or Step Chart module to chain calls\n * @public\n */\n exports.nameLabel = function(_x) {\n if (!arguments.length) {\n return nameLabel;\n }\n nameLabel = _x;\n return this;\n };\n\n /**\n * Shows the tooltip\n * @return {Module} Tooltip module to chain calls\n * @public\n */\n exports.show = function() {\n showTooltip();\n\n return this;\n };\n\n /**\n * Gets or Sets the title of the tooltip\n * @param {string} _x Desired title\n * @return { string | module} Current title or module to chain calls\n * @public\n */\n exports.title = function(_x) {\n if (!arguments.length) {\n return title;\n }\n title = _x;\n return this;\n };\n\n /**\n * Updates the position and content of the tooltip\n * @param {Object} dataPoint Datapoint of the hovered element\n * @param {Array} mousePosition Mouse position relative to the parent chart [x, y]\n * @param {Array} chartSize Parent chart size [x, y]\n * @return {module} Current component\n */\n exports.update = function(dataPoint, mousePosition, chartSize) {\n updateTooltip(dataPoint, mousePosition, chartSize);\n\n return this;\n };\n\n return exports;\n };\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/charts/mini-tooltip.js","// https://d3js.org/d3-array/ Version 1.2.0. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar ascending = function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n};\n\nvar bisector = function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n};\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n\nvar ascendingBisect = bisector(ascending);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\n\nvar pairs = function(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n};\n\nfunction pair(a, b) {\n return [a, b];\n}\n\nvar cross = function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n};\n\nvar descending = function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n};\n\nvar number = function(x) {\n return x === null ? NaN : +x;\n};\n\nvar variance = function(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n};\n\nvar deviation = function(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n};\n\nvar extent = function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n};\n\nvar array = Array.prototype;\n\nvar slice = array.slice;\nvar map = array.map;\n\nvar constant = function(x) {\n return function() {\n return x;\n };\n};\n\nvar identity = function(x) {\n return x;\n};\n\nvar range = function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n};\n\nvar e10 = Math.sqrt(50);\nvar e5 = Math.sqrt(10);\nvar e2 = Math.sqrt(2);\n\nvar ticks = function(start, stop, count) {\n var reverse = stop < start,\n i = -1,\n n,\n ticks,\n step;\n\n if (reverse) n = start, start = stop, stop = n;\n\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n};\n\nfunction tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nfunction tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\nvar sturges = function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n};\n\nvar histogram = function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, Math.floor(x1 / tz) * tz, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisectRight(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n};\n\nvar quantile = function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n};\n\nvar freedmanDiaconis = function(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n};\n\nvar scott = function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n};\n\nvar max = function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n};\n\nvar mean = function(values, valueof) {\n var n = values.length,\n m = n,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) sum += value;\n else --m;\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n else --m;\n }\n }\n\n if (m) return sum / m;\n};\n\nvar median = function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return quantile(numbers.sort(ascending), 0.5);\n};\n\nvar merge = function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n};\n\nvar min = function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n};\n\nvar permute = function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n};\n\nvar scan = function(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = ascending;\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n};\n\nvar shuffle = function(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n};\n\nvar sum = function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n};\n\nvar transpose = function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n};\n\nfunction length(d) {\n return d.length;\n}\n\nvar zip = function() {\n return transpose(arguments);\n};\n\nexports.bisect = bisectRight;\nexports.bisectRight = bisectRight;\nexports.bisectLeft = bisectLeft;\nexports.ascending = ascending;\nexports.bisector = bisector;\nexports.cross = cross;\nexports.descending = descending;\nexports.deviation = deviation;\nexports.extent = extent;\nexports.histogram = histogram;\nexports.thresholdFreedmanDiaconis = freedmanDiaconis;\nexports.thresholdScott = scott;\nexports.thresholdSturges = sturges;\nexports.max = max;\nexports.mean = mean;\nexports.median = median;\nexports.merge = merge;\nexports.min = min;\nexports.pairs = pairs;\nexports.permute = permute;\nexports.quantile = quantile;\nexports.range = range;\nexports.scan = scan;\nexports.shuffle = shuffle;\nexports.sum = sum;\nexports.ticks = ticks;\nexports.tickIncrement = tickIncrement;\nexports.tickStep = tickStep;\nexports.transpose = transpose;\nexports.variance = variance;\nexports.zip = zip;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-array/build/d3-array.js\n// module id = 1\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11","// https://d3js.org/d3-ease/ Version 1.0.3. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction linear(t) {\n return +t;\n}\n\nfunction quadIn(t) {\n return t * t;\n}\n\nfunction quadOut(t) {\n return t * (2 - t);\n}\n\nfunction quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n\nfunction cubicIn(t) {\n return t * t * t;\n}\n\nfunction cubicOut(t) {\n return --t * t * t + 1;\n}\n\nfunction cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\nvar exponent = 3;\n\nvar polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nvar polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nvar polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n\nvar pi = Math.PI;\nvar halfPi = pi / 2;\n\nfunction sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nfunction sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nfunction sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n\nfunction expIn(t) {\n return Math.pow(2, 10 * t - 10);\n}\n\nfunction expOut(t) {\n return 1 - Math.pow(2, -10 * t);\n}\n\nfunction expInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n}\n\nfunction circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nfunction circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nfunction circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n\nvar b1 = 4 / 11;\nvar b2 = 6 / 11;\nvar b3 = 8 / 11;\nvar b4 = 3 / 4;\nvar b5 = 9 / 11;\nvar b6 = 10 / 11;\nvar b7 = 15 / 16;\nvar b8 = 21 / 22;\nvar b9 = 63 / 64;\nvar b0 = 1 / b1 / b1;\n\nfunction bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nfunction bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nfunction bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n\nvar overshoot = 1.70158;\n\nvar backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nvar backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nvar backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n\nvar tau = 2 * Math.PI;\nvar amplitude = 1;\nvar period = 0.3;\n\nvar elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nvar elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nvar elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n\nexports.easeLinear = linear;\nexports.easeQuad = quadInOut;\nexports.easeQuadIn = quadIn;\nexports.easeQuadOut = quadOut;\nexports.easeQuadInOut = quadInOut;\nexports.easeCubic = cubicInOut;\nexports.easeCubicIn = cubicIn;\nexports.easeCubicOut = cubicOut;\nexports.easeCubicInOut = cubicInOut;\nexports.easePoly = polyInOut;\nexports.easePolyIn = polyIn;\nexports.easePolyOut = polyOut;\nexports.easePolyInOut = polyInOut;\nexports.easeSin = sinInOut;\nexports.easeSinIn = sinIn;\nexports.easeSinOut = sinOut;\nexports.easeSinInOut = sinInOut;\nexports.easeExp = expInOut;\nexports.easeExpIn = expIn;\nexports.easeExpOut = expOut;\nexports.easeExpInOut = expInOut;\nexports.easeCircle = circleInOut;\nexports.easeCircleIn = circleIn;\nexports.easeCircleOut = circleOut;\nexports.easeCircleInOut = circleInOut;\nexports.easeBounce = bounceOut;\nexports.easeBounceIn = bounceIn;\nexports.easeBounceOut = bounceOut;\nexports.easeBounceInOut = bounceInOut;\nexports.easeBack = backInOut;\nexports.easeBackIn = backIn;\nexports.easeBackOut = backOut;\nexports.easeBackInOut = backInOut;\nexports.easeElastic = elasticOut;\nexports.easeElasticIn = elasticIn;\nexports.easeElasticOut = elasticOut;\nexports.easeElasticInOut = elasticInOut;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-ease/build/d3-ease.js\n// module id = 2\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-color/ Version 1.0.3. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar define = function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n};\n\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\";\nvar reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\";\nvar reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\";\nvar reHex3 = /^#([0-9a-f]{3})$/;\nvar reHex6 = /^#([0-9a-f]{6})$/;\nvar reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\");\nvar reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\");\nvar reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\");\nvar reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\");\nvar reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\");\nvar reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n displayable: function() {\n return this.rgb().displayable();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nfunction color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format])\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (0 <= this.r && this.r <= 255)\n && (0 <= this.g && this.g <= 255)\n && (0 <= this.b && this.b <= 255)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nfunction hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\nvar deg2rad = Math.PI / 180;\nvar rad2deg = 180 / Math.PI;\n\nvar Kn = 18;\nvar Xn = 0.950470;\nvar Yn = 1;\nvar Zn = 1.088830;\nvar t0 = 4 / 29;\nvar t1 = 6 / 29;\nvar t2 = 3 * t1 * t1;\nvar t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) {\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var b = rgb2xyz(o.r),\n a = rgb2xyz(o.g),\n l = rgb2xyz(o.b),\n x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),\n y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),\n z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nfunction lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nfunction Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n y = Yn * lab2xyz(y);\n x = Xn * lab2xyz(x);\n z = Zn * lab2xyz(z);\n return new Rgb(\n xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB\n xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),\n xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction xyz2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2xyz(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nfunction hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return labConvert(this).rgb();\n }\n}));\n\nvar A = -0.14861;\nvar B = +1.78277;\nvar C = -0.29227;\nvar D = -0.90649;\nvar E = +1.97294;\nvar ED = E * D;\nvar EB = E * B;\nvar BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nfunction cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\nexports.color = color;\nexports.rgb = rgb;\nexports.hsl = hsl;\nexports.lab = lab;\nexports.hcl = hcl;\nexports.cubehelix = cubehelix;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-color/build/d3-color.js\n// module id = 4\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-dispatch/ Version 1.0.3. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexports.dispatch = dispatch;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-dispatch/build/d3-dispatch.js\n// module id = 5\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-format/ Version 1.2.0. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nvar formatDecimal = function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n};\n\nvar exponent = function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n};\n\nvar formatGroup = function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n};\n\nvar formatNumerals = function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n};\n\nvar formatDefault = function(x, p) {\n x = x.toPrecision(p);\n\n out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (x[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n case \"e\": break out;\n default: if (i0 > 0) i0 = 0; break;\n }\n }\n\n return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;\n};\n\nvar prefixExponent;\n\nvar formatPrefixAuto = function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n};\n\nvar formatRounded = function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n};\n\nvar formatTypes = {\n \"\": formatDefault,\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n\n// [[fill]align][sign][symbol][0][width][,][.precision][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n return new FormatSpecifier(specifier);\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n\n var match,\n fill = match[1] || \" \",\n align = match[2] || \">\",\n sign = match[3] || \"-\",\n symbol = match[4] || \"\",\n zero = !!match[5],\n width = match[6] && +match[6],\n comma = !!match[7],\n precision = match[8] && +match[8].slice(1),\n type = match[9] || \"\";\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // Map invalid types to the default format.\n else if (!formatTypes[type]) type = \"\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n this.fill = fill;\n this.align = align;\n this.sign = sign;\n this.symbol = symbol;\n this.zero = zero;\n this.width = width;\n this.comma = comma;\n this.precision = precision;\n this.type = type;\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + this.type;\n};\n\nvar identity = function(x) {\n return x;\n};\n\nvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nvar formatLocale = function(locale) {\n var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity,\n currency = locale.currency,\n decimal = locale.decimal,\n numerals = locale.numerals ? formatNumerals(locale.numerals) : identity,\n percent = locale.percent || \"%\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n type = specifier.type;\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = !type || /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision == null ? (type ? 6 : 12)\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = formatType(Math.abs(value), precision);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = valueSuffix + (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n};\n\nvar locale;\n\n\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nfunction defaultLocale(definition) {\n locale = formatLocale(definition);\n exports.format = locale.format;\n exports.formatPrefix = locale.formatPrefix;\n return locale;\n}\n\nvar precisionFixed = function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n};\n\nvar precisionPrefix = function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n};\n\nvar precisionRound = function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n};\n\nexports.formatDefaultLocale = defaultLocale;\nexports.formatLocale = formatLocale;\nexports.formatSpecifier = formatSpecifier;\nexports.precisionFixed = precisionFixed;\nexports.precisionPrefix = precisionPrefix;\nexports.precisionRound = precisionRound;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-format/build/d3-format.js\n// module id = 6\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-interpolate/ Version 1.1.5. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-color')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-color'], factory) :\n\t(factory((global.d3 = global.d3 || {}),global.d3));\n}(this, (function (exports,d3Color) { 'use strict';\n\nfunction basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nvar basis$1 = function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n};\n\nvar basisClosed = function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n};\n\nvar constant = function(x) {\n return function() {\n return x;\n };\n};\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nfunction hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n\nvar rgb$1 = ((function rgbGamma(y) {\n var color$$1 = gamma(y);\n\n function rgb$$1(start, end) {\n var r = color$$1((start = d3Color.rgb(start)).r, (end = d3Color.rgb(end)).r),\n g = color$$1(start.g, end.g),\n b = color$$1(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb$$1.gamma = rgbGamma;\n\n return rgb$$1;\n}))(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color$$1;\n for (i = 0; i < n; ++i) {\n color$$1 = d3Color.rgb(colors[i]);\n r[i] = color$$1.r || 0;\n g[i] = color$$1.g || 0;\n b[i] = color$$1.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color$$1.opacity = 1;\n return function(t) {\n color$$1.r = r(t);\n color$$1.g = g(t);\n color$$1.b = b(t);\n return color$$1 + \"\";\n };\n };\n}\n\nvar rgbBasis = rgbSpline(basis$1);\nvar rgbBasisClosed = rgbSpline(basisClosed);\n\nvar array = function(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(nb),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n};\n\nvar date = function(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n};\n\nvar number = function(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n};\n\nvar object = function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n};\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\nvar reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nvar string = function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n};\n\nvar value = function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = d3Color.color(b)) ? (b = c, rgb$1) : string)\n : b instanceof d3Color.color ? rgb$1\n : b instanceof Date ? date\n : Array.isArray(b) ? array\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n};\n\nvar round = function(a, b) {\n return a = +a, b -= a, function(t) {\n return Math.round(a + b * t);\n };\n};\n\nvar degrees = 180 / Math.PI;\n\nvar identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nvar decompose = function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n};\n\nvar cssNode;\nvar cssRoot;\nvar cssView;\nvar svgNode;\n\nfunction parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nfunction parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nvar interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\nvar rho = Math.SQRT2;\nvar rho2 = 2;\nvar rho4 = 4;\nvar epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nvar zoom = function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n };\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n };\n }\n\n i.duration = S * 1000;\n\n return i;\n};\n\nfunction hsl$1(hue$$1) {\n return function(start, end) {\n var h = hue$$1((start = d3Color.hsl(start)).h, (end = d3Color.hsl(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nvar hsl$2 = hsl$1(hue);\nvar hslLong = hsl$1(nogamma);\n\nfunction lab$1(start, end) {\n var l = nogamma((start = d3Color.lab(start)).l, (end = d3Color.lab(end)).l),\n a = nogamma(start.a, end.a),\n b = nogamma(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n\nfunction hcl$1(hue$$1) {\n return function(start, end) {\n var h = hue$$1((start = d3Color.hcl(start)).h, (end = d3Color.hcl(end)).h),\n c = nogamma(start.c, end.c),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nvar hcl$2 = hcl$1(hue);\nvar hclLong = hcl$1(nogamma);\n\nfunction cubehelix$1(hue$$1) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix$$1(start, end) {\n var h = hue$$1((start = d3Color.cubehelix(start)).h, (end = d3Color.cubehelix(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix$$1.gamma = cubehelixGamma;\n\n return cubehelix$$1;\n })(1);\n}\n\nvar cubehelix$2 = cubehelix$1(hue);\nvar cubehelixLong = cubehelix$1(nogamma);\n\nvar quantize = function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n};\n\nexports.interpolate = value;\nexports.interpolateArray = array;\nexports.interpolateBasis = basis$1;\nexports.interpolateBasisClosed = basisClosed;\nexports.interpolateDate = date;\nexports.interpolateNumber = number;\nexports.interpolateObject = object;\nexports.interpolateRound = round;\nexports.interpolateString = string;\nexports.interpolateTransformCss = interpolateTransformCss;\nexports.interpolateTransformSvg = interpolateTransformSvg;\nexports.interpolateZoom = zoom;\nexports.interpolateRgb = rgb$1;\nexports.interpolateRgbBasis = rgbBasis;\nexports.interpolateRgbBasisClosed = rgbBasisClosed;\nexports.interpolateHsl = hsl$2;\nexports.interpolateHslLong = hslLong;\nexports.interpolateLab = lab$1;\nexports.interpolateHcl = hcl$2;\nexports.interpolateHclLong = hclLong;\nexports.interpolateCubehelix = cubehelix$2;\nexports.interpolateCubehelixLong = cubehelixLong;\nexports.quantize = quantize;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-interpolate/build/d3-interpolate.js\n// module id = 9\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-selection/ Version 1.1.0. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar xhtml = \"http://www.w3.org/1999/xhtml\";\n\nvar namespaces = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n\nvar namespace = function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n};\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nvar creator = function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n};\n\nvar nextId = 0;\n\nfunction local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n\nvar matcher = function(selector) {\n return function() {\n return this.matches(selector);\n };\n};\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!element.matches) {\n var vendorMatches = element.webkitMatchesSelector\n || element.msMatchesSelector\n || element.mozMatchesSelector\n || element.oMatchesSelector;\n matcher = function(selector) {\n return function() {\n return vendorMatches.call(this, selector);\n };\n };\n }\n}\n\nvar matcher$1 = matcher;\n\nvar filterEvents = {};\n\nexports.event = null;\n\nif (typeof document !== \"undefined\") {\n var element$1 = document.documentElement;\n if (!(\"onmouseenter\" in element$1)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = exports.event; // Events can be reentrant (e.g., focus).\n exports.event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n exports.event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nvar selection_on = function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n};\n\nfunction customEvent(event1, listener, that, args) {\n var event0 = exports.event;\n event1.sourceEvent = exports.event;\n exports.event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n exports.event = event0;\n }\n}\n\nvar sourceEvent = function() {\n var current = exports.event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n};\n\nvar point = function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\nvar mouse = function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n};\n\nfunction none() {}\n\nvar selector = function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n};\n\nvar selection_select = function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n};\n\nfunction empty() {\n return [];\n}\n\nvar selectorAll = function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n};\n\nvar selection_selectAll = function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n};\n\nvar selection_filter = function(match) {\n if (typeof match !== \"function\") match = matcher$1(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n};\n\nvar sparse = function(update) {\n return new Array(update.length);\n};\n\nvar selection_enter = function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n};\n\nfunction EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\nvar constant = function(x) {\n return function() {\n return x;\n };\n};\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nvar selection_data = function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n};\n\nvar selection_exit = function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n};\n\nvar selection_merge = function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n};\n\nvar selection_order = function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n};\n\nvar selection_sort = function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n};\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nvar selection_call = function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n};\n\nvar selection_nodes = function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n};\n\nvar selection_node = function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n};\n\nvar selection_size = function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n};\n\nvar selection_empty = function() {\n return !this.node();\n};\n\nvar selection_each = function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n};\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nvar selection_attr = function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n};\n\nvar defaultView = function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n};\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nvar selection_style = function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n};\n\nfunction styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nvar selection_property = function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n};\n\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nvar selection_classed = function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n};\n\nfunction textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nvar selection_text = function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n};\n\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nvar selection_html = function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n};\n\nfunction raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nvar selection_raise = function() {\n return this.each(raise);\n};\n\nfunction lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nvar selection_lower = function() {\n return this.each(lower);\n};\n\nvar selection_append = function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n};\n\nfunction constantNull() {\n return null;\n}\n\nvar selection_insert = function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n};\n\nfunction remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nvar selection_remove = function() {\n return this.each(remove);\n};\n\nvar selection_datum = function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n};\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nvar selection_dispatch = function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n};\n\nvar root = [null];\n\nfunction Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nvar select = function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n};\n\nvar selectAll = function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n};\n\nvar touch = function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n};\n\nvar touches = function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n};\n\nexports.creator = creator;\nexports.local = local;\nexports.matcher = matcher$1;\nexports.mouse = mouse;\nexports.namespace = namespace;\nexports.namespaces = namespaces;\nexports.select = select;\nexports.selectAll = selectAll;\nexports.selection = selection;\nexports.selector = selector;\nexports.selectorAll = selectorAll;\nexports.style = styleValue;\nexports.touch = touch;\nexports.touches = touches;\nexports.window = defaultView;\nexports.customEvent = customEvent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-selection/build/d3-selection.js\n// module id = 12\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-transition/ Version 1.1.0. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-selection'), require('d3-dispatch'), require('d3-timer'), require('d3-interpolate'), require('d3-color'), require('d3-ease')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-selection', 'd3-dispatch', 'd3-timer', 'd3-interpolate', 'd3-color', 'd3-ease'], factory) :\n\t(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3,global.d3,global.d3));\n}(this, (function (exports,d3Selection,d3Dispatch,d3Timer,d3Interpolate,d3Color,d3Ease) { 'use strict';\n\nvar emptyOn = d3Dispatch.dispatch(\"start\", \"end\", \"interrupt\");\nvar emptyTween = [];\n\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar RUNNING = 4;\nvar ENDING = 5;\nvar ENDED = 6;\n\nvar schedule = function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n};\n\nfunction init(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id]) || schedule.state > CREATED) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction set(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id]) || schedule.state > STARTING) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = d3Timer.timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return d3Timer.timeout(start);\n\n // Interrupt the active transition, if any.\n // Dispatch the interrupt event.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions. No interrupt event is dispatched\n // because the cancelled transitions never started. Note that this also\n // removes this transition from the pending list!\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n d3Timer.timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(null, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n\nvar interrupt = function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n if (active) schedule.on.call(\"interrupt\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n};\n\nvar selection_interrupt = function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n};\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nvar transition_tween = function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n};\n\nfunction tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n\nvar interpolate = function(a, b) {\n var c;\n return (typeof b === \"number\" ? d3Interpolate.interpolateNumber\n : b instanceof d3Color.color ? d3Interpolate.interpolateRgb\n : (c = d3Color.color(b)) ? (b = c, d3Interpolate.interpolateRgb)\n : d3Interpolate.interpolateString)(a, b);\n};\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate$$1, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate$$1, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate$$1, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttribute(name);\n value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate$$1, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n };\n}\n\nvar transition_attr = function(name, value) {\n var fullname = d3Selection.namespace(name), i = fullname === \"transform\" ? d3Interpolate.interpolateTransformSvg : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + \"\"));\n};\n\nfunction attrTweenNS(fullname, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttributeNS(fullname.space, fullname.local, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttribute(name, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nvar transition_attrTween = function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = d3Selection.namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n};\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nvar transition_delay = function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n};\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nvar transition_duration = function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n};\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nvar transition_ease = function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n};\n\nvar transition_filter = function(match) {\n if (typeof match !== \"function\") match = d3Selection.matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n};\n\nvar transition_merge = function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n};\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nvar transition_on = function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n};\n\nfunction removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nvar transition_remove = function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n};\n\nvar transition_select = function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = d3Selection.selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n};\n\nvar transition_selectAll = function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = d3Selection.selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n};\n\nvar Selection = d3Selection.selection.prototype.constructor;\n\nvar transition_selection = function() {\n return new Selection(this._groups, this._parents);\n};\n\nfunction styleRemove(name, interpolate$$1) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0 = d3Selection.style(this, name),\n value1 = (this.style.removeProperty(name), d3Selection.style(this, name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n };\n}\n\nfunction styleRemoveEnd(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate$$1, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = d3Selection.style(this, name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate$$1, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0 = d3Selection.style(this, name),\n value1 = value(this);\n if (value1 == null) value1 = (this.style.removeProperty(name), d3Selection.style(this, name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);\n };\n}\n\nvar transition_style = function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? d3Interpolate.interpolateTransformCss : interpolate;\n return value == null ? this\n .styleTween(name, styleRemove(name, i))\n .on(\"end.style.\" + name, styleRemoveEnd(name))\n : this.styleTween(name, typeof value === \"function\"\n ? styleFunction(name, i, tweenValue(this, \"style.\" + name, value))\n : styleConstant(name, i, value + \"\"), priority);\n};\n\nfunction styleTween(name, value, priority) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.style.setProperty(name, i(t), priority);\n };\n }\n tween._value = value;\n return tween;\n}\n\nvar transition_styleTween = function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n};\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nvar transition_text = function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n};\n\nvar transition_transition = function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n};\n\nvar id = 0;\n\nfunction Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nfunction transition(name) {\n return d3Selection.selection().transition(name);\n}\n\nfunction newId() {\n return ++id;\n}\n\nvar selection_prototype = d3Selection.selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease\n};\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: d3Ease.easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = d3Timer.now(), defaultTiming;\n }\n }\n return timing;\n}\n\nvar selection_transition = function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = d3Timer.now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n};\n\nd3Selection.selection.prototype.interrupt = selection_interrupt;\nd3Selection.selection.prototype.transition = selection_transition;\n\nvar root = [null];\n\nvar active = function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n};\n\nexports.transition = transition;\nexports.active = active;\nexports.interrupt = interrupt;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-transition/build/d3-transition.js\n// module id = 13\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12","// https://d3js.org/d3-timer/ Version 1.0.6. Copyright 2017 Mike Bostock.\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nvar frame = 0;\nvar timeout = 0;\nvar interval = 0;\nvar pokeDelay = 1000;\nvar taskHead;\nvar taskTail;\nvar clockLast = 0;\nvar clockNow = 0;\nvar clockSkew = 0;\nvar clock = typeof performance === \"object\" && performance.now ? performance : Date;\nvar setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nfunction Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nfunction timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nfunction timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow;\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, delay);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clockNow, interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n\nvar timeout$1 = function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n};\n\nvar interval$1 = function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n};\n\nexports.now = now;\nexports.timer = timer;\nexports.timerFlush = timerFlush;\nexports.timeout = timeout$1;\nexports.interval = interval$1;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d3-timer/build/d3-timer.js\n// module id = 14\n// module chunks = 0 1 3 4 5 6 7 8 9 10 11 12"],"sourceRoot":""}