text: (function webpackUniversalModuleDefinition(root, factory) {
  	if(typeof exports === 'object' && typeof module === 'object')
  		module.exports = factory(require("React"));
  	else if(typeof define === 'function' && define.amd)
  		define(["React"], factory);
  	else if(typeof exports === 'object')
  		exports["ReStock"] = factory(require("React"));
  	else
  		root["ReStock"] = factory(root["React"]);
  })(this, function(__WEBPACK_EXTERNAL_MODULE_0__) {
  return /******/ (function(modules) { // webpackBootstrap
  /******/ 	// install a JSONP callback for chunk loading
  /******/ 	var parentJsonpFunction = window["webpackJsonpReStock"];
  /******/ 	window["webpackJsonpReStock"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {
  /******/ 		// add "moreModules" to the modules object,
  /******/ 		// then flag all "chunkIds" as loaded and fire callback
  /******/ 		var moduleId, chunkId, i = 0, resolves = [], result;
  /******/ 		for(;i < chunkIds.length; i++) {
  /******/ 			chunkId = chunkIds[i];
  /******/ 			if(installedChunks[chunkId])
  /******/ 				resolves.push(installedChunks[chunkId][0]);
  /******/ 			installedChunks[chunkId] = 0;
  /******/ 		}
  /******/ 		for(moduleId in moreModules) {
  /******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
  /******/ 				modules[moduleId] = moreModules[moduleId];
  /******/ 			}
  /******/ 		}
  /******/ 		if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);
  /******/ 		while(resolves.length)
  /******/ 			resolves.shift()();
  /******/ 		if(executeModules) {
  /******/ 			for(i=0; i < executeModules.length; i++) {
  /******/ 				result = __webpack_require__(__webpack_require__.s = executeModules[i]);
  /******/ 			}
  /******/ 		}
  /******/ 		return result;
  /******/ 	};
  /******/
  /******/ 	// The module cache
  /******/ 	var installedModules = {};
  /******/
  /******/ 	// objects to store loaded and loading chunks
  /******/ 	var installedChunks = {
  /******/ 		3: 0
  /******/ 	};
  /******/
  /******/ 	// The require function
  /******/ 	function __webpack_require__(moduleId) {
  /******/
  /******/ 		// Check if module is in cache
  /******/ 		if(installedModules[moduleId])
  /******/ 			return installedModules[moduleId].exports;
  /******/
  /******/ 		// Create a new module (and put it into the cache)
  /******/ 		var module = installedModules[moduleId] = {
  /******/ 			i: moduleId,
  /******/ 			l: false,
  /******/ 			exports: {}
  /******/ 		};
  /******/
  /******/ 		// Execute the module function
  /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  /******/
  /******/ 		// Flag the module as loaded
  /******/ 		module.l = true;
  /******/
  /******/ 		// Return the exports of the module
  /******/ 		return module.exports;
  /******/ 	}
  /******/
  /******/ 	// This file contains only the entry chunk.
  /******/ 	// The chunk loading function for additional chunks
  /******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
  /******/ 		if(installedChunks[chunkId] === 0)
  /******/ 			return Promise.resolve();
  /******/
  /******/ 		// an Promise means "currently loading".
  /******/ 		if(installedChunks[chunkId]) {
  /******/ 			return installedChunks[chunkId][2];
  /******/ 		}
  /******/ 		// start chunk loading
  /******/ 		var head = document.getElementsByTagName('head')[0];
  /******/ 		var script = document.createElement('script');
  /******/ 		script.type = 'text/javascript';
  /******/ 		script.charset = 'utf-8';
  /******/ 		script.async = true;
  /******/ 		script.timeout = 120000;
  /******/
  /******/ 		if (__webpack_require__.nc) {
  /******/ 			script.setAttribute("nonce", __webpack_require__.nc);
  /******/ 		}
  /******/ 		script.src = __webpack_require__.p + "dist/" + chunkId + "." + {"0":"73ffd35f019cb40ed379","1":"ed5606f3de7c46ccd2ac","2":"5ea5c85be0d387ce47b0"}[chunkId] + ".js";
  /******/ 		var timeout = setTimeout(onScriptComplete, 120000);
  /******/ 		script.onerror = script.onload = onScriptComplete;
  /******/ 		function onScriptComplete() {
  /******/ 			// avoid mem leaks in IE.
  /******/ 			script.onerror = script.onload = null;
  /******/ 			clearTimeout(timeout);
  /******/ 			var chunk = installedChunks[chunkId];
  /******/ 			if(chunk !== 0) {
  /******/ 				if(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));
  /******/ 				installedChunks[chunkId] = undefined;
  /******/ 			}
  /******/ 		};
  /******/
  /******/ 		var promise = new Promise(function(resolve, reject) {
  /******/ 			installedChunks[chunkId] = [resolve, reject];
  /******/ 		});
  /******/ 		installedChunks[chunkId][2] = promise;
  /******/
  /******/ 		head.appendChild(script);
  /******/ 		return promise;
  /******/ 	};
  /******/
  /******/ 	// expose the modules object (__webpack_modules__)
  /******/ 	__webpack_require__.m = modules;
  /******/
  /******/ 	// expose the module cache
  /******/ 	__webpack_require__.c = installedModules;
  /******/
  /******/ 	// identity function for calling harmony imports with the correct context
  /******/ 	__webpack_require__.i = function(value) { return value; };
  /******/
  /******/ 	// define getter function for harmony exports
  /******/ 	__webpack_require__.d = function(exports, name, getter) {
  /******/ 		if(!__webpack_require__.o(exports, name)) {
  /******/ 			Object.defineProperty(exports, name, {
  /******/ 				configurable: false,
  /******/ 				enumerable: true,
  /******/ 				get: getter
  /******/ 			});
  /******/ 		}
  /******/ 	};
  /******/
  /******/ 	// getDefaultExport function for compatibility with non-harmony modules
  /******/ 	__webpack_require__.n = function(module) {
  /******/ 		var getter = module && module.__esModule ?
  /******/ 			function getDefault() { return module['default']; } :
  /******/ 			function getModuleExports() { return module; };
  /******/ 		__webpack_require__.d(getter, 'a', getter);
  /******/ 		return getter;
  /******/ 	};
  /******/
  /******/ 	// Object.prototype.hasOwnProperty.call
  /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  /******/
  /******/ 	// __webpack_public_path__
  /******/ 	__webpack_require__.p = "";
  /******/
  /******/ 	// on error function for async loading
  /******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
  /******/
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(__webpack_require__.s = 11);
  /******/ })
  /************************************************************************/
  /******/ ([
  /* 0 */
  /***/ (function(module, exports) {
  
  module.exports = __WEBPACK_EXTERNAL_MODULE_0__;
  
  /***/ }),
  /* 1 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_scale__ = __webpack_require__(25);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__noop__ = __webpack_require__(63);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__zipper__ = __webpack_require__(264);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return __WEBPACK_IMPORTED_MODULE_3__zipper__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__merge__ = __webpack_require__(429);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return __WEBPACK_IMPORTED_MODULE_4__merge__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__slidingWindow__ = __webpack_require__(430);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return __WEBPACK_IMPORTED_MODULE_5__slidingWindow__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__identity__ = __webpack_require__(72);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_6__identity__["a"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return __WEBPACK_IMPORTED_MODULE_2__noop__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__shallowEqual__ = __webpack_require__(263);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return __WEBPACK_IMPORTED_MODULE_7__shallowEqual__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__mappedSlidingWindow__ = __webpack_require__(428);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return __WEBPACK_IMPORTED_MODULE_8__mappedSlidingWindow__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__accumulatingWindow__ = __webpack_require__(427);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return __WEBPACK_IMPORTED_MODULE_9__accumulatingWindow__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__PureComponent__ = __webpack_require__(177);
  /* unused harmony reexport PureComponent */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__strokeDasharray__ = __webpack_require__(431);
  /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_11__strokeDasharray__["a"]; });
  /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_11__strokeDasharray__["b"]; });
  /* harmony export (immutable) */ __webpack_exports__["H"] = getLogger;
  /* harmony export (immutable) */ __webpack_exports__["c"] = path;
  /* harmony export (immutable) */ __webpack_exports__["b"] = functor;
  /* unused harmony export getClosestItemIndexes2 */
  /* harmony export (immutable) */ __webpack_exports__["A"] = degrees;
  /* harmony export (immutable) */ __webpack_exports__["B"] = radians;
  /* harmony export (immutable) */ __webpack_exports__["y"] = getClosestValue;
  /* harmony export (immutable) */ __webpack_exports__["q"] = d3Window;
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "J", function() { return MOUSEENTER; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "K", function() { return MOUSELEAVE; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return MOUSEMOVE; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return MOUSEUP; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return TOUCHMOVE; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return TOUCHEND; });
  /* harmony export (immutable) */ __webpack_exports__["w"] = getTouchProps;
  /* harmony export (immutable) */ __webpack_exports__["n"] = getClosestItemIndexes;
  /* harmony export (immutable) */ __webpack_exports__["D"] = getClosestItem;
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return overlayColors; });
  /* harmony export (immutable) */ __webpack_exports__["m"] = head;
  /* unused harmony export tail */
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return first; });
  /* harmony export (immutable) */ __webpack_exports__["e"] = last;
  /* harmony export (immutable) */ __webpack_exports__["a"] = isDefined;
  /* harmony export (immutable) */ __webpack_exports__["d"] = isNotDefined;
  /* harmony export (immutable) */ __webpack_exports__["C"] = isObject;
  /* unused harmony export isArray */
  /* harmony export (immutable) */ __webpack_exports__["v"] = touchPosition;
  /* harmony export (immutable) */ __webpack_exports__["p"] = mousePosition;
  /* harmony export (immutable) */ __webpack_exports__["I"] = clearCanvas;
  /* unused harmony export capitalizeFirst */
  /* harmony export (immutable) */ __webpack_exports__["g"] = hexToRGBA;
  
  
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  function getLogger(prefix) {
  	var logger = __WEBPACK_IMPORTED_MODULE_2__noop__["a" /* default */];
  	if (false) {
  		logger = require("debug")("react-stockcharts:" + prefix);
  	}
  	return logger;
  }
  
  function path() {
  	var loc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  
  	var key = Array.isArray(loc) ? loc : [loc];
  	var length = key.length;
  
  	return function (obj, defaultValue) {
  		if (length === 0) return isDefined(obj) ? obj : defaultValue;
  
  		var index = 0;
  		while (obj != null && index < length) {
  			obj = obj[key[index++]];
  		}
  		return index === length ? obj : defaultValue;
  	};
  }
  
  function functor(v) {
  	return typeof v === "function" ? v : function () {
  		return v;
  	};
  }
  
  function getClosestItemIndexes2(array, value, accessor) {
  	var left = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_array__["b" /* bisector */])(accessor).left(array, value);
  	left = Math.max(left - 1, 0);
  	var right = Math.min(left + 1, array.length - 1);
  
  	var item = accessor(array[left]);
  	if (item >= value && item <= value) right = left;
  
  	return { left: left, right: right };
  }
  
  function degrees(radians) {
  	return radians * 180 / Math.PI;
  }
  
  function radians(degrees) {
  	return degrees * Math.PI / 180;
  }
  
  function getClosestValue(inputValue, currentValue) {
  	var values = isArray(inputValue) ? inputValue : [inputValue];
  
  	var diff = values.map(function (each) {
  		return each - currentValue;
  	}).reduce(function (diff1, diff2) {
  		return Math.abs(diff1) < Math.abs(diff2) ? diff1 : diff2;
  	});
  	return currentValue + diff;
  }
  
  function d3Window(node) {
  	var d3win = node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);
  	return d3win;
  }
  
  var MOUSEENTER = "mouseenter.interaction";
  var MOUSELEAVE = "mouseleave.interaction";
  var MOUSEMOVE = "mousemove.pan";
  var MOUSEUP = "mouseup.pan";
  var TOUCHMOVE = "touchmove.pan";
  var TOUCHEND = "touchend.pan touchcancel.pan";
  
  function getTouchProps(touch) {
  	if (!touch) return {};
  	return {
  		pageX: touch.pageX,
  		pageY: touch.pageY,
  		clientX: touch.clientX,
  		clientY: touch.clientY
  	};
  }
  
  function getClosestItemIndexes(array, value, accessor, log) {
  	var lo = 0,
  	    hi = array.length - 1;
  	while (hi - lo > 1) {
  		var mid = Math.round((lo + hi) / 2);
  		if (accessor(array[mid]) <= value) {
  			lo = mid;
  		} else {
  			hi = mid;
  		}
  	}
  	// for Date object === does not work, so using the <= in combination with >=
  	// the same code works for both dates and numbers
  	if (accessor(array[lo]).valueOf() === value.valueOf()) hi = lo;
  	if (accessor(array[hi]).valueOf() === value.valueOf()) lo = hi;
  
  	if (accessor(array[lo]) < value && accessor(array[hi]) < value) lo = hi;
  	if (accessor(array[lo]) > value && accessor(array[hi]) > value) hi = lo;
  
  	if (log) {}
  	// console.log(lo, accessor(array[lo]), value, accessor(array[hi]), hi);
  	// console.log(accessor(array[lo]), lo, value, accessor(array[lo]) >= value);
  	// console.log(value, hi, accessor(array[hi]), accessor(array[lo]) <= value);
  
  	// var left = value > accessor(array[lo]) ? lo : lo;
  	// var right = gte(value, accessor(array[hi])) ? Math.min(hi + 1, array.length - 1) : hi;
  
  	// console.log(value, accessor(array[left]), accessor(array[right]));
  	return { left: lo, right: hi };
  }
  
  function getClosestItem(array, value, accessor, log) {
  	var _getClosestItemIndexe = getClosestItemIndexes(array, value, accessor, log),
  	    left = _getClosestItemIndexe.left,
  	    right = _getClosestItemIndexe.right;
  
  	if (left === right) {
  		return array[left];
  	}
  
  	var closest = Math.abs(accessor(array[left]) - value) < Math.abs(accessor(array[right]) - value) ? array[left] : array[right];
  	if (log) {
  		console.log(array[left], array[right], closest, left, right);
  	}
  	return closest;
  }
  
  var overlayColors = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_scale__["a" /* scaleOrdinal */])(__WEBPACK_IMPORTED_MODULE_0_d3_scale__["b" /* schemeCategory10 */]);
  
  function head(array, accessor) {
  	if (accessor && array) {
  		var value = void 0;
  		for (var i = 0; i < array.length; i++) {
  			value = array[i];
  			if (isDefined(accessor(value))) return value;
  		}
  		return undefined;
  	}
  	return array ? array[0] : undefined;
  }
  
  function tail(array, accessor) {
  	if (accessor && array) {
  		return array.map(accessor).slice(1);
  	}
  	return array ? array.slice(1) : undefined;
  }
  
  var first = head;
  
  function last(array, accessor) {
  	if (accessor && array) {
  		var value = void 0;
  		for (var i = array.length - 1; i >= 0; i--) {
  			value = array[i];
  			if (isDefined(accessor(value))) return value;
  		}
  		return undefined;
  	}
  	var length = array ? array.length : 0;
  	return length ? array[length - 1] : undefined;
  }
  
  function isDefined(d) {
  	return d !== null && typeof d != "undefined";
  }
  
  function isNotDefined(d) {
  	return !isDefined(d);
  }
  
  function isObject(d) {
  	return isDefined(d) && (typeof d === "undefined" ? "undefined" : _typeof(d)) === "object" && !Array.isArray(d);
  }
  
  var isArray = Array.isArray;
  
  function touchPosition(touch, e) {
  	var container = e.target,
  	    rect = container.getBoundingClientRect(),
  	    x = touch.clientX - rect.left - container.clientLeft,
  	    y = touch.clientY - rect.top - container.clientTop,
  	    xy = [Math.round(x), Math.round(y)];
  	return xy;
  }
  
  function mousePosition(e, defaultRect) {
  	var container = e.currentTarget;
  	var rect = defaultRect || container.getBoundingClientRect(),
  	    x = e.clientX - rect.left - container.clientLeft,
  	    y = e.clientY - rect.top - container.clientTop,
  	    xy = [Math.round(x), Math.round(y)];
  	return xy;
  }
  
  function clearCanvas(canvasList, ratio) {
  	canvasList.forEach(function (each) {
  		each.setTransform(1, 0, 0, 1, 0, 0);
  		each.clearRect(-1, -1, each.canvas.width + 2, each.canvas.height + 2);
  		each.scale(ratio, ratio);
  	});
  }
  
  function capitalizeFirst(str) {
  	return str.charAt(0).toUpperCase() + str.substring(1);
  }
  
  function hexToRGBA(inputHex, opacity) {
  	var hex = inputHex.replace("#", "");
  	if (inputHex.indexOf("#") > -1 && (hex.length === 3 || hex.length === 6)) {
  
  		var multiplier = hex.length === 3 ? 1 : 2;
  
  		var r = parseInt(hex.substring(0, 1 * multiplier), 16);
  		var g = parseInt(hex.substring(1 * multiplier, 2 * multiplier), 16);
  		var b = parseInt(hex.substring(2 * multiplier, 3 * multiplier), 16);
  
  		var result = "rgba(" + r + ", " + g + ", " + b + ", " + opacity + ")";
  
  		return result;
  	}
  	return inputHex;
  }
  
  /***/ }),
  /* 2 */,
  /* 3 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__GenericComponent__ = __webpack_require__(5);
  
  
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  
  
  
  
  var GenericChartComponent = function (_GenericComponent) {
  	_inherits(GenericChartComponent, _GenericComponent);
  
  	function GenericChartComponent(props, context) {
  		_classCallCheck(this, GenericChartComponent);
  
  		var _this = _possibleConstructorReturn(this, (GenericChartComponent.__proto__ || Object.getPrototypeOf(GenericChartComponent)).call(this, props, context));
  
  		_this.preCanvasDraw = _this.preCanvasDraw.bind(_this);
  		_this.postCanvasDraw = _this.postCanvasDraw.bind(_this);
  		return _this;
  	}
  
  	_createClass(GenericChartComponent, [{
  		key: "preCanvasDraw",
  		value: function preCanvasDraw(ctx, moreProps) {
  			_get(GenericChartComponent.prototype.__proto__ || Object.getPrototypeOf(GenericChartComponent.prototype), "preCanvasDraw", this).call(this, ctx, moreProps);
  			ctx.save();
  			var _context = this.context,
  			    margin = _context.margin,
  			    ratio = _context.ratio;
  			var chartConfig = moreProps.chartConfig;
  
  
  			var canvasOriginX = 0.5 * ratio + chartConfig.origin[0] + margin.left;
  			var canvasOriginY = 0.5 * ratio + chartConfig.origin[1] + margin.top;
  
  			var _moreProps$chartConfi = moreProps.chartConfig,
  			    width = _moreProps$chartConfi.width,
  			    height = _moreProps$chartConfi.height;
  			var _props = this.props,
  			    clip = _props.clip,
  			    edgeClip = _props.edgeClip;
  
  
  			ctx.setTransform(1, 0, 0, 1, 0, 0);
  			ctx.scale(ratio, ratio);
  			if (edgeClip) {
  				ctx.beginPath();
  				ctx.rect(-1, canvasOriginY - 10, width + margin.left + margin.right + 1, height + 20);
  				ctx.clip();
  			}
  
  			ctx.translate(canvasOriginX, canvasOriginY);
  
  			if (clip) {
  				ctx.beginPath();
  				ctx.rect(-1, -1, width + 1, height + 1);
  				ctx.clip();
  			}
  		}
  	}, {
  		key: "postCanvasDraw",
  		value: function postCanvasDraw(ctx, moreProps) {
  			_get(GenericChartComponent.prototype.__proto__ || Object.getPrototypeOf(GenericChartComponent.prototype), "postCanvasDraw", this).call(this, ctx, moreProps);
  			ctx.restore();
  		}
  	}, {
  		key: "updateMoreProps",
  		value: function updateMoreProps(moreProps) {
  			var _this2 = this;
  
  			_get(GenericChartComponent.prototype.__proto__ || Object.getPrototypeOf(GenericChartComponent.prototype), "updateMoreProps", this).call(this, moreProps);
  			var chartConfigList = moreProps.chartConfig;
  
  
  			if (chartConfigList) {
  				(function () {
  					var chartId = _this2.context.chartId;
  
  					var chartConfig = chartConfigList.filter(function (each) {
  						return each.id === chartId;
  					})[0];
  					_this2.moreProps.chartConfig = chartConfig;
  				})();
  			}
  		}
  	}]);
  
  	return GenericChartComponent;
  }(__WEBPACK_IMPORTED_MODULE_1__GenericComponent__["a" /* default */]);
  
  GenericChartComponent.propTypes = __WEBPACK_IMPORTED_MODULE_1__GenericComponent__["a" /* default */].propTypes;
  
  GenericChartComponent.defaultProps = __WEBPACK_IMPORTED_MODULE_1__GenericComponent__["a" /* default */].defaultProps;
  
  GenericChartComponent.contextTypes = _extends({}, __WEBPACK_IMPORTED_MODULE_1__GenericComponent__["a" /* default */].contextTypes, {
  	canvasOriginX: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  	canvasOriginY: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  	chartId: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	chartConfig: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].object.isRequired,
  	ratio: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired
  });
  
  /* harmony default export */ __webpack_exports__["a"] = GenericChartComponent;
  
  /***/ }),
  /* 4 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__ = __webpack_require__(455);
  /* unused harmony reexport formatDefaultLocale */
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__["a"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__["b"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_locale__ = __webpack_require__(280);
  /* unused harmony reexport formatLocale */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_formatSpecifier__ = __webpack_require__(278);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_2__src_formatSpecifier__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_precisionFixed__ = __webpack_require__(459);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_3__src_precisionFixed__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_precisionPrefix__ = __webpack_require__(460);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_4__src_precisionPrefix__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_precisionRound__ = __webpack_require__(461);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_5__src_precisionRound__["a"]; });
  
  
  
  
  
  
  
  
  /***/ }),
  /* 5 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils__ = __webpack_require__(1);
  /* harmony export (immutable) */ __webpack_exports__["c"] = getAxisCanvas;
  /* harmony export (immutable) */ __webpack_exports__["b"] = getMouseCanvas;
  
  
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  
  
  
  
  var aliases = {
  	mouseleave: "mousemove", // to draw interactive after mouse exit
  	pinchzoom: "pan",
  	mousedown: "mousemove",
  	click: "mousemove",
  	dblclick: "mousemove",
  	dragstart: "drag",
  	dragend: "drag"
  };
  
  var GenericComponent = function (_Component) {
  	_inherits(GenericComponent, _Component);
  
  	function GenericComponent(props, context) {
  		_classCallCheck(this, GenericComponent);
  
  		var _this = _possibleConstructorReturn(this, (GenericComponent.__proto__ || Object.getPrototypeOf(GenericComponent)).call(this, props, context));
  
  		_this.drawOnCanvas = _this.drawOnCanvas.bind(_this);
  		_this.getMoreProps = _this.getMoreProps.bind(_this);
  		_this.listener = _this.listener.bind(_this);
  		_this.draw = _this.draw.bind(_this);
  		_this.updateMoreProps = _this.updateMoreProps.bind(_this);
  		_this.evaluateType = _this.evaluateType.bind(_this);
  		_this.isHover = _this.isHover.bind(_this);
  		_this.preCanvasDraw = _this.preCanvasDraw.bind(_this);
  		_this.postCanvasDraw = _this.postCanvasDraw.bind(_this);
  		_this.isDraggable = _this.isDraggable.bind(_this);
  
  		var generateSubscriptionId = context.generateSubscriptionId;
  
  		_this.suscriberId = generateSubscriptionId();
  
  		_this.moreProps = {};
  
  		_this.state = {
  			updateCount: 0
  		};
  		return _this;
  	}
  
  	_createClass(GenericComponent, [{
  		key: "updateMoreProps",
  		value: function updateMoreProps(moreProps) {
  			var _this2 = this;
  
  			Object.keys(moreProps).forEach(function (key) {
  				_this2.moreProps[key] = moreProps[key];
  			});
  		}
  	}, {
  		key: "listener",
  		value: function listener(type, moreProps, state, e) {
  			// console.log(e.shiftKey)
  			if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["a" /* isDefined */])(moreProps)) {
  				this.updateMoreProps(moreProps);
  			}
  			this.evaluationInProgress = true;
  			this.evaluateType(type, e);
  			this.evaluationInProgress = false;
  		}
  	}, {
  		key: "evaluateType",
  		value: function evaluateType(type, e) {
  			var newType = aliases[type] || type;
  			var proceed = this.props.drawOn.indexOf(newType) > -1;
  
  			// console.log("type ->", type, proceed);
  			if (!proceed) return;
  
  			switch (type) {
  				case "zoom":
  				case "mouseleave":
  					{
  						/*
        const drawOnMouseExitOfCanvas = this.props.drawOn.indexOf(type) > -1;
        	// when you move the mouse fast enough, that mouseleave
        // is triggered before the draw after mousemove is triggered
        // This or condition below avoids having a blank hover
        // canvas
        this.drawOnNextTick = this.drawOnNextTick
        	|| drawOnMouseExitOfCanvas;
        */
  						break;
  					}
  				case "mouseenter":
  					// DO NOT DRAW FOR THESE EVENTS
  					break;
  				case "contextmenu":
  					{
  						if (this.moreProps.hovering && this.props.onContextMenu) {
  							this.props.onContextMenu(this.getMoreProps(), e);
  						}
  						break;
  					}
  				case "mousedown":
  					{
  						if (this.moreProps.hovering) {
  							if (this.props.onMouseDown) {
  								this.props.onMouseDown(this.getMoreProps(), e);
  							}
  						}
  						break;
  					}
  				case "click":
  					{
  						if (this.moreProps.hovering) {
  							this.props.onClick(this.getMoreProps(), e);
  						} else {
  							this.props.onClickOutside(this.getMoreProps(), e);
  						}
  						break;
  					}
  				case "dragstart":
  					{
  						if (this.moreProps.hovering && this.props.selected) {
  							var amIOnTop = this.context.amIOnTop;
  
  							if (amIOnTop(this.suscriberId)) {
  								this.dragInProgress = true;
  								this.props.onDragStart(this.getMoreProps(), e);
  							}
  						}
  						this.someDragInProgress = true;
  						break;
  					}
  				case "dragend":
  					{
  						if (this.dragInProgress && this.props.onDragComplete) {
  							this.props.onDragComplete(this.getMoreProps(), e);
  						}
  						this.dragInProgress = false;
  						this.someDragInProgress = false;
  						break;
  					}
  				case "drag":
  					{
  						if (this.dragInProgress && this.props.onDrag) {
  							this.props.onDrag(this.getMoreProps(), e);
  						}
  						break;
  					}
  				case "mousemove":
  					{
  
  						var prevHover = this.moreProps.hovering;
  						this.moreProps.hovering = this.isHover(e);
  
  						var _context = this.context,
  						    _amIOnTop = _context.amIOnTop,
  						    setCursorClass = _context.setCursorClass;
  
  
  						if (this.moreProps.hovering && !this.props.selected && !prevHover && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["a" /* isDefined */])(this.props.onHover)) {
  							setCursorClass("react-stockcharts-pointer-cursor");
  							this.iSetTheCursorClass = true;
  						} else if (this.moreProps.hovering && this.props.selected && _amIOnTop(this.suscriberId)) {
  							setCursorClass(this.props.interactiveCursorClass);
  							this.iSetTheCursorClass = true;
  						} else if (prevHover && !this.moreProps.hovering && this.iSetTheCursorClass) {
  							this.iSetTheCursorClass = false;
  							setCursorClass(null);
  						}
  
  						if (this.moreProps.hovering && !prevHover) {
  							if (this.props.onHover) {
  								this.props.onHover(this.getMoreProps(), e);
  							}
  						}
  						if (prevHover && !this.moreProps.hovering) {
  							if (this.props.onBlur) {
  								this.props.onBlur(this.getMoreProps(), e);
  							}
  						}
  
  						if (this.props.onMouseMove) {
  							this.props.onMouseMove(this.getMoreProps(), e);
  						}
  						break;
  					}
  				case "dblclick":
  					{
  						if (this.moreProps.hovering && this.props.onDoubleClick) {
  							this.props.onDoubleClick(this.getMoreProps(), e);
  						}
  						break;
  					}
  				case "pan":
  					{
  						this.moreProps.hovering = false;
  						break;
  					}
  			}
  		}
  	}, {
  		key: "isHover",
  		value: function isHover(e) {
  			return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["a" /* isDefined */])(this.props.isHover) ? this.props.isHover(this.getMoreProps(), e) : false;
  		}
  	}, {
  		key: "draw",
  		value: function draw() {
  			var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { force: false },
  			    trigger = _ref.trigger,
  			    force = _ref.force;
  
  			var type = aliases[trigger] || trigger;
  			var proceed = this.props.drawOn.indexOf(type) > -1;
  
  			if (proceed || this.props.selected /* this is to draw as soon as you select */
  			|| force) {
  				var chartCanvasType = this.context.chartCanvasType;
  				var canvasDraw = this.props.canvasDraw;
  
  
  				if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["d" /* isNotDefined */])(canvasDraw) || chartCanvasType === "svg") {
  					var updateCount = this.state.updateCount;
  
  					this.setState({
  						updateCount: updateCount + 1
  					});
  				} else {
  					this.drawOnCanvas();
  				}
  			}
  		}
  	}, {
  		key: "componentWillMount",
  		value: function componentWillMount() {
  			var _context2 = this.context,
  			    subscribe = _context2.subscribe,
  			    chartId = _context2.chartId;
  			var _props = this.props,
  			    clip = _props.clip,
  			    edgeClip = _props.edgeClip;
  
  
  			subscribe(this.suscriberId, {
  				chartId: chartId, clip: clip, edgeClip: edgeClip,
  				listener: this.listener,
  				draw: this.draw,
  				isDraggable: this.isDraggable
  			});
  			this.componentWillReceiveProps(this.props, this.context);
  		}
  	}, {
  		key: "componentWillUnmount",
  		value: function componentWillUnmount() {
  			var unsubscribe = this.context.unsubscribe;
  
  			unsubscribe(this.suscriberId);
  		}
  	}, {
  		key: "componentDidMount",
  		value: function componentDidMount() {
  			this.componentDidUpdate(this.props);
  		}
  	}, {
  		key: "componentDidUpdate",
  		value: function componentDidUpdate(prevProps) {
  			var chartCanvasType = this.context.chartCanvasType;
  			var _props2 = this.props,
  			    canvasDraw = _props2.canvasDraw,
  			    selected = _props2.selected,
  			    interactiveCursorClass = _props2.interactiveCursorClass;
  
  
  			if (prevProps.selected !== selected) {
  				var setCursorClass = this.context.setCursorClass;
  
  				setCursorClass(selected && this.moreProps.hovering ? interactiveCursorClass : null);
  			}
  			if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["a" /* isDefined */])(canvasDraw) && !this.evaluationInProgress
  			// && !(this.someDragInProgress && this.props.selected)
  			/*
     prevent double draw of interactive elements
     during dragging / hover / click etc.
     */
  			&& chartCanvasType !== "svg") {
  				this.drawOnCanvas();
  			}
  		}
  	}, {
  		key: "componentWillReceiveProps",
  		value: function componentWillReceiveProps(nextProps, nextContext) {
  			var xScale = nextContext.xScale,
  			    plotData = nextContext.plotData,
  			    chartConfig = nextContext.chartConfig,
  			    getMutableState = nextContext.getMutableState;
  
  
  			this.props.debug(nextContext);
  			this.moreProps = _extends({}, this.moreProps, getMutableState(), {
  				/*
      ^ this is so
      mouseXY, currentCharts, currentItem are available to
      newly created components like MouseHoverText which
      is created right after a new interactive object is drawn
      */
  				xScale: xScale, plotData: plotData, chartConfig: chartConfig
  			});
  		}
  	}, {
  		key: "isDraggable",
  		value: function isDraggable() {
  			var draggable = this.props.selected && this.moreProps.hovering;
  
  			return draggable;
  		}
  	}, {
  		key: "getMoreProps",
  		value: function getMoreProps() {
  			var _context3 = this.context,
  			    xScale = _context3.xScale,
  			    plotData = _context3.plotData,
  			    chartConfig = _context3.chartConfig,
  			    morePropsDecorator = _context3.morePropsDecorator,
  			    xAccessor = _context3.xAccessor,
  			    displayXAccessor = _context3.displayXAccessor,
  			    width = _context3.width,
  			    height = _context3.height;
  			var _context4 = this.context,
  			    chartId = _context4.chartId,
  			    fullData = _context4.fullData;
  
  
  			var moreProps = _extends({
  				xScale: xScale, plotData: plotData, chartConfig: chartConfig,
  				xAccessor: xAccessor, displayXAccessor: displayXAccessor,
  				width: width, height: height,
  				chartId: chartId,
  				fullData: fullData
  			}, this.moreProps);
  
  			return (morePropsDecorator || __WEBPACK_IMPORTED_MODULE_1__utils__["i" /* identity */])(moreProps);
  		}
  	}, {
  		key: "preCanvasDraw",
  		value: function preCanvasDraw() {
  			// do nothing
  		}
  	}, {
  		key: "postCanvasDraw",
  		value: function postCanvasDraw() {}
  	}, {
  		key: "drawOnCanvas",
  		value: function drawOnCanvas() {
  			var _props3 = this.props,
  			    canvasDraw = _props3.canvasDraw,
  			    canvasToDraw = _props3.canvasToDraw;
  			var getCanvasContexts = this.context.getCanvasContexts;
  
  
  			var moreProps = this.getMoreProps();
  
  			var ctx = canvasToDraw(getCanvasContexts());
  
  			this.preCanvasDraw(ctx, moreProps);
  			canvasDraw(ctx, moreProps);
  			this.postCanvasDraw(ctx, moreProps);
  		}
  	}, {
  		key: "render",
  		value: function render() {
  			var _context5 = this.context,
  			    chartCanvasType = _context5.chartCanvasType,
  			    chartId = _context5.chartId;
  			var _props4 = this.props,
  			    canvasDraw = _props4.canvasDraw,
  			    clip = _props4.clip,
  			    svgDraw = _props4.svgDraw;
  
  
  			if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["a" /* isDefined */])(canvasDraw) && chartCanvasType !== "svg") {
  				return null;
  			}
  
  			var suffix = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["a" /* isDefined */])(chartId) ? "-" + chartId : "";
  
  			var style = clip ? { "clipPath": "url(#chart-area-clip" + suffix + ")" } : null;
  
  			return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  				"g",
  				{ style: style },
  				svgDraw(this.getMoreProps())
  			);
  		}
  	}]);
  
  	return GenericComponent;
  }(__WEBPACK_IMPORTED_MODULE_0_react__["Component"]);
  
  GenericComponent.propTypes = {
  	svgDraw: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	canvasDraw: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  
  	drawOn: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array.isRequired,
  
  	clip: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	edgeClip: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	interactiveCursorClass: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string,
  
  	selected: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  
  	canvasToDraw: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  
  	isHover: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  
  	onClick: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onClickOutside: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  
  	onDragStart: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onDrag: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onDragComplete: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onDoubleClick: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onContextMenu: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onMouseMove: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onMouseDown: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onHover: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onBlur: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  
  	debug: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func
  };
  
  GenericComponent.defaultProps = {
  	svgDraw: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["b" /* functor */])(null),
  	draw: [],
  	canvasToDraw: function canvasToDraw(contexts) {
  		return contexts.mouseCoord;
  	},
  	clip: true,
  	edgeClip: false,
  	selected: false,
  
  	onClickOutside: __WEBPACK_IMPORTED_MODULE_1__utils__["j" /* noop */],
  	onClick: __WEBPACK_IMPORTED_MODULE_1__utils__["j" /* noop */],
  	onDragStart: __WEBPACK_IMPORTED_MODULE_1__utils__["j" /* noop */],
  	onMouseMove: __WEBPACK_IMPORTED_MODULE_1__utils__["j" /* noop */],
  	onMouseDown: __WEBPACK_IMPORTED_MODULE_1__utils__["j" /* noop */],
  	debug: __WEBPACK_IMPORTED_MODULE_1__utils__["j" /* noop */]
  };
  
  GenericComponent.childContextTypes = {
  	morePropsDecorator: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func
  };
  
  GenericComponent.contextTypes = {
  	width: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	height: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	margin: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].object.isRequired,
  	chartId: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  	getCanvasContexts: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  
  	chartCanvasType: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string,
  	xScale: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	xAccessor: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	displayXAccessor: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	plotData: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array.isRequired,
  	fullData: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array.isRequired,
  
  	chartConfig: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].oneOfType([__WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array, __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].object]).isRequired,
  
  	morePropsDecorator: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	generateSubscriptionId: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	getMutableState: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  
  	amIOnTop: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	subscribe: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	unsubscribe: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	setCursorClass: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired
  };
  
  /* harmony default export */ __webpack_exports__["a"] = GenericComponent;
  
  function getAxisCanvas(contexts) {
  	return contexts.axes;
  }
  
  function getMouseCanvas(contexts) {
  	return contexts.mouseCoord;
  }
  
  /***/ }),
  /* 6 */,
  /* 7 */,
  /* 8 */,
  /* 9 */,
  /* 10 */,
  /* 11 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__lib_ChartCanvas__ = __webpack_require__(356);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ChartCanvas", function() { return __WEBPACK_IMPORTED_MODULE_0__lib_ChartCanvas__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__lib_Chart__ = __webpack_require__(253);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Chart", function() { return __WEBPACK_IMPORTED_MODULE_1__lib_Chart__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__lib_GenericChartComponent__ = __webpack_require__(3);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "GenericChartComponent", function() { return __WEBPACK_IMPORTED_MODULE_2__lib_GenericChartComponent__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__lib_GenericComponent__ = __webpack_require__(5);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "GenericComponent", function() { return __WEBPACK_IMPORTED_MODULE_3__lib_GenericComponent__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__lib_BackgroundText__ = __webpack_require__(355);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "BackgroundText", function() { return __WEBPACK_IMPORTED_MODULE_4__lib_BackgroundText__["a"]; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; });
  
  
  // common components
  
  
  
  
  
  
  
  var version = "0.6.1";
  
  /*
  // chart types & Series
  import * as series from "./lib/series";
  import * as scale from "./lib/scale";
  
  import * as coordinates from "./lib/coordinates";
  import * as indicator from "./lib/indicator";
  import * as algorithm from "./lib/algorithm";
  
  import * as annotation from "./lib/annotation";
  
  import * as axes from "./lib/axes";
  import * as tooltip from "./lib/tooltip";
  import * as helper from "./lib/helper";
  
  import * as interactive from "./lib/interactive";
  import * as utils from "./lib/utils";
  
  */
  
  /***/ }),
  /* 12 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_bisect__ = __webpack_require__(266);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_0__src_bisect__["a"]; });
  /* unused harmony reexport bisectRight */
  /* unused harmony reexport bisectLeft */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_ascending__ = __webpack_require__(64);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ascending__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_bisector__ = __webpack_require__(267);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__src_bisector__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_descending__ = __webpack_require__(433);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return __WEBPACK_IMPORTED_MODULE_3__src_descending__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_deviation__ = __webpack_require__(268);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return __WEBPACK_IMPORTED_MODULE_4__src_deviation__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_extent__ = __webpack_require__(269);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return __WEBPACK_IMPORTED_MODULE_5__src_extent__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_histogram__ = __webpack_require__(434);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return __WEBPACK_IMPORTED_MODULE_6__src_histogram__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_threshold_freedmanDiaconis__ = __webpack_require__(445);
  /* unused harmony reexport thresholdFreedmanDiaconis */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_threshold_scott__ = __webpack_require__(446);
  /* unused harmony reexport thresholdScott */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_threshold_sturges__ = __webpack_require__(272);
  /* unused harmony reexport thresholdSturges */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_max__ = __webpack_require__(436);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return __WEBPACK_IMPORTED_MODULE_10__src_max__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_mean__ = __webpack_require__(437);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return __WEBPACK_IMPORTED_MODULE_11__src_mean__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_median__ = __webpack_require__(438);
  /* unused harmony reexport median */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_merge__ = __webpack_require__(439);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_13__src_merge__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_min__ = __webpack_require__(270);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_14__src_min__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__src_pairs__ = __webpack_require__(440);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return __WEBPACK_IMPORTED_MODULE_15__src_pairs__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__src_permute__ = __webpack_require__(441);
  /* unused harmony reexport permute */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__src_quantile__ = __webpack_require__(180);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_17__src_quantile__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__src_range__ = __webpack_require__(271);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_18__src_range__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__src_scan__ = __webpack_require__(442);
  /* unused harmony reexport scan */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__src_shuffle__ = __webpack_require__(443);
  /* unused harmony reexport shuffle */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__src_sum__ = __webpack_require__(444);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return __WEBPACK_IMPORTED_MODULE_21__src_sum__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__src_ticks__ = __webpack_require__(273);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_22__src_ticks__["a"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_22__src_ticks__["b"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__src_transpose__ = __webpack_require__(274);
  /* unused harmony reexport transpose */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__src_variance__ = __webpack_require__(275);
  /* unused harmony reexport variance */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__src_zip__ = __webpack_require__(447);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return __WEBPACK_IMPORTED_MODULE_25__src_zip__["a"]; });
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  /***/ }),
  /* 13 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__ = __webpack_require__(245);
  /* unused harmony reexport timeFormatDefaultLocale */
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__["d"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__["a"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__src_defaultLocale__["b"]; });
  /* unused harmony reexport utcParse */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_locale__ = __webpack_require__(297);
  /* unused harmony reexport timeFormatLocale */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_isoFormat__ = __webpack_require__(296);
  /* unused harmony reexport isoFormat */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_isoParse__ = __webpack_require__(523);
  /* unused harmony reexport isoParse */
  
  
  
  
  
  
  /***/ }),
  /* 14 */,
  /* 15 */,
  /* 16 */,
  /* 17 */,
  /* 18 */,
  /* 19 */,
  /* 20 */,
  /* 21 */,
  /* 22 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_nest__ = __webpack_require__(450);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__src_nest__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_set__ = __webpack_require__(451);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_1__src_set__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_map__ = __webpack_require__(181);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_2__src_map__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_keys__ = __webpack_require__(449);
  /* unused harmony reexport keys */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_values__ = __webpack_require__(452);
  /* unused harmony reexport values */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_entries__ = __webpack_require__(448);
  /* unused harmony reexport entries */
  
  
  
  
  
  
  
  
  /***/ }),
  /* 23 */,
  /* 24 */,
  /* 25 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_band__ = __webpack_require__(472);
  /* unused harmony reexport scaleBand */
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_0__src_band__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_identity__ = __webpack_require__(478);
  /* unused harmony reexport scaleIdentity */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_linear__ = __webpack_require__(79);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_2__src_linear__["b"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_log__ = __webpack_require__(479);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_3__src_log__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_ordinal__ = __webpack_require__(290);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_4__src_ordinal__["a"]; });
  /* unused harmony reexport scaleImplicit */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_pow__ = __webpack_require__(480);
  /* unused harmony reexport scalePow */
  /* unused harmony reexport scaleSqrt */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_quantile__ = __webpack_require__(481);
  /* unused harmony reexport scaleQuantile */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_quantize__ = __webpack_require__(482);
  /* unused harmony reexport scaleQuantize */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_threshold__ = __webpack_require__(485);
  /* unused harmony reexport scaleThreshold */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_time__ = __webpack_require__(291);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_9__src_time__["b"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_utcTime__ = __webpack_require__(487);
  /* unused harmony reexport scaleUtc */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_category10__ = __webpack_require__(473);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_11__src_category10__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_category20b__ = __webpack_require__(475);
  /* unused harmony reexport schemeCategory20b */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_category20c__ = __webpack_require__(476);
  /* unused harmony reexport schemeCategory20c */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_category20__ = __webpack_require__(474);
  /* unused harmony reexport schemeCategory20 */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__src_cubehelix__ = __webpack_require__(477);
  /* unused harmony reexport interpolateCubehelixDefault */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__src_rainbow__ = __webpack_require__(483);
  /* unused harmony reexport interpolateRainbow */
  /* unused harmony reexport interpolateWarm */
  /* unused harmony reexport interpolateCool */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__src_viridis__ = __webpack_require__(488);
  /* unused harmony reexport interpolateViridis */
  /* unused harmony reexport interpolateMagma */
  /* unused harmony reexport interpolateInferno */
  /* unused harmony reexport interpolatePlasma */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__src_sequential__ = __webpack_require__(484);
  /* unused harmony reexport scaleSequential */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  /***/ }),
  /* 26 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (immutable) */ __webpack_exports__["a"] = newInterval;
  var t0 = new Date,
      t1 = new Date;
  
  function newInterval(floori, offseti, count, field) {
  
    function interval(date) {
      return floori(date = new Date(+date)), date;
    }
  
    interval.floor = interval;
  
    interval.ceil = function(date) {
      return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
    };
  
    interval.round = function(date) {
      var d0 = interval(date),
          d1 = interval.ceil(date);
      return date - d0 < d1 - date ? d0 : d1;
    };
  
    interval.offset = function(date, step) {
      return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
    };
  
    interval.range = function(start, stop, step) {
      var range = [];
      start = interval.ceil(start);
      step = step == null ? 1 : Math.floor(step);
      if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
      do range.push(new Date(+start)); while (offseti(start, step), floori(start), start < stop)
      return range;
    };
  
    interval.filter = function(test) {
      return newInterval(function(date) {
        if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
      }, function(date, step) {
        if (date >= date) while (--step >= 0) while (offseti(date, 1), !test(date)) {} // eslint-disable-line no-empty
      });
    };
  
    if (count) {
      interval.count = function(start, end) {
        t0.setTime(+start), t1.setTime(+end);
        floori(t0), floori(t1);
        return Math.floor(count(t0, t1));
      };
  
      interval.every = function(step) {
        step = Math.floor(step);
        return !isFinite(step) || !(step > 0) ? null
            : !(step > 1) ? interval
            : interval.filter(field
                ? function(d) { return field(d) % step === 0; }
                : function(d) { return interval.count(0, d) % step === 0; });
      };
    }
  
    return interval;
  }
  
  
  /***/ }),
  /* 27 */,
  /* 28 */,
  /* 29 */,
  /* 30 */,
  /* 31 */,
  /* 32 */,
  /* 33 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__select__ = __webpack_require__(515);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__selectAll__ = __webpack_require__(516);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__filter__ = __webpack_require__(504);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__data__ = __webpack_require__(498);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__enter__ = __webpack_require__(293);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__exit__ = __webpack_require__(503);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__merge__ = __webpack_require__(508);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__order__ = __webpack_require__(511);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__sort__ = __webpack_require__(518);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__call__ = __webpack_require__(496);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__nodes__ = __webpack_require__(510);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__node__ = __webpack_require__(509);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__size__ = __webpack_require__(517);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__empty__ = __webpack_require__(502);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__each__ = __webpack_require__(501);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__attr__ = __webpack_require__(495);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__style__ = __webpack_require__(519);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__property__ = __webpack_require__(512);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__classed__ = __webpack_require__(497);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__text__ = __webpack_require__(520);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__html__ = __webpack_require__(505);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__raise__ = __webpack_require__(513);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__lower__ = __webpack_require__(507);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__append__ = __webpack_require__(494);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__insert__ = __webpack_require__(506);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__remove__ = __webpack_require__(514);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__datum__ = __webpack_require__(499);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__on__ = __webpack_require__(218);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__dispatch__ = __webpack_require__(500);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return root; });
  /* harmony export (immutable) */ __webpack_exports__["a"] = Selection;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  var root = [null];
  
  function Selection(groups, parents) {
    this._groups = groups;
    this._parents = parents;
  }
  
  function selection() {
    return new Selection([[document.documentElement]], root);
  }
  
  Selection.prototype = selection.prototype = {
    constructor: Selection,
    select: __WEBPACK_IMPORTED_MODULE_0__select__["a" /* default */],
    selectAll: __WEBPACK_IMPORTED_MODULE_1__selectAll__["a" /* default */],
    filter: __WEBPACK_IMPORTED_MODULE_2__filter__["a" /* default */],
    data: __WEBPACK_IMPORTED_MODULE_3__data__["a" /* default */],
    enter: __WEBPACK_IMPORTED_MODULE_4__enter__["a" /* default */],
    exit: __WEBPACK_IMPORTED_MODULE_5__exit__["a" /* default */],
    merge: __WEBPACK_IMPORTED_MODULE_6__merge__["a" /* default */],
    order: __WEBPACK_IMPORTED_MODULE_7__order__["a" /* default */],
    sort: __WEBPACK_IMPORTED_MODULE_8__sort__["a" /* default */],
    call: __WEBPACK_IMPORTED_MODULE_9__call__["a" /* default */],
    nodes: __WEBPACK_IMPORTED_MODULE_10__nodes__["a" /* default */],
    node: __WEBPACK_IMPORTED_MODULE_11__node__["a" /* default */],
    size: __WEBPACK_IMPORTED_MODULE_12__size__["a" /* default */],
    empty: __WEBPACK_IMPORTED_MODULE_13__empty__["a" /* default */],
    each: __WEBPACK_IMPORTED_MODULE_14__each__["a" /* default */],
    attr: __WEBPACK_IMPORTED_MODULE_15__attr__["a" /* default */],
    style: __WEBPACK_IMPORTED_MODULE_16__style__["a" /* default */],
    property: __WEBPACK_IMPORTED_MODULE_17__property__["a" /* default */],
    classed: __WEBPACK_IMPORTED_MODULE_18__classed__["a" /* default */],
    text: __WEBPACK_IMPORTED_MODULE_19__text__["a" /* default */],
    html: __WEBPACK_IMPORTED_MODULE_20__html__["a" /* default */],
    raise: __WEBPACK_IMPORTED_MODULE_21__raise__["a" /* default */],
    lower: __WEBPACK_IMPORTED_MODULE_22__lower__["a" /* default */],
    append: __WEBPACK_IMPORTED_MODULE_23__append__["a" /* default */],
    insert: __WEBPACK_IMPORTED_MODULE_24__insert__["a" /* default */],
    remove: __WEBPACK_IMPORTED_MODULE_25__remove__["a" /* default */],
    datum: __WEBPACK_IMPORTED_MODULE_26__datum__["a" /* default */],
    on: __WEBPACK_IMPORTED_MODULE_27__on__["b" /* default */],
    dispatch: __WEBPACK_IMPORTED_MODULE_28__dispatch__["a" /* default */]
  };
  
  /* unused harmony default export */ var _unused_webpack_default_export = selection;
  
  
  /***/ }),
  /* 34 */,
  /* 35 */,
  /* 36 */,
  /* 37 */,
  /* 38 */,
  /* 39 */,
  /* 40 */,
  /* 41 */,
  /* 42 */,
  /* 43 */,
  /* 44 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return durationSecond; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return durationMinute; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return durationHour; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return durationDay; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return durationWeek; });
  var durationSecond = 1e3;
  var durationMinute = 6e4;
  var durationHour = 36e5;
  var durationDay = 864e5;
  var durationWeek = 6048e5;
  
  
  /***/ }),
  /* 45 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_color__ = __webpack_require__(182);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_0__src_color__["h"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_0__src_color__["g"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_0__src_color__["f"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_lab__ = __webpack_require__(454);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_1__src_lab__["b"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__src_lab__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_cubehelix__ = __webpack_require__(453);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_2__src_cubehelix__["a"]; });
  
  
  
  
  
  /***/ }),
  /* 46 */,
  /* 47 */,
  /* 48 */,
  /* 49 */,
  /* 50 */,
  /* 51 */,
  /* 52 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3_collection__ = __webpack_require__(22);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_flattendeep__ = __webpack_require__(594);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_flattendeep___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_flattendeep__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Chart__ = __webpack_require__(253);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__index__ = __webpack_require__(1);
  /* unused harmony export getChartOrigin */
  /* unused harmony export getDimensions */
  /* harmony export (immutable) */ __webpack_exports__["c"] = getNewChartConfig;
  /* harmony export (immutable) */ __webpack_exports__["d"] = getCurrentCharts;
  /* harmony export (immutable) */ __webpack_exports__["b"] = getChartConfigWithUpdatedYScales;
  /* harmony export (immutable) */ __webpack_exports__["a"] = getCurrentItem;
  
  
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  
  
  
  
  
  
  
  
  
  
  function getChartOrigin(origin, contextWidth, contextHeight) {
  	var originCoordinates = typeof origin === "function" ? origin(contextWidth, contextHeight) : origin;
  	return originCoordinates;
  }
  
  function getDimensions(_ref, chartProps) {
  	var width = _ref.width,
  	    height = _ref.height;
  
  
  	var chartWidth = chartProps.width || width;
  	var chartHeight = chartProps.height || height;
  
  	return {
  		availableWidth: width,
  		availableHeight: height,
  		width: chartWidth,
  		height: chartHeight
  	};
  }
  
  function values(func) {
  	return function (d) {
  		var obj = func(d);
  		return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__index__["C" /* isObject */])(obj) ? Object.keys(obj).map(function (key) {
  			return obj[key];
  		}) : obj;
  	};
  }
  
  function getNewChartConfig(innerDimension, children) {
  
  	return __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.map(children, function (each) {
  		if (each.type === __WEBPACK_IMPORTED_MODULE_4__Chart__["a" /* default */]) {
  			var chartProps = _extends({}, __WEBPACK_IMPORTED_MODULE_4__Chart__["a" /* default */].defaultProps, each.props);
  			var id = chartProps.id,
  			    origin = chartProps.origin,
  			    padding = chartProps.padding,
  			    yExtentsProp = chartProps.yExtents,
  			    yScale = chartProps.yScale,
  			    flipYScale = chartProps.flipYScale,
  			    yExtentsCalculator = chartProps.yExtentsCalculator;
  
  			var _getDimensions = getDimensions(innerDimension, chartProps),
  			    width = _getDimensions.width,
  			    height = _getDimensions.height,
  			    availableWidth = _getDimensions.availableWidth,
  			    availableHeight = _getDimensions.availableHeight;
  
  			var yPan = chartProps.yPan;
  			// var { yMousePointerRectWidth: rectWidth, yMousePointerRectHeight: rectHeight, yMousePointerArrowWidth: arrowWidth } = each.props;
  			// var mouseCoordinates = { at, yDisplayFormat, rectHeight, rectWidth, arrowWidth };
  
  			var yExtents = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__index__["a" /* isDefined */])(yExtentsProp) ? (Array.isArray(yExtentsProp) ? yExtentsProp : [yExtentsProp]).map(__WEBPACK_IMPORTED_MODULE_5__index__["b" /* functor */]) : undefined;
  			// console.log(yExtentsProp, yExtents);
  			return {
  				id: id,
  				origin: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__index__["b" /* functor */])(origin)(availableWidth, availableHeight),
  				padding: padding,
  				yExtents: yExtents,
  				yExtentsCalculator: yExtentsCalculator,
  				flipYScale: flipYScale,
  				yScale: yScale,
  				yPan: yPan,
  				// mouseCoordinates,
  				width: width,
  				height: height
  			};
  		}
  		return undefined;
  	}).filter(function (each) {
  		return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__index__["a" /* isDefined */])(each);
  	});
  }
  function getCurrentCharts(chartConfig, mouseXY) {
  	var currentCharts = chartConfig.filter(function (eachConfig) {
  		var top = eachConfig.origin[1];
  		var bottom = top + eachConfig.height;
  		return mouseXY[1] > top && mouseXY[1] < bottom;
  	}).map(function (config) {
  		return config.id;
  	});
  
  	return currentCharts;
  }
  
  function setRange(scale, height, padding, flipYScale) {
  	if (scale.rangeRoundPoints) {
  		if (isNaN(padding)) throw new Error("padding has to be a number for ordinal scale");
  		scale.rangeRoundPoints(flipYScale ? [0, height] : [height, 0], padding);
  	} else {
  		var _ref2 = isNaN(padding) ? padding : { top: padding, bottom: padding },
  		    top = _ref2.top,
  		    bottom = _ref2.bottom;
  
  		scale.range(flipYScale ? [top, height - bottom] : [height - bottom, top]);
  	}
  	return scale;
  }
  
  function yDomainFromYExtents(yExtents, yScale, plotData) {
  	var yValues = yExtents.map(function (eachExtent) {
  		return plotData.map(values(eachExtent));
  	});
  
  	var allYValues = __WEBPACK_IMPORTED_MODULE_3_lodash_flattendeep___default()(yValues);
  
  	var realYDomain = yScale.invert ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_array__["q" /* extent */])(allYValues) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_d3_collection__["c" /* set */])(allYValues).values();
  
  	return realYDomain;
  }
  
  function getChartConfigWithUpdatedYScales(chartConfig, _ref3, xDomain, dy, chartsToPan) {
  	var plotData = _ref3.plotData,
  	    xAccessor = _ref3.xAccessor,
  	    displayXAccessor = _ref3.displayXAccessor,
  	    fullData = _ref3.fullData;
  
  
  	var yDomains = chartConfig.map(function (_ref4) {
  		var yExtentsCalculator = _ref4.yExtentsCalculator,
  		    yExtents = _ref4.yExtents,
  		    yScale = _ref4.yScale;
  
  
  		var realYDomain = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__index__["a" /* isDefined */])(yExtentsCalculator) ? yExtentsCalculator({ plotData: plotData, xDomain: xDomain, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }) : yDomainFromYExtents(yExtents, yScale, plotData);
  
  		var yDomainDY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__index__["a" /* isDefined */])(dy) ? yScale.range().map(function (each) {
  			return each - dy;
  		}).map(yScale.invert) : yScale.domain();
  		return {
  			realYDomain: realYDomain,
  			yDomainDY: yDomainDY,
  			prevYDomain: yScale.domain()
  		};
  	});
  
  	var combine = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__index__["o" /* zipper */])().combine(function (config, _ref5) {
  		var realYDomain = _ref5.realYDomain,
  		    yDomainDY = _ref5.yDomainDY,
  		    prevYDomain = _ref5.prevYDomain;
  		var id = config.id,
  		    padding = config.padding,
  		    height = config.height,
  		    yScale = config.yScale,
  		    yPan = config.yPan,
  		    flipYScale = config.flipYScale,
  		    _config$yPanEnabled = config.yPanEnabled,
  		    yPanEnabled = _config$yPanEnabled === undefined ? false : _config$yPanEnabled;
  
  
  		var another = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__index__["a" /* isDefined */])(chartsToPan) ? chartsToPan.indexOf(id) > -1 : true;
  		var domain = yPan && yPanEnabled ? another ? yDomainDY : prevYDomain : realYDomain;
  		// console.log(yPan, yPanEnabled, properYDomain, domain, realYDomain)
  		return _extends({}, config, {
  			yScale: setRange(yScale.copy().domain(domain), height, padding, flipYScale),
  			realYDomain: realYDomain
  		});
  		// return { ...config, yScale: yScale.copy().domain(domain).range([height - padding, padding]) };
  	});
  
  	var updatedChartConfig = combine(chartConfig, yDomains);
  	return updatedChartConfig;
  }
  
  function getCurrentItem(xScale, xAccessor, mouseXY, plotData) {
  	var xValue = void 0,
  	    item = void 0;
  	if (xScale.invert) {
  		xValue = xScale.invert(mouseXY[0]);
  		item = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__index__["D" /* getClosestItem */])(plotData, xValue, xAccessor);
  	} else {
  		var d = xScale.range().map(function (d, idx) {
  			return { x: Math.abs(d - mouseXY[0]), idx: idx };
  		}).reduce(function (a, b) {
  			return a.x < b.x ? a : b;
  		});
  		item = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__index__["a" /* isDefined */])(d) ? plotData[d.idx] : plotData[0];
  		// console.log(d, item);
  	}
  	return item;
  }
  
  /***/ }),
  /* 53 */,
  /* 54 */,
  /* 55 */,
  /* 56 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return map; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return slice; });
  var array = Array.prototype;
  
  var map = array.map;
  var slice = array.slice;
  
  
  /***/ }),
  /* 57 */,
  /* 58 */,
  /* 59 */,
  /* 60 */,
  /* 61 */,
  /* 62 */,
  /* 63 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function () {};
  
  /***/ }),
  /* 64 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(a, b) {
    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
  };
  
  
  /***/ }),
  /* 65 */,
  /* 66 */,
  /* 67 */,
  /* 68 */,
  /* 69 */,
  /* 70 */,
  /* 71 */,
  /* 72 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  
  
  /* harmony default export */ __webpack_exports__["a"] = function (d) {
    return d;
  };
  
  /***/ }),
  /* 73 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(x) {
    return x === null ? NaN : +x;
  };
  
  
  /***/ }),
  /* 74 */,
  /* 75 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_value__ = __webpack_require__(197);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__src_value__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_array__ = __webpack_require__(281);
  /* unused harmony reexport interpolateArray */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_basis__ = __webpack_require__(196);
  /* unused harmony reexport interpolateBasis */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_basisClosed__ = __webpack_require__(282);
  /* unused harmony reexport interpolateBasisClosed */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_date__ = __webpack_require__(284);
  /* unused harmony reexport interpolateDate */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_number__ = __webpack_require__(98);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_5__src_number__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_object__ = __webpack_require__(285);
  /* unused harmony reexport interpolateObject */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_round__ = __webpack_require__(467);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_7__src_round__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_string__ = __webpack_require__(287);
  /* unused harmony reexport interpolateString */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_transform_index__ = __webpack_require__(469);
  /* unused harmony reexport interpolateTransformCss */
  /* unused harmony reexport interpolateTransformSvg */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_zoom__ = __webpack_require__(471);
  /* unused harmony reexport interpolateZoom */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_rgb__ = __webpack_require__(286);
  /* unused harmony reexport interpolateRgb */
  /* unused harmony reexport interpolateRgbBasis */
  /* unused harmony reexport interpolateRgbBasisClosed */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_hsl__ = __webpack_require__(464);
  /* unused harmony reexport interpolateHsl */
  /* unused harmony reexport interpolateHslLong */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_lab__ = __webpack_require__(465);
  /* unused harmony reexport interpolateLab */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_hcl__ = __webpack_require__(463);
  /* unused harmony reexport interpolateHcl */
  /* unused harmony reexport interpolateHclLong */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__src_cubehelix__ = __webpack_require__(462);
  /* unused harmony reexport interpolateCubehelix */
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_15__src_cubehelix__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__src_quantize__ = __webpack_require__(466);
  /* unused harmony reexport quantize */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  /***/ }),
  /* 76 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constant__ = __webpack_require__(283);
  /* harmony export (immutable) */ __webpack_exports__["b"] = hue;
  /* harmony export (immutable) */ __webpack_exports__["c"] = gamma;
  /* harmony export (immutable) */ __webpack_exports__["a"] = nogamma;
  
  
  function linear(a, d) {
    return function(t) {
      return a + t * d;
    };
  }
  
  function exponential(a, b, y) {
    return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
      return Math.pow(a + t * b, y);
    };
  }
  
  function hue(a, b) {
    var d = b - a;
    return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__["a" /* default */])(isNaN(a) ? b : a);
  }
  
  function gamma(y) {
    return (y = +y) === 1 ? nogamma : function(a, b) {
      return b - a ? exponential(a, b, y) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__["a" /* default */])(isNaN(a) ? b : a);
    };
  }
  
  function nogamma(a, b) {
    var d = b - a;
    return d ? linear(a, d) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__["a" /* default */])(isNaN(a) ? b : a);
  }
  
  
  /***/ }),
  /* 77 */,
  /* 78 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(s) {
    return s.match(/.{6}/g).map(function(x) {
      return "#" + x;
    });
  };
  
  
  /***/ }),
  /* 79 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__ = __webpack_require__(75);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__continuous__ = __webpack_require__(99);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__tickFormat__ = __webpack_require__(486);
  /* harmony export (immutable) */ __webpack_exports__["a"] = linearish;
  /* harmony export (immutable) */ __webpack_exports__["b"] = linear;
  
  
  
  
  
  function linearish(scale) {
    var domain = scale.domain;
  
    scale.ticks = function(count) {
      var d = domain();
      return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["c" /* ticks */])(d[0], d[d.length - 1], count == null ? 10 : count);
    };
  
    scale.tickFormat = function(count, specifier) {
      return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__tickFormat__["a" /* default */])(domain(), count, specifier);
    };
  
    scale.nice = function(count) {
      var d = domain(),
          i = d.length - 1,
          n = count == null ? 10 : count,
          start = d[0],
          stop = d[i],
          step = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["d" /* tickStep */])(start, stop, n);
  
      if (step) {
        step = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["d" /* tickStep */])(Math.floor(start / step) * step, Math.ceil(stop / step) * step, n);
        d[0] = Math.floor(start / step) * step;
        d[i] = Math.ceil(stop / step) * step;
        domain(d);
      }
  
      return scale;
    };
  
    return scale;
  }
  
  function linear() {
    var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__continuous__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_2__continuous__["b" /* deinterpolateLinear */], __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__["a" /* interpolateNumber */]);
  
    scale.copy = function() {
      return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__continuous__["c" /* copy */])(scale, linear());
    };
  
    return linearish(scale);
  }
  
  
  /***/ }),
  /* 80 */,
  /* 81 */,
  /* 82 */,
  /* 83 */,
  /* 84 */,
  /* 85 */,
  /* 86 */,
  /* 87 */,
  /* 88 */,
  /* 89 */,
  /* 90 */,
  /* 91 */,
  /* 92 */,
  /* 93 */,
  /* 94 */,
  /* 95 */,
  /* 96 */,
  /* 97 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatDecimal__ = __webpack_require__(195);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(x) {
    return x = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__["a" /* default */])(Math.abs(x)), x ? x[1] : NaN;
  };
  
  
  /***/ }),
  /* 98 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(a, b) {
    return a = +a, b -= a, function(t) {
      return a + b * t;
    };
  };
  
  
  /***/ }),
  /* 99 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__ = __webpack_require__(75);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__array__ = __webpack_require__(56);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constant__ = __webpack_require__(212);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__number__ = __webpack_require__(289);
  /* harmony export (immutable) */ __webpack_exports__["b"] = deinterpolateLinear;
  /* harmony export (immutable) */ __webpack_exports__["c"] = copy;
  /* harmony export (immutable) */ __webpack_exports__["a"] = continuous;
  
  
  
  
  
  
  var unit = [0, 1];
  
  function deinterpolateLinear(a, b) {
    return (b -= (a = +a))
        ? function(x) { return (x - a) / b; }
        : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__constant__["a" /* default */])(b);
  }
  
  function deinterpolateClamp(deinterpolate) {
    return function(a, b) {
      var d = deinterpolate(a = +a, b = +b);
      return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };
    };
  }
  
  function reinterpolateClamp(reinterpolate) {
    return function(a, b) {
      var r = reinterpolate(a = +a, b = +b);
      return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };
    };
  }
  
  function bimap(domain, range, deinterpolate, reinterpolate) {
    var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
    if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);
    else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);
    return function(x) { return r0(d0(x)); };
  }
  
  function polymap(domain, range, deinterpolate, reinterpolate) {
    var j = Math.min(domain.length, range.length) - 1,
        d = new Array(j),
        r = new Array(j),
        i = -1;
  
    // Reverse descending domains.
    if (domain[j] < domain[0]) {
      domain = domain.slice().reverse();
      range = range.slice().reverse();
    }
  
    while (++i < j) {
      d[i] = deinterpolate(domain[i], domain[i + 1]);
      r[i] = reinterpolate(range[i], range[i + 1]);
    }
  
    return function(x) {
      var i = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["e" /* bisect */])(domain, x, 1, j) - 1;
      return r[i](d[i](x));
    };
  }
  
  function copy(source, target) {
    return target
        .domain(source.domain())
        .range(source.range())
        .interpolate(source.interpolate())
        .clamp(source.clamp());
  }
  
  // deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
  // reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].
  function continuous(deinterpolate, reinterpolate) {
    var domain = unit,
        range = unit,
        interpolate = __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__["b" /* interpolate */],
        clamp = false,
        piecewise,
        output,
        input;
  
    function rescale() {
      piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;
      output = input = null;
      return scale;
    }
  
    function scale(x) {
      return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);
    }
  
    scale.invert = function(y) {
      return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);
    };
  
    scale.domain = function(_) {
      return arguments.length ? (domain = __WEBPACK_IMPORTED_MODULE_2__array__["a" /* map */].call(_, __WEBPACK_IMPORTED_MODULE_4__number__["a" /* default */]), rescale()) : domain.slice();
    };
  
    scale.range = function(_) {
      return arguments.length ? (range = __WEBPACK_IMPORTED_MODULE_2__array__["b" /* slice */].call(_), rescale()) : range.slice();
    };
  
    scale.rangeRound = function(_) {
      return range = __WEBPACK_IMPORTED_MODULE_2__array__["b" /* slice */].call(_), interpolate = __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__["c" /* interpolateRound */], rescale();
    };
  
    scale.clamp = function(_) {
      return arguments.length ? (clamp = !!_, rescale()) : clamp;
    };
  
    scale.interpolate = function(_) {
      return arguments.length ? (interpolate = _, rescale()) : interpolate;
    };
  
    return rescale();
  }
  
  
  /***/ }),
  /* 100 */,
  /* 101 */,
  /* 102 */,
  /* 103 */,
  /* 104 */,
  /* 105 */,
  /* 106 */,
  /* 107 */,
  /* 108 */,
  /* 109 */,
  /* 110 */,
  /* 111 */,
  /* 112 */,
  /* 113 */,
  /* 114 */,
  /* 115 */,
  /* 116 */,
  /* 117 */,
  /* 118 */,
  /* 119 */,
  /* 120 */,
  /* 121 */,
  /* 122 */,
  /* 123 */,
  /* 124 */,
  /* 125 */,
  /* 126 */,
  /* 127 */,
  /* 128 */,
  /* 129 */,
  /* 130 */,
  /* 131 */,
  /* 132 */,
  /* 133 */,
  /* 134 */,
  /* 135 */,
  /* 136 */,
  /* 137 */,
  /* 138 */,
  /* 139 */,
  /* 140 */,
  /* 141 */,
  /* 142 */,
  /* 143 */,
  /* 144 */,
  /* 145 */,
  /* 146 */,
  /* 147 */,
  /* 148 */,
  /* 149 */,
  /* 150 */,
  /* 151 */,
  /* 152 */,
  /* 153 */,
  /* 154 */,
  /* 155 */,
  /* 156 */,
  /* 157 */,
  /* 158 */,
  /* 159 */,
  /* 160 */,
  /* 161 */,
  /* 162 */,
  /* 163 */,
  /* 164 */,
  /* 165 */,
  /* 166 */,
  /* 167 */,
  /* 168 */,
  /* 169 */,
  /* 170 */,
  /* 171 */,
  /* 172 */,
  /* 173 */,
  /* 174 */,
  /* 175 */,
  /* 176 */,
  /* 177 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__shallowEqual__ = __webpack_require__(263);
  
  
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  
  
  
  var PureComponent = function (_Component) {
  	_inherits(PureComponent, _Component);
  
  	function PureComponent() {
  		_classCallCheck(this, PureComponent);
  
  		return _possibleConstructorReturn(this, (PureComponent.__proto__ || Object.getPrototypeOf(PureComponent)).apply(this, arguments));
  	}
  
  	_createClass(PureComponent, [{
  		key: "shouldComponentUpdate",
  		value: function shouldComponentUpdate(nextProps, nextState, nextContext) {
  			return !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__shallowEqual__["a" /* default */])(this.props, nextProps) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__shallowEqual__["a" /* default */])(this.state, nextState) || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__shallowEqual__["a" /* default */])(this.context, nextContext);
  		}
  	}]);
  
  	return PureComponent;
  }(__WEBPACK_IMPORTED_MODULE_0_react__["Component"]);
  
  /* harmony default export */ __webpack_exports__["a"] = PureComponent;
  
  /***/ }),
  /* 178 */,
  /* 179 */,
  /* 180 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(73);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(array, p, f) {
    if (f == null) f = __WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */];
    if (!(n = array.length)) return;
    if ((p = +p) <= 0 || n < 2) return +f(array[0], 0, array);
    if (p >= 1) return +f(array[n - 1], n - 1, array);
    var n,
        h = (n - 1) * p,
        i = Math.floor(h),
        a = +f(array[i], i, array),
        b = +f(array[i + 1], i + 1, array);
    return a + (b - a) * (h - i);
  };
  
  
  /***/ }),
  /* 181 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return prefix; });
  var prefix = "$";
  
  function Map() {}
  
  Map.prototype = map.prototype = {
    constructor: Map,
    has: function(key) {
      return (prefix + key) in this;
    },
    get: function(key) {
      return this[prefix + key];
    },
    set: function(key, value) {
      this[prefix + key] = value;
      return this;
    },
    remove: function(key) {
      var property = prefix + key;
      return property in this && delete this[property];
    },
    clear: function() {
      for (var property in this) if (property[0] === prefix) delete this[property];
    },
    keys: function() {
      var keys = [];
      for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));
      return keys;
    },
    values: function() {
      var values = [];
      for (var property in this) if (property[0] === prefix) values.push(this[property]);
      return values;
    },
    entries: function() {
      var entries = [];
      for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});
      return entries;
    },
    size: function() {
      var size = 0;
      for (var property in this) if (property[0] === prefix) ++size;
      return size;
    },
    empty: function() {
      for (var property in this) if (property[0] === prefix) return false;
      return true;
    },
    each: function(f) {
      for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);
    }
  };
  
  function map(object, f) {
    var map = new Map;
  
    // Copy constructor.
    if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });
  
    // Index array by numeric index or specified key function.
    else if (Array.isArray(object)) {
      var i = -1,
          n = object.length,
          o;
  
      if (f == null) while (++i < n) map.set(i, object[i]);
      else while (++i < n) map.set(f(o = object[i], i, object), o);
    }
  
    // Convert object to map.
    else if (object) for (var key in object) map.set(key, object[key]);
  
    return map;
  }
  
  /* harmony default export */ __webpack_exports__["a"] = map;
  
  
  /***/ }),
  /* 182 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__define__ = __webpack_require__(183);
  /* harmony export (immutable) */ __webpack_exports__["c"] = Color;
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return darker; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return brighter; });
  /* harmony export (immutable) */ __webpack_exports__["h"] = color;
  /* harmony export (immutable) */ __webpack_exports__["b"] = rgbConvert;
  /* harmony export (immutable) */ __webpack_exports__["g"] = rgb;
  /* harmony export (immutable) */ __webpack_exports__["a"] = Rgb;
  /* unused harmony export hslConvert */
  /* harmony export (immutable) */ __webpack_exports__["f"] = hsl;
  
  
  function Color() {}
  
  var darker = 0.7;
  var brighter = 1 / darker;
  
  var reI = "\\s*([+-]?\\d+)\\s*",
      reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
      reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
      reHex3 = /^#([0-9a-f]{3})$/,
      reHex6 = /^#([0-9a-f]{6})$/,
      reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
      reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
      reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
      reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
      reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
      reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");
  
  var named = {
    aliceblue: 0xf0f8ff,
    antiquewhite: 0xfaebd7,
    aqua: 0x00ffff,
    aquamarine: 0x7fffd4,
    azure: 0xf0ffff,
    beige: 0xf5f5dc,
    bisque: 0xffe4c4,
    black: 0x000000,
    blanchedalmond: 0xffebcd,
    blue: 0x0000ff,
    blueviolet: 0x8a2be2,
    brown: 0xa52a2a,
    burlywood: 0xdeb887,
    cadetblue: 0x5f9ea0,
    chartreuse: 0x7fff00,
    chocolate: 0xd2691e,
    coral: 0xff7f50,
    cornflowerblue: 0x6495ed,
    cornsilk: 0xfff8dc,
    crimson: 0xdc143c,
    cyan: 0x00ffff,
    darkblue: 0x00008b,
    darkcyan: 0x008b8b,
    darkgoldenrod: 0xb8860b,
    darkgray: 0xa9a9a9,
    darkgreen: 0x006400,
    darkgrey: 0xa9a9a9,
    darkkhaki: 0xbdb76b,
    darkmagenta: 0x8b008b,
    darkolivegreen: 0x556b2f,
    darkorange: 0xff8c00,
    darkorchid: 0x9932cc,
    darkred: 0x8b0000,
    darksalmon: 0xe9967a,
    darkseagreen: 0x8fbc8f,
    darkslateblue: 0x483d8b,
    darkslategray: 0x2f4f4f,
    darkslategrey: 0x2f4f4f,
    darkturquoise: 0x00ced1,
    darkviolet: 0x9400d3,
    deeppink: 0xff1493,
    deepskyblue: 0x00bfff,
    dimgray: 0x696969,
    dimgrey: 0x696969,
    dodgerblue: 0x1e90ff,
    firebrick: 0xb22222,
    floralwhite: 0xfffaf0,
    forestgreen: 0x228b22,
    fuchsia: 0xff00ff,
    gainsboro: 0xdcdcdc,
    ghostwhite: 0xf8f8ff,
    gold: 0xffd700,
    goldenrod: 0xdaa520,
    gray: 0x808080,
    green: 0x008000,
    greenyellow: 0xadff2f,
    grey: 0x808080,
    honeydew: 0xf0fff0,
    hotpink: 0xff69b4,
    indianred: 0xcd5c5c,
    indigo: 0x4b0082,
    ivory: 0xfffff0,
    khaki: 0xf0e68c,
    lavender: 0xe6e6fa,
    lavenderblush: 0xfff0f5,
    lawngreen: 0x7cfc00,
    lemonchiffon: 0xfffacd,
    lightblue: 0xadd8e6,
    lightcoral: 0xf08080,
    lightcyan: 0xe0ffff,
    lightgoldenrodyellow: 0xfafad2,
    lightgray: 0xd3d3d3,
    lightgreen: 0x90ee90,
    lightgrey: 0xd3d3d3,
    lightpink: 0xffb6c1,
    lightsalmon: 0xffa07a,
    lightseagreen: 0x20b2aa,
    lightskyblue: 0x87cefa,
    lightslategray: 0x778899,
    lightslategrey: 0x778899,
    lightsteelblue: 0xb0c4de,
    lightyellow: 0xffffe0,
    lime: 0x00ff00,
    limegreen: 0x32cd32,
    linen: 0xfaf0e6,
    magenta: 0xff00ff,
    maroon: 0x800000,
    mediumaquamarine: 0x66cdaa,
    mediumblue: 0x0000cd,
    mediumorchid: 0xba55d3,
    mediumpurple: 0x9370db,
    mediumseagreen: 0x3cb371,
    mediumslateblue: 0x7b68ee,
    mediumspringgreen: 0x00fa9a,
    mediumturquoise: 0x48d1cc,
    mediumvioletred: 0xc71585,
    midnightblue: 0x191970,
    mintcream: 0xf5fffa,
    mistyrose: 0xffe4e1,
    moccasin: 0xffe4b5,
    navajowhite: 0xffdead,
    navy: 0x000080,
    oldlace: 0xfdf5e6,
    olive: 0x808000,
    olivedrab: 0x6b8e23,
    orange: 0xffa500,
    orangered: 0xff4500,
    orchid: 0xda70d6,
    palegoldenrod: 0xeee8aa,
    palegreen: 0x98fb98,
    paleturquoise: 0xafeeee,
    palevioletred: 0xdb7093,
    papayawhip: 0xffefd5,
    peachpuff: 0xffdab9,
    peru: 0xcd853f,
    pink: 0xffc0cb,
    plum: 0xdda0dd,
    powderblue: 0xb0e0e6,
    purple: 0x800080,
    rebeccapurple: 0x663399,
    red: 0xff0000,
    rosybrown: 0xbc8f8f,
    royalblue: 0x4169e1,
    saddlebrown: 0x8b4513,
    salmon: 0xfa8072,
    sandybrown: 0xf4a460,
    seagreen: 0x2e8b57,
    seashell: 0xfff5ee,
    sienna: 0xa0522d,
    silver: 0xc0c0c0,
    skyblue: 0x87ceeb,
    slateblue: 0x6a5acd,
    slategray: 0x708090,
    slategrey: 0x708090,
    snow: 0xfffafa,
    springgreen: 0x00ff7f,
    steelblue: 0x4682b4,
    tan: 0xd2b48c,
    teal: 0x008080,
    thistle: 0xd8bfd8,
    tomato: 0xff6347,
    turquoise: 0x40e0d0,
    violet: 0xee82ee,
    wheat: 0xf5deb3,
    white: 0xffffff,
    whitesmoke: 0xf5f5f5,
    yellow: 0xffff00,
    yellowgreen: 0x9acd32
  };
  
  __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["a" /* default */])(Color, color, {
    displayable: function() {
      return this.rgb().displayable();
    },
    toString: function() {
      return this.rgb() + "";
    }
  });
  
  function color(format) {
    var m;
    format = (format + "").trim().toLowerCase();
    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
        : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000
        : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
        : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
        : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
        : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
        : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
        : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
        : named.hasOwnProperty(format) ? rgbn(named[format])
        : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
        : null;
  }
  
  function rgbn(n) {
    return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
  }
  
  function rgba(r, g, b, a) {
    if (a <= 0) r = g = b = NaN;
    return new Rgb(r, g, b, a);
  }
  
  function rgbConvert(o) {
    if (!(o instanceof Color)) o = color(o);
    if (!o) return new Rgb;
    o = o.rgb();
    return new Rgb(o.r, o.g, o.b, o.opacity);
  }
  
  function rgb(r, g, b, opacity) {
    return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
  }
  
  function Rgb(r, g, b, opacity) {
    this.r = +r;
    this.g = +g;
    this.b = +b;
    this.opacity = +opacity;
  }
  
  __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["a" /* default */])(Rgb, rgb, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["b" /* extend */])(Color, {
    brighter: function(k) {
      k = k == null ? brighter : Math.pow(brighter, k);
      return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
    },
    darker: function(k) {
      k = k == null ? darker : Math.pow(darker, k);
      return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
    },
    rgb: function() {
      return this;
    },
    displayable: function() {
      return (0 <= this.r && this.r <= 255)
          && (0 <= this.g && this.g <= 255)
          && (0 <= this.b && this.b <= 255)
          && (0 <= this.opacity && this.opacity <= 1);
    },
    toString: function() {
      var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
      return (a === 1 ? "rgb(" : "rgba(")
          + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", "
          + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", "
          + Math.max(0, Math.min(255, Math.round(this.b) || 0))
          + (a === 1 ? ")" : ", " + a + ")");
    }
  }));
  
  function hsla(h, s, l, a) {
    if (a <= 0) h = s = l = NaN;
    else if (l <= 0 || l >= 1) h = s = NaN;
    else if (s <= 0) h = NaN;
    return new Hsl(h, s, l, a);
  }
  
  function hslConvert(o) {
    if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
    if (!(o instanceof Color)) o = color(o);
    if (!o) return new Hsl;
    if (o instanceof Hsl) return o;
    o = o.rgb();
    var r = o.r / 255,
        g = o.g / 255,
        b = o.b / 255,
        min = Math.min(r, g, b),
        max = Math.max(r, g, b),
        h = NaN,
        s = max - min,
        l = (max + min) / 2;
    if (s) {
      if (r === max) h = (g - b) / s + (g < b) * 6;
      else if (g === max) h = (b - r) / s + 2;
      else h = (r - g) / s + 4;
      s /= l < 0.5 ? max + min : 2 - max - min;
      h *= 60;
    } else {
      s = l > 0 && l < 1 ? 0 : h;
    }
    return new Hsl(h, s, l, o.opacity);
  }
  
  function hsl(h, s, l, opacity) {
    return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
  }
  
  function Hsl(h, s, l, opacity) {
    this.h = +h;
    this.s = +s;
    this.l = +l;
    this.opacity = +opacity;
  }
  
  __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["a" /* default */])(Hsl, hsl, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["b" /* extend */])(Color, {
    brighter: function(k) {
      k = k == null ? brighter : Math.pow(brighter, k);
      return new Hsl(this.h, this.s, this.l * k, this.opacity);
    },
    darker: function(k) {
      k = k == null ? darker : Math.pow(darker, k);
      return new Hsl(this.h, this.s, this.l * k, this.opacity);
    },
    rgb: function() {
      var h = this.h % 360 + (this.h < 0) * 360,
          s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
          l = this.l,
          m2 = l + (l < 0.5 ? l : 1 - l) * s,
          m1 = 2 * l - m2;
      return new Rgb(
        hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
        hsl2rgb(h, m1, m2),
        hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
        this.opacity
      );
    },
    displayable: function() {
      return (0 <= this.s && this.s <= 1 || isNaN(this.s))
          && (0 <= this.l && this.l <= 1)
          && (0 <= this.opacity && this.opacity <= 1);
    }
  }));
  
  /* From FvD 13.37, CSS Color Module Level 3 */
  function hsl2rgb(h, m1, m2) {
    return (h < 60 ? m1 + (m2 - m1) * h / 60
        : h < 180 ? m2
        : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
        : m1) * 255;
  }
  
  
  /***/ }),
  /* 183 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (immutable) */ __webpack_exports__["b"] = extend;
  /* harmony default export */ __webpack_exports__["a"] = function(constructor, factory, prototype) {
    constructor.prototype = factory.prototype = prototype;
    prototype.constructor = constructor;
  };
  
  function extend(parent, definition) {
    var prototype = Object.create(parent.prototype);
    for (var key in definition) prototype[key] = definition[key];
    return prototype;
  }
  
  
  /***/ }),
  /* 184 */,
  /* 185 */,
  /* 186 */,
  /* 187 */,
  /* 188 */,
  /* 189 */,
  /* 190 */,
  /* 191 */,
  /* 192 */,
  /* 193 */,
  /* 194 */,
  /* 195 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  // Computes the decimal coefficient and exponent of the specified number x with
  // significant digits p, where x is positive and p is in [1, 21] or undefined.
  // For example, formatDecimal(1.23) returns ["123", 0].
  /* harmony default export */ __webpack_exports__["a"] = function(x, p) {
    if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
    var i, coefficient = x.slice(0, i);
  
    // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
    // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
    return [
      coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
      +x.slice(i + 1)
    ];
  };
  
  
  /***/ }),
  /* 196 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (immutable) */ __webpack_exports__["b"] = basis;
  function basis(t1, v0, v1, v2, v3) {
    var t2 = t1 * t1, t3 = t2 * t1;
    return ((1 - 3 * t1 + 3 * t2 - t3) * v0
        + (4 - 6 * t2 + 3 * t3) * v1
        + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
        + t3 * v3) / 6;
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(values) {
    var n = values.length - 1;
    return function(t) {
      var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
          v1 = values[i],
          v2 = values[i + 1],
          v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
          v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
      return basis((t - i / n) * n, v0, v1, v2, v3);
    };
  };
  
  
  /***/ }),
  /* 197 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(45);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__rgb__ = __webpack_require__(286);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__array__ = __webpack_require__(281);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__date__ = __webpack_require__(284);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__number__ = __webpack_require__(98);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__object__ = __webpack_require__(285);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__string__ = __webpack_require__(287);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__constant__ = __webpack_require__(283);
  
  
  
  
  
  
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(a, b) {
    var t = typeof b, c;
    return b == null || t === "boolean" ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__constant__["a" /* default */])(b)
        : (t === "number" ? __WEBPACK_IMPORTED_MODULE_4__number__["a" /* default */]
        : t === "string" ? ((c = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["f" /* color */])(b)) ? (b = c, __WEBPACK_IMPORTED_MODULE_1__rgb__["a" /* default */]) : __WEBPACK_IMPORTED_MODULE_6__string__["a" /* default */])
        : b instanceof __WEBPACK_IMPORTED_MODULE_0_d3_color__["f" /* color */] ? __WEBPACK_IMPORTED_MODULE_1__rgb__["a" /* default */]
        : b instanceof Date ? __WEBPACK_IMPORTED_MODULE_3__date__["a" /* default */]
        : Array.isArray(b) ? __WEBPACK_IMPORTED_MODULE_2__array__["a" /* default */]
        : isNaN(b) ? __WEBPACK_IMPORTED_MODULE_5__object__["a" /* default */]
        : __WEBPACK_IMPORTED_MODULE_4__number__["a" /* default */])(a, b);
  };
  
  
  /***/ }),
  /* 198 */,
  /* 199 */,
  /* 200 */,
  /* 201 */,
  /* 202 */,
  /* 203 */,
  /* 204 */,
  /* 205 */,
  /* 206 */,
  /* 207 */,
  /* 208 */,
  /* 209 */,
  /* 210 */,
  /* 211 */,
  /* 212 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(x) {
    return function() {
      return x;
    };
  };
  
  
  /***/ }),
  /* 213 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_creator__ = __webpack_require__(214);
  /* unused harmony reexport creator */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_local__ = __webpack_require__(490);
  /* unused harmony reexport local */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_matcher__ = __webpack_require__(292);
  /* unused harmony reexport matcher */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_mouse__ = __webpack_require__(491);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_3__src_mouse__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_namespace__ = __webpack_require__(215);
  /* unused harmony reexport namespace */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_namespaces__ = __webpack_require__(216);
  /* unused harmony reexport namespaces */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_select__ = __webpack_require__(492);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_6__src_select__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_selectAll__ = __webpack_require__(493);
  /* unused harmony reexport selectAll */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_selection_index__ = __webpack_require__(33);
  /* unused harmony reexport selection */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_selector__ = __webpack_require__(219);
  /* unused harmony reexport selector */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_selectorAll__ = __webpack_require__(295);
  /* unused harmony reexport selectorAll */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_touch__ = __webpack_require__(521);
  /* unused harmony reexport touch */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_touches__ = __webpack_require__(522);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_12__src_touches__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_window__ = __webpack_require__(221);
  /* unused harmony reexport window */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_selection_on__ = __webpack_require__(218);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_14__src_selection_on__["a"]; });
  /* unused harmony reexport customEvent */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  /***/ }),
  /* 214 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__namespace__ = __webpack_require__(215);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__namespaces__ = __webpack_require__(216);
  
  
  
  function creatorInherit(name) {
    return function() {
      var document = this.ownerDocument,
          uri = this.namespaceURI;
      return uri === __WEBPACK_IMPORTED_MODULE_1__namespaces__["a" /* xhtml */] && document.documentElement.namespaceURI === __WEBPACK_IMPORTED_MODULE_1__namespaces__["a" /* xhtml */]
          ? document.createElement(name)
          : document.createElementNS(uri, name);
    };
  }
  
  function creatorFixed(fullname) {
    return function() {
      return this.ownerDocument.createElementNS(fullname.space, fullname.local);
    };
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(name) {
    var fullname = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__namespace__["a" /* default */])(name);
    return (fullname.local
        ? creatorFixed
        : creatorInherit)(fullname);
  };
  
  
  /***/ }),
  /* 215 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__namespaces__ = __webpack_require__(216);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(name) {
    var prefix = name += "", i = prefix.indexOf(":");
    if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
    return __WEBPACK_IMPORTED_MODULE_0__namespaces__["b" /* default */].hasOwnProperty(prefix) ? {space: __WEBPACK_IMPORTED_MODULE_0__namespaces__["b" /* default */][prefix], local: name} : name;
  };
  
  
  /***/ }),
  /* 216 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return xhtml; });
  var xhtml = "http://www.w3.org/1999/xhtml";
  
  /* harmony default export */ __webpack_exports__["b"] = {
    svg: "http://www.w3.org/2000/svg",
    xhtml: xhtml,
    xlink: "http://www.w3.org/1999/xlink",
    xml: "http://www.w3.org/XML/1998/namespace",
    xmlns: "http://www.w3.org/2000/xmlns/"
  };
  
  
  /***/ }),
  /* 217 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(node, event) {
    var svg = node.ownerSVGElement || node;
  
    if (svg.createSVGPoint) {
      var point = svg.createSVGPoint();
      point.x = event.clientX, point.y = event.clientY;
      point = point.matrixTransform(node.getScreenCTM().inverse());
      return [point.x, point.y];
    }
  
    var rect = node.getBoundingClientRect();
    return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
  };
  
  
  /***/ }),
  /* 218 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return event; });
  /* unused harmony export customEvent */
  var filterEvents = {};
  
  var event = null;
  
  if (typeof document !== "undefined") {
    var element = document.documentElement;
    if (!("onmouseenter" in element)) {
      filterEvents = {mouseenter: "mouseover", mouseleave: "mouseout"};
    }
  }
  
  function filterContextListener(listener, index, group) {
    listener = contextListener(listener, index, group);
    return function(event) {
      var related = event.relatedTarget;
      if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {
        listener.call(this, event);
      }
    };
  }
  
  function contextListener(listener, index, group) {
    return function(event1) {
      var event0 = event; // Events can be reentrant (e.g., focus).
      event = event1;
      try {
        listener.call(this, this.__data__, index, group);
      } finally {
        event = event0;
      }
    };
  }
  
  function parseTypenames(typenames) {
    return typenames.trim().split(/^|\s+/).map(function(t) {
      var name = "", i = t.indexOf(".");
      if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
      return {type: t, name: name};
    });
  }
  
  function onRemove(typename) {
    return function() {
      var on = this.__on;
      if (!on) return;
      for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
        if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
          this.removeEventListener(o.type, o.listener, o.capture);
        } else {
          on[++i] = o;
        }
      }
      if (++i) on.length = i;
      else delete this.__on;
    };
  }
  
  function onAdd(typename, value, capture) {
    var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;
    return function(d, i, group) {
      var on = this.__on, o, listener = wrap(value, i, group);
      if (on) for (var j = 0, m = on.length; j < m; ++j) {
        if ((o = on[j]).type === typename.type && o.name === typename.name) {
          this.removeEventListener(o.type, o.listener, o.capture);
          this.addEventListener(o.type, o.listener = listener, o.capture = capture);
          o.value = value;
          return;
        }
      }
      this.addEventListener(typename.type, listener, capture);
      o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};
      if (!on) this.__on = [o];
      else on.push(o);
    };
  }
  
  /* harmony default export */ __webpack_exports__["b"] = function(typename, value, capture) {
    var typenames = parseTypenames(typename + ""), i, n = typenames.length, t;
  
    if (arguments.length < 2) {
      var on = this.node().__on;
      if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
        for (i = 0, o = on[j]; i < n; ++i) {
          if ((t = typenames[i]).type === o.type && t.name === o.name) {
            return o.value;
          }
        }
      }
      return;
    }
  
    on = value ? onAdd : onRemove;
    if (capture == null) capture = false;
    for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));
    return this;
  };
  
  function customEvent(event1, listener, that, args) {
    var event0 = event;
    event1.sourceEvent = event;
    event = event1;
    try {
      return listener.apply(that, args);
    } finally {
      event = event0;
    }
  }
  
  
  /***/ }),
  /* 219 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function none() {}
  
  /* harmony default export */ __webpack_exports__["a"] = function(selector) {
    return selector == null ? none : function() {
      return this.querySelector(selector);
    };
  };
  
  
  /***/ }),
  /* 220 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__selection_on__ = __webpack_require__(218);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function() {
    var current = __WEBPACK_IMPORTED_MODULE_0__selection_on__["a" /* event */], source;
    while (source = current.sourceEvent) current = source;
    return current;
  };
  
  
  /***/ }),
  /* 221 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(node) {
    return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
        || (node.document && node) // node is a Window
        || node.defaultView; // node is a Document
  };
  
  
  /***/ }),
  /* 222 */,
  /* 223 */,
  /* 224 */,
  /* 225 */,
  /* 226 */,
  /* 227 */,
  /* 228 */,
  /* 229 */,
  /* 230 */,
  /* 231 */,
  /* 232 */,
  /* 233 */,
  /* 234 */,
  /* 235 */,
  /* 236 */,
  /* 237 */,
  /* 238 */,
  /* 239 */,
  /* 240 */,
  /* 241 */,
  /* 242 */,
  /* 243 */,
  /* 244 */,
  /* 245 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale__ = __webpack_require__(297);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return timeFormat; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return timeParse; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return utcFormat; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return utcParse; });
  /* unused harmony export default */
  
  
  var locale;
  var timeFormat;
  var timeParse;
  var utcFormat;
  var utcParse;
  
  defaultLocale({
    dateTime: "%x, %X",
    date: "%-m/%-d/%Y",
    time: "%-I:%M:%S %p",
    periods: ["AM", "PM"],
    days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
    shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
    months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
    shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
  });
  
  function defaultLocale(definition) {
    locale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__locale__["a" /* default */])(definition);
    timeFormat = locale.format;
    timeParse = locale.parse;
    utcFormat = locale.utcFormat;
    utcParse = locale.utcParse;
    return locale;
  }
  
  
  /***/ }),
  /* 246 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_interval__ = __webpack_require__(26);
  /* unused harmony reexport timeInterval */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_millisecond__ = __webpack_require__(526);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return __WEBPACK_IMPORTED_MODULE_1__src_millisecond__["a"]; });
  /* unused harmony reexport timeMilliseconds */
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_1__src_millisecond__["a"]; });
  /* unused harmony reexport utcMilliseconds */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_second__ = __webpack_require__(529);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return __WEBPACK_IMPORTED_MODULE_2__src_second__["a"]; });
  /* unused harmony reexport timeSeconds */
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __WEBPACK_IMPORTED_MODULE_2__src_second__["a"]; });
  /* unused harmony reexport utcSeconds */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_minute__ = __webpack_require__(527);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return __WEBPACK_IMPORTED_MODULE_3__src_minute__["a"]; });
  /* unused harmony reexport timeMinutes */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_hour__ = __webpack_require__(525);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return __WEBPACK_IMPORTED_MODULE_4__src_hour__["a"]; });
  /* unused harmony reexport timeHours */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_day__ = __webpack_require__(524);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_5__src_day__["a"]; });
  /* unused harmony reexport timeDays */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_week__ = __webpack_require__(536);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return __WEBPACK_IMPORTED_MODULE_6__src_week__["a"]; });
  /* unused harmony reexport timeWeeks */
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return __WEBPACK_IMPORTED_MODULE_6__src_week__["a"]; });
  /* unused harmony reexport timeSundays */
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return __WEBPACK_IMPORTED_MODULE_6__src_week__["b"]; });
  /* unused harmony reexport timeMondays */
  /* unused harmony reexport timeTuesday */
  /* unused harmony reexport timeTuesdays */
  /* unused harmony reexport timeWednesday */
  /* unused harmony reexport timeWednesdays */
  /* unused harmony reexport timeThursday */
  /* unused harmony reexport timeThursdays */
  /* unused harmony reexport timeFriday */
  /* unused harmony reexport timeFridays */
  /* unused harmony reexport timeSaturday */
  /* unused harmony reexport timeSaturdays */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_month__ = __webpack_require__(528);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return __WEBPACK_IMPORTED_MODULE_7__src_month__["a"]; });
  /* unused harmony reexport timeMonths */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_year__ = __webpack_require__(537);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return __WEBPACK_IMPORTED_MODULE_8__src_year__["a"]; });
  /* unused harmony reexport timeYears */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_utcMinute__ = __webpack_require__(532);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_9__src_utcMinute__["a"]; });
  /* unused harmony reexport utcMinutes */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_utcHour__ = __webpack_require__(531);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_10__src_utcHour__["a"]; });
  /* unused harmony reexport utcHours */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__src_utcDay__ = __webpack_require__(530);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_11__src_utcDay__["a"]; });
  /* unused harmony reexport utcDays */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__src_utcWeek__ = __webpack_require__(534);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_12__src_utcWeek__["a"]; });
  /* unused harmony reexport utcWeeks */
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return __WEBPACK_IMPORTED_MODULE_12__src_utcWeek__["a"]; });
  /* unused harmony reexport utcSundays */
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return __WEBPACK_IMPORTED_MODULE_12__src_utcWeek__["b"]; });
  /* unused harmony reexport utcMondays */
  /* unused harmony reexport utcTuesday */
  /* unused harmony reexport utcTuesdays */
  /* unused harmony reexport utcWednesday */
  /* unused harmony reexport utcWednesdays */
  /* unused harmony reexport utcThursday */
  /* unused harmony reexport utcThursdays */
  /* unused harmony reexport utcFriday */
  /* unused harmony reexport utcFridays */
  /* unused harmony reexport utcSaturday */
  /* unused harmony reexport utcSaturdays */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__src_utcMonth__ = __webpack_require__(533);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_13__src_utcMonth__["a"]; });
  /* unused harmony reexport utcMonths */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__src_utcYear__ = __webpack_require__(535);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_14__src_utcYear__["a"]; });
  /* unused harmony reexport utcYears */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  /***/ }),
  /* 247 */,
  /* 248 */,
  /* 249 */,
  /* 250 */,
  /* 251 */,
  /* 252 */,
  /* 253 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_scale__ = __webpack_require__(25);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_PureComponent__ = __webpack_require__(177);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils__ = __webpack_require__(1);
  
  
  var _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"); } }; }();
  
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  
  
  
  
  
  
  var Chart = function (_PureComponent) {
  	_inherits(Chart, _PureComponent);
  
  	function Chart(props, context) {
  		_classCallCheck(this, Chart);
  
  		var _this = _possibleConstructorReturn(this, (Chart.__proto__ || Object.getPrototypeOf(Chart)).call(this, props, context));
  
  		_this.yScale = _this.yScale.bind(_this);
  		_this.listener = _this.listener.bind(_this);
  		return _this;
  	}
  
  	_createClass(Chart, [{
  		key: "componentWillMount",
  		value: function componentWillMount() {
  			var id = this.props.id;
  			var subscribe = this.context.subscribe;
  
  			subscribe("chart_" + id, {
  				listener: this.listener
  			});
  		}
  	}, {
  		key: "componentWillUnmount",
  		value: function componentWillUnmount() {
  			var id = this.props.id;
  			var unsubscribe = this.context.unsubscribe;
  
  			unsubscribe("chart_" + id);
  		}
  	}, {
  		key: "listener",
  		value: function listener(type, moreProps, state, e) {
  			var _props = this.props,
  			    id = _props.id,
  			    onContextMenu = _props.onContextMenu;
  
  
  			if (type === "contextmenu") {
  				var currentCharts = moreProps.currentCharts;
  
  				if (currentCharts.indexOf(id) > -1) {
  					onContextMenu(moreProps, e);
  				}
  			}
  		}
  	}, {
  		key: "yScale",
  		value: function yScale() {
  			var _this2 = this;
  
  			var chartConfig = this.context.chartConfig.filter(function (each) {
  				return each.id === _this2.props.id;
  			})[0];
  			return chartConfig.yScale.copy();
  		}
  	}, {
  		key: "getChildContext",
  		value: function getChildContext() {
  			var chartId = this.props.id;
  
  			var chartConfig = this.context.chartConfig.filter(function (each) {
  				return each.id === chartId;
  			})[0];
  
  			return {
  				chartId: chartId,
  				chartConfig: chartConfig
  			};
  		}
  	}, {
  		key: "render",
  		value: function render() {
  			var _this3 = this;
  
  			var origin = this.context.chartConfig.filter(function (each) {
  				return each.id === _this3.props.id;
  			})[0].origin;
  
  			var _origin = _slicedToArray(origin, 2),
  			    x = _origin[0],
  			    y = _origin[1];
  
  			return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  				"g",
  				{ transform: "translate(" + x + ", " + y + ")" },
  				this.props.children
  			);
  		}
  	}]);
  
  	return Chart;
  }(__WEBPACK_IMPORTED_MODULE_2__utils_PureComponent__["a" /* default */]);
  
  Chart.propTypes = {
  	height: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  	width: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  	origin: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].oneOfType([__WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array, __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func]).isRequired,
  	id: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	yExtents: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].oneOfType([__WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array, __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func]),
  	yExtentsCalculator: function yExtentsCalculator(props, propName, componentName) {
  		if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils__["d" /* isNotDefined */])(props.yExtents) && typeof props.yExtentsCalculator !== "function") return new Error("yExtents or yExtentsCalculator must" + (" be present on " + componentName + ". Validation failed."));
  	},
  	onContextMenu: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	yScale: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	yMousePointerDisplayLocation: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].oneOf(["left", "right"]),
  	yMousePointerDisplayFormat: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	flipYScale: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	padding: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].oneOfType([__WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number, __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].shape({
  		top: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  		bottom: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number
  	})]).isRequired,
  	children: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].node
  };
  
  Chart.defaultProps = {
  	id: 0,
  	origin: [0, 0],
  	padding: 0,
  	yScale: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_scale__["c" /* scaleLinear */])(),
  	flipYScale: false,
  	yPan: true,
  	onContextMenu: __WEBPACK_IMPORTED_MODULE_3__utils__["j" /* noop */]
  };
  
  Chart.contextTypes = {
  	chartConfig: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array,
  	subscribe: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	unsubscribe: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired
  };
  
  Chart.childContextTypes = {
  	chartConfig: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].object.isRequired,
  	chartId: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired
  };
  
  /* harmony default export */ __webpack_exports__["a"] = Chart;
  
  /***/ }),
  /* 254 */,
  /* 255 */,
  /* 256 */,
  /* 257 */,
  /* 258 */,
  /* 259 */,
  /* 260 */,
  /* 261 */,
  /* 262 */,
  /* 263 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (immutable) */ __webpack_exports__["a"] = shallowEqual;
  // https://github.com/jonschlinkert/is-equal-shallow/
  
  /*
  The MIT License (MIT)
  
  Copyright (c) 2015, Jon Schlinkert.
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:
  
  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.
  
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  THE SOFTWARE.
  */
  
  function isDate(date) {
  	return Object.prototype.toString.call(date) === "[object Date]";
  }
  
  function isEqual(val1, val2) {
  	return isDate(val1) && isDate(val2) ? val1.getTime() === val2.getTime() : val1 === val2;
  }
  
  function shallowEqual(a, b) {
  	if (!a && !b) {
  		return true;
  	}
  	if (!a && b || a && !b) {
  		return false;
  	}
  
  	var numKeysA = 0,
  	    numKeysB = 0,
  	    key = void 0;
  	for (key in b) {
  		numKeysB++;
  		if ( /* !isPrimitive(b[key]) || */!a.hasOwnProperty(key) || !isEqual(a[key], b[key])) {
  			// console.log(key, a, b);
  			return false;
  		}
  	}
  	for (key in a) {
  		numKeysA++;
  	}
  	return numKeysA === numKeysB;
  }
  
  /***/ }),
  /* 264 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__identity__ = __webpack_require__(72);
  /* harmony export (immutable) */ __webpack_exports__["a"] = zipper;
  
  
  /* an extension to d3.zip so we call a function instead of an array */
  
  
  
  
  
  function zipper() {
  	var combine = __WEBPACK_IMPORTED_MODULE_1__identity__["a" /* default */];
  
  	function zip() {
  		var n = arguments.length;
  		if (!n) return [];
  		var m = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["i" /* min */])(arguments, d3_zipLength);
  
  		// eslint-disable-next-line prefer-const
  		var i = void 0,
  		    zips = new Array(m);
  		for (i = -1; ++i < m;) {
  			for (var j = -1, _zip = zips[i] = new Array(n); ++j < n;) {
  				_zip[j] = arguments[j][i];
  			}
  			zips[i] = combine.apply(this, zips[i]);
  		}
  		return zips;
  	}
  	function d3_zipLength(d) {
  		return d.length;
  	}
  	zip.combine = function (x) {
  		if (!arguments.length) {
  			return combine;
  		}
  		combine = x;
  		return zip;
  	};
  	return zip;
  }
  
  /***/ }),
  /* 265 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return slice; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return map; });
  var array = Array.prototype;
  
  var slice = array.slice;
  var map = array.map;
  
  
  /***/ }),
  /* 266 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(64);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__bisector__ = __webpack_require__(267);
  /* unused harmony export bisectRight */
  /* unused harmony export bisectLeft */
  
  
  
  var ascendingBisect = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__bisector__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_0__ascending__["a" /* default */]);
  var bisectRight = ascendingBisect.right;
  var bisectLeft = ascendingBisect.left;
  /* harmony default export */ __webpack_exports__["a"] = bisectRight;
  
  
  /***/ }),
  /* 267 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(64);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(compare) {
    if (compare.length === 1) compare = ascendingComparator(compare);
    return {
      left: function(a, x, lo, hi) {
        if (lo == null) lo = 0;
        if (hi == null) hi = a.length;
        while (lo < hi) {
          var mid = lo + hi >>> 1;
          if (compare(a[mid], x) < 0) lo = mid + 1;
          else hi = mid;
        }
        return lo;
      },
      right: function(a, x, lo, hi) {
        if (lo == null) lo = 0;
        if (hi == null) hi = a.length;
        while (lo < hi) {
          var mid = lo + hi >>> 1;
          if (compare(a[mid], x) > 0) hi = mid;
          else lo = mid + 1;
        }
        return lo;
      }
    };
  };
  
  function ascendingComparator(f) {
    return function(d, x) {
      return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__ascending__["a" /* default */])(f(d), x);
    };
  }
  
  
  /***/ }),
  /* 268 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__variance__ = __webpack_require__(275);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(array, f) {
    var v = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__variance__["a" /* default */])(array, f);
    return v ? Math.sqrt(v) : v;
  };
  
  
  /***/ }),
  /* 269 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(array, f) {
    var i = -1,
        n = array.length,
        a,
        b,
        c;
  
    if (f == null) {
      while (++i < n) if ((b = array[i]) != null && b >= b) { a = c = b; break; }
      while (++i < n) if ((b = array[i]) != null) {
        if (a > b) a = b;
        if (c < b) c = b;
      }
    }
  
    else {
      while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = c = b; break; }
      while (++i < n) if ((b = f(array[i], i, array)) != null) {
        if (a > b) a = b;
        if (c < b) c = b;
      }
    }
  
    return [a, c];
  };
  
  
  /***/ }),
  /* 270 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(array, f) {
    var i = -1,
        n = array.length,
        a,
        b;
  
    if (f == null) {
      while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }
      while (++i < n) if ((b = array[i]) != null && a > b) a = b;
    }
  
    else {
      while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = b; break; }
      while (++i < n) if ((b = f(array[i], i, array)) != null && a > b) a = b;
    }
  
    return a;
  };
  
  
  /***/ }),
  /* 271 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(start, stop, step) {
    start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
  
    var i = -1,
        n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
        range = new Array(n);
  
    while (++i < n) {
      range[i] = start + i * step;
    }
  
    return range;
  };
  
  
  /***/ }),
  /* 272 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(values) {
    return Math.ceil(Math.log(values.length) / Math.LN2) + 1;
  };
  
  
  /***/ }),
  /* 273 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__range__ = __webpack_require__(271);
  /* harmony export (immutable) */ __webpack_exports__["b"] = tickStep;
  
  
  var e10 = Math.sqrt(50),
      e5 = Math.sqrt(10),
      e2 = Math.sqrt(2);
  
  /* harmony default export */ __webpack_exports__["a"] = function(start, stop, count) {
    var step = tickStep(start, stop, count);
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__range__["a" /* default */])(
      Math.ceil(start / step) * step,
      Math.floor(stop / step) * step + step / 2, // inclusive
      step
    );
  };
  
  function tickStep(start, stop, count) {
    var step0 = Math.abs(stop - start) / Math.max(0, count),
        step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
        error = step0 / step1;
    if (error >= e10) step1 *= 10;
    else if (error >= e5) step1 *= 5;
    else if (error >= e2) step1 *= 2;
    return stop < start ? -step1 : step1;
  }
  
  
  /***/ }),
  /* 274 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__min__ = __webpack_require__(270);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(matrix) {
    if (!(n = matrix.length)) return [];
    for (var i = -1, m = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__min__["a" /* default */])(matrix, length), transpose = new Array(m); ++i < m;) {
      for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
        row[j] = matrix[j][i];
      }
    }
    return transpose;
  };
  
  function length(d) {
    return d.length;
  }
  
  
  /***/ }),
  /* 275 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(73);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(array, f) {
    var n = array.length,
        m = 0,
        a,
        d,
        s = 0,
        i = -1,
        j = 0;
  
    if (f == null) {
      while (++i < n) {
        if (!isNaN(a = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(array[i]))) {
          d = a - m;
          m += d / ++j;
          s += d * (a - m);
        }
      }
    }
  
    else {
      while (++i < n) {
        if (!isNaN(a = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(f(array[i], i, array)))) {
          d = a - m;
          m += d / ++j;
          s += d * (a - m);
        }
      }
    }
  
    if (j > 1) return s / (j - 1);
  };
  
  
  /***/ }),
  /* 276 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return deg2rad; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return rad2deg; });
  var deg2rad = Math.PI / 180;
  var rad2deg = 180 / Math.PI;
  
  
  /***/ }),
  /* 277 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatDecimal__ = __webpack_require__(195);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return prefixExponent; });
  
  
  var prefixExponent;
  
  /* harmony default export */ __webpack_exports__["a"] = function(x, p) {
    var d = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__["a" /* default */])(x, p);
    if (!d) return x + "";
    var coefficient = d[0],
        exponent = d[1],
        i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
        n = coefficient.length;
    return i === n ? coefficient
        : i > n ? coefficient + new Array(i - n + 1).join("0")
        : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
        : "0." + new Array(1 - i).join("0") + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__["a" /* default */])(x, Math.max(0, p + i - 1))[0]; // less than 1y!
  };
  
  
  /***/ }),
  /* 278 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatTypes__ = __webpack_require__(279);
  
  
  // [[fill]align][sign][symbol][0][width][,][.precision][type]
  var re = /^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;
  
  /* harmony default export */ __webpack_exports__["a"] = function(specifier) {
    return new FormatSpecifier(specifier);
  };
  
  function FormatSpecifier(specifier) {
    if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);
  
    var match,
        fill = match[1] || " ",
        align = match[2] || ">",
        sign = match[3] || "-",
        symbol = match[4] || "",
        zero = !!match[5],
        width = match[6] && +match[6],
        comma = !!match[7],
        precision = match[8] && +match[8].slice(1),
        type = match[9] || "";
  
    // The "n" type is an alias for ",g".
    if (type === "n") comma = true, type = "g";
  
    // Map invalid types to the default format.
    else if (!__WEBPACK_IMPORTED_MODULE_0__formatTypes__["a" /* default */][type]) type = "";
  
    // If zero fill is specified, padding goes after sign and before digits.
    if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";
  
    this.fill = fill;
    this.align = align;
    this.sign = sign;
    this.symbol = symbol;
    this.zero = zero;
    this.width = width;
    this.comma = comma;
    this.precision = precision;
    this.type = type;
  }
  
  FormatSpecifier.prototype.toString = function() {
    return this.fill
        + this.align
        + this.sign
        + this.symbol
        + (this.zero ? "0" : "")
        + (this.width == null ? "" : Math.max(1, this.width | 0))
        + (this.comma ? "," : "")
        + (this.precision == null ? "" : "." + Math.max(0, this.precision | 0))
        + this.type;
  };
  
  
  /***/ }),
  /* 279 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatDefault__ = __webpack_require__(456);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__formatPrefixAuto__ = __webpack_require__(277);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__formatRounded__ = __webpack_require__(458);
  
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = {
    "": __WEBPACK_IMPORTED_MODULE_0__formatDefault__["a" /* default */],
    "%": function(x, p) { return (x * 100).toFixed(p); },
    "b": function(x) { return Math.round(x).toString(2); },
    "c": function(x) { return x + ""; },
    "d": function(x) { return Math.round(x).toString(10); },
    "e": function(x, p) { return x.toExponential(p); },
    "f": function(x, p) { return x.toFixed(p); },
    "g": function(x, p) { return x.toPrecision(p); },
    "o": function(x) { return Math.round(x).toString(8); },
    "p": function(x, p) { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__formatRounded__["a" /* default */])(x * 100, p); },
    "r": __WEBPACK_IMPORTED_MODULE_2__formatRounded__["a" /* default */],
    "s": __WEBPACK_IMPORTED_MODULE_1__formatPrefixAuto__["a" /* default */],
    "X": function(x) { return Math.round(x).toString(16).toUpperCase(); },
    "x": function(x) { return Math.round(x).toString(16); }
  };
  
  
  /***/ }),
  /* 280 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exponent__ = __webpack_require__(97);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__formatGroup__ = __webpack_require__(457);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__formatSpecifier__ = __webpack_require__(278);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__formatTypes__ = __webpack_require__(279);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__formatPrefixAuto__ = __webpack_require__(277);
  
  
  
  
  
  
  var prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
  
  function identity(x) {
    return x;
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(locale) {
    var group = locale.grouping && locale.thousands ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__formatGroup__["a" /* default */])(locale.grouping, locale.thousands) : identity,
        currency = locale.currency,
        decimal = locale.decimal;
  
    function newFormat(specifier) {
      specifier = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__formatSpecifier__["a" /* default */])(specifier);
  
      var fill = specifier.fill,
          align = specifier.align,
          sign = specifier.sign,
          symbol = specifier.symbol,
          zero = specifier.zero,
          width = specifier.width,
          comma = specifier.comma,
          precision = specifier.precision,
          type = specifier.type;
  
      // Compute the prefix and suffix.
      // For SI-prefix, the suffix is lazily computed.
      var prefix = symbol === "$" ? currency[0] : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "",
          suffix = symbol === "$" ? currency[1] : /[%p]/.test(type) ? "%" : "";
  
      // What format function should we use?
      // Is this an integer type?
      // Can this type generate exponential notation?
      var formatType = __WEBPACK_IMPORTED_MODULE_3__formatTypes__["a" /* default */][type],
          maybeSuffix = !type || /[defgprs%]/.test(type);
  
      // Set the default precision if not specified,
      // or clamp the specified precision to the supported range.
      // For significant precision, it must be in [1, 21].
      // For fixed precision, it must be in [0, 20].
      precision = precision == null ? (type ? 6 : 12)
          : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))
          : Math.max(0, Math.min(20, precision));
  
      function format(value) {
        var valuePrefix = prefix,
            valueSuffix = suffix,
            i, n, c;
  
        if (type === "c") {
          valueSuffix = formatType(value) + valueSuffix;
          value = "";
        } else {
          value = +value;
  
          // Convert negative to positive, and compute the prefix.
          // Note that -0 is not less than 0, but 1 / -0 is!
          var valueNegative = (value < 0 || 1 / value < 0) && (value *= -1, true);
  
          // Perform the initial formatting.
          value = formatType(value, precision);
  
          // If the original value was negative, it may be rounded to zero during
          // formatting; treat this as (positive) zero.
          if (valueNegative) {
            i = -1, n = value.length;
            valueNegative = false;
            while (++i < n) {
              if (c = value.charCodeAt(i), (48 < c && c < 58)
                  || (type === "x" && 96 < c && c < 103)
                  || (type === "X" && 64 < c && c < 71)) {
                valueNegative = true;
                break;
              }
            }
          }
  
          // Compute the prefix and suffix.
          valuePrefix = (valueNegative ? (sign === "(" ? sign : "-") : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
          valueSuffix = valueSuffix + (type === "s" ? prefixes[8 + __WEBPACK_IMPORTED_MODULE_4__formatPrefixAuto__["b" /* prefixExponent */] / 3] : "") + (valueNegative && sign === "(" ? ")" : "");
  
          // Break the formatted value into the integer “value” part that can be
          // grouped, and fractional or exponential “suffix” part that is not.
          if (maybeSuffix) {
            i = -1, n = value.length;
            while (++i < n) {
              if (c = value.charCodeAt(i), 48 > c || c > 57) {
                valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
                value = value.slice(0, i);
                break;
              }
            }
          }
        }
  
        // If the fill character is not "0", grouping is applied before padding.
        if (comma && !zero) value = group(value, Infinity);
  
        // Compute the padding.
        var length = valuePrefix.length + value.length + valueSuffix.length,
            padding = length < width ? new Array(width - length + 1).join(fill) : "";
  
        // If the fill character is "0", grouping is applied after padding.
        if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
  
        // Reconstruct the final output based on the desired alignment.
        switch (align) {
          case "<": return valuePrefix + value + valueSuffix + padding;
          case "=": return valuePrefix + padding + value + valueSuffix;
          case "^": return padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);
        }
        return padding + valuePrefix + value + valueSuffix;
      }
  
      format.toString = function() {
        return specifier + "";
      };
  
      return format;
    }
  
    function formatPrefix(specifier, value) {
      var f = newFormat((specifier = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__formatSpecifier__["a" /* default */])(specifier), specifier.type = "f", specifier)),
          e = Math.max(-8, Math.min(8, Math.floor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__["a" /* default */])(value) / 3))) * 3,
          k = Math.pow(10, -e),
          prefix = prefixes[8 + e / 3];
      return function(value) {
        return f(k * value) + prefix;
      };
    }
  
    return {
      format: newFormat,
      formatPrefix: formatPrefix
    };
  };
  
  
  /***/ }),
  /* 281 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__value__ = __webpack_require__(197);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(a, b) {
    var nb = b ? b.length : 0,
        na = a ? Math.min(nb, a.length) : 0,
        x = new Array(nb),
        c = new Array(nb),
        i;
  
    for (i = 0; i < na; ++i) x[i] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__value__["a" /* default */])(a[i], b[i]);
    for (; i < nb; ++i) c[i] = b[i];
  
    return function(t) {
      for (i = 0; i < na; ++i) c[i] = x[i](t);
      return c;
    };
  };
  
  
  /***/ }),
  /* 282 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__basis__ = __webpack_require__(196);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(values) {
    var n = values.length;
    return function(t) {
      var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
          v0 = values[(i + n - 1) % n],
          v1 = values[i % n],
          v2 = values[(i + 1) % n],
          v3 = values[(i + 2) % n];
      return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__basis__["b" /* basis */])((t - i / n) * n, v0, v1, v2, v3);
    };
  };
  
  
  /***/ }),
  /* 283 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(x) {
    return function() {
      return x;
    };
  };
  
  
  /***/ }),
  /* 284 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(a, b) {
    var d = new Date;
    return a = +a, b -= a, function(t) {
      return d.setTime(a + b * t), d;
    };
  };
  
  
  /***/ }),
  /* 285 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__value__ = __webpack_require__(197);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(a, b) {
    var i = {},
        c = {},
        k;
  
    if (a === null || typeof a !== "object") a = {};
    if (b === null || typeof b !== "object") b = {};
  
    for (k in b) {
      if (k in a) {
        i[k] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__value__["a" /* default */])(a[k], b[k]);
      } else {
        c[k] = b[k];
      }
    }
  
    return function(t) {
      for (k in i) c[k] = i[k](t);
      return c;
    };
  };
  
  
  /***/ }),
  /* 286 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(45);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__basis__ = __webpack_require__(196);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__basisClosed__ = __webpack_require__(282);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__color__ = __webpack_require__(76);
  /* unused harmony export rgbBasis */
  /* unused harmony export rgbBasisClosed */
  
  
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = (function rgbGamma(y) {
    var color = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__color__["c" /* gamma */])(y);
  
    function rgb(start, end) {
      var r = color((start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["e" /* rgb */])(start)).r, (end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["e" /* rgb */])(end)).r),
          g = color(start.g, end.g),
          b = color(start.b, end.b),
          opacity = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__color__["a" /* default */])(start.opacity, end.opacity);
      return function(t) {
        start.r = r(t);
        start.g = g(t);
        start.b = b(t);
        start.opacity = opacity(t);
        return start + "";
      };
    }
  
    rgb.gamma = rgbGamma;
  
    return rgb;
  })(1);
  
  function rgbSpline(spline) {
    return function(colors) {
      var n = colors.length,
          r = new Array(n),
          g = new Array(n),
          b = new Array(n),
          i, color;
      for (i = 0; i < n; ++i) {
        color = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["e" /* rgb */])(colors[i]);
        r[i] = color.r || 0;
        g[i] = color.g || 0;
        b[i] = color.b || 0;
      }
      r = spline(r);
      g = spline(g);
      b = spline(b);
      color.opacity = 1;
      return function(t) {
        color.r = r(t);
        color.g = g(t);
        color.b = b(t);
        return color + "";
      };
    };
  }
  
  var rgbBasis = rgbSpline(__WEBPACK_IMPORTED_MODULE_1__basis__["a" /* default */]);
  var rgbBasisClosed = rgbSpline(__WEBPACK_IMPORTED_MODULE_2__basisClosed__["a" /* default */]);
  
  
  /***/ }),
  /* 287 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(98);
  
  
  var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
      reB = new RegExp(reA.source, "g");
  
  function zero(b) {
    return function() {
      return b;
    };
  }
  
  function one(b) {
    return function(t) {
      return b(t) + "";
    };
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(a, b) {
    var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
        am, // current match in a
        bm, // current match in b
        bs, // string preceding current number in b, if any
        i = -1, // index in s
        s = [], // string constants and placeholders
        q = []; // number interpolators
  
    // Coerce inputs to strings.
    a = a + "", b = b + "";
  
    // Interpolate pairs of numbers in a & b.
    while ((am = reA.exec(a))
        && (bm = reB.exec(b))) {
      if ((bs = bm.index) > bi) { // a string precedes the next number in b
        bs = b.slice(bi, bs);
        if (s[i]) s[i] += bs; // coalesce with previous string
        else s[++i] = bs;
      }
      if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
        if (s[i]) s[i] += bm; // coalesce with previous string
        else s[++i] = bm;
      } else { // interpolate non-matching numbers
        s[++i] = null;
        q.push({i: i, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(am, bm)});
      }
      bi = reB.lastIndex;
    }
  
    // Add remains of b.
    if (bi < b.length) {
      bs = b.slice(bi);
      if (s[i]) s[i] += bs; // coalesce with previous string
      else s[++i] = bs;
    }
  
    // Special optimization for only a single match.
    // Otherwise, interpolate each of the numbers and rejoin the string.
    return s.length < 2 ? (q[0]
        ? one(q[0].x)
        : zero(b))
        : (b = q.length, function(t) {
            for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
            return s.join("");
          });
  };
  
  
  /***/ }),
  /* 288 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(domain, interval) {
    domain = domain.slice();
  
    var i0 = 0,
        i1 = domain.length - 1,
        x0 = domain[i0],
        x1 = domain[i1],
        t;
  
    if (x1 < x0) {
      t = i0, i0 = i1, i1 = t;
      t = x0, x0 = x1, x1 = t;
    }
  
    domain[i0] = interval.floor(x0);
    domain[i1] = interval.ceil(x1);
    return domain;
  };
  
  
  /***/ }),
  /* 289 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(x) {
    return +x;
  };
  
  
  /***/ }),
  /* 290 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_collection__ = __webpack_require__(22);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(56);
  /* unused harmony export implicit */
  /* harmony export (immutable) */ __webpack_exports__["a"] = ordinal;
  
  
  
  var implicit = {name: "implicit"};
  
  function ordinal(range) {
    var index = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_collection__["a" /* map */])(),
        domain = [],
        unknown = implicit;
  
    range = range == null ? [] : __WEBPACK_IMPORTED_MODULE_1__array__["b" /* slice */].call(range);
  
    function scale(d) {
      var key = d + "", i = index.get(key);
      if (!i) {
        if (unknown !== implicit) return unknown;
        index.set(key, i = domain.push(d));
      }
      return range[(i - 1) % range.length];
    }
  
    scale.domain = function(_) {
      if (!arguments.length) return domain.slice();
      domain = [], index = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_collection__["a" /* map */])();
      var i = -1, n = _.length, d, key;
      while (++i < n) if (!index.has(key = (d = _[i]) + "")) index.set(key, domain.push(d));
      return scale;
    };
  
    scale.range = function(_) {
      return arguments.length ? (range = __WEBPACK_IMPORTED_MODULE_1__array__["b" /* slice */].call(_), scale) : range.slice();
    };
  
    scale.unknown = function(_) {
      return arguments.length ? (unknown = _, scale) : unknown;
    };
  
    scale.copy = function() {
      return ordinal()
          .domain(domain)
          .range(range)
          .unknown(unknown);
    };
  
    return scale;
  }
  
  
  /***/ }),
  /* 291 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__ = __webpack_require__(75);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3_time__ = __webpack_require__(246);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_d3_time_format__ = __webpack_require__(13);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__array__ = __webpack_require__(56);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__continuous__ = __webpack_require__(99);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nice__ = __webpack_require__(288);
  /* harmony export (immutable) */ __webpack_exports__["a"] = calendar;
  
  
  
  
  
  
  
  
  var durationSecond = 1000,
      durationMinute = durationSecond * 60,
      durationHour = durationMinute * 60,
      durationDay = durationHour * 24,
      durationWeek = durationDay * 7,
      durationMonth = durationDay * 30,
      durationYear = durationDay * 365;
  
  function date(t) {
    return new Date(t);
  }
  
  function number(t) {
    return t instanceof Date ? +t : +new Date(+t);
  }
  
  function calendar(year, month, week, day, hour, minute, second, millisecond, format) {
    var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__continuous__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_5__continuous__["b" /* deinterpolateLinear */], __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__["a" /* interpolateNumber */]),
        invert = scale.invert,
        domain = scale.domain;
  
    var formatMillisecond = format(".%L"),
        formatSecond = format(":%S"),
        formatMinute = format("%I:%M"),
        formatHour = format("%I %p"),
        formatDay = format("%a %d"),
        formatWeek = format("%b %d"),
        formatMonth = format("%B"),
        formatYear = format("%Y");
  
    var tickIntervals = [
      [second,  1,      durationSecond],
      [second,  5,  5 * durationSecond],
      [second, 15, 15 * durationSecond],
      [second, 30, 30 * durationSecond],
      [minute,  1,      durationMinute],
      [minute,  5,  5 * durationMinute],
      [minute, 15, 15 * durationMinute],
      [minute, 30, 30 * durationMinute],
      [  hour,  1,      durationHour  ],
      [  hour,  3,  3 * durationHour  ],
      [  hour,  6,  6 * durationHour  ],
      [  hour, 12, 12 * durationHour  ],
      [   day,  1,      durationDay   ],
      [   day,  2,  2 * durationDay   ],
      [  week,  1,      durationWeek  ],
      [ month,  1,      durationMonth ],
      [ month,  3,  3 * durationMonth ],
      [  year,  1,      durationYear  ]
    ];
  
    function tickFormat(date) {
      return (second(date) < date ? formatMillisecond
          : minute(date) < date ? formatSecond
          : hour(date) < date ? formatMinute
          : day(date) < date ? formatHour
          : month(date) < date ? (week(date) < date ? formatDay : formatWeek)
          : year(date) < date ? formatMonth
          : formatYear)(date);
    }
  
    function tickInterval(interval, start, stop, step) {
      if (interval == null) interval = 10;
  
      // If a desired tick count is specified, pick a reasonable tick interval
      // based on the extent of the domain and a rough estimate of tick size.
      // Otherwise, assume interval is already a time interval and use it.
      if (typeof interval === "number") {
        var target = Math.abs(stop - start) / interval,
            i = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["b" /* bisector */])(function(i) { return i[2]; }).right(tickIntervals, target);
        if (i === tickIntervals.length) {
          step = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["d" /* tickStep */])(start / durationYear, stop / durationYear, interval);
          interval = year;
        } else if (i) {
          i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
          step = i[1];
          interval = i[0];
        } else {
          step = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["d" /* tickStep */])(start, stop, interval);
          interval = millisecond;
        }
      }
  
      return step == null ? interval : interval.every(step);
    }
  
    scale.invert = function(y) {
      return new Date(invert(y));
    };
  
    scale.domain = function(_) {
      return arguments.length ? domain(__WEBPACK_IMPORTED_MODULE_4__array__["a" /* map */].call(_, number)) : domain().map(date);
    };
  
    scale.ticks = function(interval, step) {
      var d = domain(),
          t0 = d[0],
          t1 = d[d.length - 1],
          r = t1 < t0,
          t;
      if (r) t = t0, t0 = t1, t1 = t;
      t = tickInterval(interval, t0, t1, step);
      t = t ? t.range(t0, t1 + 1) : []; // inclusive stop
      return r ? t.reverse() : t;
    };
  
    scale.tickFormat = function(count, specifier) {
      return specifier == null ? tickFormat : format(specifier);
    };
  
    scale.nice = function(interval, step) {
      var d = domain();
      return (interval = tickInterval(interval, d[0], d[d.length - 1], step))
          ? domain(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__nice__["a" /* default */])(d, interval))
          : scale;
    };
  
    scale.copy = function() {
      return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__continuous__["c" /* copy */])(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));
    };
  
    return scale;
  }
  
  /* harmony default export */ __webpack_exports__["b"] = function() {
    return calendar(__WEBPACK_IMPORTED_MODULE_2_d3_time__["j" /* timeYear */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["o" /* timeMonth */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["p" /* timeWeek */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["i" /* timeDay */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["q" /* timeHour */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["r" /* timeMinute */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["s" /* timeSecond */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["t" /* timeMillisecond */], __WEBPACK_IMPORTED_MODULE_3_d3_time_format__["c" /* timeFormat */]).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);
  };
  
  
  /***/ }),
  /* 292 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  var matcher = function(selector) {
    return function() {
      return this.matches(selector);
    };
  };
  
  if (typeof document !== "undefined") {
    var element = document.documentElement;
    if (!element.matches) {
      var vendorMatches = element.webkitMatchesSelector
          || element.msMatchesSelector
          || element.mozMatchesSelector
          || element.oMatchesSelector;
      matcher = function(selector) {
        return function() {
          return vendorMatches.call(this, selector);
        };
      };
    }
  }
  
  /* harmony default export */ __webpack_exports__["a"] = matcher;
  
  
  /***/ }),
  /* 293 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sparse__ = __webpack_require__(294);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__index__ = __webpack_require__(33);
  /* harmony export (immutable) */ __webpack_exports__["b"] = EnterNode;
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function() {
    return new __WEBPACK_IMPORTED_MODULE_1__index__["a" /* Selection */](this._enter || this._groups.map(__WEBPACK_IMPORTED_MODULE_0__sparse__["a" /* default */]), this._parents);
  };
  
  function EnterNode(parent, datum) {
    this.ownerDocument = parent.ownerDocument;
    this.namespaceURI = parent.namespaceURI;
    this._next = null;
    this._parent = parent;
    this.__data__ = datum;
  }
  
  EnterNode.prototype = {
    constructor: EnterNode,
    appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
    insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
    querySelector: function(selector) { return this._parent.querySelector(selector); },
    querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
  };
  
  
  /***/ }),
  /* 294 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(update) {
    return new Array(update.length);
  };
  
  
  /***/ }),
  /* 295 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function empty() {
    return [];
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(selector) {
    return selector == null ? empty : function() {
      return this.querySelectorAll(selector);
    };
  };
  
  
  /***/ }),
  /* 296 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defaultLocale__ = __webpack_require__(245);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isoSpecifier; });
  
  
  var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";
  
  function formatIsoNative(date) {
    return date.toISOString();
  }
  
  var formatIso = Date.prototype.toISOString
      ? formatIsoNative
      : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__defaultLocale__["b" /* utcFormat */])(isoSpecifier);
  
  /* unused harmony default export */ var _unused_webpack_default_export = formatIso;
  
  
  /***/ }),
  /* 297 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_time__ = __webpack_require__(246);
  /* harmony export (immutable) */ __webpack_exports__["a"] = formatLocale;
  
  
  function localDate(d) {
    if (0 <= d.y && d.y < 100) {
      var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
      date.setFullYear(d.y);
      return date;
    }
    return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
  }
  
  function utcDate(d) {
    if (0 <= d.y && d.y < 100) {
      var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
      date.setUTCFullYear(d.y);
      return date;
    }
    return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
  }
  
  function newYear(y) {
    return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};
  }
  
  function formatLocale(locale) {
    var locale_dateTime = locale.dateTime,
        locale_date = locale.date,
        locale_time = locale.time,
        locale_periods = locale.periods,
        locale_weekdays = locale.days,
        locale_shortWeekdays = locale.shortDays,
        locale_months = locale.months,
        locale_shortMonths = locale.shortMonths;
  
    var periodRe = formatRe(locale_periods),
        periodLookup = formatLookup(locale_periods),
        weekdayRe = formatRe(locale_weekdays),
        weekdayLookup = formatLookup(locale_weekdays),
        shortWeekdayRe = formatRe(locale_shortWeekdays),
        shortWeekdayLookup = formatLookup(locale_shortWeekdays),
        monthRe = formatRe(locale_months),
        monthLookup = formatLookup(locale_months),
        shortMonthRe = formatRe(locale_shortMonths),
        shortMonthLookup = formatLookup(locale_shortMonths);
  
    var formats = {
      "a": formatShortWeekday,
      "A": formatWeekday,
      "b": formatShortMonth,
      "B": formatMonth,
      "c": null,
      "d": formatDayOfMonth,
      "e": formatDayOfMonth,
      "H": formatHour24,
      "I": formatHour12,
      "j": formatDayOfYear,
      "L": formatMilliseconds,
      "m": formatMonthNumber,
      "M": formatMinutes,
      "p": formatPeriod,
      "S": formatSeconds,
      "U": formatWeekNumberSunday,
      "w": formatWeekdayNumber,
      "W": formatWeekNumberMonday,
      "x": null,
      "X": null,
      "y": formatYear,
      "Y": formatFullYear,
      "Z": formatZone,
      "%": formatLiteralPercent
    };
  
    var utcFormats = {
      "a": formatUTCShortWeekday,
      "A": formatUTCWeekday,
      "b": formatUTCShortMonth,
      "B": formatUTCMonth,
      "c": null,
      "d": formatUTCDayOfMonth,
      "e": formatUTCDayOfMonth,
      "H": formatUTCHour24,
      "I": formatUTCHour12,
      "j": formatUTCDayOfYear,
      "L": formatUTCMilliseconds,
      "m": formatUTCMonthNumber,
      "M": formatUTCMinutes,
      "p": formatUTCPeriod,
      "S": formatUTCSeconds,
      "U": formatUTCWeekNumberSunday,
      "w": formatUTCWeekdayNumber,
      "W": formatUTCWeekNumberMonday,
      "x": null,
      "X": null,
      "y": formatUTCYear,
      "Y": formatUTCFullYear,
      "Z": formatUTCZone,
      "%": formatLiteralPercent
    };
  
    var parses = {
      "a": parseShortWeekday,
      "A": parseWeekday,
      "b": parseShortMonth,
      "B": parseMonth,
      "c": parseLocaleDateTime,
      "d": parseDayOfMonth,
      "e": parseDayOfMonth,
      "H": parseHour24,
      "I": parseHour24,
      "j": parseDayOfYear,
      "L": parseMilliseconds,
      "m": parseMonthNumber,
      "M": parseMinutes,
      "p": parsePeriod,
      "S": parseSeconds,
      "U": parseWeekNumberSunday,
      "w": parseWeekdayNumber,
      "W": parseWeekNumberMonday,
      "x": parseLocaleDate,
      "X": parseLocaleTime,
      "y": parseYear,
      "Y": parseFullYear,
      "Z": parseZone,
      "%": parseLiteralPercent
    };
  
    // These recursive directive definitions must be deferred.
    formats.x = newFormat(locale_date, formats);
    formats.X = newFormat(locale_time, formats);
    formats.c = newFormat(locale_dateTime, formats);
    utcFormats.x = newFormat(locale_date, utcFormats);
    utcFormats.X = newFormat(locale_time, utcFormats);
    utcFormats.c = newFormat(locale_dateTime, utcFormats);
  
    function newFormat(specifier, formats) {
      return function(date) {
        var string = [],
            i = -1,
            j = 0,
            n = specifier.length,
            c,
            pad,
            format;
  
        if (!(date instanceof Date)) date = new Date(+date);
  
        while (++i < n) {
          if (specifier.charCodeAt(i) === 37) {
            string.push(specifier.slice(j, i));
            if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
            else pad = c === "e" ? " " : "0";
            if (format = formats[c]) c = format(date, pad);
            string.push(c);
            j = i + 1;
          }
        }
  
        string.push(specifier.slice(j, i));
        return string.join("");
      };
    }
  
    function newParse(specifier, newDate) {
      return function(string) {
        var d = newYear(1900),
            i = parseSpecifier(d, specifier, string += "", 0);
        if (i != string.length) return null;
  
        // The am-pm flag is 0 for AM, and 1 for PM.
        if ("p" in d) d.H = d.H % 12 + d.p * 12;
  
        // Convert day-of-week and week-of-year to day-of-year.
        if ("W" in d || "U" in d) {
          if (!("w" in d)) d.w = "W" in d ? 1 : 0;
          var day = "Z" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();
          d.m = 0;
          d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
        }
  
        // If a time zone is specified, all fields are interpreted as UTC and then
        // offset according to the specified time zone.
        if ("Z" in d) {
          d.H += d.Z / 100 | 0;
          d.M += d.Z % 100;
          return utcDate(d);
        }
  
        // Otherwise, all fields are in local time.
        return newDate(d);
      };
    }
  
    function parseSpecifier(d, specifier, string, j) {
      var i = 0,
          n = specifier.length,
          m = string.length,
          c,
          parse;
  
      while (i < n) {
        if (j >= m) return -1;
        c = specifier.charCodeAt(i++);
        if (c === 37) {
          c = specifier.charAt(i++);
          parse = parses[c in pads ? specifier.charAt(i++) : c];
          if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
        } else if (c != string.charCodeAt(j++)) {
          return -1;
        }
      }
  
      return j;
    }
  
    function parsePeriod(d, string, i) {
      var n = periodRe.exec(string.slice(i));
      return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;
    }
  
    function parseShortWeekday(d, string, i) {
      var n = shortWeekdayRe.exec(string.slice(i));
      return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
    }
  
    function parseWeekday(d, string, i) {
      var n = weekdayRe.exec(string.slice(i));
      return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
    }
  
    function parseShortMonth(d, string, i) {
      var n = shortMonthRe.exec(string.slice(i));
      return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
    }
  
    function parseMonth(d, string, i) {
      var n = monthRe.exec(string.slice(i));
      return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
    }
  
    function parseLocaleDateTime(d, string, i) {
      return parseSpecifier(d, locale_dateTime, string, i);
    }
  
    function parseLocaleDate(d, string, i) {
      return parseSpecifier(d, locale_date, string, i);
    }
  
    function parseLocaleTime(d, string, i) {
      return parseSpecifier(d, locale_time, string, i);
    }
  
    function formatShortWeekday(d) {
      return locale_shortWeekdays[d.getDay()];
    }
  
    function formatWeekday(d) {
      return locale_weekdays[d.getDay()];
    }
  
    function formatShortMonth(d) {
      return locale_shortMonths[d.getMonth()];
    }
  
    function formatMonth(d) {
      return locale_months[d.getMonth()];
    }
  
    function formatPeriod(d) {
      return locale_periods[+(d.getHours() >= 12)];
    }
  
    function formatUTCShortWeekday(d) {
      return locale_shortWeekdays[d.getUTCDay()];
    }
  
    function formatUTCWeekday(d) {
      return locale_weekdays[d.getUTCDay()];
    }
  
    function formatUTCShortMonth(d) {
      return locale_shortMonths[d.getUTCMonth()];
    }
  
    function formatUTCMonth(d) {
      return locale_months[d.getUTCMonth()];
    }
  
    function formatUTCPeriod(d) {
      return locale_periods[+(d.getUTCHours() >= 12)];
    }
  
    return {
      format: function(specifier) {
        var f = newFormat(specifier += "", formats);
        f.toString = function() { return specifier; };
        return f;
      },
      parse: function(specifier) {
        var p = newParse(specifier += "", localDate);
        p.toString = function() { return specifier; };
        return p;
      },
      utcFormat: function(specifier) {
        var f = newFormat(specifier += "", utcFormats);
        f.toString = function() { return specifier; };
        return f;
      },
      utcParse: function(specifier) {
        var p = newParse(specifier, utcDate);
        p.toString = function() { return specifier; };
        return p;
      }
    };
  }
  
  var pads = {"-": "", "_": " ", "0": "0"},
      numberRe = /^\s*\d+/, // note: ignores next directive
      percentRe = /^%/,
      requoteRe = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
  
  function pad(value, fill, width) {
    var sign = value < 0 ? "-" : "",
        string = (sign ? -value : value) + "",
        length = string.length;
    return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
  }
  
  function requote(s) {
    return s.replace(requoteRe, "\\$&");
  }
  
  function formatRe(names) {
    return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
  }
  
  function formatLookup(names) {
    var map = {}, i = -1, n = names.length;
    while (++i < n) map[names[i].toLowerCase()] = i;
    return map;
  }
  
  function parseWeekdayNumber(d, string, i) {
    var n = numberRe.exec(string.slice(i, i + 1));
    return n ? (d.w = +n[0], i + n[0].length) : -1;
  }
  
  function parseWeekNumberSunday(d, string, i) {
    var n = numberRe.exec(string.slice(i));
    return n ? (d.U = +n[0], i + n[0].length) : -1;
  }
  
  function parseWeekNumberMonday(d, string, i) {
    var n = numberRe.exec(string.slice(i));
    return n ? (d.W = +n[0], i + n[0].length) : -1;
  }
  
  function parseFullYear(d, string, i) {
    var n = numberRe.exec(string.slice(i, i + 4));
    return n ? (d.y = +n[0], i + n[0].length) : -1;
  }
  
  function parseYear(d, string, i) {
    var n = numberRe.exec(string.slice(i, i + 2));
    return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
  }
  
  function parseZone(d, string, i) {
    var n = /^(Z)|([+-]\d\d)(?:\:?(\d\d))?/.exec(string.slice(i, i + 6));
    return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
  }
  
  function parseMonthNumber(d, string, i) {
    var n = numberRe.exec(string.slice(i, i + 2));
    return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
  }
  
  function parseDayOfMonth(d, string, i) {
    var n = numberRe.exec(string.slice(i, i + 2));
    return n ? (d.d = +n[0], i + n[0].length) : -1;
  }
  
  function parseDayOfYear(d, string, i) {
    var n = numberRe.exec(string.slice(i, i + 3));
    return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
  }
  
  function parseHour24(d, string, i) {
    var n = numberRe.exec(string.slice(i, i + 2));
    return n ? (d.H = +n[0], i + n[0].length) : -1;
  }
  
  function parseMinutes(d, string, i) {
    var n = numberRe.exec(string.slice(i, i + 2));
    return n ? (d.M = +n[0], i + n[0].length) : -1;
  }
  
  function parseSeconds(d, string, i) {
    var n = numberRe.exec(string.slice(i, i + 2));
    return n ? (d.S = +n[0], i + n[0].length) : -1;
  }
  
  function parseMilliseconds(d, string, i) {
    var n = numberRe.exec(string.slice(i, i + 3));
    return n ? (d.L = +n[0], i + n[0].length) : -1;
  }
  
  function parseLiteralPercent(d, string, i) {
    var n = percentRe.exec(string.slice(i, i + 1));
    return n ? i + n[0].length : -1;
  }
  
  function formatDayOfMonth(d, p) {
    return pad(d.getDate(), p, 2);
  }
  
  function formatHour24(d, p) {
    return pad(d.getHours(), p, 2);
  }
  
  function formatHour12(d, p) {
    return pad(d.getHours() % 12 || 12, p, 2);
  }
  
  function formatDayOfYear(d, p) {
    return pad(1 + __WEBPACK_IMPORTED_MODULE_0_d3_time__["i" /* timeDay */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__["j" /* timeYear */])(d), d), p, 3);
  }
  
  function formatMilliseconds(d, p) {
    return pad(d.getMilliseconds(), p, 3);
  }
  
  function formatMonthNumber(d, p) {
    return pad(d.getMonth() + 1, p, 2);
  }
  
  function formatMinutes(d, p) {
    return pad(d.getMinutes(), p, 2);
  }
  
  function formatSeconds(d, p) {
    return pad(d.getSeconds(), p, 2);
  }
  
  function formatWeekNumberSunday(d, p) {
    return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__["k" /* timeSunday */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__["j" /* timeYear */])(d), d), p, 2);
  }
  
  function formatWeekdayNumber(d) {
    return d.getDay();
  }
  
  function formatWeekNumberMonday(d, p) {
    return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__["l" /* timeMonday */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__["j" /* timeYear */])(d), d), p, 2);
  }
  
  function formatYear(d, p) {
    return pad(d.getFullYear() % 100, p, 2);
  }
  
  function formatFullYear(d, p) {
    return pad(d.getFullYear() % 10000, p, 4);
  }
  
  function formatZone(d) {
    var z = d.getTimezoneOffset();
    return (z > 0 ? "-" : (z *= -1, "+"))
        + pad(z / 60 | 0, "0", 2)
        + pad(z % 60, "0", 2);
  }
  
  function formatUTCDayOfMonth(d, p) {
    return pad(d.getUTCDate(), p, 2);
  }
  
  function formatUTCHour24(d, p) {
    return pad(d.getUTCHours(), p, 2);
  }
  
  function formatUTCHour12(d, p) {
    return pad(d.getUTCHours() % 12 || 12, p, 2);
  }
  
  function formatUTCDayOfYear(d, p) {
    return pad(1 + __WEBPACK_IMPORTED_MODULE_0_d3_time__["d" /* utcDay */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__["a" /* utcYear */])(d), d), p, 3);
  }
  
  function formatUTCMilliseconds(d, p) {
    return pad(d.getUTCMilliseconds(), p, 3);
  }
  
  function formatUTCMonthNumber(d, p) {
    return pad(d.getUTCMonth() + 1, p, 2);
  }
  
  function formatUTCMinutes(d, p) {
    return pad(d.getUTCMinutes(), p, 2);
  }
  
  function formatUTCSeconds(d, p) {
    return pad(d.getUTCSeconds(), p, 2);
  }
  
  function formatUTCWeekNumberSunday(d, p) {
    return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__["m" /* utcSunday */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__["a" /* utcYear */])(d), d), p, 2);
  }
  
  function formatUTCWeekdayNumber(d) {
    return d.getUTCDay();
  }
  
  function formatUTCWeekNumberMonday(d, p) {
    return pad(__WEBPACK_IMPORTED_MODULE_0_d3_time__["n" /* utcMonday */].count(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_time__["a" /* utcYear */])(d), d), p, 2);
  }
  
  function formatUTCYear(d, p) {
    return pad(d.getUTCFullYear() % 100, p, 2);
  }
  
  function formatUTCFullYear(d, p) {
    return pad(d.getUTCFullYear() % 10000, p, 4);
  }
  
  function formatUTCZone() {
    return "+0000";
  }
  
  function formatLiteralPercent() {
    return "%";
  }
  
  
  /***/ }),
  /* 298 */,
  /* 299 */,
  /* 300 */,
  /* 301 */,
  /* 302 */,
  /* 303 */,
  /* 304 */,
  /* 305 */,
  /* 306 */,
  /* 307 */,
  /* 308 */,
  /* 309 */,
  /* 310 */,
  /* 311 */,
  /* 312 */,
  /* 313 */,
  /* 314 */,
  /* 315 */,
  /* 316 */,
  /* 317 */,
  /* 318 */,
  /* 319 */,
  /* 320 */,
  /* 321 */,
  /* 322 */,
  /* 323 */,
  /* 324 */,
  /* 325 */,
  /* 326 */,
  /* 327 */,
  /* 328 */,
  /* 329 */,
  /* 330 */,
  /* 331 */,
  /* 332 */,
  /* 333 */,
  /* 334 */,
  /* 335 */,
  /* 336 */,
  /* 337 */,
  /* 338 */,
  /* 339 */,
  /* 340 */,
  /* 341 */,
  /* 342 */,
  /* 343 */,
  /* 344 */,
  /* 345 */,
  /* 346 */,
  /* 347 */,
  /* 348 */,
  /* 349 */,
  /* 350 */,
  /* 351 */,
  /* 352 */,
  /* 353 */,
  /* 354 */,
  /* 355 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_PureComponent__ = __webpack_require__(177);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils__ = __webpack_require__(1);
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  
  
  
  
  
  var BackgroundText = function (_PureComponent) {
  	_inherits(BackgroundText, _PureComponent);
  
  	function BackgroundText() {
  		_classCallCheck(this, BackgroundText);
  
  		return _possibleConstructorReturn(this, (BackgroundText.__proto__ || Object.getPrototypeOf(BackgroundText)).apply(this, arguments));
  	}
  
  	_createClass(BackgroundText, [{
  		key: "componentDidMount",
  		value: function componentDidMount() {
  			if (this.context.chartCanvasType !== "svg" && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["a" /* isDefined */])(this.context.getCanvasContexts)) {
  				var contexts = this.context.getCanvasContexts();
  				if (contexts) BackgroundText.drawOnCanvas(contexts.bg, this.props, this.context, this.props.children);
  			}
  		}
  	}, {
  		key: "componentDidUpdate",
  		value: function componentDidUpdate() {
  			this.componentDidMount();
  		}
  	}, {
  		key: "render",
  		value: function render() {
  			var chartCanvasType = this.context.chartCanvasType;
  
  
  			if (chartCanvasType !== "svg") return null;
  
  			var _props = this.props,
  			    x = _props.x,
  			    y = _props.y,
  			    fill = _props.fill,
  			    opacity = _props.opacity,
  			    stroke = _props.stroke,
  			    strokeOpacity = _props.strokeOpacity,
  			    fontFamily = _props.fontFamily,
  			    fontSize = _props.fontSize,
  			    textAnchor = _props.textAnchor;
  
  			var props = { x: x, y: y, fill: fill, opacity: opacity, stroke: stroke, strokeOpacity: strokeOpacity, fontFamily: fontFamily, fontSize: fontSize, textAnchor: textAnchor };
  			return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  				"text",
  				props,
  				"this.props.children(interval)"
  			);
  		}
  	}]);
  
  	return BackgroundText;
  }(__WEBPACK_IMPORTED_MODULE_1__utils_PureComponent__["a" /* default */]);
  
  BackgroundText.drawOnCanvas = function (ctx, props, _ref, getText) {
  	var interval = _ref.interval;
  
  	ctx.clearRect(-1, -1, ctx.canvas.width + 2, ctx.canvas.height + 2);
  	ctx.save();
  
  	ctx.setTransform(1, 0, 0, 1, 0, 0);
  	ctx.translate(0.5, 0.5);
  
  	var x = props.x,
  	    y = props.y,
  	    fill = props.fill,
  	    opacity = props.opacity,
  	    stroke = props.stroke,
  	    strokeOpacity = props.strokeOpacity,
  	    fontFamily = props.fontFamily,
  	    fontSize = props.fontSize,
  	    textAnchor = props.textAnchor;
  
  
  	var text = getText(interval);
  
  	ctx.strokeStyle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["g" /* hexToRGBA */])(stroke, strokeOpacity);
  
  	ctx.font = fontSize + "px " + fontFamily;
  	ctx.fillStyle = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["g" /* hexToRGBA */])(fill, opacity);
  	ctx.textAlign = textAnchor === "middle" ? "center" : textAnchor;
  
  	if (stroke !== "none") ctx.strokeText(text, x, y);
  	ctx.fillText(text, x, y);
  
  	ctx.restore();
  };
  
  BackgroundText.propTypes = {
  	x: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	y: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	fontFamily: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string,
  	fontSize: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	fill: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string,
  	stroke: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string,
  	opacity: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  	strokeOpacity: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  	textAnchor: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string,
  	children: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func
  };
  
  BackgroundText.defaultProps = {
  	opacity: 0.3,
  	fill: "#9E7523",
  	stroke: "#9E7523",
  	strokeOpacity: 1,
  	fontFamily: "Helvetica Neue, Helvetica, Arial, sans-serif",
  	fontSize: 12,
  	textAnchor: "middle"
  };
  
  BackgroundText.contextTypes = {
  	interval: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string.isRequired,
  	getCanvasContexts: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	chartCanvasType: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string
  };
  
  /* harmony default export */ __webpack_exports__["a"] = BackgroundText;
  
  /***/ }),
  /* 356 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils__ = __webpack_require__(1);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__ = __webpack_require__(52);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__EventCapture__ = __webpack_require__(407);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__CanvasContainer__ = __webpack_require__(406);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__scale_evaluator__ = __webpack_require__(426);
  
  
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  var _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"); } }; }();
  
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  
  function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  var log = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["H" /* getLogger */])("ChartCanvas");
  
  var CANDIDATES_FOR_RESET = ["seriesName"];
  
  function shouldResetChart(thisProps, nextProps) {
  	return !CANDIDATES_FOR_RESET.every(function (key) {
  		var result = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["z" /* shallowEqual */])(thisProps[key], nextProps[key]);
  		// console.log(key, result);
  		return result;
  	});
  }
  
  function getCursorStyle(useCrossHairStyleCursor) {
  	var style = "\n\t.react-stockcharts-grabbing-cursor {\n\t\tpointer-events: all;\n\t\tcursor: -moz-grabbing;\n\t\tcursor: -webkit-grabbing;\n\t\tcursor: grabbing;\n\t}\n\t.react-stockcharts-crosshair-cursor {\n\t\tpointer-events: all;\n\t\tcursor: crosshair;\n\t}\n\t.react-stockcharts-toottip-hover {\n\t\tpointer-events: all;\n\t\tcursor: pointer;\n\t}";
  	var tooltipStyle = "\n\t.react-stockcharts-avoid-interaction {\n\t\tpointer-events: none;\n\t}\n\t.react-stockcharts-enable-interaction {\n\t\tpointer-events: all;\n\t}\n\t.react-stockcharts-toottip {\n\t\tpointer-events: all;\n\t\tcursor: pointer;\n\t}\n\t.react-stockcharts-default-cursor {\n\t\tcursor: default;\n\t}\n\t.react-stockcharts-move-cursor {\n\t\tcursor: move;\n\t}\n\t.react-stockcharts-pointer-cursor {\n\t\tcursor: pointer;\n\t}\n\t.react-stockcharts-ns-resize-cursor {\n\t\tcursor: ns-resize;\n\t}\n\t.react-stockcharts-ew-resize-cursor {\n\t\tcursor: ew-resize;\n\t}";
  	return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  		"style",
  		{ type: "text/css" },
  		useCrossHairStyleCursor ? style + tooltipStyle : tooltipStyle
  	);
  }
  
  function getDimensions(props) {
  	return {
  		height: props.height - props.margin.top - props.margin.bottom,
  		width: props.width - props.margin.left - props.margin.right
  	};
  }
  
  function getXScaleDirection(flipXScale) {
  	return flipXScale ? -1 : 1;
  }
  
  function calculateFullData(props) {
  	var fullData = props.data,
  	    plotFull = props.plotFull,
  	    xScale = props.xScale,
  	    clamp = props.clamp,
  	    pointsPerPxThreshold = props.pointsPerPxThreshold;
  	var xAccessor = props.xAccessor,
  	    displayXAccessor = props.displayXAccessor;
  
  
  	var useWholeData = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["a" /* isDefined */])(plotFull) ? plotFull : xAccessor === __WEBPACK_IMPORTED_MODULE_2__utils__["i" /* identity */];
  
  	var filterData = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__scale_evaluator__["a" /* default */])({
  		xAccessor: xAccessor,
  		xScale: xScale,
  		useWholeData: useWholeData,
  		clamp: clamp,
  		pointsPerPxThreshold: pointsPerPxThreshold
  	});
  
  	return {
  		xAccessor: xAccessor,
  		displayXAccessor: displayXAccessor || xAccessor,
  		xScale: xScale,
  		fullData: fullData,
  		filterData: filterData
  	};
  }
  function resetChart(props) {
  	var firstCalculation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  
  	if (false) {
  		if (!firstCalculation) log("CHART RESET");
  	}
  
  	var state = calculateState(props);
  	var xAccessor = state.xAccessor,
  	    displayXAccessor = state.displayXAccessor,
  	    fullData = state.fullData;
  	var initialPlotData = state.plotData,
  	    xScale = state.xScale;
  	var postCalculator = props.postCalculator,
  	    children = props.children;
  
  
  	var plotData = postCalculator(initialPlotData);
  
  	var dimensions = getDimensions(props);
  	var chartConfig = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["b" /* getChartConfigWithUpdatedYScales */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["c" /* getNewChartConfig */])(dimensions, children), { plotData: plotData, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }, xScale.domain());
  
  	return _extends({}, state, {
  		xScale: xScale,
  		plotData: plotData,
  		chartConfig: chartConfig
  	});
  }
  
  function updateChart(newState, initialXScale, props, lastItemWasVisible) {
  	var fullData = newState.fullData,
  	    xScale = newState.xScale,
  	    xAccessor = newState.xAccessor,
  	    displayXAccessor = newState.displayXAccessor,
  	    filterData = newState.filterData;
  
  
  	var lastItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["e" /* last */])(fullData);
  
  	var _initialXScale$domain = initialXScale.domain(),
  	    _initialXScale$domain2 = _slicedToArray(_initialXScale$domain, 2),
  	    start = _initialXScale$domain2[0],
  	    end = _initialXScale$domain2[1];
  
  	if (false) {
  		log("TRIVIAL CHANGE");
  	}
  
  	var postCalculator = props.postCalculator,
  	    children = props.children,
  	    padding = props.padding,
  	    flipXScale = props.flipXScale;
  
  	var direction = getXScaleDirection(flipXScale);
  	var dimensions = getDimensions(props);
  
  	var updatedXScale = setXRange(xScale, dimensions, padding, direction);
  
  	var initialPlotData = void 0;
  	if (!lastItemWasVisible || end >= xAccessor(lastItem)) {
  		// get plotData between [start, end] and do not change the domain
  		initialPlotData = filterData(fullData, [start, end], xAccessor, updatedXScale).plotData;
  		updatedXScale.domain([start, end]);
  		// console.log("HERE!!!!!", start, end);
  	} else if (lastItemWasVisible && end < xAccessor(lastItem)) {
  		(function () {
  
  			// get plotData between [xAccessor(l) - (end - start), xAccessor(l)] and DO change the domain
  			var dx = initialXScale(xAccessor(lastItem)) - initialXScale.range()[1];
  
  			var _initialXScale$range$ = initialXScale.range().map(function (x) {
  				return x + dx;
  			}).map(initialXScale.invert),
  			    _initialXScale$range$2 = _slicedToArray(_initialXScale$range$, 2),
  			    newStart = _initialXScale$range$2[0],
  			    newEnd = _initialXScale$range$2[1];
  
  			initialPlotData = filterData(fullData, [newStart, newEnd], xAccessor, updatedXScale).plotData;
  			updatedXScale.domain([newStart, newEnd]);
  			// if last item was visible, then shift
  		})();
  	}
  	// plotData = getDataOfLength(fullData, showingInterval, plotData.length)
  	var plotData = postCalculator(initialPlotData);
  	var chartConfig = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["b" /* getChartConfigWithUpdatedYScales */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["c" /* getNewChartConfig */])(dimensions, children), { plotData: plotData, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }, updatedXScale.domain());
  
  	return {
  		xScale: updatedXScale,
  		xAccessor: xAccessor,
  		chartConfig: chartConfig,
  		plotData: plotData,
  		fullData: fullData,
  		filterData: filterData
  	};
  }
  
  function calculateState(props) {
  	var inputXAccesor = props.xAccessor,
  	    xExtentsProp = props.xExtents,
  	    data = props.data,
  	    padding = props.padding,
  	    flipXScale = props.flipXScale;
  
  
  	var direction = getXScaleDirection(flipXScale);
  	var dimensions = getDimensions(props);
  
  	var extent = typeof xExtentsProp === "function" ? xExtentsProp(data) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_array__["q" /* extent */])(xExtentsProp.map(function (d) {
  		return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["b" /* functor */])(d);
  	}).map(function (each) {
  		return each(data, inputXAccesor);
  	}));
  
  	var _calculateFullData = calculateFullData(props),
  	    xAccessor = _calculateFullData.xAccessor,
  	    displayXAccessor = _calculateFullData.displayXAccessor,
  	    xScale = _calculateFullData.xScale,
  	    fullData = _calculateFullData.fullData,
  	    filterData = _calculateFullData.filterData;
  
  	var updatedXScale = setXRange(xScale, dimensions, padding, direction);
  
  	var _filterData = filterData(fullData, extent, inputXAccesor, updatedXScale),
  	    plotData = _filterData.plotData,
  	    domain = _filterData.domain;
  
  	return {
  		plotData: plotData,
  		xScale: updatedXScale.domain(domain),
  		xAccessor: xAccessor,
  		displayXAccessor: displayXAccessor,
  		fullData: fullData,
  		filterData: filterData
  	};
  }
  
  function setXRange(xScale, dimensions, padding) {
  	var direction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
  
  	if (xScale.rangeRoundPoints) {
  		if (isNaN(padding)) throw new Error("padding has to be a number for ordinal scale");
  		xScale.rangeRoundPoints([0, dimensions.width], padding);
  	} else if (xScale.padding) {
  		if (isNaN(padding)) throw new Error("padding has to be a number for ordinal scale");
  		xScale.range([0, dimensions.width]);
  		xScale.padding(padding / 2);
  	} else {
  		var _ref = isNaN(padding) ? padding : { left: padding, right: padding },
  		    left = _ref.left,
  		    right = _ref.right;
  
  		if (direction > 0) {
  			xScale.range([left, dimensions.width - right]);
  		} else {
  			xScale.range([dimensions.width - right, left]);
  		}
  	}
  	return xScale;
  }
  
  function pinchCoordinates(pinch) {
  	var touch1Pos = pinch.touch1Pos,
  	    touch2Pos = pinch.touch2Pos;
  
  
  	return {
  		topLeft: [Math.min(touch1Pos[0], touch2Pos[0]), Math.min(touch1Pos[1], touch2Pos[1])],
  		bottomRight: [Math.max(touch1Pos[0], touch2Pos[0]), Math.max(touch1Pos[1], touch2Pos[1])]
  	};
  }
  
  var ChartCanvas = function (_Component) {
  	_inherits(ChartCanvas, _Component);
  
  	function ChartCanvas() {
  		_classCallCheck(this, ChartCanvas);
  
  		var _this = _possibleConstructorReturn(this, (ChartCanvas.__proto__ || Object.getPrototypeOf(ChartCanvas)).call(this));
  
  		_this.getDataInfo = _this.getDataInfo.bind(_this);
  		_this.getCanvasContexts = _this.getCanvasContexts.bind(_this);
  
  		_this.handleMouseMove = _this.handleMouseMove.bind(_this);
  		_this.handleMouseEnter = _this.handleMouseEnter.bind(_this);
  		_this.handleMouseLeave = _this.handleMouseLeave.bind(_this);
  		_this.handleZoom = _this.handleZoom.bind(_this);
  		_this.handlePinchZoom = _this.handlePinchZoom.bind(_this);
  		_this.handlePinchZoomEnd = _this.handlePinchZoomEnd.bind(_this);
  		_this.handlePan = _this.handlePan.bind(_this);
  		_this.handlePanEnd = _this.handlePanEnd.bind(_this);
  		_this.handleClick = _this.handleClick.bind(_this);
  		_this.handleMouseDown = _this.handleMouseDown.bind(_this);
  		_this.handleDoubleClick = _this.handleDoubleClick.bind(_this);
  		_this.handleContextMenu = _this.handleContextMenu.bind(_this);
  		_this.handleDragStart = _this.handleDragStart.bind(_this);
  		_this.handleDrag = _this.handleDrag.bind(_this);
  		_this.handleDragEnd = _this.handleDragEnd.bind(_this);
  
  		_this.panHelper = _this.panHelper.bind(_this);
  		_this.pinchZoomHelper = _this.pinchZoomHelper.bind(_this);
  		_this.xAxisZoom = _this.xAxisZoom.bind(_this);
  		_this.yAxisZoom = _this.yAxisZoom.bind(_this);
  		_this.resetYDomain = _this.resetYDomain.bind(_this);
  		_this.calculateStateForDomain = _this.calculateStateForDomain.bind(_this);
  		_this.generateSubscriptionId = _this.generateSubscriptionId.bind(_this);
  		_this.draw = _this.draw.bind(_this);
  		_this.redraw = _this.redraw.bind(_this);
  		_this.isSomethingSelectedAndHovering = _this.isSomethingSelectedAndHovering.bind(_this);
  
  		_this.subscriptions = [];
  		_this.subscribe = _this.subscribe.bind(_this);
  		_this.unsubscribe = _this.unsubscribe.bind(_this);
  		_this.amIOnTop = _this.amIOnTop.bind(_this);
  		_this.saveEventCaptureNode = _this.saveEventCaptureNode.bind(_this);
  		_this.saveCanvasContainerNode = _this.saveCanvasContainerNode.bind(_this);
  		_this.setCursorClass = _this.setCursorClass.bind(_this);
  		_this.getMutableState = _this.getMutableState.bind(_this);
  		// this.canvasDrawCallbackList = [];
  		_this.interactiveState = [];
  		_this.panInProgress = false;
  
  		_this.state = {};
  		_this.mutableState = {};
  		_this.lastSubscriptionId = 0;
  		return _this;
  	}
  
  	_createClass(ChartCanvas, [{
  		key: "saveEventCaptureNode",
  		value: function saveEventCaptureNode(node) {
  			this.eventCaptureNode = node;
  		}
  	}, {
  		key: "saveCanvasContainerNode",
  		value: function saveCanvasContainerNode(node) {
  			this.canvasContainerNode = node;
  		}
  	}, {
  		key: "getMutableState",
  		value: function getMutableState() {
  			return this.mutableState;
  		}
  	}, {
  		key: "getDataInfo",
  		value: function getDataInfo() {
  			return _extends({}, this.state, {
  				fullData: this.fullData
  			});
  		}
  	}, {
  		key: "getCanvasContexts",
  		value: function getCanvasContexts() {
  			if (this.canvasContainerNode) {
  				return this.canvasContainerNode.getCanvasContexts();
  			}
  		}
  	}, {
  		key: "generateSubscriptionId",
  		value: function generateSubscriptionId() {
  			this.lastSubscriptionId++;
  			return this.lastSubscriptionId;
  		}
  	}, {
  		key: "clearBothCanvas",
  		value: function clearBothCanvas() {
  			var canvases = this.getCanvasContexts();
  			if (canvases && canvases.axes) {
  				__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["I" /* clearCanvas */])([canvases.axes,
  				// canvases.hover,
  				canvases.mouseCoord], this.props.ratio);
  			}
  		}
  	}, {
  		key: "clearMouseCanvas",
  		value: function clearMouseCanvas() {
  			var canvases = this.getCanvasContexts();
  			if (canvases && canvases.mouseCoord) {
  				__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["I" /* clearCanvas */])([canvases.mouseCoord], this.props.ratio);
  			}
  		}
  	}, {
  		key: "clearThreeCanvas",
  		value: function clearThreeCanvas() {
  			var canvases = this.getCanvasContexts();
  			if (canvases && canvases.axes) {
  				__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["I" /* clearCanvas */])([canvases.axes,
  				// canvases.hover,
  				canvases.mouseCoord, canvases.bg], this.props.ratio);
  			}
  		}
  	}, {
  		key: "subscribe",
  		value: function subscribe(id, rest) {
  			var _rest$isDraggable = rest.isDraggable,
  			    isDraggable = _rest$isDraggable === undefined ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["b" /* functor */])(false) : _rest$isDraggable;
  
  			this.subscriptions = this.subscriptions.concat(_extends({
  				id: id
  			}, rest, {
  				isDraggable: isDraggable
  			}));
  		}
  	}, {
  		key: "unsubscribe",
  		value: function unsubscribe(id) {
  			this.subscriptions = this.subscriptions.filter(function (each) {
  				return each.id !== id;
  			});
  		}
  	}, {
  		key: "isSomethingSelectedAndHovering",
  		value: function isSomethingSelectedAndHovering() {
  			return this.subscriptions.filter(function (each) {
  				return each.isDraggable();
  			}).length > 0;
  		}
  	}, {
  		key: "setCursorClass",
  		value: function setCursorClass(className) {
  			this.eventCaptureNode.setCursorClass(className);
  		}
  	}, {
  		key: "amIOnTop",
  		value: function amIOnTop(id) {
  			var dragableComponents = this.subscriptions.filter(function (each) {
  				return each.isDraggable();
  			});
  
  			return dragableComponents.length > 0 && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["e" /* last */])(dragableComponents).id === id;
  		}
  	}, {
  		key: "handleContextMenu",
  		value: function handleContextMenu(mouseXY, e) {
  			var _state = this.state,
  			    xAccessor = _state.xAccessor,
  			    chartConfig = _state.chartConfig,
  			    plotData = _state.plotData,
  			    xScale = _state.xScale;
  
  
  			var currentCharts = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["d" /* getCurrentCharts */])(chartConfig, mouseXY);
  			var currentItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["a" /* getCurrentItem */])(xScale, xAccessor, mouseXY, plotData);
  
  			this.triggerEvent("contextmenu", {
  				mouseXY: mouseXY,
  				currentItem: currentItem,
  				currentCharts: currentCharts
  			}, e);
  		}
  	}, {
  		key: "calculateStateForDomain",
  		value: function calculateStateForDomain(newDomain) {
  			var _state2 = this.state,
  			    xAccessor = _state2.xAccessor,
  			    displayXAccessor = _state2.displayXAccessor,
  			    initialXScale = _state2.xScale,
  			    initialChartConfig = _state2.chartConfig,
  			    initialPlotData = _state2.plotData;
  			var filterData = this.state.filterData;
  			var fullData = this.fullData;
  			var postCalculator = this.props.postCalculator;
  
  			var _filterData2 = filterData(fullData, newDomain, xAccessor, initialXScale, initialPlotData, initialXScale.domain()),
  			    beforePlotData = _filterData2.plotData,
  			    domain = _filterData2.domain;
  
  			var plotData = postCalculator(beforePlotData);
  			var updatedScale = initialXScale.copy().domain(domain);
  			var chartConfig = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["b" /* getChartConfigWithUpdatedYScales */])(initialChartConfig, { plotData: plotData, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }, updatedScale.domain());
  
  			return {
  				xScale: updatedScale,
  				plotData: plotData,
  				chartConfig: chartConfig
  			};
  		}
  	}, {
  		key: "pinchZoomHelper",
  		value: function pinchZoomHelper(initialPinch, finalPinch) {
  			var initialPinchXScale = initialPinch.xScale;
  			var _state3 = this.state,
  			    initialXScale = _state3.xScale,
  			    initialChartConfig = _state3.chartConfig,
  			    initialPlotData = _state3.plotData,
  			    xAccessor = _state3.xAccessor,
  			    displayXAccessor = _state3.displayXAccessor;
  			var filterData = this.state.filterData;
  			var fullData = this.fullData;
  			var postCalculator = this.props.postCalculator;
  
  			var _pinchCoordinates = pinchCoordinates(initialPinch),
  			    iTL = _pinchCoordinates.topLeft,
  			    iBR = _pinchCoordinates.bottomRight;
  
  			var _pinchCoordinates2 = pinchCoordinates(finalPinch),
  			    fTL = _pinchCoordinates2.topLeft,
  			    fBR = _pinchCoordinates2.bottomRight;
  
  			var e = initialPinchXScale.range()[1];
  
  			var xDash = Math.round(-(iBR[0] * fTL[0] - iTL[0] * fBR[0]) / (iTL[0] - iBR[0]));
  			var yDash = Math.round(e + ((e - iBR[0]) * (e - fTL[0]) - (e - iTL[0]) * (e - fBR[0])) / (e - iTL[0] - (e - iBR[0])));
  
  			var x = Math.round(-xDash * iTL[0] / (-xDash + fTL[0]));
  			var y = Math.round(e - (yDash - e) * (e - iTL[0]) / (yDash + (e - fTL[0])));
  
  			var newDomain = [x, y].map(initialPinchXScale.invert);
  			// var domainR = initial.right + right;
  
  			var _filterData3 = filterData(fullData, newDomain, xAccessor, initialPinchXScale, initialPlotData, initialXScale.domain()),
  			    beforePlotData = _filterData3.plotData,
  			    domain = _filterData3.domain;
  
  			var plotData = postCalculator(beforePlotData);
  			var updatedScale = initialXScale.copy().domain(domain);
  
  			var mouseXY = finalPinch.touch1Pos;
  			var chartConfig = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["b" /* getChartConfigWithUpdatedYScales */])(initialChartConfig, { plotData: plotData, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }, updatedScale.domain());
  			var currentItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["a" /* getCurrentItem */])(updatedScale, xAccessor, mouseXY, plotData);
  
  			return {
  				chartConfig: chartConfig,
  				xScale: updatedScale,
  				plotData: plotData,
  				mouseXY: mouseXY,
  				currentItem: currentItem
  			};
  		}
  	}, {
  		key: "handlePinchZoom",
  		value: function handlePinchZoom(initialPinch, finalPinch, e) {
  			var _this2 = this;
  
  			if (!this.waitingForAnimationFrame) {
  				this.waitingForAnimationFrame = true;
  				var state = this.pinchZoomHelper(initialPinch, finalPinch);
  
  				this.triggerEvent("pinchzoom", state, e);
  
  				this.finalPinch = finalPinch;
  
  				requestAnimationFrame(function () {
  					_this2.clearBothCanvas();
  					_this2.draw({ trigger: "pinchzoom" });
  					_this2.waitingForAnimationFrame = false;
  				});
  			}
  		}
  	}, {
  		key: "handlePinchZoomEnd",
  		value: function handlePinchZoomEnd(initialPinch, e) {
  			var _this3 = this;
  
  			var xAccessor = this.state.xAccessor;
  
  
  			if (this.finalPinch) {
  				(function () {
  					var state = _this3.pinchZoomHelper(initialPinch, _this3.finalPinch);
  					var xScale = state.xScale;
  
  					_this3.triggerEvent("pinchzoom", state, e);
  
  					_this3.finalPinch = null;
  
  					_this3.clearThreeCanvas();
  
  					var fullData = _this3.fullData;
  
  					var firstItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["k" /* first */])(fullData);
  
  					var start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["k" /* first */])(xScale.domain());
  					var end = xAccessor(firstItem);
  					var onLoadMore = _this3.props.onLoadMore;
  
  
  					_this3.setState(state, function () {
  						if (start < end) {
  							onLoadMore(start, end);
  						}
  					});
  				})();
  			}
  		}
  	}, {
  		key: "handleZoom",
  		value: function handleZoom(zoomDirection, mouseXY, e) {
  			// console.log("zoomDirection ", zoomDirection, " mouseXY ", mouseXY);
  			var _state4 = this.state,
  			    xAccessor = _state4.xAccessor,
  			    initialXScale = _state4.xScale,
  			    initialPlotData = _state4.plotData;
  			var zoomMultiplier = this.props.zoomMultiplier;
  
  
  			var item = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["a" /* getCurrentItem */])(initialXScale, xAccessor, mouseXY, initialPlotData),
  			    cx = initialXScale(xAccessor(item)),
  			    c = zoomDirection > 0 ? 1 * zoomMultiplier : 1 / zoomMultiplier,
  			    newDomain = initialXScale.range().map(function (x) {
  				return cx + (x - cx) * c;
  			}).map(initialXScale.invert);
  
  			var _calculateStateForDom = this.calculateStateForDomain(newDomain),
  			    xScale = _calculateStateForDom.xScale,
  			    plotData = _calculateStateForDom.plotData,
  			    chartConfig = _calculateStateForDom.chartConfig;
  
  			var currentItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["a" /* getCurrentItem */])(xScale, xAccessor, mouseXY, plotData);
  			var currentCharts = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["d" /* getCurrentCharts */])(chartConfig, mouseXY);
  
  			this.clearThreeCanvas();
  
  			var fullData = this.fullData;
  
  			var firstItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["k" /* first */])(fullData);
  
  			var start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["k" /* first */])(xScale.domain());
  			var end = xAccessor(firstItem);
  			var onLoadMore = this.props.onLoadMore;
  
  
  			this.triggerEvent("zoom", {
  				show: true,
  				mouseXY: mouseXY,
  				currentCharts: currentCharts,
  				currentItem: currentItem
  			}, e);
  
  			this.setState({
  				xScale: xScale,
  				plotData: plotData,
  				chartConfig: chartConfig
  			}, function () {
  				if (start < end) {
  					onLoadMore(start, end);
  				}
  			});
  		}
  	}, {
  		key: "xAxisZoom",
  		value: function xAxisZoom(newDomain) {
  			var _calculateStateForDom2 = this.calculateStateForDomain(newDomain),
  			    xScale = _calculateStateForDom2.xScale,
  			    plotData = _calculateStateForDom2.plotData,
  			    chartConfig = _calculateStateForDom2.chartConfig;
  
  			this.clearThreeCanvas();
  
  			var xAccessor = this.state.xAccessor;
  			var fullData = this.fullData;
  
  			var firstItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["k" /* first */])(fullData);
  			var start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["k" /* first */])(xScale.domain());
  			var end = xAccessor(firstItem);
  			var onLoadMore = this.props.onLoadMore;
  
  
  			this.setState({
  				xScale: xScale,
  				plotData: plotData,
  				chartConfig: chartConfig
  			}, function () {
  				if (start < end) onLoadMore(start, end);
  			});
  		}
  	}, {
  		key: "yAxisZoom",
  		value: function yAxisZoom(chartId, newDomain) {
  			this.clearThreeCanvas();
  			var initialChartConfig = this.state.chartConfig;
  
  			var chartConfig = initialChartConfig.map(function (each) {
  				if (each.id === chartId) {
  					var yScale = each.yScale;
  
  					return _extends({}, each, {
  						yScale: yScale.copy().domain(newDomain),
  						yPanEnabled: true
  					});
  				} else {
  					return each;
  				}
  			});
  
  			this.setState({
  				chartConfig: chartConfig
  			});
  		}
  	}, {
  		key: "triggerEvent",
  		value: function triggerEvent(type, props, e) {
  			var _this4 = this;
  
  			// console.log("triggering ->", type);
  
  			this.subscriptions.forEach(function (each) {
  				var state = _extends({}, _this4.state, {
  					fullData: _this4.fullData,
  					subscriptions: _this4.subscriptions
  				});
  				each.listener(type, props, state, e);
  			});
  		}
  	}, {
  		key: "draw",
  		value: function draw(props) {
  			this.subscriptions.forEach(function (each) {
  				if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["a" /* isDefined */])(each.draw)) each.draw(props);
  			});
  		}
  	}, {
  		key: "redraw",
  		value: function redraw() {
  			this.clearThreeCanvas();
  			this.draw({ force: true });
  		}
  	}, {
  		key: "panHelper",
  		value: function panHelper(mouseXY, initialXScale, panOrigin, chartsToPan) {
  			var _state5 = this.state,
  			    xAccessor = _state5.xAccessor,
  			    displayXAccessor = _state5.displayXAccessor,
  			    initialChartConfig = _state5.chartConfig;
  			var filterData = this.state.filterData;
  			var fullData = this.fullData;
  			var postCalculator = this.props.postCalculator;
  
  
  			var dx = mouseXY[0] - panOrigin[0];
  			var dy = mouseXY[1] - panOrigin[1];
  
  			if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["d" /* isNotDefined */])(initialXScale.invert)) throw new Error("xScale provided does not have an invert() method." + "You are likely using an ordinal scale. This scale does not support zoom, pan");
  
  			var newDomain = initialXScale.range().map(function (x) {
  				return x - dx;
  			}).map(initialXScale.invert);
  
  			var _filterData4 = filterData(fullData, newDomain, xAccessor, initialXScale, this.hackyWayToStopPanBeyondBounds__plotData, this.hackyWayToStopPanBeyondBounds__domain),
  			    beforePlotData = _filterData4.plotData,
  			    domain = _filterData4.domain;
  
  			var updatedScale = initialXScale.copy().domain(domain);
  			var plotData = postCalculator(beforePlotData);
  			// console.log(last(plotData));
  
  			var currentItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["a" /* getCurrentItem */])(updatedScale, xAccessor, mouseXY, plotData);
  			var chartConfig = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["b" /* getChartConfigWithUpdatedYScales */])(initialChartConfig, { plotData: plotData, xAccessor: xAccessor, displayXAccessor: displayXAccessor, fullData: fullData }, updatedScale.domain(), dy, chartsToPan);
  			var currentCharts = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["d" /* getCurrentCharts */])(chartConfig, mouseXY);
  
  			// console.log(initialXScale.domain(), newDomain, updatedScale.domain());
  			return {
  				xScale: updatedScale,
  				plotData: plotData,
  				chartConfig: chartConfig,
  				mouseXY: mouseXY,
  				currentCharts: currentCharts,
  				currentItem: currentItem
  			};
  		}
  	}, {
  		key: "handlePan",
  		value: function handlePan(mousePosition, panStartXScale, panOrigin, chartsToPan, e) {
  			var _this5 = this;
  
  			if (!this.waitingForPanAnimationFrame) {
  				this.waitingForPanAnimationFrame = true;
  
  				this.hackyWayToStopPanBeyondBounds__plotData = this.hackyWayToStopPanBeyondBounds__plotData || this.state.plotData;
  				this.hackyWayToStopPanBeyondBounds__domain = this.hackyWayToStopPanBeyondBounds__domain || this.state.xScale.domain();
  
  				var state = this.panHelper(mousePosition, panStartXScale, panOrigin, chartsToPan);
  
  				this.hackyWayToStopPanBeyondBounds__plotData = state.plotData;
  				this.hackyWayToStopPanBeyondBounds__domain = state.xScale.domain();
  
  				this.panInProgress = true;
  				// console.log(panStartXScale.domain(), state.xScale.domain())
  
  				this.triggerEvent("pan", state, e);
  
  				this.mutableState = {
  					mouseXY: state.mouseXY,
  					currentItem: state.currentItem,
  					currentCharts: state.currentCharts
  				};
  				requestAnimationFrame(function () {
  
  					_this5.waitingForPanAnimationFrame = false;
  					_this5.clearBothCanvas();
  					_this5.draw({ trigger: "pan" });
  				});
  			}
  		}
  	}, {
  		key: "handleMouseDown",
  		value: function handleMouseDown(mousePosition, currentCharts, e) {
  			this.triggerEvent("mousedown", null, e);
  		}
  	}, {
  		key: "handleMouseEnter",
  		value: function handleMouseEnter(e) {
  			this.triggerEvent("mouseenter", {
  				show: true
  			}, e);
  		}
  	}, {
  		key: "handleMouseMove",
  		value: function handleMouseMove(mouseXY, inputType, e) {
  			var _this6 = this;
  
  			if (!this.waitingForAnimationFrame) {
  				this.waitingForAnimationFrame = true;
  
  				var _state6 = this.state,
  				    chartConfig = _state6.chartConfig,
  				    plotData = _state6.plotData,
  				    xScale = _state6.xScale,
  				    xAccessor = _state6.xAccessor;
  
  				var currentCharts = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["d" /* getCurrentCharts */])(chartConfig, mouseXY);
  				var currentItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["a" /* getCurrentItem */])(xScale, xAccessor, mouseXY, plotData);
  				this.triggerEvent("mousemove", {
  					show: true,
  					mouseXY: mouseXY,
  					// prevMouseXY is used in interactive components
  					prevMouseXY: this.prevMouseXY,
  					currentItem: currentItem,
  					currentCharts: currentCharts
  				}, e);
  
  				this.prevMouseXY = mouseXY;
  				this.mutableState = {
  					mouseXY: mouseXY,
  					currentItem: currentItem,
  					currentCharts: currentCharts
  				};
  
  				requestAnimationFrame(function () {
  					_this6.clearMouseCanvas();
  					_this6.draw({ trigger: "mousemove" });
  					_this6.waitingForAnimationFrame = false;
  				});
  			}
  		}
  	}, {
  		key: "handleMouseLeave",
  		value: function handleMouseLeave(e) {
  			this.triggerEvent("mouseleave", { show: false }, e);
  			this.clearMouseCanvas();
  			this.draw({ trigger: "mouseleave" });
  		}
  	}, {
  		key: "handleDragStart",
  		value: function handleDragStart(mousePosition, e) {
  			this.triggerEvent("dragstart", { mousePosition: mousePosition }, e);
  		}
  	}, {
  		key: "handleDrag",
  		value: function handleDrag(_ref2, e) {
  			var _this7 = this;
  
  			var startPos = _ref2.startPos,
  			    mouseXY = _ref2.mouseXY;
  			var _state7 = this.state,
  			    chartConfig = _state7.chartConfig,
  			    plotData = _state7.plotData,
  			    xScale = _state7.xScale,
  			    xAccessor = _state7.xAccessor;
  
  			var currentCharts = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["d" /* getCurrentCharts */])(chartConfig, mouseXY);
  			var currentItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["a" /* getCurrentItem */])(xScale, xAccessor, mouseXY, plotData);
  
  			this.triggerEvent("drag", {
  				startPos: startPos,
  				mouseXY: mouseXY,
  				currentItem: currentItem,
  				currentCharts: currentCharts
  			}, e);
  
  			requestAnimationFrame(function () {
  				_this7.clearMouseCanvas();
  				_this7.draw({ trigger: "drag" });
  			});
  		}
  	}, {
  		key: "handleDragEnd",
  		value: function handleDragEnd(mousePosition, e) {
  			var _this8 = this;
  
  			this.triggerEvent("dragend", { mousePosition: mousePosition }, e);
  
  			requestAnimationFrame(function () {
  				_this8.clearMouseCanvas();
  				_this8.draw({ trigger: "dragend" });
  			});
  		}
  	}, {
  		key: "handleClick",
  		value: function handleClick(mousePosition, e) {
  			var _this9 = this;
  
  			this.triggerEvent("click", {}, e);
  
  			requestAnimationFrame(function () {
  				_this9.clearMouseCanvas();
  				_this9.draw({ trigger: "click" });
  			});
  		}
  	}, {
  		key: "handleDoubleClick",
  		value: function handleDoubleClick(mousePosition, e) {
  			this.triggerEvent("dblclick", {}, e);
  		}
  	}, {
  		key: "handlePanEnd",
  		value: function handlePanEnd(mousePosition, panStartXScale, panOrigin, chartsToPan, e) {
  			var _this10 = this;
  
  			var state = this.panHelper(mousePosition, panStartXScale, panOrigin, chartsToPan);
  			// console.log(this.canvasDrawCallbackList.map(d => d.type));
  			this.hackyWayToStopPanBeyondBounds__plotData = null;
  			this.hackyWayToStopPanBeyondBounds__domain = null;
  
  			this.panInProgress = false;
  
  			// console.log("PANEND", panEnd++);
  			var xScale = state.xScale,
  			    plotData = state.plotData,
  			    chartConfig = state.chartConfig;
  
  
  			this.triggerEvent("panend", state, e);
  
  			requestAnimationFrame(function () {
  				var xAccessor = _this10.state.xAccessor;
  				var fullData = _this10.fullData;
  
  
  				var firstItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["k" /* first */])(fullData);
  				var start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["k" /* first */])(xScale.domain());
  				var end = xAccessor(firstItem);
  				// console.log(start, end, start < end ? "Load more" : "I have it");
  
  				var onLoadMore = _this10.props.onLoadMore;
  
  
  				_this10.clearThreeCanvas();
  
  				_this10.setState({
  					xScale: xScale,
  					plotData: plotData,
  					chartConfig: chartConfig
  				}, function () {
  					if (start < end) onLoadMore(start, end);
  				});
  			});
  		}
  	}, {
  		key: "getChildContext",
  		value: function getChildContext() {
  			var dimensions = getDimensions(this.props);
  			return {
  				fullData: this.fullData,
  				plotData: this.state.plotData,
  				width: dimensions.width,
  				height: dimensions.height,
  				chartConfig: this.state.chartConfig,
  				xScale: this.state.xScale,
  				xAccessor: this.state.xAccessor,
  				displayXAccessor: this.state.displayXAccessor,
  				chartCanvasType: this.props.type,
  				margin: this.props.margin,
  				ratio: this.props.ratio,
  				xAxisZoom: this.xAxisZoom,
  				yAxisZoom: this.yAxisZoom,
  				getCanvasContexts: this.getCanvasContexts,
  				redraw: this.redraw,
  				subscribe: this.subscribe,
  				unsubscribe: this.unsubscribe,
  				generateSubscriptionId: this.generateSubscriptionId,
  				getMutableState: this.getMutableState,
  				amIOnTop: this.amIOnTop,
  				setCursorClass: this.setCursorClass
  			};
  		}
  	}, {
  		key: "componentWillMount",
  		value: function componentWillMount() {
  			var _resetChart = resetChart(this.props, true),
  			    fullData = _resetChart.fullData,
  			    state = _objectWithoutProperties(_resetChart, ["fullData"]);
  
  			this.setState(state);
  			this.fullData = fullData;
  		}
  	}, {
  		key: "componentWillReceiveProps",
  		value: function componentWillReceiveProps(nextProps) {
  			var reset = shouldResetChart(this.props, nextProps);
  
  			var interaction = isInteractionEnabled(this.state.xScale, this.state.xAccessor, this.state.plotData);
  
  			var newState = void 0;
  			if (!interaction || reset || !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["z" /* shallowEqual */])(this.props.xExtents, nextProps.xExtents)) {
  				if (false) {
  					if (!interaction) log("RESET CHART, changes to a non interactive chart");else if (reset) log("RESET CHART, one or more of these props changed", CANDIDATES_FOR_RESET);else log("xExtents changed");
  				}
  				// do reset
  				newState = resetChart(nextProps);
  			} else {
  				var _state$xScale$domain = this.state.xScale.domain(),
  				    _state$xScale$domain2 = _slicedToArray(_state$xScale$domain, 2),
  				    start = _state$xScale$domain2[0],
  				    end = _state$xScale$domain2[1];
  
  				var prevLastItem = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["e" /* last */])(this.fullData);
  
  				var calculatedState = calculateFullData(nextProps);
  				var xAccessor = calculatedState.xAccessor;
  
  				var lastItemWasVisible = xAccessor(prevLastItem) <= end && xAccessor(prevLastItem) >= start;
  
  				if (false) {
  					if (this.props.data !== nextProps.data) log("data is changed but seriesName did not, change the seriesName if you wish to reset the chart and lastItemWasVisible = ", lastItemWasVisible);else log("Trivial change, may be width/height or type changed, but that does not matter");
  				}
  				newState = updateChart(calculatedState, this.state.xScale, nextProps, lastItemWasVisible);
  			}
  
  			var _newState = newState,
  			    fullData = _newState.fullData,
  			    state = _objectWithoutProperties(_newState, ["fullData"]);
  
  			var initialChartConfig = this.state.chartConfig;
  
  
  			if (this.panInProgress) {
  				if (false) {
  					log("Pan is in progress");
  				}
  			} else {
  				if (!reset) {
  					state.chartConfig.forEach(function (each) {
  						var sourceChartConfig = initialChartConfig.filter(function (d) {
  							return d.id === each.id;
  						});
  						if (sourceChartConfig.length > 0 && sourceChartConfig[0].yPanEnabled) {
  							each.yScale.domain(sourceChartConfig[0].yScale.domain());
  							each.yPanEnabled = sourceChartConfig[0].yPanEnabled;
  						}
  					});
  				}
  				this.clearThreeCanvas();
  
  				this.setState(state);
  			}
  			this.fullData = fullData;
  		}
  	}, {
  		key: "resetYDomain",
  		value: function resetYDomain(chartId) {
  			var chartConfig = this.state.chartConfig;
  
  			var changed = false;
  			var newChartConfig = chartConfig.map(function (each) {
  				if ((__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["d" /* isNotDefined */])(chartId) || each.id === chartId) && !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["z" /* shallowEqual */])(each.yScale.domain(), each.realYDomain)) {
  					changed = true;
  					return _extends({}, each, {
  						yScale: each.yScale.domain(each.realYDomain),
  						yPanEnabled: false
  					});
  				}
  				return each;
  			});
  
  			if (changed) {
  				this.clearThreeCanvas();
  				this.setState({
  					chartConfig: newChartConfig
  				});
  			}
  		}
  	}, {
  		key: "shouldComponentUpdate",
  		value: function shouldComponentUpdate() {
  			return !this.panInProgress;
  		}
  	}, {
  		key: "render",
  		value: function render() {
  			var _props = this.props,
  			    type = _props.type,
  			    height = _props.height,
  			    width = _props.width,
  			    margin = _props.margin,
  			    className = _props.className,
  			    zIndex = _props.zIndex,
  			    defaultFocus = _props.defaultFocus,
  			    ratio = _props.ratio,
  			    mouseMoveEvent = _props.mouseMoveEvent,
  			    panEvent = _props.panEvent,
  			    zoomEvent = _props.zoomEvent;
  			var _props2 = this.props,
  			    useCrossHairStyleCursor = _props2.useCrossHairStyleCursor,
  			    drawMode = _props2.drawMode,
  			    onSelect = _props2.onSelect;
  			var _state8 = this.state,
  			    plotData = _state8.plotData,
  			    xScale = _state8.xScale,
  			    xAccessor = _state8.xAccessor,
  			    chartConfig = _state8.chartConfig;
  
  			var dimensions = getDimensions(this.props);
  
  			var interaction = isInteractionEnabled(xScale, xAccessor, plotData);
  
  			var cursor = getCursorStyle(useCrossHairStyleCursor && interaction);
  			return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  				"div",
  				{ style: { position: "relative", width: width, height: height }, className: className, onClick: onSelect },
  				__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__CanvasContainer__["a" /* default */], { ref: this.saveCanvasContainerNode,
  					type: type,
  					ratio: ratio,
  					width: width, height: height, zIndex: zIndex }),
  				__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  					"svg",
  					{ className: className, width: width, height: height, style: { position: "absolute", zIndex: zIndex + 5 } },
  					cursor,
  					__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  						"defs",
  						null,
  						__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  							"clipPath",
  							{ id: "chart-area-clip" },
  							__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("rect", { x: "0", y: "0", width: dimensions.width, height: dimensions.height })
  						),
  						chartConfig.map(function (each, idx) {
  							return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  								"clipPath",
  								{ key: idx, id: "chart-area-clip-" + each.id },
  								__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("rect", { x: "0", y: "0", width: each.width, height: each.height })
  							);
  						})
  					),
  					__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  						"g",
  						{ transform: "translate(" + (margin.left + 0.5) + ", " + (margin.top + 0.5) + ")" },
  						__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__EventCapture__["a" /* default */], {
  							ref: this.saveEventCaptureNode,
  							mouseMove: mouseMoveEvent && interaction,
  							zoom: zoomEvent && interaction,
  							pan: panEvent && interaction && !drawMode,
  
  							width: dimensions.width,
  							height: dimensions.height,
  							chartConfig: chartConfig,
  							xScale: xScale,
  							xAccessor: xAccessor,
  							focus: defaultFocus,
  
  							isSomethingSelectedAndHovering: this.isSomethingSelectedAndHovering,
  							onContextMenu: this.handleContextMenu,
  							onClick: this.handleClick,
  							onDoubleClick: this.handleDoubleClick,
  							onMouseDown: this.handleMouseDown,
  							onMouseMove: this.handleMouseMove,
  							onMouseEnter: this.handleMouseEnter,
  							onMouseLeave: this.handleMouseLeave,
  
  							onDragStart: this.handleDragStart,
  							onDrag: this.handleDrag,
  							onDragComplete: this.handleDragEnd,
  
  							onZoom: this.handleZoom,
  							onPinchZoom: this.handlePinchZoom,
  							onPinchZoomEnd: this.handlePinchZoomEnd,
  							onPan: this.handlePan,
  							onPanEnd: this.handlePanEnd
  						}),
  						__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  							"g",
  							{ className: "react-stockcharts-avoid-interaction" },
  							this.props.children
  						)
  					)
  				)
  			);
  		}
  	}]);
  
  	return ChartCanvas;
  }(__WEBPACK_IMPORTED_MODULE_0_react__["Component"]);
  
  function isInteractionEnabled(xScale, xAccessor, data) {
  	var interaction = !isNaN(xScale(xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["k" /* first */])(data)))) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["a" /* isDefined */])(xScale.invert);
  	return interaction;
  }
  
  ChartCanvas.propTypes = {
  	width: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	height: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	margin: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].object,
  	ratio: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	// interval: PropTypes.oneOf(["D", "W", "M"]), // ,"m1", "m5", "m15", "W", "M"
  	type: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].oneOf(["svg", "hybrid"]).isRequired,
  	pointsPerPxThreshold: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  	data: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array.isRequired,
  	// initialDisplay: PropTypes.number,
  	xAccessor: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	xExtents: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].oneOfType([__WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array, __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func]).isRequired,
  	// xScale: PropTypes.func.isRequired,
  	className: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string,
  	seriesName: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string.isRequired,
  	zIndex: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  	children: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].node.isRequired,
  	xScale: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	postCalculator: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	flipXScale: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	useCrossHairStyleCursor: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	drawMode: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	padding: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].oneOfType([__WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number, __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].shape({
  		left: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  		right: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number
  	})]).isRequired,
  	defaultFocus: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool,
  	zoomMultiplier: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	onLoadMore: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	displayXAccessor: function displayXAccessor(props, propName /* , componentName */) {
  		if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["d" /* isNotDefined */])(props[propName])) {
  			console.warn("`displayXAccessor` is not defined," + " will use the value from `xAccessor` as `displayXAccessor`." + " This might be ok if you do not use a discontinuous scale" + " but if you do, provide a `displayXAccessor` prop to `ChartCanvas`");
  		} else if (typeof props[propName] !== "function") {
  			return new Error("displayXAccessor has to be a function");
  		}
  	},
  	mouseMoveEvent: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	panEvent: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	zoomEvent: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	onSelect: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func
  };
  
  ChartCanvas.defaultProps = {
  	margin: { top: 20, right: 30, bottom: 30, left: 80 },
  	type: "hybrid",
  	pointsPerPxThreshold: 2,
  	className: "react-stockchart",
  	zIndex: 1,
  	xExtents: [__WEBPACK_IMPORTED_MODULE_1_d3_array__["i" /* min */], __WEBPACK_IMPORTED_MODULE_1_d3_array__["m" /* max */]],
  	postCalculator: __WEBPACK_IMPORTED_MODULE_2__utils__["i" /* identity */],
  	padding: 0,
  	xAccessor: __WEBPACK_IMPORTED_MODULE_2__utils__["i" /* identity */],
  	flipXScale: false,
  	useCrossHairStyleCursor: true,
  	drawMode: false,
  	defaultFocus: true,
  	onLoadMore: __WEBPACK_IMPORTED_MODULE_2__utils__["j" /* noop */],
  	onSelect: __WEBPACK_IMPORTED_MODULE_2__utils__["j" /* noop */],
  	mouseMoveEvent: true,
  	panEvent: true,
  	zoomEvent: true,
  	zoomMultiplier: 1.1
  };
  
  ChartCanvas.childContextTypes = {
  	plotData: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array,
  	fullData: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array,
  	chartConfig: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].arrayOf(__WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].shape({
  		id: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  		origin: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].arrayOf(__WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number).isRequired,
  		padding: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].oneOfType([__WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number, __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].shape({
  			top: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  			bottom: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number
  		})]),
  		yExtents: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].arrayOf(__WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func),
  		yExtentsProvider: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  		yScale: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  		mouseCoordinates: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].shape({
  			at: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string,
  			format: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func
  		}),
  		width: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  		height: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired
  	})).isRequired,
  	xScale: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	xAccessor: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	displayXAccessor: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	width: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	height: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	chartCanvasType: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].oneOf(["svg", "hybrid"]).isRequired,
  	margin: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].object.isRequired,
  	ratio: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	getCanvasContexts: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	xAxisZoom: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	yAxisZoom: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	amIOnTop: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	redraw: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	subscribe: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	unsubscribe: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	setCursorClass: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	generateSubscriptionId: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	getMutableState: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func
  };
  
  ChartCanvas.ohlcv = function (d) {
  	return { date: d.date, open: d.open, high: d.high, low: d.low, close: d.close, volume: d.volume };
  };
  
  /* harmony default export */ __webpack_exports__["a"] = ChartCanvas;
  
  /***/ }),
  /* 357 */,
  /* 358 */
  /***/ (function(module, exports) {
  
  var g;
  
  // This works in non-strict mode
  g = (function() {
  	return this;
  })();
  
  try {
  	// This works if eval is allowed (see CSP)
  	g = g || Function("return this")() || (1,eval)("this");
  } catch(e) {
  	// This works if the window reference is available
  	if(typeof window === "object")
  		g = window;
  }
  
  // g can still be undefined, but nothing to do about it...
  // We return undefined, instead of nothing here, so it's
  // easier to handle this case. if(!global) { ...}
  
  module.exports = g;
  
  
  /***/ }),
  /* 359 */,
  /* 360 */,
  /* 361 */,
  /* 362 */,
  /* 363 */,
  /* 364 */,
  /* 365 */,
  /* 366 */,
  /* 367 */,
  /* 368 */,
  /* 369 */,
  /* 370 */,
  /* 371 */,
  /* 372 */,
  /* 373 */,
  /* 374 */,
  /* 375 */,
  /* 376 */,
  /* 377 */,
  /* 378 */,
  /* 379 */,
  /* 380 */,
  /* 381 */,
  /* 382 */,
  /* 383 */,
  /* 384 */,
  /* 385 */,
  /* 386 */,
  /* 387 */,
  /* 388 */,
  /* 389 */,
  /* 390 */,
  /* 391 */,
  /* 392 */,
  /* 393 */,
  /* 394 */,
  /* 395 */,
  /* 396 */,
  /* 397 */,
  /* 398 */,
  /* 399 */,
  /* 400 */,
  /* 401 */,
  /* 402 */,
  /* 403 */,
  /* 404 */,
  /* 405 */,
  /* 406 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils__ = __webpack_require__(1);
  
  
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  
  
  
  var log = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["H" /* getLogger */])("CanvasContainer");
  
  var CanvasContainer = function (_Component) {
  	_inherits(CanvasContainer, _Component);
  
  	function CanvasContainer(props) {
  		_classCallCheck(this, CanvasContainer);
  
  		var _this = _possibleConstructorReturn(this, (CanvasContainer.__proto__ || Object.getPrototypeOf(CanvasContainer)).call(this, props));
  
  		_this.setDrawCanvas = _this.setDrawCanvas.bind(_this);
  		_this.drawCanvas = {};
  		return _this;
  	}
  
  	_createClass(CanvasContainer, [{
  		key: "setDrawCanvas",
  		value: function setDrawCanvas(node) {
  			if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["a" /* isDefined */])(node)) this.drawCanvas[node.id] = node.getContext("2d");else this.drawCanvas = {};
  		}
  	}, {
  		key: "getCanvasContexts",
  		value: function getCanvasContexts() {
  			if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["a" /* isDefined */])(this.drawCanvas.axes)) {
  				return this.drawCanvas;
  			}
  		}
  	}, {
  		key: "render",
  		value: function render() {
  			var _props = this.props,
  			    height = _props.height,
  			    width = _props.width,
  			    type = _props.type,
  			    zIndex = _props.zIndex,
  			    ratio = _props.ratio;
  
  			if (type === "svg") return null;
  
  			log("using ratio ", ratio);
  
  			return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
  				"div",
  				{ style: { position: "absolute", zIndex: zIndex } },
  				__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("canvas", { id: "bg", ref: this.setDrawCanvas, width: width * ratio, height: height * ratio,
  					style: { position: "absolute", width: width, height: height } }),
  				__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("canvas", { id: "axes", ref: this.setDrawCanvas, width: width * ratio, height: height * ratio,
  					style: { position: "absolute", width: width, height: height } }),
  				__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("canvas", { id: "mouseCoord", ref: this.setDrawCanvas, width: width * ratio, height: height * ratio,
  					style: { position: "absolute", width: width, height: height } })
  			);
  		}
  	}]);
  
  	return CanvasContainer;
  }(__WEBPACK_IMPORTED_MODULE_0_react__["Component"]);
  /*
  				<canvas id="hover" ref={this.setDrawCanvas} width={width * ratio} height={height * ratio}
  					style={{ position: "absolute", width: width, height: height }} />
  */
  
  
  CanvasContainer.propTypes = {
  	width: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	height: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	type: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].string.isRequired,
  	zIndex: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number,
  	ratio: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired
  };
  
  /* harmony default export */ __webpack_exports__["a"] = CanvasContainer;
  
  /***/ }),
  /* 407 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_selection__ = __webpack_require__(213);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils__ = __webpack_require__(1);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__ = __webpack_require__(52);
  
  
  var _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"); } }; }();
  
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  
  
  
  
  
  
  var EventCapture = function (_Component) {
  	_inherits(EventCapture, _Component);
  
  	function EventCapture(props) {
  		_classCallCheck(this, EventCapture);
  
  		var _this = _possibleConstructorReturn(this, (EventCapture.__proto__ || Object.getPrototypeOf(EventCapture)).call(this, props));
  
  		_this.handleEnter = _this.handleEnter.bind(_this);
  		_this.handleLeave = _this.handleLeave.bind(_this);
  		_this.handleWheel = _this.handleWheel.bind(_this);
  		_this.handleMouseMove = _this.handleMouseMove.bind(_this);
  		_this.handleMouseDown = _this.handleMouseDown.bind(_this);
  		_this.handlePanEnd = _this.handlePanEnd.bind(_this);
  		_this.handlePan = _this.handlePan.bind(_this);
  		_this.handleTouchStart = _this.handleTouchStart.bind(_this);
  		_this.handlePinchZoom = _this.handlePinchZoom.bind(_this);
  		_this.handlePinchZoomEnd = _this.handlePinchZoomEnd.bind(_this);
  
  		_this.handleRightClick = _this.handleRightClick.bind(_this);
  		_this.handleDrag = _this.handleDrag.bind(_this);
  		_this.handleDragEnd = _this.handleDragEnd.bind(_this);
  
  		_this.setCursorClass = _this.setCursorClass.bind(_this);
  		_this.saveNode = _this.saveNode.bind(_this);
  
  		_this.mouseInside = false;
  
  		_this.mouseInteraction = true;
  		_this.state = {
  			panInProgress: false
  		};
  		return _this;
  	}
  
  	_createClass(EventCapture, [{
  		key: "saveNode",
  		value: function saveNode(node) {
  			this.node = node;
  		}
  	}, {
  		key: "componentWillMount",
  		value: function componentWillMount() {
  			this.focus = this.props.focus;
  		}
  	}, {
  		key: "componentDidMount",
  		value: function componentDidMount() {
  			if (this.node) {
  				__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(this.node).on(__WEBPACK_IMPORTED_MODULE_2__utils__["J" /* MOUSEENTER */], this.handleEnter).on(__WEBPACK_IMPORTED_MODULE_2__utils__["K" /* MOUSELEAVE */], this.handleLeave);
  			}
  		}
  	}, {
  		key: "componentDidUpdate",
  		value: function componentDidUpdate() {
  			this.componentDidMount();
  		}
  	}, {
  		key: "componentWillUnmount",
  		value: function componentWillUnmount() {
  			if (this.node) {
  				__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(this.node).on(__WEBPACK_IMPORTED_MODULE_2__utils__["J" /* MOUSEENTER */], null).on(__WEBPACK_IMPORTED_MODULE_2__utils__["K" /* MOUSELEAVE */], null);
  			}
  		}
  	}, {
  		key: "handleEnter",
  		value: function handleEnter() {
  			var e = __WEBPACK_IMPORTED_MODULE_1_d3_selection__["d" /* event */];
  
  			var onMouseEnter = this.props.onMouseEnter;
  
  			this.mouseInside = true;
  			if (!this.state.panInProgress) {
  				var win = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["q" /* d3Window */])(this.node);
  				__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(win).on(__WEBPACK_IMPORTED_MODULE_2__utils__["r" /* MOUSEMOVE */], this.handleMouseMove);
  			}
  			onMouseEnter(e);
  		}
  	}, {
  		key: "handleLeave",
  		value: function handleLeave(e) {
  			var onMouseLeave = this.props.onMouseLeave;
  
  			this.mouseInside = false;
  			if (!this.state.panInProgress) {
  				var win = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["q" /* d3Window */])(this.node);
  				__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(win).on(__WEBPACK_IMPORTED_MODULE_2__utils__["r" /* MOUSEMOVE */], null);
  			}
  			onMouseLeave(e);
  		}
  	}, {
  		key: "handleWheel",
  		value: function handleWheel(e) {
  			var _props = this.props,
  			    zoom = _props.zoom,
  			    onZoom = _props.onZoom;
  
  
  			if (zoom && this.focus && e.deltaY !== 0) {
  				e.preventDefault();
  
  				var newPos = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["p" /* mousePosition */])(e);
  				var zoomDir = e.deltaY > 0 ? 1 : -1;
  
  				onZoom(zoomDir, newPos, e);
  			}
  		}
  	}, {
  		key: "handleMouseMove",
  		value: function handleMouseMove() {
  			var e = __WEBPACK_IMPORTED_MODULE_1_d3_selection__["d" /* event */];
  
  			var _props2 = this.props,
  			    onMouseMove = _props2.onMouseMove,
  			    mouseMove = _props2.mouseMove;
  
  
  			if (this.mouseInteraction && mouseMove && !this.state.panInProgress) {
  
  				var newPos = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["b" /* mouse */])(this.node);
  
  				onMouseMove(newPos, "mouse", e);
  			}
  		}
  	}, {
  		key: "handleRightClick",
  		value: function handleRightClick(e) {
  			e.stopPropagation();
  			e.preventDefault();
  
  			var _props3 = this.props,
  			    onContextMenu = _props3.onContextMenu,
  			    onPanEnd = _props3.onPanEnd;
  
  
  			var mouseXY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["p" /* mousePosition */])(e, this.node.getBoundingClientRect());
  
  			if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["a" /* isDefined */])(this.state.panStart)) {
  				var _state$panStart = this.state.panStart,
  				    panStartXScale = _state$panStart.panStartXScale,
  				    panOrigin = _state$panStart.panOrigin,
  				    chartsToPan = _state$panStart.chartsToPan;
  
  				if (this.panHappened) {
  					onPanEnd(mouseXY, panStartXScale, panOrigin, chartsToPan, e);
  				}
  				var win = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["q" /* d3Window */])(this.node);
  				__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(win).on(__WEBPACK_IMPORTED_MODULE_2__utils__["r" /* MOUSEMOVE */], null).on(__WEBPACK_IMPORTED_MODULE_2__utils__["s" /* MOUSEUP */], null);
  
  				this.setState({
  					panInProgress: false,
  					panStart: null
  				});
  			}
  
  			onContextMenu(mouseXY, e);
  
  			this.contextMenuClicked = true;
  		}
  	}, {
  		key: "handleDrag",
  		value: function handleDrag() {
  			var e = __WEBPACK_IMPORTED_MODULE_1_d3_selection__["d" /* event */];
  			if (this.props.onDrag) {
  				this.dragHappened = true;
  				var mouseXY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["b" /* mouse */])(this.node);
  				this.props.onDrag({
  					startPos: this.state.dragStartPosition,
  					mouseXY: mouseXY
  				}, e);
  			}
  		}
  	}, {
  		key: "handleDragEnd",
  		value: function handleDragEnd() {
  			var e = __WEBPACK_IMPORTED_MODULE_1_d3_selection__["d" /* event */];
  			var mouseXY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["b" /* mouse */])(this.node);
  
  			var win = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["q" /* d3Window */])(this.node);
  			__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(win).on(__WEBPACK_IMPORTED_MODULE_2__utils__["r" /* MOUSEMOVE */], this.mouseInside ? this.handleMouseMove : null).on(__WEBPACK_IMPORTED_MODULE_2__utils__["s" /* MOUSEUP */], null);
  
  			this.props.onDragComplete({
  				startPos: this.state.dragStartPosition,
  				mouseXY: mouseXY
  			}, e);
  
  			var onClick = this.props.onClick;
  
  			if (!this.dragHappened) {
  				setTimeout(function () {
  					onClick(mouseXY, e);
  				}, 100);
  			}
  
  			this.mouseInteraction = true;
  		}
  	}, {
  		key: "handleMouseDown",
  		value: function handleMouseDown(e) {
  			var _this2 = this;
  
  			var _props4 = this.props,
  			    panEnabled = _props4.pan,
  			    xScale = _props4.xScale,
  			    chartConfig = _props4.chartConfig,
  			    onMouseDown = _props4.onMouseDown;
  			var isSomethingSelectedAndHovering = this.props.isSomethingSelectedAndHovering;
  
  
  			this.panHappened = false;
  			this.dragHappened = false;
  			this.focus = true;
  
  			if (!this.state.panInProgress && this.mouseInteraction) {
  				(function () {
  
  					var mouseXY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["p" /* mousePosition */])(e);
  					var currentCharts = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["d" /* getCurrentCharts */])(chartConfig, mouseXY);
  					var somethingSelected = isSomethingSelectedAndHovering();
  
  					var pan = panEnabled && !somethingSelected;
  
  					if (pan) {
  						_this2.setState({
  							panInProgress: pan,
  							panStart: {
  								panStartXScale: xScale,
  								panOrigin: mouseXY,
  								chartsToPan: currentCharts
  							}
  						});
  
  						var win = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["q" /* d3Window */])(_this2.node);
  						__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(win).on(__WEBPACK_IMPORTED_MODULE_2__utils__["r" /* MOUSEMOVE */], _this2.handlePan).on(__WEBPACK_IMPORTED_MODULE_2__utils__["s" /* MOUSEUP */], _this2.handlePanEnd);
  					} else if (somethingSelected) {
  						_this2.setState({
  							panInProgress: false,
  							panStart: null,
  							dragStartPosition: mouseXY
  						});
  						_this2.props.onDragStart(e);
  						// this.mouseInteraction = false;
  
  						var _win = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["q" /* d3Window */])(_this2.node);
  						__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(_win).on(__WEBPACK_IMPORTED_MODULE_2__utils__["r" /* MOUSEMOVE */], _this2.handleDrag).on(__WEBPACK_IMPORTED_MODULE_2__utils__["s" /* MOUSEUP */], _this2.handleDragEnd);
  					}
  
  					if (!panEnabled) {
  						// This block of code gets executed when
  						// drawMode is enabled,
  						// pan is disabled in draw mode
  						e.persist();
  						setTimeout(function () {
  							if (!_this2.contextMenuClicked) {
  								// console.log("NO RIGHT")
  								onMouseDown(mouseXY, currentCharts, e);
  							}
  							_this2.contextMenuClicked = false;
  						}, 100);
  					}
  				})();
  			}
  			e.preventDefault();
  		}
  	}, {
  		key: "handlePan",
  		value: function handlePan() {
  			var e = __WEBPACK_IMPORTED_MODULE_1_d3_selection__["d" /* event */];
  
  			var _props5 = this.props,
  			    panEnabled = _props5.pan,
  			    onPan = _props5.onPan;
  
  
  			if (panEnabled && onPan && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["a" /* isDefined */])(this.state.panStart)) {
  
  				this.panHappened = true;
  
  				var _state$panStart2 = this.state.panStart,
  				    panStartXScale = _state$panStart2.panStartXScale,
  				    panOrigin = _state$panStart2.panOrigin,
  				    chartsToPan = _state$panStart2.chartsToPan;
  
  
  				var newPos = this.mouseInteraction ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["b" /* mouse */])(this.node) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["c" /* touches */])(this.node)[0];
  
  				this.lastNewPos = newPos;
  				onPan(newPos, panStartXScale, panOrigin, chartsToPan, e);
  			}
  		}
  	}, {
  		key: "handlePanEnd",
  		value: function handlePanEnd() {
  			var _this3 = this;
  
  			var e = __WEBPACK_IMPORTED_MODULE_1_d3_selection__["d" /* event */];
  
  			var _props6 = this.props,
  			    panEnabled = _props6.pan,
  			    onPanEnd = _props6.onPanEnd,
  			    onClick = _props6.onClick,
  			    onDoubleClick = _props6.onDoubleClick;
  
  
  			if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["a" /* isDefined */])(this.state.panStart)) {
  				(function () {
  					var _state$panStart3 = _this3.state.panStart,
  					    panStartXScale = _state$panStart3.panStartXScale,
  					    panOrigin = _state$panStart3.panOrigin,
  					    chartsToPan = _state$panStart3.chartsToPan;
  
  
  					if (!_this3.panHappened) {
  						if (_this3.clicked) {
  							onDoubleClick(panOrigin, e);
  							_this3.clicked = false;
  						} else {
  							_this3.clicked = true;
  							setTimeout(function () {
  								if (_this3.clicked) {
  									onClick(panOrigin, e);
  									_this3.clicked = false;
  								}
  							}, 100);
  						}
  					}
  
  					var win = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["q" /* d3Window */])(_this3.node);
  					__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(win).on(__WEBPACK_IMPORTED_MODULE_2__utils__["r" /* MOUSEMOVE */], _this3.mouseInside ? _this3.handleMouseMove : null).on(__WEBPACK_IMPORTED_MODULE_2__utils__["s" /* MOUSEUP */], null).on(__WEBPACK_IMPORTED_MODULE_2__utils__["t" /* TOUCHMOVE */], null).on(__WEBPACK_IMPORTED_MODULE_2__utils__["u" /* TOUCHEND */], null);
  
  					if (_this3.panHappened
  					// && !this.contextMenuClicked
  					&& panEnabled && onPanEnd) {
  
  						onPanEnd(_this3.lastNewPos, panStartXScale, panOrigin, chartsToPan, e);
  					}
  
  					_this3.setState({
  						panInProgress: false,
  						panStart: null
  					});
  				})();
  			}
  		}
  	}, {
  		key: "handleTouchStart",
  		value: function handleTouchStart(e) {
  			this.mouseInteraction = false;
  
  			var _props7 = this.props,
  			    panEnabled = _props7.pan,
  			    chartConfig = _props7.chartConfig,
  			    onMouseMove = _props7.onMouseMove;
  			var _props8 = this.props,
  			    xScale = _props8.xScale,
  			    onPanEnd = _props8.onPanEnd;
  
  
  			if (e.touches.length === 1) {
  
  				this.panHappened = false;
  				var touchXY = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["v" /* touchPosition */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["w" /* getTouchProps */])(e.touches[0]), e);
  				// onMouseMove(touchXY, "touch", e);
  				if (panEnabled) {
  					var currentCharts = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils_ChartDataUtil__["d" /* getCurrentCharts */])(chartConfig, touchXY);
  
  					this.setState({
  						panInProgress: true,
  						panStart: {
  							panStartXScale: xScale,
  							panOrigin: touchXY,
  							chartsToPan: currentCharts
  						}
  					});
  
  					onMouseMove(touchXY, "touch", e);
  
  					var win = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["q" /* d3Window */])(this.node);
  					__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(win).on(__WEBPACK_IMPORTED_MODULE_2__utils__["t" /* TOUCHMOVE */], this.handlePan, false).on(__WEBPACK_IMPORTED_MODULE_2__utils__["u" /* TOUCHEND */], this.handlePanEnd, false);
  				}
  			} else if (e.touches.length === 2) {
  				// pinch zoom begin
  				// do nothing pinch zoom is handled in handleTouchMove
  				var _state = this.state,
  				    panInProgress = _state.panInProgress,
  				    panStart = _state.panStart;
  
  
  				if (panInProgress && panEnabled && onPanEnd) {
  					var panStartXScale = panStart.panStartXScale,
  					    panOrigin = panStart.panOrigin,
  					    chartsToPan = panStart.chartsToPan;
  
  
  					var _win2 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["q" /* d3Window */])(this.node);
  					__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(_win2).on(__WEBPACK_IMPORTED_MODULE_2__utils__["r" /* MOUSEMOVE */], this.mouseInside ? this.handleMouseMove : null).on(__WEBPACK_IMPORTED_MODULE_2__utils__["s" /* MOUSEUP */], null).on(__WEBPACK_IMPORTED_MODULE_2__utils__["t" /* TOUCHMOVE */], this.handlePinchZoom, false).on(__WEBPACK_IMPORTED_MODULE_2__utils__["u" /* TOUCHEND */], this.handlePinchZoomEnd, false);
  
  					var touch1Pos = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["v" /* touchPosition */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["w" /* getTouchProps */])(e.touches[0]), e);
  					var touch2Pos = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["v" /* touchPosition */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["w" /* getTouchProps */])(e.touches[1]), e);
  
  					if (this.panHappened
  					// && !this.contextMenuClicked
  					&& panEnabled && onPanEnd) {
  
  						onPanEnd(this.lastNewPos, panStartXScale, panOrigin, chartsToPan, e);
  					}
  
  					this.setState({
  						panInProgress: false,
  						pinchZoomStart: {
  							xScale: xScale,
  							touch1Pos: touch1Pos,
  							touch2Pos: touch2Pos,
  							range: xScale.range(),
  							chartsToPan: chartsToPan
  						}
  					});
  				}
  			}
  		}
  	}, {
  		key: "handlePinchZoom",
  		value: function handlePinchZoom() {
  			var e = __WEBPACK_IMPORTED_MODULE_1_d3_selection__["d" /* event */];
  
  			var _touches = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["c" /* touches */])(this.node),
  			    _touches2 = _slicedToArray(_touches, 2),
  			    touch1Pos = _touches2[0],
  			    touch2Pos = _touches2[1];
  
  			var _props9 = this.props,
  			    xScale = _props9.xScale,
  			    zoomEnabled = _props9.zoom,
  			    onPinchZoom = _props9.onPinchZoom;
  
  			// eslint-disable-next-line no-unused-vars
  
  			var _state$pinchZoomStart = this.state.pinchZoomStart,
  			    chartsToPan = _state$pinchZoomStart.chartsToPan,
  			    initialPinch = _objectWithoutProperties(_state$pinchZoomStart, ["chartsToPan"]);
  
  			if (zoomEnabled && onPinchZoom) {
  				onPinchZoom(initialPinch, {
  					touch1Pos: touch1Pos,
  					touch2Pos: touch2Pos,
  					xScale: xScale
  				}, e);
  			}
  		}
  	}, {
  		key: "handlePinchZoomEnd",
  		value: function handlePinchZoomEnd() {
  			var e = __WEBPACK_IMPORTED_MODULE_1_d3_selection__["d" /* event */];
  
  			var win = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__utils__["q" /* d3Window */])(this.node);
  			__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_selection__["a" /* select */])(win).on(__WEBPACK_IMPORTED_MODULE_2__utils__["t" /* TOUCHMOVE */], null).on(__WEBPACK_IMPORTED_MODULE_2__utils__["u" /* TOUCHEND */], null);
  
  			var _props10 = this.props,
  			    zoomEnabled = _props10.zoom,
  			    onPinchZoomEnd = _props10.onPinchZoomEnd;
  
  			// eslint-disable-next-line no-unused-vars
  
  			var _state$pinchZoomStart2 = this.state.pinchZoomStart,
  			    chartsToPan = _state$pinchZoomStart2.chartsToPan,
  			    initialPinch = _objectWithoutProperties(_state$pinchZoomStart2, ["chartsToPan"]);
  
  			if (zoomEnabled && onPinchZoomEnd) {
  				onPinchZoomEnd(initialPinch, e);
  			}
  
  			this.setState({
  				pinchZoomStart: null
  			});
  		}
  	}, {
  		key: "setCursorClass",
  		value: function setCursorClass(cursorOverrideClass) {
  			if (cursorOverrideClass !== this.state.cursorOverrideClass) {
  				this.setState({
  					cursorOverrideClass: cursorOverrideClass
  				});
  			}
  		}
  	}, {
  		key: "render",
  		value: function render() {
  			var _props11 = this.props,
  			    height = _props11.height,
  			    width = _props11.width;
  
  			var className = this.state.cursorOverrideClass != null ? this.state.cursorOverrideClass : this.state.panInProgress ? "react-stockcharts-grabbing-cursor" : "react-stockcharts-crosshair-cursor";
  
  			return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("rect", { ref: this.saveNode,
  				className: className,
  				width: width,
  				height: height,
  				style: { opacity: 0 },
  				onWheel: this.handleWheel,
  				onMouseDown: this.handleMouseDown,
  				onContextMenu: this.handleRightClick,
  				onTouchStart: this.handleTouchStart
  			});
  		}
  	}]);
  
  	return EventCapture;
  }(__WEBPACK_IMPORTED_MODULE_0_react__["Component"]);
  
  // 				onMouseEnter={this.handleEnter}
  //				onMouseLeave={this.handleLeave}
  
  
  EventCapture.propTypes = {
  	mouseMove: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	zoom: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	pan: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  	panSpeedMultiplier: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	focus: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].bool.isRequired,
  
  	width: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	height: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].number.isRequired,
  	chartConfig: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].array,
  	xScale: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	xAccessor: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  
  	isSomethingSelectedAndHovering: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  
  	onMouseMove: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onMouseEnter: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onMouseLeave: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onZoom: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onPinchZoom: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onPinchZoomEnd: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func.isRequired,
  	onPan: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onPanEnd: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onDragStart: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onDrag: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onDragComplete: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  
  	onClick: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onDoubleClick: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onContextMenu: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	onMouseDown: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].func,
  	children: __WEBPACK_IMPORTED_MODULE_0_react__["PropTypes"].node
  };
  
  EventCapture.defaultProps = {
  	mouseMove: false,
  	zoom: false,
  	pan: false,
  	panSpeedMultiplier: 1,
  	focus: false,
  	onDragComplete: __WEBPACK_IMPORTED_MODULE_2__utils__["j" /* noop */]
  };
  
  /* harmony default export */ __webpack_exports__["a"] = EventCapture;
  
  /***/ }),
  /* 408 */,
  /* 409 */,
  /* 410 */,
  /* 411 */,
  /* 412 */,
  /* 413 */,
  /* 414 */,
  /* 415 */,
  /* 416 */,
  /* 417 */,
  /* 418 */,
  /* 419 */,
  /* 420 */,
  /* 421 */,
  /* 422 */,
  /* 423 */,
  /* 424 */,
  /* 425 */,
  /* 426 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(1);
  
  
  
  
  var log = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["H" /* getLogger */])("evaluator");
  
  function extentsWrapper(xAccessor, useWholeData, clamp, pointsPerPxThreshold) {
  	function domain(data, inputDomain, xAccessor, initialXScale, currentPlotData, currentDomain) {
  		if (useWholeData) {
  			return { plotData: data, domain: inputDomain };
  		}
  
  		var left = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["k" /* first */])(inputDomain);
  		var right = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["e" /* last */])(inputDomain);
  
  		var filteredData = getFilteredResponse(data, left, right, xAccessor);
  		var clampedDomain = [Math.max(left, xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["k" /* first */])(data))), Math.min(right, xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["e" /* last */])(data)))];
  
  		var realInputDomain = xAccessor === xAccessor ? clamp ? clampedDomain : inputDomain : [xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["k" /* first */])(filteredData)), xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["e" /* last */])(filteredData))];
  
  		var xScale = initialXScale.copy().domain(realInputDomain);
  
  		var width = Math.floor(xScale(xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["e" /* last */])(filteredData))) - xScale(xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["k" /* first */])(filteredData))));
  
  		var plotData = void 0,
  		    domain = void 0;
  
  		var chartWidth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["e" /* last */])(xScale.range()) - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["k" /* first */])(xScale.range());
  
  		log("Trying to show " + filteredData.length + " in " + width + "px," + (" I can show up to " + showMax(width, pointsPerPxThreshold) + " in that width. ") + ("Also FYI the entire chart width is " + chartWidth + "px and pointsPerPxThreshold is " + pointsPerPxThreshold));
  
  		if (canShowTheseManyPeriods(width, filteredData.length, pointsPerPxThreshold)) {
  			plotData = filteredData;
  			domain = realInputDomain;
  			log("AND IT WORKED");
  		} else {
  			plotData = currentPlotData || filteredData.slice(filteredData.length - showMax(width, pointsPerPxThreshold));
  			domain = currentDomain || [xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["k" /* first */])(plotData)), xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["e" /* last */])(plotData))];
  
  			var newXScale = xScale.copy().domain(domain);
  			var newWidth = Math.floor(newXScale(xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["e" /* last */])(plotData))) - newXScale(xAccessor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["k" /* first */])(plotData))));
  
  			log("and ouch, that is too much, so instead showing " + plotData.length + " in " + newWidth + "px");
  		}
  
  		return { plotData: plotData, domain: domain };
  	}
  	return domain;
  }
  
  function canShowTheseManyPeriods(width, arrayLength, threshold) {
  	return arrayLength > 1 && arrayLength < showMaxThreshold(width, threshold);
  }
  function showMaxThreshold(width, threshold) {
  	return Math.floor(width * threshold);
  }
  
  function showMax(width, threshold) {
  	return Math.floor(showMaxThreshold(width, threshold) * 0.97);
  }
  
  function getFilteredResponse(data, left, right, xAccessor) {
  	var newLeftIndex = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["n" /* getClosestItemIndexes */])(data, left, xAccessor).right;
  	var newRightIndex = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["n" /* getClosestItemIndexes */])(data, right, xAccessor).left;
  
  	var filteredData = data.slice(newLeftIndex, newRightIndex + 1);
  	// console.log(right, newRightIndex, dataForInterval.length);
  
  	return filteredData;
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function (_ref) {
  	var xAccessor = _ref.xAccessor,
  	    xScale = _ref.xScale,
  	    useWholeData = _ref.useWholeData,
  	    clamp = _ref.clamp,
  	    pointsPerPxThreshold = _ref.pointsPerPxThreshold;
  
  	return extentsWrapper(xAccessor, useWholeData || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils__["d" /* isNotDefined */])(xScale.invert), clamp, pointsPerPxThreshold);
  };
  
  /***/ }),
  /* 427 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__noop__ = __webpack_require__(63);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__identity__ = __webpack_require__(72);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__index__ = __webpack_require__(1);
  
  
  /*
  
  Taken from https://github.com/ScottLogic/d3fc/blob/master/src/indicator/algorithm/calculator/slidingWindow.js
  
  The MIT License (MIT)
  
  Copyright (c) 2014-2015 Scott Logic Ltd.
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:
  
  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.
  
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  THE SOFTWARE.
  
  */
  
  
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function () {
  
  	var accumulateTill = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__index__["b" /* functor */])(false),
  	    accumulator = __WEBPACK_IMPORTED_MODULE_0__noop__["a" /* default */],
  	    value = __WEBPACK_IMPORTED_MODULE_1__identity__["a" /* default */],
  	    discardTillStart = false,
  	    discardTillEnd = false;
  
  	// eslint-disable-next-line prefer-const
  	var accumulatingWindow = function accumulatingWindow(data) {
  		var accumulatedWindow = discardTillStart ? undefined : [];
  		var response = [];
  		var accumulatorIdx = 0;
  		var i = 0;
  		for (i = 0; i < data.length; i++) {
  			var d = data[i];
  			// console.log(d, accumulateTill(d));
  			if (accumulateTill(d, i)) {
  				if (accumulatedWindow && accumulatedWindow.length > 0) response.push(accumulator(accumulatedWindow, i, accumulatorIdx++));
  				accumulatedWindow = [value(d)];
  			} else {
  				if (accumulatedWindow) accumulatedWindow.push(value(d));
  			}
  		}
  		if (!discardTillEnd) response.push(accumulator(accumulatedWindow, i, accumulatorIdx));
  		return response;
  	};
  
  	accumulatingWindow.accumulateTill = function (x) {
  		if (!arguments.length) {
  			return accumulateTill;
  		}
  		accumulateTill = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__index__["b" /* functor */])(x);
  		return accumulatingWindow;
  	};
  	accumulatingWindow.accumulator = function (x) {
  		if (!arguments.length) {
  			return accumulator;
  		}
  		accumulator = x;
  		return accumulatingWindow;
  	};
  	accumulatingWindow.value = function (x) {
  		if (!arguments.length) {
  			return value;
  		}
  		value = x;
  		return accumulatingWindow;
  	};
  	accumulatingWindow.discardTillStart = function (x) {
  		if (!arguments.length) {
  			return discardTillStart;
  		}
  		discardTillStart = x;
  		return accumulatingWindow;
  	};
  	accumulatingWindow.discardTillEnd = function (x) {
  		if (!arguments.length) {
  			return discardTillEnd;
  		}
  		discardTillEnd = x;
  		return accumulatingWindow;
  	};
  	return accumulatingWindow;
  };
  
  /***/ }),
  /* 428 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__noop__ = __webpack_require__(63);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__identity__ = __webpack_require__(72);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__index__ = __webpack_require__(1);
  
  
  
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function () {
  
  	var undefinedValue = undefined,
  	    windowSize = 10,
  	    accumulator = __WEBPACK_IMPORTED_MODULE_0__noop__["a" /* default */],
  	    source = __WEBPACK_IMPORTED_MODULE_1__identity__["a" /* default */],
  	    skipInitial = 0;
  
  	// eslint-disable-next-line prefer-const
  	var mappedSlidingWindow = function mappedSlidingWindow(data) {
  		var size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__index__["b" /* functor */])(windowSize).apply(this, arguments);
  		var windowData = [];
  		var accumulatorIdx = 0;
  		var undef = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__index__["b" /* functor */])(undefinedValue);
  		// console.log(skipInitial, size, data.length, windowData.length);
  		var result = [];
  		data.forEach(function (d, i) {
  			// console.log(d, i, windowData.length);
  			var mapped = void 0;
  			if (i < skipInitial + size - 1) {
  				mapped = undef(d, i);
  				result.push(mapped);
  				windowData.push(mapped);
  				return;
  			}
  			if (i >= skipInitial + size) {
  				// Treat windowData as FIFO rolling buffer
  				windowData.shift();
  			}
  			windowData.push(source(d, i));
  			mapped = accumulator(windowData, i, accumulatorIdx++);
  			result.push(mapped);
  			windowData.pop();
  			windowData.push(mapped);
  			return;
  		});
  		return result;
  	};
  
  	mappedSlidingWindow.undefinedValue = function (x) {
  		if (!arguments.length) {
  			return undefinedValue;
  		}
  		undefinedValue = x;
  		return mappedSlidingWindow;
  	};
  	mappedSlidingWindow.windowSize = function (x) {
  		if (!arguments.length) {
  			return windowSize;
  		}
  		windowSize = x;
  		return mappedSlidingWindow;
  	};
  	mappedSlidingWindow.accumulator = function (x) {
  		if (!arguments.length) {
  			return accumulator;
  		}
  		accumulator = x;
  		return mappedSlidingWindow;
  	};
  	mappedSlidingWindow.skipInitial = function (x) {
  		if (!arguments.length) {
  			return skipInitial;
  		}
  		skipInitial = x;
  		return mappedSlidingWindow;
  	};
  	mappedSlidingWindow.source = function (x) {
  		if (!arguments.length) {
  			return source;
  		}
  		source = x;
  		return mappedSlidingWindow;
  	};
  
  	return mappedSlidingWindow;
  };
  
  /***/ }),
  /* 429 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__identity__ = __webpack_require__(72);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__zipper__ = __webpack_require__(264);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__noop__ = __webpack_require__(63);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__index__ = __webpack_require__(1);
  /*
  https://github.com/ScottLogic/d3fc/blob/master/src/indicator/algorithm/merge.js
  
  The MIT License (MIT)
  
  Copyright (c) 2014-2015 Scott Logic Ltd.
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:
  
  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.
  
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  THE SOFTWARE.
  */
  
  
  
  
  
  
  
  // applies an algorithm to an array, merging the result back into
  // the source array using the given merge function.
  /* harmony default export */ __webpack_exports__["a"] = function () {
  
  	var algorithm = __WEBPACK_IMPORTED_MODULE_0__identity__["a" /* default */],
  	    skipUndefined = true,
  	    merge = __WEBPACK_IMPORTED_MODULE_2__noop__["a" /* default */];
  
  	function mergeCompute(data) {
  		var zip = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__zipper__["a" /* default */])().combine(function (datum, indicator) {
  			var result = skipUndefined && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__index__["d" /* isNotDefined */])(indicator) ? datum : merge(datum, indicator);
  			return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__index__["d" /* isNotDefined */])(result) ? datum : result;
  		});
  
  		// console.log(data);
  		return zip(data, algorithm(data));
  	}
  
  	mergeCompute.algorithm = function (x) {
  		if (!arguments.length) {
  			return algorithm;
  		}
  		algorithm = x;
  		return mergeCompute;
  	};
  
  	mergeCompute.merge = function (x) {
  		if (!arguments.length) {
  			return merge;
  		}
  		merge = x;
  		return mergeCompute;
  	};
  	mergeCompute.skipUndefined = function (x) {
  		if (!arguments.length) {
  			return skipUndefined;
  		}
  		skipUndefined = x;
  		return mergeCompute;
  	};
  
  	return mergeCompute;
  };
  
  /***/ }),
  /* 430 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__noop__ = __webpack_require__(63);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__index__ = __webpack_require__(1);
  
  
  /*
  
  Taken from https://github.com/ScottLogic/d3fc/blob/master/src/indicator/algorithm/calculator/slidingWindow.js
  
  The MIT License (MIT)
  
  Copyright (c) 2014-2015 Scott Logic Ltd.
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:
  
  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.
  
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  THE SOFTWARE.
  
  */
  
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function () {
  
  	var undefinedValue = undefined,
  	    windowSize = 10,
  	    accumulator = __WEBPACK_IMPORTED_MODULE_0__noop__["a" /* default */],
  	    sourcePath = void 0,
  	    source = void 0,
  	    skipInitial = 0,
  	    misc = void 0;
  
  	// eslint-disable-next-line prefer-const
  	var slidingWindow = function slidingWindow(data) {
  		var sourceFunction = source || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__index__["c" /* path */])(sourcePath);
  
  		var size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__index__["b" /* functor */])(windowSize).apply(this, arguments);
  		var windowData = data.slice(skipInitial, size + skipInitial).map(sourceFunction);
  		var accumulatorIdx = 0;
  		var undef = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__index__["b" /* functor */])(undefinedValue);
  		// console.log(skipInitial, size, data.length, windowData.length);
  		return data.map(function (d, i) {
  			// console.log(d, i);
  			if (i < skipInitial + size - 1) {
  				return undef(sourceFunction(d), i, misc);
  			}
  			if (i >= skipInitial + size) {
  				// Treat windowData as FIFO rolling buffer
  				windowData.shift();
  				windowData.push(sourceFunction(d, i));
  			}
  			return accumulator(windowData, i, accumulatorIdx++, misc);
  		});
  	};
  
  	slidingWindow.undefinedValue = function (x) {
  		if (!arguments.length) {
  			return undefinedValue;
  		}
  		undefinedValue = x;
  		return slidingWindow;
  	};
  	slidingWindow.windowSize = function (x) {
  		if (!arguments.length) {
  			return windowSize;
  		}
  		windowSize = x;
  		return slidingWindow;
  	};
  	slidingWindow.misc = function (x) {
  		if (!arguments.length) {
  			return misc;
  		}
  		misc = x;
  		return slidingWindow;
  	};
  	slidingWindow.accumulator = function (x) {
  		if (!arguments.length) {
  			return accumulator;
  		}
  		accumulator = x;
  		return slidingWindow;
  	};
  	slidingWindow.skipInitial = function (x) {
  		if (!arguments.length) {
  			return skipInitial;
  		}
  		skipInitial = x;
  		return slidingWindow;
  	};
  	slidingWindow.sourcePath = function (x) {
  		if (!arguments.length) {
  			return sourcePath;
  		}
  		sourcePath = x;
  		return slidingWindow;
  	};
  	slidingWindow.source = function (x) {
  		if (!arguments.length) {
  			return source;
  		}
  		source = x;
  		return slidingWindow;
  	};
  
  	return slidingWindow;
  };
  
  /***/ }),
  /* 431 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strokeDashTypes; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getStrokeDasharray; });
  var strokeDashTypes = ["Solid", "ShortDash", "ShortDot", "ShortDashDot", "ShortDashDotDot", "Dot", "Dash", "LongDash", "DashDot", "LongDashDot", "LongDashDotDot"];
  
  var getStrokeDasharray = function getStrokeDasharray(type) {
  	switch (type) {
  		default:
  		case "Solid":
  			return "none";
  		case "ShortDash":
  			return "6, 2";
  		case "ShortDot":
  			return "2, 2";
  		case "ShortDashDot":
  			return "6, 2, 2, 2";
  		case "ShortDashDotDot":
  			return "6, 2, 2, 2, 2, 2";
  		case "Dot":
  			return "2, 6";
  		case "Dash":
  			return "8, 6";
  		case "LongDash":
  			return "16, 6";
  		case "DashDot":
  			return "8, 6, 2, 6";
  		case "LongDashDot":
  			return "16, 6, 2, 6";
  		case "LongDashDotDot":
  			return "16, 6, 2, 6, 2, 6";
  	}
  };
  
  /***/ }),
  /* 432 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(x) {
    return function() {
      return x;
    };
  };
  
  
  /***/ }),
  /* 433 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(a, b) {
    return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
  };
  
  
  /***/ }),
  /* 434 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__(265);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__bisect__ = __webpack_require__(266);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constant__ = __webpack_require__(432);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__extent__ = __webpack_require__(269);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__identity__ = __webpack_require__(435);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ticks__ = __webpack_require__(273);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__threshold_sturges__ = __webpack_require__(272);
  
  
  
  
  
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function() {
    var value = __WEBPACK_IMPORTED_MODULE_4__identity__["a" /* default */],
        domain = __WEBPACK_IMPORTED_MODULE_3__extent__["a" /* default */],
        threshold = __WEBPACK_IMPORTED_MODULE_6__threshold_sturges__["a" /* default */];
  
    function histogram(data) {
      var i,
          n = data.length,
          x,
          values = new Array(n);
  
      for (i = 0; i < n; ++i) {
        values[i] = value(data[i], i, data);
      }
  
      var xz = domain(values),
          x0 = xz[0],
          x1 = xz[1],
          tz = threshold(values, x0, x1);
  
      // Convert number of thresholds into uniform thresholds.
      if (!Array.isArray(tz)) tz = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__ticks__["a" /* default */])(x0, x1, tz);
  
      // Remove any thresholds outside the domain.
      var m = tz.length;
      while (tz[0] <= x0) tz.shift(), --m;
      while (tz[m - 1] >= x1) tz.pop(), --m;
  
      var bins = new Array(m + 1),
          bin;
  
      // Initialize bins.
      for (i = 0; i <= m; ++i) {
        bin = bins[i] = [];
        bin.x0 = i > 0 ? tz[i - 1] : x0;
        bin.x1 = i < m ? tz[i] : x1;
      }
  
      // Assign data to bins by value, ignoring any outside the domain.
      for (i = 0; i < n; ++i) {
        x = values[i];
        if (x0 <= x && x <= x1) {
          bins[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__bisect__["a" /* default */])(tz, x, 0, m)].push(data[i]);
        }
      }
  
      return bins;
    }
  
    histogram.value = function(_) {
      return arguments.length ? (value = typeof _ === "function" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__["a" /* default */])(_), histogram) : value;
    };
  
    histogram.domain = function(_) {
      return arguments.length ? (domain = typeof _ === "function" ? _ : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__["a" /* default */])([_[0], _[1]]), histogram) : domain;
    };
  
    histogram.thresholds = function(_) {
      return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_0__array__["b" /* slice */].call(_)) : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__["a" /* default */])(_), histogram) : threshold;
    };
  
    return histogram;
  };
  
  
  /***/ }),
  /* 435 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(x) {
    return x;
  };
  
  
  /***/ }),
  /* 436 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(array, f) {
    var i = -1,
        n = array.length,
        a,
        b;
  
    if (f == null) {
      while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }
      while (++i < n) if ((b = array[i]) != null && b > a) a = b;
    }
  
    else {
      while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = b; break; }
      while (++i < n) if ((b = f(array[i], i, array)) != null && b > a) a = b;
    }
  
    return a;
  };
  
  
  /***/ }),
  /* 437 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(73);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(array, f) {
    var s = 0,
        n = array.length,
        a,
        i = -1,
        j = n;
  
    if (f == null) {
      while (++i < n) if (!isNaN(a = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(array[i]))) s += a; else --j;
    }
  
    else {
      while (++i < n) if (!isNaN(a = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(f(array[i], i, array)))) s += a; else --j;
    }
  
    if (j) return s / j;
  };
  
  
  /***/ }),
  /* 438 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(64);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__number__ = __webpack_require__(73);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__quantile__ = __webpack_require__(180);
  
  
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = function(array, f) {
    var numbers = [],
        n = array.length,
        a,
        i = -1;
  
    if (f == null) {
      while (++i < n) if (!isNaN(a = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__number__["a" /* default */])(array[i]))) numbers.push(a);
    }
  
    else {
      while (++i < n) if (!isNaN(a = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__number__["a" /* default */])(f(array[i], i, array)))) numbers.push(a);
    }
  
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__quantile__["a" /* default */])(numbers.sort(__WEBPACK_IMPORTED_MODULE_0__ascending__["a" /* default */]), 0.5);
  };
  
  
  /***/ }),
  /* 439 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(arrays) {
    var n = arrays.length,
        m,
        i = -1,
        j = 0,
        merged,
        array;
  
    while (++i < n) j += arrays[i].length;
    merged = new Array(j);
  
    while (--n >= 0) {
      array = arrays[n];
      m = array.length;
      while (--m >= 0) {
        merged[--j] = array[m];
      }
    }
  
    return merged;
  };
  
  
  /***/ }),
  /* 440 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(array) {
    var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);
    while (i < n) pairs[i] = [p, p = array[++i]];
    return pairs;
  };
  
  
  /***/ }),
  /* 441 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* unused harmony default export */ var _unused_webpack_default_export = function(array, indexes) {
    var i = indexes.length, permutes = new Array(i);
    while (i--) permutes[i] = array[indexes[i]];
    return permutes;
  };
  
  
  /***/ }),
  /* 442 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ascending__ = __webpack_require__(64);
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = function(array, compare) {
    if (!(n = array.length)) return;
    var i = 0,
        n,
        j = 0,
        xi,
        xj = array[j];
  
    if (!compare) compare = __WEBPACK_IMPORTED_MODULE_0__ascending__["a" /* default */];
  
    while (++i < n) if (compare(xi = array[i], xj) < 0 || compare(xj, xj) !== 0) xj = xi, j = i;
  
    if (compare(xj, xj) === 0) return j;
  };
  
  
  /***/ }),
  /* 443 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* unused harmony default export */ var _unused_webpack_default_export = function(array, i0, i1) {
    var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),
        t,
        i;
  
    while (m) {
      i = Math.random() * m-- | 0;
      t = array[m + i0];
      array[m + i0] = array[i + i0];
      array[i + i0] = t;
    }
  
    return array;
  };
  
  
  /***/ }),
  /* 444 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(array, f) {
    var s = 0,
        n = array.length,
        a,
        i = -1;
  
    if (f == null) {
      while (++i < n) if (a = +array[i]) s += a; // Note: zero and null are equivalent.
    }
  
    else {
      while (++i < n) if (a = +f(array[i], i, array)) s += a;
    }
  
    return s;
  };
  
  
  /***/ }),
  /* 445 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__(265);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ascending__ = __webpack_require__(64);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__number__ = __webpack_require__(73);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__quantile__ = __webpack_require__(180);
  
  
  
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = function(values, min, max) {
    values = __WEBPACK_IMPORTED_MODULE_0__array__["a" /* map */].call(values, __WEBPACK_IMPORTED_MODULE_2__number__["a" /* default */]).sort(__WEBPACK_IMPORTED_MODULE_1__ascending__["a" /* default */]);
    return Math.ceil((max - min) / (2 * (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__quantile__["a" /* default */])(values, 0.75) - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__quantile__["a" /* default */])(values, 0.25)) * Math.pow(values.length, -1 / 3)));
  };
  
  
  /***/ }),
  /* 446 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__deviation__ = __webpack_require__(268);
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = function(values, min, max) {
    return Math.ceil((max - min) / (3.5 * __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__deviation__["a" /* default */])(values) * Math.pow(values.length, -1 / 3)));
  };
  
  
  /***/ }),
  /* 447 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transpose__ = __webpack_require__(274);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function() {
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__transpose__["a" /* default */])(arguments);
  };
  
  
  /***/ }),
  /* 448 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* unused harmony default export */ var _unused_webpack_default_export = function(map) {
    var entries = [];
    for (var key in map) entries.push({key: key, value: map[key]});
    return entries;
  };
  
  
  /***/ }),
  /* 449 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* unused harmony default export */ var _unused_webpack_default_export = function(map) {
    var keys = [];
    for (var key in map) keys.push(key);
    return keys;
  };
  
  
  /***/ }),
  /* 450 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__map__ = __webpack_require__(181);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function() {
    var keys = [],
        sortKeys = [],
        sortValues,
        rollup,
        nest;
  
    function apply(array, depth, createResult, setResult) {
      if (depth >= keys.length) return rollup != null
          ? rollup(array) : (sortValues != null
          ? array.sort(sortValues)
          : array);
  
      var i = -1,
          n = array.length,
          key = keys[depth++],
          keyValue,
          value,
          valuesByKey = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__map__["a" /* default */])(),
          values,
          result = createResult();
  
      while (++i < n) {
        if (values = valuesByKey.get(keyValue = key(value = array[i]) + "")) {
          values.push(value);
        } else {
          valuesByKey.set(keyValue, [value]);
        }
      }
  
      valuesByKey.each(function(values, key) {
        setResult(result, key, apply(values, depth, createResult, setResult));
      });
  
      return result;
    }
  
    function entries(map, depth) {
      if (++depth > keys.length) return map;
      var array, sortKey = sortKeys[depth - 1];
      if (rollup != null && depth >= keys.length) array = map.entries();
      else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });
      return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;
    }
  
    return nest = {
      object: function(array) { return apply(array, 0, createObject, setObject); },
      map: function(array) { return apply(array, 0, createMap, setMap); },
      entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },
      key: function(d) { keys.push(d); return nest; },
      sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },
      sortValues: function(order) { sortValues = order; return nest; },
      rollup: function(f) { rollup = f; return nest; }
    };
  };
  
  function createObject() {
    return {};
  }
  
  function setObject(object, key, value) {
    object[key] = value;
  }
  
  function createMap() {
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__map__["a" /* default */])();
  }
  
  function setMap(map, key, value) {
    map.set(key, value);
  }
  
  
  /***/ }),
  /* 451 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__map__ = __webpack_require__(181);
  
  
  function Set() {}
  
  var proto = __WEBPACK_IMPORTED_MODULE_0__map__["a" /* default */].prototype;
  
  Set.prototype = set.prototype = {
    constructor: Set,
    has: proto.has,
    add: function(value) {
      value += "";
      this[__WEBPACK_IMPORTED_MODULE_0__map__["b" /* prefix */] + value] = value;
      return this;
    },
    remove: proto.remove,
    clear: proto.clear,
    values: proto.keys,
    size: proto.size,
    empty: proto.empty,
    each: proto.each
  };
  
  function set(object, f) {
    var set = new Set;
  
    // Copy constructor.
    if (object instanceof Set) object.each(function(value) { set.add(value); });
  
    // Otherwise, assume it’s an array.
    else if (object) {
      var i = -1, n = object.length;
      if (f == null) while (++i < n) set.add(object[i]);
      else while (++i < n) set.add(f(object[i], i, object));
    }
  
    return set;
  }
  
  /* harmony default export */ __webpack_exports__["a"] = set;
  
  
  /***/ }),
  /* 452 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* unused harmony default export */ var _unused_webpack_default_export = function(map) {
    var values = [];
    for (var key in map) values.push(map[key]);
    return values;
  };
  
  
  /***/ }),
  /* 453 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__define__ = __webpack_require__(183);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(182);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__math__ = __webpack_require__(276);
  /* harmony export (immutable) */ __webpack_exports__["a"] = cubehelix;
  /* unused harmony export Cubehelix */
  
  
  
  
  var A = -0.14861,
      B = +1.78277,
      C = -0.29227,
      D = -0.90649,
      E = +1.97294,
      ED = E * D,
      EB = E * B,
      BC_DA = B * C - D * A;
  
  function cubehelixConvert(o) {
    if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
    if (!(o instanceof __WEBPACK_IMPORTED_MODULE_1__color__["a" /* Rgb */])) o = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["b" /* rgbConvert */])(o);
    var r = o.r / 255,
        g = o.g / 255,
        b = o.b / 255,
        l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
        bl = b - l,
        k = (E * (g - l) - C * bl) / D,
        s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
        h = s ? Math.atan2(k, bl) * __WEBPACK_IMPORTED_MODULE_2__math__["a" /* rad2deg */] - 120 : NaN;
    return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
  }
  
  function cubehelix(h, s, l, opacity) {
    return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
  }
  
  function Cubehelix(h, s, l, opacity) {
    this.h = +h;
    this.s = +s;
    this.l = +l;
    this.opacity = +opacity;
  }
  
  __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["a" /* default */])(Cubehelix, cubehelix, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["b" /* extend */])(__WEBPACK_IMPORTED_MODULE_1__color__["c" /* Color */], {
    brighter: function(k) {
      k = k == null ? __WEBPACK_IMPORTED_MODULE_1__color__["d" /* brighter */] : Math.pow(__WEBPACK_IMPORTED_MODULE_1__color__["d" /* brighter */], k);
      return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
    },
    darker: function(k) {
      k = k == null ? __WEBPACK_IMPORTED_MODULE_1__color__["e" /* darker */] : Math.pow(__WEBPACK_IMPORTED_MODULE_1__color__["e" /* darker */], k);
      return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
    },
    rgb: function() {
      var h = isNaN(this.h) ? 0 : (this.h + 120) * __WEBPACK_IMPORTED_MODULE_2__math__["b" /* deg2rad */],
          l = +this.l,
          a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
          cosh = Math.cos(h),
          sinh = Math.sin(h);
      return new __WEBPACK_IMPORTED_MODULE_1__color__["a" /* Rgb */](
        255 * (l + a * (A * cosh + B * sinh)),
        255 * (l + a * (C * cosh + D * sinh)),
        255 * (l + a * (E * cosh)),
        this.opacity
      );
    }
  }));
  
  
  /***/ }),
  /* 454 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__define__ = __webpack_require__(183);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(182);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__math__ = __webpack_require__(276);
  /* harmony export (immutable) */ __webpack_exports__["b"] = lab;
  /* unused harmony export Lab */
  /* harmony export (immutable) */ __webpack_exports__["a"] = hcl;
  /* unused harmony export Hcl */
  
  
  
  
  var Kn = 18,
      Xn = 0.950470, // D65 standard referent
      Yn = 1,
      Zn = 1.088830,
      t0 = 4 / 29,
      t1 = 6 / 29,
      t2 = 3 * t1 * t1,
      t3 = t1 * t1 * t1;
  
  function labConvert(o) {
    if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
    if (o instanceof Hcl) {
      var h = o.h * __WEBPACK_IMPORTED_MODULE_2__math__["b" /* deg2rad */];
      return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
    }
    if (!(o instanceof __WEBPACK_IMPORTED_MODULE_1__color__["a" /* Rgb */])) o = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["b" /* rgbConvert */])(o);
    var b = rgb2xyz(o.r),
        a = rgb2xyz(o.g),
        l = rgb2xyz(o.b),
        x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),
        y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),
        z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);
    return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
  }
  
  function lab(l, a, b, opacity) {
    return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
  }
  
  function Lab(l, a, b, opacity) {
    this.l = +l;
    this.a = +a;
    this.b = +b;
    this.opacity = +opacity;
  }
  
  __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["a" /* default */])(Lab, lab, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["b" /* extend */])(__WEBPACK_IMPORTED_MODULE_1__color__["c" /* Color */], {
    brighter: function(k) {
      return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);
    },
    darker: function(k) {
      return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);
    },
    rgb: function() {
      var y = (this.l + 16) / 116,
          x = isNaN(this.a) ? y : y + this.a / 500,
          z = isNaN(this.b) ? y : y - this.b / 200;
      y = Yn * lab2xyz(y);
      x = Xn * lab2xyz(x);
      z = Zn * lab2xyz(z);
      return new __WEBPACK_IMPORTED_MODULE_1__color__["a" /* Rgb */](
        xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB
        xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),
        xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),
        this.opacity
      );
    }
  }));
  
  function xyz2lab(t) {
    return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
  }
  
  function lab2xyz(t) {
    return t > t1 ? t * t * t : t2 * (t - t0);
  }
  
  function xyz2rgb(x) {
    return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
  }
  
  function rgb2xyz(x) {
    return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
  }
  
  function hclConvert(o) {
    if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
    if (!(o instanceof Lab)) o = labConvert(o);
    var h = Math.atan2(o.b, o.a) * __WEBPACK_IMPORTED_MODULE_2__math__["a" /* rad2deg */];
    return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
  }
  
  function hcl(h, c, l, opacity) {
    return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
  }
  
  function Hcl(h, c, l, opacity) {
    this.h = +h;
    this.c = +c;
    this.l = +l;
    this.opacity = +opacity;
  }
  
  __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["a" /* default */])(Hcl, hcl, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__define__["b" /* extend */])(__WEBPACK_IMPORTED_MODULE_1__color__["c" /* Color */], {
    brighter: function(k) {
      return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);
    },
    darker: function(k) {
      return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);
    },
    rgb: function() {
      return labConvert(this).rgb();
    }
  }));
  
  
  /***/ }),
  /* 455 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale__ = __webpack_require__(280);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return format; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return formatPrefix; });
  /* unused harmony export default */
  
  
  var locale;
  var format;
  var formatPrefix;
  
  defaultLocale({
    decimal: ".",
    thousands: ",",
    grouping: [3],
    currency: ["$", ""]
  });
  
  function defaultLocale(definition) {
    locale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__locale__["a" /* default */])(definition);
    format = locale.format;
    formatPrefix = locale.formatPrefix;
    return locale;
  }
  
  
  /***/ }),
  /* 456 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(x, p) {
    x = x.toPrecision(p);
  
    out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {
      switch (x[i]) {
        case ".": i0 = i1 = i; break;
        case "0": if (i0 === 0) i0 = i; i1 = i; break;
        case "e": break out;
        default: if (i0 > 0) i0 = 0; break;
      }
    }
  
    return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;
  };
  
  
  /***/ }),
  /* 457 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(grouping, thousands) {
    return function(value, width) {
      var i = value.length,
          t = [],
          j = 0,
          g = grouping[0],
          length = 0;
  
      while (i > 0 && g > 0) {
        if (length + g + 1 > width) g = Math.max(1, width - length);
        t.push(value.substring(i -= g, i + g));
        if ((length += g + 1) > width) break;
        g = grouping[j = (j + 1) % grouping.length];
      }
  
      return t.reverse().join(thousands);
    };
  };
  
  
  /***/ }),
  /* 458 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__formatDecimal__ = __webpack_require__(195);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(x, p) {
    var d = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__formatDecimal__["a" /* default */])(x, p);
    if (!d) return x + "";
    var coefficient = d[0],
        exponent = d[1];
    return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient
        : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1)
        : coefficient + new Array(exponent - coefficient.length + 2).join("0");
  };
  
  
  /***/ }),
  /* 459 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exponent__ = __webpack_require__(97);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(step) {
    return Math.max(0, -__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__["a" /* default */])(Math.abs(step)));
  };
  
  
  /***/ }),
  /* 460 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exponent__ = __webpack_require__(97);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(step, value) {
    return Math.max(0, Math.max(-8, Math.min(8, Math.floor(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__["a" /* default */])(value) / 3))) * 3 - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__["a" /* default */])(Math.abs(step)));
  };
  
  
  /***/ }),
  /* 461 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exponent__ = __webpack_require__(97);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(step, max) {
    step = Math.abs(step), max = Math.abs(max) - step;
    return Math.max(0, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__["a" /* default */])(max) - __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exponent__["a" /* default */])(step)) + 1;
  };
  
  
  /***/ }),
  /* 462 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(45);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(76);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cubehelixLong; });
  
  
  
  function cubehelix(hue) {
    return (function cubehelixGamma(y) {
      y = +y;
  
      function cubehelix(start, end) {
        var h = hue((start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["a" /* cubehelix */])(start)).h, (end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["a" /* cubehelix */])(end)).h),
            s = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.s, end.s),
            l = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.l, end.l),
            opacity = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.opacity, end.opacity);
        return function(t) {
          start.h = h(t);
          start.s = s(t);
          start.l = l(Math.pow(t, y));
          start.opacity = opacity(t);
          return start + "";
        };
      }
  
      cubehelix.gamma = cubehelixGamma;
  
      return cubehelix;
    })(1);
  }
  
  /* unused harmony default export */ var _unused_webpack_default_export = cubehelix(__WEBPACK_IMPORTED_MODULE_1__color__["b" /* hue */]);
  var cubehelixLong = cubehelix(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */]);
  
  
  /***/ }),
  /* 463 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(45);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(76);
  /* unused harmony export hclLong */
  
  
  
  function hcl(hue) {
    return function(start, end) {
      var h = hue((start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["b" /* hcl */])(start)).h, (end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["b" /* hcl */])(end)).h),
          c = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.c, end.c),
          l = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.l, end.l),
          opacity = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.opacity, end.opacity);
      return function(t) {
        start.h = h(t);
        start.c = c(t);
        start.l = l(t);
        start.opacity = opacity(t);
        return start + "";
      };
    }
  }
  
  /* unused harmony default export */ var _unused_webpack_default_export = hcl(__WEBPACK_IMPORTED_MODULE_1__color__["b" /* hue */]);
  var hclLong = hcl(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */]);
  
  
  /***/ }),
  /* 464 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(45);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(76);
  /* unused harmony export hslLong */
  
  
  
  function hsl(hue) {
    return function(start, end) {
      var h = hue((start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["d" /* hsl */])(start)).h, (end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["d" /* hsl */])(end)).h),
          s = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.s, end.s),
          l = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.l, end.l),
          opacity = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.opacity, end.opacity);
      return function(t) {
        start.h = h(t);
        start.s = s(t);
        start.l = l(t);
        start.opacity = opacity(t);
        return start + "";
      };
    }
  }
  
  /* unused harmony default export */ var _unused_webpack_default_export = hsl(__WEBPACK_IMPORTED_MODULE_1__color__["b" /* hue */]);
  var hslLong = hsl(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */]);
  
  
  /***/ }),
  /* 465 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(45);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color__ = __webpack_require__(76);
  /* unused harmony export default */
  
  
  
  function lab(start, end) {
    var l = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])((start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["c" /* lab */])(start)).l, (end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["c" /* lab */])(end)).l),
        a = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.a, end.a),
        b = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.b, end.b),
        opacity = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__color__["a" /* default */])(start.opacity, end.opacity);
    return function(t) {
      start.l = l(t);
      start.a = a(t);
      start.b = b(t);
      start.opacity = opacity(t);
      return start + "";
    };
  }
  
  
  /***/ }),
  /* 466 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* unused harmony default export */ var _unused_webpack_default_export = function(interpolator, n) {
    var samples = new Array(n);
    for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
    return samples;
  };
  
  
  /***/ }),
  /* 467 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(a, b) {
    return a = +a, b -= a, function(t) {
      return Math.round(a + b * t);
    };
  };
  
  
  /***/ }),
  /* 468 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return identity; });
  var degrees = 180 / Math.PI;
  
  var identity = {
    translateX: 0,
    translateY: 0,
    rotate: 0,
    skewX: 0,
    scaleX: 1,
    scaleY: 1
  };
  
  /* harmony default export */ __webpack_exports__["b"] = function(a, b, c, d, e, f) {
    var scaleX, scaleY, skewX;
    if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
    if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
    if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
    if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
    return {
      translateX: e,
      translateY: f,
      rotate: Math.atan2(b, a) * degrees,
      skewX: Math.atan(skewX) * degrees,
      scaleX: scaleX,
      scaleY: scaleY
    };
  };
  
  
  /***/ }),
  /* 469 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__number__ = __webpack_require__(98);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__parse__ = __webpack_require__(470);
  /* unused harmony export interpolateTransformCss */
  /* unused harmony export interpolateTransformSvg */
  
  
  
  function interpolateTransform(parse, pxComma, pxParen, degParen) {
  
    function pop(s) {
      return s.length ? s.pop() + " " : "";
    }
  
    function translate(xa, ya, xb, yb, s, q) {
      if (xa !== xb || ya !== yb) {
        var i = s.push("translate(", null, pxComma, null, pxParen);
        q.push({i: i - 4, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(xa, xb)}, {i: i - 2, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(ya, yb)});
      } else if (xb || yb) {
        s.push("translate(" + xb + pxComma + yb + pxParen);
      }
    }
  
    function rotate(a, b, s, q) {
      if (a !== b) {
        if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
        q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(a, b)});
      } else if (b) {
        s.push(pop(s) + "rotate(" + b + degParen);
      }
    }
  
    function skewX(a, b, s, q) {
      if (a !== b) {
        q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(a, b)});
      } else if (b) {
        s.push(pop(s) + "skewX(" + b + degParen);
      }
    }
  
    function scale(xa, ya, xb, yb, s, q) {
      if (xa !== xb || ya !== yb) {
        var i = s.push(pop(s) + "scale(", null, ",", null, ")");
        q.push({i: i - 4, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(xa, xb)}, {i: i - 2, x: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__number__["a" /* default */])(ya, yb)});
      } else if (xb !== 1 || yb !== 1) {
        s.push(pop(s) + "scale(" + xb + "," + yb + ")");
      }
    }
  
    return function(a, b) {
      var s = [], // string constants and placeholders
          q = []; // number interpolators
      a = parse(a), b = parse(b);
      translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
      rotate(a.rotate, b.rotate, s, q);
      skewX(a.skewX, b.skewX, s, q);
      scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
      a = b = null; // gc
      return function(t) {
        var i = -1, n = q.length, o;
        while (++i < n) s[(o = q[i]).i] = o.x(t);
        return s.join("");
      };
    };
  }
  
  var interpolateTransformCss = interpolateTransform(__WEBPACK_IMPORTED_MODULE_1__parse__["a" /* parseCss */], "px, ", "px)", "deg)");
  var interpolateTransformSvg = interpolateTransform(__WEBPACK_IMPORTED_MODULE_1__parse__["b" /* parseSvg */], ", ", ")", ")");
  
  
  /***/ }),
  /* 470 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__decompose__ = __webpack_require__(468);
  /* harmony export (immutable) */ __webpack_exports__["a"] = parseCss;
  /* harmony export (immutable) */ __webpack_exports__["b"] = parseSvg;
  
  
  var cssNode,
      cssRoot,
      cssView,
      svgNode;
  
  function parseCss(value) {
    if (value === "none") return __WEBPACK_IMPORTED_MODULE_0__decompose__["a" /* identity */];
    if (!cssNode) cssNode = document.createElement("DIV"), cssRoot = document.documentElement, cssView = document.defaultView;
    cssNode.style.transform = value;
    value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue("transform");
    cssRoot.removeChild(cssNode);
    value = value.slice(7, -1).split(",");
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__decompose__["b" /* default */])(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);
  }
  
  function parseSvg(value) {
    if (value == null) return __WEBPACK_IMPORTED_MODULE_0__decompose__["a" /* identity */];
    if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
    svgNode.setAttribute("transform", value);
    if (!(value = svgNode.transform.baseVal.consolidate())) return __WEBPACK_IMPORTED_MODULE_0__decompose__["a" /* identity */];
    value = value.matrix;
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__decompose__["b" /* default */])(value.a, value.b, value.c, value.d, value.e, value.f);
  }
  
  
  /***/ }),
  /* 471 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  var rho = Math.SQRT2,
      rho2 = 2,
      rho4 = 4,
      epsilon2 = 1e-12;
  
  function cosh(x) {
    return ((x = Math.exp(x)) + 1 / x) / 2;
  }
  
  function sinh(x) {
    return ((x = Math.exp(x)) - 1 / x) / 2;
  }
  
  function tanh(x) {
    return ((x = Math.exp(2 * x)) - 1) / (x + 1);
  }
  
  // p0 = [ux0, uy0, w0]
  // p1 = [ux1, uy1, w1]
  /* unused harmony default export */ var _unused_webpack_default_export = function(p0, p1) {
    var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
        ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
        dx = ux1 - ux0,
        dy = uy1 - uy0,
        d2 = dx * dx + dy * dy,
        i,
        S;
  
    // Special case for u0 ≅ u1.
    if (d2 < epsilon2) {
      S = Math.log(w1 / w0) / rho;
      i = function(t) {
        return [
          ux0 + t * dx,
          uy0 + t * dy,
          w0 * Math.exp(rho * t * S)
        ];
      }
    }
  
    // General case.
    else {
      var d1 = Math.sqrt(d2),
          b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
          b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
          r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
          r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
      S = (r1 - r0) / rho;
      i = function(t) {
        var s = t * S,
            coshr0 = cosh(r0),
            u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
        return [
          ux0 + u * dx,
          uy0 + u * dy,
          w0 * coshr0 / cosh(rho * s + r0)
        ];
      }
    }
  
    i.duration = S * 1000;
  
    return i;
  };
  
  
  /***/ }),
  /* 472 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ordinal__ = __webpack_require__(290);
  /* unused harmony export default */
  /* harmony export (immutable) */ __webpack_exports__["a"] = point;
  
  
  
  function band() {
    var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__ordinal__["a" /* default */])().unknown(undefined),
        domain = scale.domain,
        ordinalRange = scale.range,
        range = [0, 1],
        step,
        bandwidth,
        round = false,
        paddingInner = 0,
        paddingOuter = 0,
        align = 0.5;
  
    delete scale.unknown;
  
    function rescale() {
      var n = domain().length,
          reverse = range[1] < range[0],
          start = range[reverse - 0],
          stop = range[1 - reverse];
      step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
      if (round) step = Math.floor(step);
      start += (stop - start - step * (n - paddingInner)) * align;
      bandwidth = step * (1 - paddingInner);
      if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
      var values = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["h" /* range */])(n).map(function(i) { return start + step * i; });
      return ordinalRange(reverse ? values.reverse() : values);
    }
  
    scale.domain = function(_) {
      return arguments.length ? (domain(_), rescale()) : domain();
    };
  
    scale.range = function(_) {
      return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();
    };
  
    scale.rangeRound = function(_) {
      return range = [+_[0], +_[1]], round = true, rescale();
    };
  
    scale.bandwidth = function() {
      return bandwidth;
    };
  
    scale.step = function() {
      return step;
    };
  
    scale.round = function(_) {
      return arguments.length ? (round = !!_, rescale()) : round;
    };
  
    scale.padding = function(_) {
      return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;
    };
  
    scale.paddingInner = function(_) {
      return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;
    };
  
    scale.paddingOuter = function(_) {
      return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;
    };
  
    scale.align = function(_) {
      return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
    };
  
    scale.copy = function() {
      return band()
          .domain(domain())
          .range(range)
          .round(round)
          .paddingInner(paddingInner)
          .paddingOuter(paddingOuter)
          .align(align);
    };
  
    return rescale();
  }
  
  function pointish(scale) {
    var copy = scale.copy;
  
    scale.padding = scale.paddingOuter;
    delete scale.paddingInner;
    delete scale.paddingOuter;
  
    scale.copy = function() {
      return pointish(copy());
    };
  
    return scale;
  }
  
  function point() {
    return pointish(band().paddingInner(1));
  }
  
  
  /***/ }),
  /* 473 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__colors__ = __webpack_require__(78);
  
  
  /* harmony default export */ __webpack_exports__["a"] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__colors__["a" /* default */])("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");
  
  
  /***/ }),
  /* 474 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__colors__ = __webpack_require__(78);
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__colors__["a" /* default */])("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5");
  
  
  /***/ }),
  /* 475 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__colors__ = __webpack_require__(78);
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__colors__["a" /* default */])("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6");
  
  
  /***/ }),
  /* 476 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__colors__ = __webpack_require__(78);
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__colors__["a" /* default */])("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9");
  
  
  /***/ }),
  /* 477 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(45);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__ = __webpack_require__(75);
  
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_interpolate__["d" /* interpolateCubehelixLong */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["a" /* cubehelix */])(300, 0.5, 0.0), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["a" /* cubehelix */])(-240, 0.5, 1.0));
  
  
  /***/ }),
  /* 478 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__array__ = __webpack_require__(56);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__linear__ = __webpack_require__(79);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__number__ = __webpack_require__(289);
  /* unused harmony export default */
  
  
  
  
  function identity() {
    var domain = [0, 1];
  
    function scale(x) {
      return +x;
    }
  
    scale.invert = scale;
  
    scale.domain = scale.range = function(_) {
      return arguments.length ? (domain = __WEBPACK_IMPORTED_MODULE_0__array__["a" /* map */].call(_, __WEBPACK_IMPORTED_MODULE_2__number__["a" /* default */]), scale) : domain.slice();
    };
  
    scale.copy = function() {
      return identity().domain(domain);
    };
  
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__linear__["a" /* linearish */])(scale);
  }
  
  
  /***/ }),
  /* 479 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_format__ = __webpack_require__(4);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constant__ = __webpack_require__(212);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__nice__ = __webpack_require__(288);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__continuous__ = __webpack_require__(99);
  /* harmony export (immutable) */ __webpack_exports__["a"] = log;
  
  
  
  
  
  
  function deinterpolate(a, b) {
    return (b = Math.log(b / a))
        ? function(x) { return Math.log(x / a) / b; }
        : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__["a" /* default */])(b);
  }
  
  function reinterpolate(a, b) {
    return a < 0
        ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }
        : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };
  }
  
  function pow10(x) {
    return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
  }
  
  function powp(base) {
    return base === 10 ? pow10
        : base === Math.E ? Math.exp
        : function(x) { return Math.pow(base, x); };
  }
  
  function logp(base) {
    return base === Math.E ? Math.log
        : base === 10 && Math.log10
        || base === 2 && Math.log2
        || (base = Math.log(base), function(x) { return Math.log(x) / base; });
  }
  
  function reflect(f) {
    return function(x) {
      return -f(-x);
    };
  }
  
  function log() {
    var scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__continuous__["a" /* default */])(deinterpolate, reinterpolate).domain([1, 10]),
        domain = scale.domain,
        base = 10,
        logs = logp(10),
        pows = powp(10);
  
    function rescale() {
      logs = logp(base), pows = powp(base);
      if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);
      return scale;
    }
  
    scale.base = function(_) {
      return arguments.length ? (base = +_, rescale()) : base;
    };
  
    scale.domain = function(_) {
      return arguments.length ? (domain(_), rescale()) : domain();
    };
  
    scale.ticks = function(count) {
      var d = domain(),
          u = d[0],
          v = d[d.length - 1],
          r;
  
      if (r = v < u) i = u, u = v, v = i;
  
      var i = logs(u),
          j = logs(v),
          p,
          k,
          t,
          n = count == null ? 10 : +count,
          z = [];
  
      if (!(base % 1) && j - i < n) {
        i = Math.round(i) - 1, j = Math.round(j) + 1;
        if (u > 0) for (; i < j; ++i) {
          for (k = 1, p = pows(i); k < base; ++k) {
            t = p * k;
            if (t < u) continue;
            if (t > v) break;
            z.push(t);
          }
        } else for (; i < j; ++i) {
          for (k = base - 1, p = pows(i); k >= 1; --k) {
            t = p * k;
            if (t < u) continue;
            if (t > v) break;
            z.push(t);
          }
        }
      } else {
        z = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["c" /* ticks */])(i, j, Math.min(j - i, n)).map(pows);
      }
  
      return r ? z.reverse() : z;
    };
  
    scale.tickFormat = function(count, specifier) {
      if (specifier == null) specifier = base === 10 ? ".0e" : ",";
      if (typeof specifier !== "function") specifier = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__["f" /* format */])(specifier);
      if (count === Infinity) return specifier;
      if (count == null) count = 10;
      var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
      return function(d) {
        var i = d / pows(Math.round(logs(d)));
        if (i * base < base - 0.5) i *= base;
        return i <= k ? specifier(d) : "";
      };
    };
  
    scale.nice = function() {
      return domain(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__nice__["a" /* default */])(domain(), {
        floor: function(x) { return pows(Math.floor(logs(x))); },
        ceil: function(x) { return pows(Math.ceil(logs(x))); }
      }));
    };
  
    scale.copy = function() {
      return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__continuous__["c" /* copy */])(scale, log().base(base));
    };
  
    return scale;
  }
  
  
  /***/ }),
  /* 480 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constant__ = __webpack_require__(212);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__linear__ = __webpack_require__(79);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__continuous__ = __webpack_require__(99);
  /* unused harmony export default */
  /* unused harmony export sqrt */
  
  
  
  
  function raise(x, exponent) {
    return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
  }
  
  function pow() {
    var exponent = 1,
        scale = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__continuous__["a" /* default */])(deinterpolate, reinterpolate),
        domain = scale.domain;
  
    function deinterpolate(a, b) {
      return (b = raise(b, exponent) - (a = raise(a, exponent)))
          ? function(x) { return (raise(x, exponent) - a) / b; }
          : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__constant__["a" /* default */])(b);
    }
  
    function reinterpolate(a, b) {
      b = raise(b, exponent) - (a = raise(a, exponent));
      return function(t) { return raise(a + b * t, 1 / exponent); };
    }
  
    scale.exponent = function(_) {
      return arguments.length ? (exponent = +_, domain(domain())) : exponent;
    };
  
    scale.copy = function() {
      return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__continuous__["c" /* copy */])(scale, pow().exponent(exponent));
    };
  
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__linear__["a" /* linearish */])(scale);
  }
  
  function sqrt() {
    return pow().exponent(0.5);
  }
  
  
  /***/ }),
  /* 481 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(56);
  /* unused harmony export default */
  
  
  
  function quantile() {
    var domain = [],
        range = [],
        thresholds = [];
  
    function rescale() {
      var i = 0, n = Math.max(1, range.length);
      thresholds = new Array(n - 1);
      while (++i < n) thresholds[i - 1] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["f" /* quantile */])(domain, i / n);
      return scale;
    }
  
    function scale(x) {
      if (!isNaN(x = +x)) return range[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["e" /* bisect */])(thresholds, x)];
    }
  
    scale.invertExtent = function(y) {
      var i = range.indexOf(y);
      return i < 0 ? [NaN, NaN] : [
        i > 0 ? thresholds[i - 1] : domain[0],
        i < thresholds.length ? thresholds[i] : domain[domain.length - 1]
      ];
    };
  
    scale.domain = function(_) {
      if (!arguments.length) return domain.slice();
      domain = [];
      for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);
      domain.sort(__WEBPACK_IMPORTED_MODULE_0_d3_array__["g" /* ascending */]);
      return rescale();
    };
  
    scale.range = function(_) {
      return arguments.length ? (range = __WEBPACK_IMPORTED_MODULE_1__array__["b" /* slice */].call(_), rescale()) : range.slice();
    };
  
    scale.quantiles = function() {
      return thresholds.slice();
    };
  
    scale.copy = function() {
      return quantile()
          .domain(domain)
          .range(range);
    };
  
    return scale;
  }
  
  
  /***/ }),
  /* 482 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(56);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__linear__ = __webpack_require__(79);
  /* unused harmony export default */
  
  
  
  
  function quantize() {
    var x0 = 0,
        x1 = 1,
        n = 1,
        domain = [0.5],
        range = [0, 1];
  
    function scale(x) {
      if (x <= x) return range[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["e" /* bisect */])(domain, x, 0, n)];
    }
  
    function rescale() {
      var i = -1;
      domain = new Array(n);
      while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
      return scale;
    }
  
    scale.domain = function(_) {
      return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];
    };
  
    scale.range = function(_) {
      return arguments.length ? (n = (range = __WEBPACK_IMPORTED_MODULE_1__array__["b" /* slice */].call(_)).length - 1, rescale()) : range.slice();
    };
  
    scale.invertExtent = function(y) {
      var i = range.indexOf(y);
      return i < 0 ? [NaN, NaN]
          : i < 1 ? [x0, domain[0]]
          : i >= n ? [domain[n - 1], x1]
          : [domain[i - 1], domain[i]];
    };
  
    scale.copy = function() {
      return quantize()
          .domain([x0, x1])
          .range(range);
    };
  
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__linear__["a" /* linearish */])(scale);
  }
  
  
  /***/ }),
  /* 483 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_color__ = __webpack_require__(45);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_interpolate__ = __webpack_require__(75);
  /* unused harmony export warm */
  /* unused harmony export cool */
  
  
  
  var warm = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_interpolate__["d" /* interpolateCubehelixLong */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["a" /* cubehelix */])(-100, 0.75, 0.35), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["a" /* cubehelix */])(80, 1.50, 0.8));
  
  var cool = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_interpolate__["d" /* interpolateCubehelixLong */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["a" /* cubehelix */])(260, 0.75, 0.35), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["a" /* cubehelix */])(80, 1.50, 0.8));
  
  var rainbow = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_color__["a" /* cubehelix */])();
  
  /* unused harmony default export */ var _unused_webpack_default_export = function(t) {
    if (t < 0 || t > 1) t -= Math.floor(t);
    var ts = Math.abs(t - 0.5);
    rainbow.h = 360 * t - 100;
    rainbow.s = 1.5 - 1.5 * ts;
    rainbow.l = 0.8 - 0.9 * ts;
    return rainbow + "";
  };
  
  
  /***/ }),
  /* 484 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__linear__ = __webpack_require__(79);
  /* unused harmony export default */
  
  
  function sequential(interpolator) {
    var x0 = 0,
        x1 = 1,
        clamp = false;
  
    function scale(x) {
      var t = (x - x0) / (x1 - x0);
      return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);
    }
  
    scale.domain = function(_) {
      return arguments.length ? (x0 = +_[0], x1 = +_[1], scale) : [x0, x1];
    };
  
    scale.clamp = function(_) {
      return arguments.length ? (clamp = !!_, scale) : clamp;
    };
  
    scale.interpolator = function(_) {
      return arguments.length ? (interpolator = _, scale) : interpolator;
    };
  
    scale.copy = function() {
      return sequential(interpolator).domain([x0, x1]).clamp(clamp);
    };
  
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__linear__["a" /* linearish */])(scale);
  }
  
  
  /***/ }),
  /* 485 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array__ = __webpack_require__(56);
  /* unused harmony export default */
  
  
  
  function threshold() {
    var domain = [0.5],
        range = [0, 1],
        n = 1;
  
    function scale(x) {
      if (x <= x) return range[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["e" /* bisect */])(domain, x, 0, n)];
    }
  
    scale.domain = function(_) {
      return arguments.length ? (domain = __WEBPACK_IMPORTED_MODULE_1__array__["b" /* slice */].call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
    };
  
    scale.range = function(_) {
      return arguments.length ? (range = __WEBPACK_IMPORTED_MODULE_1__array__["b" /* slice */].call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
    };
  
    scale.invertExtent = function(y) {
      var i = range.indexOf(y);
      return [domain[i - 1], domain[i]];
    };
  
    scale.copy = function() {
      return threshold()
          .domain(domain)
          .range(range);
    };
  
    return scale;
  }
  
  
  /***/ }),
  /* 486 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_d3_array__ = __webpack_require__(12);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_format__ = __webpack_require__(4);
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(domain, count, specifier) {
    var start = domain[0],
        stop = domain[domain.length - 1],
        step = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_d3_array__["d" /* tickStep */])(start, stop, count == null ? 10 : count),
        precision;
    specifier = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__["a" /* formatSpecifier */])(specifier == null ? ",f" : specifier);
    switch (specifier.type) {
      case "s": {
        var value = Math.max(Math.abs(start), Math.abs(stop));
        if (specifier.precision == null && !isNaN(precision = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__["b" /* precisionPrefix */])(step, value))) specifier.precision = precision;
        return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__["c" /* formatPrefix */])(specifier, value);
      }
      case "":
      case "e":
      case "g":
      case "p":
      case "r": {
        if (specifier.precision == null && !isNaN(precision = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__["d" /* precisionRound */])(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
        break;
      }
      case "f":
      case "%": {
        if (specifier.precision == null && !isNaN(precision = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__["e" /* precisionFixed */])(step))) specifier.precision = precision - (specifier.type === "%") * 2;
        break;
      }
    }
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_d3_format__["f" /* format */])(specifier);
  };
  
  
  /***/ }),
  /* 487 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__time__ = __webpack_require__(291);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_d3_time_format__ = __webpack_require__(13);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3_time__ = __webpack_require__(246);
  
  
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = function() {
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__time__["a" /* calendar */])(__WEBPACK_IMPORTED_MODULE_2_d3_time__["a" /* utcYear */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["b" /* utcMonth */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["c" /* utcWeek */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["d" /* utcDay */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["e" /* utcHour */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["f" /* utcMinute */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["g" /* utcSecond */], __WEBPACK_IMPORTED_MODULE_2_d3_time__["h" /* utcMillisecond */], __WEBPACK_IMPORTED_MODULE_1_d3_time_format__["b" /* utcFormat */]).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);
  };
  
  
  /***/ }),
  /* 488 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__colors__ = __webpack_require__(78);
  /* unused harmony export magma */
  /* unused harmony export inferno */
  /* unused harmony export plasma */
  
  
  function ramp(range) {
    var n = range.length;
    return function(t) {
      return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
    };
  }
  
  /* unused harmony default export */ var _unused_webpack_default_export = ramp(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__colors__["a" /* default */])("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));
  
  var magma = ramp(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__colors__["a" /* default */])("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));
  
  var inferno = ramp(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__colors__["a" /* default */])("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));
  
  var plasma = ramp(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__colors__["a" /* default */])("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));
  
  
  /***/ }),
  /* 489 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(x) {
    return function() {
      return x;
    };
  };
  
  
  /***/ }),
  /* 490 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* unused harmony export default */
  var nextId = 0;
  
  function local() {
    return new Local;
  }
  
  function Local() {
    this._ = "@" + (++nextId).toString(36);
  }
  
  Local.prototype = local.prototype = {
    constructor: Local,
    get: function(node) {
      var id = this._;
      while (!(id in node)) if (!(node = node.parentNode)) return;
      return node[id];
    },
    set: function(node, value) {
      return node[this._] = value;
    },
    remove: function(node) {
      return this._ in node && delete node[this._];
    },
    toString: function() {
      return this._;
    }
  };
  
  
  /***/ }),
  /* 491 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sourceEvent__ = __webpack_require__(220);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__point__ = __webpack_require__(217);
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(node) {
    var event = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__sourceEvent__["a" /* default */])();
    if (event.changedTouches) event = event.changedTouches[0];
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__point__["a" /* default */])(node, event);
  };
  
  
  /***/ }),
  /* 492 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__selection_index__ = __webpack_require__(33);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(selector) {
    return typeof selector === "string"
        ? new __WEBPACK_IMPORTED_MODULE_0__selection_index__["a" /* Selection */]([[document.querySelector(selector)]], [document.documentElement])
        : new __WEBPACK_IMPORTED_MODULE_0__selection_index__["a" /* Selection */]([[selector]], __WEBPACK_IMPORTED_MODULE_0__selection_index__["b" /* root */]);
  };
  
  
  /***/ }),
  /* 493 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__selection_index__ = __webpack_require__(33);
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = function(selector) {
    return typeof selector === "string"
        ? new __WEBPACK_IMPORTED_MODULE_0__selection_index__["a" /* Selection */]([document.querySelectorAll(selector)], [document.documentElement])
        : new __WEBPACK_IMPORTED_MODULE_0__selection_index__["a" /* Selection */]([selector == null ? [] : selector], __WEBPACK_IMPORTED_MODULE_0__selection_index__["b" /* root */]);
  };
  
  
  /***/ }),
  /* 494 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__creator__ = __webpack_require__(214);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(name) {
    var create = typeof name === "function" ? name : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__creator__["a" /* default */])(name);
    return this.select(function() {
      return this.appendChild(create.apply(this, arguments));
    });
  };
  
  
  /***/ }),
  /* 495 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__namespace__ = __webpack_require__(215);
  
  
  function attrRemove(name) {
    return function() {
      this.removeAttribute(name);
    };
  }
  
  function attrRemoveNS(fullname) {
    return function() {
      this.removeAttributeNS(fullname.space, fullname.local);
    };
  }
  
  function attrConstant(name, value) {
    return function() {
      this.setAttribute(name, value);
    };
  }
  
  function attrConstantNS(fullname, value) {
    return function() {
      this.setAttributeNS(fullname.space, fullname.local, value);
    };
  }
  
  function attrFunction(name, value) {
    return function() {
      var v = value.apply(this, arguments);
      if (v == null) this.removeAttribute(name);
      else this.setAttribute(name, v);
    };
  }
  
  function attrFunctionNS(fullname, value) {
    return function() {
      var v = value.apply(this, arguments);
      if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
      else this.setAttributeNS(fullname.space, fullname.local, v);
    };
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(name, value) {
    var fullname = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__namespace__["a" /* default */])(name);
  
    if (arguments.length < 2) {
      var node = this.node();
      return fullname.local
          ? node.getAttributeNS(fullname.space, fullname.local)
          : node.getAttribute(fullname);
    }
  
    return this.each((value == null
        ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function"
        ? (fullname.local ? attrFunctionNS : attrFunction)
        : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));
  };
  
  
  /***/ }),
  /* 496 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function() {
    var callback = arguments[0];
    arguments[0] = this;
    callback.apply(null, arguments);
    return this;
  };
  
  
  /***/ }),
  /* 497 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function classArray(string) {
    return string.trim().split(/^|\s+/);
  }
  
  function classList(node) {
    return node.classList || new ClassList(node);
  }
  
  function ClassList(node) {
    this._node = node;
    this._names = classArray(node.getAttribute("class") || "");
  }
  
  ClassList.prototype = {
    add: function(name) {
      var i = this._names.indexOf(name);
      if (i < 0) {
        this._names.push(name);
        this._node.setAttribute("class", this._names.join(" "));
      }
    },
    remove: function(name) {
      var i = this._names.indexOf(name);
      if (i >= 0) {
        this._names.splice(i, 1);
        this._node.setAttribute("class", this._names.join(" "));
      }
    },
    contains: function(name) {
      return this._names.indexOf(name) >= 0;
    }
  };
  
  function classedAdd(node, names) {
    var list = classList(node), i = -1, n = names.length;
    while (++i < n) list.add(names[i]);
  }
  
  function classedRemove(node, names) {
    var list = classList(node), i = -1, n = names.length;
    while (++i < n) list.remove(names[i]);
  }
  
  function classedTrue(names) {
    return function() {
      classedAdd(this, names);
    };
  }
  
  function classedFalse(names) {
    return function() {
      classedRemove(this, names);
    };
  }
  
  function classedFunction(names, value) {
    return function() {
      (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
    };
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(name, value) {
    var names = classArray(name + "");
  
    if (arguments.length < 2) {
      var list = classList(this.node()), i = -1, n = names.length;
      while (++i < n) if (!list.contains(names[i])) return false;
      return true;
    }
  
    return this.each((typeof value === "function"
        ? classedFunction : value
        ? classedTrue
        : classedFalse)(names, value));
  };
  
  
  /***/ }),
  /* 498 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(33);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__enter__ = __webpack_require__(293);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constant__ = __webpack_require__(489);
  
  
  
  
  var keyPrefix = "$"; // Protect against keys like “__proto__”.
  
  function bindIndex(parent, group, enter, update, exit, data) {
    var i = 0,
        node,
        groupLength = group.length,
        dataLength = data.length;
  
    // Put any non-null nodes that fit into update.
    // Put any null nodes into enter.
    // Put any remaining data into enter.
    for (; i < dataLength; ++i) {
      if (node = group[i]) {
        node.__data__ = data[i];
        update[i] = node;
      } else {
        enter[i] = new __WEBPACK_IMPORTED_MODULE_1__enter__["b" /* EnterNode */](parent, data[i]);
      }
    }
  
    // Put any non-null nodes that don’t fit into exit.
    for (; i < groupLength; ++i) {
      if (node = group[i]) {
        exit[i] = node;
      }
    }
  }
  
  function bindKey(parent, group, enter, update, exit, data, key) {
    var i,
        node,
        nodeByKeyValue = {},
        groupLength = group.length,
        dataLength = data.length,
        keyValues = new Array(groupLength),
        keyValue;
  
    // Compute the key for each node.
    // If multiple nodes have the same key, the duplicates are added to exit.
    for (i = 0; i < groupLength; ++i) {
      if (node = group[i]) {
        keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);
        if (keyValue in nodeByKeyValue) {
          exit[i] = node;
        } else {
          nodeByKeyValue[keyValue] = node;
        }
      }
    }
  
    // Compute the key for each datum.
    // If there a node associated with this key, join and add it to update.
    // If there is not (or the key is a duplicate), add it to enter.
    for (i = 0; i < dataLength; ++i) {
      keyValue = keyPrefix + key.call(parent, data[i], i, data);
      if (node = nodeByKeyValue[keyValue]) {
        update[i] = node;
        node.__data__ = data[i];
        nodeByKeyValue[keyValue] = null;
      } else {
        enter[i] = new __WEBPACK_IMPORTED_MODULE_1__enter__["b" /* EnterNode */](parent, data[i]);
      }
    }
  
    // Add any remaining nodes that were not bound to data to exit.
    for (i = 0; i < groupLength; ++i) {
      if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {
        exit[i] = node;
      }
    }
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(value, key) {
    if (!value) {
      data = new Array(this.size()), j = -1;
      this.each(function(d) { data[++j] = d; });
      return data;
    }
  
    var bind = key ? bindKey : bindIndex,
        parents = this._parents,
        groups = this._groups;
  
    if (typeof value !== "function") value = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__constant__["a" /* default */])(value);
  
    for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
      var parent = parents[j],
          group = groups[j],
          groupLength = group.length,
          data = value.call(parent, parent && parent.__data__, j, parents),
          dataLength = data.length,
          enterGroup = enter[j] = new Array(dataLength),
          updateGroup = update[j] = new Array(dataLength),
          exitGroup = exit[j] = new Array(groupLength);
  
      bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
  
      // Now connect the enter nodes to their following update node, such that
      // appendChild can insert the materialized enter node before this node,
      // rather than at the end of the parent node.
      for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
        if (previous = enterGroup[i0]) {
          if (i0 >= i1) i1 = i0 + 1;
          while (!(next = updateGroup[i1]) && ++i1 < dataLength);
          previous._next = next || null;
        }
      }
    }
  
    update = new __WEBPACK_IMPORTED_MODULE_0__index__["a" /* Selection */](update, parents);
    update._enter = enter;
    update._exit = exit;
    return update;
  };
  
  
  /***/ }),
  /* 499 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(value) {
    return arguments.length
        ? this.property("__data__", value)
        : this.node().__data__;
  };
  
  
  /***/ }),
  /* 500 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__window__ = __webpack_require__(221);
  
  
  function dispatchEvent(node, type, params) {
    var window = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__window__["a" /* default */])(node),
        event = window.CustomEvent;
  
    if (event) {
      event = new event(type, params);
    } else {
      event = window.document.createEvent("Event");
      if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
      else event.initEvent(type, false, false);
    }
  
    node.dispatchEvent(event);
  }
  
  function dispatchConstant(type, params) {
    return function() {
      return dispatchEvent(this, type, params);
    };
  }
  
  function dispatchFunction(type, params) {
    return function() {
      return dispatchEvent(this, type, params.apply(this, arguments));
    };
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(type, params) {
    return this.each((typeof params === "function"
        ? dispatchFunction
        : dispatchConstant)(type, params));
  };
  
  
  /***/ }),
  /* 501 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function(callback) {
  
    for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
      for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
        if (node = group[i]) callback.call(node, node.__data__, i, group);
      }
    }
  
    return this;
  };
  
  
  /***/ }),
  /* 502 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function() {
    return !this.node();
  };
  
  
  /***/ }),
  /* 503 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sparse__ = __webpack_require__(294);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__index__ = __webpack_require__(33);
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function() {
    return new __WEBPACK_IMPORTED_MODULE_1__index__["a" /* Selection */](this._exit || this._groups.map(__WEBPACK_IMPORTED_MODULE_0__sparse__["a" /* default */]), this._parents);
  };
  
  
  /***/ }),
  /* 504 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(33);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__matcher__ = __webpack_require__(292);
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(match) {
    if (typeof match !== "function") match = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__matcher__["a" /* default */])(match);
  
    for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
      for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
        if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
          subgroup.push(node);
        }
      }
    }
  
    return new __WEBPACK_IMPORTED_MODULE_0__index__["a" /* Selection */](subgroups, this._parents);
  };
  
  
  /***/ }),
  /* 505 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function htmlRemove() {
    this.innerHTML = "";
  }
  
  function htmlConstant(value) {
    return function() {
      this.innerHTML = value;
    };
  }
  
  function htmlFunction(value) {
    return function() {
      var v = value.apply(this, arguments);
      this.innerHTML = v == null ? "" : v;
    };
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(value) {
    return arguments.length
        ? this.each(value == null
            ? htmlRemove : (typeof value === "function"
            ? htmlFunction
            : htmlConstant)(value))
        : this.node().innerHTML;
  };
  
  
  /***/ }),
  /* 506 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__creator__ = __webpack_require__(214);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__selector__ = __webpack_require__(219);
  
  
  
  function constantNull() {
    return null;
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(name, before) {
    var create = typeof name === "function" ? name : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__creator__["a" /* default */])(name),
        select = before == null ? constantNull : typeof before === "function" ? before : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__selector__["a" /* default */])(before);
    return this.select(function() {
      return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
    });
  };
  
  
  /***/ }),
  /* 507 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function lower() {
    if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function() {
    return this.each(lower);
  };
  
  
  /***/ }),
  /* 508 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(33);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(selection) {
  
    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) {
      for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
        if (node = group0[i] || group1[i]) {
          merge[i] = node;
        }
      }
    }
  
    for (; j < m0; ++j) {
      merges[j] = groups0[j];
    }
  
    return new __WEBPACK_IMPORTED_MODULE_0__index__["a" /* Selection */](merges, this._parents);
  };
  
  
  /***/ }),
  /* 509 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function() {
  
    for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
      for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
        var node = group[i];
        if (node) return node;
      }
    }
  
    return null;
  };
  
  
  /***/ }),
  /* 510 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function() {
    var nodes = new Array(this.size()), i = -1;
    this.each(function() { nodes[++i] = this; });
    return nodes;
  };
  
  
  /***/ }),
  /* 511 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function() {
  
    for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {
      for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
        if (node = group[i]) {
          if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
          next = node;
        }
      }
    }
  
    return this;
  };
  
  
  /***/ }),
  /* 512 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function propertyRemove(name) {
    return function() {
      delete this[name];
    };
  }
  
  function propertyConstant(name, value) {
    return function() {
      this[name] = value;
    };
  }
  
  function propertyFunction(name, value) {
    return function() {
      var v = value.apply(this, arguments);
      if (v == null) delete this[name];
      else this[name] = v;
    };
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(name, value) {
    return arguments.length > 1
        ? this.each((value == null
            ? propertyRemove : typeof value === "function"
            ? propertyFunction
            : propertyConstant)(name, value))
        : this.node()[name];
  };
  
  
  /***/ }),
  /* 513 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function raise() {
    if (this.nextSibling) this.parentNode.appendChild(this);
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function() {
    return this.each(raise);
  };
  
  
  /***/ }),
  /* 514 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function remove() {
    var parent = this.parentNode;
    if (parent) parent.removeChild(this);
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function() {
    return this.each(remove);
  };
  
  
  /***/ }),
  /* 515 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(33);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__selector__ = __webpack_require__(219);
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(select) {
    if (typeof select !== "function") select = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__selector__["a" /* default */])(select);
  
    for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
      for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
        if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
          if ("__data__" in node) subnode.__data__ = node.__data__;
          subgroup[i] = subnode;
        }
      }
    }
  
    return new __WEBPACK_IMPORTED_MODULE_0__index__["a" /* Selection */](subgroups, this._parents);
  };
  
  
  /***/ }),
  /* 516 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(33);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__selectorAll__ = __webpack_require__(295);
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(select) {
    if (typeof select !== "function") select = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__selectorAll__["a" /* default */])(select);
  
    for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
      for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
        if (node = group[i]) {
          subgroups.push(select.call(node, node.__data__, i, group));
          parents.push(node);
        }
      }
    }
  
    return new __WEBPACK_IMPORTED_MODULE_0__index__["a" /* Selection */](subgroups, parents);
  };
  
  
  /***/ }),
  /* 517 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = function() {
    var size = 0;
    this.each(function() { ++size; });
    return size;
  };
  
  
  /***/ }),
  /* 518 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(33);
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(compare) {
    if (!compare) compare = ascending;
  
    function compareNode(a, b) {
      return a && b ? compare(a.__data__, b.__data__) : !a - !b;
    }
  
    for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
      for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
        if (node = group[i]) {
          sortgroup[i] = node;
        }
      }
      sortgroup.sort(compareNode);
    }
  
    return new __WEBPACK_IMPORTED_MODULE_0__index__["a" /* Selection */](sortgroups, this._parents).order();
  };
  
  function ascending(a, b) {
    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
  }
  
  
  /***/ }),
  /* 519 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__window__ = __webpack_require__(221);
  
  
  function styleRemove(name) {
    return function() {
      this.style.removeProperty(name);
    };
  }
  
  function styleConstant(name, value, priority) {
    return function() {
      this.style.setProperty(name, value, priority);
    };
  }
  
  function styleFunction(name, value, priority) {
    return function() {
      var v = value.apply(this, arguments);
      if (v == null) this.style.removeProperty(name);
      else this.style.setProperty(name, v, priority);
    };
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(name, value, priority) {
    var node;
    return arguments.length > 1
        ? this.each((value == null
              ? styleRemove : typeof value === "function"
              ? styleFunction
              : styleConstant)(name, value, priority == null ? "" : priority))
        : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__window__["a" /* default */])(node = this.node())
            .getComputedStyle(node, null)
            .getPropertyValue(name);
  };
  
  
  /***/ }),
  /* 520 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function textRemove() {
    this.textContent = "";
  }
  
  function textConstant(value) {
    return function() {
      this.textContent = value;
    };
  }
  
  function textFunction(value) {
    return function() {
      var v = value.apply(this, arguments);
      this.textContent = v == null ? "" : v;
    };
  }
  
  /* harmony default export */ __webpack_exports__["a"] = function(value) {
    return arguments.length
        ? this.each(value == null
            ? textRemove : (typeof value === "function"
            ? textFunction
            : textConstant)(value))
        : this.node().textContent;
  };
  
  
  /***/ }),
  /* 521 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sourceEvent__ = __webpack_require__(220);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__point__ = __webpack_require__(217);
  
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = function(node, touches, identifier) {
    if (arguments.length < 3) identifier = touches, touches = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__sourceEvent__["a" /* default */])().changedTouches;
  
    for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {
      if ((touch = touches[i]).identifier === identifier) {
        return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__point__["a" /* default */])(node, touch);
      }
    }
  
    return null;
  };
  
  
  /***/ }),
  /* 522 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sourceEvent__ = __webpack_require__(220);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__point__ = __webpack_require__(217);
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = function(node, touches) {
    if (touches == null) touches = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__sourceEvent__["a" /* default */])().touches;
  
    for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {
      points[i] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__point__["a" /* default */])(node, touches[i]);
    }
  
    return points;
  };
  
  
  /***/ }),
  /* 523 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__isoFormat__ = __webpack_require__(296);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__defaultLocale__ = __webpack_require__(245);
  
  
  
  function parseIsoNative(string) {
    var date = new Date(string);
    return isNaN(date) ? null : date;
  }
  
  var parseIso = +new Date("2000-01-01T00:00:00.000Z")
      ? parseIsoNative
      : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__defaultLocale__["c" /* utcParse */])(__WEBPACK_IMPORTED_MODULE_0__isoFormat__["a" /* isoSpecifier */]);
  
  /* unused harmony default export */ var _unused_webpack_default_export = parseIso;
  
  
  /***/ }),
  /* 524 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(44);
  /* unused harmony export days */
  
  
  
  var day = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    date.setHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setDate(date.getDate() + step);
  }, function(start, end) {
    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * __WEBPACK_IMPORTED_MODULE_1__duration__["d" /* durationMinute */]) / __WEBPACK_IMPORTED_MODULE_1__duration__["b" /* durationDay */];
  }, function(date) {
    return date.getDate() - 1;
  });
  
  /* harmony default export */ __webpack_exports__["a"] = day;
  var days = day.range;
  
  
  /***/ }),
  /* 525 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(44);
  /* unused harmony export hours */
  
  
  
  var hour = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    var offset = date.getTimezoneOffset() * __WEBPACK_IMPORTED_MODULE_1__duration__["d" /* durationMinute */] % __WEBPACK_IMPORTED_MODULE_1__duration__["c" /* durationHour */];
    if (offset < 0) offset += __WEBPACK_IMPORTED_MODULE_1__duration__["c" /* durationHour */];
    date.setTime(Math.floor((+date - offset) / __WEBPACK_IMPORTED_MODULE_1__duration__["c" /* durationHour */]) * __WEBPACK_IMPORTED_MODULE_1__duration__["c" /* durationHour */] + offset);
  }, function(date, step) {
    date.setTime(+date + step * __WEBPACK_IMPORTED_MODULE_1__duration__["c" /* durationHour */]);
  }, function(start, end) {
    return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__["c" /* durationHour */];
  }, function(date) {
    return date.getHours();
  });
  
  /* harmony default export */ __webpack_exports__["a"] = hour;
  var hours = hour.range;
  
  
  /***/ }),
  /* 526 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* unused harmony export milliseconds */
  
  
  var millisecond = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function() {
    // noop
  }, function(date, step) {
    date.setTime(+date + step);
  }, function(start, end) {
    return end - start;
  });
  
  // An optimized implementation for this simple case.
  millisecond.every = function(k) {
    k = Math.floor(k);
    if (!isFinite(k) || !(k > 0)) return null;
    if (!(k > 1)) return millisecond;
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
      date.setTime(Math.floor(date / k) * k);
    }, function(date, step) {
      date.setTime(+date + step * k);
    }, function(start, end) {
      return (end - start) / k;
    });
  };
  
  /* harmony default export */ __webpack_exports__["a"] = millisecond;
  var milliseconds = millisecond.range;
  
  
  /***/ }),
  /* 527 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(44);
  /* unused harmony export minutes */
  
  
  
  var minute = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    date.setTime(Math.floor(date / __WEBPACK_IMPORTED_MODULE_1__duration__["d" /* durationMinute */]) * __WEBPACK_IMPORTED_MODULE_1__duration__["d" /* durationMinute */]);
  }, function(date, step) {
    date.setTime(+date + step * __WEBPACK_IMPORTED_MODULE_1__duration__["d" /* durationMinute */]);
  }, function(start, end) {
    return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__["d" /* durationMinute */];
  }, function(date) {
    return date.getMinutes();
  });
  
  /* harmony default export */ __webpack_exports__["a"] = minute;
  var minutes = minute.range;
  
  
  /***/ }),
  /* 528 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* unused harmony export months */
  
  
  var month = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    date.setDate(1);
    date.setHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setMonth(date.getMonth() + step);
  }, function(start, end) {
    return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
  }, function(date) {
    return date.getMonth();
  });
  
  /* harmony default export */ __webpack_exports__["a"] = month;
  var months = month.range;
  
  
  /***/ }),
  /* 529 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(44);
  /* unused harmony export seconds */
  
  
  
  var second = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    date.setTime(Math.floor(date / __WEBPACK_IMPORTED_MODULE_1__duration__["e" /* durationSecond */]) * __WEBPACK_IMPORTED_MODULE_1__duration__["e" /* durationSecond */]);
  }, function(date, step) {
    date.setTime(+date + step * __WEBPACK_IMPORTED_MODULE_1__duration__["e" /* durationSecond */]);
  }, function(start, end) {
    return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__["e" /* durationSecond */];
  }, function(date) {
    return date.getUTCSeconds();
  });
  
  /* harmony default export */ __webpack_exports__["a"] = second;
  var seconds = second.range;
  
  
  /***/ }),
  /* 530 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(44);
  /* unused harmony export utcDays */
  
  
  
  var utcDay = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    date.setUTCHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setUTCDate(date.getUTCDate() + step);
  }, function(start, end) {
    return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__["b" /* durationDay */];
  }, function(date) {
    return date.getUTCDate() - 1;
  });
  
  /* harmony default export */ __webpack_exports__["a"] = utcDay;
  var utcDays = utcDay.range;
  
  
  /***/ }),
  /* 531 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(44);
  /* unused harmony export utcHours */
  
  
  
  var utcHour = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    date.setUTCMinutes(0, 0, 0);
  }, function(date, step) {
    date.setTime(+date + step * __WEBPACK_IMPORTED_MODULE_1__duration__["c" /* durationHour */]);
  }, function(start, end) {
    return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__["c" /* durationHour */];
  }, function(date) {
    return date.getUTCHours();
  });
  
  /* harmony default export */ __webpack_exports__["a"] = utcHour;
  var utcHours = utcHour.range;
  
  
  /***/ }),
  /* 532 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(44);
  /* unused harmony export utcMinutes */
  
  
  
  var utcMinute = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    date.setUTCSeconds(0, 0);
  }, function(date, step) {
    date.setTime(+date + step * __WEBPACK_IMPORTED_MODULE_1__duration__["d" /* durationMinute */]);
  }, function(start, end) {
    return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__["d" /* durationMinute */];
  }, function(date) {
    return date.getUTCMinutes();
  });
  
  /* harmony default export */ __webpack_exports__["a"] = utcMinute;
  var utcMinutes = utcMinute.range;
  
  
  /***/ }),
  /* 533 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* unused harmony export utcMonths */
  
  
  var utcMonth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    date.setUTCDate(1);
    date.setUTCHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setUTCMonth(date.getUTCMonth() + step);
  }, function(start, end) {
    return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
  }, function(date) {
    return date.getUTCMonth();
  });
  
  /* harmony default export */ __webpack_exports__["a"] = utcMonth;
  var utcMonths = utcMonth.range;
  
  
  /***/ }),
  /* 534 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(44);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return utcSunday; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return utcMonday; });
  /* unused harmony export utcTuesday */
  /* unused harmony export utcWednesday */
  /* unused harmony export utcThursday */
  /* unused harmony export utcFriday */
  /* unused harmony export utcSaturday */
  /* unused harmony export utcSundays */
  /* unused harmony export utcMondays */
  /* unused harmony export utcTuesdays */
  /* unused harmony export utcWednesdays */
  /* unused harmony export utcThursdays */
  /* unused harmony export utcFridays */
  /* unused harmony export utcSaturdays */
  
  
  
  function utcWeekday(i) {
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
      date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
      date.setUTCHours(0, 0, 0, 0);
    }, function(date, step) {
      date.setUTCDate(date.getUTCDate() + step * 7);
    }, function(start, end) {
      return (end - start) / __WEBPACK_IMPORTED_MODULE_1__duration__["a" /* durationWeek */];
    });
  }
  
  var utcSunday = utcWeekday(0);
  var utcMonday = utcWeekday(1);
  var utcTuesday = utcWeekday(2);
  var utcWednesday = utcWeekday(3);
  var utcThursday = utcWeekday(4);
  var utcFriday = utcWeekday(5);
  var utcSaturday = utcWeekday(6);
  
  var utcSundays = utcSunday.range;
  var utcMondays = utcMonday.range;
  var utcTuesdays = utcTuesday.range;
  var utcWednesdays = utcWednesday.range;
  var utcThursdays = utcThursday.range;
  var utcFridays = utcFriday.range;
  var utcSaturdays = utcSaturday.range;
  
  
  /***/ }),
  /* 535 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* unused harmony export utcYears */
  
  
  var utcYear = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    date.setUTCMonth(0, 1);
    date.setUTCHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setUTCFullYear(date.getUTCFullYear() + step);
  }, function(start, end) {
    return end.getUTCFullYear() - start.getUTCFullYear();
  }, function(date) {
    return date.getUTCFullYear();
  });
  
  // An optimized implementation for this simple case.
  utcYear.every = function(k) {
    return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
      date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
      date.setUTCMonth(0, 1);
      date.setUTCHours(0, 0, 0, 0);
    }, function(date, step) {
      date.setUTCFullYear(date.getUTCFullYear() + step * k);
    });
  };
  
  /* harmony default export */ __webpack_exports__["a"] = utcYear;
  var utcYears = utcYear.range;
  
  
  /***/ }),
  /* 536 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__duration__ = __webpack_require__(44);
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return sunday; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return monday; });
  /* unused harmony export tuesday */
  /* unused harmony export wednesday */
  /* unused harmony export thursday */
  /* unused harmony export friday */
  /* unused harmony export saturday */
  /* unused harmony export sundays */
  /* unused harmony export mondays */
  /* unused harmony export tuesdays */
  /* unused harmony export wednesdays */
  /* unused harmony export thursdays */
  /* unused harmony export fridays */
  /* unused harmony export saturdays */
  
  
  
  function weekday(i) {
    return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
      date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
      date.setHours(0, 0, 0, 0);
    }, function(date, step) {
      date.setDate(date.getDate() + step * 7);
    }, function(start, end) {
      return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * __WEBPACK_IMPORTED_MODULE_1__duration__["d" /* durationMinute */]) / __WEBPACK_IMPORTED_MODULE_1__duration__["a" /* durationWeek */];
    });
  }
  
  var sunday = weekday(0);
  var monday = weekday(1);
  var tuesday = weekday(2);
  var wednesday = weekday(3);
  var thursday = weekday(4);
  var friday = weekday(5);
  var saturday = weekday(6);
  
  var sundays = sunday.range;
  var mondays = monday.range;
  var tuesdays = tuesday.range;
  var wednesdays = wednesday.range;
  var thursdays = thursday.range;
  var fridays = friday.range;
  var saturdays = saturday.range;
  
  
  /***/ }),
  /* 537 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__interval__ = __webpack_require__(26);
  /* unused harmony export years */
  
  
  var year = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
    date.setMonth(0, 1);
    date.setHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setFullYear(date.getFullYear() + step);
  }, function(start, end) {
    return end.getFullYear() - start.getFullYear();
  }, function(date) {
    return date.getFullYear();
  });
  
  // An optimized implementation for this simple case.
  year.every = function(k) {
    return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__interval__["a" /* default */])(function(date) {
      date.setFullYear(Math.floor(date.getFullYear() / k) * k);
      date.setMonth(0, 1);
      date.setHours(0, 0, 0, 0);
    }, function(date, step) {
      date.setFullYear(date.getFullYear() + step * k);
    });
  };
  
  /* harmony default export */ __webpack_exports__["a"] = year;
  var years = year.range;
  
  
  /***/ }),
  /* 538 */,
  /* 539 */,
  /* 540 */,
  /* 541 */,
  /* 542 */,
  /* 543 */,
  /* 544 */,
  /* 545 */,
  /* 546 */,
  /* 547 */,
  /* 548 */,
  /* 549 */,
  /* 550 */,
  /* 551 */,
  /* 552 */,
  /* 553 */,
  /* 554 */,
  /* 555 */,
  /* 556 */,
  /* 557 */,
  /* 558 */,
  /* 559 */,
  /* 560 */,
  /* 561 */,
  /* 562 */,
  /* 563 */,
  /* 564 */,
  /* 565 */,
  /* 566 */,
  /* 567 */,
  /* 568 */,
  /* 569 */,
  /* 570 */,
  /* 571 */,
  /* 572 */,
  /* 573 */,
  /* 574 */,
  /* 575 */,
  /* 576 */,
  /* 577 */,
  /* 578 */,
  /* 579 */,
  /* 580 */,
  /* 581 */,
  /* 582 */,
  /* 583 */,
  /* 584 */,
  /* 585 */,
  /* 586 */,
  /* 587 */,
  /* 588 */,
  /* 589 */,
  /* 590 */,
  /* 591 */,
  /* 592 */,
  /* 593 */,
  /* 594 */
  /***/ (function(module, exports, __webpack_require__) {
  
  /* WEBPACK VAR INJECTION */(function(global) {/**
   * lodash (Custom Build) <https://lodash.com/>
   * Build: `lodash modularize exports="npm" -o ./`
   * Copyright jQuery Foundation and other contributors <https://jquery.org/>
   * Released under MIT license <https://lodash.com/license>
   * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
   */
  
  /** Used as references for various `Number` constants. */
  var INFINITY = 1 / 0,
      MAX_SAFE_INTEGER = 9007199254740991;
  
  /** `Object#toString` result references. */
  var argsTag = '[object Arguments]',
      funcTag = '[object Function]',
      genTag = '[object GeneratorFunction]';
  
  /** Detect free variable `global` from Node.js. */
  var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
  
  /** Detect free variable `self`. */
  var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
  
  /** Used as a reference to the global object. */
  var root = freeGlobal || freeSelf || Function('return this')();
  
  /**
   * Appends the elements of `values` to `array`.
   *
   * @private
   * @param {Array} array The array to modify.
   * @param {Array} values The values to append.
   * @returns {Array} Returns `array`.
   */
  function arrayPush(array, values) {
    var index = -1,
        length = values.length,
        offset = array.length;
  
    while (++index < length) {
      array[offset + index] = values[index];
    }
    return array;
  }
  
  /** Used for built-in method references. */
  var objectProto = Object.prototype;
  
  /** Used to check objects for own properties. */
  var hasOwnProperty = objectProto.hasOwnProperty;
  
  /**
   * Used to resolve the
   * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
   * of values.
   */
  var objectToString = objectProto.toString;
  
  /** Built-in value references. */
  var Symbol = root.Symbol,
      propertyIsEnumerable = objectProto.propertyIsEnumerable,
      spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
  
  /**
   * The base implementation of `_.flatten` with support for restricting flattening.
   *
   * @private
   * @param {Array} array The array to flatten.
   * @param {number} depth The maximum recursion depth.
   * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
   * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
   * @param {Array} [result=[]] The initial result value.
   * @returns {Array} Returns the new flattened array.
   */
  function baseFlatten(array, depth, predicate, isStrict, result) {
    var index = -1,
        length = array.length;
  
    predicate || (predicate = isFlattenable);
    result || (result = []);
  
    while (++index < length) {
      var value = array[index];
      if (depth > 0 && predicate(value)) {
        if (depth > 1) {
          // Recursively flatten arrays (susceptible to call stack limits).
          baseFlatten(value, depth - 1, predicate, isStrict, result);
        } else {
          arrayPush(result, value);
        }
      } else if (!isStrict) {
        result[result.length] = value;
      }
    }
    return result;
  }
  
  /**
   * Checks if `value` is a flattenable `arguments` object or array.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
   */
  function isFlattenable(value) {
    return isArray(value) || isArguments(value) ||
      !!(spreadableSymbol && value && value[spreadableSymbol]);
  }
  
  /**
   * Recursively flattens `array`.
   *
   * @static
   * @memberOf _
   * @since 3.0.0
   * @category Array
   * @param {Array} array The array to flatten.
   * @returns {Array} Returns the new flattened array.
   * @example
   *
   * _.flattenDeep([1, [2, [3, [4]], 5]]);
   * // => [1, 2, 3, 4, 5]
   */
  function flattenDeep(array) {
    var length = array ? array.length : 0;
    return length ? baseFlatten(array, INFINITY) : [];
  }
  
  /**
   * Checks if `value` is likely an `arguments` object.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an `arguments` object,
   *  else `false`.
   * @example
   *
   * _.isArguments(function() { return arguments; }());
   * // => true
   *
   * _.isArguments([1, 2, 3]);
   * // => false
   */
  function isArguments(value) {
    // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
    return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
      (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
  }
  
  /**
   * Checks if `value` is classified as an `Array` object.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an array, else `false`.
   * @example
   *
   * _.isArray([1, 2, 3]);
   * // => true
   *
   * _.isArray(document.body.children);
   * // => false
   *
   * _.isArray('abc');
   * // => false
   *
   * _.isArray(_.noop);
   * // => false
   */
  var isArray = Array.isArray;
  
  /**
   * Checks if `value` is array-like. A value is considered array-like if it's
   * not a function and has a `value.length` that's an integer greater than or
   * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
   * @example
   *
   * _.isArrayLike([1, 2, 3]);
   * // => true
   *
   * _.isArrayLike(document.body.children);
   * // => true
   *
   * _.isArrayLike('abc');
   * // => true
   *
   * _.isArrayLike(_.noop);
   * // => false
   */
  function isArrayLike(value) {
    return value != null && isLength(value.length) && !isFunction(value);
  }
  
  /**
   * This method is like `_.isArrayLike` except that it also checks if `value`
   * is an object.
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an array-like object,
   *  else `false`.
   * @example
   *
   * _.isArrayLikeObject([1, 2, 3]);
   * // => true
   *
   * _.isArrayLikeObject(document.body.children);
   * // => true
   *
   * _.isArrayLikeObject('abc');
   * // => false
   *
   * _.isArrayLikeObject(_.noop);
   * // => false
   */
  function isArrayLikeObject(value) {
    return isObjectLike(value) && isArrayLike(value);
  }
  
  /**
   * Checks if `value` is classified as a `Function` object.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a function, else `false`.
   * @example
   *
   * _.isFunction(_);
   * // => true
   *
   * _.isFunction(/abc/);
   * // => false
   */
  function isFunction(value) {
    // The use of `Object#toString` avoids issues with the `typeof` operator
    // in Safari 8-9 which returns 'object' for typed array and other constructors.
    var tag = isObject(value) ? objectToString.call(value) : '';
    return tag == funcTag || tag == genTag;
  }
  
  /**
   * Checks if `value` is a valid array-like length.
   *
   * **Note:** This method is loosely based on
   * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
   * @example
   *
   * _.isLength(3);
   * // => true
   *
   * _.isLength(Number.MIN_VALUE);
   * // => false
   *
   * _.isLength(Infinity);
   * // => false
   *
   * _.isLength('3');
   * // => false
   */
  function isLength(value) {
    return typeof value == 'number' &&
      value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
  }
  
  /**
   * Checks if `value` is the
   * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
   * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an object, else `false`.
   * @example
   *
   * _.isObject({});
   * // => true
   *
   * _.isObject([1, 2, 3]);
   * // => true
   *
   * _.isObject(_.noop);
   * // => true
   *
   * _.isObject(null);
   * // => false
   */
  function isObject(value) {
    var type = typeof value;
    return !!value && (type == 'object' || type == 'function');
  }
  
  /**
   * Checks if `value` is object-like. A value is object-like if it's not `null`
   * and has a `typeof` result of "object".
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
   * @example
   *
   * _.isObjectLike({});
   * // => true
   *
   * _.isObjectLike([1, 2, 3]);
   * // => true
   *
   * _.isObjectLike(_.noop);
   * // => false
   *
   * _.isObjectLike(null);
   * // => false
   */
  function isObjectLike(value) {
    return !!value && typeof value == 'object';
  }
  
  module.exports = flattenDeep;
  
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(358)))
  
  /***/ })
  /******/ ]);
  });
  //# sourceMappingURL=react-stockcharts.a1adb94075123c9938a4.js.map