diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d30f40e..0000000 --- a/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/README.md b/README.md deleted file mode 100644 index dfc8e87..0000000 --- a/README.md +++ /dev/null @@ -1,48 +0,0 @@ -## Convolution Visualizer - -Live at [Convolution Visualizer](https://ezyang.github.io/convolution-visualizer/index.html). - -Made with the help of our fine friends at [React](https://reactjs.org/) -and [D3.js](https://d3js.org/). - -### Things to do - -Want to play around with the code? Clone this repository and run `yarn -start` to start a development instance. The main code lives in -`src/index.js`. This [React manual](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md) may be of interest. - -Here are some project ideas: - -* Tweak the CSS so that the weight and output matrices - are displayed to the right of the input if there is space. -* Add a slider for adjusting speed of the animation. -* Add a slider which specifies the animation timestep you - are on; this way, you can run the animation forward and - backward by dragging the slider. -* Add output size and output padding sliders. When these - sliders are adjusted, you recompute the input size using - the transposed convolution formula. -* Add an onClick handler, which pins your selection at - the current mouse collection until another click - occurs (disabling the hover behavior.) -* Add a mode which, when enabled, labels cells with variables and - renders the mathematical formula to compute the output - cell you are moused over. -* Render code for PyTorch (or your favorite framework) which performs the - selected convolution. -* Add more exotic convolution types like circular convolution. -* Add a "true" convolution mode, where the weights are flipped - before multiplication. -* Support bigger input sizes than 16 (decreasing the size of - the squares when inputs are large), and optimize the code so that it - still runs quickly in these cases. -* Support assymmetric inputs/kernels/strides/dilations. - -Bigger projects: - -* Create an in-browser canvas application, which convolves - an input image against a displayed filter. Bonus points - if your canvas supports painting capabilities. -* Design a visualization which demonstrates the principles - of group convolution, allowing you to slide from standard - to depthwise convolution. diff --git a/asset-manifest.json b/asset-manifest.json new file mode 100644 index 0000000..8dd9de3 --- /dev/null +++ b/asset-manifest.json @@ -0,0 +1,6 @@ +{ + "main.css": "static/css/main.0a8c4c1d.css", + "main.css.map": "static/css/main.0a8c4c1d.css.map", + "main.js": "static/js/main.52d8c6a6.js", + "main.js.map": "static/js/main.52d8c6a6.js.map" +} \ No newline at end of file diff --git a/public/favicon.ico b/favicon.ico similarity index 100% rename from public/favicon.ico rename to favicon.ico diff --git a/index.html b/index.html new file mode 100644 index 0000000..b064348 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +Convolution VisualizerFork me on GitHub
\ No newline at end of file diff --git a/public/manifest.json b/manifest.json similarity index 100% rename from public/manifest.json rename to manifest.json diff --git a/package.json b/package.json deleted file mode 100644 index aaa913f..0000000 --- a/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "convolution-visualizer", - "version": "0.1.0", - "private": true, - "dependencies": { - "d3-scale-chromatic": "^1.2.0", - "d3v4": "^4.2.2", - "gh-pages": "^1.1.0", - "react": "^16.2.0", - "react-dom": "^16.2.0", - "react-scripts": "1.1.1" - }, - "homepage": "https://ezyang.github.io/convolution-visualizer", - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", - "eject": "react-scripts eject", - "predeploy": "yarn build", - "deploy": "gh-pages -d build" - } -} diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 4c20600..0000000 --- a/public/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - Convolution Visualizer - - - - Fork me on GitHub -
- - - diff --git a/service-worker.js b/service-worker.js new file mode 100644 index 0000000..f74600e --- /dev/null +++ b/service-worker.js @@ -0,0 +1 @@ +"use strict";var precacheConfig=[["/convolution-visualizer/index.html","c31fcbcdc948f11d0ad4710a324cd486"],["/convolution-visualizer/static/css/main.0a8c4c1d.css","4224debf179b937ff2fb2bc55511e387"],["/convolution-visualizer/static/js/main.52d8c6a6.js","77a2b473388c980290cca51da8c8467b"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),a]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching),r="index.html";(t=urlsToCacheKeys.has(n))||(n=addDirectoryIndex(n,r),t=urlsToCacheKeys.has(n));var a="/convolution-visualizer/index.html";!t&&"navigate"===e.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],e.request.url)&&(n=new URL(a,self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}); \ No newline at end of file diff --git a/src/index.css b/src/index.css deleted file mode 100644 index e5d2fca..0000000 --- a/src/index.css +++ /dev/null @@ -1,37 +0,0 @@ -h1 { margin-bottom: 0 } - -.author { margin-left: 2em; } - -p { - max-width: 80em; -} - -body { - font: 14px "Century Gothic", Futura, sans-serif; - margin: 20px; - margin-right:40px; -} - -.form { - margin-bottom: 1em; - float: left; -} - -.viewport { - margin-left: 16em; -} - -.grid-container { - margin-bottom: 1em; -} - -table { - border-collapse: collapse; -} - -td { - background: #fff; - border: 1px solid #999; - height: 34px; - width: 34px; -} diff --git a/src/index.js b/src/index.js deleted file mode 100644 index 3064c9a..0000000 --- a/src/index.js +++ /dev/null @@ -1,761 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import * as d3 from 'd3v4'; -import './index.css'; - -/** - * An HTML5 range slider and associated raw text input. - * - * Properties: - * - min: The minimum allowed value for the slider range - * - max: The maximum allowed value for the slider range - * - value: The current value of the slider - * - disabled: Whether or not to disable the slider. A slider - * is automatically disabled when min == max. - * - onChange: Callback when the value of this slider changes. - */ -function Slider(props) { - const max = parseInt(props.max, 10); - const min = parseInt(props.min, 10); - const maxLength = max ? Math.ceil(Math.log10(max)) : 1; - const disabled = props.disabled || min >= max; - return ( - - - - - ); -} - -/** - * Create a 1-dimensional array of size 'length', where the 'i'th entry - * is initialized to 'f(i)', or 'undefined' if 'f' is not passed. - */ -function array1d(length, f) { - return Array.from({length: length}, f ? ((v, i) => f(i)) : undefined); -} - -/** - * Create a 2-dimensional array of size 'height' x 'width', where the 'i','j' entry - * is initialized to 'f(i, j)', or 'undefined' if 'f' is not passed. - */ -function array2d(height, width, f) { - return Array.from({length: height}, (v, i) => Array.from({length: width}, f ? ((w, j) => f(i, j)) : undefined)); -} - -/** - * The classic convolution output size formula for a single dimension. - * - * The derivation for many special cases is worked out in: - * http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html - */ -function computeOutputSize(input_size, weight_size, padding, dilation, stride) { - return Math.floor((input_size + 2 * padding - dilation * (weight_size - 1) - 1) / stride + 1); -} - -/** - * Test if a set of parameters is valid. - */ -function paramsOK(input_h, input_w, weight_h, weight_w, padding, dilation, stride_h, stride_w) { - const output_h = computeOutputSize(input_h, weight_h, padding, dilation, stride_h); - const output_w = computeOutputSize(input_w, weight_w, padding, dilation, stride_w); - return output_h > 0 && output_w > 0; -} - - -// We use the next two functions (maxWhile and minWhile) to -// inefficiently compute the bounds for various parameters -// given fixed values for other parameters. - -/** - * Given a predicate 'pred' and a starting integer 'start', - * find the largest integer i >= start such that 'pred(i)' - * is true OR end, whichever is smaller. - */ -function maxWhile(start, end, pred) { - for (let i = start; i <= end; i++) { - if (pred(i)) continue; - return i - 1; - } - return end; -} - -/** - * Given a predicate 'pred' and a starting integer 'start', - * find the smallest integer i <= start such that 'pred(i)' - * is true OR end, whichever is larger. - */ -function minWhile(start, end, pred) { - for (let i = start; i >= end; i--) { - if (pred(i)) continue; - return i + 1; - } - return end; -} - -/** - * Return the color at 0 <= p <= 1 for the RGB linear interpolation - * between color (0) and white (1). - */ -function whiten(color, p) { - return d3.interpolateRgb(color, "white")(p) -} - -/** - * Top-level component for the entire visualization. This component - * controls top level parameters like input sizes, but not the mouse - * interaction with the actual visualized grids. - */ -class App extends React.Component { - constructor(props) { - super(props); - this.state = { - input_height: 5, - input_width: 5, - weight_height: 3, - weight_width: 3, - padding: 0, - dilation: 1, - stride_height: 1, - stride_width: 1, - // State to control the UI mode - inputShape: 'square', - kernelShape: 'square', - strideShape: 'square', - }; - } - - // React controlled components clobber saved browser state, so - // instead we manually save/load our state from localStorage. - - componentDidMount() { - const state = localStorage.getItem("state"); - if (state) { - this.setState(JSON.parse(state)); - } - } - - componentDidUpdate() { - localStorage.setItem("state", JSON.stringify(this.state)); - } - - // A smarter handler for dimension changes that respects the current shape mode. - handleDimensionChange = (type, dimension) => (e) => { - const r = parseInt(e.target.value, 10); - if (isNaN(r)) return; - - // TODO: transposed convolution - // FIX: Correctly map the 'type' string to its corresponding state key - let shapeKey; - if (type === 'input') shapeKey = 'inputShape'; - else if (type === 'weight') shapeKey = 'kernelShape'; - else if (type === 'stride') shapeKey = 'strideShape'; - - const shape = this.state[shapeKey]; - - if (shape === 'square') { - // In square mode, the slider controls both height and width - this.setState({ - [`${type}_height`]: r, - [`${type}_width`]: r, - }); - } else { - // In rectangular mode, sliders are independent - this.setState({ - [`${type}_${dimension}`]: r - }); - } - }; - - // Handles the user switching between "Square" and "Rectangular" - handleShapeChange = (type) => (e) => { - const newShape = e.target.value; - const key = `${type}Shape`; - - if (newShape === 'square') { - // When switching back to square, make width equal to height - const height = this.state[`${type}_height`]; - this.setState({ - [key]: newShape, - [`${type}_width`]: height, - }); - } else { - this.setState({ [key]: newShape }); - } - }; - - render() { - const { input_height, input_width, weight_height, weight_width, padding, dilation, stride_height, stride_width, inputShape, kernelShape, strideShape } = this.state; - - const padded_input_height = input_height + padding * 2; - const padded_input_width = input_width + padding * 2; - - const output_height = computeOutputSize(input_height, weight_height, padding, dilation, stride_height); - const output_width = computeOutputSize(input_width, weight_width, padding, dilation, stride_width); - - const output = array2d(output_height, output_width, (i, j) => array2d(weight_height, weight_width)); - - for (let h_out = 0; h_out < output_height; h_out++) { - for (let w_out = 0; w_out < output_width; w_out++) { - for (let h_kern = 0; h_kern < weight_height; h_kern++) { - for (let w_kern = 0; w_kern < weight_width; w_kern++) { - const h_im = h_out * stride_height + h_kern * dilation; - const w_im = w_out * stride_width + w_kern * dilation; - output[h_out][w_out][h_kern][w_kern] = h_im * padded_input_width + w_im; - } - } - } - } - - // Make an extended params dictionary with our new computed values - // to pass to the inner component. - const params = Object.assign({ - padded_input_height: padded_input_height, - padded_input_width: padded_input_width, - output_height: output_height, - output_width: output_width, - output: output, - }, this.state); - - const onChange = (state_key) => (e) => { - const r = parseInt(e.target.value, 10); - // Text inputs can sometimes temporarily be in invalid states. - // If it's not a valid number, refuse to set it. - if (!isNaN(r)) { - this.setState({[state_key]: r}); - } - }; - - // An arbitrary constant I found aesthetically pleasing. - const max_input_size = 16; - - return ( -
-

Convolution Visualizer

-
Edward Z. Yang
-

- This interactive visualization demonstrates how various convolution parameters - affect shapes and data dependencies between the input, weight and - output matrices. Hovering over an input/output will highlight the - corresponding output/input, while hovering over an weight - will highlight which inputs were multiplied into that weight to - compute an output. (Strictly speaking, the operation visualized - here is a correlation, not a convolution, as a true - convolution flips its weights before performing a correlation. - However, most deep learning frameworks still call these convolutions, - and in the end it's all the same to gradient descent.) -

-
-
- Input size: - - - {inputShape === 'square' && ( -
- paramsOK(x, x, weight_height, weight_width, padding, dilation, stride_height, stride_width))} - max={max_input_size} - value={input_height} - onChange={this.handleDimensionChange('input', 'height')} - /> -
- )} - - {inputShape === 'rectangular' && ( - -
-
- paramsOK(x, input_width, weight_height, weight_width, padding, dilation, stride_height, stride_width))} - max={max_input_size} - value={input_height} - onChange={this.handleDimensionChange('input', 'height')} - /> -
-
-
- paramsOK(input_height, x, weight_height, weight_width, padding, dilation, stride_height, stride_width))} - max={max_input_size} - value={input_width} - onChange={this.handleDimensionChange('input', 'width')} - /> -
-
- )} -
-
- Kernel size: - - - {kernelShape === 'square' && ( -
- paramsOK(input_height, input_width, x, x, padding, dilation, stride_height, stride_width))} - value={weight_height} - onChange={this.handleDimensionChange('weight', 'height')} - /> -
- )} - - {kernelShape === 'rectangular' && ( - -
-
- paramsOK(input_height, input_width, x, weight_width, padding, dilation, stride_height, stride_width))} - value={weight_height} - onChange={this.handleDimensionChange('weight', 'height')} - /> -
-
-
- paramsOK(input_height, input_width, weight_height, x, padding, dilation, stride_height, stride_width))} - value={weight_width} - onChange={this.handleDimensionChange('weight', 'width')} - /> -
-
- )} -
-
- Padding: - paramsOK(input_height, input_width, weight_height, weight_width, x, dilation, stride_height, stride_width))} - max={maxWhile(0, 100, (x) => paramsOK(input_height, input_width, weight_height, weight_width, x, dilation, stride_height, stride_width))} - value={padding} - onChange={onChange("padding")} - /> -
-
- Stride: - - - {strideShape === 'square' && ( -
- paramsOK(input_height, input_width, weight_height, weight_width, padding, dilation, x, x))} - value={stride_height} - onChange={this.handleDimensionChange('stride', 'height')} - /> -
- )} - - {strideShape === 'rectangular' && ( - -
-
- paramsOK(input_height, input_width, weight_height, weight_width, padding, dilation, x, stride_width))} - value={stride_height} - onChange={this.handleDimensionChange('stride', 'height')} - /> -
-
-
- paramsOK(input_height, input_width, weight_height, weight_width, padding, dilation, stride_height, x))} - value={stride_width} - onChange={this.handleDimensionChange('stride', 'width')} - /> -
-
- )} -
-
- Dilation: - paramsOK(input_height, input_width, weight_height, weight_width, padding, x, stride_height, stride_width))} - value={dilation} - onChange={onChange("dilation")} - disabled={weight_height === 1 && weight_width === 1} - /> -
-
- -
- ); - } -} - -/** - * The viewport into the actual meat of the visualization, the - * matrices. This component controls the state for hovering - * and the animation. - */ -class Viewport extends React.Component { - constructor(props) { - super(props); - this.state = { - // Which matrix are we hovering over? - hoverOver: undefined, - // Which coordinate are we hovering over? Origin - // is the top-left corner. - hoverH: undefined, - hoverW: undefined, - // What is our animation timestep? A monotonically - // increasing integer. - counter: 0 - }; - } - - // Arrange for counter to increment by one after a fixed - // time interval: - - tick() { - this.setState({counter: this.state.counter + 1}); - } - componentDidMount() { - this.interval = setInterval(this.tick.bind(this), 1000); // 1 second - } - componentWillUnmount() { - clearInterval(this.interval); - } - - render() { - const { input_height, input_width, padded_input_height, padded_input_width, - weight_height, weight_width, output_height, output_width, - output, padding, stride_height, stride_width } = this.props; - - let hoverOver = this.state.hoverOver; - let hoverH = this.state.hoverH; - let hoverW = this.state.hoverW; - - // The primary heavy lifting of the render() function is to - // define colorizer functions for each matrix, such that - // - // colorizer(i, j) = color of the cell at i, j - // - let inputColorizer = undefined; - let weightColorizer = undefined; - let outputColorizer = undefined; - - // After colorizing an input cell, apply darkening if the cell falls - // within the padding. This function is responsible for rendering - // the dark padding border; if you replace this with a passthrough - // to f no dark padding border will be rendered. - function inputColorizerWrapper(f) { - return (i, j) => { - let r = f(i, j); - if (typeof r === "undefined") { - r = d3.color("white"); - } else { - r = d3.color(r); - } - if (i < padding || i >= input_height + padding || j < padding || j >= input_width + padding) { - r = r.darker(2.5); - } - return r; - }; - } - - // Given the animation timestep, determine the output coordinates - // of our animated stencil. - const flat_animated = this.state.counter % (output_height * output_width); - const animatedH = Math.floor(flat_animated / output_width); - const animatedW = flat_animated % output_width; - - // If the user is not hovering over any matrix, render "as if" - // they were hovering over the animated output coordinate. - if (!hoverOver) { - hoverOver = "output"; - hoverH = animatedH; - hoverW = animatedW; - } - - // If the user is hovering over the input matrix, render "as if' - // they were hovering over the output coordinate, such that the - // top-left corner of the stencil is attached to the cursor. - if (hoverOver === "input") { - hoverOver = "output"; - hoverH = Math.min(Math.floor(hoverH / stride_height), output_height - 1); - hoverW = Math.min(Math.floor(hoverW / stride_width), output_width - 1); - } - - // Generate the color interpolator for generating the kernels. - // This particular scale was found via experimentation with various - // start/endpoints and different interpolation schemes. For more - // documentation on these D3 functions, see: - // - // - https://github.com/d3/d3-interpolate - // - https://github.com/d3/d3-color - // - // Some notes on what I was going for, from an aesthetic perspective: - // - // - The most important constraint is that all colors produced by the - // interpolator need to be saturated enough so they are not confused - // with the "animation" shadow. - // - I wanted the interpolation to be smooth, despite this being a - // discrete setting where an ordinal color scheme could be - // employed. (Also I couldn't get the color schemes to work lol.) - // - // If you are a visualization expert and have a pet 2D color - // interpolation scheme, please try swapping it in here and seeing - // how it goes. - const xScale = d3.scaleSequential(d3.interpolateLab('#d7191c', '#2c7bb6')) - .domain([-1, weight_height]); - - // The yScale (Red->Green) is driven by the column index `j`. - const yScale = d3.scaleSequential(d3.interpolateLab('#d7191c', d3.color('#1a9641').brighter(1))) - .domain([-1, weight_width]); - - const max_dim = Math.max(weight_height, weight_width); - - function xyScale(i, j) { // i for height index, j for width index - // Get the end-point colors for this specific cell's gradient - const color1 = xScale(i); - const color2 = yScale(j); - - // The interpolation factor determines the mix between color1 and color2 - const factor = (max_dim > 1) ? (j - i) / (max_dim - 1) : 0.5; - - // We need to normalize the factor to be in the [0, 1] range for the interpolator. - // The original factor is roughly in [-1, 1], so this mapping works. - const normalizedFactor = (factor + 1) / 2; - - return d3.color(d3.interpolateLab(color1, color2)(normalizedFactor)); - } - - // Given an output coordinate 'hoverH, hoverW', compute a mapping - // from inputs to the weight coordinates which multiplied with - // that input. - // - // Result: - // r[flat_input_index] = [weight_height, weight_width] - function compute_input_multiplies_with_weight(hoverH, hoverW) { - const input_multiplies_with_weight = array1d(padded_input_height * padded_input_width); - if (hoverH >= 0 && hoverH < output_height && hoverW >= 0 && hoverW < output_width) { - for (let h_weight = 0; h_weight < weight_height; h_weight++) { - for (let w_weight = 0; w_weight < weight_width; w_weight++) { - const flat_input = output[hoverH][hoverW][h_weight][w_weight]; - if (typeof flat_input === "undefined") continue; - input_multiplies_with_weight[flat_input] = [h_weight, w_weight]; - } - } - } - return input_multiplies_with_weight; - } - - // The user is hovering over the output matrix (or the input matrix) - if (hoverOver === "output") { - outputColorizer = (i, j) => { - const base = d3.color('#666') - // If this output is selected, display it as dark grey - if (hoverH === i && hoverW === j) { - return base; - } - - // Otherwise, if the output is animated, display it as a lighter - // gray - if (animatedH === i && animatedW === j) { - return whiten(base, 0.8); - } - }; - - const input_multiplies_with_weight = compute_input_multiplies_with_weight(hoverH, hoverW); - const animated_input_multiplies_with_weight = compute_input_multiplies_with_weight(animatedH, animatedW); - - inputColorizer = inputColorizerWrapper((i, j) => { - // If this input was used to compute the selected output, render - // it the same color as the corresponding entry in the weight - // matrix which it was multiplied against. - const r = input_multiplies_with_weight[i * padded_input_width + j]; - if (r) { - return xyScale(r[0], r[1]); - } - - // Otherwise, if the input was used to compute the animated - // output, render it as a lighter version of the weight color it was - // multiplied against. - const s = animated_input_multiplies_with_weight[i * padded_input_width + j]; - if (s) { - return whiten(xyScale(s[0], s[1]), 0.8); - } - }); - - // The weight matrix displays the full 2D color scale - weightColorizer = (i, j) => { - return xyScale(i, j); - }; - - // The user is hovering over the weight matrix - } else if (hoverOver === "weight") { - - weightColorizer = (i, j) => { - // If this weight is selected, render its color - if (hoverH === i && hoverW === j) { - return xyScale(hoverH, hoverW); - } - }; - - // Compute a mapping from flat input index to output coordinates which - // this input multiplied with the selected weight to produce. - const input_produces_output = array1d(padded_input_height * padded_input_width); - for (let h_out = 0; h_out < output_height; h_out++) { - for (let w_out = 0; w_out < output_width; w_out++) { - const flat_input = output[h_out][w_out][hoverH][hoverW]; - if (typeof flat_input === "undefined") continue; - input_produces_output[flat_input] = [h_out, w_out]; - } - } - - const animated_input_multiplies_with_weight = compute_input_multiplies_with_weight(animatedH, animatedW); - - inputColorizer = inputColorizerWrapper((i, j) => { - // We are only rendering inputs which multiplied against a given - // weight, so render all inputs the same color as the selected - // weight. - const color = xyScale(hoverH, hoverW); - - // If this input cell was multiplied by the selected weight to - // produce the animated output, darken it. This shows the - // current animation step's "contribution" to the colored - // inputs. - const s = animated_input_multiplies_with_weight[i * padded_input_width + j]; - if (s) { - if (s[0] === hoverH && s[1] === hoverW) { - return color.darker(1); - } - } - - // If this input cell was multiplied by the selected weight to - // produce *some* output, render it as the weight's color. - const r = input_produces_output[i * padded_input_width + j]; - if (r) { - // BUT, if the input cell is part of the current animation - // stencil, lighten it so that we can still see the stencil. - if (s) { - return whiten(color, 0.2); - } - return color; - } - - // If this input cell is part of the animated stencil (and - // it is not part of the solid block of color), render a shadow - // of the stencil so we can still see it. - if (s) { - return whiten(xyScale(s[0], s[1]), 0.8); - } - }); - - // The output matrix is a solid color of the selected weight. - outputColorizer = (i, j) => { - const color = xyScale(hoverH, hoverW); - // If the output is the animated one, darken it, so we can - // see the animation. - if (i === animatedH && j === animatedW) { - return color.darker(1); - } - return color; - }; - } - - return ( -
-
- Input ({input_height} × {input_width}): - { - this.setState({hoverOver: "input", hoverH: i, hoverW: j}); - }} - onMouseLeave={(e, i, j) => { - this.setState({hoverOver: undefined, hoverH: undefined, hoverW: undefined}); - }} - /> -
-
- Weight ({weight_height} × {weight_width}): - { - this.setState({hoverOver: "weight", hoverH: i, hoverW: j}); - }} - onMouseLeave={(e, i, j) => { - this.setState({hoverOver: undefined, hoverH: undefined, hoverW: undefined}); - }} - /> -
-
- Output ({output_height} × {output_width}): - { - this.setState({hoverOver: "output", hoverH: i, hoverW: j}); - }} - onMouseLeave={(e, i, j) => { - this.setState({hoverOver: undefined, hoverH: undefined, hoverW: undefined}); - }} - /> -
-
- ); - } -} - -/** - * A rectangular matrix grid which we render our matrix animations. - * - * Properties: - * - height: The height of the matrix - * - width: The width of the matrix - * - colorizer: A function f(i, j), returning the color of the i,j cell - * - onMouseEnter: A callback invoked f(event, i, j) when the i,j cell is - * entered by a mouse. - * - onMouseLeave: A callback invoked f(event, i, j) when the i,j cell is - * left by a mouse. - */ -function Grid(props) { - const height = parseInt(props.height, 10) || 0; - const width = parseInt(props.width, 10) || 0; - - if (height <= 0 || width <= 0) { - return
(empty)
; - } - - const grid = array2d(height, width); - const xgrid = grid.map((row, i) => { - const xrow = row.map((e, j) => { - // Use of colorizer this way means we force recompute of all tiles - const color = props.colorizer ? props.colorizer(i, j) : undefined; - return props.onMouseEnter(e, i, j)) : undefined} - onMouseLeave={props.onMouseLeave ? - ((e) => props.onMouseLeave(e, i, j)) : undefined} /> - }); - return {xrow}; - }); - return {xgrid}
; -} - -// ======================================== - -ReactDOM.render( - , - document.getElementById('root') -); diff --git a/static/css/main.0a8c4c1d.css b/static/css/main.0a8c4c1d.css new file mode 100644 index 0000000..7199524 --- /dev/null +++ b/static/css/main.0a8c4c1d.css @@ -0,0 +1,2 @@ +h1{margin-bottom:0}.author{margin-left:2em}p{max-width:80em}body{font:14px Century Gothic,Futura,sans-serif;margin:20px;margin-right:40px}.form{margin-bottom:1em;float:left}.viewport{margin-left:16em}.grid-container{margin-bottom:1em}table{border-collapse:collapse}td{background:#fff;border:1px solid #999;height:34px;width:34px} +/*# sourceMappingURL=main.0a8c4c1d.css.map*/ \ No newline at end of file diff --git a/static/css/main.0a8c4c1d.css.map b/static/css/main.0a8c4c1d.css.map new file mode 100644 index 0000000..74bcb1b --- /dev/null +++ b/static/css/main.0a8c4c1d.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.css"],"names":[],"mappings":"AAAA,GAAK,eAAgB,CAErB,QAAU,eAAiB,CAE3B,EACE,cAAgB,CAGlB,KACE,2CACA,YACA,iBAAkB,CAGpB,MACE,kBACA,UAAY,CAGd,UACE,gBAAkB,CAGpB,gBACE,iBAAmB,CAGrB,MACE,wBAA0B,CAG5B,GACE,gBACA,sBACA,YACA,UAAY","file":"static/css/main.0a8c4c1d.css","sourcesContent":["h1 { margin-bottom: 0 }\n\n.author { margin-left: 2em; }\n\np {\n max-width: 80em;\n}\n\nbody {\n font: 14px \"Century Gothic\", Futura, sans-serif;\n margin: 20px;\n margin-right:40px;\n}\n\n.form {\n margin-bottom: 1em;\n float: left;\n}\n\n.viewport {\n margin-left: 16em;\n}\n\n.grid-container {\n margin-bottom: 1em;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ntd {\n background: #fff;\n border: 1px solid #999;\n height: 34px;\n width: 34px;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.css"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.52d8c6a6.js b/static/js/main.52d8c6a6.js new file mode 100644 index 0000000..176d8e2 --- /dev/null +++ b/static/js/main.52d8c6a6.js @@ -0,0 +1,2 @@ +!function(t){function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}var e={};n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},n.p="/convolution-visualizer/",n(n.s=5)}([function(t,n,e){"use strict";function r(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var n={},e=0;e<10;e++)n["_"+String.fromCharCode(e)]=e;if("0123456789"!==Object.getOwnPropertyNames(n).map(function(t){return n[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(t,n){for(var e,u,l=r(t),c=1;cc){for(var n=0,e=a.length-l;n-1?n:t}function p(t,n){n=n||{};var e=n.body;if(t instanceof p){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,n.headers||(this.headers=new i(t.headers)),this.method=t.method,this.mode=t.mode,e||null==t._bodyInit||(e=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=n.credentials||this.credentials||"omit",!n.headers&&this.headers||(this.headers=new i(n.headers)),this.method=h(n.method||this.method||"GET"),this.mode=n.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&e)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(e)}function d(t){var n=new FormData;return t.trim().split("&").forEach(function(t){if(t){var e=t.split("="),r=e.shift().replace(/\+/g," "),i=e.join("=").replace(/\+/g," ");n.append(decodeURIComponent(r),decodeURIComponent(i))}}),n}function v(t){var n=new i;return t.split(/\r?\n/).forEach(function(t){var e=t.split(":"),r=e.shift().trim();if(r){var i=e.join(":").trim();n.append(r,i)}}),n}function y(t,n){n||(n={}),this.type="default",this.status="status"in n?n.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in n?n.statusText:"OK",this.headers=new i(n.headers),this.url=n.url||"",this._initBody(t)}if(!t.fetch){var g={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};if(g.arrayBuffer)var m=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],_=function(t){return t&&DataView.prototype.isPrototypeOf(t)},b=ArrayBuffer.isView||function(t){return t&&m.indexOf(Object.prototype.toString.call(t))>-1};i.prototype.append=function(t,r){t=n(t),r=e(r);var i=this.map[t];this.map[t]=i?i+","+r:r},i.prototype.delete=function(t){delete this.map[n(t)]},i.prototype.get=function(t){return t=n(t),this.has(t)?this.map[t]:null},i.prototype.has=function(t){return this.map.hasOwnProperty(n(t))},i.prototype.set=function(t,r){this.map[n(t)]=e(r)},i.prototype.forEach=function(t,n){for(var e in this.map)this.map.hasOwnProperty(e)&&t.call(n,this.map[e],e,this)},i.prototype.keys=function(){var t=[];return this.forEach(function(n,e){t.push(e)}),r(t)},i.prototype.values=function(){var t=[];return this.forEach(function(n){t.push(n)}),r(t)},i.prototype.entries=function(){var t=[];return this.forEach(function(n,e){t.push([e,n])}),r(t)},g.iterable&&(i.prototype[Symbol.iterator]=i.prototype.entries);var x=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];p.prototype.clone=function(){return new p(this,{body:this._bodyInit})},f.call(p.prototype),f.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new i(this.headers),url:this.url})},y.error=function(){var t=new y(null,{status:0,statusText:""});return t.type="error",t};var w=[301,302,303,307,308];y.redirect=function(t,n){if(-1===w.indexOf(n))throw new RangeError("Invalid status code");return new y(null,{status:n,headers:{location:t}})},t.Headers=i,t.Request=p,t.Response=y,t.fetch=function(t,n){return new Promise(function(e,r){var i=new p(t,n),o=new XMLHttpRequest;o.onload=function(){var t={status:o.status,statusText:o.statusText,headers:v(o.getAllResponseHeaders()||"")};t.url="responseURL"in o?o.responseURL:t.headers.get("X-Request-URL");var n="response"in o?o.response:o.responseText;e(new y(n,t))},o.onerror=function(){r(new TypeError("Network request failed"))},o.ontimeout=function(){r(new TypeError("Network request failed"))},o.open(i.method,i.url,!0),"include"===i.credentials&&(o.withCredentials=!0),"responseType"in o&&g.blob&&(o.responseType="blob"),i.headers.forEach(function(t,n){o.setRequestHeader(n,t)}),o.send("undefined"===typeof i._bodyInit?null:i._bodyInit)})},t.fetch.polyfill=!0}}("undefined"!==typeof self?self:this)},function(t,n,e){"use strict";function r(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function i(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function o(t,n){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!n||"object"!==typeof n&&"function"!==typeof n?t:n}function a(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function, not "+typeof n);t.prototype=Object.create(n&&n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),n&&(Object.setPrototypeOf?Object.setPrototypeOf(t,n):t.__proto__=n)}function u(t){var n=parseInt(t.max,10),e=parseInt(t.min,10),r=n?Math.ceil(Math.log10(n)):1,i=t.disabled||e>=n;return g.a.createElement("span",{className:"slider"},g.a.createElement("input",{type:"range",min:e,max:n,value:t.value,onChange:t.onChange,disabled:i}),g.a.createElement("input",{type:"text",value:t.value,onChange:t.onChange,maxLength:r,disabled:i,size:Math.max(r,2)}))}function l(t,n){return Array.from({length:t},n?function(t,e){return n(e)}:void 0)}function c(t,n,e){return Array.from({length:t},function(t,r){return Array.from({length:n},e?function(t,n){return e(r,n)}:void 0)})}function s(t,n,e,r,i){return Math.floor((t+2*e-r*(n-1)-1)/i+1)}function f(t,n,e,r,i){return s(t,n,e,r,i)>0}function h(t,n,e){for(var r=t;r<=n;r++)if(!e(r))return r-1;return n}function p(t,n,e){for(var r=t;r>=n;r--)if(!e(r))return r+1;return n}function d(t,n){return b.interpolateRgb(t,"white")(n)}function v(t){var n=parseInt(t.size,10),e=c(n,n),r=e.map(function(n,e){var r=n.map(function(n,r){var i=t.colorizer?t.colorizer(e,r):void 0;return g.a.createElement("td",{key:r,style:{backgroundColor:i},onMouseEnter:t.onMouseEnter?function(n){return t.onMouseEnter(n,e,r)}:void 0,onMouseLeave:t.onMouseLeave?function(n){return t.onMouseLeave(n,e,r)}:void 0})});return g.a.createElement("tr",{key:e},r)});return g.a.createElement("table",null,g.a.createElement("tbody",null,r))}Object.defineProperty(n,"__esModule",{value:!0});var y=e(3),g=e.n(y),m=e(14),_=e.n(m),b=e(24),x=(e.n(b),e(25)),w=(e.n(x),function(){function t(t,n){for(var e=0;e=i+s||e=i+s)&&(r=r.darker(2.5)),r}}function n(t,n){return b.color(b.interpolateLab(E(t),T(n))((n-t)/(C-1)))}function e(t,n){for(var e=l(o*o),r=0;rD.length&&D.push(t)}function p(t,n,e,i){var o=typeof t;"undefined"!==o&&"boolean"!==o||(t=null);var a=!1;if(null===t)a=!0;else switch(o){case"string":case"number":a=!0;break;case"object":switch(t.$$typeof){case w:case M:case k:case C:a=!0}}if(a)return e(i,t,""===n?"."+d(t,0):n),1;if(a=0,n=""===n?".":n+":",Array.isArray(t))for(var u=0;uthis.eventPool.length&&this.eventPool.push(t)}function B(t){t.eventPool=[],t.getPooled=H,t.release=j}function q(t,n,e,r){return F.call(this,t,n,e,r)}function V(t,n,e,r){return F.call(this,t,n,e,r)}function W(t,n){switch(t){case"topKeyUp":return-1!==pr.indexOf(n.keyCode);case"topKeyDown":return 229!==n.keyCode;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function Y(t){return t=t.detail,"object"===typeof t&&"data"in t?t.data:null}function K(t,n){switch(t){case"topCompositionEnd":return Y(n);case"topKeyPress":return 32!==n.which?null:(Mr=!0,xr);case"topTextInput":return t=n.data,t===xr&&Mr?null:t;default:return null}}function $(t,n){if(kr)return"topCompositionEnd"===t||!dr&&W(t,n)?(t=U(),sr._root=null,sr._startText=null,sr._fallbackText=null,kr=!1,t):null;switch(t){case"topPaste":return null;case"topKeyPress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1Br.length&&Br.push(t)}}}function It(t,n){var e={};return e[t.toLowerCase()]=n.toLowerCase(),e["Webkit"+t]="webkit"+n,e["Moz"+t]="moz"+n,e["ms"+t]="MS"+n,e["O"+t]="o"+n.toLowerCase(),e}function Rt(t){if(Kr[t])return Kr[t];if(!Yr[t])return t;var n,e=Yr[t];for(n in e)if(e.hasOwnProperty(n)&&n in $r)return Kr[t]=e[n];return""}function Dt(t){return Object.prototype.hasOwnProperty.call(t,Zr)||(t[Zr]=Qr++,Gr[t[Zr]]={}),Gr[t[Zr]]}function Lt(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function Ut(t,n){var e=Lt(t);t=0;for(var r;e;){if(3===e.nodeType){if(r=t+e.textContent.length,t<=n&&r>=n)return{node:e,offset:n-t};t=r}t:{for(;e;){if(e.nextSibling){e=e.nextSibling;break t}e=e.parentNode}e=void 0}e=Lt(e)}}function zt(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&("input"===n&&"text"===t.type||"textarea"===n||"true"===t.contentEditable)}function Ft(t,n){if(ii||null==ni||ni!==ke())return null;var e=ni;return"selectionStart"in e&&zt(e)?e={start:e.selectionStart,end:e.selectionEnd}:window.getSelection?(e=window.getSelection(),e={anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}):e=void 0,ri&&Ce(ri,e)?null:(ri=e,t=F.getPooled(ti.select,ei,t,n),t.type="select",t.target=ni,R(t),t)}function Ht(t,n,e,r){return F.call(this,t,n,e,r)}function jt(t,n,e,r){return F.call(this,t,n,e,r)}function Bt(t,n,e,r){return F.call(this,t,n,e,r)}function qt(t){var n=t.keyCode;return"charCode"in t?0===(t=t.charCode)&&13===n&&(t=13):t=n,32<=t||13===t?t:0}function Vt(t,n,e,r){return F.call(this,t,n,e,r)}function Wt(t,n,e,r){return F.call(this,t,n,e,r)}function Yt(t,n,e,r){return F.call(this,t,n,e,r)}function Kt(t,n,e,r){return F.call(this,t,n,e,r)}function $t(t,n,e,r){return F.call(this,t,n,e,r)}function Xt(t){0>hi||(t.current=fi[hi],fi[hi]=null,hi--)}function Gt(t,n){hi++,fi[hi]=t.current,t.current=n}function Qt(t){return Jt(t)?vi:pi.current}function Zt(t,n){var e=t.type.contextTypes;if(!e)return Se;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in e)o[i]=n[i];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=n,t.__reactInternalMemoizedMaskedChildContext=o),o}function Jt(t){return 2===t.tag&&null!=t.type.childContextTypes}function tn(t){Jt(t)&&(Xt(di,t),Xt(pi,t))}function nn(t,n,e){null!=pi.cursor&&r("168"),Gt(pi,n,t),Gt(di,e,t)}function en(t,n){var e=t.stateNode,i=t.type.childContextTypes;if("function"!==typeof e.getChildContext)return n;e=e.getChildContext();for(var o in e)o in i||r("108",xt(t)||"Unknown",o);return xe({},n,e)}function rn(t){if(!Jt(t))return!1;var n=t.stateNode;return n=n&&n.__reactInternalMemoizedMergedChildContext||Se,vi=pi.current,Gt(pi,n,t),Gt(di,di.current,t),!0}function on(t,n){var e=t.stateNode;if(e||r("169"),n){var i=en(t,vi);e.__reactInternalMemoizedMergedChildContext=i,Xt(di,t),Xt(pi,t),Gt(pi,i,t)}else Xt(di,t);Gt(di,n,t)}function an(t,n,e){this.tag=t,this.key=n,this.stateNode=this.type=null,this.sibling=this.child=this.return=null,this.index=0,this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null,this.internalContextTag=e,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.expirationTime=0,this.alternate=null}function un(t,n,e){var r=t.alternate;return null===r?(r=new an(t.tag,t.key,t.internalContextTag),r.type=t.type,r.stateNode=t.stateNode,r.alternate=t,t.alternate=r):(r.effectTag=0,r.nextEffect=null,r.firstEffect=null,r.lastEffect=null),r.expirationTime=e,r.pendingProps=n,r.child=t.child,r.memoizedProps=t.memoizedProps,r.memoizedState=t.memoizedState,r.updateQueue=t.updateQueue,r.sibling=t.sibling,r.index=t.index,r.ref=t.ref,r}function ln(t,n,e){var i=void 0,o=t.type,a=t.key;return"function"===typeof o?(i=o.prototype&&o.prototype.isReactComponent?new an(2,a,n):new an(0,a,n),i.type=o,i.pendingProps=t.props):"string"===typeof o?(i=new an(5,a,n),i.type=o,i.pendingProps=t.props):"object"===typeof o&&null!==o&&"number"===typeof o.tag?(i=o,i.pendingProps=t.props):r("130",null==o?o:typeof o,""),i.expirationTime=e,i}function cn(t,n,e,r){return n=new an(10,r,n),n.pendingProps=t,n.expirationTime=e,n}function sn(t,n,e){return n=new an(6,null,n),n.pendingProps=t,n.expirationTime=e,n}function fn(t,n,e){return n=new an(7,t.key,n),n.type=t.handler,n.pendingProps=t,n.expirationTime=e,n}function hn(t,n,e){return t=new an(9,null,n),t.expirationTime=e,t}function pn(t,n,e){return n=new an(4,t.key,n),n.pendingProps=t.children||[],n.expirationTime=e,n.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},n}function dn(t){return function(n){try{return t(n)}catch(t){}}}function vn(t){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var n=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(n.isDisabled||!n.supportsFiber)return!0;try{var e=n.inject(t);yi=dn(function(t){return n.onCommitFiberRoot(e,t)}),gi=dn(function(t){return n.onCommitFiberUnmount(e,t)})}catch(t){}return!0}function yn(t){"function"===typeof yi&&yi(t)}function gn(t){"function"===typeof gi&&gi(t)}function mn(t){return{baseState:t,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function _n(t,n){null===t.last?t.first=t.last=n:(t.last.next=n,t.last=n),(0===t.expirationTime||t.expirationTime>n.expirationTime)&&(t.expirationTime=n.expirationTime)}function bn(t,n){var e=t.alternate,r=t.updateQueue;null===r&&(r=t.updateQueue=mn(null)),null!==e?null===(t=e.updateQueue)&&(t=e.updateQueue=mn(null)):t=null,t=t!==r?t:null,null===t?_n(r,n):null===r.last||null===t.last?(_n(r,n),_n(t,n)):(_n(r,n),t.last=n)}function xn(t,n,e,r){return t=t.partialState,"function"===typeof t?t.call(n,e,r):t}function wn(t,n,e,r,i,o){null!==t&&t.updateQueue===e&&(e=n.updateQueue={baseState:e.baseState,expirationTime:e.expirationTime,first:e.first,last:e.last,isInitialized:e.isInitialized,callbackList:null,hasForceUpdate:!1}),e.expirationTime=0,e.isInitialized?t=e.baseState:(t=e.baseState=n.memoizedState,e.isInitialized=!0);for(var a=!0,u=e.first,l=!1;null!==u;){var c=u.expirationTime;if(c>o){var s=e.expirationTime;(0===s||s>c)&&(e.expirationTime=c),l||(l=!0,e.baseState=t)}else l||(e.first=u.next,null===e.first&&(e.last=null)),u.isReplace?(t=xn(u,r,t,i),a=!0):(c=xn(u,r,t,i))&&(t=a?xe({},t,c):xe(t,c),a=!1),u.isForced&&(e.hasForceUpdate=!0),null!==u.callback&&(c=e.callbackList,null===c&&(c=e.callbackList=[]),c.push(u));u=u.next}return null!==e.callbackList?n.effectTag|=32:null!==e.first||e.hasForceUpdate||(n.updateQueue=null),l||(e.baseState=t),t}function Mn(t,n){var e=t.callbackList;if(null!==e)for(t.callbackList=null,t=0;th?(p=f,f=null):p=f.sibling;var g=v(r,f,u[h],l);if(null===g){null===f&&(f=p);break}t&&f&&null===g.alternate&&n(r,f),o=a(g,o,h),null===s?c=g:s.sibling=g,s=g,f=p}if(h===u.length)return e(r,f),c;if(null===f){for(;hp?(g=h,h=null):g=h.sibling;var _=v(o,h,m.value,c);if(null===_){h||(h=g);break}t&&h&&null===_.alternate&&n(o,h),u=a(_,u,p),null===f?s=_:f.sibling=_,f=_,h=g}if(m.done)return e(o,h),s;if(null===h){for(;!m.done;p++,m=l.next())null!==(m=d(o,m.value,c))&&(u=a(m,u,p),null===f?s=m:f.sibling=m,f=m);return s}for(h=i(o,h);!m.done;p++,m=l.next())null!==(m=y(h,o,p,m.value,c))&&(t&&null!==m.alternate&&h.delete(null===m.key?p:m.key),u=a(m,u,p),null===f?s=m:f.sibling=m,f=m);return t&&h.forEach(function(t){return n(o,t)}),s}return function(t,i,a,l){"object"===typeof a&&null!==a&&a.type===Mi&&null===a.key&&(a=a.props.children);var c="object"===typeof a&&null!==a;if(c)switch(a.$$typeof){case _i:t:{var s=a.key;for(c=i;null!==c;){if(c.key===s){if(10===c.tag?a.type===Mi:c.type===a.type){e(t,c.sibling),i=o(c,a.type===Mi?a.props.children:a.props,l),i.ref=En(c,a),i.return=t,t=i;break t}e(t,c);break}n(t,c),c=c.sibling}a.type===Mi?(i=cn(a.props.children,t.internalContextTag,l,a.key),i.return=t,t=i):(l=ln(a,t.internalContextTag,l),l.ref=En(i,a),l.return=t,t=l)}return u(t);case bi:t:{for(c=a.key;null!==i;){if(i.key===c){if(7===i.tag){e(t,i.sibling),i=o(i,a,l),i.return=t,t=i;break t}e(t,i);break}n(t,i),i=i.sibling}i=fn(a,t.internalContextTag,l),i.return=t,t=i}return u(t);case xi:t:{if(null!==i){if(9===i.tag){e(t,i.sibling),i=o(i,null,l),i.type=a.value,i.return=t,t=i;break t}e(t,i)}i=hn(a,t.internalContextTag,l),i.type=a.value,i.return=t,t=i}return u(t);case wi:t:{for(c=a.key;null!==i;){if(i.key===c){if(4===i.tag&&i.stateNode.containerInfo===a.containerInfo&&i.stateNode.implementation===a.implementation){e(t,i.sibling),i=o(i,a.children||[],l),i.return=t,t=i;break t}e(t,i);break}n(t,i),i=i.sibling}i=pn(a,t.internalContextTag,l),i.return=t,t=i}return u(t)}if("string"===typeof a||"number"===typeof a)return a=""+a,null!==i&&6===i.tag?(e(t,i.sibling),i=o(i,a,l)):(e(t,i),i=sn(a,t.internalContextTag,l)),i.return=t,t=i,u(t);if(Ci(a))return g(t,i,a,l);if(Cn(a))return m(t,i,a,l);if(c&&Tn(t,a),"undefined"===typeof a)switch(t.tag){case 2:case 1:l=t.type,r("152",l.displayName||l.name||"Component")}return e(t,i)}}function Nn(t,n,e,i,o){function a(t,n,e){var r=n.expirationTime;n.child=null===t?Ti(n,null,e,r):Ei(n,t.child,e,r)}function u(t,n){var e=n.ref;null===e||t&&t.ref===e||(n.effectTag|=128)}function l(t,n,e,r){if(u(t,n),!e)return r&&on(n,!1),s(t,n);e=n.stateNode,jr.current=n;var i=e.render();return n.effectTag|=1,a(t,n,i),n.memoizedState=e.state,n.memoizedProps=e.props,r&&on(n,!0),n.child}function c(t){var n=t.stateNode;n.pendingContext?nn(t,n.pendingContext,n.pendingContext!==n.context):n.context&&nn(t,n.context,!1),y(t,n.containerInfo)}function s(t,n){if(null!==t&&n.child!==t.child&&r("153"),null!==n.child){t=n.child;var e=un(t,t.pendingProps,t.expirationTime);for(n.child=e,e.return=n;null!==t.sibling;)t=t.sibling,e=e.sibling=un(t,t.pendingProps,t.expirationTime),e.return=n;e.sibling=null}return n.child}function f(t,n){switch(n.tag){case 3:c(n);break;case 2:rn(n);break;case 4:y(n,n.stateNode.containerInfo)}return null}var h=t.shouldSetTextContent,p=t.useSyncScheduling,d=t.shouldDeprioritizeSubtree,v=n.pushHostContext,y=n.pushHostContainer,g=e.enterHydrationState,m=e.resetHydrationState,_=e.tryToClaimNextHydratableInstance;t=kn(i,o,function(t,n){t.memoizedProps=n},function(t,n){t.memoizedState=n});var b=t.adoptClassInstance,x=t.constructClassInstance,w=t.mountClassInstance,M=t.updateClassInstance;return{beginWork:function(t,n,e){if(0===n.expirationTime||n.expirationTime>e)return f(t,n);switch(n.tag){case 0:null!==t&&r("155");var i=n.type,o=n.pendingProps,k=Qt(n);return k=Zt(n,k),i=i(o,k),n.effectTag|=1,"object"===typeof i&&null!==i&&"function"===typeof i.render?(n.tag=2,o=rn(n),b(n,i),w(n,e),n=l(t,n,!0,o)):(n.tag=1,a(t,n,i),n.memoizedProps=o,n=n.child),n;case 1:t:{if(o=n.type,e=n.pendingProps,i=n.memoizedProps,di.current)null===e&&(e=i);else if(null===e||i===e){n=s(t,n);break t}i=Qt(n),i=Zt(n,i),o=o(e,i),n.effectTag|=1,a(t,n,o),n.memoizedProps=e,n=n.child}return n;case 2:return o=rn(n),i=void 0,null===t?n.stateNode?r("153"):(x(n,n.pendingProps),w(n,e),i=!0):i=M(t,n,e),l(t,n,i,o);case 3:return c(n),o=n.updateQueue,null!==o?(i=n.memoizedState,o=wn(t,n,o,null,null,e),i===o?(m(),n=s(t,n)):(i=o.element,k=n.stateNode,(null===t||null===t.child)&&k.hydrate&&g(n)?(n.effectTag|=2,n.child=Ti(n,null,i,e)):(m(),a(t,n,i)),n.memoizedState=o,n=n.child)):(m(),n=s(t,n)),n;case 5:v(n),null===t&&_(n),o=n.type;var C=n.memoizedProps;return i=n.pendingProps,null===i&&null===(i=C)&&r("154"),k=null!==t?t.memoizedProps:null,di.current||null!==i&&C!==i?(C=i.children,h(o,i)?C=null:k&&h(o,k)&&(n.effectTag|=16),u(t,n),2147483647!==e&&!p&&d(o,i)?(n.expirationTime=2147483647,n=null):(a(t,n,C),n.memoizedProps=i,n=n.child)):n=s(t,n),n;case 6:return null===t&&_(n),t=n.pendingProps,null===t&&(t=n.memoizedProps),n.memoizedProps=t,null;case 8:n.tag=7;case 7:return o=n.pendingProps,di.current?null===o&&null===(o=t&&t.memoizedProps)&&r("154"):null!==o&&n.memoizedProps!==o||(o=n.memoizedProps),i=o.children,n.stateNode=null===t?Ti(n,n.stateNode,i,e):Ei(n,n.stateNode,i,e),n.memoizedProps=o,n.stateNode;case 9:return null;case 4:t:{if(y(n,n.stateNode.containerInfo),o=n.pendingProps,di.current)null===o&&null==(o=t&&t.memoizedProps)&&r("154");else if(null===o||n.memoizedProps===o){n=s(t,n);break t}null===t?n.child=Ei(n,null,o,e):a(t,n,o),n.memoizedProps=o,n=n.child}return n;case 10:t:{if(e=n.pendingProps,di.current)null===e&&(e=n.memoizedProps);else if(null===e||n.memoizedProps===e){n=s(t,n);break t}a(t,n,e),n.memoizedProps=e,n=n.child}return n;default:r("156")}},beginFailedWork:function(t,n,e){switch(n.tag){case 2:rn(n);break;case 3:c(n);break;default:r("157")}return n.effectTag|=64,null===t?n.child=null:n.child!==t.child&&(n.child=t.child),0===n.expirationTime||n.expirationTime>e?f(t,n):(n.firstEffect=null,n.lastEffect=null,n.child=null===t?Ti(n,null,null,e):Ei(n,t.child,null,e),2===n.tag&&(t=n.stateNode,n.memoizedProps=t.props,n.memoizedState=t.state),n.child)}}}function An(t,n,e){function i(t){t.effectTag|=4}var o=t.createInstance,a=t.createTextInstance,u=t.appendInitialChild,l=t.finalizeInitialChildren,c=t.prepareUpdate,s=t.persistence,f=n.getRootHostContainer,h=n.popHostContext,p=n.getHostContext,d=n.popHostContainer,v=e.prepareToHydrateHostInstance,y=e.prepareToHydrateHostTextInstance,g=e.popHydrationState,m=void 0,_=void 0,b=void 0;return t.mutation?(m=function(){},_=function(t,n,e){(n.updateQueue=e)&&i(n)},b=function(t,n,e,r){e!==r&&i(n)}):r(s?"235":"236"),{completeWork:function(t,n,e){var s=n.pendingProps;switch(null===s?s=n.memoizedProps:2147483647===n.expirationTime&&2147483647!==e||(n.pendingProps=null),n.tag){case 1:return null;case 2:return tn(n),null;case 3:return d(n),Xt(di,n),Xt(pi,n),s=n.stateNode,s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),null!==t&&null!==t.child||(g(n),n.effectTag&=-3),m(n),null;case 5:h(n),e=f();var x=n.type;if(null!==t&&null!=n.stateNode){var w=t.memoizedProps,M=n.stateNode,k=p();M=c(M,x,w,s,e,k),_(t,n,M,x,w,s,e),t.ref!==n.ref&&(n.effectTag|=128)}else{if(!s)return null===n.stateNode&&r("166"),null;if(t=p(),g(n))v(n,e,t)&&i(n);else{t=o(x,s,e,t,n);t:for(w=n.child;null!==w;){if(5===w.tag||6===w.tag)u(t,w.stateNode);else if(4!==w.tag&&null!==w.child){w.child.return=w,w=w.child;continue}if(w===n)break;for(;null===w.sibling;){if(null===w.return||w.return===n)break t;w=w.return}w.sibling.return=w.return,w=w.sibling}l(t,x,s,e)&&i(n),n.stateNode=t}null!==n.ref&&(n.effectTag|=128)}return null;case 6:if(t&&null!=n.stateNode)b(t,n,t.memoizedProps,s);else{if("string"!==typeof s)return null===n.stateNode&&r("166"),null;t=f(),e=p(),g(n)?y(n)&&i(n):n.stateNode=a(s,t,e,n)}return null;case 7:(s=n.memoizedProps)||r("165"),n.tag=8,x=[];t:for((w=n.stateNode)&&(w.return=n);null!==w;){if(5===w.tag||6===w.tag||4===w.tag)r("247");else if(9===w.tag)x.push(w.type);else if(null!==w.child){w.child.return=w,w=w.child;continue}for(;null===w.sibling;){if(null===w.return||w.return===n)break t;w=w.return}w.sibling.return=w.return,w=w.sibling}return w=s.handler,s=w(s.props,x),n.child=Ei(n,null!==t?t.child:null,s,e),n.child;case 8:return n.tag=7,null;case 9:case 10:return null;case 4:return d(n),m(n),null;case 0:r("167");default:r("156")}}}}function Pn(t,n){function e(t){var e=t.ref;if(null!==e)try{e(null)}catch(e){n(t,e)}}function i(t){switch("function"===typeof gn&&gn(t),t.tag){case 2:e(t);var r=t.stateNode;if("function"===typeof r.componentWillUnmount)try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(e){n(t,e)}break;case 5:e(t);break;case 7:o(t.stateNode);break;case 4:c&&u(t)}}function o(t){for(var n=t;;)if(i(n),null===n.child||c&&4===n.tag){if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}else n.child.return=n,n=n.child}function a(t){return 5===t.tag||3===t.tag||4===t.tag}function u(t){for(var n=t,e=!1,a=void 0,u=void 0;;){if(!e){e=n.return;t:for(;;){switch(null===e&&r("160"),e.tag){case 5:a=e.stateNode,u=!1;break t;case 3:case 4:a=e.stateNode.containerInfo,u=!0;break t}e=e.return}e=!0}if(5===n.tag||6===n.tag)o(n),u?_(a,n.stateNode):m(a,n.stateNode);else if(4===n.tag?a=n.stateNode.containerInfo:i(n),null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return,4===n.tag&&(e=!1)}n.sibling.return=n.return,n=n.sibling}}var l=t.getPublicInstance,c=t.mutation;t=t.persistence,c||r(t?"235":"236");var s=c.commitMount,f=c.commitUpdate,h=c.resetTextContent,p=c.commitTextUpdate,d=c.appendChild,v=c.appendChildToContainer,y=c.insertBefore,g=c.insertInContainerBefore,m=c.removeChild,_=c.removeChildFromContainer;return{commitResetTextContent:function(t){h(t.stateNode)},commitPlacement:function(t){t:{for(var n=t.return;null!==n;){if(a(n)){var e=n;break t}n=n.return}r("160"),e=void 0}var i=n=void 0;switch(e.tag){case 5:n=e.stateNode,i=!1;break;case 3:case 4:n=e.stateNode.containerInfo,i=!0;break;default:r("161")}16&e.effectTag&&(h(n),e.effectTag&=-17);t:n:for(e=t;;){for(;null===e.sibling;){if(null===e.return||a(e.return)){e=null;break t}e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag;){if(2&e.effectTag)continue n;if(null===e.child||4===e.tag)continue n;e.child.return=e,e=e.child}if(!(2&e.effectTag)){e=e.stateNode;break t}}for(var o=t;;){if(5===o.tag||6===o.tag)e?i?g(n,o.stateNode,e):y(n,o.stateNode,e):i?v(n,o.stateNode):d(n,o.stateNode);else if(4!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;o=o.return}o.sibling.return=o.return,o=o.sibling}},commitDeletion:function(t){u(t),t.return=null,t.child=null,t.alternate&&(t.alternate.child=null,t.alternate.return=null)},commitWork:function(t,n){switch(n.tag){case 2:break;case 5:var e=n.stateNode;if(null!=e){var i=n.memoizedProps;t=null!==t?t.memoizedProps:i;var o=n.type,a=n.updateQueue;n.updateQueue=null,null!==a&&f(e,a,o,t,i,n)}break;case 6:null===n.stateNode&&r("162"),e=n.memoizedProps,p(n.stateNode,null!==t?t.memoizedProps:e,e);break;case 3:break;default:r("163")}},commitLifeCycles:function(t,n){switch(n.tag){case 2:var e=n.stateNode;if(4&n.effectTag)if(null===t)e.props=n.memoizedProps,e.state=n.memoizedState,e.componentDidMount();else{var i=t.memoizedProps;t=t.memoizedState,e.props=n.memoizedProps,e.state=n.memoizedState,e.componentDidUpdate(i,t)}n=n.updateQueue,null!==n&&Mn(n,e);break;case 3:e=n.updateQueue,null!==e&&Mn(e,null!==n.child?n.child.stateNode:null);break;case 5:e=n.stateNode,null===t&&4&n.effectTag&&s(e,n.type,n.memoizedProps,n);break;case 6:case 4:break;default:r("163")}},commitAttachRef:function(t){var n=t.ref;if(null!==n){var e=t.stateNode;switch(t.tag){case 5:n(l(e));break;default:n(e)}}},commitDetachRef:function(t){null!==(t=t.ref)&&t(null)}}}function On(t){function n(t){return t===Si&&r("174"),t}var e=t.getChildHostContext,i=t.getRootHostContext,o={current:Si},a={current:Si},u={current:Si};return{getHostContext:function(){return n(o.current)},getRootHostContainer:function(){return n(u.current)},popHostContainer:function(t){Xt(o,t),Xt(a,t),Xt(u,t)},popHostContext:function(t){a.current===t&&(Xt(o,t),Xt(a,t))},pushHostContainer:function(t,n){Gt(u,n,t),n=i(n),Gt(a,t,t),Gt(o,n,t)},pushHostContext:function(t){var r=n(u.current),i=n(o.current);r=e(i,t.type,r),i!==r&&(Gt(a,t,t),Gt(o,r,t))},resetHostContainer:function(){o.current=Si,u.current=Si}}}function In(t){function n(t,n){var e=new an(5,null,0);e.type="DELETED",e.stateNode=n,e.return=t,e.effectTag=8,null!==t.lastEffect?(t.lastEffect.nextEffect=e,t.lastEffect=e):t.firstEffect=t.lastEffect=e}function e(t,n){switch(t.tag){case 5:return null!==(n=a(n,t.type,t.pendingProps))&&(t.stateNode=n,!0);case 6:return null!==(n=u(n,t.pendingProps))&&(t.stateNode=n,!0);default:return!1}}function i(t){for(t=t.return;null!==t&&5!==t.tag&&3!==t.tag;)t=t.return;h=t}var o=t.shouldSetTextContent;if(!(t=t.hydration))return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){r("175")},prepareToHydrateHostTextInstance:function(){r("176")},popHydrationState:function(){return!1}};var a=t.canHydrateInstance,u=t.canHydrateTextInstance,l=t.getNextHydratableSibling,c=t.getFirstHydratableChild,s=t.hydrateInstance,f=t.hydrateTextInstance,h=null,p=null,d=!1;return{enterHydrationState:function(t){return p=c(t.stateNode.containerInfo),h=t,d=!0},resetHydrationState:function(){p=h=null,d=!1},tryToClaimNextHydratableInstance:function(t){if(d){var r=p;if(r){if(!e(t,r)){if(!(r=l(r))||!e(t,r))return t.effectTag|=2,d=!1,void(h=t);n(h,p)}h=t,p=c(r)}else t.effectTag|=2,d=!1,h=t}},prepareToHydrateHostInstance:function(t,n,e){return n=s(t.stateNode,t.type,t.memoizedProps,n,e,t),t.updateQueue=n,null!==n},prepareToHydrateHostTextInstance:function(t){return f(t.stateNode,t.memoizedProps,t)},popHydrationState:function(t){if(t!==h)return!1;if(!d)return i(t),d=!0,!1;var e=t.type;if(5!==t.tag||"head"!==e&&"body"!==e&&!o(e,t.memoizedProps))for(e=p;e;)n(t,e),e=l(e);return i(t),p=h?l(t.stateNode):null,!0}}}function Rn(t){function n(t){ot=X=!0;var n=t.stateNode;if(n.current===t&&r("177"),n.isReadyForCommit=!1,jr.current=null,1a.expirationTime)&&(o=a.expirationTime),a=a.sibling;i.expirationTime=o}if(null!==n)return n;if(null!==e&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1t))if(Z<=K)for(;null!==G;)G=c(G)?o(G):i(G);else for(;null!==G&&!w();)G=c(G)?o(G):i(G)}else if(!(0===Z||Z>t))if(Z<=K)for(;null!==G;)G=i(G);else for(;null!==G&&!w();)G=i(G)}function u(t,n){if(X&&r("243"),X=!0,t.isReadyForCommit=!1,t!==Q||n!==Z||null===G){for(;-1n)&&(t.expirationTime=n),null!==t.alternate&&(0===t.alternate.expirationTime||t.alternate.expirationTime>n)&&(t.alternate.expirationTime=n),null===t.return){if(3!==t.tag)break;var e=t.stateNode;!X&&e===Q&&nbt&&r("185"),null===i.nextScheduledRoot)i.remainingExpirationTime=o,null===lt?(ut=lt=i,i.nextScheduledRoot=i):(lt=lt.nextScheduledRoot=i,lt.nextScheduledRoot=ut);else{var a=i.remainingExpirationTime;(0===a||oct)return;B(st)}var n=H()-Y;ct=t,st=j(_,{timeout:10*(t-2)-n})}function m(){var t=0,n=null;if(null!==lt)for(var e=lt,i=ut;null!==i;){var o=i.remainingExpirationTime;if(0===o){if((null===e||null===lt)&&r("244"),i===i.nextScheduledRoot){ut=lt=i.nextScheduledRoot=null;break}if(i===ut)ut=o=i.nextScheduledRoot,lt.nextScheduledRoot=o,i.nextScheduledRoot=null;else{if(i===lt){lt=e,lt.nextScheduledRoot=ut,i.nextScheduledRoot=null;break}e.nextScheduledRoot=i.nextScheduledRoot,i.nextScheduledRoot=null}i=e.nextScheduledRoot}else{if((0===t||oMt)&&(dt=!0)}function M(t){null===ht&&r("246"),ht.remainingExpirationTime=0,vt||(vt=!0,yt=t)}var k=On(t),C=In(t),E=k.popHostContainer,T=k.popHostContext,S=k.resetHostContainer,N=Nn(t,k,C,p,h),A=N.beginWork,P=N.beginFailedWork,O=An(t,k,C).completeWork;k=Pn(t,l);var I=k.commitResetTextContent,R=k.commitPlacement,D=k.commitDeletion,L=k.commitWork,U=k.commitLifeCycles,z=k.commitAttachRef,F=k.commitDetachRef,H=t.now,j=t.scheduleDeferredCallback,B=t.cancelDeferredCallback,q=t.useSyncScheduling,V=t.prepareForCommit,W=t.resetAfterCommit,Y=H(),K=2,$=0,X=!1,G=null,Q=null,Z=0,J=null,tt=null,nt=null,et=null,rt=null,it=!1,ot=!1,at=!1,ut=null,lt=null,ct=0,st=-1,ft=!1,ht=null,pt=0,dt=!1,vt=!1,yt=null,gt=null,mt=!1,_t=!1,bt=1e3,wt=0,Mt=1;return{computeAsyncExpiration:f,computeExpirationForFiber:h,scheduleWork:p,batchedUpdates:function(t,n){var e=mt;mt=!0;try{return t(n)}finally{(mt=e)||ft||b(1,null)}},unbatchedUpdates:function(t){if(mt&&!_t){_t=!0;try{return t()}finally{_t=!1}}return t()},flushSync:function(t){var n=mt;mt=!0;try{t:{var e=$;$=1;try{var i=t();break t}finally{$=e}i=void 0}return i}finally{mt=n,ft&&r("187"),b(1,null)}},deferredUpdates:function(t){var n=$;$=f();try{return t()}finally{$=n}}}}function Dn(t){function n(t){return t=Et(t),null===t?null:t.stateNode}var e=t.getPublicInstance;t=Rn(t);var i=t.computeAsyncExpiration,o=t.computeExpirationForFiber,a=t.scheduleWork;return{createContainer:function(t,n){var e=new an(3,null,0);return t={current:e,containerInfo:t,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:n,nextScheduledRoot:null},e.stateNode=t},updateContainer:function(t,n,e,u){var l=n.current;if(e){e=e._reactInternalFiber;var c;t:{for(2===wt(e)&&2===e.tag||r("170"),c=e;3!==c.tag;){if(Jt(c)){c=c.stateNode.__reactInternalMemoizedMergedChildContext;break t}(c=c.return)||r("171")}c=c.stateNode.context}e=Jt(e)?en(e,c):c}else e=Se;null===n.context?n.context=e:n.pendingContext=e,n=u,n=void 0===n?null:n,u=null!=t&&null!=t.type&&null!=t.type.prototype&&!0===t.type.prototype.unstable_isAsyncReactComponent?i():o(l),bn(l,{expirationTime:u,partialState:{element:t},callback:n,isReplace:!1,isForced:!1,nextCallback:null,next:null}),a(l,u)},batchedUpdates:t.batchedUpdates,unbatchedUpdates:t.unbatchedUpdates,deferredUpdates:t.deferredUpdates,flushSync:t.flushSync,getPublicRootInstance:function(t){if(t=t.current,!t.child)return null;switch(t.child.tag){case 5:return e(t.child.stateNode);default:return t.child.stateNode}},findHostInstance:n,findHostInstanceWithNoPortals:function(t){return t=Tt(t),null===t?null:t.stateNode},injectIntoDevTools:function(t){var e=t.findFiberByHostInstance;return vn(xe({},t,{findHostInstanceByFiber:function(t){return n(t)},findFiberByHostInstance:function(t){return e?e(t):null}}))}}}function Ln(t,n,e){var r=3e||r.hasOverloadedBooleanValue&&!1===e?Hn(t,n):r.mustUseProperty?t[r.propertyName]=e:(n=r.attributeName,(i=r.attributeNamespace)?t.setAttributeNS(i,n,""+e):r.hasBooleanValue||r.hasOverloadedBooleanValue&&!0===e?t.setAttribute(n,""):t.setAttribute(n,""+e))}else Fn(t,n,o(n,e)?e:null)}function Fn(t,n,e){Un(n)&&(null==e?t.removeAttribute(n):t.setAttribute(n,""+e))}function Hn(t,n){var e=a(n);e?(n=e.mutationMethod)?n(t,void 0):e.mustUseProperty?t[e.propertyName]=!e.hasBooleanValue&&"":t.removeAttribute(e.attributeName):t.removeAttribute(n)}function jn(t,n){var e=n.value,r=n.checked;return xe({type:void 0,step:void 0,min:void 0,max:void 0},n,{defaultChecked:void 0,defaultValue:void 0,value:null!=e?e:t._wrapperState.initialValue,checked:null!=r?r:t._wrapperState.initialChecked})}function Bn(t,n){var e=n.defaultValue;t._wrapperState={initialChecked:null!=n.checked?n.checked:n.defaultChecked,initialValue:null!=n.value?n.value:e,controlled:"checkbox"===n.type||"radio"===n.type?null!=n.checked:null!=n.value}}function qn(t,n){null!=(n=n.checked)&&zn(t,"checked",n)}function Vn(t,n){qn(t,n);var e=n.value;null!=e?0===e&&""===t.value?t.value="0":"number"===n.type?(n=parseFloat(t.value)||0,(e!=n||e==n&&t.value!=e)&&(t.value=""+e)):t.value!==""+e&&(t.value=""+e):(null==n.value&&null!=n.defaultValue&&t.defaultValue!==""+n.defaultValue&&(t.defaultValue=""+n.defaultValue),null==n.checked&&null!=n.defaultChecked&&(t.defaultChecked=!!n.defaultChecked))}function Wn(t,n){switch(n.type){case"submit":case"reset":break;case"color":case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":t.value="",t.value=t.defaultValue;break;default:t.value=t.value}n=t.name,""!==n&&(t.name=""),t.defaultChecked=!t.defaultChecked,t.defaultChecked=!t.defaultChecked,""!==n&&(t.name=n)}function Yn(t){var n="";return _e.Children.forEach(t,function(t){null==t||"string"!==typeof t&&"number"!==typeof t||(n+=t)}),n}function Kn(t,n){return t=xe({children:void 0},n),(n=Yn(n.children))&&(t.children=n),t}function $n(t,n,e,r){if(t=t.options,n){n={};for(var i=0;i=n.length||r("93"),n=n[0]),e=""+n),null==e&&(e="")),t._wrapperState={initialValue:""+e}}function Zn(t,n){var e=n.value;null!=e&&(e=""+e,e!==t.value&&(t.value=e),null==n.defaultValue&&(t.defaultValue=e)),null!=n.defaultValue&&(t.defaultValue=n.defaultValue)}function Jn(t){var n=t.textContent;n===t._wrapperState.initialValue&&(t.value=n)}function te(t){switch(t){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ne(t,n){return null==t||"http://www.w3.org/1999/xhtml"===t?te(n):"http://www.w3.org/2000/svg"===t&&"foreignObject"===n?"http://www.w3.org/1999/xhtml":t}function ee(t,n){if(n){var e=t.firstChild;if(e&&e===t.lastChild&&3===e.nodeType)return void(e.nodeValue=n)}t.textContent=n}function re(t,n){t=t.style;for(var e in n)if(n.hasOwnProperty(e)){var r=0===e.indexOf("--"),i=e,o=n[e];i=null==o||"boolean"===typeof o||""===o?"":r||"number"!==typeof o||0===o||Zi.hasOwnProperty(i)&&Zi[i]?(""+o).trim():o+"px","float"===e&&(e="cssFloat"),r?t.setProperty(e,i):t[e]=i}}function ie(t,n,e){n&&(to[t]&&(null!=n.children||null!=n.dangerouslySetInnerHTML)&&r("137",t,e()),null!=n.dangerouslySetInnerHTML&&(null!=n.children&&r("60"),"object"===typeof n.dangerouslySetInnerHTML&&"__html"in n.dangerouslySetInnerHTML||r("61")),null!=n.style&&"object"!==typeof n.style&&r("62",e()))}function oe(t,n){if(-1===t.indexOf("-"))return"string"===typeof n.is;switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function ae(t,n){t=9===t.nodeType||11===t.nodeType?t:t.ownerDocument;var e=Dt(t);n=Ge[n];for(var r=0;r<\/script>",t=t.removeChild(t.firstChild)):t="string"===typeof n.is?e.createElement(t,{is:n.is}):e.createElement(t):t=e.createElementNS(r,t),t}function le(t,n){return(9===n.nodeType?n:n.ownerDocument).createTextNode(t)}function ce(t,n,e,r){var i=oe(n,e);switch(n){case"iframe":case"object":At("topLoad","load",t);var o=e;break;case"video":case"audio":for(o in ro)ro.hasOwnProperty(o)&&At(o,ro[o],t);o=e;break;case"source":At("topError","error",t),o=e;break;case"img":case"image":At("topError","error",t),At("topLoad","load",t),o=e;break;case"form":At("topReset","reset",t),At("topSubmit","submit",t),o=e;break;case"details":At("topToggle","toggle",t),o=e;break;case"input":Bn(t,e),o=jn(t,e),At("topInvalid","invalid",t),ae(r,"onChange");break;case"option":o=Kn(t,e);break;case"select":Xn(t,e),o=xe({},e,{value:void 0}),At("topInvalid","invalid",t),ae(r,"onChange");break;case"textarea":Qn(t,e),o=Gn(t,e),At("topInvalid","invalid",t),ae(r,"onChange");break;default:o=e}ie(n,o,eo);var a,u=o;for(a in u)if(u.hasOwnProperty(a)){var l=u[a];"style"===a?re(t,l,eo):"dangerouslySetInnerHTML"===a?null!=(l=l?l.__html:void 0)&&Qi(t,l):"children"===a?"string"===typeof l?("textarea"!==n||""!==l)&&ee(t,l):"number"===typeof l&&ee(t,""+l):"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&"autoFocus"!==a&&(Xe.hasOwnProperty(a)?null!=l&&ae(r,a):i?Fn(t,a,l):null!=l&&zn(t,a,l))}switch(n){case"input":ot(t),Wn(t,e);break;case"textarea":ot(t),Jn(t,e);break;case"option":null!=e.value&&t.setAttribute("value",e.value);break;case"select":t.multiple=!!e.multiple,n=e.value,null!=n?$n(t,!!e.multiple,n,!1):null!=e.defaultValue&&$n(t,!!e.multiple,e.defaultValue,!0);break;default:"function"===typeof o.onClick&&(t.onclick=we)}}function se(t,n,e,r,i){var o=null;switch(n){case"input":e=jn(t,e),r=jn(t,r),o=[];break;case"option":e=Kn(t,e),r=Kn(t,r),o=[];break;case"select":e=xe({},e,{value:void 0}),r=xe({},r,{value:void 0}),o=[];break;case"textarea":e=Gn(t,e),r=Gn(t,r),o=[];break;default:"function"!==typeof e.onClick&&"function"===typeof r.onClick&&(t.onclick=we)}ie(n,r,eo);var a,u;t=null;for(a in e)if(!r.hasOwnProperty(a)&&e.hasOwnProperty(a)&&null!=e[a])if("style"===a)for(u in n=e[a])n.hasOwnProperty(u)&&(t||(t={}),t[u]="");else"dangerouslySetInnerHTML"!==a&&"children"!==a&&"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&"autoFocus"!==a&&(Xe.hasOwnProperty(a)?o||(o=[]):(o=o||[]).push(a,null));for(a in r){var l=r[a];if(n=null!=e?e[a]:void 0,r.hasOwnProperty(a)&&l!==n&&(null!=l||null!=n))if("style"===a)if(n){for(u in n)!n.hasOwnProperty(u)||l&&l.hasOwnProperty(u)||(t||(t={}),t[u]="");for(u in l)l.hasOwnProperty(u)&&n[u]!==l[u]&&(t||(t={}),t[u]=l[u])}else t||(o||(o=[]),o.push(a,t)),t=l;else"dangerouslySetInnerHTML"===a?(l=l?l.__html:void 0,n=n?n.__html:void 0,null!=l&&n!==l&&(o=o||[]).push(a,""+l)):"children"===a?n===l||"string"!==typeof l&&"number"!==typeof l||(o=o||[]).push(a,""+l):"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&(Xe.hasOwnProperty(a)?(null!=l&&ae(i,a),o||n===l||(o=[])):(o=o||[]).push(a,l))}return t&&(o=o||[]).push("style",t),o}function fe(t,n,e,r,i){"input"===e&&"radio"===i.type&&null!=i.name&&qn(t,i),oe(e,r),r=oe(e,i);for(var o=0;o=l.hasBooleanValue+l.hasNumericValue+l.hasOverloadedBooleanValue||r("50",u),a.hasOwnProperty(u)&&(l.attributeName=a[u]),o.hasOwnProperty(u)&&(l.attributeNamespace=o[u]),t.hasOwnProperty(u)&&(l.mutationMethod=t[u]),Pe[u]=l}}},Pe={},Oe=Ae,Ie=Oe.MUST_USE_PROPERTY,Re=Oe.HAS_BOOLEAN_VALUE,De=Oe.HAS_NUMERIC_VALUE,Le=Oe.HAS_POSITIVE_NUMERIC_VALUE,Ue=Oe.HAS_OVERLOADED_BOOLEAN_VALUE,ze=Oe.HAS_STRING_BOOLEAN_VALUE,Fe={Properties:{allowFullScreen:Re,async:Re,autoFocus:Re,autoPlay:Re,capture:Ue,checked:Ie|Re,cols:Le,contentEditable:ze,controls:Re,default:Re,defer:Re,disabled:Re,download:Ue,draggable:ze,formNoValidate:Re,hidden:Re,loop:Re,multiple:Ie|Re,muted:Ie|Re,noValidate:Re,open:Re,playsInline:Re,readOnly:Re,required:Re,reversed:Re,rows:Le,rowSpan:De,scoped:Re,seamless:Re,selected:Ie|Re,size:Le,start:De,span:Le,spellCheck:ze,style:0,tabIndex:0,itemScope:Re,acceptCharset:0,className:0,htmlFor:0,httpEquiv:0,value:ze},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMMutationMethods:{value:function(t,n){if(null==n)return t.removeAttribute("value");"number"!==t.type||!1===t.hasAttribute("value")?t.setAttribute("value",""+n):t.validity&&!t.validity.badInput&&t.ownerDocument.activeElement!==t&&t.setAttribute("value",""+n)}}},He=Oe.HAS_STRING_BOOLEAN_VALUE,je={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},Be={Properties:{autoReverse:He,externalResourcesRequired:He,preserveAlpha:He},DOMAttributeNames:{autoReverse:"autoReverse",externalResourcesRequired:"externalResourcesRequired",preserveAlpha:"preserveAlpha"},DOMAttributeNamespaces:{xlinkActuate:je.xlink,xlinkArcrole:je.xlink,xlinkHref:je.xlink,xlinkRole:je.xlink,xlinkShow:je.xlink,xlinkTitle:je.xlink,xlinkType:je.xlink,xmlBase:je.xml,xmlLang:je.xml,xmlSpace:je.xml}},qe=/[\-\:]([a-z])/g;"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode x-height xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xmlns:xlink xml:lang xml:space".split(" ").forEach(function(t){var n=t.replace(qe,u);Be.Properties[n]=0,Be.DOMAttributeNames[n]=t}),Oe.injectDOMPropertyConfig(Fe),Oe.injectDOMPropertyConfig(Be);var Ve={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,injection:{injectErrorUtils:function(t){"function"!==typeof t.invokeGuardedCallback&&r("197"),l=t.invokeGuardedCallback}},invokeGuardedCallback:function(t,n,e,r,i,o,a,u,c){l.apply(Ve,arguments)},invokeGuardedCallbackAndCatchFirstError:function(t,n,e,r,i,o,a,u,l){if(Ve.invokeGuardedCallback.apply(this,arguments),Ve.hasCaughtError()){var c=Ve.clearCaughtError();Ve._hasRethrowError||(Ve._hasRethrowError=!0,Ve._rethrowError=c)}},rethrowCaughtError:function(){return c.apply(Ve,arguments)},hasCaughtError:function(){return Ve._hasCaughtError},clearCaughtError:function(){if(Ve._hasCaughtError){var t=Ve._caughtError;return Ve._caughtError=null,Ve._hasCaughtError=!1,t}r("198")}},We=null,Ye={},Ke=[],$e={},Xe={},Ge={},Qe=Object.freeze({plugins:Ke,eventNameDispatchConfigs:$e,registrationNameModules:Xe,registrationNameDependencies:Ge,possibleRegistrationNames:null,injectEventPluginOrder:h,injectEventPluginsByName:p}),Ze=null,Je=null,tr=null,nr=null,er={injectEventPluginOrder:h,injectEventPluginsByName:p},rr=Object.freeze({injection:er,getListener:b,extractEvents:x,enqueueEvents:w,processEventQueue:M}),ir=Math.random().toString(36).slice(2),or="__reactInternalInstance$"+ir,ar="__reactEventHandlers$"+ir,ur=Object.freeze({precacheFiberNode:function(t,n){n[or]=t},getClosestInstanceFromNode:k,getInstanceFromNode:function(t){return t=t[or],!t||5!==t.tag&&6!==t.tag?null:t},getNodeFromInstance:C,getFiberCurrentPropsFromNode:E,updateFiberProps:function(t,n){t[ar]=n}}),lr=Object.freeze({accumulateTwoPhaseDispatches:R,accumulateTwoPhaseDispatchesSkipTarget:function(t){y(t,P)},accumulateEnterLeaveDispatches:D,accumulateDirectDispatches:function(t){y(t,I)}}),cr=null,sr={_root:null,_startText:null,_fallbackText:null},fr="dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances".split(" "),hr={type:null,target:null,currentTarget:we.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};xe(F.prototype,{preventDefault:function(){this.defaultPrevented=!0;var t=this.nativeEvent;t&&(t.preventDefault?t.preventDefault():"unknown"!==typeof t.returnValue&&(t.returnValue=!1),this.isDefaultPrevented=we.thatReturnsTrue)},stopPropagation:function(){var t=this.nativeEvent;t&&(t.stopPropagation?t.stopPropagation():"unknown"!==typeof t.cancelBubble&&(t.cancelBubble=!0),this.isPropagationStopped=we.thatReturnsTrue)},persist:function(){this.isPersistent=we.thatReturnsTrue},isPersistent:we.thatReturnsFalse,destructor:function(){var t,n=this.constructor.Interface;for(t in n)this[t]=null;for(n=0;n=parseInt(gr.version(),10))}var mr,_r=yr,br=be.canUseDOM&&(!dr||vr&&8=vr),xr=String.fromCharCode(32),wr={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")}},Mr=!1,kr=!1,Cr={eventTypes:wr,extractEvents:function(t,n,e,r){var i;if(dr)t:{switch(t){case"topCompositionStart":var o=wr.compositionStart;break t;case"topCompositionEnd":o=wr.compositionEnd;break t;case"topCompositionUpdate":o=wr.compositionUpdate;break t}o=void 0}else kr?W(t,e)&&(o=wr.compositionEnd):"topKeyDown"===t&&229===e.keyCode&&(o=wr.compositionStart);return o?(br&&(kr||o!==wr.compositionStart?o===wr.compositionEnd&&kr&&(i=U()):(sr._root=r,sr._startText=z(),kr=!0)),o=q.getPooled(o,n,e,r),i?o.data=i:null!==(i=Y(e))&&(o.data=i),R(o),i=o):i=null,(t=_r?K(t,e):$(t,e))?(n=V.getPooled(wr.beforeInput,n,e,r),n.data=t,R(n)):n=null,[i,n]}},Er=null,Tr=null,Sr=null,Nr={injectFiberControlledHostComponent:function(t){Er=t}},Ar=Object.freeze({injection:Nr,enqueueStateRestore:G,restoreStateIfNeeded:Q}),Pr=!1,Or={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};be.canUseDOM&&(mr=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var Ir={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange".split(" ")}},Rr=null,Dr=null,Lr=!1;be.canUseDOM&&(Lr=et("input")&&(!document.documentMode||9=document.documentMode,ti={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange".split(" ")}},ni=null,ei=null,ri=null,ii=!1,oi={eventTypes:ti,extractEvents:function(t,n,e,r){var i,o=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(i=!o)){t:{o=Dt(o),i=Ge.onSelect;for(var a=0;a=ji-t){if(!(-1!==Fi&&Fi<=t))return void(Hi||(Hi=!0,requestAnimationFrame(Wi)));Li.didTimeout=!0}else Li.didTimeout=!1;Fi=-1,t=Ui,Ui=null,null!==t&&t(Li)}},!1);var Wi=function(t){Hi=!1;var n=t-ji+qi;nn&&(n=8),qi=n"+n+"",n=Gi.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;n.firstChild;)t.appendChild(n.firstChild)}}),Zi={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ji=["Webkit","ms","Moz","O"];Object.keys(Zi).forEach(function(t){Ji.forEach(function(n){n=n+t.charAt(0).toUpperCase()+t.substring(1),Zi[n]=Zi[t]})});var to=xe({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),no=Xi.html,eo=we.thatReturns(""),ro={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},io=Object.freeze({createElement:ue,createTextNode:le,setInitialProperties:ce,diffProperties:se,updateProperties:fe,diffHydratedProperties:he,diffHydratedText:pe,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState:function(t,n,e){switch(n){case"input":if(Vn(t,e),n=e.name,"radio"===e.type&&null!=n){for(e=t;e.parentNode;)e=e.parentNode;for(e=e.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;nr&&(i=r,r=t,t=i),i=Ut(e,t);var o=Ut(e,r);if(i&&o&&(1!==n.rangeCount||n.anchorNode!==i.node||n.anchorOffset!==i.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)){var a=document.createRange();a.setStart(i.node,i.offset),n.removeAllRanges(),t>r?(n.addRange(a),n.extend(o.node,o.offset)):(a.setEnd(o.node,o.offset),n.addRange(a))}}for(n=[],t=e;t=t.parentNode;)1===t.nodeType&&n.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(Te(e),e=0;en?1:t>=n?0:NaN}function e(t){return 1===t.length&&(t=r(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r>>1;t(n[o],e)>0?i=o:r=o+1}return r}}}function r(t){return function(e,r){return n(t(e),r)}}function i(t,n){return nt?1:n>=t?0:NaN}function o(t){return null===t?NaN:+t}function a(t,n){var e,r,i=t.length,a=0,u=0,l=-1,c=0;if(null==n)for(;++l1)return u/(c-1)}function u(t,n){var e=a(t,n);return e?Math.sqrt(e):e}function l(t,n){var e,r,i,o=-1,a=t.length;if(null==n){for(;++o=r){e=i=r;break}for(;++or&&(e=r),i=r){e=i=r;break}for(;++or&&(e=r),i=Rd?i*=10:o>=Dd?i*=5:o>=Ld&&(i*=2),n=s;)f.pop(),--p;var d,v=new Array(p+1);for(i=0;i<=p;++i)d=v[i]=[],d.x0=i>0?f[i-1]:c,d.x1=i=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,a=Math.floor(i),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(i-a)}}function g(t,e,r){return t=Id.call(t,o).sort(n),Math.ceil((r-e)/(2*(y(t,.75)-y(t,.25))*Math.pow(t.length,-1/3)))}function m(t,n,e){return Math.ceil((e-n)/(3.5*u(t)*Math.pow(t.length,-1/3)))}function _(t,n){var e,r,i=-1,o=t.length;if(null==n){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e}function b(t,n){var e,r=0,i=t.length,a=-1,u=i;if(null==n)for(;++a=0;)for(r=t[i],n=r.length;--n>=0;)e[--a]=r[n];return e}function M(t,n){var e,r,i=-1,o=t.length;if(null==n){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e}function k(t){for(var n=0,e=t.length-1,r=t[0],i=new Array(e<0?0:e);n=o.length)return null!=r?r(n):null!=e?n.sort(e):n;for(var l,c,s,f=-1,h=n.length,p=o[i++],d=I(),v=a();++fo.length)return t;var i,u=a[e-1];return null!=r&&e>=o.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=u?i.sort(function(t,n){return u(t.key,n.key)}):i}var e,r,i,o=[],a=[];return i={object:function(n){return t(n,0,D,L)},map:function(n){return t(n,0,U,z)},entries:function(e){return n(t(e,0,U,z),0)},key:function(t){return o.push(t),i},sortKeys:function(t){return a[o.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}}function D(){return{}}function L(t,n,e){t[n]=e}function U(){return I()}function z(t,n,e){t.set(n,e)}function F(){}function H(t,n){var e=new F;if(t instanceof F)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r1);return t+n*i*Math.sqrt(-2*Math.log(r)/r)}}function Y(){var t=W.apply(this,arguments);return function(){return Math.exp(t())}}function K(t){return function(){for(var n=0,e=0;e1&>(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function bt(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n=0;--n)c.push(t[r[o[n]][2]]);for(n=+u;nu!==c>u&&a<(l-e)*(u-r)/(c-r)+e&&(s=!s),l=e,c=r;return s}function wt(t){for(var n,e,r=-1,i=t.length,o=t[i-1],a=o[0],u=o[1],l=0;++r=(o=(v+g)/2))?v=o:g=o,(s=e>=(a=(y+m)/2))?y=a:m=a,i=p,!(p=p[f=s<<1|c]))return i[f]=d,t;if(u=+t._x.call(null,p.data),l=+t._y.call(null,p.data),n===u&&e===l)return d.next=p,i?i[f]=d:t._root=d,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(c=n>=(o=(v+g)/2))?v=o:g=o,(s=e>=(a=(y+m)/2))?y=a:m=a}while((f=s<<1|c)===(h=(l>=a)<<1|u>=o));return i[h]=p,i[f]=d,t}function Tt(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),l=1/0,c=1/0,s=-1/0,f=-1/0;for(e=0;es&&(s=r),if&&(f=i));for(st||t>i||r>n||n>o))return this;var a,u,l=i-e,c=this._root;switch(u=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{a=new Array(4),a[u]=c,c=a}while(l*=2,i=e+l,o=r+l,t>i||n>o);break;case 1:do{a=new Array(4),a[u]=c,c=a}while(l*=2,e=i-l,o=r+l,e>t||n>o);break;case 2:do{a=new Array(4),a[u]=c,c=a}while(l*=2,i=e+l,r=o-l,t>i||r>n);break;case 3:do{a=new Array(4),a[u]=c,c=a}while(l*=2,e=i-l,r=o-l,e>t||r>n)}this._root&&this._root.length&&(this._root=c)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this}function Nt(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t}function At(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function Pt(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Ot(t,n,e){var r,i,o,a,u,l,c,s=this._x0,f=this._y0,h=this._x1,p=this._y1,d=[],v=this._root;for(v&&d.push(new Pt(v,s,f,h,p)),null==e?e=1/0:(s=t-e,f=n-e,h=t+e,p=n+e,e*=e);l=d.pop();)if(!(!(v=l.node)||(i=l.x0)>h||(o=l.y0)>p||(a=l.x1)=g)<<1|t>=y)&&(l=d[d.length-1],d[d.length-1]=d[d.length-1-c],d[d.length-1-c]=l)}else{var m=t-+this._x.call(null,v.data),_=n-+this._y.call(null,v.data),b=m*m+_*_;if(b=(u=(d+y)/2))?d=u:y=u,(s=a>=(l=(v+g)/2))?v=l:g=l,n=p,!(p=p[f=s<<1|c]))return this;if(!p.length)break;(n[f+1&3]||n[f+2&3]||n[f+3&3])&&(e=n,h=f)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):n?(i?n[f]=i:delete n[f],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[h]=p:this._root=p),this):(this._root=i,this)}function Rt(t){for(var n=0,e=t.length;n=1))throw new Error;this._size=t,this._call=this._error=null,this._tasks=[],this._data=[],this._waiting=this._active=this._ended=this._start=0}function Kt(t){if(!t._start)try{$t(t)}catch(n){t._tasks[t._ended+t._active-1]&&Gt(t,n)}}function $t(t){for(;t._start=t._waiting&&t._active=0;)if((e=t._tasks[r])&&(t._tasks[r]=null,e.abort))try{e.abort()}catch(n){}t._active=NaN,Qt(t)}function Qt(t){!t._active&&t._call&&t._call(t._error,t._data)}function Zt(t){return new Yt(arguments.length?+t:1/0)}function Jt(t){return function(){return t}}function tn(t){return t.innerRadius}function nn(t){return t.outerRadius}function en(t){return t.startAngle}function rn(t){return t.endAngle}function on(t){return t&&t.padAngle}function an(t){return t>=1?dv:t<=-1?-dv:Math.asin(t)}function un(t,n,e,r,i,o,a,u){var l=e-t,c=r-n,s=a-i,f=u-o,h=(s*(n-o)-f*(t-i))/(f*l-s*c);return[t+h*l,n+h*c]}function ln(t,n,e,r,i,o,a){var u=t-e,l=n-r,c=(a?o:-o)/Math.sqrt(u*u+l*l),s=c*l,f=-c*u,h=t+s,p=n+f,d=e+s,v=r+f,y=(h+d)/2,g=(p+v)/2,m=d-h,_=v-p,b=m*m+_*_,x=i-o,w=h*v-d*p,M=(_<0?-1:1)*Math.sqrt(Math.max(0,x*x*b-w*w)),k=(w*_-m*M)/b,C=(-w*m-_*M)/b,E=(w*_+m*M)/b,T=(-w*m+_*M)/b,S=k-y,N=C-g,A=E-y,P=T-g;return S*S+N*N>A*A+P*P&&(k=E,C=T),{cx:k,cy:C,x01:-s,y01:-f,x11:k*(i/x-1),y11:C*(i/x-1)}}function cn(){function t(){var t,c,s=+n.apply(this,arguments),f=+e.apply(this,arguments),h=o.apply(this,arguments)-dv,p=a.apply(this,arguments)-dv,d=Math.abs(p-h),v=p>h;if(l||(l=t=kt()),fhv)if(d>vv-hv)l.moveTo(f*Math.cos(h),f*Math.sin(h)),l.arc(0,0,f,h,p,!v),s>hv&&(l.moveTo(s*Math.cos(p),s*Math.sin(p)),l.arc(0,0,s,p,h,v));else{var y,g,m=h,_=p,b=h,x=p,w=d,M=d,k=u.apply(this,arguments)/2,C=k>hv&&(i?+i.apply(this,arguments):Math.sqrt(s*s+f*f)),E=Math.min(Math.abs(f-s)/2,+r.apply(this,arguments)),T=E,S=E;if(C>hv){var N=an(C/s*Math.sin(k)),A=an(C/f*Math.sin(k));(w-=2*N)>hv?(N*=v?1:-1,b+=N,x-=N):(w=0,b=x=(h+p)/2),(M-=2*A)>hv?(A*=v?1:-1,m+=A,_-=A):(M=0,m=_=(h+p)/2)}var P=f*Math.cos(m),O=f*Math.sin(m),I=s*Math.cos(x),R=s*Math.sin(x);if(E>hv){var D=f*Math.cos(_),L=f*Math.sin(_),U=s*Math.cos(b),z=s*Math.sin(b);if(dhv?un(P,O,U,z,D,L,I,R):[I,R],H=P-F[0],j=O-F[1],B=D-F[0],q=L-F[1],V=1/Math.sin(Math.acos((H*B+j*q)/(Math.sqrt(H*H+j*j)*Math.sqrt(B*B+q*q)))/2),W=Math.sqrt(F[0]*F[0]+F[1]*F[1]);T=Math.min(E,(s-W)/(V-1)),S=Math.min(E,(f-W)/(V+1))}}M>hv?S>hv?(y=ln(U,z,P,O,f,S,v),g=ln(D,L,I,R,f,S,v),l.moveTo(y.cx+y.x01,y.cy+y.y01),Shv&&w>hv?T>hv?(y=ln(I,R,D,L,s,-T,v),g=ln(P,O,U,z,s,-T,v),l.lineTo(y.cx+y.x01,y.cy+y.y01),T=s;--f)c.point(y[f],g[f]);c.lineEnd(),c.areaEnd()}v&&(y[n]=+e(h,n,t),g[n]=+i(h,n,t),c.point(r?+r(h,n,t):y[n],o?+o(h,n,t):g[n]))}if(p)return c=null,p+""||null}function n(){return dn().defined(a).curve(l).context(u)}var e=hn,r=null,i=Jt(0),o=pn,a=Jt(!0),u=null,l=fn,c=null;return t.x=function(n){return arguments.length?(e="function"===typeof n?n:Jt(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"===typeof n?n:Jt(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"===typeof n?n:Jt(+n),t):r},t.y=function(n){return arguments.length?(i="function"===typeof n?n:Jt(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"===typeof n?n:Jt(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"===typeof n?n:Jt(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(a="function"===typeof n?n:Jt(!!n),t):a},t.curve=function(n){return arguments.length?(l=n,null!=u&&(c=l(u)),t):l},t.context=function(n){return arguments.length?(null==n?u=c=null:c=l(u=n),t):u},t}function yn(t,n){return nt?1:n>=t?0:NaN}function gn(t){return t}function mn(){function t(t){var u,l,c,s,f,h=t.length,p=0,d=new Array(h),v=new Array(h),y=+i.apply(this,arguments),g=Math.min(vv,Math.max(-vv,o.apply(this,arguments)-y)),m=Math.min(Math.abs(g)/h,a.apply(this,arguments)),_=m*(g<0?-1:1);for(u=0;u0&&(p+=f);for(null!=e?d.sort(function(t,n){return e(v[t],v[n])}):null!=r&&d.sort(function(n,e){return r(t[n],t[e])}),u=0,c=p?(g-h*_)/p:0;u0?f*c:0)+_,v[l]={data:t[l],index:u,value:f,startAngle:y,endAngle:s,padAngle:m};return v}var n=gn,e=yn,r=null,i=Jt(0),o=Jt(vv),a=Jt(0);return t.value=function(e){return arguments.length?(n="function"===typeof e?e:Jt(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"===typeof n?n:Jt(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"===typeof n?n:Jt(+n),t):o},t.padAngle=function(n){return arguments.length?(a="function"===typeof n?n:Jt(+n),t):a},t}function _n(t){this._curve=t}function bn(t){function n(n){return new _n(t(n))}return n._curve=t,n}function xn(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(bn(t)):n()._curve},t}function wn(){return xn(dn().curve(yv))}function Mn(){var t=vn().curve(yv),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return xn(e())},delete t.lineX0,t.lineEndAngle=function(){return xn(r())},delete t.lineX1,t.lineInnerRadius=function(){return xn(i())},delete t.lineY0,t.lineOuterRadius=function(){return xn(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(bn(t)):n()._curve},t}function kn(){function t(){var t;if(r||(r=t=kt()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=Jt(gv),e=Jt(64),r=null;return t.type=function(e){return arguments.length?(n="function"===typeof e?e:Jt(e),t):n},t.size=function(n){return arguments.length?(e="function"===typeof n?n:Jt(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t}function Cn(){}function En(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function Tn(t){this._context=t}function Sn(t){return new Tn(t)}function Nn(t){this._context=t}function An(t){return new Nn(t)}function Pn(t){this._context=t}function On(t){return new Pn(t)}function In(t,n){this._basis=new Tn(t),this._beta=n}function Rn(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function Dn(t,n){this._context=t,this._k=(1-n)/6}function Ln(t,n){this._context=t,this._k=(1-n)/6}function Un(t,n){this._context=t,this._k=(1-n)/6}function zn(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>hv){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>hv){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*c+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*c+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Fn(t,n){this._context=t,this._alpha=n}function Hn(t,n){this._context=t,this._alpha=n}function jn(t,n){this._context=t,this._alpha=n}function Bn(t){this._context=t}function qn(t){return new Bn(t)}function Vn(t){return t<0?-1:1}function Wn(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(Vn(o)+Vn(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function Yn(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function Kn(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function $n(t){this._context=t}function Xn(t){this._context=new Gn(t)}function Gn(t){this._context=t}function Qn(t){return new $n(t)}function Zn(t){return new Xn(t)}function Jn(t){this._context=t}function te(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n1)for(var e,r,i=1,o=t[n[0]],a=o.length;i=0;)e[n]=n;return e}function le(t,n){return t[n]}function ce(){function t(t){var o,a,u=n.apply(this,arguments),l=t.length,c=u.length,s=new Array(c);for(o=0;o0){for(var e,r,i,o=0,a=t[0].length;o0){for(var e,r=0,i=t[n[0]],o=i.length;r0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=Vv.exec(t))?we(parseInt(n[1],16)):(n=Wv.exec(t))?new Ee(n[1],n[2],n[3],1):(n=Yv.exec(t))?new Ee(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Kv.exec(t))?Me(n[1],n[2],n[3],n[4]):(n=$v.exec(t))?Me(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Xv.exec(t))?Te(n[1],n[2]/100,n[3]/100,1):(n=Gv.exec(t))?Te(n[1],n[2]/100,n[3]/100,n[4]):Qv.hasOwnProperty(t)?we(Qv[t]):"transparent"===t?new Ee(NaN,NaN,NaN,0):null}function we(t){return new Ee(t>>16&255,t>>8&255,255&t,1)}function Me(t,n,e,r){return r<=0&&(t=n=e=NaN),new Ee(t,n,e,r)}function ke(t){return t instanceof be||(t=xe(t)),t?(t=t.rgb(),new Ee(t.r,t.g,t.b,t.opacity)):new Ee}function Ce(t,n,e,r){return 1===arguments.length?ke(t):new Ee(t,n,e,null==r?1:r)}function Ee(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Te(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Ae(t,n,e,r)}function Se(t){if(t instanceof Ae)return new Ae(t.h,t.s,t.l,t.opacity);if(t instanceof be||(t=xe(t)),!t)return new Ae;if(t instanceof Ae)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,l=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e0&&l<1?0:a,new Ae(a,u,l,t.opacity)}function Ne(t,n,e,r){return 1===arguments.length?Se(t):new Ae(t,n,e,null==r?1:r)}function Ae(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Pe(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function Oe(t){if(t instanceof Re)return new Re(t.l,t.a,t.b,t.opacity);if(t instanceof je){var n=t.h*Zv;return new Re(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof Ee||(t=ke(t));var e=ze(t.r),r=ze(t.g),i=ze(t.b),o=De((.4124564*e+.3575761*r+.1804375*i)/ty),a=De((.2126729*e+.7151522*r+.072175*i)/ny);return new Re(116*a-16,500*(o-a),200*(a-De((.0193339*e+.119192*r+.9503041*i)/ey)),t.opacity)}function Ie(t,n,e,r){return 1===arguments.length?Oe(t):new Re(t,n,e,null==r?1:r)}function Re(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function De(t){return t>ay?Math.pow(t,1/3):t/oy+ry}function Le(t){return t>iy?t*t*t:oy*(t-ry)}function Ue(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ze(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Fe(t){if(t instanceof je)return new je(t.h,t.c,t.l,t.opacity);t instanceof Re||(t=Oe(t));var n=Math.atan2(t.b,t.a)*Jv;return new je(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function He(t,n,e,r){return 1===arguments.length?Fe(t):new je(t,n,e,null==r?1:r)}function je(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function Be(t){if(t instanceof Ve)return new Ve(t.h,t.s,t.l,t.opacity);t instanceof Ee||(t=ke(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(dy*r+hy*n-py*e)/(dy+hy-py),o=r-i,a=(fy*(e-i)-cy*o)/sy,u=Math.sqrt(a*a+o*o)/(fy*i*(1-i)),l=u?Math.atan2(a,o)*Jv-120:NaN;return new Ve(l<0?l+360:l,u,i,t.opacity)}function qe(t,n,e,r){return 1===arguments.length?Be(t):new Ve(t,n,e,null==r?1:r)}function Ve(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function We(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}function Ye(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r180||e<-180?e-360*Math.round(e/360):e):$e(isNaN(t)?n:t)}function Ze(t){return 1===(t=+t)?Je:function(n,e){return e-n?Ge(n,e,t):$e(isNaN(n)?e:n)}}function Je(t,n){var e=n-t;return e?Xe(t,e):$e(isNaN(t)?n:t)}function tr(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;eo&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,l.push({i:a,x:rr(e,r)})),o=My.lastIndex;return o180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:rr(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}function u(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:rr(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}function l(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:rr(t,e)},{i:u-2,x:rr(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}return function(n,e){var r=[],i=[];return n=t(n),e=t(e),o(n.translateX,n.translateY,e.translateX,e.translateY,r,i),a(n.rotate,e.rotate,r,i),u(n.skewX,e.skewX,r,i),l(n.scaleX,n.scaleY,e.scaleX,e.scaleY,r,i),n=e=null,function(t){for(var n,e=-1,o=i.length;++e=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}function Er(t,n){for(var e,r=0,i=t.length;r=c)return a;if(i)return i=!1,o;var n,e=s;if(34===t.charCodeAt(e)){for(var r=e;r++=200&&e<300||304===e){if(o)try{n=o.call(r,c)}catch(t){return void u.call("error",r,t)}else n=c;u.call("load",r,n)}else u.call("error",r,t)}var r,i,o,a,u=Mr("beforesend","progress","load","error"),l=I(),c=new XMLHttpRequest,s=null,f=null,h=0;if("undefined"===typeof XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(t)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=c.ontimeout=e:c.onreadystatechange=function(t){c.readyState>3&&e(t)},c.onprogress=function(t){u.call("progress",r,t)},r={header:function(t,n){return t=(t+"").toLowerCase(),arguments.length<2?l.get(t):(null==n?l.remove(t):l.set(t,n+""),r)},mimeType:function(t){return arguments.length?(i=null==t?null:t+"",r):i},responseType:function(t){return arguments.length?(a=t,r):a},timeout:function(t){return arguments.length?(h=+t,r):h},user:function(t){return arguments.length<1?s:(s=null==t?null:t+"",r)},password:function(t){return arguments.length<1?f:(f=null==t?null:t+"",r)},response:function(t){return o=t,r},get:function(t,n){return r.send("GET",t,n)},post:function(t,n){return r.send("POST",t,n)},send:function(n,e,o){return c.open(n,t,!0,s,f),null==i||l.has("accept")||l.set("accept",i+",*/*"),c.setRequestHeader&&l.each(function(t,n){c.setRequestHeader(n,t)}),null!=i&&c.overrideMimeType&&c.overrideMimeType(i),null!=a&&(c.responseType=a),h>0&&(c.timeout=h),null==o&&"function"===typeof e&&(o=e,e=null),null!=o&&1===o.length&&(o=Ir(o)),null!=o&&r.on("error",o).on("load",function(t){o(null,t)}),u.call("beforesend",r,c),c.send(null==e?null:e),r},abort:function(){return c.abort(),r},on:function(){var t=u.on.apply(u,arguments);return t===u?r:t}},null!=n){if("function"!==typeof n)throw new Error("invalid callback: "+n);return r.get(n)}return r}function Ir(t){return function(n,e){t(null==n?e:null)}}function Rr(t){var n=t.responseType;return n&&"text"!==n?t.response:t.responseText}function Dr(t,n){return function(e,r){var i=Or(e).mimeType(t).response(n);if(null!=r){if("function"!==typeof r)throw new Error("invalid callback: "+r);return i.get(r)}return i}}function Lr(t,n){return function(e,r,i){arguments.length<3&&(i=r,r=null);var o=Or(e).mimeType(t);return o.row=function(t){return arguments.length?o.response(Ur(n,r=t)):r},o.row(r),i?o.get(i):o}}function Ur(t,n){return function(e){return t(e.responseText,n)}}function zr(){return lg||(fg(Fr),lg=sg.now()+cg)}function Fr(){lg=0}function Hr(){this._call=this._time=this._next=null}function jr(t,n,e){var r=new Hr;return r.restart(t,n,e),r}function Br(){zr(),++rg;for(var t,n=Fy;n;)(t=lg-n._time)>=0&&n._call.call(null,t),n=n._next;--rg}function qr(t){lg=(ug=t||sg.now())+cg,rg=ig=0;try{Br()}finally{rg=0,Wr(),lg=0}}function Vr(){var t=sg.now(),n=t-ug;n>ag&&(cg-=n,ug=t)}function Wr(){for(var t,n,e=Fy,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Fy=n);Hy=t,Yr(r)}function Yr(t){if(!rg){ig&&(ig=clearTimeout(ig));var n=t-lg;n>24?(t<1/0&&(ig=setTimeout(qr,n)),og&&(og=clearInterval(og))):(og||(og=setInterval(Vr,ag)),rg=1,fg(qr))}}function Kr(t,n,e){var r=new Hr;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r}function $r(t,n,e){var r=new Hr,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?zr():+e,r.restart(function o(a){a+=i,r.restart(o,i+=n,e),t(a)},n,e),r)}function Xr(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n0))return a;do{a.push(new Date(+e))}while(n(e,o),t(e),e=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return hg.setTime(+n),pg.setTime(+r),t(hg),t(pg),Math.floor(e(hg,pg))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t===0}:function(n){return i.count(0,n)%t===0}):i:null}),i}function Gr(t){return Xr(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*yg)/gg})}function Qr(t){return Xr(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/gg})}function Zr(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function Jr(t){return t=Zr(Math.abs(t)),t?t[1]:NaN}function ti(t,n){return function(e,r){for(var i=e.length,o=[],a=0,u=t[0],l=0;i>0&&u>0&&(l+u+1>r&&(u=Math.max(1,r-l)),o.push(e.substring(i-=u,i+u)),!((l+=u+1)>r));)u=t[a=(a+1)%t.length];return o.reverse().join(n)}}function ni(t,n){t=t.toPrecision(n);t:for(var e,r=t.length,i=1,o=-1;i0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t}function ei(t,n){var e=Zr(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(pm=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Zr(t,Math.max(0,n+o-1))[0]}function ri(t,n){var e=Zr(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}function ii(t){return new oi(t)}function oi(t){if(!(n=ym.exec(t)))throw new Error("invalid format: "+t);var n,e=n[1]||" ",r=n[2]||">",i=n[3]||"-",o=n[4]||"",a=!!n[5],u=n[6]&&+n[6],l=!!n[7],c=n[8]&&+n[8].slice(1),s=n[9]||"";"n"===s?(l=!0,s="g"):vm[s]||(s=""),(a||"0"===e&&"="===r)&&(a=!0,e="0",r="="),this.fill=e,this.align=r,this.sign=i,this.symbol=o,this.zero=a,this.width=u,this.comma=l,this.precision=c,this.type=s}function ai(t){return t}function ui(t){function n(t){function n(t){var n,i,l,m=d,_=v;if("c"===p)_=y(t)+_,t="";else{t=+t;var b=(t<0||1/t<0)&&(t*=-1,!0);if(t=y(t,h),b)for(n=-1,i=t.length,b=!1;++n(l=t.charCodeAt(n))||l>57){_=(46===l?o+t.slice(n+1):t.slice(n))+_,t=t.slice(0,n);break}}f&&!c&&(t=r(t,1/0));var x=m.length+t.length+_.length,w=x>1)+m+t+_+w.slice(x)}return w+m+t+_}t=ii(t);var e=t.fill,a=t.align,u=t.sign,l=t.symbol,c=t.zero,s=t.width,f=t.comma,h=t.precision,p=t.type,d="$"===l?i[0]:"#"===l&&/[boxX]/.test(p)?"0"+p.toLowerCase():"",v="$"===l?i[1]:/[%p]/.test(p)?"%":"",y=vm[p],g=!p||/[defgprs%]/.test(p);return h=null==h?p?6:12:/[gprs]/.test(p)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),n.toString=function(){return t+""},n}function e(t,e){var r=n((t=ii(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Jr(e)/3))),o=Math.pow(10,-i),a=mm[8+i/3];return function(t){return r(o*t)+a}}var r=t.grouping&&t.thousands?ti(t.grouping,t.thousands):ai,i=t.currency,o=t.decimal;return{format:n,formatPrefix:e}}function li(n){return gm=ui(n),t.format=gm.format,t.formatPrefix=gm.formatPrefix,gm}function ci(t){return Math.max(0,-Jr(Math.abs(t)))}function si(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Jr(n)/3)))-Jr(Math.abs(t)))}function fi(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Jr(n)-Jr(t))+1}function hi(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function pi(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function di(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function vi(t){function n(t,n){return function(e){var r,i,o,a=[],u=-1,l=0,c=t.length;for(e instanceof Date||(e=new Date(+e));++u=l)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=B[i in bm?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function i(t,n,e){var r=A.exec(n.slice(e));return r?(t.p=P[r[0].toLowerCase()],e+r[0].length):-1}function o(t,n,e){var r=R.exec(n.slice(e));return r?(t.w=D[r[0].toLowerCase()],e+r[0].length):-1}function a(t,n,e){var r=O.exec(n.slice(e));return r?(t.w=I[r[0].toLowerCase()],e+r[0].length):-1}function u(t,n,e){var r=z.exec(n.slice(e));return r?(t.m=F[r[0].toLowerCase()],e+r[0].length):-1}function l(t,n,e){var r=L.exec(n.slice(e));return r?(t.m=U[r[0].toLowerCase()],e+r[0].length):-1}function c(t,n,e){return r(t,w,n,e)}function s(t,n,e){return r(t,M,n,e)}function f(t,n,e){return r(t,k,n,e)}function h(t){return T[t.getDay()]}function p(t){return E[t.getDay()]}function d(t){return N[t.getMonth()]}function v(t){return S[t.getMonth()]}function y(t){return C[+(t.getHours()>=12)]}function g(t){return T[t.getUTCDay()]}function m(t){return E[t.getUTCDay()]}function _(t){return N[t.getUTCMonth()]}function b(t){return S[t.getUTCMonth()]}function x(t){return C[+(t.getUTCHours()>=12)]}var w=t.dateTime,M=t.date,k=t.time,C=t.periods,E=t.days,T=t.shortDays,S=t.months,N=t.shortMonths,A=mi(C),P=_i(C),O=mi(E),I=_i(E),R=mi(T),D=_i(T),L=mi(S),U=_i(S),z=mi(N),F=_i(N),H={a:h,A:p,b:d,B:v,c:null,d:Ri,e:Ri,H:Di,I:Li,j:Ui,L:zi,m:Fi,M:Hi,p:y,S:ji,U:Bi,w:qi,W:Vi,x:null,X:null,y:Wi,Y:Yi,Z:Ki,"%":lo},j={a:g,A:m,b:_,B:b,c:null,d:$i,e:$i,H:Xi,I:Gi,j:Qi,L:Zi,m:Ji,M:to,p:x,S:no,U:eo,w:ro,W:io,x:null,X:null,y:oo,Y:ao,Z:uo,"%":lo},B={a:o,A:a,b:u,B:l,c:c,d:Ti,e:Ti,H:Ni,I:Ni,j:Si,L:Oi,m:Ei,M:Ai,p:i,S:Pi,U:xi,w:bi,W:wi,x:s,X:f,y:ki,Y:Mi,Z:Ci,"%":Ii};return H.x=n(M,H),H.X=n(k,H),H.c=n(w,H),j.x=n(M,j),j.X=n(k,j),j.c=n(w,j),{format:function(t){var e=n(t+="",H);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",hi);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",j);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,pi);return n.toString=function(){return t},n}}}function yi(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o68?1900:2e3),e+r[0].length):-1}function Ci(t,n,e){var r=/^(Z)|([+-]\d\d)(?:\:?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function Ei(t,n,e){var r=xm.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function Ti(t,n,e){var r=xm.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function Si(t,n,e){var r=xm.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Ni(t,n,e){var r=xm.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Ai(t,n,e){var r=xm.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Pi(t,n,e){var r=xm.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Oi(t,n,e){var r=xm.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function Ii(t,n,e){var r=wm.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function Ri(t,n){return yi(t.getDate(),n,2)}function Di(t,n){return yi(t.getHours(),n,2)}function Li(t,n){return yi(t.getHours()%12||12,n,2)}function Ui(t,n){return yi(1+kg.count(Bg(t),t),n,3)}function zi(t,n){return yi(t.getMilliseconds(),n,3)}function Fi(t,n){return yi(t.getMonth()+1,n,2)}function Hi(t,n){return yi(t.getMinutes(),n,2)}function ji(t,n){return yi(t.getSeconds(),n,2)}function Bi(t,n){return yi(Eg.count(Bg(t),t),n,2)}function qi(t){return t.getDay()}function Vi(t,n){return yi(Tg.count(Bg(t),t),n,2)}function Wi(t,n){return yi(t.getFullYear()%100,n,2)}function Yi(t,n){return yi(t.getFullYear()%1e4,n,4)}function Ki(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+yi(n/60|0,"0",2)+yi(n%60,"0",2)}function $i(t,n){return yi(t.getUTCDate(),n,2)}function Xi(t,n){return yi(t.getUTCHours(),n,2)}function Gi(t,n){return yi(t.getUTCHours()%12||12,n,2)}function Qi(t,n){return yi(1+$g.count(hm(t),t),n,3)}function Zi(t,n){return yi(t.getUTCMilliseconds(),n,3)}function Ji(t,n){return yi(t.getUTCMonth()+1,n,2)}function to(t,n){return yi(t.getUTCMinutes(),n,2)}function no(t,n){return yi(t.getUTCSeconds(),n,2)}function eo(t,n){return yi(Gg.count(hm(t),t),n,2)}function ro(t){return t.getUTCDay()}function io(t,n){return yi(Qg.count(hm(t),t),n,2)}function oo(t,n){return yi(t.getUTCFullYear()%100,n,2)}function ao(t,n){return yi(t.getUTCFullYear()%1e4,n,4)}function uo(){return"+0000"}function lo(){return"%"}function co(n){return _m=vi(n),t.timeFormat=_m.format,t.timeParse=_m.parse,t.utcFormat=_m.utcFormat,t.utcParse=_m.utcParse,_m}function so(t){return t.toISOString()}function fo(t){var n=new Date(t);return isNaN(n)?null:n}function ho(t){function n(n){var o=n+"",a=e.get(o);if(!a){if(i!==Nm)return i;e.set(o,a=r.push(n))}return t[(a-1)%t.length]}var e=I(),r=[],i=Nm;return t=null==t?[]:Sm.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=I();for(var i,o,a=-1,u=t.length;++a=e?1:r(t)}}}function xo(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}function wo(t,n,e,r){var i=t[0],o=t[1],a=n[0],u=n[1];return o2?Mo:wo,o=a=null,r}function r(n){return(o||(o=i(u,l,s?bo(t):t,c)))(+n)}var i,o,a,u=Am,l=Am,c=lr,s=!1;return r.invert=function(t){return(a||(a=i(l,u,_o,s?xo(n):n)))(+t)},r.domain=function(t){return arguments.length?(u=Tm.call(t,mo),e()):u.slice()},r.range=function(t){return arguments.length?(l=Sm.call(t),e()):l.slice()},r.rangeRound=function(t){return l=Sm.call(t),c=cr,e()},r.clamp=function(t){return arguments.length?(s=!!t,e()):s},r.interpolate=function(t){return arguments.length?(c=t,e()):c},e()}function Eo(n,e,r){var i,o=n[0],a=n[n.length-1],u=p(o,a,null==e?10:e);switch(r=ii(null==r?",f":r),r.type){case"s":var l=Math.max(Math.abs(o),Math.abs(a));return null!=r.precision||isNaN(i=si(u,l))||(r.precision=i),t.formatPrefix(r,l);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=fi(u,Math.max(Math.abs(o),Math.abs(a))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=ci(u))||(r.precision=i-2*("%"===r.type))}return t.format(r)}function To(t){var n=t.domain;return t.ticks=function(t){var e=n();return h(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){return Eo(n(),t,e)},t.nice=function(e){var r=n(),i=r.length-1,o=null==e?10:e,a=r[0],u=r[i],l=p(a,u,o);return l&&(l=p(Math.floor(a/l)*l,Math.ceil(u/l)*l,o),r[0]=Math.floor(a/l)*l,r[i]=Math.ceil(u/l)*l,n(r)),t},t}function So(){var t=Co(_o,rr);return t.copy=function(){return ko(t,So())},To(t)}function No(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=Tm.call(e,mo),t):n.slice()},t.copy=function(){return No().domain(n)},To(t)}function Ao(t,n){t=t.slice();var e,r=0,i=t.length-1,o=t[r],a=t[i];return a0){for(;pl)break;y.push(f)}}else for(;p=1;--s)if(!((f=c*s)l)break;y.push(f)}}else y=h(p,d,Math.min(d-p,v)).map(a);return n?y.reverse():y},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!==typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var u=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/a(Math.round(o(t)));return n*i0?o[n-1]:r[0],n=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Bo().domain([e,r]).range(a)},To(t)}function qo(){function t(t){if(t<=t)return e[Nd(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=Sm.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=Sm.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return qo().domain(n).range(e)},t}function Vo(t){return new Date(t)}function Wo(t){return t instanceof Date?+t:+new Date(+t)}function Yo(t,n,r,i,o,a,u,l,c){function s(e){return(u(e)1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return Wm.h=360*t-100,Wm.s=1.5-1.5*n,Wm.l=.8-.9*n,Wm+""}function Qo(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}function Zo(t){function n(n){var o=(n-e)/(r-e);return t(i?Math.max(0,Math.min(1,o)):o)}var e=0,r=1,i=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n):[e,r]},n.clamp=function(t){return arguments.length?(i=!!t,n):i},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return Zo(t).domain([e,r]).clamp(i)},To(n)}function Jo(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Qm.hasOwnProperty(n)?{space:Qm[n],local:t}:t}function ta(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Gm&&n.documentElement.namespaceURI===Gm?n.createElement(t):n.createElementNS(e,t)}}function na(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function ea(t){var n=Jo(t);return(n.local?na:ta)(n)}function ra(){return new ia}function ia(){this._="@"+(++Zm).toString(36)}function oa(t,n,e){return t=aa(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function aa(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function ua(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}function la(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r=b&&(b=_+1);!(m=y[b])&&++b=0;)(r=i[o])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this}function Oa(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Ia);for(var e=this._groups,r=e.length,i=new Array(r),o=0;on?1:t>=n?0:NaN}function Ra(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Da(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t}function La(){for(var t=this._groups,n=0,e=t.length;n1?this.each((null==n?$a:"function"===typeof n?Ga:Xa)(t,n,null==e?"":e)):Ka(r=this.node()).getComputedStyle(r,null).getPropertyValue(t)}function Za(t){return function(){delete this[t]}}function Ja(t,n){return function(){this[t]=n}}function tu(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function nu(t,n){return arguments.length>1?this.each((null==n?Za:"function"===typeof n?tu:Ja)(t,n)):this.node()[t]}function eu(t){return t.trim().split(/^|\s+/)}function ru(t){return t.classList||new iu(t)}function iu(t){this._node=t,this._names=eu(t.getAttribute("class")||"")}function ou(t,n){for(var e=ru(t),r=-1,i=n.length;++rl_)throw new Error("too late");return e}function ju(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>s_)throw new Error("too late");return e}function Bu(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("too late");return e}function qu(t,n,e){function r(t){e.state=c_,e.delay<=t?i(t-e.delay):e.timer.restart(i,e.delay,e.time)}function i(r){var i,l,c,s;for(i in u)s=u[i],s.name===e.name&&(s.state===f_?(s.state=p_,s.timer.stop(),s.on.call("interrupt",t,t.__data__,s.index,s.group),delete u[i]):+i=0&&(t=t.slice(0,n)),!t||"start"===t})}function ml(t,n,e){var r,i,o=gl(n)?Hu:ju;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}function _l(t,n){var e=this._id;return arguments.length<2?Bu(this.node(),e).on.on(t):this.each(ml(e,t,n))}function bl(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function xl(){return this.on("end.remove",bl(this._id))}function wl(t){var n=this._name,e=this._id;"function"!==typeof t&&(t=ya(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;ac_&&e.name===n)return new Ll([[t]],m_,n,+r)}return null}function Bl(t){return t}function ql(t,n,e){var r=t(e);return"translate("+(isFinite(r)?r:n(e))+",0)"}function Vl(t,n,e){var r=t(e);return"translate(0,"+(isFinite(r)?r:n(e))+")"}function Wl(t){var n=t.bandwidth()/2;return t.round()&&(n=Math.round(n)),function(e){return t(e)+n}}function Yl(){return!this.__axis}function Kl(t,n){function e(e){var c,s=null==i?n.ticks?n.ticks.apply(n,r):n.domain():i,f=null==o?n.tickFormat?n.tickFormat.apply(n,r):Bl:o,h=Math.max(a,0)+l,p=t===b_||t===w_?ql:Vl,d=n.range(),v=d[0]+.5,y=d[d.length-1]+.5,g=(n.bandwidth?Wl:Bl)(n.copy()),m=e.selection?e.selection():e,_=m.selectAll(".domain").data([null]),b=m.selectAll(".tick").data(s,n).order(),x=b.exit(),w=b.enter().append("g").attr("class","tick"),M=b.select("line"),k=b.select("text"),C=t===b_||t===M_?-1:1,E=t===M_||t===x_?(c="x","y"):(c="y","x");_=_.merge(_.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),b=b.merge(w),M=M.merge(w.append("line").attr("stroke","#000").attr(c+"2",C*a).attr(E+"1",.5).attr(E+"2",.5)),k=k.merge(w.append("text").attr("fill","#000").attr(c,C*h).attr(E,.5).attr("dy",t===b_?"0em":t===w_?"0.71em":"0.32em")),e!==m&&(_=_.transition(e),b=b.transition(e),M=M.transition(e),k=k.transition(e),x=x.transition(e).attr("opacity",k_).attr("transform",function(t){return p(g,this.parentNode.__axis||g,t)}),w.attr("opacity",k_).attr("transform",function(t){return p(this.parentNode.__axis||g,g,t)})),x.remove(),_.attr("d",t===M_||t==x_?"M"+C*u+","+v+"H0.5V"+y+"H"+C*u:"M"+v+","+C*u+"V0.5H"+y+"V"+C*u),b.attr("opacity",1).attr("transform",function(t){return p(g,g,t)}),M.attr(c+"2",C*a),k.attr(c,C*h).text(f),m.filter(Yl).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===x_?"start":t===M_?"end":"middle"),m.each(function(){this.__axis=g})}var r=[],i=null,o=null,a=6,u=6,l=3;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return r=__.call(arguments),e},e.tickArguments=function(t){return arguments.length?(r=null==t?[]:__.call(t),e):r.slice()},e.tickValues=function(t){return arguments.length?(i=null==t?null:__.call(t),e):i&&i.slice()},e.tickFormat=function(t){return arguments.length?(o=t,e):o},e.tickSize=function(t){return arguments.length?(a=u=+t,e):a},e.tickSizeInner=function(t){return arguments.length?(a=+t,e):a},e.tickSizeOuter=function(t){return arguments.length?(u=+t,e):u},e.tickPadding=function(t){return arguments.length?(l=+t,e):l},e}function $l(t){return Kl(b_,t)}function Xl(t){return Kl(x_,t)}function Gl(t){return Kl(w_,t)}function Ql(t){return Kl(M_,t)}function Zl(t,n){return t.parent===n.parent?1:2}function Jl(t){return t.reduce(tc,0)/t.length}function tc(t,n){return t+n.x}function nc(t){return 1+t.reduce(ec,0)}function ec(t,n){return Math.max(t,n.y)}function rc(t){for(var n;n=t.children;)t=n[0];return t}function ic(t){for(var n;n=t.children;)t=n[n.length-1];return t}function oc(){function t(t){var o,a=0;t.eachAfter(function(t){var e=t.children;e?(t.x=Jl(e),t.y=nc(e)):(t.x=o?a+=n(t,o):0,t.y=0,o=t)});var u=rc(t),l=ic(t),c=u.x-n(u,l)/2,s=l.x+n(l,u)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-c)/(s-c)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=Zl,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t}function ac(t){var n,e,r,i,o=this,a=[o];do{for(n=a.reverse(),a=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r=0;--e)i.push(n[e]);return this}function lc(t){for(var n,e,r,i=this,o=[i],a=[];i=o.pop();)if(a.push(i),n=i.children)for(e=0,r=n.length;e=0;)e+=r[i].value;n.value=e})}function sc(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})}function fc(t){for(var n=this,e=hc(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r}function hc(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}function pc(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n}function dc(){var t=[];return this.each(function(n){t.push(n)}),t}function vc(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t}function yc(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n}function gc(t,n){var e,r,i,o,a,u=new wc(t),l=+t.value&&(u.value=t.value),c=[u];for(null==n&&(n=_c);e=c.pop();)if(l&&(e.value=+e.data.value),(i=n(e.data))&&(a=i.length))for(e.children=new Array(a),o=a-1;o>=0;--o)c.push(r=e.children[o]=new wc(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(xc)}function mc(){return gc(this).eachBefore(bc)}function _c(t){return t.children}function bc(t){t.data=t.data.data}function xc(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function wc(t){this.data=t,this.depth=this.height=0,this.parent=null}function Mc(t){this._=t,this.next=null}function kc(t){for(var n=(t=t.slice()).length,e=null,r=e;n;){var i=new Mc(t[n-1]);r=r?r.next=i:e=i,t[void 0]=t[--n]}return{head:e,tail:r}}function Cc(t){return Tc(kc(t),[])}function Ec(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r-n.r;return i*i+1e-6>e*e+r*r}function Tc(t,n){var e,r,i,o=null,a=t.head;switch(n.length){case 1:e=Sc(n[0]);break;case 2:e=Nc(n[0],n[1]);break;case 3:e=Ac(n[0],n[1],n[2])}for(;a;)i=a._,r=a.next,e&&Ec(e,i)?o=a:(o?(t.tail=o,o.next=null):t.head=t.tail=null,n.push(i),e=Tc(t,n),n.pop(),t.head?(a.next=t.head,t.head=a):(a.next=null,t.head=t.tail=a),o=t.tail,o.next=r),a=r;return t.tail=o,e}function Sc(t){return{x:t.x,y:t.y,r:t.r}}function Nc(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,a=n.y,u=n.r,l=o-e,c=a-r,s=u-i,f=Math.sqrt(l*l+c*c);return{x:(e+o+l/f*s)/2,y:(r+a+c/f*s)/2,r:(f+i+u)/2}}function Ac(t,n,e){var r=t.x,i=t.y,o=t.r,a=n.x,u=n.y,l=n.r,c=e.x,s=e.y,f=e.r,h=2*(r-a),p=2*(i-u),d=2*(l-o),v=r*r+i*i-o*o-a*a-u*u+l*l,y=2*(r-c),g=2*(i-s),m=2*(f-o),_=r*r+i*i-o*o-c*c-s*s+f*f,b=y*p-h*g,x=(p*_-g*v)/b-r,w=(g*d-p*m)/b,M=(y*v-h*_)/b-i,k=(h*m-y*d)/b,C=w*w+k*k-1,E=2*(x*w+M*k+o),T=x*x+M*M-o*o,S=(-E-Math.sqrt(E*E-4*C*T))/(2*C);return{x:x+w*S+r,y:M+k*S+i,r:S}}function Pc(t,n,e){var r=t.x,i=t.y,o=n.r+e.r,a=t.r+e.r,u=n.x-r,l=n.y-i,c=u*u+l*l;if(c){var s=.5+((a*=a)-(o*=o))/(2*c),f=Math.sqrt(Math.max(0,2*o*(a+c)-(a-=c)*a-o*o))/(2*c);e.x=r+s*u+f*l,e.y=i+s*l-f*u}else e.x=r+a,e.y=i}function Oc(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r+n.r;return i*i>e*e+r*r}function Ic(t,n,e){var r=t.x-n,i=t.y-e;return r*r+i*i}function Rc(t){this._=t,this.next=null,this.previous=null}function Dc(t){if(!(i=t.length))return 0;var n,e,r,i;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;Pc(e,n,r=t[2]);var o,a,u,l,c,s,f,h=n.r*n.r,p=e.r*e.r,d=r.r*r.r,v=h+p+d,y=h*n.x+p*e.x+d*r.x,g=h*n.y+p*e.y+d*r.y;n=new Rc(n),e=new Rc(e),r=new Rc(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(u=3;u0)throw new Error("cycle");return o}var n=Xc,e=Gc;return t.id=function(e){return arguments.length?(n=zc(e),t):n},t.parentId=function(n){return arguments.length?(e=zc(n),t):e},t}function Zc(t,n){return t.parent===n.parent?1:2}function Jc(t){var n=t.children;return n?n[0]:t.t}function ts(t){var n=t.children;return n?n[n.length-1]:t.t}function ns(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function es(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)n=i[o],n.z+=e,n.m+=e,e+=n.s+(r+=n.c)}function rs(t,n,e){return t.a.parent===n.parent?t.a:e}function is(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function os(t){for(var n,e,r,i,o,a=new is(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new is(r[i],i)),e.parent=n;return(a.parent=new is(null,0)).children=[a],a}function as(){function t(t){var r=os(t);if(r.eachAfter(n),r.parent.m=-r.z,r.eachBefore(e),l)t.eachBefore(i);else{var c=t,s=t,f=t;t.eachBefore(function(t){t.xs.x&&(s=t),t.depth>f.depth&&(f=t)});var h=c===s?1:o(c,s)/2,p=h-c.x,d=a/(s.x+h+p),v=u/(f.depth||1);t.eachBefore(function(t){t.x=(t.x+p)*d,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,i=t.i?e[t.i-1]:null;if(n){es(t);var a=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+o(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+o(t._,i._));t.parent.A=r(t,i,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t,n,e){if(n){for(var r,i=t,a=t,u=n,l=i.parent.children[0],c=i.m,s=a.m,f=u.m,h=l.m;u=ts(u),i=Jc(i),u&&i;)l=Jc(l),a=ts(a),a.a=t,r=u.z+f-i.z-c+o(u._,i._),r>0&&(ns(rs(u,t,e),t,r),c+=r,s+=r),f+=u.m,c+=i.m,h+=l.m,s+=a.m;u&&!ts(a)&&(a.t=u,a.m+=f-s),i&&!Jc(l)&&(l.t=i,l.m+=c-h,e=t)}return e}function i(t){t.x*=a,t.y=t.depth*u}var o=Zc,a=1,u=1,l=null;return t.separation=function(n){return arguments.length?(o=n,t):o},t.size=function(n){return arguments.length?(l=!1,a=+n[0],u=+n[1],t):l?null:[a,u]},t.nodeSize=function(n){return arguments.length?(l=!0,a=+n[0],u=+n[1],t):l?[a,u]:null},t}function us(t,n,e,r,i){for(var o,a=t.children,u=-1,l=a.length,c=t.value&&(i-e)/t.value;++up&&(p=u),g=f*f*y,(d=Math.max(p/g,g/h))>v){f-=u;break}v=d}m.push(a={value:f,dice:c=n-1){var c=l[t];return c.x0=r,c.y0=i,c.x1=a,c.y1=u,void 0}for(var f=s[t],h=e/2+f,p=t+1,d=n-1;p>>1;s[v]a-r){var m=(i*g+u*y)/e;o(t,p,y,r,i,a,m),o(p,n,g,r,m,a,u)}else{var _=(r*g+a*y)/e;o(t,p,y,r,i,_,u),o(p,n,g,_,i,a,u)}}var a,u,l=t.children,c=l.length,s=new Array(c+1);for(s[0]=u=a=0;ac+d||is+d||an){var v=c-u.x-u.vx,y=s-u.y-u.vy,g=v*v+y*y;gt.r&&(t.r=t[n].r)}var r,i,o=1,a=1;return"function"!==typeof t&&(t=ps(null==t?1:+t)),n.initialize=function(n){var e,o=(r=n).length;for(i=new Array(o),e=0;e1?(null==n?f.remove(t):f.set(t,i(n)),o):f.get(t)},find:function(n,e,r){var i,o,a,u,l,c=0,s=t.length;for(null==r?r=1/0:r*=r,c=0;c1?(p.on(t,n),o):p.on(t)}}}function Ms(){function t(t){var n,u=i.length,l=qt(i,bs,xs).visitAfter(e);for(a=t,n=0;n=s)){(t.data!==o||t.next)&&(0===i&&(i=ds(),p+=i*i),0===l&&(l=ds(),p+=l*l),p0)){if(o/=d,d<0){if(o0){if(o>p)return;o>h&&(h=o)}if(o=r-l,d||!(o<0)){if(o/=d,d<0){if(o>p)return;o>h&&(h=o)}else if(d>0){if(o0)){if(o/=v,v<0){if(o0){if(o>p)return;o>h&&(h=o)}if(o=i-c,v||!(o<0)){if(o/=v,v<0){if(o>p)return;o>h&&(h=o)}else if(v>0){if(o0||p<1)||(h>0&&(t[0]=[l+h*d,c+h*v]),p<1&&(t[1]=[l+p*d,c+p*v]),!0)}}}}}function $s(t,n,e,r,i){var o=t[1];if(o)return!0;var a,u,l=t[0],c=t.left,s=t.right,f=c[0],h=c[1],p=s[0],d=s[1],v=(f+p)/2,y=(h+d)/2;if(d===h){if(v=r)return;if(f>p){if(l){if(l[1]>=i)return}else l=[v,e];o=[v,i]}else{if(l){if(l[1]1)if(f>p){if(l){if(l[1]>=i)return}else l=[(e-u)/a,e];o=[(i-u)/a,i]}else{if(l){if(l[1]=r)return}else l=[n,a*n+u];o=[r,a*r+u]}else{if(l){if(l[0]H_||Math.abs(i[0][1]-i[1][1])>H_)||delete U_[o]}function Gs(t){return D_[t.index]={site:t,halfedges:[]}}function Qs(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function Zs(t,n){return n[+(n.left!==t.site)]}function Js(t,n){return n[+(n.left===t.site)]}function tf(){for(var t,n,e,r,i=0,o=D_.length;iH_||Math.abs(v-h)>H_)&&(l.splice(u,0,U_.push(Ws(a,p,Math.abs(d-t)H_?[t,Math.abs(f-t)H_?[Math.abs(h-r)H_?[e,Math.abs(f-e)H_?[Math.abs(h-n)=-j_)){var p=l*l+c*c,d=s*s+f*f,v=(f*p-c*d)/h,y=(l*d-s*p)/h,g=z_.pop()||new ef;g.arc=t,g.site=i,g.x=v+a,g.y=(g.cy=y+u)+Math.sqrt(v*v+y*y),t.circle=g;for(var m=null,_=L_._;_;)if(g.y<_.y||g.y===_.y&&g.x<=_.x){if(!_.L){m=_.P;break}_=_.L}else{if(!_.R){m=_;break}_=_.R}L_.insert(m,g),m||(I_=g)}}}}function of(t){var n=t.circle;n&&(n.P||(I_=n.N),L_.remove(n),z_.push(n),Hs(n),t.circle=null)}function af(){Hs(this),this.edge=this.site=this.circle=null}function uf(t){var n=F_.pop()||new af;return n.site=t,n}function lf(t){of(t),R_.remove(t),F_.push(t),Hs(t)}function cf(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,a=t.N,u=[t];lf(t);for(var l=o;l.circle&&Math.abs(e-l.circle.x)H_)u=u.L;else{if(!((i=o-hf(u,a))>H_)){r>-H_?(n=u.P,e=u):i>-H_?(n=u,e=u.N):n=e=u;break}if(!u.R){n=u;break}u=u.R}Gs(t);var l=uf(t);if(R_.insert(n,l),n||e){if(n===e)return of(n),e=uf(n.site),R_.insert(l,e),l.edge=e.edge=Vs(n.site,l.site),rf(n),void rf(e);if(!e)return void(l.edge=Vs(n.site,l.site));of(n),of(e);var c=n.site,s=c[0],f=c[1],h=t[0]-s,p=t[1]-f,d=e.site,v=d[0]-s,y=d[1]-f,g=2*(h*y-p*v),m=h*h+p*p,_=v*v+y*y,b=[(y*m-p*_)/g+s,(h*_-v*m)/g+f];Ys(e.edge,c,d,b),l.edge=Vs(c,t,null,b),e.edge=Vs(t,d,null,b),rf(n),rf(e)}}function ff(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var a=t.P;if(!a)return-1/0;e=a.site;var u=e[0],l=e[1],c=l-n;if(!c)return u;var s=u-r,f=1/o-1/c,h=s/c;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*c)-l+c/2+i-o/2)))/f+r:(r+u)/2}function hf(t,n){var e=t.N;if(e)return ff(e,n);var r=t.site;return r[1]===n?r[0]:1/0}function pf(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function df(t,n){return n[1]-t[1]||n[0]-t[0]}function vf(t,n){var e,r,i,o=t.sort(df).pop();for(U_=[],D_=new Array(t.length),R_=new Fs,L_=new Fs;;)if(i=I_,o&&(!i||o[1]0?Du(this).transition().duration(C).call(a,s,u):Du(this).call(n.transform,s)}}function h(){if(g.apply(this,arguments)){var n,e,r,i=u(this,arguments),o=t.event.changedTouches,a=o.length;for(xf(),n=0;nMath.abs(t[1]-z[1])?M=!0:w=!0),z=t,x=!0,Af(),o()}function o(){var t;switch(_=z[0]-U[0],b=z[1]-U[1],E){case V_:case q_:T&&(_=Math.max(O-f,Math.min(R-v,_)),h=f+_,y=v+_),S&&(b=Math.max(I-p,Math.min(D-g,b)),d=p+b,m=g+b);break;case W_:T<0?(_=Math.max(O-f,Math.min(R-f,_)),h=f+_,y=v):T>0&&(_=Math.max(O-v,Math.min(R-v,_)),h=f,y=v+_),S<0?(b=Math.max(I-p,Math.min(D-p,b)),d=p+b,m=g):S>0&&(b=Math.max(I-g,Math.min(D-g,b)),d=p,m=g+b);break;case Y_:T&&(h=Math.max(O,Math.min(R,f-_*T)),y=Math.max(O,Math.min(R,v+_*T))),S&&(d=Math.max(I,Math.min(D,p-b*S)),m=Math.max(I,Math.min(D,g+b*S)))}y0&&(f=h-_),S<0?g=m-b:S>0&&(p=d-b),E=V_,j.attr("cursor",G_.selection),o());break;default:return}Af()}function c(){switch(t.event.keyCode){case 16:L&&(w=M=L=!1,o());break;case 18:E===Y_&&(T<0?v=y:T>0&&(f=h),S<0?g=m:S>0&&(p=d),E=W_,o());break;case 32:E===V_&&(t.event.altKey?(T&&(v=y-_*T,f=h+_*T),S&&(g=m-b*S,p=d+b*S),E=Y_):(T<0?v=y:T>0&&(f=h),S<0?g=m:S>0&&(p=d),E=W_),j.attr("cursor",G_[C]),o());break;default:return}Af()}if(t.event.touches){if(t.event.changedTouches.length1?0:t<-1?Bb:Math.acos(t)}function th(t){return t>1?qb:t<-1?-qb:Math.asin(t)}function nh(t){return(t=ex(t/2))*t}function eh(){}function rh(t,n){t&&ux.hasOwnProperty(t.type)&&ux[t.type](t,n)}function ih(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i=0?1:-1,i=r*e,o=Qb(n),a=ex(n),u=hb*a,l=fb*o+u*Qb(i),c=u*r*ex(i);lx.add(Gb(c,l)),sb=t,fb=o,hb=a}function fh(t){return cx.reset(),ah(t,sx),2*cx}function hh(t){return[Gb(t[1],t[0]),th(t[2])]}function ph(t){var n=t[0],e=t[1],r=Qb(e);return[r*Qb(n),r*ex(n),ex(e)]}function dh(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function vh(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function yh(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function gh(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function mh(t){var n=ix(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function _h(t,n){xb.push(wb=[pb=t,vb=t]),nyb&&(yb=n)}function bh(t,n){var e=ph([t*Kb,n*Kb]);if(bb){var r=vh(bb,e),i=[r[1],-r[0],0],o=vh(i,r);mh(o),o=hh(o);var a,u=t-gb,l=u>0?1:-1,c=o[0]*Yb*l,s=$b(u)>180;s^(l*gbyb&&(yb=a):(c=(c+360)%360-180,s^(l*gbyb&&(yb=n))),s?tEh(pb,vb)&&(vb=t):Eh(t,vb)>Eh(pb,vb)&&(pb=t):vb>=pb?(tvb&&(vb=t)):t>gb?Eh(pb,t)>Eh(pb,vb)&&(vb=t):Eh(t,vb)>Eh(pb,vb)&&(pb=t)}else _h(t,n);bb=e,gb=t}function xh(){hx.point=bh}function wh(){wb[0]=pb,wb[1]=vb,hx.point=_h,bb=null}function Mh(t,n){if(bb){var e=t-gb;fx.add($b(e)>180?e+(e>0?360:-360):e)}else mb=t,_b=n;sx.point(t,n),bh(t,n)}function kh(){sx.lineStart()}function Ch(){Mh(mb,_b),sx.lineEnd(),$b(fx)>Hb&&(pb=-(vb=180)),wb[0]=pb,wb[1]=vb,bb=null}function Eh(t,n){return(n-=t)<0?n+360:n}function Th(t,n){return t[0]-n[0]}function Sh(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nEh(r[0],r[1])&&(r[1]=i[1]),Eh(i[0],r[1])>Eh(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,e=o.length-1,n=0,r=o[e];n<=e;r=i,++n)i=o[n],(u=Eh(r[1],i[0]))>a&&(a=u,pb=i[0],vb=r[1])}return xb=wb=null,pb===1/0||db===1/0?[[NaN,NaN],[NaN,NaN]]:[[pb,db],[vb,yb]]}function Ah(t,n){t*=Kb,n*=Kb;var e=Qb(n);Ph(e*Qb(t),e*ex(t),ex(n))}function Ph(t,n,e){++Mb,Cb+=(t-Cb)/Mb,Eb+=(n-Eb)/Mb,Tb+=(e-Tb)/Mb}function Oh(){px.point=Ih}function Ih(t,n){t*=Kb,n*=Kb;var e=Qb(n);Lb=e*Qb(t),Ub=e*ex(t),zb=ex(n),px.point=Rh,Ph(Lb,Ub,zb)}function Rh(t,n){t*=Kb,n*=Kb;var e=Qb(n),r=e*Qb(t),i=e*ex(t),o=ex(n),a=Gb(ix((a=Ub*o-zb*i)*a+(a=zb*r-Lb*o)*a+(a=Lb*i-Ub*r)*a),Lb*r+Ub*i+zb*o);kb+=a,Sb+=a*(Lb+(Lb=r)),Nb+=a*(Ub+(Ub=i)),Ab+=a*(zb+(zb=o)),Ph(Lb,Ub,zb)}function Dh(){px.point=Ah}function Lh(){px.point=zh}function Uh(){Fh(Rb,Db),px.point=Ah}function zh(t,n){Rb=t,Db=n,t*=Kb,n*=Kb,px.point=Fh;var e=Qb(n);Lb=e*Qb(t),Ub=e*ex(t),zb=ex(n),Ph(Lb,Ub,zb)}function Fh(t,n){t*=Kb,n*=Kb;var e=Qb(n),r=e*Qb(t),i=e*ex(t),o=ex(n),a=Ub*o-zb*i,u=zb*r-Lb*o,l=Lb*i-Ub*r,c=ix(a*a+u*u+l*l),s=Lb*r+Ub*i+zb*o,f=c&&-Jf(s)/c,h=Gb(c,s);Pb+=f*a,Ob+=f*u,Ib+=f*l,kb+=h,Sb+=h*(Lb+(Lb=r)),Nb+=h*(Ub+(Ub=i)),Ab+=h*(zb+(zb=o)),Ph(Lb,Ub,zb)}function Hh(t){Mb=kb=Cb=Eb=Tb=Sb=Nb=Ab=Pb=Ob=Ib=0,ah(t,px);var n=Pb,e=Ob,r=Ib,i=n*n+e*e+r*r;return iBb?t-Wb:t<-Bb?t+Wb:t,n]}function Vh(t,n,e){return(t%=Wb)?n||e?Bh(Yh(t),Kh(n,e)):Yh(t):n||e?Kh(n,e):qh}function Wh(t){return function(n,e){return n+=t,[n>Bb?n-Wb:n<-Bb?n+Wb:n,e]}}function Yh(t){var n=Wh(t);return n.invert=Wh(-t),n}function Kh(t,n){function e(t,n){var e=Qb(n),u=Qb(t)*e,l=ex(t)*e,c=ex(n),s=c*r+u*i;return[Gb(l*o-s*a,u*r-c*i),th(s*o+l*a)]}var r=Qb(t),i=ex(t),o=Qb(n),a=ex(n);return e.invert=function(t,n){var e=Qb(n),u=Qb(t)*e,l=ex(t)*e,c=ex(n),s=c*o-l*a;return[Gb(l*o+c*a,u*r+s*i),th(s*r-u*i)]},e}function $h(t){function n(n){return n=t(n[0]*Kb,n[1]*Kb),n[0]*=Yb,n[1]*=Yb,n}return t=Vh(t[0]*Kb,t[1]*Kb,t.length>2?t[2]*Kb:0),n.invert=function(n){return n=t.invert(n[0]*Kb,n[1]*Kb),n[0]*=Yb,n[1]*=Yb,n},n}function Xh(t,n,e,r,i,o){if(e){var a=Qb(n),u=ex(n),l=r*e;null==i?(i=n+r*Wb,o=n-l/2):(i=Gh(a,i),o=Gh(a,o),(r>0?io)&&(i+=r*Wb));for(var c,s=i;r>0?s>o:s1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function Jh(t,n,e,r,i,o){var a,u=t[0],l=t[1],c=n[0],s=n[1],f=0,h=1,p=c-u,d=s-l;if(a=e-u,p||!(a>0)){if(a/=p,p<0){if(a0){if(a>h)return;a>f&&(f=a)}if(a=i-u,p||!(a<0)){if(a/=p,p<0){if(a>h)return;a>f&&(f=a)}else if(p>0){if(a0)){if(a/=d,d<0){if(a0){if(a>h)return;a>f&&(f=a)}if(a=o-l,d||!(a<0)){if(a/=d,d<0){if(a>h)return;a>f&&(f=a)}else if(d>0){if(a0&&(t[0]=u+f*p,t[1]=l+f*d),h<1&&(n[0]=u+h*p,n[1]=l+h*d),!0}}}}}function tp(t,n){return $b(t[0]-n[0])=0;--o)i.point((s=c[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}h=h.o,c=h.z,p=!p}while(!h.v);i.lineEnd()}}}function rp(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r0)do{c.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==f);else c.point(o[0],o[1])}function a(r,i){return $b(r[0]-t)0?0:3:$b(r[0]-e)0?2:1:$b(r[1]-n)0?1:0:i>0?3:2}function u(t,n){return l(t.x,n.x)}function l(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){function l(t,n){i(t,n)&&T.point(t,n)}function c(){for(var n=0,e=0,i=y.length;er&&(f-o)*(r-a)>(h-a)*(t-o)&&++n:h<=r&&(f-o)*(r-a)<(h-a)*(t-o)&&--n;return n}function s(){T=S,v=[],y=[],E=!0}function f(){var t=c(),n=E&&t,e=(v=w(v)).length;(n||e)&&(a.polygonStart(),n&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),e&&ep(v,u,t,o,a),a.polygonEnd()),T=a,v=y=g=null}function h(){N.point=d,y&&y.push(g=[]),C=!0,k=!1,x=M=NaN}function p(){v&&(d(m,_),b&&k&&S.rejoin(),v.push(S.result())),N.point=l,k&&T.lineEnd()}function d(o,a){var u=i(o,a);if(y&&g.push([o,a]),C)m=o,_=a,b=u,C=!1,u&&(T.lineStart(),T.point(o,a));else if(u&&k)T.point(o,a);else{var l=[x=Math.max(Ex,Math.min(Cx,x)),M=Math.max(Ex,Math.min(Cx,M))],c=[o=Math.max(Ex,Math.min(Cx,o)),a=Math.max(Ex,Math.min(Cx,a))];Jh(l,c,t,n,e,r)?(k||(T.lineStart(),T.point(l[0],l[1])),T.point(c[0],c[1]),u||T.lineEnd(),E=!1):u&&(T.lineStart(),T.point(o,a),E=!1)}x=o,M=a,k=u}var v,y,g,m,_,b,x,M,k,C,E,T=a,S=Zh(),N={point:l,lineStart:h,lineEnd:p,polygonStart:s,polygonEnd:f};return N}}function op(){var t,n,e,r=0,i=0,o=960,a=500;return e={stream:function(e){return t&&n===e?t:t=ip(r,i,o,a)(n=e)},extent:function(u){return arguments.length?(r=+u[0][0],i=+u[0][1],o=+u[1][0],a=+u[1][1],t=n=null,e):[[r,i],[o,a]]}}}function ap(){Sx.point=lp,Sx.lineEnd=up}function up(){Sx.point=Sx.lineEnd=eh}function lp(t,n){t*=Kb,n*=Kb,dx=t,vx=ex(n),yx=Qb(n),Sx.point=cp}function cp(t,n){t*=Kb,n*=Kb;var e=ex(n),r=Qb(n),i=$b(t-dx),o=Qb(i),a=ex(i),u=r*a,l=yx*e-vx*r*o,c=vx*e+yx*r*o;Tx.add(Gb(ix(u*u+l*l),c)),dx=t,vx=e,yx=r}function sp(t){return Tx.reset(),ah(t,Sx),+Tx}function fp(t,n){return Nx[0]=t,Nx[1]=n,sp(Ax)}function hp(t,n,e){var r=f(t,n-Hb,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function pp(t,n,e){var r=f(t,n-Hb,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function dp(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return f(Zb(o/g)*g,i,g).map(p).concat(f(Zb(c/m)*m,l,m).map(d)).concat(f(Zb(r/v)*v,e,v).filter(function(t){return $b(t%g)>Hb}).map(s)).concat(f(Zb(u/y)*y,a,y).filter(function(t){return $b(t%m)>Hb}).map(h))}var e,r,i,o,a,u,l,c,s,h,p,d,v=10,y=v,g=90,m=360,_=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[p(o).concat(d(l).slice(1),p(i).reverse().slice(1),d(c).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],c=+n[0][1],l=+n[1][1],o>i&&(n=o,o=i,i=n),c>l&&(n=c,c=l,l=n),t.precision(_)):[[o,c],[i,l]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],u=+n[0][1],a=+n[1][1],r>e&&(n=r,r=e,e=n),u>a&&(n=u,u=a,a=n),t.precision(_)):[[r,u],[e,a]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(g=+n[0],m=+n[1],t):[g,m]},t.stepMinor=function(n){return arguments.length?(v=+n[0],y=+n[1],t):[v,y]},t.precision=function(n){return arguments.length?(_=+n,s=hp(u,a,90),h=pp(r,e,_),p=hp(c,l,90),d=pp(o,i,_),t):_},t.extentMajor([[-180,-90+Hb],[180,90-Hb]]).extentMinor([[-180,-80-Hb],[180,80+Hb]])}function vp(t,n){var e=t[0]*Kb,r=t[1]*Kb,i=n[0]*Kb,o=n[1]*Kb,a=Qb(r),u=ex(r),l=Qb(o),c=ex(o),s=a*Qb(e),f=a*ex(e),h=l*Qb(i),p=l*ex(i),d=2*th(ix(nh(o-r)+a*l*nh(i-e))),v=ex(d),y=d?function(t){var n=ex(t*=d)/v,e=ex(d-t)/v,r=e*s+n*h,i=e*f+n*p,o=e*u+n*c;return[Gb(i,r)*Yb,Gb(o,ix(r*r+i*i))*Yb]}:function(){return[e*Yb,r*Yb]};return y.distance=d,y}function yp(t){return t}function gp(){Ix.point=mp}function mp(t,n){Ix.point=_p,gx=_x=t,mx=bx=n}function _p(t,n){Ox.add(bx*t-_x*n),_x=t,bx=n}function bp(){_p(gx,mx)}function xp(t,n){tLx&&(Lx=t),nUx&&(Ux=n)}function wp(t,n){Fx+=t,Hx+=n,++jx}function Mp(){$x.point=kp}function kp(t,n){$x.point=Cp,wp(Mx=t,kx=n)}function Cp(t,n){var e=t-Mx,r=n-kx,i=ix(e*e+r*r);Bx+=i*(Mx+t)/2,qx+=i*(kx+n)/2,Vx+=i,wp(Mx=t,kx=n)}function Ep(){$x.point=wp}function Tp(){$x.point=Np}function Sp(){Ap(xx,wx)}function Np(t,n){$x.point=Ap,wp(xx=Mx=t,wx=kx=n)}function Ap(t,n){var e=t-Mx,r=n-kx,i=ix(e*e+r*r);Bx+=i*(Mx+t)/2,qx+=i*(kx+n)/2,Vx+=i,i=kx*t-Mx*n,Wx+=i*(Mx+t),Yx+=i*(kx+n),Kx+=3*i,wp(Mx=t,kx=n)}function Pp(t){function n(n,e){t.moveTo(n+a,e),t.arc(n,e,a,0,Wb)}function e(n,e){t.moveTo(n,e),u.point=r}function r(n,e){t.lineTo(n,e)}function i(){u.point=n}function o(){t.closePath()}var a=4.5,u={point:n,lineStart:function(){u.point=e},lineEnd:i,polygonStart:function(){u.lineEnd=o},polygonEnd:function(){u.lineEnd=i,u.point=n},pointRadius:function(t){return a=t,u},result:eh};return u}function Op(){function t(t,n){u.push("M",t,",",n,a)}function n(t,n){u.push("M",t,",",n),l.point=e}function e(t,n){u.push("L",t,",",n)}function r(){l.point=n}function i(){l.point=t}function o(){u.push("Z")}var a=Ip(4.5),u=[],l={point:t,lineStart:r,lineEnd:i,polygonStart:function(){l.lineEnd=o},polygonEnd:function(){l.lineEnd=i,l.point=t},pointRadius:function(t){return a=Ip(t),l},result:function(){if(u.length){var t=u.join("");return u=[],t}}};return l}function Ip(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Rp(){function t(t){return t&&("function"===typeof o&&i.pointRadius(+o.apply(this,arguments)),ah(t,e(i))),i.result()}var n,e,r,i,o=4.5;return t.area=function(t){return ah(t,e(Ix)),Ix.result()},t.bounds=function(t){return ah(t,e(zx)),zx.result()},t.centroid=function(t){return ah(t,e($x)),$x.result()},t.projection=function(r){return arguments.length?(e=null==(n=r)?yp:r.stream,t):n},t.context=function(n){return arguments.length?(i=null==(r=n)?new Op:new Pp(n),"function"!==typeof o&&i.pointRadius(o),t):r},t.pointRadius=function(n){return arguments.length?(o="function"===typeof n?n:(i.pointRadius(+n),+n),t):o},t.projection(null).context(null)}function Dp(t,n){var e=n[0],r=n[1],i=[ex(e),-Qb(e),0],o=0,a=0;Xx.reset();for(var u=0,l=t.length;u=0?1:-1,k=M*w,C=k>Bb,E=d*b;if(Xx.add(Gb(E*M*ex(k),v*x+E*Qb(k))),o+=C?w+M*Wb:w,C^h>=e^m>=e){var T=vh(ph(f),ph(g));mh(T);var S=vh(i,T);mh(S);var N=(C^w>=0?-1:1)*th(S[2]);(r>N||r===N&&(T[0]||T[1]))&&(a+=C^w>=0?1:-1)}}return(o<-Hb||o0){for(b||(o.polygonStart(),b=!0),o.lineStart(),t=0;t1&&2&i&&a.push(a.pop().concat(a.shift())),d.push(a.filter(Up))}var p,d,v,y=n(o),g=i.invert(r[0],r[1]),m=Zh(),_=n(m),b=!1,x={point:a,lineStart:l,lineEnd:c,polygonStart:function(){x.point=s,x.lineStart=f,x.lineEnd=h,d=[],p=[]},polygonEnd:function(){x.point=a,x.lineStart=l,x.lineEnd=c,d=w(d);var t=Dp(p,g);d.length?(b||(o.polygonStart(),b=!0),ep(d,zp,t,e,o)):t&&(b||(o.polygonStart(),b=!0),o.lineStart(),e(null,null,1,o),o.lineEnd()),b&&(o.polygonEnd(),b=!1),d=p=null},sphere:function(){o.polygonStart(),o.lineStart(),e(null,null,1,o),o.lineEnd(),o.polygonEnd()}};return x}}function Up(t){return t.length>1}function zp(t,n){return((t=t.x)[0]<0?t[1]-qb-Hb:qb-t[1])-((n=n.x)[0]<0?n[1]-qb-Hb:qb-n[1])}function Fp(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?Bb:-Bb,l=$b(o-e);$b(l-Bb)0?qb:-qb),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&l>=Bb&&($b(e-i)Hb?Xb((ex(n)*(o=Qb(r))*ex(e)-ex(r)*(i=Qb(n))*ex(t))/(i*o*a)):(n+r)/2}function jp(t,n,e,r){var i;if(null==t)i=e*qb,r.point(-Bb,i),r.point(0,i),r.point(Bb,i),r.point(Bb,0),r.point(Bb,-i),r.point(0,-i),r.point(-Bb,-i),r.point(-Bb,0),r.point(-Bb,i);else if($b(t[0]-n[0])>Hb){var o=t[0]u}function i(t){var n,e,i,u,s;return{lineStart:function(){u=i=!1,s=1},point:function(f,h){var p,d=[f,h],v=r(f,h),y=l?v?0:a(f,h):v?a(f+(f<0?Bb:-Bb),h):0;if(!n&&(u=i=v)&&t.lineStart(),v!==i&&(p=o(n,d),(tp(n,p)||tp(d,p))&&(d[0]+=Hb,d[1]+=Hb,v=r(d[0],d[1]))),v!==i)s=0,v?(t.lineStart(),p=o(d,n),t.point(p[0],p[1])):(p=o(n,d),t.point(p[0],p[1]),t.lineEnd()),n=p;else if(c&&n&&l^v){var g;y&e||!(g=o(d,n,!0))||(s=0,l?(t.lineStart(),t.point(g[0][0],g[0][1]),t.point(g[1][0],g[1][1]),t.lineEnd()):(t.point(g[1][0],g[1][1]),t.lineEnd(),t.lineStart(),t.point(g[0][0],g[0][1])))}!v||n&&tp(n,d)||t.point(d[0],d[1]),n=d,i=v,e=y},lineEnd:function(){i&&t.lineEnd(),n=null},clean:function(){return s|(u&&i)<<1}}}function o(t,n,e){var r=ph(t),i=ph(n),o=[1,0,0],a=vh(r,i),l=dh(a,a),c=a[0],s=l-c*c;if(!s)return!e&&t;var f=u*l/s,h=-u*c/s,p=vh(o,a),d=gh(o,f);yh(d,gh(a,h));var v=p,y=dh(d,v),g=dh(v,v),m=y*y-g*(dh(d,d)-1);if(!(m<0)){var _=ix(m),b=gh(v,(-y-_)/g);if(yh(b,d),b=hh(b),!e)return b;var x,w=t[0],M=n[0],k=t[1],C=n[1];M0^b[1]<($b(b[0]-w)Bb^(w<=b[0]&&b[0]<=M)){var N=gh(v,(-y+_)/g);return yh(N,d),[b,hh(N)]}}}function a(n,e){var r=l?t:Bb-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var u=Qb(t),l=u>0,c=$b(u)>Hb;return Lp(r,i,e,l?[0,-t]:[-Bb,t-Bb])}function qp(t){return{stream:Vp(t)}}function Vp(t){function n(){}var e=n.prototype=Object.create(Wp.prototype);for(var r in t)e[r]=t[r];return function(t){var e=new n;return e.stream=t,e}}function Wp(){}function Yp(t,n,e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),null!=o&&t.clipExtent(null),ah(e,t.stream(zx));var a=zx.result(),u=Math.min(r/(a[1][0]-a[0][0]),i/(a[1][1]-a[0][1])),l=+n[0][0]+(r-u*(a[1][0]+a[0][0]))/2,c=+n[0][1]+(i-u*(a[1][1]+a[0][1]))/2;return null!=o&&t.clipExtent(o),t.scale(150*u).translate([l,c])}function Kp(t){return function(n,e){return Yp(t,[[0,0],n],e)}}function $p(t){return function(n,e){return Yp(t,n,e)}}function Xp(t,n){return+n?Qp(t,n):Gp(t)}function Gp(t){return Vp({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}function Qp(t,n){function e(r,i,o,a,u,l,c,s,f,h,p,d,v,y){var g=c-r,m=s-i,_=g*g+m*m;if(_>4*n&&v--){var b=a+h,x=u+p,w=l+d,M=ix(b*b+x*x+w*w),k=th(w/=M),C=$b($b(w)-1)n||$b((g*N+m*A)/_-.5)>.3||a*h+u*p+l*d2?t[2]%360*Kb:0,i()):[x*Yb,w*Yb,M*Yb]},n.precision=function(t){return arguments.length?(N=Xp(r,S=t*t),o()):ix(S)},n.fitExtent=$p(n),n.fitSize=Kp(n),function(){return a=t.apply(this,arguments),n.invert=a.invert&&e,i()}}function td(t){var n=0,e=Bb/3,r=Jp(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Kb,e=t[1]*Kb):[n*Yb,e*Yb]},i}function nd(t,n){function e(t,n){var e=ix(o-2*i*ex(n))/i;return[e*ex(t*=i),a-e*Qb(t)]}var r=ex(t),i=(r+ex(n))/2,o=1+r*(2*i-r),a=ix(o)/i;return e.invert=function(t,n){var e=a-n;return[Gb(t,e)/i,th((o-(t*t+e*e)*i*i)/(2*i))]},e}function ed(){return td(nd).scale(155.424).center([0,33.6442])}function rd(){return ed().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function id(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i=.12&&i<.234&&r>=-.425&&r<-.214?l:i>=.166&&i<.234&&r>=-.214&&r<-.115?c:u).invert(t)},t.stream=function(t){return n&&e===t?n:n=id([u.stream(e=t),l.stream(t),c.stream(t)])},t.precision=function(n){return arguments.length?(u.precision(n),l.precision(n),c.precision(n),t):u.precision()},t.scale=function(n){return arguments.length?(u.scale(n),l.scale(.35*n),c.scale(n),t.translate(u.translate())):u.scale()},t.translate=function(n){if(!arguments.length)return u.translate();var e=u.scale(),a=+n[0],f=+n[1];return r=u.translate(n).clipExtent([[a-.455*e,f-.238*e],[a+.455*e,f+.238*e]]).stream(s),i=l.translate([a-.307*e,f+.201*e]).clipExtent([[a-.425*e+Hb,f+.12*e+Hb],[a-.214*e-Hb,f+.234*e-Hb]]).stream(s),o=c.translate([a-.205*e,f+.212*e]).clipExtent([[a-.214*e+Hb,f+.166*e+Hb],[a-.115*e-Hb,f+.234*e-Hb]]).stream(s),t},t.fitExtent=$p(t),t.fitSize=Kp(t),t.scale(1070)}function ad(t){return function(n,e){var r=Qb(n),i=Qb(e),o=t(r*i);return[o*i*ex(n),o*ex(e)]}}function ud(t){return function(n,e){var r=ix(n*n+e*e),i=t(r),o=ex(i),a=Qb(i);return[Gb(n*o,r*a),th(r&&e*o/r)]}}function ld(){return Zp(tw).scale(124.75).clipAngle(179.999)}function cd(){return Zp(nw).scale(79.4188).clipAngle(179.999)}function sd(t,n){return[t,tx(ox((qb+n)/2))]}function fd(){return hd(sd).scale(961/Wb)}function hd(t){var n,e=Zp(t),r=e.scale,i=e.translate,o=e.clipExtent;return e.scale=function(t){return arguments.length?(r(t),n&&e.clipExtent(null),e):r()},e.translate=function(t){return arguments.length?(i(t),n&&e.clipExtent(null),e):i()},e.clipExtent=function(t){if(!arguments.length)return n?null:o();if(n=null==t){var a=Bb*r(),u=i();t=[[u[0]-a,u[1]-a],[u[0]+a,u[1]+a]]}return o(t),e},e.clipExtent(null)}function pd(t){return ox((qb+t)/2)}function dd(t,n){function e(t,n){o>0?n<-qb+Hb&&(n=-qb+Hb):n>qb-Hb&&(n=qb-Hb);var e=o/nx(pd(n),i);return[e*ex(i*t),o-e*Qb(i*t)]}var r=Qb(t),i=t===n?ex(t):tx(r/Qb(n))/tx(pd(n)/pd(t)),o=r*nx(pd(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=rx(i)*ix(t*t+e*e);return[Gb(t,e)/i,2*Xb(nx(o/r,1/i))-qb]},e):sd}function vd(){return td(dd).scale(109.5).parallels([30,30])}function yd(t,n){return[t,n]}function gd(){return Zp(yd).scale(152.63)}function md(t,n){function e(t,n){var e=o-n,r=i*t;return[e*ex(r),o-e*Qb(r)]}var r=Qb(t),i=t===n?ex(t):(r-Qb(n))/(n-t),o=r/i+t;return $b(i)2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)}var Sd=e(n),Nd=Sd.right,Ad=Sd.left,Pd=Array.prototype,Od=Pd.slice,Id=Pd.map,Rd=Math.sqrt(50),Dd=Math.sqrt(10),Ld=Math.sqrt(2);O.prototype=I.prototype={constructor:O,has:function(t){return"$"+t in this},get:function(t){return this["$"+t]},set:function(t,n){return this["$"+t]=n,this},remove:function(t){var n="$"+t;return n in this&&delete this[n]},clear:function(){for(var t in this)"$"===t[0]&&delete this[t]},keys:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)"$"===n[0]&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)"$"===n[0]&&++t;return t},empty:function(){for(var t in this)if("$"===t[0])return!1;return!0},each:function(t){for(var n in this)"$"===n[0]&&t(this[n],n.slice(1),this)}};var Ud=I.prototype;F.prototype=H.prototype={constructor:F,has:Ud.has,add:function(t){return t+="",this["$"+t]=t,this},remove:Ud.remove,clear:Ud.clear,values:Ud.keys,size:Ud.size,empty:Ud.empty,each:Ud.each};var zd=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),Fd=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),Hd=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),jd=Math.PI,Bd=jd/2,qd=4/11,Vd=6/11,Wd=8/11,Yd=.75,Kd=9/11,$d=10/11,Xd=.9375,Gd=21/22,Qd=63/64,Zd=1/qd/qd,Jd=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(1.70158),tv=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(1.70158),nv=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(1.70158),ev=2*Math.PI,rv=function t(n,e){function r(t){return n*Math.pow(2,10*--t)*Math.sin((i-t)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=ev);return r.amplitude=function(n){return t(n,e*ev)},r.period=function(e){return t(n,e)},r}(1,.3),iv=function t(n,e){function r(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=ev);return r.amplitude=function(n){return t(n,e*ev)},r.period=function(e){return t(n,e)},r}(1,.3),ov=function t(n,e){function r(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((i-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((i+t)/e))/2}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=ev);return r.amplitude=function(n){return t(n,e*ev)},r.period=function(e){return t(n,e)},r}(1,.3),av=Math.PI,uv=2*av,lv=uv-1e-6;Mt.prototype=kt.prototype={constructor:Mt,moveTo:function(t,n){this._.push("M",this._x0=this._x1=+t,",",this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._.push("Z"))},lineTo:function(t,n){this._.push("L",this._x1=+t,",",this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._.push("Q",+t,",",+n,",",this._x1=+e,",",this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._.push("C",+t,",",+n,",",+e,",",+r,",",this._x1=+i,",",this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,a=this._y1,u=e-t,l=r-n,c=o-t,s=a-n,f=c*c+s*s;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._.push("M",this._x1=t,",",this._y1=n);else if(f>1e-6)if(Math.abs(s*u-l*c)>1e-6&&i){var h=e-o,p=r-a,d=u*u+l*l,v=h*h+p*p,y=Math.sqrt(d),g=Math.sqrt(f),m=i*Math.tan((av-Math.acos((d+f-v)/(2*y*g)))/2),_=m/g,b=m/y;Math.abs(_-1)>1e-6&&this._.push("L",t+_*c,",",n+_*s),this._.push("A",i,",",i,",0,0,",+(s*h>c*p),",",this._x1=t+b*u,",",this._y1=n+b*l)}else this._.push("L",this._x1=t,",",this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,e=+e;var a=e*Math.cos(r),u=e*Math.sin(r),l=t+a,c=n+u,s=1^o,f=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._.push("M",l,",",c):(Math.abs(this._x1-l)>1e-6||Math.abs(this._y1-c)>1e-6)&&this._.push("L",l,",",c),e&&(f>lv?this._.push("A",e,",",e,",0,1,",s,",",t-a,",",n-u,"A",e,",",e,",0,1,",s,",",this._x1=l,",",this._y1=c):(f<0&&(f=f%uv+uv),this._.push("A",e,",",e,",0,",+(f>=av),",",s,",",this._x1=t+e*Math.cos(i),",",this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._.push("M",this._x0=this._x1=+t,",",this._y0=this._y1=+n,"h",+e,"v",+r,"h",-e,"Z")},toString:function(){return this._.join("")}};var cv=qt.prototype=Vt.prototype;cv.copy=function(){var t,n,e=new Vt(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Wt(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Wt(n));return e},cv.add=Ct,cv.addAll=Tt,cv.cover=St,cv.data=Nt,cv.extent=At,cv.find=Ot,cv.remove=It,cv.removeAll=Rt,cv.root=Dt,cv.size=Lt,cv.visit=Ut,cv.visitAfter=zt,cv.x=Ht,cv.y=Bt;var sv=[].slice,fv={};Yt.prototype=Zt.prototype={constructor:Yt,defer:function(t){if("function"!==typeof t||this._call)throw new Error;if(null!=this._error)return this;var n=sv.call(arguments,1);return n.push(t),++this._waiting,this._tasks.push(n),Kt(this),this},abort:function(){return null==this._error&&Gt(this,new Error("abort")),this},await:function(t){if("function"!==typeof t||this._call)throw new Error;return this._call=function(n,e){t.apply(null,[n].concat(e))},Qt(this),this},awaitAll:function(t){if("function"!==typeof t||this._call)throw new Error;return this._call=t,Qt(this),this}};var hv=1e-12,pv=Math.PI,dv=pv/2,vv=2*pv;sn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var yv=bn(fn);_n.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var gv={draw:function(t,n){var e=Math.sqrt(n/pv);t.moveTo(e,0),t.arc(0,0,e,0,vv)}},mv={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},_v=Math.sqrt(1/3),bv=2*_v,xv={draw:function(t,n){var e=Math.sqrt(n/bv),r=e*_v;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},wv=Math.sin(pv/10)/Math.sin(7*pv/10),Mv=Math.sin(vv/10)*wv,kv=-Math.cos(vv/10)*wv,Cv={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Mv*e,i=kv*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var a=vv*o/5,u=Math.cos(a),l=Math.sin(a);t.lineTo(l*e,-u*e),t.lineTo(u*r-l*i,l*r+u*i)}t.closePath()}},Ev={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},Tv=Math.sqrt(3),Sv={draw:function(t,n){var e=-Math.sqrt(n/(3*Tv));t.moveTo(0,2*e),t.lineTo(-Tv*e,-e),t.lineTo(Tv*e,-e),t.closePath()}},Nv=-.5,Av=Math.sqrt(3)/2,Pv=1/Math.sqrt(12),Ov=3*(Pv/2+1),Iv={draw:function(t,n){var e=Math.sqrt(n/Ov),r=e/2,i=e*Pv,o=r,a=e*Pv+e,u=-o,l=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,l),t.lineTo(Nv*r-Av*i,Av*r+Nv*i),t.lineTo(Nv*o-Av*a,Av*o+Nv*a),t.lineTo(Nv*u-Av*l,Av*u+Nv*l),t.lineTo(Nv*r+Av*i,Nv*i-Av*r),t.lineTo(Nv*o+Av*a,Nv*a-Av*o),t.lineTo(Nv*u+Av*l,Nv*l-Av*u),t.closePath()}},Rv=[gv,mv,xv,Ev,Cv,Sv,Iv];Tn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:En(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:En(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Nn.prototype={areaStart:Cn,areaEnd:Cn,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:En(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Pn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:En(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},In.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,l=-1;++l<=e;)r=l/e,this._basis.point(this._beta*t[l]+(1-this._beta)*(i+r*a),this._beta*n[l]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var Dv=function t(n){function e(t){return 1===n?new Tn(t):new In(t,n)}return e.beta=function(n){return t(+n)},e}(.85);Dn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Rn(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Rn(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Lv=function t(n){function e(t){return new Dn(t,n)}return e.tension=function(n){return t(+n)},e}(0);Ln.prototype={areaStart:Cn,areaEnd:Cn,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Rn(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Uv=function t(n){function e(t){return new Ln(t,n)}return e.tension=function(n){return t(+n)},e}(0);Un.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Rn(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var zv=function t(n){function e(t){return new Un(t,n)}return e.tension=function(n){return t(+n)},e}(0);Fn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this,this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:zn(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Fv=function t(n){function e(t){return n?new Fn(t,n):new Dn(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Hn.prototype={areaStart:Cn,areaEnd:Cn,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:zn(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Hv=function t(n){function e(t){return n?new Hn(t,n):new Ln(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);jn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:zn(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var jv=function t(n){function e(t){return n?new jn(t,n):new Un(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Bn.prototype={areaStart:Cn,areaEnd:Cn,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}},$n.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Kn(this,this._t0,Yn(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,t!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,Kn(this,Yn(this,e=Wn(this,t,n)),e);break;default:Kn(this,this._t0,e=Wn(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(Xn.prototype=Object.create($n.prototype)).point=function(t,n){$n.prototype.point.call(this,n,t)},Gn.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},Jn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=te(t),i=te(n),o=0,a=1;a=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var Bv=Array.prototype.slice,qv=/^#([0-9a-f]{3})$/,Vv=/^#([0-9a-f]{6})$/,Wv=/^rgb\(\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*\)$/,Yv=/^rgb\(\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*\)$/,Kv=/^rgba\(\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/,$v=/^rgba\(\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/,Xv=/^hsl\(\s*([-+]?\d+(?:\.\d+)?)\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*\)$/,Gv=/^hsla\(\s*([-+]?\d+(?:\.\d+)?)\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/,Qv={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};me(be,xe,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),me(Ee,Ce,_e(be,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Ee(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Ee(this.r*t,this.g*t,this.b*t,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 t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?"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))+(1===t?")":", "+t+")")}})),me(Ae,Ne,_e(be,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Ae(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Ae(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Ee(Pe(t>=240?t-240:t+120,i,r),Pe(t,i,r),Pe(t<120?t+240:t-120,i,r),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}}));var Zv=Math.PI/180,Jv=180/Math.PI,ty=.95047,ny=1,ey=1.08883,ry=4/29,iy=6/29,oy=3*iy*iy,ay=iy*iy*iy;me(Re,Ie,_e(be,{brighter:function(t){return new Re(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new Re(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return t=ny*Le(t),n=ty*Le(n),e=ey*Le(e),new Ee(Ue(3.2404542*n-1.5371385*t-.4985314*e),Ue(-.969266*n+1.8760108*t+.041556*e),Ue(.0556434*n-.2040259*t+1.0572252*e),this.opacity)}})),me(je,He,_e(be,{brighter:function(t){return new je(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new je(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return Oe(this).rgb()}}));var uy=-.14861,ly=1.78277,cy=-.29227,sy=-.90649,fy=1.97294,hy=fy*sy,py=fy*ly,dy=ly*cy-sy*uy;me(Ve,qe,_e(be,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Ve(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Ve(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Zv,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Ee(255*(n+e*(uy*r+ly*i)),255*(n+e*(cy*r+sy*i)),255*(n+e*(fy*r)),this.opacity)}}));var vy,yy,gy,my,_y=function t(n){function e(t,n){var e=r((t=Ce(t)).r,(n=Ce(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),a=r(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}var r=Ze(n);return e.gamma=t,e}(1),by=tr(Ye),xy=tr(Ke),wy=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,My=new RegExp(wy.source,"g"),ky=180/Math.PI,Cy={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},Ey=pr(fr,"px, ","px)","deg)"),Ty=pr(hr,", ",")",")"),Sy=Math.SQRT2,Ny=2,Ay=4,Py=1e-12,Oy=mr(Qe),Iy=mr(Je),Ry=br(Qe),Dy=br(Je),Ly=xr(Qe),Uy=xr(Je),zy={value:function(){}};kr.prototype=Mr.prototype={constructor:kr,on:function(t,n){var e,r=this._,i=Cr(t+"",r),o=-1,a=i.length;{if(!(arguments.length<2)){if(null!=n&&"function"!==typeof n)throw new Error("invalid callback: "+n);for(;++o0)for(var e,r,i=new Array(e),o=0;o0?t>1?Xr(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):dg:null};var vg=dg.range,yg=6e4,gg=6048e5,mg=Xr(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),_g=mg.range,bg=Xr(function(t){t.setTime(Math.floor(t/yg)*yg)},function(t,n){t.setTime(+t+n*yg)},function(t,n){return(n-t)/yg},function(t){return t.getMinutes()}),xg=bg.range,wg=Xr(function(t){var n=t.getTimezoneOffset()*yg%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),Mg=wg.range,kg=Xr(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*yg)/864e5},function(t){return t.getDate()-1}),Cg=kg.range,Eg=Gr(0),Tg=Gr(1),Sg=Gr(2),Ng=Gr(3),Ag=Gr(4),Pg=Gr(5),Og=Gr(6),Ig=Eg.range,Rg=Tg.range,Dg=Sg.range,Lg=Ng.range,Ug=Ag.range,zg=Pg.range,Fg=Og.range,Hg=Xr(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),jg=Hg.range,Bg=Xr(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});Bg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Xr(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var qg=Bg.range,Vg=Xr(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*yg)},function(t,n){return(n-t)/yg},function(t){return t.getUTCMinutes()}),Wg=Vg.range,Yg=Xr(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),Kg=Yg.range,$g=Xr(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),Xg=$g.range,Gg=Qr(0),Qg=Qr(1),Zg=Qr(2),Jg=Qr(3),tm=Qr(4),nm=Qr(5),em=Qr(6),rm=Gg.range,im=Qg.range,om=Zg.range,am=Jg.range,um=tm.range,lm=nm.range,cm=em.range,sm=Xr(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),fm=sm.range,hm=Xr(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});hm.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Xr(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var pm,dm=hm.range,vm={"":ni,"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return ri(100*t,n)},r:ri,s:ei,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},ym=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;oi.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type};var gm,mm=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];li({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var _m,bm={"-":"",_:" ",0:"0"},xm=/^\s*\d+/,wm=/^%/,Mm=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;co({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"]});var km=Date.prototype.toISOString?so:t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ"),Cm=+new Date("2000-01-01T00:00:00.000Z")?fo:t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ"),Em=Array.prototype,Tm=Em.map,Sm=Em.slice,Nm={name:"implicit"},Am=[0,1],Pm=1e3,Om=60*Pm,Im=60*Om,Rm=24*Im,Dm=7*Rm,Lm=30*Rm,Um=365*Rm,zm=Xo("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Fm=Xo("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6"),Hm=Xo("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"),jm=Xo("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"),Bm=Uy(qe(300,.5,0),qe(-240,.5,1)),qm=Uy(qe(-100,.75,.35),qe(80,1.5,.8)),Vm=Uy(qe(260,.75,.35),qe(80,1.5,.8)),Wm=qe(),Ym=Qo(Xo("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),Km=Qo(Xo("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),$m=Qo(Xo("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),Xm=Qo(Xo("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),Gm="http://www.w3.org/1999/xhtml",Qm={svg:"http://www.w3.org/2000/svg",xhtml:Gm,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Zm=0;ia.prototype=ra.prototype={constructor:ia,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var Jm=function(t){return function(){return this.matches(t)}};if("undefined"!==typeof document){var t_=document.documentElement;if(!t_.matches){var n_=t_.webkitMatchesSelector||t_.msMatchesSelector||t_.mozMatchesSelector||t_.oMatchesSelector;Jm=function(t){return function(){return n_.call(this,t)}}}}var e_=Jm,r_={};if(t.event=null,"undefined"!==typeof document){"onmouseenter"in document.documentElement||(r_={mouseenter:"mouseover",mouseleave:"mouseout"})}ka.prototype={constructor:ka,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var i_="$";iu.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var o_=[null];Iu.prototype=Ru.prototype={constructor:Iu,select:ga,selectAll:ba,filter:xa,data:Sa,enter:Ma,exit:Na,merge:Aa,order:Pa,sort:Oa,call:Ra,nodes:Da,node:La,size:Ua,empty:za,each:Fa,attr:Ya,style:Qa,property:nu,classed:su,text:du,html:mu,raise:bu,lower:wu,append:Mu,insert:Cu,remove:Tu,datum:Su,on:sa,dispatch:Ou};var a_=Mr("start","end","interrupt"),u_=[],l_=0,c_=1,s_=2,f_=3,h_=4,p_=5,d_=Ru.prototype.constructor,v_=0,y_=Ru.prototype;Ll.prototype=Ul.prototype={constructor:Ll,select:wl,selectAll:Ml,filter:vl,merge:yl,selection:kl,transition:Dl,call:y_.call,nodes:y_.nodes,node:y_.node,size:y_.size,empty:y_.empty,each:y_.each,on:_l,attr:rl,attrTween:al,style:Nl,styleTween:Pl,text:Rl,remove:xl,tween:$u,delay:cl,duration:hl,ease:dl};var g_={time:null,delay:0,duration:250,ease:et};Ru.prototype.interrupt=Wu,Ru.prototype.transition=Hl;var m_=[null],__=Array.prototype.slice,b_=1,x_=2,w_=3,M_=4,k_=1e-6;wc.prototype=gc.prototype={constructor:wc,each:ac,eachAfter:lc,eachBefore:uc,sum:cc,sort:sc,path:fc,ancestors:pc,descendants:dc,leaves:vc,links:yc,copy:mc};var C_="$",E_={depth:-1},T_={};is.prototype=Object.create(wc.prototype);var S_=(1+Math.sqrt(5))/2,N_=function t(n){function e(t,e,r,i,o){ls(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(S_),A_=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,l,c,s,f=-1,h=a.length,p=t.value;++f1?n:1)},e}(S_),P_=10,O_=Math.PI*(3-Math.sqrt(5));Ps.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t},Fs.prototype={constructor:Fs,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=qs(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)r=e.U,e===r.L?(i=r.R,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(js(this,e),t=e,e=t.U),e.C=!1,r.C=!0,Bs(this,r))):(i=r.L,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(Bs(this,e),t=e,e=t.U),e.C=!1,r.C=!0,js(this,r))),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,a=t.R;if(e=o?a?qs(a):o:a,i?i.L===t?i.L=e:i.R=e:this._=e,o&&a?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==a?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=a,a.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r){if(t&&t.C)return void(t.C=!1);do{if(t===this._)break;if(t===i.L){if(n=i.R,n.C&&(n.C=!1,i.C=!0,js(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,Bs(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,js(this,i),t=this._;break}}else if(n=i.L,n.C&&(n.C=!1,i.C=!0,Bs(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,js(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,Bs(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var I_,R_,D_,L_,U_,z_=[],F_=[],H_=1e-6,j_=1e-12;vf.prototype={constructor:vf,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return Zs(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){for(var i,o=e.site,a=e.halfedges,u=-1,l=a.length,c=n[a[l-1]],s=c.left===o?c.right:c.left;++u0?1:t<0?-1:0},ix=Math.sqrt,ox=Math.tan,ax={Feature:function(t,n){rh(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++rHb?yb=90:fx<-Hb&&(db=-90),wb[0]=pb,wb[1]=vb}},px={sphere:eh,point:Ah,lineStart:Oh,lineEnd:Dh,polygonStart:function(){px.lineStart=Lh,px.lineEnd=Uh},polygonEnd:function(){px.lineStart=Oh,px.lineEnd=Dh}};qh.invert=qh;var dx,vx,yx,gx,mx,_x,bx,xx,wx,Mx,kx,Cx=1e9,Ex=-Cx,Tx=Gf(),Sx={sphere:eh,point:eh,lineStart:ap,lineEnd:eh,polygonStart:eh,polygonEnd:eh},Nx=[null,null],Ax={type:"LineString",coordinates:Nx},Px=Gf(),Ox=Gf(),Ix={point:eh,lineStart:eh,lineEnd:eh,polygonStart:function(){Ix.lineStart=gp,Ix.lineEnd=bp},polygonEnd:function(){Ix.lineStart=Ix.lineEnd=Ix.point=eh,Px.add($b(Ox)),Ox.reset()},result:function(){var t=Px/2;return Px.reset(),t}},Rx=1/0,Dx=Rx,Lx=-Rx,Ux=Lx,zx={point:xp,lineStart:eh,lineEnd:eh,polygonStart:eh,polygonEnd:eh,result:function(){var t=[[Rx,Dx],[Lx,Ux]];return Lx=Ux=-(Dx=Rx=1/0),t}},Fx=0,Hx=0,jx=0,Bx=0,qx=0,Vx=0,Wx=0,Yx=0,Kx=0,$x={point:wp,lineStart:Mp,lineEnd:Ep,polygonStart:function(){$x.lineStart=Tp,$x.lineEnd=Sp},polygonEnd:function(){$x.point=wp,$x.lineStart=Mp,$x.lineEnd=Ep},result:function(){var t=Kx?[Wx/Kx,Yx/Kx]:Vx?[Bx/Vx,qx/Vx]:jx?[Fx/jx,Hx/jx]:[NaN,NaN];return Fx=Hx=jx=Bx=qx=Vx=Wx=Yx=Kx=0,t}},Xx=Gf(),Gx=Lp(function(){return!0},Fp,jp,[-Bb,-qb]);Wp.prototype={point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Qx=16,Zx=Qb(30*Kb),Jx=Vp({point:function(t,n){this.stream.point(t*Kb,n*Kb)}}),tw=ad(function(t){return ix(2/(1+t))});tw.invert=ud(function(t){return 2*th(t/2)});var nw=ad(function(t){return(t=Jf(t))&&t/ex(t)});nw.invert=ud(function(t){return t}),sd.invert=function(t,n){return[t,2*Xb(Jb(n))-qb]},yd.invert=yd,bd.invert=ud(Xb),wd.invert=ud(th),kd.invert=ud(function(t){return 2*Xb(t)}),Ed.invert=function(t,n){return[-n,2*Xb(Jb(t))-qb]},t.version="4.2.2",t.bisect=Nd,t.bisectRight=Nd,t.bisectLeft=Ad,t.ascending=n,t.bisector=e,t.descending=i,t.deviation=u,t.extent=l,t.histogram=v,t.thresholdFreedmanDiaconis=g,t.thresholdScott=m,t.thresholdSturges=d,t.max=_,t.mean=b,t.median=x,t.merge=w,t.min=M,t.pairs=k,t.permute=C,t.quantile=y,t.range=f,t.scan=E,t.shuffle=T,t.sum=S,t.ticks=h,t.tickStep=p,t.transpose=N,t.variance=a,t.zip=P,t.entries=q,t.keys=j,t.values=B,t.map=I,t.set=H,t.nest=R,t.randomUniform=V,t.randomNormal=W,t.randomLogNormal=Y,t.randomBates=$,t.randomIrwinHall=K,t.randomExponential=X,t.easeLinear=G,t.easeQuad=J,t.easeQuadIn=Q,t.easeQuadOut=Z,t.easeQuadInOut=J,t.easeCubic=et,t.easeCubicIn=tt,t.easeCubicOut=nt,t.easeCubicInOut=et,t.easePoly=Hd,t.easePolyIn=zd,t.easePolyOut=Fd,t.easePolyInOut=Hd,t.easeSin=ot,t.easeSinIn=rt,t.easeSinOut=it,t.easeSinInOut=ot,t.easeExp=lt,t.easeExpIn=at,t.easeExpOut=ut,t.easeExpInOut=lt,t.easeCircle=ft,t.easeCircleIn=ct,t.easeCircleOut=st,t.easeCircleInOut=ft,t.easeBounce=pt,t.easeBounceIn=ht,t.easeBounceOut=pt,t.easeBounceInOut=dt,t.easeBack=nv,t.easeBackIn=Jd,t.easeBackOut=tv,t.easeBackInOut=nv,t.easeElastic=iv,t.easeElasticIn=rv,t.easeElasticOut=iv,t.easeElasticInOut=ov,t.polygonArea=vt,t.polygonCentroid=yt,t.polygonHull=bt,t.polygonContains=xt,t.polygonLength=wt,t.path=kt,t.quadtree=qt,t.queue=Zt,t.arc=cn,t.area=vn,t.line=dn,t.pie=mn,t.radialArea=Mn,t.radialLine=wn,t.symbol=kn,t.symbols=Rv,t.symbolCircle=gv,t.symbolCross=mv,t.symbolDiamond=xv,t.symbolSquare=Ev,t.symbolStar=Cv,t.symbolTriangle=Sv,t.symbolWye=Iv,t.curveBasisClosed=An,t.curveBasisOpen=On,t.curveBasis=Sn,t.curveBundle=Dv,t.curveCardinalClosed=Uv,t.curveCardinalOpen=zv,t.curveCardinal=Lv,t.curveCatmullRomClosed=Hv,t.curveCatmullRomOpen=jv,t.curveCatmullRom=Fv,t.curveLinearClosed=qn,t.curveLinear=fn,t.curveMonotoneX=Qn,t.curveMonotoneY=Zn,t.curveNatural=ne,t.curveStep=re,t.curveStepAfter=oe,t.curveStepBefore=ie,t.stack=ce,t.stackOffsetExpand=se,t.stackOffsetNone=ae,t.stackOffsetSilhouette=fe,t.stackOffsetWiggle=he,t.stackOrderAscending=pe,t.stackOrderDescending=ve,t.stackOrderInsideOut=ye,t.stackOrderNone=ue,t.stackOrderReverse=ge,t.color=xe,t.rgb=Ce,t.hsl=Ne,t.lab=Ie,t.hcl=He,t.cubehelix=qe,t.interpolate=lr,t.interpolateArray=nr,t.interpolateDate=er,t.interpolateNumber=rr,t.interpolateObject=ir,t.interpolateRound=cr,t.interpolateString=ur,t.interpolateTransformCss=Ey,t.interpolateTransformSvg=Ty,t.interpolateZoom=gr,t.interpolateRgb=_y,t.interpolateRgbBasis=by,t.interpolateRgbBasisClosed=xy,t.interpolateHsl=Oy,t.interpolateHslLong=Iy,t.interpolateLab=_r,t.interpolateHcl=Ry,t.interpolateHclLong=Dy,t.interpolateCubehelix=Ly,t.interpolateCubehelixLong=Uy,t.interpolateBasis=Ye,t.interpolateBasisClosed=Ke,t.quantize=wr,t.dispatch=Mr,t.dsvFormat=Pr,t.csvParse=By,t.csvParseRows=qy,t.csvFormat=Vy,t.csvFormatRows=Wy,t.tsvParse=Ky,t.tsvParseRows=$y,t.tsvFormat=Xy,t.tsvFormatRows=Gy,t.request=Or,t.html=Qy,t.json=Zy,t.text=Jy,t.xml=tg,t.csv=ng,t.tsv=eg,t.now=zr,t.timer=jr,t.timerFlush=Br,t.timeout=Kr,t.interval=$r,t.timeInterval=Xr,t.timeMillisecond=dg,t.timeMilliseconds=vg,t.timeSecond=mg,t.timeSeconds=_g,t.timeMinute=bg,t.timeMinutes=xg,t.timeHour=wg,t.timeHours=Mg,t.timeDay=kg,t.timeDays=Cg,t.timeWeek=Eg;t.timeWeeks=Ig,t.timeSunday=Eg,t.timeSundays=Ig,t.timeMonday=Tg,t.timeMondays=Rg,t.timeTuesday=Sg,t.timeTuesdays=Dg,t.timeWednesday=Ng,t.timeWednesdays=Lg,t.timeThursday=Ag,t.timeThursdays=Ug,t.timeFriday=Pg,t.timeFridays=zg,t.timeSaturday=Og,t.timeSaturdays=Fg,t.timeMonth=Hg,t.timeMonths=jg,t.timeYear=Bg,t.timeYears=qg,t.utcMillisecond=dg,t.utcMilliseconds=vg,t.utcSecond=mg,t.utcSeconds=_g,t.utcMinute=Vg,t.utcMinutes=Wg,t.utcHour=Yg,t.utcHours=Kg,t.utcDay=$g,t.utcDays=Xg,t.utcWeek=Gg,t.utcWeeks=rm,t.utcSunday=Gg,t.utcSundays=rm,t.utcMonday=Qg,t.utcMondays=im,t.utcTuesday=Zg,t.utcTuesdays=om,t.utcWednesday=Jg,t.utcWednesdays=am,t.utcThursday=tm,t.utcThursdays=um,t.utcFriday=nm,t.utcFridays=lm,t.utcSaturday=em,t.utcSaturdays=cm,t.utcMonth=sm,t.utcMonths=fm,t.utcYear=hm,t.utcYears=dm,t.formatLocale=ui,t.formatDefaultLocale=li,t.formatSpecifier=ii,t.precisionFixed=ci,t.precisionPrefix=si,t.precisionRound=fi,t.isoFormat=km,t.isoParse=Cm,t.timeFormatLocale=vi,t.timeFormatDefaultLocale=co,t.scaleBand=po,t.scalePoint=yo,t.scaleIdentity=No,t.scaleLinear=So,t.scaleLog=Uo,t.scaleOrdinal=ho,t.scaleImplicit=Nm,t.scalePow=Fo,t.scaleSqrt=Ho,t.scaleQuantile=jo,t.scaleQuantize=Bo,t.scaleThreshold=qo,t.scaleTime=Ko,t.scaleUtc=$o,t.schemeCategory10=zm,t.schemeCategory20b=Fm,t.schemeCategory20c=Hm,t.schemeCategory20=jm,t.scaleSequential=Zo,t.interpolateCubehelixDefault=Bm,t.interpolateRainbow=Go,t.interpolateWarm=qm,t.interpolateCool=Vm,t.interpolateViridis=Ym,t.interpolateMagma=Km,t.interpolateInferno=$m,t.interpolatePlasma=Xm,t.creator=ea,t.customEvent=fa,t.local=ra,t.matcher=e_,t.mouse=da,t.namespace=Jo,t.namespaces=Qm,t.select=Du,t.selectAll=Lu,t.selection=Ru,t.selector=ya,t.selectorAll=_a,t.touch=Uu,t.touches=zu,t.window=Ka,t.active=jl,t.interrupt=Vu,t.transition=Ul,t.axisTop=$l,t.axisRight=Xl,t.axisBottom=Gl,t.axisLeft=Ql,t.cluster=oc,t.hierarchy=gc,t.pack=Bc,t.packSiblings=Lc,t.packEnclose=Cc,t.partition=$c,t.stratify=Qc,t.tree=as,t.treemap=cs,t.treemapBinary=ss,t.treemapDice=Kc,t.treemapSlice=us,t.treemapSliceDice=fs,t.treemapSquarify=N_,t.treemapResquarify=A_,t.forceCenter=hs,t.forceCollide=gs,t.forceLink=_s,t.forceManyBody=Ms,t.forceSimulation=ws,t.forceX=ks,t.forceY=Cs,t.drag=Ds,t.dragDisable=Ss,t.dragEnable=Ns,t.voronoi=yf,t.zoom=Ef,t.zoomIdentity=B_,t.zoomTransform=bf,t.brush=Ff,t.brushX=Uf,t.brushY=zf,t.brushSelection=Lf,t.chord=Bf,t.ribbon=Xf,t.geoAlbers=rd,t.geoAlbersUsa=od,t.geoArea=fh,t.geoAzimuthalEqualArea=ld,t.geoAzimuthalEqualAreaRaw=tw,t.geoAzimuthalEquidistant=cd,t.geoAzimuthalEquidistantRaw=nw,t.geoBounds=Nh,t.geoCentroid=Hh,t.geoCircle=Qh,t.geoClipExtent=op,t.geoConicConformal=vd,t.geoConicConformalRaw=dd,t.geoConicEqualArea=ed,t.geoConicEqualAreaRaw=nd,t.geoConicEquidistant=_d,t.geoConicEquidistantRaw=md,t.geoDistance=fp,t.geoEquirectangular=gd,t.geoEquirectangularRaw=yd,t.geoGnomonic=xd,t.geoGnomonicRaw=bd,t.geoGraticule=dp,t.geoInterpolate=vp,t.geoLength=sp,t.geoMercator=fd,t.geoMercatorRaw=sd,t.geoOrthographic=Md,t.geoOrthographicRaw=wd,t.geoPath=Rp,t.geoProjection=Zp,t.geoProjectionMutator=Jp,t.geoRotation=$h,t.geoStereographic=Cd,t.geoStereographicRaw=kd,t.geoStream=ah,t.geoTransform=qp,t.geoTransverseMercator=Td,t.geoTransverseMercatorRaw=Ed,Object.defineProperty(t,"__esModule",{value:!0})})},function(t,n){}]); +//# sourceMappingURL=main.52d8c6a6.js.map \ No newline at end of file diff --git a/static/js/main.52d8c6a6.js.map b/static/js/main.52d8c6a6.js.map new file mode 100644 index 0000000..d5d94f5 --- /dev/null +++ b/static/js/main.52d8c6a6.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../static/js/main.52d8c6a6.js","../webpack/bootstrap dc042360bf48166430fe","../node_modules/object-assign/index.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/promise/lib/core.js","../node_modules/react/index.js","../node_modules/fbjs/lib/emptyObject.js","../node_modules/react-scripts/config/polyfills.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/webpack/buildin/global.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/fbjs/lib/ExecutionEnvironment.js","../node_modules/fbjs/lib/EventListener.js","../node_modules/fbjs/lib/getActiveElement.js","../node_modules/fbjs/lib/shallowEqual.js","../node_modules/fbjs/lib/containsNode.js","../node_modules/fbjs/lib/isTextNode.js","../node_modules/fbjs/lib/isNode.js","../node_modules/fbjs/lib/focusNode.js","../node_modules/d3v4/build/d3.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","toObject","val","undefined","TypeError","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","forEach","letter","keys","err","target","source","from","symbols","to","arguments","length","key","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","noop","getThen","obj","then","ex","LAST_ERROR","IS_ERROR","tryCallOne","fn","a","tryCallTwo","b","Promise","_75","_83","_18","_38","doResolve","safeThen","self","onFulfilled","onRejected","constructor","resolve","reject","res","handle","Handler","deferred","_47","push","handleResolved","asap","cb","promise","ret","newValue","finale","bind","_71","done","value","reason","_44","emptyObject","enable","window","disable","enabled","options","onUnhandled","id","allRejections","matchWhitelist","rejections","error","whitelist","DEFAULT_WHITELIST","displayId","logged","logError","onHandled","console","warn","_56","clearTimeout","timeout","setTimeout","stack","line","list","some","cls","ReferenceError","RangeError","global","rawAsap","task","queue","requestFlush","flushing","flush","index","currentIndex","capacity","scan","newLength","makeRequestCallFromTimer","callback","handleTimer","timeoutHandle","clearInterval","intervalHandle","setInterval","scope","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","toggle","observer","node","document","createTextNode","observe","characterData","data","g","Function","eval","e","valuePromise","TRUE","FALSE","NULL","UNDEFINED","ZERO","EMPTYSTRING","all","arr","args","Array","slice","remaining","race","values","normalizeName","test","toLowerCase","normalizeValue","iteratorFor","items","iterator","next","shift","support","iterable","Symbol","Headers","headers","append","isArray","header","consumed","body","bodyUsed","fileReaderReady","reader","onload","result","onerror","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","bufferClone","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","Blob","isPrototypeOf","_bodyBlob","formData","FormData","_bodyFormData","searchParams","URLSearchParams","toString","arrayBuffer","isDataView","_bodyArrayBuffer","ArrayBuffer","isArrayBufferView","Error","type","rejected","text","decode","json","JSON","parse","normalizeMethod","method","upcased","toUpperCase","methods","indexOf","Request","input","url","credentials","mode","referrer","form","trim","bytes","replace","decodeURIComponent","parseHeaders","rawHeaders","parts","Response","bodyInit","status","ok","statusText","fetch","viewClasses","DataView","isView","oldValue","has","thisArg","entries","clone","response","redirectStatuses","redirect","location","init","request","xhr","XMLHttpRequest","getAllResponseHeaders","responseURL","responseText","ontimeout","open","withCredentials","responseType","setRequestHeader","send","polyfill","__webpack_exports__","_defineProperty","writable","_classCallCheck","instance","Constructor","_possibleConstructorReturn","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","Slider","props","max","parseInt","min","maxLength","Math","ceil","log10","disabled","__WEBPACK_IMPORTED_MODULE_0_react___default","createElement","className","onChange","size","array1d","f","v","array2d","height","width","w","j","computeOutputSize","input_size","weight_size","padding","dilation","stride","floor","paramsOK","maxWhile","start","end","pred","minWhile","whiten","color","__WEBPACK_IMPORTED_MODULE_2_d3v4__","Grid","grid","xgrid","row","xrow","colorizer","style","backgroundColor","onMouseEnter","onMouseLeave","__WEBPACK_IMPORTED_MODULE_0_react__","__WEBPACK_IMPORTED_MODULE_1_react_dom__","__WEBPACK_IMPORTED_MODULE_1_react_dom___default","__WEBPACK_IMPORTED_MODULE_3__index_css__","_createClass","defineProperties","descriptor","protoProps","staticProps","App","_React$Component","_this","getPrototypeOf","state","localStorage","getItem","setState","setItem","stringify","_this2","padded_input_size","output_size","output","h_out","w_out","h_kern","w_kern","h_im","w_im","params","state_key","r","x","Viewport","Component","_React$Component2","_this3","hoverOver","hoverH","hoverW","counter","interval","tick","inputColorizerWrapper","darker","xyScale","xScale","yScale","scale_size","compute_input_multiplies_with_weight","input_multiplies_with_weight","h_weight","w_weight","flat_input","_this4","inputColorizer","weightColorizer","outputColorizer","flat_animated","animatedH","animatedW","domain","brighter","base","animated_input_multiplies_with_weight","input_produces_output","render","getElementById","y","encodeURIComponent","framesToPop","A","context","refs","updater","z","B","C","E","J","k","ref","H","I","children","h","defaultProps","$$typeof","_owner","G","current","K","escape","=",":","N","M","pop","keyPrefix","func","count","O","P","t","u","Q","R","S","T","L","q","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isReactComponent","forceUpdate","D","isPureReactComponent","F","unstable_isAsyncReactComponent","__self","__source","U","Children","toArray","only","PureComponent","unstable_AsyncComponent","Fragment","cloneElement","createFactory","isValidElement","version","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","V","freeze","default","W","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","pa","va","oa","wa","hasBooleanValue","hasStringBooleanValue","hasOverloadedBooleanValue","ua","Ia","Ja","_hasCaughtError","_caughtError","apply","Ka","_hasRethrowError","_rethrowError","Na","La","Ma","Oa","extractEvents","eventTypes","Pa","phasedRegistrationNames","Qa","registrationName","Ra","Sa","dependencies","Ta","Ua","Za","currentTarget","Ya","invokeGuardedCallbackAndCatchFirstError","$a","concat","ab","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","db","gb","ib","stateNode","Wa","jb","kb","bb","lb","rethrowCaughtError","pb","parentNode","tag","qb","rb","ob","tb","ub","vb","dispatchConfig","wb","_targetInst","xb","yb","zb","Ab","Bb","alternate","Eb","Db","canUseDOM","documentElement","Fb","_fallbackText","_startText","Gb","_root","nativeEvent","Interface","isDefaultPrevented","defaultPrevented","returnValue","Kb","eventPool","Lb","destructor","Jb","getPooled","Mb","Nb","dc","Pb","keyCode","ec","detail","gc","which","cc","ac","hc","fc","Vb","ctrlKey","altKey","metaKey","char","$b","mc","Xa","jc","restoreControlledState","oc","kc","lc","pc","rc","tc","sc","vc","nodeName","uc","wc","srcElement","correspondingUseElement","nodeType","yc","setAttribute","xc","implementation","hasFeature","zc","Ac","getOwnPropertyDescriptor","getValue","setValue","stopTracking","_valueTracker","Bc","Cc","checked","Ec","Dc","change","Hc","Ic","Jc","Lc","Fc","detachEvent","Mc","Gc","propertyName","Nc","attachEvent","Oc","Pc","$c","bd","dd","getModifierState","cd","ed","fd","jd","displayName","kd","effectTag","ld","_reactInternalFiber","md","nd","child","sibling","od","pd","rd","targetInst","ancestors","containerInfo","sd","topLevelType","ud","td","ba","listen","vd","wd","capture","qd","yd","Cd","Ad","zd","Bd","Hd","Gd","Fd","Ed","Id","firstChild","Jd","textContent","offset","nextSibling","Kd","contentEditable","Rd","Qd","Nd","da","selectionStart","selectionEnd","getSelection","anchorNode","anchorOffset","focusNode","focusOffset","Pd","ea","Md","select","Od","Td","Ud","Vd","Wd","charCode","Zd","$d","ae","be","ce","he","ge","ke","le","je","ie","me","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","ne","X","oe","cursor","pe","getChildContext","qe","__reactInternalMemoizedMergedChildContext","re","Y","memoizedState","updateQueue","memoizedProps","pendingProps","internalContextTag","lastEffect","firstEffect","nextEffect","expirationTime","se","te","ue","ve","we","handler","xe","ye","pendingChildren","Be","Ce","isDisabled","supportsFiber","inject","ze","onCommitFiberRoot","Ae","onCommitFiberUnmount","De","Ee","Fe","baseState","first","last","callbackList","hasForceUpdate","isInitialized","Ge","He","Ie","partialState","Je","isReplace","isForced","Ke","Le","nextCallback","adoptClassInstance","constructClassInstance","mountClassInstance","componentWillMount","componentDidMount","updateClassInstance","componentWillReceiveProps","componentDidUpdate","shouldComponentUpdate","componentWillUpdate","Xe","We","Ze","_stringRef","$e","af","Map","Re","Ve","Se","Te","Ue","Ye","df","cf","bf","pendingContext","shouldSetTextContent","useSyncScheduling","shouldDeprioritizeSubtree","pushHostContext","pushHostContainer","enterHydrationState","resetHydrationState","tryToClaimNextHydratableInstance","Ob","beginWork","element","hydrate","beginFailedWork","ef","createInstance","createTextInstance","appendInitialChild","finalizeInitialChildren","prepareUpdate","persistence","getRootHostContainer","popHostContext","getHostContext","popHostContainer","prepareToHydrateHostInstance","prepareToHydrateHostTextInstance","popHydrationState","mutation","completeWork","ff","componentWillUnmount","getPublicInstance","commitMount","commitUpdate","resetTextContent","commitTextUpdate","appendChild","appendChildToContainer","insertBefore","insertInContainerBefore","removeChild","removeChildFromContainer","commitResetTextContent","commitPlacement","commitDeletion","commitWork","commitLifeCycles","commitAttachRef","commitDetachRef","hf","gf","getChildHostContext","getRootHostContext","resetHostContainer","jf","hydration","canHydrateInstance","canHydrateTextInstance","getNextHydratableSibling","getFirstHydratableChild","hydrateInstance","hydrateTextInstance","kf","Qb","ja","isReadyForCommit","yg","zg","Ag","Ne","Oe","Sc","Bg","Tc","Cg","Dg","Eg","componentDidCatch","componentStack","ca","Qc","ha","qa","Fg","rg","Gg","Uc","ra","Rc","eb","qg","Set","add","_debugOwner","_debugSource","fileName","lineNumber","componentName","errorBoundary","errorBoundaryFound","errorBoundaryName","willRetry","suppressReactErrorLogging","Vc","ka","Hg","Rb","Ig","nextScheduledRoot","remainingExpirationTime","sa","Fa","la","Sb","ma","na","Wc","Pe","Tb","Jg","Xc","Kg","fb","Yc","Ub","Zc","finishedWork","timeRemaining","Lg","Me","now","scheduleDeferredCallback","cancelDeferredCallback","prepareForCommit","resetAfterCommit","computeAsyncExpiration","computeExpirationForFiber","scheduleWork","batchedUpdates","unbatchedUpdates","flushSync","deferredUpdates","lf","createContainer","updateContainer","getPublicRootInstance","findHostInstance","findHostInstanceWithNoPortals","injectIntoDevTools","findFiberByHostInstance","findHostInstanceByFiber","pf","Hf","Gf","Ff","Ef","If","mutationMethod","hasNumericValue","isNaN","hasPositiveNumericValue","Jf","mustUseProperty","attributeName","attributeNamespace","setAttributeNS","Kf","removeAttribute","Lf","step","defaultChecked","defaultValue","_wrapperState","initialValue","initialChecked","Mf","controlled","Nf","Of","parseFloat","Pf","Qf","aa","Rf","Sf","selected","defaultSelected","Tf","wasMultiple","multiple","Uf","dangerouslySetInnerHTML","Vf","Wf","Xf","Zf","$f","cg","lastChild","nodeValue","fg","dg","setProperty","hg","gg","ig","is","lg","ownerDocument","topBlur","topFocus","topCancel","topClose","Dd","ng","jg","innerHTML","createElementNS","og","pg","mg","kg","__html","bg","onClick","onclick","sg","tg","ug","vg","Ng","Og","hasAttribute","Pg","_reactRootContainer","Z","Qg","Rg","fa","ia","suppressContentEditableWarning","suppressHydrationWarning","ta","MUST_USE_PROPERTY","HAS_BOOLEAN_VALUE","HAS_NUMERIC_VALUE","HAS_POSITIVE_NUMERIC_VALUE","HAS_OVERLOADED_BOOLEAN_VALUE","HAS_STRING_BOOLEAN_VALUE","injectDOMPropertyConfig","Properties","DOMAttributeNamespaces","DOMAttributeNames","DOMMutationMethods","xa","ya","za","Aa","Ba","Ca","Da","allowFullScreen","async","autoFocus","autoPlay","cols","controls","defer","download","draggable","formNoValidate","hidden","loop","muted","noValidate","playsInline","readOnly","required","reversed","rows","rowSpan","scoped","seamless","span","spellCheck","tabIndex","itemScope","acceptCharset","htmlFor","httpEquiv","validity","badInput","activeElement","Ea","xlink","xml","Ga","autoReverse","externalResourcesRequired","preserveAlpha","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlSpace","Ha","injection","injectErrorUtils","invokeGuardedCallback","hasCaughtError","clearCaughtError","Va","plugins","eventNameDispatchConfigs","registrationNameModules","registrationNameDependencies","possibleRegistrationNames","injectEventPluginOrder","injectEventPluginsByName","hb","mb","getListener","enqueueEvents","processEventQueue","nb","random","sb","precacheFiberNode","getClosestInstanceFromNode","getInstanceFromNode","getNodeFromInstance","getFiberCurrentPropsFromNode","updateFiberProps","Cb","accumulateTwoPhaseDispatches","accumulateTwoPhaseDispatchesSkipTarget","accumulateEnterLeaveDispatches","accumulateDirectDispatches","Hb","Ib","eventPhase","bubbles","cancelable","timeStamp","Date","isTrusted","preventDefault","stopPropagation","cancelBubble","persist","augmentClass","Wb","documentMode","Xb","Yb","opera","Zb","bc","beforeInput","bubbled","captured","compositionEnd","compositionStart","compositionUpdate","ic","nc","injectFiberControlledHostComponent","qc","enqueueStateRestore","restoreStateIfNeeded","date","datetime","datetime-local","email","month","number","password","range","search","tel","time","week","Kc","ad","_isInputEventSupported","getAttribute","Alt","Control","Meta","Shift","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","gd","mouseEnter","mouseLeave","hd","defaultView","parentWindow","xd","_enabled","_handleTopLevel","setHandleTopLevel","setEnabled","isEnabled","trapBubbledEvent","trapCapturedEvent","dispatchEvent","animationend","animationiteration","animationstart","transitionend","animation","transition","topAbort","topAnimationEnd","topAnimationIteration","topAnimationStart","topCanPlay","topCanPlayThrough","topChange","topClick","topCompositionEnd","topCompositionStart","topCompositionUpdate","topContextMenu","topCopy","topCut","topDoubleClick","topDrag","topDragEnd","topDragEnter","topDragExit","topDragLeave","topDragOver","topDragStart","topDrop","topDurationChange","topEmptied","topEncrypted","topEnded","topError","topInput","topKeyDown","topKeyPress","topKeyUp","topLoadedData","topLoad","topLoadedMetadata","topLoadStart","topMouseDown","topMouseMove","topMouseOut","topMouseOver","topMouseUp","topPaste","topPause","topPlay","topPlaying","topProgress","topRateChange","topScroll","topSeeked","topSeeking","topSelectionChange","topStalled","topSuspend","topTextInput","topTimeUpdate","topToggle","topTouchCancel","topTouchEnd","topTouchMove","topTouchStart","topTransitionEnd","topVolumeChange","topWaiting","topWheel","Ld","Sd","onSelect","animationName","elapsedTime","pseudoElement","clipboardData","Xd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Yd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","repeat","locale","dataTransfer","touches","targetTouches","changedTouches","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","de","ee","fe","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","Qe","mf","nf","of","qf","performance","rf","sf","tf","requestIdleCallback","cancelIdleCallback","Bf","uf","vf","wf","xf","yf","zf","Af","didTimeout","Cf","addEventListener","requestAnimationFrame","Df","postMessage","Infinity","Yf","html","mathml","svg","ag","MSApp","execUnsafeLocalFunction","namespaceURI","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","eg","charAt","substring","menuitem","area","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","wg","setInitialProperties","diffProperties","updateProperties","diffHydratedProperties","diffHydratedText","warnForUnmatchedText","warnForDeletedHydratableElement","warnForDeletedHydratableText","warnForInsertedHydratedElement","warnForInsertedHydratedText","querySelectorAll","xg","Mg","tagName","rangeCount","focusedElem","selectionRange","extend","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","didNotMatchHydratedContainerTextInstance","didNotMatchHydratedTextInstance","didNotHydrateContainerInstance","didNotHydrateInstance","didNotFindHydratableContainerInstance","didNotFindHydratableContainerTextInstance","didNotFindHydratableInstance","didNotFindHydratableTextInstance","unmount","Sg","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","unstable_deferredUpdates","EventPluginHub","EventPluginRegistry","EventPropagators","ReactControlledComponent","ReactDOMComponentTree","ReactDOMEventListener","bundleType","rendererPackageName","Tg","Ug","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","canUseViewport","screen","isInWorker","EventListener","eventType","remove","removeEventListener","registerDefault","getActiveElement","doc","shallowEqual","objA","objB","keysA","keysB","containsNode","outerNode","innerNode","isTextNode","contains","compareDocumentPosition","isNode","Node","factory","ascending","NaN","bisector","compare","ascendingComparator","lo","hi","mid","right","descending","variance","array","deviation","sqrt","extent","constant","identity","stop","ticks","tickStep","step0","abs","step1","pow","log","LN10","e10","e5","e2","sturges","LN2","histogram","xz","x0","x1","tz","threshold","bin","bins","bisectRight","_","thresholds","freedmanDiaconis","sort","scott","mean","median","numbers","merge","arrays","merged","pairs","permute","indexes","permutes","xi","xj","shuffle","i0","i1","sum","transpose","matrix","zip","map$1","each","nest","depth","createResult","setResult","rollup","sortValues","keyValue","valuesByKey","sortKey","sortKeys","createObject","setObject","createMap","setMap","uniform","normal","mu","sigma","logNormal","randomNormal","exp","irwinHall","bates","randomIrwinHall","exponential","lambda","linear","quadIn","quadOut","quadInOut","cubicIn","cubicOut","easeCubicInOut","sinIn","cos","halfPi","sinOut","sin","sinInOut","pi","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","bounceIn","bounceOut","b1","b0","b3","b2","b4","b6","b5","b7","b8","b9","bounceInOut","polygon","centroid","cross","lexicographicOrder","computeUpperHullIndexes","points","hull","sortedPoints","flippedPoints","upperIndexes","lowerIndexes","skipLeft","skipRight","point","y1","y0","inside","length$1","perimeter","Path","_x0","_y0","_x1","_y1","path","tree_add","_x","_y","cover","tree","parent","xm","ym","xp","yp","bottom","leaf","addAll","yz","tree_cover","tree_data","visit","tree_extent","Quad","tree_find","radius","x2","y2","x3","y3","quads","dx","dy","d2","tree_remove","retainer","previous","removeAll","tree_root","tree_size","tree_visit","tree_visitAfter","defaultX","tree_x","defaultY","tree_y","quadtree","nodes","Quadtree","leaf_copy","copy","Queue","_size","_call","_error","_tasks","_data","_waiting","_active","_ended","_start","poke","abort","noabort","maybeNotify","concurrency","constant$1","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","asin","halfPi$1","intersect","x10","y10","x32","y32","cornerTangents","r1","cw","x01","y01","ox","oy","x11","y11","x00","y00","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","arc","r0","a0","a1","epsilon$1","tau$2","moveTo","t0","t1","a01","a11","a00","a10","da0","da1","ap","rp","padRadius","cornerRadius","rc0","rc1","p0","p1","pi$2","ax","ay","bx","by","acos","atan2","lineTo","closePath","Linear","_context","curveLinear","defined0","curve","defined","lineStart","lineEnd","x$$","y$$","area$1","x0z","y0z","areaStart","areaEnd","arealine","lineX0","lineY0","lineY1","lineX1","descending$1","identity$1","pie","arcs","Radial","_curve","curveRadial","radial","radialLine","angle","radialLine$1","curveRadialLinear","radialArea","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","symbol","draw","circle","that","bezierCurveTo","Basis","basis","BasisClosed","basisClosed","BasisOpen","basisOpen","Bundle","beta","_basis","_beta","point$1","_k","_x2","_y2","Cardinal","tension","CardinalClosed","CardinalOpen","point$2","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","CatmullRomClosed","CatmullRomOpen","LinearClosed","linearClosed","sign","slope3","h0","h1","s0","s1","slope2","point$3","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","controlPoints","natural","Step","_t","stepBefore","stepAfter","none","series","none$1","stackValue","oz","kz","sz","sij","ki","si","slice$2","expand","silhouette","wiggle","s2","sij0","sij1","s3","sk","ascending$1","sums","sum$1","descending$2","reverse","insideOut","tops","bottoms","define","definition","Color","format","reHex3","exec","Rgb","reHex6","rgbn","reRgbInteger","reRgbPercent","reRgbaInteger","rgba","reRgbaPercent","reHslPercent","hsla","reHslaPercent","named","rgbConvert","rgb","colorRgb","Hsl","hslConvert","colorHsl","hsl2rgb","m1","m2","labConvert","Lab","Hcl","deg2rad","rgb2xyz","xyz2lab","Xn","Yn","Zn","lab","t3","t2","lab2xyz","xyz2rgb","hclConvert","rad2deg","colorHcl","cubehelixConvert","Cubehelix","BC_DA","ED","EB","bl","cubehelix","basis$1","v0","v1","v2","v3","basis$2","basisClosed$1","constant$2","linear$1","exponential$1","hue","round","gamma","nogamma","rgbSpline","spline","colors","array$1","interpolate","setTime","interpolateNumber","zero","one","interpolateString","am","bm","bs","bi","reA","lastIndex","reB","interpolateRgb","interpolateRound","decompose","scaleX","scaleY","skewX","translateX","translateY","rotate","degrees","atan","parseCss","identity$2","cssNode","cssRoot","cssView","transform","getComputedStyle","getPropertyValue","parseSvg","svgNode","baseVal","consolidate","interpolateTransform","pxComma","pxParen","degParen","translate","scale","cosh","sinh","tanh","interpolateZoom","ux0","uy0","w0","ux1","uy1","w1","epsilon2","rho","d1","rho4","rho2","coshr0","duration","hsl","lab$1","hcl","cubehelix$1","cubehelixGamma","cubehelix$$","quantize","interpolator","samples","dispatch","Dispatch","parseTypenames","typenames","types","set$1","noop$1","objectConverter","customConverter","inferColumns","columnSet","column","dsv","delimiter","convert","parseRows","token","EOF","eol","EOL","charCodeAt","delimiterCode","formatValue","formatRows","formatRow","reFormat","RegExp","respond","hasResponse","event","mimeType","user","XDomainRequest","onreadystatechange","readyState","onprogress","post","overrideMimeType","fixCallback","on","defaultMimeType","dsv$1","responseOf","clockNow","setFrame","clearNow","clock","clockSkew","Timer","_time","_next","timer","delay","restart","timerFlush","frame","taskHead","wake","clockLast","nap","poke$1","pokeDelay","taskTail","sleep","timeout$1","elapsed","interval$1","total","newInterval","floori","offseti","field","d0","filter","t0$1","t1$1","every","isFinite","weekday","setDate","getDate","getDay","setHours","getTimezoneOffset","durationMinute","durationWeek","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","formatDecimal","toExponential","coefficient","exponent$1","formatGroup","grouping","thousands","formatDefault","toPrecision","out","formatPrefixAuto","exponent","prefixExponent","formatRounded","formatSpecifier","specifier","FormatSpecifier","match","fill","align","comma","precision","formatTypes","identity$3","formatLocale","newFormat","valuePrefix","prefix","valueSuffix","suffix","formatType","valueNegative","prefixes","maybeSuffix","decimal","group","currency","formatPrefix","defaultLocale","precisionFixed","precisionPrefix","precisionRound","localDate","setFullYear","utcDate","UTC","setUTCFullYear","newYear","formatLocale$1","formats","pad","string","pads","newParse","newDate","parseSpecifier","day","parses","parsePeriod","periodRe","periodLookup","parseShortWeekday","shortWeekdayRe","shortWeekdayLookup","parseWeekday","weekdayRe","weekdayLookup","parseShortMonth","shortMonthRe","shortMonthLookup","parseMonth","monthRe","monthLookup","parseLocaleDateTime","locale_dateTime","parseLocaleDate","locale_date","parseLocaleTime","locale_time","formatShortWeekday","locale_shortWeekdays","formatWeekday","locale_weekdays","formatShortMonth","locale_shortMonths","getMonth","formatMonth","locale_months","formatPeriod","locale_periods","getHours","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","getUTCMonth","formatUTCMonth","formatUTCPeriod","getUTCHours","dateTime","periods","days","shortDays","months","shortMonths","formatRe","formatLookup","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekNumberSunday","formatWeekdayNumber","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","%","formatLiteralPercent","utcFormats","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekNumberSunday","formatUTCWeekdayNumber","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parseDayOfMonth","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parseSeconds","parseWeekNumberSunday","parseWeekdayNumber","parseWeekNumberMonday","parseYear","parseFullYear","parseZone","parseLiteralPercent","utcFormat","utcParse","requote","requoteRe","names","numberRe","percentRe","year","getMilliseconds","getMinutes","getSeconds","timeWeek","timeMonday","getFullYear","utcDay","utcYear","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","utcWeek","utcMonday","getUTCFullYear","defaultLocale$1","locale$1","timeFormat","timeParse","formatIsoNative","toISOString","parseIsoNative","ordinal","unknown","implicit","slice$3","band","rescale","range$$","paddingInner","paddingOuter","bandwidth","ordinalRange","rangeRound","pointish","point$4","constant$3","number$1","deinterpolate","deinterpolateClamp","reinterpolateClamp","reinterpolate","bimap","polymap","clamp","continuous","deinterpolate$$","piecewise","interpolate$$","unit","invert","map$2","tickFormat","linearish","nice","linear$2","identity$4","deinterpolate$1","pow10","powp","logp","log2","reflect","logs","pows","raise","quantile","invertExtent","quantiles","quantize$1","threshold$1","date$1","number$2","calendar","hour","minute","second","millisecond","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","tickInterval","tickIntervals","durationYear","durationSecond$1","durationMinute$1","durationHour$1","durationDay$1","durationWeek$1","durationMonth","utcTime","utcMonth","utcHour","utcMinute","rainbow$1","ts","rainbow","ramp","sequential","namespace","namespaces","space","local","creatorInherit","uri","xhtml","creatorFixed","fullname","creator","Local","nextId","filterContextListener","listener","contextListener","related","event1","event0","__data__","parseTypenames$1","onRemove","typename","__on","onAdd","wrap","filterEvents","selection_on","customEvent","sourceEvent","point$5","ownerSVGElement","createSVGPoint","matrixTransform","getScreenCTM","inverse","rect","getBoundingClientRect","clientLeft","clientTop","mouse","none$2","selector","querySelector","selection_select","groups","_groups","subgroups","subnode","subgroup","Selection","_parents","empty","selectorAll","selection_selectAll","parents","selection_filter","matcher$1","sparse","update","selection_enter","_enter","EnterNode","datum","_parent","constant$4","bindIndex","enter","exit","groupLength","dataLength","bindKey","nodeByKeyValue","keyValues","selection_data","enterGroup","updateGroup","_exit","selection_exit","selection_merge","selection","groups0","groups1","m0","merges","group0","group1","selection_order","selection_sort","compareNode","ascending$2","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","selection_empty","selection_each","attrRemove","attrRemoveNS","removeAttributeNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","selection_attr","getAttributeNS","styleRemove","removeProperty","styleConstant","priority","styleFunction","selection_style","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","classList","ClassList","_node","_names","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant","textFunction","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise$1","selection_raise","lower","previousSibling","selection_lower","selection_append","constantNull","selection_insert","before","selection_remove","selection_datum","window$$","CustomEvent","createEvent","initEvent","dispatchConstant","dispatchFunction","selection_dispatch","root","selectAll","touch","identifier","schedule","timing","schedules","__transition","emptyOn","tween","emptyTween","ease","CREATED","set$2","STARTING","get$1","SCHEDULED","STARTED","ENDED","ENDING","interrupt","active","selection_interrupt","tweenRemove","tween0","tween1","splice","tweenFunction","transition_tween","_id","tweenValue","interpolate$1","attrRemove$1","attrRemoveNS$1","attrConstant$1","value1","value00","interpolate0","value0","attrConstantNS$1","attrFunction$1","value10","attrFunctionNS$1","transition_attr","interpolateTransform$2","attrTween","attrTweenNS","_value","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","transition_filter","Transition","_name","transition_merge","start$1","onFunction","on0","on1","sit","transition_on","removeFunction","transition_remove","transition_select","transition_selectAll","inherit","transition_selection","Selection$1","styleRemove$1","styleRemoveEnd","styleConstant$1","styleFunction$1","transition_style","interpolateTransform$1","styleTween","transition_styleTween","textConstant$1","textFunction$1","transition_text","transition_transition","id0","id1","newId","defaultTiming","selection_transition","root$1","identity$5","scale0","scale1","center","entering","__axis","axis","orient","tickValues","tickArguments","spacing","tickSizeInner","tickPadding","range0","range1","position","tickExit","tickEnter","attr","insert","epsilon$2","tickSizeOuter","slice$4","tickSize","axisTop","axisRight","axisBottom","axisLeft","defaultSeparation","meanX","reduce","meanXReduce","maxY","maxYReduce","leafLeft","leafRight","cluster","previousNode","eachAfter","separation","nodeSize","node_each","node_eachBefore","node_eachAfter","node_sum","node_sort","eachBefore","node_path","ancestor","leastCommonAncestor","aNodes","bNodes","node_ancestors","node_descendants","node_leaves","leaves","node_links","links","hierarchy","childs","valued","defaultChildren","computeHeight","node_copy","copyData","Node$2","shuffle$1","head","tail","enclose","circles","encloseN","encloses","dr","l2","l0","l1","enclose1","enclose2","enclose3","r2","x21","y21","r21","r3","a2","c2","a3","c3","d3","place","intersects","distance2","Node$1","packEnclose","sj","pack","siblings","optional","constantZero","constant$5","defaultRadius","radiusLeaf","packChildren","translateChild","roundNode","treemapDice","partition","positionNode","defaultId","defaultParentId","parentId","stratify","nodeId","nodeKey","nodeByKey","keyPrefix$1","ambiguous","preroot","defaultSeparation$1","nextLeft","nextRight","moveSubtree","wm","wp","executeShifts","nextAncestor","vim","TreeNode","treeRoot","firstWalk","secondWalk","sizeNode","tx","kx","ky","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","treemapSlice","squarifyRatio","ratio","sumValue","minValue","maxValue","newRatio","minRatio","dice","index$1","treemap","paddingStack","paddingLeft","paddingTop","paddingRight","paddingBottom","tile","squarify","binary","valueOffset","valueTarget","valueLeft","valueRight","yk","xk","sliceDice","center$1","force","sx","sy","initialize","constant$6","jiggle","x$1","vx","y$1","vy","collide","quad","rj","ri","yi","strength","ri2","iterations","visitAfter","prepare","radii","index$2","defaultStrength","distances","strengths","bias","nodeById","initializeStrength","initializeDistance","distance","x$2","y$2","simulation","alphaMin","stepper","alphaTarget","alphaDecay","forces","fx","velocityDecay","fy","initializeNodes","initialRadius","initialAngle","initializeForce","find","closest","manyBody","accumulate","theta2","distanceMax2","distanceMin2","distanceMin","distanceMax","theta","x$3","y$3","nopropagation","stopImmediatePropagation","noevent","dragDisable","__noselect","MozUserSelect","dragEnable","noclick","constant$7","DragEvent","subject","defaultFilter","defaultContainer","defaultSubject","drag","mousedowned","touchstarted","touchmoved","touchended","touchending","gesture","beforestart","container","mousemoved","mouseupped","mousemoving","gestures","sublisteners","listeners","constant$8","x$4","y$4","RedBlackTree","RedBlackNode","RedBlackRotateLeft","RedBlackRotateRight","RedBlackFirst","createEdge","edge","edges","setEdgeEnd","cells","halfedges","createBorderEdge","vertex","clipEdge","connectEdge","fm","lx","ly","rx","ry","clipEdges","epsilon$3","createCell","site","cellHalfedgeAngle","cell","cellHalfedgeStart","cellHalfedgeEnd","sortCellHalfedges","clipCells","iCell","iHalfedge","nHalfedges","startX","startY","endX","endY","nCells","v00","v01","v11","v10","Circle","attachCircle","lArc","rArc","lSite","cSite","rSite","epsilon2$1","circlePool","firstCircle","detachCircle","Beach","createBeach","beach","beachPool","detachBeach","beaches","removeBeach","disappearing","unshift","iArc","nArcs","addBeach","dxl","dxr","directrix","leftBreakPoint","rightBreakPoint","newArc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","triangleArea","lexicographic","Diagram","sites","voronoi","polygons","triangles","constant$9","ZoomEvent","Transform","__zoom","identity$6","nopropagation$1","noevent$1","defaultFilter$1","defaultExtent","SVGElement","clientWidth","clientHeight","defaultTransform","wheeled","dblclicked","k0","k1","constrain","invertX","invertY","Gesture","wheelidled","wheel","wheelDelay","moved","touch0","touch1","touchstarting","touchDelay","dp","dl","collection","scaleBy","scaleTo","translateBy","emit","scaleExtent","translateExtent","constant$10","BrushEvent","nopropagation$2","noevent$2","type$1","defaultFilter$2","defaultExtent$1","local$1","__brush","empty$1","brushSelection","dim","brushX","brush$1","brushY","brush","XY","overlay","cursors","handles","redraw","started","handleSize","emitter","Emitter","point1","shifting","lockX","lockY","moving","move","point0","MODE_SPACE","MODE_DRAG","signX","e0","e1","signY","n0","n1","MODE_HANDLE","MODE_CENTER","flipX","flipY","ended","keydowned","keyupped","signsX","signsY","selection1","selection0","starting","compareValue","chord","groupSums","groupIndex","subgroupIndex","chords","sortGroups","sortSubgroups","max$1","tau$3","di","dj","subindex","sortChords","constant$11","defaultSource","defaultTarget","defaultRadius$1","defaultStartAngle","defaultEndAngle","ribbon","argv","slice$5","sr","sa0","halfPi$2","sa1","sx0","sy0","tr","ta0","ta1","quadraticCurveTo","adder","Adder","reset","add$1","bv","av","pi$4","asin$1","halfPi$3","haversin","sin$1","noop$2","streamGeometry","geometry","stream","streamGeometryType","streamLine","coordinates","closed","coordinate","streamPolygon","polygonStart","polygonEnd","geoStream","streamObjectType","areaRingStart","areaStream","areaPointFirst","areaRingEnd","areaPoint","lambda00","phi00","phi","radians","lambda0","cosPhi0","cos$1","quarterPi","sinPhi0","dLambda","sdLambda","adLambda","cosPhi","sinPhi","areaRingSum","area$2","areaSum","spherical","cartesian","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","sqrt$1","boundsPoint","ranges","range$1","lambda0$1","lambda1","phi0","phi1","linePoint","equatorial","inflection","phii","delta","lambda2","lambdai","degrees$1","antimeridian","boundsLineStart","boundsStream","boundsLineEnd","boundsRingPoint","deltaSum","lambda00$1","phi00$1","boundsRingStart","boundsRingEnd","epsilon$4","rangeCompare","rangeContains","bounds","feature","deltaMax","centroidPoint","centroidPointCartesian","W0","X0","Y0","Z0","centroidLineStart","centroidStream","centroidLinePointFirst","z0","centroidLinePoint","W1","X1","Y1","Z1","centroidLineEnd","centroidRingStart","centroidRingPointFirst","centroidRingEnd","centroidRingPoint","lambda00$2","phi00$2","cz","X2","Y2","Z2","centroid$1","epsilon2$2","constant$12","compose","rotationIdentity","tau$4","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","forward","circleStream","direction","cosRadius","sinRadius","circleRadius","circle$1","ring","clipBuffer","lines","rejoin","clipLine","pointEqual","Intersection","other","entry","clipPolygon","segments","compareIntersection","startInside","clip","segment","link$1","isSubject","clipExtent","visible","corner","comparePoint","activeStream","polygonInside","winding","bufferStream","clean","cleanInside","clipStream","v_","x_","y_","x__","y__","v__","clipMin","clipMax","extent$1","cache","cacheStream","lengthLineStart","lengthStream","lengthPointFirst","lengthLineEnd","lambda0$2","sinPhi0$1","cosPhi0$1","lengthPoint","cosDelta","sinDelta","lengthSum","length$2","object$1","graticuleX","graticuleY","graticule","DX","DY","outline","extentMajor","extentMinor","stepMajor","stepMinor","interpolate$2","sy1","kx0","ky0","kx1","ky1","identity$7","areaRingStart$1","areaStream$1","areaPointFirst$1","areaPoint$1","x0$1","y0$1","areaRingSum$1","areaRingEnd$1","boundsPoint$1","x0$2","y0$2","centroidPoint$1","X0$1","Y0$1","Z0$1","centroidLineStart$1","centroidStream$1","centroidPointFirstLine","centroidPointLine","x0$3","y0$3","X1$1","Y1$1","Z1$1","centroidLineEnd$1","centroidRingStart$1","centroidPointFirstRing","centroidRingEnd$1","centroidPointRing","x00$1","y00$1","X2$1","Y2$1","Z2$1","PathContext","pointRadius","pointLineStart","pointLine","lineEndPolygon","PathString","pointCircle","circle$2","index$3","contextStream","projectionStream","projection","boundsStream$1","polygonContains","sum$2","sinPhi1","cosPhi1","absDelta","intersection","phiArc","pointVisible","sink","pointRing","ringSink","ringStart","ringEnd","ringSegments","ringBuffer","polygonStarted","validSegment","rotatedStart","sphere","clipAntimeridianLine","sign0","sign1","clipAntimeridianIntersect","sinLambda0Lambda1","clipAntimeridianInterpolate","clipCircle","cr","c0","point2","smallRadius","code","notHemisphere","two","n2","n2n2","n1n2","determinant","c1","n1xn2","uu","polar","meridian","q1","transform$1","transform$2","Transform$1","fit","project","fitSize","fitExtent","resample","delta2","resample$1","resampleNone","resampleLineTo","phi2","dx2","dy2","dz","cosMinDistance","resampleStream","maxDepth","ringPoint","b00","c00","projectionMutator","projectAt","projectRotate","projectTransform","recenter","preclip","clipAntimeridian","postclip","projectResample","transformRadians","clipAngle","conicProjection","parallels","conicEqualAreaRaw","r0y","conicEqualArea","albers","multiplex","streams","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","azimuthalRaw","azimuthalInvert","azimuthalEqualArea","azimuthalEqualAreaRaw","azimuthalEquidistant","azimuthalEquidistantRaw","mercatorRaw","log$1","tan","mercator","mercatorProjection","clipAuto","tany","conicConformalRaw","pow$1","sign$1","conicConformal","equirectangularRaw","equirectangular","conicEquidistantRaw","gy","nx","conicEquidistant","gnomonicRaw","gnomonic","orthographicRaw","orthographic","stereographicRaw","stereographic","transverseMercatorRaw","transverseMercator","ascendingBisect","bisectLeft","clear","proto","polyIn","custom","polyOut","polyInOut","PI","backIn","overshoot","backOut","backInOut","tau","elasticIn","amplitude","period","elasticOut","elasticInOut","pi$1","tau$1","tauEpsilon","arcTo","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","ccw","treeProto","slice$1","await","results","awaitAll","_line","_point","cross$1","tan30","tan30_2","diamond","kr","star","square","sqrt3","triangle","wye","_x3","_x4","_y3","_y4","bundle","cardinal","_x5","_y5","cardinalClosed","cardinalOpen","x23","y23","catmullRom","catmullRomClosed","catmullRomOpen","_t0","px","py","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","displayable","rgbGamma","rgbBasis","rgbBasisClosed","SQRT2","hsl$1","hslLong","hcl$1","hclLong","cubehelix$2","interpolateCubehelixLong","csv","csvParse","csvParseRows","csvFormat","csvFormatRows","tsv","tsvParse","tsvParseRows","tsvFormat","tsvFormatRows","createContextualFragment","responseXML","csv$1","tsv$1","milliseconds","seconds","minutes","hours","tuesday","wednesday","thursday","friday","saturday","sundays","mondays","tuesdays","wednesdays","thursdays","fridays","saturdays","setMonth","years","setUTCSeconds","utcMinutes","setUTCMinutes","utcHours","utcDays","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSundays","utcMondays","utcTuesdays","utcWednesdays","utcThursdays","utcFridays","utcSaturdays","setUTCMonth","utcMonths","utcYears","","toFixed","-","0","formatIso","parseIso","array$2","category10","category20b","category20c","category20","cubehelix$3","warm","cool","viridis","magma","inferno","plasma","xmlns","matcher","matches","vendorMatches","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","mouseenter","mouseleave","classed","selection_prototype","descendants","resquarify","_squarify","after","grandpa","uncle","applyX","applyY","rescaleX","rescaleY","xy","nw","sw","pi$3","temp","valueOf","Feature","FeatureCollection","features","Sphere","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","GeometryCollection","geometries","areaRing","areaSum$1","cxcy","bisect","thresholdFreedmanDiaconis","thresholdScott","thresholdSturges","randomUniform","randomLogNormal","randomBates","randomExponential","easeLinear","easeQuad","easeQuadIn","easeQuadOut","easeQuadInOut","easeCubic","easeCubicIn","easeCubicOut","easePoly","easePolyIn","easePolyOut","easePolyInOut","easeSin","easeSinIn","easeSinOut","easeSinInOut","easeExp","easeExpIn","easeExpOut","easeExpInOut","easeCircle","easeCircleIn","easeCircleOut","easeCircleInOut","easeBounce","easeBounceIn","easeBounceOut","easeBounceInOut","easeBack","easeBackIn","easeBackOut","easeBackInOut","easeElastic","easeElasticIn","easeElasticOut","easeElasticInOut","polygonArea","polygonCentroid","polygonHull","polygonLength","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","curveBasisClosed","curveBasisOpen","curveBasis","curveBundle","curveCardinalClosed","curveCardinalOpen","curveCardinal","curveCatmullRomClosed","curveCatmullRomOpen","curveCatmullRom","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","stackOffsetExpand","stackOffsetNone","stackOffsetSilhouette","stackOffsetWiggle","stackOrderAscending","stackOrderDescending","stackOrderInsideOut","stackOrderNone","stackOrderReverse","interpolateArray","interpolateDate","interpolateObject","interpolateTransformCss","interpolateTransformSvg","interpolateRgbBasis","interpolateRgbBasisClosed","interpolateHsl","interpolateHslLong","interpolateLab","interpolateHcl","interpolateHclLong","interpolateCubehelix","interpolateBasis","interpolateBasisClosed","dsvFormat","timeInterval","timeMillisecond","timeMilliseconds","timeSecond","timeSeconds","timeMinute","timeMinutes","timeHour","timeHours","timeDay","timeDays","timeWeeks","timeSunday","timeSundays","timeMondays","timeTuesday","timeTuesdays","timeWednesday","timeWednesdays","timeThursday","timeThursdays","timeFriday","timeFridays","timeSaturday","timeSaturdays","timeMonth","timeMonths","timeYear","timeYears","utcMillisecond","utcMilliseconds","utcSecond","utcSeconds","utcWeeks","utcSunday","formatDefaultLocale","isoFormat","isoParse","timeFormatLocale","timeFormatDefaultLocale","scaleBand","scalePoint","scaleIdentity","scaleLinear","scaleLog","scaleOrdinal","scaleImplicit","scalePow","scaleSqrt","scaleQuantile","scaleQuantize","scaleThreshold","scaleTime","scaleUtc","schemeCategory10","schemeCategory20b","schemeCategory20c","schemeCategory20","scaleSequential","interpolateCubehelixDefault","interpolateRainbow","interpolateWarm","interpolateCool","interpolateViridis","interpolateMagma","interpolateInferno","interpolatePlasma","packSiblings","treemapBinary","treemapSliceDice","treemapSquarify","treemapResquarify","forceCenter","forceCollide","forceLink","forceManyBody","forceSimulation","forceX","forceY","zoomIdentity","zoomTransform","geoAlbers","geoAlbersUsa","geoArea","geoAzimuthalEqualArea","geoAzimuthalEqualAreaRaw","geoAzimuthalEquidistant","geoAzimuthalEquidistantRaw","geoBounds","geoCentroid","geoCircle","geoClipExtent","geoConicConformal","geoConicConformalRaw","geoConicEqualArea","geoConicEqualAreaRaw","geoConicEquidistant","geoConicEquidistantRaw","geoDistance","geoEquirectangular","geoEquirectangularRaw","geoGnomonic","geoGnomonicRaw","geoGraticule","geoInterpolate","geoLength","geoMercator","geoMercatorRaw","geoOrthographic","geoOrthographicRaw","geoPath","geoProjection","geoProjectionMutator","geoRotation","geoStereographic","geoStereographicRaw","geoTransform","geoTransverseMercator","geoTransverseMercatorRaw"],"mappings":"CAAS,SAAUA,GCInB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAI,EAAAJ,EACAK,GAAA,EACAH,WAUA,OANAJ,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,GAAA,EAGAF,EAAAD,QAvBA,GAAAD,KA4BAF,GAAAQ,EAAAT,EAGAC,EAAAS,EAAAP,EAGAF,EAAAU,EAAA,SAAAP,EAAAQ,EAAAC,GACAZ,EAAAa,EAAAV,EAAAQ,IACAG,OAAAC,eAAAZ,EAAAQ,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAZ,EAAAmB,EAAA,SAAAf,GACA,GAAAQ,GAAAR,KAAAgB,WACA,WAA2B,MAAAhB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAJ,GAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAjB,KAAAc,EAAAC,IAGtDtB,EAAAyB,EAAA,2BAGAzB,IAAA0B,EAAA,KDMM,SAAUtB,EAAQD,EAASH,GAEjC,YEzDA,SAAA2B,GAAAC,GACA,UAAAA,OAAAC,KAAAD,EACA,SAAAE,WAAA,wDAGA,OAAAhB,QAAAc,GATA,GAAAG,GAAAjB,OAAAiB,sBACAP,EAAAV,OAAAS,UAAAC,eACAQ,EAAAlB,OAAAS,UAAAU,oBAsDA7B,GAAAD,QA5CA,WACA,IACA,IAAAW,OAAAoB,OACA,QAMA,IAAAC,GAAA,GAAAC,QAAA,MAEA,IADAD,EAAA,QACA,MAAArB,OAAAuB,oBAAAF,GAAA,GACA,QAKA,QADAG,MACAjC,EAAA,EAAiBA,EAAA,GAAQA,IACzBiC,EAAA,IAAAF,OAAAG,aAAAlC,KAKA,mBAHAS,OAAAuB,oBAAAC,GAAAE,IAAA,SAAArB,GACA,MAAAmB,GAAAnB,KAEAsB,KAAA,IACA,QAIA,IAAAC,KAIA,OAHA,uBAAAC,MAAA,IAAAC,QAAA,SAAAC,GACAH,EAAAG,OAGA,yBADA/B,OAAAgC,KAAAhC,OAAAoB,UAAkCQ,IAAAD,KAAA,IAMhC,MAAAM,GAEF,aAIAjC,OAAAoB,OAAA,SAAAc,EAAAC,GAKA,OAJAC,GAEAC,EADAC,EAAAzB,EAAAqB,GAGAtB,EAAA,EAAgBA,EAAA2B,UAAAC,OAAsB5B,IAAA,CACtCwB,EAAApC,OAAAuC,UAAA3B,GAEA,QAAA6B,KAAAL,GACA1B,EAAAjB,KAAA2C,EAAAK,KACAH,EAAAG,GAAAL,EAAAK,GAIA,IAAAxB,EAAA,CACAoB,EAAApB,EAAAmB,EACA,QAAA7C,GAAA,EAAkBA,EAAA8C,EAAAG,OAAoBjD,IACtC2B,EAAAzB,KAAA2C,EAAAC,EAAA9C,MACA+C,EAAAD,EAAA9C,IAAA6C,EAAAC,EAAA9C,MAMA,MAAA+C,KF4EM,SAAUhD,EAAQD,EAASH,GAEjC,YG3JA,SAAAwD,GAAAC,GACA,kBACA,MAAAA,IASA,GAAAC,GAAA,YAEAA,GAAAC,YAAAH,EACAE,EAAAE,iBAAAJ,GAAA,GACAE,EAAAG,gBAAAL,GAAA,GACAE,EAAAI,gBAAAN,EAAA,MACAE,EAAAK,gBAAA,WACA,MAAAC,OAEAN,EAAAO,oBAAA,SAAAR,GACA,MAAAA,IAGArD,EAAAD,QAAAuD,GH2KM,SAAUtD,EAAQD,EAASH,GAEjC,YI5MA,SAAAkE,MAqBA,QAAAC,GAAAC,GACA,IACA,MAAAA,GAAAC,KACG,MAAAC,GAEH,MADAC,GAAAD,EACAE,GAIA,QAAAC,GAAAC,EAAAC,GACA,IACA,MAAAD,GAAAC,GACG,MAAAL,GAEH,MADAC,GAAAD,EACAE,GAGA,QAAAI,GAAAF,EAAAC,EAAAE,GACA,IACAH,EAAAC,EAAAE,GACG,MAAAP,GAEH,MADAC,GAAAD,EACAE,GAMA,QAAAM,GAAAJ,GACA,oBAAAV,MACA,SAAAlC,WAAA,uCAEA,uBAAA4C,GACA,SAAA5C,WAAA,mDAEAkC,MAAAe,IAAA,EACAf,KAAAgB,IAAA,EACAhB,KAAAiB,IAAA,KACAjB,KAAAkB,IAAA,KACAR,IAAAR,GACAiB,EAAAT,EAAAV,MAeA,QAAAoB,GAAAC,EAAAC,EAAAC,GACA,UAAAF,GAAAG,YAAA,SAAAC,EAAAC,GACA,GAAAC,GAAA,GAAAb,GAAAZ,EACAyB,GAAAtB,KAAAoB,EAAAC,GACAE,EAAAP,EAAA,GAAAQ,GAAAP,EAAAC,EAAAI,MAGA,QAAAC,GAAAP,EAAAS,GACA,SAAAT,EAAAL,KACAK,IAAAJ,GAKA,IAHAH,EAAAiB,KACAjB,EAAAiB,IAAAV,GAEA,IAAAA,EAAAL,IACA,WAAAK,EAAAN,KACAM,EAAAN,IAAA,OACAM,EAAAH,IAAAY,IAGA,IAAAT,EAAAN,KACAM,EAAAN,IAAA,OACAM,EAAAH,KAAAG,EAAAH,IAAAY,SAGAT,GAAAH,IAAAc,KAAAF,EAGAG,GAAAZ,EAAAS,GAGA,QAAAG,GAAAZ,EAAAS,GACAI,EAAA,WACA,GAAAC,GAAA,IAAAd,EAAAL,IAAAc,EAAAR,YAAAQ,EAAAP,UACA,WAAAY,EAMA,YALA,IAAAd,EAAAL,IACAS,EAAAK,EAAAM,QAAAf,EAAAJ,KAEAS,EAAAI,EAAAM,QAAAf,EAAAJ,KAIA,IAAAoB,GAAA5B,EAAA0B,EAAAd,EAAAJ,IACAoB,KAAA7B,EACAkB,EAAAI,EAAAM,QAAA7B,GAEAkB,EAAAK,EAAAM,QAAAC,KAIA,QAAAZ,GAAAJ,EAAAiB,GAEA,GAAAA,IAAAjB,EACA,MAAAK,GACAL,EACA,GAAAvD,WAAA,6CAGA,IACAwE,IACA,iBAAAA,IAAA,mBAAAA,IACA,CACA,GAAAjC,GAAAF,EAAAmC,EACA,IAAAjC,IAAAG,EACA,MAAAkB,GAAAL,EAAAd,EAEA,IACAF,IAAAgB,EAAAhB,MACAiC,YAAAxB,GAKA,MAHAO,GAAAL,IAAA,EACAK,EAAAJ,IAAAqB,MACAC,GAAAlB,EAEK,uBAAAhB,GAEL,WADAc,GAAAd,EAAAmC,KAAAF,GAAAjB,GAIAA,EAAAL,IAAA,EACAK,EAAAJ,IAAAqB,EACAC,EAAAlB,GAGA,QAAAK,GAAAL,EAAAiB,GACAjB,EAAAL,IAAA,EACAK,EAAAJ,IAAAqB,EACAxB,EAAA2B,KACA3B,EAAA2B,IAAApB,EAAAiB,GAEAC,EAAAlB,GAEA,QAAAkB,GAAAlB,GAKA,GAJA,IAAAA,EAAAN,MACAa,EAAAP,IAAAH,KACAG,EAAAH,IAAA,MAEA,IAAAG,EAAAN,IAAA,CACA,OAAA1E,GAAA,EAAmBA,EAAAgF,EAAAH,IAAA5B,OAAqBjD,IACxCuF,EAAAP,IAAAH,IAAA7E,GAEAgF,GAAAH,IAAA,MAIA,QAAAW,GAAAP,EAAAC,EAAAa,GACApC,KAAAsB,YAAA,mBAAAA,KAAA,KACAtB,KAAAuB,WAAA,mBAAAA,KAAA,KACAvB,KAAAoC,UASA,QAAAjB,GAAAT,EAAA0B,GACA,GAAAM,IAAA,EACAf,EAAAf,EAAAF,EAAA,SAAAiC,GACAD,IACAA,GAAA,EACAjB,EAAAW,EAAAO,KACG,SAAAC,GACHF,IACAA,GAAA,EACAhB,EAAAU,EAAAQ,KAEAF,IAAAf,IAAAnB,IACAkC,GAAA,EACAhB,EAAAU,EAAA7B,IAhNA,GAAA2B,GAAAlG,EAAA,GAqBAuE,EAAA,KACAC,IA2BApE,GAAAD,QAAA2E,EAgBAA,EAAAiB,IAAA,KACAjB,EAAA2B,IAAA,KACA3B,EAAA+B,IAAA3C,EAEAY,EAAAvD,UAAA8C,KAAA,SAAAiB,EAAAC,GACA,GAAAvB,KAAAwB,cAAAV,EACA,MAAAM,GAAApB,KAAAsB,EAAAC,EAEA,IAAAI,GAAA,GAAAb,GAAAZ,EAEA,OADA0B,GAAA5B,KAAA,GAAA6B,GAAAP,EAAAC,EAAAI,IACAA,IJ6VM,SAAUvF,EAAQD,EAASH,GAEjC,YKzaAI,GAAAD,QAAAH,EAAA,KLqbM,SAAUI,EAAQD,EAASH,GAEjC,YMhbA,IAAA8G,KAMA1G,GAAAD,QAAA2G,GN+bM,SAAU1G,EAAQD,EAASH,GAEjCA,EAAoB,GACpBI,EAAOD,QAAUH,EAAoB,KAK/B,SAAUI,EAAQD,EAASH,GAEjC,YO/cA,qBAAA8E,WAIA9E,EAAA,GAAA+G,SACAC,OAAAlC,QAAA9E,EAAA,KAIAA,EAAA,IAIAc,OAAAoB,OAAAlC,EAAA,IPqeM,SAAUI,EAAQD,EAASH,GAEjC,YQlfA,SAAAiH,KACAC,GAAA,EACApC,EAAAiB,IAAA,KACAjB,EAAA2B,IAAA,KAIA,QAAAM,GAAAI,GAwCA,QAAAC,GAAAC,IAEAF,EAAAG,eACAC,EACAC,EAAAH,GAAAI,MACAN,EAAAO,WAAAC,MAGAH,EAAAH,GAAAO,cACAT,EAAAC,aACAI,EAAAH,GAAAQ,QAAA,EACAV,EAAAC,YACAI,EAAAH,GAAAO,UACAJ,EAAAH,GAAAI,SAGAD,EAAAH,GAAAQ,QAAA,EACAC,EACAN,EAAAH,GAAAO,UACAJ,EAAAH,GAAAI,SAKA,QAAAM,GAAAV,GACAG,EAAAH,GAAAQ,SACAV,EAAAY,UACAZ,EAAAY,UAAAP,EAAAH,GAAAO,UAAAJ,EAAAH,GAAAI,OACOD,EAAAH,GAAAD,cACPY,QAAAC,KACA,kCAAAT,EAAAH,GAAAO,UAAA,MAEAI,QAAAC,KACA,gHACAT,EAAAH,GAAAO,UAAA,OAzEAT,QACAD,GAAAD,IACAC,GAAA,CACA,IAAAG,GAAA,EACAO,EAAA,EACAJ,IACA1C,GAAAiB,IAAA,SAAAK,GAEA,IAAAA,EAAApB,KACAwC,EAAApB,EAAA8B,OAEAV,EAAApB,EAAA8B,KAAAL,OACAE,EAAA3B,EAAA8B,KAEAC,aAAAX,EAAApB,EAAA8B,KAAAE,eAEAZ,GAAApB,EAAA8B,OAGApD,EAAA2B,IAAA,SAAAL,EAAArD,GACA,IAAAqD,EAAArB,MACAqB,EAAA8B,IAAAb,IACAG,EAAApB,EAAA8B,MACAN,UAAA,KACAH,MAAA1E,EACAqF,QAAAC,WACAjB,EAAAZ,KAAA,KAAAJ,EAAA8B,KAKAX,EAAAxE,EAAA4E,GACA,IACA,KAEAE,QAAA,KA6CA,QAAAC,GAAAT,EAAAI,GACAO,QAAAC,KAAA,6CAAAZ,EAAA,QACAI,MAAAa,OAAAb,IAAA,IACA9E,MAAA,MAAAC,QAAA,SAAA2F,GACAP,QAAAC,KAAA,KAAAM,KAIA,QAAAhB,GAAAE,EAAAe,GACA,MAAAA,GAAAC,KAAA,SAAAC,GACA,MAAAjB,aAAAiB,KA5GA,GAAA5D,GAAA9E,EAAA,GAEA2H,GACAgB,eACA7G,UACA8G,YAGA1B,GAAA,CACA/G,GAAA8G,UAOA9G,EAAA4G,URimBM,SAAU3G,EAAQD,EAASH,GAEjC,cAC4B,SAAS6I,GSzmBrC,QAAAC,GAAAC,GACAC,EAAA1F,SACA2F,IACAC,GAAA,GAGAF,IAAA1F,QAAAyF,EA0BA,QAAAI,KACA,KAAAC,EAAAJ,EAAA1F,QAAA,CACA,GAAA+F,GAAAD,CAUA,IAPAA,GAAA,EACAJ,EAAAK,GAAA9I,OAMA6I,EAAAE,EAAA,CAGA,OAAAC,GAAA,EAAAC,EAAAR,EAAA1F,OAAA8F,EAAgEG,EAAAC,EAAkBD,IAClFP,EAAAO,GAAAP,EAAAO,EAAAH,EAEAJ,GAAA1F,QAAA8F,EACAA,EAAA,GAGAJ,EAAA1F,OAAA,EACA8F,EAAA,EACAF,GAAA,EAyHA,QAAAO,GAAAC,GACA,kBAWA,QAAAC,KAGAxB,aAAAyB,GACAC,cAAAC,GACAJ,IAXA,GAAAE,GAAAvB,WAAAsB,EAAA,GAIAG,EAAAC,YAAAJ,EAAA,KA5LAvJ,EAAAD,QAAA2I,CAUA,IAOAG,GAPAD,KAGAE,GAAA,EAQAE,EAAA,EAIAE,EAAA,KA6CAU,EAAA,oBAAAnB,KAAAxD,KACA4E,EAAAD,EAAAE,kBAAAF,EAAAG,sBAcAlB,GADA,mBAAAgB,GA2CA,SAAAP,GACA,GAAAU,GAAA,EACAC,EAAA,GAAAJ,GAAAP,GACAY,EAAAC,SAAAC,eAAA,GAEA,OADAH,GAAAI,QAAAH,GAA4BI,eAAA,IAC5B,WACAN,KACAE,EAAAK,KAAAP,IAjDAjB,GA8BAM,EAAAN,GAQAL,EAAAG,eAgFAH,EAAAW,6BT+nB6BlJ,KAAKJ,EAASH,EAAoB,KAIzD,SAAUI,EAAQD,GU11BxB,GAAAyK,EAGAA,GAAA,WACA,MAAA5G,QAGA,KAEA4G,KAAAC,SAAA,qBAAAC,MAAA,QACC,MAAAC,GAED,iBAAA/D,UACA4D,EAAA5D,QAOA5G,EAAAD,QAAAyK,GVi2BM,SAAUxK,EAAQD,EAASH,GAEjC,YWt2BA,SAAAgL,GAAArE,GACA,GAAAlF,GAAA,GAAAqD,KAAA+B,IAGA,OAFApF,GAAAuD,IAAA,EACAvD,EAAAwD,IAAA0B,EACAlF,EAjBA,GAAAqD,GAAA9E,EAAA,EAEAI,GAAAD,QAAA2E,CAIA,IAAAmG,GAAAD,GAAA,GACAE,EAAAF,GAAA,GACAG,EAAAH,EAAA,MACAI,EAAAJ,MAAAnJ,IACAwJ,EAAAL,EAAA,GACAM,EAAAN,EAAA,GAQAlG,GAAAW,QAAA,SAAAkB,GACA,GAAAA,YAAA7B,GAAA,MAAA6B,EAEA,WAAAA,EAAA,MAAAwE,EACA,QAAAtJ,KAAA8E,EAAA,MAAAyE,EACA,SAAAzE,EAAA,MAAAsE,EACA,SAAAtE,EAAA,MAAAuE,EACA,QAAAvE,EAAA,MAAA0E,EACA,SAAA1E,EAAA,MAAA2E,EAEA,qBAAA3E,IAAA,mBAAAA,GACA,IACA,GAAAtC,GAAAsC,EAAAtC,IACA,uBAAAA,GACA,UAAAS,GAAAT,EAAAmC,KAAAG,IAEK,MAAArC,GACL,UAAAQ,GAAA,SAAAW,EAAAC,GACAA,EAAApB,KAIA,MAAA0G,GAAArE,IAGA7B,EAAAyG,IAAA,SAAAC,GACA,GAAAC,GAAAC,MAAAnK,UAAAoK,MAAApL,KAAAiL,EAEA,WAAA1G,GAAA,SAAAW,EAAAC,GAGA,QAAAC,GAAAtF,EAAAuB,GACA,GAAAA,IAAA,iBAAAA,IAAA,mBAAAA,IAAA,CACA,GAAAA,YAAAkD,IAAAlD,EAAAyC,OAAAS,EAAAvD,UAAA8C,KAAA,CACA,SAAAzC,EAAAoD,KACApD,IAAAqD,GAEA,YAAArD,EAAAoD,IAAAW,EAAAtF,EAAAuB,EAAAqD,MACA,IAAArD,EAAAoD,KAAAU,EAAA9D,EAAAqD,SACArD,GAAAyC,KAAA,SAAAzC,GACA+D,EAAAtF,EAAAuB,IACW8D,IAGX,GAAArB,GAAAzC,EAAAyC,IACA,uBAAAA,GAAA,CAKA,WAJA,IAAAS,GAAAT,EAAAmC,KAAA5E,IACAyC,KAAA,SAAAzC,GACA+D,EAAAtF,EAAAuB,IACa8D,IAKb+F,EAAApL,GAAAuB,EACA,MAAAgK,GACAnG,EAAAgG,GA3BA,OAAAA,EAAAnI,OAAA,MAAAmC,MA8BA,QA7BAmG,GAAAH,EAAAnI,OA6BAjD,EAAA,EAAmBA,EAAAoL,EAAAnI,OAAiBjD,IACpCsF,EAAAtF,EAAAoL,EAAApL,OAKAyE,EAAAY,OAAA,SAAAiB,GACA,UAAA7B,GAAA,SAAAW,EAAAC,GACAA,EAAAiB,MAIA7B,EAAA+G,KAAA,SAAAC,GACA,UAAAhH,GAAA,SAAAW,EAAAC,GACAoG,EAAAlJ,QAAA,SAAA+D,GACA7B,EAAAW,QAAAkB,GAAAtC,KAAAoB,EAAAC,QAOAZ,EAAAvD,UAAA,eAAAgE,GACA,MAAAvB,MAAAK,KAAA,KAAAkB,KX83BM,SAAUnF,EAAQD,IYv+BxB,SAAAkF,GACA,YA2CA,SAAA0G,GAAApL,GAIA,GAHA,iBAAAA,KACAA,EAAAyB,OAAAzB,IAEA,6BAAAqL,KAAArL,GACA,SAAAmB,WAAA,yCAEA,OAAAnB,GAAAsL,cAGA,QAAAC,GAAAvF,GAIA,MAHA,iBAAAA,KACAA,EAAAvE,OAAAuE,IAEAA,EAIA,QAAAwF,GAAAC,GACA,GAAAC,IACAC,KAAA,WACA,GAAA3F,GAAAyF,EAAAG,OACA,QAAgB7F,SAAA7E,KAAA8E,YAUhB,OANA6F,GAAAC,WACAJ,EAAAK,OAAAL,UAAA,WACA,MAAAA,KAIAA,EAGA,QAAAM,GAAAC,GACA5I,KAAAxB,OAEAoK,YAAAD,GACAC,EAAAhK,QAAA,SAAA+D,EAAAhG,GACAqD,KAAA6I,OAAAlM,EAAAgG,IACO3C,MACF0H,MAAAoB,QAAAF,GACLA,EAAAhK,QAAA,SAAAmK,GACA/I,KAAA6I,OAAAE,EAAA,GAAAA,EAAA,KACO/I,MACF4I,GACL9L,OAAAuB,oBAAAuK,GAAAhK,QAAA,SAAAjC,GACAqD,KAAA6I,OAAAlM,EAAAiM,EAAAjM,KACOqD,MA0DP,QAAAgJ,GAAAC,GACA,GAAAA,EAAAC,SACA,MAAApI,SAAAY,OAAA,GAAA5D,WAAA,gBAEAmL,GAAAC,UAAA,EAGA,QAAAC,GAAAC,GACA,UAAAtI,SAAA,SAAAW,EAAAC,GACA0H,EAAAC,OAAA,WACA5H,EAAA2H,EAAAE,SAEAF,EAAAG,QAAA,WACA7H,EAAA0H,EAAA3F,UAKA,QAAA+F,GAAAC,GACA,GAAAL,GAAA,GAAAM,YACAtH,EAAA+G,EAAAC,EAEA,OADAA,GAAAO,kBAAAF,GACArH,EAGA,QAAAwH,GAAAH,GACA,GAAAL,GAAA,GAAAM,YACAtH,EAAA+G,EAAAC,EAEA,OADAA,GAAAS,WAAAJ,GACArH,EAGA,QAAA0H,GAAAC,GAIA,OAHAC,GAAA,GAAAC,YAAAF,GACAG,EAAA,GAAAxC,OAAAsC,EAAA1K,QAEAjD,EAAA,EAAmBA,EAAA2N,EAAA1K,OAAiBjD,IACpC6N,EAAA7N,GAAA+B,OAAAG,aAAAyL,EAAA3N,GAEA,OAAA6N,GAAAzL,KAAA,IAGA,QAAA0L,GAAAJ,GACA,GAAAA,EAAApC,MACA,MAAAoC,GAAApC,MAAA,EAEA,IAAAqC,GAAA,GAAAC,YAAAF,EAAAK,WAEA,OADAJ,GAAAK,IAAA,GAAAJ,YAAAF,IACAC,EAAAM,OAIA,QAAAC,KA0FA,MAzFAvK,MAAAkJ,UAAA,EAEAlJ,KAAAwK,UAAA,SAAAvB,GAEA,GADAjJ,KAAAyK,UAAAxB,EACAA,EAEO,oBAAAA,GACPjJ,KAAA0K,UAAAzB,MACO,IAAAT,EAAAiB,MAAAkB,KAAApN,UAAAqN,cAAA3B,GACPjJ,KAAA6K,UAAA5B,MACO,IAAAT,EAAAsC,UAAAC,SAAAxN,UAAAqN,cAAA3B,GACPjJ,KAAAgL,cAAA/B,MACO,IAAAT,EAAAyC,cAAAC,gBAAA3N,UAAAqN,cAAA3B,GACPjJ,KAAA0K,UAAAzB,EAAAkC,eACO,IAAA3C,EAAA4C,aAAA5C,EAAAiB,MAAA4B,EAAApC,GACPjJ,KAAAsL,iBAAAnB,EAAAlB,EAAAqB,QAEAtK,KAAAyK,UAAA,GAAAE,OAAA3K,KAAAsL,uBACO,KAAA9C,EAAA4C,cAAAG,YAAAhO,UAAAqN,cAAA3B,KAAAuC,EAAAvC,GAGP,SAAAwC,OAAA,4BAFAzL,MAAAsL,iBAAAnB,EAAAlB,OAdAjJ,MAAA0K,UAAA,EAmBA1K,MAAA4I,QAAA1L,IAAA,kBACA,iBAAA+L,GACAjJ,KAAA4I,QAAAyB,IAAA,2CACSrK,KAAA6K,WAAA7K,KAAA6K,UAAAa,KACT1L,KAAA4I,QAAAyB,IAAA,eAAArK,KAAA6K,UAAAa,MACSlD,EAAAyC,cAAAC,gBAAA3N,UAAAqN,cAAA3B,IACTjJ,KAAA4I,QAAAyB,IAAA,oEAKA7B,EAAAiB,OACAzJ,KAAAyJ,KAAA,WACA,GAAAkC,GAAA3C,EAAAhJ,KACA,IAAA2L,EACA,MAAAA,EAGA,IAAA3L,KAAA6K,UACA,MAAA/J,SAAAW,QAAAzB,KAAA6K,UACS,IAAA7K,KAAAsL,iBACT,MAAAxK,SAAAW,QAAA,GAAAkJ,OAAA3K,KAAAsL,mBACS,IAAAtL,KAAAgL,cACT,SAAAS,OAAA,uCAEA,OAAA3K,SAAAW,QAAA,GAAAkJ,OAAA3K,KAAA0K,cAIA1K,KAAAoL,YAAA,WACA,MAAApL,MAAAsL,iBACAtC,EAAAhJ,OAAAc,QAAAW,QAAAzB,KAAAsL,kBAEAtL,KAAAyJ,OAAApJ,KAAAmJ,KAKAxJ,KAAA4L,KAAA,WACA,GAAAD,GAAA3C,EAAAhJ,KACA,IAAA2L,EACA,MAAAA,EAGA,IAAA3L,KAAA6K,UACA,MAAAjB,GAAA5J,KAAA6K,UACO,IAAA7K,KAAAsL,iBACP,MAAAxK,SAAAW,QAAAqI,EAAA9J,KAAAsL,kBACO,IAAAtL,KAAAgL,cACP,SAAAS,OAAA,uCAEA,OAAA3K,SAAAW,QAAAzB,KAAA0K,YAIAlC,EAAAsC,WACA9K,KAAA8K,SAAA,WACA,MAAA9K,MAAA4L,OAAAvL,KAAAwL,KAIA7L,KAAA8L,KAAA,WACA,MAAA9L,MAAA4L,OAAAvL,KAAA0L,KAAAC,QAGAhM,KAMA,QAAAiM,GAAAC,GACA,GAAAC,GAAAD,EAAAE,aACA,OAAAC,GAAAC,QAAAH,IAAA,EAAAA,EAAAD,EAGA,QAAAK,GAAAC,EAAArJ,GACAA,OACA,IAAA8F,GAAA9F,EAAA8F,IAEA,IAAAuD,YAAAD,GAAA,CACA,GAAAC,EAAAtD,SACA,SAAApL,WAAA,eAEAkC,MAAAyM,IAAAD,EAAAC,IACAzM,KAAA0M,YAAAF,EAAAE,YACAvJ,EAAAyF,UACA5I,KAAA4I,QAAA,GAAAD,GAAA6D,EAAA5D,UAEA5I,KAAAkM,OAAAM,EAAAN,OACAlM,KAAA2M,KAAAH,EAAAG,KACA1D,GAAA,MAAAuD,EAAA/B,YACAxB,EAAAuD,EAAA/B,UACA+B,EAAAtD,UAAA,OAGAlJ,MAAAyM,IAAArO,OAAAoO,EAWA,IARAxM,KAAA0M,YAAAvJ,EAAAuJ,aAAA1M,KAAA0M,aAAA,QACAvJ,EAAAyF,SAAA5I,KAAA4I,UACA5I,KAAA4I,QAAA,GAAAD,GAAAxF,EAAAyF,UAEA5I,KAAAkM,OAAAD,EAAA9I,EAAA+I,QAAAlM,KAAAkM,QAAA,OACAlM,KAAA2M,KAAAxJ,EAAAwJ,MAAA3M,KAAA2M,MAAA,KACA3M,KAAA4M,SAAA,MAEA,QAAA5M,KAAAkM,QAAA,SAAAlM,KAAAkM,SAAAjD,EACA,SAAAnL,WAAA,4CAEAkC,MAAAwK,UAAAvB,GAOA,QAAA4C,GAAA5C,GACA,GAAA4D,GAAA,GAAA9B,SASA,OARA9B,GAAA6D,OAAAnO,MAAA,KAAAC,QAAA,SAAAmO,GACA,GAAAA,EAAA,CACA,GAAApO,GAAAoO,EAAApO,MAAA,KACAhC,EAAAgC,EAAA4J,QAAAyE,QAAA,WACArK,EAAAhE,EAAAF,KAAA,KAAAuO,QAAA,UACAH,GAAAhE,OAAAoE,mBAAAtQ,GAAAsQ,mBAAAtK,OAGAkK,EAGA,QAAAK,GAAAC,GACA,GAAAvE,GAAA,GAAAD,EASA,OARAwE,GAAAxO,MAAA,SAAAC,QAAA,SAAA2F,GACA,GAAA6I,GAAA7I,EAAA5F,MAAA,KACAY,EAAA6N,EAAA7E,QAAAuE,MACA,IAAAvN,EAAA,CACA,GAAAoD,GAAAyK,EAAA3O,KAAA,KAAAqO,MACAlE,GAAAC,OAAAtJ,EAAAoD,MAGAiG,EAKA,QAAAyE,GAAAC,EAAAnK,GACAA,IACAA,MAGAnD,KAAA0L,KAAA,UACA1L,KAAAuN,OAAA,UAAApK,KAAAoK,OAAA,IACAvN,KAAAwN,GAAAxN,KAAAuN,QAAA,KAAAvN,KAAAuN,OAAA,IACAvN,KAAAyN,WAAA,cAAAtK,KAAAsK,WAAA,KACAzN,KAAA4I,QAAA,GAAAD,GAAAxF,EAAAyF,SACA5I,KAAAyM,IAAAtJ,EAAAsJ,KAAA,GACAzM,KAAAwK,UAAA8C,GA7XA,IAAAjM,EAAAqM,MAAA,CAIA,GAAAlF,IACAyC,aAAA,mBAAA5J,GACAoH,SAAA,UAAApH,IAAA,YAAAqH,QACAe,KAAA,cAAApI,IAAA,QAAAA,IAAA,WACA,IAEA,MADA,IAAAsJ,OACA,EACO,MAAA5D,GACP,aAGA+D,SAAA,YAAAzJ,GACA+J,YAAA,eAAA/J,GAGA,IAAAmH,EAAA4C,YACA,GAAAuC,IACA,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,yBAGAtC,EAAA,SAAAjL,GACA,MAAAA,IAAAwN,SAAArQ,UAAAqN,cAAAxK,IAGAoL,EAAAD,YAAAsC,QAAA,SAAAzN,GACA,MAAAA,IAAAuN,EAAArB,QAAAxP,OAAAS,UAAA4N,SAAA5O,KAAA6D,KAAA,EAyDAuI,GAAApL,UAAAsL,OAAA,SAAAlM,EAAAgG,GACAhG,EAAAoL,EAAApL,GACAgG,EAAAuF,EAAAvF,EACA,IAAAmL,GAAA9N,KAAAxB,IAAA7B,EACAqD,MAAAxB,IAAA7B,GAAAmR,IAAA,IAAAnL,KAGAgG,EAAApL,UAAA,gBAAAZ,SACAqD,MAAAxB,IAAAuJ,EAAApL,KAGAgM,EAAApL,UAAAL,IAAA,SAAAP,GAEA,MADAA,GAAAoL,EAAApL,GACAqD,KAAA+N,IAAApR,GAAAqD,KAAAxB,IAAA7B,GAAA,MAGAgM,EAAApL,UAAAwQ,IAAA,SAAApR,GACA,MAAAqD,MAAAxB,IAAAhB,eAAAuK,EAAApL,KAGAgM,EAAApL,UAAA8M,IAAA,SAAA1N,EAAAgG,GACA3C,KAAAxB,IAAAuJ,EAAApL,IAAAuL,EAAAvF,IAGAgG,EAAApL,UAAAqB,QAAA,SAAA8G,EAAAsI,GACA,OAAArR,KAAAqD,MAAAxB,IACAwB,KAAAxB,IAAAhB,eAAAb,IACA+I,EAAAnJ,KAAAyR,EAAAhO,KAAAxB,IAAA7B,KAAAqD,OAKA2I,EAAApL,UAAAuB,KAAA,WACA,GAAAsJ,KAEA,OADApI,MAAApB,QAAA,SAAA+D,EAAAhG,GAAwCyL,EAAApG,KAAArF,KACxCwL,EAAAC,IAGAO,EAAApL,UAAAuK,OAAA,WACA,GAAAM,KAEA,OADApI,MAAApB,QAAA,SAAA+D,GAAkCyF,EAAApG,KAAAW,KAClCwF,EAAAC,IAGAO,EAAApL,UAAA0Q,QAAA,WACA,GAAA7F,KAEA,OADApI,MAAApB,QAAA,SAAA+D,EAAAhG,GAAwCyL,EAAApG,MAAArF,EAAAgG,MACxCwF,EAAAC,IAGAI,EAAAC,WACAE,EAAApL,UAAAmL,OAAAL,UAAAM,EAAApL,UAAA0Q,QAqJA,IAAA5B,IAAA,6CA4CAE,GAAAhP,UAAA2Q,MAAA,WACA,UAAA3B,GAAAvM,MAA8BiJ,KAAAjJ,KAAAyK,aA6B9BF,EAAAhO,KAAAgQ,EAAAhP,WAgBAgN,EAAAhO,KAAA8Q,EAAA9P,WAEA8P,EAAA9P,UAAA2Q,MAAA,WACA,UAAAb,GAAArN,KAAAyK,WACA8C,OAAAvN,KAAAuN,OACAE,WAAAzN,KAAAyN,WACA7E,QAAA,GAAAD,GAAA3I,KAAA4I,SACA6D,IAAAzM,KAAAyM,OAIAY,EAAA5J,MAAA,WACA,GAAA0K,GAAA,GAAAd,GAAA,MAAuCE,OAAA,EAAAE,WAAA,IAEvC,OADAU,GAAAzC,KAAA,QACAyC,EAGA,IAAAC,IAAA,oBAEAf,GAAAgB,SAAA,SAAA5B,EAAAc,GACA,QAAAa,EAAA9B,QAAAiB,GACA,SAAA3I,YAAA,sBAGA,WAAAyI,GAAA,MAA+BE,SAAA3E,SAA0B0F,SAAA7B,MAGzDpL,EAAAsH,UACAtH,EAAAkL,UACAlL,EAAAgM,WAEAhM,EAAAqM,MAAA,SAAAlB,EAAA+B,GACA,UAAAzN,SAAA,SAAAW,EAAAC,GACA,GAAA8M,GAAA,GAAAjC,GAAAC,EAAA+B,GACAE,EAAA,GAAAC,eAEAD,GAAApF,OAAA,WACA,GAAAlG,IACAoK,OAAAkB,EAAAlB,OACAE,WAAAgB,EAAAhB,WACA7E,QAAAsE,EAAAuB,EAAAE,yBAAA,IAEAxL,GAAAsJ,IAAA,eAAAgC,KAAAG,YAAAzL,EAAAyF,QAAA1L,IAAA,gBACA,IAAA+L,GAAA,YAAAwF,KAAAN,SAAAM,EAAAI,YACApN,GAAA,GAAA4L,GAAApE,EAAA9F,KAGAsL,EAAAlF,QAAA,WACA7H,EAAA,GAAA5D,WAAA,4BAGA2Q,EAAAK,UAAA,WACApN,EAAA,GAAA5D,WAAA,4BAGA2Q,EAAAM,KAAAP,EAAAtC,OAAAsC,EAAA/B,KAAA,GAEA,YAAA+B,EAAA9B,cACA+B,EAAAO,iBAAA,GAGA,gBAAAP,IAAAjG,EAAAiB,OACAgF,EAAAQ,aAAA,QAGAT,EAAA5F,QAAAhK,QAAA,SAAA+D,EAAAhG,GACA8R,EAAAS,iBAAAvS,EAAAgG,KAGA8L,EAAAU,KAAA,oBAAAX,GAAA/D,UAAA,KAAA+D,EAAA/D,cAGApJ,EAAAqM,MAAA0B,UAAA,IACC,oBAAA/N,WAAArB,OZ8+BK,SAAU5D,EAAQiT,EAAqBrT,GAE7C,YAU8f,SAASsT,GAAgBlP,EAAIb,EAAIoD,GAAyI,MAA/HpD,KAAOa,GAAKtD,OAAOC,eAAeqD,EAAIb,GAAKoD,MAAMA,EAAM1F,YAAW,EAAKD,cAAa,EAAKuS,UAAS,IAAanP,EAAIb,GAAKoD,EAAcvC,EAAK,QAASoP,GAAgBC,EAASC,GAAa,KAAKD,YAAoBC,IAAc,KAAM,IAAI5R,WAAU,qCAAuC,QAAS6R,GAA2BtO,EAAK9E,GAAM,IAAI8E,EAAM,KAAM,IAAIsD,gBAAe,4DAA8D,QAAOpI,GAAqB,iBAAPA,IAA+B,mBAAPA,GAAwB8E,EAAL9E,EAAW,QAASqT,GAAUC,EAASC,GAAY,GAAuB,mBAAbA,IAAsC,OAAbA,EAAmB,KAAM,IAAIhS,WAAU,iEAAkEgS,GAAaD,GAAStS,UAAUT,OAAOiT,OAAOD,GAAYA,EAAWvS,WAAWiE,aAAamB,MAAMkN,EAAS5S,YAAW,EAAMsS,UAAS,EAAKvS,cAAa,KAAW8S,IAAWhT,OAAOkT,eAAelT,OAAOkT,eAAeH,EAASC,GAAYD,EAASI,UAAUH,Gat7Ct9C,QAASI,GAAOC,GACd,GAAMC,GAAMC,SAASF,EAAMC,IAAK,IAC1BE,EAAMD,SAASF,EAAMG,IAAK,IAC1BC,EAAYH,EAAMI,KAAKC,KAAKD,KAAKE,MAAMN,IAAQ,EAC/CO,EAAWR,EAAMQ,UAAYL,GAAOF,CAC1C,OACEQ,GAAAjQ,EAAAkQ,cAAA,QAAMC,UAAU,UACdF,EAAAjQ,EAAAkQ,cAAA,SAAOnF,KAAK,QAAQ4E,IAAKA,EAAKF,IAAKA,EAAKzN,MAAOwN,EAAMxN,MACnDoO,SAAUZ,EAAMY,SAChBJ,SAAUA,IAEZC,EAAAjQ,EAAAkQ,cAAA,SAAOnF,KAAK,OAAO/I,MAAOwN,EAAMxN,MAC9BoO,SAAUZ,EAAMY,SAChBR,UAAWA,EACXI,SAAUA,EACVK,KAAMR,KAAKJ,IAAIG,EAAW,MAUlC,QAASU,GAAQ3R,EAAQ4R,GACvB,MAAOxJ,OAAMxI,MAAMI,OAAQA,GAAS4R,EAAK,SAACC,EAAG9U,GAAJ,MAAU6U,GAAE7U,QAAMwB,IAO7D,QAASuT,GAAQC,EAAQC,EAAOJ,GAC9B,MAAOxJ,OAAMxI,MAAMI,OAAQ+R,GAAS,SAACF,EAAG9U,GAAJ,MAAUqL,OAAMxI,MAAMI,OAAQgS,GAAQJ,EAAK,SAACK,EAAGC,GAAJ,MAAUN,GAAE7U,EAAGmV,QAAM3T,MAStG,QAAS4T,GAAkBC,EAAYC,EAAaC,EAASC,EAAUC,GACrE,MAAOtB,MAAKuB,OAAOL,EAAa,EAAIE,EAAUC,GAAYF,EAAc,GAAK,GAAKG,EAAS,GAM7F,QAASE,GAASN,EAAYC,EAAaC,EAASC,EAAUC,GAC5D,MAAOL,GAAkBC,EAAYC,EAAaC,EAASC,EAAUC,GAAU,EAYjF,QAASG,GAASC,EAAOC,EAAKC,GAC5B,IAAK,GAAI/V,GAAI6V,EAAO7V,GAAK8V,EAAK9V,IAC5B,IAAI+V,EAAK/V,GACT,MAAOA,GAAI,CAEb,OAAO8V,GAQT,QAASE,GAASH,EAAOC,EAAKC,GAC5B,IAAK,GAAI/V,GAAI6V,EAAO7V,GAAK8V,EAAK9V,IAC5B,IAAI+V,EAAK/V,GACT,MAAOA,GAAI,CAEb,OAAO8V,GAOT,QAASG,GAAOC,EAAO9U,GACrB,MAAO+U,GAAA,eAAkBD,EAAO,SAAS9U,GAsd3C,QAASgV,GAAKtC,GACZ,GAAMa,GAAOX,SAASF,EAAMa,KAAM,IAC5B0B,EAAOtB,EAAQJ,EAAMA,GACrB2B,EAAQD,EAAKlU,IAAI,SAACoU,EAAKvW,GAC3B,GAAMwW,GAAOD,EAAIpU,IAAI,SAACuI,EAAGyK,GAEvB,GAAMe,GAAQpC,EAAM2C,UAAY3C,EAAM2C,UAAUzW,EAAGmV,OAAK3T,EACxD,OAAO+S,GAAAjQ,EAAAkQ,cAAA,MAAItR,IAAKiS,EACLuB,OAAQC,gBAAiBT,GACzBU,aAAc9C,EAAM8C,aACL,SAAClM,GAAD,MAAOoJ,GAAM8C,aAAalM,EAAG1K,EAAGmV,QAAM3T,GACrDqV,aAAc/C,EAAM+C,aACL,SAACnM,GAAD,MAAOoJ,GAAM+C,aAAanM,EAAG1K,EAAGmV,QAAM3T,MAElE,OAAO+S,GAAAjQ,EAAAkQ,cAAA,MAAItR,IAAKlD,GAAIwW,IAEtB,OAAOjC,GAAAjQ,EAAAkQ,cAAA,aAAOD,EAAAjQ,EAAAkQ,cAAA,aAAQ8B,Ib82BxB7V,OAAOC,eAAesS,EAAqB,cAAgB1M,OAAO,GAC7C,IAAIwQ,GAAsCnX,EAAoB,GAC1D4U,EAA8C5U,EAAoBmB,EAAEgW,GACpEC,EAA0CpX,EAAoB,IAC9DqX,EAAkDrX,EAAoBmB,EAAEiW,GACxEZ,EAAqCxW,EAAoB,IAEzDsX,GAD6CtX,EAAoBmB,EAAEqV,GACxBxW,EAAoB,KAEpFuX,GADwEvX,EAAoBmB,EAAEmW,GACjF,WAAW,QAASE,GAAiBxU,EAAOmR,GAAO,IAAI,GAAI9T,GAAE,EAAEA,EAAE8T,EAAM7Q,OAAOjD,IAAI,CAAC,GAAIoX,GAAWtD,EAAM9T,EAAGoX,GAAWxW,WAAWwW,EAAWxW,aAAY,EAAMwW,EAAWzW,cAAa,EAAQ,SAAUyW,KAAWA,EAAWlE,UAAS,GAAKzS,OAAOC,eAAeiC,EAAOyU,EAAWlU,IAAIkU,IAAc,MAAO,UAAS/D,EAAYgE,EAAWC,GAAuI,MAAvHD,IAAWF,EAAiB9D,EAAYnS,UAAUmW,GAAeC,GAAYH,EAAiB9D,EAAYiE,GAAoBjE,Oar1CtekE,Eb83CK,SAASC,Ga73ClB,QAAAD,GAAYzD,GAAOX,EAAAxP,KAAA4T,EAAA,IAAAE,GAAAnE,EAAA3P,MAAA4T,EAAA3D,WAAAnT,OAAAiX,eAAAH,IAAArX,KAAAyD,KACXmQ,GADW,OAEjB2D,GAAKE,OACHtC,WAAY,EACZC,YAAa,EACbC,QAAS,EACTC,SAAU,EACVC,OAAQ,GAPOgC,Eb+4C6mG,MAlB5lGlE,GAAUgE,EAAIC,GAEpDN,EAAaK,IAAMrU,IAAI,oBAAoBoD,MAAM,Wah3C7C,GAAMqR,GAAQC,aAAaC,QAAQ,QAC/BF,IACFhU,KAAKmU,SAASpI,KAAKC,MAAMgI,Ob82CuIzU,IAAI,qBAAqBoD,MAAM,Waz2CjMsR,aAAaG,QAAQ,QAASrI,KAAKsI,UAAUrU,KAAKgU,Wby2C0OzU,IAAI,SAASoD,MAAM,Wa/0C/S,IAAK,GAvBE2R,GAAAtU,KACD0R,EAAa1R,KAAKgU,MAAMtC,WACxBC,EAAc3R,KAAKgU,MAAMrC,YACzBC,EAAU5R,KAAKgU,MAAMpC,QACrBC,EAAW7R,KAAKgU,MAAMnC,SACtBC,EAAS9R,KAAKgU,MAAMlC,OACpByC,EAAoB7C,EAAuB,EAAVE,EAIjC4C,EAAc/C,EAAkBC,EAAYC,EAAaC,EAASC,EAAUC,GAW5E2C,EAASrD,EAAQoD,EAAaA,EAAa,SAACnY,EAAGmV,GAAJ,MAAUJ,GAAQO,EAAaA,KAEvE+C,EAAQ,EAAGA,EAAQF,EAAaE,IACvC,IAAK,GAAIC,GAAQ,EAAGA,EAAQH,EAAaG,IACvC,IAAK,GAAIC,GAAS,EAAGA,EAASjD,EAAaiD,IACzC,IAAK,GAAIC,GAAS,EAAGA,EAASlD,EAAakD,IAAU,CAGnD,GAAMC,GAAOJ,EAAQ5C,EAAS8C,EAAS/C,EACjCkD,EAAOJ,EAAQ7C,EAAS+C,EAAShD,CACvC4C,GAAOC,GAAOC,GAAOC,GAAQC,GAAUC,EAAOP,EAAoBQ,EAQ1E,GAAMC,GAASlY,OAAOoB,QACpBqW,kBAAmBA,EACnBC,YAAaA,EACbC,OAAQA,GACPzU,KAAKgU,OAEFjD,EAAW,SAACkE,GAChB,MAAO,UAAClO,GACN,GAAMmO,GAAI7E,SAAStJ,EAAE/H,OAAO2D,MAAO,GAGlB,qBAANuS,IACTZ,EAAKH,SAAL7E,KAAgB2F,EAAYC,KAQlC,OACEtE,GAAAjQ,EAAAkQ,cAAA,WACED,EAAAjQ,EAAAkQ,cAAA,oCACAD,EAAAjQ,EAAAkQ,cAAA,OAAKC,UAAU,UAAf,kBACAF,EAAAjQ,EAAAkQ,cAAA,qaAOYD,EAAAjQ,EAAAkQ,cAAA,yBAPZ,8NAYAD,EAAAjQ,EAAAkQ,cAAA,QAAMC,UAAU,QACdF,EAAAjQ,EAAAkQ,cAAA,gBACED,EAAAjQ,EAAAkQ,cAAA,6BACAD,EAAAjQ,EAAAkQ,cAACX,GAAOI,IAAK+B,EArBE,GAqBuB,EAAG,SAAC8C,GAAD,MAAOnD,GAASmD,EAAGxD,EAAaC,EAASC,EAAUC,KACpF1B,IAtBO,GAuBPzN,MAAO+O,EACPX,SAAUA,EAAS,iBAG7BH,EAAAjQ,EAAAkQ,cAAA,gBACED,EAAAjQ,EAAAkQ,cAAA,8BACAD,EAAAjQ,EAAAkQ,cAACX,GAAOI,IAAI,IACJF,IAAK6B,EAAS,EAAG,IAAK,SAACkD,GAAD,MAAOnD,GAASN,EAAYyD,EAAGvD,EAASC,EAAUC,KACxEnP,MAAOgP,EACPZ,SAAUA,EAAS,kBAG7BH,EAAAjQ,EAAAkQ,cAAA,gBACED,EAAAjQ,EAAAkQ,cAAA,0BACAD,EAAAjQ,EAAAkQ,cAACX,GAAOI,IAAK+B,EAASR,GAAUF,EAAY,GAAI,EAC1B,SAACwD,GAAD,MAAOnD,GAASN,EAAYC,EAAawD,EAAGtD,EAAUC,KACpE1B,IAAKyB,GAAUF,EAAY,GAC3BhP,MAAOiP,EACPb,SAAUA,EAAS,cAG7BH,EAAAjQ,EAAAkQ,cAAA,gBACED,EAAAjQ,EAAAkQ,cAAA,2BACAD,EAAAjQ,EAAAkQ,cAACX,GAAOI,IAAI,IACJF,IAAK6B,EAAS,EAAG,IAAK,SAACkD,GAAD,MAAOnD,GAASN,EAAYC,EAAaC,EAASuD,EAAGrD,KAC3EnP,MAAOkP,EACPd,SAAUA,EAAS,YACnBJ,SAA0B,IAAhBgB,KAGpBf,EAAAjQ,EAAAkQ,cAAA,gBACED,EAAAjQ,EAAAkQ,cAAA,yBACAD,EAAAjQ,EAAAkQ,cAACX,GAAOI,IAAI,IACJF,IAAKI,KAAKJ,IAAIsB,EAAWG,GAAUF,EAAY,GAAI,GACnDhP,MAAOmP,EACPf,SAAUA,EAAS,cAI/BH,EAAAjQ,EAAAkQ,cAACuE,EAAaJ,Qb+vCmnGpB,Gah5CvnGhD,EAAAjQ,EAAM0U,WA4JlBD,EbwvCU,SAASE,GavvCvB,QAAAF,GAAYjF,GAAOX,EAAAxP,KAAAoV,EAAA,IAAAG,GAAA5F,EAAA3P,MAAAoV,EAAAnF,WAAAnT,OAAAiX,eAAAqB,IAAA7Y,KAAAyD,KACXmQ,GADW,OAEjBoF,GAAKvB,OAEHwB,cAAW3X,GAGX4X,WAAQ5X,GACR6X,WAAQ7X,GAGR8X,QAAS,GAXMJ,Eby0CyiD,MAlFlhD3F,GAAUwF,EAASE,GAO/D/B,EAAa6B,IAAW7V,IAAI,OAAOoD,MAAM,Wa3uCrC3C,KAAKmU,UAAUwB,QAAS3V,KAAKgU,MAAM2B,QAAU,Ob2uC0DpW,IAAI,oBAAoBoD,MAAM,WaxuCrI3C,KAAK4V,SAAW7P,YAAY/F,KAAK6V,KAAKrT,KAAKxC,MAAO,QbyuClDT,IAAI,uBAAuBoD,MAAM,WatuCjCkD,cAAc7F,KAAK4V,absuC+ErW,IAAI,SAASoD,MAAM,WazsCrH,QAASmT,GAAsB5E,GAC7B,MAAO,UAAC7U,EAAGmV,GACT,GAAI0D,GAAIhE,EAAE7U,EAAGmV,EASb,OAPE0D,GADe,oBAANA,GACL1C,EAAA,MAAS,SAETA,EAAA,MAAS0C,IAEX7Y,EAAIuV,GAAWvV,GAAKqV,EAAaE,GAAWJ,EAAII,GAAWJ,GAAKE,EAAaE,KAC/EsD,EAAIA,EAAEa,OAAO,MAERb,GAkDX,QAASc,GAAQ3Z,EAAGmV,GAClB,MAAOgB,GAAA,MAASA,EAAA,eAAkByD,EAAO5Z,GAAI6Z,EAAO1E,KAAKA,EAAEnV,IAAM8Z,EAAW,KAS9E,QAASC,GAAqCX,EAAQC,GAEpD,IAAK,GADCW,GAA+BpF,EAAQsD,EAAoBA,GACxD+B,EAAW,EAAGA,EAAW3E,EAAa2E,IAC7C,IAAK,GAAIC,GAAW,EAAGA,EAAW5E,EAAa4E,IAAY,CACzD,GAAMC,GAAa/B,EAAOgB,GAAQC,GAAQY,GAAUC,EAC1B,qBAAfC,KACXH,EAA6BG,IAAeF,EAAUC,IAG1D,MAAOF,GA1GF,GAAAI,GAAAzW,KACD0R,EAAa1R,KAAKmQ,MAAMuB,WACxB6C,EAAoBvU,KAAKmQ,MAAMoE,kBAC/B5C,EAAc3R,KAAKmQ,MAAMwB,YACzB6C,EAAcxU,KAAKmQ,MAAMqE,YACzBC,EAASzU,KAAKmQ,MAAMsE,OACpB7C,EAAU5R,KAAKmQ,MAAMyB,QACrBE,EAAS9R,KAAKmQ,MAAM2B,OAEtB0D,EAAYxV,KAAKgU,MAAMwB,UACvBC,EAASzV,KAAKgU,MAAMyB,OACpBC,EAAS1V,KAAKgU,MAAM0B,OAOpBgB,MAAiB7Y,GACjB8Y,MAAkB9Y,GAClB+Y,MAAkB/Y,GAuBhBgZ,EAAgB7W,KAAKgU,MAAM2B,SAAWnB,EAAcA,GACpDsC,EAAYtG,KAAKuB,MAAM8E,EAAgBrC,GACvCuC,EAAYF,EAAgBrC,CAI7BgB,KACHA,EAAY,SACZC,EAASqB,EACTpB,EAASqB,GAMO,UAAdvB,IACFA,EAAY,SACZC,EAASjF,KAAKF,IAAIE,KAAKuB,MAAM0D,EAAS3D,GAAS0C,EAAc,GAC7DkB,EAASlF,KAAKF,IAAIE,KAAKuB,MAAM2D,EAAS5D,GAAS0C,EAAc,GAuB/D,IAAM2B,GAAaxE,EACbsE,EAASzD,EAAA,gBAAmBA,EAAA,eAAkB,UAAW,YAAYwE,SAAS,EAAGb,IACjFD,EAAS1D,EAAA,gBAAmBA,EAAA,eAAkB,UAAWA,EAAA,MAAS,WAAWyE,SAAS,KAAKD,SAAS,EAAGb,GAwB7G,IAAkB,WAAdX,EAAwB,CAC1BoB,EAAkB,SAACva,EAAGmV,GACpB,GAAM0F,GAAO1E,EAAA,MAAS,OAEtB,OAAIiD,KAAWpZ,GAAKqZ,IAAWlE,EACtB0F,EAKLJ,IAAcza,GAAK0a,IAAcvF,EAC5Bc,EAAO4E,EAAM,QADtB,GAKF,IAAMb,GAA+BD,EAAqCX,EAAQC,GAC5EyB,EAAwCf,EAAqCU,EAAWC,EAE9FL,GAAiBZ,EAAsB,SAACzZ,EAAGmV,GAIzC,GAAM0D,GAAImB,EAA6Bha,EAAIkY,EAAoB/C,EAC/D,IAAI0D,EACF,MAAOc,GAAQd,EAAE,GAAIA,EAAE,GAMzB,IAAMxX,GAAIyZ,EAAsC9a,EAAIkY,EAAoB/C,EACxE,OAAI9T,GACK4U,EAAO0D,EAAQtY,EAAE,GAAIA,EAAE,IAAK,QADrC,KAMFiZ,EAAkB,SAACta,EAAGmV,GACpB,MAAOwE,GAAQ3Z,EAAGmV,QAIf,IAAkB,WAAdgE,EAAwB,CAEjCmB,EAAkB,SAACta,EAAGmV,GAEpB,GAAIiE,IAAWpZ,GAAKqZ,IAAWlE,EAC7B,MAAOwE,GAAQP,EAAQC,GAO3B,KAAK,GADC0B,GAAwBnG,EAAQsD,EAAoBA,GACjDG,EAAQ,EAAGA,EAAQF,EAAaE,IACvC,IAAK,GAAIC,GAAQ,EAAGA,EAAQH,EAAaG,IAAS,CAChD,GAAM6B,GAAa/B,EAAOC,GAAOC,GAAOc,GAAQC,EACtB,qBAAfc,KACXY,EAAsBZ,IAAe9B,EAAOC,IAIhD,GAAMwC,GAAwCf,EAAqCU,EAAWC,EAE9FL,GAAiBZ,EAAsB,SAACzZ,EAAGmV,GAIzC,GAAMe,GAAQyD,EAAQP,EAAQC,GAMxBhY,EAAIyZ,EAAsC9a,EAAIkY,EAAoB/C,EACxE,OAAI9T,IACEA,EAAE,KAAO+X,GAAU/X,EAAE,KAAOgY,EACvBnD,EAAMwD,OAAO,GAMdqB,EAAsB/a,EAAIkY,EAAoB/C,GAIlD9T,EACK4U,EAAOC,EAAO,IAEhBA,EAML7U,EACK4U,EAAO0D,EAAQtY,EAAE,GAAIA,EAAE,IAAK,QADrC,KAMFkZ,EAAkB,SAACva,EAAGmV,GACpB,GAAMe,GAAQyD,EAAQP,EAAQC,EAG9B,OAAIrZ,KAAMya,GAAatF,IAAMuF,EACpBxE,EAAMwD,OAAO,GAEfxD,GAIX,MACE3B,GAAAjQ,EAAAkQ,cAAA,OAAKC,UAAU,YACbF,EAAAjQ,EAAAkQ,cAAA,OAAKC,UAAU,kBAAf,UACUY,EADV,SACyBA,EADzB,KAEEd,EAAAjQ,EAAAkQ,cAAC4B,GAAKzB,KAAMU,EAAa,EAAIE,EACvBkB,UAAW4D,EACXzD,aAAc,SAAClM,EAAG1K,EAAGmV,GACnBiF,EAAKtC,UAAUqB,UAAW,QAASC,OAAQpZ,EAAGqZ,OAAQlE,KAExD0B,aAAc,SAACnM,EAAG1K,EAAGmV,GACnBiF,EAAKtC,UAAUqB,cAAW3X,GAAW4X,WAAQ5X,GAAW6X,WAAQ7X,SAI1E+S,EAAAjQ,EAAAkQ,cAAA,OAAKC,UAAU,kBAAf,WACWa,EADX,SAC2BA,EAD3B,KAEEf,EAAAjQ,EAAAkQ,cAAC4B,GAAKzB,KAAMW,EACNmB,UAAW6D,EACX1D,aAAc,SAAClM,EAAG1K,EAAGmV,GACnBiF,EAAKtC,UAAUqB,UAAW,SAAUC,OAAQpZ,EAAGqZ,OAAQlE,KAEzD0B,aAAc,SAACnM,EAAG1K,EAAGmV,GACnBiF,EAAKtC,UAAUqB,cAAW3X,GAAW4X,WAAQ5X,GAAW6X,WAAQ7X,SAI1E+S,EAAAjQ,EAAAkQ,cAAA,OAAKC,UAAU,kBAAf,WACW0D,EADX,SAC2BA,EAD3B,KAEE5D,EAAAjQ,EAAAkQ,cAAC4B,GAAKzB,KAAMwD,EACN1B,UAAW8D,EACX3D,aAAc,SAAClM,EAAG1K,EAAGmV,GACnBiF,EAAKtC,UAAUqB,UAAW,SAAUC,OAAQpZ,EAAGqZ,OAAQlE,KAEzD0B,aAAc,SAACnM,EAAG1K,EAAGmV,GACnBiF,EAAKtC,UAAUqB,cAAW3X,GAAW4X,WAAQ5X,GAAW6X,WAAQ7X,cb4iCm/CuX,Ga10C9iDxE,EAAAjQ,EAAM0U,UAuU7BhC,GAAA1S,EAAS0W,OACPzG,EAAAjQ,EAAAkQ,cAAC+C,EAAD,MACArN,SAAS+Q,eAAe,UbihCpB,SAAUlb,EAAQD,EAASH,GAEjC,Yc/lDA,SAAAub,GAAA5W,GAAc,OAAAE,GAAAxB,UAAAC,OAAA,EAAAyH,EAAA,yBAAApG,EAAA,6EAA4DA,EAAAlE,EAAA,EAAoFA,EAAAoE,EAAIpE,IAAAsK,GAAA,WAAAyQ,mBAAAnY,UAAA5C,EAAA,GAAoO,MAAzKoE,GAAA4K,MAAA1E,EAAA,kHAA4HlG,EAAAlE,KAAA,sBAA6BkE,EAAA4W,YAAA,EAAgB5W,EACjQ,QAAA6W,GAAA/W,EAAAE,EAAAkG,GAAkB/G,KAAAmQ,MAAAxP,EAAaX,KAAA2X,QAAA9W,EAAeb,KAAA4X,KAAAza,EAAY6C,KAAA6X,QAAA9Q,GAAA+Q,EAC/L,QAAAC,GAAApX,EAAAE,EAAAkG,GAAkB/G,KAAAmQ,MAAAxP,EAAaX,KAAA2X,QAAA9W,EAAeb,KAAA4X,KAAAza,EAAY6C,KAAA6X,QAAA9Q,GAAA+Q,EAAkB,QAAAE,MAAyH,QAAAC,GAAAtX,EAAAE,EAAAkG,GAAkB/G,KAAAmQ,MAAAxP,EAAaX,KAAA2X,QAAA9W,EAAeb,KAAA4X,KAAAza,EAAY6C,KAAA6X,QAAA9Q,GAAA+Q,EAC/P,QAAAI,GAAAvX,EAAAE,EAAAkG,GAAkB,GAAAtK,GAAAC,KAAUkK,EAAA,KAAAuR,EAAA,IAAe,UAAAtX,EAAA,IAAApE,SAAA,KAAAoE,EAAAuX,MAAAD,EAAAtX,EAAAuX,SAAA,KAAAvX,EAAAtB,MAAAqH,EAAA,GAAA/F,EAAAtB,KAAAsB,EAAAwX,EAAA9b,KAAAsE,EAAApE,KAAA6b,EAAA9a,eAAAf,KAAAC,EAAAD,GAAAoE,EAAApE,GAA4H,IAAAyU,GAAA7R,UAAAC,OAAA,CAAyB,QAAA4R,EAAAxU,EAAA6b,SAAAxR,MAAsB,MAAAmK,EAAA,CAAa,OAAAsH,GAAA9Q,MAAAwJ,GAAA5U,EAAA,EAAuBA,EAAA4U,EAAI5U,IAAAkc,EAAAlc,GAAA+C,UAAA/C,EAAA,EAAwBI,GAAA6b,SAAAC,EAAa,GAAA7X,KAAA8X,aAAA,IAAAhc,IAAAyU,GAAAvQ,EAAA8X,iBAAA,KAAA/b,EAAAD,KAAAC,EAAAD,GAAAyU,EAAAzU,GAA4E,QAAOic,SAAAxD,EAAAxJ,KAAA/K,EAAApB,IAAAqH,EAAAwR,IAAAD,EAAAhI,MAAAzT,EAAAic,OAAAC,EAAAC,SAAwD,QAAAC,GAAAnY,GAAc,uBAAAA,IAAA,OAAAA,KAAA+X,WAAAxD,EAC5b,QAAA6D,GAAApY,GAAmB,GAAAE,IAAOmY,IAAA,KAAAC,IAAA,KAA4B,eAAAtY,GAAAqM,QAAA,iBAAArM,GAA6C,MAAAE,GAAAF,KAAgC,QAAAuY,GAAAvY,EAAAE,EAAAkG,EAAAtK,GAAoB,GAAA0c,EAAA7Z,OAAA,CAAa,GAAA5C,GAAAyc,EAAAC,KAAsE,OAAxD1c,GAAA4M,OAAA3I,EAAWjE,EAAA2c,UAAAxY,EAAcnE,EAAA4c,KAAAvS,EAASrK,EAAAib,QAAAlb,EAAYC,EAAA6c,MAAA,EAAU7c,EAAS,OAAO4M,OAAA3I,EAAA0Y,UAAAxY,EAAAyY,KAAAvS,EAAA4Q,QAAAlb,EAAA8c,MAAA,GAA+C,QAAAC,GAAA7Y,GAAcA,EAAA2I,OAAA,KAAc3I,EAAA0Y,UAAA,KAAiB1Y,EAAA2Y,KAAA,KAAY3Y,EAAAgX,QAAA,KAAehX,EAAA4Y,MAAA,EAAU,GAAAJ,EAAA7Z,QAAA6Z,EAAAnX,KAAArB,GAC3X,QAAA8Y,GAAA9Y,EAAAE,EAAAkG,EAAAtK,GAAoB,GAAAC,SAAAiE,EAAe,eAAAjE,GAAA,YAAAA,IAAAiE,EAAA,KAAyC,IAAAiG,IAAA,CAAS,WAAAjG,EAAAiG,GAAA,MAAiB,QAAAlK,GAAe,0BAAAkK,GAAA,CAAiC,MAAM,qBAAAjG,EAAA+X,UAAiC,IAAAxD,GAAA,IAAAwE,GAAA,IAAAC,GAAA,IAAAxI,GAAAvK,GAAA,GAAkC,GAAAA,EAAA,MAAAG,GAAAtK,EAAAkE,EAAA,KAAAE,EAAA,IAAA+Y,EAAAjZ,EAAA,GAAAE,GAAA,CAAgE,IAAvB+F,EAAA,EAAI/F,EAAA,KAAAA,EAAA,IAAAA,EAAA,IAAmB6G,MAAAoB,QAAAnI,GAAA,OAAAwX,GAAA,EAAgCA,EAAAxX,EAAArB,OAAW6Y,IAAA,CAAKzb,EAAAiE,EAAAwX,EAAO,IAAAjH,GAAArQ,EAAA+Y,EAAAld,EAAAyb,EAAevR,IAAA6S,EAAA/c,EAAAwU,EAAAnK,EAAAtK,OAAc,WAAAkE,GAAA,oBAAAA,GAAAuQ,EAAA,MAAAA,EAAAiE,GAAAxU,EAAAwU,IAAAxU,EAAA,cAAAuQ,EAAA,mBAAAA,KAAA,yBAAAA,GAAA,IAAAvQ,EACnXuQ,EAAA3U,KAAAoE,GAAAwX,EAAA,IAAczb,EAAAiE,EAAA2H,QAAA5F,MAAmBhG,IAAAiG,MAAAuO,EAAArQ,EAAA+Y,EAAAld,EAAAyb,KAAAvR,GAAA6S,EAAA/c,EAAAwU,EAAAnK,EAAAtK,OAAsC,WAAAC,IAAAqK,EAAA,GAAApG,EAAA4W,EAAA,yBAAAxQ,EAAA,qBAA0EjK,OAAAgC,KAAA6B,GAAAlC,KAAA,UAA8BsI,EAAA,IAAS,OAAAH,GAAS,QAAAgT,GAAAjZ,EAAAE,GAAgB,uBAAAF,IAAA,OAAAA,GAAA,MAAAA,EAAApB,IAAAwZ,EAAApY,EAAApB,KAAAsB,EAAAsK,SAAA,IAA8E,QAAA0O,GAAAlZ,EAAAE,GAAgBF,EAAA2Y,KAAA/c,KAAAoE,EAAAgX,QAAA9W,EAAAF,EAAA4Y,SAC/S,QAAAO,GAAAnZ,EAAAE,EAAAkG,GAAkB,GAAAtK,GAAAkE,EAAA2I,OAAA5M,EAAAiE,EAAA0Y,SAA6B1Y,KAAA2Y,KAAA/c,KAAAoE,EAAAgX,QAAA9W,EAAAF,EAAA4Y,SAAqC7R,MAAAoB,QAAAnI,GAAAoZ,EAAApZ,EAAAlE,EAAAsK,EAAAtJ,EAAAwC,qBAAA,MAAAU,IAAAmY,EAAAnY,KAAAE,EAAAnE,IAAAiE,EAAApB,KAAAsB,KAAAtB,MAAAoB,EAAApB,IAAA,OAAAoB,EAAApB,KAAAyN,QAAAgN,EAAA,YAAAjT,EAAApG,GAA2I+X,SAAAxD,EAAAxJ,KAAA/K,EAAA+K,KAAAnM,IAAAsB,EAAAuX,IAAAzX,EAAAyX,IAAAjI,MAAAxP,EAAAwP,MAAAwI,OAAAhY,EAAAgY,SAAqElc,EAAAuF,KAAArB,IAAa,QAAAoZ,GAAApZ,EAAAE,EAAAkG,EAAAtK,EAAAC,GAAsB,GAAAkK,GAAA,EAAS,OAAAG,IAAAH,GAAA,GAAAG,GAAAiG,QAAAgN,EAAA,YAA4CnZ,EAAAqY,EAAArY,EAAA+F,EAAAnK,EAAAC,GAAa,MAAAiE,GAAA8Y,EAAA9Y,EAAA,GAAAmZ,EAAAjZ,GAAqB2Y,EAAA3Y,GARjZ,GAAArE,GAAAR,EAAA,GAAAmB,EAAAnB,EAAA,GAAAyB,EAAAzB,EAAA,GAAAie,EAAA,mBAAAvR,gBAAA,IAAAwM,EAAA+E,EAAAvR,OAAA,2BAAAgR,EAAAO,EAAAvR,OAAA,wBAAAiR,EAAAM,EAAAvR,OAAA,0BAAAyI,EAAA8I,EAAAvR,OAAA,0BAAA6I,EAAA0I,EAAAvR,OAAA,4BAAAyM,EAAA,mBAAAzM,gBAAAL,SAEbyP,GAAOoC,UAAA,WAAqB,UAASC,mBAAA,aAAgCC,oBAAA,aAAiCC,gBAAA,aAA2G3C,GAAAna,UAAA+c,oBAAgC5C,EAAAna,UAAA4W,SAAA,SAAAxT,EAAAE,GAAmC,iBAAAF,IAAA,mBAAAA,IAAA,MAAAA,GAAA4W,EAAA,MAAmEvX,KAAA6X,QAAAwC,gBAAAra,KAAAW,EAAAE,EAAA,aAAmD6W,EAAAna,UAAAgd,YAAA,SAAA5Z,GAAoCX,KAAA6X,QAAAsC,mBAAAna,KAAAW,EAAA,gBACpVqX,EAAAza,UAAAma,EAAAna,SAAwB,IAAAid,GAAAzC,EAAAxa,UAAA,GAAAya,EAAwBwC,GAAAhZ,YAAAuW,EAAgBvb,EAAAge,EAAA9C,EAAAna,WAAiBid,EAAAC,sBAAA,CAAsG,IAAAC,GAAAzC,EAAA1a,UAAA,GAAAya,EAAwB0C,GAAAlZ,YAAAyW,EAAgBzb,EAAAke,EAAAhD,EAAAna,WAAiBmd,EAAAC,gCAAA,EAAoCD,EAAArD,OAAA,WAAoB,MAAArX,MAAAmQ,MAAAoI,SAA4B,IAAAK,IAAOC,QAAA,MAAaR,EAAAvb,OAAAS,UAAAC,eAAA8a,GAAsC/Y,KAAA,EAAA6Y,KAAA,EAAAwC,QAAA,EAAAC,UAAA,GAEvWb,EAAA,OAAAb,KAIjH2B,GAAOC,UAAUvc,IAAA,SAAAmC,EAAAE,EAAAkG,GAAoB,SAAApG,EAAA,MAAAA,EAAoB,IAAAlE,KAAyB,OAAhBsd,GAAApZ,EAAAlE,EAAA,KAAAoE,EAAAkG,GAAgBtK,GAASmC,QAAA,SAAA+B,EAAAE,EAAAkG,GAAyB,SAAApG,EAAA,MAAAA,EAAoBE,GAAAqY,EAAA,UAAArY,EAAAkG,GAAmB,MAAApG,GAAA8Y,EAAA9Y,EAAA,GAAAkZ,EAAAhZ,GAAqB2Y,EAAA3Y,IAAK0Y,MAAA,SAAA5Y,GAAmB,aAAAA,EAAA,EAAA8Y,EAAA9Y,EAAA,GAAAlD,EAAAqC,gBAAA,OAAgDkb,QAAA,SAAAra,GAAqB,GAAAE,KAA2C,OAAlCkZ,GAAApZ,EAAAE,EAAA,KAAApD,EAAAwC,qBAAkCY,GAASoa,KAAA,SAAAta,GAAuC,MAArBmY,GAAAnY,IAAA4W,EAAA,OAAqB5W,IAAU0U,UAAAqC,EAAAwD,cAAAnD,EAAAoD,wBAAAlD,EAAAmD,SAAA7J,EAAAV,cAAAqH,EAAAmD,aAAA,SAAA1a,EAAAE,EAAAkG,GAA+G,GAAAtK,GAAAD,KAAUmE,EAAAwP,OAC3ezT,EAAAiE,EAAApB,IAAAqH,EAAAjG,EAAAyX,IAAAD,EAAAxX,EAAAgY,MAA2B,UAAA9X,EAAA,CAA+E,OAAnE,KAAAA,EAAAuX,MAAAxR,EAAA/F,EAAAuX,IAAAD,EAAAS,EAAAC,aAAsC,KAAAhY,EAAAtB,MAAA7C,EAAA,GAAAmE,EAAAtB,KAA6BoB,EAAA+K,MAAA/K,EAAA+K,KAAA+M,aAAA,GAAAvH,GAAAvQ,EAAA+K,KAAA+M,YAAyD,KAAAD,IAAA3X,GAAAwX,EAAA9b,KAAAsE,EAAA2X,KAAAF,EAAA9a,eAAAgb,KAAA/b,EAAA+b,OAAA,KAAA3X,EAAA2X,QAAA,KAAAtH,IAAAsH,GAAA3X,EAAA2X,IAAyF,GAAAA,GAAAnZ,UAAAC,OAAA,CAAyB,QAAAkZ,EAAA/b,EAAA8b,SAAAxR,MAAsB,MAAAyR,EAAA,CAAatH,EAAAxJ,MAAA8Q,EAAW,QAAAlc,GAAA,EAAYA,EAAAkc,EAAIlc,IAAA4U,EAAA5U,GAAA+C,UAAA/C,EAAA,EAAwBG,GAAA8b,SAAArH,EAAa,OAAOwH,SAAAxD,EAAAxJ,KAAA/K,EAAA+K,KAAAnM,IAAA7C,EAAA0b,IAAAxR,EAAAuJ,MAAA1T,EAAAkc,OAAAR,IAAqDmD,cAAA,SAAA3a,GAA2B,GAAAE,GAAAqX,EAAA1V,KAAA,KAAA7B,EAA8B,OAATE,GAAA6K,KAAA/K,EAASE,GAC7e0a,eAAAzC,EAAA0C,QAAA,SAAAC,oDAAsFC,kBAAA9C,EAAA1a,OAAA1B,IAA8Bmf,EAAA7e,OAAA8e,QAAkBC,QAAAf,IAAUgB,EAAAH,GAAAb,GAAAa,CAAYvf,GAAAD,QAAA2f,EAAA,QAAAA,EAAA,QAAAA,Gd+mDtJ,SAAU1f,EAAQD,EAASH,GAEjC,YenoDA,SAAA+f,KAEA,GACA,oBAAAC,iCACA,mBAAAA,gCAAAD,SAcA,IAEAC,+BAAAD,YACG,MAAAhd,GAGHiF,QAAAP,MAAA1E,IAOAgd,IACA3f,EAAAD,QAAAH,EAAA,Kf8oDM,SAAUI,EAAQD,EAASH,GAEjC,YgBrqDA,SAAAic,GAAAtX,GAAc,OAAAE,GAAAxB,UAAAC,OAAA,EAAA7C,EAAA,yBAAAkE,EAAA,6EAA4DA,EAAAjE,EAAA,EAAoFA,EAAAmE,EAAInE,IAAAD,GAAA,WAAA+a,mBAAAnY,UAAA3C,EAAA,GAAoO,MAAzKmE,GAAA4K,MAAAhP,EAAA,kHAA4HoE,EAAAlE,KAAA,sBAA6BkE,EAAA4W,YAAA,EAAgB5W,EAChO,QAAAob,GAAAtb,EAAAE,GAAiB,OAAAF,EAAAE,OAGvL,QAAAqb,GAAAvb,EAAAE,GAAiB,GAAAsb,GAAA3e,eAAAmD,IAAA,EAAAA,EAAArB,SAAA,MAAAqB,EAAA,UAAAA,EAAA,YAAAA,EAAA,UAAAA,EAAA,YAAiG,WAAAE,EAAA,QAAqB,cAAAA,IAAiB,oBAAAsb,IAAA3e,eAAAmD,MAAA,GAAAE,EAAAub,EAAAzb,MAAAE,EAAAwb,iBAAAxb,EAAAyb,uBAAAzb,EAAA0b,2BAAA5b,IAAAsH,cAAAN,MAAA,KAAAhH,EAAA,UAAAA,GAAA,UAAAA,IAAgM,gEAAoE,mBAAkB,QAAAyb,GAAAzb,GAAe,MAAA6b,IAAAhf,eAAAmD,GAAA6b,GAAA7b,GAAA,KAI5X,QAAA8b,GAAA9b,GAAe,MAAAA,GAAA,GAAAyL,cAIyK,QAAAsQ,GAAA/b,EAAAE,EAAApE,EAAAC,EAAAqK,EAAAmK,EAAAtK,EAAA4R,EAAAL,GAA+BsB,GAAAkD,iBAAA,EAAqBlD,GAAAmD,aAAA,IAAoB,IAAA3C,GAAAvS,MAAAnK,UAAAoK,MAAApL,KAAA8C,UAAA,EAA8C,KAAIwB,EAAAgc,MAAApgB,EAAAwd,GAAa,MAAA9I,GAASsI,GAAAmD,aAAAzL,EAAAsI,GAAAkD,iBAAA,GACzY,QAAAG,KAAc,GAAArD,GAAAsD,iBAAA,CAAuB,GAAApc,GAAA8Y,GAAAuD,aAAiE,MAA3CvD,IAAAuD,cAAA,KAAqBvD,GAAAsD,kBAAA,EAAsBpc,GACtG,QAAAsc,KAAc,GAAAC,GAAA,OAAAvc,KAAAwc,IAAA,CAAuB,GAAAtc,GAAAsc,GAAAxc,GAAAlE,EAAAygB,GAAA5Q,QAAA3L,EAAkD,KAAtB,EAAAlE,GAAAwb,EAAA,KAAAtX,IAAsByc,GAAA3gB,GAAA,CAAWoE,EAAAwc,eAAApF,EAAA,KAAAtX,GAAiCyc,GAAA3gB,GAAAoE,EAAQpE,EAAAoE,EAAAyc,UAAe,QAAA5gB,KAAAD,GAAA,CAAgB,GAAAsK,OAAA,GAAamK,EAAAzU,EAAAC,GAAAkK,EAAA/F,EAAA2X,EAAA9b,CAAmB6gB,IAAA/f,eAAAgb,IAAAP,EAAA,KAAAO,GAAsC+E,GAAA/E,GAAAtH,CAAQ,IAAAiH,GAAAjH,EAAAsM,uBAAgC,IAAArF,EAAA,CAAM,IAAApR,IAAAoR,KAAA3a,eAAAuJ,IAAA0W,EAAAtF,EAAApR,GAAAH,EAAA4R,EAA6CzR,IAAA,MAAKmK,GAAAwM,kBAAAD,EAAAvM,EAAAwM,iBAAA9W,EAAA4R,GAAAzR,GAAA,GAAAA,GAAA,CAA+DA,IAAAkR,EAAA,KAAAvb,EAAAiE,MAC/Y,QAAA8c,GAAA9c,EAAAE,EAAApE,GAAmBkhB,GAAAhd,IAAAsX,EAAA,MAAAtX,GAAwBgd,GAAAhd,GAAAE,EAAQ+c,GAAAjd,GAAAE,EAAAyc,WAAA7gB,GAAAohB,aAA+D,QAAAC,GAAAnd,GAAeuc,IAAAjF,EAAA,OAAmBiF,GAAAxV,MAAAnK,UAAAoK,MAAApL,KAAAoE,GAAiCsc,IAAK,QAAAc,GAAApd,GAAe,GAAAlE,GAAAoE,GAAA,CAAW,KAAApE,IAAAkE,GAAA,GAAAA,EAAAnD,eAAAf,GAAA,CAAmC,GAAAC,GAAAiE,EAAAlE,EAAW0gB,IAAA3f,eAAAf,IAAA0gB,GAAA1gB,KAAAC,IAAAygB,GAAA1gB,IAAAwb,EAAA,MAAAxb,GAAA0gB,GAAA1gB,GAAAC,EAAAmE,GAAA,GAAwEA,GAAAoc,IACnG,QAAAe,GAAArd,EAAAE,EAAApE,EAAAC,GAAqBmE,EAAAF,EAAA+K,MAAA,gBAA0B/K,EAAAsd,cAAAC,GAAAxhB,GAAsB+c,GAAA0E,wCAAAtd,EAAApE,MAAA,GAAAkE,GAAwDA,EAAAsd,cAAA,KACpW,QAAAG,GAAAzd,EAAAE,GAAwC,MAAvB,OAAAA,GAAAoX,EAAA,MAAuB,MAAAtX,EAAAE,EAAoB6G,MAAAoB,QAAAnI,GAAqB+G,MAAAoB,QAAAjI,IAAAF,EAAAqB,KAAA6a,MAAAlc,EAAAE,GAAAF,IAA+CA,EAAAqB,KAAAnB,GAAUF,GAAS+G,MAAAoB,QAAAjI,IAAAF,GAAA0d,OAAAxd,IAAAF,EAAAE,GAA4C,QAAAyd,GAAA3d,EAAAE,EAAApE,GAAmBiL,MAAAoB,QAAAnI,KAAA/B,QAAAiC,EAAApE,GAAAkE,GAAAE,EAAAtE,KAAAE,EAAAkE,GAClN,QAAAwB,GAAAxB,EAAAE,GAAiB,GAAAF,EAAA,CAAM,GAAAlE,GAAAkE,EAAA4d,mBAAA7hB,EAAAiE,EAAA6d,kBAAkD,IAAA9W,MAAAoB,QAAArM,GAAA,OAAAsK,GAAA,EAAgCA,EAAAtK,EAAA6C,SAAAqB,EAAA8d,uBAAsC1X,IAAAiX,EAAArd,EAAAE,EAAApE,EAAAsK,GAAArK,EAAAqK,QAAsBtK,IAAAuhB,EAAArd,EAAAE,EAAApE,EAAAC,EAAoBiE,GAAA4d,mBAAA,KAA0B5d,EAAA6d,mBAAA,KAA0B7d,EAAA+d,gBAAA/d,EAAAa,YAAAmd,QAAAhe,IAA4C,QAAAie,GAAAje,GAAe,MAAAwB,GAAAxB,GAAA,GAAgB,QAAAke,GAAAle,GAAe,MAAAwB,GAAAxB,GAAA,GACvU,QAAAme,GAAAne,EAAAE,GAAiB,GAAApE,GAAAkE,EAAAoe,SAAkB,KAAAtiB,EAAA,WAAkB,IAAAC,GAAAsiB,GAAAviB,EAAY,KAAAC,EAAA,WAAkBD,GAAAC,EAAAmE,EAAOF,GAAA,OAAAE,GAAY,gNAAAnE,KAAAiU,YAAAhQ,IAAA+K,KAAAhP,IAAA,WAAAiE,GAAA,UAAAA,GAAA,WAAAA,GAAA,aAAAA,IAAkTA,GAAAjE,CAAK,MAAAiE,EAAQ,SAAAA,GAAA,EAAa,MAAAA,GAAA,MAAiBlE,GAAA,mBAAAA,IAAAwb,EAAA,MAAApX,QAAApE,IACncA,GAAS,QAAAwiB,GAAAte,EAAAE,EAAApE,EAAAC,GAAqB,OAAAqK,GAAAmK,EAAA,EAAcA,EAAAkM,GAAA9d,OAAY4R,IAAA,CAAK,GAAAtK,GAAAwW,GAAAlM,EAAYtK,SAAAyW,cAAA1c,EAAAE,EAAApE,EAAAC,MAAAqK,EAAAqX,EAAArX,EAAAH,IAA6C,MAAAG,GAAS,QAAAmY,GAAAve,GAAeA,IAAAwe,GAAAf,EAAAe,GAAAxe,IAAiB,QAAAye,GAAAze,GAAe,GAAAE,GAAAse,EAASA,IAAA,KAAQte,IAAAF,EAAA2d,EAAAzd,EAAA+d,GAAAN,EAAAzd,EAAAge,GAAAM,IAAAlH,EAAA,MAAAwB,GAAA4F,sBAC/L,QAAAC,GAAA3e,GAAe,GAAAA,EAAAiZ,IAAA,MAAAjZ,GAAAiZ,GAAoB,QAAA/Y,OAAaF,EAAAiZ,KAAM,IAAA/Y,EAAAmB,KAAArB,MAAA4e,WAA0C,WAA1C5e,KAAA4e,WAA2D,GAAA9iB,OAAA,GAAAC,EAAAiE,EAAAiZ,GAAoB,QAAAld,EAAA8iB,KAAA,IAAA9iB,EAAA8iB,IAAA,MAAA9iB,EAAiC,MAAKiE,IAAAjE,EAAAiE,EAAAiZ,KAAYjZ,EAAAE,EAAAuY,MAAA3c,EAAAC,CAAc,OAAAD,GAAS,QAAAgjB,GAAA9e,GAAe,OAAAA,EAAA6e,KAAA,IAAA7e,EAAA6e,IAAA,MAAA7e,GAAAoe,SAA2C9G,GAAA,MAAQ,QAAAyH,GAAA/e,GAAe,MAAAA,GAAAgf,KAAA,KACpB,QAAAC,GAAAjf,GAAe,GAAAA,IAAA,aAAiBA,GAAA,IAAAA,EAAA6e,IAAoB,OAAA7e,IAAA,KAAgB,QAAAkf,GAAAlf,EAAAE,EAAApE,GAAmB,OAAAC,MAAaiE,GAAEjE,EAAAsF,KAAArB,KAAAif,EAAAjf,EAAmB,KAAAA,EAAAjE,EAAA4C,OAAe,EAAAqB,KAAME,EAAAnE,EAAAiE,GAAA,WAAAlE,EAAsB,KAAAkE,EAAA,EAAQA,EAAAjE,EAAA4C,OAAWqB,IAAAE,EAAAnE,EAAAiE,GAAA,UAAAlE,GAClc,QAAAqjB,GAAAnf,EAAAE,EAAApE,IAAmBoE,EAAAie,EAAAne,EAAAlE,EAAAsjB,eAAAvC,wBAAA3c,OAAApE,EAAA8hB,mBAAAH,EAAA3hB,EAAA8hB,mBAAA1d,GAAApE,EAAA+hB,mBAAAJ,EAAA3hB,EAAA+hB,mBAAA7d,IAAuJ,QAAAqf,GAAArf,GAAeA,KAAAof,eAAAvC,yBAAAqC,EAAAlf,EAAAsf,YAAAH,EAAAnf,GAAoE,QAAAuf,GAAAvf,GAAe,GAAAA,KAAAof,eAAAvC,wBAAA,CAAgD,GAAA3c,GAAAF,EAAAsf,WAAoBpf,KAAA+e,EAAA/e,GAAA,KAAegf,EAAAhf,EAAAif,EAAAnf,IAC/V,QAAAwf,GAAAxf,EAAAE,EAAApE,GAAmBkE,GAAAlE,KAAAsjB,eAAArC,mBAAA7c,EAAAie,EAAAne,EAAAlE,EAAAsjB,eAAArC,qBAAAjhB,EAAA8hB,mBAAAH,EAAA3hB,EAAA8hB,mBAAA1d,GAAApE,EAAA+hB,mBAAAJ,EAAA3hB,EAAA+hB,mBAAA7d,IAAwL,QAAAyf,GAAAzf,GAAeA,KAAAof,eAAArC,kBAAAyC,EAAAxf,EAAAsf,YAAA,KAAAtf,GAA+D,QAAA0f,GAAA1f,GAAe2d,EAAA3d,EAAAqf,GACxS,QAAAM,GAAA3f,EAAAE,EAAApE,EAAAC,GAAqB,GAAAD,GAAAC,EAAAiE,EAAA,CAAmB,OAARoG,GAAAtK,EAAQyU,EAAAxU,EAAAkK,EAAA,EAAA4R,EAAAzR,EAAoByR,EAAEA,EAAAoH,EAAApH,GAAA5R,GAAY4R,GAAA,CAAI,QAAAL,GAAAjH,EAAYiH,EAAEA,EAAAyH,EAAAzH,GAAAK,GAAY,MAAK,EAAA5R,EAAA4R,GAAMzR,EAAA6Y,EAAA7Y,GAAAH,GAAa,MAAK,EAAA4R,EAAA5R,GAAMsK,EAAA0O,EAAA1O,GAAAsH,GAAa,MAAK5R,KAAI,CAAE,GAAAG,IAAAmK,GAAAnK,IAAAmK,EAAAqP,UAAA,KAAA5f,EAAkCoG,GAAA6Y,EAAA7Y,GAAQmK,EAAA0O,EAAA1O,GAAQnK,EAAA,SAAOA,GAAA,IAAgB,KAAJmK,EAAAnK,EAAIA,KAAStK,OAAAyU,IAAyB,QAAdtK,EAAAnK,EAAA8jB,YAAc3Z,IAAAsK,IAAyBnK,EAAA/E,KAAAvF,GAAUA,EAAAmjB,EAAAnjB,EAAQ,KAAAA,KAASC,OAAAwU,IAAyB,QAAdtK,EAAAlK,EAAA6jB,YAAc3Z,IAAAsK,IAAyBzU,EAAAuF,KAAAtF,GAAUA,EAAAkjB,EAAAljB,EAAQ,KAAAA,EAAA,EAAQA,EAAAqK,EAAAzH,OAAW5C,IAAAyjB,EAAApZ,EAAArK,GAAA,UAAAiE,EAAyB,KAAAA,EAAAlE,EAAA6C,OAAe,EAAAqB,KAAMwf,EAAA1jB,EAAAkE,GAAA,WAAAE,GACvP,QAAA2f,KAAwG,OAA1FC,IAAAnkB,GAAAokB,YAAAD,GAAA,eAAAla,UAAAoa,gBAAA,2BAA0FF,GACxT,QAAAG,KAAc,GAAA9G,GAAA+G,cAAA,MAAA/G,IAAA+G,aAA0C,IAAAlgB,GAAAjE,EAAAmE,EAAAiZ,GAAAgH,WAAArkB,EAAAoE,EAAAvB,OAAAyH,EAAAga,IAAA7P,EAAAnK,EAAAzH,MAAoD,KAAAqB,EAAA,EAAQA,EAAAlE,GAAAoE,EAAAF,KAAAoG,EAAApG,GAAiBA,KAAK,GAAAiG,GAAAnK,EAAAkE,CAAU,KAAAjE,EAAA,EAAQA,GAAAkK,GAAA/F,EAAApE,EAAAC,KAAAqK,EAAAmK,EAAAxU,GAAsBA,KAA+C,MAA1Cod,IAAA+G,cAAA9Z,EAAAY,MAAAhH,EAAA,EAAAjE,EAAA,EAAAA,MAAA,IAA0Cod,GAAA+G,cAAuB,QAAAE,KAAc,eAAAjH,IAAAkH,MAAAlH,GAAAkH,MAAAre,MAAAmX,GAAAkH,MAAAR,KAEtQ,QAAAzG,GAAApZ,EAAAE,EAAApE,EAAAC,GAAoBsD,KAAA+f,eAAApf,EAAsBX,KAAAigB,YAAApf,EAAmBb,KAAAihB,YAAAxkB,EAAmBkE,EAAAX,KAAAwB,YAAA0f,SAA6B,QAAAna,KAAApG,KAAAnD,eAAAuJ,MAAAlG,EAAAF,EAAAoG,IAAA/G,KAAA+G,GAAAlG,EAAApE,GAAA,WAAAsK,EAAA/G,KAAAhB,OAAAtC,EAAAsD,KAAA+G,GAAAtK,EAAAsK,GAA+Q,OAA3K/G,MAAAmhB,oBAAA,MAAA1kB,EAAA2kB,iBAAA3kB,EAAA2kB,kBAAA,IAAA3kB,EAAA4kB,aAAArJ,GAAAnY,gBAAAmY,GAAApY,iBAA8HI,KAAAye,qBAAAzG,GAAApY,iBAA6CI,KAEpB,QAAAshB,GAAA3gB,EAAAE,EAAApE,EAAAC,GAAqB,GAAAsD,KAAAuhB,UAAAjiB,OAAA,CAA0B,GAAAyH,GAAA/G,KAAAuhB,UAAAnI,KAAgD,OAArBpZ,MAAAzD,KAAAwK,EAAApG,EAAAE,EAAApE,EAAAC,GAAqBqK,EAAS,UAAA/G,MAAAW,EAAAE,EAAApE,EAAAC,GAChd,QAAA8kB,GAAA7gB,GAAeA,YAAAX,OAAAiY,EAAA,OAAkCtX,EAAA8gB,aAAe,GAAAzhB,KAAAuhB,UAAAjiB,QAAAU,KAAAuhB,UAAAvf,KAAArB,GAAiD,QAAA+gB,GAAA/gB,GAAeA,EAAA4gB,aAAe5gB,EAAAghB,UAAAL,EAAe3gB,EAAAge,QAAA6C,EAAa,QAAAI,GAAAjhB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAA2D,QAAAmlB,GAAAlhB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAIhR,QAAAolB,GAAAnhB,EAAAE,GAAiB,OAAAF,GAAU,0BAAAohB,GAAAzV,QAAAzL,EAAAmhB,QAAiD,+BAAAnhB,EAAAmhB,OAAyC,4DAA+D,mBAAkB,QAAAC,GAAAthB,GAA0B,MAAXA,KAAAuhB,OAAW,iBAAAvhB,IAAA,QAAAA,KAAAgG,KAAA,KAA4D,QAAAwb,GAAAxhB,EAAAE,GAAiB,OAAAF,GAAU,8BAAAshB,GAAAphB,EAAsC,+BAAAA,EAAAuhB,MAAA,MAA+CC,IAAA,EAAMC,GAAU,0BAAA3hB,GAAAE,EAAA8F,KAAAhG,IAAA2hB,IAAAD,GAAA,KAAA1hB,CAAsD,sBACld,QAAA4hB,GAAA5hB,EAAAE,GAAiB,GAAA2hB,GAAA,4BAAA7hB,IAAA8hB,IAAAX,EAAAnhB,EAAAE,IAAAF,EAAAigB,IAAA9G,GAAAkH,MAAA,KAAAlH,GAAAgH,WAAA,KAAAhH,GAAA+G,cAAA,KAAA2B,IAAA,EAAA7hB,GAAA,IAA4H,QAAAA,GAAU,0BAA4B,wBAAAE,EAAA6hB,SAAA7hB,EAAA8hB,QAAA9hB,EAAA+hB,UAAA/hB,EAAA6hB,SAAA7hB,EAAA8hB,OAAA,CAA8E,GAAA9hB,EAAAgiB,MAAA,EAAAhiB,EAAAgiB,KAAAvjB,OAAA,MAAAuB,GAAAgiB,IAAyC,IAAAhiB,EAAAuhB,MAAA,MAAAhkB,QAAAG,aAAAsC,EAAAuhB,OAA+C,WAAY,+BAAAU,IAAA,KAAAjiB,EAAA8F,IAA+C,sBAEvO,QAAAoc,GAAApiB,GAAe,GAAAA,EAAAqiB,GAAAriB,GAAA,CAAYsiB,IAAA,mBAAAA,IAAAC,wBAAAjL,EAAA,MAAkE,IAAApX,GAAAme,GAAAre,EAAAoe,UAAsBkE,IAAAC,uBAAAviB,EAAAoe,UAAApe,EAAA+K,KAAA7K,IAA+G,QAAAsiB,GAAAxiB,GAAeyiB,GAAAC,MAAArhB,KAAArB,GAAA0iB,IAAA1iB,GAAAyiB,GAAAziB,EAC9Z,QAAA2iB,KAAc,GAAAF,GAAA,CAAO,GAAAziB,GAAAyiB,GAAAviB,EAAAwiB,EAA+B,IAAjBA,GAAAD,GAAA,KAAWL,EAAApiB,GAAME,EAAA,IAAAF,EAAA,EAAaA,EAAAE,EAAAvB,OAAWqB,IAAAoiB,EAAAliB,EAAAF,KAAkG,QAAA4iB,GAAA5iB,EAAAE,GAAiB,MAAAF,GAAAE,GAAsB,QAAA2iB,GAAA7iB,EAAAE,GAAiB,GAAA4iB,GAAA,MAAAF,GAAA5iB,EAAAE,EAAqB4iB,KAAA,CAAM,KAAI,MAAAF,GAAA5iB,EAAAE,GAAe,QAAQ4iB,IAAA,EAAAH,KAC5R,QAAAI,IAAA/iB,GAAe,GAAAE,GAAAF,KAAAgjB,UAAAhjB,EAAAgjB,SAAA1b,aAA8C,iBAAApH,IAAA+iB,GAAAjjB,EAAA+K,MAAA,aAAA7K,EAAoD,QAAAgjB,IAAAljB,GAAyG,MAA1FA,KAAA3B,QAAA2B,EAAAmjB,YAAA9gB,OAAiCrC,EAAAojB,0BAAApjB,IAAAojB,yBAAyD,IAAApjB,EAAAqjB,SAAArjB,EAAA4e,WAAA5e,EAC1N,QAAAsjB,IAAAtjB,EAAAE,GAAiB,IAAAvE,GAAAokB,WAAA7f,KAAA,oBAAA0F,WAAA,QAA8D1F,GAAA,KAAAF,CAAS,IAAAlE,GAAAoE,IAAA0F,SAAkM,OAA9K9J,OAAA8J,SAAAsK,cAAA,OAAApU,EAAAynB,aAAArjB,EAAA,WAA6DpE,EAAA,mBAAAA,GAAAoE,KAA+BpE,GAAA0nB,IAAA,UAAAxjB,IAAAlE,EAAA8J,SAAA6d,eAAAC,WAAA,uBAAkF5nB,EAAS,QAAA6nB,IAAA3jB,GAAe,GAAAE,GAAAF,EAAA+K,IAAa,QAAA/K,IAAAgjB,WAAA,UAAAhjB,EAAAsH,gBAAA,aAAApH,GAAA,UAAAA,GAC/T,QAAA0jB,IAAA5jB,GAAe,GAAAE,GAAAyjB,GAAA3jB,GAAA,kBAAAlE,EAAAK,OAAA0nB,yBAAA7jB,EAAAa,YAAAjE,UAAAsD,GAAAnE,EAAA,GAAAiE,EAAAE,EAAqG,KAAAF,EAAAnD,eAAAqD,IAAA,mBAAApE,GAAAS,KAAA,mBAAAT,GAAA4N,IAAA,MAAAvN,QAAAC,eAAA4D,EAAAE,GAAgH5D,WAAAR,EAAAQ,WAAAD,cAAA,EAAAE,IAAA,WAAuD,MAAAT,GAAAS,IAAAX,KAAAyD,OAAwBqK,IAAA,SAAA1J,GAAiBjE,EAAA,GAAAiE,EAAOlE,EAAA4N,IAAA9N,KAAAyD,KAAAW,OAAuB8jB,SAAA,WAAoB,MAAA/nB,IAASgoB,SAAA,SAAA/jB,GAAsBjE,EAAA,GAAAiE,GAAOgkB,aAAA,WAAyBhkB,EAAAikB,cAAA,WAAqBjkB,GAAAE,KAC1c,QAAAgkB,IAAAlkB,GAAeA,EAAAikB,gBAAAjkB,EAAAikB,cAAAL,GAAA5jB,IAAyC,QAAAmkB,IAAAnkB,GAAe,IAAAA,EAAA,QAAe,IAAAE,GAAAF,EAAAikB,aAAsB,KAAA/jB,EAAA,QAAe,IAAApE,GAAAoE,EAAA4jB,WAAmB/nB,EAAA,EAA2D,OAAlDiE,KAAAjE,EAAA4nB,GAAA3jB,KAAAokB,QAAA,eAAApkB,EAAAgC,QAA8ChC,EAAAjE,KAAID,IAAAoE,EAAA6jB,SAAA/jB,IAAA,GACzM,QAAAqkB,IAAArkB,EAAAE,EAAApE,GAA8E,MAA3DkE,GAAAoZ,EAAA4H,UAAAsD,GAAAC,OAAAvkB,EAAAE,EAAApE,GAA+BkE,EAAA+K,KAAA,SAAgByX,EAAA1mB,GAAM4jB,EAAA1f,GAAMA,EAA6B,QAAAwkB,IAAAxkB,GAAeue,EAAAve,GAAMye,GAAA,GAAO,QAAAgG,IAAAzkB,GAA2B,GAAAmkB,GAAZrF,EAAA9e,IAAY,MAAAA,GAAkB,QAAA0kB,IAAA1kB,EAAAE,GAAiB,iBAAAF,EAAA,MAAAE,GAAuH,QAAAykB,MAAcC,QAAAC,YAAA,mBAAAC,IAAAC,GAAAH,GAAA,MAAuD,QAAAE,IAAA9kB,GAAe,UAAAA,EAAAglB,cAAAP,GAAAM,MAAA/kB,EAAAqkB,GAAAU,GAAA/kB,EAAAkjB,GAAAljB,IAAA6iB,EAAA2B,GAAAxkB,IAChZ,QAAAilB,IAAAjlB,EAAAE,EAAApE,GAAmB,aAAAkE,GAAA2kB,KAAAC,GAAA1kB,EAAA6kB,GAAAjpB,EAAA8oB,GAAAM,YAAA,mBAAAJ,KAAA,YAAA9kB,GAAA2kB,KAA0F,QAAAQ,IAAAnlB,GAAe,0BAAAA,GAAA,aAAAA,GAAA,eAAAA,EAAA,MAAAykB,IAAAM,IAA4E,QAAAK,IAAAplB,EAAAE,GAAiB,gBAAAF,EAAA,MAAAykB,IAAAvkB,GAA+B,QAAAmlB,IAAArlB,EAAAE,GAAiB,gBAAAF,GAAA,cAAAA,EAAA,MAAAykB,IAAAvkB,GAEzO,QAAAolB,IAAAtlB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAA+I,QAAAwpB,IAAAvlB,GAAe,GAAAE,GAAAb,KAAAihB,WAAuB,OAAApgB,GAAAslB,iBAAAtlB,EAAAslB,iBAAAxlB,QAAAylB,GAAAzlB,OAAAE,EAAAF,GAAoE,QAAA0lB,MAAc,MAAAH,IAAU,QAAAI,IAAA3lB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAGlB,QAAA6pB,IAAA5lB,GAAwB,MAATA,KAAA+K,KAAS,iBAAA/K,KAAA,mBAAAA,KAAA6lB,aAAA7lB,EAAAhE,KAAA,KACjW,QAAA8pB,IAAA9lB,GAAe,GAAAE,GAAAF,CAAQ,IAAAA,EAAA4f,UAAA,KAAoB1f,EAAA,QAAYA,IAAA,WAAe,CAAK,UAAAA,EAAA6lB,WAAA,QAAgC,MAAK7lB,EAAA,QAAY,GAAAA,IAAA,cAAAA,EAAA6lB,WAAA,SAA+C,WAAA7lB,EAAA2e,IAAA,IAAqB,QAAAmH,IAAAhmB,GAAe,SAAAA,IAAAimB,sBAAA,IAAAH,GAAA9lB,GAA6C,QAAAkmB,IAAAlmB,GAAe,IAAA8lB,GAAA9lB,IAAAsX,EAAA,OAC3Q,QAAA6O,IAAAnmB,GAAe,GAAAE,GAAAF,EAAA4f,SAAkB,KAAA1f,EAAA,MAAAA,GAAA4lB,GAAA9lB,GAAA,IAAAE,GAAAoX,EAAA,WAAApX,EAAA,KAAAF,CAAwD,QAAAlE,GAAAkE,EAAAjE,EAAAmE,IAAiB,CAAE,GAAAkG,GAAAtK,EAAA,OAAAyU,EAAAnK,IAAAwZ,UAAA,IAAuC,KAAAxZ,IAAAmK,EAAA,KAAgB,IAAAnK,EAAAggB,QAAA7V,EAAA6V,MAAA,CAAsB,OAAAngB,GAAAG,EAAAggB,MAAkBngB,GAAE,CAAE,GAAAA,IAAAnK,EAAA,MAAAoqB,IAAA9f,GAAApG,CAAwB,IAAAiG,IAAAlK,EAAA,MAAAmqB,IAAA9f,GAAAlG,CAAwB+F,KAAAogB,QAAY/O,EAAA,OAAS,GAAAxb,EAAA,SAAAC,EAAA,OAAAD,EAAAsK,EAAArK,EAAAwU,MAAqC,CAAKtK,GAAA,CAAK,QAAA4R,GAAAzR,EAAAggB,MAAkBvO,GAAE,CAAE,GAAAA,IAAA/b,EAAA,CAAUmK,GAAA,EAAKnK,EAAAsK,EAAIrK,EAAAwU,CAAI,OAAM,GAAAsH,IAAA9b,EAAA,CAAUkK,GAAA,EAAKlK,EAAAqK,EAAItK,EAAAyU,CAAI,OAAMsH,IAAAwO,QAAY,IAAApgB,EAAA,CAAO,IAAA4R,EAAAtH,EAAA6V,MAAcvO,GAAE,CAAE,GAAAA,IAAA/b,EAAA,CAAUmK,GAAA,EAAKnK,EAAAyU,EAAIxU,EAAAqK,CAAI,OAAM,GAAAyR,IAAA9b,EAAA,CAAUkK,GAAA,EAAKlK,EAAAwU,EAAIzU,EAAAsK,CAAI,OAAMyR,IAAAwO,QAAYpgB,GAC9fqR,EAAA,QAAiBxb,EAAA8jB,YAAA7jB,GAAAub,EAAA,OAA0D,MAA1B,KAAAxb,EAAA+iB,KAAAvH,EAAA,OAA0Bxb,EAAAsiB,UAAAlG,UAAApc,EAAAkE,EAAAE,EAAmC,QAAAomB,IAAAtmB,GAAuB,KAARA,EAAAmmB,GAAAnmB,IAAQ,WAAkB,QAAAE,GAAAF,IAAa,CAAE,OAAAE,EAAA2e,KAAA,IAAA3e,EAAA2e,IAAA,MAAA3e,EAAiC,IAAAA,EAAAkmB,MAAAlmB,EAAAkmB,MAAA,OAAAlmB,MAAAkmB,UAAyC,CAAK,GAAAlmB,IAAAF,EAAA,KAAe,OAAKE,EAAAmmB,SAAW,CAAE,IAAAnmB,EAAA,QAAAA,EAAA,SAAAF,EAAA,WAA6CE,KAAA,OAAcA,EAAAmmB,QAAA,OAAAnmB,EAAA,OAAgCA,IAAAmmB,SAAa,YAC9X,QAAAE,IAAAvmB,GAAuB,KAARA,EAAAmmB,GAAAnmB,IAAQ,WAAkB,QAAAE,GAAAF,IAAa,CAAE,OAAAE,EAAA2e,KAAA,IAAA3e,EAAA2e,IAAA,MAAA3e,EAAiC,IAAAA,EAAAkmB,OAAA,IAAAlmB,EAAA2e,IAAA3e,EAAAkmB,MAAA,OAAAlmB,MAAAkmB,UAAoD,CAAK,GAAAlmB,IAAAF,EAAA,KAAe,OAAKE,EAAAmmB,SAAW,CAAE,IAAAnmB,EAAA,QAAAA,EAAA,SAAAF,EAAA,WAA6CE,KAAA,OAAcA,EAAAmmB,QAAA,OAAAnmB,EAAA,OAAgCA,IAAAmmB,SAAa,YAC3R,QAAAG,IAAAxmB,GAAe,GAAAE,GAAAF,EAAAymB,UAAmB,IAAG,IAAAvmB,EAAA,CAAOF,EAAA0mB,UAAArlB,KAAAnB,EAAoB,OAAM,GAAApE,EAAM,KAAAA,EAAAoE,EAAQpE,EAAA,QAAYA,IAAA,MAA0D,MAA3CA,EAAA,IAAAA,EAAA+iB,IAAA,KAAA/iB,EAAAsiB,UAAAuI,eAA2C,KAAY3mB,GAAA0mB,UAAArlB,KAAAnB,GAAoBA,EAAAye,EAAA7iB,SAAQoE,EAAS,KAAApE,EAAA,EAAQA,EAAAkE,EAAA0mB,UAAA/nB,OAAqB7C,IAAAoE,EAAAF,EAAA0mB,UAAA5qB,GAAA8qB,GAAA5mB,EAAA6mB,aAAA3mB,EAAAF,EAAAsgB,YAAA4C,GAAAljB,EAAAsgB,cAA8F,QAAAwG,IAAA9mB,GAAe+mB,KAAA/mB,EAAO,QAAAma,IAAAna,EAAAE,EAAApE,GAAkB,MAAAA,GAAAkrB,GAAAC,OAAAnrB,EAAAoE,EAAAgnB,GAAArlB,KAAA,KAAA7B,IAAA,KAA6C,QAAAmnB,IAAAnnB,EAAAE,EAAApE,GAAmB,MAAAA,GAAAkrB,GAAAI,QAAAtrB,EAAAoE,EAAAgnB,GAAArlB,KAAA,KAAA7B,IAAA,KAC9a,QAAAknB,IAAAlnB,EAAAE,GAAiB,GAAA6mB,GAAA,CAAO,GAAAjrB,GAAAonB,GAAAhjB,EAA2E,IAA/DpE,EAAA6iB,EAAA7iB,GAAQ,OAAAA,GAAA,iBAAAA,GAAA+iB,KAAA,IAAAiH,GAAAhqB,OAAA,MAAuDurB,GAAA1oB,OAAA,CAAc,GAAA5C,GAAAsrB,GAAA5O,KAAe1c,GAAA8qB,aAAA7mB,EAAiBjE,EAAAukB,YAAApgB,EAAgBnE,EAAA0qB,WAAA3qB,EAAekE,EAAAjE,MAAIiE,IAAQ6mB,aAAA7mB,EAAAsgB,YAAApgB,EAAAumB,WAAA3qB,EAAA4qB,aAAwD,KAAI7D,EAAA2D,GAAAxmB,GAAS,QAAQA,EAAA6mB,aAAA,KAAA7mB,EAAAsgB,YAAA,KAAAtgB,EAAAymB,WAAA,KAAAzmB,EAAA0mB,UAAA/nB,OAAA,KAAA0oB,GAAA1oB,QAAA0oB,GAAAhmB,KAAArB,KAC3C,QAAAsnB,IAAAtnB,EAAAE,GAAiB,GAAApE,KAAsI,OAA7HA,GAAAkE,EAAAsH,eAAApH,EAAAoH,cAAmCxL,EAAA,SAAAkE,GAAA,SAAAE,EAAyBpE,EAAA,MAAAkE,GAAA,MAAAE,EAAmBpE,EAAA,KAAAkE,GAAA,KAAAE,EAAiBpE,EAAA,IAAAkE,GAAA,IAAAE,EAAAoH,cAA6BxL,EAErX,QAAAyrB,IAAAvnB,GAAe,GAAAwnB,GAAAxnB,GAAA,MAAAwnB,IAAAxnB,EAAsB,KAAAynB,GAAAznB,GAAA,MAAAA,EAAmB,IAAAlE,GAAAoE,EAAAunB,GAAAznB,EAAc,KAAAlE,IAAAoE,GAAA,GAAAA,EAAArD,eAAAf,QAAA4rB,IAAA,MAAAF,IAAAxnB,GAAAE,EAAApE,EAA6D,UAIkF,QAAA6rB,IAAA3nB,GAAqF,MAAtE7D,QAAAS,UAAAC,eAAAjB,KAAAoE,EAAA4nB,MAAA5nB,EAAA4nB,IAAAC,KAAAC,GAAA9nB,EAAA4nB,SAAsEE,GAAA9nB,EAAA4nB,KAAiB,QAAAG,IAAA/nB,GAAe,KAAKA,KAAAgoB,YAAgBhoB,IAAAgoB,UAAgB,OAAAhoB,GAC/W,QAAAioB,IAAAjoB,EAAAE,GAAiB,GAAApE,GAAAisB,GAAA/nB,EAAYA,GAAA,CAAI,QAAAjE,GAAUD,GAAE,CAAE,OAAAA,EAAAunB,SAAA,CAA4C,GAAzBtnB,EAAAiE,EAAAlE,EAAAosB,YAAAvpB,OAAyBqB,GAAAE,GAAAnE,GAAAmE,EAAA,OAAqByF,KAAA7J,EAAAqsB,OAAAjoB,EAAAF,EAAmBA,GAAAjE,EAAIiE,EAAA,CAAG,KAAKlE,GAAE,CAAE,GAAAA,EAAAssB,YAAA,CAAkBtsB,IAAAssB,WAAgB,MAAApoB,GAAQlE,IAAA8iB,WAAe9iB,MAAA,GAASA,EAAAisB,GAAAjsB,IAAS,QAAAusB,IAAAroB,GAAe,GAAAE,GAAAF,KAAAgjB,UAAAhjB,EAAAgjB,SAAA1b,aAA8C,OAAApH,KAAA,UAAAA,GAAA,SAAAF,EAAA+K,MAAA,aAAA7K,GAAA,SAAAF,EAAAsoB,iBAE3R,QAAAC,IAAAvoB,EAAAE,GAAiB,GAAAsoB,IAAA,MAAAC,SAAAC,KAAA,WAAuC,IAAA5sB,GAAA2sB,EAAkP,OAAzO,kBAAA3sB,IAAAusB,GAAAvsB,MAA+ByV,MAAAzV,EAAA6sB,eAAAnX,IAAA1V,EAAA8sB,cAA0CvmB,OAAAwmB,cAAA/sB,EAAAuG,OAAAwmB,eAAA/sB,GAAiDgtB,WAAAhtB,EAAAgtB,WAAAC,aAAAjtB,EAAAitB,aAAAC,UAAAltB,EAAAktB,UAAAC,YAAAntB,EAAAmtB,cAAoGntB,MAAA,GAAWotB,IAAAC,GAAAD,GAAAptB,GAAA,MAAAotB,GAAAptB,EAAAkE,EAAAoZ,EAAA4H,UAAAoI,GAAAC,OAAAC,GAAAtpB,EAAAE,GAAAF,EAAA+K,KAAA,SAAA/K,EAAA3B,OAAAoqB,GAAA/I,EAAA1f,MAE3O,QAAAupB,IAAAvpB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAAwG,QAAAytB,IAAAxpB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAA2I,QAAA0tB,IAAAzpB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GACjX,QAAA2tB,IAAA1pB,GAAe,GAAAE,GAAAF,EAAAqhB,OAAwE,OAAxD,YAAArhB,GAAA,KAAAA,IAAA2pB,WAAA,KAAAzpB,IAAAF,EAAA,IAAAA,EAAAE,EAAwD,IAAAF,GAAA,KAAAA,IAAA,EAE+B,QAAA4pB,IAAA5pB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAE1E,QAAA8tB,IAAA7pB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAAoE,QAAA+tB,IAAA9pB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAA8K,QAAAguB,IAAA/pB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAClX,QAAAiuB,IAAAhqB,EAAAE,EAAApE,EAAAC,GAAqB,MAAAqd,GAAAxd,KAAAyD,KAAAW,EAAAE,EAAApE,EAAAC,GAKmO,QAAAif,IAAAhb,GAAc,EAAAiqB,KAAAjqB,EAAAkY,QAAAgS,GAAAD,IAAAC,GAAAD,IAAA,KAAAA,MAA0C,QAAA9O,IAAAnb,EAAAE,GAAgB+pB,KAAKC,GAAAD,IAAAjqB,EAAAkY,QAAiBlY,EAAAkY,QAAAhY,EAA2D,QAAAiqB,IAAAnqB,GAAe,MAAAoqB,IAAApqB,GAAAqqB,GAAAC,GAAApS,QACha,QAAAqS,IAAAvqB,EAAAE,GAAiB,GAAApE,GAAAkE,EAAA+K,KAAAyf,YAA0B,KAAA1uB,EAAA,MAAA+d,GAAe,IAAA9d,GAAAiE,EAAAoe,SAAkB,IAAAriB,KAAA0uB,8CAAAvqB,EAAA,MAAAnE,GAAA2uB,yCAA2G,IAAQna,GAARnK,IAAW,KAAAmK,IAAAzU,GAAAsK,EAAAmK,GAAArQ,EAAAqQ,EAAsI,OAAjHxU,KAAAiE,IAAAoe,UAAApe,EAAAyqB,4CAAAvqB,EAAAF,EAAA0qB,0CAAAtkB,GAAiHA,EAAS,QAAAgkB,IAAApqB,GAAe,WAAAA,EAAA6e,KAAA,MAAA7e,EAAA+K,KAAA4f,kBAAiD,QAAAC,IAAA5qB,GAAeoqB,GAAApqB,KAAAgb,GAAA6P,GAAA7qB,GAAAgb,GAAAsP,GAAAtqB,IACha,QAAA8qB,IAAA9qB,EAAAE,EAAApE,GAAmB,MAAAwuB,GAAAS,QAAAzT,EAAA,OAAgC6D,GAAAmP,GAAApqB,EAAAF,GAAUmb,GAAA0P,GAAA/uB,EAAAkE,GAAS,QAAAgrB,IAAAhrB,EAAAE,GAAiB,GAAApE,GAAAkE,EAAAoe,UAAAriB,EAAAiE,EAAA+K,KAAA4f,iBAA6C,uBAAA7uB,GAAAmvB,gBAAA,MAAA/qB,EAAkDpE,KAAAmvB,iBAAsB,QAAA7kB,KAAAtK,GAAAsK,IAAArK,IAAAub,EAAA,MAAAsO,GAAA5lB,IAAA,UAAAoG,EAAyD,OAAAgR,OAAWlX,EAAApE,GAAM,QAAAovB,IAAAlrB,GAAe,IAAAoqB,GAAApqB,GAAA,QAAmB,IAAAE,GAAAF,EAAAoe,SAA+G,OAA7Fle,QAAAirB,2CAAAtR,GAAoDwQ,GAAAC,GAAApS,QAAciD,GAAAmP,GAAApqB,EAAAF,GAAUmb,GAAA0P,MAAA3S,QAAAlY,IAAiB,EACva,QAAAorB,IAAAprB,EAAAE,GAAiB,GAAApE,GAAAkE,EAAAoe,SAAoC,IAAlBtiB,GAAAwb,EAAA,OAAkBpX,EAAA,CAAM,GAAAnE,GAAAivB,GAAAhrB,EAAAqqB,GAAevuB,GAAAqvB,0CAAApvB,EAA8Cif,GAAA6P,GAAA7qB,GAAOgb,GAAAsP,GAAAtqB,GAAQmb,GAAAmP,GAAAvuB,EAAAiE,OAAUgb,IAAA6P,GAAA7qB,EAAYmb,IAAA0P,GAAA3qB,EAAAF,GAC7J,QAAAqrB,IAAArrB,EAAAE,EAAApE,GAAkBuD,KAAAwf,IAAA7e,EAAWX,KAAAT,IAAAsB,EAAWb,KAAA+e,UAAA/e,KAAA0L,KAAA,KAA8B1L,KAAAgnB,QAAAhnB,KAAA+mB,MAAA/mB,KAAA,YAA4CA,KAAAoF,MAAA,EAAapF,KAAAisB,cAAAjsB,KAAAksB,YAAAlsB,KAAAmsB,cAAAnsB,KAAAosB,aAAApsB,KAAAoY,IAAA,KAAuFpY,KAAAqsB,mBAAA5vB,EAA0BuD,KAAA0mB,UAAA,EAAiB1mB,KAAAssB,WAAAtsB,KAAAusB,YAAAvsB,KAAAwsB,WAAA,KAAsDxsB,KAAAysB,eAAA,EAAsBzsB,KAAAugB,UAAA,KAC7U,QAAAmM,IAAA/rB,EAAAE,EAAApE,GAAmB,GAAAC,GAAAiE,EAAA4f,SAAgZ,OAA9X,QAAA7jB,KAAA,GAAAsvB,IAAArrB,EAAA6e,IAAA7e,EAAApB,IAAAoB,EAAA0rB,oBAAA3vB,EAAAgP,KAAA/K,EAAA+K,KAAAhP,EAAAqiB,UAAApe,EAAAoe,UAAAriB,EAAA6jB,UAAA5f,IAAA4f,UAAA7jB,MAAAgqB,UAAA,EAAAhqB,EAAA8vB,WAAA,KAAA9vB,EAAA6vB,YAAA,KAAA7vB,EAAA4vB,WAAA,MAA8L5vB,EAAA+vB,eAAAhwB,EAAmBC,EAAA0vB,aAAAvrB,EAAiBnE,EAAAqqB,MAAApmB,EAAAomB,MAAgBrqB,EAAAyvB,cAAAxrB,EAAAwrB,cAAgCzvB,EAAAuvB,cAAAtrB,EAAAsrB,cAAgCvvB,EAAAwvB,YAAAvrB,EAAAurB,YAA4BxvB,EAAAsqB,QAAArmB,EAAAqmB,QAAoBtqB,EAAA0I,MAAAzE,EAAAyE,MAAgB1I,EAAA0b,IAAAzX,EAAAyX,IAAY1b,EACna,QAAAiwB,IAAAhsB,EAAAE,EAAApE,GAAmB,GAAAC,OAAA,GAAAqK,EAAApG,EAAA+K,KAAAwF,EAAAvQ,EAAApB,GAAuW,OAAzU,mBAAAwH,IAAArK,EAAAqK,EAAAxJ,WAAAwJ,EAAAxJ,UAAA+c,iBAAA,GAAA0R,IAAA,EAAA9a,EAAArQ,GAAA,GAAAmrB,IAAA,EAAA9a,EAAArQ,GAAAnE,EAAAgP,KAAA3E,EAAArK,EAAA0vB,aAAAzrB,EAAAwP,OAAA,iBAAApJ,IAAArK,EAAA,GAAAsvB,IAAA,EAAA9a,EAAArQ,GAAAnE,EAAAgP,KAAA3E,EAAArK,EAAA0vB,aAAAzrB,EAAAwP,OAAA,iBAAApJ,IAAA,OAAAA,GAAA,iBAAAA,GAAAyY,KAAA9iB,EAAAqK,EAAArK,EAAA0vB,aAAAzrB,EAAAwP,OAAA8H,EAAA,YAAAlR,aAAA,IAAsTrK,EAAA+vB,eAAAhwB,EAAmBC,EAAS,QAAAkwB,IAAAjsB,EAAAE,EAAApE,EAAAC,GAAyE,MAApDmE,GAAA,GAAAmrB,IAAA,GAAAtvB,EAAAmE,GAAgBA,EAAAurB,aAAAzrB,EAAiBE,EAAA4rB,eAAAhwB,EAAmBoE,EAC5c,QAAAgsB,IAAAlsB,EAAAE,EAAApE,GAAyE,MAAtDoE,GAAA,GAAAmrB,IAAA,OAAAnrB,GAAkBA,EAAAurB,aAAAzrB,EAAiBE,EAAA4rB,eAAAhwB,EAAmBoE,EAAS,QAAAisB,IAAAnsB,EAAAE,EAAApE,GAA2F,MAAxEoE,GAAA,GAAAmrB,IAAA,EAAArrB,EAAApB,IAAAsB,GAAmBA,EAAA6K,KAAA/K,EAAAosB,QAAiBlsB,EAAAurB,aAAAzrB,EAAiBE,EAAA4rB,eAAAhwB,EAAmBoE,EAAS,QAAAmsB,IAAArsB,EAAAE,EAAApE,GAAwD,MAArCkE,GAAA,GAAAqrB,IAAA,OAAAnrB,GAAkBF,EAAA8rB,eAAAhwB,EAAmBkE,EAAS,QAAAssB,IAAAtsB,EAAAE,EAAApE,GAAwL,MAArKoE,GAAA,GAAAmrB,IAAA,EAAArrB,EAAApB,IAAAsB,GAAmBA,EAAAurB,aAAAzrB,EAAA4X,aAA8B1X,EAAA4rB,eAAAhwB,EAAmBoE,EAAAke,WAAauI,cAAA3mB,EAAA2mB,cAAA4F,gBAAA,KAAA9I,eAAAzjB,EAAAyjB,gBAAoFvjB,EAC/a,QAAAssB,IAAAxsB,GAAe,gBAAAE,GAAmB,IAAI,MAAAF,GAAAE,GAAY,MAAApE,MAAY,QAAA2wB,IAAAzsB,GAAe,uBAAAqb,gCAAA,QAAgE,IAAAnb,GAAAmb,8BAAqC,IAAAnb,EAAAwsB,aAAAxsB,EAAAysB,cAAA,QAA2C,KAAI,GAAA7wB,GAAAoE,EAAA0sB,OAAA5sB,EAAkB6sB,IAAAL,GAAA,SAAAxsB,GAAkB,MAAAE,GAAA4sB,kBAAAhxB,EAAAkE,KAAkC+sB,GAAAP,GAAA,SAAAxsB,GAAkB,MAAAE,GAAA8sB,qBAAAlxB,EAAAkE,KAAqC,MAAAjE,IAAU,SAAS,QAAAkxB,IAAAjtB,GAAe,mBAAA6sB,QAAA7sB,GAA8B,QAAAktB,IAAAltB,GAAe,mBAAA+sB,QAAA/sB,GAC7a,QAAAmtB,IAAAntB,GAAe,OAAOotB,UAAAptB,EAAA8rB,eAAA,EAAAuB,MAAA,KAAAC,KAAA,KAAAC,aAAA,KAAAC,gBAAA,EAAAC,eAAA,GAAwG,QAAAC,IAAA1tB,EAAAE,GAAiB,OAAAF,EAAAstB,KAAAttB,EAAAqtB,MAAArtB,EAAAstB,KAAAptB,GAAAF,EAAAstB,KAAA3lB,KAAAzH,EAAAF,EAAAstB,KAAAptB,IAAwD,IAAAF,EAAA8rB,gBAAA9rB,EAAA8rB,eAAA5rB,EAAA4rB,kBAAA9rB,EAAA8rB,eAAA5rB,EAAA4rB,gBACvM,QAAA6B,IAAA3tB,EAAAE,GAAiB,GAAApE,GAAAkE,EAAA4f,UAAA7jB,EAAAiE,EAAAurB,WAAkC,QAAAxvB,MAAAiE,EAAAurB,YAAA4B,GAAA,OAAqC,OAAArxB,EAAA,QAAAkE,EAAAlE,EAAAyvB,eAAAvrB,EAAAlE,EAAAyvB,YAAA4B,GAAA,OAAAntB,EAAA,KAAuEA,MAAAjE,EAAAiE,EAAA,KAAe,OAAAA,EAAA0tB,GAAA3xB,EAAAmE,GAAA,OAAAnE,EAAAuxB,MAAA,OAAAttB,EAAAstB,MAAAI,GAAA3xB,EAAAmE,GAAAwtB,GAAA1tB,EAAAE,KAAAwtB,GAAA3xB,EAAAmE,GAAAF,EAAAstB,KAAAptB,GAAmF,QAAA0tB,IAAA5tB,EAAAE,EAAApE,EAAAC,GAAsC,MAAjBiE,KAAA6tB,aAAiB,mBAAA7tB,KAAApE,KAAAsE,EAAApE,EAAAC,GAAAiE,EACvS,QAAA8tB,IAAA9tB,EAAAE,EAAApE,EAAAC,EAAAqK,EAAAmK,GAAyB,OAAAvQ,KAAAurB,cAAAzvB,MAAAoE,EAAAqrB,aAA+C6B,UAAAtxB,EAAAsxB,UAAAtB,eAAAhwB,EAAAgwB,eAAAuB,MAAAvxB,EAAAuxB,MAAAC,KAAAxxB,EAAAwxB,KAAAG,cAAA3xB,EAAA2xB,cAAAF,aAAA,KAAAC,gBAAA,IAAoJ1xB,EAAAgwB,eAAA,EAAmBhwB,EAAA2xB,cAAAztB,EAAAlE,EAAAsxB,WAAAptB,EAAAlE,EAAAsxB,UAAAltB,EAAAorB,cAAAxvB,EAAA2xB,eAAA,EAAiF,QAAAxnB,IAAA,EAAA4R,EAAA/b,EAAAuxB,MAAA7V,GAAA,EAA4B,OAAAK,GAAS,CAAE,GAAAyB,GAAAzB,EAAAiU,cAAuB,IAAAxS,EAAA/I,EAAA,CAAQ,GAAAC,GAAA1U,EAAAgwB,gBAAuB,IAAAtb,KAAA8I,KAAAxd,EAAAgwB,eAAAxS,GAAiC9B,OAAA,EAAA1b,EAAAsxB,UAAAptB,OAA6BwX,KAAA1b,EAAAuxB,MAAAxV,EAAAlQ,KAAA,OAC3d7L,EAAAuxB,QAAAvxB,EAAAwxB,KAAA,OAAwBzV,EAAAkW,WAAA/tB,EAAA4tB,GAAA/V,EAAA9b,EAAAiE,EAAAoG,GAAAH,GAAA,IAAkCqT,EAAAsU,GAAA/V,EAAA9b,EAAAiE,EAAAoG,MAAApG,EAAAiG,EAAAmR,MAA8BpX,EAAAsZ,GAAAlC,GAAApX,EAAAsZ,GAAArT,GAAA,GAAkB4R,EAAAmW,WAAAlyB,EAAA0xB,gBAAA,GAAkC,OAAA3V,EAAA9S,WAAAuU,EAAAxd,EAAAyxB,aAAA,OAAAjU,MAAAxd,EAAAyxB,iBAAAjU,EAAAjY,KAAAwW,GAAgFA,KAAAlQ,KAAyH,MAAhH,QAAA7L,EAAAyxB,aAAArtB,EAAA6lB,WAAA,UAAAjqB,EAAAuxB,OAAAvxB,EAAA0xB,iBAAAttB,EAAAqrB,YAAA,MAA6F/T,IAAA1b,EAAAsxB,UAAAptB,GAAmBA,EACrV,QAAAiuB,IAAAjuB,EAAAE,GAAiB,GAAApE,GAAAkE,EAAAutB,YAAqB,WAAAzxB,EAAA,IAAAkE,EAAAutB,aAAA,KAAAvtB,EAAA,EAAwCA,EAAAlE,EAAA6C,OAAWqB,IAAA,CAAK,GAAAjE,GAAAD,EAAAkE,GAAAoG,EAAArK,EAAAgJ,QAAwBhJ,GAAAgJ,SAAA,KAAgB,mBAAAqB,IAAAkR,EAAA,MAAAlR,GAAwCA,EAAAxK,KAAAsE,IAC9K,QAAAguB,IAAAluB,EAAAE,EAAApE,EAAAC,GAAqB,QAAAqK,GAAApG,EAAAE,GAAgBA,EAAAgX,QAAA3G,EAAYvQ,EAAAoe,UAAAle,EAAcA,EAAA+lB,oBAAAjmB,EAAwB,GAAAuQ,IAAOgJ,UAAAyM,GAAAtM,gBAAA,SAAA5d,EAAAC,EAAAqK,GAA6CtK,IAAAmqB,oBAAwB7f,MAAA,KAAAA,EAAA,KAAAA,CAAoB,IAAAH,GAAA/F,EAAApE,EAAW6xB,IAAA7xB,GAAMgwB,eAAA7lB,EAAA4nB,aAAA9xB,EAAAgJ,SAAAqB,EAAA2nB,WAAA,EAAAC,UAAA,EAAAG,aAAA,KAAAxmB,KAAA,OAAkG3H,EAAAlE,EAAAmK,IAAOwT,oBAAA,SAAA3d,EAAAC,EAAAqK,GAAqCtK,IAAAmqB,oBAAwB7f,MAAA,KAAAA,EAAA,KAAAA,CAAoB,IAAAH,GAAA/F,EAAApE,EAAW6xB,IAAA7xB,GAAMgwB,eAAA7lB,EAAA4nB,aAAA9xB,EAAAgJ,SAAAqB,EAAA2nB,WAAA,EAAAC,UAAA,EAAAG,aAAA,KAAAxmB,KAAA,OACnZ3H,EAAAlE,EAAAmK,IAAOuT,mBAAA,SAAA1d,EAAAC,GAAkCD,IAAAmqB,oBAAwBlqB,MAAA,KAAAA,EAAA,KAAAA,CAAoB,IAAAqK,GAAAlG,EAAApE,EAAW6xB,IAAA7xB,GAAMgwB,eAAA1lB,EAAAynB,aAAA,KAAA9oB,SAAAhJ,EAAAgyB,WAAA,EAAAC,UAAA,EAAAG,aAAA,KAAAxmB,KAAA,OAAqG3H,EAAAlE,EAAAsK,IAAS,QAAOgoB,mBAAAhoB,EAAAioB,uBAAA,SAAAruB,EAAAE,GAA0D,GAAApE,GAAAkE,EAAA+K,KAAAhP,EAAAouB,GAAAnqB,GAAAuQ,EAAA,IAAAvQ,EAAA6e,KAAA,MAAA7e,EAAA+K,KAAAyf,aAAAvkB,EAAAsK,EAAAga,GAAAvqB,EAAAjE,GAAA8d,EAA+M,OAArI3Z,GAAA,GAAApE,GAAAoE,EAAA+F,GAAaG,EAAApG,EAAAE,GAAOqQ,IAAAvQ,IAAAoe,UAAApe,EAAAyqB,4CAAA1uB,EAAAiE,EAAA0qB,0CAAAzkB,GAAiH/F,GAASouB,mBAAA,SAAAtuB,EAC7eE,GAAG,GAAApE,GAAAkE,EAAA4f,UAAA7jB,EAAAiE,EAAAoe,UAAAhY,EAAArK,EAAAsX,OAAA,KAAApN,EAAAjG,EAAAyrB,YAAiExlB,IAAAqR,EAAA,MAAkB,IAAAO,GAAAsS,GAAAnqB,EAAYjE,GAAAyT,MAAAvJ,EAAUlK,EAAAsX,MAAArT,EAAAsrB,cAAAllB,EAA0BrK,EAAAkb,KAAA4C,GAAS9d,EAAAib,QAAAuT,GAAAvqB,EAAA6X,GAAkB,MAAA7X,EAAA+K,MAAA,MAAA/K,EAAA+K,KAAAnO,YAAA,IAAAoD,EAAA+K,KAAAnO,UAAAod,iCAAAha,EAAA0rB,oBAAA,GAAsH,mBAAA3vB,GAAAwyB,qBAAAnoB,EAAArK,EAAAsX,MAAAtX,EAAAwyB,qBAAAnoB,IAAArK,EAAAsX,OAAA9C,EAAAkJ,oBAAA1d,IAAAsX,MAAA,cAAAjN,EAAApG,EAAAurB,eAAAxvB,EAAAsX,MAAAya,GAAAhyB,EAAAkE,EAAAoG,EAAArK,EAAAkK,EAAA/F,KAAoL,mBAAAnE,GAAAyyB,oBAAAxuB,EAAA+lB,WAC3c,IAAG0I,oBAAA,SAAAzuB,EAAAE,EAAAkG,GAAqC,GAAAH,GAAA/F,EAAAke,SAAkBnY,GAAAuJ,MAAAtP,EAAAsrB,cAAwBvlB,EAAAoN,MAAAnT,EAAAorB,aAAwB,IAAAzT,GAAA3X,EAAAsrB,cAAAhU,EAAAtX,EAAAurB,YAAuCjU,IAAA,OAAAA,EAAAK,IAAAP,EAAA,MAAiC,IAAA0B,GAAA/S,EAAA+Q,QAAAG,EAAAgT,GAAAjqB,EAAwQ,IAAhPiX,EAAAoT,GAAArqB,EAAAiX,GAAU,mBAAAlR,GAAAyoB,2BAAA7W,IAAAL,GAAAwB,IAAA7B,IAAA6B,EAAA/S,EAAAoN,MAAApN,EAAAyoB,0BAAAlX,EAAAL,GAAAlR,EAAAoN,QAAA2F,GAAAzI,EAAAkJ,oBAAAxT,IAAAoN,MAAA,OAA+J2F,EAAA9Y,EAAAorB,cAAkBllB,EAAA,OAAAlG,EAAAqrB,YAAAuC,GAAA9tB,EAAAE,IAAAqrB,YAAAtlB,EAAAuR,EAAApR,GAAA4S,IAAqDnB,IAAAL,GAAAwB,IAAA5S,GAAAykB,GAAA3S,SAAA,OAAAhY,EAAAqrB,aAAArrB,EAAAqrB,YAAAiC,gBAAA,yBAC1bvnB,GAAA0oB,oBAAA9W,IAAA7X,EAAAwrB,eAAAxS,IAAAhZ,EAAAsrB,gBAAAprB,EAAA6lB,WAAA,KAA2F,IAAA9N,GAAAT,CAAQ,WAAAK,GAAA,OAAA3X,EAAAqrB,aAAArrB,EAAAqrB,YAAAiC,eAAAvV,GAAA,MAAqE,CAAK,GAAAN,GAAAzX,EAAAke,UAAA/E,EAAAnZ,EAAA6K,IAA2BkN,GAAA,mBAAAN,GAAAiX,sBAAAjX,EAAAiX,sBAAA3W,EAAA7R,EAAA+Q,IAAAkC,EAAAzc,YAAAyc,EAAAzc,UAAAkd,wBAAAqP,GAAAtR,EAAAI,KAAAkR,GAAAnQ,EAAA5S,IAC9F,MAD+O6R,IAAA,mBAAAhS,GAAA4oB,qBAAA5oB,EAAA4oB,oBAAArX,EAAApR,EAAA+Q,GAAA,mBAAAlR,GAAA0oB,qBAAAzuB,EAAA6lB,WAAA,wBAAA9f,GAAA0oB,oBACzV9W,IAAA7X,EAAAwrB,eAAAxS,IAAAhZ,EAAAsrB,gBAAAprB,EAAA6lB,WAAA,GAAAjqB,EAAAoE,EAAAsX,GAAAzb,EAAAmE,EAAAkG,IAA0EH,EAAAuJ,MAAAgI,EAAUvR,EAAAoN,MAAAjN,EAAUH,EAAA+Q,QAAAG,EAAYc,IAC1G,QAAA6W,IAAA9uB,GAAe,cAAAA,GAAA,oBAAAA,GAAA,MAAgDA,EAAA+uB,IAAA/uB,EAAA+uB,KAAA/uB,EAAA,cAA6B,mBAAAA,KAAA,MAC5F,QAAAgvB,IAAAhvB,EAAAE,GAAiB,GAAApE,GAAAoE,EAAAuX,GAAY,WAAA3b,GAAA,mBAAAA,GAAA,CAAoC,GAAAoE,EAAA8X,OAAA,CAAa9X,IAAA8X,MAAW,IAAAjc,OAAA,EAAamE,KAAA,IAAAA,EAAA2e,KAAAvH,EAAA,OAAAvb,EAAAmE,EAAAke,WAA6CriB,GAAAub,EAAA,MAAAxb,EAAoB,IAAAsK,GAAA,GAAAtK,CAAW,eAAAkE,GAAA,OAAAA,EAAAyX,KAAAzX,EAAAyX,IAAAwX,aAAA7oB,EAAApG,EAAAyX,KAA6DzX,EAAA,SAAAA,GAAc,GAAAE,GAAAnE,EAAAkb,OAAA4C,GAAA9d,EAAAkb,QAA0Blb,EAAAkb,IAAQ,QAAAjX,QAAAE,GAAAkG,GAAAlG,EAAAkG,GAAApG,GAA6BA,EAAAivB,WAAA7oB,EAAepG,GAAS,iBAAAlE,IAAAwb,EAAA,OAAoCpX,EAAA8X,QAAAV,EAAA,MAAAxb,GAA2B,MAAAA,GACnZ,QAAAozB,IAAAlvB,EAAAE,GAAiB,aAAAF,EAAA+K,MAAAuM,EAAA,yBAAAnb,OAAAS,UAAA4N,SAAA5O,KAAAsE,GAAA,qBAAqG/D,OAAAgC,KAAA+B,GAAApC,KAAA,UAA8BoC,EAAA,IACpJ,QAAAivB,IAAAnvB,GAAe,QAAAE,KAAApE,GAAgB,GAAAkE,EAAA,CAAM,GAAAjE,GAAAmE,EAAAyrB,UAAmB,QAAA5vB,KAAA8vB,WAAA/vB,EAAAoE,EAAAyrB,WAAA7vB,GAAAoE,EAAA0rB,YAAA1rB,EAAAyrB,WAAA7vB,EAAsEA,EAAA+vB,WAAA,KAAkB/vB,EAAAiqB,UAAA,GAAe,QAAAjqB,KAAAC,GAAgB,IAAAiE,EAAA,WAAkB,MAAK,OAAAjE,GAASmE,EAAApE,EAAAC,OAAAsqB,OAAoB,aAAY,QAAAtqB,GAAAiE,EAAAE,GAAgB,IAAAF,EAAA,GAAAovB,KAAc,OAAAlvB,GAAS,OAAAA,EAAAtB,IAAAoB,EAAA0J,IAAAxJ,EAAAtB,IAAAsB,GAAAF,EAAA0J,IAAAxJ,EAAAuE,MAAAvE,OAAAmmB,OAA0D,OAAArmB,GAAS,QAAAoG,GAAApG,EAAAE,EAAApE,GAAuD,MAArCkE,GAAA+rB,GAAA/rB,EAAAE,EAAApE,GAAYkE,EAAAyE,MAAA,EAAUzE,EAAAqmB,QAAA,KAAermB,EAAS,QAAAuQ,GAAArQ,EAAApE,EAAAC,GAA4B,MAAVmE,GAAAuE,MAAA1I,EAAUiE,EAA6B,QAAdjE,EAAAmE,EAAA0f,YAAc7jB,IAAA0I,MAAA1I,EAAAD,GAAAoE,EAAA6lB,UACld,EAAAjqB,GAAAC,IAAOmE,EAAA6lB,UAAA,EAAcjqB,GADgaA,EACvZ,QAAAmK,GAAA/F,GAAqD,MAAvCF,IAAA,OAAAE,EAAA0f,YAAA1f,EAAA6lB,UAAA,GAAuC7lB,EAAS,QAAA2X,GAAA7X,EAAAE,EAAApE,EAAAC,GAAoB,cAAAmE,GAAA,IAAAA,EAAA2e,KAAA3e,EAAAgsB,GAAApwB,EAAAkE,EAAA0rB,mBAAA3vB,GAAAmE,EAAA,OAAAF,EAAAE,IAA6EA,EAAAkG,EAAAlG,EAAApE,EAAAC,GAAWmE,EAAA,OAAAF,EAAcE,GAAS,QAAAsX,GAAAxX,EAAAE,EAAApE,EAAAC,GAAoB,cAAAmE,KAAA6K,OAAAjP,EAAAiP,MAAAhP,EAAAqK,EAAAlG,EAAApE,EAAA0T,MAAAzT,KAAA0b,IAAAuX,GAAA9uB,EAAApE,GAAAC,EAAA,OAAAiE,EAAAjE,IAAmFA,EAAAiwB,GAAAlwB,EAAAkE,EAAA0rB,mBAAA3vB,GAA+BA,EAAA0b,IAAAuX,GAAA9uB,EAAApE,GAAcC,EAAA,OAAAiE,EAAcjE,GAAS,QAAAud,GAAAtZ,EAAAE,EAAApE,EAAAC,GAAoB,cAAAmE,GAAA,IAAAA,EAAA2e,KAAA3e,EAAAisB,GAAArwB,EAAAkE,EAAA0rB,mBAAA3vB,GAAAmE,EAAA,OAAAF,EAAAE,IAA6EA,EAAAkG,EAAAlG,EAAApE,EAAAC,GAC3emE,EAAA,OAAAF,EAAcE,GAAS,QAAAsQ,GAAAxQ,EAAAE,EAAApE,EAAAC,GAAoB,cAAAmE,GAAA,IAAAA,EAAA2e,KAAA3e,EAAAmsB,GAAAvwB,EAAAkE,EAAA0rB,mBAAA3vB,GAAAmE,EAAA6K,KAAAjP,EAAAkG,MAAA9B,EAAA,OAAAF,EAAAE,IAA4FA,EAAAkG,EAAAlG,EAAA,KAAAnE,GAAcmE,EAAA6K,KAAAjP,EAAAkG,MAAe9B,EAAA,OAAAF,EAAcE,GAAS,QAAA0W,GAAA5W,EAAAE,EAAApE,EAAAC,GAAoB,cAAAmE,GAAA,IAAAA,EAAA2e,KAAA3e,EAAAke,UAAAuI,gBAAA7qB,EAAA6qB,eAAAzmB,EAAAke,UAAAqF,iBAAA3nB,EAAA2nB,gBAAAvjB,EAAAosB,GAAAxwB,EAAAkE,EAAA0rB,mBAAA3vB,GAAAmE,EAAA,OAAAF,EAAAE,IAAyKA,EAAAkG,EAAAlG,EAAApE,EAAA8b,aAAA7b,GAAwBmE,EAAA,OAAAF,EAAcE,GAAS,QAAA8Y,GAAAhZ,EAAAE,EAAApE,EAAAC,EAAAwU,GAAsB,cAAArQ,GAAA,KAAAA,EAAA2e,KAAA3e,EAAA+rB,GAAAnwB,EAAAkE,EAAA0rB,mBAC7b3vB,EAAAwU,GAAArQ,EAAA,OAAAF,EAAAE,IAAqBA,EAAAkG,EAAAlG,EAAApE,EAAAC,GAAWmE,EAAA,OAAAF,EAAcE,GAAS,QAAAiX,GAAAnX,EAAAE,EAAApE,GAAkB,oBAAAoE,IAAA,iBAAAA,GAAA,MAAAA,GAAAgsB,GAAA,GAAAhsB,EAAAF,EAAA0rB,mBAAA5vB,GAAAoE,EAAA,OAAAF,EAAAE,CAAqG,qBAAAA,IAAA,OAAAA,EAAA,CAAkC,OAAAA,EAAA6X,UAAmB,IAAAsX,IAAA,MAAAnvB,GAAA6K,OAAAukB,IAAApvB,EAAA+rB,GAAA/rB,EAAAsP,MAAAoI,SAAA5X,EAAA0rB,mBAAA5vB,EAAAoE,EAAAtB,KAAAsB,EAAA,OAAAF,EAAAE,IAAkGpE,EAAAkwB,GAAA9rB,EAAAF,EAAA0rB,mBAAA5vB,GAA+BA,EAAA2b,IAAAuX,GAAA,KAAA9uB,GAAiBpE,EAAA,OAAAkE,EAAclE,EAAS,KAAAyzB,IAAA,MAAArvB,GAAAisB,GAAAjsB,EAAAF,EAAA0rB,mBAAA5vB,GAAAoE,EAAA,OAAAF,EAAAE,CAA8D,KAAAsvB,IAAA,MAAA1zB,GAAAuwB,GAAAnsB,EAAAF,EAAA0rB,mBAC1c5vB,KAAAiP,KAAA7K,EAAA8B,MAAAlG,EAAA,OAAAkE,EAAAlE,CAAkC,KAAA2zB,IAAA,MAAAvvB,GAAAosB,GAAApsB,EAAAF,EAAA0rB,mBAAA5vB,GAAAoE,EAAA,OAAAF,EAAAE,EAA8D,GAAAwvB,GAAAxvB,IAAA4uB,GAAA5uB,GAAA,MAAAA,GAAA+rB,GAAA/rB,EAAAF,EAAA0rB,mBAAA5vB,EAAA,MAAAoE,EAAA,OAAAF,EAAAE,CAA2EgvB,IAAAlvB,EAAAE,GAAQ,YAAY,QAAA+X,GAAAjY,EAAAE,EAAApE,EAAAC,GAAoB,GAAAqK,GAAA,OAAAlG,IAAAtB,IAAA,IAA0B,qBAAA9C,IAAA,iBAAAA,GAAA,cAAAsK,EAAA,KAAAyR,EAAA7X,EAAAE,EAAA,GAAApE,EAAAC,EAA+E,qBAAAD,IAAA,OAAAA,EAAA,CAAkC,OAAAA,EAAAic,UAAmB,IAAAsX,IAAA,MAAAvzB,GAAA8C,MAAAwH,EAAAtK,EAAAiP,OAAAukB,GAAAtW,EAAAhZ,EAAAE,EAAApE,EAAA0T,MAAAoI,SAAA7b,EAAAqK,GAAAoR,EAAAxX,EAAAE,EAAApE,EAAAC,GAAA,IAAiF,KAAAwzB,IAAA,MAAAzzB,GAAA8C,MAAAwH,EAAAkT,EAAAtZ,EAAAE,EAAApE,EAAAC,GAAA,IAAyC,KAAAyzB,IAAA,cAC3eppB,EAAAoK,EAAAxQ,EAAAE,EAAApE,EAAAC,GAAA,IAAkB,KAAA0zB,IAAA,MAAA3zB,GAAA8C,MAAAwH,EAAAwQ,EAAA5W,EAAAE,EAAApE,EAAAC,GAAA,KAAyC,GAAA2zB,GAAA5zB,IAAAgzB,GAAAhzB,GAAA,cAAAsK,EAAA,KAAA4S,EAAAhZ,EAAAE,EAAApE,EAAAC,EAAA,KAAqDmzB,IAAAlvB,EAAAlE,GAAQ,YAAY,QAAA6b,GAAA3X,EAAAE,EAAApE,EAAAC,EAAAqK,GAAsB,oBAAArK,IAAA,iBAAAA,GAAA,MAAAiE,KAAAzD,IAAAT,IAAA,KAAA+b,EAAA3X,EAAAF,EAAA,GAAAjE,EAAAqK,EAAkF,qBAAArK,IAAA,OAAAA,EAAA,CAAkC,OAAAA,EAAAgc,UAAmB,IAAAsX,IAAA,MAAArvB,KAAAzD,IAAA,OAAAR,EAAA6C,IAAA9C,EAAAC,EAAA6C,MAAA,KAAA7C,EAAAgP,OAAAukB,GAAAtW,EAAA9Y,EAAAF,EAAAjE,EAAAyT,MAAAoI,SAAAxR,EAAArK,EAAA6C,KAAA4Y,EAAAtX,EAAAF,EAAAjE,EAAAqK,EAA0G,KAAAmpB,IAAA,MAAAvvB,KAAAzD,IAAA,OAAAR,EAAA6C,IAAA9C,EAAAC,EAAA6C,MAAA,KAAA0a,EAAApZ,EAAAF,EAAAjE,EAAAqK,EAA8D,KAAAopB,IAAA,MAAAxvB,KAAAzD,IAAAT,IAAA,KAAA0U,EAAAtQ,EAAAF,EAAAjE,EAAAqK,EAA2C,KAAAqpB,IAAA,MAAAzvB,GACpfA,EAAAzD,IAAA,OAAAR,EAAA6C,IAAA9C,EAAAC,EAAA6C,MAAA,KAAAgY,EAAA1W,EAAAF,EAAAjE,EAAAqK,GAA6C,GAAAspB,GAAA3zB,IAAA+yB,GAAA/yB,GAAA,MAAAiE,KAAAzD,IAAAT,IAAA,KAAAkd,EAAA9Y,EAAAF,EAAAjE,EAAAqK,EAAA,KAAwD8oB,IAAAhvB,EAAAnE,GAAQ,YAAY,QAAAsd,GAAAjT,EAAAH,EAAApK,EAAAkb,GAAoB,OAAAc,GAAA,KAAAtD,EAAA,KAAA/X,EAAAyJ,EAAA2K,EAAA3K,EAAA,EAAAuR,EAAA,KAAuC,OAAAhb,GAAAoU,EAAA/U,EAAA8C,OAAqBiS,IAAA,CAAKpU,EAAAiI,MAAAmM,GAAA4G,EAAAhb,IAAA,MAAAgb,EAAAhb,EAAA6pB,OAAmC,IAAA7R,GAAAyD,EAAA7R,EAAA5J,EAAAX,EAAA+U,GAAAmG,EAAoB,WAAAvC,EAAA,CAAa,OAAAhY,MAAAgb,EAAgB,OAAMxX,GAAAxD,GAAA,OAAAgY,EAAAoL,WAAA1f,EAAAkG,EAAA5J,GAAiCyJ,EAAAsK,EAAAiE,EAAAvO,EAAA2K,GAAW,OAAA2D,EAAAsD,EAAArD,EAAAD,EAAA8R,QAAA7R,EAAyBD,EAAAC,EAAIhY,EAAAgb,EAAI,GAAA5G,IAAA/U,EAAA8C,OAAA,MAAA7C,GAAAsK,EAAA5J,GAAAqb,CAAgC,WAAArb,EAAA,CAAa,KAAKoU,EAAA/U,EAAA8C,OAAWiS,KAAApU,EAAA2a,EAAA/Q,EAAAvK,EAAA+U,GAAAmG,MAAA9Q,EAAAsK,EAAA/T,EAAAyJ,EAAA2K,GAAA,OAAA2D,EAAAsD,EAAArb,EAAA+X,EAAA8R,QAAA7pB,EAAA+X,EAAA/X,EAA6D,OAAAqb,GAAS,IAAArb,EACxfT,EAAAqK,EAAA5J,GAAOoU,EAAA/U,EAAA8C,OAAWiS,KAAA4G,EAAAG,EAAAnb,EAAA4J,EAAAwK,EAAA/U,EAAA+U,GAAAmG,MAA0B/W,GAAA,OAAAwX,EAAAoI,WAAApjB,EAAA,cAAAgb,EAAA5Y,IAAAgS,EAAA4G,EAAA5Y,KAA2DqH,EAAAsK,EAAAiH,EAAAvR,EAAA2K,GAAW,OAAA2D,EAAAsD,EAAAL,EAAAjD,EAAA8R,QAAA7O,EAAyBjD,EAAAiD,EAA6C,OAAzCxX,IAAAxD,EAAAyB,QAAA,SAAA+B,GAAyB,MAAAE,GAAAkG,EAAApG,KAAgB6X,EAAS,QAAAU,GAAAnS,EAAAH,EAAApK,EAAAkb,GAAoB,GAAAc,GAAAiX,GAAAjzB,EAAY,oBAAAgc,IAAAP,EAAA,OAAkD,OAAZzb,EAAAgc,EAAAjc,KAAAC,KAAYyb,EAAA,MAAwB,QAAA/C,GAAAsD,EAAA,KAAArb,EAAAyJ,EAAA2K,EAAA3K,EAAA,EAAAuR,EAAA,KAAAhD,EAAA3Y,EAAA8L,OAA6C,OAAAnL,IAAAgY,EAAAzS,KAAkB6O,IAAA4D,EAAA3Y,EAAA8L,OAAA,CAAgBnL,EAAAiI,MAAAmM,GAAA4G,EAAAhb,IAAA,MAAAgb,EAAAhb,EAAA6pB,OAAmC,IAAA9O,GAAAU,EAAA7R,EAAA5J,EAAAgY,EAAAxS,MAAA+U,EAAuB,WAAAQ,EAAA,CAAa/a,MAAAgb,EAAS,OAAMxX,GAAAxD,GAAA,OAAA+a,EAAAqI,WAAA1f,EAAAkG,EAAA5J,GAAiCyJ,EAAAsK,EAAAgH,EACjftR,EAAA2K,GAAK,OAAA2D,EAAAsD,EAAAN,EAAAhD,EAAA8R,QAAA9O,EAAyBhD,EAAAgD,EAAI/a,EAAAgb,EAAI,GAAAhD,EAAAzS,KAAA,MAAAjG,GAAAsK,EAAA5J,GAAAqb,CAA0B,WAAArb,EAAA,CAAa,MAAKgY,EAAAzS,KAAQ6O,IAAA4D,EAAA3Y,EAAA8L,OAAA,QAAA6M,EAAA2C,EAAA/Q,EAAAoO,EAAAxS,MAAA+U,MAAA9Q,EAAAsK,EAAAiE,EAAAvO,EAAA2K,GAAA,OAAA2D,EAAAsD,EAAArD,EAAAD,EAAA8R,QAAA7R,EAAAD,EAAAC,EAAoF,OAAAqD,GAAS,IAAArb,EAAAT,EAAAqK,EAAA5J,IAAagY,EAAAzS,KAAQ6O,IAAA4D,EAAA3Y,EAAA8L,OAAA,QAAA6M,EAAAmD,EAAAnb,EAAA4J,EAAAwK,EAAA4D,EAAAxS,MAAA+U,MAAiD/W,GAAA,OAAAwU,EAAAoL,WAAApjB,EAAA,cAAAgY,EAAA5V,IAAAgS,EAAA4D,EAAA5V,KAA2DqH,EAAAsK,EAAAiE,EAAAvO,EAAA2K,GAAW,OAAA2D,EAAAsD,EAAArD,EAAAD,EAAA8R,QAAA7R,EAAyBD,EAAAC,EAA6C,OAAzCxU,IAAAxD,EAAAyB,QAAA,SAAA+B,GAAyB,MAAAE,GAAAkG,EAAApG,KAAgB6X,EAAS,gBAAA7X,EAAAjE,EAAAwU,EAAAsH,GAAyB,iBAAAtH,IAAA,OAAAA,KAAAxF,OAAAukB,IAAA,OAAA/e,EAAA3R,MAAA2R,IAAAf,MAAAoI,SAC3a,IAAA/b,GAAA,iBAAA0U,IAAA,OAAAA,CAAoC,IAAA1U,EAAA,OAAA0U,EAAAwH,UAAwB,IAAAsX,IAAArvB,EAAA,CAAW,GAAAuU,GAAAhE,EAAA3R,GAAY,KAAA/C,EAAAE,EAAQ,OAAAF,GAAS,CAAE,GAAAA,EAAA+C,MAAA2V,EAAA,SAAA1Y,EAAAgjB,IAAAtO,EAAAxF,OAAAukB,GAAAzzB,EAAAkP,OAAAwF,EAAAxF,KAAA,CAAwDjP,EAAAkE,EAAAnE,EAAAwqB,SAAetqB,EAAAqK,EAAAvK,EAAA0U,EAAAxF,OAAAukB,GAAA/e,EAAAf,MAAAoI,SAAArH,EAAAf,MAAAqI,GAA8C9b,EAAA0b,IAAAuX,GAAAnzB,EAAA0U,GAAcxU,EAAA,OAAAiE,EAAcA,EAAAjE,CAAI,MAAAiE,GAAalE,EAAAkE,EAAAnE,EAAO,OAAMqE,EAAAF,EAAAnE,GAAYA,IAAAwqB,QAAY9V,EAAAxF,OAAAukB,IAAAvzB,EAAAkwB,GAAA1b,EAAAf,MAAAoI,SAAA5X,EAAA0rB,mBAAA7T,EAAAtH,EAAA3R,KAAA7C,EAAA,OAAAiE,IAAAjE,IAAA8b,EAAAmU,GAAAzb,EAAAvQ,EAAA0rB,mBAAA7T,KAAAJ,IAAAuX,GAAAjzB,EAAAwU,GAAAsH,EAAA,OAAA7X,IAAA6X,GAAqJ,MAAA5R,GAAAjG,EAAY,KAAAuvB,IAAAvvB,EAAA,CAAW,IAAAnE,EAAA0U,EAAA3R,IAAY,OAAA7C,GAAS,CAAE,GAAAA,EAAA6C,MAChf/C,EAAA,QAAAE,EAAA8iB,IAAA,CAAgB/iB,EAAAkE,EAAAjE,EAAAsqB,SAAetqB,EAAAqK,EAAArK,EAAAwU,EAAAsH,GAAW9b,EAAA,OAAAiE,EAAcA,EAAAjE,CAAI,MAAAiE,GAAalE,EAAAkE,EAAAjE,EAAO,OAAMmE,EAAAF,EAAAjE,GAAYA,IAAAsqB,QAAYtqB,EAAAowB,GAAA5b,EAAAvQ,EAAA0rB,mBAAA7T,GAA+B9b,EAAA,OAAAiE,EAAcA,EAAAjE,EAAI,MAAAkK,GAAAjG,EAAY,KAAAwvB,IAAAxvB,EAAA,CAAW,UAAAjE,EAAA,QAAAA,EAAA8iB,IAAA,CAA0B/iB,EAAAkE,EAAAjE,EAAAsqB,SAAetqB,EAAAqK,EAAArK,EAAA,KAAA8b,GAAc9b,EAAAgP,KAAAwF,EAAAvO,MAAejG,EAAA,OAAAiE,EAAcA,EAAAjE,CAAI,MAAAiE,GAAQlE,EAAAkE,EAAAjE,GAAYA,EAAAswB,GAAA9b,EAAAvQ,EAAA0rB,mBAAA7T,GAA+B9b,EAAAgP,KAAAwF,EAAAvO,MAAejG,EAAA,OAAAiE,EAAcA,EAAAjE,EAAI,MAAAkK,GAAAjG,EAAY,KAAAyvB,IAAAzvB,EAAA,CAAW,IAAAnE,EAAA0U,EAAA3R,IAAY,OAAA7C,GAAS,CAAE,GAAAA,EAAA6C,MAAA/C,EAAA,QAAAE,EAAA8iB,KAAA9iB,EAAAqiB,UAAAuI,gBAAApW,EAAAoW,eAAA5qB,EAAAqiB,UAAAqF,iBAChZlT,EAAAkT,eAAA,CAAkB3nB,EAAAkE,EAAAjE,EAAAsqB,SAAetqB,EAAAqK,EAAArK,EAAAwU,EAAAqH,aAAAC,GAAwB9b,EAAA,OAAAiE,EAAcA,EAAAjE,CAAI,MAAAiE,GAAalE,EAAAkE,EAAAjE,EAAO,OAAMmE,EAAAF,EAAAjE,GAAYA,IAAAsqB,QAAYtqB,EAAAuwB,GAAA/b,EAAAvQ,EAAA0rB,mBAAA7T,GAA+B9b,EAAA,OAAAiE,EAAcA,EAAAjE,EAAI,MAAAkK,GAAAjG,GAAY,oBAAAuQ,IAAA,iBAAAA,GAAA,MAAAA,GAAA,GAAAA,EAAA,OAAAxU,GAAA,IAAAA,EAAA8iB,KAAA/iB,EAAAkE,EAAAjE,EAAAsqB,SAAAtqB,EAAAqK,EAAArK,EAAAwU,EAAAsH,KAAA/b,EAAAkE,EAAAjE,KAAAmwB,GAAA3b,EAAAvQ,EAAA0rB,mBAAA7T,IAAA9b,EAAA,OAAAiE,IAAAjE,EAAAkK,EAAAjG,EAAyK,IAAA0vB,GAAAnf,GAAA,MAAA8I,GAAArZ,EAAAjE,EAAAwU,EAAAsH,EAA2B,IAAAiX,GAAAve,GAAA,MAAAgI,GAAAvY,EAAAjE,EAAAwU,EAAAsH,EAAsC,IAAXhc,GAAAqzB,GAAAlvB,EAAAuQ,GAAW,oBAAAA,GAAA,OAAAvQ,EAAA6e,KAAwC,cAAAhH,EAAA7X,EAAA+K,KAAAuM,EAAA,MAAAO,EAAAgO,aAC5chO,EAAA7b,MAAA,aAAqB,MAAAF,GAAAkE,EAAAjE,IACrB,QAAA4zB,IAAA3vB,EAAAE,EAAApE,EAAAC,EAAAqK,GAAuB,QAAAmK,GAAAvQ,EAAAE,EAAApE,GAAkB,GAAAC,GAAAmE,EAAA4rB,cAAuB5rB,GAAAkmB,MAAA,OAAApmB,EAAA4vB,GAAA1vB,EAAA,KAAApE,EAAAC,GAAA8zB,GAAA3vB,EAAAF,EAAAomB,MAAAtqB,EAAAC,GAAkD,QAAAkK,GAAAjG,EAAAE,GAAgB,GAAApE,GAAAoE,EAAAuX,GAAY,QAAA3b,GAAAkE,KAAAyX,MAAA3b,IAAAoE,EAAA6lB,WAAA,KAA2C,QAAAlO,GAAA7X,EAAAE,EAAApE,EAAAC,GAA2B,GAAPkK,EAAAjG,EAAAE,IAAOpE,EAAA,MAAAC,IAAAqvB,GAAAlrB,GAAA,GAAAoZ,EAAAtZ,EAAAE,EAAgCpE,GAAAoE,EAAAke,UAAc1b,GAAAwV,QAAAhY,CAAa,IAAAkG,GAAAtK,EAAA4a,QAAqG,OAApFxW,GAAA6lB,WAAA,EAAexV,EAAAvQ,EAAAE,EAAAkG,GAASlG,EAAAorB,cAAAxvB,EAAAuX,MAAwBnT,EAAAsrB,cAAA1vB,EAAA0T,MAAwBzT,GAAAqvB,GAAAlrB,GAAA,GAAYA,EAAAkmB,MAAe,QAAA5O,GAAAxX,GAAc,GAAAE,GAAAF,EAAAoe,SAAkBle,GAAA4vB,eAAAhF,GAAA9qB,EAAAE,EAAA4vB,eAAA5vB,EAAA4vB,iBAAA5vB,EAAA8W,SAAA9W,EAAA8W,SAAA8T,GAAA9qB,EACnaE,EAAA8W,SAAA,GAAcW,EAAA3X,EAAAE,EAAAymB,eAAqB,QAAArN,GAAAtZ,EAAAE,GAA4D,GAA5C,OAAAF,GAAAE,EAAAkmB,QAAApmB,EAAAomB,OAAA9O,EAAA,OAA4C,OAAApX,EAAAkmB,MAAA,CAAmBpmB,EAAAE,EAAAkmB,KAAU,IAAAtqB,GAAAiwB,GAAA/rB,IAAAyrB,aAAAzrB,EAAA8rB,eAAsD,KAAV5rB,EAAAkmB,MAAAtqB,EAAUA,EAAA,OAAAoE,EAAkB,OAAAF,EAAAqmB,SAAiBrmB,IAAAqmB,QAAAvqB,IAAAuqB,QAAA0F,GAAA/rB,IAAAyrB,aAAAzrB,EAAA8rB,gBAAAhwB,EAAA,OAAAoE,CAA6EpE,GAAAuqB,QAAA,KAAe,MAAAnmB,GAAAkmB,MAAe,QAAA5V,GAAAxQ,EAAAE,GAAgB,OAAAA,EAAA2e,KAAc,OAAArH,EAAAtX,EAAY,MAAM,QAAAgrB,GAAAhrB,EAAa,MAAM,QAAAyX,EAAAzX,IAAAke,UAAAuI,eAAsC,YAAY,GAAA/P,GAAA5W,EAAA+vB,qBAAA/W,EAAAhZ,EAAAgwB,kBAAA7Y,EAAAnX,EAAAiwB,0BACrbhY,EAAA/X,EAAAgwB,gBAAAvY,EAAAzX,EAAAiwB,kBAAA9W,EAAAvd,EAAAs0B,oBAAA7X,EAAAzc,EAAAu0B,oBAAA9Y,EAAAzb,EAAAw0B,gCAA+HtwB,GAAAkuB,GAAAnyB,EAAAqK,EAAA,SAAApG,EAAAE,GAAuBF,EAAAwrB,cAAAtrB,GAAkB,SAAAF,EAAAE,GAAeF,EAAAsrB,cAAAprB,GAAoB,IAAA0Q,GAAA5Q,EAAAouB,mBAAAvyB,EAAAmE,EAAAquB,uBAAAtX,EAAA/W,EAAAsuB,mBAAAiC,EAAAvwB,EAAAyuB,mBAAsG,QAAO+B,UAAA,SAAAxwB,EAAAE,EAAApE,GAA0B,OAAAoE,EAAA4rB,gBAAA5rB,EAAA4rB,eAAAhwB,EAAA,MAAA0U,GAAAxQ,EAAAE,EAA0D,QAAAA,EAAA2e,KAAc,cAAA7e,GAAAsX,EAAA,MAAgC,IAAAvb,GAAAmE,EAAA6K,KAAA3E,EAAAlG,EAAAurB,aAAAlX,EAAA4V,GAAAjqB,EAC/R,OADqUqU,GAAAgW,GAAArqB,EAAAqU,GAAUxY,IAAAqK,EAAAmO,GAASrU,EAAA6lB,WACnf,EAAE,iBAAAhqB,IAAA,OAAAA,GAAA,mBAAAA,GAAA2a,QAAAxW,EAAA2e,IAAA,EAAAzY,EAAA8kB,GAAAhrB,GAAA0Q,EAAA1Q,EAAAnE,GAAAgb,EAAA7W,EAAApE,GAAAoE,EAAA2X,EAAA7X,EAAAE,GAAA,EAAAkG,KAAAlG,EAAA2e,IAAA,EAAAtO,EAAAvQ,EAAAE,EAAAnE,GAAAmE,EAAAsrB,cAAAplB,EAAAlG,IAAAkmB,OAAyJlmB,CAAS,QAAAF,EAAA,CAAsD,GAA5CoG,EAAAlG,EAAA6K,KAASjP,EAAAoE,EAAAurB,aAAiB1vB,EAAAmE,EAAAsrB,cAAkBX,GAAA3S,QAAA,OAAApc,MAAAC,OAA6B,WAAAD,GAAAC,IAAAD,EAAA,CAAyBoE,EAAAoZ,EAAAtZ,EAAAE,EAAS,MAAAF,GAAQjE,EAAAouB,GAAAjqB,GAAQnE,EAAAwuB,GAAArqB,EAAAnE,GAAUqK,IAAAtK,EAAAC,GAASmE,EAAA6lB,WAAA,EAAexV,EAAAvQ,EAAAE,EAAAkG,GAASlG,EAAAsrB,cAAA1vB,EAAkBoE,IAAAkmB,MAAU,MAAAlmB,EAAS,cAAAkG,GAAA8kB,GAAAhrB,GAAAnE,MAAA,UAAAiE,EAAAE,EAAAke,UAAA9G,EAAA,QAAAzb,EAAAqE,IAAAurB,cAAA1U,EAAA7W,EAAApE,GAAAC,GAAA,GAAAA,EAAAw0B,EAAAvwB,EAAAE,EAAApE,GAAA+b,EAAA7X,EAAAE,EAAAnE,EAAAqK,EAAsH,cAAAoR,GAAAtX,GAC/ekG,EAAAlG,EAAAqrB,YAAA,OAAAnlB,GAAArK,EAAAmE,EAAAorB,cAAAllB,EAAA0nB,GAAA9tB,EAAAE,EAAAkG,EAAA,UAAAtK,GAAAC,IAAAqK,GAAAmS,IAAArY,EAAAoZ,EAAAtZ,EAAAE,KAAAnE,EAAAqK,EAAAqqB,QAAAlc,EAAArU,EAAAke,WAAA,OAAApe,GAAA,OAAAA,EAAAomB,QAAA7R,EAAAmc,SAAArX,EAAAnZ,MAAA6lB,WAAA,EAAA7lB,EAAAkmB,MAAAwJ,GAAA1vB,EAAA,KAAAnE,EAAAD,KAAAyc,IAAAhI,EAAAvQ,EAAAE,EAAAnE,IAAAmE,EAAAorB,cAAAllB,EAAAlG,IAAAkmB,SAAA7N,IAAArY,EAAAoZ,EAAAtZ,EAAAE,KAAsQ,QAAA+X,EAAA/X,GAAY,OAAAF,GAAAuX,EAAArX,GAAekG,EAAAlG,EAAA6K,IAAS,IAAAvO,GAAA0D,EAAAsrB,aACzL,OAD+MzvB,GAAAmE,EAAAurB,aAAiB,OAAA1vB,GAAA,QAAAA,EAAAS,IAAA8a,EAAA,OAAyC/C,EAAA,OAAAvU,IAAAwrB,cAAA,KAAgCX,GAAA3S,SAAA,OAAAnc,GAAAS,IAAAT,GAAAS,EAAAT,EAAA6b,SAAAhB,EAAAxQ,EAAArK,GAAAS,EAAA,KAAA+X,GAAAqC,EAAAxQ,EAAAmO,KAAArU,EAAA6lB,WAAA,IAAA9f,EAAAjG,EAAAE,GAC1Z,aAAApE,IAAAkd,GAAA7B,EAAA/Q,EAAArK,IAAAmE,EAAA4rB,eAAA,WAAA5rB,EAAA,OAAAqQ,EAAAvQ,EAAAE,EAAA1D,GAAA0D,EAAAsrB,cAAAzvB,EAAAmE,IAAAkmB,QAAAlmB,EAAAoZ,EAAAtZ,EAAAE,GAAiHA,CAAS,sBAAAF,GAAAuX,EAAArX,GAAAF,EAAAE,EAAAurB,aAAA,OAAAzrB,MAAAE,EAAAsrB,eAAAtrB,EAAAsrB,cAAAxrB,EAAA,IAAmG,QAAAE,EAAA2e,IAAA,CAAe,QAAuP,MAAvPzY,GAAAlG,EAAAurB,aAAwBZ,GAAA3S,QAAA,OAAA9R,GAAA,QAAAA,EAAApG,KAAAwrB,gBAAAlU,EAAA,OAAuE,OAAAlR,GAAAlG,EAAAsrB,gBAAAplB,MAAAlG,EAAAsrB,eAAwDzvB,EAAAqK,EAAAwR,SAAa1X,EAAAke,UAAA,OAAApe,EAAA4vB,GAAA1vB,IAAAke,UAAAriB,EAAAD,GAAA+zB,GAAA3vB,IAAAke,UAAAriB,EAAAD,GAAiEoE,EAAAsrB,cAAAplB,EAAkBlG,EAAAke,SACne,mBAAmB,QAAApe,EAAA,CAA0D,GAAhD2X,EAAAzX,IAAAke,UAAAuI,eAA+BvgB,EAAAlG,EAAAurB,aAAiBZ,GAAA3S,QAAA,OAAA9R,GAAA,OAAAA,EAAApG,KAAAwrB,gBAAAlU,EAAA,WAAsE,WAAAlR,GAAAlG,EAAAsrB,gBAAAplB,EAAA,CAAuClG,EAAAoZ,EAAAtZ,EAAAE,EAAS,MAAAF,GAAQ,OAAAA,EAAAE,EAAAkmB,MAAAyJ,GAAA3vB,EAAA,KAAAkG,EAAAtK,GAAAyU,EAAAvQ,EAAAE,EAAAkG,GAAyClG,EAAAsrB,cAAAplB,EAAkBlG,IAAAkmB,MAAU,MAAAlmB,EAAS,SAAAF,EAAA,CAA4B,GAAjBlE,EAAAoE,EAAAurB,aAAiBZ,GAAA3S,QAAA,OAAApc,MAAAoE,EAAAsrB,mBAA2C,WAAA1vB,GAAAoE,EAAAsrB,gBAAA1vB,EAAA,CAAuCoE,EAAAoZ,EAAAtZ,EAAAE,EAAS,MAAAF,GAAQuQ,EAAAvQ,EAAAE,EAAApE,GAASoE,EAAAsrB,cAAA1vB,EAAkBoE,IAAAkmB,MAAU,MAAAlmB,EAAS,SAAAoX,EAAA,SAAkBqZ,gBAAA,SAAA3wB,EAAAE,EACxdpE,GAAG,OAAAoE,EAAA2e,KAAc,OAAAqM,GAAAhrB,EAAa,MAAM,QAAAsX,EAAAtX,EAAY,MAAM,SAAAoX,EAAA,OAA4F,MAA3EpX,GAAA6lB,WAAA,GAAgB,OAAA/lB,EAAAE,EAAAkmB,MAAA,KAAAlmB,EAAAkmB,QAAApmB,EAAAomB,QAAAlmB,EAAAkmB,MAAApmB,EAAAomB,OAA2D,IAAAlmB,EAAA4rB,gBAAA5rB,EAAA4rB,eAAAhwB,EAAA0U,EAAAxQ,EAAAE,IAA0DA,EAAA0rB,YAAA,KAAmB1rB,EAAAyrB,WAAA,KAAkBzrB,EAAAkmB,MAAA,OAAApmB,EAAA4vB,GAAA1vB,EAAA,UAAApE,GAAA+zB,GAAA3vB,EAAAF,EAAAomB,MAAA,KAAAtqB,GAAwD,IAAAoE,EAAA2e,MAAA7e,EAAAE,EAAAke,UAAAle,EAAAsrB,cAAAxrB,EAAAwP,MAAAtP,EAAAorB,cAAAtrB,EAAAqT,OAA2EnT,EAAAkmB,SACpX,QAAAwK,IAAA5wB,EAAAE,EAAApE,GAAmB,QAAAC,GAAAiE,GAAcA,EAAA+lB,WAAA,EAAe,GAAA3f,GAAApG,EAAA6wB,eAAAtgB,EAAAvQ,EAAA8wB,mBAAA7qB,EAAAjG,EAAA+wB,mBAAAlZ,EAAA7X,EAAAgxB,wBAAAxZ,EAAAxX,EAAAixB,cAAA3X,EAAAtZ,EAAAkxB,YAAA1gB,EAAAtQ,EAAAixB,qBAAAva,EAAA1W,EAAAkxB,eAAApY,EAAA9Y,EAAAmxB,eAAAla,EAAAjX,EAAAoxB,iBAAArZ,EAAAnc,EAAAy1B,6BAAA5Z,EAAA7b,EAAA01B,iCAAAnY,EAAAvd,EAAA21B,kBAAAlZ,MAAA,GAAAhB,MAAA,GAAA3G,MAAA,EAChD,OAD8X5Q,GAAA0xB,UAAAnZ,EAAA,aAA0BhB,EAAA,SAAAvX,EAAAE,EAAApE,IAAmBoE,EAAAqrB,YAAAzvB,IAAAC,EAAAmE,IAAwB0Q,EAAA,SAAA5Q,EAAAE,EAAApE,EAAAsK,GAAqBtK,IAAAsK,GAAArK,EAAAmE,KAAYoX,EAAAgC,EAAA,cAC7dqY,aAAA,SAAA3xB,EAAAE,EAAApE,GAA6B,GAAAD,GAAAqE,EAAAurB,YAA6H,QAAxG,OAAA5vB,IAAAqE,EAAAsrB,cAA8B,aAAAtrB,EAAA4rB,gBAAA,aAAAhwB,IAAAoE,EAAAurB,aAAA,MAA0EvrB,EAAA2e,KAAc,kBAAmB,cAAA+L,IAAA1qB,GAAA,IAAyB,QAAoK,MAApKiX,GAAAjX,GAAY8a,GAAA6P,GAAA3qB,GAAO8a,GAAAsP,GAAApqB,GAAQrE,EAAAqE,EAAAke,UAAcviB,EAAAi0B,iBAAAj0B,EAAAmb,QAAAnb,EAAAi0B,eAAAj0B,EAAAi0B,eAAA,MAAqE,OAAA9vB,GAAA,OAAAA,EAAAomB,QAAA/M,EAAAnZ,KAAA6lB,YAAA,GAAiDxN,EAAArY,GAAK,IAAY,QAAA0W,EAAA1W,GAAYpE,EAAA0U,GAAM,IAAAuG,GAAA7W,EAAA6K,IAAa,WAAA/K,GAAA,MAAAE,EAAAke,UAAA,CAAgC,GAAAthB,GAAAkD,EAAAwrB,cAAAlS,EAAApZ,EAAAke,UAAA5J,EAAAwE,GAA0CM,GACpf9B,EAAA8B,EAAAvC,EAAAja,EAAAjB,EAAAC,EAAA0Y,GAAe+C,EAAAvX,EAAAE,EAAAoZ,EAAAvC,EAAAja,EAAAjB,EAAAC,GAAiBkE,EAAAyX,MAAAvX,EAAAuX,MAAAvX,EAAA6lB,WAAA,SAAkC,CAAK,IAAAlqB,EAAA,cAAAqE,EAAAke,WAAA9G,EAAA,WAA2D,IAANtX,EAAAgZ,IAAMK,EAAAnZ,GAAA+X,EAAA/X,EAAApE,EAAAkE,IAAAjE,EAAAmE,OAAuB,CAAKF,EAAAoG,EAAA2Q,EAAAlb,EAAAC,EAAAkE,EAAAE,EAAeF,GAAA,IAAAlD,EAAAoD,EAAAkmB,MAAgB,OAAAtpB,GAAS,CAAE,OAAAA,EAAA+hB,KAAA,IAAA/hB,EAAA+hB,IAAA5Y,EAAAjG,EAAAlD,EAAAshB,eAAyC,QAAAthB,EAAA+hB,KAAA,OAAA/hB,EAAAspB,MAAA,CAAmCtpB,EAAAspB,MAAA,OAAAtpB,EAAoBA,IAAAspB,KAAU,UAAS,GAAAtpB,IAAAoD,EAAA,KAAe,MAAK,OAAApD,EAAAupB,SAAiB,CAAE,UAAAvpB,EAAA,QAAAA,EAAA,SAAAoD,EAAA,KAAAF,EAA+ClD,KAAA,OAAcA,EAAAupB,QAAA,OAAAvpB,EAAA,OAAgCA,IAAAupB,QAAYxO,EAAA7X,EAAA+W,EAAAlb,EAAAC,IAAAC,EAAAmE,GAAiBA,EAAAke,UAAApe,EAAc,OAAAE,EAAAuX,MAC1evX,EAAA6lB,WAAA,KAAmB,WAAY,WAAA/lB,GAAA,MAAAE,EAAAke,UAAAxN,EAAA5Q,EAAAE,EAAAF,EAAAwrB,cAAA3vB,OAAwD,CAAK,oBAAAA,GAAA,cAAAqE,EAAAke,WAAA9G,EAAA,WAAsEtX,GAAAwQ,IAAM1U,EAAAkd,IAAMK,EAAAnZ,GAAAyX,EAAAzX,IAAAnE,EAAAmE,KAAAke,UAAA7N,EAAA1U,EAAAmE,EAAAlE,EAAAoE,GAAuC,WAAY,SAAArE,EAAAqE,EAAAsrB,gBAAAlU,EAAA,OAA2CpX,EAAA2e,IAAA,EAAQ9H,IAAK/W,GAAA,KAAAlD,EAAAoD,EAAAke,aAAAthB,EAAA,OAAAoD,GAAuC,OAAApD,GAAS,CAAE,OAAAA,EAAA+hB,KAAA,IAAA/hB,EAAA+hB,KAAA,IAAA/hB,EAAA+hB,IAAAvH,EAAA,WAA4C,QAAAxa,EAAA+hB,IAAA9H,EAAA1V,KAAAvE,EAAAiO,UAAiC,WAAAjO,EAAAspB,MAAA,CAAwBtpB,EAAAspB,MAAA,OAAAtpB,EAAoBA,IAAAspB,KAAU,UAAS,KAAK,OAAAtpB,EAAAupB,SAAiB,CAAE,UAC/evpB,EAAA,QAAAA,EAAA,SAAAoD,EAAA,KAAAF,EAAqClD,KAAA,OAAcA,EAAAupB,QAAA,OAAAvpB,EAAA,OAAgCA,IAAAupB,QAA+E,MAAnEvpB,GAAAjB,EAAAuwB,QAAYvwB,EAAAiB,EAAAjB,EAAA2T,MAAAuH,GAAe7W,EAAAkmB,MAAAyJ,GAAA3vB,EAAA,OAAAF,IAAAomB,MAAA,KAAAvqB,EAAAC,GAAwCoE,EAAAkmB,KAAe,cAAAlmB,GAAA2e,IAAA,MAA2B,QAAmB,mBAAoB,cAAA1H,GAAAjX,GAAAqY,EAAArY,GAAA,IAA6B,QAAAoX,EAAA,MAAgB,SAAAA,EAAA,UAChS,QAAAsa,IAAA5xB,EAAAE,GAAiB,QAAApE,GAAAkE,GAAc,GAAAlE,GAAAkE,EAAAyX,GAAY,WAAA3b,EAAA,IAAgBA,EAAA,MAAQ,MAAAib,GAAS7W,EAAAF,EAAA+W,IAAQ,QAAAhb,GAAAiE,GAA4C,OAA9B,mBAAAktB,QAAAltB,GAA8BA,EAAA6e,KAAc,OAAA/iB,EAAAkE,EAAY,IAAAjE,GAAAiE,EAAAoe,SAAkB,uBAAAriB,GAAA81B,qBAAA,IAAkD91B,EAAAyT,MAAAxP,EAAAwrB,cAAAzvB,EAAAsX,MAAArT,EAAAsrB,cAAAvvB,EAAA81B,uBAAyE,MAAA9a,GAAS7W,EAAAF,EAAA+W,GAAO,KAAM,QAAAjb,EAAAkE,EAAY,MAAM,QAAAoG,EAAApG,EAAAoe,UAAsB,MAAM,QAAA5G,GAAAvR,EAAAjG,IAAgB,QAAAoG,GAAApG,GAAc,OAAAE,GAAAF,IAAa,GAAAjE,EAAAmE,GAAA,OAAAA,EAAAkmB,OAAA5O,GAAA,IAAAtX,EAAA2e,IAAA,CAAuC,GAAA3e,IAAAF,EAAA,KAAe,MAAK,OAAAE,EAAAmmB,SAAiB,CAAE,UAAAnmB,EAAA,QACpeA,EAAA,SAAAF,EAAA,MAAuBE,KAAA,OAAcA,EAAAmmB,QAAA,OAAAnmB,EAAA,OAAgCA,IAAAmmB,YAAYnmB,GAAAkmB,MAAA,OAAAlmB,MAAAkmB,MAAmC,QAAA7V,GAAAvQ,GAAc,WAAAA,EAAA6e,KAAA,IAAA7e,EAAA6e,KAAA,IAAA7e,EAAA6e,IAAuC,QAAA5Y,GAAAjG,GAAc,OAAAE,GAAAF,EAAAlE,GAAA,EAAAyU,MAAA,GAAAtK,MAAA,KAAoC,CAAE,IAAAnK,EAAA,CAAOA,EAAAoE,EAAA,MAAcF,GAAA,OAAQ,CAA2B,OAAzB,OAAAlE,GAAAwb,EAAA,OAAyBxb,EAAA+iB,KAAc,OAAAtO,EAAAzU,EAAAsiB,UAAqBnY,GAAA,CAAK,MAAAjG,EAAQ,QAAgD,OAAAuQ,EAAAzU,EAAAsiB,UAAAuI,cAAmC1gB,GAAA,CAAK,MAAAjG,GAAQlE,IAAA,OAAcA,GAAA,EAAK,OAAAoE,EAAA2e,KAAA,IAAA3e,EAAA2e,IAAAzY,EAAAlG,GAAA+F,EAAAsR,EAAAhH,EAAArQ,EAAAke,WAAA7F,EAAAhI,EAAArQ,EAAAke,eACxb,QAAAle,EAAA2e,IAAAtO,EAAArQ,EAAAke,UAAAuI,cAAA5qB,EAAAmE,GAAA,OAAAA,EAAAkmB,MAAA,CAAmElmB,EAAAkmB,MAAA,OAAAlmB,EAAoBA,IAAAkmB,KAAU,UAAS,GAAAlmB,IAAAF,EAAA,KAAe,MAAK,OAAAE,EAAAmmB,SAAiB,CAAE,UAAAnmB,EAAA,QAAAA,EAAA,SAAAF,EAAA,MAA8CE,KAAA,OAAc,IAAAA,EAAA2e,MAAA/iB,GAAA,GAAkBoE,EAAAmmB,QAAA,OAAAnmB,EAAA,OAAgCA,IAAAmmB,SAAa,GAAAxO,GAAA7X,EAAA8xB,kBAAAta,EAAAxX,EAAA0xB,QAAuC1xB,KAAAkxB,YAAgB1Z,GAAAF,EAAAtX,EAAA,YAAyB,IAAAsZ,GAAA9B,EAAAua,YAAAvhB,EAAAgH,EAAAwa,aAAApb,EAAAY,EAAAya,iBAAAjZ,EAAAxB,EAAA0a,iBAAA/a,EAAAK,EAAA2a,YAAAla,EAAAT,EAAA4a,uBAAAza,EAAAH,EAAA6a,aAAAhZ,EAAA7B,EAAA8a,wBAC5V/Z,EAAAf,EAAA+a,YAAAhb,EAAAC,EAAAgb,wBAA6C,QAAOC,uBAAA,SAAAzyB,GAAmC4W,EAAA5W,EAAAoe,YAAesU,gBAAA,SAAA1yB,GAA6BA,EAAA,CAAG,OAAAE,GAAAF,EAAA,OAAsB,OAAAE,GAAS,CAAE,GAAAqQ,EAAArQ,GAAA,CAAS,GAAApE,GAAAoE,CAAQ,MAAAF,GAAQE,IAAA,OAAcoX,EAAA,OAASxb,MAAA,GAAS,GAAAC,GAAAmE,MAAA,EAAe,QAAApE,EAAA+iB,KAAc,OAAA3e,EAAApE,EAAAsiB,UAAqBriB,GAAA,CAAK,MAAM,QAA8C,OAAAmE,EAAApE,EAAAsiB,UAAAuI,cAAmC5qB,GAAA,CAAK,MAAM,SAAAub,EAAA,OAAiB,GAAAxb,EAAAiqB,YAAAnP,EAAA1W,GAAApE,EAAAiqB,YAAA,GAAwC/lB,GAAAE,EAAA,IAAApE,EAAAkE,IAAa,CAAE,KAAK,OAAAlE,EAAAuqB,SAAiB,CAAE,UAAAvqB,EAAA,QAAAyU,EAAAzU,EAAA,SAAuCA,EAChgB,IAAK,MAAAkE,GAAQlE,IAAA,OAA8C,IAAhCA,EAAAuqB,QAAA,OAAAvqB,EAAA,OAAgCA,IAAAuqB,QAAgB,IAAAvqB,EAAA+iB,KAAA,IAAA/iB,EAAA+iB,KAAqB,CAAE,KAAA/iB,EAAAiqB,UAAA,QAAA7lB,EAA4B,WAAApE,EAAAsqB,OAAA,IAAAtqB,EAAA+iB,IAAA,QAAA3e,EAAwCpE,GAAAsqB,MAAA,OAAAtqB,MAAAsqB,MAAmC,OAAAtqB,EAAAiqB,WAAA,CAAqBjqB,IAAAsiB,SAAc,MAAApe,IAAS,OAAAoG,GAAApG,IAAa,CAAE,OAAAoG,EAAAyY,KAAA,IAAAzY,EAAAyY,IAAA/iB,EAAAC,EAAAsd,EAAAnZ,EAAAkG,EAAAgY,UAAAtiB,GAAA6b,EAAAzX,EAAAkG,EAAAgY,UAAAtiB,GAAAC,EAAAkc,EAAA/X,EAAAkG,EAAAgY,WAAAjH,EAAAjX,EAAAkG,EAAAgY,eAAsG,QAAAhY,EAAAyY,KAAA,OAAAzY,EAAAggB,MAAA,CAAmChgB,EAAAggB,MAAA,OAAAhgB,EAAoBA,IAAAggB,KAAU,UAAS,GAAAhgB,IAAApG,EAAA,KAAe,MAAK,OAAAoG,EAAAigB,SAAiB,CAAE,UAAAjgB,EAAA,QAAAA,EAAA,SAC3dpG,EAAA,MAASoG,KAAA,OAAcA,EAAAigB,QAAA,OAAAjgB,EAAA,OAAgCA,IAAAigB,UAAasM,eAAA,SAAA3yB,GAA4BiG,EAAAjG,GAAKA,EAAA,YAAiBA,EAAAomB,MAAA,KAAapmB,EAAA4f,YAAA5f,EAAA4f,UAAAwG,MAAA,KAAApmB,EAAA4f,UAAA,cAAiEgT,WAAA,SAAA5yB,EAAAE,GAA0B,OAAAA,EAAA2e,KAAc,YAAa,WAAA/iB,GAAAoE,EAAAke,SAAyB,UAAAtiB,EAAA,CAAY,GAAAC,GAAAmE,EAAAsrB,aAAsBxrB,GAAA,OAAAA,IAAAwrB,cAAAzvB,CAA6B,IAAAqK,GAAAlG,EAAA6K,KAAAwF,EAAArQ,EAAAqrB,WAA6BrrB,GAAAqrB,YAAA,KAAmB,OAAAhb,GAAAC,EAAA1U,EAAAyU,EAAAnK,EAAApG,EAAAjE,EAAAmE,GAAyB,KAAM,eAAAA,EAAAke,WAAA9G,EAAA,OAA0Cxb,EAAAoE,EAAAsrB,cAAkBxS,EAAA9Y,EAAAke,UAAA,OAAApe,IAAAwrB,cAC5d1vB,IAAK,MAAM,aAAa,SAAAwb,EAAA,SAAkBub,iBAAA,SAAA7yB,EAAAE,GAAgC,OAAAA,EAAA2e,KAAc,UAAA/iB,GAAAoE,EAAAke,SAAyB,MAAAle,EAAA6lB,UAAA,UAAA/lB,EAAAlE,EAAA0T,MAAAtP,EAAAsrB,cAAA1vB,EAAAuX,MAAAnT,EAAAorB,cAAAxvB,EAAA0yB,wBAAmG,CAAK,GAAAzyB,GAAAiE,EAAAwrB,aAAsBxrB,KAAAsrB,cAAkBxvB,EAAA0T,MAAAtP,EAAAsrB,cAAwB1vB,EAAAuX,MAAAnT,EAAAorB,cAAwBxvB,EAAA6yB,mBAAA5yB,EAAAiE,GAA0BE,IAAAqrB,YAAgB,OAAArrB,GAAA+tB,GAAA/tB,EAAApE,EAAkB,MAAM,QAAAA,EAAAoE,EAAAqrB,YAAuB,OAAAzvB,GAAAmyB,GAAAnyB,EAAA,OAAAoE,EAAAkmB,MAAAlmB,EAAAkmB,MAAAhI,UAAA,KAAsD,MAAM,QAAAtiB,EAAAoE,EAAAke,UAAqB,OAAApe,GAAA,EAAAE,EAAA6lB,WAAAzM,EAAAxd,EAC3doE,EAAA6K,KAAA7K,EAAAsrB,cAAAtrB,EAA0B,MAAM,QAAa,YAAa,SAAAoX,EAAA,SAAkBwb,gBAAA,SAAA9yB,GAA6B,GAAAE,GAAAF,EAAAyX,GAAY,WAAAvX,EAAA,CAAa,GAAApE,GAAAkE,EAAAoe,SAAkB,QAAApe,EAAA6e,KAAc,OAAA3e,EAAA2X,EAAA/b,GAAe,MAAM,SAAAoE,EAAApE,MAAei3B,gBAAA,SAAA/yB,GAAqC,QAARA,IAAAyX,MAAQzX,EAAA,QAC3O,QAAAgzB,IAAAhzB,GAAe,QAAAE,GAAAF,GAAqC,MAAvBA,KAAAizB,IAAA3b,EAAA,OAAuBtX,EAAS,GAAAlE,GAAAkE,EAAAkzB,oBAAAn3B,EAAAiE,EAAAmzB,mBAAA/sB,GAAsD8R,QAAA+a,IAAW1iB,GAAI2H,QAAA+a,IAAWhtB,GAAIiS,QAAA+a,GAAY,QAAO5B,eAAA,WAA0B,MAAAnxB,GAAAkG,EAAA8R,UAAoBiZ,qBAAA,WAAiC,MAAAjxB,GAAA+F,EAAAiS,UAAoBoZ,iBAAA,SAAAtxB,GAA8Bgb,GAAA5U,EAAApG,GAAOgb,GAAAzK,EAAAvQ,GAAOgb,GAAA/U,EAAAjG,IAAOoxB,eAAA,SAAApxB,GAA4BuQ,EAAA2H,UAAAlY,IAAAgb,GAAA5U,EAAApG,GAAAgb,GAAAzK,EAAAvQ,KAA+BmwB,kBAAA,SAAAnwB,EAAAE,GAAiCib,GAAAlV,EAAA/F,EAAAF,GAASE,EAAAnE,EAAAmE,GAAOib,GAAA5K,EAAAvQ,KAASmb,GAAA/U,EAAAlG,EAAAF,IAASkwB,gBAAA,SAAAlwB,GAA6B,GAAAjE,GAAAmE,EAAA+F,EAAAiS,SAAAL,EAAA3X,EAAAkG,EAAA8R,QACrdnc,GAAAD,EAAA+b,EAAA7X,EAAA+K,KAAAhP,GAAgB8b,IAAA9b,IAAAof,GAAA5K,EAAAvQ,KAAAmb,GAAA/U,EAAArK,EAAAiE,KAA2BozB,mBAAA,WAA+BhtB,EAAA8R,QAAA+a,GAAahtB,EAAAiS,QAAA+a,KACvF,QAAAI,IAAArzB,GAAe,QAAAE,GAAAF,EAAAE,GAAgB,GAAApE,GAAA,GAAAuvB,IAAA,SAAsBvvB,GAAAiP,KAAA,UAAiBjP,EAAAsiB,UAAAle,EAAcpE,EAAA,OAAAkE,EAAclE,EAAAiqB,UAAA,EAAc,OAAA/lB,EAAA2rB,YAAA3rB,EAAA2rB,WAAAE,WAAA/vB,EAAAkE,EAAA2rB,WAAA7vB,GAAAkE,EAAA4rB,YAAA5rB,EAAA2rB,WAAA7vB,EAA4F,QAAAA,GAAAkE,EAAAE,GAAgB,OAAAF,EAAA6e,KAAc,sBAAA3e,EAAAqQ,EAAArQ,EAAAF,EAAA+K,KAAA/K,EAAAyrB,iBAAAzrB,EAAAoe,UAAAle,GAAA,EAA0E,uBAAAA,EAAA+F,EAAA/F,EAAAF,EAAAyrB,iBAAAzrB,EAAAoe,UAAAle,GAAA,EAAmE,mBAAkB,QAAAnE,GAAAiE,GAAc,IAAAA,IAAA,OAAkB,OAAAA,GAAA,IAAAA,EAAA6e,KAAA,IAAA7e,EAAA6e,KAA+B7e,IAAA,MAAe4W,GAAA5W,EAAI,GAAAoG,GAAApG,EAAA+vB,oBAC7c,MAAd/vB,IAAAszB,WAAc,OAAalD,oBAAA,WAA+B,UAASC,oBAAA,aAAiCC,iCAAA,aAA8CiB,6BAAA,WAAyCja,EAAA,QAASka,iCAAA,WAA6Cla,EAAA,QAASma,kBAAA,WAA8B,UAAW,IAAAlhB,GAAAvQ,EAAAuzB,mBAAAttB,EAAAjG,EAAAwzB,uBAAA3b,EAAA7X,EAAAyzB,yBAAAjc,EAAAxX,EAAA0zB,wBAAApa,EAAAtZ,EAAA2zB,gBAAAnjB,EAAAxQ,EAAA4zB,oBAAAhd,EAAA,KAAAoC,EAAA,KAAA7B,GAAA,CAA8K,QAAOiZ,oBAAA,SAAApwB,GACvb,MADudgZ,GACxfxB,EAAAxX,EAAAoe,UAAAuI,eAA6B/P,EAAA5W,EAAImX,GAAA,GAAYkZ,oBAAA,WAAgCrX,EAAApC,EAAA,KAASO,GAAA,GAAKmZ,iCAAA,SAAAtwB,GAA8C,GAAAmX,EAAA,CAAM,GAAApb,GAAAid,CAAQ,IAAAjd,EAAA,CAAM,IAAAD,EAAAkE,EAAAjE,GAAA,CAAmB,KAAPA,EAAA8b,EAAA9b,MAAOD,EAAAkE,EAAAjE,GAAwC,MAAxBiE,GAAA+lB,WAAA,EAAe5O,GAAA,OAAKP,EAAA5W,EAAWE,GAAA0W,EAAAoC,GAAOpC,EAAA5W,EAAIgZ,EAAAxB,EAAAzb,OAAOiE,GAAA+lB,WAAA,EAAA5O,GAAA,EAAAP,EAAA5W,IAA8BuxB,6BAAA,SAAAvxB,EAAAE,EAAApE,GAA4G,MAA9DoE,GAAAoZ,EAAAtZ,EAAAoe,UAAApe,EAAA+K,KAAA/K,EAAAwrB,cAAAtrB,EAAApE,EAAAkE,GAA8CA,EAAAurB,YAAArrB,EAAgB,OAAAA,GAAsBsxB,iCAAA,SAAAxxB,GAA8C,MAAAwQ,GAAAxQ,EAAAoe,UAAApe,EAAAwrB,cAAAxrB,IAAwCyxB,kBAAA,SAAAzxB,GAA+B,GAAAA,IACtgB4W,EAAA,QAAW,KAAAO,EAAA,MAAApb,GAAAiE,GAAAmX,GAAA,IAA0B,IAAArb,GAAAkE,EAAA+K,IAAa,QAAA/K,EAAA6e,KAAA,SAAA/iB,GAAA,SAAAA,IAAAsK,EAAAtK,EAAAkE,EAAAwrB,eAAA,IAAA1vB,EAAAkd,EAAoEld,GAAEoE,EAAAF,EAAAlE,KAAA+b,EAAA/b,EAA4C,OAA7BC,GAAAiE,GAAKgZ,EAAApC,EAAAiB,EAAA7X,EAAAoe,WAAA,MAAwB,IACpK,QAAAyV,IAAA7zB,GAAe,QAAAE,GAAAF,GAAc8zB,GAAAC,GAAA,CAAS,IAAA7zB,GAAAF,EAAAoe,SAAsF,IAApEle,EAAAgY,UAAAlY,GAAAsX,EAAA,OAA8BpX,EAAA8zB,kBAAA,EAAsBtxB,GAAAwV,QAAA,KAAgB,EAAAlY,EAAA+lB,UAAA,UAAA/lB,EAAA2rB,WAAA,CAAyC3rB,EAAA2rB,WAAAE,WAAA7rB,CAA0B,IAAAlE,GAAAkE,EAAA4rB,gBAAoB9vB,GAAAkE,MAASlE,GAAAkE,EAAA4rB,WAA0B,KAALqI,IAAKlb,EAAAjd,EAAQ,OAAAid,GAAS,CAAE,GAAAhd,IAAA,EAAAqK,MAAA,EAAkB,KAAI,KAAK,OAAA2S,GAAS,CAAE,GAAAxI,GAAAwI,EAAAgN,SAA8B,IAAZ,GAAAxV,GAAA2jB,EAAAnb,GAAY,IAAAxI,EAAA,CAAU,GAAAtK,GAAA8S,EAAA6G,SAAkB,QAAA3Z,GAAAkuB,EAAAluB,GAAgB,YAAAsK,GAAe,OAAA6jB,EAAArb,GAAaA,EAAAgN,YAAA,CAAgB,MAAM,QAAAqO,EAAArb,GAAaA,EAAAgN,YAAA,EAAgBsO,EAAAtb,EAAA6G,UAAA7G,EAAkB,MAAM,QAAAsb,EAAAtb,EAAA6G,UAChe7G,EAAG,MAAM,QAAAub,IAAA,EAAAC,EAAAxb,GAAAub,IAAA,EAAyBvb,IAAA8S,YAAgB,MAAA2I,GAAUz4B,GAAA,EAAAqK,EAAAouB,EAAUz4B,IAAA,OAAAgd,GAAAzB,EAAA,OAAAO,EAAAkB,EAAA3S,GAAA,OAAA2S,QAAA8S,aAAiF,IAAjB4I,IAAKv0B,EAAAgY,QAAAlY,EAAY+Y,EAAAjd,EAAQ,OAAAid,GAAS,CAAEjd,GAAA,EAAKC,MAAA,EAAS,KAAI,KAAK,OAAAgd,GAAS,CAAE,GAAAvB,GAAAuB,EAAAgN,SAAuD,IAArC,GAAAvO,GAAAkd,EAAA3b,EAAA6G,UAAA7G,GAAwB,IAAAvB,GAAAmd,EAAA5b,GAAa,GAAAvB,EAAA,OAAApR,EAAA2S,EAAAxI,MAAA,UAAA2I,KAAA3I,EAAA2I,GAAA3c,IAAA6J,GAAA8S,GAAA,OAAA9S,GAAA,MAAAmK,GAAA,OAAAnK,EAAAwZ,YAAAxZ,IAAAwZ,UAAArP,EAAA2I,GAAA3c,IAAA6J,GAAA8S,GAAA,OAAA9S,KAAA,MAAAmK,GAAA+G,EAAA,OAAAlR,EAAAyY,KAAwK,OAAAzY,EAAAgY,UAAAwW,kBAAArkB,EAAAzN,OAA8C+xB,eAAAtkB,EAAAskB,gBACzd,MAAM,eAAAC,QAAAvkB,EAAAzN,MAA+B,MAAM,SAAAwU,EAAA,OAAiB,GAAAyd,GAAAhc,EAAA8S,UAAoB9S,GAAA8S,WAAA,KAAkB9S,EAAAgc,GAAM,MAAAP,GAAU14B,GAAA,EAAAC,EAAAy4B,EAAU14B,IAAA,OAAAid,GAAAzB,EAAA,OAAAO,EAAAkB,EAAAhd,GAAA,OAAAgd,QAAA8S,aAA2N,MAA3JkI,GAAAD,IAAA,EAAS,mBAAA7G,QAAAjtB,EAAAoe,WAAwC4W,QAAA/2B,QAAAga,GAAA+c,GAAA,MAA4B,OAAAF,KAAA90B,EAAA80B,MAAA,KAAAvE,EAAAvwB,IAAgCE,IAAAgY,QAAA4T,eAA2B,IAAA5rB,IAAA+0B,GAAA/b,GAAA,MAAmBhZ,EAAS,QAAApE,GAAAkE,GAAc,OAAM,CAAE,GAAAE,GAAAg1B,EAAAl1B,EAAA4f,UAAA5f,EAAA0X,GAAA5b,EAAAkE,EAAA,OAAAjE,EAAAiE,EAAAqmB,QAAoDjgB,EAAApG,CAAQ,iBAAA0X,GAAA,aAAAtR,EAAA0lB,eAAA,CAAkD,OAAA1lB,EAAAyY,KAAA,IACpezY,EAAAyY,IAAA,GAAAtO,GAAA,MAAcA,GAAAnK,EAAAmlB,YAAAhb,EAAA,OAAAA,EAAA,EAAAA,EAAAub,cAAmD,QAAA7lB,GAAAG,EAAAggB,MAAkB,OAAAngB,GAAS,IAAAA,EAAA6lB,iBAAA,IAAAvb,KAAAtK,EAAA6lB,kBAAAvb,EAAAtK,EAAA6lB,gBAAA7lB,IAAAogB,OAAqFjgB,GAAA0lB,eAAAvb,EAAmB,UAAArQ,EAAA,MAAAA,EAAiS,IAA5Q,OAAApE,IAAA,OAAAA,EAAA8vB,cAAA9vB,EAAA8vB,YAAA5rB,EAAA4rB,aAAA,OAAA5rB,EAAA2rB,aAAA,OAAA7vB,EAAA6vB,aAAA7vB,EAAA6vB,WAAAE,WAAA7rB,EAAA4rB,aAAA9vB,EAAA6vB,WAAA3rB,EAAA2rB,YAAA,EAAA3rB,EAAA+lB,YAAA,OAAAjqB,EAAA6vB,WAAA7vB,EAAA6vB,WAAAE,WAAA7rB,EAAAlE,EAAA8vB,YAAA5rB,EAAAlE,EAAA6vB,WAAA3rB,IAA4Q,OAAAjE,EAAA,MAAAA,EACre,WAAAD,EAAgB,CAAKkE,EAAAoe,UAAA4V,kBAAA,CAAgC,OAArDh0B,EAAAlE,EAA4D,YAAY,QAAAC,GAAAiE,GAAc,GAAAE,GAAAi1B,EAAAn1B,EAAA4f,UAAA5f,EAAA0X,EAA6D,OAAnC,QAAAxX,MAAApE,EAAAkE,IAAmB0C,GAAAwV,QAAA,KAAgBhY,EAAS,QAAAkG,GAAApG,GAAc,GAAAE,GAAAk1B,EAAAp1B,EAAA4f,UAAA5f,EAAA0X,EAA6D,OAAnC,QAAAxX,MAAApE,EAAAkE,IAAmB0C,GAAAwV,QAAA,KAAgBhY,EAAS,QAAAqQ,GAAAvQ,GAAc,UAAAkZ,IAAa,SAAAxB,KAAA1X,GAAA,GAAA0X,GAAA2d,EAAA,KAA+B,OAAAtb,GAASA,EAAAvC,EAAAuC,GAAA3T,EAAA2T,GAAAhe,EAAAge,OAAkB,MAAU,OAAAA,IAAAhD,KAAegD,EAAAvC,EAAAuC,GAAA3T,EAAA2T,GAAAhe,EAAAge,OAAkB,UAAArC,KAAA1X,GAAA,GAAA0X,GAAA2d,EAAA,KAAoC,OAAAtb,GAASA,EAAAhe,EAAAge,OAAQ,MAAU,OAAAA,IAAAhD,KAAegD,EAAAhe,EAAAge,GAAQ,QAAA9T,GAAAjG,EAAAE,GACnc,GADmd6zB,GAAAzc,EAAA,OAAmByc,GAAA,EAAM/zB,EAAAg0B,kBAC/e,EAAGh0B,IAAAs1B,GAAAp1B,IAAAwX,GAAA,OAAAqC,EAAA,CAA4B,MAAK,EAAAkQ,IAAMC,GAAAD,IAAA,KAAAA,IAAkBI,IAAAxQ,GAAKyQ,GAAApS,QAAA2B,GAAagR,GAAA3S,SAAA,EAAa1D,IAAI8gB,EAAAt1B,EAAK0X,EAAAxX,EAAI6Z,EAAAgS,GAAAuJ,EAAApd,QAAA,KAAAhY,GAAwB,GAAApE,IAAA,EAAAC,EAAA,IAAgB,KAAIwU,EAAArQ,GAAK,MAAAq1B,GAAUz5B,GAAA,EAAAC,EAAAw5B,EAAU,KAAKz5B,GAAE,CAAE,GAAA05B,GAAA,CAAOV,GAAA/4B,CAAK,OAAM,GAAAkK,GAAA8T,CAAQ,WAAA9T,EAAAuvB,IAAA,MAAkB,CAAK,GAAAhe,GAAAK,EAAA5R,EAAAlK,EAAsC,IAAzB,OAAAyb,GAAAF,EAAA,QAAyBke,GAAA,CAAQ,IAAY,IAAR15B,EAAA0b,EAAIzb,EAAAmE,EAAIsX,EAAA1b,EAAQ,OAAAmK,GAAS,CAAE,OAAAA,EAAA4Y,KAAc,OAAA+L,GAAA3kB,EAAa,MAAM,QAAAwvB,EAAAxvB,EAAa,MAAM,QAAAnJ,EAAAmJ,EAAY,MAAM,QAAAnJ,EAAAmJ,GAAY,GAAAA,IAAAuR,GAAAvR,EAAA2Z,YAAApI,EAAA,KAAgCvR,KAAA,OAAc8T,EAAA3T,EAAAtK,GAAOyU,EAAAxU,GAAK,MAAAw5B,GAAUz5B,GAAA,EAAKC,EAAAw5B,CAAK,UAAS,QACxc,MADgdr1B,GAAA40B,GAAKU,GAAAzB,GAAA,EAASe,GACnf,KAAK,OAAA50B,GAAAqwB,EAAArwB,GAAgBF,EAAAg0B,iBAAAh0B,EAAAkY,QAAA0H,UAAA,KAAmD,QAAA/H,GAAA7X,EAAAE,GAAgB,GAAApE,GAAA4G,GAAAwV,QAAA,KAAAnc,GAAA,EAAAqK,GAAA,EAAAmK,EAAA,IAAuC,QAAAvQ,EAAA6e,IAAA/iB,EAAAkE,EAAAsZ,EAAAtZ,KAAAw1B,IAAA,OAA+B,QAAAvvB,GAAAjG,EAAA,OAA2B,OAAAiG,GAAA,OAAAnK,GAAmB,CAAwG,GAAtG,IAAAmK,EAAA4Y,IAAA,mBAAA5Y,GAAAmY,UAAAwW,oBAAA74B,GAAA,EAAAwU,EAAAqV,GAAA3f,GAAAnK,EAAAmK,EAAAG,GAAA,OAAAH,EAAA4Y,MAAA/iB,EAAAmK,GAAsGqT,EAAArT,GAAA,CAAS,GAAAquB,IAAA,OAAAU,QAAA5nB,IAAAnH,IAAA,OAAAA,EAAA2Z,WAAAoV,GAAA5nB,IAAAnH,EAAA2Z,YAAA,WAAmF9jB,GAAA,KAAOsK,GAAA,EAAKH,IAAA,OAAc,UAAAnK,EAAA,CAAa,OAAAm5B,QAAA,GAAAS,MAAwBT,GAAAU,IAAA75B,EAAU,IAAA+b,GAAA,EAAS5R,GAAAjG,CAAI,IAAGA,EAAA,OAAAiG,EAAA4Y,KAAgB,+BAAArH,GACzfvR,EAAA2vB,YAAAb,EAAA9uB,EAAA4vB,aAAgCh6B,EAAA+pB,GAAA3f,GAAYzJ,EAAA,IAAWgb,KAAAhb,EAAAopB,GAAApO,IAAaA,EAAAud,EAAKl5B,EAAA,aAAAA,GAAA,YAAA2b,EAAA,QAAAA,EAAAse,SAAAzpB,QAAA,oBAAAmL,EAAAue,WAAA,IAAAv5B,EAAA,gBAAAA,EAAA,OAA4H,MAAAwD,EAAQ,SAAAnE,EAAA,GAAagc,GAAAhc,EAAKoK,IAAA,aAAcA,EAASA,GAAA4R,EAAI7X,EAAA4lB,GAAA5lB,GAAQ,OAAAkZ,QAAA,GAAAkW,MAAsBlvB,GAAG81B,cAAAh2B,EAAA60B,eAAA5uB,EAAAnD,MAAA5C,EAAA+1B,cAAAl6B,EAAAD,EAAAsiB,UAAA,KAAA8X,mBAAAn6B,EAAAo6B,kBAAA5lB,EAAA6lB,UAAAhwB,GAAgI8S,GAAAxP,IAAA5N,EAAAoE,EAAW,KAAI,GAAApD,GAAAoD,EAAA4C,KAAchG,MAAAu5B,2BAAAhzB,QAAAP,MAAAhG,GAAiD,MAAAw5B,GAAUA,GACnfA,EAAAD,2BAAAhzB,QAAAP,MAAAwzB,GAA4F,MAA5CxC,KAAA,OAAAkB,QAAA,GAAAU,MAAAV,GAAAW,IAAA75B,IAAAmc,EAAAnc,GAA4CA,EAA2B,MAAlB,QAAAg5B,QAAA50B,GAAkB,KAAY,QAAAsX,GAAAxX,GAAc,cAAAkZ,QAAA9L,IAAApN,IAAA,OAAAA,EAAA4f,WAAA1G,GAAA9L,IAAApN,EAAA4f,YAAoE,QAAAtG,GAAAtZ,GAAc,cAAAi1B,QAAA7nB,IAAApN,IAAA,OAAAA,EAAA4f,WAAAqV,GAAA7nB,IAAApN,EAAA4f,YAAuE,QAAApP,KAAa,eAAAmH,IAAA,YAA+B,QAAAf,GAAA5W,GAAc,WAAAu2B,IAAAxC,EAAAD,GAAA,EAAApc,GAAA8e,GAAA,EAAAx2B,EAAA0rB,mBAAAlb,IAAA,EAA6D,QAAAwI,GAAAhZ,EAAAE,GAAgB,MAAAiX,GAAAnX,EAAAE,GAAA,GAAiB,QAAAiX,GAAAnX,EAAAE,GAAgB,KAAK,OAAAF,GAAS,CACvU,IADyU,IAAAA,EAAA8rB,gBACle9rB,EAAA8rB,eAAA5rB,KAAAF,EAAA8rB,eAAA5rB,GAAsC,OAAAF,EAAA4f,YAAA,IAAA5f,EAAA4f,UAAAkM,gBAAA9rB,EAAA4f,UAAAkM,eAAA5rB,KAAAF,EAAA4f,UAAAkM,eAAA5rB,GAAmH,OAAAF,EAAA,eAAAA,EAAA6e,IACxE,KAD4G,IAAA/iB,GAAAkE,EAAAoe,WAAkB2V,GAAAj4B,IAAAw5B,GAAAp1B,EAAAwX,IAAAqC,EAAAub,EAAA,KAAA5d,EAAA,EAAkC,IAAA3b,GAAAD,EAAAsK,EAAAlG,CAA4B,IAAhBu2B,GAAAC,IAAApf,EAAA,OAAgB,OAAAvb,EAAA46B,kBAAA56B,EAAA66B,wBAAAxwB,EAAA,OAAAyS,IAAAge,GAAAhe,GAAA9c,IAAA46B,kBAAA56B,IAAA8c,MAAA8d,kBAAA56B,EAAA8c,GAAA8d,kBAAAE,QAAmJ,CAAK,GAAAtmB,GAAAxU,EAAA66B,yBAAgC,IAAArmB,GAAAnK,EAAAmK,KAAAxU,EAAA66B,wBAAAxwB,GAA0C0wB,KAAAC,GAC/eC,KAAAC,GAAAl7B,EAAAm7B,GAAA,EAAAr7B,EAAAo7B,GAAAC,KAAA,IAAA9wB,EAAAwK,EAAA,QAAAyI,EAAAjT,KAA+C2tB,GAAAj4B,IAAAw5B,GAAAp1B,EAAAwX,IAAAqC,EAAAub,EAAA,KAAA5d,EAAA,GAA6C1X,IAAA,QAAe,QAAAiY,GAAAjY,GAAcmX,EAAAnX,EAAA,MAAU,QAAA2X,KAAa,MAAA0d,GAAA,IAAA8B,IAAAC,GAAA,MAA6B,QAAA/d,GAAArZ,GAAc,OAAAq3B,GAAA,CAAW,GAAAr3B,EAAAq3B,GAAA,MAAeC,GAAAC,IAAO,GAAAr3B,GAAAi3B,IAAAC,CAAcC,IAAAr3B,EAAKu3B,GAAAC,EAAAjgB,GAAS9T,QAAA,IAAAzD,EAAA,GAAAE,IAAqB,QAAAqY,KAAa,GAAAvY,GAAA,EAAAE,EAAA,IAAe,WAAA2Y,GAAA,OAAA/c,GAAA+c,GAAA9c,EAAA86B,GAA6B,OAAA96B,GAAS,CAAE,GAAAqK,GAAArK,EAAA66B,uBAAgC,QAAAxwB,EAAA,CAA6C,IAAnC,OAAAtK,GAAA,OAAA+c,KAAAvB,EAAA,OAAmCvb,MAAA46B,kBAAA,CAA4BE,GAAAhe,GAAA9c,EAAA46B,kBAAA,IAA8B,OAAM,GAAA56B,IAAA86B,MAAAzwB,EAAArK,EAAA46B,kBAC9d9d,GAAA8d,kBAAAvwB,EAAArK,EAAA46B,kBAAA,SAA+C,IAAA56B,IAAA8c,GAAA,CAAeA,GAAA/c,EAAI+c,GAAA8d,kBAAAE,GAAuB96B,EAAA46B,kBAAA,IAAyB,OAAM76B,EAAA66B,kBAAA56B,EAAA46B,kBAAA56B,EAAA46B,kBAAA,KAAsE56B,EAAAD,EAAA66B,sBAAsB,CAA2B,IAAtB,IAAA32B,GAAAoG,EAAApG,OAAAoG,EAAAlG,EAAAnE,GAAsBA,IAAA8c,GAAA,KAAe/c,GAAAC,EAAIA,IAAA46B,mBAAuB76B,EAAAm7B,GAAK,OAAAn7B,OAAAoE,EAAAu2B,QAAA,EAA0BQ,GAAA/2B,EAAKg3B,GAAAl3B,EAAK,QAAAuX,GAAAvX,GAAc4Q,EAAA,EAAA5Q,GAAO,QAAA4Q,GAAA5Q,EAAAE,GAAqB,IAALu3B,GAAAv3B,EAAKqY,IAAQ,OAAA0e,IAAA,IAAAC,KAAA,IAAAl3B,GAAAk3B,IAAAl3B,KAAA03B,IAAuC77B,EAAAo7B,GAAAC,IAAA3e,GAAuE,IAAzD,OAAAkf,KAAAJ,GAAA,EAAAE,IAAA,GAAwB,IAAAL,IAAA7d,EAAA6d,IAAcO,GAAA,KAAQC,IAAA,EAAMjB,GAAA,EAAKkB,GAAA,KAAA33B,GAAA43B,MACle,KAAAD,IAAA,EAAA33B,EAAc,QAAAnE,GAAAmE,EAAAlE,GAAyC,GAAzBg7B,IAAAxf,EAAA,OAAmBwf,IAAA,EAAMh7B,GAAA6b,IAAA,CAAW,GAAA5b,GAAAiE,EAAA63B,YAAqB,QAAA97B,GAAAiE,EAAA63B,aAAA,KAAA73B,EAAA42B,wBAAA12B,EAAAnE,KAAAiE,EAAA63B,aAAA,aAAA97B,EAAAkK,EAAAjG,EAAAlE,MAAAkE,EAAA42B,wBAAA12B,EAAAnE,SAAwIA,GAAAiE,EAAA63B,aAAA,OAAA97B,GAAAiE,EAAA63B,aAAA,KAAA73B,EAAA42B,wBAAA12B,EAAAnE,KAAAiE,EAAA63B,aAAA,aAAA97B,EAAAkK,EAAAjG,EAAAlE,MAAAib,IAAA/W,EAAA63B,aAAA97B,EAAAiE,EAAA42B,wBAAA12B,EAAAnE,IAAmL+6B,KAAA,EAAM,QAAA/f,KAAa,eAAA0gB,OAAAK,gBAAAC,MAAAL,IAAA,GAAiD,QAAAnH,GAAAvwB,GAAe,OAAAi3B,IAAA3f,EAAA,OAC9d2f,GAAAL,wBAAA,EAA6Be,SAAA,EAAAC,GAAA53B,GAAiB,GAAAuU,GAAAye,GAAAhzB,GAAAxD,EAAA62B,GAAArzB,GAAAlD,EAAAyX,EAAA+c,iBAAAmE,EAAAlhB,EAAA6c,eAAA5c,EAAAD,EAAA6e,mBAAA4E,EAAArI,GAAA3vB,EAAAuU,EAAA/X,EAAAwc,EAAApC,GAAAue,EAAA6C,EAAAxH,UAAA4E,EAAA4C,EAAArH,gBAAAuE,EAAAtE,GAAA5wB,EAAAuU,EAAA/X,GAAAm1B,YAAqKpd,GAAAqd,GAAA5xB,EAAA6X,EAAU,IAAAqc,GAAA3f,EAAAke,uBAAA2B,EAAA7f,EAAAme,gBAAA6B,EAAAhgB,EAAAoe,eAAA0B,EAAA9f,EAAAqe,WAAA8B,EAAAngB,EAAAse,iBAAA8B,EAAApgB,EAAAue,gBAAAqB,EAAA5f,EAAAwe,gBAAAoE,EAAAn3B,EAAAi4B,IAAAT,EAAAx3B,EAAAk4B,yBAAAZ,EAAAt3B,EAAAm4B,uBAAA3B,EAAAx2B,EAAAgwB,kBAAAiE,EAAAj0B,EAAAo4B,iBAAA3D,EAAAz0B,EAAAq4B,iBACpOjB,EAAAD,IAAA9B,EAAA,EAAAkB,EAAA,EAAAxC,GAAA,EAAAha,EAAA,KAAAub,EAAA,KAAA5d,EAAA,EAAAqB,EAAA,KAAAG,GAAA,KAAA+b,GAAA,KAAAD,GAAA,KAAAF,GAAA,KAAAU,IAAA,EAAA1B,IAAA,EAAAQ,IAAA,EAAAuC,GAAA,KAAAhe,GAAA,KAAAwe,GAAA,EAAAE,IAAA,EAAAT,IAAA,EAAAG,GAAA,KAAAC,GAAA,EAAAQ,IAAA,EAAAC,IAAA,EAAAC,GAAA,KAAAH,GAAA,KAAAV,IAAA,EAAAC,IAAA,EAAAN,GAAA,IAAAD,GAAA,EAAAsB,GAAA,CAAyM,QAAOO,uBAAA9nB,EAAA+nB,0BAAA3hB,EAAA4hB,aAAAxf,EAAAyf,eAAA,SAAAz4B,EAAAE,GAAiG,GAAApE,GAAAi7B,EAASA,KAAA,CAAM,KAAI,MAAA/2B,GAAAE,GAAY,SAAQ62B,GAAAj7B,IAAAg7B,IAAAlmB,EAAA,UAAuB8nB,iBAAA,SAAA14B,GAA8B,GAAA+2B,KAAAC,GAAA,CAAYA,IAAA,CAAM,KAAI,MAAAh3B,KAAW,QAAQg3B,IAAA,GAAO,MAAAh3B,MAAW24B,UAAA,SAAA34B,GAAuB,GAAAE,GAAA62B,EAASA,KAAA,CAAM,KAAI/2B,EAAA,CAAG,GAAAlE,GACrfy6B,CAAGA,GAAA,CAAK,KAAI,GAAAx6B,GAAAiE,GAAU,MAAAA,GAAQ,QAAQu2B,EAAAz6B,EAAKC,MAAA,GAAS,MAAAA,GAAS,QAAQg7B,GAAA72B,EAAA42B,IAAAxf,EAAA,OAAA1G,EAAA,UAAmCgoB,gBAAA,SAAA54B,GAA6B,GAAAE,GAAAq2B,CAASA,GAAA/lB,GAAO,KAAI,MAAAxQ,KAAW,QAAQu2B,EAAAr2B,KAC5K,QAAA24B,IAAA74B,GAAe,QAAAE,GAAAF,GAAsB,MAARA,GAAAsmB,GAAAtmB,GAAQ,OAAAA,EAAA,KAAAA,EAAAoe,UAAiC,GAAAtiB,GAAAkE,EAAA8xB,iBAA0B9xB,GAAA6zB,GAAA7zB,EAAQ,IAAAjE,GAAAiE,EAAAs4B,uBAAAlyB,EAAApG,EAAAu4B,0BAAAhoB,EAAAvQ,EAAAw4B,YAA8E,QAAOM,gBAAA,SAAA94B,EAAAE,GAA8B,GAAApE,GAAA,GAAAuvB,IAAA,SAA2M,OAArLrrB,IAAGkY,QAAApc,EAAA6qB,cAAA3mB,EAAAusB,gBAAA,KAAAqK,wBAAA,EAAA5C,kBAAA,EAAA6D,aAAA,KAAA7gB,QAAA,KAAA8Y,eAAA,KAAAY,QAAAxwB,EAAAy2B,kBAAA,MAAkL76B,EAAAsiB,UAAApe,GAAqB+4B,gBAAA,SAAA/4B,EAAAE,EAAApE,EAAAwd,GAAmC,GAAArT,GAAA/F,EAAAgY,OAAgB,IAAApc,EAAA,CAAMA,EACpfA,EAAAmqB,mBAAsB,IAAApO,EAAM3X,GAAA,CAAwC,IAArC,IAAA4lB,GAAAhqB,IAAA,IAAAA,EAAA+iB,KAAAvH,EAAA,OAAqCO,EAAA/b,EAAQ,IAAA+b,EAAAgH,KAAU,CAAE,GAAAuL,GAAAvS,GAAA,CAAUA,IAAAuG,UAAA+M,yCAAwD,MAAAjrB,IAAQ2X,IAAA,SAAAP,EAAA,OAAgCO,IAAAuG,UAAApH,QAAsBlb,EAAAsuB,GAAAtuB,GAAAkvB,GAAAlvB,EAAA+b,SAAkB/b,GAAA+d,EAAS,QAAA3Z,EAAA8W,QAAA9W,EAAA8W,QAAAlb,EAAAoE,EAAA4vB,eAAAh0B,EAAgDoE,EAAAoZ,EAAIpZ,MAAA,KAAAA,EAAA,KAAAA,EAAoBoZ,EAAA,MAAAtZ,GAAA,MAAAA,EAAA+K,MAAA,MAAA/K,EAAA+K,KAAAnO,YAAA,IAAAoD,EAAA+K,KAAAnO,UAAAod,+BAAAje,IAAAqK,EAAAH,GAA+G0nB,GAAA1nB,GAAM6lB,eAAAxS,EAAAuU,cAA+B4C,QAAAzwB,GAAU+E,SAAA7E,EAAA6tB,WAAA,EAAAC,UAAA,EACzdG,aAAA,KAAAxmB,KAAA,OAA8B4I,EAAAtK,EAAAqT,IAAOmf,eAAAz4B,EAAAy4B,eAAAC,iBAAA14B,EAAA04B,iBAAAE,gBAAA54B,EAAA44B,gBAAAD,UAAA34B,EAAA24B,UAAAK,sBAAA,SAAAh5B,GAA2K,GAAZA,IAAAkY,SAAYlY,EAAAomB,MAAA,WAAwB,QAAApmB,EAAAomB,MAAAvH,KAAoB,aAAA/iB,GAAAkE,EAAAomB,MAAAhI,UAAmC,eAAApe,GAAAomB,MAAAhI,YAAkC6a,iBAAA/4B,EAAAg5B,8BAAA,SAAAl5B,GAAsE,MAARA,GAAAumB,GAAAvmB,GAAQ,OAAAA,EAAA,KAAAA,EAAAoe,WAAiC+a,mBAAA,SAAAn5B,GAAgC,GAAAlE,GAAAkE,EAAAo5B,uBAAgC,OAAA3M,IAAArV,MACxepX,GAAGq5B,wBAAA,SAAAr5B,GAAoC,MAAAE,GAAAF,IAAYo5B,wBAAA,SAAAp5B,GAAqC,MAAAlE,KAAAkE,GAAA,WAA4G,QAAAs5B,IAAAt5B,EAAAE,EAAApE,GAAmB,GAAAC,GAAA,EAAA2C,UAAAC,YAAA,KAAAD,UAAA,GAAAA,UAAA,OAAkE,QAAOqZ,SAAA0X,GAAA7wB,IAAA,MAAA7C,EAAA,QAAAA,EAAA6b,SAAA5X,EAAA2mB,cAAAzmB,EAAAujB,eAAA3nB,GAKhS,QAAAy9B,IAAAv5B,GAAe,QAAAw5B,GAAA38B,eAAAmD,KAAiCy5B,GAAA58B,eAAAmD,KAAiC05B,GAAAryB,KAAArH,GAAAw5B,GAAAx5B,IAAA,GAA8By5B,GAAAz5B,IAAA,GAAS,IACxH,QAAA25B,IAAA35B,EAAAE,EAAApE,GAAmB,GAAAC,GAAA0f,EAAAvb,EAAY,IAAAnE,GAAAwf,EAAArb,EAAApE,GAAA,CAAe,GAAAsK,GAAArK,EAAA69B,cAAuBxzB,KAAApG,EAAAlE,GAAA,MAAAA,GAAAC,EAAA2f,kBAAA5f,GAAAC,EAAA89B,iBAAAC,MAAAh+B,IAAAC,EAAAg+B,yBAAA,EAAAj+B,GAAAC,EAAA6f,4BAAA,IAAA9f,EAAAk+B,GAAAh6B,EAAAE,GAAAnE,EAAAk+B,gBAAAj6B,EAAAjE,EAAAipB,cAAAlpB,GAAAoE,EAAAnE,EAAAm+B,eAAA9zB,EAAArK,EAAAo+B,oBAAAn6B,EAAAo6B,eAAAh0B,EAAAlG,EAAA,GAAApE,GAAAC,EAAA2f,iBAAA3f,EAAA6f,4BAAA,IAAA9f,EAAAkE,EAAAujB,aAAArjB,EAAA,IAAAF,EAAAujB,aAAArjB,EAAA,GAAApE,QAAmWu+B,IAAAr6B,EAAAE,EAAAqb,EAAArb,EAAApE,KAAA,MACxa,QAAAu+B,IAAAr6B,EAAAE,EAAApE,GAAmBy9B,GAAAr5B,KAAA,MAAApE,EAAAkE,EAAAs6B,gBAAAp6B,GAAAF,EAAAujB,aAAArjB,EAAA,GAAApE,IAA6D,QAAAk+B,IAAAh6B,EAAAE,GAAiB,GAAApE,GAAA2f,EAAAvb,EAAYpE,IAAAoE,EAAApE,EAAA89B,gBAAA15B,EAAAF,MAAA,IAAAlE,EAAAm+B,gBAAAj6B,EAAAlE,EAAAkpB,eAAAlpB,EAAA4f,iBAAA,GAAA1b,EAAAs6B,gBAAAx+B,EAAAo+B,eAAAl6B,EAAAs6B,gBAAAp6B,GAC7G,QAAAq6B,IAAAv6B,EAAAE,GAAiB,GAAApE,GAAAoE,EAAA8B,MAAAjG,EAAAmE,EAAAkkB,OAA0B,OAAAhN,KAAUrM,SAAA,GAAAyvB,SAAA,GAAA7qB,QAAA,GAAAF,QAAA,IAA8CvP,GAAIu6B,mBAAA,GAAAC,iBAAA,GAAA14B,MAAA,MAAAlG,IAAAkE,EAAA26B,cAAAC,aAAAxW,QAAA,MAAAroB,IAAAiE,EAAA26B,cAAAE,iBAA0I,QAAAC,IAAA96B,EAAAE,GAAiB,GAAApE,GAAAoE,EAAAw6B,YAAqB16B,GAAA26B,eAAiBE,eAAA,MAAA36B,EAAAkkB,QAAAlkB,EAAAkkB,QAAAlkB,EAAAu6B,eAAAG,aAAA,MAAA16B,EAAA8B,MAAA9B,EAAA8B,MAAAlG,EAAAi/B,WAAA,aAAA76B,EAAA6K,MAAA,UAAA7K,EAAA6K,KAAA,MAAA7K,EAAAkkB,QAAA,MAAAlkB,EAAA8B,OACxS,QAAAg5B,IAAAh7B,EAAAE,GAA6B,OAAZA,IAAAkkB,UAAYuV,GAAA35B,EAAA,UAAAE,GAA2B,QAAA+6B,IAAAj7B,EAAAE,GAAiB86B,GAAAh7B,EAAAE,EAAQ,IAAApE,GAAAoE,EAAA8B,KAAc,OAAAlG,EAAA,IAAAA,GAAA,KAAAkE,EAAAgC,MAAAhC,EAAAgC,MAAA,IAA8C,WAAA9B,EAAA6K,MAA2B7K,EAAAg7B,WAAAl7B,EAAAgC,QAAA,GAAAlG,GAAAoE,GAAApE,GAAAoE,GAAAF,EAAAgC,OAAAlG,KAAAkE,EAAAgC,MAAA,GAAAlG,IAAgEkE,EAAAgC,QAAA,GAAAlG,IAAAkE,EAAAgC,MAAA,GAAAlG,IAAoC,MAAAoE,EAAA8B,OAAA,MAAA9B,EAAAw6B,cAAA16B,EAAA06B,eAAA,GAAAx6B,EAAAw6B,eAAA16B,EAAA06B,aAAA,GAAAx6B,EAAAw6B,cAAA,MAAAx6B,EAAAkkB,SAAA,MAAAlkB,EAAAu6B,iBAAAz6B,EAAAy6B,iBAAAv6B,EAAAu6B,iBAC5Q,QAAAU,IAAAn7B,EAAAE,GAAiB,OAAAA,EAAA6K,MAAe,8BAAiC,8FAAA/K,EAAAgC,MAAA,GAA+GhC,EAAAgC,MAAAhC,EAAA06B,YAAuB,MAAM,SAAA16B,EAAAgC,MAAAhC,EAAAgC,MAAwB9B,EAAAF,EAAAhE,KAAS,KAAAkE,IAAAF,EAAAhE,KAAA,IAAoBgE,EAAAy6B,gBAAAz6B,EAAAy6B,eAAmCz6B,EAAAy6B,gBAAAz6B,EAAAy6B,eAAmC,KAAAv6B,IAAAF,EAAAhE,KAAAkE,GAAmB,QAAAk7B,IAAAp7B,GAAe,GAAAE,GAAA,EAAuG,OAA9Fm7B,IAAAjhB,SAAAnc,QAAA+B,EAAA,SAAAA,GAAkC,MAAAA,GAAA,iBAAAA,IAAA,iBAAAA,KAAAE,GAAAF,KAA4DE,EACjd,QAAAo7B,IAAAt7B,EAAAE,GAA2E,MAA1DF,GAAAoX,IAAKQ,aAAA,IAAgB1X,IAAIA,EAAAk7B,GAAAl7B,EAAA0X,aAAA5X,EAAA4X,SAAA1X,GAAiCF,EAAS,QAAAu7B,IAAAv7B,EAAAE,EAAApE,EAAAC,GAAiC,GAAZiE,IAAAwC,QAAYtC,EAAA,CAAMA,IAAK,QAAAkG,GAAA,EAAYA,EAAAtK,EAAA6C,OAAWyH,IAAAlG,EAAA,IAAApE,EAAAsK,KAAA,CAAmB,KAAAtK,EAAA,EAAQA,EAAAkE,EAAArB,OAAW7C,IAAAsK,EAAAlG,EAAArD,eAAA,IAAAmD,EAAAlE,GAAAkG,OAAAhC,EAAAlE,GAAA0/B,WAAAp1B,IAAApG,EAAAlE,GAAA0/B,SAAAp1B,MAAArK,IAAAiE,EAAAlE,GAAA2/B,iBAAA,OAA4G,CAAmB,IAAd3/B,EAAA,GAAAA,EAAOoE,EAAA,KAAOkG,EAAA,EAAQA,EAAApG,EAAArB,OAAWyH,IAAA,CAAK,GAAApG,EAAAoG,GAAApE,QAAAlG,EAAiE,MAA9CkE,GAAAoG,GAAAo1B,UAAA,OAAiBz/B,IAAAiE,EAAAoG,GAAAq1B,iBAAA,GAAoC,QAAAv7B,GAAAF,EAAAoG,GAAA4J,WAAA9P,EAAAF,EAAAoG,IAAkC,OAAAlG,MAAAs7B,UAAA,IAC9b,QAAAE,IAAA17B,EAAAE,GAAiB,GAAApE,GAAAoE,EAAA8B,KAAchC,GAAA26B,eAAiBC,aAAA,MAAA9+B,IAAAoE,EAAAw6B,aAAAiB,cAAAz7B,EAAA07B,UAAgE,QAAAC,IAAA77B,EAAAE,GAAgE,MAA/C,OAAAA,EAAA47B,yBAAAxkB,EAAA,MAA+CF,MAAWlX,GAAI8B,UAAA,GAAA04B,iBAAA,GAAA9iB,SAAA,GAAA5X,EAAA26B,cAAAC,eAA4E,QAAAmB,IAAA/7B,EAAAE,GAAiB,GAAApE,GAAAoE,EAAA8B,KAAc,OAAAlG,MAAAoE,EAAAw6B,aAAAx6B,IAAA0X,SAAA,MAAA1X,IAAA,MAAApE,GAAAwb,EAAA,MAAAvQ,MAAAoB,QAAAjI,KAAA,GAAAA,EAAAvB,QAAA2Y,EAAA,MAAApX,IAAA,IAAApE,EAAA,GAAAoE,GAAA,MAAApE,MAAA,KAAwJkE,EAAA26B,eAAiBC,aAAA,GAAA9+B,GACnd,QAAAkgC,IAAAh8B,EAAAE,GAAiB,GAAApE,GAAAoE,EAAA8B,KAAc,OAAAlG,MAAA,GAAAA,MAAAkE,EAAAgC,QAAAhC,EAAAgC,MAAAlG,GAAA,MAAAoE,EAAAw6B,eAAA16B,EAAA06B,aAAA5+B,IAAoF,MAAAoE,EAAAw6B,eAAA16B,EAAA06B,aAAAx6B,EAAAw6B,cAAsD,QAAAuB,IAAAj8B,GAAe,GAAAE,GAAAF,EAAAkoB,WAAoBhoB,KAAAF,EAAA26B,cAAAC,eAAA56B,EAAAgC,MAAA9B,GAC5M,QAAAg8B,IAAAl8B,GAAe,OAAAA,GAAU,4CAA8C,sDAAuD,+CAA8C,QAAAm8B,IAAAn8B,EAAAE,GAAiB,aAAAF,GAAA,iCAAAA,EAAAk8B,GAAAh8B,GAAA,+BAAAF,GAAA,kBAAAE,EAAA,+BAAAF,EAE7L,QAAAo8B,IAAAp8B,EAAAE,GAAiB,GAAAA,EAAA,CAAM,GAAApE,GAAAkE,EAAAgoB,UAAmB,IAAAlsB,OAAAkE,EAAAq8B,WAAA,IAAAvgC,EAAAunB,SAAqD,YAAdvnB,EAAAwgC,UAAAp8B,GAAsBF,EAAAkoB,YAAAhoB,EAGvG,QAAAq8B,IAAAv8B,EAAAE,GAAiBF,IAAAoS,KAAU,QAAAtW,KAAAoE,GAAA,GAAAA,EAAArD,eAAAf,GAAA,CAAuC,GAAAC,GAAA,IAAAD,EAAA6P,QAAA,MAA0BvF,EAAAtK,EAAQyU,EAAArQ,EAAApE,EAAWsK,GAAA,MAAAmK,GAAA,kBAAAA,IAAA,KAAAA,EAAA,GAAAxU,GAAA,iBAAAwU,IAAA,IAAAA,GAAAisB,GAAA3/B,eAAAuJ,IAAAo2B,GAAAp2B,IAAA,GAAAmK,GAAApE,OAAAoE,EAAA,KAA2H,UAAAzU,MAAA,YAA4BC,EAAAiE,EAAAy8B,YAAA3gC,EAAAsK,GAAApG,EAAAlE,GAAAsK,GACtQ,QAAAs2B,IAAA18B,EAAAE,EAAApE,GAAmBoE,IAAAy8B,GAAA38B,KAAA,MAAAE,EAAA0X,UAAA,MAAA1X,EAAA47B,0BAAAxkB,EAAA,MAAAtX,EAAAlE,KAAA,MAAAoE,EAAA47B,0BAAA,MAAA57B,EAAA0X,UAAAN,EAAA,uBAAApX,GAAA47B,yBAAA,UAAA57B,GAAA47B,yBAAAxkB,EAAA,aAAApX,EAAAkS,OAAA,iBAAAlS,GAAAkS,OAAAkF,EAAA,KAAAxb,MACnB,QAAA8gC,IAAA58B,EAAAE,GAAiB,QAAAF,EAAA2L,QAAA,4BAAAzL,GAAA28B,EAAoD,QAAA78B,GAAU,yKAAkL,mBACjQ,QAAA88B,IAAA98B,EAAAE,GAAiBF,EAAA,IAAAA,EAAAqjB,UAAA,KAAArjB,EAAAqjB,SAAArjB,IAAA+8B,aAAoD,IAAAjhC,GAAA6rB,GAAA3nB,EAAYE,GAAA+c,GAAA/c,EAAQ,QAAAnE,GAAA,EAAYA,EAAAmE,EAAAvB,OAAW5C,IAAA,CAAK,GAAAqK,GAAAlG,EAAAnE,EAAWD,GAAAe,eAAAuJ,IAAAtK,EAAAsK,KAAA,cAAAA,EAAA+gB,GAAA,qBAAAnnB,GAAA,aAAAoG,GAAA,YAAAA,GAAA+gB,GAAA,mBAAAnnB,GAAAmnB,GAAA,iBAAAnnB,GAAAlE,EAAAkhC,SAAA,EAAAlhC,EAAAmhC,UAAA,iBAAA72B,GAAAkd,GAAA,cAAA6D,GAAA,qBAAAnnB,GAAAlE,EAAAohC,WAAA,gBAAA92B,GAAAkd,GAAA,aAAA6D,GAAA,mBAAAnnB,GAAAlE,EAAAqhC,UAAA,GAAAC,GAAAvgC,eAAAuJ,IAAA+T,GAAA/T,EAAAg3B,GAAAh3B,GAAApG,GAAAlE,EAAAsK,IAAA,IAE1G,QAAAi3B,IAAAr9B,EAAAE,EAAApE,EAAAC,GAAqS,MAAhRD,GAAA,IAAAA,EAAAunB,SAAAvnB,IAAAihC,cAAmChhC,IAAAuhC,KAAAvhC,EAAAmgC,GAAAl8B,IAAkBjE,IAAAuhC,GAAA,WAAAt9B,KAAAlE,EAAAoU,cAAA,OAAAlQ,EAAAu9B,UAAA,qBAAAv9B,IAAAuyB,YAAAvyB,EAAAgoB,aAAAhoB,EAAA,iBAAAE,GAAA28B,GAAA/gC,EAAAoU,cAAAlQ,GAAqK68B,GAAA38B,EAAA28B,KAAQ/gC,EAAAoU,cAAAlQ,KAAAlE,EAAA0hC,gBAAAzhC,EAAAiE,GAA8CA,EAAS,QAAAy9B,IAAAz9B,EAAAE,GAAiB,WAAAA,EAAAmjB,SAAAnjB,IAAA68B,eAAAl3B,eAAA7F,GACrV,QAAA09B,IAAA19B,EAAAE,EAAApE,EAAAC,GAAqB,GAAAqK,GAAAw2B,GAAA18B,EAAApE,EAAc,QAAAoE,GAAU,0BAAAia,GAAA,iBAAAna,EAAkD,IAAAuQ,GAAAzU,CAAQ,MAAM,6BAAAyU,IAAAotB,OAAA9gC,eAAA0T,IAAA4J,GAAA5J,EAAAotB,GAAAptB,GAAAvQ,EAAyEuQ,GAAAzU,CAAI,MAAM,cAAAqe,GAAA,mBAAAna,GAAsCuQ,EAAAzU,CAAI,MAAM,uBAAAqe,GAAA,mBAAAna,GAAgDma,GAAA,iBAAAna,GAAsBuQ,EAAAzU,CAAI,MAAM,YAAAqe,GAAA,mBAAAna,GAAoCma,GAAA,qBAAAna,GAA0BuQ,EAAAzU,CAAI,MAAM,eAAAqe,GAAA,qBAAAna,GAAyCuQ,EAAAzU,CAAI,MAAM,aAAAg/B,GAAA96B,EAAAlE,GAAqByU,EAAAgqB,GAAAv6B,EAAAlE,GAAUqe,GAAA,uBAAAna,GAC1d88B,GAAA/gC,EAAA,WAAiB,MAAM,cAAAwU,EAAA+qB,GAAAt7B,EAAAlE,EAAwB,MAAM,cAAA4/B,GAAA17B,EAAAlE,GAAsByU,EAAA6G,MAAMtb,GAAIkG,UAAA,KAAemY,GAAA,uBAAAna,GAA4B88B,GAAA/gC,EAAA,WAAiB,MAAM,gBAAAggC,GAAA/7B,EAAAlE,GAAwByU,EAAAsrB,GAAA77B,EAAAlE,GAAUqe,GAAA,uBAAAna,GAA4B88B,GAAA/gC,EAAA,WAAiB,MAAM,SAAAwU,EAAAzU,EAAY4gC,GAAAx8B,EAAAqQ,EAAAqtB,GAAW,IAAA/lB,GAAA5R,EAAAsK,CAAU,KAAAsH,IAAA5R,GAAA,GAAAA,EAAApJ,eAAAgb,GAAA,CAAmC,GAAAL,GAAAvR,EAAA4R,EAAW,WAAAA,EAAA0kB,GAAAv8B,EAAAwX,EAAAomB,IAAA,4BAAA/lB,EAAA,OAAAL,MAAAqmB,WAAA,KAAAC,GAAA99B,EAAAwX,GAAA,aAAAK,EAAA,iBAAAL,IAAA,aAAAtX,GAAA,KAAAsX,IAAA4kB,GAAAp8B,EAAAwX,GAAA,iBAAAA,IAAA4kB,GAAAp8B,EAC3T,GAAAwX,GAAA,mCAAAK,GAAA,6BAAAA,GAAA,cAAAA,IAAAmF,GAAAngB,eAAAgb,GAAA,MAAAL,GAAAslB,GAAA/gC,EAAA8b,GAAAzR,EAAAi0B,GAAAr6B,EAAA6X,EAAAL,GAAA,MAAAA,GAAAmiB,GAAA35B,EAAA6X,EAAAL,IAAoK,OAAAtX,GAAU,YAAAgkB,GAAAlkB,GAAmBm7B,GAAAn7B,EAAAlE,EAAQ,MAAM,gBAAAooB,GAAAlkB,GAAsBi8B,GAAAj8B,EAAAlE,EAAQ,MAAM,oBAAAA,EAAAkG,OAAAhC,EAAAujB,aAAA,QAAAznB,EAAAkG,MAA6D,MAAM,cAAAhC,EAAA47B,WAAA9/B,EAAA8/B,SAAsC17B,EAAApE,EAAAkG,MAAU,MAAA9B,EAAAq7B,GAAAv7B,IAAAlE,EAAA8/B,SAAA17B,GAAA,SAAApE,EAAA4+B,cAAAa,GAAAv7B,IAAAlE,EAAA8/B,SAAA9/B,EAAA4+B,cAAA,EAA2F,MAAM,4BAAAnqB,GAAAwtB,UAAA/9B,EAAAg+B,QACvc3mB,KACA,QAAA4mB,IAAAj+B,EAAAE,EAAApE,EAAAC,EAAAqK,GAAuB,GAAAmK,GAAA,IAAW,QAAArQ,GAAU,YAAApE,EAAAy+B,GAAAv6B,EAAAlE,GAAuBC,EAAAw+B,GAAAv6B,EAAAjE,GAAUwU,IAAK,MAAM,cAAAzU,EAAAw/B,GAAAt7B,EAAAlE,GAAwBC,EAAAu/B,GAAAt7B,EAAAjE,GAAUwU,IAAK,MAAM,cAAAzU,EAAAsb,MAAoBtb,GAAIkG,UAAA,KAAejG,EAAAqb,MAAMrb,GAAIiG,UAAA,KAAeuO,IAAK,MAAM,gBAAAzU,EAAA+/B,GAAA77B,EAAAlE,GAA0BC,EAAA8/B,GAAA77B,EAAAjE,GAAUwU,IAAK,MAAM,4BAAAzU,GAAAiiC,SAAA,mBAAAhiC,GAAAgiC,UAAA/9B,EAAAg+B,QAAA3mB,IAAoFqlB,GAAAx8B,EAAAnE,EAAA6hC,GAAW,IAAA33B,GAAA4R,CAAQ7X,GAAA,IAAO,KAAAiG,IAAAnK,GAAA,IAAAC,EAAAc,eAAAoJ,IAAAnK,EAAAe,eAAAoJ,IAAA,MAAAnK,EAAAmK,GAAA,aAAAA,EAAA,IAAA4R,IAAA3X,GAAApE,EAAAmK,GAAA/F,EAAArD,eAAAgb,KAAA7X,UAAmIA,EAAA6X,GAChf,QAAI,4BAAA5R,GAAA,aAAAA,GAAA,mCAAAA,GAAA,6BAAAA,GAAA,cAAAA,IAAA+W,GAAAngB,eAAAoJ,GAAAsK,oBAAAlP,KAAA4E,EAAA,MAAkM,KAAAA,IAAAlK,GAAA,CAAY,GAAAyb,GAAAzb,EAAAkK,EAAiC,IAAtB/F,EAAA,MAAApE,IAAAmK,OAAA,GAAsBlK,EAAAc,eAAAoJ,IAAAuR,IAAAtX,IAAA,MAAAsX,GAAA,MAAAtX,GAAA,aAAA+F,EAAA,GAAA/F,EAAA,CAAuE,IAAA2X,IAAA3X,MAAArD,eAAAgb,IAAAL,KAAA3a,eAAAgb,KAAA7X,UAAkEA,EAAA6X,GAAA,GAAW,KAAAA,IAAAL,KAAA3a,eAAAgb,IAAA3X,EAAA2X,KAAAL,EAAAK,KAAA7X,UAAsDA,EAAA6X,GAAAL,EAAAK,QAAa7X,KAAAuQ,YAAAlP,KAAA4E,EAAAjG,MAAAwX,MAAoC,4BAC9evR,GAAAuR,MAAAqmB,WAAA,GAAA39B,MAAA29B,WAAA,SAAArmB,GAAAtX,IAAAsX,IAAAjH,SAAAlP,KAAA4E,EAAA,GAAAuR,IAAA,aAAAvR,EAAA/F,IAAAsX,GAAA,iBAAAA,IAAA,iBAAAA,KAAAjH,SAAAlP,KAAA4E,EAAA,GAAAuR,GAAA,mCAAAvR,GAAA,6BAAAA,IAAA+W,GAAAngB,eAAAoJ,IAAA,MAAAuR,GAAAslB,GAAA12B,EAAAH,GAAAsK,GAAArQ,IAAAsX,IAAAjH,iBAAAlP,KAAA4E,EAAAuR,IAA4V,MAA7BxX,KAAAuQ,SAAAlP,KAAA,QAAArB,GAA6BuQ,EAC5V,QAAA2tB,IAAAl+B,EAAAE,EAAApE,EAAAC,EAAAqK,GAAuB,UAAAtK,GAAA,UAAAsK,EAAA2E,MAAA,MAAA3E,EAAApK,MAAAg/B,GAAAh7B,EAAAoG,GAAqDw2B,GAAA9gC,EAAAC,GAAQA,EAAA6gC,GAAA9gC,EAAAsK,EAAU,QAAAmK,GAAA,EAAYA,EAAArQ,EAAAvB,OAAW4R,GAAA,GAAM,GAAAtK,GAAA/F,EAAAqQ,GAAAsH,EAAA3X,EAAAqQ,EAAA,EAAoB,WAAAtK,EAAAs2B,GAAAv8B,EAAA6X,EAAA+lB,IAAA,4BAAA33B,EAAA63B,GAAA99B,EAAA6X,GAAA,aAAA5R,EAAAm2B,GAAAp8B,EAAA6X,GAAA9b,EAAA,MAAA8b,EAAAwiB,GAAAr6B,EAAAiG,EAAA4R,GAAA7X,EAAAs6B,gBAAAr0B,GAAA,MAAA4R,EAAA8hB,GAAA35B,EAAAiG,EAAA4R,GAAAmiB,GAAAh6B,EAAAiG,GAAuJ,OAAAnK,GAAU,YAAAm/B,GAAAj7B,EAAAoG,EAAqB,MAAM,gBAAA41B,GAAAh8B,EAAAoG,EAAwB,MAAM,cAAApG,EAAA26B,cAAAC,iBAAA,GAAA16B,EAAAF,EAAA26B,cAAAgB,YAAA37B,EAAA26B,cAAAgB,cAAAv1B,EAAAw1B,SAAA9/B,EAAAsK,EAAApE,MAAA,MAAAlG,EAAAy/B,GAAAv7B,IACzWoG,EAAAw1B,SAAA9/B,GAAA,GAAAoE,MAAAkG,EAAAw1B,WAAA,MAAAx1B,EAAAs0B,aAAAa,GAAAv7B,IAAAoG,EAAAw1B,SAAAx1B,EAAAs0B,cAAA,GAAAa,GAAAv7B,IAAAoG,EAAAw1B,SAAAx1B,EAAAw1B,YAAA,SACA,QAAAuC,IAAAn+B,EAAAE,EAAApE,EAAAC,EAAAqK,GAAuB,OAAAlG,GAAU,0BAAAia,GAAA,iBAAAna,EAAkD,MAAM,gCAAAuQ,KAAAotB,OAAA9gC,eAAA0T,IAAA4J,GAAA5J,EAAAotB,GAAAptB,GAAAvQ,EAA6E,MAAM,cAAAma,GAAA,mBAAAna,EAAsC,MAAM,uBAAAma,GAAA,mBAAAna,GAAgDma,GAAA,iBAAAna,EAAsB,MAAM,YAAAma,GAAA,mBAAAna,GAAoCma,GAAA,qBAAAna,EAA0B,MAAM,eAAAma,GAAA,qBAAAna,EAAyC,MAAM,aAAA86B,GAAA96B,EAAAlE,GAAqBqe,GAAA,uBAAAna,GAA4B88B,GAAA12B,EAAA,WAAiB,MAAM,cAAAs1B,GAAA17B,EAAAlE,GAC/dqe,GAAA,uBAAAna,GAA4B88B,GAAA12B,EAAA,WAAiB,MAAM,gBAAA21B,GAAA/7B,EAAAlE,GAAAqe,GAAA,uBAAAna,GAAA88B,GAAA12B,EAAA,YAAqEs2B,GAAAx8B,EAAApE,EAAA8hC,IAAW7hC,EAAA,IAAO,QAAAkK,KAAAnK,KAAAe,eAAAoJ,KAAAsK,EAAAzU,EAAAmK,GAAA,aAAAA,EAAA,iBAAAsK,GAAAvQ,EAAAkoB,cAAA3X,IAAAxU,GAAA,WAAAwU,IAAA,iBAAAA,IAAAvQ,EAAAkoB,cAAA,GAAA3X,IAAAxU,GAAA,cAAAwU,IAAAyM,GAAAngB,eAAAoJ,IAAA,MAAAsK,GAAAusB,GAAA12B,EAAAH,GAA8N,QAAA/F,GAAU,YAAAgkB,GAAAlkB,GAAmBm7B,GAAAn7B,EAAAlE,EAAQ,MAAM,gBAAAooB,GAAAlkB,GAAsBi8B,GAAAj8B,EAAAlE,EAAQ,MAAM,gCAAkC,4BAAAA,GAAAiiC,UACzd/9B,EAAAg+B,QAAA3mB,IAAc,MAAAtb,GAAS,QAAAqiC,IAAAp+B,EAAAE,GAAiB,MAAAF,GAAAs8B,YAAAp8B,EAEgU,QAAAm+B,IAAAr+B,GAAe,SAAAA,GAAA,IAAAA,EAAAqjB,UAAA,IAAArjB,EAAAqjB,UAAA,KAAArjB,EAAAqjB,WAAA,IAAArjB,EAAAqjB,UAAA,iCAAArjB,EAAAs8B,YACvX,QAAAgC,IAAAt+B,GAAsE,UAAvDA,IAAA,IAAAA,EAAAqjB,SAAArjB,EAAAggB,gBAAAhgB,EAAAgoB,WAAA,OAAuD,IAAAhoB,EAAAqjB,WAAArjB,EAAAu+B,aAAA,mBAUtE,QAAAC,IAAAx+B,EAAAE,EAAApE,EAAAC,EAAAqK,GAAuBi4B,GAAAviC,IAAAwb,EAAA,MAAsB,IAAA/G,GAAAzU,EAAA2iC,mBAA4B,IAAAluB,EAAAmuB,GAAA3F,gBAAA74B,EAAAqQ,EAAAvQ,EAAAoG,OAAgC,CAAgB,KAAXrK,KAAAuiC,GAAAxiC,IAAW,IAAAyU,MAAA,GAAmBA,EAAAzU,EAAAugC,WAAcvgC,EAAAy2B,YAAAhiB,EAAkB,IAAAtK,GAAAy4B,GAAA5F,gBAAAh9B,EAAAC,EAA6BwU,GAAAzU,EAAA2iC,oBAAAx4B,EAA0By4B,GAAAhG,iBAAA,WAA8BgG,GAAA3F,gBAAA74B,EAAA+F,EAAAjG,EAAAoG,KAA6B,MAAAs4B,IAAA1F,sBAAAzoB,GAAkC,QAAAouB,IAAA3+B,EAAAE,GAAiB,GAAApE,GAAA,EAAA4C,UAAAC,YAAA,KAAAD,UAAA,GAAAA,UAAA,OAAwF,OAAtB2/B,IAAAn+B,IAAAoX,EAAA,OAAsBgiB,GAAAt5B,EAAAE,EAAA,KAAApE,GACza,QAAA8iC,IAAA5+B,EAAAE,GAAiBb,KAAAo/B,oBAAAC,GAAA5F,gBAAA94B,EAAAE,GArNJ,GAAAm7B,IAAAhgC,EAAA,GAAAM,GAAAN,EAAA,IAAA+b,GAAA/b,EAAA,GAAAgc,GAAAhc,EAAA,GAAA2rB,GAAA3rB,EAAA,IAAAqtB,GAAArtB,EAAA,IAAA8tB,GAAA9tB,EAAA,IAAAwjC,GAAAxjC,EAAA,IAAAyjC,GAAAzjC,EAAA,IAAAwe,GAAAxe,EAAA,EACkYggC,KAAA/jB,EAAA,MAC/Y,IAAAkE,KAAQ5D,UAAA,EAAAkkB,yBAAA,EAAApB,cAAA,EAAAD,gBAAA,EAAA8C,WAAA,EAAAwB,gCAAA,EAAAC,0BAAA,EAAA5sB,OAAA,GACR6sB,IAAQC,kBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,2BAAA,GAAAC,6BAAA,GAAAC,yBAAA,GAAAC,wBAAA,SAAAx/B,GAA0L,GAAAE,GAAA++B,GAAAnjC,EAAAkE,EAAAy/B,eAA2B1jC,EAAAiE,EAAA0/B,2BAA+Bt5B,EAAApG,EAAA2/B,qBAA2B3/B,KAAA4/B,sBAA2B,QAAArvB,KAAAzU,GAAA,CAAgB+f,GAAAhf,eAAA0T,IAAA+G,EAAA,KAAA/G,EAAsC,IAAAtK,GAAAsK,EAAAjJ,cAAAuQ,EAAA/b,EAAAyU,EAA6BtK,IAAGi0B,cAAAj0B,EAAAk0B,mBAAA,KAAAnV,aAAAzU,EAAAqpB,eAAA,KAAAK,gBAAA3e,EAAAzD,EAAA3X,EAAAg/B,mBACxYxjB,gBAAAJ,EAAAzD,EAAA3X,EAAAi/B,mBAAAtF,gBAAAve,EAAAzD,EAAA3X,EAAAk/B,mBAAArF,wBAAAze,EAAAzD,EAAA3X,EAAAm/B,4BAAAzjB,0BAAAN,EAAAzD,EAAA3X,EAAAo/B,8BAAA3jB,sBAAAL,EAAAzD,EAAA3X,EAAAq/B,2BAAsQ,GAAAt5B,EAAAyV,gBAAAzV,EAAA4zB,gBAAA5zB,EAAA2V,2BAAAtE,EAAA,KAAA/G,GAAoFnK,EAAAvJ,eAAA0T,KAAAtK,EAAAi0B,cAAA9zB,EAAAmK,IAA4CxU,EAAAc,eAAA0T,KAAAtK,EAAAk0B,mBAAAp+B,EAAAwU,IAAiDvQ,EAAAnD,eAAA0T,KAAAtK,EAAA2zB,eAAA55B,EAAAuQ,IAA6CsL,GAAAtL,GAAAtK,KAAU4V,MAE9egkB,GAAAZ,GAAAa,GAAAD,GAAAX,kBAAA/mB,GAAA0nB,GAAAV,kBAAAY,GAAAF,GAAAT,kBAAAY,GAAAH,GAAAR,2BAAAY,GAAAJ,GAAAP,6BAAAY,GAAAL,GAAAN,yBAAAY,IAAwLV,YAAYW,gBAAAjoB,GAAAkoB,MAAAloB,GAAAmoB,UAAAnoB,GAAAooB,SAAApoB,GAAAiP,QAAA6Y,GAAA7b,QAAA0b,GAAA3nB,GAAAqoB,KAAAR,GAAA1X,gBAAA4X,GAAAO,SAAAtoB,GAAA+C,QAAA/C,GAAAuoB,MAAAvoB,GAAAnI,SAAAmI,GAAAwoB,SAAAV,GAAAW,UAAAV,GAAAW,eAAA1oB,GAAA2oB,OAAA3oB,GAAA4oB,KAAA5oB,GAAAyjB,SAAAkE,GAAA3nB,GAAA6oB,MAAAlB,GAAA3nB,GAAA8oB,WAAA9oB,GAAA/J,KAAA+J,GAAA+oB,YAAA/oB,GAAAgpB,SAAAhpB,GAAAipB,SAAAjpB,GAAAkpB,SAAAlpB,GAAAmpB,KAAAtB,GAAAuB,QAAAxB,GACpMyB,OAAArpB,GAAAspB,SAAAtpB,GAAAqjB,SAAAsE,GAAA3nB,GAAA9H,KAAA2vB,GAAAzuB,MAAAwuB,GAAA2B,KAAA1B,GAAA2B,WAAAzB,GAAA9tB,MAAA,EAAAwvB,SAAA,EAAAC,UAAA1pB,GAAA2pB,cAAA,EAAA3xB,UAAA,EAAA4xB,QAAA,EAAAC,UAAA,EAAAhgC,MAAAk+B,IAAmKP,mBAAoBmC,cAAA,iBAAA3xB,UAAA,QAAA4xB,QAAA,MAAAC,UAAA,cAAsFpC,oBAAqB59B,MAAA,SAAAhC,EAAAE,GAAoB,SAAAA,EAAA,MAAAF,GAAAs6B,gBAAA,QAA6C,YAAAt6B,EAAA+K,OAAA,IAAA/K,EAAAu+B,aAAA,SAAAv+B,EAAAujB,aAAA,WAAArjB,GAAAF,EAAAiiC,WAAAjiC,EAAAiiC,SAAAC,UAAAliC,EAAA+8B,cAAAoF,gBAAAniC,GACnWA,EAAAujB,aAAA,WAAArjB,MAA+BkiC,GAAAvC,GAAAN,yBAAA/mB,IAAmC6pB,MAAA,+BAAAC,IAAA,wCAAgFC,IAAK9C,YAAY+C,YAAAJ,GAAAK,0BAAAL,GAAAM,cAAAN,IAA6DzC,mBAAoB6C,YAAA,cAAAC,0BAAA,4BAAAC,cAAA,iBAA8GhD,wBAAyBiD,aAAAnqB,GAAA6pB,MAAAO,aAAApqB,GAAA6pB,MAAAQ,UAAArqB,GAAA6pB,MAAAS,UAAAtqB,GAAA6pB,MAAAU,UAAAvqB,GAAA6pB,MAAAW,WAAAxqB,GAAA6pB,MAAAY,UAAAzqB,GAAA6pB,MAC3Xa,QAAA1qB,GAAA8pB,IAAAa,QAAA3qB,GAAA8pB,IAAAc,SAAA5qB,GAAA8pB,MAA4Ce,GAAA,gBAC5C,2qCAAArlC,MAAA,KAAAC,QAAA,SAAA+B,GAAysC,GAAAE,GAAAF,EAAAqM,QAAAg3B,GACzsCvnB,EAAIymB,IAAA9C,WAAAv/B,GAAA,EAAmBqiC,GAAA5C,kBAAAz/B,GAAAF,IAA4B6/B,GAAAL,wBAAAW,IAA+BN,GAAAL,wBAAA+C,GAClF,IAAAzpB,KAAOmD,aAAA,KAAAD,iBAAA,EAAAK,cAAA,KAAAD,kBAAA,EAAAknB,WAAuFC,iBAAA,SAAAvjC,GAA6B,mBAAAA,GAAAwjC,uBAAAlsB,EAAA,OAA4DyE,EAAA/b,EAAAwjC,wBAA4BA,sBAAA,SAAAxjC,EAAAE,EAAApE,EAAAC,EAAAqK,EAAAmK,EAAAtK,EAAA4R,EAAAL,GAAmDuE,EAAAG,MAAApD,GAAApa,YAAsB8e,wCAAA,SAAAxd,EAAAE,EAAApE,EAAAC,EAAAqK,EAAAmK,EAAAtK,EAAA4R,EAAAL,GAAmH,GAA9CsB,GAAA0qB,sBAAAtnB,MAAA7c,KAAAX,WAA8Coa,GAAA2qB,iBAAA,CAAuB,GAAAnqB,GAAAR,GAAA4qB,kBAA2B5qB,IAAAsD,mBAAAtD,GAAAsD,kBAAA,EAAAtD,GAAAuD,cACjc/C,KAAIoF,mBAAA,WAA+B,MAAAvC,GAAAD,MAAApD,GAAApa,YAA6B+kC,eAAA,WAA2B,MAAA3qB,IAAAkD,iBAAyB0nB,iBAAA,WAA6B,GAAA5qB,GAAAkD,gBAAA,CAAsB,GAAAhc,GAAA8Y,GAAAmD,YAA8D,OAAzCnD,IAAAmD,aAAA,KAAoBnD,GAAAkD,iBAAA,EAAqBhc,EAASsX,EAAA,SAC9HiF,GAAA,KAAAC,MAE1BC,MAAAG,MAAeI,MAAMC,MAC3G0mB,GAAAxnC,OAAA8e,QAAsB2oB,QAAAnnB,GAAAonB,yBAAAjnB,GAAAknB,wBAAA9mB,GAAA+mB,6BAAA9mB,GAAA+mB,0BAAA,KAAAC,uBAAA9mB,EAAA+mB,yBAAA9mB,IAAuLiB,GAAA,KAAAgE,GAAA,KAAA9E,GAAA,KACoDiB,GAAA,KACsF2lB,IAAQF,uBAAA9mB,EAAA+mB,yBAAA9mB,GAE9FgnB,GAAAjoC,OAAA8e,QAAsBqoB,UAAAa,GAAAE,YAAAlmB,EAAAzB,cAAA4B,EAAAgmB,cAAA/lB,EAAAgmB,kBAAA9lB,IAAmF+lB,GAAA30B,KAAA40B,SAAAj6B,SAAA,IAAAxD,MAAA,GAAAiS,GAAA,2BAAAurB,GAAAxlB,GAAA,wBAAAwlB,GAE1WE,GAAAvoC,OAAA8e,QAAsB0pB,kBAAA,SAAA3kC,EAAAE,GAAgCA,EAAA+Y,IAAAjZ,GAAO4kC,2BAAAjmB,EAAAkmB,oBAAA,SAAA7kC,GAAsE,MAAPA,KAAAiZ,KAAOjZ,GAAA,IAAAA,EAAA6e,KAAA,IAAA7e,EAAA6e,IAAA,KAAA7e,GAAsC8kC,oBAAAhmB,EAAAimB,6BAAAhmB,EAAAimB,iBAAA,SAAAhlC,EAAAE,GAAuFF,EAAAgf,IAAA9e,KAIhQ+kC,GAAA9oC,OAAA8e,QAAsBiqB,6BAAAxlB,EAAAylB,uCAAA,SAAAnlC,GAAmF2d,EAAA3d,EAAAuf,IAAS6lB,+BAAAzlB,EAAA0lB,2BAAA,SAAArlC,GAA0E2d,EAAA3d,EAAAyf,MAAUK,GAAA,KAA4H3G,IAAOkH,MAAA,KAAAF,WAAA,KAAAD,cAAA,MAEzUolB,GAAA,uHAAAtnC,MAAA,KAAAunC,IAA6Ix6B,KAAA,KAAA1M,OAAA,KAAAif,cAAAjG,GAAAlY,gBAAAqmC,WAAA,KAAAC,QAAA,KAAAC,WAAA,KAAAC,UAAA,SAAA3lC,GAAyH,MAAAA,GAAA2lC,WAAAC,KAAA3N,OAA+BxX,iBAAA,KAAAolB,UAAA,KAErSzuB,IAAAgC,EAAAxc,WAAekpC,eAAA,WAA0BzmC,KAAAohB,kBAAA,CAAyB,IAAAzgB,GAAAX,KAAAihB,WAAuBtgB,OAAA8lC,eAAA9lC,EAAA8lC,iBAAA,kBAAA9lC,GAAA0gB,cAAA1gB,EAAA0gB,aAAA,GAAArhB,KAAAmhB,mBAAAnJ,GAAAnY,kBAAwI6mC,gBAAA,WAA4B,GAAA/lC,GAAAX,KAAAihB,WAAuBtgB,OAAA+lC,gBAAA/lC,EAAA+lC,kBAAA,kBAAA/lC,GAAAgmC,eAAAhmC,EAAAgmC,cAAA,GAAA3mC,KAAAye,qBAAAzG,GAAAnY,kBAA8I+mC,QAAA,WAAoB5mC,KAAA0e,aAAA1G,GAAAnY,iBAAoC6e,aAAA1G,GAAApY,iBAC1d6hB,WAAA,WAAsB,GAAA5gB,GAAAF,EAAAX,KAAAwB,YAAA0f,SAAmC,KAAArgB,IAAAF,GAAAX,KAAAa,GAAA,IAAwB,KAAAF,EAAA,EAAQA,EAAAslC,GAAA3mC,OAAYqB,IAAAX,KAAAimC,GAAAtlC,IAAA,QAAwBoZ,EAAAmH,UAAAglB,GAAensB,EAAA8sB,aAAA,SAAAlmC,EAAAE,GAA6B,QAAApE,MAAcA,EAAAc,UAAAyC,KAAAzC,SAA2B,IAAAb,GAAA,GAAAD,EAAYsb,IAAArb,EAAAiE,EAAApD,WAAiBoD,EAAApD,UAAAb,EAAciE,EAAApD,UAAAiE,YAAAb,EAA0BA,EAAAugB,UAAAnJ,MAAgB/X,KAAAkhB,UAAArgB,GAAmBF,EAAAkmC,aAAA7mC,KAAA6mC,aAAiCnlB,EAAA/gB,IAAO+gB,EAAA3H,GACtIA,EAAA8sB,aAAAjlB,GAAmBjb,KAAA,OAA6DoT,EAAA8sB,aAAAhlB,GAAmBlb,KAAA,MAAY,IAAAob,KAAA,YAAAU,GAAAnmB,GAAAokB,WAAA,oBAAA1d,QAAA8jC,GAAA,IAAwExqC,IAAAokB,WAAA,gBAAAna,YAAAugC,GAAAvgC,SAAAwgC,aAAmE,IAAAC,GACtd,IAAAA,GAAA1qC,GAAAokB,WAAA,aAAA1d,UAAA8jC,GAAA,CAA8C,GAAAG,IAAAjkC,OAAAkkC,KAAoBF,MAAA,iBAAAC,KAAA,mBAAAA,IAAAzrB,SAAA,IAAAnL,SAAA42B,GAAAzrB,UAAA,KAClE,GAO+P2I,IAP/PgjB,GAAAH,GAAAlkB,GAAAxmB,GAAAokB,aAAA+B,IAAAqkB,IAAA,EAAAA,IAAA,IAAAA,IAAAxkB,GAAAlkB,OAAAG,aAAA,IAAA6oC,IAAiFC,aAAa7pB,yBAAyB8pB,QAAA,gBAAAC,SAAA,wBAAwD1pB,cAAA,8DAA4E2pB,gBAAiBhqB,yBAAyB8pB,QAAA,mBAAAC,SAAA,2BAA8D1pB,aAAA,yEAAAlf,MAAA,MAAkG8oC,kBAAmBjqB,yBAAyB8pB,QAAA,qBACjfC,SAAA,6BAAqC1pB,aAAA,2EAAAlf,MAAA,MAAoG+oC,mBAAoBlqB,yBAAyB8pB,QAAA,sBAAAC,SAAA,8BAAoE1pB,aAAA,4EAAAlf,MAAA,OAAsG0jB,IAAA,EAC9EG,IAAA,EAElRmlB,IAAQrqB,WAAA8pB,GAAA/pB,cAAA,SAAA1c,EAAAE,EAAApE,EAAAC,GAA8C,GAAAqK,EAAM,IAAA0b,GAAA5hB,EAAA,CAAS,OAAAF,GAAU,6BAAAuQ,GAAAk2B,GAAAK,gBAAqD,MAAA5mC,EAAQ,yBAAAqQ,EAAAk2B,GAAAI,cAA6C,MAAA3mC,EAAQ,4BAAAqQ,EAAAk2B,GAAAM,iBAAmD,MAAA7mC,GAAQqQ,MAAA,OAASsR,IAAAV,EAAAnhB,EAAAlE,KAAAyU,EAAAk2B,GAAAI,gBAAA,eAAA7mC,GAAA,MAAAlE,EAAAulB,UAAA9Q,EAAAk2B,GAAAK,iBAC9H,OADgOv2B,IAAA4R,KAAAN,IAAAtR,IAAAk2B,GAAAK,iBAAAv2B,IAAAk2B,GAAAI,gBAAAhlB,KAAAzb,EAAA6Z,MAAA9G,GAAAkH,MAAAtkB,EAAAod,GAAAgH,WAAAC,IAAAyB,IAAA,IAAAtR,EAAA0Q,EAAAD,UAAAzQ,EAAArQ,EAAApE,EAAAC,GAAAqK,EAAAmK,EAAAvK,KACvWI,EAAA,QAAAA,EAAAkb,EAAAxlB,MAAAyU,EAAAvK,KAAAI,GAAAsZ,EAAAnP,GAAAnK,EAAAmK,GAAAnK,EAAA,MAAmDpG,EAAAwmC,GAAAhlB,EAAAxhB,EAAAlE,GAAA8lB,EAAA5hB,EAAAlE,KAAAoE,EAAAghB,EAAAF,UAAAylB,GAAAC,YAAAxmC,EAAApE,EAAAC,GAAAmE,EAAA8F,KAAAhG,EAAA0f,EAAAxf,MAAA,MAAoFkG,EAAAlG,KAAaoiB,GAAA,KAAAG,GAAA,KAAAC,GAAA,KAA6LukB,IAAQC,mCAAA,SAAAlnC,GAA+CsiB,GAAAtiB,IAC9SmnC,GAAAhrC,OAAA8e,QAAsBqoB,UAAA2D,GAAAG,oBAAA5kB,EAAA6kB,qBAAA1kB,IAA2FG,IAAA,EAA6FG,IAAQrR,OAAA,EAAA01B,MAAA,EAAAC,UAAA,EAAAC,kBAAA,EAAAC,OAAA,EAAAC,OAAA,EAAAC,QAAA,EAAAC,UAAA,EAAAC,OAAA,EAAAC,QAAA,EAAAC,KAAA,EAAA98B,MAAA,EAAA+8B,MAAA,EAAAl8B,KAAA,EAAAm8B,MAAA,EAC1CtsC,IAAAokB,YAAAyD,GAAA5d,SAAA6d,gBAAA7d,SAAA6d,eAAAC,aAAA,IAAA9d,SAAA6d,eAAAC,WAAA,OAG1B,IAAAY,KAAQC,QAAQ1H,yBAAyB8pB,QAAA,WAAAC,SAAA,mBAA8C1pB,aAAA,sFAAAlf,MAAA,OAC5O4mB,GAAA,KAAAG,GAAA,KAA0ImjB,IAAA,CAAUvsC,IAAAokB,YAAAmoB,GAAA5kB,GAAA,YAAA1d,SAAAwgC,cAAA,EAAAxgC,SAAAwgC,cAE3O,IAAA+B,KAAQxrB,WAAA2H,GAAA8jB,uBAAAF,GAAAxrB,cAAA,SAAA1c,EAAAE,EAAApE,EAAAC,GAAwE,GAAAqK,GAAAlG,EAAA4e,EAAA5e,GAAAmC,OAAAkO,EAAAnK,EAAA4c,UAAA5c,EAAA4c,SAAA1b,aAA4D,eAAAiJ,GAAA,UAAAA,GAAA,SAAAnK,EAAA2E,KAAA,GAAA9E,GAAAye,OAAuD,IAAA3B,GAAA3c,GAAA,GAAA8hC,GAAAjiC,EAAAof,OAAyB,CAAKpf,EAAAkf,EAAK,IAAAtN,GAAAoN,SAAS1U,EAAAnK,EAAA4c,WAAA,UAAAzS,EAAAjJ,eAAA,aAAAlB,EAAA2E,MAAA,UAAA3E,EAAA2E,OAAA9E,EAAAmf,GAA+F,IAAAnf,QAAAjG,EAAAE,IAAA,MAAAmkB,IAAApe,EAAAnK,EAAAC,EAAkC8b,MAAA7X,EAAAoG,EAAAlG,GAAY,YAAAF,GAAA,MAAAE,IAAAF,EAAAE,EAAAy6B,eAAAv0B,EAAAu0B,gBAAA36B,EAAA+6B,YAAA,WAAA30B,EAAA2E,OAAA/K,EAAA,GAAAoG,EAAApE,MAAAoE,EAAAiiC,aAAA,WAC5XroC,GAAAoG,EAAAmd,aAAA,QAAAvjB,KAAiFoZ,GAAA8sB,aAAA5gB,IAAmBjc,KAAA,KAAAkY,OAAA,MAAwB,IAAAkE,KAAQ6iB,IAAA,SAAAC,QAAA,UAAAC,KAAA,UAAAC,MAAA,WACpInjB,IAAA4gB,aAAAvgB,IAAoB+iB,QAAA,KAAAC,QAAA,KAAAC,QAAA,KAAAC,QAAA,KAAAC,MAAA,KAAAC,MAAA,KAAAhnB,QAAA,KAAAinB,SAAA,KAAAhnB,OAAA,KAAAC,QAAA,KAAAuD,iBAAAE,GAAAujB,OAAA,KAAAC,QAAA,KAAAC,cAAA,SAAAnpC,GAAqM,MAAAA,GAAAmpC,gBAAAnpC,EAAAopC,cAAAppC,EAAAmjB,WAAAnjB,EAAAqpC,UAAArpC,EAAAopC,eACzN,IAAAE,KAAQC,YAAYxsB,iBAAA,eAAAG,cAAA,+BAA4EssB,YAAazsB,iBAAA,eAAAG,cAAA,gCAA6EusB,IAAK9sB,WAAA2sB,GAAA5sB,cAAA,SAAA1c,EAAAE,EAAApE,EAAAC,GAA8C,oBAAAiE,IAAAlE,EAAAqtC,eAAArtC,EAAAstC,cAAA,gBAAAppC,GAAA,iBAAAA,EAAA,WAA2G,IAAAoG,GAAArK,EAAAsG,SAAAtG,KAAAqK,EAAArK,EAAAghC,eAAA32B,EAAAsjC,aAAAtjC,EAAAujC,aAAAtnC,MAA2J,IAA7E,gBAAArC,KAAAE,OAAApE,EAAAqtC,eAAArtC,EAAAutC,WAAA1qB,EAAAze,GAAA,MAAAF,EAAA,KAA6EA,IACnfE,EAAA,WAAc,IAAAqQ,GAAA,MAAAvQ,EAAAoG,EAAA0Y,EAAA9e,EAAsBoG,GAAA,MAAAlG,EAAAkG,EAAA0Y,EAAA5e,EAAkB,IAAA+F,GAAA0f,GAAA3E,UAAAsoB,GAAAE,WAAAxpC,EAAAlE,EAAAC,EAA0L,OAAlJkK,GAAA8E,KAAA,aAAoB9E,EAAA5H,OAAAkS,EAAWtK,EAAAkjC,cAAA/iC,EAAkBtK,EAAA6pB,GAAA3E,UAAAsoB,GAAAC,WAAArpC,EAAApE,EAAAC,GAAoCD,EAAAiP,KAAA,aAAoBjP,EAAAuC,OAAA+H,EAAWtK,EAAAqtC,cAAA54B,EAAkBoP,EAAA1Z,EAAAnK,EAAAkE,EAAAE,IAAY+F,EAAAnK,KAAa4G,GAAA24B,GAAAvgB,mDAAAC,kBAI0CsM,MACWN,IAAA,EAAAH,OAAA,GAElTgjB,GAAAztC,OAAA8e,QAAsB4uB,eAAe,MAAA9iB,KAAU+iB,sBAAuB,MAAAljB,KAAUmjB,kBAAA,SAAA/pC,GAA+B4mB,GAAA5mB,GAAKgqC,WAAAljB,GAAAmjB,UAAA,WAAoC,MAAAljB,KAAUmjB,iBAAA/vB,GAAAgwB,kBAAAhjB,GAAAijB,cAAAljB,KAClKO,IAAQ4iB,aAAA/iB,GAAA,4BAAAgjB,mBAAAhjB,GAAA,kCAAAijB,eAAAjjB,GAAA,8BAAAkjB,cAAAljB,GAAA,+BAAmME,MAAME,KAAO/rB,IAAAokB,YAAA2H,GAAA9hB,SAAAsK,cAAA,OAAAkC,MAAA,kBAAA/P,gBAAAolB,IAAA4iB,aAAAI,gBAAAhjB,IAAA6iB,mBAAAG,gBAAAhjB,IAAA8iB,eAAAE,WAAA,mBAAApoC,eAAAolB,IAAA+iB,cAAAE,WAExN,IAAAtN,KAAQuN,SAAA,QAAAC,gBAAArjB,GAAA,gCAAAsjB,sBAAAtjB,GAAA,4CAAAujB,kBAAAvjB,GAAA,oCAAAyV,QAAA,OAAAE,UAAA,SAAA6N,WAAA,UAAAC,kBAAA,iBAAAC,UAAA,SAAAC,SAAA,QAAA/N,SAAA,QAAAgO,kBAAA,iBAAAC,oBAAA,mBAAAC,qBAAA,oBAAAC,eAAA,cAAAC,QAAA,OACRC,OAAA,MAAAC,eAAA,WAAAC,QAAA,OAAAC,WAAA,UAAAC,aAAA,YAAAC,YAAA,WAAAC,aAAA,YAAAC,YAAA,WAAAC,aAAA,YAAAC,QAAA,OAAAC,kBAAA,iBAAAC,WAAA,UAAAC,aAAA,YAAAC,SAAA,QAAAC,SAAA,QAAArP,SAAA,QAAAsP,SAAA,QAAAC,WAAA,UAAAC,YAAA,WAAAC,SAAA,QAAAC,cAAA,aAAAC,QAAA,OAAAC,kBAAA,iBAAAC,aAAA,YACAC,aAAA,YAAAC,aAAA,YAAAC,YAAA,WAAAC,aAAA,YAAAC,WAAA,UAAAC,SAAA,QAAAC,SAAA,QAAAC,QAAA,OAAAC,WAAA,UAAAC,YAAA,WAAAC,cAAA,aAAAC,UAAA,SAAAC,UAAA,SAAAC,WAAA,UAAAC,mBAAA,kBAAAC,WAAA,UAAAC,WAAA,UAAAC,aAAA,YAAAC,cAAA,aAAAC,UAAA,SAAAC,eAAA,cAAAC,YAAA,WAAAC,aAAA,YACAC,cAAA,aAAAC,iBAAAhnB,GAAA,kCAAAinB,gBAAA,eAAAC,WAAA,UAAAC,SAAA,SAAsJ5mB,MAAMD,GAAA,EAAAD,GAAA,wBAAA/X,KAAA40B,UAAAz9B,MAAA,GAE5J2nC,GAAAhzC,GAAAokB,WAAA,gBAAAna,WAAA,IAAAA,SAAAwgC,aAAAhd,IAA6EC,QAAQxM,yBAAyB8pB,QAAA,WAAAC,SAAA,mBAA8C1pB,aAAA,iGAAAlf,MAAA,OAA2HyqB,GAAA,KAAAa,GAAA,KAAAJ,GAAA,KAAAV,IAAA,EAEvRomB,IAAQjyB,WAAAyM,GAAA1M,cAAA,SAAA1c,EAAAE,EAAApE,EAAAC,GAA8C,GAAAwU,GAAAnK,EAAArK,EAAAsG,SAAAtG,IAAA6J,SAAA,IAAA7J,EAAAsnB,SAAAtnB,IAAAghC,aAAiE,MAAAxsB,GAAAnK,GAAA,CAAYpG,EAAA,CAAGoG,EAAAuhB,GAAAvhB,GAAQmK,EAAA0M,GAAA4xB,QAAc,QAAA5oC,GAAA,EAAYA,EAAAsK,EAAA5R,OAAWsH,IAAA,CAAK,GAAA4R,GAAAtH,EAAAtK,EAAW,KAAAG,EAAAvJ,eAAAgb,KAAAzR,EAAAyR,GAAA,CAAgCzR,GAAA,CAAK,MAAApG,IAASoG,GAAA,EAAKmK,GAAAnK,EAAK,GAAAmK,EAAA,WAAkC,QAAjBnK,EAAAlG,EAAA4e,EAAA5e,GAAAmC,OAAiBrC,GAAU,gBAAA+iB,GAAA3c,IAAA,SAAAA,EAAAkiB,mBAAAG,GAAAriB,EAAAkjB,GAAAppB,EAAAgpB,GAAA,KAAuE,MAAM,eAAAA,GAAAI,GAAAb,GAAA,IAA6B,MAAM,oBAAAD,IAAA,CAA0B,MAAM,6CAAAA,KAAA,EAAAD,GAAAzsB,EAAAC,EAA6D,6BAAA4yC,GAAA,KACpf,uCAAApmB,IAAAzsB,EAAAC,GAAiD,aAA+Dqd,GAAA8sB,aAAA3c,IAAmBulB,cAAA,KAAAC,YAAA,KAAAC,cAAA,OAA0G51B,EAAA8sB,aAAA1c,IAAmBylB,cAAA,SAAAjvC,GAA0B,uBAAAA,KAAAivC,cAAA5sC,OAAA4sC,iBAAmH3pB,GAAA4gB,aAAAzc,IAAoB0f,cAAA,MAEja,IAAA+F,KAAQC,IAAA,SAAAC,SAAA,IAAAC,KAAA,YAAAC,GAAA,UAAAC,MAAA,aAAAC,KAAA,YAAAC,IAAA,SAAAC,IAAA,KAAAC,KAAA,cAAAC,KAAA,cAAAC,OAAA,aAAAC,gBAAA,gBAA2MC,IAAKC,EAAA,YAAAC,EAAA,MAAAC,GAAA,QAAAC,GAAA,QAAAC,GAAA,QAAAC,GAAA,UAAAC,GAAA,MAAAC,GAAA,QAAAC,GAAA,WAAAC,GAAA,SAAAC,GAAA,IAAAC,GAAA,SAAAC,GAAA,WAAAC,GAAA,MAAAC,GAAA,OAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,SAAAC,GAAA,SAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KACxNC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,KAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,MAAAC,IAAA,UAAAC,IAAA,aAAAC,IAAA,OACA7sB,IAAA4gB,aAAAtc,IAAoBhrB,IAAA,SAAAoB,GAAgB,GAAAA,EAAApB,IAAA,CAAU,GAAAsB,GAAAgvC,GAAAlvC,EAAApB,MAAAoB,EAAApB,GAAuB,qBAAAsB,EAAA,MAAAA,GAA+B,mBAAAF,EAAA+K,MAAA/K,EAAA0pB,GAAA1pB,GAAA,KAAAA,EAAA,QAAAvC,OAAAG,aAAAoC,IAAA,YAAAA,EAAA+K,MAAA,UAAA/K,EAAA+K,KAAAglC,GAAA/vC,EAAAqhB,UAAA,mBAAgJ1T,SAAA,KAAAoU,QAAA,KAAAinB,SAAA,KAAAhnB,OAAA,KAAAC,QAAA,KAAAmwB,OAAA,KAAAC,OAAA,KAAA7sB,iBAAAE,GAAAiE,SAAA,SAAA3pB,GAAoI,mBAAAA,EAAA+K,KAAA2e,GAAA1pB,GAAA,GAAkCqhB,QAAA,SAAArhB,GAAqB,kBAAAA,EAAA+K,MAAA,UAAA/K,EAAA+K,KAAA/K,EAAAqhB,QAAA,GAAuDI,MAAA,SAAAzhB,GAAmB,mBACzfA,EAAA+K,KAAA2e,GAAA1pB,GAAA,YAAAA,EAAA+K,MAAA,UAAA/K,EAAA+K,KAAA/K,EAAAqhB,QAAA,KAAkHsE,GAAAugB,aAAArc,IAAoByoB,aAAA,OAAqEhtB,GAAA4gB,aAAApc,IAAoByoB,QAAA,KAAAC,cAAA,KAAAC,eAAA,KAAAzwB,OAAA,KAAAC,QAAA,KAAAF,QAAA,KAAAinB,SAAA,KAAAxjB,iBAAAE,KAA+KtM,EAAA8sB,aAAAnc,IAAmB/E,aAAA,KAAA+pB,YAAA,KAAAC,cAAA,OAChXrpB,GAAAugB,aAAAlc,IAAoB0oB,OAAA,SAAA1yC,GAAmB,gBAAAA,KAAA0yC,OAAA,eAAA1yC,MAAA2yC,YAAA,GAA+DC,OAAA,SAAA5yC,GAAoB,gBAAAA,KAAA4yC,OAAA,eAAA5yC,MAAA6yC,YAAA,cAAA7yC,MAAA8yC,WAAA,GAA8FC,OAAA,KAAAC,UAAA,MAA8B,IAAAC,OAASC,KAChT,+jBAAAl1C,MAAA,KAAAC,QAAA,SAAA+B,GAA6lB,GAAAE,GAAAF,EAAA,GAAAyL,cAC7lBzL,EAAAgH,MAAA,GAAAlL,EAAA,KAAAoE,CAAoBA,GAAA,MAAAA,EAAUpE,GAAG+gB,yBAAyB8pB,QAAA7qC,EAAA8qC,SAAA9qC,EAAA,WAA+BohB,cAAAhd,IAAmB+yC,GAAAjzC,GAAAlE,EAAQo3C,GAAAhzC,GAAApE,GACpH,IAAAq3C,KAAQx2B,WAAAs2B,GAAAv2B,cAAA,SAAA1c,EAAAE,EAAApE,EAAAC,GAA8C,GAAAqK,GAAA8sC,GAAAlzC,EAAY,KAAAoG,EAAA,WAAkB,QAAApG,GAAU,yBAAA0pB,GAAA5tB,GAAA,WAA4C,iCAAAkE,EAAA4pB,EAAuC,MAAM,8BAAA5pB,EAAAypB,EAAoC,MAAM,uBAAA3tB,EAAAmtC,OAAA,WAA4C,uIAAAjpC,EAAA2lB,EAAkJ,MAAM,2IAAA3lB,EACra6pB,EAAG,MAAM,+EAAA7pB,EAAA8pB,EAAuF,MAAM,2EAAA9pB,EAAAupB,EAAkF,MAAM,wBAAAvpB,EAAA+pB,EAA6B,MAAM,iBAAA/pB,EAAAslB,EAAsB,MAAM,gBAAAtlB,EAAAgqB,EAAqB,MAAM,2CAAAhqB,EAAAwpB,EAAkD,MAAM,SAAAxpB,EAAAoZ,EAAyC,MAA7BlZ,GAAAF,EAAAghB,UAAA5a,EAAAlG,EAAApE,EAAAC,GAAuB2jB,EAAAxf,GAAMA,GAAW0mB,IAAA,SAAA5mB,EAAAE,EAAApE,EAAAC,GAAqBiE,EAAAse,EAAAte,EAAAE,EAAApE,EAAAC,GAAcwiB,EAAAve,GAAMye,GAAA,IAAQ0lB,GAAAF,uBAAA,yIAAAjmC,MAAA,MACrbqgB,GAAAqmB,GAAAK,6BAAmC1iB,GAAAqiB,GAAAG,oBAA0BtnB,GAAAmnB,GAAAI,oBAA0BX,GAAAD,0BAA6BkP,kBAAAD,GAAAE,sBAAA5J,GAAA6J,kBAAAnL,GAAAoL,kBAAA3E,GAAA4E,uBAAAxM,IAAoH,IAAA9c,OAAAD,IAAA,CAA0H,IAAAyL,IAAQ,IAAApL,KAAQpS,QAAA2B,IAAUgR,IAAI3S,SAAA,GAAWmS,GAAAxQ,GAO6CgT,GAAA,KAAAE,GAAA,KAYnU0mB,GAAA,mBAAA1rC,gBAAA,IAAAsnB,GAAAokB,GAAA1rC,OAAA,2BAAAwnB,GAAAkkB,GAAA1rC,OAAA,wBAAAynB,GAAAikB,GAAA1rC,OAAA,0BAAA0nB,GAAAgkB,GAAA1rC,OAAA,0BAAAunB,GAAAmkB,GAAA1rC,OAAA,4BAAAgnB,GAAA,mBAAAhnB,gBAAAL,SACUgoB,GAAA3oB,MAAAoB,QAe3F0nB,GAAAV,IAAA,GAAAS,GAAAT,IAAA,GAqB2N8D,MA0B9IygB,GAAAv3C,OAAA8e,QAAsBC,QAAA2d,KAAW8a,GAAAD,IAAA7a,IAAA6a,GAAAE,GAAAD,GAAA,QAAAA,GAAA,QAAAA,GAA6NE,GAAA,iBAAAC,cAAA,mBAAAA,aAAA7b,IAAA8b,OAAA,EAAoFA,IAAAF,GAAA,WAAiB,MAAAC,aAAA7b,OAAyB,WAAY,MAAA2N,MAAA3N,MACzf,IAAA+b,QAAA,GAAAC,OAAA,EACA,IAAAt4C,GAAAokB,UAAA,sBAAAm0B,sBAAA,mBAAAC,oBAAA,CAAmG,GAAAC,IAAAC,GAAA,KAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,GAAA,EAAAC,GAAA,GAAAC,GAAA,EAAkDP,IAAAP,IAAOe,YAAA,EAAA9c,cAAA,WAAuC,GAAA93B,GAAAy0C,GAAAX,YAAA7b,KAA2B,UAAAj4B,IAAA,KAAkB40C,YAAA,EAAA9c,cAAA,WAAuC,GAAA93B,GAAAy0C,GAAA7O,KAAA3N,KAAoB,UAAAj4B,IAAA,GAAiB,IAAA60C,IAAA,uBAAAhlC,KAAA40B,SAAAj6B,SAAA,IAAAxD,MAAA,EAAkE3E,QAAAyyC,iBAAA,mBAAA90C,GAA8C,GAAAA,EAAA1B,SAAA+D,QAAArC,EAAAgG,OAAA6uC,GAAA,CAAgD,GAAbP,IAAA,EAAMt0C,EAAA+zC,KAAO,GAAAU,GAAAz0C,EAAA,WAAAu0C,QAC5dv0C,GAA8D,YAAtCw0C,SAAA,EAAAO,sBAAAC,KAAxBZ,IAAAQ,YAAA,MAAqER,IAAAQ,YAAA,CAAsBL,KAAA,EAAMv0C,EAAAq0C,GAAKA,GAAA,KAAQ,OAAAr0C,KAAAo0C,OAAiB,EAAK,IAAAY,IAAA,SAAAh1C,GAAmBw0C,IAAA,CAAM,IAAAt0C,GAAAF,EAAAy0C,GAAAE,EAAcz0C,GAAAy0C,IAAAD,GAAAC,IAAA,EAAAz0C,MAAA,GAAAy0C,GAAAz0C,EAAAw0C,MAAAx0C,GAAAw0C,GAAAx0C,EAA2Cu0C,GAAAz0C,EAAA20C,GAAQL,SAAA,EAAAjyC,OAAA4yC,YAAAJ,GAAA,MAAwCb,IAAA,SAAAh0C,EAAAE,GAAsH,MAArGm0C,IAAAr0C,EAAK,MAAAE,GAAA,iBAAAA,GAAAuD,UAAA8wC,GAAAR,KAAA7zC,EAAAuD,SAA0D+wC,SAAA,EAAAO,sBAAAC,KAAsC,GAAUf,GAAA,WAAcI,GAAA,KAAQC,IAAA,EAAMC,IAAA,OAAOP,IAAA3xC,OAAA6xC,oBAAAD,GAAA5xC,OAAA8xC,uBAAgEH,IAAA,SAAAh0C,GAAoB,MAAA0D,YAAA,WAA6B1D,GAAG83B,cAAA,WAAyB,MAAAod,WACtjBjB,GAAA,SAAAj0C,GAAewD,aAAAxD,GAAiB,IAAA05B,IAAA,8VAAAD,MAA0WD,MAShJ2b,IAAQC,KAAA,+BAAAC,OAAA,qCAAAC,IAAA,8BAElQC,OAAA,GAAAzX,GAAA,SAAA99B,GAA6B,0BAAAw1C,cAAAC,wBAAA,SAAAv1C,EAAApE,EAAAC,EAAAqK,GAAkFovC,MAAAC,wBAAA,WAAyC,MAAAz1C,GAAAE,EAAApE,MAAoBkE,GAAG,SAAAA,EAAAE,GAAe,GAAAF,EAAA01C,eAAAP,GAAAG,KAAA,aAAAt1C,KAAAu9B,UAAAr9B,MAA0D,CAAsF,IAAjFq1C,OAAA3vC,SAAAsK,cAAA,OAAqCqlC,GAAAhY,UAAA,QAAAr9B,EAAA,SAA4CA,EAAAq1C,GAAAvtB,WAAoBhoB,EAAAgoB,YAAahoB,EAAAuyB,YAAAvyB,EAAAgoB,WAA6B,MAAK9nB,EAAA8nB,YAAahoB,EAAAmyB,YAAAjyB,EAAA8nB,eAE9ZwU,IAAQmZ,yBAAA,EAAAC,mBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,SAAA,EAAAC,cAAA,EAAAC,iBAAA,EAAAC,aAAA,EAAAC,SAAA,EAAAC,MAAA,EAAAC,UAAA,EAAAC,cAAA,EAAAC,YAAA,EAAAC,cAAA,EAAAC,WAAA,EAAAC,SAAA,EAAAC,YAAA,EAAAC,aAAA,EAAAC,cAAA,EAAAC,YAAA,EAAAC,eAAA,EAAAC,gBAAA,EAAAC,iBAAA,EAAAC,YAAA,EAAAC,WAAA,EAAAC,YAAA,EAAAC,SAAA,EAAAC,OAAA,EAAAC,SAAA,EAAAC,SAAA,EAAAC,QAAA,EAAAC,QAAA,EAAAC,MAAA,EAAAC,aAAA,EAAAC,cAAA,EACRC,aAAA,EAAAC,iBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,eAAA,EAAAC,aAAA,GAA0GC,IAAA,wBAA8Bj8C,QAAAgC,KAAAq+B,IAAAv+B,QAAA,SAAA+B,GAAoCo4C,GAAAn6C,QAAA,SAAAiC,GAAuBA,IAAAF,EAAAq4C,OAAA,GAAA5sC,cAAAzL,EAAAs4C,UAAA,GAA6C9b,GAAAt8B,GAAAs8B,GAAAx8B,MACmD,IAAA28B,IAAAvlB,IAAUmhC,UAAA,IAAcC,MAAA,EAAAjiC,MAAA,EAAAkiC,IAAA,EAAAC,KAAA,EAAAC,OAAA,EAAAC,IAAA,EAAAC,KAAA,EAAAhtC,OAAA,EAAAitC,QAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,OAAA,EAAA36C,QAAA,EAAA46C,OAAA,EAAAC,KAAA,IAExC7b,GAAA6X,GAAAC,KAAAxX,GAAAvmB,GAAArY,YAAA,IAEnR2+B,IAAQgN,SAAA,QAAAI,WAAA,UAAAC,kBAAA,iBAAAkB,kBAAA,iBAAAC,WAAA,UAAAC,aAAA,YAAAC,SAAA,QAAAC,SAAA,QAAAK,cAAA,aAAAE,kBAAA,iBAAAC,aAAA,YAAAO,SAAA,QAAAC,QAAA,OAAAC,WAAA,UAAAC,YAAA,WAAAC,cAAA,aAAAE,UAAA,SAAAC,WAAA,UAAAE,WAAA,UAAAC,WAAA,UAAAE,cAAA,aAAAO,gBAAA,eACRC,WAAA,WAaA2K,GAAAj9C,OAAA8e,QAAsB/K,cAAAmtB,GAAAx3B,eAAA43B,GAAA4b,qBAAA3b,GAAA4b,eAAArb,GAAAsb,iBAAArb,GAAAsb,uBAAArb,GAAAsb,iBAAArb,GAAAsb,qBAAA,aAAgLC,gCAAA,aAA6CC,6BAAA,aAA0CC,+BAAA,aAA4CC,4BAAA,aAAyCv3B,uBAAA,SAAAviB,EAAAE,EAAApE,GAAwC,OAAAoE,GAAU,YAA8B,GAA9B+6B,GAAAj7B,EAAAlE,GAAqBoE,EAAApE,EAAAE,KAAS,UAAAF,EAAAiP,MAAA,MAAA7K,EAAA,CAA8B,IAAApE,EAAAkE,EAAQlE,EAAA8iB,YAAa9iB,EACrfA,EAAA8iB,UAA8F,KAAjF9iB,IAAAi+C,iBAAA,cAAA3uC,KAAAsI,UAAA,GAAAxT,GAAA,mBAAiFA,EAAA,EAAQA,EAAApE,EAAA6C,OAAWuB,IAAA,CAAK,GAAAnE,GAAAD,EAAAoE,EAAW,IAAAnE,IAAAiE,GAAAjE,EAAAmQ,OAAAlM,EAAAkM,KAAA,CAA2B,GAAA9F,GAAA2Y,EAAAhjB,EAAYqK,IAAAkR,EAAA,MAAiB6M,GAAApoB,GAAMk/B,GAAAl/B,EAAAqK,KAAU,KAAM,gBAAA41B,GAAAh8B,EAAAlE,EAAwB,MAAM,qBAAAoE,EAAApE,EAAAkG,QAAAu5B,GAAAv7B,IAAAlE,EAAA8/B,SAAA17B,GAAA,MAA6D+mC,IAAAC,mCAAAkS,GAA0C,IAAAY,IAAA,KAAAC,GAAA,KAEpVvb,GAAAkV,IAAUzgB,mBAAA,SAAAnzB,GAA+B,GAAAE,GAAAF,EAAAqjB,QAAiB,QAAAnjB,GAAU,eAAAF,OAAAggB,iBAAAhgB,EAAA01C,aAAAvZ,GAAA,QAAkE,MAAM,SAAAj8B,EAAA,IAAAA,EAAAF,EAAA4e,WAAA5e,IAAAE,EAAAw1C,cAAA,KAAAx1C,IAAAg6C,QAAAl6C,EAAAm8B,GAAAn8B,EAAAE,GAA4E,MAAAF,IAASkzB,oBAAA,SAAAlzB,EAAAE,GAAmC,MAAAi8B,IAAAn8B,EAAAE,IAAe4xB,kBAAA,SAAA9xB,GAA+B,MAAAA,IAASo4B,iBAAA,WAA6B4hB,GAAAjzB,EAAM,IAAA/mB,GAAA0oB,IAAW,IAAAL,GAAAroB,GAAA,CAAU,qBAAAA,GAAA,GAAAE,IAA+BqR,MAAAvR,EAAA2oB,eAAAnX,IAAAxR,EAAA4oB,kBAA2C5oB,GAAA,CAAQ,GAAAlE,GAAAuG,OAAAwmB,cAAAxmB,OAAAwmB,cACrc,IAAA/sB,GAAA,IAAAA,EAAAq+C,WAAA,CAAwBj6C,EAAApE,EAAAgtB,UAAe,IAAA/sB,GAAAD,EAAAitB,aAAA3iB,EAAAtK,EAAAktB,SAAmCltB,KAAAmtB,WAAgB,KAAI/oB,EAAAmjB,SAAAjd,EAAAid,SAAsB,MAAAlM,GAASjX,EAAA,IAAO,MAAAF,GAAQ,GAAAuQ,GAAA,EAAAtK,GAAA,EAAA4R,GAAA,EAAAL,EAAA,EAAA8B,EAAA,EAAA9I,EAAAxQ,EAAA4W,EAAA,IAAqC1W,GAAA,OAAQ,CAAE,OAAA8Y,GAAaxI,IAAAtQ,GAAA,IAAAnE,GAAA,IAAAyU,EAAA6S,WAAApd,EAAAsK,EAAAxU,GAAsCyU,IAAApK,GAAA,IAAAtK,GAAA,IAAA0U,EAAA6S,WAAAxL,EAAAtH,EAAAzU,GAAsC,IAAA0U,EAAA6S,WAAA9S,GAAAC,EAAA8rB,UAAA39B,QAAwC,QAAAqa,EAAAxI,EAAAwX,aAAiCpR,EAAApG,EAAIA,EAAAwI,CAAI,QAAM,CAAE,GAAAxI,IAAAxQ,EAAA,KAAAE,EAA6D,IAA5C0W,IAAA1W,KAAAsX,IAAAzb,IAAAkK,EAAAsK,GAAsBqG,IAAAxQ,KAAAkT,IAAAxd,IAAA+b,EAAAtH,GAAsB,QAAAyI,EAAAxI,EAAA4X,aAAA,KAAkC5X,GAAAoG,EAAIA,EAAApG,EAAAoO,WAAepO,EAAAwI,EAAI9Y,GAAA,IAAA+F,IAAA,IAAA4R,EAAA,MACletG,MAAAtL,EAAAuL,IAAAqG,OAAe3X,GAAA,KAAYA,MAAMqR,MAAA,EAAAC,IAAA,OAAetR,GAAA,IAAY+5C,KAAIG,YAAAp6C,EAAAq6C,eAAAn6C,GAAgC4mB,IAAA,IAAOuR,iBAAA,WAA6B,GAAAr4B,GAAAi6C,GAAA/5C,EAAAwoB,KAAA5sB,EAAAkE,EAAAo6C,YAAAr+C,EAAAiE,EAAAq6C,cAAmD,IAAAn6C,IAAApE,GAAA+iC,GAAAj5B,SAAAoa,gBAAAlkB,GAAA,CAA0C,GAAAusB,GAAAvsB,GAAA,GAAAoE,EAAAnE,EAAAwV,MAAAvR,EAAAjE,EAAAyV,QAAA,KAAAxR,MAAAE,GAAA,kBAAApE,KAAA6sB,eAAAzoB,EAAApE,EAAA8sB,aAAA/Y,KAAAF,IAAA3P,EAAAlE,EAAAkG,MAAArD,YAAkI,IAAA0D,OAAAwmB,aAAA,CAA6B3oB,EAAAmC,OAAAwmB,cAAwB,IAAAziB,GAAAtK,EAAA+jB,KAAAlhB,MAAqBqB,GAAA6P,KAAAF,IAAA5T,EAAAwV,MAAAnL,GAAsBrK,MAAA,KAAAA,EAAAyV,IAAAxR,EAAA6P,KAAAF,IAAA5T,EAAAyV,IAAApL,IAAqClG,EAAAo6C,QAAAt6C,EACzejE,IAAAqK,EAAArK,IAAAiE,IAAAoG,GAAiBA,EAAA6hB,GAAAnsB,EAAAkE,EAAU,IAAAuQ,GAAA0X,GAAAnsB,EAAAC,EAAc,IAAAqK,GAAAmK,IAAA,IAAArQ,EAAAi6C,YAAAj6C,EAAA4oB,aAAA1iB,EAAAT,MAAAzF,EAAA6oB,eAAA3iB,EAAA+hB,QAAAjoB,EAAA8oB,YAAAzY,EAAA5K,MAAAzF,EAAA+oB,cAAA1Y,EAAA4X,QAAA,CAA+H,GAAAliB,GAAAL,SAAA20C,aAA6Bt0C,GAAAu0C,SAAAp0C,EAAAT,KAAAS,EAAA+hB,QAA4BjoB,EAAAu6C,kBAAoBz6C,EAAAjE,GAAAmE,EAAAw6C,SAAAz0C,GAAA/F,EAAAo6C,OAAA/pC,EAAA5K,KAAA4K,EAAA4X,UAAAliB,EAAA00C,OAAApqC,EAAA5K,KAAA4K,EAAA4X,QAAAjoB,EAAAw6C,SAAAz0C,KAA8F,IAAL/F,KAAKF,EAAAlE,EAAQkE,IAAA4e,YAAe,IAAA5e,EAAAqjB,UAAAnjB,EAAAmB,MAAyBovB,QAAAzwB,EAAA46C,KAAA56C,EAAA66C,WAAAC,IAAA96C,EAAA+6C,WAAoD,KAANjc,GAAAhjC,GAAMA,EAAA,EAAQA,EAAAoE,EAAAvB,OAAW7C,IAAAkE,EAAAE,EAAApE,GAAAkE,EAAAywB,QAAAoqB,WAAA76C,EAAA46C,KAAA56C,EAAAywB,QAAAsqB,UAC1c/6C,EAAA86C,IAAMb,GAAA,KAAQnzB,GAAAkzB,IAAOA,GAAA,MAAQnpB,eAAA,SAAA7wB,EAAAE,EAAApE,EAAAC,EAAAqK,GAAiE,MAA7BpG,GAAAq9B,GAAAr9B,EAAAE,EAAApE,EAAAC,GAAciE,EAAAiZ,IAAA7S,EAAOpG,EAAAgf,IAAA9e,EAAQF,GAAS+wB,mBAAA,SAAA/wB,EAAAE,GAAkCF,EAAAmyB,YAAAjyB,IAAiB8wB,wBAAA,SAAAhxB,EAAAE,EAAApE,EAAAC,GAA2C2hC,GAAA19B,EAAAE,EAAApE,EAAAC,EAAYiE,GAAA,CAAG,OAAAE,GAAU,qDAAAF,IAAAlE,EAAAwkC,SAAyE,MAAAtgC,GAAQA,GAAA,EAAK,MAAAA,IAASixB,cAAA,SAAAjxB,EAAAE,EAAApE,EAAAC,EAAAqK,GAAmC,MAAA63B,IAAAj+B,EAAAE,EAAApE,EAAAC,EAAAqK,IAAqB2pB,qBAAA,SAAA/vB,EAAAE,GAAoC,mBAAAF,GAAA,iBAAAE,GAAA0X,UAAA,iBAAA1X,GAAA0X,UAAA,iBACzZ1X,GAAA47B,yBAAA,OAAA57B,EAAA47B,yBAAA,iBAAA57B,GAAA47B,wBAAA+B,QAAuH5N,0BAAA,SAAAjwB,EAAAE,GAAyC,QAAAA,EAAA4gC,QAAiBhQ,mBAAA,SAAA9wB,EAAAE,EAAApE,EAAAC,GAAuD,MAAjBiE,GAAAy9B,GAAAz9B,EAAAE,GAAUF,EAAAiZ,IAAAld,EAAOiE,GAASi4B,IAAA8b,GAAAriB,UAAkBK,YAAA,SAAA/xB,GAAwBA,EAAAg7C,SAAUhpB,aAAA,SAAAhyB,EAAAE,EAAApE,EAAAC,EAAAqK,GAAkCpG,EAAAgf,IAAA5Y,EAAQ83B,GAAAl+B,EAAAE,EAAApE,EAAAC,EAAAqK,IAAc6rB,iBAAA,SAAAjyB,GAA8BA,EAAAkoB,YAAA,IAAiBgK,iBAAA,SAAAlyB,EAAAE,EAAApE,GAAkCkE,EAAAs8B,UAAAxgC,GAAcq2B,YAAA,SAAAnyB,EAAAE,GAA2BF,EAAAmyB,YAAAjyB,IAAiBkyB,uBAAA,SAAApyB,EACxeE,GAAG,IAAAF,EAAAqjB,SAAArjB,EAAA4e,WAAAyT,aAAAnyB,EAAAF,KAAAmyB,YAAAjyB,IAA+DmyB,aAAA,SAAAryB,EAAAE,EAAApE,GAA8BkE,EAAAqyB,aAAAnyB,EAAApE,IAAoBw2B,wBAAA,SAAAtyB,EAAAE,EAAApE,GAAyC,IAAAkE,EAAAqjB,SAAArjB,EAAA4e,WAAAyT,aAAAnyB,EAAApE,GAAAkE,EAAAqyB,aAAAnyB,EAAApE,IAAkEy2B,YAAA,SAAAvyB,EAAAE,GAA2BF,EAAAuyB,YAAAryB,IAAiBsyB,yBAAA,SAAAxyB,EAAAE,GAAwC,IAAAF,EAAAqjB,SAAArjB,EAAA4e,WAAA2T,YAAAryB,GAAAF,EAAAuyB,YAAAryB,KAA6DozB,WAAYC,mBAAA,SAAAvzB,EAAAE,GAAiC,WAAAF,EAAAqjB,UAAAnjB,EAAAoH,gBAAAtH,EAAAgjB,SAAA1b,cAAA,KAAAtH,GAAyEwzB,uBAAA,SAAAxzB,EACteE,GAAG,WAAAA,GAAA,IAAAF,EAAAqjB,SAAA,KAAArjB,GAAoCyzB,yBAAA,SAAAzzB,GAAsC,IAAAA,IAAAooB,YAAoBpoB,GAAA,IAAAA,EAAAqjB,UAAA,IAAArjB,EAAAqjB,UAAkCrjB,IAAAooB,WAAiB,OAAApoB,IAAS0zB,wBAAA,SAAA1zB,GAAqC,IAAAA,IAAAgoB,WAAmBhoB,GAAA,IAAAA,EAAAqjB,UAAA,IAAArjB,EAAAqjB,UAAkCrjB,IAAAooB,WAAiB,OAAApoB,IAAS2zB,gBAAA,SAAA3zB,EAAAE,EAAApE,EAAAC,EAAAqK,EAAAmK,GAAsD,MAAfvQ,GAAAiZ,IAAA1I,EAAOvQ,EAAAgf,IAAAljB,EAAQqiC,GAAAn+B,EAAAE,EAAApE,EAAAsK,EAAArK,IAAqB63B,oBAAA,SAAA5zB,EAAAE,EAAApE,GAA4C,MAAPkE,GAAAiZ,IAAAnd,EAAOsiC,GAAAp+B,EAAAE,IAAe+6C,yCAAA,aAAsDC,gCAAA,aAC7cC,+BAAA,aAA2CC,sBAAA,aAAmCC,sCAAA,aAAmDC,0CAAA,aAAuDC,6BAAA,aAA0CC,iCAAA,cAA+CtjB,yBAAA8b,GAAA7b,uBAAA8b,GAAAjkB,mBAAA,GAA8EpN,GAAA8b,GAAAjG,eAE9RmG,GAAAhiC,UAAA8Z,OAAA,SAAA1W,EAAAE,GAAkCw+B,GAAA3F,gBAAA/4B,EAAAX,KAAAo/B,oBAAA,KAAAv+B,IAAsD0+B,GAAAhiC,UAAA6+C,QAAA,SAAAz7C,GAAiC0+B,GAAA3F,gBAAA,KAAA15B,KAAAo/B,oBAAA,KAAAz+B,GAC1L,IAAA07C,KAAQC,aAAAhd,GAAAid,YAAA,SAAA57C,GAAwC,SAAAA,EAAA,WAAuB,QAAAA,EAAAqjB,SAAA,MAAArjB,EAA2B,IAAAE,GAAAF,EAAAimB,mBAA4B,IAAA/lB,EAAA,MAAAw+B,IAAAzF,iBAAA/4B,EAAkC,oBAAAF,GAAA0W,OAAAY,EAAA,OAAAA,EAAA,MAAAnb,OAAAgC,KAAA6B,KAA8D0wB,QAAA,SAAA1wB,EAAAE,EAAApE,GAAyB,MAAA0iC,IAAA,KAAAx+B,EAAAE,GAAA,EAAApE,IAAyB4a,OAAA,SAAA1W,EAAAE,EAAApE,GAAwB,MAAA0iC,IAAA,KAAAx+B,EAAAE,GAAA,EAAApE,IAAyB+/C,oCAAA,SAAA77C,EAAAE,EAAApE,EAAAC,GAA8G,OAAvD,MAAAiE,OAAA,KAAAA,EAAAimB,sBAAA3O,EAAA,MAAuDknB,GAAAx+B,EAAAE,EAAApE,GAAA,EAAAC,IAAsB+/C,uBAAA,SAAA97C,GAC7b,MADieq+B,IAAAr+B,IACzesX,EAAA,QAAQtX,EAAAy+B,sBAAAC,GAAAhG,iBAAA,WAA4D8F,GAAA,UAAAx+B,GAAA,aAA6BA,EAAAy+B,oBAAA,UAA6B,IAASsd,sBAAApd,GAAAqd,wBAAAn5B,EAAAo5B,yBAAAvd,GAAA9F,gBAAAD,UAAA+F,GAAA/F,UAAA7d,oDAA0KohC,eAAA9X,GAAA+X,oBAAAxY,GAAAyY,iBAAAnX,GAAAoX,yBAAAlV,GAAAmV,sBAAA5X,GAAA6X,sBAAA3S,IACjTlL,IAAAvF,oBAAsBC,wBAAAza,EAAA69B,WAAA,EAAA3hC,QAAA,SAAA4hC,oBAAA,aAA2F,IAAAC,IAAAvgD,OAAA8e,QAAsBC,QAAAwgC,KAAWiB,GAAAD,IAAAhB,IAAAgB,EAAgBjhD,GAAAD,QAAAmhD,GAAA,QAAAA,GAAA,QAAAA,IhBwrD5J,SAAUlhD,EAAQD,EAASH,GAEjC,YiBp5DA,IAAA0kB,KAAA,oBAAA1d,iBAAAuD,WAAAvD,OAAAuD,SAAAsK,eAQA0sC,GAEA78B,YAEA88B,cAAA,oBAAAC,QAEAC,qBAAAh9B,MAAA1d,OAAAyyC,mBAAAzyC,OAAA6iB,aAEA83B,eAAAj9B,KAAA1d,OAAA46C,OAEAC,YAAAn9B,EAIAtkB,GAAAD,QAAAohD,GjBm6DM,SAAUnhD,EAAQD,EAASH,GAEjC,YkB17DA,IAAA0D,GAAA1D,EAAA,GAMA8hD,GASAl2B,OAAA,SAAA5oB,EAAA++C,EAAAr4C,GACA,MAAA1G,GAAAy2C,kBACAz2C,EAAAy2C,iBAAAsI,EAAAr4C,GAAA,IAEAs4C,OAAA,WACAh/C,EAAAi/C,oBAAAF,EAAAr4C,GAAA,MAGK1G,EAAA6mB,aACL7mB,EAAA6mB,YAAA,KAAAk4B,EAAAr4C,IAEAs4C,OAAA,WACAh/C,EAAAwmB,YAAA,KAAAu4B,EAAAr4C,UAJK,IAkBLqiB,QAAA,SAAA/oB,EAAA++C,EAAAr4C,GACA,MAAA1G,GAAAy2C,kBACAz2C,EAAAy2C,iBAAAsI,EAAAr4C,GAAA,IAEAs4C,OAAA,WACAh/C,EAAAi/C,oBAAAF,EAAAr4C,GAAA,OAQAs4C,OAAAt+C,IAKAw+C,gBAAA,aAGA9hD,GAAAD,QAAA2hD,GlB08DM,SAAU1hD,EAAQD,EAASH,GAEjC,YmB9/DA,SAAAmiD,GAAAC,GAEA,wBADAA,MAAA,oBAAA73C,uBAAA1I,KAEA,WAEA,KACA,MAAAugD,GAAAtb,eAAAsb,EAAAn1C,KACG,MAAAlC,GACH,MAAAq3C,GAAAn1C,MAIA7M,EAAAD,QAAAgiD,GnB0hEM,SAAU/hD,EAAQD,EAASH,GAEjC,YoB3iEA,SAAAwhC,GAAAroB,EAAAoC,GAEA,MAAApC,KAAAoC,EAIA,IAAApC,GAAA,IAAAoC,GAAA,EAAApC,IAAA,EAAAoC,EAGApC,OAAAoC,MASA,QAAA8mC,GAAAC,EAAAC,GACA,GAAA/gB,EAAA8gB,EAAAC,GACA,QAGA,qBAAAD,IAAA,OAAAA,GAAA,iBAAAC,IAAA,OAAAA,EACA,QAGA,IAAAC,GAAA1hD,OAAAgC,KAAAw/C,GACAG,EAAA3hD,OAAAgC,KAAAy/C,EAEA,IAAAC,EAAAl/C,SAAAm/C,EAAAn/C,OACA,QAIA,QAAAjD,GAAA,EAAiBA,EAAAmiD,EAAAl/C,OAAkBjD,IACnC,IAAAmB,EAAAjB,KAAAgiD,EAAAC,EAAAniD,MAAAmhC,EAAA8gB,EAAAE,EAAAniD,IAAAkiD,EAAAC,EAAAniD,KACA,QAIA,UA/CA,GAAAmB,GAAAV,OAAAS,UAAAC,cAkDApB,GAAAD,QAAAkiD,GpBokEM,SAAUjiD,EAAQD,EAASH,GAEjC,YqBpnEA,SAAA0iD,GAAAC,EAAAC,GACA,SAAAD,IAAAC,KAEGD,IAAAC,IAEAC,EAAAF,KAEAE,EAAAD,GACHF,EAAAC,EAAAC,EAAAr/B,YACG,YAAAo/B,GACHA,EAAAG,SAAAF,KACGD,EAAAI,4BACH,GAAAJ,EAAAI,wBAAAH,MAnBA,GAAAC,GAAA7iD,EAAA,GAyBAI,GAAAD,QAAAuiD,GrB2oEM,SAAUtiD,EAAQD,EAASH,GAEjC,YsBhqEA,SAAA6iD,GAAAxhD,GACA,MAAA2hD,GAAA3hD,IAAA,GAAAA,EAAA2mB,SAPA,GAAAg7B,GAAAhjD,EAAA,GAUAI,GAAAD,QAAA0iD,GtBsrEM,SAAUziD,EAAQD,EAASH,GAEjC,YuB9rEA,SAAAgjD,GAAA3hD,GACA,GAAA+gD,GAAA/gD,IAAAqgC,eAAArgC,EAAAkJ,SACA8jC,EAAA+T,EAAA/T,aAAArnC,MACA,UAAA3F,KAAA,mBAAAgtC,GAAA4U,KAAA5hD,YAAAgtC,GAAA4U,KAAA,iBAAA5hD,IAAA,iBAAAA,GAAA2mB,UAAA,iBAAA3mB,GAAAsmB,WAGAvnB,EAAAD,QAAA6iD,GvBktEM,SAAU5iD,EAAQD,EAASH,GAEjC,YwB3tEA,SAAA2tB,GAAArjB,GAIA,IACAA,EAAAq1C,QACG,MAAA50C,KAGH3K,EAAAD,QAAAwtB,GxB8uEM,SAAUvtB,EAAQD,EAASH,IyBpwEjC,SAAA6I,EAAAq6C,GACAA,EAAA/iD,IAGC6D,EAAA,SAAA7D,GAA4B,YAI7B,SAAAgjD,GAAAx+C,EAAAE,GACA,MAAAF,GAAAE,GAAA,EAAAF,EAAAE,EAAA,EAAAF,GAAAE,EAAA,EAAAu+C,IAGA,QAAAC,GAAAC,GAEA,MADA,KAAAA,EAAAhgD,SAAAggD,EAAAC,EAAAD,KAEA/D,KAAA,SAAA56C,EAAAwU,EAAAqqC,EAAAC,GAGA,IAFA,MAAAD,MAAA,GACA,MAAAC,MAAA9+C,EAAArB,QACAkgD,EAAAC,GAAA,CACA,GAAAC,GAAAF,EAAAC,IAAA,CACAH,GAAA3+C,EAAA++C,GAAAvqC,GAAA,EAAAqqC,EAAAE,EAAA,EACAD,EAAAC,EAEA,MAAAF,IAEAG,MAAA,SAAAh/C,EAAAwU,EAAAqqC,EAAAC,GAGA,IAFA,MAAAD,MAAA,GACA,MAAAC,MAAA9+C,EAAArB,QACAkgD,EAAAC,GAAA,CACA,GAAAC,GAAAF,EAAAC,IAAA,CACAH,GAAA3+C,EAAA++C,GAAAvqC,GAAA,EAAAsqC,EAAAC,EACAF,EAAAE,EAAA,EAEA,MAAAF,KAKA,QAAAD,GAAAruC,GACA,gBAAAxU,EAAAyY,GACA,MAAAgqC,GAAAjuC,EAAAxU,GAAAyY,IAQA,QAAAyqC,GAAAj/C,EAAAE,GACA,MAAAA,GAAAF,GAAA,EAAAE,EAAAF,EAAA,EAAAE,GAAAF,EAAA,EAAAy+C,IAGA,QAAA9W,GAAAnzB,GACA,cAAAA,EAAAiqC,KAAAjqC,EAGA,QAAA0qC,GAAAC,EAAA5uC,GACA,GAEAvQ,GACAjE,EAHAS,EAAA2iD,EAAAxgD,OACA9C,EAAA,EAGAkB,EAAA,EACArB,GAAA,EACAmV,EAAA,CAEA,UAAAN,EACA,OAAA7U,EAAAc,GACAs9B,MAAA95B,EAAA2nC,EAAAwX,EAAAzjD,OACAK,EAAAiE,EAAAnE,EACAA,GAAAE,IAAA8U,EACA9T,GAAAhB,GAAAiE,EAAAnE,QAMA,QAAAH,EAAAc,GACAs9B,MAAA95B,EAAA2nC,EAAAp3B,EAAA4uC,EAAAzjD,KAAAyjD,OACApjD,EAAAiE,EAAAnE,EACAA,GAAAE,IAAA8U,EACA9T,GAAAhB,GAAAiE,EAAAnE,GAKA,IAAAgV,EAAA,QAAA9T,IAAA8T,EAAA,GAGA,QAAAuuC,GAAAD,EAAA5uC,GACA,GAAAC,GAAA0uC,EAAAC,EAAA5uC,EACA,OAAAC,GAAAX,KAAAwvC,KAAA7uC,KAGA,QAAA8uC,GAAAH,EAAA5uC,GACA,GAEAvQ,GACAE,EACApE,EAJAJ,GAAA,EACAc,EAAA2iD,EAAAxgD,MAKA,UAAA4R,EAAA,CACA,OAAA7U,EAAAc,GAAA,UAAA0D,EAAAi/C,EAAAzjD,KAAAwE,KAAA,CAA2DF,EAAAlE,EAAAoE,CAAW,OACtE,OAAAxE,EAAAc,GAAA,OAAA0D,EAAAi/C,EAAAzjD,MACAsE,EAAAE,IAAAF,EAAAE,GACApE,EAAAoE,IAAApE,EAAAoE,QAIA,CACA,OAAAxE,EAAAc,GAAA,UAAA0D,EAAAqQ,EAAA4uC,EAAAzjD,KAAAyjD,KAAAj/C,KAAA,CAAwEF,EAAAlE,EAAAoE,CAAW,OACnF,OAAAxE,EAAAc,GAAA,OAAA0D,EAAAqQ,EAAA4uC,EAAAzjD,KAAAyjD,MACAn/C,EAAAE,IAAAF,EAAAE,GACApE,EAAAoE,IAAApE,EAAAoE,IAIA,OAAAF,EAAAlE,GAQA,QAAAyjD,GAAA/qC,GACA,kBACA,MAAAA,IAIA,QAAAgrC,GAAAhrC,GACA,MAAAA,GAGA,QAAAqzB,GAAAt2B,EAAAkuC,EAAAjlB,GACAjpB,KAAAkuC,KAAAjlB,GAAAh+B,EAAAkC,UAAAC,QAAA,GAAA8gD,EAAAluC,IAAA,KAAA/U,EAAA,KAAAg+B,CAMA,KAJA,GAAA9+B,IAAA,EACAc,EAAA,EAAAqT,KAAAJ,IAAA,EAAAI,KAAAC,MAAA2vC,EAAAluC,GAAAipB,IACAqN,EAAA,GAAA9gC,OAAAvK,KAEAd,EAAAc,GACAqrC,EAAAnsC,GAAA6V,EAAA7V,EAAA8+B,CAGA,OAAAqN,GAMA,QAAA6X,GAAAnuC,EAAAkuC,EAAA7mC,GACA,GAAA4hB,GAAAmlB,EAAApuC,EAAAkuC,EAAA7mC,EACA,OAAAivB,GACAh4B,KAAAC,KAAAyB,EAAAipB,KACA3qB,KAAAuB,MAAAquC,EAAAjlB,OAAA,EACAA,GAIA,QAAAmlB,GAAApuC,EAAAkuC,EAAA7mC,GACA,GAAAgnC,GAAA/vC,KAAAgwC,IAAAJ,EAAAluC,GAAA1B,KAAAJ,IAAA,EAAAmJ,GACAknC,EAAAjwC,KAAAkwC,IAAA,GAAAlwC,KAAAuB,MAAAvB,KAAAmwC,IAAAJ,GAAA/vC,KAAAowC,OACAn9C,EAAA88C,EAAAE,CAIA,OAHAh9C,IAAAo9C,GAAAJ,GAAA,GACAh9C,GAAAq9C,GAAAL,GAAA,EACAh9C,GAAAs9C,KAAAN,GAAA,GACAL,EAAAluC,GAAAuuC,IAGA,QAAAO,GAAAl5C,GACA,MAAA0I,MAAAC,KAAAD,KAAAmwC,IAAA74C,EAAAxI,QAAAkR,KAAAywC,KAAA,EAGA,QAAAC,KAKA,QAAAA,GAAAv6C,GACA,GAAAtK,GAEA8Y,EADAhY,EAAAwJ,EAAArH,OAEAwI,EAAA,GAAAJ,OAAAvK,EAEA,KAAAd,EAAA,EAAeA,EAAAc,IAAOd,EACtByL,EAAAzL,GAAAsG,EAAAgE,EAAAtK,KAAAsK,EAGA,IAAAw6C,GAAAnqC,EAAAlP,GACAs5C,EAAAD,EAAA,GACAE,EAAAF,EAAA,GACAG,EAAAC,EAAAz5C,EAAAs5C,EAAAC,EAGA35C,OAAAoB,QAAAw4C,OAAAjB,EAAAe,EAAAC,EAAAC,GAIA,KADA,GAAA9kD,GAAA8kD,EAAAhiD,OACAgiD,EAAA,IAAAF,GAAAE,EAAA/4C,UAAA/L,CACA,MAAA8kD,EAAA9kD,EAAA,IAAA6kD,GAAAC,EAAAloC,QAAA5c,CAEA,IACAglD,GADAC,EAAA,GAAA/5C,OAAAlL,EAAA,EAIA,KAAAH,EAAA,EAAeA,GAAAG,IAAQH,EACvBmlD,EAAAC,EAAAplD,MACAmlD,EAAAJ,GAAA/kD,EAAA,EAAAilD,EAAAjlD,EAAA,GAAA+kD,EACAI,EAAAH,GAAAhlD,EAAAG,EAAA8kD,EAAAjlD,GAAAglD,CAIA,KAAAhlD,EAAA,EAAeA,EAAAc,IAAOd,EACtB8Y,EAAArN,EAAAzL,GACA+kD,GAAAjsC,MAAAksC,GACAI,EAAAC,GAAAJ,EAAAnsC,EAAA,EAAA3Y,IAAAwF,KAAA2E,EAAAtK,GAIA,OAAAolD,GA7CA,GAAA9+C,GAAAw9C,EACAnpC,EAAAipC,EACAsB,EAAAP,CA0DA,OAZAE,GAAAv+C,MAAA,SAAAg/C,GACA,MAAAtiD,WAAAC,QAAAqD,EAAA,mBAAAg/C,KAAAzB,EAAAyB,GAAAT,GAAAv+C,GAGAu+C,EAAAlqC,OAAA,SAAA2qC,GACA,MAAAtiD,WAAAC,QAAA0X,EAAA,mBAAA2qC,KAAAzB,GAAAyB,EAAA,GAAAA,EAAA,KAAAT,GAAAlqC,GAGAkqC,EAAAU,WAAA,SAAAD,GACA,MAAAtiD,WAAAC,QAAAiiD,EAAA,mBAAAI,KAAAzB,EAAAx4C,MAAAoB,QAAA64C,GAAAh6C,GAAApL,KAAAolD,MAAAT,GAAAK,GAGAL,EAGA,QAAAK,GAAAzB,EAAAriD,EAAAyT,GAEA,GADA,MAAAA,MAAAo3B,GACAnrC,EAAA2iD,EAAAxgD,OAAA,CACA,IAAA7B,OAAA,GAAAN,EAAA,SAAA+T,EAAA4uC,EAAA,KAAAA,EACA,IAAAriD,GAAA,SAAAyT,EAAA4uC,EAAA3iD,EAAA,GAAAA,EAAA,EAAA2iD,EACA,IAAA3iD,GACAqb,GAAArb,EAAA,GAAAM,EACApB,EAAAmU,KAAAuB,MAAAyG,GACA7X,GAAAuQ,EAAA4uC,EAAAzjD,KAAAyjD,EAEA,OAAAn/C,KADAuQ,EAAA4uC,EAAAzjD,EAAA,GAAAA,EAAA,EAAAyjD,GACAn/C,IAAA6X,EAAAnc,IAGA,QAAAwlD,GAAA/5C,EAAAwI,EAAAF,GAEA,MADAtI,GAAAtJ,GAAAjC,KAAAuL,EAAAwgC,GAAAwZ,KAAA3C,GACA3uC,KAAAC,MAAAL,EAAAE,IAAA,GAAAixC,EAAAz5C,EAAA,KAAAy5C,EAAAz5C,EAAA,MAAA0I,KAAAkwC,IAAA54C,EAAAxI,QAAA,OAGA,QAAAyiD,GAAAj6C,EAAAwI,EAAAF,GACA,MAAAI,MAAAC,MAAAL,EAAAE,IAAA,IAAAyvC,EAAAj4C,GAAA0I,KAAAkwC,IAAA54C,EAAAxI,QAAA,OAGA,QAAA8Q,GAAA0vC,EAAA5uC,GACA,GAEAvQ,GACAE,EAHAxE,GAAA,EACAc,EAAA2iD,EAAAxgD,MAIA,UAAA4R,EAAA,CACA,OAAA7U,EAAAc,GAAA,UAAA0D,EAAAi/C,EAAAzjD,KAAAwE,KAAA,CAA2DF,EAAAE,CAAO,OAClE,OAAAxE,EAAAc,GAAA,OAAA0D,EAAAi/C,EAAAzjD,KAAAwE,EAAAF,MAAAE,OAGA,CACA,OAAAxE,EAAAc,GAAA,UAAA0D,EAAAqQ,EAAA4uC,EAAAzjD,KAAAyjD,KAAAj/C,KAAA,CAAwEF,EAAAE,CAAO,OAC/E,OAAAxE,EAAAc,GAAA,OAAA0D,EAAAqQ,EAAA4uC,EAAAzjD,KAAAyjD,KAAAj/C,EAAAF,MAAAE,GAGA,MAAAF,GAGA,QAAAqhD,GAAAlC,EAAA5uC,GACA,GAEAvQ,GAFAjD,EAAA,EACAP,EAAA2iD,EAAAxgD,OAEAjD,GAAA,EACAmV,EAAArU,CAEA,UAAA+T,EACA,OAAA7U,EAAAc,GAAAs9B,MAAA95B,EAAA2nC,EAAAwX,EAAAzjD,OAA6DmV,EAA7D9T,GAAAiD,MAIA,QAAAtE,EAAAc,GAAAs9B,MAAA95B,EAAA2nC,EAAAp3B,EAAA4uC,EAAAzjD,KAAAyjD,OAA0EtuC,EAA1E9T,GAAAiD,CAGA,IAAA6Q,EAAA,MAAA9T,GAAA8T,EAGA,QAAAywC,GAAAnC,EAAA5uC,GACA,GAEAvQ,GAFAuhD,KACA/kD,EAAA2iD,EAAAxgD,OAEAjD,GAAA,CAEA,UAAA6U,EACA,OAAA7U,EAAAc,GAAAs9B,MAAA95B,EAAA2nC,EAAAwX,EAAAzjD,MAAA6lD,EAAAlgD,KAAArB,OAIA,QAAAtE,EAAAc,GAAAs9B,MAAA95B,EAAA2nC,EAAAp3B,EAAA4uC,EAAAzjD,KAAAyjD,MAAAoC,EAAAlgD,KAAArB,EAGA,OAAA4gD,GAAAW,EAAAJ,KAAA3C,GAAA,IAGA,QAAAgD,GAAAC,GAQA,IAPA,GACA5lD,GAGA6lD,EACAvC,EALA3iD,EAAAilD,EAAA9iD,OAEAjD,GAAA,EACAmV,EAAA,IAIAnV,EAAAc,GAAAqU,GAAA4wC,EAAA/lD,GAAAiD,MAGA,KAFA+iD,EAAA,GAAA36C,OAAA8J,KAEArU,GAAA,GAGA,IAFA2iD,EAAAsC,EAAAjlD,GACAX,EAAAsjD,EAAAxgD,SACA9C,GAAA,GACA6lD,IAAA7wC,GAAAsuC,EAAAtjD,EAIA,OAAA6lD,GAGA,QAAA/xC,GAAAwvC,EAAA5uC,GACA,GAEAvQ,GACAE,EAHAxE,GAAA,EACAc,EAAA2iD,EAAAxgD,MAIA,UAAA4R,EAAA,CACA,OAAA7U,EAAAc,GAAA,UAAA0D,EAAAi/C,EAAAzjD,KAAAwE,KAAA,CAA2DF,EAAAE,CAAO,OAClE,OAAAxE,EAAAc,GAAA,OAAA0D,EAAAi/C,EAAAzjD,KAAAsE,EAAAE,IAAAF,EAAAE,OAGA,CACA,OAAAxE,EAAAc,GAAA,UAAA0D,EAAAqQ,EAAA4uC,EAAAzjD,KAAAyjD,KAAAj/C,KAAA,CAAwEF,EAAAE,CAAO,OAC/E,OAAAxE,EAAAc,GAAA,OAAA0D,EAAAqQ,EAAA4uC,EAAAzjD,KAAAyjD,KAAAn/C,EAAAE,IAAAF,EAAAE,GAGA,MAAAF,GAGA,QAAA2hD,GAAAxC,GAEA,IADA,GAAAzjD,GAAA,EAAAc,EAAA2iD,EAAAxgD,OAAA,EAAA7B,EAAAqiD,EAAA,GAAAwC,EAAA,GAAA56C,OAAAvK,EAAA,IAAAA,GACAd,EAAAc,GAAAmlD,EAAAjmD,IAAAoB,IAAAqiD,IAAAzjD,GACA,OAAAimD,GAGA,QAAAC,GAAAzC,EAAA0C,GAEA,IADA,GAAAnmD,GAAAmmD,EAAAljD,OAAAmjD,EAAA,GAAA/6C,OAAArL,GACAA,KAAAomD,EAAApmD,GAAAyjD,EAAA0C,EAAAnmD,GACA,OAAAomD,GAGA,QAAAl9C,GAAAu6C,EAAAR,GACA,GAAAniD,EAAA2iD,EAAAxgD,OAAA,CACA,GACAnC,GAEAulD,EAHArmD,EAAA,EAEAmV,EAAA,EAEAmxC,EAAA7C,EAAAtuC,EAIA,KAFA8tC,MAAAH,KAEA9iD,EAAAc,IAAAmiD,EAAAoD,EAAA5C,EAAAzjD,GAAAsmD,GAAA,OAAArD,EAAAqD,UAAAD,EAAAlxC,EAAAnV,EAEA,YAAAijD,EAAAqD,KAAAnxC,MAAA,IAGA,QAAAoxC,GAAA9C,EAAA+C,EAAAC,GAKA,IAJA,GACAppC,GACArd,EAFAG,GAAA,MAAAsmD,EAAAhD,EAAAxgD,OAAAwjD,IAAAD,EAAA,MAAAA,EAAA,GAAAA,GAIArmD,GACAH,EAAAmU,KAAA40B,SAAA5oC,IAAA,EACAkd,EAAAomC,EAAAtjD,EAAAqmD,GACA/C,EAAAtjD,EAAAqmD,GAAA/C,EAAAzjD,EAAAwmD,GACA/C,EAAAzjD,EAAAwmD,GAAAnpC,CAGA,OAAAomC,GAGA,QAAAiD,GAAAjD,EAAA5uC,GACA,GAEAvQ,GAFAjD,EAAA,EACAP,EAAA2iD,EAAAxgD,OAEAjD,GAAA,CAEA,UAAA6U,EACA,OAAA7U,EAAAc,IAAAwD,GAAAm/C,EAAAzjD,MAAAqB,GAAAiD,OAIA,QAAAtE,EAAAc,IAAAwD,GAAAuQ,EAAA4uC,EAAAzjD,KAAAyjD,MAAApiD,GAAAiD,EAGA,OAAAjD,GAGA,QAAAslD,GAAAC,GACA,KAAA9lD,EAAA8lD,EAAA3jD,QAAA,QACA,QAAAjD,IAAA,EAAAG,EAAA8T,EAAA2yC,EAAA3jD,GAAA0jD,EAAA,GAAAt7C,OAAAlL,KAAqEH,EAAAG,GACrE,OAAAW,GAAAqU,GAAA,EAAAoB,EAAAowC,EAAA3mD,GAAA,GAAAqL,OAAAvK,KAA0DqU,EAAArU,GAC1DyV,EAAApB,GAAAyxC,EAAAzxC,GAAAnV,EAGA,OAAA2mD,GAGA,QAAA1jD,GAAA5C,GACA,MAAAA,GAAA4C,OAGA,QAAA4jD,KACA,MAAAF,GAAA3jD,WAKA,QAAA0wB,MAkDA,QAAAozB,GAAA9lD,EAAA6T,GACA,GAAA1S,GAAA,GAAAuxB,EAGA,IAAA1yB,YAAA0yB,GAAA1yB,EAAA+lD,KAAA,SAAAzgD,EAAApD,GAA+Df,EAAA6L,IAAA9K,EAAAoD,SAG/D,IAAA+E,MAAAoB,QAAAzL,GAAA,CACA,GAEAR,GAFAR,GAAA,EACAc,EAAAE,EAAAiC,MAGA,UAAA4R,EAAA,OAAA7U,EAAAc,GAAAqB,EAAA6L,IAAAhO,EAAAgB,EAAAhB,QACA,QAAAA,EAAAc,GAAAqB,EAAA6L,IAAA6G,EAAArU,EAAAQ,EAAAhB,KAAAgB,GAAAR,OAIA,IAAAQ,EAAA,OAAAkC,KAAAlC,GAAAmB,EAAA6L,IAAA9K,EAAAlC,EAAAkC,GAEA,OAAAf,GAGA,QAAA6kD,KAOA,QAAAxmC,GAAAijC,EAAAwD,EAAAC,EAAAC,GACA,GAAAF,GAAAxkD,EAAAQ,OAAA,aAAAmkD,EACAA,EAAA3D,GAAA,MAAA4D,EACA5D,EAAAgC,KAAA4B,GACA5D,CAWA,KATA,GAGA6D,GACAhhD,EAEAmF,EANAzL,GAAA,EACAc,EAAA2iD,EAAAxgD,OACAC,EAAAT,EAAAwkD,KAGAM,EAAAT,IAEA75C,EAAAi6C,MAEAlnD,EAAAc,IACA2K,EAAA87C,EAAA1mD,IAAAymD,EAAApkD,EAAAoD,EAAAm9C,EAAAzjD,IAAA,KACAyL,EAAA9F,KAAAW,GAEAihD,EAAAv5C,IAAAs5C,GAAAhhD,GAQA,OAJAihD,GAAAR,KAAA,SAAAt7C,EAAAvI,GACAikD,EAAAl6C,EAAA/J,EAAAsd,EAAA/U,EAAAw7C,EAAAC,EAAAC,MAGAl6C,EAGA,QAAA2E,GAAAzP,EAAA8kD,GACA,KAAAA,EAAAxkD,EAAAQ,OAAA,MAAAd,EACA,IAAAshD,GAAA+D,EAAAC,EAAAR,EAAA,EAGA,OAFA,OAAAG,GAAAH,GAAAxkD,EAAAQ,OAAAwgD,EAAAthD,EAAAyP,WACA6xC,KAAAthD,EAAA4kD,KAAA,SAAAjyC,EAAAgH,GAA8C2nC,EAAA99C,MAAazC,IAAA4Y,EAAArQ,OAAAmG,EAAAkD,EAAAmyC,QAC3D,MAAAO,EAAA/D,EAAAgC,KAAA,SAAAnhD,EAAAE,GAAwD,MAAAgjD,GAAAljD,EAAApB,IAAAsB,EAAAtB,OAAgCugD,EAzCxF,GAEA4D,GACAD,EACAJ,EAJAvkD,KACAglD,IA2CA,OAAAT,IACAhmD,OAAA,SAAAyiD,GAA6B,MAAAjjC,GAAAijC,EAAA,EAAAiE,EAAAC,IAC7BxlD,IAAA,SAAAshD,GAA0B,MAAAjjC,GAAAijC,EAAA,EAAAmE,EAAAC,IAC1Bj2C,QAAA,SAAA6xC,GAA8B,MAAA7xC,GAAA4O,EAAAijC,EAAA,EAAAmE,EAAAC,GAAA,IAC9B3kD,IAAA,SAAA7C,GAAoC,MAAdoC,GAAAkD,KAAAtF,GAAc2mD,GACpCS,SAAA,SAAA7L,GAAkE,MAAnC6L,GAAAhlD,EAAAQ,OAAA,GAAA24C,EAAmCoL,GAClEK,WAAA,SAAAzL,GAAqD,MAApByL,GAAAzL,EAAoBoL,GACrDI,OAAA,SAAAvyC,GAAqC,MAAZuyC,GAAAvyC,EAAYmyC,IAIrC,QAAAU,KACA,SAGA,QAAAC,GAAA3mD,EAAAkC,EAAAoD,GACAtF,EAAAkC,GAAAoD,EAGA,QAAAshD,KACA,MAAAd,KAGA,QAAAe,GAAA1lD,EAAAe,EAAAoD,GACAnE,EAAA6L,IAAA9K,EAAAoD,GAGA,QAAA0zB,MAoBA,QAAAhsB,GAAAhN,EAAA6T,GACA,GAAA7G,GAAA,GAAAgsB,EAGA,IAAAh5B,YAAAg5B,GAAAh5B,EAAA+lD,KAAA,SAAAzgD,GAA0D0H,EAAAisB,IAAA3zB,SAG1D,IAAAtF,EAAA,CACA,GAAAhB,IAAA,EAAAc,EAAAE,EAAAiC,MACA,UAAA4R,EAAA,OAAA7U,EAAAc,GAAAkN,EAAAisB,IAAAj5B,EAAAhB,QACA,QAAAA,EAAAc,GAAAkN,EAAAisB,IAAAplB,EAAA7T,EAAAhB,KAAAgB,IAGA,MAAAgN,GAGA,QAAAvL,GAAAN,GACA,GAAAM,KACA,QAAAS,KAAAf,GAAAM,EAAAkD,KAAAzC,EACA,OAAAT,GAGA,QAAAgJ,GAAAtJ,GACA,GAAAsJ,KACA,QAAAvI,KAAAf,GAAAsJ,EAAA9F,KAAAxD,EAAAe,GACA,OAAAuI,GAGA,QAAAmG,GAAAzP,GACA,GAAAyP,KACA,QAAA1O,KAAAf,GAAAyP,EAAAjM,MAAqCzC,MAAAoD,MAAAnE,EAAAe,IACrC,OAAA0O,GAGA,QAAAk2C,GAAA7zC,EAAAF,GAKA,MAJAE,GAAA,MAAAA,EAAA,GAAAA,EACAF,EAAA,MAAAA,EAAA,GAAAA,EACA,IAAA/Q,UAAAC,QAAA8Q,EAAAE,IAAA,GACAF,GAAAE,EACA,WACA,MAAAE,MAAA40B,SAAAh1B,EAAAE,GAIA,QAAA8zC,GAAAC,EAAAC,GACA,GAAAnvC,GAAAD,CAGA,OAFAmvC,GAAA,MAAAA,EAAA,GAAAA,EACAC,EAAA,MAAAA,EAAA,GAAAA,EACA,WACA,GAAA/sC,EAGA,UAAApC,EAAAoC,EAAApC,IAAA,SAGA,IACAA,EAAA,EAAA3E,KAAA40B,SAAA,EACA7tB,EAAA,EAAA/G,KAAA40B,SAAA,EACAlwB,EAAAC,IAAAoC,WACKrC,KAAA,EAEL,OAAAmvC,GAAAC,EAAA/sC,EAAA/G,KAAAwvC,MAAA,EAAAxvC,KAAAmwC,IAAAzrC,OAIA,QAAAqvC,KACA,GAAAC,GAAAJ,EAAAvnC,MAAA7c,KAAAX,UACA,mBACA,MAAAmR,MAAAi0C,IAAAD,MAIA,QAAAE,GAAAvnD,GACA,kBACA,OAAA4lD,GAAA,EAAA1mD,EAAA,EAA4BA,EAAAc,IAAOd,EAAA0mD,GAAAvyC,KAAA40B,QACnC,OAAA2d,IAIA,QAAA4B,GAAAxnD,GACA,GAAAynD,GAAAF,EAAAvnD,EACA,mBACA,MAAAynD,KAAAznD,GAIA,QAAA0nD,GAAAC,GACA,kBACA,OAAAt0C,KAAAmwC,IAAA,EAAAnwC,KAAA40B,UAAA0f,GAIA,QAAAC,GAAArrC,GACA,OAAAA,EAGA,QAAAsrC,GAAAtrC,GACA,MAAAA,KAGA,QAAAurC,GAAAvrC,GACA,MAAAA,IAAA,EAAAA,GAGA,QAAAwrC,GAAAxrC,GACA,QAAAA,GAAA,MAAAA,SAAA,EAAAA,GAAA,KAGA,QAAAyrC,IAAAzrC,GACA,MAAAA,OAGA,QAAA0rC,IAAA1rC,GACA,QAAAA,MAAA,EAGA,QAAA2rC,IAAA3rC,GACA,QAAAA,GAAA,MAAAA,UAAA,GAAAA,IAAA,KA2CA,QAAA4rC,IAAA5rC,GACA,SAAAlJ,KAAA+0C,IAAA7rC,EAAA8rC,IAGA,QAAAC,IAAA/rC,GACA,MAAAlJ,MAAAk1C,IAAAhsC,EAAA8rC,IAGA,QAAAG,IAAAjsC,GACA,SAAAlJ,KAAA+0C,IAAAK,GAAAlsC,IAAA,EAGA,QAAAmsC,IAAAnsC,GACA,MAAAlJ,MAAAkwC,IAAA,KAAAhnC,EAAA,IAGA,QAAAosC,IAAApsC,GACA,SAAAlJ,KAAAkwC,IAAA,MAAAhnC,GAGA,QAAAqsC,IAAArsC,GACA,QAAAA,GAAA,MAAAlJ,KAAAkwC,IAAA,KAAAhnC,EAAA,MAAAlJ,KAAAkwC,IAAA,QAAAhnC,IAAA,EAGA,QAAAssC,IAAAtsC,GACA,SAAAlJ,KAAAwvC,KAAA,EAAAtmC,KAGA,QAAAusC,IAAAvsC,GACA,MAAAlJ,MAAAwvC,KAAA,KAAAtmC,KAGA,QAAAwsC,IAAAxsC,GACA,QAAAA,GAAA,QAAAlJ,KAAAwvC,KAAA,EAAAtmC,KAAAlJ,KAAAwvC,KAAA,GAAAtmC,GAAA,GAAAA,GAAA,KAaA,QAAAysC,IAAAzsC,GACA,SAAA0sC,GAAA,EAAA1sC,GAGA,QAAA0sC,IAAA1sC,GACA,OAAAA,MAAA2sC,GAAAC,GAAA5sC,MAAA6sC,GAAAD,IAAA5sC,GAAA8sC,IAAA9sC,EAAA+sC,GAAA/sC,EAAAgtC,GAAAJ,IAAA5sC,GAAAitC,IAAAjtC,EAAAktC,GAAAN,IAAA5sC,GAAAmtC,IAAAntC,EAAAotC,GAGA,QAAAC,IAAArtC,GACA,QAAAA,GAAA,QAAA0sC,GAAA,EAAA1sC,GAAA0sC,GAAA1sC,EAAA,QAqFA,QAAAy/B,IAAA6N,GAOA,IANA,GAEArmD,GAFAtE,GAAA,EACAc,EAAA6pD,EAAA1nD,OAEAuB,EAAAmmD,EAAA7pD,EAAA,GACAg8C,EAAA,IAEA98C,EAAAc,GACAwD,EAAAE,EACAA,EAAAmmD,EAAA3qD,GACA88C,GAAAx4C,EAAA,GAAAE,EAAA,GAAAF,EAAA,GAAAE,EAAA,EAGA,OAAAs4C,GAAA,EAGA,QAAA8N,IAAAD,GAUA,IATA,GAIArmD,GAEAlE,EANAJ,GAAA,EACAc,EAAA6pD,EAAA1nD,OACA6V,EAAA,EACAoC,EAAA,EAEA1W,EAAAmmD,EAAA7pD,EAAA,GAEAgb,EAAA,IAEA9b,EAAAc,GACAwD,EAAAE,EACAA,EAAAmmD,EAAA3qD,GACA8b,GAAA1b,EAAAkE,EAAA,GAAAE,EAAA,GAAAA,EAAA,GAAAF,EAAA,GACAwU,IAAAxU,EAAA,GAAAE,EAAA,IAAApE,EACA8a,IAAA5W,EAAA,GAAAE,EAAA,IAAApE,CAGA,OAAA0b,IAAA,GAAAhD,EAAAgD,EAAAZ,EAAAY,GAOA,QAAA+uC,IAAAvmD,EAAAE,EAAApE,GACA,OAAAoE,EAAA,GAAAF,EAAA,KAAAlE,EAAA,GAAAkE,EAAA,KAAAE,EAAA,GAAAF,EAAA,KAAAlE,EAAA,GAAAkE,EAAA,IAGA,QAAAwmD,IAAAxmD,EAAAE,GACA,MAAAF,GAAA,GAAAE,EAAA,IAAAF,EAAA,GAAAE,EAAA,GAMA,QAAAumD,IAAAC,GAKA,OAJAlqD,GAAAkqD,EAAA/nD,OACAkjD,GAAA,KACAxxC,EAAA,EAEA3U,EAAA,EAAiBA,EAAAc,IAAOd,EAAA,CACxB,KAAA2U,EAAA,GAAAk2C,GAAAG,EAAA7E,EAAAxxC,EAAA,IAAAq2C,EAAA7E,EAAAxxC,EAAA,IAAAq2C,EAAAhrD,KAAA,KAAA2U,CACAwxC,GAAAxxC,KAAA3U,EAGA,MAAAmmD,GAAA76C,MAAA,EAAAqJ,GAGA,QAAAs2C,IAAAD,GACA,IAAAlqD,EAAAkqD,EAAA/nD,QAAA,aAEA,IAAAjD,GACAc,EACAoqD,EAAA,GAAA7/C,OAAAvK,GACAqqD,EAAA,GAAA9/C,OAAAvK,EAEA,KAAAd,EAAA,EAAaA,EAAAc,IAAOd,EAAAkrD,EAAAlrD,KAAAgrD,EAAAhrD,GAAA,IAAAgrD,EAAAhrD,GAAA,GAAAA,EAEpB,KADAkrD,EAAAzF,KAAAqF,IACA9qD,EAAA,EAAaA,EAAAc,IAAOd,EAAAmrD,EAAAnrD,IAAAkrD,EAAAlrD,GAAA,IAAAkrD,EAAAlrD,GAAA,GAEpB,IAAAorD,GAAAL,GAAAG,GACAG,EAAAN,GAAAI,GAGAG,EAAAD,EAAA,KAAAD,EAAA,GACAG,EAAAF,IAAApoD,OAAA,KAAAmoD,IAAAnoD,OAAA,GACAgoD,IAIA,KAAAjrD,EAAAorD,EAAAnoD,OAAA,EAAmCjD,GAAA,IAAQA,EAAAirD,EAAAtlD,KAAAqlD,EAAAE,EAAAE,EAAAprD,IAAA,IAC3C,KAAAA,GAAAsrD,EAAqBtrD,EAAAqrD,EAAApoD,OAAAsoD,IAAqCvrD,EAAAirD,EAAAtlD,KAAAqlD,EAAAE,EAAAG,EAAArrD,IAAA,IAE1D,OAAAirD,GAGA,QAAAxI,IAAAkI,EAAAa,GAQA,OAHAxG,GAAAyG,EAJA3qD,EAAA6pD,EAAA1nD,OACA7B,EAAAupD,EAAA7pD,EAAA,GACAgY,EAAA0yC,EAAA,GAAAtwC,EAAAswC,EAAA,GACAzG,EAAA3jD,EAAA,GAAAsqD,EAAAtqD,EAAA,GAEAuqD,GAAA,EAEA3rD,EAAA,EAAiBA,EAAAc,IAAOd,EACxBoB,EAAAupD,EAAA3qD,GAAAglD,EAAA5jD,EAAA,GAAAqqD,EAAArqD,EAAA,GACAqqD,EAAAvwC,IAAAwwC,EAAAxwC,GAAApC,GAAAisC,EAAAC,IAAA9pC,EAAAuwC,IAAAC,EAAAD,GAAAzG,IAAA2G,MACA5G,EAAAC,EAAA0G,EAAAD,CAGA,OAAAE,GAGA,QAAAC,IAAAjB,GAUA,IATA,GAGAxmB,GACAC,EAJApkC,GAAA,EACAc,EAAA6pD,EAAA1nD,OACAuB,EAAAmmD,EAAA7pD,EAAA,GAGA+iB,EAAArf,EAAA,GACAsf,EAAAtf,EAAA,GACAqnD,EAAA,IAEA7rD,EAAAc,GACAqjC,EAAAtgB,EACAugB,EAAAtgB,EACAtf,EAAAmmD,EAAA3qD,GACA6jB,EAAArf,EAAA,GACAsf,EAAAtf,EAAA,GACA2/B,GAAAtgB,EACAugB,GAAAtgB,EACA+nC,GAAA13C,KAAAwvC,KAAAxf,IAAAC,IAGA,OAAAynB,GAOA,QAAAC,MACAnoD,KAAAooD,IAAApoD,KAAAqoD,IACAroD,KAAAsoD,IAAAtoD,KAAAuoD,IAAA,KACAvoD,KAAA2hD,KAGA,QAAA6G,MACA,UAAAL,IAoIA,QAAAM,IAAA/rD,GACA,GAAAyY,IAAAnV,KAAA0oD,GAAAnsD,KAAA,KAAAG,GACA6a,GAAAvX,KAAA2oD,GAAApsD,KAAA,KAAAG,EACA,OAAA45B,IAAAt2B,KAAA4oD,MAAAzzC,EAAAoC,GAAApC,EAAAoC,EAAA7a,GAGA,QAAA45B,IAAAuyB,EAAA1zC,EAAAoC,EAAA7a,GACA,GAAA+9B,MAAAtlB,IAAAslB,MAAAljB,GAAA,MAAAsxC,EAEA,IAAAC,GAOAC,EACAC,EACAC,EACAC,EACAvJ,EACAwJ,EACA9sD,EACAmV,EAbAlL,EAAAuiD,EAAA7nC,MACAooC,GAAcziD,KAAAjK,GACd0kD,EAAAyH,EAAAT,IACAL,EAAAc,EAAAR,IACAhH,EAAAwH,EAAAP,IACAR,EAAAe,EAAAN,GAWA,KAAAjiD,EAAA,MAAAuiD,GAAA7nC,MAAAooC,EAAAP,CAGA,MAAAviD,EAAAhH,QAGA,IAFAqgD,EAAAxqC,IAAA4zC,GAAA3H,EAAAC,GAAA,IAAAD,EAAA2H,EAAmD1H,EAAA0H,GACnDI,EAAA5xC,IAAAyxC,GAAAjB,EAAAD,GAAA,IAAAC,EAAAiB,EAAoDlB,EAAAkB,EACpDF,EAAAxiD,QAAAjK,EAAA8sD,GAAA,EAAAxJ,IAAA,MAAAmJ,GAAAzsD,GAAA+sD,EAAAP,CAMA,IAFAI,GAAAJ,EAAAH,GAAAnsD,KAAA,KAAA+J,EAAAK,MACAuiD,GAAAL,EAAAF,GAAApsD,KAAA,KAAA+J,EAAAK,MACAwO,IAAA8zC,GAAA1xC,IAAA2xC,EAAA,MAAAE,GAAA9gD,KAAAhC,EAAAwiD,IAAAzsD,GAAA+sD,EAAAP,EAAA7nC,MAAAooC,EAAAP,CAGA,IACAC,MAAAzsD,GAAA,GAAAqL,OAAA,GAAAmhD,EAAA7nC,MAAA,GAAAtZ,OAAA,IACAi4C,EAAAxqC,IAAA4zC,GAAA3H,EAAAC,GAAA,IAAAD,EAAA2H,EAAmD1H,EAAA0H,GACnDI,EAAA5xC,IAAAyxC,GAAAjB,EAAAD,GAAA,IAAAC,EAAAiB,EAAoDlB,EAAAkB,SACjD3sD,EAAA8sD,GAAA,EAAAxJ,MAAAnuC,GAAA03C,GAAAF,IAAA,EAAAC,GAAAF,GACH,OAAAD,GAAAt3C,GAAAlL,EAAAwiD,EAAAzsD,GAAA+sD,EAAAP,EAGA,QAAAQ,IAAA1iD,GACA,GAAAjK,GAAAL,EACA8Y,EACAoC,EAFApa,EAAAwJ,EAAArH,OAGA6hD,EAAA,GAAAz5C,OAAAvK,GACAmsD,EAAA,GAAA5hD,OAAAvK,GACAikD,EAAAvL,IACAkS,EAAAlS,IACAwL,GAAAxL,IACAiS,GAAAjS,GAGA,KAAAx5C,EAAA,EAAaA,EAAAc,IAAOd,EACpBo+B,MAAAtlB,GAAAnV,KAAA0oD,GAAAnsD,KAAA,KAAAG,EAAAiK,EAAAtK,MAAAo+B,MAAAljB,GAAAvX,KAAA2oD,GAAApsD,KAAA,KAAAG,MACAykD,EAAA9kD,GAAA8Y,EACAm0C,EAAAjtD,GAAAkb,EACApC,EAAAisC,MAAAjsC,GACAA,EAAAksC,MAAAlsC,GACAoC,EAAAwwC,MAAAxwC,GACAA,EAAAuwC,MAAAvwC,GAWA,KAPA8pC,EAAAD,MAAAphD,KAAAooD,IAAA/G,EAAArhD,KAAAsoD,KACAR,EAAAC,MAAA/nD,KAAAqoD,IAAAP,EAAA9nD,KAAAuoD,KAGAvoD,KAAA4oD,MAAAxH,EAAA2G,GAAAa,MAAAvH,EAAAyG,GAGAzrD,EAAA,EAAaA,EAAAc,IAAOd,EACpBi6B,GAAAt2B,KAAAmhD,EAAA9kD,GAAAitD,EAAAjtD,GAAAsK,EAAAtK,GAGA,OAAA2D,MAGA,QAAAupD,IAAAp0C,EAAAoC,GACA,GAAAkjB,MAAAtlB,OAAAslB,MAAAljB,MAAA,MAAAvX,KAEA,IAAAohD,GAAAphD,KAAAooD,IACAL,EAAA/nD,KAAAqoD,IACAhH,EAAArhD,KAAAsoD,IACAR,EAAA9nD,KAAAuoD,GAKA,IAAA9tB,MAAA2mB,GACAC,GAAAD,EAAA5wC,KAAAuB,MAAAoD,IAAA,EACA2yC,GAAAC,EAAAv3C,KAAAuB,MAAAwF,IAAA,MAIA,MAAA6pC,EAAAjsC,KAAAksC,GAAA0G,EAAAxwC,KAAAuwC,GAiCA,MAAA9nD,KAhCA,IAEA8oD,GACAzsD,EAHAyb,EAAAupC,EAAAD,EACA96C,EAAAtG,KAAAghB,KAIA,QAAA3kB,GAAAkb,GAAAwwC,EAAAD,GAAA,MAAA3yC,GAAAisC,EAAAC,GAAA,GACA,OACA,GAAAyH,EAAA,GAAAphD,OAAA,GAAAohD,EAAAzsD,GAAAiK,IAAAwiD,QACAhxC,GAAA,EAAAupC,EAAAD,EAAAtpC,EAAAgwC,EAAAC,EAAAjwC,EAAA3C,EAAAksC,GAAA9pC,EAAAuwC,EACA,MAEA,QACA,GAAAgB,EAAA,GAAAphD,OAAA,GAAAohD,EAAAzsD,GAAAiK,IAAAwiD,QACAhxC,GAAA,EAAAspC,EAAAC,EAAAvpC,EAAAgwC,EAAAC,EAAAjwC,EAAAspC,EAAAjsC,GAAAoC,EAAAuwC,EACA,MAEA,QACA,GAAAgB,EAAA,GAAAphD,OAAA,GAAAohD,EAAAzsD,GAAAiK,IAAAwiD,QACAhxC,GAAA,EAAAupC,EAAAD,EAAAtpC,EAAAiwC,EAAAD,EAAAhwC,EAAA3C,EAAAksC,GAAA0G,EAAAxwC,EACA,MAEA,QACA,GAAAuxC,EAAA,GAAAphD,OAAA,GAAAohD,EAAAzsD,GAAAiK,IAAAwiD,QACAhxC,GAAA,EAAAspC,EAAAC,EAAAvpC,EAAAiwC,EAAAD,EAAAhwC,EAAAspC,EAAAjsC,GAAA4yC,EAAAxwC,GAKAvX,KAAAghB,OAAAhhB,KAAAghB,MAAA1hB,SAAAU,KAAAghB,MAAA1a,GAUA,MAJAtG,MAAAooD,IAAAhH,EACAphD,KAAAqoD,IAAAN,EACA/nD,KAAAsoD,IAAAjH,EACArhD,KAAAuoD,IAAAT,EACA9nD,KAGA,QAAAwpD,MACA,GAAA7iD,KAIA,OAHA3G,MAAAypD,MAAA,SAAAnjD,GACA,IAAAA,EAAAhH,OAAA,GAAAqH,EAAA3E,KAAAsE,EAAAK,YAA8CL,IAAAgC,QAE9C3B,EAGA,QAAA+iD,IAAA/H,GACA,MAAAtiD,WAAAC,OACAU,KAAA4oD,OAAAjH,EAAA,OAAAA,EAAA,OAAAiH,OAAAjH,EAAA,OAAAA,EAAA,OACAlnB,MAAAz6B,KAAAooD,SAAAvqD,KAAAmC,KAAAooD,IAAApoD,KAAAqoD,MAAAroD,KAAAsoD,IAAAtoD,KAAAuoD,MAGA,QAAAoB,IAAArjD,EAAA86C,EAAA2G,EAAA1G,EAAAyG,GACA9nD,KAAAsG,OACAtG,KAAAohD,KACAphD,KAAA+nD,KACA/nD,KAAAqhD,KACArhD,KAAA8nD,KAGA,QAAA8B,IAAAz0C,EAAAoC,EAAAsyC,GACA,GAAAljD,GAGA06C,EACAyG,EACAgC,EACAC,EAKA9vC,EACA5d,EAXA+kD,EAAAphD,KAAAooD,IACAL,EAAA/nD,KAAAqoD,IAKA2B,EAAAhqD,KAAAsoD,IACA2B,EAAAjqD,KAAAuoD,IACA2B,KACA5jD,EAAAtG,KAAAghB,KAYA,KARA1a,GAAA4jD,EAAAloD,KAAA,GAAA2nD,IAAArjD,EAAA86C,EAAA2G,EAAAiC,EAAAC,IACA,MAAAJ,IAAAhU,KAEAuL,EAAAjsC,EAAA00C,EAAA9B,EAAAxwC,EAAAsyC,EACAG,EAAA70C,EAAA00C,EAAAI,EAAA1yC,EAAAsyC,EACAA,MAGA5vC,EAAAiwC,EAAA9wC,OAGA,OAAA9S,EAAA2T,EAAA3T,QACA+6C,EAAApnC,EAAAmnC,IAAA4I,IACAlC,EAAA7tC,EAAA8tC,IAAAkC,IACAH,EAAA7vC,EAAAonC,IAAAD,IACA2I,EAAA9vC,EAAA6tC,IAAAC,GAGA,GAAAzhD,EAAAhH,OAAA,CACA,GAAAypD,IAAA1H,EAAAyI,GAAA,EACAd,GAAAlB,EAAAiC,GAAA,CAEAG,GAAAloD,KACA,GAAA2nD,IAAArjD,EAAA,GAAAyiD,EAAAC,EAAAc,EAAAC,GACA,GAAAJ,IAAArjD,EAAA,GAAA+6C,EAAA2H,EAAAD,EAAAgB,GACA,GAAAJ,IAAArjD,EAAA,GAAAyiD,EAAAjB,EAAAgC,EAAAd,GACA,GAAAW,IAAArjD,EAAA,GAAA+6C,EAAAyG,EAAAiB,EAAAC,KAIA3sD,GAAAkb,GAAAyxC,IAAA,EAAA7zC,GAAA4zC,KACA9uC,EAAAiwC,IAAA5qD,OAAA,GACA4qD,IAAA5qD,OAAA,GAAA4qD,IAAA5qD,OAAA,EAAAjD,GACA6tD,IAAA5qD,OAAA,EAAAjD,GAAA4d,OAKA,CACA,GAAAkwC,GAAAh1C,GAAAnV,KAAA0oD,GAAAnsD,KAAA,KAAA+J,EAAAK,MACAyjD,EAAA7yC,GAAAvX,KAAA2oD,GAAApsD,KAAA,KAAA+J,EAAAK,MACA0jD,EAAAF,IAAAC,GACA,IAAAC,EAAAR,EAAA,CACA,GAAAntD,GAAA8T,KAAAwvC,KAAA6J,EAAAQ,EACAjJ,GAAAjsC,EAAAzY,EAAAqrD,EAAAxwC,EAAA7a,EACAstD,EAAA70C,EAAAzY,EAAAutD,EAAA1yC,EAAA7a,EACAiK,EAAAL,EAAAK,MAKA,MAAAA,GAGA,QAAA2jD,IAAA5tD,GACA,GAAA+9B,MAAAtlB,GAAAnV,KAAA0oD,GAAAnsD,KAAA,KAAAG,KAAA+9B,MAAAljB,GAAAvX,KAAA2oD,GAAApsD,KAAA,KAAAG,IAAA,MAAAsD,KAEA,IAAA8oD,GAEAyB,EACAC,EACAliD,EAKA6M,EACAoC,EACAwxC,EACAC,EACArJ,EACAwJ,EACA9sD,EACAmV,EAfAlL,EAAAtG,KAAAghB,MAIAogC,EAAAphD,KAAAooD,IACAL,EAAA/nD,KAAAqoD,IACAhH,EAAArhD,KAAAsoD,IACAR,EAAA9nD,KAAAuoD,GAWA,KAAAjiD,EAAA,MAAAtG,KAIA,IAAAsG,EAAAhH,OAAA,QAGA,IAFAqgD,EAAAxqC,IAAA4zC,GAAA3H,EAAAC,GAAA,IAAAD,EAAA2H,EAAmD1H,EAAA0H,GACnDI,EAAA5xC,IAAAyxC,GAAAjB,EAAAD,GAAA,IAAAC,EAAAiB,EAAoDlB,EAAAkB,EACpDF,EAAAxiD,QAAAjK,EAAA8sD,GAAA,EAAAxJ,IAAA,MAAA3/C,KACA,KAAAsG,EAAAhH,OAAA,OACAwpD,EAAAzsD,EAAA,MAAAysD,EAAAzsD,EAAA,MAAAysD,EAAAzsD,EAAA,QAAAkuD,EAAAzB,EAAAt3C,EAAAnV,GAIA,KAAAiK,EAAAK,OAAAjK,GAAA,GAAA8tD,EAAAlkD,QAAAgC,MAAA,MAAAtI,KAIA,QAHAsI,EAAAhC,EAAAgC,aAAAhC,GAAAgC,KAGAkiD,GAAAliD,EAAAkiD,EAAAliD,aAAAkiD,GAAAliD,KAAAtI,MAGA8oD,GAGAxgD,EAAAwgD,EAAAzsD,GAAAiM,QAAAwgD,GAAAzsD,IAGAiK,EAAAwiD,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,KACAxiD,KAAAwiD,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,MACAxiD,EAAAhH,SACAirD,IAAA/4C,GAAAlL,EACAtG,KAAAghB,MAAA1a,GAGAtG,OAbAA,KAAAghB,MAAA1Y,EAAAtI,MAgBA,QAAAyqD,IAAA9jD,GACA,OAAAtK,GAAA,EAAAc,EAAAwJ,EAAArH,OAAkCjD,EAAAc,IAAOd,EAAA2D,KAAAg+C,OAAAr3C,EAAAtK,GACzC,OAAA2D,MAGA,QAAA0qD,MACA,MAAA1qD,MAAAghB,MAGA,QAAA2pC,MACA,GAAA35C,GAAA,CAIA,OAHAhR,MAAAypD,MAAA,SAAAnjD,GACA,IAAAA,EAAAhH,OAAA,KAAA0R,QAAgC1K,IAAAgC,QAEhC0I,EAGA,QAAA45C,IAAAllD,GACA,GAAAuU,GAAA8M,EAAAq6B,EAAA2G,EAAA1G,EAAAyG,EAAAoC,KAAA5jD,EAAAtG,KAAAghB,KAEA,KADA1a,GAAA4jD,EAAAloD,KAAA,GAAA2nD,IAAArjD,EAAAtG,KAAAooD,IAAApoD,KAAAqoD,IAAAroD,KAAAsoD,IAAAtoD,KAAAuoD,MACAtuC,EAAAiwC,EAAA9wC,OACA,IAAA1T,EAAAY,EAAA2T,EAAA3T,KAAA86C,EAAAnnC,EAAAmnC,GAAA2G,EAAA9tC,EAAA8tC,GAAA1G,EAAApnC,EAAAonC,GAAAyG,EAAA7tC,EAAA6tC,KAAAxhD,EAAAhH,OAAA,CACA,GAAAypD,IAAA3H,EAAAC,GAAA,EAAA2H,GAAAjB,EAAAD,GAAA,GACA/gC,EAAAzgB,EAAA,KAAA4jD,EAAAloD,KAAA,GAAA2nD,IAAA5iC,EAAAgiC,EAAAC,EAAA3H,EAAAyG,KACA/gC,EAAAzgB,EAAA,KAAA4jD,EAAAloD,KAAA,GAAA2nD,IAAA5iC,EAAAq6B,EAAA4H,EAAAD,EAAAjB,KACA/gC,EAAAzgB,EAAA,KAAA4jD,EAAAloD,KAAA,GAAA2nD,IAAA5iC,EAAAgiC,EAAAhB,EAAA1G,EAAA2H,KACAjiC,EAAAzgB,EAAA,KAAA4jD,EAAAloD,KAAA,GAAA2nD,IAAA5iC,EAAAq6B,EAAA2G,EAAAgB,EAAAC,IAGA,MAAAhpD,MAGA,QAAA6qD,IAAAnlD,GACA,GAAAuU,GAAAiwC,KAAA5hD,IAEA,KADAtI,KAAAghB,OAAAkpC,EAAAloD,KAAA,GAAA2nD,IAAA3pD,KAAAghB,MAAAhhB,KAAAooD,IAAApoD,KAAAqoD,IAAAroD,KAAAsoD,IAAAtoD,KAAAuoD,MACAtuC,EAAAiwC,EAAA9wC,OAAA,CACA,GAAA9S,GAAA2T,EAAA3T,IACA,IAAAA,EAAAhH,OAAA,CACA,GAAAynB,GAAAq6B,EAAAnnC,EAAAmnC,GAAA2G,EAAA9tC,EAAA8tC,GAAA1G,EAAApnC,EAAAonC,GAAAyG,EAAA7tC,EAAA6tC,GAAAiB,GAAA3H,EAAAC,GAAA,EAAA2H,GAAAjB,EAAAD,GAAA,GACA/gC,EAAAzgB,EAAA,KAAA4jD,EAAAloD,KAAA,GAAA2nD,IAAA5iC,EAAAq6B,EAAA2G,EAAAgB,EAAAC,KACAjiC,EAAAzgB,EAAA,KAAA4jD,EAAAloD,KAAA,GAAA2nD,IAAA5iC,EAAAgiC,EAAAhB,EAAA1G,EAAA2H,KACAjiC,EAAAzgB,EAAA,KAAA4jD,EAAAloD,KAAA,GAAA2nD,IAAA5iC,EAAAq6B,EAAA4H,EAAAD,EAAAjB,KACA/gC,EAAAzgB,EAAA,KAAA4jD,EAAAloD,KAAA,GAAA2nD,IAAA5iC,EAAAgiC,EAAAC,EAAA3H,EAAAyG,IAEAx/C,EAAAtG,KAAAiY,GAEA,KAAAA,EAAA3R,EAAA8Q,OACA1T,EAAAuU,EAAA3T,KAAA2T,EAAAmnC,GAAAnnC,EAAA8tC,GAAA9tC,EAAAonC,GAAApnC,EAAA6tC,GAEA,OAAA9nD,MAGA,QAAA8qD,IAAApuD,GACA,MAAAA,GAAA,GAGA,QAAAquD,IAAApJ,GACA,MAAAtiD,WAAAC,QAAAU,KAAA0oD,GAAA/G,EAAA3hD,WAAA0oD,GAGA,QAAAsC,IAAAtuD,GACA,MAAAA,GAAA,GAGA,QAAAuuD,IAAAtJ,GACA,MAAAtiD,WAAAC,QAAAU,KAAA2oD,GAAAhH,EAAA3hD,WAAA2oD,GAGA,QAAAuC,IAAAC,EAAAh2C,EAAAoC,GACA,GAAAsxC,GAAA,GAAAuC,IAAA,MAAAj2C,EAAA21C,GAAA31C,EAAA,MAAAoC,EAAAyzC,GAAAzzC,EAAA6nC,gBACA,cAAA+L,EAAAtC,IAAAQ,OAAA8B,GAGA,QAAAC,IAAAj2C,EAAAoC,EAAA6pC,EAAA2G,EAAA1G,EAAAyG,GACA9nD,KAAA0oD,GAAAvzC,EACAnV,KAAA2oD,GAAApxC,EACAvX,KAAAooD,IAAAhH,EACAphD,KAAAqoD,IAAAN,EACA/nD,KAAAsoD,IAAAjH,EACArhD,KAAAuoD,IAAAT,EACA9nD,KAAAghB,UAAAnjB,GAGA,QAAAwtD,IAAAjC,GAEA,IADA,GAAAkC,IAAc3kD,KAAAyiD,EAAAziD,MAAgB2B,EAAAgjD,EAC9BlC,IAAA9gD,gBAA+C3B,KAAAyiD,EAAAziD,KAC/C,OAAA2kD,GA+CA,QAAAC,IAAAv6C,GACA,KAAAA,GAAA,YAAAvF,MACAzL,MAAAwrD,MAAAx6C,EACAhR,KAAAyrD,MACAzrD,KAAA0rD,OAAA,KACA1rD,KAAA2rD,UACA3rD,KAAA4rD,SACA5rD,KAAA6rD,SACA7rD,KAAA8rD,QACA9rD,KAAA+rD,OACA/rD,KAAAgsD,OAAA,EAgCA,QAAAC,IAAAhyC,GACA,IAAAA,EAAA+xC,OAAA,IAAsB95C,GAAA+H,GACtB,MAAAlT,GAAakT,EAAA0xC,OAAA1xC,EAAA8xC,OAAA9xC,EAAA6xC,QAAA,IAAAI,GAAAjyC,EAAAlT,IAGb,QAAAmL,IAAA+H,GACA,KAAAA,EAAA+xC,OAAA/xC,EAAA4xC,UAAA5xC,EAAA6xC,QAAA7xC,EAAAuxC,OAAA,CACA,GAAAnvD,GAAA4d,EAAA8xC,OAAA9xC,EAAA6xC,QACApyC,EAAAO,EAAA0xC,OAAAtvD,GACAmV,EAAAkI,EAAApa,OAAA,EACA7C,EAAAid,EAAAlI,EACAkI,GAAAlI,GAAAW,GAAA8H,EAAA5d,KACA4d,EAAA4xC,WAAA5xC,EAAA6xC,QACApyC,EAAAjd,EAAAogB,MAAA,KAAAnD,GACAO,EAAA0xC,OAAAtvD,KACA4d,EAAA0xC,OAAAtvD,GAAAqd,GAAAyyC,KAIA,QAAAh6C,IAAA8H,EAAA5d,GACA,gBAAA0K,EAAAmO,GACA+E,EAAA0xC,OAAAtvD,OACA4d,EAAA6xC,UAAA7xC,EAAA8xC,OACA9xC,EAAA0xC,OAAAtvD,GAAA,KACA,MAAA4d,EAAAyxC,SACA,MAAA3kD,EACAmlD,GAAAjyC,EAAAlT,IAEAkT,EAAA2xC,MAAAvvD,GAAA6Y,EACA+E,EAAA4xC,SAAAI,GAAAhyC,GACAmyC,GAAAnyC,OAKA,QAAAiyC,IAAAjyC,EAAAlT,GACA,GAAA2S,GAAArd,EAAA4d,EAAA0xC,OAAArsD,MAKA,KAJA2a,EAAAyxC,OAAA3kD,EACAkT,EAAA2xC,UAAA/tD,GACAoc,EAAA4xC,SAAAzM,MAEA/iD,GAAA,GACA,IAAAqd,EAAAO,EAAA0xC,OAAAtvD,MACA4d,EAAA0xC,OAAAtvD,GAAA,KACAqd,EAAAwyC,OAAA,IAAwBxyC,EAAAwyC,QACxB,MAAAnlD,IAIAkT,EAAA6xC,QAAA1M,IACAgN,GAAAnyC,GAGA,QAAAmyC,IAAAnyC,IACAA,EAAA6xC,SAAA7xC,EAAAwxC,OAAAxxC,EAAAwxC,MAAAxxC,EAAAyxC,OAAAzxC,EAAA2xC,OAGA,QAAA5mD,IAAAqnD,GACA,UAAAd,IAAAlsD,UAAAC,QAAA+sD,EAAAxW,KAGA,QAAAyW,IAAAn3C,GACA,kBACA,MAAAA,IASA,QAAAo3C,IAAA7vD,GACA,MAAAA,GAAA8vD,YAGA,QAAAC,IAAA/vD,GACA,MAAAA,GAAAgwD,YAGA,QAAAC,IAAAjwD,GACA,MAAAA,GAAAkwD,WAGA,QAAAC,IAAAnwD,GACA,MAAAA,GAAAowD,SAGA,QAAAC,IAAArwD,GACA,MAAAA,MAAAswD,SAGA,QAAAC,IAAA93C,GACA,MAAAA,IAAA,EAAA+3C,GAAA/3C,IAAA,GAAA+3C,GAAA18C,KAAAy8C,KAAA93C,GAGA,QAAAg4C,IAAA/L,EAAA2G,EAAA1G,EAAAyG,EAAAgC,EAAAC,EAAAC,EAAAC,GACA,GAAAmD,GAAA/L,EAAAD,EAAAiM,EAAAvF,EAAAC,EACAuF,EAAAtD,EAAAF,EAAAyD,EAAAtD,EAAAF,EACArwC,GAAA4zC,GAAAvF,EAAAgC,GAAAwD,GAAAnM,EAAA0I,KAAAyD,EAAAH,EAAAE,EAAAD,EACA,QAAAjM,EAAA1nC,EAAA0zC,EAAArF,EAAAruC,EAAA2zC,GAKA,QAAAG,IAAApM,EAAA2G,EAAA1G,EAAAyG,EAAA2F,EAAAlqC,EAAAmqC,GACA,GAAAC,GAAAvM,EAAAC,EACAuM,EAAA7F,EAAAD,EACAtI,GAAAkO,EAAAnqC,MAAA/S,KAAAwvC,KAAA2N,IAAAC,KACAC,EAAArO,EAAAoO,EACAE,GAAAtO,EAAAmO,EACAI,EAAA3M,EAAAyM,EACAG,EAAAjG,EAAA+F,EACAV,EAAA/L,EAAAwM,EACAR,EAAAvF,EAAAgG,EACAG,GAAAF,EAAAX,GAAA,EACAc,GAAAF,EAAAX,GAAA,EACAlD,EAAAiD,EAAAW,EACA3D,EAAAiD,EAAAW,EACA3D,EAAAF,IAAAC,IACAl1C,EAAAu4C,EAAAlqC,EACA/I,EAAAuzC,EAAAV,EAAAD,EAAAY,EACAtxD,GAAA0tD,EAAA,QAAA55C,KAAAwvC,KAAAxvC,KAAAJ,IAAA,EAAA8E,IAAAm1C,EAAA7vC,MACA2zC,GAAA3zC,EAAA4vC,EAAAD,EAAAztD,GAAA2tD,EACA+D,IAAA5zC,EAAA2vC,EAAAC,EAAA1tD,GAAA2tD,EACAgE,GAAA7zC,EAAA4vC,EAAAD,EAAAztD,GAAA2tD,EACAiE,IAAA9zC,EAAA2vC,EAAAC,EAAA1tD,GAAA2tD,EACAkE,EAAAJ,EAAAF,EACAO,EAAAJ,EAAAF,EACAO,EAAAJ,EAAAJ,EACAS,EAAAJ,EAAAJ,CAMA,OAFAK,KAAAC,IAAAC,IAAAC,MAAAP,EAAAE,EAAAD,EAAAE,IAGAK,GAAAR,EACAS,GAAAR,EACAT,KAAAE,EACAD,KAAAE,EACAC,IAAAI,GAAAV,EAAAv4C,EAAA,GACA84C,IAAAI,GAAAX,EAAAv4C,EAAA,IAIA,QAAA25C,MAUA,QAAAA,KACA,GAAAvkD,GACA4K,EACA45C,GAAAtC,EAAA3vC,MAAA7c,KAAAX,WACAouD,GAAAf,EAAA7vC,MAAA7c,KAAAX,WACA0vD,EAAAnC,EAAA/vC,MAAA7c,KAAAX,WAAA6tD,GACA8B,EAAAlC,EAAAjwC,MAAA7c,KAAAX,WAAA6tD,GACA7jC,EAAA7Y,KAAAgwC,IAAAwO,EAAAD,GACArB,EAAAsB,EAAAD,CAQA,IANAp3C,MAAArN,EAAAk+C,MAGAiF,EAAAqB,IAAA55C,EAAAu4C,IAAAqB,IAAA55C,GAGAu4C,EAAAwB,GAGA,GAAA5lC,EAAA6lC,GAAAD,GACAt3C,EAAAw3C,OAAA1B,EAAAj9C,KAAA+0C,IAAAwJ,GAAAtB,EAAAj9C,KAAAk1C,IAAAqJ,IACAp3C,EAAAk3C,IAAA,IAAApB,EAAAsB,EAAAC,GAAAtB,GACAoB,EAAAG,KACAt3C,EAAAw3C,OAAAL,EAAAt+C,KAAA+0C,IAAAyJ,GAAAF,EAAAt+C,KAAAk1C,IAAAsJ,IACAr3C,EAAAk3C,IAAA,IAAAC,EAAAE,EAAAD,EAAArB,QAKA,CACA,GAWA0B,GACAC,EAZAC,EAAAP,EACAQ,EAAAP,EACAQ,EAAAT,EACAU,EAAAT,EACAU,EAAArmC,EACAsmC,EAAAtmC,EACAumC,EAAA5C,EAAAnwC,MAAA7c,KAAAX,WAAA,EACAwwD,EAAAD,EAAAX,KAAAa,KAAAjzC,MAAA7c,KAAAX,WAAAmR,KAAAwvC,KAAA8O,IAAArB,MACAlqC,EAAA/S,KAAAF,IAAAE,KAAAgwC,IAAAiN,EAAAqB,GAAA,GAAAiB,EAAAlzC,MAAA7c,KAAAX,YACA2wD,EAAAzsC,EACA0sC,EAAA1sC,CAKA,IAAAssC,EAAAZ,GAAA,CACA,GAAAiB,GAAAjD,GAAA4C,EAAAf,EAAAt+C,KAAAk1C,IAAAkK,IACAO,EAAAlD,GAAA4C,EAAApC,EAAAj9C,KAAAk1C,IAAAkK,KACAF,GAAA,EAAAQ,GAAAjB,IAAAiB,GAAAxC,EAAA,KAAA8B,GAAAU,EAAAT,GAAAS,IACAR,EAAA,EAAAF,EAAAC,GAAAV,EAAAC,GAAA,IACAW,GAAA,EAAAQ,GAAAlB,IAAAkB,GAAAzC,EAAA,KAAA4B,GAAAa,EAAAZ,GAAAY,IACAR,EAAA,EAAAL,EAAAC,GAAAR,EAAAC,GAAA,GAGA,GAAArB,GAAAF,EAAAj9C,KAAA+0C,IAAA+J,GACA1B,EAAAH,EAAAj9C,KAAAk1C,IAAA4J,GACAlC,EAAA0B,EAAAt+C,KAAA+0C,IAAAkK,GACApC,EAAAyB,EAAAt+C,KAAAk1C,IAAA+J,EAGA,IAAAlsC,EAAA0rC,GAAA,CACA,GAAAlB,GAAAN,EAAAj9C,KAAA+0C,IAAAgK,GACAvB,EAAAP,EAAAj9C,KAAAk1C,IAAA6J,GACAtB,EAAAa,EAAAt+C,KAAA+0C,IAAAiK,GACAtB,EAAAY,EAAAt+C,KAAAk1C,IAAA8J,EAGA,IAAAnmC,EAAA+mC,GAAA,CACA,GAAAjtC,GAAAusC,EAAAT,GAAA9B,GAAAQ,EAAAC,EAAAK,EAAAC,EAAAH,EAAAC,EAAAZ,EAAAC,IAAAD,EAAAC,GACAgD,EAAA1C,EAAAxqC,EAAA,GACAmtC,EAAA1C,EAAAzqC,EAAA,GACAotC,EAAAxC,EAAA5qC,EAAA,GACAqtC,EAAAxC,EAAA7qC,EAAA,GACAC,EAAA,EAAA5S,KAAAk1C,IAAAl1C,KAAAigD,MAAAJ,EAAAE,EAAAD,EAAAE,IAAAhgD,KAAAwvC,KAAAqQ,IAAAC,KAAA9/C,KAAAwvC,KAAAuQ,IAAAC,OAAA,GACAntC,EAAA7S,KAAAwvC,KAAA78B,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GACA6sC,GAAAx/C,KAAAF,IAAAiT,GAAAurC,EAAAzrC,IAAAD,EAAA,IACA6sC,EAAAz/C,KAAAF,IAAAiT,GAAAkqC,EAAApqC,IAAAD,EAAA,KAKAusC,EAAAV,GAGAgB,EAAAhB,IACAG,EAAA5B,GAAAS,EAAAC,EAAAP,EAAAC,EAAAH,EAAAwC,EAAAvC,GACA2B,EAAA7B,GAAAO,EAAAC,EAAAZ,EAAAC,EAAAI,EAAAwC,EAAAvC,GAEA/1C,EAAAw3C,OAAAC,EAAAT,GAAAS,EAAAzB,IAAAyB,EAAAR,GAAAQ,EAAAxB,KAGAqC,EAAA1sC,EAAA5L,EAAAk3C,IAAAO,EAAAT,GAAAS,EAAAR,GAAAqB,EAAAz/C,KAAAkgD,MAAAtB,EAAAxB,IAAAwB,EAAAzB,KAAAn9C,KAAAkgD,MAAArB,EAAAzB,IAAAyB,EAAA1B,MAAAD,IAIA/1C,EAAAk3C,IAAAO,EAAAT,GAAAS,EAAAR,GAAAqB,EAAAz/C,KAAAkgD,MAAAtB,EAAAxB,IAAAwB,EAAAzB,KAAAn9C,KAAAkgD,MAAAtB,EAAApB,IAAAoB,EAAArB,MAAAL,GACA/1C,EAAAk3C,IAAA,IAAApB,EAAAj9C,KAAAkgD,MAAAtB,EAAAR,GAAAQ,EAAApB,IAAAoB,EAAAT,GAAAS,EAAArB,KAAAv9C,KAAAkgD,MAAArB,EAAAT,GAAAS,EAAArB,IAAAqB,EAAAV,GAAAU,EAAAtB,MAAAL,GACA/1C,EAAAk3C,IAAAQ,EAAAV,GAAAU,EAAAT,GAAAqB,EAAAz/C,KAAAkgD,MAAArB,EAAArB,IAAAqB,EAAAtB,KAAAv9C,KAAAkgD,MAAArB,EAAAzB,IAAAyB,EAAA1B,MAAAD,MAKA/1C,EAAAw3C,OAAAxB,EAAAC,GAAAj2C,EAAAk3C,IAAA,IAAApB,EAAA6B,EAAAC,GAAA7B,IArBA/1C,EAAAw3C,OAAAxB,EAAAC,GAyBAkB,EAAAG,IAAAS,EAAAT,GAGAe,EAAAf,IACAG,EAAA5B,GAAAJ,EAAAC,EAAAU,EAAAC,EAAAc,GAAAkB,EAAAtC,GACA2B,EAAA7B,GAAAG,EAAAC,EAAAK,EAAAC,EAAAY,GAAAkB,EAAAtC,GAEA/1C,EAAAg5C,OAAAvB,EAAAT,GAAAS,EAAAzB,IAAAyB,EAAAR,GAAAQ,EAAAxB,KAGAoC,EAAAzsC,EAAA5L,EAAAk3C,IAAAO,EAAAT,GAAAS,EAAAR,GAAAoB,EAAAx/C,KAAAkgD,MAAAtB,EAAAxB,IAAAwB,EAAAzB,KAAAn9C,KAAAkgD,MAAArB,EAAAzB,IAAAyB,EAAA1B,MAAAD,IAIA/1C,EAAAk3C,IAAAO,EAAAT,GAAAS,EAAAR,GAAAoB,EAAAx/C,KAAAkgD,MAAAtB,EAAAxB,IAAAwB,EAAAzB,KAAAn9C,KAAAkgD,MAAAtB,EAAApB,IAAAoB,EAAArB,MAAAL,GACA/1C,EAAAk3C,IAAA,IAAAC,EAAAt+C,KAAAkgD,MAAAtB,EAAAR,GAAAQ,EAAApB,IAAAoB,EAAAT,GAAAS,EAAArB,KAAAv9C,KAAAkgD,MAAArB,EAAAT,GAAAS,EAAArB,IAAAqB,EAAAV,GAAAU,EAAAtB,KAAAL,GACA/1C,EAAAk3C,IAAAQ,EAAAV,GAAAU,EAAAT,GAAAoB,EAAAx/C,KAAAkgD,MAAArB,EAAArB,IAAAqB,EAAAtB,KAAAv9C,KAAAkgD,MAAArB,EAAAzB,IAAAyB,EAAA1B,MAAAD,KAKA/1C,EAAAk3C,IAAA,IAAAC,EAAAW,EAAAD,EAAA9B,GArBA/1C,EAAAg5C,OAAAvD,EAAAC,OA1FA11C,GAAAw3C,OAAA,IAoHA,IAFAx3C,EAAAi5C,YAEAtmD,EAAA,MAAAqN,GAAA,KAAArN,EAAA,SA7IA,GAAAkiD,GAAAD,GACAG,EAAAD,GACAsD,EAAAzD,GAAA,GACAwD,EAAA,KACAlD,EAAAD,GACAG,EAAAD,GACAG,EAAAD,GACAp1C,EAAA,IA+KA,OAtCAk3C,GAAA5H,SAAA,WACA,GAAA/xC,KAAAs3C,EAAA3vC,MAAA7c,KAAAX,aAAAqtD,EAAA7vC,MAAA7c,KAAAX,YAAA,EACAsB,IAAAisD,EAAA/vC,MAAA7c,KAAAX,aAAAytD,EAAAjwC,MAAA7c,KAAAX,YAAA,EAAA+wD,GAAA,CACA,QAAA5/C,KAAA+0C,IAAA5kD,GAAAuU,EAAA1E,KAAAk1C,IAAA/kD,GAAAuU,IAGA25C,EAAArC,YAAA,SAAA7K,GACA,MAAAtiD,WAAAC,QAAAktD,EAAA,mBAAA7K,KAAA2K,IAAA3K,GAAAkN,GAAArC,GAGAqC,EAAAnC,YAAA,SAAA/K,GACA,MAAAtiD,WAAAC,QAAAotD,EAAA,mBAAA/K,KAAA2K,IAAA3K,GAAAkN,GAAAnC,GAGAmC,EAAAkB,aAAA,SAAApO,GACA,MAAAtiD,WAAAC,QAAAywD,EAAA,mBAAApO,KAAA2K,IAAA3K,GAAAkN,GAAAkB,GAGAlB,EAAAiB,UAAA,SAAAnO,GACA,MAAAtiD,WAAAC,QAAAwwD,EAAA,MAAAnO,EAAA,wBAAAA,KAAA2K,IAAA3K,GAAAkN,GAAAiB,GAGAjB,EAAAjC,WAAA,SAAAjL,GACA,MAAAtiD,WAAAC,QAAAstD,EAAA,mBAAAjL,KAAA2K,IAAA3K,GAAAkN,GAAAjC,GAGAiC,EAAA/B,SAAA,SAAAnL,GACA,MAAAtiD,WAAAC,QAAAwtD,EAAA,mBAAAnL,KAAA2K,IAAA3K,GAAAkN,GAAA/B,GAGA+B,EAAA7B,SAAA,SAAArL,GACA,MAAAtiD,WAAAC,QAAA0tD,EAAA,mBAAArL,KAAA2K,IAAA3K,GAAAkN,GAAA7B,GAGA6B,EAAAl3C,QAAA,SAAAgqC,GACA,MAAAtiD,WAAAC,QAAAqY,EAAA,MAAAgqC,EAAA,KAAAA,EAAAkN,GAAAl3C,GAGAk3C,EAGA,QAAAgC,IAAAl5C,GACA3X,KAAA8wD,SAAAn5C,EA2BA,QAAAo5C,IAAAp5C,GACA,UAAAk5C,IAAAl5C,GAGA,QAAAxC,IAAA1X,GACA,MAAAA,GAAA,GAGA,QAAA8Z,IAAA9Z,GACA,MAAAA,GAAA,GAGA,QAAA8G,MAQA,QAAAA,GAAAoC,GACA,GAAAtK,GAEAK,EAEA4N,EAHAnN,EAAAwJ,EAAArH,OAEA0xD,GAAA,CAKA,KAFA,MAAAr5C,IAAAlD,EAAAw8C,EAAA3mD,EAAAk+C,OAEAnsD,EAAA,EAAeA,GAAAc,IAAQd,IACvBA,EAAAc,GAAA+zD,EAAAx0D,EAAAiK,EAAAtK,KAAAsK,MAAAqqD,KACAA,MAAAv8C,EAAA08C,YACA18C,EAAA28C,WAEAJ,GAAAv8C,EAAAozC,OAAAwJ,EAAA30D,EAAAL,EAAAsK,IAAA2qD,EAAA50D,EAAAL,EAAAsK,GAGA,IAAA2D,EAAA,MAAAmK,GAAA,KAAAnK,EAAA,SAxBA,GAAA+mD,GAAAl8C,GACAm8C,EAAA/5C,GACA25C,EAAA5E,IAAA,GACA30C,EAAA,KACAs5C,EAAAF,GACAt8C,EAAA,IA0CA,OApBAlQ,GAAA4Q,EAAA,SAAAwsC,GACA,MAAAtiD,WAAAC,QAAA+xD,EAAA,mBAAA1P,KAAA2K,IAAA3K,GAAAp9C,GAAA8sD,GAGA9sD,EAAAgT,EAAA,SAAAoqC,GACA,MAAAtiD,WAAAC,QAAAgyD,EAAA,mBAAA3P,KAAA2K,IAAA3K,GAAAp9C,GAAA+sD,GAGA/sD,EAAA2sD,QAAA,SAAAvP,GACA,MAAAtiD,WAAAC,QAAA4xD,EAAA,mBAAAvP,KAAA2K,KAAA3K,GAAAp9C,GAAA2sD,GAGA3sD,EAAA0sD,MAAA,SAAAtP,GACA,MAAAtiD,WAAAC,QAAA2xD,EAAAtP,EAAA,MAAAhqC,IAAAlD,EAAAw8C,EAAAt5C,IAAApT,GAAA0sD,GAGA1sD,EAAAoT,QAAA,SAAAgqC,GACA,MAAAtiD,WAAAC,QAAA,MAAAqiD,EAAAhqC,EAAAlD,EAAA,KAAAA,EAAAw8C,EAAAt5C,EAAAgqC,GAAAp9C,GAAAoT,GAGApT,EAGA,QAAAgtD,MAUA,QAAApY,GAAAxyC,GACA,GAAAtK,GACAmV,EACA2G,EAEAzb,EAEA4N,EAHAnN,EAAAwJ,EAAArH,OAEA0xD,GAAA,EAEAQ,EAAA,GAAA9pD,OAAAvK,GACAs0D,EAAA,GAAA/pD,OAAAvK,EAIA,KAFA,MAAAwa,IAAAlD,EAAAw8C,EAAA3mD,EAAAk+C,OAEAnsD,EAAA,EAAeA,GAAAc,IAAQd,EAAA,CACvB,KAAAA,EAAAc,GAAA+zD,EAAAx0D,EAAAiK,EAAAtK,KAAAsK,MAAAqqD,EACA,GAAAA,KACAx/C,EAAAnV,EACAoY,EAAAi9C,YACAj9C,EAAA08C,gBACS,CAGT,IAFA18C,EAAA28C,UACA38C,EAAA08C,YACAh5C,EAAA9b,EAAA,EAAyB8b,GAAA3G,IAAQ2G,EACjC1D,EAAAozC,MAAA2J,EAAAr5C,GAAAs5C,EAAAt5C,GAEA1D,GAAA28C,UACA38C,EAAAk9C,UAGAX,IACAQ,EAAAn1D,IAAA+kD,EAAA1kD,EAAAL,EAAAsK,GAAA8qD,EAAAp1D,IAAA0rD,EAAArrD,EAAAL,EAAAsK,GACA8N,EAAAozC,MAAAxG,KAAA3kD,EAAAL,EAAAsK,GAAA6qD,EAAAn1D,GAAAyrD,KAAAprD,EAAAL,EAAAsK,GAAA8qD,EAAAp1D,KAIA,GAAAiO,EAAA,MAAAmK,GAAA,KAAAnK,EAAA,SAGA,QAAAsnD,KACA,MAAArtD,MAAA2sD,WAAAD,SAAAt5C,WAhDA,GAAAypC,GAAAjsC,GACAksC,EAAA,KACA0G,EAAAuE,GAAA,GACAxE,EAAAvwC,GACA25C,EAAA5E,IAAA,GACA30C,EAAA,KACAs5C,EAAAF,GACAt8C,EAAA,IA6FA,OAjDA0kC,GAAAhkC,EAAA,SAAAwsC,GACA,MAAAtiD,WAAAC,QAAA8hD,EAAA,mBAAAO,KAAA2K,IAAA3K,GAAAN,EAAA,KAAAlI,GAAAiI,GAGAjI,EAAAiI,GAAA,SAAAO,GACA,MAAAtiD,WAAAC,QAAA8hD,EAAA,mBAAAO,KAAA2K,IAAA3K,GAAAxI,GAAAiI,GAGAjI,EAAAkI,GAAA,SAAAM,GACA,MAAAtiD,WAAAC,QAAA+hD,EAAA,MAAAM,EAAA,wBAAAA,KAAA2K,IAAA3K,GAAAxI,GAAAkI,GAGAlI,EAAA5hC,EAAA,SAAAoqC,GACA,MAAAtiD,WAAAC,QAAAyoD,EAAA,mBAAApG,KAAA2K,IAAA3K,GAAAmG,EAAA,KAAA3O,GAAA4O,GAGA5O,EAAA4O,GAAA,SAAApG,GACA,MAAAtiD,WAAAC,QAAAyoD,EAAA,mBAAApG,KAAA2K,IAAA3K,GAAAxI,GAAA4O,GAGA5O,EAAA2O,GAAA,SAAAnG,GACA,MAAAtiD,WAAAC,QAAAwoD,EAAA,MAAAnG,EAAA,wBAAAA,KAAA2K,IAAA3K,GAAAxI,GAAA2O,GAGA3O,EAAA0Y,OACA1Y,EAAA2Y,OAAA,WACA,MAAAF,KAAAz8C,EAAAisC,GAAA7pC,EAAAwwC,IAGA5O,EAAA4Y,OAAA,WACA,MAAAH,KAAAz8C,EAAAisC,GAAA7pC,EAAAuwC,IAGA3O,EAAA6Y,OAAA,WACA,MAAAJ,KAAAz8C,EAAAksC,GAAA9pC,EAAAwwC,IAGA5O,EAAA+X,QAAA,SAAAvP,GACA,MAAAtiD,WAAAC,QAAA4xD,EAAA,mBAAAvP,KAAA2K,KAAA3K,GAAAxI,GAAA+X,GAGA/X,EAAA8X,MAAA,SAAAtP,GACA,MAAAtiD,WAAAC,QAAA2xD,EAAAtP,EAAA,MAAAhqC,IAAAlD,EAAAw8C,EAAAt5C,IAAAwhC,GAAA8X,GAGA9X,EAAAxhC,QAAA,SAAAgqC,GACA,MAAAtiD,WAAAC,QAAA,MAAAqiD,EAAAhqC,EAAAlD,EAAA,KAAAA,EAAAw8C,EAAAt5C,EAAAgqC,GAAAxI,GAAAxhC,GAGAwhC,EAGA,QAAA8Y,IAAAtxD,EAAAE,GACA,MAAAA,GAAAF,GAAA,EAAAE,EAAAF,EAAA,EAAAE,GAAAF,EAAA,EAAAy+C,IAGA,QAAA8S,IAAAx1D,GACA,MAAAA,GAGA,QAAAy1D,MAQA,QAAAA,GAAAxrD,GACA,GAAAtK,GAEAmV,EACA2G,EAMA62C,EAGA79C,EAXAhU,EAAAwJ,EAAArH,OAGAyjD,EAAA,EACA39C,EAAA,GAAAsC,OAAAvK,GACAi1D,EAAA,GAAA1qD,OAAAvK,GACA4xD,GAAAnC,EAAA/vC,MAAA7c,KAAAX,WACAgqB,EAAA7Y,KAAAF,IAAA4+C,GAAA1+C,KAAAJ,KAAA8+C,GAAApC,EAAAjwC,MAAA7c,KAAAX,WAAA0vD,IAEAtxD,EAAA+S,KAAAF,IAAAE,KAAAgwC,IAAAn3B,GAAAlsB,EAAA6vD,EAAAnwC,MAAA7c,KAAAX,YACA4c,EAAAxe,GAAA4rB,EAAA,OAGA,KAAAhtB,EAAA,EAAeA,EAAAc,IAAOd,GACtB8U,EAAAihD,EAAAhtD,EAAA/I,OAAAsG,EAAAgE,EAAAtK,KAAAsK,IAAA,IACAo8C,GAAA5xC,EASA,KAJA,MAAAuyC,EAAAt+C,EAAA08C,KAAA,SAAAzlD,EAAAmV,GAAuD,MAAAkyC,GAAA0O,EAAA/1D,GAAA+1D,EAAA5gD,MACvD,MAAAswC,GAAA18C,EAAA08C,KAAA,SAAAzlD,EAAAmV,GAAsD,MAAAswC,GAAAn7C,EAAAtK,GAAAsK,EAAA6K,MAGtDnV,EAAA,EAAA8b,EAAA4qC,GAAA15B,EAAAlsB,EAAA8e,GAAA8mC,EAAA,EAAkD1mD,EAAAc,IAAOd,EAAA0yD,EAAAC,EACzDx9C,EAAApM,EAAA/I,GAAA8U,EAAAihD,EAAA5gD,GAAAw9C,EAAAD,GAAA59C,EAAA,EAAAA,EAAAgH,EAAA,GAAA8D,EAAAm2C,EAAA5gD,IACA7K,OAAA6K,GACApM,MAAA/I,EACAsG,MAAAwO,EACAy7C,WAAAmC,EACAjC,SAAAkC,EACAhC,SAAAvvD,EAIA,OAAA20D,GA5CA,GAAAzvD,GAAAuvD,GACAxO,EAAAuO,GACAnQ,EAAA,KACA8K,EAAAN,GAAA,GACAQ,EAAAR,GAAA4C,IACAlC,EAAAV,GAAA,EAkEA,OAxBA6F,GAAAxvD,MAAA,SAAAg/C,GACA,MAAAtiD,WAAAC,QAAAqD,EAAA,mBAAAg/C,KAAA2K,IAAA3K,GAAAwQ,GAAAxvD,GAGAwvD,EAAAzO,WAAA,SAAA/B,GACA,MAAAtiD,WAAAC,QAAAokD,EAAA/B,EAAAG,EAAA,KAAAqQ,GAAAzO,GAGAyO,EAAArQ,KAAA,SAAAH,GACA,MAAAtiD,WAAAC,QAAAwiD,EAAAH,EAAA+B,EAAA,KAAAyO,GAAArQ,GAGAqQ,EAAAvF,WAAA,SAAAjL,GACA,MAAAtiD,WAAAC,QAAAstD,EAAA,mBAAAjL,KAAA2K,IAAA3K,GAAAwQ,GAAAvF,GAGAuF,EAAArF,SAAA,SAAAnL,GACA,MAAAtiD,WAAAC,QAAAwtD,EAAA,mBAAAnL,KAAA2K,IAAA3K,GAAAwQ,GAAArF,GAGAqF,EAAAnF,SAAA,SAAArL,GACA,MAAAtiD,WAAAC,QAAA0tD,EAAA,mBAAArL,KAAA2K,IAAA3K,GAAAwQ,GAAAnF,GAGAmF,EAKA,QAAAE,IAAApB,GACAjxD,KAAAsyD,OAAArB,EAqBA,QAAAsB,IAAAtB,GAEA,QAAAuB,GAAA76C,GACA,UAAA06C,IAAApB,EAAAt5C,IAKA,MAFA66C,GAAAF,OAAArB,EAEAuB,EAGA,QAAAC,IAAAn2D,GACA,GAAAG,GAAAH,EAAA20D,KASA,OAPA30D,GAAAo2D,MAAAp2D,EAAA6Y,QAAA7Y,GAAA6Y,EACA7Y,EAAAutD,OAAAvtD,EAAAib,QAAAjb,GAAAib,EAEAjb,EAAA20D,MAAA,SAAAtP,GACA,MAAAtiD,WAAAC,OAAA7C,EAAA81D,GAAA5Q,IAAAllD,IAAA61D,QAGAh2D,EAGA,QAAAq2D,MACA,MAAAF,IAAAluD,KAAA0sD,MAAA2B,KAGA,QAAAC,MACA,GAAAlyD,GAAA4wD,KAAAN,MAAA2B,IACAn2D,EAAAkE,EAAAswD,MACA7P,EAAAzgD,EAAAkxD,OACAxQ,EAAA1gD,EAAAqxD,OACAjK,EAAApnD,EAAAmxD,OACAhK,EAAAnnD,EAAAoxD,MAiBA,OAfApxD,GAAA+xD,MAAA/xD,EAAAwU,QAAAxU,GAAAwU,EACAxU,EAAAisD,WAAAjsD,EAAAygD,SAAAzgD,GAAAygD,GACAzgD,EAAAmsD,SAAAnsD,EAAA0gD,SAAA1gD,GAAA0gD,GACA1gD,EAAAkpD,OAAAlpD,EAAA4W,QAAA5W,GAAA4W,EACA5W,EAAA6rD,YAAA7rD,EAAAonD,SAAApnD,GAAAonD,GACApnD,EAAA+rD,YAAA/rD,EAAAmnD,SAAAnnD,GAAAmnD,GACAnnD,EAAAmyD,eAAA,WAAiC,MAAAL,IAAArR,YAA2BzgD,GAAAkxD,OAC5DlxD,EAAAoyD,aAAA,WAA+B,MAAAN,IAAApR,YAA2B1gD,GAAAqxD,OAC1DrxD,EAAAqyD,gBAAA,WAAkC,MAAAP,IAAA1K,YAA2BpnD,GAAAmxD,OAC7DnxD,EAAAsyD,gBAAA,WAAkC,MAAAR,IAAA3K,YAA2BnnD,GAAAoxD,OAE7DpxD,EAAAswD,MAAA,SAAAtP,GACA,MAAAtiD,WAAAC,OAAA7C,EAAA81D,GAAA5Q,IAAAllD,IAAA61D,QAGA3xD,EA0HA,QAAAuyD,MAKA,QAAAA,KACA,GAAA5oD,EAGA,IAFAqN,MAAArN,EAAAk+C,MACA98C,EAAAmR,MAAA7c,KAAAX,WAAA8zD,KAAAx7C,GAAA3G,EAAA6L,MAAA7c,KAAAX,YACAiL,EAAA,MAAAqN,GAAA,KAAArN,EAAA,SARA,GAAAoB,GAAA4gD,GAAA8G,IACApiD,EAAAs7C,GAAA,IACA30C,EAAA,IAqBA,OAZAu7C,GAAAxnD,KAAA,SAAAi2C,GACA,MAAAtiD,WAAAC,QAAAoM,EAAA,mBAAAi2C,KAAA2K,GAAA3K,GAAAuR,GAAAxnD,GAGAwnD,EAAAliD,KAAA,SAAA2wC,GACA,MAAAtiD,WAAAC,QAAA0R,EAAA,mBAAA2wC,KAAA2K,IAAA3K,GAAAuR,GAAAliD,GAGAkiD,EAAAv7C,QAAA,SAAAgqC,GACA,MAAAtiD,WAAAC,QAAAqY,EAAA,MAAAgqC,EAAA,KAAAA,EAAAuR,GAAAv7C,GAGAu7C,EAGA,QAAAhzD,OAEA,QAAA2nD,IAAAwL,EAAAl+C,EAAAoC,GACA87C,EAAAvC,SAAAwC,eACA,EAAAD,EAAAjL,IAAAiL,EAAA/K,KAAA,GACA,EAAA+K,EAAAhL,IAAAgL,EAAA9K,KAAA,GACA8K,EAAAjL,IAAA,EAAAiL,EAAA/K,KAAA,GACA+K,EAAAhL,IAAA,EAAAgL,EAAA9K,KAAA,GACA8K,EAAAjL,IAAA,EAAAiL,EAAA/K,IAAAnzC,GAAA,GACAk+C,EAAAhL,IAAA,EAAAgL,EAAA9K,IAAAhxC,GAAA,GAIA,QAAAg8C,IAAA57C,GACA3X,KAAA8wD,SAAAn5C,EAoCA,QAAA67C,IAAA77C,GACA,UAAA47C,IAAA57C,GAGA,QAAA87C,IAAA97C,GACA3X,KAAA8wD,SAAAn5C,EA6CA,QAAA+7C,IAAA/7C,GACA,UAAA87C,IAAA97C,GAGA,QAAAg8C,IAAAh8C,GACA3X,KAAA8wD,SAAAn5C,EAiCA,QAAAi8C,IAAAj8C,GACA,UAAAg8C,IAAAh8C,GAGA,QAAAk8C,IAAAl8C,EAAAm8C,GACA9zD,KAAA+zD,OAAA,GAAAR,IAAA57C,GACA3X,KAAAg0D,MAAAF,EAqDA,QAAAG,IAAAZ,EAAAl+C,EAAAoC,GACA87C,EAAAvC,SAAAwC,cACAD,EAAA/K,IAAA+K,EAAAa,IAAAb,EAAAc,IAAAd,EAAAjL,KACAiL,EAAA9K,IAAA8K,EAAAa,IAAAb,EAAAe,IAAAf,EAAAhL,KACAgL,EAAAc,IAAAd,EAAAa,IAAAb,EAAA/K,IAAAnzC,GACAk+C,EAAAe,IAAAf,EAAAa,IAAAb,EAAA9K,IAAAhxC,GACA87C,EAAAc,IACAd,EAAAe,KAIA,QAAAC,IAAA18C,EAAA28C,GACAt0D,KAAA8wD,SAAAn5C,EACA3X,KAAAk0D,IAAA,EAAAI,GAAA,EAiDA,QAAAC,IAAA58C,EAAA28C,GACAt0D,KAAA8wD,SAAAn5C,EACA3X,KAAAk0D,IAAA,EAAAI,GAAA,EAyDA,QAAAE,IAAA78C,EAAA28C,GACAt0D,KAAA8wD,SAAAn5C,EACA3X,KAAAk0D,IAAA,EAAAI,GAAA,EA8CA,QAAAG,IAAApB,EAAAl+C,EAAAoC,GACA,GAAA8pC,GAAAgS,EAAA/K,IACAR,EAAAuL,EAAA9K,IACAuB,EAAAuJ,EAAAc,IACApK,EAAAsJ,EAAAe,GAEA,IAAAf,EAAAqB,OAAAzF,GAAA,CACA,GAAAtuD,GAAA,EAAA0yD,EAAAsB,QAAA,EAAAtB,EAAAqB,OAAArB,EAAAuB,OAAAvB,EAAAwB,QACA13D,EAAA,EAAAk2D,EAAAqB,QAAArB,EAAAqB,OAAArB,EAAAuB,OACAvT,MAAA1gD,EAAA0yD,EAAAjL,IAAAiL,EAAAwB,QAAAxB,EAAAc,IAAAd,EAAAsB,SAAAx3D,EACA2qD,KAAAnnD,EAAA0yD,EAAAhL,IAAAgL,EAAAwB,QAAAxB,EAAAe,IAAAf,EAAAsB,SAAAx3D,EAGA,GAAAk2D,EAAAyB,OAAA7F,GAAA,CACA,GAAApuD,GAAA,EAAAwyD,EAAA0B,QAAA,EAAA1B,EAAAyB,OAAAzB,EAAAuB,OAAAvB,EAAAwB,QACAr4D,EAAA,EAAA62D,EAAAyB,QAAAzB,EAAAyB,OAAAzB,EAAAuB,OACA9K,MAAAjpD,EAAAwyD,EAAA/K,IAAA+K,EAAA0B,QAAA5/C,EAAAk+C,EAAAwB,SAAAr4D,EACAutD,KAAAlpD,EAAAwyD,EAAA9K,IAAA8K,EAAA0B,QAAAx9C,EAAA87C,EAAAwB,SAAAr4D,EAGA62D,EAAAvC,SAAAwC,cAAAjS,EAAAyG,EAAAgC,EAAAC,EAAAsJ,EAAAc,IAAAd,EAAAe,KAGA,QAAAY,IAAAr9C,EAAAs9C,GACAj1D,KAAA8wD,SAAAn5C,EACA3X,KAAAk1D,OAAAD,EA6DA,QAAAE,IAAAx9C,EAAAs9C,GACAj1D,KAAA8wD,SAAAn5C,EACA3X,KAAAk1D,OAAAD,EAqEA,QAAAG,IAAAz9C,EAAAs9C,GACAj1D,KAAA8wD,SAAAn5C,EACA3X,KAAAk1D,OAAAD,EA0DA,QAAAI,IAAA19C,GACA3X,KAAA8wD,SAAAn5C,EAmBA,QAAA29C,IAAA39C,GACA,UAAA09C,IAAA19C,GAGA,QAAA49C,IAAApgD,GACA,MAAAA,GAAA,OAOA,QAAAqgD,IAAAnC,EAAAvJ,EAAAC,GACA,GAAA0L,GAAApC,EAAA/K,IAAA+K,EAAAjL,IACAsN,EAAA5L,EAAAuJ,EAAA/K,IACAqN,GAAAtC,EAAA9K,IAAA8K,EAAAhL,MAAAoN,GAAAC,EAAA,OACAE,GAAA7L,EAAAsJ,EAAA9K,MAAAmN,GAAAD,EAAA,OACAh4D,GAAAk4D,EAAAD,EAAAE,EAAAH,MAAAC,EACA,QAAAH,GAAAI,GAAAJ,GAAAK,IAAAplD,KAAAF,IAAAE,KAAAgwC,IAAAmV,GAAAnlD,KAAAgwC,IAAAoV,GAAA,GAAAplD,KAAAgwC,IAAA/iD,KAAA,EAIA,QAAAo4D,IAAAxC,EAAA35C,GACA,GAAAlB,GAAA66C,EAAA/K,IAAA+K,EAAAjL,GACA,OAAA5vC,IAAA,GAAA66C,EAAA9K,IAAA8K,EAAAhL,KAAA7vC,EAAAkB,GAAA,EAAAA,EAMA,QAAAo8C,IAAAzC,EAAAjE,EAAAC,GACA,GAAAjO,GAAAiS,EAAAjL,IACAL,EAAAsL,EAAAhL,IACAhH,EAAAgS,EAAA/K,IACAR,EAAAuL,EAAA9K,IACA4B,GAAA9I,EAAAD,GAAA,CACAiS,GAAAvC,SAAAwC,cAAAlS,EAAA+I,EAAApC,EAAAoC,EAAAiF,EAAA/N,EAAA8I,EAAArC,EAAAqC,EAAAkF,EAAAhO,EAAAyG,GAGA,QAAAiO,IAAAp+C,GACA3X,KAAA8wD,SAAAn5C,EA0CA,QAAAq+C,IAAAr+C,GACA3X,KAAA8wD,SAAA,GAAAmF,IAAAt+C,GAOA,QAAAs+C,IAAAt+C,GACA3X,KAAA8wD,SAAAn5C,EAUA,QAAAu+C,IAAAv+C,GACA,UAAAo+C,IAAAp+C,GAGA,QAAAw+C,IAAAx+C,GACA,UAAAq+C,IAAAr+C,GAGA,QAAAy+C,IAAAz+C,GACA3X,KAAA8wD,SAAAn5C,EA2CA,QAAA0+C,IAAAlhD,GACA,GAAA9Y,GAEAG,EADAW,EAAAgY,EAAA7V,OAAA,EAEAqB,EAAA,GAAA+G,OAAAvK,GACA0D,EAAA,GAAA6G,OAAAvK,GACA+X,EAAA,GAAAxN,OAAAvK,EAEA,KADAwD,EAAA,KAAAE,EAAA,KAAAqU,EAAA,GAAAC,EAAA,KAAAA,EAAA,GACA9Y,EAAA,EAAaA,EAAAc,EAAA,IAAWd,EAAAsE,EAAAtE,GAAA,EAAAwE,EAAAxE,GAAA,EAAA6Y,EAAA7Y,GAAA,EAAA8Y,EAAA9Y,GAAA,EAAA8Y,EAAA9Y,EAAA,EAExB,KADAsE,EAAAxD,EAAA,KAAA0D,EAAA1D,EAAA,KAAA+X,EAAA/X,EAAA,KAAAgY,EAAAhY,EAAA,GAAAgY,EAAAhY,GACAd,EAAA,EAAaA,EAAAc,IAAOd,EAAAG,EAAAmE,EAAAtE,GAAAwE,EAAAxE,EAAA,GAAAwE,EAAAxE,IAAAG,EAAA0Y,EAAA7Y,IAAAG,EAAA0Y,EAAA7Y,EAAA,EAEpB,KADAsE,EAAAxD,EAAA,GAAA+X,EAAA/X,EAAA,GAAA0D,EAAA1D,EAAA,GACAd,EAAAc,EAAA,EAAiBd,GAAA,IAAQA,EAAAsE,EAAAtE,IAAA6Y,EAAA7Y,GAAAsE,EAAAtE,EAAA,IAAAwE,EAAAxE,EAEzB,KADAwE,EAAA1D,EAAA,IAAAgY,EAAAhY,GAAAwD,EAAAxD,EAAA,MACAd,EAAA,EAAaA,EAAAc,EAAA,IAAWd,EAAAwE,EAAAxE,GAAA,EAAA8Y,EAAA9Y,EAAA,GAAAsE,EAAAtE,EAAA,EACxB,QAAAsE,EAAAE,GAGA,QAAAy1D,IAAA3+C,GACA,UAAAy+C,IAAAz+C,GAGA,QAAA4+C,IAAA5+C,EAAA+B,GACA1Z,KAAA8wD,SAAAn5C,EACA3X,KAAAw2D,GAAA98C,EAwCA,QAAAyhB,IAAAxjB,GACA,UAAA4+C,IAAA5+C,EAAA,IAGA,QAAA8+C,IAAA9+C,GACA,UAAA4+C,IAAA5+C,EAAA,GAGA,QAAA++C,IAAA/+C,GACA,UAAA4+C,IAAA5+C,EAAA,GAKA,QAAAg/C,IAAAC,EAAA3e,GACA,IAAA96C,EAAAy5D,EAAAt3D,QAAA,EACA,OAAAq2D,GAAAx4D,EAAAd,EAAA,EAAAu5D,EAAAgB,EAAA3e,EAAA,IAAAz7C,EAAAo5D,EAAAt2D,OAA8DjD,EAAAc,IAAOd,EAAA,CACrEs5D,EAAAC,IAAAgB,EAAA3e,EAAA57C,GACA,QAAAmV,GAAA,EAAmBA,EAAAhV,IAAOgV,EAC1BokD,EAAApkD,GAAA,IAAAokD,EAAApkD,GAAA,GAAAipB,MAAAk7B,EAAAnkD,GAAA,IAAAmkD,EAAAnkD,GAAA,GAAAmkD,EAAAnkD,GAAA,IAKA,QAAAqlD,IAAAD,GAEA,IADA,GAAAz5D,GAAAy5D,EAAAt3D,OAAAzC,EAAA,GAAA6K,OAAAvK,KACAA,GAAA,GAAAN,EAAAM,IACA,OAAAN,GAGA,QAAAi6D,IAAAp6D,EAAA6C,GACA,MAAA7C,GAAA6C,GAGA,QAAA+E,MAMA,QAAAA,GAAAqC,GACA,GACAtK,GAIA06D,EALAC,EAAAl4D,EAAA+d,MAAA7c,KAAAX,WAEA7C,EAAAmK,EAAArH,OACAnC,EAAA65D,EAAA13D,OACA23D,EAAA,GAAAvvD,OAAAvK,EAGA,KAAAd,EAAA,EAAeA,EAAAc,IAAOd,EAAA,CACtB,OAAA66D,GAAAC,EAAAH,EAAA36D,GAAA+6D,EAAAH,EAAA56D,GAAA,GAAAqL,OAAAlL,GAAAgV,EAAA,EAAiEA,EAAAhV,IAAOgV,EACxE4lD,EAAA5lD,GAAA0lD,GAAA,GAAAv0D,EAAAgE,EAAA6K,GAAA2lD,EAAA3lD,EAAA7K,IACAuwD,EAAAvwD,OAAA6K,EAEA4lD,GAAA73D,IAAA43D,EAGA,IAAA96D,EAAA,EAAA06D,EAAA9e,EAAAgf,GAA+B56D,EAAAc,IAAOd,EACtC46D,EAAAF,EAAA16D,IAAA+I,MAAA/I,CAIA,OADAysB,GAAAmuC,EAAAF,GACAE,EA1BA,GAAAn4D,GAAAwtD,OACArU,EAAA4e,GACA/tC,EAAA6tC,GACAh0D,EAAAm0D,EA0CA,OAhBAxyD,GAAAxF,KAAA,SAAA6iD,GACA,MAAAtiD,WAAAC,QAAAR,EAAA,mBAAA6iD,KAAA2K,GAAA+K,GAAA96D,KAAAolD,IAAAr9C,GAAAxF,GAGAwF,EAAA3B,MAAA,SAAAg/C,GACA,MAAAtiD,WAAAC,QAAAqD,EAAA,mBAAAg/C,KAAA2K,IAAA3K,GAAAr9C,GAAA3B,GAGA2B,EAAA2zC,MAAA,SAAA0J,GACA,MAAAtiD,WAAAC,QAAA24C,EAAA,MAAA0J,EAAAkV,GAAA,mBAAAlV,KAAA2K,GAAA+K,GAAA96D,KAAAolD,IAAAr9C,GAAA2zC,GAGA3zC,EAAAwkB,OAAA,SAAA64B,GACA,MAAAtiD,WAAAC,QAAAwpB,EAAA,MAAA64B,EAAAgV,GAAAhV,EAAAr9C,GAAAwkB,GAGAxkB,EAGA,QAAAgzD,IAAAV,EAAA3e,GACA,IAAA96C,EAAAy5D,EAAAt3D,QAAA,GACA,OAAAjD,GAAAc,EAAAoa,EAAA/F,EAAA,EAAAhV,EAAAo6D,EAAA,GAAAt3D,OAAgDkS,EAAAhV,IAAOgV,EAAA,CACvD,IAAA+F,EAAAlb,EAAA,EAAmBA,EAAAc,IAAOd,EAAAkb,GAAAq/C,EAAAv6D,GAAAmV,GAAA,KAC1B,IAAA+F,EAAA,IAAAlb,EAAA,EAAsBA,EAAAc,IAAOd,EAAAu6D,EAAAv6D,GAAAmV,GAAA,IAAA+F,EAE7Bo/C,GAAAC,EAAA3e,IAGA,QAAAsf,IAAAX,EAAA3e,GACA,IAAA96C,EAAAy5D,EAAAt3D,QAAA,GACA,OAAAnC,GAAAqU,EAAA,EAAAmkD,EAAAiB,EAAA3e,EAAA,IAAAz7C,EAAAm5D,EAAAr2D,OAA0DkS,EAAAhV,IAAOgV,EAAA,CACjE,OAAAnV,GAAA,EAAAkb,EAAA,EAA0Blb,EAAAc,IAAOd,EAAAkb,GAAAq/C,EAAAv6D,GAAAmV,GAAA,KACjCmkD,GAAAnkD,GAAA,IAAAmkD,EAAAnkD,GAAA,IAAA+F,EAAA,EAEAo/C,GAAAC,EAAA3e,IAGA,QAAAuf,IAAAZ,EAAA3e,GACA,IAAA96C,EAAAy5D,EAAAt3D,QAAA,IAAA9C,GAAAm5D,EAAAiB,EAAA3e,EAAA,KAAA34C,QAAA,GACA,OAAAq2D,GAAAn5D,EAAAW,EAAAoa,EAAA,EAAA/F,EAAA,EAAkCA,EAAAhV,IAAOgV,EAAA,CACzC,OAAAnV,GAAA,EAAAu5D,EAAA,EAAA6B,EAAA,EAAmCp7D,EAAAc,IAAOd,EAAA,CAK1C,OAJA+6D,GAAAR,EAAA3e,EAAA57C,IACAq7D,EAAAN,EAAA5lD,GAAA,MACAmmD,EAAAP,EAAA5lD,EAAA,SACAomD,GAAAF,EAAAC,GAAA,EACAx/C,EAAA,EAAqBA,EAAA9b,IAAO8b,EAAA,CAC5B,GAAA0/C,GAAAjB,EAAA3e,EAAA9/B,GAGAy/C,KAFAC,EAAArmD,GAAA,QACAqmD,EAAArmD,EAAA,UAGAokD,GAAA8B,EAAAD,GAAAG,EAAAF,EAEA/B,EAAAnkD,EAAA,OAAAmkD,EAAAnkD,EAAA,MAAA+F,EACAq+C,IAAAr+C,GAAAkgD,EAAA7B,GAEAD,EAAAnkD,EAAA,OAAAmkD,EAAAnkD,EAAA,MAAA+F,EACAo/C,GAAAC,EAAA3e,IAGA,QAAA6f,IAAAlB,GACA,GAAAmB,GAAAnB,EAAAp4D,IAAAw5D,GACA,OAAAnB,IAAAD,GAAA9U,KAAA,SAAAnhD,EAAAE,GAA6C,MAAAk3D,GAAAp3D,GAAAo3D,EAAAl3D,KAG7C,QAAAm3D,IAAApB,GAEA,IADA,GAAAzlD,GAAAzT,EAAA,EAAArB,GAAA,EAAAc,EAAAy5D,EAAAt3D,SACAjD,EAAAc,IAAAgU,GAAAylD,EAAAv6D,GAAA,MAAAqB,GAAAyT,EACA,OAAAzT,GAGA,QAAAu6D,IAAArB,GACA,MAAAkB,IAAAlB,GAAAsB,UAGA,QAAAC,IAAAvB,GACA,GACAv6D,GACAmV,EAFArU,EAAAy5D,EAAAt3D,OAGAy4D,EAAAnB,EAAAp4D,IAAAw5D,IACA/f,EAAA4e,GAAAD,GAAA9U,KAAA,SAAAnhD,EAAAE,GAAkD,MAAAk3D,GAAAl3D,GAAAk3D,EAAAp3D,KAClD86C,EAAA,EACA0N,EAAA,EACAiP,KACAC,IAEA,KAAAh8D,EAAA,EAAaA,EAAAc,IAAOd,EACpBmV,EAAAymC,EAAA57C,GACAo/C,EAAA0N,GACA1N,GAAAsc,EAAAvmD,GACA4mD,EAAAp2D,KAAAwP,KAEA23C,GAAA4O,EAAAvmD,GACA6mD,EAAAr2D,KAAAwP,GAIA,OAAA6mD,GAAAH,UAAA75C,OAAA+5C,GAGA,QAAAF,IAAAtB,GACA,MAAAC,IAAAD,GAAAsB,UAGA,QAAAI,IAAA92D,EAAA09C,EAAA3hD,GACAiE,EAAAjE,UAAA2hD,EAAA3hD,YACAA,EAAAiE,cAGA,QAAAy5C,IAAA6N,EAAAyP,GACA,GAAAh7D,GAAAT,OAAAiT,OAAA+4C,EAAAvrD,UACA,QAAAgC,KAAAg5D,GAAAh7D,EAAAgC,GAAAg5D,EAAAh5D,EACA,OAAAhC,GAGA,QAAAi7D,OA6KA,QAAAjmD,IAAAkmD,GACA,GAAAj8D,EAEA,OADAi8D,MAAA,IAAA3rD,OAAA7E,eACAzL,EAAAk8D,GAAAC,KAAAF,KAAAj8D,EAAA6T,SAAA7T,EAAA,UAAAo8D,IAAAp8D,GAAA,KAAAA,GAAA,MAAAA,GAAA,SAAAA,GAAA,GAAAA,IAAA,KAAAA,EAAA,KACAA,EAAAq8D,GAAAF,KAAAF,IAAAK,GAAAzoD,SAAA7T,EAAA,SACAA,EAAAu8D,GAAAJ,KAAAF,IAAA,GAAAG,IAAAp8D,EAAA,GAAAA,EAAA,GAAAA,EAAA,OACAA,EAAAw8D,GAAAL,KAAAF,IAAA,GAAAG,IAAA,IAAAp8D,EAAA,WAAAA,EAAA,WAAAA,EAAA,WACAA,EAAAy8D,GAAAN,KAAAF,IAAAS,GAAA18D,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,KACAA,EAAA28D,GAAAR,KAAAF,IAAAS,GAAA,IAAA18D,EAAA,WAAAA,EAAA,WAAAA,EAAA,OAAAA,EAAA,KACAA,EAAA48D,GAAAT,KAAAF,IAAAY,GAAA78D,EAAA,GAAAA,EAAA,OAAAA,EAAA,WACAA,EAAA88D,GAAAX,KAAAF,IAAAY,GAAA78D,EAAA,GAAAA,EAAA,OAAAA,EAAA,OAAAA,EAAA,IACA+8D,GAAA/7D,eAAAi7D,GAAAK,GAAAS,GAAAd,IACA,gBAAAA,EAAA,GAAAG,IAAAxZ,YAAA,GACA,KAGA,QAAA0Z,IAAA37D,GACA,UAAAy7D,IAAAz7D,GAAA,OAAAA,GAAA,UAAAA,EAAA,GAGA,QAAA+7D,IAAAhkD,EAAAtO,EAAA/F,EAAAF,GAEA,MADAA,IAAA,IAAAuU,EAAAtO,EAAA/F,EAAAu+C,KACA,GAAAwZ,IAAA1jD,EAAAtO,EAAA/F,EAAAF,GAGA,QAAA64D,IAAA38D,GAEA,MADAA,aAAA27D,MAAA37D,EAAA0V,GAAA1V,IACAA,GACAA,IAAA48D,MACA,GAAAb,IAAA/7D,EAAAqY,EAAArY,EAAA+J,EAAA/J,EAAAgE,EAAAhE,EAAAm7C,UAFA,GAAA4gB,IAKA,QAAAc,IAAAxkD,EAAAtO,EAAA/F,EAAAm3C,GACA,WAAA34C,UAAAC,OAAAk6D,GAAAtkD,GAAA,GAAA0jD,IAAA1jD,EAAAtO,EAAA/F,EAAA,MAAAm3C,EAAA,EAAAA,GAGA,QAAA4gB,IAAA1jD,EAAAtO,EAAA/F,EAAAm3C,GACAh4C,KAAAkV,KACAlV,KAAA4G,KACA5G,KAAAa,KACAb,KAAAg4C,WA+BA,QAAAqhB,IAAA7gD,EAAA9a,EAAApB,EAAAqE,GAIA,MAHAA,IAAA,EAAA6X,EAAA9a,EAAApB,EAAA8iD,IACA9iD,GAAA,GAAAA,GAAA,EAAAkc,EAAA9a,EAAA0hD,IACA1hD,GAAA,IAAA8a,EAAA4mC,KACA,GAAAua,IAAAnhD,EAAA9a,EAAApB,EAAAqE,GAGA,QAAAi5D,IAAA/8D,GACA,GAAAA,YAAA88D,IAAA,UAAAA,IAAA98D,EAAA2b,EAAA3b,EAAAa,EAAAb,EAAAP,EAAAO,EAAAm7C,QAEA,IADAn7C,YAAA27D,MAAA37D,EAAA0V,GAAA1V,KACAA,EAAA,UAAA88D,GACA,IAAA98D,YAAA88D,IAAA,MAAA98D,EACAA,KAAA48D,KACA,IAAAvkD,GAAArY,EAAAqY,EAAA,IACAtO,EAAA/J,EAAA+J,EAAA,IACA/F,EAAAhE,EAAAgE,EAAA,IACAyP,EAAAE,KAAAF,IAAA4E,EAAAtO,EAAA/F,GACAuP,EAAAI,KAAAJ,IAAA8E,EAAAtO,EAAA/F,GACA2X,EAAA4mC,IACA1hD,EAAA0S,EAAAE,EACAhU,GAAA8T,EAAAE,GAAA,CAUA,OATA5S,IACA8a,EAAAtD,IAAA9E,GAAAxJ,EAAA/F,GAAAnD,EAAA,GAAAkJ,EAAA/F,GACA+F,IAAAwJ,GAAAvP,EAAAqU,GAAAxX,EAAA,GACAwX,EAAAtO,GAAAlJ,EAAA,EACAA,GAAApB,EAAA,GAAA8T,EAAAE,EAAA,EAAAF,EAAAE,EACAkI,GAAA,IAEA9a,EAAApB,EAAA,GAAAA,EAAA,IAAAkc,EAEA,GAAAmhD,IAAAnhD,EAAA9a,EAAApB,EAAAO,EAAAm7C,SAGA,QAAA6hB,IAAArhD,EAAA9a,EAAApB,EAAA07C,GACA,WAAA34C,UAAAC,OAAAs6D,GAAAphD,GAAA,GAAAmhD,IAAAnhD,EAAA9a,EAAApB,EAAA,MAAA07C,EAAA,EAAAA,GAGA,QAAA2hB,IAAAnhD,EAAA9a,EAAApB,EAAA07C,GACAh4C,KAAAwY,KACAxY,KAAAtC,KACAsC,KAAA1D,KACA0D,KAAAg4C,WAiCA,QAAA8hB,IAAAthD,EAAAuhD,EAAAC,GACA,MAGA,MAHAxhD,EAAA,GAAAuhD,GAAAC,EAAAD,GAAAvhD,EAAA,GACAA,EAAA,IAAAwhD,EACAxhD,EAAA,IAAAuhD,GAAAC,EAAAD,IAAA,IAAAvhD,GAAA,GACAuhD,GAcA,QAAAE,IAAAp9D,GACA,GAAAA,YAAAq9D,IAAA,UAAAA,IAAAr9D,EAAAP,EAAAO,EAAA8D,EAAA9D,EAAAgE,EAAAhE,EAAAm7C,QACA,IAAAn7C,YAAAs9D,IAAA,CACA,GAAA3hD,GAAA3b,EAAA2b,EAAA4hD,EACA,WAAAF,IAAAr9D,EAAAP,EAAAkU,KAAA+0C,IAAA/sC,GAAA3b,EAAAJ,EAAA+T,KAAAk1C,IAAAltC,GAAA3b,EAAAJ,EAAAI,EAAAm7C,SAEAn7C,YAAA+7D,MAAA/7D,EAAA28D,GAAA38D,GACA,IAAAgE,GAAAw5D,GAAAx9D,EAAAqY,GACAvU,EAAA05D,GAAAx9D,EAAA+J,GACAtK,EAAA+9D,GAAAx9D,EAAAgE,GACAsU,EAAAmlD,IAAA,SAAAz5D,EAAA,SAAAF,EAAA,SAAArE,GAAAi+D,IACAhjD,EAAA+iD,IAAA,SAAAz5D,EAAA,SAAAF,EAAA,QAAArE,GAAAk+D,GAEA,WAAAN,IAAA,IAAA3iD,EAAA,QAAApC,EAAAoC,GAAA,KAAAA,EADA+iD,IAAA,SAAAz5D,EAAA,QAAAF,EAAA,SAAArE,GAAAm+D,KACA59D,EAAAm7C,SAGA,QAAA0iB,IAAAp+D,EAAAqE,EAAAE,EAAAm3C,GACA,WAAA34C,UAAAC,OAAA26D,GAAA39D,GAAA,GAAA49D,IAAA59D,EAAAqE,EAAAE,EAAA,MAAAm3C,EAAA,EAAAA,GAGA,QAAAkiB,IAAA59D,EAAAqE,EAAAE,EAAAm3C,GACAh4C,KAAA1D,KACA0D,KAAAW,KACAX,KAAAa,KACAb,KAAAg4C,WA0BA,QAAAsiB,IAAA5gD,GACA,MAAAA,GAAAihD,GAAAnqD,KAAAkwC,IAAAhnC,EAAA,KAAAA,EAAAkhD,GAAAxL,GAGA,QAAAyL,IAAAnhD,GACA,MAAAA,GAAA21C,GAAA31C,MAAAkhD,IAAAlhD,EAAA01C,IAGA,QAAA0L,IAAA3lD,GACA,YAAAA,GAAA,eAAAA,EAAA,MAAA3E,KAAAkwC,IAAAvrC,EAAA,aAGA,QAAAklD,IAAAllD,GACA,OAAAA,GAAA,aAAAA,EAAA,MAAA3E,KAAAkwC,KAAAvrC,EAAA,iBAGA,QAAA4lD,IAAAl+D,GACA,GAAAA,YAAAs9D,IAAA,UAAAA,IAAAt9D,EAAA2b,EAAA3b,EAAAJ,EAAAI,EAAAP,EAAAO,EAAAm7C,QACAn7C,aAAAq9D,MAAAr9D,EAAAo9D,GAAAp9D,GACA,IAAA2b,GAAAhI,KAAAkgD,MAAA7zD,EAAAgE,EAAAhE,EAAA8D,GAAAq6D,EACA,WAAAb,IAAA3hD,EAAA,EAAAA,EAAA,IAAAA,EAAAhI,KAAAwvC,KAAAnjD,EAAA8D,EAAA9D,EAAA8D,EAAA9D,EAAAgE,EAAAhE,EAAAgE,GAAAhE,EAAAP,EAAAO,EAAAm7C,SAGA,QAAAijB,IAAAziD,EAAA/b,EAAAH,EAAA07C,GACA,WAAA34C,UAAAC,OAAAy7D,GAAAviD,GAAA,GAAA2hD,IAAA3hD,EAAA/b,EAAAH,EAAA,MAAA07C,EAAA,EAAAA,GAGA,QAAAmiB,IAAA3hD,EAAA/b,EAAAH,EAAA07C,GACAh4C,KAAAwY,KACAxY,KAAAvD,KACAuD,KAAA1D,KACA0D,KAAAg4C,WAuBA,QAAAkjB,IAAAr+D,GACA,GAAAA,YAAAs+D,IAAA,UAAAA,IAAAt+D,EAAA2b,EAAA3b,EAAAa,EAAAb,EAAAP,EAAAO,EAAAm7C,QACAn7C,aAAA+7D,MAAA/7D,EAAA28D,GAAA38D,GACA,IAAAqY,GAAArY,EAAAqY,EAAA,IACAtO,EAAA/J,EAAA+J,EAAA,IACA/F,EAAAhE,EAAAgE,EAAA,IACAvE,GAAA8+D,GAAAv6D,EAAAw6D,GAAAnmD,EAAAomD,GAAA10D,IAAAw0D,GAAAC,GAAAC,IACAC,EAAA16D,EAAAvE,EACA6b,GAAAF,IAAArR,EAAAtK,GAAA0b,GAAAujD,GAAA/gD,GACA9c,EAAA8S,KAAAwvC,KAAA7nC,IAAAojD,MAAAtjD,GAAA3b,GAAA,EAAAA,IACAkc,EAAA9a,EAAA8S,KAAAkgD,MAAAv4C,EAAAojD,GAAAP,GAAA,IAAA5b,GACA,WAAA+b,IAAA3iD,EAAA,EAAAA,EAAA,IAAAA,EAAA9a,EAAApB,EAAAO,EAAAm7C,SAGA,QAAAwjB,IAAAhjD,EAAA9a,EAAApB,EAAA07C,GACA,WAAA34C,UAAAC,OAAA47D,GAAA1iD,GAAA,GAAA2iD,IAAA3iD,EAAA9a,EAAApB,EAAA,MAAA07C,EAAA,EAAAA,GAGA,QAAAmjB,IAAA3iD,EAAA9a,EAAApB,EAAA07C,GACAh4C,KAAAwY,KACAxY,KAAAtC,KACAsC,KAAA1D,KACA0D,KAAAg4C,WA2BA,QAAAyjB,IAAApM,EAAAqM,EAAAC,EAAAC,EAAAC,GACA,GAAAjB,GAAAvL,IAAAsL,EAAAC,EAAAvL,CACA,aAAAA,EAAA,EAAAuL,EAAAD,GAAAe,GACA,IAAAd,EAAA,EAAAD,GAAAgB,GACA,IAAAtM,EAAA,EAAAuL,EAAA,EAAAD,GAAAiB,EACAjB,EAAAkB,GAAA,EAGA,QAAAC,IAAAh0D,GACA,GAAA3K,GAAA2K,EAAAxI,OAAA,CACA,iBAAAoa,GACA,GAAArd,GAAAqd,GAAA,EAAAA,EAAA,EAAAA,GAAA,GAAAA,EAAA,EAAAvc,EAAA,GAAAqT,KAAAuB,MAAA2H,EAAAvc,GACAw+D,EAAA7zD,EAAAzL,GACAu/D,EAAA9zD,EAAAzL,EAAA,GACAq/D,EAAAr/D,EAAA,EAAAyL,EAAAzL,EAAA,KAAAs/D,EAAAC,EACAC,EAAAx/D,EAAAc,EAAA,EAAA2K,EAAAzL,EAAA,KAAAu/D,EAAAD,CACA,OAAAF,KAAA/hD,EAAArd,EAAAc,KAAAu+D,EAAAC,EAAAC,EAAAC,IAIA,QAAAE,IAAAj0D,GACA,GAAA3K,GAAA2K,EAAAxI,MACA,iBAAAoa,GACA,GAAArd,GAAAmU,KAAAuB,QAAA2H,GAAA,OAAAA,KAAAvc,GACAu+D,EAAA5zD,GAAAzL,EAAAc,EAAA,GAAAA,GACAw+D,EAAA7zD,EAAAzL,EAAAc,GACAy+D,EAAA9zD,GAAAzL,EAAA,GAAAc,GACA0+D,EAAA/zD,GAAAzL,EAAA,GAAAc,EACA,OAAAs+D,KAAA/hD,EAAArd,EAAAc,KAAAu+D,EAAAC,EAAAC,EAAAC,IAIA,QAAAG,IAAA7mD,GACA,kBACA,MAAAA,IAIA,QAAA8mD,IAAAt7D,EAAAjE,GACA,gBAAAgd,GACA,MAAA/Y,GAAA+Y,EAAAhd,GAIA,QAAAw/D,IAAAv7D,EAAAE,EAAA0W,GACA,MAAA5W,GAAA6P,KAAAkwC,IAAA//C,EAAA4W,GAAA1W,EAAA2P,KAAAkwC,IAAA7/C,EAAA0W,GAAA5W,EAAA4W,EAAA,EAAAA,EAAA,SAAAmC,GACA,MAAAlJ,MAAAkwC,IAAA//C,EAAA+Y,EAAA7Y,EAAA0W,IAIA,QAAA4kD,IAAAx7D,EAAAE,GACA,GAAAnE,GAAAmE,EAAAF,CACA,OAAAjE,GAAAu/D,GAAAt7D,EAAAjE,EAAA,KAAAA,GAAA,IAAAA,EAAA,IAAA8T,KAAA4rD,MAAA1/D,EAAA,KAAAA,GAAAs/D,GAAAvhC,MAAA95B,GAAAE,EAAAF,GAGA,QAAA07D,IAAA9kD,GACA,YAAAA,MAAA+kD,GAAA,SAAA37D,EAAAE,GACA,MAAAA,GAAAF,EAAAu7D,GAAAv7D,EAAAE,EAAA0W,GAAAykD,GAAAvhC,MAAA95B,GAAAE,EAAAF,IAIA,QAAA27D,IAAA37D,EAAAE,GACA,GAAAnE,GAAAmE,EAAAF,CACA,OAAAjE,GAAAu/D,GAAAt7D,EAAAjE,GAAAs/D,GAAAvhC,MAAA95B,GAAAE,EAAAF,GAyBA,QAAA47D,IAAAC,GACA,gBAAAC,GACA,GAIApgE,GAAAkW,EAJApV,EAAAs/D,EAAAn9D,OACA4V,EAAA,GAAAxN,OAAAvK,GACAyJ,EAAA,GAAAc,OAAAvK,GACA0D,EAAA,GAAA6G,OAAAvK,EAEA,KAAAd,EAAA,EAAeA,EAAAc,IAAOd,EACtBkW,EAAAmnD,GAAA+C,EAAApgE,IACA6Y,EAAA7Y,GAAAkW,EAAA2C,GAAA,EACAtO,EAAAvK,GAAAkW,EAAA3L,GAAA,EACA/F,EAAAxE,GAAAkW,EAAA1R,GAAA,CAMA,OAJAqU,GAAAsnD,EAAAtnD,GACAtO,EAAA41D,EAAA51D,GACA/F,EAAA27D,EAAA37D,GACA0R,EAAAylC,QAAA,EACA,SAAAt+B,GAIA,MAHAnH,GAAA2C,IAAAwE,GACAnH,EAAA3L,IAAA8S,GACAnH,EAAA1R,IAAA6Y,GACAnH,EAAA,KAQA,QAAAmqD,IAAA/7D,EAAAE,GACA,GAIAxE,GAJA8oC,EAAAtkC,IAAAvB,OAAA,EACAu4B,EAAAl3B,EAAA6P,KAAAF,IAAA60B,EAAAxkC,EAAArB,QAAA,EACA6V,EAAA,GAAAzN,OAAAy9B,GACA1oC,EAAA,GAAAiL,OAAAy9B,EAGA,KAAA9oC,EAAA,EAAaA,EAAAw7B,IAAQx7B,EAAA8Y,EAAA9Y,GAAAsgE,GAAAh8D,EAAAtE,GAAAwE,EAAAxE,GACrB,MAAQA,EAAA8oC,IAAQ9oC,EAAAI,EAAAJ,GAAAwE,EAAAxE,EAEhB,iBAAAqd,GACA,IAAArd,EAAA,EAAeA,EAAAw7B,IAAQx7B,EAAAI,EAAAJ,GAAA8Y,EAAA9Y,GAAAqd,EACvB,OAAAjd,IAIA,QAAAwrC,IAAAtnC,EAAAE,GACA,GAAAnE,GAAA,GAAA6pC,KACA,OAAA5lC,MAAAE,GAAAF,EAAA,SAAA+Y,GACA,MAAAhd,GAAAkgE,QAAAj8D,EAAAE,EAAA6Y,GAAAhd,GAIA,QAAAmgE,IAAAl8D,EAAAE,GACA,MAAAF,MAAAE,GAAAF,EAAA,SAAA+Y,GACA,MAAA/Y,GAAAE,EAAA6Y,GAIA,QAAArc,IAAAsD,EAAAE,GACA,GAEAsX,GAFA9b,KACAI,IAGA,QAAAkE,GAAA,iBAAAA,WACA,OAAAE,GAAA,iBAAAA,UAEA,KAAAsX,IAAAtX,GACAsX,IAAAxX,GACAtE,EAAA8b,GAAAwkD,GAAAh8D,EAAAwX,GAAAtX,EAAAsX,IAEA1b,EAAA0b,GAAAtX,EAAAsX,EAIA,iBAAAuB,GACA,IAAAvB,IAAA9b,GAAAI,EAAA0b,GAAA9b,EAAA8b,GAAAuB,EACA,OAAAjd,IAMA,QAAAqgE,IAAAj8D,GACA,kBACA,MAAAA,IAIA,QAAAk8D,IAAAl8D,GACA,gBAAA6Y,GACA,MAAA7Y,GAAA6Y,GAAA,IAIA,QAAAsjD,IAAAr8D,EAAAE,GACA,GACAo8D,GACAC,EACAC,EAHAC,EAAAC,GAAAC,UAAAC,GAAAD,UAAA,EAIAjhE,GAAA,EACAqB,KACAuc,IAMA,KAHAtZ,GAAA,GAAAE,GAAA,IAGAo8D,EAAAI,GAAA1E,KAAAh4D,MACAu8D,EAAAK,GAAA5E,KAAA93D,MACAs8D,EAAAD,EAAA93D,OAAAg4D,IACAD,EAAAt8D,EAAA8G,MAAAy1D,EAAAD,GACAz/D,EAAArB,GAAAqB,EAAArB,IAAA8gE,EACAz/D,IAAArB,GAAA8gE,IAEAF,IAAA,OAAAC,IAAA,IACAx/D,EAAArB,GAAAqB,EAAArB,IAAA6gE,EACAx/D,IAAArB,GAAA6gE,GAEAx/D,IAAArB,GAAA,KACA4d,EAAAjY,MAAc3F,IAAA8Y,EAAA0nD,GAAAI,EAAAC,MAEdE,EAAAG,GAAAD,SAYA,OARAF,GAAAv8D,EAAAvB,SACA69D,EAAAt8D,EAAA8G,MAAAy1D,GACA1/D,EAAArB,GAAAqB,EAAArB,IAAA8gE,EACAz/D,IAAArB,GAAA8gE,GAKAz/D,EAAA4B,OAAA,EAAA2a,EAAA,GACA8iD,GAAA9iD,EAAA,GAAA9E,GACA2nD,GAAAj8D,IACAA,EAAAoZ,EAAA3a,OAAA,SAAAoa,GACA,OAAA7c,GAAAR,EAAA,EAA4BA,EAAAwE,IAAOxE,EAAAqB,GAAAb,EAAAod,EAAA5d,OAAAQ,EAAAsY,EAAAuE,EACnC,OAAAhc,GAAAe,KAAA,MAIA,QAAAk+D,IAAAh8D,EAAAE,GACA,GAAApE,GAAAid,QAAA7Y,EACA,cAAAA,GAAA,YAAA6Y,EAAAsiD,GAAAn7D,IACA,WAAA6Y,EAAAmjD,GACA,WAAAnjD,GAAAjd,EAAA8V,GAAA1R,OAAApE,EAAA+gE,IAAAR,GACAn8D,YAAA0R,IAAAirD,GACA38D,YAAA0lC,MAAA0B,GACAvgC,MAAAoB,QAAAjI,GAAA67D,GACAjiC,MAAA55B,GAAAxD,GACAw/D,IAAAl8D,EAAAE,GAGA,QAAA48D,IAAA98D,EAAAE,GACA,MAAAF,MAAAE,GAAAF,EAAA,SAAA+Y,GACA,MAAAlJ,MAAA4rD,MAAAz7D,EAAAE,EAAA6Y,IAeA,QAAAgkD,IAAA/8D,EAAAE,EAAApE,EAAAC,EAAAqK,EAAAmK,GACA,GAAAysD,GAAAC,EAAAC,CAKA,QAJAF,EAAAntD,KAAAwvC,KAAAr/C,IAAAE,QAAAF,GAAAg9D,EAAA98D,GAAA88D,IACAE,EAAAl9D,EAAAlE,EAAAoE,EAAAnE,KAAAD,GAAAkE,EAAAk9D,EAAAnhE,GAAAmE,EAAAg9D,IACAD,EAAAptD,KAAAwvC,KAAAvjD,IAAAC,QAAAD,GAAAmhE,EAAAlhE,GAAAkhE,EAAAC,GAAAD,GACAj9D,EAAAjE,EAAAmE,EAAApE,IAAAkE,KAAAE,KAAAg9D,KAAAF,OAEAG,WAAA/2D,EACAg3D,WAAA7sD,EACA8sD,OAAAxtD,KAAAkgD,MAAA7vD,EAAAF,GAAAs9D,GACAJ,MAAArtD,KAAA0tD,KAAAL,GAAAI,GACAN,SACAC,UAQA,QAAAO,IAAAx7D,GACA,eAAAA,EAAAy7D,IACAC,QAAA93D,SAAAsK,cAAA,OAAAytD,GAAA/3D,SAAAoa,gBAAA49C,GAAAh4D,SAAA8jC,aACAg0B,GAAAtrD,MAAAyrD,UAAA77D,EACAA,EAAA47D,GAAAE,iBAAAH,GAAAxrC,YAAAurC,IAAA,MAAAK,iBAAA,aACAJ,GAAAprC,YAAAmrC,IACA17D,IAAAgF,MAAA,MAAAhJ,MAAA,KACA++D,IAAA/6D,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,KAGA,QAAAg8D,IAAAh8D,GACA,aAAAA,EAAAy7D,IACAQ,QAAAr4D,SAAA43B,gBAAA,mCACAygC,GAAA16C,aAAA,YAAAvhB,IACAA,EAAAi8D,GAAAJ,UAAAK,QAAAC,gBACAn8D,IAAAsgD,OACAya,GAAA/6D,EAAAhC,EAAAgC,EAAA9B,EAAA8B,EAAAlG,EAAAkG,EAAAjG,EAAAiG,EAAAoE,EAAApE,EAAAuO,IAFAktD,IAKA,QAAAW,IAAA/yD,EAAAgzD,EAAAC,EAAAC,GAEA,QAAA9lD,GAAA1b,GACA,MAAAA,GAAA4B,OAAA5B,EAAA0b,MAAA,OAGA,QAAA+lD,GAAA3+B,EAAAC,EAAAvgB,EAAAC,EAAAziB,EAAAuc,GACA,GAAAumB,IAAAtgB,GAAAugB,IAAAtgB,EAAA,CACA,GAAA9jB,GAAAqB,EAAAsE,KAAA,kBAAAg9D,EAAA,KAAAC,EACAhlD,GAAAjY,MAAc3F,IAAA,EAAA8Y,EAAA0nD,GAAAr8B,EAAAtgB,KAA0C7jB,IAAA,EAAA8Y,EAAA0nD,GAAAp8B,EAAAtgB,UACnDD,GAAAC,IACLziB,EAAAsE,KAAA,aAAAke,EAAA8+C,EAAA7+C,EAAA8+C,GAIA,QAAAjB,GAAAr9D,EAAAE,EAAAnD,EAAAuc,GACAtZ,IAAAE,GACAF,EAAAE,EAAA,IAAAA,GAAA,IAAgCA,EAAAF,EAAA,MAAAA,GAAA,KAChCsZ,EAAAjY,MAAc3F,EAAAqB,EAAAsE,KAAAoX,EAAA1b,GAAA,eAAAwhE,GAAA,EAAA/pD,EAAA0nD,GAAAl8D,EAAAE,MACTA,GACLnD,EAAAsE,KAAAoX,EAAA1b,GAAA,UAAAmD,EAAAq+D,GAIA,QAAArB,GAAAl9D,EAAAE,EAAAnD,EAAAuc,GACAtZ,IAAAE,EACAoZ,EAAAjY,MAAc3F,EAAAqB,EAAAsE,KAAAoX,EAAA1b,GAAA,cAAAwhE,GAAA,EAAA/pD,EAAA0nD,GAAAl8D,EAAAE,KACTA,GACLnD,EAAAsE,KAAAoX,EAAA1b,GAAA,SAAAmD,EAAAq+D,GAIA,QAAAE,GAAA5+B,EAAAC,EAAAvgB,EAAAC,EAAAziB,EAAAuc,GACA,GAAAumB,IAAAtgB,GAAAugB,IAAAtgB,EAAA,CACA,GAAA9jB,GAAAqB,EAAAsE,KAAAoX,EAAA1b,GAAA,2BACAuc,GAAAjY,MAAc3F,IAAA,EAAA8Y,EAAA0nD,GAAAr8B,EAAAtgB,KAA0C7jB,IAAA,EAAA8Y,EAAA0nD,GAAAp8B,EAAAtgB,SACnD,KAAAD,GAAA,IAAAC,GACLziB,EAAAsE,KAAAoX,EAAA1b,GAAA,SAAAwiB,EAAA,IAAAC,EAAA,KAIA,gBAAAxf,EAAAE,GACA,GAAAnD,MACAuc,IAOA,OANAtZ,GAAAqL,EAAArL,GAAAE,EAAAmL,EAAAnL,GACAs+D,EAAAx+D,EAAAm9D,WAAAn9D,EAAAo9D,WAAAl9D,EAAAi9D,WAAAj9D,EAAAk9D,WAAArgE,EAAAuc,GACA+jD,EAAAr9D,EAAAq9D,OAAAn9D,EAAAm9D,OAAAtgE,EAAAuc,GACA4jD,EAAAl9D,EAAAk9D,MAAAh9D,EAAAg9D,MAAAngE,EAAAuc,GACAmlD,EAAAz+D,EAAAg9D,OAAAh9D,EAAAi9D,OAAA/8D,EAAA88D,OAAA98D,EAAA+8D,OAAAlgE,EAAAuc,GACAtZ,EAAAE,EAAA,KACA,SAAA6Y,GAEA,IADA,GAAA7c,GAAAR,GAAA,EAAAc,EAAA8c,EAAA3a,SACAjD,EAAAc,GAAAO,GAAAb,EAAAod,EAAA5d,OAAAQ,EAAAsY,EAAAuE,EACA,OAAAhc,GAAAe,KAAA,MAYA,QAAA4gE,IAAAlqD,GACA,QAAAA,EAAA3E,KAAAi0C,IAAAtvC,IAAA,EAAAA,GAAA,EAGA,QAAAmqD,IAAAnqD,GACA,QAAAA,EAAA3E,KAAAi0C,IAAAtvC,IAAA,EAAAA,GAAA,EAGA,QAAAoqD,IAAApqD,GACA,QAAAA,EAAA3E,KAAAi0C,IAAA,EAAAtvC,IAAA,IAAAA,EAAA,GAKA,QAAAqqD,IAAAtP,EAAAC,GACA,GAKA9zD,GACAyd,EANA2lD,EAAAvP,EAAA,GAAAwP,EAAAxP,EAAA,GAAAyP,EAAAzP,EAAA,GACA0P,EAAAzP,EAAA,GAAA0P,EAAA1P,EAAA,GAAA2P,EAAA3P,EAAA,GACAhG,EAAAyV,EAAAH,EACArV,EAAAyV,EAAAH,EACArV,EAAAF,IAAAC,GAKA,IAAAC,EAAA0V,GACAjmD,EAAAtJ,KAAAmwC,IAAAmf,EAAAH,GAAAK,GACA3jE,EAAA,SAAAqd,GACA,OACA+lD,EAAA/lD,EAAAywC,EACAuV,EAAAhmD,EAAA0wC,EACAuV,EAAAnvD,KAAAi0C,IAAAub,GAAAtmD,EAAAI,SAMA,CACA,GAAAmmD,GAAAzvD,KAAAwvC,KAAAqK,GACA/D,GAAAwZ,IAAAH,IAAAO,GAAA7V,IAAA,EAAAsV,EAAAQ,GAAAF,GACA5Z,GAAAyZ,IAAAH,IAAAO,GAAA7V,IAAA,EAAAyV,EAAAK,GAAAF,GACAnR,EAAAt+C,KAAAmwC,IAAAnwC,KAAAwvC,KAAAsG,IAAA,GAAAA,GACAmH,EAAAj9C,KAAAmwC,IAAAnwC,KAAAwvC,KAAAqG,IAAA,GAAAA,EACAvsC,IAAA2zC,EAAAqB,GAAAkR,GACA3jE,EAAA,SAAAqd,GACA,GAAAhc,GAAAgc,EAAAI,EACAsmD,EAAAf,GAAAvQ,GACAn1C,EAAAgmD,GAAAQ,GAAAF,IAAAG,EAAAb,GAAAS,GAAAtiE,EAAAoxD,GAAAwQ,GAAAxQ,GACA,QACA2Q,EAAA9lD,EAAAwwC,EACAuV,EAAA/lD,EAAAywC,EACAuV,EAAAS,EAAAf,GAAAW,GAAAtiE,EAAAoxD,KAOA,MAFAzyD,GAAAgkE,SAAA,IAAAvmD,EAEAzd,EAGA,QAAAikE,IAAAnE,GACA,gBAAAjqD,EAAAC,GACA,GAAAqG,GAAA2jD,GAAAjqD,EAAA2nD,GAAA3nD,IAAAsG,GAAArG,EAAA0nD,GAAA1nD,IAAAqG,GACA9a,EAAA4+D,GAAApqD,EAAAxU,EAAAyU,EAAAzU,GACApB,EAAAggE,GAAApqD,EAAA5V,EAAA6V,EAAA7V,GACA07C,EAAAskB,GAAApqD,EAAA8lC,QAAA7lC,EAAA6lC,QACA,iBAAAt+B,GAKA,MAJAxH,GAAAsG,IAAAkB,GACAxH,EAAAxU,IAAAgc,GACAxH,EAAA5V,IAAAod,GACAxH,EAAA8lC,UAAAt+B,GACAxH,EAAA,KAQA,QAAAquD,IAAAruD,EAAAC,GACA,GAAA7V,GAAAggE,IAAApqD,EAAAwoD,GAAAxoD,IAAA5V,GAAA6V,EAAAuoD,GAAAvoD,IAAA7V,GACAqE,EAAA27D,GAAApqD,EAAAvR,EAAAwR,EAAAxR,GACAE,EAAAy7D,GAAApqD,EAAArR,EAAAsR,EAAAtR,GACAm3C,EAAAskB,GAAApqD,EAAA8lC,QAAA7lC,EAAA6lC,QACA,iBAAAt+B,GAKA,MAJAxH,GAAA5V,IAAAod,GACAxH,EAAAvR,IAAA+Y,GACAxH,EAAArR,IAAA6Y,GACAxH,EAAA8lC,UAAAt+B,GACAxH,EAAA,IAIA,QAAAsuD,IAAArE,GACA,gBAAAjqD,EAAAC,GACA,GAAAqG,GAAA2jD,GAAAjqD,EAAA+oD,GAAA/oD,IAAAsG,GAAArG,EAAA8oD,GAAA9oD,IAAAqG,GACA/b,EAAA6/D,GAAApqD,EAAAzV,EAAA0V,EAAA1V,GACAH,EAAAggE,GAAApqD,EAAA5V,EAAA6V,EAAA7V,GACA07C,EAAAskB,GAAApqD,EAAA8lC,QAAA7lC,EAAA6lC,QACA,iBAAAt+B,GAKA,MAJAxH,GAAAsG,IAAAkB,GACAxH,EAAAzV,IAAAid,GACAxH,EAAA5V,IAAAod,GACAxH,EAAA8lC,UAAAt+B,GACAxH,EAAA,KAQA,QAAAuuD,IAAAtE,GACA,eAAAuE,GAAAnpD,GAGA,QAAAopD,GAAAzuD,EAAAC,GACA,GAAAqG,GAAA2jD,GAAAjqD,EAAAspD,GAAAtpD,IAAAsG,GAAArG,EAAAqpD,GAAArpD,IAAAqG,GACA9a,EAAA4+D,GAAApqD,EAAAxU,EAAAyU,EAAAzU,GACApB,EAAAggE,GAAApqD,EAAA5V,EAAA6V,EAAA7V,GACA07C,EAAAskB,GAAApqD,EAAA8lC,QAAA7lC,EAAA6lC,QACA,iBAAAt+B,GAKA,MAJAxH,GAAAsG,IAAAkB,GACAxH,EAAAxU,IAAAgc,GACAxH,EAAA5V,IAAAkU,KAAAkwC,IAAAhnC,EAAAnC,IACArF,EAAA8lC,UAAAt+B,GACAxH,EAAA,IAMA,MAlBAqF,MAgBAopD,EAAAtE,MAAAqE,EAEAC,GACG,GAMH,QAAAC,IAAAC,EAAA1jE,GAEA,OADA2jE,GAAA,GAAAp5D,OAAAvK,GACAd,EAAA,EAAiBA,EAAAc,IAAOd,EAAAykE,EAAAzkE,GAAAwkE,EAAAxkE,GAAAc,EAAA,GACxB,OAAA2jE,GAKA,QAAAC,MACA,OAA8CrnD,GAA9Crd,EAAA,EAAAc,EAAAkC,UAAAC,OAAAqiD,KAAkDtlD,EAAAc,IAAOd,EAAA,CACzD,KAAAqd,EAAAra,UAAAhD,GAAA,KAAAqd,IAAAioC,GAAA,SAAAl2C,OAAA,iBAAAiO,EACAioC,GAAAjoC,MAEA,UAAAsnD,IAAArf,GAGA,QAAAqf,IAAArf,GACA3hD,KAAA2hD,IAGA,QAAAsf,IAAAC,EAAAC,GACA,MAAAD,GAAAp0D,OAAAnO,MAAA,SAAAH,IAAA,SAAAkb,GACA,GAAA/c,GAAA,GAAAN,EAAAqd,EAAApN,QAAA,IAEA,IADAjQ,GAAA,IAAAM,EAAA+c,EAAA/R,MAAAtL,EAAA,GAAAqd,IAAA/R,MAAA,EAAAtL,IACAqd,IAAAynD,EAAA3jE,eAAAkc,GAAA,SAAAjO,OAAA,iBAAAiO,EACA,QAAYhO,KAAAgO,EAAA/c,UA6CZ,QAAAO,IAAAwO,EAAA/O,GACA,OAAAF,GAAAJ,EAAA,EAAAc,EAAAuO,EAAApM,OAAqCjD,EAAAc,IAAOd,EAC5C,IAAAI,EAAAiP,EAAArP,IAAAM,SACA,MAAAF,GAAAkG,MAKA,QAAAy+D,IAAA11D,EAAA/O,EAAA+I,GACA,OAAArJ,GAAA,EAAAc,EAAAuO,EAAApM,OAAkCjD,EAAAc,IAAOd,EACzC,GAAAqP,EAAArP,GAAAM,SAAA,CACA+O,EAAArP,GAAAglE,GAAA31D,IAAA/D,MAAA,EAAAtL,GAAAgiB,OAAA3S,EAAA/D,MAAAtL,EAAA,GACA,OAIA,MADA,OAAAqJ,GAAAgG,EAAA1J,MAAmCrF,OAAAgG,MAAA+C,IACnCgG,EAGA,QAAA41D,IAAAxqB,GACA,UAAAjwC,UAAA,eAAoCiwC,EAAAt4C,IAAA,SAAA7B,EAAAN,GACpC,MAAA0P,MAAAsI,UAAA1X,GAAA,OAAAN,EAAA,MACGoC,KAAA,UAGH,QAAA8iE,IAAAzqB,EAAA5lC,GACA,GAAA7T,GAAAikE,GAAAxqB,EACA,iBAAAlkC,EAAAvW,GACA,MAAA6U,GAAA7T,EAAAuV,GAAAvW,EAAAy6C,IAKA,QAAA0qB,IAAAv/B,GACA,GAAAw/B,GAAA3kE,OAAAiT,OAAA,MACA+mC,IAUA,OARA7U,GAAArjC,QAAA,SAAAgU,GACA,OAAA8uD,KAAA9uD,GACA8uD,IAAAD,IACA3qB,EAAA90C,KAAAy/D,EAAAC,QAKA5qB,EAGA,QAAA6qB,IAAAC,GAIA,QAAA51D,GAAAJ,EAAAsF,GACA,GAAA2wD,GAAA/qB,EAAA7U,EAAA6/B,EAAAl2D,EAAA,SAAAgH,EAAAvW,GACA,GAAAwlE,EAAA,MAAAA,GAAAjvD,EAAAvW,EAAA,EACAy6C,GAAAlkC,EAAAivD,EAAA3wD,EAAAqwD,GAAA3uD,EAAA1B,GAAAowD,GAAA1uD,IAGA,OADAqvB,GAAA6U,UACA7U,EAGA,QAAA6/B,GAAAl2D,EAAAsF,GAUA,QAAA6wD,KACA,GAAAzpD,GAAAY,EAAA,MAAA8oD,EACA,IAAAC,EAAA,MAAAA,IAAA,EAAAC,CAGA,IAAAzlE,GAAA+U,EAAA8G,CACA,SAAA1M,EAAAu2D,WAAA3wD,GAAA,CAEA,IADA,GAAAnV,GAAAmV,EACAnV,IAAA6c,GACA,QAAAtN,EAAAu2D,WAAA9lE,GAAA,CACA,QAAAuP,EAAAu2D,WAAA9lE,EAAA,WACAA,EAWA,MARAic,GAAAjc,EAAA,EACAI,EAAAmP,EAAAu2D,WAAA9lE,EAAA,GACA,KAAAI,GACAwlE,GAAA,EACA,KAAAr2D,EAAAu2D,WAAA9lE,EAAA,MAAAic,GACS,KAAA7b,IACTwlE,GAAA,GAEAr2D,EAAAjE,MAAA6J,EAAA,EAAAnV,GAAA2Q,QAAA,WAIA,KAAAsL,EAAAY,GAAA,CACA,GAAAf,GAAA,CAEA,UADA1b,EAAAmP,EAAAu2D,WAAA7pD,MACA2pD,GAAA,MACA,SAAAxlE,EAA4BwlE,GAAA,EAAY,KAAAr2D,EAAAu2D,WAAA7pD,WAAAH,OACxC,IAAA1b,IAAA2lE,EAAA,QACA,OAAAx2D,GAAAjE,MAAA6J,EAAA8G,EAAAH,GAIA,MAAAvM,GAAAjE,MAAA6J,GAGA,IAhDA,GAMAkI,GACAuoD,EAPAC,KACAF,KACA//B,KACA/oB,EAAAtN,EAAAtM,OACAgZ,EAAA,EACAnb,EAAA,GA2CAuc,EAAAqoD,OAAAC,GAAA,CAEA,IADA,GAAArhE,MACA+Y,IAAAwoD,GAAAxoD,IAAAsoD,GACArhE,EAAAqB,KAAA0X,GACAA,EAAAqoD,GAEA7wD,IAAA,OAAAvQ,EAAAuQ,EAAAvQ,EAAAxD,OACA8kC,EAAAjgC,KAAArB,GAGA,MAAAshC,GAGA,QAAAw2B,GAAAx2B,EAAA6U,GAEA,MADA,OAAAA,MAAA0qB,GAAAv/B,KACA6U,EAAAt4C,IAAA6jE,GAAA5jE,KAAAmjE,IAAAvjD,OAAA4jB,EAAAzjC,IAAA,SAAAoU,GACA,MAAAkkC,GAAAt4C,IAAA,SAAAkjE,GACA,MAAAW,GAAAzvD,EAAA8uD,MACOjjE,KAAAmjE,MACFnjE,KAAA,MAGL,QAAA6jE,GAAArgC,GACA,MAAAA,GAAAzjC,IAAA+jE,GAAA9jE,KAAA,MAGA,QAAA8jE,GAAA3vD,GACA,MAAAA,GAAApU,IAAA6jE,GAAA5jE,KAAAmjE,GAGA,QAAAS,GAAAz2D,GACA,aAAAA,EAAA,GACA42D,EAAAx6D,KAAA4D,GAAA,QAAAA,EAAAoB,QAAA,gBACApB,EA9FA,GAAA42D,GAAA,GAAAC,QAAA,KAAAb,EAAA,OACAQ,EAAAR,EAAAO,WAAA,EAgGA,QACAn2D,QACA81D,YACArJ,SACA6J,cAkBA,QAAA9zD,IAAA/B,EAAA/G,GAqBA,QAAAg9D,GAAA7lE,GACA,GAAAyM,GAAAiE,EAAAkB,EAAAlB,MACA,KAAAA,GAAAo1D,GAAAl0D,IACAlB,GAAA,KAAAA,EAAA,KACA,MAAAA,EAAA,CACA,GAAAY,EACA,IACA7E,EAAA6E,EAAA5R,KAAAiS,EAAAC,GACS,MAAA1H,GAET,WADA67D,GAAArmE,KAAA,QAAAiS,EAAAzH,OAIAuC,GAAAmF,CAEAm0D,GAAArmE,KAAA,OAAAiS,EAAAlF,OAEAs5D,GAAArmE,KAAA,QAAAiS,EAAA3R,GArCA,GAAA2R,GAEAq0D,EAKA10D,EACAc,EAPA2zD,EAAA7B,GAAA,wCAEAn4D,EAAAu6C,IACA10C,EAAA,GAAAC,gBACAo0D,EAAA,KACAv6B,EAAA,KAGAnkC,EAAA,CAsHA,IAnHA,oBAAA2+D,iBACA,mBAAAt0D,KACA,oBAAAzG,KAAAyE,KAAAgC,EAAA,GAAAs0D,iBAEA,UAAAt0D,GACAA,EAAApF,OAAAoF,EAAAlF,QAAAkF,EAAAK,UAAA4zD,EACAj0D,EAAAu0D,mBAAA,SAAAnmE,GAA8C4R,EAAAw0D,WAAA,GAAAP,EAAA7lE,IAuB9C4R,EAAAy0D,WAAA,SAAAn8D,GACA67D,EAAArmE,KAAA,WAAAiS,EAAAzH,IAGAyH,GACAzF,OAAA,SAAApM,EAAAgG,GAEA,MADAhG,MAAA,IAAAsL,cACA5I,UAAAC,OAAA,EAAAsJ,EAAA1L,IAAAP,IACA,MAAAgG,EAAAiG,EAAAo1C,OAAArhD,GACAiM,EAAAyB,IAAA1N,EAAAgG,EAAA,IACA6L,IAIAq0D,SAAA,SAAAlgE,GACA,MAAAtD,WAAAC,QACAujE,EAAA,MAAAlgE,EAAA,KAAAA,EAAA,GACA6L,GAFAq0D,GAOA5zD,aAAA,SAAAtM,GACA,MAAAtD,WAAAC,QACA2P,EAAAtM,EACA6L,GAFAS,GAKA7K,QAAA,SAAAzB,GACA,MAAAtD,WAAAC,QACA8E,GAAAzB,EACA6L,GAFApK,GAKA0+D,KAAA,SAAAngE,GACA,MAAAtD,WAAAC,OAAA,EAAAwjE,KAAA,MAAAngE,EAAA,KAAAA,EAAA,GAAA6L,IAGA+5B,SAAA,SAAA5lC,GACA,MAAAtD,WAAAC,OAAA,EAAAipC,KAAA,MAAA5lC,EAAA,KAAAA,EAAA,GAAA6L,IAKAL,SAAA,SAAAxL,GAEA,MADAwL,GAAAxL,EACA6L,GAIAtR,IAAA,SAAAyJ,EAAAjB,GACA,MAAA8I,GAAAW,KAAA,MAAAxI,EAAAjB,IAIAy9D,KAAA,SAAAx8D,EAAAjB,GACA,MAAA8I,GAAAW,KAAA,OAAAxI,EAAAjB,IAIAyJ,KAAA,SAAAjD,EAAAvF,EAAAjB,GAYA,MAXA+I,GAAAM,KAAA7C,EAAAO,GAAA,EAAAq2D,EAAAv6B,GACA,MAAAs6B,GAAAj6D,EAAAmF,IAAA,WAAAnF,EAAAyB,IAAA,SAAAw4D,EAAA,QACAp0D,EAAAS,kBAAAtG,EAAAw6C,KAAA,SAAAzgD,EAAAhG,GAAoE8R,EAAAS,iBAAAvS,EAAAgG,KACpE,MAAAkgE,GAAAp0D,EAAA20D,kBAAA30D,EAAA20D,iBAAAP,GACA,MAAA5zD,IAAAR,EAAAQ,gBACA7K,EAAA,IAAAqK,EAAArK,WACA,MAAAsB,GAAA,mBAAAiB,KAAAjB,EAAAiB,IAAA,MACA,MAAAjB,GAAA,IAAAA,EAAApG,SAAAoG,EAAA29D,GAAA39D,IACA,MAAAA,GAAA8I,EAAA80D,GAAA,QAAA59D,GAAA49D,GAAA,gBAAA70D,GAAoF/I,EAAA,KAAA+I,KACpFm0D,EAAArmE,KAAA,aAAAiS,EAAAC,GACAA,EAAAU,KAAA,MAAAxI,EAAA,KAAAA,GACA6H,GAGA09C,MAAA,WAEA,MADAz9C,GAAAy9C,QACA19C,GAGA80D,GAAA,WACA,GAAA3gE,GAAAigE,EAAAU,GAAAzmD,MAAA+lD,EAAAvjE,UACA,OAAAsD,KAAAigE,EAAAp0D,EAAA7L,IAIA,MAAA+C,EAAA,CACA,sBAAAA,GAAA,SAAA+F,OAAA,qBAAA/F,EACA,OAAA8I,GAAAtR,IAAAwI,GAGA,MAAA8I,GAGA,QAAA60D,IAAA39D,GACA,gBAAAjC,EAAAgL,GACA/I,EAAA,MAAAjC,EAAAgL,EAAA,OAIA,QAAAk0D,IAAAl0D,GACA,GAAA/C,GAAA+C,EAAAQ,YACA,OAAAvD,IAAA,SAAAA,EACA+C,EAAAN,SACAM,EAAAI,aAGA,QAAAnD,IAAA63D,EAAAp1D,GACA,gBAAA1B,EAAA/G,GACA,GAAAwP,GAAA1G,GAAA/B,GAAAo2D,SAAAU,GAAAp1D,WACA,UAAAzI,EAAA,CACA,sBAAAA,GAAA,SAAA+F,OAAA,qBAAA/F,EACA,OAAAwP,GAAAhY,IAAAwI,GAEA,MAAAwP,IAsBA,QAAAsuD,IAAAD,EAAAv3D,GACA,gBAAAS,EAAAmG,EAAAlN,GACArG,UAAAC,OAAA,IAAAoG,EAAAkN,IAAA,KACA,IAAAsC,GAAA1G,GAAA/B,GAAAo2D,SAAAU,EAGA,OAFAruD,GAAAtC,IAAA,SAAA+uC,GAAyB,MAAAtiD,WAAAC,OAAA4V,EAAA/G,SAAAs1D,GAAAz3D,EAAA4G,EAAA+uC,IAAA/uC,GACzBsC,EAAAtC,OACAlN,EAAAwP,EAAAhY,IAAAwI,GAAAwP,GAIA,QAAAuuD,IAAAz3D,EAAA4G,GACA,gBAAApE,GACA,MAAAxC,GAAAwC,EAAAK,aAAA+D,IAqBA,QAAAgmB,MACA,MAAA8qC,MAAAC,GAAAC,IAAAF,GAAAG,GAAAjrC,MAAAkrC,IAGA,QAAAF,MACAF,GAAA,EAGA,QAAAK,MACA/jE,KAAAyrD,MACAzrD,KAAAgkE,MACAhkE,KAAAikE,MAAA,KA0BA,QAAAC,IAAAx+D,EAAAy+D,EAAAx7B,GACA,GAAAjvB,GAAA,GAAAqqD,GAEA,OADArqD,GAAA0qD,QAAA1+D,EAAAy+D,EAAAx7B,GACAjvB,EAGA,QAAA2qD,MACAzrC,OACA0rC,EAEA,KADA,GAAAv9D,GAAA2S,EAAA6qD,GACA7qD,IACA3S,EAAA28D,GAAAhqD,EAAAsqD,QAAA,GAAAtqD,EAAA+xC,MAAAlvD,KAAA,KAAAwK,GACA2S,IAAAuqD,QAEAK,GAGA,QAAAE,IAAA77B,GACA+6B,IAAAe,GAAA97B,GAAAk7B,GAAAjrC,OAAAkrC,GACAQ,GAAAlgE,GAAA,CACA,KACAigE,KACG,QACHC,GAAA,EACAI,KACAhB,GAAA,GAIA,QAAAiB,MACA,GAAA/rC,GAAAirC,GAAAjrC,MAAAurC,EAAAvrC,EAAA6rC,EACAN,GAAAS,KAAAd,IAAAK,EAAAM,GAAA7rC,GAGA,QAAA8rC,MAEA,IADA,GAAAtV,GAAAwL,EAAAvL,EAAAkV,GAAA57B,EAAAkN,IACAwZ,GACAA,EAAA5D,OACA9iB,EAAA0mB,EAAA2U,QAAAr7B,EAAA0mB,EAAA2U,OACA5U,EAAAC,MAAA4U,QAEArJ,EAAAvL,EAAA4U,MAAA5U,EAAA4U,MAAA,KACA5U,EAAAD,IAAA6U,MAAArJ,EAAA2J,GAAA3J,EAGAiK,IAAAzV,EACA0V,GAAAn8B,GAGA,QAAAm8B,IAAAn8B,GACA,IAAA27B,GAAA,CACAlgE,QAAAD,aAAAC,IACA,IAAA+/D,GAAAx7B,EAAA+6B,EACAS,GAAA,IACAx7B,EAAAkN,MAAAzxC,GAAAC,WAAAmgE,GAAAL,IACAvuD,QAAA/P,cAAA+P,OAEAA,QAAA7P,YAAA4+D,GAAAC,KACAN,GAAA,EAAAX,GAAAa,MAIA,QAAAO,IAAAr/D,EAAAy+D,EAAAx7B,GACA,GAAAjvB,GAAA,GAAAqqD,GAMA,OALAI,GAAA,MAAAA,EAAA,GAAAA,EACAzqD,EAAA0qD,QAAA,SAAAY,GACAtrD,EAAA0mC,OACA16C,EAAAs/D,EAAAb,IACGA,EAAAx7B,GACHjvB,EAGA,QAAAurD,IAAAv/D,EAAAy+D,EAAAx7B,GACA,GAAAjvB,GAAA,GAAAqqD,IAAAmB,EAAAf,CACA,cAAAA,GAAAzqD,EAAA0qD,QAAA1+D,EAAAy+D,EAAAx7B,GAAAjvB,IACAyqD,KAAAx7B,EAAA,MAAAA,EAAA/P,MAAA+P,EACAjvB,EAAA0qD,QAAA,QAAAvuD,GAAAmvD,GACAA,GAAAE,EACAxrD,EAAA0qD,QAAAvuD,EAAAqvD,GAAAf,EAAAx7B,GACAjjC,EAAAs/D,IACGb,EAAAx7B,GACHjvB,GAKA,QAAAyrD,IAAAC,EAAAC,EAAA9rD,EAAA+rD,GAEA,QAAA1vD,GAAAqyB,GACA,MAAAm9B,GAAAn9B,EAAA,GAAA1B,OAAA0B,MAqDA,MAlDAryB,GAAA7D,MAAA6D,EAEAA,EAAAnF,KAAA,SAAAw3B,GACA,MAAAm9B,GAAAn9B,EAAA,GAAA1B,MAAA0B,EAAA,IAAAo9B,EAAAp9B,EAAA,GAAAm9B,EAAAn9B,MAGAryB,EAAAwmD,MAAA,SAAAn0B,GACA,GAAAs9B,GAAA3vD,EAAAqyB,GACAg4B,EAAArqD,EAAAnF,KAAAw3B,EACA,OAAAA,GAAAs9B,EAAAtF,EAAAh4B,EAAAs9B,EAAAtF,GAGArqD,EAAAkT,OAAA,SAAAmf,EAAA9M,GACA,MAAAkqC,GAAAp9B,EAAA,GAAA1B,OAAA0B,GAAA,MAAA9M,EAAA,EAAA3qB,KAAAuB,MAAAopB,IAAA8M,GAGAryB,EAAA4yB,MAAA,SAAAt2B,EAAAkuC,EAAAjlB,GACA,GAAAqN,KAGA,IAFAt2B,EAAA0D,EAAAnF,KAAAyB,GACAipB,EAAA,MAAAA,EAAA,EAAA3qB,KAAAuB,MAAAopB,KACAjpB,EAAAkuC,MAAAjlB,EAAA,SAAAqN,EACA,IAAAA,EAAAxmC,KAAA,GAAAukC,OAAAr0B,UAAoCmzD,EAAAnzD,EAAAipB,GAAAiqC,EAAAlzD,KAAAkuC,EACpC,OAAA5X,IAGA5yB,EAAA4vD,OAAA,SAAAx9D,GACA,MAAAm9D,IAAA,SAAAl9B,GACA,KAAAm9B,EAAAn9B,IAAAjgC,EAAAigC,MAAA20B,QAAA30B,EAAA,IACK,SAAAA,EAAA9M,GACL,OAAAA,GAAA,QAAAkqC,EAAAp9B,EAAA,IAAAjgC,EAAAigC,SAIA1uB,IACA3D,EAAA2D,MAAA,SAAArH,EAAAC,GAGA,MAFAszD,IAAA7I,SAAA1qD,GAAAwzD,GAAA9I,SAAAzqD,GACAizD,EAAAK,IAAAL,EAAAM,IACAl1D,KAAAuB,MAAAwH,EAAAksD,GAAAC,MAGA9vD,EAAA+vD,MAAA,SAAAxqC,GAEA,MADAA,GAAA3qB,KAAAuB,MAAAopB,GACAyqC,SAAAzqC,MAAA,EACAA,EAAA,EACAvlB,EAAA4vD,OAAAF,EACA,SAAA5oE,GAA6B,MAAA4oE,GAAA5oE,GAAAy+B,IAAA,GAC7B,SAAAz+B,GAA6B,MAAAkZ,GAAA2D,MAAA,EAAA7c,GAAAy+B,IAAA,IAH7BvlB,EADA,OAQAA,EAmFA,QAAAiwD,IAAAxpE,GACA,MAAA8oE,IAAA,SAAAl9B,GACAA,EAAA69B,QAAA79B,EAAA89B,WAAA99B,EAAA+9B,SAAA,EAAA3pE,GAAA,GACA4rC,EAAAg+B,SAAA,UACG,SAAAh+B,EAAA9M,GACH8M,EAAA69B,QAAA79B,EAAA89B,UAAA,EAAA5qC,IACG,SAAAjpB,EAAAC,GACH,OAAAA,EAAAD,GAAAC,EAAA+zD,oBAAAh0D,EAAAg0D,qBAAAC,IAAAC,KA6FA,QAAAC,IAAAhqE,GACA,MAAA8oE,IAAA,SAAAl9B,GACAA,EAAAq+B,WAAAr+B,EAAAs+B,cAAAt+B,EAAAu+B,YAAA,EAAAnqE,GAAA,GACA4rC,EAAAw+B,YAAA,UACG,SAAAx+B,EAAA9M,GACH8M,EAAAq+B,WAAAr+B,EAAAs+B,aAAA,EAAAprC,IACG,SAAAjpB,EAAAC,GACH,OAAAA,EAAAD,GAAAk0D,KA4DA,QAAAM,IAAAvxD,EAAA1X,GACA,IAAApB,GAAA8Y,EAAA1X,EAAA0X,EAAAwxD,cAAAlpE,EAAA,GAAA0X,EAAAwxD,iBAAAr6D,QAAA,mBACA,IAAAjQ,GAAAuqE,EAAAzxD,EAAAxN,MAAA,EAAAtL,EAIA,QACAuqE,EAAAtnE,OAAA,EAAAsnE,EAAA,GAAAA,EAAAj/D,MAAA,GAAAi/D,GACAzxD,EAAAxN,MAAAtL,EAAA,IAIA,QAAAwqE,IAAA1xD,GACA,MAAAA,GAAAuxD,GAAAl2D,KAAAgwC,IAAArrC,QAAA,GAAAiqC,IAGA,QAAA0nB,IAAAC,EAAAC,GACA,gBAAArkE,EAAA2O,GAOA,IANA,GAAAjV,GAAAsG,EAAArD,OACAoa,KACAlI,EAAA,EACA5K,EAAAmgE,EAAA,GACAznE,EAAA,EAEAjD,EAAA,GAAAuK,EAAA,IACAtH,EAAAsH,EAAA,EAAA0K,IAAA1K,EAAA4J,KAAAJ,IAAA,EAAAkB,EAAAhS,IACAoa,EAAA1X,KAAAW,EAAAs2C,UAAA58C,GAAAuK,EAAAvK,EAAAuK,OACAtH,GAAAsH,EAAA,GAAA0K,KACA1K,EAAAmgE,EAAAv1D,KAAA,GAAAu1D,EAAAznE,OAGA,OAAAoa,GAAAw+C,UAAAz5D,KAAAuoE,IAIA,QAAAC,IAAA9xD,EAAA1X,GACA0X,IAAA+xD,YAAAzpE,EAEA0pE,GAAA,OAAArkB,GAAA3lD,EAAAgY,EAAA7V,OAAAjD,EAAA,EAAAwmD,GAAA,EAAiDxmD,EAAAc,IAAOd,EACxD,OAAA8Y,EAAA9Y,IACA,QAAAwmD,EAAAC,EAAAzmD,CAA4B,MAC5B,aAAAwmD,MAAAxmD,GAAqCymD,EAAAzmD,CAAQ,MAC7C,cAAA8qE,EACA,SAAAtkB,EAAA,IAAAA,EAAA,GAIA,MAAAA,GAAA,EAAA1tC,EAAAxN,MAAA,EAAAk7C,GAAA1tC,EAAAxN,MAAAm7C,EAAA,GAAA3tC,EAKA,QAAAiyD,IAAAjyD,EAAA1X,GACA,GAAAf,GAAAgqE,GAAAvxD,EAAA1X,EACA,KAAAf,EAAA,MAAAyY,GAAA,EACA,IAAAyxD,GAAAlqE,EAAA,GACA2qE,EAAA3qE,EAAA,GACAL,EAAAgrE,GAAAC,GAAA,EAAA92D,KAAAJ,KAAA,EAAAI,KAAAF,IAAA,EAAAE,KAAAuB,MAAAs1D,EAAA,QACAlqE,EAAAypE,EAAAtnE,MACA,OAAAjD,KAAAc,EAAAypE,EACAvqE,EAAAc,EAAAypE,EAAA,GAAAl/D,OAAArL,EAAAc,EAAA,GAAAsB,KAAA,KACApC,EAAA,EAAAuqE,EAAAj/D,MAAA,EAAAtL,GAAA,IAAAuqE,EAAAj/D,MAAAtL,GACA,QAAAqL,OAAA,EAAArL,GAAAoC,KAAA,KAAAioE,GAAAvxD,EAAA3E,KAAAJ,IAAA,EAAA3S,EAAApB,EAAA,OAGA,QAAAkrE,IAAApyD,EAAA1X,GACA,GAAAf,GAAAgqE,GAAAvxD,EAAA1X,EACA,KAAAf,EAAA,MAAAyY,GAAA,EACA,IAAAyxD,GAAAlqE,EAAA,GACA2qE,EAAA3qE,EAAA,EACA,OAAA2qE,GAAA,UAAA3/D,QAAA2/D,GAAA5oE,KAAA,KAAAmoE,EACAA,EAAAtnE,OAAA+nE,EAAA,EAAAT,EAAAj/D,MAAA,EAAA0/D,EAAA,OAAAT,EAAAj/D,MAAA0/D,EAAA,GACAT,EAAA,GAAAl/D,OAAA2/D,EAAAT,EAAAtnE,OAAA,GAAAb,KAAA,KAuBA,QAAA+oE,IAAAC,GACA,UAAAC,IAAAD,GAGA,QAAAC,IAAAD,GACA,KAAAE,EAAA57C,GAAA4sC,KAAA8O,IAAA,SAAAh8D,OAAA,mBAAAg8D,EAEA,IAAAE,GACAC,EAAAD,EAAA,QACAE,EAAAF,EAAA,QACApS,EAAAoS,EAAA,QACAzU,EAAAyU,EAAA,OACA7K,IAAA6K,EAAA,GACAr2D,EAAAq2D,EAAA,KAAAA,EAAA,GACAG,IAAAH,EAAA,GACAI,EAAAJ,EAAA,KAAAA,EAAA,GAAAhgE,MAAA,GACA+D,EAAAi8D,EAAA,MAGA,OAAAj8D,GAAAo8D,GAAA,EAAAp8D,EAAA,KAGAs8D,GAAAt8D,OAAA,KAGAoxD,GAAA,MAAA8K,GAAA,MAAAC,KAAA/K,GAAA,EAAA8K,EAAA,IAAAC,EAAA,KAEA7nE,KAAA4nE,OACA5nE,KAAA6nE,QACA7nE,KAAAu1D,OACAv1D,KAAAkzD,SACAlzD,KAAA88D,OACA98D,KAAAsR,QACAtR,KAAA8nE,QACA9nE,KAAA+nE,YACA/nE,KAAA0L,OAiBA,QAAAu8D,IAAA9yD,GACA,MAAAA,GAGA,QAAA+yD,IAAAl1B,GAKA,QAAAm1B,GAAAV,GAgCA,QAAAhP,GAAA91D,GACA,GAEAtG,GAAAc,EAAAV,EAFA2rE,EAAAC,EACAC,EAAAC,CAGA,UAAA78D,EACA48D,EAAAE,EAAA7lE,GAAA2lE,EACA3lE,EAAA,OACO,CACPA,IAIA,IAAA8lE,IAAA9lE,EAAA,KAAAA,EAAA,KAAAA,IAAA,KAOA,IAJAA,EAAA6lE,EAAA7lE,EAAAolE,GAIAU,EAGA,IAFApsE,GAAA,EAAAc,EAAAwF,EAAArD,OACAmpE,GAAA,IACApsE,EAAAc,GACA,OAAAV,EAAAkG,EAAAw/D,WAAA9lE,KAAAI,EAAA,IACA,MAAAiP,GAAA,GAAAjP,KAAA,KACA,MAAAiP,GAAA,GAAAjP,KAAA,IACAgsE,GAAA,CACA,OAWA,GALAL,GAAAK,EAAA,MAAAlT,IAAA,UAAAA,GAAA,MAAAA,EAAA,GAAAA,GAAA6S,EACAE,KAAA,MAAA58D,EAAAg9D,GAAA,EAAApB,GAAA,QAAAmB,GAAA,MAAAlT,EAAA,QAIAoT,EAEA,IADAtsE,GAAA,EAAAc,EAAAwF,EAAArD,SACAjD,EAAAc,GACA,OAAAV,EAAAkG,EAAAw/D,WAAA9lE,KAAAI,EAAA,IACA6rE,GAAA,KAAA7rE,EAAAmsE,EAAAjmE,EAAAgF,MAAAtL,EAAA,GAAAsG,EAAAgF,MAAAtL,IAAAisE,EACA3lE,IAAAgF,MAAA,EAAAtL,EACA,QAOAyrE,IAAAhL,IAAAn6D,EAAAkmE,EAAAlmE,EAAAkzC,KAGA,IAAAv2C,GAAA8oE,EAAA9oE,OAAAqD,EAAArD,OAAAgpE,EAAAhpE,OACAsS,EAAAtS,EAAAgS,EAAA,GAAA5J,OAAA4J,EAAAhS,EAAA,GAAAb,KAAAmpE,GAAA,EAMA,QAHAE,GAAAhL,IAAAn6D,EAAAkmE,EAAAj3D,EAAAjP,EAAAiP,EAAAtS,OAAAgS,EAAAg3D,EAAAhpE,OAAAu2C,KAAAjkC,EAAA,IAGAi2D,GACA,cAAAO,GAAAzlE,EAAA2lE,EAAA12D,CACA,eAAAw2D,GAAAx2D,EAAAjP,EAAA2lE,CACA,eAAA12D,GAAAjK,MAAA,EAAArI,EAAAsS,EAAAtS,QAAA,GAAA8oE,EAAAzlE,EAAA2lE,EAAA12D,EAAAjK,MAAArI,GAEA,MAAAsS,GAAAw2D,EAAAzlE,EAAA2lE,EAlGAb,EAAAD,GAAAC,EAEA,IAAAG,GAAAH,EAAAG,KACAC,EAAAJ,EAAAI,MACAtS,EAAAkS,EAAAlS,KACArC,EAAAuU,EAAAvU,OACA4J,EAAA2K,EAAA3K,KACAxrD,EAAAm2D,EAAAn2D,MACAw2D,EAAAL,EAAAK,MACAC,EAAAN,EAAAM,UACAr8D,EAAA+7D,EAAA/7D,KAIA28D,EAAA,MAAAnV,EAAA4V,EAAA,SAAA5V,GAAA,SAAAlrD,KAAA0D,GAAA,IAAAA,EAAAzD,cAAA,GACAsgE,EAAA,MAAArV,EAAA4V,EAAA,UAAA9gE,KAAA0D,GAAA,OAKA88D,EAAAR,GAAAt8D,GACAi9D,GAAAj9D,GAAA,aAAA1D,KAAA0D,EAoFA,OA9EAq8D,GAAA,MAAAA,EAAAr8D,EAAA,KACA,SAAA1D,KAAA0D,GAAA8E,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,GAAAy3D,IACAv3D,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,GAAAy3D,IAwEAtP,EAAAttD,SAAA,WACA,MAAAs8D,GAAA,IAGAhP,EAGA,QAAAsQ,GAAAtB,EAAA9kE,GACA,GAAAuO,GAAAi3D,GAAAV,EAAAD,GAAAC,KAAA/7D,KAAA,IAAA+7D,IACA1gE,EAAA,EAAAyJ,KAAAJ,KAAA,EAAAI,KAAAF,IAAA,EAAAE,KAAAuB,MAAA80D,GAAAlkE,GAAA,KACAwV,EAAA3H,KAAAkwC,IAAA,IAAA35C,GACAshE,EAAAK,GAAA,EAAA3hE,EAAA,EACA,iBAAApE,GACA,MAAAuO,GAAAiH,EAAAxV,GAAA0lE,GAvHA,GAAAQ,GAAA71B,EAAA+zB,UAAA/zB,EAAAg0B,UAAAF,GAAA9zB,EAAA+zB,SAAA/zB,EAAAg0B,WAAAiB,GACAa,EAAA91B,EAAA81B,SACAF,EAAA51B,EAAA41B,OAyHA,QACAnQ,OAAA0P,EACAY,gBAYA,QAAAC,IAAAzQ,GAIA,MAHAvlB,IAAAk1B,GAAA3P,GACAp8D,EAAAs8D,OAAAzlB,GAAAylB,OACAt8D,EAAA4sE,aAAA/1B,GAAA+1B,aACA/1B,GAGA,QAAAi2B,IAAA9tC,GACA,MAAA3qB,MAAAJ,IAAA,GAAAy2D,GAAAr2D,KAAAgwC,IAAArlB,KAGA,QAAA+tC,IAAA/tC,EAAAx4B,GACA,MAAA6N,MAAAJ,IAAA,IAAAI,KAAAJ,KAAA,EAAAI,KAAAF,IAAA,EAAAE,KAAAuB,MAAA80D,GAAAlkE,GAAA,KAAAkkE,GAAAr2D,KAAAgwC,IAAArlB,KAGA,QAAAguC,IAAAhuC,EAAA/qB,GAEA,MADA+qB,GAAA3qB,KAAAgwC,IAAArlB,GAAA/qB,EAAAI,KAAAgwC,IAAApwC,GAAA+qB,EACA3qB,KAAAJ,IAAA,EAAAy2D,GAAAz2D,GAAAy2D,GAAA1rC,IAAA,EAGA,QAAAiuC,IAAA1sE,GACA,MAAAA,EAAA6a,GAAA7a,EAAA6a,EAAA,KACA,GAAA0wB,GAAA,GAAA1B,OAAA,EAAA7pC,EAAAF,EAAAE,MAAA2b,EAAA3b,EAAAyc,EAAAzc,EAAAod,EAAApd,EAAAsd,EAEA,OADAiuB,GAAAohC,YAAA3sE,EAAA6a,GACA0wB,EAEA,UAAA1B,MAAA7pC,EAAA6a,EAAA7a,EAAAF,EAAAE,MAAA2b,EAAA3b,EAAAyc,EAAAzc,EAAAod,EAAApd,EAAAsd,GAGA,QAAAsvD,IAAA5sE,GACA,MAAAA,EAAA6a,GAAA7a,EAAA6a,EAAA,KACA,GAAA0wB,GAAA,GAAA1B,WAAAgjC,KAAA,EAAA7sE,EAAAF,EAAAE,MAAA2b,EAAA3b,EAAAyc,EAAAzc,EAAAod,EAAApd,EAAAsd,GAEA,OADAiuB,GAAAuhC,eAAA9sE,EAAA6a,GACA0wB,EAEA,UAAA1B,WAAAgjC,IAAA7sE,EAAA6a,EAAA7a,EAAAF,EAAAE,MAAA2b,EAAA3b,EAAAyc,EAAAzc,EAAAod,EAAApd,EAAAsd,IAGA,QAAAyvD,IAAAlyD,GACA,OAAUA,IAAA/a,EAAA,EAAAE,EAAA,EAAA2b,EAAA,EAAAc,EAAA,EAAAW,EAAA,EAAAE,EAAA,GAGV,QAAA0vD,IAAA12B,GA8GA,QAAAm1B,GAAAV,EAAAkC,GACA,gBAAA1hC,GACA,GAIAxrC,GACAmtE,EACAnR,EANAoR,KACAxtE,GAAA,EACAmV,EAAA,EACArU,EAAAsqE,EAAAnoE,MAOA,KAFA2oC,YAAA1B,QAAA0B,EAAA,GAAA1B,OAAA0B,MAEA5rC,EAAAc,GACA,KAAAsqE,EAAAtF,WAAA9lE,KACAwtE,EAAA7nE,KAAAylE,EAAA9/D,MAAA6J,EAAAnV,IACA,OAAAutE,EAAAE,GAAArtE,EAAAgrE,EAAAzuB,SAAA38C,KAAAI,EAAAgrE,EAAAzuB,SAAA38C,GACAutE,EAAA,MAAAntE,EAAA,SACAg8D,EAAAkR,EAAAltE,QAAAg8D,EAAAxwB,EAAA2hC,IACAC,EAAA7nE,KAAAvF,GACA+U,EAAAnV,EAAA,EAKA,OADAwtE,GAAA7nE,KAAAylE,EAAA9/D,MAAA6J,EAAAnV,IACAwtE,EAAAprE,KAAA,KAIA,QAAAsrE,GAAAtC,EAAAuC,GACA,gBAAAH,GACA,GAAAntE,GAAA+sE,GAAA,KAEA,IADAQ,EAAAvtE,EAAA+qE,EAAAoC,GAAA,OACAA,EAAAvqE,OAAA,WAMA,IAHA,KAAA5C,OAAA2b,EAAA3b,EAAA2b,EAAA,MAAA3b,EAAAe,GAGA,KAAAf,IAAA,KAAAA,GAAA,CACA,KAAAA,OAAA6U,EAAA,KAAA7U,GAAA,IACA,IAAAwtE,GAAA,KAAAxtE,GAAA4sE,GAAAG,GAAA/sE,EAAA6a,IAAAivD,YAAAwD,EAAAP,GAAA/sE,EAAA6a,IAAAyuD,QACAtpE,GAAAF,EAAA,EACAE,IAAA,KAAAA,MAAA6U,EAAA,OAAA7U,EAAAof,GAAAouD,EAAA,KAAAxtE,EAAA6U,EAAA,EAAA7U,EAAAoe,GAAAovD,EAAA,KAKA,WAAAxtE,IACAA,EAAA2b,GAAA3b,EAAA2iC,EAAA,MACA3iC,EAAAyc,GAAAzc,EAAA2iC,EAAA,IACAiqC,GAAA5sE,IAIAstE,EAAAttE,IAIA,QAAAutE,GAAAvtE,EAAA+qE,EAAAoC,EAAAr4D,GAOA,IANA,GAGA/U,GACAuP,EAJA3P,EAAA,EACAc,EAAAsqE,EAAAnoE,OACA9C,EAAAqtE,EAAAvqE,OAIAjD,EAAAc,GAAA,CACA,GAAAqU,GAAAhV,EAAA,QAEA,UADAC,EAAAgrE,EAAAtF,WAAA9lE,OAIA,GAFAI,EAAAgrE,EAAAzuB,OAAA38C,OACA2P,EAAAm+D,EAAA1tE,IAAAqtE,IAAArC,EAAAzuB,OAAA38C,KAAAI,MACA+U,EAAAxF,EAAAtP,EAAAmtE,EAAAr4D,IAAA,eACO,IAAA/U,GAAAotE,EAAA1H,WAAA3wD,KACP,SAIA,MAAAA,GAGA,QAAA44D,GAAA1tE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAktE,EAAA1R,KAAAkR,EAAAliE,MAAAtL,GACA,OAAAc,IAAAT,EAAAe,EAAA6sE,EAAAntE,EAAA,GAAA8K,eAAA5L,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAirE,GAAA7tE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAqtE,EAAA7R,KAAAkR,EAAAliE,MAAAtL,GACA,OAAAc,IAAAT,EAAA6U,EAAAk5D,EAAAttE,EAAA,GAAA8K,eAAA5L,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAorE,GAAAhuE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAwtE,EAAAhS,KAAAkR,EAAAliE,MAAAtL,GACA,OAAAc,IAAAT,EAAA6U,EAAAq5D,EAAAztE,EAAA,GAAA8K,eAAA5L,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAurE,GAAAnuE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAA2tE,EAAAnS,KAAAkR,EAAAliE,MAAAtL,GACA,OAAAc,IAAAT,EAAAF,EAAAuuE,EAAA5tE,EAAA,GAAA8K,eAAA5L,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAA0rE,GAAAtuE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAA8tE,EAAAtS,KAAAkR,EAAAliE,MAAAtL,GACA,OAAAc,IAAAT,EAAAF,EAAA0uE,EAAA/tE,EAAA,GAAA8K,eAAA5L,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAA6rE,GAAAzuE,EAAAmtE,EAAAxtE,GACA,MAAA4tE,GAAAvtE,EAAA0uE,EAAAvB,EAAAxtE,GAGA,QAAAgvE,GAAA3uE,EAAAmtE,EAAAxtE,GACA,MAAA4tE,GAAAvtE,EAAA4uE,EAAAzB,EAAAxtE,GAGA,QAAAkvE,GAAA7uE,EAAAmtE,EAAAxtE,GACA,MAAA4tE,GAAAvtE,EAAA8uE,EAAA3B,EAAAxtE,GAGA,QAAAovE,GAAA/uE,GACA,MAAAgvE,GAAAhvE,EAAAspE,UAGA,QAAA2F,GAAAjvE,GACA,MAAAkvE,GAAAlvE,EAAAspE,UAGA,QAAA6F,GAAAnvE,GACA,MAAAovE,GAAApvE,EAAAqvE,YAGA,QAAAC,GAAAtvE,GACA,MAAAuvE,GAAAvvE,EAAAqvE,YAGA,QAAAG,GAAAxvE,GACA,MAAAyvE,KAAAzvE,EAAA0vE,YAAA,KAGA,QAAAC,GAAA3vE,GACA,MAAAgvE,GAAAhvE,EAAA8pE,aAGA,QAAA8F,GAAA5vE,GACA,MAAAkvE,GAAAlvE,EAAA8pE,aAGA,QAAA+F,GAAA7vE,GACA,MAAAovE,GAAApvE,EAAA8vE,eAGA,QAAAC,GAAA/vE,GACA,MAAAuvE,GAAAvvE,EAAA8vE,eAGA,QAAAE,GAAAhwE,GACA,MAAAyvE,KAAAzvE,EAAAiwE,eAAA,KAvQA,GAAAvB,GAAAp4B,EAAA45B,SACAtB,EAAAt4B,EAAA/K,KACAujC,EAAAx4B,EAAArK,KACAwjC,EAAAn5B,EAAA65B,QACAjB,EAAA54B,EAAA85B,KACApB,EAAA14B,EAAA+5B,UACAd,EAAAj5B,EAAAg6B,OACAlB,EAAA94B,EAAAi6B,YAEA5C,EAAA6C,GAAAf,GACA7B,EAAA6C,GAAAhB,GACAxB,EAAAuC,GAAAtB,GACAhB,EAAAuC,GAAAvB,GACApB,EAAA0C,GAAAxB,GACAjB,EAAA0C,GAAAzB,GACAT,EAAAiC,GAAAjB,GACAf,EAAAiC,GAAAlB,GACAnB,EAAAoC,GAAApB,GACAf,EAAAoC,GAAArB,GAEAnC,GACAhpE,EAAA8qE,EACA/zD,EAAAi0D,EACA9qE,EAAAgrE,EACA9zD,EAAAi0D,EACAvvE,EAAA,KACAC,EAAA0wE,GACArmE,EAAAqmE,GACA/0D,EAAAg1D,GACA/0D,EAAAg1D,GACA97D,EAAA+7D,GACAvzD,EAAAwzD,GACAhxE,EAAAixE,GACAt0D,EAAAu0D,GACAjwE,EAAAyuE,EACApyD,EAAA6zD,GACA7yD,EAAA8yD,GACAr8D,EAAAs8D,GACA/xD,EAAAgyD,GACA34D,EAAA,KACAqW,EAAA,KACAjU,EAAAw2D,GACA/hD,EAAAgiD,GACA3uC,EAAA4uC,GACAC,IAAAC,IAGAC,GACAztE,EAAA0rE,EACA30D,EAAA40D,EACAzrE,EAAA0rE,EACAx0D,EAAA00D,EACAhwE,EAAA,KACAC,EAAA2xE,GACAtnE,EAAAsnE,GACAh2D,EAAAi2D,GACAh2D,EAAAi2D,GACA/8D,EAAAg9D,GACAx0D,EAAAy0D,GACAjyE,EAAAkyE,GACAv1D,EAAAw1D,GACAlxE,EAAAivE,EACA5yD,EAAA80D,GACA9zD,EAAA+zD,GACAt9D,EAAAu9D,GACAhzD,EAAAizD,GACA55D,EAAA,KACAqW,EAAA,KACAjU,EAAAy3D,GACAhjD,EAAAijD,GACA5vC,EAAA6vC,GACAhB,IAAAC,IAGAhE,GACAxpE,EAAA4pE,EACA7yD,EAAAgzD,EACA7pE,EAAAgqE,EACA9yD,EAAAizD,EACAvuE,EAAA0uE,EACAzuE,EAAAyyE,GACApoE,EAAAooE,GACA92D,EAAA+2D,GACA92D,EAAA82D,GACA59D,EAAA69D,GACAr1D,EAAAs1D,GACA9yE,EAAA+yE,GACAp2D,EAAAq2D,GACA/xE,EAAA2sE,EACAtwD,EAAA21D,GACA30D,EAAA40D,GACAn+D,EAAAo+D,GACA7zD,EAAA8zD,GACAz6D,EAAAk2D,EACA7/C,EAAA+/C,EACAh0D,EAAAs4D,GACA7jD,EAAA8jD,GACAzwC,EAAA0wC,GACA7B,IAAA8B,GAwKA,OApKArG,GAAAx0D,EAAAgzD,EAAAmD,EAAA3B,GACAA,EAAAn+C,EAAA28C,EAAAqD,EAAA7B,GACAA,EAAAltE,EAAA0rE,EAAAiD,EAAAzB,GACAyE,EAAAj5D,EAAAgzD,EAAAmD,EAAA8C,GACAA,EAAA5iD,EAAA28C,EAAAqD,EAAA4C,GACAA,EAAA3xE,EAAA0rE,EAAAiD,EAAAgD,IAgKA3V,OAAA,SAAAgP,GACA,GAAAv2D,GAAAi3D,EAAAV,GAAA,GAAAkC,EAEA,OADAz4D,GAAA/F,SAAA,WAA+B,MAAAs8D,IAC/Bv2D,GAEAlF,MAAA,SAAAy7D,GACA,GAAAhqE,GAAAssE,EAAAtC,GAAA,GAAA2B,GAEA,OADA3rE,GAAA0N,SAAA,WAA+B,MAAAs8D,IAC/BhqE,GAEAwyE,UAAA,SAAAxI,GACA,GAAAv2D,GAAAi3D,EAAAV,GAAA,GAAA2G,EAEA,OADAl9D,GAAA/F,SAAA,WAA+B,MAAAs8D,IAC/Bv2D,GAEAg/D,SAAA,SAAAzI,GACA,GAAAhqE,GAAAssE,EAAAtC,EAAA6B,GAEA,OADA7rE,GAAA0N,SAAA,WAA+B,MAAAs8D,IAC/BhqE,IASA,QAAAmsE,IAAAjnE,EAAAilE,EAAAt2D,GACA,GAAAikD,GAAA5yD,EAAA,SACAknE,GAAAtU,GAAA5yD,KAAA,GACArD,EAAAuqE,EAAAvqE,MACA,OAAAi2D,IAAAj2D,EAAAgS,EAAA,GAAA5J,OAAA4J,EAAAhS,EAAA,GAAAb,KAAAmpE,GAAAiC,KAGA,QAAAsG,IAAAzyE,GACA,MAAAA,GAAAsP,QAAAojE,GAAA,QAGA,QAAAlD,IAAAmD,GACA,UAAA5N,QAAA,OAAA4N,EAAA7xE,IAAA2xE,IAAA1xE,KAAA,cAGA,QAAA0uE,IAAAkD,GAEA,IADA,GAAA7xE,MAAcnC,GAAA,EAAAc,EAAAkzE,EAAA/wE,SACdjD,EAAAc,GAAAqB,EAAA6xE,EAAAh0E,GAAA4L,eAAA5L,CACA,OAAAmC,GAGA,QAAAmxE,IAAAjzE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,EAAA6U,GAAApU,EAAA,GAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAowE,IAAAhzE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,GACA,OAAAc,IAAAT,EAAAoe,GAAA3d,EAAA,GAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAswE,IAAAlzE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,GACA,OAAAc,IAAAT,EAAAof,GAAA3e,EAAA,GAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAwwE,IAAApzE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,EAAA6a,GAAApa,EAAA,GAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAuwE,IAAAnzE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,EAAA6a,GAAApa,EAAA,KAAAA,EAAA,gBAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAywE,IAAArzE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAA,gCAAAw7D,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,EAAA2iC,EAAAliC,EAAA,OAAAA,EAAA,IAAAA,EAAA,WAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAiwE,IAAA7yE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,EAAAF,EAAAW,EAAA,KAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAA6vE,IAAAzyE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,KAAAS,EAAA,GAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAA+vE,IAAA3yE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,EAAAF,EAAA,EAAAE,KAAAS,EAAA,GAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAA8vE,IAAA1yE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,EAAA2b,GAAAlb,EAAA,GAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAkwE,IAAA9yE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,EAAAyc,GAAAhc,EAAA,GAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAmwE,IAAA/yE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,EAAAod,GAAA3c,EAAA,GAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAAgwE,IAAA5yE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAmzE,GAAA3X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,IAAAT,EAAAsd,GAAA7c,EAAA,GAAAd,EAAAc,EAAA,GAAAmC,SAAA,EAGA,QAAA0wE,IAAAtzE,EAAAmtE,EAAAxtE,GACA,GAAAc,GAAAozE,GAAA5X,KAAAkR,EAAAliE,MAAAtL,IAAA,GACA,OAAAc,GAAAd,EAAAc,EAAA,GAAAmC,QAAA,EAGA,QAAA8tE,IAAA1wE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAqpE,UAAAtoE,EAAA,GAGA,QAAA4vE,IAAA3wE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAA0vE,WAAA3uE,EAAA,GAGA,QAAA6vE,IAAA5wE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAA0vE,WAAA,OAAA3uE,EAAA,GAGA,QAAA8vE,IAAA7wE,EAAAe,GACA,MAAAmsE,IAAA,EAAAM,GAAA3wD,MAAAi3D,GAAA9zE,MAAAe,EAAA,GAGA,QAAA+vE,IAAA9wE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAA+zE,kBAAAhzE,EAAA,GAGA,QAAAgwE,IAAA/wE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAqvE,WAAA,EAAAtuE,EAAA,GAGA,QAAAiwE,IAAAhxE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAg0E,aAAAjzE,EAAA,GAGA,QAAAkwE,IAAAjxE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAi0E,aAAAlzE,EAAA,GAGA,QAAAmwE,IAAAlxE,EAAAe,GACA,MAAAmsE,IAAAgH,GAAAr3D,MAAAi3D,GAAA9zE,MAAAe,EAAA,GAGA,QAAAowE,IAAAnxE,GACA,MAAAA,GAAAspE,SAGA,QAAA8H,IAAApxE,EAAAe,GACA,MAAAmsE,IAAAiH,GAAAt3D,MAAAi3D,GAAA9zE,MAAAe,EAAA,GAGA,QAAAswE,IAAArxE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAo0E,cAAA,IAAArzE,EAAA,GAGA,QAAAuwE,IAAAtxE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAo0E,cAAA,IAAArzE,EAAA,GAGA,QAAAwwE,IAAAvxE,GACA,GAAAob,GAAApb,EAAAwpE,mBACA,QAAApuD,EAAA,OAAAA,IAAA,QACA8xD,GAAA9xD,EAAA,YACA8xD,GAAA9xD,EAAA,UAGA,QAAAu2D,IAAA3xE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAA6pE,aAAA9oE,EAAA,GAGA,QAAA6wE,IAAA5xE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAiwE,cAAAlvE,EAAA,GAGA,QAAA8wE,IAAA7xE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAiwE,cAAA,OAAAlvE,EAAA,GAGA,QAAA+wE,IAAA9xE,EAAAe,GACA,MAAAmsE,IAAA,EAAAmH,GAAAx3D,MAAAy3D,GAAAt0E,MAAAe,EAAA,GAGA,QAAAgxE,IAAA/xE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAu0E,qBAAAxzE,EAAA,GAGA,QAAAixE,IAAAhyE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAA8vE,cAAA,EAAA/uE,EAAA,GAGA,QAAAkxE,IAAAjyE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAw0E,gBAAAzzE,EAAA,GAGA,QAAAmxE,IAAAlyE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAAy0E,gBAAA1zE,EAAA,GAGA,QAAAoxE,IAAAnyE,EAAAe,GACA,MAAAmsE,IAAAwH,GAAA73D,MAAAy3D,GAAAt0E,MAAAe,EAAA,GAGA,QAAAqxE,IAAApyE,GACA,MAAAA,GAAA8pE,YAGA,QAAAuI,IAAAryE,EAAAe,GACA,MAAAmsE,IAAAyH,GAAA93D,MAAAy3D,GAAAt0E,MAAAe,EAAA,GAGA,QAAAuxE,IAAAtyE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAA40E,iBAAA,IAAA7zE,EAAA,GAGA,QAAAwxE,IAAAvyE,EAAAe,GACA,MAAAmsE,IAAAltE,EAAA40E,iBAAA,IAAA7zE,EAAA,GAGA,QAAAyxE,MACA,cAGA,QAAAf,MACA,UAeA,QAAAoD,IAAAhZ,GAMA,MALAiZ,IAAA9H,GAAAnR,GACAp8D,EAAAs1E,WAAAD,GAAA/Y,OACAt8D,EAAAu1E,UAAAF,GAAAxlE,MACA7P,EAAA8zE,UAAAuB,GAAAvB,UACA9zE,EAAA+zE,SAAAsB,GAAAtB,SACAsB,GAKA,QAAAG,IAAA1pC,GACA,MAAAA,GAAA2pC,cAOA,QAAAC,IAAAhI,GACA,GAAA5hC,GAAA,GAAA1B,MAAAsjC,EACA,OAAApvC,OAAAwN,GAAA,KAAAA,EAcA,QAAA6pC,IAAAtpC,GAOA,QAAA42B,GAAA1iE,GACA,GAAA6C,GAAA7C,EAAA,GAAAL,EAAA+I,EAAAlI,IAAAqC,EACA,KAAAlD,EAAA,CACA,GAAA01E,IAAAC,GAAA,MAAAD,EACA3sE,GAAAiF,IAAA9K,EAAAlD,EAAA2a,EAAAhV,KAAAtF,IAEA,MAAA8rC,IAAAnsC,EAAA,GAAAmsC,EAAAlpC,QAZA,GAAA8F,GAAA+9C,IACAnsC,KACA+6D,EAAAC,EAoCA,OAlCAxpC,GAAA,MAAAA,KAAAypC,GAAA11E,KAAAisC,GAWA42B,EAAApoD,OAAA,SAAA2qC,GACA,IAAAtiD,UAAAC,OAAA,MAAA0X,GAAArP,OACAqP,MAAA5R,EAAA+9C,GAEA,KADA,GAAAzmD,GAAA6C,EAAAlD,GAAA,EAAAc,EAAAwkD,EAAAriD,SACAjD,EAAAc,GAAAiI,EAAA2I,IAAAxO,GAAA7C,EAAAilD,EAAAtlD,IAAA,KAAA+I,EAAAiF,IAAA9K,EAAAyX,EAAAhV,KAAAtF,GACA,OAAA0iE,IAGAA,EAAA52B,MAAA,SAAAmZ,GACA,MAAAtiD,WAAAC,QAAAkpC,EAAAypC,GAAA11E,KAAAolD,GAAAyd,GAAA52B,EAAA7gC,SAGAy3D,EAAA2S,QAAA,SAAApwB,GACA,MAAAtiD,WAAAC,QAAAyyE,EAAApwB,EAAAyd,GAAA2S,GAGA3S,EAAA9T,KAAA,WACA,MAAAwmB,MACA96D,UACAwxB,SACAupC,YAGA3S,EAGA,QAAA8S,MAcA,QAAAC,KACA,GAAAh1E,GAAA6Z,IAAA1X,OACA44D,EAAAka,EAAA,GAAAA,EAAA,GACAlgE,EAAAkgE,EAAAla,EAAA,GACA9X,EAAAgyB,EAAA,EAAAla,EACA/8B,IAAAilB,EAAAluC,GAAA1B,KAAAJ,IAAA,EAAAjT,EAAAk1E,EAAA,EAAAC,GACAlW,IAAAjhC,EAAA3qB,KAAAuB,MAAAopB,IACAjpB,IAAAkuC,EAAAluC,EAAAipB,GAAAh+B,EAAAk1E,IAAAxK,EACA0K,EAAAp3C,GAAA,EAAAk3C,GACAjW,IAAAlqD,EAAA1B,KAAA4rD,MAAAlqD,GAAAqgE,EAAA/hE,KAAA4rD,MAAAmW,GACA,IAAAzqE,GAAA0gC,EAAArrC,GAAAqB,IAAA,SAAAnC,GAA2C,MAAA6V,GAAAipB,EAAA9+B,GAC3C,OAAAm2E,GAAAta,EAAApwD,EAAAowD,UAAApwD,GAxBA,GAIAqzB,GACAo3C,EALAnT,EAAA0S,KAAAC,YAAAl0E,IACAmZ,EAAAooD,EAAApoD,OACAw7D,EAAApT,EAAA52B,MACA4pC,GAAA,KAGAhW,GAAA,EACAiW,EAAA,EACAC,EAAA,EACAzK,EAAA,EAoEA,cAlEAzI,GAAA2S,QAgBA3S,EAAApoD,OAAA,SAAA2qC,GACA,MAAAtiD,WAAAC,QAAA0X,EAAA2qC,GAAAwwB,KAAAn7D,KAGAooD,EAAA52B,MAAA,SAAAmZ,GACA,MAAAtiD,WAAAC,QAAA8yE,IAAAzwB,EAAA,IAAAA,EAAA,IAAAwwB,KAAAC,EAAAzqE,SAGAy3D,EAAAqT,WAAA,SAAA9wB,GACA,MAAAywB,KAAAzwB,EAAA,IAAAA,EAAA,IAAAya,GAAA,EAAA+V,KAGA/S,EAAAmT,UAAA,WACA,MAAAA,IAGAnT,EAAAjkC,KAAA,WACA,MAAAA,IAGAikC,EAAAhD,MAAA,SAAAza,GACA,MAAAtiD,WAAAC,QAAA88D,IAAAza,EAAAwwB,KAAA/V,GAGAgD,EAAAxtD,QAAA,SAAA+vC,GACA,MAAAtiD,WAAAC,QAAA+yE,EAAAC,EAAA9hE,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,EAAAqxC,IAAAwwB,KAAAE,GAGAjT,EAAAiT,aAAA,SAAA1wB,GACA,MAAAtiD,WAAAC,QAAA+yE,EAAA7hE,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,EAAAqxC,IAAAwwB,KAAAE,GAGAjT,EAAAkT,aAAA,SAAA3wB,GACA,MAAAtiD,WAAAC,QAAAgzE,EAAA9hE,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,EAAAqxC,IAAAwwB,KAAAG,GAGAlT,EAAAyI,MAAA,SAAAlmB,GACA,MAAAtiD,WAAAC,QAAAuoE,EAAAr3D,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,EAAAqxC,IAAAwwB,KAAAtK,GAGAzI,EAAA9T,KAAA,WACA,MAAA4mB,MACAl7D,YACAwxB,MAAA4pC,GACAhW,SACAiW,gBACAC,gBACAzK,UAGAsK,IAGA,QAAAO,IAAAtT,GACA,GAAA9T,GAAA8T,EAAA9T,IAUA,OARA8T,GAAAxtD,QAAAwtD,EAAAkT,mBACAlT,GAAAiT,mBACAjT,GAAAkT,aAEAlT,EAAA9T,KAAA,WACA,MAAAonB,IAAApnB,MAGA8T,EAGA,QAAAuT,MACA,MAAAD,IAAAR,KAAAG,aAAA,IAGA,QAAAO,IAAAz9D,GACA,kBACA,MAAAA,IAIA,QAAA09D,IAAA19D,GACA,OAAAA,EAKA,QAAA29D,IAAAnyE,EAAAE,GACA,OAAAA,GAAAF,MACA,SAAAwU,GAAqB,OAAAA,EAAAxU,GAAAE,GACrB+xE,GAAA/xE,GAGA,QAAAkyE,IAAAD,GACA,gBAAAnyE,EAAAE,GACA,GAAAnE,GAAAo2E,EAAAnyE,KAAAE,KACA,iBAAAsU,GAAwB,MAAAA,IAAAxU,EAAA,EAAAwU,GAAAtU,EAAA,EAAAnE,EAAAyY,KAIxB,QAAA69D,IAAAC,GACA,gBAAAtyE,EAAAE,GACA,GAAAqU,GAAA+9D,EAAAtyE,KAAAE,KACA,iBAAA6Y,GAAwB,MAAAA,IAAA,EAAA/Y,EAAA+Y,GAAA,EAAA7Y,EAAAqU,EAAAwE,KAIxB,QAAAw5D,IAAAl8D,EAAAwxB,EAAAsqC,EAAAG,GACA,GAAA1N,GAAAvuD,EAAA,GAAAipD,EAAAjpD,EAAA,GAAA83C,EAAAtmB,EAAA,GAAAilB,EAAAjlB,EAAA,EAGA,OAFAy3B,GAAAsF,KAAAuN,EAAA7S,EAAAsF,GAAAzW,EAAAmkB,EAAAxlB,EAAAqB,KACAyW,EAAAuN,EAAAvN,EAAAtF,GAAAnR,EAAAmkB,EAAAnkB,EAAArB,IACA,SAAAt4C,GAAsB,MAAA25C,GAAAyW,EAAApwD,KAGtB,QAAAg+D,IAAAn8D,EAAAwxB,EAAAsqC,EAAAG,GACA,GAAAzhE,GAAAhB,KAAAF,IAAA0G,EAAA1X,OAAAkpC,EAAAlpC,QAAA,EACA5C,EAAA,GAAAgL,OAAA8J,GACA0D,EAAA,GAAAxN,OAAA8J,GACAnV,GAAA,CAQA,KALA2a,EAAAxF,GAAAwF,EAAA,KACAA,IAAArP,QAAAuwD,UACA1vB,IAAA7gC,QAAAuwD,aAGA77D,EAAAmV,GACA9U,EAAAL,GAAAy2E,EAAA97D,EAAA3a,GAAA2a,EAAA3a,EAAA,IACA6Y,EAAA7Y,GAAA42E,EAAAzqC,EAAAnsC,GAAAmsC,EAAAnsC,EAAA,GAGA,iBAAA8Y,GACA,GAAA9Y,GAAAqlD,GAAA1qC,EAAA7B,EAAA,EAAA3D,GAAA,CACA,OAAA0D,GAAA7Y,GAAAK,EAAAL,GAAA8Y,KAIA,QAAAm2C,IAAArsD,EAAAD,GACA,MAAAA,GACAgY,OAAA/X,EAAA+X,UACAwxB,MAAAvpC,EAAAupC,SACAm0B,YAAA19D,EAAA09D,eACAyW,MAAAn0E,EAAAm0E,SAKA,QAAAC,IAAAC,EAAAL,GASA,QAAAd,KAGA,MAFAoB,GAAA/iE,KAAAF,IAAA0G,EAAA1X,OAAAkpC,EAAAlpC,QAAA,EAAA6zE,GAAAD,GACAz+D,EAAAjI,EAAA,KACA4yD,EAGA,QAAAA,GAAAjqD,GACA,OAAAV,MAAA8+D,EAAAv8D,EAAAwxB,EAAA4qC,EAAAL,GAAAO,KAAAE,MAAAr+D,GAfA,GAIAo+D,GACA9+D,EACAjI,EANAwK,EAAAy8D,GACAjrC,EAAAirC,GACAD,EAAA7W,GACAyW,GAAA,CAuCA,OAxBAhU,GAAAsU,OAAA,SAAAn8D,GACA,OAAA/K,MAAA+mE,EAAA/qC,EAAAxxB,EAAA87D,GAAAM,EAAAJ,GAAAC,SAAA17D,IAGA6nD,EAAApoD,OAAA,SAAA2qC,GACA,MAAAtiD,WAAAC,QAAA0X,EAAA28D,GAAAp3E,KAAAolD,EAAAkxB,IAAAV,KAAAn7D,EAAArP,SAGAy3D,EAAA52B,MAAA,SAAAmZ,GACA,MAAAtiD,WAAAC,QAAAkpC,EAAAypC,GAAA11E,KAAAolD,GAAAwwB,KAAA3pC,EAAA7gC,SAGAy3D,EAAAqT,WAAA,SAAA9wB,GACA,MAAAnZ,GAAAypC,GAAA11E,KAAAolD,GAAA6xB,EAAA/V,GAAA0U,KAGA/S,EAAAgU,MAAA,SAAAzxB,GACA,MAAAtiD,WAAAC,QAAA8zE,IAAAzxB,EAAAwwB,KAAAiB,GAGAhU,EAAAzC,YAAA,SAAAhb,GACA,MAAAtiD,WAAAC,QAAAk0E,EAAA7xB,EAAAwwB,KAAAqB,GAGArB,IAGA,QAAAyB,IAAA58D,EAAAuC,EAAAkuD,GACA,GAGAM,GAHA71D,EAAA8E,EAAA,GACAopC,EAAAppC,IAAA1X,OAAA,GACA67B,EAAAmlB,EAAApuC,EAAAkuC,EAAA,MAAA7mC,EAAA,GAAAA,EAGA,QADAkuD,EAAAD,GAAA,MAAAC,EAAA,KAAAA,GACAA,EAAA/7D,MACA,QACA,GAAA/I,GAAA6N,KAAAJ,IAAAI,KAAAgwC,IAAAtuC,GAAA1B,KAAAgwC,IAAAJ,GAEA,OADA,OAAAqnB,EAAAM,WAAAttC,MAAAstC,EAAAmB,GAAA/tC,EAAAx4B,MAAA8kE,EAAAM,aACA5rE,EAAA4sE,aAAAtB,EAAA9kE,EAEA,QACA,QACA,QACA,QACA,QACA,MAAA8kE,EAAAM,WAAAttC,MAAAstC,EAAAoB,GAAAhuC,EAAA3qB,KAAAJ,IAAAI,KAAAgwC,IAAAtuC,GAAA1B,KAAAgwC,IAAAJ,QAAAqnB,EAAAM,aAAA,MAAAN,EAAA/7D,MACA,MAEA,SACA,QACA,MAAA+7D,EAAAM,WAAAttC,MAAAstC,EAAAkB,GAAA9tC,MAAAssC,EAAAM,YAAA,SAAAN,EAAA/7D,OAIA,MAAAvP,GAAAs8D,OAAAgP,GAGA,QAAAoM,IAAAzU,GACA,GAAApoD,GAAAooD,EAAApoD,MA6BA,OA3BAooD,GAAA/e,MAAA,SAAA9mC,GACA,GAAA7c,GAAAsa,GACA,OAAAqpC,GAAA3jD,EAAA,GAAAA,IAAA4C,OAAA,SAAAia,EAAA,GAAAA,IAGA6lD,EAAAwU,WAAA,SAAAr6D,EAAAkuD,GACA,MAAAmM,IAAA58D,IAAAuC,EAAAkuD,IAGArI,EAAA0U,KAAA,SAAAv6D,GACA,GAAA7c,GAAAsa,IACA3a,EAAAK,EAAA4C,OAAA,EACAnC,EAAA,MAAAoc,EAAA,GAAAA,EACArH,EAAAxV,EAAA,GACA0jD,EAAA1jD,EAAAL,GACA8+B,EAAAmlB,EAAApuC,EAAAkuC,EAAAjjD,EASA,OAPAg+B,KACAA,EAAAmlB,EAAA9vC,KAAAuB,MAAAG,EAAAipB,KAAA3qB,KAAAC,KAAA2vC,EAAAjlB,KAAAh+B,GACAT,EAAA,GAAA8T,KAAAuB,MAAAG,EAAAipB,KACAz+B,EAAAL,GAAAmU,KAAAC,KAAA2vC,EAAAjlB,KACAnkB,EAAAta,IAGA0iE,GAGAA,EAGA,QAAA2U,MACA,GAAA3U,GAAAiU,GAAAP,GAAAjW,GAMA,OAJAuC,GAAA9T,KAAA,WACA,MAAAA,IAAA8T,EAAA2U,OAGAF,GAAAzU,GAGA,QAAA4U,MAGA,QAAA5U,GAAAjqD,GACA,OAAAA,EAHA,GAAA6B,IAAA,IAgBA,OAVAooD,GAAAsU,OAAAtU,EAEAA,EAAApoD,OAAAooD,EAAA52B,MAAA,SAAAmZ,GACA,MAAAtiD,WAAAC,QAAA0X,EAAA28D,GAAAp3E,KAAAolD,EAAAkxB,IAAAzT,GAAApoD,EAAArP,SAGAy3D,EAAA9T,KAAA,WACA,MAAA0oB,MAAAh9D,WAGA68D,GAAAzU,GAGA,QAAA0U,IAAA98D,EAAApB,GACAoB,IAAArP,OAEA,IAIA+R,GAJAmpC,EAAA,EACAC,EAAA9rC,EAAA1X,OAAA,EACA8hD,EAAApqC,EAAA6rC,GACAxB,EAAArqC,EAAA8rC,EAUA,OAPAzB,GAAAD,IACA1nC,EAAAmpC,IAAAC,IAAAppC,EACAA,EAAA0nC,IAAAC,IAAA3nC,GAGA1C,EAAA6rC,GAAAjtC,EAAA7D,MAAAqvC,GACApqC,EAAA8rC,GAAAltC,EAAAnF,KAAA4wC,GACArqC,EAGA,QAAAi9D,IAAAtzE,EAAAE,GACA,OAAAA,EAAA2P,KAAAmwC,IAAA9/C,EAAAF,IACA,SAAAwU,GAAqB,MAAA3E,MAAAmwC,IAAAxrC,EAAAxU,GAAAE,GACrB+xE,GAAA/xE,GAGA,QAAAoyE,IAAAtyE,EAAAE,GACA,MAAAF,GAAA,EACA,SAAA+Y,GAAqB,OAAAlJ,KAAAkwC,KAAA7/C,EAAA6Y,GAAAlJ,KAAAkwC,KAAA//C,EAAA,EAAA+Y,IACrB,SAAAA,GAAqB,MAAAlJ,MAAAkwC,IAAA7/C,EAAA6Y,GAAAlJ,KAAAkwC,IAAA//C,EAAA,EAAA+Y,IAGrB,QAAAw6D,IAAA/+D,GACA,MAAAywD,UAAAzwD,KAAA,KAAAA,KAAA,IAAAA,EAGA,QAAAg/D,IAAAj9D,GACA,YAAAA,EAAAg9D,GACAh9D,IAAA1G,KAAAyH,EAAAzH,KAAAi0C,IACA,SAAAtvC,GAAqB,MAAA3E,MAAAkwC,IAAAxpC,EAAA/B,IAGrB,QAAAi/D,IAAAl9D,GACA,MAAAA,KAAA1G,KAAAyH,EAAAzH,KAAAmwC,IACA,KAAAzpC,GAAA1G,KAAAE,OACA,IAAAwG,GAAA1G,KAAA6jE,OACAn9D,EAAA1G,KAAAmwC,IAAAzpC,GAAA,SAAA/B,GAA8C,MAAA3E,MAAAmwC,IAAAxrC,GAAA+B,IAG9C,QAAAo9D,IAAApjE,GACA,gBAAAiE,GACA,OAAAjE,GAAAiE,IAIA,QAAAwrC,MAOA,QAAAwxB,KAGA,MAFAoC,GAAAH,GAAAl9D,GAAAs9D,EAAAL,GAAAj9D,GACAF,IAAA,OAAAu9D,EAAAD,GAAAC,GAAAC,EAAAF,GAAAE,IACApV,EATA,GAAAA,GAAAiU,GAAAY,GAAAhB,IAAAj8D,QAAA,OACAA,EAAAooD,EAAApoD,OACAE,EAAA,GACAq9D,EAAAH,GAAA,IACAI,EAAAL,GAAA,GAgFA,OAxEA/U,GAAAloD,KAAA,SAAAyqC,GACA,MAAAtiD,WAAAC,QAAA4X,GAAAyqC,EAAAwwB,KAAAj7D,GAGAkoD,EAAApoD,OAAA,SAAA2qC,GACA,MAAAtiD,WAAAC,QAAA0X,EAAA2qC,GAAAwwB,KAAAn7D,KAGAooD,EAAA/e,MAAA,SAAA9mC,GACA,GAGArE,GAHAxY,EAAAsa,IACA2C,EAAAjd,EAAA,GACAyU,EAAAzU,IAAA4C,OAAA,IAGA4V,EAAA/D,EAAAwI,KAAAtd,EAAAsd,IAAAxI,IAAA9U,EAEA,IAEAoB,GACA0a,EACAuB,EAJArd,EAAAk4E,EAAA56D,GACAnI,EAAA+iE,EAAApjE,GAIAhU,EAAA,MAAAoc,EAAA,IAAAA,EACAzB,IAEA,MAAAZ,EAAA,IAAA1F,EAAAnV,EAAAc,GAEA,GADAd,EAAAmU,KAAA4rD,MAAA//D,GAAA,EAAAmV,EAAAhB,KAAA4rD,MAAA5qD,GAAA,EACAmI,EAAA,QAAuBtd,EAAAmV,IAAOnV,EAC9B,IAAA8b,EAAA,EAAA1a,EAAA+2E,EAAAn4E,GAAgC8b,EAAAjB,IAAUiB,EAE1C,MADAuB,EAAAjc,EAAA0a,GACAwB,GAAA,CACA,GAAAD,EAAAvI,EAAA,KACA2G,GAAA9V,KAAA0X,QAEO,MAAYrd,EAAAmV,IAAOnV,EAC1B,IAAA8b,EAAAjB,EAAA,EAAAzZ,EAAA+2E,EAAAn4E,GAAuC8b,GAAA,IAAQA,EAE/C,MADAuB,EAAAjc,EAAA0a,GACAwB,GAAA,CACA,GAAAD,EAAAvI,EAAA,KACA2G,GAAA9V,KAAA0X,QAIA5B,GAAAuoC,EAAAhkD,EAAAmV,EAAAhB,KAAAF,IAAAkB,EAAAnV,EAAAc,IAAAqB,IAAAg2E,EAGA,OAAAt/D,GAAA4C,EAAAogD,UAAApgD,GAGAsnD,EAAAwU,WAAA,SAAAr6D,EAAAkuD,GAGA,GAFA,MAAAA,MAAA,KAAAvwD,EAAA,WACA,mBAAAuwD,OAAAtrE,EAAAs8D,OAAAgP,IACAluD,IAAAs8B,IAAA,MAAA4xB,EACA,OAAAluD,MAAA,GACA,IAAApB,GAAA3H,KAAAJ,IAAA,EAAA8G,EAAAqC,EAAA6lD,EAAA/e,QAAA/gD,OACA,iBAAA5C,GACA,GAAAL,GAAAK,EAAA83E,EAAAhkE,KAAA4rD,MAAAmY,EAAA73E,IAEA,OADAL,GAAA6a,IAAA,KAAA7a,GAAA6a,GACA7a,GAAA8b,EAAAsvD,EAAA/qE,GAAA,KAIA0iE,EAAA0U,KAAA,WACA,MAAA98D,GAAA88D,GAAA98D,KACAjF,MAAA,SAAAoD,GAA0B,MAAAq/D,GAAAhkE,KAAAuB,MAAAwiE,EAAAp/D,MAC1B1E,KAAA,SAAA0E,GAAyB,MAAAq/D,GAAAhkE,KAAAC,KAAA8jE,EAAAp/D,UAIzBiqD,EAAA9T,KAAA,WACA,MAAAA,IAAA8T,EAAAze,KAAAzpC,UAGAkoD,EAGA,QAAAqV,IAAAt/D,EAAAkyD,GACA,MAAAlyD,GAAA,GAAA3E,KAAAkwC,KAAAvrC,EAAAkyD,GAAA72D,KAAAkwC,IAAAvrC,EAAAkyD,GAGA,QAAA3mB,MAKA,QAAAoyB,GAAAnyE,EAAAE,GACA,OAAAA,EAAA4zE,GAAA5zE,EAAAwmE,IAAA1mE,EAAA8zE,GAAA9zE,EAAA0mE,KACA,SAAAlyD,GAAuB,OAAAs/D,GAAAt/D,EAAAkyD,GAAA1mE,GAAAE,GACvB+xE,GAAA/xE,GAGA,QAAAoyE,GAAAtyE,EAAAE,GAEA,MADAA,GAAA4zE,GAAA5zE,EAAAwmE,IAAA1mE,EAAA8zE,GAAA9zE,EAAA0mE,IACA,SAAA3tD,GAAwB,MAAA+6D,IAAA9zE,EAAAE,EAAA6Y,EAAA,EAAA2tD,IAZxB,GAAAA,GAAA,EACAjI,EAAAiU,GAAAP,EAAAG,GACAj8D,EAAAooD,EAAApoD,MAqBA,OARAooD,GAAAiI,SAAA,SAAA1lB,GACA,MAAAtiD,WAAAC,QAAA+nE,GAAA1lB,EAAA3qC,QAAAqwD,GAGAjI,EAAA9T,KAAA,WACA,MAAAA,IAAA8T,EAAA1e,KAAA2mB,cAGAwM,GAAAzU,GAGA,QAAApf,MACA,MAAAU,MAAA2mB,SAAA,IAGA,QAAAqN,MAKA,QAAAvC,KACA,GAAA91E,GAAA,EAAAc,EAAAqT,KAAAJ,IAAA,EAAAo4B,EAAAlpC,OAEA,KADAsiD,EAAA,GAAAl6C,OAAAvK,EAAA,KACAd,EAAAc,GAAAykD,EAAAvlD,EAAA,GAAAklD,EAAAvqC,EAAA3a,EAAAc,EACA,OAAAiiE,GAGA,QAAAA,GAAAjqD,GACA,IAAAslB,MAAAtlB,MAAA,MAAAqzB,GAAAkZ,GAAAE,EAAAzsC,IAZA,GAAA6B,MACAwxB,KACAoZ,IA2CA,OA9BAwd,GAAAuV,aAAA,SAAAp9D,GACA,GAAAlb,GAAAmsC,EAAAl8B,QAAAiL,EACA,OAAAlb,GAAA,GAAA+iD,UACA/iD,EAAA,EAAAulD,EAAAvlD,EAAA,GAAA2a,EAAA,GACA3a,EAAAulD,EAAAtiD,OAAAsiD,EAAAvlD,GAAA2a,IAAA1X,OAAA,KAIA8/D,EAAApoD,OAAA,SAAA2qC,GACA,IAAAtiD,UAAAC,OAAA,MAAA0X,GAAArP,OACAqP,KACA,QAAAta,GAAAL,EAAA,EAAAc,EAAAwkD,EAAAriD,OAAoCjD,EAAAc,IAAOd,EAAA,OAAAK,EAAAilD,EAAAtlD,KAAAo+B,MAAA/9B,OAAAsa,EAAAhV,KAAAtF,EAE3C,OADAsa,GAAA8qC,KAAA3C,GACAgzB,KAGA/S,EAAA52B,MAAA,SAAAmZ,GACA,MAAAtiD,WAAAC,QAAAkpC,EAAAypC,GAAA11E,KAAAolD,GAAAwwB,KAAA3pC,EAAA7gC,SAGAy3D,EAAAwV,UAAA,WACA,MAAAhzB,GAAAj6C,SAGAy3D,EAAA9T,KAAA,WACA,MAAAopB,MACA19D,UACAwxB,UAGA42B,EAGA,QAAAyV,MAOA,QAAAzV,GAAAjqD,GACA,GAAAA,KAAA,MAAAqzB,GAAAkZ,GAAA1qC,EAAA7B,EAAA,EAAAhY,IAGA,QAAAg1E,KACA,GAAA91E,IAAA,CAEA,KADA2a,EAAA,GAAAtP,OAAAvK,KACAd,EAAAc,GAAA6Z,EAAA3a,OAAA,GAAAglD,GAAAhlD,EAAAc,GAAAikD,IAAAjkD,EAAA,EACA,OAAAiiE,GAdA,GAAAhe,GAAA,EACAC,EAAA,EACAlkD,EAAA,EACA6Z,GAAA,IACAwxB,GAAA,IAmCA,OAtBA42B,GAAApoD,OAAA,SAAA2qC,GACA,MAAAtiD,WAAAC,QAAA8hD,GAAAO,EAAA,GAAAN,GAAAM,EAAA,GAAAwwB,MAAA/wB,EAAAC,IAGA+d,EAAA52B,MAAA,SAAAmZ,GACA,MAAAtiD,WAAAC,QAAAnC,GAAAqrC,EAAAypC,GAAA11E,KAAAolD,IAAAriD,OAAA,EAAA6yE,KAAA3pC,EAAA7gC,SAGAy3D,EAAAuV,aAAA,SAAAp9D,GACA,GAAAlb,GAAAmsC,EAAAl8B,QAAAiL,EACA,OAAAlb,GAAA,GAAA+iD,SACA/iD,EAAA,GAAA+kD,EAAApqC,EAAA,IACA3a,GAAAc,GAAA6Z,EAAA7Z,EAAA,GAAAkkD,IACArqC,EAAA3a,EAAA,GAAA2a,EAAA3a,KAGA+iE,EAAA9T,KAAA,WACA,MAAAupB,MACA79D,QAAAoqC,EAAAC,IACA7Y,UAGAqrC,GAAAzU,GAGA,QAAA0V,MAKA,QAAA1V,GAAAjqD,GACA,GAAAA,KAAA,MAAAqzB,GAAAkZ,GAAA1qC,EAAA7B,EAAA,EAAAhY,IALA,GAAA6Z,IAAA,IACAwxB,GAAA,KACArrC,EAAA,CAyBA,OAnBAiiE,GAAApoD,OAAA,SAAA2qC,GACA,MAAAtiD,WAAAC,QAAA0X,EAAAi7D,GAAA11E,KAAAolD,GAAAxkD,EAAAqT,KAAAF,IAAA0G,EAAA1X,OAAAkpC,EAAAlpC,OAAA,GAAA8/D,GAAApoD,EAAArP,SAGAy3D,EAAA52B,MAAA,SAAAmZ,GACA,MAAAtiD,WAAAC,QAAAkpC,EAAAypC,GAAA11E,KAAAolD,GAAAxkD,EAAAqT,KAAAF,IAAA0G,EAAA1X,OAAAkpC,EAAAlpC,OAAA,GAAA8/D,GAAA52B,EAAA7gC,SAGAy3D,EAAAuV,aAAA,SAAAp9D,GACA,GAAAlb,GAAAmsC,EAAAl8B,QAAAiL,EACA,QAAAP,EAAA3a,EAAA,GAAA2a,EAAA3a,KAGA+iE,EAAA9T,KAAA,WACA,MAAAwpB,MACA99D,UACAwxB,UAGA42B,EAUA,QAAA2V,IAAAr7D,GACA,UAAA6sB,MAAA7sB,GAGA,QAAAs7D,IAAAt7D,GACA,MAAAA,aAAA6sB,OAAA7sB,GAAA,GAAA6sB,OAAA7sB,GAGA,QAAAu7D,IAAAzE,EAAAnoC,EAAAO,EAAAshC,EAAAgL,EAAAC,EAAAC,EAAAC,EAAA5c,GAmCA,QAAAmb,GAAA3rC,GACA,OAAAmtC,EAAAntC,KAAAqtC,EACAH,EAAAltC,KAAAstC,EACAL,EAAAjtC,KAAAutC,EACAtL,EAAAjiC,KAAAwtC,EACAptC,EAAAJ,KAAAW,EAAAX,KAAAytC,EAAAC,EACAnF,EAAAvoC,KAAA+jC,EACA+B,GAAA9lC,GAGA,QAAA2tC,GAAAhgE,EAAA1D,EAAAkuC,EAAAjlB,GAMA,GALA,MAAAvlB,MAAA,IAKA,iBAAAA,GAAA,CACA,GAAA5W,GAAAwR,KAAAgwC,IAAAJ,EAAAluC,GAAA0D,EACAvZ,EAAAgjD,EAAA,SAAAhjD,GAAoC,MAAAA,GAAA,KAAesjD,MAAAk2B,EAAA72E,EACnD3C,KAAAw5E,EAAAv2E,QACA67B,EAAAmlB,EAAApuC,EAAA4jE,GAAA11B,EAAA01B,GAAAlgE,GACAA,EAAA46D,GACOn0E,GACPA,EAAAw5E,EAAA72E,EAAA62E,EAAAx5E,EAAA,MAAAw5E,EAAAx5E,GAAA,GAAA2C,EAAA3C,EAAA,EAAAA,GACA8+B,EAAA9+B,EAAA,GACAuZ,EAAAvZ,EAAA,KAEA8+B,EAAAmlB,EAAApuC,EAAAkuC,EAAAxqC,GACAA,EAAAy/D,GAIA,aAAAl6C,EAAAvlB,IAAA+vD,MAAAxqC,GAlEA,GAAAikC,GAAAiU,GAAAP,GAAAjW,IACA6W,EAAAtU,EAAAsU,OACA18D,EAAAooD,EAAApoD,OAEAs+D,EAAA7c,EAAA,OACA8c,EAAA9c,EAAA,OACA+c,EAAA/c,EAAA,SACAgd,EAAAhd,EAAA,SACAid,EAAAjd,EAAA,SACAkd,EAAAld,EAAA,SACAuT,EAAAvT,EAAA,MACAsV,EAAAtV,EAAA,MAEAod,IACAT,EAAA,EAAAW,KACAX,EAAA,IAAAW,KACAX,EAAA,MAAAW,KACAX,EAAA,MAAAW,KACAZ,EAAA,EAAAa,KACAb,EAAA,IAAAa,KACAb,EAAA,MAAAa,KACAb,EAAA,MAAAa,KACAd,EAAA,EAAAe,KACAf,EAAA,IAAAe,KACAf,EAAA,IAAAe,KACAf,EAAA,MAAAe,KACA/L,EAAA,EAAAgM,KACAhM,EAAA,IAAAgM,KACAttC,EAAA,EAAAutC,KACA9tC,EAAA,EAAA+tC,KACA/tC,EAAA,IAAA+tC,KACA5F,EAAA,EAAAsF,IAyEA,OAnCA1W,GAAAsU,OAAA,SAAAn8D,GACA,UAAAgvB,MAAAmtC,EAAAn8D,KAGA6nD,EAAApoD,OAAA,SAAA2qC,GACA,MAAAtiD,WAAAC,OAAA0X,EAAA28D,GAAAp3E,KAAAolD,EAAAqzB,KAAAh+D,IAAAxY,IAAAu2E,KAGA3V,EAAA/e,MAAA,SAAAzqC,EAAAulB,GACA,GAIAzhB,GAJAhd,EAAAsa,IACAo4C,EAAA1yD,EAAA,GACA2yD,EAAA3yD,IAAA4C,OAAA,GACA4V,EAAAm6C,EAAAD,CAKA,OAHAl6C,KAAAwE,EAAA01C,IAAAC,IAAA31C,GACAA,EAAAk8D,EAAAhgE,EAAAw5C,EAAAC,EAAAl0B,GACAzhB,MAAA8uB,MAAA4mB,EAAAC,EAAA,MACAn6C,EAAAwE,EAAAw+C,UAAAx+C,GAGA0lD,EAAAwU,WAAA,SAAAr6D,EAAAkuD,GACA,aAAAA,EAAAmM,EAAAnb,EAAAgP,IAGArI,EAAA0U,KAAA,SAAAl+D,EAAAulB,GACA,GAAAz+B,GAAAsa,GACA,QAAApB,EAAAggE,EAAAhgE,EAAAlZ,EAAA,GAAAA,IAAA4C,OAAA,GAAA67B,IACAnkB,EAAA88D,GAAAp3E,EAAAkZ,IACAwpD,GAGAA,EAAA9T,KAAA,WACA,MAAAA,IAAA8T,EAAA6V,GAAAzE,EAAAnoC,EAAAO,EAAAshC,EAAAgL,EAAAC,EAAAC,EAAAC,EAAA5c,KAGA2G,EAGA,QAAAz2B,MACA,MAAAssC,IAAAzE,GAAAnoC,GAAAuoC,GAAA1G,GAAAgL,GAAAC,GAAAC,GAAAC,GAAAl5E,EAAAs1E,YAAAz6D,QAAA,GAAAuvB,MAAA,YAAAA,MAAA,WAGA,QAAA8vC,MACA,MAAApB,IAAAjE,GAAAsF,GAAAlF,GAAAL,GAAAwF,GAAAC,GAAApB,GAAAC,GAAAl5E,EAAA8zE,WAAAj5D,QAAAuvB,KAAAgjC,IAAA,SAAAhjC,KAAAgjC,IAAA,WAGA,QAAA9M,IAAA/+D,GACA,MAAAA,GAAAiqE,MAAA,SAAsBnpE,IAAA,SAAA2W,GACtB,UAAAA,IAoBA,QAAAshE,IAAA/8D,IACAA,EAAA,GAAAA,EAAA,KAAAA,GAAAlJ,KAAAuB,MAAA2H,GACA,IAAAg9D,GAAAlmE,KAAAgwC,IAAA9mC,EAAA,GAIA,OAHAi9D,IAAAn+D,EAAA,IAAAkB,EAAA,IACAi9D,GAAAj5E,EAAA,QAAAg5E,EACAC,GAAAr6E,EAAA,MAAAo6E,EACAC,GAAA,GAGA,QAAAC,IAAApuC,GACA,GAAArrC,GAAAqrC,EAAAlpC,MACA,iBAAAoa,GACA,MAAA8uB,GAAAh4B,KAAAJ,IAAA,EAAAI,KAAAF,IAAAnT,EAAA,EAAAqT,KAAAuB,MAAA2H,EAAAvc,OAYA,QAAA05E,IAAAhW,GAKA,QAAAzB,GAAAjqD,GACA,GAAAuE,IAAAvE,EAAAisC,IAAAC,EAAAD,EACA,OAAAyf,GAAAuS,EAAA5iE,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,EAAAoJ,OANA,GAAA0nC,GAAA,EACAC,EAAA,EACA+xB,GAAA,CAuBA,OAhBAhU,GAAApoD,OAAA,SAAA2qC,GACA,MAAAtiD,WAAAC,QAAA8hD,GAAAO,EAAA,GAAAN,GAAAM,EAAA,GAAAyd,IAAAhe,EAAAC,IAGA+d,EAAAgU,MAAA,SAAAzxB,GACA,MAAAtiD,WAAAC,QAAA8zE,IAAAzxB,EAAAyd,GAAAgU,GAGAhU,EAAAyB,aAAA,SAAAlf,GACA,MAAAtiD,WAAAC,QAAAuhE,EAAAlf,EAAAyd,GAAAyB,GAGAzB,EAAA9T,KAAA,WACA,MAAAurB,IAAAhW,GAAA7pD,QAAAoqC,EAAAC,IAAA+xB,UAGAS,GAAAzU,GAaA,QAAA0X,IAAAn6E,GACA,GAAA0rE,GAAA1rE,GAAA,GAAAN,EAAAgsE,EAAA/7D,QAAA,IAEA,OADAjQ,IAAA,cAAAgsE,EAAA1rE,EAAAgL,MAAA,EAAAtL,MAAAM,IAAAgL,MAAAtL,EAAA,IACA06E,GAAAv5E,eAAA6qE,IAA8C2O,MAAAD,GAAA1O,GAAA4O,MAAAt6E,GAAuCA,EAGrF,QAAAu6E,IAAAv6E,GACA,kBACA,GAAA4J,GAAAvG,KAAA09B,cACAy5C,EAAAn3E,KAAAq2C,YACA,OAAA8gC,KAAAC,IAAA7wE,EAAAoa,gBAAA01B,eAAA+gC,GACA7wE,EAAAsK,cAAAlU,GACA4J,EAAA43B,gBAAAg5C,EAAAx6E,IAIA,QAAA06E,IAAAC,GACA,kBACA,MAAAt3E,MAAA09B,cAAAS,gBAAAm5C,EAAAN,MAAAM,EAAAL,QAIA,QAAAM,IAAA56E,GACA,GAAA26E,GAAAR,GAAAn6E,EACA,QAAA26E,EAAAL,MACAI,GACAH,IAAAI,GAKA,QAAAL,MACA,UAAAO,IAGA,QAAAA,MACAx3E,KAAA2hD,EAAA,OAAA81B,IAAAtsE,SAAA,IAuDA,QAAAusE,IAAAC,EAAAvyE,EAAAyjE,GAEA,MADA8O,GAAAC,GAAAD,EAAAvyE,EAAAyjE,GACA,SAAAjG,GACA,GAAAiV,GAAAjV,EAAA94B,aACA+tC,SAAA73E,MAAA,EAAA63E,EAAA94B,wBAAA/+C,QACA23E,EAAAp7E,KAAAyD,KAAA4iE,IAKA,QAAAgV,IAAAD,EAAAvyE,EAAAyjE,GACA,gBAAAiP,GACA,GAAAC,GAAA57E,EAAAymE,KACAzmE,GAAAymE,MAAAkV,CACA,KACAH,EAAAp7E,KAAAyD,UAAAg4E,SAAA5yE,EAAAyjE,GACK,QACL1sE,EAAAymE,MAAAmV,IAKA,QAAAE,IAAA/W,GACA,MAAAA,GAAAp0D,OAAAnO,MAAA,SAAAH,IAAA,SAAAkb,GACA,GAAA/c,GAAA,GAAAN,EAAAqd,EAAApN,QAAA,IAEA,OADAjQ,IAAA,IAAAM,EAAA+c,EAAA/R,MAAAtL,EAAA,GAAAqd,IAAA/R,MAAA,EAAAtL,KACYqP,KAAAgO,EAAA/c,UAIZ,QAAAu7E,IAAAC,GACA,kBACA,GAAA7U,GAAAtjE,KAAAo4E,IACA,IAAA9U,EAAA,CACA,OAAAzmE,GAAA2U,EAAA,EAAAnV,GAAA,EAAAG,EAAA8mE,EAAAhkE,OAA6CkS,EAAAhV,IAAOgV,EACpD3U,EAAAymE,EAAA9xD,GAAA2mE,EAAAzsE,MAAA7O,EAAA6O,OAAAysE,EAAAzsE,MAAA7O,EAAAF,OAAAw7E,EAAAx7E,KAGA2mE,IAAAjnE,GAAAQ,EAFAmD,KAAAi+C,oBAAAphD,EAAA6O,KAAA7O,EAAA86E,SAAA96E,EAAAkrB,WAKA1rB,EAAAinE,EAAAhkE,OAAAjD,QACA2D,MAAAo4E,OAIA,QAAAC,IAAAF,EAAAx1E,EAAAolB,GACA,GAAAuwD,GAAAC,GAAA/6E,eAAA26E,EAAAzsE,MAAAgsE,GAAAE,EACA,iBAAAl7E,EAAAL,EAAAwsE,GACA,GAAAhsE,GAAAymE,EAAAtjE,KAAAo4E,KAAAT,EAAAW,EAAA31E,EAAAtG,EAAAwsE,EACA,IAAAvF,EAAA,OAAA9xD,GAAA,EAAAhV,EAAA8mE,EAAAhkE,OAA0CkS,EAAAhV,IAAOgV,EACjD,IAAA3U,EAAAymE,EAAA9xD,IAAA9F,OAAAysE,EAAAzsE,MAAA7O,EAAAF,OAAAw7E,EAAAx7E,KAIA,MAHAqD,MAAAi+C,oBAAAphD,EAAA6O,KAAA7O,EAAA86E,SAAA96E,EAAAkrB,SACA/nB,KAAAy1C,iBAAA54C,EAAA6O,KAAA7O,EAAA86E,WAAA96E,EAAAkrB,gBACAlrB,EAAA8F,QAIA3C,MAAAy1C,iBAAA0iC,EAAAzsE,KAAAisE,EAAA5vD,GACAlrB,GAAS6O,KAAAysE,EAAAzsE,KAAA/O,KAAAw7E,EAAAx7E,KAAAgG,QAAAg1E,WAAA5vD,WACTu7C,EACAA,EAAAthE,KAAAnF,GADAmD,KAAAo4E,MAAAv7E,IAKA,QAAA27E,IAAAL,EAAAx1E,EAAAolB,GACA,GAAA1rB,GAAAqd,EAAAwnD,EAAA+W,GAAAE,EAAA,IAAAh7E,EAAA+jE,EAAA5hE,MAEA,OAAAD,UAAAC,OAAA,IAcA,IAFAgkE,EAAA3gE,EAAA01E,GAAAH,GACA,MAAAnwD,OAAA,GACA1rB,EAAA,EAAaA,EAAAc,IAAOd,EAAA2D,KAAAojD,KAAAkgB,EAAApC,EAAA7kE,GAAAsG,EAAAolB,GACpB,OAAA/nB,MAdA,GAAAsjE,GAAAtjE,KAAAsG,OAAA8xE,IACA,IAAA9U,EAAA,OAAAzmE,GAAA2U,EAAA,EAAAhV,EAAA8mE,EAAAhkE,OAA6CkS,EAAAhV,IAAOgV,EACpD,IAAAnV,EAAA,EAAAQ,EAAAymE,EAAA9xD,GAA4BnV,EAAAc,IAAOd,EACnC,IAAAqd,EAAAwnD,EAAA7kE,IAAAqP,OAAA7O,EAAA6O,MAAAgO,EAAA/c,OAAAE,EAAAF,KACA,MAAAE,GAAA8F,OAaA,QAAA81E,IAAAX,EAAAH,EAAAtkB,EAAA5rD,GACA,GAAAswE,GAAA57E,EAAAymE,KACAkV,GAAAY,YAAAv8E,EAAAymE,MACAzmE,EAAAymE,MAAAkV,CACA,KACA,MAAAH,GAAA96D,MAAAw2C,EAAA5rD,GACG,QACHtL,EAAAymE,MAAAmV,GAIA,QAAAW,MAEA,IADA,GAAAz5E,GAAA4Z,EAAA1c,EAAAymE,MACA3jE,EAAA4Z,EAAA6/D,aAAA7/D,EAAA5Z,CACA,OAAA4Z,GAGA,QAAA8/D,IAAAryE,EAAAs8D,GACA,GAAA3sB,GAAA3vC,EAAAsyE,iBAAAtyE,CAEA,IAAA2vC,EAAA4iC,eAAA,CACA,GAAAhxB,GAAA5R,EAAA4iC,gBAGA,OAFAhxB,GAAA1yC,EAAAytD,EAAAr5B,QAAAse,EAAAtwC,EAAAqrD,EAAAp5B,QACAqe,IAAAixB,gBAAAxyE,EAAAyyE,eAAAC,YACAnxB,EAAA1yC,EAAA0yC,EAAAtwC,GAGA,GAAA0hE,GAAA3yE,EAAA4yE,uBACA,QAAAtW,EAAAr5B,QAAA0vC,EAAA19B,KAAAj1C,EAAA6yE,WAAAvW,EAAAp5B,QAAAyvC,EAAAx9B,IAAAn1C,EAAA8yE,WAGA,QAAAC,IAAA/yE,GACA,GAAAs8D,GAAA8V,IAEA,OADA9V,GAAAxvB,iBAAAwvB,IAAAxvB,eAAA,IACAulC,GAAAryE,EAAAs8D,GAGA,QAAA0W,OAEA,QAAAC,OACA,aAAAA,EAAAD,GAAA,WACA,MAAAt5E,MAAAw5E,cAAAD,IAIA,QAAAE,IAAAzvD,GACA,mBAAAA,OAAAuvD,GAAAvvD,GAEA,QAAA0vD,GAAA15E,KAAA25E,QAAAn9E,EAAAk9E,EAAAp6E,OAAAs6E,EAAA,GAAAlyE,OAAAlL,GAAAgV,EAAA,EAAqFA,EAAAhV,IAAOgV,EAC5F,OAAAlL,GAAAuzE,EAAAhR,EAAA6Q,EAAAloE,GAAArU,EAAA0rE,EAAAvpE,OAAAw6E,EAAAF,EAAApoE,GAAA,GAAA9J,OAAAvK,GAAAd,EAAA,EAA+GA,EAAAc,IAAOd,GACtHiK,EAAAuiE,EAAAxsE,MAAAw9E,EAAA7vD,EAAAztB,KAAA+J,IAAA0xE,SAAA37E,EAAAwsE,MACA,YAAAviE,KAAAuzE,EAAA7B,SAAA1xE,EAAA0xE,UACA8B,EAAAz9E,GAAAw9E,EAKA,WAAAE,IAAAH,EAAA55E,KAAAg6E,UAGA,QAAAC,MACA,SAGA,QAAAC,IAAAX,GACA,aAAAA,EAAAU,GAAA,WACA,MAAAj6E,MAAA06C,iBAAA6+B,IAIA,QAAAY,IAAAnwD,GACA,mBAAAA,OAAAkwD,GAAAlwD,GAEA,QAAA0vD,GAAA15E,KAAA25E,QAAAn9E,EAAAk9E,EAAAp6E,OAAAs6E,KAAAQ,KAAA5oE,EAAA,EAAyFA,EAAAhV,IAAOgV,EAChG,OAAAlL,GAAAuiE,EAAA6Q,EAAAloE,GAAArU,EAAA0rE,EAAAvpE,OAAAjD,EAAA,EAA8DA,EAAAc,IAAOd,GACrEiK,EAAAuiE,EAAAxsE,MACAu9E,EAAA53E,KAAAgoB,EAAAztB,KAAA+J,IAAA0xE,SAAA37E,EAAAwsE,IACAuR,EAAAp4E,KAAAsE,GAKA,WAAAyzE,IAAAH,EAAAQ,GAGA,QAAAC,IAAA1S,GACA,mBAAAA,OAAA2S,GAAA3S,GAEA,QAAA+R,GAAA15E,KAAA25E,QAAAn9E,EAAAk9E,EAAAp6E,OAAAs6E,EAAA,GAAAlyE,OAAAlL,GAAAgV,EAAA,EAAqFA,EAAAhV,IAAOgV,EAC5F,OAAAlL,GAAAuiE,EAAA6Q,EAAAloE,GAAArU,EAAA0rE,EAAAvpE,OAAAw6E,EAAAF,EAAApoE,MAAAnV,EAAA,EAA4FA,EAAAc,IAAOd,GACnGiK,EAAAuiE,EAAAxsE,KAAAsrE,EAAAprE,KAAA+J,IAAA0xE,SAAA37E,EAAAwsE,IACAiR,EAAA93E,KAAAsE,EAKA,WAAAyzE,IAAAH,EAAA55E,KAAAg6E,UAGA,QAAAO,IAAAC,GACA,UAAA9yE,OAAA8yE,EAAAl7E,QAGA,QAAAm7E,MACA,UAAAV,IAAA/5E,KAAA06E,QAAA16E,KAAA25E,QAAAn7E,IAAA+7E,IAAAv6E,KAAAg6E,UAGA,QAAAW,IAAA7xB,EAAA8xB,GACA56E,KAAA09B,cAAAorB,EAAAprB,cACA19B,KAAAq2C,aAAAyS,EAAAzS,aACAr2C,KAAAikE,MAAA,KACAjkE,KAAA66E,QAAA/xB,EACA9oD,KAAAg4E,SAAA4C,EAWA,QAAAE,IAAA3lE,GACA,kBACA,MAAAA,IAMA,QAAA4lE,IAAAjyB,EAAA+f,EAAAmS,EAAAR,EAAAS,EAAAt0E,GASA,IARA,GACAL,GADAjK,EAAA,EAEA6+E,EAAArS,EAAAvpE,OACA67E,EAAAx0E,EAAArH,OAKQjD,EAAA8+E,IAAgB9+E,GACxBiK,EAAAuiE,EAAAxsE,KACAiK,EAAA0xE,SAAArxE,EAAAtK,GACAm+E,EAAAn+E,GAAAiK,GAEA00E,EAAA3+E,GAAA,GAAAs+E,IAAA7xB,EAAAniD,EAAAtK,GAKA,MAAQA,EAAA6+E,IAAiB7+E,GACzBiK,EAAAuiE,EAAAxsE,MACA4+E,EAAA5+E,GAAAiK,GAKA,QAAA80E,IAAAtyB,EAAA+f,EAAAmS,EAAAR,EAAAS,EAAAt0E,EAAApH,GACA,GAAAlD,GACAiK,EAKAq9C,EAJA03B,KACAH,EAAArS,EAAAvpE,OACA67E,EAAAx0E,EAAArH,OACAg8E,EAAA,GAAA5zE,OAAAwzE,EAKA,KAAA7+E,EAAA,EAAaA,EAAA6+E,IAAiB7+E,GAC9BiK,EAAAuiE,EAAAxsE,MACAi/E,EAAAj/E,GAAAsnD,EAAAtqC,GAAA9Z,EAAAhD,KAAA+J,IAAA0xE,SAAA37E,EAAAwsE,GACAllB,IAAA03B,GACAJ,EAAA5+E,GAAAiK,EAEA+0E,EAAA13B,GAAAr9C,EAQA,KAAAjK,EAAA,EAAaA,EAAA8+E,IAAgB9+E,EAC7BsnD,EAAAtqC,GAAA9Z,EAAAhD,KAAAusD,EAAAniD,EAAAtK,KAAAsK,IACAL,EAAA+0E,EAAA13B,KACA62B,EAAAn+E,GAAAiK,EACAA,EAAA0xE,SAAArxE,EAAAtK,GACAg/E,EAAA13B,GAAA,MAEAq3B,EAAA3+E,GAAA,GAAAs+E,IAAA7xB,EAAAniD,EAAAtK,GAKA,KAAAA,EAAA,EAAaA,EAAA6+E,IAAiB7+E,GAC9BiK,EAAAuiE,EAAAxsE,KAAAg/E,EAAAC,EAAAj/E,MAAAiK,IACA20E,EAAA5+E,GAAAiK,GAKA,QAAAi1E,IAAA54E,EAAApD,GACA,IAAAoD,EAGA,MAFAgE,GAAA,GAAAe,OAAA1H,KAAAgR,QAAAQ,GAAA,EACAxR,KAAAojD,KAAA,SAAA1mD,GAA2BiK,IAAA6K,GAAA9U,IAC3BiK,CAGA,IAAAnE,GAAAjD,EAAA67E,GAAAL,GACAX,EAAAp6E,KAAAg6E,SACAN,EAAA15E,KAAA25E,OAEA,oBAAAh3E,OAAAm4E,GAAAn4E,GAEA,QAAAnG,GAAAk9E,EAAAp6E,OAAAk7E,EAAA,GAAA9yE,OAAAlL,GAAAw+E,EAAA,GAAAtzE,OAAAlL,GAAAy+E,EAAA,GAAAvzE,OAAAlL,GAAAgV,EAAA,EAAsGA,EAAAhV,IAAOgV,EAAA,CAC7G,GAAAs3C,GAAAsxB,EAAA5oE,GACAq3D,EAAA6Q,EAAAloE,GACA0pE,EAAArS,EAAAvpE,OACAqH,EAAAhE,EAAApG,KAAAusD,OAAAkvB,SAAAxmE,EAAA4oE,GACAe,EAAAx0E,EAAArH,OACAk8E,EAAAR,EAAAxpE,GAAA,GAAA9J,OAAAyzE,GACAM,EAAAjB,EAAAhpE,GAAA,GAAA9J,OAAAyzE,EAGA34E,GAAAsmD,EAAA+f,EAAA2S,EAAAC,EAFAR,EAAAzpE,GAAA,GAAA9J,OAAAwzE,GAEAv0E,EAAApH,EAKA,QAAAirD,GAAAliD,EAAAu6C,EAAA,EAAAC,EAAA,EAA4CD,EAAAs4B,IAAiBt4B,EAC7D,GAAA2H,EAAAgxB,EAAA34B,GAAA,CAEA,IADAA,GAAAC,MAAAD,EAAA,KACAv6C,EAAAmzE,EAAA34B,SAAAq4B,IACA3wB,EAAAyZ,MAAA37D,GAAA,MAQA,MAHAkyE,GAAA,GAAAT,IAAAS,EAAAJ,GACAI,EAAAE,OAAAM,EACAR,EAAAkB,MAAAT,EACAT,EAGA,QAAAmB,MACA,UAAA5B,IAAA/5E,KAAA07E,OAAA17E,KAAA25E,QAAAn7E,IAAA+7E,IAAAv6E,KAAAg6E,UAGA,QAAA4B,IAAAC,GAEA,OAAAC,GAAA97E,KAAA25E,QAAAoC,EAAAF,EAAAlC,QAAAqC,EAAAF,EAAAx8E,OAAAy6D,EAAAgiB,EAAAz8E,OAAA9C,EAAAgU,KAAAF,IAAA0rE,EAAAjiB,GAAAkiB,EAAA,GAAAv0E,OAAAs0E,GAAAxqE,EAAA,EAA8JA,EAAAhV,IAAOgV,EACrK,OAAAlL,GAAA41E,EAAAJ,EAAAtqE,GAAA2qE,EAAAJ,EAAAvqE,GAAArU,EAAA++E,EAAA58E,OAAA6iD,EAAA85B,EAAAzqE,GAAA,GAAA9J,OAAAvK,GAAAd,EAAA,EAAwHA,EAAAc,IAAOd,GAC/HiK,EAAA41E,EAAA7/E,IAAA8/E,EAAA9/E,MACA8lD,EAAA9lD,GAAAiK,EAKA,MAAQkL,EAAAwqE,IAAQxqE,EAChByqE,EAAAzqE,GAAAsqE,EAAAtqE,EAGA,WAAAuoE,IAAAkC,EAAAj8E,KAAAg6E,UAGA,QAAAoC,MAEA,OAAA1C,GAAA15E,KAAA25E,QAAAnoE,GAAA,EAAAhV,EAAAk9E,EAAAp6E,SAA4DkS,EAAAhV,GAC5D,OAAA8J,GAAAuiE,EAAA6Q,EAAAloE,GAAAnV,EAAAwsE,EAAAvpE,OAAA,EAAAgJ,EAAAugE,EAAAxsE,KAA4EA,GAAA,IAC5EiK,EAAAuiE,EAAAxsE,MACAiM,OAAAhC,EAAAyiB,aAAAzgB,EAAAiX,WAAAyT,aAAA1sB,EAAAgC,GACAA,EAAAhC,EAKA,OAAAtG,MAGA,QAAAq8E,IAAA/8B,GAGA,QAAAg9B,GAAA37E,EAAAE,GACA,MAAAF,IAAAE,EAAAy+C,EAAA3+C,EAAAq3E,SAAAn3E,EAAAm3E,WAAAr3E,GAAAE,EAHAy+C,MAAAi9B,GAMA,QAAA7C,GAAA15E,KAAA25E,QAAAn9E,EAAAk9E,EAAAp6E,OAAAk9E,EAAA,GAAA90E,OAAAlL,GAAAgV,EAAA,EAAsFA,EAAAhV,IAAOgV,EAAA,CAC7F,OAAAlL,GAAAuiE,EAAA6Q,EAAAloE,GAAArU,EAAA0rE,EAAAvpE,OAAAm9E,EAAAD,EAAAhrE,GAAA,GAAA9J,OAAAvK,GAAAd,EAAA,EAAwGA,EAAAc,IAAOd,GAC/GiK,EAAAuiE,EAAAxsE,MACAogF,EAAApgF,GAAAiK,EAGAm2E,GAAA36B,KAAAw6B,GAGA,UAAAvC,IAAAyC,EAAAx8E,KAAAg6E,UAAA/hC,QAGA,QAAAskC,IAAA57E,EAAAE,GACA,MAAAF,GAAAE,GAAA,EAAAF,EAAAE,EAAA,EAAAF,GAAAE,EAAA,EAAAu+C,IAGA,QAAAs9B,MACA,GAAAh3E,GAAArG,UAAA,EAGA,OAFAA,WAAA,GAAAW,KACA0F,EAAAmX,MAAA,KAAAxd,WACAW,KAGA,QAAA28E,MACA,GAAAxxB,GAAA,GAAAzjD,OAAA1H,KAAAgR,QAAA3U,GAAA,CAEA,OADA2D,MAAAojD,KAAA,WAAwB+H,IAAA9uD,GAAA2D,OACxBmrD,EAGA,QAAAyxB,MAEA,OAAAlD,GAAA15E,KAAA25E,QAAAnoE,EAAA,EAAAhV,EAAAk9E,EAAAp6E,OAA2DkS,EAAAhV,IAAOgV,EAClE,OAAAq3D,GAAA6Q,EAAAloE,GAAAnV,EAAA,EAAAc,EAAA0rE,EAAAvpE,OAAwDjD,EAAAc,IAAOd,EAAA,CAC/D,GAAAiK,GAAAuiE,EAAAxsE,EACA,IAAAiK,EAAA,MAAAA,GAIA,YAGA,QAAAu2E,MACA,GAAA7rE,GAAA,CAEA,OADAhR,MAAAojD,KAAA,aAAwBpyC,IACxBA,EAGA,QAAA8rE,MACA,OAAA98E,KAAAsG,OAGA,QAAAy2E,IAAAr3E,GAEA,OAAAg0E,GAAA15E,KAAA25E,QAAAnoE,EAAA,EAAAhV,EAAAk9E,EAAAp6E,OAA2DkS,EAAAhV,IAAOgV,EAClE,OAAAlL,GAAAuiE,EAAA6Q,EAAAloE,GAAAnV,EAAA,EAAAc,EAAA0rE,EAAAvpE,OAA8DjD,EAAAc,IAAOd,GACrEiK,EAAAuiE,EAAAxsE,KAAAqJ,EAAAnJ,KAAA+J,IAAA0xE,SAAA37E,EAAAwsE,EAIA,OAAA7oE,MAGA,QAAAg9E,IAAArgF,GACA,kBACAqD,KAAAi7B,gBAAAt+B,IAIA,QAAAsgF,IAAA3F,GACA,kBACAt3E,KAAAk9E,kBAAA5F,EAAAN,MAAAM,EAAAL,QAIA,QAAAkG,IAAAxgF,EAAAgG,GACA,kBACA3C,KAAAkkB,aAAAvnB,EAAAgG,IAIA,QAAAy6E,IAAA9F,EAAA30E,GACA,kBACA3C,KAAA+6B,eAAAu8C,EAAAN,MAAAM,EAAAL,MAAAt0E,IAIA,QAAA06E,IAAA1gF,EAAAgG,GACA,kBACA,GAAAwO,GAAAxO,EAAAka,MAAA7c,KAAAX,UACA,OAAA8R,EAAAnR,KAAAi7B,gBAAAt+B,GACAqD,KAAAkkB,aAAAvnB,EAAAwU,IAIA,QAAAmsE,IAAAhG,EAAA30E,GACA,kBACA,GAAAwO,GAAAxO,EAAAka,MAAA7c,KAAAX,UACA,OAAA8R,EAAAnR,KAAAk9E,kBAAA5F,EAAAN,MAAAM,EAAAL,OACAj3E,KAAA+6B,eAAAu8C,EAAAN,MAAAM,EAAAL,MAAA9lE,IAIA,QAAAosE,IAAA5gF,EAAAgG,GACA,GAAA20E,GAAAR,GAAAn6E,EAEA,IAAA0C,UAAAC,OAAA,GACA,GAAAgH,GAAAtG,KAAAsG,MACA,OAAAgxE,GAAAL,MACA3wE,EAAAk3E,eAAAlG,EAAAN,MAAAM,EAAAL,OACA3wE,EAAA0iC,aAAAsuC,GAGA,MAAAt3E,MAAAojD,MAAA,MAAAzgD,EACA20E,EAAAL,MAAAgG,GAAAD,GAAA,mBAAAr6E,GACA20E,EAAAL,MAAAqG,GAAAD,GACA/F,EAAAL,MAAAmG,GAAAD,IAAA7F,EAAA30E,IAGA,QAAAK,IAAAsD,GACA,MAAAA,GAAAo3B,eAAAp3B,EAAAo3B,cAAA2M,aACA/jC,EAAAC,UAAAD,GACAA,EAAA+jC,YAGA,QAAAozC,IAAA9gF,GACA,kBACAqD,KAAA+S,MAAA2qE,eAAA/gF,IAIA,QAAAghF,IAAAhhF,EAAAgG,EAAAi7E,GACA,kBACA59E,KAAA+S,MAAAqqB,YAAAzgC,EAAAgG,EAAAi7E,IAIA,QAAAC,IAAAlhF,EAAAgG,EAAAi7E,GACA,kBACA,GAAAzsE,GAAAxO,EAAAka,MAAA7c,KAAAX,UACA,OAAA8R,EAAAnR,KAAA+S,MAAA2qE,eAAA/gF,GACAqD,KAAA+S,MAAAqqB,YAAAzgC,EAAAwU,EAAAysE,IAIA,QAAAE,IAAAnhF,EAAAgG,EAAAi7E,GACA,GAAAt3E,EACA,OAAAjH,WAAAC,OAAA,EACAU,KAAAojD,MAAA,MAAAzgD,EACA86E,GAAA,mBAAA96E,GACAk7E,GACAF,IAAAhhF,EAAAgG,EAAA,MAAAi7E,EAAA,GAAAA,IACA56E,GAAAsD,EAAAtG,KAAAsG,QACAm4D,iBAAAn4D,EAAA,MACAo4D,iBAAA/hE,GAGA,QAAAohF,IAAAphF,GACA,wBACAqD,MAAArD,IAIA,QAAAqhF,IAAArhF,EAAAgG,GACA,kBACA3C,KAAArD,GAAAgG,GAIA,QAAAs7E,IAAAthF,EAAAgG,GACA,kBACA,GAAAwO,GAAAxO,EAAAka,MAAA7c,KAAAX,UACA,OAAA8R,QAAAnR,MAAArD,GACAqD,KAAArD,GAAAwU,GAIA,QAAA+sE,IAAAvhF,EAAAgG,GACA,MAAAtD,WAAAC,OAAA,EACAU,KAAAojD,MAAA,MAAAzgD,EACAo7E,GAAA,mBAAAp7E,GACAs7E,GACAD,IAAArhF,EAAAgG,IACA3C,KAAAsG,OAAA3J,GAGA,QAAAwhF,IAAAtU,GACA,MAAAA,GAAA/8D,OAAAnO,MAAA,SAGA,QAAAy/E,IAAA93E,GACA,MAAAA,GAAA83E,WAAA,GAAAC,IAAA/3E,GAGA,QAAA+3E,IAAA/3E,GACAtG,KAAAs+E,MAAAh4E,EACAtG,KAAAu+E,OAAAJ,GAAA73E,EAAA0iC,aAAA,cAuBA,QAAAw1C,IAAAl4E,EAAA+pE,GAEA,IADA,GAAA7rE,GAAA45E,GAAA93E,GAAAjK,GAAA,EAAAc,EAAAkzE,EAAA/wE,SACAjD,EAAAc,GAAAqH,EAAA8xB,IAAA+5C,EAAAh0E,IAGA,QAAAoiF,IAAAn4E,EAAA+pE,GAEA,IADA,GAAA7rE,GAAA45E,GAAA93E,GAAAjK,GAAA,EAAAc,EAAAkzE,EAAA/wE,SACAjD,EAAAc,GAAAqH,EAAAw5C,OAAAqyB,EAAAh0E,IAGA,QAAAqiF,IAAArO,GACA,kBACAmO,GAAAx+E,KAAAqwE,IAIA,QAAAsO,IAAAtO,GACA,kBACAoO,GAAAz+E,KAAAqwE,IAIA,QAAAuO,IAAAvO,EAAA1tE,GACA,mBACAA,EAAAka,MAAA7c,KAAAX,WAAAm/E,GAAAC,IAAAz+E,KAAAqwE,IAIA,QAAAwO,IAAAliF,EAAAgG,GACA,GAAA0tE,GAAA8N,GAAAxhF,EAAA,GAEA,IAAA0C,UAAAC,OAAA,GAEA,IADA,GAAAkF,GAAA45E,GAAAp+E,KAAAsG,QAAAjK,GAAA,EAAAc,EAAAkzE,EAAA/wE,SACAjD,EAAAc,GAAA,IAAAqH,EAAAs6C,SAAAuxB,EAAAh0E,IAAA,QACA,UAGA,MAAA2D,MAAAojD,MAAA,mBAAAzgD,GACAi8E,GAAAj8E,EACA+7E,GACAC,IAAAtO,EAAA1tE,IAGA,QAAAm8E,MACA9+E,KAAA6oB,YAAA,GAGA,QAAAk2D,IAAAp8E,GACA,kBACA3C,KAAA6oB,YAAAlmB,GAIA,QAAAq8E,IAAAr8E,GACA,kBACA,GAAAwO,GAAAxO,EAAAka,MAAA7c,KAAAX,UACAW,MAAA6oB,YAAA,MAAA1X,EAAA,GAAAA,GAIA,QAAA8tE,IAAAt8E,GACA,MAAAtD,WAAAC,OACAU,KAAAojD,KAAA,MAAAzgD,EACAm8E,IAAA,mBAAAn8E,GACAq8E,GACAD,IAAAp8E,IACA3C,KAAAsG,OAAAuiB,YAGA,QAAAq2D,MACAl/E,KAAAk+B,UAAA,GAGA,QAAAihD,IAAAx8E,GACA,kBACA3C,KAAAk+B,UAAAv7B,GAIA,QAAAy8E,IAAAz8E,GACA,kBACA,GAAAwO,GAAAxO,EAAAka,MAAA7c,KAAAX,UACAW,MAAAk+B,UAAA,MAAA/sB,EAAA,GAAAA,GAIA,QAAAkuE,IAAA18E,GACA,MAAAtD,WAAAC,OACAU,KAAAojD,KAAA,MAAAzgD,EACAu8E,IAAA,mBAAAv8E,GACAy8E,GACAD,IAAAx8E,IACA3C,KAAAsG,OAAA43B,UAGA,QAAAohD,MACAt/E,KAAA+oB,aAAA/oB,KAAAuf,WAAAuT,YAAA9yB,MAGA,QAAAu/E,MACA,MAAAv/E,MAAAojD,KAAAk8B,IAGA,QAAAE,MACAx/E,KAAAy/E,iBAAAz/E,KAAAuf,WAAAyT,aAAAhzB,UAAAuf,WAAAoJ,YAGA,QAAA+2D,MACA,MAAA1/E,MAAAojD,KAAAo8B,IAGA,QAAAG,IAAAhjF,GACA,GAAAoT,GAAA,mBAAApT,KAAA46E,GAAA56E,EACA,OAAAqD,MAAAgqB,OAAA,WACA,MAAAhqB,MAAA8yB,YAAA/iB,EAAA8M,MAAA7c,KAAAX,cAIA,QAAAugF,MACA,YAGA,QAAAC,IAAAljF,EAAAmjF,GACA,GAAA/vE,GAAA,mBAAApT,KAAA46E,GAAA56E,GACAqtB,EAAA,MAAA81D,EAAAF,GAAA,mBAAAE,KAAAvG,GAAAuG,EACA,OAAA9/E,MAAAgqB,OAAA,WACA,MAAAhqB,MAAAgzB,aAAAjjB,EAAA8M,MAAA7c,KAAAX,WAAA2qB,EAAAnN,MAAA7c,KAAAX,YAAA,QAIA,QAAA2+C,MACA,GAAA8K,GAAA9oD,KAAAuf,UACAupC,MAAA51B,YAAAlzB,MAGA,QAAA+/E,MACA,MAAA//E,MAAAojD,KAAApF,IAGA,QAAAgiC,IAAAr9E,GACA,MAAAtD,WAAAC,OACAU,KAAA1C,SAAA,WAAAqF,GACA3C,KAAAsG,OAAA0xE,SAGA,QAAAjtC,IAAAzkC,EAAAoF,EAAAsJ,GACA,GAAAirE,GAAAj9E,GAAAsD,GACAs8D,EAAAqd,EAAAC,WAEAtd,GACAA,EAAA,GAAAA,GAAAl3D,EAAAsJ,IAEA4tD,EAAAqd,EAAA15E,SAAA45E,YAAA,SACAnrE,GAAA4tD,EAAAwd,UAAA10E,EAAAsJ,EAAAoxB,QAAApxB,EAAAqxB,YAAAu8B,EAAA1gD,OAAAlN,EAAAkN,QACA0gD,EAAAwd,UAAA10E,GAAA,OAGApF,EAAAykC,cAAA63B,GAGA,QAAAyd,IAAA30E,EAAAsJ,GACA,kBACA,MAAA+1B,IAAA/qC,KAAA0L,EAAAsJ,IAIA,QAAAsrE,IAAA50E,EAAAsJ,GACA,kBACA,MAAA+1B,IAAA/qC,KAAA0L,EAAAsJ,EAAA6H,MAAA7c,KAAAX,aAIA,QAAAkhF,IAAA70E,EAAAsJ,GACA,MAAAhV,MAAAojD,MAAA,mBAAApuC,GACAsrE,GACAD,IAAA30E,EAAAsJ,IAKA,QAAA+kE,IAAAL,EAAAU,GACAp6E,KAAA25E,QAAAD,EACA15E,KAAAg6E,SAAAI,EAGA,QAAAyB,MACA,UAAA9B,MAAAxzE,SAAAoa,kBAAA6/D,IAoCA,QAAAx2D,IAAAuvD,GACA,uBAAAA,GACA,GAAAQ,MAAAxzE,SAAAizE,cAAAD,MAAAhzE,SAAAoa,kBACA,GAAAo5D,MAAAR,IAAAiH,IAGA,QAAAC,IAAAlH,GACA,uBAAAA,GACA,GAAAQ,KAAAxzE,SAAAm0C,iBAAA6+B,KAAAhzE,SAAAoa,kBACA,GAAAo5D,KAAA,MAAAR,QAAAiH,IAGA,QAAAE,IAAAp6E,EAAA4sC,EAAAytC,GACAthF,UAAAC,OAAA,IAAAqhF,EAAAztC,IAAAwlC,KAAAtlC,eAEA,QAAAstC,GAAArkF,EAAA,EAAAc,EAAA+1C,IAAA5zC,OAAA,EAA0DjD,EAAAc,IAAOd,EACjE,IAAAqkF,EAAAxtC,EAAA72C,IAAAskF,eACA,MAAAhI,IAAAryE,EAAAo6E,EAIA,aAGA,QAAAxtC,IAAA5sC,EAAA4sC,GACA,MAAAA,MAAAwlC,KAAAxlC,QAEA,QAAA72C,GAAA,EAAAc,EAAA+1C,IAAA5zC,OAAA,EAAA+nD,EAAA,GAAA3/C,OAAAvK,GAA0Ed,EAAAc,IAAOd,EACjFgrD,EAAAhrD,GAAAs8E,GAAAryE,EAAA4sC,EAAA72C,GAGA,OAAAgrD,GAaA,QAAAu5B,IAAAt6E,EAAA3J,EAAA0G,EAAA+B,EAAAyjE,EAAAgY,GACA,GAAAC,GAAAx6E,EAAAy6E,YACA,IAAAD,GACA,GAAAz9E,IAAAy9E,GAAA,WADAx6E,GAAAy6E,eAEAhxE,IAAAzJ,EAAAjD,GACA1G,OACAyI,QACAyjE,QACAvF,GAAA0d,GACAC,MAAAC,GACAv4C,KAAAk4C,EAAAl4C,KACAw7B,MAAA0c,EAAA1c,MACA9D,SAAAwgB,EAAAxgB,SACA8gB,KAAAN,EAAAM,KACAjd,MAAA,KACAlwD,MAAAotE,KAIA,QAAA7yE,IAAAjI,EAAAjD,GACA,GAAAu9E,GAAAt6E,EAAAy6E,YACA,KAAAH,SAAAv9E,KAAAu9E,EAAA5sE,MAAAotE,GAAA,SAAA31E,OAAA,WACA,OAAAm1E,GAGA,QAAAS,IAAA/6E,EAAAjD,GACA,GAAAu9E,GAAAt6E,EAAAy6E,YACA,KAAAH,SAAAv9E,KAAAu9E,EAAA5sE,MAAAstE,GAAA,SAAA71E,OAAA,WACA,OAAAm1E,GAGA,QAAAW,IAAAj7E,EAAAjD,GACA,GAAAu9E,GAAAt6E,EAAAy6E,YACA,KAAAH,SAAAv9E,IAAA,SAAAoI,OAAA,WACA,OAAAm1E,GAGA,QAAA7wE,IAAAzJ,EAAAjD,EAAAhC,GAWA,QAAAu/E,GAAA5b,GACA3jE,EAAA2S,MAAAwtE,GACAngF,EAAA8iE,OAAAa,EAAA9yD,EAAA8yD,EAAA3jE,EAAA8iE,OACA9iE,EAAA6iE,MAAAE,QAAAlyD,EAAA7Q,EAAA8iE,MAAA9iE,EAAAsnC,MAGA,QAAAz2B,GAAA8yD,GACA,GAAA3oE,GAAAmV,EAAArU,EAAAN,CAEA,KAAAR,IAAAykF,GACAjkF,EAAAikF,EAAAzkF,GACAQ,EAAAF,OAAA0E,EAAA1E,OAIAE,EAAAmX,QAAAytE,IACA5kF,EAAAmX,MAAA0tE,GACA7kF,EAAAqnE,MAAA9jB,OACAvjD,EAAAymE,GAAA/mE,KAAA,YAAA+J,IAAA0xE,SAAAn7E,EAAAuI,MAAAvI,EAAAgsE,aACAiY,GAAAzkF,KAMAA,EAAAgH,IACAxG,EAAAmX,MAAA0tE,GACA7kF,EAAAqnE,MAAA9jB,aACA0gC,GAAAzkF,IAmBA,IAXA0oE,GAAA,WACA1jE,EAAA2S,QAAAytE,KACApgF,EAAA6iE,MAAAE,QAAAvuD,EAAAxU,EAAA8iE,MAAA9iE,EAAAsnC,MACA9yB,EAAAmvD,MAMA3jE,EAAA2S,MAAAstE,GACAjgF,EAAAiiE,GAAA/mE,KAAA,QAAA+J,IAAA0xE,SAAA32E,EAAA+D,MAAA/D,EAAAwnE,OACAxnE,EAAA2S,QAAAstE,GAAA,CAKA,IAJAjgF,EAAA2S,MAAAytE,GAGAR,EAAA,GAAAv5E,OAAAvK,EAAAkE,EAAA4/E,MAAA3hF,QACAjD,EAAA,EAAAmV,GAAA,EAAuBnV,EAAAc,IAAOd,GAC9BQ,EAAAwE,EAAA4/E,MAAA5kF,GAAAsG,MAAApG,KAAA+J,IAAA0xE,SAAA32E,EAAA+D,MAAA/D,EAAAwnE,UACAoY,IAAAzvE,GAAA3U,EAGAokF,GAAA3hF,OAAAkS,EAAA,GAGA,QAAAqE,GAAAmvD,GAKA,IAJA,GAAAtrD,GAAAsrD,EAAA3jE,EAAAg/D,SAAAh/D,EAAA8/E,KAAA5kF,KAAA,KAAAyoE,EAAA3jE,EAAAg/D,WAAAh/D,EAAA2S,MAAA2tE,GAAA,GACAtlF,GAAA,EACAc,EAAA8jF,EAAA3hF,SAEAjD,EAAAc,GACA8jF,EAAA5kF,GAAAE,KAAA,KAAAmd,EAIA,IAAArY,EAAA2S,QAAA2tE,GAAA,CACAtgF,EAAA2S,MAAA0tE,GACArgF,EAAA6iE,MAAA9jB,OACA/+C,EAAAiiE,GAAA/mE,KAAA,MAAA+J,IAAA0xE,SAAA32E,EAAA+D,MAAA/D,EAAAwnE,MACA,KAAAxsE,IAAAykF,GAAA,IAAAzkF,IAAAgH,EAAA,kBAAAy9E,GAAAz9E,SACAiD,GAAAy6E,cArFA,GACAE,GADAH,EAAAx6E,EAAAy6E,YAKAD,GAAAz9E,GAAAhC,EACAA,EAAA6iE,SAAA0c,EAAA,EAAAv/E,EAAAsnC,MAoFA,QAAAi5C,IAAAt7E,EAAA3J,GACA,GACAikF,GACAiB,EAEAxlF,EAJAykF,EAAAx6E,EAAAy6E,aAGA9G,GAAA,CAGA,IAAA6G,EAAA,CAEAnkF,EAAA,MAAAA,EAAA,KAAAA,EAAA,EAEA,KAAAN,IAAAykF,IACAF,EAAAE,EAAAzkF,IAAAM,UACAklF,EAAAjB,EAAA5sE,QAAAytE,GACAb,EAAA5sE,MAAA0tE,GACAd,EAAA1c,MAAA9jB,OACAyhC,GAAAjB,EAAAtd,GAAA/mE,KAAA,YAAA+J,IAAA0xE,SAAA4I,EAAAx7E,MAAAw7E,EAAA/X,aACAiY,GAAAzkF,IALkD49E,GAAA,CAQlDA,UAAA3zE,GAAAy6E,cAGA,QAAAe,IAAAnlF,GACA,MAAAqD,MAAAojD,KAAA,WACAw+B,GAAA5hF,KAAArD,KAIA,QAAAolF,IAAA1+E,EAAA1G,GACA,GAAAqlF,GAAAC,CACA,mBACA,GAAArB,GAAAS,GAAArhF,KAAAqD,GACA49E,EAAAL,EAAAK,KAKA,IAAAA,IAAAe,EAAA,CACAC,EAAAD,EAAAf,CACA,QAAA5kF,GAAA,EAAAc,EAAA8kF,EAAA3iF,OAAwCjD,EAAAc,IAAOd,EAC/C,GAAA4lF,EAAA5lF,GAAAM,SAAA,CACAslF,IAAAt6E,QACAs6E,EAAAC,OAAA7lF,EAAA,EACA,QAKAukF,EAAAK,MAAAgB,GAIA,QAAAE,IAAA9+E,EAAA1G,EAAAgG,GACA,GAAAq/E,GAAAC,CACA,uBAAAt/E,GAAA,SAAA8I,MACA,mBACA,GAAAm1E,GAAAS,GAAArhF,KAAAqD,GACA49E,EAAAL,EAAAK,KAKA,IAAAA,IAAAe,EAAA,CACAC,GAAAD,EAAAf,GAAAt5E,OACA,QAAA+R,IAAoB/c,OAAAgG,SAAyBtG,EAAA,EAAAc,EAAA8kF,EAAA3iF,OAA2BjD,EAAAc,IAAOd,EAC/E,GAAA4lF,EAAA5lF,GAAAM,SAAA,CACAslF,EAAA5lF,GAAAqd,CACA,OAGArd,IAAAc,GAAA8kF,EAAAjgF,KAAA0X,GAGAknE,EAAAK,MAAAgB,GAIA,QAAAG,IAAAzlF,EAAAgG,GACA,GAAAU,GAAArD,KAAAqiF,GAIA,IAFA1lF,GAAA,GAEA0C,UAAAC,OAAA,GAEA,OAAAoa,GADAunE,EAAAM,GAAAvhF,KAAAsG,OAAAjD,GAAA49E,MACA5kF,EAAA,EAAAc,EAAA8jF,EAAA3hF,OAAwCjD,EAAAc,IAAOd,EAC/C,IAAAqd,EAAAunE,EAAA5kF,IAAAM,SACA,MAAA+c,GAAA/W,KAGA,aAGA,MAAA3C,MAAAojD,MAAA,MAAAzgD,EAAAo/E,GAAAI,IAAA9+E,EAAA1G,EAAAgG,IAGA,QAAA2/E,IAAAj3C,EAAA1uC,EAAAgG,GACA,GAAAU,GAAAgoC,EAAAg3C,GAOA,OALAh3C,GAAA+X,KAAA,WACA,GAAAw9B,GAAAS,GAAArhF,KAAAqD,IACAu9E,EAAAj+E,QAAAi+E,EAAAj+E,WAA2ChG,GAAAgG,EAAAka,MAAA7c,KAAAX,aAG3C,SAAAiH,GACA,MAAAi7E,IAAAj7E,EAAAjD,GAAAV,MAAAhG,IAIA,QAAA4lF,IAAA5hF,EAAAE,GACA,GAAApE,EACA,yBAAAoE,GAAAg8D,GACAh8D,YAAA0R,IAAAirD,IACA/gE,EAAA8V,GAAA1R,OAAApE,EAAA+gE,IACAR,IAAAr8D,EAAAE,GAGA,QAAA2hF,IAAA7lF,GACA,kBACAqD,KAAAi7B,gBAAAt+B,IAIA,QAAA8lF,IAAAnL,GACA,kBACAt3E,KAAAk9E,kBAAA5F,EAAAN,MAAAM,EAAAL,QAIA,QAAAyL,IAAA/lF,EAAAggE,EAAAgmB,GACA,GAAAC,GACAC,CACA,mBACA,GAAAC,GAAA9iF,KAAAgpC,aAAArsC,EACA,OAAAmmF,KAAAH,EAAA,KACAG,IAAAF,EAAAC,EACAA,EAAAlmB,EAAAimB,EAAAE,EAAAH,IAIA,QAAAI,IAAAzL,EAAA3a,EAAAgmB,GACA,GAAAC,GACAC,CACA,mBACA,GAAAC,GAAA9iF,KAAAw9E,eAAAlG,EAAAN,MAAAM,EAAAL,MACA,OAAA6L,KAAAH,EAAA,KACAG,IAAAF,EAAAC,EACAA,EAAAlmB,EAAAimB,EAAAE,EAAAH,IAIA,QAAAK,IAAArmF,EAAAggE,EAAAh6D,GACA,GAAAigF,GACAK,EACAJ,CACA,mBACA,GAAAC,GAAAH,EAAAhgF,EAAA3C,KACA,cAAA2iF,MAAA3iF,MAAAi7B,gBAAAt+B,IACAmmF,EAAA9iF,KAAAgpC,aAAArsC,GACAmmF,IAAAH,EAAA,KACAG,IAAAF,GAAAD,IAAAM,EAAAJ,EACAA,EAAAlmB,EAAAimB,EAAAE,EAAAG,EAAAN,KAIA,QAAAO,IAAA5L,EAAA3a,EAAAh6D,GACA,GAAAigF,GACAK,EACAJ,CACA,mBACA,GAAAC,GAAAH,EAAAhgF,EAAA3C,KACA,cAAA2iF,MAAA3iF,MAAAk9E,kBAAA5F,EAAAN,MAAAM,EAAAL,QACA6L,EAAA9iF,KAAAw9E,eAAAlG,EAAAN,MAAAM,EAAAL,OACA6L,IAAAH,EAAA,KACAG,IAAAF,GAAAD,IAAAM,EAAAJ,EACAA,EAAAlmB,EAAAimB,EAAAE,EAAAG,EAAAN,KAIA,QAAAQ,IAAAxmF,EAAAgG,GACA,GAAA20E,GAAAR,GAAAn6E,GAAAN,EAAA,cAAAi7E,EAAA8L,GAAAb,EACA,OAAAviF,MAAAqjF,UAAA1mF,EAAA,mBAAAgG,IACA20E,EAAAL,MAAAiM,GAAAF,IAAA1L,EAAAj7E,EAAAimF,GAAAtiF,KAAA,QAAArD,EAAAgG,IACA,MAAAA,GAAA20E,EAAAL,MAAAwL,GAAAD,IAAAlL,IACAA,EAAAL,MAAA8L,GAAAL,IAAApL,EAAAj7E,EAAAsG,IAGA,QAAA2gF,IAAAhM,EAAA30E,GACA,QAAAs+E,KACA,GAAA36E,GAAAtG,KAAA3D,EAAAsG,EAAAka,MAAAvW,EAAAjH,UACA,OAAAhD,IAAA,SAAAqd,GACApT,EAAAy0B,eAAAu8C,EAAAN,MAAAM,EAAAL,MAAA56E,EAAAqd,KAIA,MADAunE,GAAAsC,OAAA5gF,EACAs+E,EAGA,QAAAoC,IAAA1mF,EAAAgG,GACA,QAAAs+E,KACA,GAAA36E,GAAAtG,KAAA3D,EAAAsG,EAAAka,MAAAvW,EAAAjH,UACA,OAAAhD,IAAA,SAAAqd,GACApT,EAAA4d,aAAAvnB,EAAAN,EAAAqd,KAIA,MADAunE,GAAAsC,OAAA5gF,EACAs+E,EAGA,QAAAuC,IAAA7mF,EAAAgG,GACA,GAAApD,GAAA,QAAA5C,CACA,IAAA0C,UAAAC,OAAA,SAAAC,EAAAS,KAAAihF,MAAA1hF,OAAAgkF,MACA,UAAA5gF,EAAA,MAAA3C,MAAAihF,MAAA1hF,EAAA,KACA,uBAAAoD,GAAA,SAAA8I,MACA,IAAA6rE,GAAAR,GAAAn6E,EACA,OAAAqD,MAAAihF,MAAA1hF,GAAA+3E,EAAAL,MAAAqM,GAAAD,IAAA/L,EAAA30E,IAGA,QAAA8gF,IAAApgF,EAAAV,GACA,kBACA4L,GAAAvO,KAAAqD,GAAA8gE,OAAAxhE,EAAAka,MAAA7c,KAAAX,YAIA,QAAAqkF,IAAArgF,EAAAV,GACA,MAAAA,MAAA,WACA4L,GAAAvO,KAAAqD,GAAA8gE,MAAAxhE,GAIA,QAAAghF,IAAAhhF,GACA,GAAAU,GAAArD,KAAAqiF,GAEA,OAAAhjF,WAAAC,OACAU,KAAAojD,MAAA,mBAAAzgD,GACA8gF,GACAC,IAAArgF,EAAAV,IACA4+E,GAAAvhF,KAAAsG,OAAAjD,GAAA8gE,MAGA,QAAAyf,IAAAvgF,EAAAV,GACA,kBACA0+E,GAAArhF,KAAAqD,GAAAg9D,UAAA19D,EAAAka,MAAA7c,KAAAX,YAIA,QAAAwkF,IAAAxgF,EAAAV,GACA,MAAAA,MAAA,WACA0+E,GAAArhF,KAAAqD,GAAAg9D,SAAA19D,GAIA,QAAAmhF,IAAAnhF,GACA,GAAAU,GAAArD,KAAAqiF,GAEA,OAAAhjF,WAAAC,OACAU,KAAAojD,MAAA,mBAAAzgD,GACAihF,GACAC,IAAAxgF,EAAAV,IACA4+E,GAAAvhF,KAAAsG,OAAAjD,GAAAg9D,SAGA,QAAA0jB,IAAA1gF,EAAAV,GACA,sBAAAA,GAAA,SAAA8I,MACA,mBACA41E,GAAArhF,KAAAqD,GAAA89E,KAAAx+E,GAIA,QAAAqhF,IAAArhF,GACA,GAAAU,GAAArD,KAAAqiF,GAEA,OAAAhjF,WAAAC,OACAU,KAAAojD,KAAA2gC,GAAA1gF,EAAAV,IACA4+E,GAAAvhF,KAAAsG,OAAAjD,GAAA89E,KAGA,QAAA8C,IAAAtc,GACA,mBAAAA,OAAA2S,GAAA3S,GAEA,QAAA+R,GAAA15E,KAAA25E,QAAAn9E,EAAAk9E,EAAAp6E,OAAAs6E,EAAA,GAAAlyE,OAAAlL,GAAAgV,EAAA,EAAqFA,EAAAhV,IAAOgV,EAC5F,OAAAlL,GAAAuiE,EAAA6Q,EAAAloE,GAAArU,EAAA0rE,EAAAvpE,OAAAw6E,EAAAF,EAAApoE,MAAAnV,EAAA,EAA4FA,EAAAc,IAAOd,GACnGiK,EAAAuiE,EAAAxsE,KAAAsrE,EAAAprE,KAAA+J,IAAA0xE,SAAA37E,EAAAwsE,IACAiR,EAAA93E,KAAAsE,EAKA,WAAA49E,IAAAtK,EAAA55E,KAAAg6E,SAAAh6E,KAAAmkF,MAAAnkF,KAAAqiF,KAGA,QAAA+B,IAAA/4C,GACA,GAAAA,EAAAg3C,MAAAriF,KAAAqiF,IAAA,SAAA52E,MAEA,QAAAqwE,GAAA97E,KAAA25E,QAAAoC,EAAA1wC,EAAAsuC,QAAAqC,EAAAF,EAAAx8E,OAAAy6D,EAAAgiB,EAAAz8E,OAAA9C,EAAAgU,KAAAF,IAAA0rE,EAAAjiB,GAAAkiB,EAAA,GAAAv0E,OAAAs0E,GAAAxqE,EAAA,EAA+JA,EAAAhV,IAAOgV,EACtK,OAAAlL,GAAA41E,EAAAJ,EAAAtqE,GAAA2qE,EAAAJ,EAAAvqE,GAAArU,EAAA++E,EAAA58E,OAAA6iD,EAAA85B,EAAAzqE,GAAA,GAAA9J,OAAAvK,GAAAd,EAAA,EAAwHA,EAAAc,IAAOd,GAC/HiK,EAAA41E,EAAA7/E,IAAA8/E,EAAA9/E,MACA8lD,EAAA9lD,GAAAiK,EAKA,MAAQkL,EAAAwqE,IAAQxqE,EAChByqE,EAAAzqE,GAAAsqE,EAAAtqE,EAGA,WAAA0yE,IAAAjI,EAAAj8E,KAAAg6E,SAAAh6E,KAAAmkF,MAAAnkF,KAAAqiF,KAGA,QAAAgC,IAAA1nF,GACA,OAAAA,EAAA,IAAAmQ,OAAAnO,MAAA,SAAAgnE,MAAA,SAAAjsD,GACA,GAAArd,GAAAqd,EAAApN,QAAA,IAEA,OADAjQ,IAAA,IAAAqd,IAAA/R,MAAA,EAAAtL,KACAqd,GAAA,UAAAA,IAIA,QAAA4qE,IAAAjhF,EAAA1G,EAAAg7E,GACA,GAAA4M,GAAAC,EAAAC,EAAAJ,GAAA1nF,GAAA4R,GAAA8yE,EACA,mBACA,GAAAT,GAAA6D,EAAAzkF,KAAAqD,GACAigE,EAAAsd,EAAAtd,EAKAA,KAAAihB,IAAAC,GAAAD,EAAAjhB,GAAAhY,QAAAgY,GAAA3mE,EAAAg7E,GAEAiJ,EAAAtd,GAAAkhB,GAIA,QAAAE,IAAA/nF,EAAAg7E,GACA,GAAAt0E,GAAArD,KAAAqiF,GAEA,OAAAhjF,WAAAC,OAAA,EACAiiF,GAAAvhF,KAAAsG,OAAAjD,GAAAigE,MAAA3mE,GACAqD,KAAAojD,KAAAkhC,GAAAjhF,EAAA1G,EAAAg7E,IAGA,QAAAgN,IAAAthF,GACA,kBACA,GAAAylD,GAAA9oD,KAAAuf,UACA,QAAAljB,KAAA2D,MAAA+gF,aAAA,IAAA1kF,IAAAgH,EAAA,MACAylD,MAAA51B,YAAAlzB,OAIA,QAAA4kF,MACA,MAAA5kF,MAAAsjE,GAAA,aAAAqhB,GAAA3kF,KAAAqiF,MAGA,QAAAwC,IAAA76D,GACA,GAAArtB,GAAAqD,KAAAmkF,MACA9gF,EAAArD,KAAAqiF,GAEA,oBAAAr4D,OAAAuvD,GAAAvvD,GAEA,QAAA0vD,GAAA15E,KAAA25E,QAAAn9E,EAAAk9E,EAAAp6E,OAAAs6E,EAAA,GAAAlyE,OAAAlL,GAAAgV,EAAA,EAAqFA,EAAAhV,IAAOgV,EAC5F,OAAAlL,GAAAuzE,EAAAhR,EAAA6Q,EAAAloE,GAAArU,EAAA0rE,EAAAvpE,OAAAw6E,EAAAF,EAAApoE,GAAA,GAAA9J,OAAAvK,GAAAd,EAAA,EAA+GA,EAAAc,IAAOd,GACtHiK,EAAAuiE,EAAAxsE,MAAAw9E,EAAA7vD,EAAAztB,KAAA+J,IAAA0xE,SAAA37E,EAAAwsE,MACA,YAAAviE,KAAAuzE,EAAA7B,SAAA1xE,EAAA0xE,UACA8B,EAAAz9E,GAAAw9E,EACA+G,GAAA9G,EAAAz9E,GAAAM,EAAA0G,EAAAhH,EAAAy9E,EAAAyH,GAAAj7E,EAAAjD,IAKA,WAAA6gF,IAAAtK,EAAA55E,KAAAg6E,SAAAr9E,EAAA0G,GAGA,QAAAyhF,IAAA96D,GACA,GAAArtB,GAAAqD,KAAAmkF,MACA9gF,EAAArD,KAAAqiF,GAEA,oBAAAr4D,OAAAkwD,GAAAlwD,GAEA,QAAA0vD,GAAA15E,KAAA25E,QAAAn9E,EAAAk9E,EAAAp6E,OAAAs6E,KAAAQ,KAAA5oE,EAAA,EAAyFA,EAAAhV,IAAOgV,EAChG,OAAAlL,GAAAuiE,EAAA6Q,EAAAloE,GAAArU,EAAA0rE,EAAAvpE,OAAAjD,EAAA,EAA8DA,EAAAc,IAAOd,EACrE,GAAAiK,EAAAuiE,EAAAxsE,GAAA,CACA,OAAA0qB,GAAAxO,EAAAyR,EAAAztB,KAAA+J,IAAA0xE,SAAA37E,EAAAwsE,GAAAkc,EAAAxD,GAAAj7E,EAAAjD,GAAA8U,EAAA,EAAA7b,EAAAic,EAAAjZ,OAAqI6Y,EAAA7b,IAAO6b,GAC5I4O,EAAAxO,EAAAJ,KACAyoE,GAAA75D,EAAApqB,EAAA0G,EAAA8U,EAAAI,EAAAwsE,EAGAnL,GAAA53E,KAAAuW,GACA6hE,EAAAp4E,KAAAsE,GAKA,UAAA49E,IAAAtK,EAAAQ,EAAAz9E,EAAA0G,GAKA,QAAA2hF,MACA,UAAAC,IAAAjlF,KAAA25E,QAAA35E,KAAAg6E,UAGA,QAAAkL,IAAAvoF,EAAAggE,GACA,GAAAimB,GACAK,EACAJ,CACA,mBACA,GAAA9vE,GAAA/P,GAAAhD,MAAAy+D,iBAAAz+D,KAAA,MACA8iF,EAAA/vE,EAAA2rD,iBAAA/hE,GACAgmF,GAAA3iF,KAAA+S,MAAA2qE,eAAA/gF,GAAAoW,EAAA2rD,iBAAA/hE,GACA,OAAAmmF,KAAAH,EAAA,KACAG,IAAAF,GAAAD,IAAAM,EAAAJ,EACAA,EAAAlmB,EAAAimB,EAAAE,EAAAG,EAAAN,IAIA,QAAAwC,IAAAxoF,GACA,kBACAqD,KAAA+S,MAAA2qE,eAAA/gF,IAIA,QAAAyoF,IAAAzoF,EAAAggE,EAAAgmB,GACA,GAAAC,GACAC,CACA,mBACA,GAAAC,GAAA9/E,GAAAhD,MAAAy+D,iBAAAz+D,KAAA,MAAA0+D,iBAAA/hE,EACA,OAAAmmF,KAAAH,EAAA,KACAG,IAAAF,EAAAC,EACAA,EAAAlmB,EAAAimB,EAAAE,EAAAH,IAIA,QAAA0C,IAAA1oF,EAAAggE,EAAAh6D,GACA,GAAAigF,GACAK,EACAJ,CACA,mBACA,GAAA9vE,GAAA/P,GAAAhD,MAAAy+D,iBAAAz+D,KAAA,MACA8iF,EAAA/vE,EAAA2rD,iBAAA/hE,GACAgmF,EAAAhgF,EAAA3C,KAEA,OADA,OAAA2iF,IAAA3iF,KAAA+S,MAAA2qE,eAAA/gF,GAAAgmF,EAAA5vE,EAAA2rD,iBAAA/hE,IACAmmF,IAAAH,EAAA,KACAG,IAAAF,GAAAD,IAAAM,EAAAJ,EACAA,EAAAlmB,EAAAimB,EAAAE,EAAAG,EAAAN,IAIA,QAAA2C,IAAA3oF,EAAAgG,EAAAi7E,GACA,GAAAvhF,GAAA,eAAAM,GAAA,IAAA4oF,GAAAhD,EACA,cAAA5/E,EAAA3C,KACAwlF,WAAA7oF,EAAAuoF,GAAAvoF,EAAAN,IACAinE,GAAA,aAAA3mE,EAAAwoF,GAAAxoF,IACAqD,KAAAwlF,WAAA7oF,EAAA,mBAAAgG,GACA0iF,GAAA1oF,EAAAN,EAAAimF,GAAAtiF,KAAA,SAAArD,EAAAgG,IACAyiF,GAAAzoF,EAAAN,EAAAsG,GAAAi7E,GAGA,QAAA4H,IAAA7oF,EAAAgG,EAAAi7E,GACA,QAAAqD,KACA,GAAA36E,GAAAtG,KAAA3D,EAAAsG,EAAAka,MAAAvW,EAAAjH,UACA,OAAAhD,IAAA,SAAAqd,GACApT,EAAAyM,MAAAqqB,YAAAzgC,EAAAN,EAAAqd,GAAAkkE,IAIA,MADAqD,GAAAsC,OAAA5gF,EACAs+E,EAGA,QAAAwE,IAAA9oF,EAAAgG,EAAAi7E,GACA,GAAAr+E,GAAA,UAAA5C,GAAA,GACA,IAAA0C,UAAAC,OAAA,SAAAC,EAAAS,KAAAihF,MAAA1hF,OAAAgkF,MACA,UAAA5gF,EAAA,MAAA3C,MAAAihF,MAAA1hF,EAAA,KACA,uBAAAoD,GAAA,SAAA8I,MACA,OAAAzL,MAAAihF,MAAA1hF,EAAAimF,GAAA7oF,EAAAgG,EAAA,MAAAi7E,EAAA,GAAAA,IAGA,QAAA8H,IAAA/iF,GACA,kBACA3C,KAAA6oB,YAAAlmB,GAIA,QAAAgjF,IAAAhjF,GACA,kBACA,GAAAggF,GAAAhgF,EAAA3C,KACAA,MAAA6oB,YAAA,MAAA85D,EAAA,GAAAA,GAIA,QAAAiD,IAAAjjF,GACA,MAAA3C,MAAAihF,MAAA,0BAAAt+E,GACAgjF,GAAArD,GAAAtiF,KAAA,OAAA2C,IACA+iF,GAAA,MAAA/iF,EAAA,GAAAA,EAAA,KAGA,QAAAkjF,MAKA,OAJAlpF,GAAAqD,KAAAmkF,MACA2B,EAAA9lF,KAAAqiF,IACA0D,EAAAC,KAEAtM,EAAA15E,KAAA25E,QAAAn9E,EAAAk9E,EAAAp6E,OAAAkS,EAAA,EAA2DA,EAAAhV,IAAOgV,EAClE,OAAAlL,GAAAuiE,EAAA6Q,EAAAloE,GAAArU,EAAA0rE,EAAAvpE,OAAAjD,EAAA,EAA8DA,EAAAc,IAAOd,EACrE,GAAAiK,EAAAuiE,EAAAxsE,GAAA,CACA,GAAA0oF,GAAAxD,GAAAj7E,EAAAw/E,EACAlF,IAAAt6E,EAAA3J,EAAAopF,EAAA1pF,EAAAwsE,GACAlgC,KAAAo8C,EAAAp8C,KAAAo8C,EAAA5gB,MAAA4gB,EAAA1kB,SACA8D,MAAA,EACA9D,SAAA0kB,EAAA1kB,SACA8gB,KAAA4D,EAAA5D,OAMA,UAAA+C,IAAAxK,EAAA15E,KAAAg6E,SAAAr9E,EAAAopF,GAKA,QAAA7B,IAAAxK,EAAAU,EAAAz9E,EAAA0G,GACArD,KAAA25E,QAAAD,EACA15E,KAAAg6E,SAAAI,EACAp6E,KAAAmkF,MAAAxnF,EACAqD,KAAAqiF,IAAAh/E,EAGA,QAAAgoC,IAAA1uC,GACA,MAAAk/E,MAAAxwC,WAAA1uC,GAGA,QAAAqpF,MACA,QAAA3iF,GAuCA,QAAA0hF,IAAAz+E,EAAAjD,GAEA,IADA,GAAAw9E,KACAA,EAAAv6E,EAAAy6E,iBAAAF,IAAAx9E,KACA,KAAAiD,IAAAiZ,YACA,MAAA0mE,IAAAt9C,KAAA/P,KAAAqtD,EAGA,OAAApF,GAGA,QAAAqF,IAAAvpF,GACA,GAAA0G,GACAw9E,CAEAlkF,aAAAunF,KACA7gF,EAAA1G,EAAA0lF,IAAA1lF,IAAAwnF,QAEA9gF,EAAA2iF,MAAAnF,EAAAoF,IAAAt9C,KAAA/P,KAAAj8B,EAAA,MAAAA,EAAA,KAAAA,EAAA,GAGA,QAAA+8E,GAAA15E,KAAA25E,QAAAn9E,EAAAk9E,EAAAp6E,OAAAkS,EAAA,EAA2DA,EAAAhV,IAAOgV,EAClE,OAAAlL,GAAAuiE,EAAA6Q,EAAAloE,GAAArU,EAAA0rE,EAAAvpE,OAAAjD,EAAA,EAA8DA,EAAAc,IAAOd,GACrEiK,EAAAuiE,EAAAxsE,KACAukF,GAAAt6E,EAAA3J,EAAA0G,EAAAhH,EAAAwsE,EAAAgY,GAAAkE,GAAAz+E,EAAAjD,GAKA,WAAA6gF,IAAAxK,EAAA15E,KAAAg6E,SAAAr9E,EAAA0G,GAQA,QAAAw+E,IAAAv7E,EAAA3J,GACA,GACAikF,GACAvkF,EAFAykF,EAAAx6E,EAAAy6E,YAIA,IAAAD,EAAA,CACAnkF,EAAA,MAAAA,EAAA,KAAAA,EAAA,EACA,KAAAN,IAAAykF,GACA,IAAAF,EAAAE,EAAAzkF,IAAA2X,MAAAwtE,IAAAZ,EAAAjkF,SACA,UAAAunF,MAAA59E,IAAA6/E,GAAAxpF,GAAAN,GAKA,YAKA,QAAA+pF,IAAAjxE,GACA,MAAAA,GAQA,QAAA2oD,IAAAuoB,EAAAC,EAAA5pF,GACA,GAAAyY,GAAAkxE,EAAA3pF,EACA,qBAAAkpE,SAAAzwD,KAAAmxE,EAAA5pF,IAAA,MAGA,QAAAqhE,IAAAsoB,EAAAC,EAAA5pF,GACA,GAAA6a,GAAA8uE,EAAA3pF,EACA,uBAAAkpE,SAAAruD,KAAA+uE,EAAA5pF,IAAA,IAGA,QAAA6pF,IAAAnnB,GACA,GAAAt2C,GAAAs2C,EAAAmT,YAAA,CAEA,OADAnT,GAAAhD,UAAAtzC,EAAAtY,KAAA4rD,MAAAtzC,IACA,SAAApsB,GACA,MAAA0iE,GAAA1iE,GAAAosB,GAIA,QAAA09D,MACA,OAAAxmF,KAAAymF,OAGA,QAAAC,IAAAC,EAAAvnB,GAQA,QAAAsnB,GAAA/uE,GACA,GAgBAxC,GAhBArN,EAAA,MAAA8+E,EAAAxnB,EAAA/e,MAAA+e,EAAA/e,MAAAxjC,MAAAuiD,EAAAynB,GAAAznB,EAAApoD,SAAA4vE,EACAnuB,EAAA,MAAAmb,EAAAxU,EAAAwU,WAAAxU,EAAAwU,WAAA/2D,MAAAuiD,EAAAynB,GAAAT,GAAAxS,EACAkT,EAAAt2E,KAAAJ,IAAA22E,EAAA,GAAAC,EACAxoB,EAAAmoB,IAAAlrC,IAAAkrC,IAAAx9B,GAAA2U,GAAAC,GACAv1B,EAAA42B,EAAA52B,QACAy+C,EAAAz+C,EAAA,MACA0+C,EAAA1+C,IAAAlpC,OAAA,MACA6nF,GAAA/nB,EAAAmT,UAAAgU,GAAAH,IAAAhnB,EAAA9T,QACAuwB,EAAAlkE,EAAAkkE,UAAAlkE,EAAAkkE,YAAAlkE,EACA6wC,EAAAqzB,EAAA4E,UAAA,WAAA95E,MAAA,OACAkP,EAAAgmE,EAAA4E,UAAA,SAAA95E,KAAAmB,EAAAs3D,GAAAnnB,QACAmvC,EAAAvxE,EAAAolE,OACAoM,EAAAxxE,EAAAmlE,QAAAnyE,OAAA,KAAAy+E,KAAA,gBACA/iF,EAAAsR,EAAAmU,OAAA,QACApe,EAAAiK,EAAAmU,OAAA,QACA7R,EAAAwuE,IAAAlrC,IAAAkrC,IAAAprC,IAAA,IACAhkC,EAAAovE,IAAAprC,IAAAorC,IAAAhnC,IAAAxqC,EAAA,UAAAA,EAAA,QAEAqzC,KAAArG,MAAAqG,EAAAwyB,QAAAuM,OAAA,gBACAD,KAAA,kBACAA,KAAA,kBAEAzxE,IAAAssC,MAAAklC,GAEA9iF,IAAA49C,MAAAklC,EAAAx+E,OAAA,QACAy+E,KAAA,iBACAA,KAAAnyE,EAAA,IAAAgD,EAAA4uE,GACAO,KAAA/vE,EAAA,QACA+vE,KAAA/vE,EAAA,SAEA3L,IAAAu2C,MAAAklC,EAAAx+E,OAAA,QACAy+E,KAAA,eACAA,KAAAnyE,EAAAgD,EAAA2uE,GACAQ,KAAA/vE,EAAA,IACA+vE,KAAA,KAAAX,IAAAlrC,GAAA,MAAAkrC,IAAAx9B,GAAA,oBAEAxxC,IAAAkkE,IACArzB,IAAAnd,WAAA1zB,GACA9B,IAAAw1B,WAAA1zB,GACApT,IAAA8mC,WAAA1zB,GACA/L,IAAAy/B,WAAA1zB,GAEAyvE,IAAA/7C,WAAA1zB,GACA2vE,KAAA,UAAAE,IACAF,KAAA,qBAAA5qF,GAA0C,MAAA8hE,GAAA2oB,EAAAnnF,KAAAuf,WAAAknE,QAAAU,EAAAzqF,KAE1C2qF,EACAC,KAAA,UAAAE,IACAF,KAAA,qBAAA5qF,GAA0C,MAAA8hE,GAAAx+D,KAAAuf,WAAAknE,QAAAU,IAAAzqF,MAG1C0qF,EAAAppC,SAEAwK,EACA8+B,KAAA,IAAAX,IAAAprC,IAAAorC,GAAAhnC,GACA,IAAAxnC,EAAAsvE,EAAA,IAAAR,EAAA,QAAAC,EAAA,IAAA/uE,EAAAsvE,EACA,IAAAR,EAAA,IAAA9uE,EAAAsvE,EAAA,QAAAP,EAAA,IAAA/uE,EAAAsvE,GAEA5xE,EACAyxE,KAAA,aACAA,KAAA,qBAAA5qF,GAAwC,MAAA8hE,GAAA2oB,IAAAzqF,KAExC6H,EACA+iF,KAAAnyE,EAAA,IAAAgD,EAAA4uE,GAEAn7E,EACA07E,KAAAnyE,EAAAgD,EAAA2uE,GACAl7E,KAAA6sD,GAEAojB,EAAArW,OAAAghB,IACAc,KAAA,eACAA,KAAA,gBACAA,KAAA,4BACAA,KAAA,cAAAX,IAAAhnC,GAAA,QAAAgnC,IAAAprC,GAAA,gBAEAsgC,EACAz4B,KAAA,WAA0BpjD,KAAAymF,OAAAU,IApF1B,GAAAN,MACAD,EAAA,KACAhT,EAAA,KACAmT,EAAA,EACAU,EAAA,EACAT,EAAA,CAsHA,OApCAN,GAAAtnB,MAAA,SAAAzd,GACA,MAAAtiD,WAAAC,QAAA8/D,EAAAzd,EAAA+kC,GAAAtnB,GAGAsnB,EAAArmC,MAAA,WACA,MAAAwmC,GAAAa,GAAAnrF,KAAA8C,WAAAqnF,GAGAA,EAAAG,cAAA,SAAAllC,GACA,MAAAtiD,WAAAC,QAAAunF,EAAA,MAAAllC,KAAA+lC,GAAAnrF,KAAAolD,GAAA+kC,GAAAG,EAAAl/E,SAGA++E,EAAAE,WAAA,SAAAjlC,GACA,MAAAtiD,WAAAC,QAAAsnF,EAAA,MAAAjlC,EAAA,KAAA+lC,GAAAnrF,KAAAolD,GAAA+kC,GAAAE,KAAAj/E,SAGA++E,EAAA9S,WAAA,SAAAjyB,GACA,MAAAtiD,WAAAC,QAAAs0E,EAAAjyB,EAAA+kC,GAAA9S,GAGA8S,EAAAiB,SAAA,SAAAhmC,GACA,MAAAtiD,WAAAC,QAAAynF,EAAAU,GAAA9lC,EAAA+kC,GAAAK,GAGAL,EAAAK,cAAA,SAAAplC,GACA,MAAAtiD,WAAAC,QAAAynF,GAAAplC,EAAA+kC,GAAAK,GAGAL,EAAAe,cAAA,SAAA9lC,GACA,MAAAtiD,WAAAC,QAAAmoF,GAAA9lC,EAAA+kC,GAAAe,GAGAf,EAAAM,YAAA,SAAArlC,GACA,MAAAtiD,WAAAC,QAAA0nF,GAAArlC,EAAA+kC,GAAAM,GAGAN,EAGA,QAAAkB,IAAAxoB,GACA,MAAAsnB,IAAAjrC,GAAA2jB,GAGA,QAAAyoB,IAAAzoB,GACA,MAAAsnB,IAAA/mC,GAAAyf,GAGA,QAAA0oB,IAAA1oB,GACA,MAAAsnB,IAAAv9B,GAAAiW,GAGA,QAAA2oB,IAAA3oB,GACA,MAAAsnB,IAAAnrC,GAAA6jB,GAGA,QAAA4oB,IAAArnF,EAAAE,GACA,MAAAF,GAAAmoD,SAAAjoD,EAAAioD,OAAA,IAGA,QAAAm/B,IAAA1vE,GACA,MAAAA,GAAA2vE,OAAAC,GAAA,GAAA5vE,EAAAjZ,OAGA,QAAA6oF,IAAAhzE,EAAA1Y,GACA,MAAA0Y,GAAA1Y,EAAA0Y,EAGA,QAAAizE,IAAA7vE,GACA,SAAAA,EAAA2vE,OAAAG,GAAA,GAGA,QAAAA,IAAA9wE,EAAA9a,GACA,MAAA+T,MAAAJ,IAAAmH,EAAA9a,EAAA8a,GAGA,QAAA+wE,IAAAhiF,GAEA,IADA,GAAAiS,GACAA,EAAAjS,EAAAiS,UAAAjS,EAAAiS,EAAA,EACA,OAAAjS,GAGA,QAAAiiF,IAAAjiF,GAEA,IADA,GAAAiS,GACAA,EAAAjS,EAAAiS,UAAAjS,EAAAiS,IAAAjZ,OAAA,EACA,OAAAgH,GAGA,QAAAkiF,MAMA,QAAAA,GAAAhI,GACA,GAAAiI,GACAtzE,EAAA,CAGAqrE,GAAAkI,UAAA,SAAApiF,GACA,GAAAiS,GAAAjS,EAAAiS,QACAA,IACAjS,EAAA6O,EAAA8yE,GAAA1vE,GACAjS,EAAAiR,EAAA6wE,GAAA7vE,KAEAjS,EAAA6O,EAAAszE,EAAAtzE,GAAAwzE,EAAAriF,EAAAmiF,GAAA,EACAniF,EAAAiR,EAAA,EACAkxE,EAAAniF,IAIA,IAAAi1C,GAAA+sC,GAAA9H,GACA7gC,EAAA4oC,GAAA/H,GACAp/B,EAAA7F,EAAApmC,EAAAwzE,EAAAptC,EAAAoE,GAAA,EACA0B,EAAA1B,EAAAxqC,EAAAwzE,EAAAhpC,EAAApE,GAAA,CAGA,OAAAilC,GAAAkI,UAAAE,EAAA,SAAAtiF,GACAA,EAAA6O,GAAA7O,EAAA6O,EAAAqrE,EAAArrE,GAAAg1C,EACA7jD,EAAAiR,GAAAipE,EAAAjpE,EAAAjR,EAAAiR,GAAA6yC,GACK,SAAA9jD,GACLA,EAAA6O,GAAA7O,EAAA6O,EAAAisC,IAAAC,EAAAD,GAAA+I,EACA7jD,EAAAiR,GAAA,GAAAipE,EAAAjpE,EAAAjR,EAAAiR,EAAAipE,EAAAjpE,EAAA,IAAA6yC,IAjCA,GAAAu+B,GAAAX,GACA79B,EAAA,EACAC,EAAA,EACAw+B,GAAA,CA8CA,OAZAJ,GAAAG,WAAA,SAAAxzE,GACA,MAAA9V,WAAAC,QAAAqpF,EAAAxzE,EAAAqzE,GAAAG,GAGAH,EAAAx3E,KAAA,SAAAmE,GACA,MAAA9V,WAAAC,QAAAspF,GAAA,EAAAz+B,GAAAh1C,EAAA,GAAAi1C,GAAAj1C,EAAA,GAAAqzE,GAAAI,EAAA,MAAAz+B,EAAAC,IAGAo+B,EAAAI,SAAA,SAAAzzE,GACA,MAAA9V,WAAAC,QAAAspF,GAAA,EAAAz+B,GAAAh1C,EAAA,GAAAi1C,GAAAj1C,EAAA,GAAAqzE,GAAAI,GAAAz+B,EAAAC,GAAA,MAGAo+B,EAGA,QAAAK,IAAAnjF,GACA,GAAAmT,GAAAN,EAAAlc,EAAAc,EAAAmJ,EAAAtG,KAAAsI,GAAAhC,EACA,IAEA,IADAuS,EAAAvQ,EAAA4vD,UAAA5vD,KACAhC,EAAAuS,EAAAO,OAEA,GADA1T,EAAAY,GAAAiS,EAAAjS,EAAAiS,SACA,IAAAlc,EAAA,EAAAc,EAAAob,EAAAjZ,OAAoDjD,EAAAc,IAAOd,EAC3DiM,EAAAtG,KAAAuW,EAAAlc,UAGGiM,EAAAhJ,OACH,OAAAU,MAGA,QAAA8oF,IAAApjF,GAEA,IADA,GAAA6S,GAAAlc,EAAAiK,EAAAtG,KAAAmrD,GAAA7kD,GACAA,EAAA6kD,EAAA/xC,OAEA,GADA1T,EAAAY,GAAAiS,EAAAjS,EAAAiS,SACA,IAAAlc,EAAAkc,EAAAjZ,OAAA,EAA+CjD,GAAA,IAAQA,EACvD8uD,EAAAnpD,KAAAuW,EAAAlc,GAGA,OAAA2D,MAGA,QAAA+oF,IAAArjF,GAEA,IADA,GAAA6S,GAAAlc,EAAAc,EAAAmJ,EAAAtG,KAAAmrD,GAAA7kD,GAAAgC,KACAhC,EAAA6kD,EAAA/xC,OAEA,GADA9Q,EAAAtG,KAAAsE,GAAAiS,EAAAjS,EAAAiS,SACA,IAAAlc,EAAA,EAAAc,EAAAob,EAAAjZ,OAAkDjD,EAAAc,IAAOd,EACzD8uD,EAAAnpD,KAAAuW,EAAAlc,GAGA,MAAAiK,EAAAgC,EAAA8Q,OACA1T,EAAAY,EAEA,OAAAtG,MAGA,QAAAgpF,IAAArmF,GACA,MAAA3C,MAAA0oF,UAAA,SAAApiF,GAIA,IAHA,GAAAy8C,IAAApgD,EAAA2D,EAAAK,OAAA,EACA4R,EAAAjS,EAAAiS,SACAlc,EAAAkc,KAAAjZ,SACAjD,GAAA,GAAA0mD,GAAAxqC,EAAAlc,GAAAsG,KACA2D,GAAA3D,MAAAogD,IAIA,QAAAkmC,IAAA3pC,GACA,MAAAt/C,MAAAkpF,WAAA,SAAA5iF,GACAA,EAAAiS,UACAjS,EAAAiS,SAAAupC,KAAAxC,KAKA,QAAA6pC,IAAAh3E,GAIA,IAHA,GAAAD,GAAAlS,KACAopF,EAAAC,GAAAn3E,EAAAC,GACAg5C,GAAAj5C,GACAA,IAAAk3E,GACAl3E,IAAA42C,OACAqC,EAAAnpD,KAAAkQ,EAGA,KADA,GAAAiG,GAAAgzC,EAAA7rD,OACA6S,IAAAi3E,GACAj+B,EAAA+2B,OAAA/pE,EAAA,EAAAhG,GACAA,IAAA22C,MAEA,OAAAqC,GAGA,QAAAk+B,IAAA1oF,EAAAE,GACA,GAAAF,IAAAE,EAAA,MAAAF,EACA,IAAA2oF,GAAA3oF,EAAA0mB,YACAkiE,EAAA1oF,EAAAwmB,YACA5qB,EAAA,IAGA,KAFAkE,EAAA2oF,EAAAlwE,MACAvY,EAAA0oF,EAAAnwE,MACAzY,IAAAE,GACApE,EAAAkE,EACAA,EAAA2oF,EAAAlwE,MACAvY,EAAA0oF,EAAAnwE,KAEA,OAAA3c,GAGA,QAAA+sF,MAEA,IADA,GAAAljF,GAAAtG,KAAAmrD,GAAA7kD,GACAA,IAAAwiD,QACAqC,EAAAnpD,KAAAsE,EAEA,OAAA6kD,GAGA,QAAAs+B,MACA,GAAAt+B,KAIA,OAHAnrD,MAAAojD,KAAA,SAAA98C,GACA6kD,EAAAnpD,KAAAsE,KAEA6kD,EAGA,QAAAu+B,MACA,GAAAC,KAMA,OALA3pF,MAAAkpF,WAAA,SAAA5iF,GACAA,EAAAiS,UACAoxE,EAAA3nF,KAAAsE,KAGAqjF,EAGA,QAAAC,MACA,GAAApJ,GAAAxgF,KAAA6pF,IAMA,OALArJ,GAAAp9B,KAAA,SAAA98C,GACAA,IAAAk6E,GACAqJ,EAAA7nF,MAAkB/C,OAAAqH,EAAAwiD,OAAA9pD,OAAAsH,MAGlBujF,EAGA,QAAAC,IAAAnjF,EAAA4R,GACA,GAEAjS,GAEAygB,EACAgjE,EACA1tF,EACAc,EAPAqjF,EAAA,GAAAvhC,IAAAt4C,GACAqjF,GAAArjF,EAAAhE,QAAA69E,EAAA79E,MAAAgE,EAAAhE,OAEAwoD,GAAAq1B,EAQA,KAFA,MAAAjoE,MAAA0xE,IAEA3jF,EAAA6kD,EAAA/xC,OAEA,GADA4wE,IAAA1jF,EAAA3D,OAAA2D,EAAAK,KAAAhE,QACAonF,EAAAxxE,EAAAjS,EAAAK,SAAAxJ,EAAA4sF,EAAAzqF,QAEA,IADAgH,EAAAiS,SAAA,GAAA7Q,OAAAvK,GACAd,EAAAc,EAAA,EAAqBd,GAAA,IAAQA,EAC7B8uD,EAAAnpD,KAAA+kB,EAAAzgB,EAAAiS,SAAAlc,GAAA,GAAA4iD,IAAA8qC,EAAA1tF,KACA0qB,EAAA+hC,OAAAxiD,EACAygB,EAAAu8B,MAAAh9C,EAAAg9C,MAAA,CAKA,OAAAk9B,GAAA0I,WAAAgB,IAGA,QAAAC,MACA,MAAAL,IAAA9pF,MAAAkpF,WAAAkB,IAGA,QAAAH,IAAAvtF,GACA,MAAAA,GAAA6b,SAGA,QAAA6xE,IAAA9jF,GACAA,EAAAK,KAAAL,EAAAK,UAGA,QAAAujF,IAAA5jF,GACA,GAAA+K,GAAA,CACA,IAAA/K,EAAA+K,gBACA/K,IAAAwiD,SAAAxiD,EAAA+K,YAGA,QAAA4tC,IAAAt4C,GACA3G,KAAA2G,OACA3G,KAAAsjD,MACAtjD,KAAAqR,OAAA,EACArR,KAAA8oD,OAAA,KAkBA,QAAAuhC,IAAA1nF,GACA3C,KAAA2hD,EAAAh/C,EACA3C,KAAAsI,KAAA,KAGA,QAAAgiF,IAAAxqC,GAMA,IALA,GACA3iD,IAAA2iD,IAAAn4C,SAAArI,OACAirF,EAAA,KACAjkF,EAAAikF,EAEAptF,GAAA,CACA,GAAAmL,GAAA,GAAA+hF,IAAAvqC,EAAA3iD,EAAA,GACAmJ,OAAAgC,OACAiiF,EAAAjiF,EACAw3C,MATAzjD,IASAyjD,IAAA3iD,GAGA,OACAotF,OACAC,KAAAlkF,GAIA,QAAAmkF,IAAAC,GACA,MAAAC,IAAAL,GAAAI,OAGA,QAAAE,IAAAjqF,EAAAE,GACA,GAAAspD,GAAAtpD,EAAAsU,EAAAxU,EAAAwU,EACAi1C,EAAAvpD,EAAA0W,EAAA5W,EAAA4W,EACAszE,EAAAlqF,EAAAuU,EAAArU,EAAAqU,CACA,OAAA21E,KAAA,KAAA1gC,IAAAC,IAIA,QAAAugC,IAAA3wE,EAAAjC,GACA,GAAAq7C,GAGA03B,EACA36B,EAHA46B,EAAA,KACAC,EAAAhxE,EAAAuwE,IAIA,QAAAxyE,EAAAzY,QACA,OAAA8zD,EAAA63B,GAAAlzE,EAAA,GAAoC,MACpC,QAAAq7C,EAAA83B,GAAAnzE,EAAA,GAAAA,EAAA,GAA0C,MAC1C,QAAAq7C,EAAA+3B,GAAApzE,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAGA,KAAAizE,GACA76B,EAAA66B,EAAArpC,EAAAmpC,EAAAE,EAAA1iF,KACA8qD,GAAAw3B,GAAAx3B,EAAAjD,GAgBA46B,EAAAC,GAbAD,GAAA/wE,EAAAwwE,KAAAO,IAAAziF,KAAA,MACA0R,EAAAuwE,KAAAvwE,EAAAwwE,KAAA,KAEAzyE,EAAA/V,KAAAmuD,GACAiD,EAAAu3B,GAAA3wE,EAAAjC,GACAA,EAAAqB,MAGAY,EAAAuwE,MAAAS,EAAA1iF,KAAA0R,EAAAuwE,KAAAvwE,EAAAuwE,KAAAS,IACAA,EAAA1iF,KAAA,KAAA0R,EAAAuwE,KAAAvwE,EAAAwwE,KAAAQ,GACAD,EAAA/wE,EAAAwwE,KAAAO,EAAAziF,KAAAwiF,GAKAE,EAAAF,CAIA,OADA9wE,GAAAwwE,KAAAO,EACA33B,EAGA,QAAA63B,IAAAtqF,GACA,OACAwU,EAAAxU,EAAAwU,EACAoC,EAAA5W,EAAA4W,EACArC,EAAAvU,EAAAuU,GAIA,QAAAg2E,IAAAvqF,EAAAE,GACA,GAAAwgD,GAAA1gD,EAAAwU,EAAA2yC,EAAAnnD,EAAA4W,EAAAk2C,EAAA9sD,EAAAuU,EACA40C,EAAAjpD,EAAAsU,EAAA40C,EAAAlpD,EAAA0W,EAAA6zE,EAAAvqF,EAAAqU,EACAm2E,EAAAvhC,EAAAzI,EAAAiqC,EAAAvhC,EAAAjC,EAAAyjC,EAAAH,EAAA39B,EACAnxD,EAAAkU,KAAAwvC,KAAAqrC,IAAAC,IACA,QACAn2E,GAAAksC,EAAAyI,EAAAuhC,EAAA/uF,EAAAivF,GAAA,EACAh0E,GAAAuwC,EAAAiC,EAAAuhC,EAAAhvF,EAAAivF,GAAA,EACAr2E,GAAA5Y,EAAAmxD,EAAA29B,GAAA,GAIA,QAAAD,IAAAxqF,EAAAE,EAAApE,GACA,GAAA4kD,GAAA1gD,EAAAwU,EAAA2yC,EAAAnnD,EAAA4W,EAAAk2C,EAAA9sD,EAAAuU,EACA40C,EAAAjpD,EAAAsU,EAAA40C,EAAAlpD,EAAA0W,EAAA6zE,EAAAvqF,EAAAqU,EACA80C,EAAAvtD,EAAA0Y,EAAA80C,EAAAxtD,EAAA8a,EAAAi0E,EAAA/uF,EAAAyY,EACAu2E,EAAA,GAAApqC,EAAAyI,GACAtD,EAAA,GAAAsB,EAAAiC,GACA2hC,EAAA,GAAAN,EAAA39B,GACApD,EAAAhJ,IAAAyG,IAAA2F,IAAA3D,IAAAC,IAAAqhC,IACAO,EAAA,GAAAtqC,EAAA2I,GACAzD,EAAA,GAAAuB,EAAAmC,GACA2hC,EAAA,GAAAJ,EAAA/9B,GACAo+B,EAAAxqC,IAAAyG,IAAA2F,IAAAzD,IAAAC,IAAAuhC,IACAltE,EAAAqtE,EAAAnlC,EAAAilC,EAAAllC,EACA/lB,GAAAgmB,EAAAqlC,EAAAtlC,EAAA8D,GAAA/rC,EAAA+iC,EACAnhC,GAAAqmC,EAAAmlC,EAAAllC,EAAAolC,GAAAttE,EACAmiB,GAAAkrD,EAAAthC,EAAAohC,EAAAI,GAAAvtE,EAAAwpC,EACA3nC,GAAAsrE,EAAAG,EAAAD,EAAAD,GAAAptE,EACA5G,EAAAwI,IAAAC,IAAA,EACApI,EAAA,GAAAyoB,EAAAtgB,EAAAugB,EAAAtgB,EAAAstC,GACAz1C,EAAAwoB,IAAAC,IAAAgtB,IACAv4C,IAAA6C,EAAAvH,KAAAwvC,KAAAjoC,IAAA,EAAAL,EAAAM,KAAA,EAAAN,EACA,QACAvC,EAAAqrB,EAAAtgB,EAAAhL,EAAAmsC,EACA9pC,EAAAkpB,EAAAtgB,EAAAjL,EAAA4yC,EACA5yC,KAIA,QAAA42E,IAAAnrF,EAAAE,EAAApE,GACA,GAAA4zD,GAAA1vD,EAAAwU,EACAm7C,EAAA3vD,EAAA4W,EACA8R,EAAAxoB,EAAAqU,EAAAzY,EAAAyY,EACA0J,EAAAje,EAAAuU,EAAAzY,EAAAyY,EACAi1C,EAAAtpD,EAAAsU,EAAAk7C,EACAjG,EAAAvpD,EAAA0W,EAAA+4C,EACAxuC,EAAAqoC,IAAAC,GACA,IAAAtoC,EAAA,CACA,GAAA3M,GAAA,KAAAyJ,OAAAyK,QAAA,EAAAvH,GACAvK,EAAA/G,KAAAwvC,KAAAxvC,KAAAJ,IAAA,IAAAiZ,GAAAzK,EAAAkD,IAAAlD,GAAAkD,GAAAlD,EAAAyK,OAAA,EAAAvH,EACArlB,GAAA0Y,EAAAk7C,EAAAl7C,EAAAg1C,EAAA5yC,EAAA6yC,EACA3tD,EAAA8a,EAAA+4C,EAAAn7C,EAAAi1C,EAAA7yC,EAAA4yC,MAEA1tD,GAAA0Y,EAAAk7C,EAAAzxC,EACAniB,EAAA8a,EAAA+4C,EAIA,QAAAy7B,IAAAprF,EAAAE,GACA,GAAAspD,GAAAtpD,EAAAsU,EAAAxU,EAAAwU,EACAi1C,EAAAvpD,EAAA0W,EAAA5W,EAAA4W,EACAszE,EAAAlqF,EAAAuU,EAAArU,EAAAqU,CACA,OAAA21E,KAAA1gC,IAAAC,IAGA,QAAA4hC,IAAA54B,EAAAj+C,EAAAoC,GACA,GAAA4yC,GAAAiJ,EAAAj+C,IACAi1C,EAAAgJ,EAAA77C,GACA,OAAA4yC,KAAAC,IAGA,QAAA6hC,IAAA74B,GACApzD,KAAA2hD,EAAAyR,EACApzD,KAAAsI,KAAA,KACAtI,KAAAwqD,SAAA,KAGA,QAAA0hC,IAAAxB,GACA,KAAAvtF,EAAAutF,EAAAprF,QAAA,QAEA,IAAAqB,GAAAE,EAAApE,EAAAU,CAIA,IADAwD,EAAA+pF,EAAA,GAAA/pF,EAAAwU,EAAA,EAAAxU,EAAA4W,EAAA,IACApa,EAAA,SAAAwD,GAAAuU,CAIA,IADArU,EAAA6pF,EAAA,GAAA/pF,EAAAwU,GAAAtU,EAAAqU,EAAArU,EAAAsU,EAAAxU,EAAAuU,EAAArU,EAAA0W,EAAA,IACApa,EAAA,SAAAwD,GAAAuU,EAAArU,EAAAqU,CAGA42E,IAAAjrF,EAAAF,EAAAlE,EAAAiuF,EAAA,GAGA,IAMA/7B,GAAAC,EAAAvyD,EAAAmV,EAAA2G,EAAAg0E,EAAAt0B,EANA77B,EAAAr7B,EAAAuU,EAAAvU,EAAAuU,EACAyS,EAAA9mB,EAAAqU,EAAArU,EAAAqU,EACAugB,EAAAh5B,EAAAyY,EAAAzY,EAAAyY,EACAiH,EAAA6f,EAAArU,EAAA8N,EACAo4B,EAAA7xB,EAAAr7B,EAAAwU,EAAAwS,EAAA9mB,EAAAsU,EAAAsgB,EAAAh5B,EAAA0Y,EACA24C,EAAA9xB,EAAAr7B,EAAA4W,EAAAoQ,EAAA9mB,EAAA0W,EAAAke,EAAAh5B,EAAA8a,CAIA5W,GAAA,GAAAsrF,IAAAtrF,GAAAE,EAAA,GAAAorF,IAAAprF,GAAApE,EAAA,GAAAwvF,IAAAxvF,GACAkE,EAAA2H,KAAA7L,EAAA+tD,SAAA3pD,EACAA,EAAAyH,KAAA3H,EAAA6pD,SAAA/tD,EACAA,EAAA6L,KAAAzH,EAAA2pD,SAAA7pD,CAGAyrF,GAAA,IAAA/vF,EAAA,EAAmBA,EAAAc,IAAOd,EAAA,CAI1B,GAHAyvF,GAAAnrF,EAAAghD,EAAA9gD,EAAA8gD,EAAAllD,EAAAiuF,EAAAruF,IAAAI,EAAA,GAAAwvF,IAAAxvF,IAGA0b,EAAAxX,EAAA6pD,aAAAh5C,EAAA3Q,EAAAyH,OAGA,GAAAyjF,GAAAv6E,EAAAmwC,EAAAllD,EAAAklD,GAAA,CACAhhD,EAAAE,IAAA2Q,IAAAnV,CACA,SAAA+vF,QAKA,CACAD,EAAA36E,EAAAmwC,EAAAzsC,EAAA2iD,EAAA1/C,EAAAwpC,EAAAzsC,CACA,IACA,GAAAi3E,GAAAt0B,EAAA,CACA,GAAAk0B,GAAAv6E,EAAAmwC,EAAAllD,EAAAklD,GAAA,CACA9gD,EAAA2Q,EAAA7Q,EAAA2H,KAAAzH,IAAA2pD,SAAA7pD,IAAAtE,CACA,SAAA+vF,GAEA56E,IAAAlJ,KAAA6jF,GAAA36E,EAAAmwC,EAAAzsC,MACS,CACT,GAAA62E,GAAA5zE,EAAAwpC,EAAAllD,EAAAklD,GAAA,CACAhhD,EAAAwX,EAAAxX,EAAA2H,KAAAzH,IAAA2pD,SAAA7pD,IAAAtE,CACA,SAAA+vF,GAEAj0E,IAAAqyC,SAAAqN,GAAA1/C,EAAAwpC,EAAAzsC,SAEO1D,IAAA2G,EAAA7P,MAaP,IATA7L,EAAA+tD,SAAA7pD,EAAAlE,EAAA6L,KAAAzH,EAAAF,EAAA2H,KAAAzH,EAAA2pD,SAAA3pD,EAAApE,EAGA0f,GAAAsZ,EAAAh5B,EAAAklD,EAAAzsC,EAAAzY,EAAAklD,EAAAzsC,EACA24C,GAAAp4B,EAAAh5B,EAAAklD,EAAAxsC,EACA24C,GAAAr4B,EAAAh5B,EAAAklD,EAAApqC,EAGAykB,EAAAgwD,GAAArrF,EAAAghD,EAAAgN,EAAAd,EAAA1xC,EAAAyyC,EAAAd,EAAA3xC,IACA1f,IAAA6L,QAAAzH,IACA40B,EAAAu2D,GAAAvvF,EAAAklD,EAAAgN,EAAAC,IAAA5yB,IACAr7B,EAAAlE,EAAAu/B,EAAAvG,EAGA50B,GAAAF,EAAA2H,KAImB,IAAnB3H,GAAAE,EAAA8gD,GAAAllD,EAAAoE,GAAmBpE,IAAA6L,QAAAzH,GAAAF,EAAAqB,KAAAvF,EAAAklD,EAGnB,KAH2DllD,EAAAguF,GAAA9pF,GAG3DtE,EAAA,EAAaA,EAAAc,IAAOd,EAAAsE,EAAA+pF,EAAAruF,GAAAsE,EAAAwU,GAAA1Y,EAAA0Y,EAAAxU,EAAA4W,GAAA9a,EAAA8a,CAEpB,OAAA9a,GAAAyY,EAGA,QAAAm3E,IAAA3B,GAEA,MADAwB,IAAAxB,GACAA,EAGA,QAAA4B,IAAAp7E,GACA,aAAAA,EAAA,KAAA6wB,GAAA7wB,GAGA,QAAA6wB,IAAA7wB,GACA,sBAAAA,GAAA,SAAAzF,MACA,OAAAyF,GAGA,QAAAq7E,MACA,SAGA,QAAAC,IAAAr3E,GACA,kBACA,MAAAA,IAIA,QAAAs3E,IAAA/vF,GACA,MAAA8T,MAAAwvC,KAAAtjD,EAAAiG,OAGA,QAAAyC,MAMA,QAAAgnF,GAAA5L,GAYA,MAXAA,GAAArrE,EAAAg1C,EAAA,EAAAq2B,EAAAjpE,EAAA6yC,EAAA,EACAP,EACA22B,EAAA0I,WAAAwD,GAAA7iC,IACA6+B,UAAAiE,GAAA/6E,EAAA,KACAs3E,WAAA0D,GAAA,IAEApM,EAAA0I,WAAAwD,GAAAD,KACA/D,UAAAiE,GAAAJ,GAAA,IACA7D,UAAAiE,GAAA/6E,EAAA4uE,EAAAtrE,EAAA1E,KAAAF,IAAA65C,EAAAC,KACA8+B,WAAA0D,GAAAp8E,KAAAF,IAAA65C,EAAAC,IAAA,EAAAo2B,EAAAtrE,KAEAsrE,EAjBA,GAAA32B,GAAA,KACAM,EAAA,EACAC,EAAA,EACAx4C,EAAA26E,EA6BA,OAZAH,GAAAviC,OAAA,SAAA10C,GACA,MAAA9V,WAAAC,QAAAuqD,EAAAyiC,GAAAn3E,GAAAi3E,GAAAviC,GAGAuiC,EAAAp7E,KAAA,SAAAmE,GACA,MAAA9V,WAAAC,QAAA6qD,GAAAh1C,EAAA,GAAAi1C,GAAAj1C,EAAA,GAAAi3E,IAAAjiC,EAAAC,IAGAgiC,EAAAx6E,QAAA,SAAAuD,GACA,MAAA9V,WAAAC,QAAAsS,EAAA,mBAAAuD,KAAAq3E,IAAAr3E,GAAAi3E,GAAAx6E,GAGAw6E,EAGA,QAAAM,IAAA7iC,GACA,gBAAAvjD,GACAA,EAAAiS,WACAjS,EAAA4O,EAAA1E,KAAAJ,IAAA,GAAAy5C,EAAAvjD,IAAA,KAKA,QAAAqmF,IAAA/6E,EAAAuG,GACA,gBAAA7R,GACA,GAAAiS,EAAAjS,EAAAiS,SAAA,CACA,GAAAA,GACAlc,EAGA0K,EAFA5J,EAAAob,EAAAjZ,OACA4V,EAAAtD,EAAAtL,GAAA6R,GAAA,CAGA,IAAAjD,EAAA,IAAA7Y,EAAA,EAAwBA,EAAAc,IAAOd,EAAAkc,EAAAlc,GAAA6Y,IAE/B,IADAnO,EAAAmlF,GAAA3zE,GACArD,EAAA,IAAA7Y,EAAA,EAAwBA,EAAAc,IAAOd,EAAAkc,EAAAlc,GAAA6Y,IAC/B5O,GAAA4O,EAAAnO,EAAAmO,IAKA,QAAA03E,IAAAz0E,GACA,gBAAA7R,GACA,GAAAwiD,GAAAxiD,EAAAwiD,MACAxiD,GAAA4O,GAAAiD,EACA2wC,IACAxiD,EAAA6O,EAAA2zC,EAAA3zC,EAAAgD,EAAA7R,EAAA6O,EACA7O,EAAAiR,EAAAuxC,EAAAvxC,EAAAY,EAAA7R,EAAAiR,IAKA,QAAAs1E,IAAAvmF,GACAA,EAAA86C,GAAA5wC,KAAA4rD,MAAA91D,EAAA86C,IACA96C,EAAAyhD,GAAAv3C,KAAA4rD,MAAA91D,EAAAyhD,IACAzhD,EAAA+6C,GAAA7wC,KAAA4rD,MAAA91D,EAAA+6C,IACA/6C,EAAAwhD,GAAAt3C,KAAA4rD,MAAA91D,EAAAwhD,IAGA,QAAAglC,IAAAhkC,EAAA1H,EAAA2G,EAAA1G,EAAAyG,GAOA,IANA,GACAxhD,GADA6kD,EAAArC,EAAAvwC,SAEAlc,GAAA,EACAc,EAAAguD,EAAA7rD,OACA6Y,EAAA2wC,EAAAnmD,QAAA0+C,EAAAD,GAAA0H,EAAAnmD,QAEAtG,EAAAc,GACAmJ,EAAA6kD,EAAA9uD,GAAAiK,EAAAyhD,KAAAzhD,EAAAwhD,KACAxhD,EAAA86C,KAAA96C,EAAA+6C,GAAAD,GAAA96C,EAAA3D,MAAAwV,EAIA,QAAA40E,MAMA,QAAAA,GAAAvM,GACA,GAAArjF,GAAAqjF,EAAAnvE,OAAA,CAOA,OANAmvE,GAAAp/B,GACAo/B,EAAAz4B,GAAAn2C,EACA4uE,EAAAn/B,GAAA8I,EACAq2B,EAAA14B,GAAAsC,EAAAjtD,EACAqjF,EAAA0I,WAAA8D,EAAA5iC,EAAAjtD,IACAi/D,GAAAokB,EAAA0I,WAAA2D,IACArM,EAGA,QAAAwM,GAAA5iC,EAAAjtD,GACA,gBAAAmJ,GACAA,EAAAiS,UACAu0E,GAAAxmF,IAAA86C,GAAAgJ,GAAA9jD,EAAAg9C,MAAA,GAAAnmD,EAAAmJ,EAAA+6C,GAAA+I,GAAA9jD,EAAAg9C,MAAA,GAAAnmD,EAEA,IAAAikD,GAAA96C,EAAA86C,GACA2G,EAAAzhD,EAAAyhD,GACA1G,EAAA/6C,EAAA+6C,GAAAzvC,EACAk2C,EAAAxhD,EAAAwhD,GAAAl2C,CACAyvC,GAAAD,MAAAC,GAAAD,EAAAC,GAAA,GACAyG,EAAAC,MAAAD,GAAAC,EAAAD,GAAA,GACAxhD,EAAA86C,KACA96C,EAAAyhD,KACAzhD,EAAA+6C,KACA/6C,EAAAwhD,MA9BA,GAAAqC,GAAA,EACAC,EAAA,EACAx4C,EAAA,EACAwqD,GAAA,CA2CA,OAZA2wB,GAAA3wB,MAAA,SAAAjnD,GACA,MAAA9V,WAAAC,QAAA88D,IAAAjnD,EAAA43E,GAAA3wB,GAGA2wB,EAAA/7E,KAAA,SAAAmE,GACA,MAAA9V,WAAAC,QAAA6qD,GAAAh1C,EAAA,GAAAi1C,GAAAj1C,EAAA,GAAA43E,IAAA5iC,EAAAC,IAGA2iC,EAAAn7E,QAAA,SAAAuD,GACA,MAAA9V,WAAAC,QAAAsS,GAAAuD,EAAA43E,GAAAn7E,GAGAm7E,EAMA,QAAAE,IAAAvwF,GACA,MAAAA,GAAA2G,GAGA,QAAA6pF,IAAAxwF,GACA,MAAAA,GAAAywF,SAGA,QAAAC,MAIA,QAAAA,GAAAzmF,GACA,GAAAjK,GACAL,EAEAmkF,EACA13B,EACAxiD,EAEA+mF,EACAC,EANAnwF,EAAAwJ,EAAArH,OAIA6rD,EAAA,GAAAzjD,OAAAvK,GAGAowF,IAEA,KAAAlxF,EAAA,EAAeA,EAAAc,IAAOd,EACtBK,EAAAiK,EAAAtK,GAAAiK,EAAA6kD,EAAA9uD,GAAA,GAAA4iD,IAAAviD,GACA,OAAA2wF,EAAAhqF,EAAA3G,EAAAL,EAAAsK,MAAA0mF,GAAA,MACAC,EAAAE,IAAAlnF,EAAAjD,GAAAgqF,GACAE,EAAAD,OAAAC,GAAAE,GAAAnnF,EAIA,KAAAjK,EAAA,EAAeA,EAAAc,IAAOd,EAEtB,GADAiK,EAAA6kD,EAAA9uD,GACA,OADAgxF,EAAAF,EAAAxmF,EAAAtK,KAAAsK,MACA0mF,GAAA,IAGO,CAEP,KADAvkC,EAAAykC,EAAAC,GAAAH,IACA,SAAA5hF,OAAA,YAAA4hF,EACA,IAAAvkC,IAAA2kC,GAAA,SAAAhiF,OAAA,cAAA4hF,EACAvkC,GAAAvwC,SAAAuwC,EAAAvwC,SAAAvW,KAAAsE,GACAwiD,EAAAvwC,UAAAjS,GACAA,EAAAwiD,aATA,CACA,GAAA03B,EAAA,SAAA/0E,OAAA,iBACA+0E,GAAAl6E,EAWA,IAAAk6E,EAAA,SAAA/0E,OAAA,UAIA,IAHA+0E,EAAA13B,OAAA4kC,GACAlN,EAAA0I,WAAA,SAAA5iF,GAAoCA,EAAAg9C,MAAAh9C,EAAAwiD,OAAAxF,MAAA,IAAoCnmD,IAAO+rF,WAAAgB,IAC/E1J,EAAA13B,OAAA,KACA3rD,EAAA,WAAAsO,OAAA,QAEA,OAAA+0E,GA5CA,GAAAn9E,GAAA4pF,GACAE,EAAAD,EAsDA,OARAE,GAAA/pF,GAAA,SAAA8R,GACA,MAAA9V,WAAAC,QAAA+D,EAAA0+B,GAAA5sB,GAAAi4E,GAAA/pF,GAGA+pF,EAAAD,SAAA,SAAAh4E,GACA,MAAA9V,WAAAC,QAAA6tF,EAAAprD,GAAA5sB,GAAAi4E,GAAAD,GAGAC,EAGA,QAAAO,IAAAhtF,EAAAE,GACA,MAAAF,GAAAmoD,SAAAjoD,EAAAioD,OAAA,IAWA,QAAA8kC,IAAAz8E,GACA,GAAAoH,GAAApH,EAAAoH,QACA,OAAAA,KAAA,GAAApH,EAAAuI,EAIA,QAAAm0E,IAAA18E,GACA,GAAAoH,GAAApH,EAAAoH,QACA,OAAAA,OAAAjZ,OAAA,GAAA6R,EAAAuI,EAKA,QAAAo0E,IAAAC,EAAAC,EAAAzlF,GACA,GAAA2c,GAAA3c,GAAAylF,EAAA3xF,EAAA0xF,EAAA1xF,EACA2xF,GAAAvxF,GAAAyoB,EACA8oE,EAAAtwF,GAAA6K,EACAwlF,EAAAtxF,GAAAyoB,EACA8oE,EAAAl2E,GAAAvP,EACAylF,EAAAxxF,GAAA+L,EAMA,QAAA0lF,IAAA98E,GAMA,IALA,GAIAI,GAJAhJ,EAAA,EACA2c,EAAA,EACA3M,EAAApH,EAAAoH,SACAlc,EAAAkc,EAAAjZ,SAEAjD,GAAA,GACAkV,EAAAgH,EAAAlc,GACAkV,EAAAuG,GAAAvP,EACAgJ,EAAA/U,GAAA+L,EACAA,GAAAgJ,EAAA7T,GAAAwnB,GAAA3T,EAAA9U,GAMA,QAAAyxF,IAAAC,EAAAh9E,EAAAi4E,GACA,MAAA+E,GAAAxtF,EAAAmoD,SAAA33C,EAAA23C,OAAAqlC,EAAAxtF,EAAAyoF,EAGA,QAAAgF,IAAA9nF,EAAAjK,GACA2D,KAAA2hD,EAAAr7C,EACAtG,KAAA8oD,OAAA,KACA9oD,KAAAuY,SAAA,KACAvY,KAAA0X,EAAA,KACA1X,KAAAW,EAAAX,KACAA,KAAA8X,EAAA,EACA9X,KAAAxD,EAAA,EACAwD,KAAAvD,EAAA,EACAuD,KAAAtC,EAAA,EACAsC,KAAA0Z,EAAA,KACA1Z,KAAA3D,IAKA,QAAAgyF,IAAA7N,GASA,IARA,GACAl6E,GAEAygB,EACAxO,EACAlc,EACAc,EANA0rD,EAAA,GAAAulC,IAAA5N,EAAA,GAEAr1B,GAAAtC,GAMAviD,EAAA6kD,EAAA/xC,OACA,GAAAb,EAAAjS,EAAAq7C,EAAAppC,SAEA,IADAjS,EAAAiS,SAAA,GAAA7Q,OAAAvK,EAAAob,EAAAjZ,QACAjD,EAAAc,EAAA,EAAqBd,GAAA,IAAQA,EAC7B8uD,EAAAnpD,KAAA+kB,EAAAzgB,EAAAiS,SAAAlc,GAAA,GAAA+xF,IAAA71E,EAAAlc,OACA0qB,EAAA+hC,OAAAxiD,CAMA,QADAuiD,EAAAC,OAAA,GAAAslC,IAAA,SAAA71E,UAAAswC,GACAA,EAIA,QAAAA,MAMA,QAAAA,GAAA23B,GACA,GAAA9mE,GAAA20E,GAAA7N,EAOA,IAJA9mE,EAAAgvE,UAAA4F,GAAA50E,EAAAovC,OAAAtsD,GAAAkd,EAAA5B,EACA4B,EAAAwvE,WAAAqF,GAGA3F,EAAApI,EAAA0I,WAAAsF,OAIA,CACA,GAAAjzC,GAAAilC,EACA7gC,EAAA6gC,EACAr3B,EAAAq3B,CACAA,GAAA0I,WAAA,SAAA5iF,GACAA,EAAA6O,EAAAomC,EAAApmC,IAAAomC,EAAAj1C,GACAA,EAAA6O,EAAAwqC,EAAAxqC,IAAAwqC,EAAAr5C,GACAA,EAAAg9C,MAAA6F,EAAA7F,QAAA6F,EAAA7iD,IAEA,IAAA5I,GAAA69C,IAAAoE,EAAA,EAAAgpC,EAAAptC,EAAAoE,GAAA,EACA8uC,EAAA/wF,EAAA69C,EAAApmC,EACAu5E,EAAAvkC,GAAAxK,EAAAxqC,EAAAzX,EAAA+wF,GACAE,EAAAvkC,GAAAjB,EAAA7F,OAAA,EACAk9B,GAAA0I,WAAA,SAAA5iF,GACAA,EAAA6O,GAAA7O,EAAA6O,EAAAs5E,GAAAC,EACApoF,EAAAiR,EAAAjR,EAAAg9C,MAAAqrC,IAIA,MAAAnO,GAOA,QAAA8N,GAAAn9E,GACA,GAAAoH,GAAApH,EAAAoH,SACA8zE,EAAAl7E,EAAA23C,OAAAvwC,SACAhH,EAAAJ,EAAA9U,EAAAgwF,EAAAl7E,EAAA9U,EAAA,OACA,IAAAkc,EAAA,CACA01E,GAAA98E,EACA,IAAAy9E,IAAAr2E,EAAA,GAAAT,EAAAS,IAAAjZ,OAAA,GAAAwY,GAAA,CACAvG,IACAJ,EAAA2G,EAAAvG,EAAAuG,EAAA6wE,EAAAx3E,EAAAwwC,EAAApwC,EAAAowC,GACAxwC,EAAA3U,EAAA2U,EAAA2G,EAAA82E,GAEAz9E,EAAA2G,EAAA82E,MAEKr9E,KACLJ,EAAA2G,EAAAvG,EAAAuG,EAAA6wE,EAAAx3E,EAAAwwC,EAAApwC,EAAAowC,GAEAxwC,GAAA23C,OAAApxC,EAAAm3E,EAAA19E,EAAAI,EAAAJ,EAAA23C,OAAApxC,GAAA20E,EAAA,IAIA,QAAAkC,GAAAp9E,GACAA,EAAAwwC,EAAAxsC,EAAAhE,EAAA2G,EAAA3G,EAAA23C,OAAAtsD,EACA2U,EAAA3U,GAAA2U,EAAA23C,OAAAtsD,EAcA,QAAAqyF,GAAA19E,EAAAI,EAAA63E,GACA,GAAA73E,EAAA,CAUA,IATA,GAQAhJ,GARAumF,EAAA39E,EACA49E,EAAA59E,EACAg9E,EAAA58E,EACAy9E,EAAAF,EAAAhmC,OAAAvwC,SAAA,GACA02E,EAAAH,EAAAtyF,EACA0yF,EAAAH,EAAAvyF,EACA2yF,EAAAhB,EAAA3xF,EACA4yF,EAAAJ,EAAAxyF,EAEA2xF,EAAAN,GAAAM,GAAAW,EAAAlB,GAAAkB,GAAAX,GAAAW,GACAE,EAAApB,GAAAoB,GACAD,EAAAlB,GAAAkB,GACAA,EAAApuF,EAAAwQ,EACA5I,EAAA4lF,EAAAr2E,EAAAq3E,EAAAL,EAAAh3E,EAAAm3E,EAAAtG,EAAAwF,EAAAxsC,EAAAmtC,EAAAntC,GACAp5C,EAAA,IACAulF,GAAAI,GAAAC,EAAAh9E,EAAAi4E,GAAAj4E,EAAA5I,GACA0mF,GAAA1mF,EACA2mF,GAAA3mF,GAEA4mF,GAAAhB,EAAA3xF,EACAyyF,GAAAH,EAAAtyF,EACA4yF,GAAAJ,EAAAxyF,EACA0yF,GAAAH,EAAAvyF,CAEA2xF,KAAAN,GAAAkB,KACAA,EAAAr1E,EAAAy0E,EACAY,EAAAvyF,GAAA2yF,EAAAD,GAEAJ,IAAAlB,GAAAoB,KACAA,EAAAt1E,EAAAo1E,EACAE,EAAAxyF,GAAAyyF,EAAAG,EACAhG,EAAAj4E,GAGA,MAAAi4E,GAGA,QAAAoF,GAAAloF,GACAA,EAAA6O,GAAAg1C,EACA7jD,EAAAiR,EAAAjR,EAAAg9C,MAAA8G,EAxHA,GAAAu+B,GAAAgF,GACAxjC,EAAA,EACAC,EAAA,EACAw+B,EAAA,IAoIA,OAZA//B,GAAA8/B,WAAA,SAAAxzE,GACA,MAAA9V,WAAAC,QAAAqpF,EAAAxzE,EAAA0zC,GAAA8/B,GAGA9/B,EAAA73C,KAAA,SAAAmE,GACA,MAAA9V,WAAAC,QAAAspF,GAAA,EAAAz+B,GAAAh1C,EAAA,GAAAi1C,GAAAj1C,EAAA,GAAA0zC,GAAA+/B,EAAA,MAAAz+B,EAAAC,IAGAvB,EAAA+/B,SAAA,SAAAzzE,GACA,MAAA9V,WAAAC,QAAAspF,GAAA,EAAAz+B,GAAAh1C,EAAA,GAAAi1C,GAAAj1C,EAAA,GAAA0zC,GAAA+/B,GAAAz+B,EAAAC,GAAA,MAGAvB,EAGA,QAAAwmC,IAAAvmC,EAAA1H,EAAA2G,EAAA1G,EAAAyG,GAOA,IANA,GACAxhD,GADA6kD,EAAArC,EAAAvwC,SAEAlc,GAAA,EACAc,EAAAguD,EAAA7rD,OACA6Y,EAAA2wC,EAAAnmD,QAAAmlD,EAAAC,GAAAe,EAAAnmD,QAEAtG,EAAAc,GACAmJ,EAAA6kD,EAAA9uD,GAAAiK,EAAA86C,KAAA96C,EAAA+6C,KACA/6C,EAAAyhD,KAAAzhD,EAAAwhD,GAAAC,GAAAzhD,EAAA3D,MAAAwV,EAMA,QAAAm3E,IAAAC,EAAAzmC,EAAA1H,EAAA2G,EAAA1G,EAAAyG,GAkBA,IAjBA,GAEAl1C,GACAqqB,EAEA6lB,EAEAqH,EAAAC,EAEAolC,EACAC,EACAC,EACAC,EACAC,EACA36B,EACAnB,EAfA7xB,KACAkpB,EAAArC,EAAAvwC,SAGAsqC,EAAA,EAEA1lD,EAAAguD,EAAA7rD,OAEAqD,EAAAmmD,EAAAnmD,MASAkgD,EAAA1lD,GAAA,CAQA,IAPAgtD,EAAA9I,EAAAD,EAAAgJ,EAAAtC,EAAAC,EACA0nC,EAAAC,EAAAF,EAAArkC,EAAAtI,GAAAlgD,MACAsyD,EAAAzkD,KAAAJ,IAAAg6C,EAAAD,IAAAC,IAAAznD,EAAA4sF,GACAz7B,EAAA07B,IAAAv6B,EACA26B,EAAAp/E,KAAAJ,IAAAs/E,EAAA57B,IAAA27B,GAGA3sC,EAAAD,EAAA,EAAqBC,EAAA3lD,IAAQ2lD,EAAA,CAM7B,GALA0sC,GAAAvyD,EAAAkuB,EAAArI,GAAAngD,MACAs6B,EAAAwyD,MAAAxyD,GACAA,EAAAyyD,MAAAzyD,GACA62B,EAAA07B,IAAAv6B,GACA06B,EAAAn/E,KAAAJ,IAAAs/E,EAAA57B,IAAA27B,IACAG,EAAA,CAAgCJ,GAAAvyD,CAAuB,OACvD2yD,EAAAD,EAIA1tD,EAAAjgC,KAAA4Q,GAAqBjQ,MAAA6sF,EAAAK,KAAA1lC,EAAAC,EAAA7xC,SAAA4yC,EAAAxjD,MAAAk7C,EAAAC,KACrBlwC,EAAAi9E,KAAA/C,GAAAl6E,EAAAwuC,EAAA2G,EAAA1G,EAAA1+C,EAAAolD,GAAAqC,EAAAolC,EAAA7sF,EAAAmlD,GACAunC,GAAAz8E,EAAAwuC,EAAA2G,EAAAplD,EAAAy+C,GAAA+I,EAAAqlC,EAAA7sF,EAAA0+C,EAAAyG,GACAnlD,GAAA6sF,EAAA3sC,EAAAC,EAGA,MAAA7gB,GAgBA,QAAA6tD,MAYA,QAAAC,GAAAvP,GAQA,MAPAA,GAAAp/B,GACAo/B,EAAAz4B,GAAA,EACAy4B,EAAAn/B,GAAA8I,EACAq2B,EAAA14B,GAAAsC,EACAo2B,EAAA0I,WAAA8D,GACAgD,GAAA,GACA5zB,GAAAokB,EAAA0I,WAAA2D,IACArM,EAGA,QAAAwM,GAAA1mF,GACA,GAAA7I,GAAAuyF,EAAA1pF,EAAAg9C,OACAlC,EAAA96C,EAAA86C,GAAA3jD,EACAsqD,EAAAzhD,EAAAyhD,GAAAtqD,EACA4jD,EAAA/6C,EAAA+6C,GAAA5jD,EACAqqD,EAAAxhD,EAAAwhD,GAAArqD,CACA4jD,GAAAD,MAAAC,GAAAD,EAAAC,GAAA,GACAyG,EAAAC,MAAAD,GAAAC,EAAAD,GAAA,GACAxhD,EAAA86C,KACA96C,EAAAyhD,KACAzhD,EAAA+6C,KACA/6C,EAAAwhD,KACAxhD,EAAAiS,WACA9a,EAAAuyF,EAAA1pF,EAAAg9C,MAAA,GAAA+uB,EAAA/rE,GAAA,EACA86C,GAAA6uC,EAAA3pF,GAAA7I,EACAsqD,GAAAmoC,EAAA5pF,GAAA7I,EACA4jD,GAAA8uC,EAAA7pF,GAAA7I,EACAqqD,GAAAsoC,EAAA9pF,GAAA7I,EACA4jD,EAAAD,MAAAC,GAAAD,EAAAC,GAAA,GACAyG,EAAAC,MAAAD,GAAAC,EAAAD,GAAA,GACAuoC,EAAA/pF,EAAA86C,EAAA2G,EAAA1G,EAAAyG,IA1CA,GAAAuoC,GAAAC,GACAl0B,GAAA,EACAjS,EAAA,EACAC,EAAA,EACA4lC,GAAA,GACA3d,EAAAka,GACA2D,EAAA3D,GACA4D,EAAA5D,GACA6D,EAAA7D,GACA0D,EAAA1D,EA6EA,OAxCAwD,GAAA3zB,MAAA,SAAAjnD,GACA,MAAA9V,WAAAC,QAAA88D,IAAAjnD,EAAA46E,GAAA3zB,GAGA2zB,EAAA/+E,KAAA,SAAAmE,GACA,MAAA9V,WAAAC,QAAA6qD,GAAAh1C,EAAA,GAAAi1C,GAAAj1C,EAAA,GAAA46E,IAAA5lC,EAAAC,IAGA2lC,EAAAM,KAAA,SAAAl7E,GACA,MAAA9V,WAAAC,QAAA+wF,EAAAtuD,GAAA5sB,GAAA46E,GAAAM,GAGAN,EAAAn+E,QAAA,SAAAuD,GACA,MAAA9V,WAAAC,OAAAywF,EAAA1d,aAAAl9D,GAAAm9D,aAAAn9D,GAAA46E,EAAA1d,gBAGA0d,EAAA1d,aAAA,SAAAl9D,GACA,MAAA9V,WAAAC,QAAA+yE,EAAA,mBAAAl9D,KAAAq3E,IAAAr3E,GAAA46E,GAAA1d,GAGA0d,EAAAzd,aAAA,SAAAn9D,GACA,MAAA9V,WAAAC,OAAAywF,EAAAG,WAAA/6E,GAAAg7E,aAAAh7E,GAAAi7E,cAAAj7E,GAAA86E,YAAA96E,GAAA46E,EAAAG,cAGAH,EAAAG,WAAA,SAAA/6E,GACA,MAAA9V,WAAAC,QAAA4wF,EAAA,mBAAA/6E,KAAAq3E,IAAAr3E,GAAA46E,GAAAG,GAGAH,EAAAI,aAAA,SAAAh7E,GACA,MAAA9V,WAAAC,QAAA6wF,EAAA,mBAAAh7E,KAAAq3E,IAAAr3E,GAAA46E,GAAAI,GAGAJ,EAAAK,cAAA,SAAAj7E,GACA,MAAA9V,WAAAC,QAAA8wF,EAAA,mBAAAj7E,KAAAq3E,IAAAr3E,GAAA46E,GAAAK,GAGAL,EAAAE,YAAA,SAAA96E,GACA,MAAA9V,WAAAC,QAAA2wF,EAAA,mBAAA96E,KAAAq3E,IAAAr3E,GAAA46E,GAAAE,GAGAF,EAGA,QAAAQ,IAAAznC,EAAA1H,EAAA2G,EAAA1G,EAAAyG,GAWA,QAAAilC,GAAA1wF,EAAAmV,EAAA7O,EAAAy+C,EAAA2G,EAAA1G,EAAAyG,GACA,GAAAzrD,GAAAmV,EAAA,GACA,GAAAlL,GAAA6kD,EAAA9uD,EAGA,OAFAiK,GAAA86C,KAAA96C,EAAAyhD,KACAzhD,EAAA+6C,KAAA/6C,EAAAwhD,SACA,GAQA,IALA,GAAA0oC,GAAAz4B,EAAA17D,GACAo0F,EAAA9tF,EAAA,EAAA6tF,EACAr4E,EAAA9b,EAAA,EACAojD,EAAAjuC,EAAA,EAEA2G,EAAAsnC,GAAA,CACA,GAAAC,GAAAvnC,EAAAsnC,IAAA,CACAsY,GAAArY,GAAA+wC,EAAAt4E,EAAAunC,EAAA,EACAD,EAAAC,EAGA,GAAAgxC,GAAA34B,EAAA5/C,GAAAq4E,EACAG,EAAAhuF,EAAA+tF,CAEA,IAAA5oC,EAAAC,EAAA1G,EAAAD,EAAA,CACA,GAAAwvC,IAAA7oC,EAAA4oC,EAAA7oC,EAAA4oC,GAAA/tF,CACAoqF,GAAA1wF,EAAA8b,EAAAu4E,EAAAtvC,EAAA2G,EAAA1G,EAAAuvC,GACA7D,EAAA50E,EAAA3G,EAAAm/E,EAAAvvC,EAAAwvC,EAAAvvC,EAAAyG,OACK,CACL,GAAA+oC,IAAAzvC,EAAAuvC,EAAAtvC,EAAAqvC,GAAA/tF,CACAoqF,GAAA1wF,EAAA8b,EAAAu4E,EAAAtvC,EAAA2G,EAAA8oC,EAAA/oC,GACAilC,EAAA50E,EAAA3G,EAAAm/E,EAAAE,EAAA9oC,EAAA1G,EAAAyG,IAvCA,GACAzrD,GACA0mD,EAFAoI,EAAArC,EAAAvwC,SACApb,EAAAguD,EAAA7rD,OACAy4D,EAAA,GAAArwD,OAAAvK,EAAA,EAEA,KAAA46D,EAAA,GAAAhV,EAAA1mD,EAAA,EAA6BA,EAAAc,IAAOd,EACpC07D,EAAA17D,EAAA,GAAA0mD,GAAAoI,EAAA9uD,GAAAsG,KAGAoqF,GAAA,EAAA5vF,EAAA2rD,EAAAnmD,MAAAy+C,EAAA2G,EAAA1G,EAAAyG,GAoCA,QAAAgpC,IAAAhoC,EAAA1H,EAAA2G,EAAA1G,EAAAyG,IACA,EAAAgB,EAAAxF,MAAA+rC,GAAAvC,IAAAhkC,EAAA1H,EAAA2G,EAAA1G,EAAAyG,GAoCA,QAAAipC,IAAA57E,EAAAoC,GAMA,QAAAy5E,KACA,GAAA30F,GAEAiK,EADAnJ,EAAAguD,EAAA7rD,OAEA2xF,EAAA,EACAC,EAAA,CAEA,KAAA70F,EAAA,EAAeA,EAAAc,IAAOd,EACtBiK,EAAA6kD,EAAA9uD,GAAA40F,GAAA3qF,EAAA6O,EAAA+7E,GAAA5qF,EAAAiR,CAGA,KAAA05E,IAAA9zF,EAAAgY,EAAA+7E,IAAA/zF,EAAAoa,EAAAlb,EAAA,EAAiDA,EAAAc,IAAOd,EACxDiK,EAAA6kD,EAAA9uD,GAAAiK,EAAA6O,GAAA87E,EAAA3qF,EAAAiR,GAAA25E,EAjBA,GAAA/lC,EAiCA,OA/BA,OAAAh2C,MAAA,GACA,MAAAoC,MAAA,GAkBAy5E,EAAAG,WAAA,SAAAxvC,GACAwJ,EAAAxJ,GAGAqvC,EAAA77E,EAAA,SAAAwsC,GACA,MAAAtiD,WAAAC,QAAA6V,GAAAwsC,EAAAqvC,GAAA77E,GAGA67E,EAAAz5E,EAAA,SAAAoqC,GACA,MAAAtiD,WAAAC,QAAAiY,GAAAoqC,EAAAqvC,GAAAz5E,GAGAy5E,EAGA,QAAAI,IAAAj8E,GACA,kBACA,MAAAA,IAIA,QAAAk8E,MACA,aAAA7gF,KAAA40B,SAAA,IAGA,QAAAksD,IAAA50F,GACA,MAAAA,GAAAyY,EAAAzY,EAAA60F,GAGA,QAAAC,IAAA90F,GACA,MAAAA,GAAA6a,EAAA7a,EAAA+0F,GAGA,QAAAC,IAAA7nC,GAQA,QAAAmnC,KAoBA,QAAAn0E,GAAA80E,EAAAvwC,EAAA2G,EAAA1G,EAAAyG,GACA,GAAAnhD,GAAAgrF,EAAAhrF,KAAAirF,EAAAD,EAAAz8E,IAAA28E,EAAAD,CACA,MAAAjrF,EAiBA,MAAAy6C,GAAAsB,EAAAxtC,GAAAmsC,EAAAqB,EAAAxtC,GAAA6yC,EAAA+pC,EAAA58E,GAAA4yC,EAAAgqC,EAAA58E,CAhBA,IAAAvO,EAAAvB,MAAA/I,EAAA,CACA,GAAA8Y,GAAAutC,EAAA/7C,EAAAwO,EAAAxO,EAAA4qF,GACAh6E,EAAAu6E,EAAAnrF,EAAA4Q,EAAA5Q,EAAA8qF,GACAn1F,EAAA6Y,IAAAoC,GACAjb,GAAA4Y,MACA,IAAAC,MAAAk8E,KAAA/0F,GAAA6Y,KACA,IAAAoC,MAAA85E,KAAA/0F,GAAAib,KACAjb,GAAA4Y,GAAA5Y,EAAAkU,KAAAwvC,KAAA1jD,OAAAy1F,EACAzrF,EAAAirF,KAAAp8E,GAAA7Y,IAAA4Y,GAAA08E,OAAAI,EAAAJ,IACAtrF,EAAAmrF,KAAAl6E,GAAAjb,GAAA4Y,EACAvO,EAAA4qF,IAAAp8E,GAAAD,EAAA,EAAAA,GACAvO,EAAA8qF,IAAAl6E,EAAArC,KAzBA,OARA7Y,GACAwsD,EACAviD,EACAo8C,EACAovC,EACAD,EACAG,EANA70F,EAAAguD,EAAA7rD,OAQA6Y,EAAA,EAAmBA,EAAA85E,IAAgB95E,EAEnC,IADA0wC,EAAAqC,GAAAC,EAAAmmC,GAAAE,IAAAU,WAAAC,GACA91F,EAAA,EAAiBA,EAAAc,IAAOd,EACxBiK,EAAA6kD,EAAA9uD,GACAw1F,EAAAO,EAAA/1F,GAAA21F,EAAAH,IACAnvC,EAAAp8C,EAAA6O,EAAA7O,EAAAirF,GACAO,EAAAxrF,EAAAiR,EAAAjR,EAAAmrF,GACA5oC,EAAAY,MAAA5sC,GA2BA,QAAAs1E,GAAAR,GACA,GAAAA,EAAAhrF,KAAA,MAAAgrF,GAAAz8E,EAAAk9E,EAAAT,EAAAhrF,KAAAvB,MACA,QAAA/I,GAAAs1F,EAAAz8E,EAAA,EAA4B7Y,EAAA,IAAOA,EACnCs1F,EAAAt1F,IAAAs1F,EAAAt1F,GAAA6Y,EAAAy8E,EAAAz8E,IACAy8E,EAAAz8E,EAAAy8E,EAAAt1F,GAAA6Y,GAtDA,GAAAi2C,GACAinC,EACAL,EAAA,EACAE,EAAA,CAyEA,OAvEA,mBAAApoC,OAAAunC,GAAA,MAAAvnC,EAAA,GAAAA,IAsDAmnC,EAAAG,WAAA,SAAAxvC,GACA,GAAAtlD,GAAAc,GAAAguD,EAAAxJ,GAAAriD,MACA,KADkC8yF,EAAA,GAAA1qF,OAAAvK,GAClCd,EAAA,EAAeA,EAAAc,IAAOd,EAAA+1F,EAAA/1F,IAAAwtD,EAAAsB,EAAA9uD,KAAA8uD,IAGtB6lC,EAAAiB,WAAA,SAAAtwC,GACA,MAAAtiD,WAAAC,QAAA2yF,GAAAtwC,EAAAqvC,GAAAiB,GAGAjB,EAAAe,SAAA,SAAApwC,GACA,MAAAtiD,WAAAC,QAAAyyF,GAAApwC,EAAAqvC,GAAAe,GAGAf,EAAAnnC,OAAA,SAAAlI,GACA,MAAAtiD,WAAAC,QAAAuqD,EAAA,mBAAAlI,KAAAyvC,IAAAzvC,GAAAqvC,GAAAnnC,GAGAmnC,EAGA,QAAAqB,IAAA31F,EAAAL,GACA,MAAAA,GAGA,QAAAq9C,IAAAmwC,GAaA,QAAAyI,GAAA54C,GACA,SAAAlpC,KAAAF,IAAAiJ,EAAAmgC,EAAAz6C,OAAAmG,OAAAmU,EAAAmgC,EAAA16C,OAAAoG,QAGA,QAAA4rF,GAAA/7B,GACA,OAAA98C,GAAA,EAAAhb,EAAA0sF,EAAAvqF,OAAqC6Y,EAAA85E,IAAgB95E,EACrD,OAAAuhC,GAAAz6C,EAAAD,EAAAmW,EAAAoC,EAAAjb,EAAAuE,EAAAxE,EAAA,EAAuDA,EAAAc,IAAOd,EAC9Dq9C,EAAAmwC,EAAAxtF,GAAA4C,EAAAy6C,EAAAz6C,OAAAD,EAAA06C,EAAA16C,OACAmW,EAAAnW,EAAAmW,EAAAnW,EAAAuyF,GAAAtyF,EAAAkW,EAAAlW,EAAAsyF,IAAAF,KACA95E,EAAAvY,EAAAuY,EAAAvY,EAAAyyF,GAAAxyF,EAAAsY,EAAAtY,EAAAwyF,IAAAJ,KACA/0F,EAAAkU,KAAAwvC,KAAA7qC,IAAAoC,KACAjb,KAAAi2F,EAAAl2F,IAAAC,EAAA24D,EAAAu9B,EAAAn2F,GACA8Y,GAAA7Y,EAAAib,GAAAjb,EACA0C,EAAAuyF,IAAAp8E,GAAAtU,EAAA4xF,EAAAp2F,IACA2C,EAAAyyF,IAAAl6E,EAAA1W,EACA5B,EAAAsyF,IAAAp8E,GAAAtU,EAAA,EAAAA,GACA5B,EAAAwyF,IAAAl6E,EAAA1W,EAKA,QAAAswF,KACA,GAAAhmC,EAAA,CAEA,GAAA9uD,GAIAq9C,EAHAv8C,EAAAguD,EAAA7rD,OACA9C,EAAAqtF,EAAAvqF,OACAozF,EAAAvvC,EAAAgI,EAAA9nD,EAGA,KAAAhH,EAAA,EAAAkd,EAAA,GAAA7R,OAAAvK,GAAqCd,EAAAc,IAAOd,EAC5Ckd,EAAAld,GAAA,CAGA,KAAAA,EAAA,EAAeA,EAAAG,IAAOH,EACtBq9C,EAAAmwC,EAAAxtF,GAAAq9C,EAAAt0C,MAAA/I,EACA,iBAAAq9C,GAAAz6C,SAAAy6C,EAAAz6C,OAAAyzF,EAAAx1F,IAAAw8C,EAAAz6C,SACA,iBAAAy6C,GAAA16C,SAAA06C,EAAA16C,OAAA0zF,EAAAx1F,IAAAw8C,EAAA16C,WACAua,EAAAmgC,EAAAz6C,OAAAmG,SAAAmU,EAAAmgC,EAAA16C,OAAAoG,MAGA,KAAA/I,EAAA,EAAAo2F,EAAA,GAAA/qF,OAAAlL,GAAoCH,EAAAG,IAAOH,EAC3Cq9C,EAAAmwC,EAAAxtF,GAAAo2F,EAAAp2F,GAAAkd,EAAAmgC,EAAAz6C,OAAAmG,QAAAmU,EAAAmgC,EAAAz6C,OAAAmG,OAAAmU,EAAAmgC,EAAA16C,OAAAoG,OAGAotF,GAAA,GAAA9qF,OAAAlL,GAAAm2F,IACAJ,EAAA,GAAA7qF,OAAAlL,GAAAo2F,KAGA,QAAAD,KACA,GAAAxnC,EAEA,OAAA9uD,GAAA,EAAAc,EAAA0sF,EAAAvqF,OAAqCjD,EAAAc,IAAOd,EAC5Cm2F,EAAAn2F,IAAA01F,EAAAlI,EAAAxtF,KAAAwtF,GAIA,QAAA+I,KACA,GAAAznC,EAEA,OAAA9uD,GAAA,EAAAc,EAAA0sF,EAAAvqF,OAAqCjD,EAAAc,IAAOd,EAC5Ck2F,EAAAl2F,IAAAw2F,EAAAhJ,EAAAxtF,KAAAwtF,GAzEA,GAEA2I,GAEAD,EACApnC,EACA5xC,EACAk5E,EAPApvF,EAAAgvF,GACAN,EAAAO,EAEAO,EAAAzB,GAAA,IAKAa,EAAA,CA8FA,OA5FA,OAAApI,UAmEAmH,EAAAG,WAAA,SAAAxvC,GACAwJ,EAAAxJ,EACAwvC,KAGAH,EAAAnH,MAAA,SAAAloC,GACA,MAAAtiD,WAAAC,QAAAuqF,EAAAloC,EAAAwvC,IAAAH,GAAAnH,GAGAmH,EAAA3tF,GAAA,SAAAs+C,GACA,MAAAtiD,WAAAC,QAAA+D,EAAAs+C,EAAAqvC,GAAA3tF,GAGA2tF,EAAAiB,WAAA,SAAAtwC,GACA,MAAAtiD,WAAAC,QAAA2yF,GAAAtwC,EAAAqvC,GAAAiB,GAGAjB,EAAAe,SAAA,SAAApwC,GACA,MAAAtiD,WAAAC,QAAAyyF,EAAA,mBAAApwC,KAAAyvC,IAAAzvC,GAAAgxC,IAAA3B,GAAAe,GAGAf,EAAA6B,SAAA,SAAAlxC,GACA,MAAAtiD,WAAAC,QAAAuzF,EAAA,mBAAAlxC,KAAAyvC,IAAAzvC,GAAAixC,IAAA5B,GAAA6B,GAGA7B,EAGA,QAAA8B,IAAAp2F,GACA,MAAAA,GAAAyY,EAGA,QAAA49E,IAAAr2F,GACA,MAAAA,GAAA6a,EAKA,QAAAy7E,IAAA7nC,GAaA,QAAAhwB,KACAtlB,IACA+sD,EAAArmE,KAAA,OAAAy2F,GACA/9B,EAAAg+B,IACAC,EAAA9yC,OACAwiB,EAAArmE,KAAA,MAAAy2F,IAIA,QAAAn9E,KACA,GAAAxZ,GAAAiK,EAAAnJ,EAAAguD,EAAA7rD,MAQA,KANA21D,IAAAk+B,EAAAl+B,GAAAm+B,EAEAC,EAAAjwC,KAAA,SAAA4tC,GACAA,EAAA/7B,KAGA54D,EAAA,EAAeA,EAAAc,IAAOd,EACtBiK,EAAA6kD,EAAA9uD,GACA,MAAAiK,EAAAgtF,GAAAhtF,EAAA6O,GAAA7O,EAAAirF,IAAAgC,GACAjtF,EAAA6O,EAAA7O,EAAAgtF,GAAAhtF,EAAAirF,GAAA,GACA,MAAAjrF,EAAAktF,GAAAltF,EAAAiR,GAAAjR,EAAAmrF,IAAA8B,GACAjtF,EAAAiR,EAAAjR,EAAAktF,GAAAltF,EAAAmrF,GAAA,GAIA,QAAAgC,KACA,OAAAntF,GAAAjK,EAAA,EAAAc,EAAAguD,EAAA7rD,OAA2CjD,EAAAc,IAAOd,EAAA,CAElD,GADAiK,EAAA6kD,EAAA9uD,GAAAiK,EAAAlB,MAAA/I,EACAo+B,MAAAn0B,EAAA6O,IAAAslB,MAAAn0B,EAAAiR,GAAA,CACA,GAAAsyC,GAAA6pC,GAAAljF,KAAAwvC,KAAA3jD,GAAAq2D,EAAAr2D,EAAAs3F,EACArtF,GAAA6O,EAAA00C,EAAAr5C,KAAA+0C,IAAAmN,GACApsD,EAAAiR,EAAAsyC,EAAAr5C,KAAAk1C,IAAAgN,IAEAj4B,MAAAn0B,EAAAirF,KAAA92D,MAAAn0B,EAAAmrF,OACAnrF,EAAAirF,GAAAjrF,EAAAmrF,GAAA,IAKA,QAAAmC,GAAA5C,GAEA,MADAA,GAAAG,YAAAH,EAAAG,WAAAhmC,GACA6lC,EAvDA,GAAAgC,GACA/9B,EAAA,EACAg+B,EAAA,KACAG,EAAA,EAAA5iF,KAAAkwC,IAAAuyC,EAAA,OACAE,EAAA,EACAI,EAAA,GACAF,EAAAlwC,IACA+vC,EAAAhvB,GAAA/oC,GACAynC,EAAA7B,GAAA,aAoDA,OAlDA,OAAA5V,UAgDAsoC,IAEAT,GACAn9E,OAEAuuD,QAAA,WACA,MAAA8uB,GAAA9uB,QAAAjpC,GAAA63D,GAGA5yC,KAAA,WACA,MAAA8yC,GAAA9yC,OAAA4yC,GAGA7nC,MAAA,SAAAxJ,GACA,MAAAtiD,WAAAC,QAAA6rD,EAAAxJ,EAAA8xC,IAAAJ,EAAAjwC,KAAAwwC,GAAAZ,GAAA7nC,GAGA8J,MAAA,SAAAtT,GACA,MAAAtiD,WAAAC,QAAA21D,GAAAtT,EAAAqxC,GAAA/9B,GAGAg+B,SAAA,SAAAtxC,GACA,MAAAtiD,WAAAC,QAAA2zF,GAAAtxC,EAAAqxC,GAAAC,GAGAG,WAAA,SAAAzxC,GACA,MAAAtiD,WAAAC,QAAA8zF,GAAAzxC,EAAAqxC,IAAAI,GAGAD,YAAA,SAAAxxC,GACA,MAAAtiD,WAAAC,QAAA6zF,GAAAxxC,EAAAqxC,GAAAG,GAGAI,cAAA,SAAA5xC,GACA,MAAAtiD,WAAAC,QAAAi0F,EAAA,EAAA5xC,EAAAqxC,GAAA,EAAAO,GAGAvC,MAAA,SAAAr0F,EAAAglD,GACA,MAAAtiD,WAAAC,OAAA,SAAAqiD,EAAA0xC,EAAAr1C,OAAArhD,GAAA02F,EAAAhpF,IAAA1N,EAAAi3F,EAAAjyC,IAAAqxC,GAAAK,EAAAn2F,IAAAP,IAGAk3F,KAAA,SAAA1+E,EAAAoC,EAAAsyC,GACA,GAEAM,GACAC,EACAC,EACA/jD,EACAwtF,EANAz3F,EAAA,EACAc,EAAAguD,EAAA7rD,MAUA,KAHA,MAAAuqD,IAAAhU,IACAgU,KAEAxtD,EAAA,EAAiBA,EAAAc,IAAOd,EACxBiK,EAAA6kD,EAAA9uD,GACA8tD,EAAAh1C,EAAA7O,EAAA6O,EACAi1C,EAAA7yC,EAAAjR,EAAAiR,GACA8yC,EAAAF,IAAAC,KACAP,IAAAiqC,EAAAxtF,EAAAujD,EAAAQ,EAGA,OAAAypC,IAGAxwB,GAAA,SAAA3mE,EAAAglD,GACA,MAAAtiD,WAAAC,OAAA,GAAAsjE,EAAAU,GAAA3mE,EAAAglD,GAAAqxC,GAAApwB,EAAAU,GAAA3mE,KAKA,QAAAo3F,MAUA,QAAA/C,GAAArvC,GACA,GAAAtlD,GAAAc,EAAAguD,EAAA7rD,OAAAupD,EAAAqC,GAAAC,EAAA2nC,GAAAC,IAAAb,WAAA8B,EACA,KAAA/+B,EAAAtT,EAAAtlD,EAAA,EAA0BA,EAAAc,IAAOd,EAAAiK,EAAA6kD,EAAA9uD,GAAAwsD,EAAAY,MAAA5sC,GAGjC,QAAAs0E,KACA,GAAAhmC,EAAA,CACA,GAAA9uD,GAAAc,EAAAguD,EAAA7rD,MAEA,KADAkzF,EAAA,GAAA9qF,OAAAvK,GACAd,EAAA,EAAeA,EAAAc,IAAOd,EAAAm2F,EAAAn2F,IAAA01F,EAAA5mC,EAAA9uD,KAAA8uD,IAGtB,QAAA6oC,GAAArC,GACA,GAAA13E,GAAAxd,EAAA0Y,EAAAoC,EAAAlb,EAAA01F,EAAA,CAGA,IAAAJ,EAAAryF,OAAA,CACA,IAAA6V,EAAAoC,EAAAlb,EAAA,EAAyBA,EAAA,IAAOA,GAChC4d,EAAA03E,EAAAt1F,MAAAI,EAAAwd,EAAAtX,SACAovF,GAAAt1F,EAAA0Y,GAAA1Y,EAAAwd,EAAA9E,EAAAoC,GAAA9a,EAAAwd,EAAA1C,EAGAo6E,GAAAx8E,IAAA48E,EACAJ,EAAAp6E,IAAAw6E,MAIA,CACA93E,EAAA03E,EACA13E,EAAA9E,EAAA8E,EAAAtT,KAAAwO,EACA8E,EAAA1C,EAAA0C,EAAAtT,KAAA4Q,CACA,IAAAw6E,GAAAS,EAAAv4E,EAAAtT,KAAAvB,aACA6U,IAAA3R,MAGAqpF,EAAAhvF,MAAAovF,EAGA,QAAAl1E,GAAA80E,EAAAtwC,EAAAM,EAAAmI,GACA,IAAA6nC,EAAAhvF,MAAA,QAEA,IAAAwS,GAAAw8E,EAAAx8E,EAAA7O,EAAA6O,EACAoC,EAAAo6E,EAAAp6E,EAAAjR,EAAAiR,EACAhG,EAAAu4C,EAAAzI,EACA/kD,EAAA6Y,IAAAoC,GAIA,IAAAhG,IAAA0iF,EAAA33F,EAQA,MAPAA,GAAA43F,IACA,IAAA/+E,MAAAk8E,KAAA/0F,GAAA6Y,KACA,IAAAoC,MAAA85E,KAAA/0F,GAAAib,KACAjb,EAAA63F,IAAA73F,EAAAkU,KAAAwvC,KAAAm0C,EAAA73F,IACAgK,EAAAirF,IAAAp8E,EAAAw8E,EAAAhvF,MAAAsyD,EAAA34D,EACAgK,EAAAmrF,IAAAl6E,EAAAo6E,EAAAhvF,MAAAsyD,EAAA34D,IAEA,CAIA,MAAAq1F,EAAAryF,QAAAhD,GAAA43F,GAAA,EAGAvC,EAAAhrF,OAAAL,GAAAqrF,EAAArpF,QACA,IAAA6M,MAAAk8E,KAAA/0F,GAAA6Y,KACA,IAAAoC,MAAA85E,KAAA/0F,GAAAib,KACAjb,EAAA63F,IAAA73F,EAAAkU,KAAAwvC,KAAAm0C,EAAA73F,IAGA,IAAAq1F,EAAAhrF,OAAAL,IACAiL,EAAAihF,EAAAb,EAAAhrF,KAAAvB,OAAA6vD,EAAA34D,EACAgK,EAAAirF,IAAAp8E,EAAA5D,EACAjL,EAAAmrF,IAAAl6E,EAAAhG,SACKogF,IAAArpF,OAlFL,GAAA6iD,GACA7kD,EACA2uD,EAEAu9B,EADAT,EAAAX,IAAA,IAEA+C,EAAA,EACAD,EAAAr+C,IACAo+C,EAAA,GAmGA,OArBAjD,GAAAG,WAAA,SAAAxvC,GACAwJ,EAAAxJ,EACAwvC,KAGAH,EAAAe,SAAA,SAAApwC,GACA,MAAAtiD,WAAAC,QAAAyyF,EAAA,mBAAApwC,KAAAyvC,IAAAzvC,GAAAwvC,IAAAH,GAAAe,GAGAf,EAAAoD,YAAA,SAAAzyC,GACA,MAAAtiD,WAAAC,QAAA60F,EAAAxyC,IAAAqvC,GAAAxgF,KAAAwvC,KAAAm0C,IAGAnD,EAAAqD,YAAA,SAAA1yC,GACA,MAAAtiD,WAAAC,QAAA40F,EAAAvyC,IAAAqvC,GAAAxgF,KAAAwvC,KAAAk0C,IAGAlD,EAAAsD,MAAA,SAAA3yC,GACA,MAAAtiD,WAAAC,QAAA20F,EAAAtyC,IAAAqvC,GAAAxgF,KAAAwvC,KAAAi0C,IAGAjD,EAGA,QAAAuD,IAAAp/E,GAQA,QAAA67E,GAAA/7B,GACA,OAAA3uD,GAAAjK,EAAA,EAAAc,EAAAguD,EAAA7rD,OAA2CjD,EAAAc,IAAOd,EAClDiK,EAAA6kD,EAAA9uD,GAAAiK,EAAAirF,KAAApwC,EAAA9kD,GAAAiK,EAAA6O,GAAAq9E,EAAAn2F,GAAA44D,EAIA,QAAAk8B,KACA,GAAAhmC,EAAA,CACA,GAAA9uD,GAAAc,EAAAguD,EAAA7rD,MAGA,KAFAkzF,EAAA,GAAA9qF,OAAAvK,GACAgkD,EAAA,GAAAz5C,OAAAvK,GACAd,EAAA,EAAeA,EAAAc,IAAOd,EACtBm2F,EAAAn2F,GAAAo+B,MAAA0mB,EAAA9kD,IAAA8Y,EAAAg2C,EAAA9uD,KAAA8uD,IAAA,GAAA4mC,EAAA5mC,EAAA9uD,KAAA8uD,IAnBA,GACAA,GACAqnC,EACArxC,EAHA4wC,EAAAX,GAAA,GAoCA,OA/BA,mBAAAj8E,OAAAi8E,GAAA,MAAAj8E,EAAA,GAAAA,IAkBA67E,EAAAG,WAAA,SAAAxvC,GACAwJ,EAAAxJ,EACAwvC,KAGAH,EAAAe,SAAA,SAAApwC,GACA,MAAAtiD,WAAAC,QAAAyyF,EAAA,mBAAApwC,KAAAyvC,IAAAzvC,GAAAwvC,IAAAH,GAAAe,GAGAf,EAAA77E,EAAA,SAAAwsC,GACA,MAAAtiD,WAAAC,QAAA6V,EAAA,mBAAAwsC,KAAAyvC,IAAAzvC,GAAAwvC,IAAAH,GAAA77E,GAGA67E,EAGA,QAAAwD,IAAAj9E,GAQA,QAAAy5E,GAAA/7B,GACA,OAAA3uD,GAAAjK,EAAA,EAAAc,EAAAguD,EAAA7rD,OAA2CjD,EAAAc,IAAOd,EAClDiK,EAAA6kD,EAAA9uD,GAAAiK,EAAAmrF,KAAAnoC,EAAAjtD,GAAAiK,EAAAiR,GAAAi7E,EAAAn2F,GAAA44D,EAIA,QAAAk8B,KACA,GAAAhmC,EAAA,CACA,GAAA9uD,GAAAc,EAAAguD,EAAA7rD,MAGA,KAFAkzF,EAAA,GAAA9qF,OAAAvK,GACAmsD,EAAA,GAAA5hD,OAAAvK,GACAd,EAAA,EAAeA,EAAAc,IAAOd,EACtBm2F,EAAAn2F,GAAAo+B,MAAA6uB,EAAAjtD,IAAAkb,EAAA4zC,EAAA9uD,KAAA8uD,IAAA,GAAA4mC,EAAA5mC,EAAA9uD,KAAA8uD,IAnBA,GACAA,GACAqnC,EACAlpC,EAHAyoC,EAAAX,GAAA,GAoCA,OA/BA,mBAAA75E,OAAA65E,GAAA,MAAA75E,EAAA,GAAAA,IAkBAy5E,EAAAG,WAAA,SAAAxvC,GACAwJ,EAAAxJ,EACAwvC,KAGAH,EAAAe,SAAA,SAAApwC,GACA,MAAAtiD,WAAAC,QAAAyyF,EAAA,mBAAApwC,KAAAyvC,IAAAzvC,GAAAwvC,IAAAH,GAAAe,GAGAf,EAAAz5E,EAAA,SAAAoqC,GACA,MAAAtiD,WAAAC,QAAAiY,EAAA,mBAAAoqC,KAAAyvC,IAAAzvC,GAAAwvC,IAAAH,GAAAz5E,GAGAy5E,EAGA,QAAAyD,MACAt4F,EAAAymE,MAAA8xB,2BAGA,QAAAC,MACAx4F,EAAAymE,MAAAn8B,iBACAtqC,EAAAymE,MAAA8xB,2BAGA,QAAAE,IAAA5qF,GACA,GAAAw2E,GAAAx2E,EAAAzD,SAAAoa,gBACAk7D,EAAA7xD,GAAAhgB,GAAAs5D,GAAA,iBAAAqxB,IAAA,EACA,kBAAAnU,GACA3E,EAAAvY,GAAA,mBAAAqxB,IAAA,IAEAnU,EAAAqU,WAAArU,EAAAztE,MAAA+hF,cACAtU,EAAAztE,MAAA+hF,cAAA,QAIA,QAAAC,IAAA/qF,EAAAgrF,GACA,GAAAxU,GAAAx2E,EAAAzD,SAAAoa,gBACAk7D,EAAA7xD,GAAAhgB,GAAAs5D,GAAA,sBACA0xB,KACAnZ,EAAAvY,GAAA,aAAAqxB,IAAA,GACAtwF,WAAA,WAA2Bw3E,EAAAvY,GAAA,oBAAoC,IAE/D,iBAAAkd,GACA3E,EAAAvY,GAAA,0BAEAkd,EAAAztE,MAAA+hF,cAAAtU,EAAAqU,iBACArU,GAAAqU,YAIA,QAAAI,IAAA9/E,GACA,kBACA,MAAAA,IAIA,QAAA+/E,IAAAl2F,EAAA0M,EAAAypF,EAAA9xF,EAAAw+E,EAAA1sE,EAAAoC,EAAA4yC,EAAAC,EAAA2W,GACA/gE,KAAAhB,SACAgB,KAAA0L,OACA1L,KAAAm1F,UACAn1F,KAAA2gF,WAAAt9E,EACArD,KAAA6hF,SACA7hF,KAAAmV,IACAnV,KAAAuX,IACAvX,KAAAmqD,KACAnqD,KAAAoqD,KACApqD,KAAA2hD,EAAAof,EASA,QAAAq0B,MACA,OAAAj5F,EAAAymE,MAAAh5B,OAGA,QAAAyrD,MACA,MAAAr1F,MAAAuf,WAGA,QAAA+1E,IAAA54F,GACA,aAAAA,GAAsByY,EAAAhZ,EAAAymE,MAAAztD,EAAAoC,EAAApb,EAAAymE,MAAArrD,GAAuC7a,EAG7D,QAAA64F,MAUA,QAAAA,GAAA1Z,GACAA,EACAvY,GAAA,iBAAAkyB,GACAlyB,GAAA,kBAAAmyB,GACAnyB,GAAA,iBAAAoyB,GACApyB,GAAA,iCAAAqyB,GACA5iF,MAAA,+CAGA,QAAAyiF,KACA,IAAAI,GAAApwB,EAAA3oD,MAAA7c,KAAAX,WAAA,CACA,GAAAw2F,GAAAC,EAAA,QAAAC,EAAAl5E,MAAA7c,KAAAX,WAAAg6E,GAAAr5E,KAAAX,UACAw2F,KACA7rE,GAAA7tB,EAAAymE,MAAA54D,MAAAs5D,GAAA,iBAAA0yB,GAAA,GAAA1yB,GAAA,eAAA2yB,GAAA,GACArB,GAAAz4F,EAAAymE,MAAA54D,MACAyqF,KACAyB,GAAA,EACAL,EAAA,WAGA,QAAAG,KACArB,KACAuB,GAAA,EACAC,EAAA9c,MAAA,QAGA,QAAA4c,KACAjsE,GAAA7tB,EAAAymE,MAAA54D,MAAAs5D,GAAA,oCACAyxB,GAAA54F,EAAAymE,MAAA54D,KAAAksF,GACAvB,KACAwB,EAAA9c,MAAA,OAGA,QAAAoc,KACA,GAAAjwB,EAAA3oD,MAAA7c,KAAAX,WAAA,CACA,GAEAhD,GAAAw5F,EAFA3iD,EAAA/2C,EAAAymE,MAAAxvB,eACA32C,EAAAs5F,EAAAl5E,MAAA7c,KAAAX,WACAlC,EAAA+1C,EAAA5zC,MAEA,KAAAjD,EAAA,EAAeA,EAAAc,IAAOd,GACtBw5F,EAAAC,EAAA5iD,EAAA72C,GAAAskF,WAAAlkF,EAAAikF,GAAA1gF,KAAAX,cACAo1F,KACAoB,EAAA,WAKA,QAAAH,KACA,GACAr5F,GAAAw5F,EADA3iD,EAAA/2C,EAAAymE,MAAAxvB,eACAj2C,EAAA+1C,EAAA5zC,MAEA,KAAAjD,EAAA,EAAeA,EAAAc,IAAOd,GACtBw5F,EAAAM,EAAAjjD,EAAA72C,GAAAskF,eACAgU,KACAkB,EAAA,SAKA,QAAAF,KACA,GACAt5F,GAAAw5F,EADA3iD,EAAA/2C,EAAAymE,MAAAxvB,eACAj2C,EAAA+1C,EAAA5zC,MAIA,KAFAs2F,GAAAzxF,aAAAyxF,GACAA,EAAAvxF,WAAA,WAAyCuxF,EAAA,MAAsB,KAC/Dv5F,EAAA,EAAeA,EAAAc,IAAOd,GACtBw5F,EAAAM,EAAAjjD,EAAA72C,GAAAskF,eACA8T,KACAoB,EAAA,QAKA,QAAAC,GAAAzyF,EAAA0yF,EAAAluC,EAAAwL,EAAA5rD,GACA,GAAA/J,GAAAysD,EAAAC,EAAA3sD,EAAAoqD,EAAAkuC,EAAA1yF,GACA+yF,EAAAC,EAAA/qC,MAEA,IAAAmtB,GAAA,GAAAyc,IAAAK,EAAA,cAAA73F,EAAA2F,EAAAw+E,EAAApkF,EAAA,GAAAA,EAAA,OAAA24F,GAAA,WACA,cAAAj6F,EAAAymE,MAAAuyB,QAAAz3F,EAAAy3F,EAAAt4E,MAAAw2C,EAAA5rD,MACA0iD,EAAAzsD,EAAAyX,EAAA1X,EAAA,MACA2sD,EAAA1sD,EAAA6Z,EAAA9Z,EAAA,OACA,KAGA,eAAAo4F,GAAAnqF,GACA,GAAAvO,GAAA+yD,EAAAzyD,CACA,QAAAiO,GACA,YAAAyqF,EAAA9yF,GAAAwyF,EAAA14F,EAAA0kF,GAA2D,MAC3D,iBAAAsU,GAAA9yF,KAAAw+E,CACA,YAAApkF,EAAAoqD,EAAAkuC,EAAA1yF,GAAAlG,EAAA0kF,EAEApJ,GAAA,GAAAyc,IAAAK,EAAA7pF,EAAAhO,EAAA2F,EAAAlG,EAAAM,EAAA,GAAA0sD,EAAA1sD,EAAA,GAAA2sD,EAAA3sD,EAAA,GAAAyyD,EAAA,GAAAzyD,EAAA,GAAAyyD,EAAA,GAAAkmC,KAAAv5E,MAAAu5E,GAAA1qF,EAAA2nD,EAAA5rD,KApGA,GAMAyuF,GACAN,EAPApwB,EAAA4vB,GACAW,EAAAV,GACAF,EAAAG,GACAa,KACAE,EAAAt1B,GAAA,sBACA8gB,EAAA,CAoHA,OAjBA0T,GAAA/vB,OAAA,SAAA7jB,GACA,MAAAtiD,WAAAC,QAAAkmE,EAAA,mBAAA7jB,KAAAszC,KAAAtzC,GAAA4zC,GAAA/vB,GAGA+vB,EAAAQ,UAAA,SAAAp0C,GACA,MAAAtiD,WAAAC,QAAAy2F,EAAA,mBAAAp0C,KAAAszC,GAAAtzC,GAAA4zC,GAAAQ,GAGAR,EAAAJ,QAAA,SAAAxzC,GACA,MAAAtiD,WAAAC,QAAA61F,EAAA,mBAAAxzC,KAAAszC,GAAAtzC,GAAA4zC,GAAAJ,GAGAI,EAAAjyB,GAAA,WACA,GAAA3gE,GAAA0zF,EAAA/yB,GAAAzmD,MAAAw5E,EAAAh3F,UACA,OAAAsD,KAAA0zF,EAAAd,EAAA5yF,GAGA4yF,EAGA,QAAAe,IAAAnhF,GACA,kBACA,MAAAA,IAIA,QAAAohF,IAAA75F,GACA,MAAAA,GAAA,GAGA,QAAA85F,IAAA95F,GACA,MAAAA,GAAA,GAGA,QAAA+5F,MACAz2F,KAAA2hD,EAAA,KAGA,QAAA+0C,IAAApwF,GACAA,EAAAwU,EACAxU,EAAA0R,EACA1R,EAAA0T,EACA1T,EAAAuT,EACAvT,EAAAmT,EACAnT,EAAA4S,EAAA,KAuLA,QAAAy9E,IAAA9tC,EAAAviD,GACA,GAAA7I,GAAA6I,EACA2T,EAAA3T,EAAAuT,EACAivC,EAAArrD,EAAAqd,CAEAguC,GACAA,EAAA9uC,IAAAvc,EAAAqrD,EAAA9uC,EAAAC,EACA6uC,EAAAjvC,EAAAI,EAEA4uC,EAAAlH,EAAA1nC,EAGAA,EAAAa,EAAAguC,EACArrD,EAAAqd,EAAAb,EACAxc,EAAAoc,EAAAI,EAAAD,EACAvc,EAAAoc,IAAApc,EAAAoc,EAAAiB,EAAArd,GACAwc,EAAAD,EAAAvc,EAGA,QAAAm5F,IAAA/tC,EAAAviD,GACA,GAAA7I,GAAA6I,EACA2T,EAAA3T,EAAA0T,EACA8uC,EAAArrD,EAAAqd,CAEAguC,GACAA,EAAA9uC,IAAAvc,EAAAqrD,EAAA9uC,EAAAC,EACA6uC,EAAAjvC,EAAAI,EAEA4uC,EAAAlH,EAAA1nC,EAGAA,EAAAa,EAAAguC,EACArrD,EAAAqd,EAAAb,EACAxc,EAAAuc,EAAAC,EAAAJ,EACApc,EAAAuc,IAAAvc,EAAAuc,EAAAc,EAAArd,GACAwc,EAAAJ,EAAApc,EAGA,QAAAo5F,IAAAvwF,GACA,KAAAA,EAAA0T,GAAA1T,IAAA0T,CACA,OAAA1T,GAGA,QAAAwwF,IAAAv7C,EAAAoE,EAAA+b,EAAAC,GACA,GAAAo7B,IAAA,WACA3xF,EAAA4xF,GAAAh1F,KAAA+0F,GAAA,CAOA,OANAA,GAAAx7C,OACAw7C,EAAAp3C,QACA+b,GAAAu7B,GAAAF,EAAAx7C,EAAAoE,EAAA+b,GACAC,GAAAs7B,GAAAF,EAAAp3C,EAAApE,EAAAogB,GACAu7B,GAAA37C,EAAAn2C,OAAA+xF,UAAAn1F,KAAAoD,GACA8xF,GAAAv3C,EAAAv6C,OAAA+xF,UAAAn1F,KAAAoD,GACA2xF,EAGA,QAAAK,IAAA77C,EAAAmgB,EAAAC,GACA,GAAAo7B,IAAAr7B,EAAAC,EAEA,OADAo7B,GAAAx7C,OACAw7C,EAGA,QAAAE,IAAAF,EAAAx7C,EAAAoE,EAAA03C,GACAN,EAAA,IAAAA,EAAA,GAIGA,EAAAx7C,OAAAoE,EACHo3C,EAAA,GAAAM,EAEAN,EAAA,GAAAM,GANAN,EAAA,GAAAM,EACAN,EAAAx7C,OACAw7C,EAAAp3C,SASA,QAAA23C,IAAAP,EAAA31C,EAAA2G,EAAA1G,EAAAyG,GACA,GAUA5yC,GAVAvU,EAAAo2F,EAAA,GACAl2F,EAAAk2F,EAAA,GACA1mC,EAAA1vD,EAAA,GACA2vD,EAAA3vD,EAAA,GACA4vD,EAAA1vD,EAAA,GACA2vD,EAAA3vD,EAAA,GACAuuD,EAAA,EACAC,EAAA,EACAlF,EAAAoG,EAAAF,EACAjG,EAAAoG,EAAAF,CAIA,IADAp7C,EAAAksC,EAAAiP,EACAlG,KAAAj1C,EAAA,IAEA,GADAA,GAAAi1C,EACAA,EAAA,GACA,GAAAj1C,EAAAk6C,EAAA,MACAl6C,GAAAm6C,MAAAn6C,OACG,IAAAi1C,EAAA,GACH,GAAAj1C,EAAAm6C,EAAA,MACAn6C,GAAAk6C,MAAAl6C,GAIA,GADAA,EAAAmsC,EAAAgP,EACAlG,KAAAj1C,EAAA,IAEA,GADAA,GAAAi1C,EACAA,EAAA,GACA,GAAAj1C,EAAAm6C,EAAA,MACAn6C,GAAAk6C,MAAAl6C,OACG,IAAAi1C,EAAA,GACH,GAAAj1C,EAAAk6C,EAAA,MACAl6C,GAAAm6C,MAAAn6C,GAIA,GADAA,EAAA6yC,EAAAuI,EACAlG,KAAAl1C,EAAA,IAEA,GADAA,GAAAk1C,EACAA,EAAA,GACA,GAAAl1C,EAAAk6C,EAAA,MACAl6C,GAAAm6C,MAAAn6C,OACG,IAAAk1C,EAAA,GACH,GAAAl1C,EAAAm6C,EAAA,MACAn6C,GAAAk6C,MAAAl6C,GAIA,GADAA,EAAA4yC,EAAAwI,EACAlG,KAAAl1C,EAAA,IAEA,GADAA,GAAAk1C,EACAA,EAAA,GACA,GAAAl1C,EAAAm6C,EAAA,MACAn6C,GAAAk6C,MAAAl6C,OACG,IAAAk1C,EAAA,GACH,GAAAl1C,EAAAk6C,EAAA,MACAl6C,GAAAm6C,MAAAn6C,GAGA,QAAAk6C,EAAA,GAAAC,EAAA,KAEAD,EAAA,IAAA2nC,EAAA,IAAA1mC,EAAAjB,EAAAjF,EAAAmG,EAAAlB,EAAAhF,IACAiF,EAAA,IAAA0nC,EAAA,IAAA1mC,EAAAhB,EAAAlF,EAAAmG,EAAAjB,EAAAjF,KACA,OAGA,QAAAmtC,IAAAR,EAAA31C,EAAA2G,EAAA1G,EAAAyG,GACA,GAAA6T,GAAAo7B,EAAA,EACA,IAAAp7B,EAAA,QAEA,IASA67B,GACAp/D,EAVAsjC,EAAAq7B,EAAA,GACAx7C,EAAAw7C,EAAAx7C,KACAoE,EAAAo3C,EAAAp3C,MACA83C,EAAAl8C,EAAA,GACAm8C,EAAAn8C,EAAA,GACAo8C,EAAAh4C,EAAA,GACAi4C,EAAAj4C,EAAA,GACA2zC,GAAAmE,EAAAE,GAAA,EACAnE,GAAAkE,EAAAE,GAAA,CAIA,IAAAA,IAAAF,EAAA,CACA,GAAApE,EAAAlyC,GAAAkyC,GAAAjyC,EAAA,MACA,IAAAo2C,EAAAE,EAAA,CACA,GAAAj8B,GACA,GAAAA,EAAA,IAAA5T,EAAA,WADA4T,IAAA43B,EAAAvrC,EAEA4T,IAAA23B,EAAAxrC,OACK,CACL,GAAA4T,GACA,GAAAA,EAAA,GAAA3T,EAAA,WADA2T,IAAA43B,EAAAxrC,EAEA6T,IAAA23B,EAAAvrC,QAKA,IAFAyvC,GAAAC,EAAAE,IAAAC,EAAAF,GACAt/D,EAAAo7D,EAAAgE,EAAAlE,EACAkE,GAAA,GAAAA,EAAA,EACA,GAAAC,EAAAE,EAAA,CACA,GAAAj8B,GACA,GAAAA,EAAA,IAAA5T,EAAA,WADA4T,KAAA3T,EAAA3vB,GAAAo/D,EAAAzvC,EAEA4T,KAAA7T,EAAA1vB,GAAAo/D,EAAA1vC,OACO,CACP,GAAA4T,GACA,GAAAA,EAAA,GAAA3T,EAAA,WADA2T,KAAA5T,EAAA1vB,GAAAo/D,EAAA1vC,EAEA6T,KAAA5T,EAAA3vB,GAAAo/D,EAAAzvC,OAGA,IAAA2vC,EAAAE,EAAA,CACA,GAAAl8B,GACA,GAAAA,EAAA,IAAAra,EAAA,WADAqa,IAAAta,EAAAo2C,EAAAp2C,EAAAhpB,EAEAujC,IAAAta,EAAAm2C,EAAAn2C,EAAAjpB,OACO,CACP,GAAAsjC,GACA,GAAAA,EAAA,GAAAta,EAAA,WADAsa,IAAAra,EAAAm2C,EAAAn2C,EAAAjpB,EAEAujC,IAAAva,EAAAo2C,EAAAp2C,EAAAhpB,GAOA,MAFA2+D,GAAA,GAAAr7B,EACAq7B,EAAA,GAAAp7B,GACA,EAGA,QAAAk8B,IAAAz2C,EAAA2G,EAAA1G,EAAAyG,GAIA,IAHA,GACAivC,GADA16F,EAAA26F,GAAA13F,OAGAjD,KACAk7F,GAAAR,EAAAC,GAAA36F,GAAA+kD,EAAA2G,EAAA1G,EAAAyG,IACAwvC,GAAAP,EAAA31C,EAAA2G,EAAA1G,EAAAyG,KACAt3C,KAAAgwC,IAAAu2C,EAAA,MAAAA,EAAA,OAAAe,IACAtnF,KAAAgwC,IAAAu2C,EAAA,MAAAA,EAAA,OAAAe,WACAd,IAAA36F,GAKA,QAAA07F,IAAAC,GACA,MAAAd,IAAAc,EAAA5yF,QACA4yF,OACAb,cAIA,QAAAc,IAAAC,EAAAnB,GACA,GAAAiB,GAAAE,EAAAF,KACA97E,EAAA66E,EAAAx7C,KACAz7B,EAAAi3E,EAAAp3C,KAEA,OADAq4C,KAAAl4E,MAAA5D,IAAA87E,GACAl4E,EAAAtP,KAAAkgD,MAAA5wC,EAAA,GAAA5D,EAAA,GAAA4D,EAAA,GAAA5D,EAAA,KACA87E,IAAA97E,KAAA66E,EAAA,GAAAj3E,EAAAi3E,EAAA,KACA76E,EAAA66E,EAAA,GAAAj3E,EAAAi3E,EAAA,IACAvmF,KAAAkgD,MAAAx0C,EAAA,GAAA4D,EAAA,GAAAA,EAAA,GAAA5D,EAAA,KAGA,QAAAi8E,IAAAD,EAAAnB,GACA,MAAAA,OAAAx7C,OAAA28C,EAAAF,OAGA,QAAAI,IAAAF,EAAAnB,GACA,MAAAA,OAAAx7C,OAAA28C,EAAAF,OAGA,QAAAK,MACA,OAAAH,GAAAf,EAAA3lF,EAAAhV,EAAAH,EAAA,EAAAc,EAAA+5F,GAAA53F,OAA0DjD,EAAAc,IAAOd,EACjE,IAAA67F,EAAAhB,GAAA76F,MAAAG,GAAA26F,EAAAe,EAAAf,WAAA73F,QAAA,CACA,GAAA8F,GAAA,GAAAsC,OAAAlL,GACAsjD,EAAA,GAAAp4C,OAAAlL,EACA,KAAAgV,EAAA,EAAiBA,EAAAhV,IAAOgV,EAAApM,EAAAoM,KAAAsuC,EAAAtuC,GAAAymF,GAAAC,EAAAlB,GAAAG,EAAA3lF,IAExB,KADApM,EAAA08C,KAAA,SAAAzlD,EAAAmV,GAAiC,MAAAsuC,GAAAtuC,GAAAsuC,EAAAzjD,KACjCmV,EAAA,EAAiBA,EAAAhV,IAAOgV,EAAAsuC,EAAAtuC,GAAA2lF,EAAA/xF,EAAAoM,GACxB,KAAAA,EAAA,EAAiBA,EAAAhV,IAAOgV,EAAA2lF,EAAA3lF,GAAAsuC,EAAAtuC,IAKxB,QAAA8mF,IAAAl3C,EAAA2G,EAAA1G,EAAAyG,GACA,GACAywC,GACAL,EACAF,EACAQ,EACArB,EACAsB,EACAvmF,EACAwmF,EACAC,EACAxmF,EACAymF,EACAC,EAZAC,EAAA5B,GAAA53F,OAaAspD,GAAA,CAEA,KAAA2vC,EAAA,EAAiBA,EAAAO,IAAgBP,EACjC,GAAAL,EAAAhB,GAAAqB,GAAA,CAMA,IALAP,EAAAE,EAAAF,KACAb,EAAAe,EAAAf,UACAqB,EAAArB,EAAA73F,OAGAk5F,KACAxB,GAAAG,EAAAqB,KACArB,EAAAjV,OAAAsW,EAAA,EAMA,KADAA,EAAA,EAAAC,EAAAtB,EAAA73F,OACAk5F,EAAAC,GACAtmF,EAAAimF,GAAAF,EAAAlB,GAAAG,EAAAqB,KAAAI,EAAAzmF,EAAA,GAAA0mF,EAAA1mF,EAAA,GACAD,EAAAimF,GAAAD,EAAAlB,GAAAG,IAAAqB,EAAAC,KAAAC,EAAAxmF,EAAA,GAAAymF,EAAAzmF,EAAA,IACA1B,KAAAgwC,IAAAo4C,EAAAF,GAAAZ,IAAAtnF,KAAAgwC,IAAAq4C,EAAAF,GAAAb,MACAX,EAAAjV,OAAAsW,EAAA,EAAAxB,GAAAh1F,KAAAo1F,GAAAY,EAAA7lF,EACA3B,KAAAgwC,IAAAo4C,EAAAx3C,GAAA02C,IAAAhwC,EAAA+wC,EAAAf,IAAA12C,EAAA5wC,KAAAgwC,IAAAk4C,EAAAt3C,GAAA02C,GAAAa,EAAA7wC,GACAt3C,KAAAgwC,IAAAq4C,EAAA/wC,GAAAgwC,IAAAz2C,EAAAu3C,EAAAd,IAAAtnF,KAAAgwC,IAAAm4C,EAAA7wC,GAAAgwC,GAAAY,EAAAr3C,EAAAyG,GACAt3C,KAAAgwC,IAAAo4C,EAAAv3C,GAAAy2C,IAAAe,EAAA9wC,EAAA+vC,IAAAz2C,EAAA7wC,KAAAgwC,IAAAk4C,EAAAr3C,GAAAy2C,GAAAa,EAAA5wC,GACAv3C,KAAAgwC,IAAAq4C,EAAA9wC,GAAA+vC,IAAAc,EAAAx3C,EAAA02C,IAAAtnF,KAAAgwC,IAAAm4C,EAAA5wC,GAAA+vC,GAAAY,EAAAt3C,EAAA2G,GACA,YACA0wC,EAIAA,KAAA7vC,GAAA,GAMA,GAAAA,EAAA,CACA,GAAAuB,GAAAC,EAAAC,EAAAvoC,EAAA+zB,GAEA,KAAA0iD,EAAA,EAAA3vC,EAAA,KAAiC2vC,EAAAO,IAAgBP,GACjDL,EAAAhB,GAAAqB,MACAP,EAAAE,EAAAF,KACA7tC,EAAA6tC,EAAA,GAAA52C,EACAgJ,EAAA4tC,EAAA,GAAAjwC,GACAsC,EAAAF,IAAAC,KACAtoC,MAAAuoC,EAAAzB,EAAAsvC,GAIA,IAAAtvC,EAAA,CACA,GAAAmwC,IAAA33C,EAAA2G,GAAAixC,GAAA53C,EAAA0G,GAAAmxC,GAAA53C,EAAAyG,GAAAoxC,GAAA73C,EAAA0G,EACAa,GAAAuuC,UAAAn1F,KACAg1F,GAAAh1F,KAAAo1F,GAAAY,EAAApvC,EAAAovC,KAAAe,EAAAC,IAAA,EACAhC,GAAAh1F,KAAAo1F,GAAAY,EAAAgB,EAAAC,IAAA,EACAjC,GAAAh1F,KAAAo1F,GAAAY,EAAAiB,EAAAC,IAAA,EACAlC,GAAAh1F,KAAAo1F,GAAAY,EAAAkB,EAAAH,IAAA,IAMA,IAAAR,EAAA,EAAiBA,EAAAO,IAAgBP,GACjCL,EAAAhB,GAAAqB,MACAL,EAAAf,UAAA73F,cACA43F,IAAAqB,IAUA,QAAAY,MACAzC,GAAA12F,MACAA,KAAAmV,EACAnV,KAAAuX,EACAvX,KAAA6uD,IACA7uD,KAAAg4F,KACAh4F,KAAA4uD,GAAA,KAGA,QAAAwqC,IAAAvqC,GACA,GAAAwqC,GAAAxqC,EAAAp1C,EACA6/E,EAAAzqC,EAAA31C,CAEA,IAAAmgF,GAAAC,EAAA,CAEA,GAAAC,GAAAF,EAAArB,KACAwB,EAAA3qC,EAAAmpC,KACAyB,EAAAH,EAAAtB,IAEA,IAAAuB,IAAAE,EAAA,CAEA,GAAAlpC,GAAAipC,EAAA,GACAhpC,EAAAgpC,EAAA,GACAnpC,EAAAkpC,EAAA,GAAAhpC,EACAD,EAAAipC,EAAA,GAAA/oC,EACA7B,EAAA8qC,EAAA,GAAAlpC,EACA3B,EAAA6qC,EAAA,GAAAjpC,EAEA9zD,EAAA,GAAA2zD,EAAAzB,EAAA0B,EAAA3B,EACA,MAAAjyD,IAAAg9F,IAAA,CAEA,GAAA/jE,GAAA06B,IAAAC,IACA/tC,EAAAosC,IAAAC,IACAz5C,GAAAy5C,EAAAj5B,EAAA26B,EAAA/tC,GAAA7lB,EACA6a,GAAA84C,EAAA9tC,EAAAosC,EAAAh5B,GAAAj5B,EAEA02D,EAAAumC,GAAAvgF,OAAA,GAAA+/E,GACA/lC,GAAAvE,MACAuE,EAAA4kC,KAAAwB,EACApmC,EAAAj+C,IAAAo7C,EACA6C,EAAA77C,GAAA67C,EAAAxE,GAAAr3C,EAAAi5C,GAAAhgD,KAAAwvC,KAAA7qC,IAAAoC,KAEAs3C,EAAAuE,QAKA,KAHA,GAAA0sB,GAAA,KACAx5E,EAAAokF,GAAA/oC,EAEAr7C,GACA,GAAA8sD,EAAA77C,EAAAjR,EAAAiR,GAAA67C,EAAA77C,IAAAjR,EAAAiR,GAAA67C,EAAAj+C,GAAA7O,EAAA6O,EAAA,CACA,IAAA7O,EAAA0T,EACA,CAAY8lE,EAAAx5E,EAAAmT,CAAiB,OAD7BnT,IAAA0T,MAEK,CACL,IAAA1T,EAAAuT,EACA,CAAYimE,EAAAx5E,CAAe,OAD3BA,IAAAuT,EAKA6wE,GAAAnD,OAAAzH,EAAA1sB,GACA0sB,IAAA8Z,GAAAxmC,MAGA,QAAAymC,IAAAhrC,GACA,GAAAuE,GAAAvE,EAAAuE,MACAA,KACAA,EAAA35C,IAAAmgF,GAAAxmC,EAAAl6C,GACAwxE,GAAA1sC,OAAAoV,GACAumC,GAAA33F,KAAAoxD,GACAsjC,GAAAtjC,GACAvE,EAAAuE,OAAA,MAMA,QAAA0mC,MACApD,GAAA12F,MACAA,KAAA+2F,KACA/2F,KAAAg4F,KACAh4F,KAAAozD,OAAA,KAGA,QAAA2mC,IAAA/B,GACA,GAAAgC,GAAAC,GAAA7gF,OAAA,GAAA0gF,GAEA,OADAE,GAAAhC,OACAgC,EAGA,QAAAE,IAAAF,GACAH,GAAAG,GACAG,GAAAn8C,OAAAg8C,GACAC,GAAAj4F,KAAAg4F,GACAtD,GAAAsD,GAGA,QAAAI,IAAAJ,GACA,GAAA5mC,GAAA4mC,EAAA5mC,OACAj+C,EAAAi+C,EAAAj+C,EACAoC,EAAA67C,EAAAxE,GACAyoC,GAAAliF,EAAAoC,GACAizC,EAAAwvC,EAAAvgF,EACAnR,EAAA0xF,EAAA9gF,EACAmhF,GAAAL,EAEAE,IAAAF,EAGA,KADA,GAAAX,GAAA7uC,EACA6uC,EAAAjmC,QACA5iD,KAAAgwC,IAAArrC,EAAAkkF,EAAAjmC,OAAAj+C,GAAA2iF,IACAtnF,KAAAgwC,IAAAjpC,EAAA8hF,EAAAjmC,OAAAxE,IAAAkpC,IACAttC,EAAA6uC,EAAA5/E,EACA4gF,EAAAC,QAAAjB,GACAa,GAAAb,GACAA,EAAA7uC,CAGA6vC,GAAAC,QAAAjB,GACAQ,GAAAR,EAGA,KADA,GAAAC,GAAAhxF,EACAgxF,EAAAlmC,QACA5iD,KAAAgwC,IAAArrC,EAAAmkF,EAAAlmC,OAAAj+C,GAAA2iF,IACAtnF,KAAAgwC,IAAAjpC,EAAA+hF,EAAAlmC,OAAAxE,IAAAkpC,IACAxvF,EAAAgxF,EAAApgF,EACAmhF,EAAAr4F,KAAAs3F,GACAY,GAAAZ,GACAA,EAAAhxF,CAGA+xF,GAAAr4F,KAAAs3F,GACAO,GAAAP,EAEA,IACAiB,GADAC,EAAAH,EAAA/6F,MAEA,KAAAi7F,EAAA,EAAgBA,EAAAC,IAAcD,EAC9BjB,EAAAe,EAAAE,GACAlB,EAAAgB,EAAAE,EAAA,GACAtD,GAAAqC,EAAAvC,KAAAsC,EAAArB,KAAAsB,EAAAtB,KAAAX,EAGAgC,GAAAgB,EAAA,GACAf,EAAAe,EAAAG,EAAA,GACAlB,EAAAvC,KAAAD,GAAAuC,EAAArB,KAAAsB,EAAAtB,KAAA,KAAAX,GAEA+B,GAAAC,GACAD,GAAAE,GAGA,QAAAmB,IAAAzC,GASA,IARA,GAEAqB,GACAC,EACAoB,EACAC,EALAxlF,EAAA6iF,EAAA,GACA4C,EAAA5C,EAAA,GAKA1xF,EAAA6zF,GAAAx4C,EAEAr7C,GAEA,IADAo0F,EAAAG,GAAAv0F,EAAAs0F,GAAAzlF,GACA2iF,GAAAxxF,IAAA0T,MAAuC,CAEvC,MADA2gF,EAAAxlF,EAAA2lF,GAAAx0F,EAAAs0F,IACA9C,IAMO,CACP4C,GAAA5C,IACAuB,EAAA/yF,EAAAmT,EACA6/E,EAAAhzF,GACSq0F,GAAA7C,IACTuB,EAAA/yF,EACAgzF,EAAAhzF,EAAA4S,GAEAmgF,EAAAC,EAAAhzF,CAEA,OAfA,IAAAA,EAAAuT,EAAA,CACAw/E,EAAA/yF,CACA,OAEAA,IAAAuT,EAgBAk+E,GAAAC,EACA,IAAA+C,GAAAhB,GAAA/B,EAGA,IAFAmC,GAAA5S,OAAA8R,EAAA0B,GAEA1B,GAAAC,EAAA,CAEA,GAAAD,IAAAC,EAOA,MANAO,IAAAR,GACAC,EAAAS,GAAAV,EAAArB,MACAmC,GAAA5S,OAAAwT,EAAAzB,GACAyB,EAAAhE,KAAAuC,EAAAvC,KAAAD,GAAAuC,EAAArB,KAAA+C,EAAA/C,MACAoB,GAAAC,OACAD,IAAAE,EAIA,KAAAA,EAEA,YADAyB,EAAAhE,KAAAD,GAAAuC,EAAArB,KAAA+C,EAAA/C,MAKA6B,IAAAR,GACAQ,GAAAP,EAEA,IAAAC,GAAAF,EAAArB,KACA3nC,EAAAkpC,EAAA,GACAjpC,EAAAipC,EAAA,GACAhpC,EAAAynC,EAAA,GAAA3nC,EACAG,EAAAwnC,EAAA,GAAA1nC,EACAmpC,EAAAH,EAAAtB,KACArpC,EAAA8qC,EAAA,GAAAppC,EACAzB,EAAA6qC,EAAA,GAAAnpC,EACA5zD,EAAA,GAAA6zD,EAAA3B,EAAA4B,EAAA7B,GACA7pB,EAAAyrB,IAAAC,IACAjuC,EAAAosC,IAAAC,IACAyoC,IAAAzoC,EAAA9pB,EAAA0rB,EAAAjuC,GAAA7lB,EAAA2zD,GAAAE,EAAAhuC,EAAAosC,EAAA7pB,GAAApoC,EAAA4zD,EAEA2mC,IAAAqC,EAAAvC,KAAAwC,EAAAE,EAAApC,GACA0D,EAAAhE,KAAAD,GAAAyC,EAAAvB,EAAA,KAAAX,GACAiC,EAAAvC,KAAAD,GAAAkB,EAAAyB,EAAA,KAAApC,GACA+B,GAAAC,GACAD,GAAAE,IAGA,QAAAuB,IAAAhsC,EAAA+rC,GACA,GAAA5C,GAAAnpC,EAAAmpC,KACAgD,EAAAhD,EAAA,GACAiD,EAAAjD,EAAA,GACAkD,EAAAD,EAAAL,CAEA,KAAAM,EAAA,MAAAF,EAEA,IAAA3B,GAAAxqC,EAAAp1C,CACA,KAAA4/E,EAAA,OAAAxjD,GAEAmiD,GAAAqB,EAAArB,IACA,IAAAmD,GAAAnD,EAAA,GACAoD,EAAApD,EAAA,GACAqD,EAAAD,EAAAR,CAEA,KAAAS,EAAA,MAAAF,EAEA,IAAAG,GAAAH,EAAAH,EACAO,EAAA,EAAAL,EAAA,EAAAG,EACAx6F,EAAAy6F,EAAAD,CAEA,OAAAE,KAAA16F,EAAA2P,KAAAwvC,KAAAn/C,IAAA,EAAA06F,GAAAD,MAAA,EAAAD,GAAAD,EAAAC,EAAA,EAAAJ,EAAAC,EAAA,KAAAK,EAAAP,GAEAA,EAAAG,GAAA,EAGA,QAAAL,IAAAjsC,EAAA+rC,GACA,GAAAtB,GAAAzqC,EAAA31C,CACA,IAAAogF,EAAA,MAAAuB,IAAAvB,EAAAsB,EACA,IAAA5C,GAAAnpC,EAAAmpC,IACA,OAAAA,GAAA,KAAA4C,EAAA5C,EAAA,GAAAniD,IAUA,QAAA2lD,IAAA76F,EAAAE,EAAApE,GACA,OAAAkE,EAAA,GAAAlE,EAAA,KAAAoE,EAAA,GAAAF,EAAA,KAAAA,EAAA,GAAAE,EAAA,KAAApE,EAAA,GAAAkE,EAAA,IAGA,QAAA86F,IAAA96F,EAAAE,GACA,MAAAA,GAAA,GAAAF,EAAA,IACAE,EAAA,GAAAF,EAAA,GAGA,QAAA+6F,IAAAC,EAAA17C,GACA,GACA9qC,GACAoC,EACA67C,EAHA4kC,EAAA2D,EAAA75C,KAAA25C,IAAAriF,KAUA,KALA49E,MACAE,GAAA,GAAAxvF,OAAAi0F,EAAAr8F,QACA66F,GAAA,GAAA1D,IACA/L,GAAA,GAAA+L,MAIA,GADArjC,EAAAwmC,GACA5B,KAAA5kC,GAAA4kC,EAAA,GAAA5kC,EAAA77C,GAAAygF,EAAA,KAAA5kC,EAAA77C,GAAAygF,EAAA,GAAA5kC,EAAAj+C,GACA6iF,EAAA,KAAA7iF,GAAA6iF,EAAA,KAAAzgF,IACAkjF,GAAAzC,GACA7iF,EAAA6iF,EAAA,GAAAzgF,EAAAygF,EAAA,IAEAA,EAAA2D,EAAAviF,UACK,KAAAg6C,EAGL,KAFAgnC,IAAAhnC,EAAAvE,KAQA,GAFAwpC,KAEAp4C,EAAA,CACA,GAAAmB,IAAAnB,EAAA,MACA8H,GAAA9H,EAAA,MACAoB,GAAApB,EAAA,MACA6H,GAAA7H,EAAA,KACA43C,IAAAz2C,EAAA2G,EAAA1G,EAAAyG,GACAwwC,GAAAl3C,EAAA2G,EAAA1G,EAAAyG,GAGA9nD,KAAAg3F,SACAh3F,KAAAk3F,SAEAiD,GACAzP,GACAsM,GACAE,GAAA,KAsDA,QAAA0E,MAKA,QAAAA,GAAAj1F,GACA,UAAA+0F,IAAA/0F,EAAAnI,IAAA,SAAA9B,EAAAL,GACA,GAAAqB,IAAA8S,KAAA4rD,MAAAjnD,EAAAzY,EAAAL,EAAAsK,GAAAmxF,OAAAtnF,KAAA4rD,MAAA7kD,EAAA7a,EAAAL,EAAAsK,GAAAmxF,OAGA,OAFAp6F,GAAA0H,MAAA/I,EACAqB,EAAAiJ,KAAAjK,EACAgB,IACKuiD,GAVL,GAAA9qC,GAAAohF,GACAh/E,EAAAi/E,GACAv2C,EAAA,IAuCA,OA5BA27C,GAAAC,SAAA,SAAAl1F,GACA,MAAAi1F,GAAAj1F,GAAAk1F,YAGAD,EAAA/R,MAAA,SAAAljF,GACA,MAAAi1F,GAAAj1F,GAAAkjF,SAGA+R,EAAAE,UAAA,SAAAn1F,GACA,MAAAi1F,GAAAj1F,GAAAm1F,aAGAF,EAAAzmF,EAAA,SAAAwsC,GACA,MAAAtiD,WAAAC,QAAA6V,EAAA,mBAAAwsC,KAAA20C,IAAA30C,GAAAi6C,GAAAzmF,GAGAymF,EAAArkF,EAAA,SAAAoqC,GACA,MAAAtiD,WAAAC,QAAAiY,EAAA,mBAAAoqC,KAAA20C,IAAA30C,GAAAi6C,GAAArkF,GAGAqkF,EAAA37C,OAAA,SAAA0B,GACA,MAAAtiD,WAAAC,QAAA2gD,EAAA,MAAA0B,EAAA,QAAAA,EAAA,OAAAA,EAAA,SAAAA,EAAA,OAAAA,EAAA,QAAAi6C,GAAA37C,OAAA,MAAAA,EAAA,QAAAA,EAAA,MAAAA,EAAA,SAGA27C,EAAA5qF,KAAA,SAAA2wC,GACA,MAAAtiD,WAAAC,QAAA2gD,EAAA,MAAA0B,EAAA,cAAAA,EAAA,IAAAA,EAAA,KAAAi6C,GAAA37C,MAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,QAGA27C,EAGA,QAAAG,IAAA5mF,GACA,kBACA,MAAAA,IAIA,QAAA6mF,IAAAh9F,EAAA0M,EAAA8yD,GACAx+D,KAAAhB,SACAgB,KAAA0L,OACA1L,KAAAw+D,YAGA,QAAAy9B,IAAA9jF,EAAAhD,EAAAoC,GACAvX,KAAAmY,IACAnY,KAAAmV,IACAnV,KAAAuX,IA4CA,QAAAinD,IAAAl4D,GACA,MAAAA,GAAA41F,QAAAC,GAGA,QAAAC,MACAjgG,EAAAymE,MAAA8xB,2BAGA,QAAA2H,MACAlgG,EAAAymE,MAAAn8B,iBACAtqC,EAAAymE,MAAA8xB,2BAIA,QAAA4H,MACA,OAAAngG,EAAAymE,MAAAh5B,OAGA,QAAA2yD,MACA,GAAAhrF,GAAAiH,EAAAzR,EAAA/G,IASA,OARA+G,aAAAy1F,aACAz1F,IAAA6xE,iBAAA7xE,EACAwK,EAAAxK,EAAAuK,MAAAutD,QAAAl8D,MACA6V,EAAAzR,EAAAsK,OAAAwtD,QAAAl8D,QAEA4O,EAAAxK,EAAA01F,YACAjkF,EAAAzR,EAAA21F,gBAEA,MAAAnrF,EAAAiH,IAGA,QAAAmkF,MACA,MAAA38F,MAAAk8F,QAAAC,GAGA,QAAA7jD,MAiBA,QAAAA,GAAAujC,GACAA,EACAvY,GAAA,aAAAs5B,GACAt5B,GAAA,iBAAAkyB,GACAlyB,GAAA,gBAAAu5B,GACAv5B,GAAA,kBAAAmyB,GACAnyB,GAAA,iBAAAoyB,GACApyB,GAAA,iCAAAqyB,GACA5iF,MAAA,+CACAzV,SAAA,SAAAq/F,IA8CA,QAAAv9B,GAAAZ,EAAArmD,GAEA,MADAA,GAAA3H,KAAAJ,IAAA0sF,EAAAtsF,KAAAF,IAAAysF,EAAA5kF,IACAA,IAAAqmD,EAAArmD,EAAAqmD,EAAA,GAAAy9B,IAAA9jF,EAAAqmD,EAAArpD,EAAAqpD,EAAAjnD,GAGA,QAAA4nD,GAAAX,EAAAtO,EAAAC,GACA,GAAAh7C,GAAA+6C,EAAA,GAAAC,EAAA,GAAAqO,EAAArmD,EAAAZ,EAAA24C,EAAA,GAAAC,EAAA,GAAAqO,EAAArmD,CACA,OAAAhD,KAAAqpD,EAAArpD,GAAAoC,IAAAinD,EAAAjnD,EAAAinD,EAAA,GAAAy9B,IAAAz9B,EAAArmD,EAAAhD,EAAAoC,GAGA,QAAAylF,GAAAx+B,EAAAve,GACA,GAAAkK,GAAA35C,KAAAF,IAAA,EAAAkuD,EAAAy+B,QAAAh9C,EAAA,OAAAmB,IAAA5wC,KAAAJ,IAAA,EAAAouD,EAAAy+B,QAAAh9C,EAAA,OAAAoB,GACA+I,EAAA55C,KAAAF,IAAA,EAAAkuD,EAAA0+B,QAAAj9C,EAAA,OAAA8H,IAAAv3C,KAAAJ,IAAA,EAAAouD,EAAA0+B,QAAAj9C,EAAA,OAAA6H,EACA,OAAAqC,IAAAC,EAAAoU,EAAAW,UAAAhV,EAAAC,GAAAoU,EAGA,QAAAvX,GAAAhH,GACA,SAAAA,EAAA,QAAAA,EAAA,WAAAA,EAAA,QAAAA,EAAA,UAGA,QAAA2gC,GAAAv1C,EAAAmzB,EAAA+nB,GACAl7C,EACAi4B,GAAA,wBAAsCuyB,EAAA71F,KAAAX,WAAA6S,UACtCoxD,GAAA,qCAAmDuyB,EAAA71F,KAAAX,WAAA8S,QACnD8uE,MAAA,kBACA,GAAA5tB,GAAArzD,KACAyH,EAAApI,UACAuH,EAAAivF,EAAAxiC,EAAA5rD,GACAV,EAAAk5C,EAAApjC,MAAAw2C,EAAA5rD,GACAhK,EAAA8oF,GAAAt/B,EAAAlgD,GACAwK,EAAAf,KAAAJ,IAAArJ,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,OACApG,EAAA0yD,EAAA6oC,OACAr7F,EAAA,mBAAA29D,KAAA3hD,MAAAw2C,EAAA5rD,GAAA+2D,EACAniE,EAAAmjE,GAAA7+D,EAAA+yE,OAAAj2E,GAAA4gB,OAAA9M,EAAA5Q,EAAAwX,GAAAtX,EAAA6yE,OAAAj2E,GAAA4gB,OAAA9M,EAAA1Q,EAAAsX,GACA,iBAAAuB,GACA,OAAAA,IAAA7Y,MACA,CAAkB,GAAAvE,GAAAD,EAAAqd,GAAAvB,EAAA5G,EAAAjV,EAAA,EAA4Bod,GAAA,GAAAuiF,IAAA9jF,EAAA1a,EAAA,GAAAnB,EAAA,GAAA6b,EAAA1a,EAAA,GAAAnB,EAAA,GAAA6b,GAC9CvR,EAAA0xC,KAAA,KAAA5+B,MAKA,QAAAm8E,GAAAxiC,EAAA5rD,GACA,OAAAb,GAAAvK,EAAA,EAAAc,EAAAg5F,EAAA72F,OAA2CjD,EAAAc,IAAOd,EAClD,IAAAuK,EAAAuvF,EAAA95F,IAAAg3D,SACA,MAAAzsD,EAGA,WAAAu2F,GAAA9pC,EAAA5rD,GAGA,QAAA01F,GAAA9pC,EAAA5rD,GACAzH,KAAAqzD,OACArzD,KAAAyH,OACAzH,KAAAoF,OAAA,EACApF,KAAA6hF,OAAA,EACA7hF,KAAAigD,SAAApjC,MAAAw2C,EAAA5rD,GAgCA,QAAAm1F,KA8BA,QAAAQ,KACAx2F,EAAAy2F,MAAA,KACAz2F,EAAAuL,MA/BA,GAAAqzD,EAAA3oD,MAAA7c,KAAAX,WAAA,CACA,GAAAuH,GAAAivF,EAAA71F,KAAAX,WACAqa,EAAA1Z,KAAAk8F,OACA/jF,EAAA3H,KAAAJ,IAAA0sF,EAAAtsF,KAAAF,IAAAysF,EAAArjF,EAAAvB,EAAA3H,KAAAkwC,IAAA,GAAAvkD,EAAAymE,MAAArvB,QAAAp3C,EAAAymE,MAAAjvB,UAAA,cACAl2C,EAAA47E,GAAAr5E,KAIA,IAAA4G,EAAAy2F,MACAz2F,EAAAyyE,MAAA,QAAA57E,EAAA,IAAAmJ,EAAAyyE,MAAA,QAAA57E,EAAA,KACAmJ,EAAAyyE,MAAA,GAAA3/D,EAAAg6D,OAAA9sE,EAAAyyE,MAAA,GAAA57E,IAEA0G,aAAAyC,EAAAy2F,WAIA,IAAA3jF,EAAAvB,MAAA,MAIAvR,GAAAyyE,OAAA57E,EAAAic,EAAAg6D,OAAAj2E,IACAmkF,GAAA5hF,MACA4G,EAAAsL,QAGAmqF,KACAz1F,EAAAy2F,MAAAh5F,WAAA+4F,EAAAE,GACA12F,EAAA0xC,KAAA,QAAA0kD,EAAA79B,EAAAC,EAAA1lD,EAAAvB,GAAAvR,EAAAyyE,MAAA,GAAAzyE,EAAAyyE,MAAA,IAAAzyE,EAAAq5C,UAQA,QAAAu1C,KAYA,QAAAQ,KACAqG,KACAz1F,EAAA22F,OAAA,EACA32F,EAAA0xC,KAAA,QAAA0kD,EAAA79B,EAAAv4D,EAAAysD,KAAA6oC,OAAAt1F,EAAAyyE,MAAA,GAAAA,GAAAzyE,EAAAysD,MAAAzsD,EAAAyyE,MAAA,IAAAzyE,EAAAq5C,SAGA,QAAAg2C,KACA9kF,EAAAmyD,GAAA,oCACAyxB,GAAA54F,EAAAymE,MAAA54D,KAAApD,EAAA22F,OACAlB,KACAz1F,EAAAuL,MArBA,IAAAyjF,GAAApwB,EAAA3oD,MAAA7c,KAAAX,WAAA,CACA,GAAAuH,GAAAivF,EAAA71F,KAAAX,WACA8R,EAAA6Y,GAAA7tB,EAAAymE,MAAA54D,MAAAs5D,GAAA,iBAAA0yB,GAAA,GAAA1yB,GAAA,eAAA2yB,GAAA,GACAx4F,EAAA47E,GAAAr5E,KAEA40F,IAAAz4F,EAAAymE,MAAA54D,MACAoyF,KACAx1F,EAAAyyE,OAAA57E,EAAAuC,KAAAk8F,OAAAxoB,OAAAj2E,IACAmkF,GAAA5hF,MACA4G,EAAAsL,SAgBA,QAAA2qF,KACA,GAAAr3B,EAAA3oD,MAAA7c,KAAAX,WAAA,CACA,GAAA+vD,GAAApvD,KAAAk8F,OACAhsC,EAAAmpB,GAAAr5E,MACAmwD,EAAAf,EAAAskB,OAAAxjB,GACA6sC,EAAA3tC,EAAAj3C,GAAAhc,EAAAymE,MAAAj5B,SAAA,MACA0lB,EAAA2tC,EAAA79B,EAAAC,EAAAhQ,EAAA2tC,GAAA7sC,EAAAC,GAAAlQ,EAAApjC,MAAA7c,KAAAX,WAEAg9F,MACAh8B,EAAA,EAAAr2C,GAAAhqB,MAAAqrC,aAAAg1B,YAAA9jE,KAAAqkF,EAAAvxB,EAAAa,GACAlmC,GAAAhqB,MAAAzD,KAAA+7C,EAAAkmB,UAAAnP,IAGA,QAAAomC,KACA,GAAAjwB,EAAA3oD,MAAA7c,KAAAX,WAAA,CACA,GAEAhD,GAAAqd,EAAAjc,EAFAmJ,EAAAivF,EAAA71F,KAAAX,WACA6zC,EAAA/2C,EAAAymE,MAAAxvB,eACAj2C,EAAA+1C,EAAA5zC,MAGA,KADA88F,KACA//F,EAAA,EAAeA,EAAAc,IAAOd,EACtBqd,EAAAw5B,EAAA72C,GAAAoB,EAAAijF,GAAA1gF,KAAAkzC,EAAAx5B,EAAAinE,YACAljF,KAAAuC,KAAAk8F,OAAAxoB,OAAAj2E,GAAAic,EAAAinE,YACA/5E,EAAA42F,OACA52F,EAAA62F,SAAA72F,EAAA62F,OAAAhgG,GADAmJ,EAAA42F,OAAA//F,CAGA,IAAAigG,IACAA,EAAAv5F,aAAAu5F,IACA92F,EAAA62F,QAAA,MAAA72F,GAAAuL,MAAA0qF,EAAAhgF,MAAA7c,KAAAX,UAEAlD,GAAAymE,MAAA1vB,QAAA5zC,SAAAnC,IACAugG,EAAAr5F,WAAA,WAA6Cq5F,EAAA,MAAwBC,GACrE/b,GAAA5hF,MACA4G,EAAAsL,UAIA,QAAAwjF,KACA,GAEAr5F,GAAAqd,EAAAjc,EAAAnB,EAFAsK,EAAAivF,EAAA71F,KAAAX,WACA6zC,EAAA/2C,EAAAymE,MAAAxvB,eACAj2C,EAAA+1C,EAAA5zC,MAIA,KAFA+8F,KACAqB,MAAAv5F,aAAAu5F,IACArhG,EAAA,EAAeA,EAAAc,IAAOd,EACtBqd,EAAAw5B,EAAA72C,GAAAoB,EAAAijF,GAAA1gF,KAAAkzC,EAAAx5B,EAAAinE,YACA/5E,EAAA42F,QAAA52F,EAAA42F,OAAA,KAAA9jF,EAAAinE,WAAA/5E,EAAA42F,OAAA,GAAA//F,EACAmJ,EAAA62F,QAAA72F,EAAA62F,OAAA,KAAA/jF,EAAAinE,aAAA/5E,EAAA62F,OAAA,GAAAhgG,EAGA,IADAic,EAAA9S,EAAAysD,KAAA6oC,OACAt1F,EAAA62F,OAAA,CACA,GAAAvtC,GAAAtpD,EAAA42F,OAAA,GAAAzS,EAAAnkF,EAAA42F,OAAA,GACArtC,EAAAvpD,EAAA62F,OAAA,GAAAzS,EAAApkF,EAAA62F,OAAA,GACAG,KAAAztC,EAAA,GAAAD,EAAA,IAAA0tC,KAAAztC,EAAA,GAAAD,EAAA,IAAA0tC,EACAC,KAAA7S,EAAA,GAAAD,EAAA,IAAA8S,KAAA7S,EAAA,GAAAD,EAAA,IAAA8S,CACAnkF,GAAA0lD,EAAA1lD,EAAAlJ,KAAAwvC,KAAA49C,EAAAC,IACApgG,IAAAyyD,EAAA,GAAAC,EAAA,OAAAD,EAAA,GAAAC,EAAA,OACA7zD,IAAAyuF,EAAA,GAAAC,EAAA,OAAAD,EAAA,GAAAC,EAAA,WAEA,KAAApkF,EAAA42F,OACA,MADA//F,GAAAmJ,EAAA42F,OAAA,GAAAlhG,EAAAsK,EAAA42F,OAAA,GAEA52F,EAAA0xC,KAAA,QAAA0kD,EAAA79B,EAAAzlD,EAAAjc,EAAAnB,GAAAsK,EAAAq5C,SAGA,QAAA01C,KACA,GAEAt5F,GAAAqd,EAFA9S,EAAAivF,EAAA71F,KAAAX,WACA6zC,EAAA/2C,EAAAymE,MAAAxvB,eACAj2C,EAAA+1C,EAAA5zC,MAKA,KAHA88F,KACAxG,GAAAzxF,aAAAyxF,GACAA,EAAAvxF,WAAA,WAAyCuxF,EAAA,MAAsB+H,GAC/DthG,EAAA,EAAeA,EAAAc,IAAOd,EACtBqd,EAAAw5B,EAAA72C,GACAuK,EAAA42F,QAAA52F,EAAA42F,OAAA,KAAA9jF,EAAAinE,iBAAA/5E,GAAA42F,OACA52F,EAAA62F,QAAA72F,EAAA62F,OAAA,KAAA/jF,EAAAinE,kBAAA/5E,GAAA62F,MAEA72F,GAAA62F,SAAA72F,EAAA42F,SAAA52F,EAAA42F,OAAA52F,EAAA62F,aAAA72F,GAAA62F,QACA72F,EAAA42F,QAAA52F,EAAAuL,MA3SA,GAWAurF,GACA9H,EAZApwB,EAAA82B,GACAr8C,EAAAs8C,GACAO,EAAA,EACAC,EAAAlnD,IACAuL,GAAA27C,EACA17C,EAAA07C,EACAh1C,EAAA3G,EACA0G,EAAAzG,EACAgf,EAAA,IACA81B,KACAE,EAAAt1B,GAAA,sBAGA48B,EAAA,IACAL,EAAA,GAyTA,OA3SAhlD,GAAAkmB,UAAA,SAAAs/B,EAAAt/B,GACA,GAAAqd,GAAAiiB,EAAAjiB,UAAAiiB,EAAAjiB,YAAAiiB,CACAjiB,GAAAv+E,SAAA,SAAAq/F,IACAmB,IAAAjiB,EACA+E,EAAAkd,EAAAt/B,GAEAqd,EAAA+F,YAAAx+B,KAAA,WACAyyC,EAAA71F,KAAAX,WACA6S,QACAomC,KAAA,wBAAAkmB,KAAA3hD,MAAA7c,KAAAX,WAAAm/D,GACArsD,SAKAmmC,EAAAylD,QAAA,SAAAliB,EAAA1jE,GACAmgC,EAAA0lD,QAAAniB,EAAA,WAGA,MAFA77E,MAAAk8F,OAAA/jF,GACA,mBAAAA,KAAA0E,MAAA7c,KAAAX,WAAA8Y,MAKAmgC,EAAA0lD,QAAA,SAAAniB,EAAA1jE,GACAmgC,EAAAkmB,UAAAqd,EAAA,WACA,GAAA90E,GAAAk5C,EAAApjC,MAAA7c,KAAAX,WACA+vD,EAAApvD,KAAAk8F,OACAhsC,EAAAjJ,EAAAlgD,GACAopD,EAAAf,EAAAskB,OAAAxjB,EAEA,OAAA8sC,GAAA79B,EAAAC,EAAAhQ,EADA,mBAAAj3C,KAAA0E,MAAA7c,KAAAX,WAAA8Y,GACA+3C,EAAAC,GAAAppD,MAIAuxC,EAAA2lD,YAAA,SAAApiB,EAAA1mE,EAAAoC,GACA+gC,EAAAkmB,UAAAqd,EAAA,WACA,MAAAmhB,GAAAh9F,KAAAk8F,OAAA/8B,UACA,mBAAAhqD,KAAA0H,MAAA7c,KAAAX,WAAA8V,EACA,mBAAAoC,KAAAsF,MAAA7c,KAAAX,WAAAkY,GACA0oC,EAAApjC,MAAA7c,KAAAX,eA+DA89F,EAAA5/F,WACA2U,MAAA,WAKA,MAJA,OAAAlS,KAAA6hF,SACA7hF,KAAAoF,MAAA+wF,EAAAn0F,KAAAhC,MAAA,EACAA,KAAAk+F,KAAA,UAEAl+F,MAEAs4C,KAAA,SAAA/4C,EAAAi/D,GAMA,MALAx+D,MAAAq5E,OAAA,UAAA95E,IAAAS,KAAAq5E,MAAA,GAAA7a,EAAAkV,OAAA1zE,KAAAq5E,MAAA,KACAr5E,KAAAw9F,QAAA,UAAAj+F,IAAAS,KAAAw9F,OAAA,GAAAh/B,EAAAkV,OAAA1zE,KAAAw9F,OAAA,KACAx9F,KAAAy9F,QAAA,UAAAl+F,IAAAS,KAAAy9F,OAAA,GAAAj/B,EAAAkV,OAAA1zE,KAAAy9F,OAAA,KACAz9F,KAAAqzD,KAAA6oC,OAAA19B,EACAx+D,KAAAk+F,KAAA,QACAl+F,MAEAmS,IAAA,WAMA,MALA,OAAAnS,KAAA6hF,SACAsU,EAAAjU,OAAAliF,KAAAoF,MAAA,GACApF,KAAAoF,OAAA,EACApF,KAAAk+F,KAAA,QAEAl+F,MAEAk+F,KAAA,SAAAxyF,GACA+sE,GAAA,GAAAujB,IAAA1jD,EAAA5sC,EAAA1L,KAAAqzD,KAAA6oC,QAAA7F,EAAAx5E,MAAAw5E,GAAA3qF,EAAA1L,KAAAqzD,KAAArzD,KAAAyH,SAmJA6wC,EAAAktB,OAAA,SAAA7jB,GACA,MAAAtiD,WAAAC,QAAAkmE,EAAA,mBAAA7jB,KAAAo6C,KAAAp6C,GAAArJ,GAAAktB,GAGAltB,EAAA2H,OAAA,SAAA0B,GACA,MAAAtiD,WAAAC,QAAA2gD,EAAA,mBAAA0B,KAAAo6C,MAAAp6C,EAAA,OAAAA,EAAA,SAAAA,EAAA,OAAAA,EAAA,SAAArJ,GAAA2H,GAGA3H,EAAA6lD,YAAA,SAAAx8C,GACA,MAAAtiD,WAAAC,QAAAw9F,GAAAn7C,EAAA,GAAAo7C,GAAAp7C,EAAA,GAAArJ,IAAAwkD,EAAAC,IAGAzkD,EAAA8lD,gBAAA,SAAAz8C,GACA,MAAAtiD,WAAAC,QAAA8hD,GAAAO,EAAA,MAAAN,GAAAM,EAAA,MAAAoG,GAAApG,EAAA,MAAAmG,GAAAnG,EAAA,MAAArJ,KAAA8I,EAAA2G,IAAA1G,EAAAyG,KAGAxP,EAAA+nB,SAAA,SAAA1e,GACA,MAAAtiD,WAAAC,QAAA+gE,GAAA1e,EAAArJ,GAAA+nB,GAGA/nB,EAAAgrB,GAAA,WACA,GAAA3gE,GAAA0zF,EAAA/yB,GAAAzmD,MAAAw5E,EAAAh3F,UACA,OAAAsD,KAAA0zF,EAAA/9C,EAAA31C,GAGA21C,EAGA,QAAA+lD,IAAAlpF,GACA,kBACA,MAAAA,IAIA,QAAAmpF,IAAAt/F,EAAA0M,EAAAmwE,GACA77E,KAAAhB,SACAgB,KAAA0L,OACA1L,KAAA67E,YAGA,QAAA0iB,MACApiG,EAAAymE,MAAA8xB,2BAGA,QAAA8J,MACAriG,EAAAymE,MAAAn8B,iBACAtqC,EAAAymE,MAAA8xB,2BAqFA,QAAA+J,IAAA/kF,GACA,OAAUhO,KAAAgO,GAIV,QAAAglF,MACA,OAAAviG,EAAAymE,MAAAh5B,OAGA,QAAA+0D,MACA,GAAA1oD,GAAAj2C,KAAA44E,iBAAA54E,IACA,eAAAi2C,EAAA3kC,MAAAutD,QAAAl8D,MAAAszC,EAAA5kC,OAAAwtD,QAAAl8D,QAIA,QAAAi8F,IAAAt4F,GACA,MAAAA,EAAAu4F,SAAA,KAAAv4F,IAAAiZ,YAAA,MACA,OAAAjZ,GAAAu4F,QAGA,QAAAC,IAAA7+C,GACA,MAAAA,GAAA,QAAAA,EAAA,OACAA,EAAA,QAAAA,EAAA,MAGA,QAAA8+C,IAAAz4F,GACA,GAAA0N,GAAA1N,EAAAu4F,OACA,OAAA7qF,KAAAgrF,IAAAvqF,OAAAT,EAAA6nE,WAAA,KAGA,QAAAojB,MACA,MAAAC,IAAA1zE,IAGA,QAAA2zE,MACA,MAAAD,IAAAlzE,IAGA,QAAAozE,MACA,MAAAF,IAAAG,IAGA,QAAAH,IAAAF,GAOA,QAAAI,GAAAv2B,GACA,GAAAy2B,GAAAz2B,EACAvrE,SAAA,UAAA6zF,GACA1Q,UAAA,YACA95E,MAAA83F,GAAA,YAEAa,GAAAtkB,QAAAnyE,OAAA,QACAy+E,KAAA,mBACAA,KAAA,wBACAA,KAAA,SAAAiY,GAAAD,SACAn9C,MAAAm9C,GACAl8C,KAAA,WACA,GAAAnD,GAAA2+C,GAAA5+F,MAAAigD,MACAj2B,IAAAhqB,MACAsnF,KAAA,IAAArnC,EAAA,OACAqnC,KAAA,IAAArnC,EAAA,OACAqnC,KAAA,QAAArnC,EAAA,MAAAA,EAAA,OACAqnC,KAAA,SAAArnC,EAAA,MAAAA,EAAA,SAGA4oB,EAAA4X,UAAA,cACA95E,MAAA83F,GAAA,eACAzjB,QAAAnyE,OAAA,QACAy+E,KAAA,qBACAA,KAAA,SAAAiY,GAAA1jB,WACAyL,KAAA,eACAA,KAAA,mBACAA,KAAA,iBACAA,KAAA,+BAEA,IAAA1lF,GAAAinE,EAAA4X,UAAA,WACA95E,KAAAq4F,EAAAQ,QAAA,SAAA9iG,GAAsC,MAAAA,GAAAgP,MAEtC9J,GAAAq5E,OAAAj9B,SAEAp8C,EAAAo5E,QAAAnyE,OAAA,QACAy+E,KAAA,iBAAA5qF,GAAoC,wBAAAA,EAAAgP,OACpC47E,KAAA,kBAAA5qF,GAAqC,MAAA6iG,IAAA7iG,EAAAgP,QAErCm9D,EACAzlB,KAAAq8C,GACAnY,KAAA,eACAA,KAAA,wBACAv0E,MAAA,+CACAuwD,GAAA,mCAAAo8B,GAyCA,QAAAD,KACA,GAAA52B,GAAA7+C,GAAAhqB,MACA67E,EAAA+iB,GAAA5+F,MAAA67E,SAEAA,IACAhT,EAAA4X,UAAA,cACA1tE,MAAA,gBACAu0E,KAAA,IAAAzL,EAAA,OACAyL,KAAA,IAAAzL,EAAA,OACAyL,KAAA,QAAAzL,EAAA,MAAAA,EAAA,OACAyL,KAAA,SAAAzL,EAAA,MAAAA,EAAA,OAEAhT,EAAA4X,UAAA,WACA1tE,MAAA,gBACAu0E,KAAA,aAAA5qF,GAAkC,YAAAA,EAAAgP,KAAAhP,EAAAgP,KAAApM,OAAA,GAAAu8E,EAAA,MAAA8jB,EAAA,EAAA9jB,EAAA,MAAA8jB,EAAA,IAClCrY,KAAA,aAAA5qF,GAAkC,YAAAA,EAAAgP,KAAA,GAAAmwE,EAAA,MAAA8jB,EAAA,EAAA9jB,EAAA,MAAA8jB,EAAA,IAClCrY,KAAA,iBAAA5qF,GAAsC,YAAAA,EAAAgP,MAAA,MAAAhP,EAAAgP,KAAAmwE,EAAA,MAAAA,EAAA,MAAA8jB,MACtCrY,KAAA,kBAAA5qF,GAAuC,YAAAA,EAAAgP,MAAA,MAAAhP,EAAAgP,KAAAmwE,EAAA,MAAAA,EAAA,MAAA8jB,OAIvC92B,EAAA4X,UAAA,sBACA1tE,MAAA,kBACAu0E,KAAA,UACAA,KAAA,UACAA,KAAA,cACAA,KAAA,eAIA,QAAAsY,GAAAvsC,EAAA5rD,GACA,MAAA4rD,GAAAwrC,QAAAe,SAAA,GAAAC,GAAAxsC,EAAA5rD,GAGA,QAAAo4F,GAAAxsC,EAAA5rD,GACAzH,KAAAqzD,OACArzD,KAAAyH,OACAzH,KAAAgU,MAAAq/C,EAAAwrC,QACA7+F,KAAA6hF,OAAA,EAyBA,QAAA6d,KAqEA,QAAAnC,KACA,GAAAuC,GAAAzmB,GAAAhmB,IACA0sC,GAAAC,GAAAC,IACAzvF,KAAAgwC,IAAAs/C,EAAA,GAAAj4C,EAAA,IAAAr3C,KAAAgwC,IAAAs/C,EAAA,GAAAj4C,EAAA,IAAAo4C,GAAA,EACAD,GAAA,GAEAn4C,EAAAi4C,EACAI,GAAA,EACA1B,KACA2B,IAGA,QAAAA,KACA,GAAAzmF,EAKA,QAHAywC,EAAAtC,EAAA,GAAAu4C,EAAA,GACAh2C,EAAAvC,EAAA,GAAAu4C,EAAA,GAEAzzF,GACA,IAAA0zF,IACA,IAAAC,IACAC,IAAAp2C,EAAA35C,KAAAJ,IAAA0L,EAAA6jD,EAAAnvD,KAAAF,IAAA2H,EAAAuoF,EAAAr2C,IAAA2V,EAAAH,EAAAxV,EAAAs2C,EAAAD,EAAAr2C,GACAu2C,IAAAt2C,EAAA55C,KAAAJ,IAAA8I,EAAAynF,EAAAnwF,KAAAF,IAAAwJ,EAAA67C,EAAAvL,IAAAw2C,EAAAD,EAAAv2C,EAAAwL,EAAAD,EAAAvL,EACA,MAEA,KAAAy2C,IACAN,EAAA,GAAAp2C,EAAA35C,KAAAJ,IAAA0L,EAAA6jD,EAAAnvD,KAAAF,IAAA2H,EAAA0nD,EAAAxV,IAAA2V,EAAAH,EAAAxV,EAAAs2C,EAAAD,GACAD,EAAA,IAAAp2C,EAAA35C,KAAAJ,IAAA0L,EAAA0kF,EAAAhwF,KAAAF,IAAA2H,EAAAuoF,EAAAr2C,IAAA2V,EAAAH,EAAA8gC,EAAAD,EAAAr2C,GACAu2C,EAAA,GAAAt2C,EAAA55C,KAAAJ,IAAA8I,EAAAynF,EAAAnwF,KAAAF,IAAAwJ,EAAA6mF,EAAAv2C,IAAAw2C,EAAAD,EAAAv2C,EAAAwL,EAAAD,GACA+qC,EAAA,IAAAt2C,EAAA55C,KAAAJ,IAAA8I,EAAAy8C,EAAAnlD,KAAAF,IAAAwJ,EAAA67C,EAAAvL,IAAAw2C,EAAAD,EAAA/qC,EAAAD,EAAAvL,EACA,MAEA,KAAA02C,IACAP,IAAAzgC,EAAAtvD,KAAAJ,IAAA0L,EAAAtL,KAAAF,IAAA2H,EAAA0nD,EAAAxV,EAAAo2C,IAAAE,EAAAjwF,KAAAJ,IAAA0L,EAAAtL,KAAAF,IAAA2H,EAAAuoF,EAAAr2C,EAAAo2C,KACAG,IAAAE,EAAApwF,KAAAJ,IAAA8I,EAAA1I,KAAAF,IAAAwJ,EAAA6mF,EAAAv2C,EAAAs2C,IAAA9qC,EAAAplD,KAAAJ,IAAA8I,EAAA1I,KAAAF,IAAAwJ,EAAA67C,EAAAvL,EAAAs2C,KAKAD,EAAA3gC,IACAygC,IAAA,EACA7mF,EAAAimD,IAAA6gC,IAAA9mF,EACAA,EAAAomD,IAAA2gC,IAAA/mF,EACAhO,IAAAq1F,KAAAzB,EAAAhY,KAAA,SAAAiY,GAAA7zF,EAAAq1F,GAAAr1F,MAGAkqD,EAAAgrC,IACAF,IAAA,EACAhnF,EAAAinF,IAAAhrC,IAAAj8C,EACAA,EAAAknF,IAAAhrC,IAAAl8C,EACAhO,IAAAs1F,KAAA1B,EAAAhY,KAAA,SAAAiY,GAAA7zF,EAAAs1F,GAAAt1F,MAGAmwE,EAAA7nE,EAAA6nE,UAEAmkB,IAAAlgC,EAAA+b,EAAA,MAAA4kB,EAAA5kB,EAAA,OACAokB,IAAAW,EAAA/kB,EAAA,MAAAjmB,EAAAimB,EAAA,OAEAA,EAAA,QAAA/b,GACA+b,EAAA,QAAA+kB,GACA/kB,EAAA,QAAA4kB,GACA5kB,EAAA,QAAAjmB,IACA5hD,EAAA6nE,YAAA/b,EAAA8gC,IAAAH,EAAA7qC,IACA6pC,EAAAljG,KAAA82D,GACA6qC,EAAAkB,SAIA,QAAA6B,KAEA,GADA1C,KACApiG,EAAAymE,MAAA1vB,QAAA,CACA,GAAA/2C,EAAAymE,MAAA1vB,QAAA5zC,OAAA,MACAs2F,IAAAzxF,aAAAyxF,GACAA,EAAAvxF,WAAA,WAA6CuxF,EAAA,MAAsB,KACnE/sB,EAAAvF,GAAA,6DAEAyxB,IAAA54F,EAAAymE,MAAA54D,KAAAk2F,GACAl2F,EAAAs5D,GAAA,+DAEAuF,GAAAye,KAAA,wBACAgY,EAAAhY,KAAA,SAAAiY,GAAAD,SACAR,GAAAjjB,KAAA7nE,EAAA6nE,UAAA,KAAA4jB,EAAAljG,KAAA82D,IACA6qC,EAAA/rF,MAGA,QAAA+uF,KACA,OAAA/kG,EAAAymE,MAAA5gD,SACA,QACA+9E,EAAAQ,GAAAG,CACA,MAEA,SACA/zF,IAAAk0F,KACAN,IAAAC,EAAAC,EAAAt2C,EAAAo2C,EAAA5gC,EAAAG,EAAA3V,EAAAo2C,GACAG,IAAA/qC,EAAAC,EAAAxL,EAAAs2C,EAAAC,EAAAC,EAAAx2C,EAAAs2C,GACA/zF,EAAAm0F,GACAX,IAEA,MAEA,SACAxzF,IAAAk0F,IAAAl0F,IAAAm0F,KACAP,EAAA,EAAAC,EAAAC,EAAAt2C,EAAwCo2C,EAAA,IAAA5gC,EAAAG,EAAA3V,GACxCu2C,EAAA,EAAA/qC,EAAAC,EAAAxL,EAAwCs2C,EAAA,IAAAC,EAAAC,EAAAx2C,GACxCz9C,EAAA0zF,GACAf,EAAAhY,KAAA,SAAAiY,GAAA1jB,WACAskB,IAEA,MAEA,gBAEA3B,KAGA,QAAA2C,KACA,OAAAhlG,EAAAymE,MAAA5gD,SACA,QACA+9E,IACAC,EAAAC,EAAAF,GAAA,EACAI,IAEA,MAEA,SACAxzF,IAAAm0F,KACAP,EAAA,EAAAC,EAAAC,EAAmCF,EAAA,IAAA5gC,EAAAG,GACnC4gC,EAAA,EAAA/qC,EAAAC,EAAmC8qC,EAAA,IAAAC,EAAAC,GACnCj0F,EAAAk0F,GACAV,IAEA,MAEA,SACAxzF,IAAA0zF,KACAlkG,EAAAymE,MAAAjgD,QACA49E,IAAAC,EAAAC,EAAAt2C,EAAAo2C,EAAA5gC,EAAAG,EAAA3V,EAAAo2C,GACAG,IAAA/qC,EAAAC,EAAAxL,EAAAs2C,EAAAC,EAAAC,EAAAx2C,EAAAs2C,GACA/zF,EAAAm0F,KAEAP,EAAA,EAAAC,EAAAC,EAAqCF,EAAA,IAAA5gC,EAAAG,GACrC4gC,EAAA,EAAA/qC,EAAAC,EAAqC8qC,EAAA,IAAAC,EAAAC,GACrCj0F,EAAAk0F,IAEAvB,EAAAhY,KAAA,SAAAiY,GAAA7zF,IACAy0F,IAEA,MAEA,gBAEA3B,KA3NA,GAAAriG,EAAAymE,MAAA1vB,SAAgC,GAAA/2C,EAAAymE,MAAAxvB,eAAA9zC,OAAAnD,EAAAymE,MAAA1vB,QAAA5zC,OAAA,MAAAk/F,UAChC,IAAA5I,EAAA,MACA,IAAApwB,EAAA3oD,MAAA7c,KAAAX,WAAA,CAEA,GAQAsgE,GAAAG,EACA6gC,EAAAC,EACAJ,EAAAC,EACA9qC,EAAAC,EACAzL,EACAC,EACA81C,EAEAF,EACAC,EAjBA5sC,EAAArzD,KACA0L,EAAAvP,EAAAymE,MAAA5jE,OAAAg5E,SAAAtsE,KACAiB,EAAA,eAAAxQ,EAAAymE,MAAAhgD,QAAAlX,EAAA,UAAAA,GAAA40F,GAAAnkG,EAAAymE,MAAAjgD,OAAAm+E,GAAAD,GACAN,EAAAvB,IAAAhzE,GAAA,KAAAo1E,GAAA11F,GACAg1F,EAAA1B,IAAAxzE,GAAA,KAAA61E,GAAA31F,GACAsI,EAAA4qF,GAAAvrC,GACApT,EAAAjsC,EAAAisC,OACA47B,EAAA7nE,EAAA6nE,UACA//D,EAAAmkC,EAAA,MACA/mC,EAAA+mC,EAAA,MACAhoC,EAAAgoC,EAAA,MACAnmC,EAAAmmC,EAAA,MAIA8/C,EAAAQ,GAAAG,GAAAvkG,EAAAymE,MAAAj5B,SAGAy2D,EAAA/mB,GAAAhmB,GACAxL,EAAAu4C,EACAlC,EAAA0B,EAAAvsC,EAAAh0D,WAAAy2F,aAEA,aAAApqF,EACAsI,EAAA6nE,cACAlc,EAAAq/B,IAAAhzE,GAAAlQ,EAAAskF,EAAA,GAAAO,EAAA3B,IAAAxzE,GAAAtS,EAAAknF,EAAA,KACAI,EAAAxB,IAAAhzE,GAAA/T,EAAA0nD,EAAAhK,EAAAqpC,IAAAxzE,GAAA1R,EAAA6mF,KAGAhhC,EAAAkc,EAAA,MACA8kB,EAAA9kB,EAAA,MACA2kB,EAAA3kB,EAAA,MACAlmB,EAAAkmB,EAAA,OAGA/b,EAAAH,EACAihC,EAAAD,EACAF,EAAAD,EACA5qC,EAAAD,CAEA,IAAAkT,GAAA7+C,GAAAqpC,GACAi0B,KAAA,yBAEAgY,EAAAz2B,EAAA4X,UAAA,YACA6G,KAAA,SAAAiY,GAAA7zF,GAEA,IAAAvP,EAAAymE,MAAA1vB,QACA21B,EACAvF,GAAA,kBAAAi6B,GAAA,GACAj6B,GAAA,mCAAA29B,GAAA,OACK,CACL,GAAAj3F,GAAAggB,GAAA7tB,EAAAymE,MAAA54D,MACAs5D,GAAA,gBAAA49B,GAAA,GACA59B,GAAA,cAAA69B,GAAA,GACA79B,GAAA,kBAAAi6B,GAAA,GACAj6B,GAAA,gBAAA29B,GAAA,EAEArM,IAAAz4F,EAAAymE,MAAA54D,MAGAu0F,KACA3c,GAAAvuB,GACAosC,EAAAljG,KAAA82D,GACA6qC,EAAAhsF,SA6JA,QAAAi/E,KACA,GAAAn9E,GAAAhU,KAAA6+F,UAAiChjB,UAAA,KAGjC,OAFA7nE,GAAAisC,SAAApjC,MAAA7c,KAAAX,WACA2U,EAAAgrF,MACAhrF,EA9XA,GAIA4hF,GAJA31C,EAAA0+C,GACAn5B,EAAAk5B,GACArI,EAAAt1B,GAAAq+B,EAAA,uBACAO,EAAA,CA+YA,OA7VAP,GAAAe,KAAA,SAAAt3B,EAAAgT,GACAhT,EAAAgT,UACAhT,EACAvF,GAAA,yBAAyCs8B,EAAA5/F,KAAAX,WAAAy2F,cAAA5jF,UACzCoxD,GAAA,uCAAuDs8B,EAAA5/F,KAAAX,WAAA8S,QACvD8uE,MAAA,mBAQA,QAAAA,GAAAvnE,GACA1F,EAAA6nE,UAAA,IAAAniE,GAAAolF,GAAAwC,GAAA,KAAAjlG,EAAAqd,GACA+lF,EAAAljG,KAAA82D,GACA6qC,EAAAkB,QAVA,GAAA/rC,GAAArzD,KACAgU,EAAAq/C,EAAAwrC,QACAX,EAAA0B,EAAAvsC,EAAAh0D,WACAkiG,EAAAvtF,EAAA6nE,UACAylB,EAAAtC,EAAAxyF,MAAA,mBAAAqvE,KAAAh/D,MAAA7c,KAAAX,WAAAw8E,EAAA7nE,EAAAisC,QACA5jD,EAAAsgE,GAAA4kC,EAAAD,EAQA,OAAAC,IAAAD,EAAArgB,IAAA,KAGApY,EACAzlB,KAAA,WACA,GAAAiQ,GAAArzD,KACAyH,EAAApI,UACA2U,EAAAq/C,EAAAwrC,QACAyC,EAAAtC,EAAAxyF,MAAA,mBAAAqvE,KAAAh/D,MAAAw2C,EAAA5rD,GAAAo0E,EAAA7nE,EAAAisC,QACAi+C,EAAA0B,EAAAvsC,EAAA5rD,GAAAquF,aAEAlU,IAAAvuB,GACAr/C,EAAA6nE,UAAA,MAAAylB,GAAAxC,GAAAwC,GAAA,KAAAA,EACA7B,EAAAljG,KAAA82D,GACA6qC,EAAAhsF,QAAAktF,QAAAjtF,SA8CA0tF,EAAAtiG,WACAu4F,YAAA,WAEA,MADA,OAAA91F,KAAA6hF,SAAA7hF,KAAAgU,MAAA4rF,QAAA5/F,UAAAwhG,UAAA,GACAxhG,MAEAkS,MAAA,WAEA,MADAlS,MAAAwhG,WAAAxhG,KAAAwhG,UAAA,EAAAxhG,KAAAk+F,KAAA,UACAl+F,MAEAo/F,MAAA,WAEA,MADAp/F,MAAAk+F,KAAA,SACAl+F,MAEAmS,IAAA,WAEA,MADA,OAAAnS,KAAA6hF,eAAA7hF,MAAAgU,MAAA4rF,QAAA5/F,KAAAk+F,KAAA,QACAl+F,MAEAk+F,KAAA,SAAAxyF,GACA+sE,GAAA,GAAA6lB,IAAAc,EAAA1zF,EAAAszF,EAAAvqF,OAAAzU,KAAAgU,MAAA6nE,YAAAwa,EAAAx5E,MAAAw5E,GAAA3qF,EAAA1L,KAAAqzD,KAAArzD,KAAAyH,SA2OA23F,EAAAn/C,OAAA,SAAA0B,GACA,MAAAtiD,WAAAC,QAAA2gD,EAAA,mBAAA0B,KAAA08C,MAAA18C,EAAA,OAAAA,EAAA,SAAAA,EAAA,OAAAA,EAAA,SAAAy9C,GAAAn/C,GAGAm/C,EAAA55B,OAAA,SAAA7jB,GACA,MAAAtiD,WAAAC,QAAAkmE,EAAA,mBAAA7jB,KAAA08C,KAAA18C,GAAAy9C,GAAA55B,GAGA45B,EAAAO,WAAA,SAAAh+C,GACA,MAAAtiD,WAAAC,QAAAqgG,GAAAh+C,EAAAy9C,GAAAO,GAGAP,EAAA97B,GAAA,WACA,GAAA3gE,GAAA0zF,EAAA/yB,GAAAzmD,MAAAw5E,EAAAh3F,UACA,OAAAsD,KAAA0zF,EAAA+I,EAAAz8F,GAGAy8F,EAUA,QAAAqC,IAAAniD,GACA,gBAAA3+C,EAAAE,GACA,MAAAy+C,GACA3+C,EAAA1B,OAAA0D,MAAAhC,EAAA3B,OAAA2D,MACA9B,EAAA5B,OAAA0D,MAAA9B,EAAA7B,OAAA2D,QAKA,QAAA++F,MAMA,QAAAA,GAAAz+C,GACA,GAOA9qC,GACAhD,EACAisC,EACA+I,EACA9tD,EACAmV,EAZArU,EAAA8lD,EAAA3jD,OACAqiG,KACAC,EAAAp5D,EAAArrC,GACA0kG,KACAC,KACApoB,EAAAooB,EAAApoB,OAAA,GAAAhyE,OAAAvK,GACAy8E,EAAA,GAAAlyE,OAAAvK,IASkB,KAAlBgb,EAAA,EAAA9b,GAAA,IAAkBA,EAAAc,GAAA,CACE,IAApBgY,EAAA,EAAA3D,GAAA,IAAoBA,EAAArU,GACpBgY,GAAA8tC,EAAA5mD,GAAAmV,EAEAmwF,GAAA3/F,KAAAmT,GACA0sF,EAAA7/F,KAAAwmC,EAAArrC,IACAgb,GAAAhD,EAuBkB,IAnBlB4sF,GAAAH,EAAA9/C,KAAA,SAAAnhD,EAAAE,GACA,MAAAkhG,GAAAJ,EAAAhhG,GAAAghG,EAAA9gG,MAIAmhG,GAAAH,EAAAjjG,QAAA,SAAAlC,EAAAL,GACAK,EAAAolD,KAAA,SAAAnhD,EAAAE,GACA,MAAAmhG,GAAA/+C,EAAA5mD,GAAAsE,GAAAsiD,EAAA5mD,GAAAwE,QAOAsX,EAAA8pF,GAAA,EAAAC,GAAAl1C,EAAA7vD,GAAAgb,EACAgyC,EAAAhyC,EAAA60C,EAAAk1C,GAAA/kG,EAIAgY,EAAA,EAAA9Y,GAAA,IAAkBA,EAAAc,GAAA,CACG,IAArBikD,EAAAjsC,EAAA3D,GAAA,IAAqBA,EAAArU,GAAA,CACrB,GAAAglG,GAAAP,EAAAvlG,GACA+lG,EAAAP,EAAAM,GAAA3wF,GACAL,EAAA8xC,EAAAk/C,GAAAC,GACArzC,EAAA55C,EACA65C,EAAA75C,GAAAhE,EAAAgH,CACAyhE,GAAAwoB,EAAAjlG,EAAAglG,IACA/8F,MAAA+8F,EACAE,SAAAD,EACAx1C,WAAAmC,EACAjC,SAAAkC,EACArsD,MAAAwO,GAGAuoE,EAAAyoB,IACA/8F,MAAA+8F,EACAv1C,WAAAxL,EACA0L,SAAA33C,EACAxS,MAAAg/F,EAAAQ,IAEAhtF,GAAAg1C,EAIW,IAAX9tD,GAAA,IAAWA,EAAAc,GACK,IAAhBqU,EAAAnV,EAAA,IAAgBmV,EAAArU,GAAA,CAChB,GAAA8B,GAAA26E,EAAApoE,EAAArU,EAAAd,GACA2C,EAAA46E,EAAAv9E,EAAAc,EAAAqU,IACAvS,EAAA0D,OAAA3D,EAAA2D,QACAm/F,EAAA9/F,KAAA/C,EAAA0D,MAAA3D,EAAA2D,OACiB1D,OAAAD,SAAAC,IACAA,SAAAD,WAKjB,MAAAsjG,GAAAR,EAAAhgD,KAAAwgD,GAAAR,EAvFA,GAAA90C,GAAA,EACA+0C,EAAA,KACAC,EAAA,KACAM,EAAA,IAuGA,OAhBAZ,GAAA10C,SAAA,SAAArL,GACA,MAAAtiD,WAAAC,QAAA0tD,EAAAi1C,GAAA,EAAAtgD,GAAA+/C,GAAA10C,GAGA00C,EAAAK,WAAA,SAAApgD,GACA,MAAAtiD,WAAAC,QAAAyiG,EAAApgD,EAAA+/C,GAAAK,GAGAL,EAAAM,cAAA,SAAArgD,GACA,MAAAtiD,WAAAC,QAAA0iG,EAAArgD,EAAA+/C,GAAAM,GAGAN,EAAAY,WAAA,SAAA3gD,GACA,MAAAtiD,WAAAC,QAAA,MAAAqiD,EAAA2gD,EAAA,MAAAA,EAAAb,GAAA9/C,QAAA+/C,GAAAY,KAAA3gD,GAGA+/C,EAKA,QAAAa,IAAAptF,GACA,kBACA,MAAAA,IAIA,QAAAqtF,IAAA9lG,GACA,MAAAA,GAAAuC,OAGA,QAAAwjG,IAAA/lG,GACA,MAAAA,GAAAsC,OAGA,QAAA0jG,IAAAhmG,GACA,MAAAA,GAAAmtD,OAGA,QAAA84C,IAAAjmG,GACA,MAAAA,GAAAkwD,WAGA,QAAAg2C,IAAAlmG,GACA,MAAAA,GAAAowD,SAGA,QAAA+1C,MAQA,QAAAA,KACA,GAAAv4F,GACAw4F,EAAAC,GAAAxmG,KAAA8C,WACA3B,EAAAuB,EAAA4d,MAAA7c,KAAA8iG,GACAppF,EAAA1a,EAAA6d,MAAA7c,KAAA8iG,GACAE,GAAAn5C,EAAAhtC,MAAA7c,MAAA8iG,EAAA,GAAAplG,EAAAolG,IACAG,EAAAr2C,EAAA/vC,MAAA7c,KAAA8iG,GAAAI,GACAC,EAAAr2C,EAAAjwC,MAAA7c,KAAA8iG,GAAAI,GACAE,EAAAJ,EAAAz9C,GAAA09C,GACAI,EAAAL,EAAAt9C,GAAAu9C,GACAK,GAAAz5C,EAAAhtC,MAAA7c,MAAA8iG,EAAA,GAAAppF,EAAAopF,IACAS,EAAA32C,EAAA/vC,MAAA7c,KAAA8iG,GAAAI,GACAM,EAAA12C,EAAAjwC,MAAA7c,KAAA8iG,GAAAI,EAaA,IAXAvrF,MAAArN,EAAAk+C,MAEA7wC,EAAAw3C,OAAAi0C,EAAAC,GACA1rF,EAAAk3C,IAAA,IAAAm0C,EAAAC,EAAAE,GACAF,IAAAM,GAAAJ,IAAAK,IACA7rF,EAAA8rF,iBAAA,IAAAH,EAAA/9C,GAAAg+C,GAAAD,EAAA59C,GAAA69C,IACA5rF,EAAAk3C,IAAA,IAAAy0C,EAAAC,EAAAC,IAEA7rF,EAAA8rF,iBAAA,IAAAL,EAAAC,GACA1rF,EAAAi5C,YAEAtmD,EAAA,MAAAqN,GAAA,KAAArN,EAAA,SAhCA,GAAArL,GAAAujG,GACAxjG,EAAAyjG,GACA54C,EAAA64C,GACA91C,EAAA+1C,GACA71C,EAAA81C,GACAjrF,EAAA,IAsDA,OAxBAkrF,GAAAh5C,OAAA,SAAAlI,GACA,MAAAtiD,WAAAC,QAAAuqD,EAAA,mBAAAlI,KAAA4gD,IAAA5gD,GAAAkhD,GAAAh5C,GAGAg5C,EAAAj2C,WAAA,SAAAjL,GACA,MAAAtiD,WAAAC,QAAAstD,EAAA,mBAAAjL,KAAA4gD,IAAA5gD,GAAAkhD,GAAAj2C,GAGAi2C,EAAA/1C,SAAA,SAAAnL,GACA,MAAAtiD,WAAAC,QAAAwtD,EAAA,mBAAAnL,KAAA4gD,IAAA5gD,GAAAkhD,GAAA/1C,GAGA+1C,EAAA5jG,OAAA,SAAA0iD,GACA,MAAAtiD,WAAAC,QAAAL,EAAA0iD,EAAAkhD,GAAA5jG,GAGA4jG,EAAA7jG,OAAA,SAAA2iD,GACA,MAAAtiD,WAAAC,QAAAN,EAAA2iD,EAAAkhD,GAAA7jG,GAGA6jG,EAAAlrF,QAAA,SAAAgqC,GACA,MAAAtiD,WAAAC,QAAAqY,EAAA,MAAAgqC,EAAA,KAAAA,EAAAkhD,GAAAlrF,GAGAkrF,EAUA,QAAAa,MACA,UAAAC,IAGA,QAAAA,MACA3jG,KAAA4jG,QAsBA,QAAAC,IAAAH,EAAA/iG,EAAAE,GACA,GAAAsU,GAAAuuF,EAAAhmG,EAAAiD,EAAAE,EACAijG,EAAA3uF,EAAAxU,EACAojG,EAAA5uF,EAAA2uF,CACAJ,GAAAhqF,EAAA/Y,EAAAojG,GAAAljG,EAAAijG,GA0BA,QAAArzC,IAAAt7C,GACA,MAAAA,GAAA,IAAAA,GAAA,EAAA6uF,GAAAxzF,KAAAigD,KAAAt7C,GAGA,QAAA8uF,IAAA9uF,GACA,MAAAA,GAAA,EAAA+uF,GAAA/uF,GAAA,GAAA+uF,GAAA1zF,KAAAy8C,KAAA93C,GAGA,QAAAgvF,IAAAhvF,GACA,OAAAA,EAAAivF,GAAAjvF,EAAA,IAAAA,EAGA,QAAAkvF,OAEA,QAAAC,IAAAC,EAAAC,GACAD,GAAAE,GAAAjnG,eAAA+mG,EAAA74F,OACA+4F,GAAAF,EAAA74F,MAAA64F,EAAAC,GA8CA,QAAAE,IAAAC,EAAAH,EAAAI,GACA,GAAAC,GAAAxoG,GAAA,EAAAc,EAAAwnG,EAAArlG,OAAAslG,CAEA,KADAJ,EAAArzC,cACA90D,EAAAc,GAAA0nG,EAAAF,EAAAtoG,GAAAmoG,EAAA38C,MAAAg9C,EAAA,GAAAA,EAAA,GAAAA,EAAA,GACAL,GAAApzC,UAGA,QAAA0zC,IAAAH,EAAAH,GACA,GAAAnoG,IAAA,EAAAc,EAAAwnG,EAAArlG,MAEA,KADAklG,EAAAO,iBACA1oG,EAAAc,GAAAunG,GAAAC,EAAAtoG,GAAAmoG,EAAA,EACAA,GAAAQ,aAGA,QAAAC,IAAA5nG,EAAAmnG,GACAnnG,GAAA6nG,GAAA1nG,eAAAH,EAAAqO,MACAw5F,GAAA7nG,EAAAqO,MAAArO,EAAAmnG,GAEAF,GAAAjnG,EAAAmnG,GA+BA,QAAAW,MACAC,GAAAv9C,MAAAw9C,GAGA,QAAAC,MACAC,GAAAC,GAAAC,IAGA,QAAAJ,IAAAvgD,EAAA4gD,GACAN,GAAAv9C,MAAA09C,GACAC,GAAA1gD,EAAA2gD,GAAAC,EACA5gD,GAAA6gD,GAAAD,GAAAC,GACAC,GAAA9gD,EAAA+gD,GAAAC,GAAAJ,IAAA,EAAAK,IAAAC,GAAA5B,GAAAsB,GAGA,QAAAH,IAAAzgD,EAAA4gD,GACA5gD,GAAA6gD,GAAAD,GAAAC,GACAD,IAAA,EAAAK,EAKA,IAAAE,GAAAnhD,EAAA8gD,GACAM,EAAAD,GAAA,OACAE,EAAAD,EAAAD,EACAG,EAAAN,GAAAJ,GACAW,EAAAjC,GAAAsB,GACAvtF,EAAA6tF,GAAAK,EACA1sF,EAAAksF,GAAAO,EAAAjuF,EAAA2tF,GAAAK,GACAh1F,EAAAgH,EAAA+tF,EAAA9B,GAAA+B,EACAG,IAAAhwE,IAAAo6B,GAAAv/C,EAAAwI,IAGAisF,GAAA9gD,EAAA+gD,GAAAO,EAAAJ,GAAAK,EAGA,QAAAE,IAAAlpG,GAGA,MAFAmpG,IAAA5C,QACAqB,GAAA5nG,EAAA+nG,IACA,EAAAoB,GAGA,QAAAC,IAAAC,GACA,OAAAh2C,GAAAg2C,EAAA,GAAAA,EAAA,IAAAzC,GAAAyC,EAAA,KAGA,QAAAA,IAAAD,GACA,GAAA3hD,GAAA2hD,EAAA,GAAAf,EAAAe,EAAA,GAAAL,EAAAN,GAAAJ,EACA,QAAAU,EAAAN,GAAAhhD,GAAAshD,EAAAhC,GAAAt/C,GAAAs/C,GAAAsB,IAGA,QAAAiB,IAAAhmG,EAAAE,GACA,MAAAF,GAAA,GAAAE,EAAA,GAAAF,EAAA,GAAAE,EAAA,GAAAF,EAAA,GAAAE,EAAA,GAGA,QAAA+lG,IAAAjmG,EAAAE,GACA,OAAAF,EAAA,GAAAE,EAAA,GAAAF,EAAA,GAAAE,EAAA,GAAAF,EAAA,GAAAE,EAAA,GAAAF,EAAA,GAAAE,EAAA,GAAAF,EAAA,GAAAE,EAAA,GAAAF,EAAA,GAAAE,EAAA,IAIA,QAAAgmG,IAAAlmG,EAAAE,GACAF,EAAA,IAAAE,EAAA,GAAAF,EAAA,IAAAE,EAAA,GAAAF,EAAA,IAAAE,EAAA,GAGA,QAAAimG,IAAAC,EAAA5uF,GACA,OAAA4uF,EAAA,GAAA5uF,EAAA4uF,EAAA,GAAA5uF,EAAA4uF,EAAA,GAAA5uF,GAIA,QAAA6uF,IAAAtqG,GACA,GAAAJ,GAAA2qG,GAAAvqG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GACAA,GAAA,IAAAJ,EAAAI,EAAA,IAAAJ,EAAAI,EAAA,IAAAJ,EAqCA,QAAA4qG,IAAApiD,EAAA4gD,GACAyB,GAAAnlG,KAAAolG,IAAAC,GAAAviD,EAAAwiD,GAAAxiD,IACA4gD,EAAA6B,QAAA7B,GACAA,EAAA8B,QAAA9B,GAGA,QAAA+B,IAAA3iD,EAAA4gD,GACA,GAAAjoG,GAAAipG,IAAA5hD,EAAA6gD,GAAAD,EAAAC,IACA,IAAAz1C,GAAA,CACA,GAAA9L,GAAAwiD,GAAA12C,GAAAzyD,GACAiqG,GAAAtjD,EAAA,IAAAA,EAAA,MACAujD,EAAAf,GAAAc,EAAAtjD,EACA4iD,IAAAW,GACAA,EAAAlB,GAAAkB,EACA,IAGAC,GAHAC,EAAA/iD,EAAAgjD,GACAvyC,EAAAsyC,EAAA,OACAE,EAAAJ,EAAA,GAAAK,GAAAzyC,EAEA0yC,EAAAznD,GAAAqnD,GAAA,GACAI,IAAA1yC,EAAAuyC,GAAAC,KAAAxyC,EAAAzQ,IACA8iD,EAAAD,EAAA,GAAAK,IACAR,QAAAI,IACKG,KAAA,aAAAE,GAAA1yC,EAAAuyC,GAAAC,KAAAxyC,EAAAzQ,IACL8iD,GAAAD,EAAA,GAAAK,IACAT,QAAAK,IAEAlC,EAAA6B,QAAA7B,GACAA,EAAA8B,QAAA9B,KAEAuC,EACAnjD,EAAAgjD,GACAp1C,GAAA20C,GAAAviD,GAAA4N,GAAA20C,GAAAC,SAAAxiD,GAEA4N,GAAA5N,EAAAwiD,IAAA50C,GAAA20C,GAAAC,MAAAD,GAAAviD,GAGAwiD,IAAAD,IACAviD,EAAAuiD,QAAAviD,GACAA,EAAAwiD,QAAAxiD,IAEAA,EAAAgjD,GACAp1C,GAAA20C,GAAAviD,GAAA4N,GAAA20C,GAAAC,SAAAxiD,GAEA4N,GAAA5N,EAAAwiD,IAAA50C,GAAA20C,GAAAC,MAAAD,GAAAviD,OAKAoiD,IAAApiD,EAAA4gD,EAEAx1C,IAAAzyD,EAAAqqG,GAAAhjD,EAGA,QAAAojD,MACAC,GAAAtgD,MAAA4/C,GAGA,QAAAW,MACAhB,GAAA,GAAAC,GAAAD,GAAA,GAAAE,GACAa,GAAAtgD,MAAAq/C,GACAh3C,GAAA,KAGA,QAAAm4C,IAAAvjD,EAAA4gD,GACA,GAAAx1C,GAAA,CACA,GAAA23C,GAAA/iD,EAAAgjD,EACAQ,IAAAhyE,IAAAkqB,GAAAqnD,GAAA,IAAAA,KAAA,YAAAA,OAEAU,IAAAzjD,EAAA0jD,GAAA9C,CAEAN,IAAAv9C,MAAA/C,EAAA4gD,GACA+B,GAAA3iD,EAAA4gD,GAGA,QAAA+C,MACArD,GAAAj0C,YAGA,QAAAu3C,MACAL,GAAAE,GAAAC,IACApD,GAAAh0C,UACA5Q,GAAA8nD,IAAAK,KAAAtB,KAAAC,GAAA,MACAF,GAAA,GAAAC,GAAAD,GAAA,GAAAE,GACAp3C,GAAA,KAMA,QAAAwC,IAAAkzC,EAAA0B,GACA,OAAAA,GAAA1B,GAAA,EAAA0B,EAAA,IAAAA,EAGA,QAAAsB,IAAAjoG,EAAAE,GACA,MAAAF,GAAA,GAAAE,EAAA,GAGA,QAAAgoG,IAAArgE,EAAArzB,GACA,MAAAqzB,GAAA,IAAAA,EAAA,GAAAA,EAAA,IAAArzB,MAAAqzB,EAAA,GAAArzB,EAAAqzB,EAAA,IAAAA,EAAA,GAAArzB,EAGA,QAAA2zF,IAAAC,GACA,GAAA1sG,GAAAc,EAAAwD,EAAAE,EAAAwhD,EAAA2mD,EAAAnB,CAOA,IALAL,GAAAF,KAAAD,GAAAE,GAAA1xD,KACAsxD,MACAlC,GAAA8D,EAAAZ,IAGAhrG,EAAAgqG,GAAA7nG,OAAA,CAIA,IAHA6nG,GAAArlD,KAAA8mD,IAGAvsG,EAAA,EAAAsE,EAAAwmG,GAAA,GAAA9kD,GAAA1hD,GAA4CtE,EAAAc,IAAOd,EACnDwE,EAAAsmG,GAAA9qG,GACAwsG,GAAAloG,EAAAE,EAAA,KAAAgoG,GAAAloG,EAAAE,EAAA,KACA6xD,GAAA/xD,EAAA,GAAAE,EAAA,IAAA6xD,GAAA/xD,EAAA,GAAAA,EAAA,MAAAA,EAAA,GAAAE,EAAA,IACA6xD,GAAA7xD,EAAA,GAAAF,EAAA,IAAA+xD,GAAA/xD,EAAA,GAAAA,EAAA,MAAAA,EAAA,GAAAE,EAAA,KAEAwhD,EAAArgD,KAAArB,EAAAE,EAMA,KAAAmoG,GAAAnzD,IAAA14C,EAAAklD,EAAA/iD,OAAA,EAAAjD,EAAA,EAAAsE,EAAA0hD,EAAAllD,GAA2Ed,GAAAc,EAAQwD,EAAAE,IAAAxE,EACnFwE,EAAAwhD,EAAAhmD,IACAwrG,EAAAn1C,GAAA/xD,EAAA,GAAAE,EAAA,KAAAmoG,MAAAnB,EAAAR,GAAAxmG,EAAA,GAAAymG,GAAA3mG,EAAA,IAMA,MAFAwmG,IAAAC,GAAA,KAEAC,KAAAxxD,KAAA0xD,KAAA1xD,MACAuJ,sBACAioD,GAAAE,KAAAD,GAAAE,KAqCA,QAAAyB,IAAAnkD,EAAA4gD,GACA5gD,GAAA6gD,GAAAD,GAAAC,EACA,IAAAS,GAAAN,GAAAJ,EACAwD,IAAA9C,EAAAN,GAAAhhD,GAAAshD,EAAAhC,GAAAt/C,GAAAs/C,GAAAsB,IAGA,QAAAwD,IAAA/zF,EAAAoC,EAAAO,KACAqxF,GACAC,KAAAj0F,EAAAi0F,IAAAD,GACAE,KAAA9xF,EAAA8xF,IAAAF,GACAG,KAAAxxF,EAAAwxF,IAAAH,GAGA,QAAAI,MACAC,GAAA3hD,MAAA4hD,GAGA,QAAAA,IAAA3kD,EAAA4gD,GACA5gD,GAAA6gD,GAAAD,GAAAC,EACA,IAAAS,GAAAN,GAAAJ,EACAtkD,IAAAglD,EAAAN,GAAAhhD,GACAiD,GAAAq+C,EAAAhC,GAAAt/C,GACA4kD,GAAAtF,GAAAsB,GACA8D,GAAA3hD,MAAA8hD,GACAT,GAAA9nD,GAAA2G,GAAA2hD,IAGA,QAAAC,IAAA7kD,EAAA4gD,GACA5gD,GAAA6gD,GAAAD,GAAAC,EACA,IAAAS,GAAAN,GAAAJ,GACAvwF,EAAAixF,EAAAN,GAAAhhD,GACAvtC,EAAA6uF,EAAAhC,GAAAt/C,GACAhtC,EAAAssF,GAAAsB,GACAn0F,EAAAm/C,GAAAu2C,IAAA11F,EAAAw2C,GAAAjwC,EAAA4xF,GAAAnyF,GAAAhG,KAAAm4F,GAAAv0F,EAAAisC,GAAAtpC,GAAAvG,KAAA6vC,GAAA7pC,EAAAwwC,GAAA5yC,GAAA5D,GAAA6vC,GAAAjsC,EAAA4yC,GAAAxwC,EAAAmyF,GAAA5xF,EACA8xF,KAAAr4F,EACAs4F,IAAAt4F,GAAA6vC,OAAAjsC,IACA20F,IAAAv4F,GAAAw2C,OAAAxwC,IACAwyF,IAAAx4F,GAAAm4F,OAAA5xF,IACAoxF,GAAA9nD,GAAA2G,GAAA2hD,IAGA,QAAAM,MACAR,GAAA3hD,MAAAohD,GAKA,QAAAgB,MACAT,GAAA3hD,MAAAqiD,GAGA,QAAAC,MACAC,GAAAC,GAAAC,IACAd,GAAA3hD,MAAAohD,GAGA,QAAAiB,IAAAplD,EAAA4gD,GACA2E,GAAAvlD,EAAAwlD,GAAA5E,EACA5gD,GAAA6gD,GAAAD,GAAAC,GACA6D,GAAA3hD,MAAAuiD,EACA,IAAAhE,GAAAN,GAAAJ,EACAtkD,IAAAglD,EAAAN,GAAAhhD,GACAiD,GAAAq+C,EAAAhC,GAAAt/C,GACA4kD,GAAAtF,GAAAsB,GACAwD,GAAA9nD,GAAA2G,GAAA2hD,IAGA,QAAAU,IAAAtlD,EAAA4gD,GACA5gD,GAAA6gD,GAAAD,GAAAC,EACA,IAAAS,GAAAN,GAAAJ,GACAvwF,EAAAixF,EAAAN,GAAAhhD,GACAvtC,EAAA6uF,EAAAhC,GAAAt/C,GACAhtC,EAAAssF,GAAAsB,GACA/2C,EAAA5G,GAAAjwC,EAAA4xF,GAAAnyF,EACAq3C,EAAA86C,GAAAv0F,EAAAisC,GAAAtpC,EACAyyF,EAAAnpD,GAAA7pC,EAAAwwC,GAAA5yC,EACA3Y,EAAAyqG,GAAAt4C,IAAAC,IAAA27C,KACA5wF,EAAAynC,GAAAjsC,EAAA4yC,GAAAxwC,EAAAmyF,GAAA5xF,EACA3G,EAAA3U,IAAAi0D,GAAA92C,GAAAnd,EACA+U,EAAAm/C,GAAAl0D,EAAAmd,EACA6wF,KAAAr5F,EAAAw9C,EACA87C,IAAAt5F,EAAAy9C,EACA87C,IAAAv5F,EAAAo5F,EACAX,IAAAr4F,EACAs4F,IAAAt4F,GAAA6vC,OAAAjsC,IACA20F,IAAAv4F,GAAAw2C,OAAAxwC,IACAwyF,IAAAx4F,GAAAm4F,OAAA5xF,IACAoxF,GAAA9nD,GAAA2G,GAAA2hD,IAGA,QAAAiB,IAAAttG,GACA8rG,GAAAS,GACAR,GAAAC,GAAAC,GACAO,GAAAC,GAAAC,GACAS,GAAAC,GAAAC,GAAA,EACAzF,GAAA5nG,EAAAmsG,GAEA,IAAAr0F,GAAAq1F,GACAjzF,EAAAkzF,GACA3yF,EAAA4yF,GACAluG,EAAA2Y,IAAAoC,IAAAO,GAGA,OAAAtb,GAAAouG,KACAz1F,EAAA00F,GAAAtyF,EAAAuyF,GAAAhyF,EAAAiyF,GAEAH,GAAAjB,KAAAxzF,EAAAi0F,GAAA7xF,EAAA8xF,GAAAvxF,EAAAwxF,KACA9sG,EAAA2Y,IAAAoC,IAAAO,KAEA8yF,KAAAxrD,UAGAsR,GAAAn5C,EAAApC,GAAA6yF,GAAA/D,GAAAnsF,EAAAmvF,GAAAzqG,IAAAwrG,IAGA,QAAA6C,IAAA11F,GACA,kBACA,MAAAA,IAIA,QAAA21F,IAAAnqG,EAAAE,GAEA,QAAAiqG,GAAA31F,EAAAoC,GACA,MAAApC,GAAAxU,EAAAwU,EAAAoC,GAAA1W,EAAAsU,EAAA,GAAAA,EAAA,IAOA,MAJAxU,GAAA+yE,QAAA7yE,EAAA6yE,SAAAo3B,EAAAp3B,OAAA,SAAAv+D,EAAAoC,GACA,OAAApC,EAAAtU,EAAA6yE,OAAAv+D,EAAAoC,KAAA5W,EAAA+yE,OAAAv+D,EAAA,GAAAA,EAAA,MAGA21F,EAGA,QAAAC,IAAAjmD,EAAA4gD,GACA,OAAA5gD,EAAAk/C,GAAAl/C,EAAAkmD,GAAAlmD,GAAAk/C,GAAAl/C,EAAAkmD,GAAAlmD,EAAA4gD,GAKA,QAAAuF,IAAAC,EAAAC,EAAAC,GACA,OAAAF,GAAAF,IAAAG,GAAAC,EAAAN,GAAAO,GAAAH,GAAAI,GAAAH,EAAAC,IACAC,GAAAH,GACAC,GAAAC,EAAAE,GAAAH,EAAAC,GACAL,GAGA,QAAAQ,IAAAL,GACA,gBAAApmD,EAAA4gD,GACA,MAAA5gD,IAAAomD,GAAApmD,EAAAk/C,GAAAl/C,EAAAkmD,GAAAlmD,GAAAk/C,GAAAl/C,EAAAkmD,GAAAlmD,EAAA4gD,IAIA,QAAA2F,IAAAH,GACA,GAAAM,GAAAD,GAAAL,EAEA,OADAM,GAAA93B,OAAA63B,IAAAL,GACAM,EAGA,QAAAF,IAAAH,EAAAC,GAMA,QAAAI,GAAA1mD,EAAA4gD,GACA,GAAAU,GAAAN,GAAAJ,GACAvwF,EAAA2wF,GAAAhhD,GAAAshD,EACA7uF,EAAA6sF,GAAAt/C,GAAAshD,EACAtuF,EAAAssF,GAAAsB,GACAvtF,EAAAL,EAAA2zF,EAAAt2F,EAAAu2F,CACA,QACAh7C,GAAAn5C,EAAAo0F,EAAAxzF,EAAAyzF,EAAAz2F,EAAAs2F,EAAA3zF,EAAA4zF,GACAzH,GAAA9rF,EAAAwzF,EAAAp0F,EAAAq0F,IAbA,GAAAH,GAAA3F,GAAAqF,GACAO,EAAAtH,GAAA+G,GACAQ,EAAA7F,GAAAsF,GACAQ,EAAAxH,GAAAgH,EA0BA,OAZAI,GAAA93B,OAAA,SAAA5uB,EAAA4gD,GACA,GAAAU,GAAAN,GAAAJ,GACAvwF,EAAA2wF,GAAAhhD,GAAAshD,EACA7uF,EAAA6sF,GAAAt/C,GAAAshD,EACAtuF,EAAAssF,GAAAsB,GACAvtF,EAAAL,EAAA6zF,EAAAp0F,EAAAq0F,CACA,QACAl7C,GAAAn5C,EAAAo0F,EAAA7zF,EAAA8zF,EAAAz2F,EAAAs2F,EAAAtzF,EAAAuzF,GACAzH,GAAA9rF,EAAAszF,EAAAt2F,EAAAu2F,KAIAF,EAGA,QAAAA,IAAAxtC,GAGA,QAAA6tC,GAAAlH,GAEA,MADAA,GAAA3mC,EAAA2mC,EAAA,GAAAgB,GAAAhB,EAAA,GAAAgB,IACAhB,EAAA,IAAAqD,GAAArD,EAAA,IAAAqD,GAAArD,EAQA,MAZA3mC,GAAAitC,GAAAjtC,EAAA,GAAA2nC,GAAA3nC,EAAA,GAAA2nC,GAAA3nC,EAAA1+D,OAAA,EAAA0+D,EAAA,GAAA2nC,GAAA,GAOAkG,EAAAn4B,OAAA,SAAAixB,GAEA,MADAA,GAAA3mC,EAAA0V,OAAAixB,EAAA,GAAAgB,GAAAhB,EAAA,GAAAgB,IACAhB,EAAA,IAAAqD,GAAArD,EAAA,IAAAqD,GAAArD,GAGAkH,EAIA,QAAAC,IAAAtH,EAAA36C,EAAAg+C,EAAAkE,EAAA38C,EAAAC,GACA,GAAAw4C,EAAA,CACA,GAAAmE,GAAAlG,GAAAj8C,GACAoiD,EAAA7H,GAAAv6C,GACA1uB,EAAA4wE,EAAAlE,CACA,OAAAz4C,GACAA,EAAAvF,EAAAkiD,EAAAf,GACA37C,EAAAxF,EAAA1uB,EAAA,IAEAi0B,EAAA88C,GAAAF,EAAA58C,GACAC,EAAA68C,GAAAF,EAAA38C,IACA08C,EAAA,EAAA38C,EAAAC,EAAAD,EAAAC,KAAAD,GAAA28C,EAAAf,IAEA,QAAAnjD,GAAAnuC,EAAA01C,EAAyB28C,EAAA,EAAAryF,EAAA21C,EAAA31C,EAAA21C,EAAiC31C,GAAAyhB,EAC1D0sB,EAAA4+C,IAAAuF,GAAAC,EAAAnG,GAAApsF,IAAAuyF,EAAA7H,GAAA1qF,KACA8qF,EAAA38C,QAAA,GAAAA,EAAA,KAKA,QAAAqkD,IAAAF,EAAAnkD,GACAA,EAAA6+C,GAAA7+C,KAAA,IAAAmkD,EACAhF,GAAAn/C,EACA,IAAAgC,GAAA4G,IAAA5I,EAAA,GACA,UAAAA,EAAA,MAAAgC,KAAAmhD,GAAArC,IAAAqC,GAGA,QAAAmB,MAQA,QAAAtkD,GAAA1yC,EAAAoC,GACA60F,EAAApqG,KAAAmT,EAAA6oD,EAAA7oD,EAAAoC,IACApC,EAAA,IAAA6yF,GAAA7yF,EAAA,IAAA6yF,GAGA,QAAA50C,KACA,GAAA32D,GAAA8pF,EAAA1pE,MAAA7c,KAAAX,WACA6V,EAAA20C,EAAAhtC,MAAA7c,KAAAX,WAAAsmG,GACAloG,EAAAsqE,EAAAlrD,MAAA7c,KAAAX,WAAAsmG,EAMA,OALAyG,MACApuC,EAAAitC,IAAAxuG,EAAA,GAAAkpG,IAAAlpG,EAAA,GAAAkpG,GAAA,GAAAjyB,OACAo4B,GAAAtH,EAAAtvF,EAAAzX,EAAA,GACAhB,GAASiP,KAAA,UAAAi5F,aAAAyH,IACTA,EAAApuC,EAAA,KACAvhE,EArBA,GAGA2vG,GACApuC,EAJAuoB,EAAAskB,IAAA,MACAhhD,EAAAghD,GAAA,IACA9iC,EAAA8iC,GAAA,GAGArG,GAAgB38C,QA+BhB,OAZAuL,GAAAmzB,OAAA,SAAA5kC,GACA,MAAAtiD,WAAAC,QAAAinF,EAAA,mBAAA5kC,KAAAkpD,KAAAlpD,EAAA,IAAAA,EAAA,KAAAyR,GAAAmzB,GAGAnzB,EAAAvJ,OAAA,SAAAlI,GACA,MAAAtiD,WAAAC,QAAAuqD,EAAA,mBAAAlI,KAAAkpD,IAAAlpD,GAAAyR,GAAAvJ,GAGAuJ,EAAA2U,UAAA,SAAApmB,GACA,MAAAtiD,WAAAC,QAAAyoE,EAAA,mBAAApmB,KAAAkpD,IAAAlpD,GAAAyR,GAAA2U,GAGA3U,EAGA,QAAAi5C,MACA,GACA9nG,GADA+nG,IAEA,QACAzkD,MAAA,SAAA1yC,EAAAoC,GACAhT,EAAAvC,MAAAmT,EAAAoC,KAEA45C,UAAA,WACAm7C,EAAAtqG,KAAAuC,OAEA6sD,QAAAizC,GACAkI,OAAA,WACAD,EAAAhtG,OAAA,GAAAgtG,EAAAtqG,KAAAsqG,EAAAlzF,MAAAiF,OAAAiuF,EAAA/jG,WAEAe,OAAA,WACA,GAAAA,GAAAgjG,CAGA,OAFAA,MACA/nG,EAAA,KACA+E,IAKA,QAAAkjG,IAAA7rG,EAAAE,EAAAugD,EAAA2G,EAAA1G,EAAAyG,GACA,GAQA5yC,GARAm7C,EAAA1vD,EAAA,GACA2vD,EAAA3vD,EAAA,GACA4vD,EAAA1vD,EAAA,GACA2vD,EAAA3vD,EAAA,GACAuuD,EAAA,EACAC,EAAA,EACAlF,EAAAoG,EAAAF,EACAjG,EAAAoG,EAAAF,CAIA,IADAp7C,EAAAksC,EAAAiP,EACAlG,KAAAj1C,EAAA,IAEA,GADAA,GAAAi1C,EACAA,EAAA,GACA,GAAAj1C,EAAAk6C,EAAA,MACAl6C,GAAAm6C,MAAAn6C,OACG,IAAAi1C,EAAA,GACH,GAAAj1C,EAAAm6C,EAAA,MACAn6C,GAAAk6C,MAAAl6C,GAIA,GADAA,EAAAmsC,EAAAgP,EACAlG,KAAAj1C,EAAA,IAEA,GADAA,GAAAi1C,EACAA,EAAA,GACA,GAAAj1C,EAAAm6C,EAAA,MACAn6C,GAAAk6C,MAAAl6C,OACG,IAAAi1C,EAAA,GACH,GAAAj1C,EAAAk6C,EAAA,MACAl6C,GAAAm6C,MAAAn6C,GAIA,GADAA,EAAA6yC,EAAAuI,EACAlG,KAAAl1C,EAAA,IAEA,GADAA,GAAAk1C,EACAA,EAAA,GACA,GAAAl1C,EAAAk6C,EAAA,MACAl6C,GAAAm6C,MAAAn6C,OACG,IAAAk1C,EAAA,GACH,GAAAl1C,EAAAm6C,EAAA,MACAn6C,GAAAk6C,MAAAl6C,GAIA,GADAA,EAAA4yC,EAAAwI,EACAlG,KAAAl1C,EAAA,IAEA,GADAA,GAAAk1C,EACAA,EAAA,GACA,GAAAl1C,EAAAm6C,EAAA,MACAn6C,GAAAk6C,MAAAl6C,OACG,IAAAk1C,EAAA,GACH,GAAAl1C,EAAAk6C,EAAA,MACAl6C,GAAAm6C,MAAAn6C,GAKA,MAFAk6C,GAAA,IAAAzuD,EAAA,GAAA0vD,EAAAjB,EAAAjF,EAAAxpD,EAAA,GAAA2vD,EAAAlB,EAAAhF,GACAiF,EAAA,IAAAxuD,EAAA,GAAAwvD,EAAAhB,EAAAlF,EAAAtpD,EAAA,GAAAyvD,EAAAjB,EAAAjF,IACA,MAGA,QAAAqiD,IAAA9rG,EAAAE,GACA,MAAA2/C,IAAA7/C,EAAA,GAAAE,EAAA,IAAA8nG,IAAAnoD,GAAA7/C,EAAA,GAAAE,EAAA,IAAA8nG,GAGA,QAAA+D,IAAA7kD,EAAAR,EAAAslD,EAAAC,GACA5sG,KAAAmV,EAAA0yC,EACA7nD,KAAA8X,EAAAuvC,EACArnD,KAAAnD,EAAA8vG,EACA3sG,KAAA+G,EAAA6lG,EACA5sG,KAAAmR,GAAA,EACAnR,KAAA7C,EAAA6C,KAAAvC,EAAA,KAMA,QAAAovG,IAAAC,EAAAC,EAAAC,EAAArwC,EAAA6nC,GACA,GAEAnoG,GACAc,EAHAg4F,KACA8X,IAwBA,IApBAH,EAAAluG,QAAA,SAAAsuG,GACA,MAAA/vG,EAAA+vG,EAAA5tG,OAAA,QACA,GAAAnC,GAAAgY,EAAA+6C,EAAAg9C,EAAA,GAAA/8C,EAAA+8C,EAAA/vG,EAKA,IAAAsvG,GAAAv8C,EAAAC,GAAA,CAEA,IADAq0C,EAAArzC,YACA90D,EAAA,EAAiBA,EAAAc,IAAOd,EAAAmoG,EAAA38C,OAAAqI,EAAAg9C,EAAA7wG,IAAA,GAAA6zD,EAAA,GAExB,YADAs0C,GAAApzC,UAIA+jC,EAAAnzF,KAAAmT,EAAA,GAAAu3F,IAAAx8C,EAAAg9C,EAAA,UACAD,EAAAjrG,KAAAmT,EAAAtY,EAAA,GAAA6vG,IAAAx8C,EAAA,KAAA/6C,GAAA,IACAggF,EAAAnzF,KAAAmT,EAAA,GAAAu3F,IAAAv8C,EAAA+8C,EAAA,UACAD,EAAAjrG,KAAAmT,EAAAtY,EAAA,GAAA6vG,IAAAv8C,EAAA,KAAAh7C,GAAA,OAGAggF,EAAA71F,OAAA,CAMA,IAJA2tG,EAAAnrD,KAAAirD,GACAI,GAAAhY,GACAgY,GAAAF,GAEA5wG,EAAA,EAAAc,EAAA8vG,EAAA3tG,OAA8BjD,EAAAc,IAAOd,EACrC4wG,EAAA5wG,GAAA0K,EAAAimG,IAOA,KAJA,GACA3lD,GACAQ,EAFA31C,EAAAijF,EAAA,KAIA,CAIA,IAFA,GAAAt8E,GAAA3G,EACAk7F,GAAA,EACAv0F,EAAA1H,GAAA,IAAA0H,IAAA1b,KAAA+U,EAAA,MACAm1C,GAAAxuC,EAAAf,EACA0sF,EAAArzC,WACA,IAEA,GADAt4C,EAAA1H,EAAA0H,EAAAhc,EAAAsU,GAAA,EACA0H,EAAA9R,EAAA,CACA,GAAAqmG,EACA,IAAA/wG,EAAA,EAAAc,EAAAkqD,EAAA/nD,OAAwCjD,EAAAc,IAAOd,EAAAmoG,EAAA38C,SAAAR,EAAAhrD,IAAA,GAAAwrD,EAAA,QAE/C8U,GAAA9jD,EAAA1D,EAAA0D,EAAA1b,EAAAgY,EAAA,EAAAqvF,EAEA3rF,KAAA1b,MACO,CACP,GAAAiwG,EAEA,IADA/lD,EAAAxuC,EAAApb,EAAAqa,EACAzb,EAAAgrD,EAAA/nD,OAAA,EAAqCjD,GAAA,IAAQA,EAAAmoG,EAAA38C,SAAAR,EAAAhrD,IAAA,GAAAwrD,EAAA,QAE7C8U,GAAA9jD,EAAA1D,EAAA0D,EAAApb,EAAA0X,GAAA,EAAAqvF,EAEA3rF,KAAApb,EAEAob,IAAAhc,EACAwqD,EAAAxuC,EAAAf,EACAs1F,YACKv0F,EAAA1H,EACLqzF,GAAApzC,YAIA,QAAA+7C,IAAArtD,GACA,GAAA3iD,EAAA2iD,EAAAxgD,OAAA,CAKA,IAJA,GAAAnC,GAGA0D,EAFAxE,EAAA,EACAsE,EAAAm/C,EAAA,KAEAzjD,EAAAc,GACAwD,EAAAxD,EAAA0D,EAAAi/C,EAAAzjD,GACAwE,EAAApD,EAAAkD,EACAA,EAAAE,CAEAF,GAAAxD,EAAA0D,EAAAi/C,EAAA,GACAj/C,EAAApD,EAAAkD,GAQA,QAAA0sG,IAAAjsD,EAAA2G,EAAA1G,EAAAyG,GAEA,QAAAwlD,GAAAn4F,EAAAoC,GACA,MAAA6pC,IAAAjsC,MAAAksC,GAAA0G,GAAAxwC,MAAAuwC,EAGA,QAAA6U,GAAAz9D,EAAAE,EAAA2sG,EAAAvH,GACA,GAAA7jG,GAAA,EAAAquD,EAAA,CACA,UAAA9vD,IACAyB,EAAA4sG,EAAAruG,EAAA6sG,OAAA/8C,EAAAu+C,EAAAnuG,EAAA2sG,KACAyB,EAAAtuG,EAAAE,GAAA,EAAA2sG,EAAA,EACA,GAAAvH,EAAA38C,MAAA,IAAAlnD,GAAA,IAAAA,EAAAygD,EAAAC,EAAA1gD,EAAA,EAAAmnD,EAAAC,UACApnD,KAAAorG,EAAA,QAAA/8C,OAEAw1C,GAAA38C,MAAAzoD,EAAA,GAAAA,EAAA,IAIA,QAAAmuG,GAAA9vG,EAAAsuG,GACA,MAAAvrD,IAAA/iD,EAAA,GAAA2jD,GAAAunD,GAAAoD,EAAA,MACAvrD,GAAA/iD,EAAA,GAAA4jD,GAAAsnD,GAAAoD,EAAA,MACAvrD,GAAA/iD,EAAA,GAAAsqD,GAAA4gD,GAAAoD,EAAA,MACAA,EAAA,MAGA,QAAAgB,GAAApsG,EAAAE,GACA,MAAA2sG,GAAA7sG,EAAAwU,EAAAtU,EAAAsU,GAGA,QAAAq4F,GAAA7sG,EAAAE,GACA,GAAA40B,GAAA83E,EAAA5sG,EAAA,GACAwB,EAAAorG,EAAA1sG,EAAA,EACA,OAAA40B,KAAAtzB,EAAAszB,EAAAtzB,EACA,IAAAszB,EAAA50B,EAAA,GAAAF,EAAA,GACA,IAAA80B,EAAA90B,EAAA,GAAAE,EAAA,GACA,IAAA40B,EAAA90B,EAAA,GAAAE,EAAA,GACAA,EAAA,GAAAF,EAAA,GAGA,gBAAA6jG,GAmBA,QAAA38C,GAAA1yC,EAAAoC,GACA+1F,EAAAn4F,EAAAoC,IAAAk2F,EAAA5lD,MAAA1yC,EAAAoC,GAGA,QAAAm2F,KAGA,OAFAC,GAAA,EAEAtxG,EAAA,EAAAc,EAAA6pD,EAAA1nD,OAAyCjD,EAAAc,IAAOd,EAChD,OAAA0yD,GAAAC,EAAAo9C,EAAAplD,EAAA3qD,GAAAmV,EAAA,EAAAhV,EAAA4vG,EAAA9sG,OAAAuoD,EAAAukD,EAAA,GAAA9lD,EAAAuB,EAAA,GAAAxB,EAAAwB,EAAA,GAAkHr2C,EAAAhV,IAAOgV,EACzHu9C,EAAAzI,EAAA0I,EAAA3I,EAAAwB,EAAAukD,EAAA56F,GAAA80C,EAAAuB,EAAA,GAAAxB,EAAAwB,EAAA,GACAmH,GAAAlH,EAAyBzB,EAAAyB,IAAAxB,EAAAyI,IAAAjH,EAAAkH,IAAA3I,EAAA2I,IAAA5N,EAAA2N,MAAA4+C,EACTtnD,GAAAyB,IAAAxB,EAAAyI,IAAAjH,EAAAkH,IAAA3I,EAAA2I,IAAA5N,EAAA2N,MAAA4+C,CAIhB,OAAAA,GAIA,QAAA5I,KACA0I,EAAAG,EAAAd,KAAA9lD,KAAA6mD,GAAA,EAGA,QAAA7I,KACA,GAAAgI,GAAAU,IACAI,EAAAD,GAAAb,EACAM,GAAAR,EAAA3qD,EAAA2qD,IAAAxtG,QACAwuG,GAAAR,KACA9I,EAAAO,eACA+I,IACAtJ,EAAArzC,YACAwL,EAAA,YAAA6nC,GACAA,EAAApzC,WAEAk8C,GACAT,GAAAC,EAAAC,EAAAC,EAAArwC,EAAA6nC,GAEAA,EAAAQ,cAEAyI,EAAAjJ,EAAAsI,EAAA9lD,EAAAolD,EAAA,KAGA,QAAAj7C,KACA48C,EAAAlmD,MAAA4/C,EACAzgD,KAAAhlD,KAAAoqG,MACAp+E,GAAA,EACAggF,GAAA,EACAC,EAAAC,EAAA9uD,IAMA,QAAAgS,KACA07C,IACArF,EAAA0G,EAAAC,GACAC,GAAAL,GAAAJ,EAAArB,SACAO,EAAA9qG,KAAA4rG,EAAAtkG,WAEAykG,EAAAlmD,QACAmmD,GAAAP,EAAAr8C,UAGA,QAAAq2C,GAAAtyF,EAAAoC,GACA,GAAApG,GAAAm8F,EAAAn4F,EAAAoC,EAEA,IADAyvC,GAAAolD,EAAApqG,MAAAmT,EAAAoC,IACAyW,EACAmgF,EAAAh5F,EAAAi5F,EAAA72F,EAAA82F,EAAAl9F,EACA6c,GAAA,EACA7c,IACAs8F,EAAAt8C,YACAs8C,EAAA5lD,MAAA1yC,EAAAoC,QAGA,IAAApG,GAAA68F,EAAAP,EAAA5lD,MAAA1yC,EAAAoC,OACA,CACA,GAAA5W,IAAAstG,EAAAz9F,KAAAJ,IAAAk+F,GAAA99F,KAAAF,IAAAi+F,GAAAN,IAAAC,EAAA19F,KAAAJ,IAAAk+F,GAAA99F,KAAAF,IAAAi+F,GAAAL,KACArtG,GAAAsU,EAAA3E,KAAAJ,IAAAk+F,GAAA99F,KAAAF,IAAAi+F,GAAAp5F,IAAAoC,EAAA/G,KAAAJ,IAAAk+F,GAAA99F,KAAAF,IAAAi+F,GAAAh3F,IACAi1F,IAAA7rG,EAAAE,EAAAugD,EAAA2G,EAAA1G,EAAAyG,IACAkmD,IACAP,EAAAt8C,YACAs8C,EAAA5lD,MAAAlnD,EAAA,GAAAA,EAAA,KAEA8sG,EAAA5lD,MAAAhnD,EAAA,GAAAA,EAAA,IACAsQ,GAAAs8F,EAAAr8C,UACAy8C,GAAA,GACW18F,IACXs8F,EAAAt8C,YACAs8C,EAAA5lD,MAAA1yC,EAAAoC,GACAs2F,GAAA,GAIAI,EAAA94F,EAAA+4F,EAAA32F,EAAAy2F,EAAA78F,EA/GA,GAEA27F,GACA9lD,EACAolD,EACA+B,EAAAC,EAAAC,EACAJ,EAAAC,EAAAF,EACAhgF,EACA6/E,EARAJ,EAAAjJ,EACAoJ,EAAAvB,KASA0B,GACAlmD,QACAsJ,YACAC,UACA2zC,eACAC,aAmGA,OAAA+I,IAIA,QAAAS,MACA,GAIAC,GACAC,EACAzB,EANA7rD,EAAA,EACA2G,EAAA,EACA1G,EAAA,IACAyG,EAAA,GAKA,OAAAmlD,IACAzI,OAAA,SAAAA,GACA,MAAAiK,IAAAC,IAAAlK,EAAAiK,IAAApB,GAAAjsD,EAAA2G,EAAA1G,EAAAyG,GAAA4mD,EAAAlK,IAEAvkD,OAAA,SAAA0B,GACA,MAAAtiD,WAAAC,QAAA8hD,GAAAO,EAAA,MAAAoG,GAAApG,EAAA,MAAAN,GAAAM,EAAA,MAAAmG,GAAAnG,EAAA,MAAA8sD,EAAAC,EAAA,KAAAzB,KAAA7rD,EAAA2G,IAAA1G,EAAAyG,MAkBA,QAAA6mD,MACAC,GAAA/mD,MAAAgnD,GACAD,GAAAx9C,QAAA09C,GAGA,QAAAA,MACAF,GAAA/mD,MAAA+mD,GAAAx9C,QAAAizC,GAGA,QAAAwK,IAAA/pD,EAAA4gD,GACA5gD,GAAA6gD,GAAAD,GAAAC,GACAoJ,GAAAjqD,EAAAkqD,GAAA5K,GAAAsB,GAAAuJ,GAAAnJ,GAAAJ,GACAkJ,GAAA/mD,MAAAqnD,GAGA,QAAAA,IAAApqD,EAAA4gD,GACA5gD,GAAA6gD,GAAAD,GAAAC,EACA,IAAAU,GAAAjC,GAAAsB,GACAU,EAAAN,GAAAJ,GACAmC,EAAArnD,GAAAsE,EAAAiqD,IACAI,EAAArJ,GAAA+B,GACAuH,EAAAhL,GAAAyD,GACA1yF,EAAAixF,EAAAgJ,EACA73F,EAAA03F,GAAA5I,EAAA2I,GAAA5I,EAAA+I,EACAr3F,EAAAk3F,GAAA3I,EAAA4I,GAAA7I,EAAA+I,CACAE,IAAA/4E,IAAAo6B,GAAAu2C,GAAA9xF,IAAAoC,KAAAO,IACAi3F,GAAAjqD,EAAAkqD,GAAA3I,EAAA4I,GAAA7I,EAGA,QAAAkJ,IAAAjyG,GAGA,MAFAgyG,IAAAzL,QACAqB,GAAA5nG,EAAAuxG,KACAS,GAKA,QAAAxc,IAAAlyF,EAAAE,GAGA,MAFA8jG,IAAA,GAAAhkG,EACAgkG,GAAA,GAAA9jG,EACAyuG,GAAAC,IAGA,QAAAC,IAAAznD,EAAAD,EAAAsC,GACA,GAAA7yC,GAAAixB,EAAAuf,EAAAD,EAAA6gD,GAAAv+C,GAAA/rC,OAAAypC,EACA,iBAAA3yC,GAAsB,MAAAoC,GAAA/Y,IAAA,SAAA+Y,GAA2B,OAAApC,EAAAoC,MAGjD,QAAAk4F,IAAAruD,EAAAC,EAAA8I,GACA,GAAAh1C,GAAAqzB,EAAA4Y,EAAAC,EAAAsnD,GAAAx+C,GAAA9rC,OAAAgjC,EACA,iBAAA9pC,GAAsB,MAAApC,GAAA3W,IAAA,SAAA2W,GAA2B,OAAAA,EAAAoC,MAGjD,QAAAm4F,MAOA,QAAAA,KACA,OAAYhkG,KAAA,kBAAAi5F,YAAA2H,KAGZ,QAAAA,KACA,MAAA9jE,GAAA/3B,GAAA24F,EAAAuG,KAAA9F,EAAA8F,GAAAnxG,IAAAgtB,GACAnN,OAAAmqB,EAAA/3B,GAAA44F,EAAAuG,KAAA9F,EAAA8F,GAAApxG,IAAAwtB,IACA3N,OAAAmqB,EAAA/3B,GAAA2wC,EAAA+I,KAAA9I,EAAA8I,GAAAqb,OAAA,SAAArwD,GAAsE,MAAAqrC,IAAArrC,EAAAw6F,GAAAhH,KAAkCnqG,IAAA2W,IACxGkJ,OAAAmqB,EAAA/3B,GAAAs3C,EAAAqC,KAAAtC,EAAAsC,GAAAob,OAAA,SAAAjuD,GAAsE,MAAAipC,IAAAjpC,EAAAq4F,GAAAjH,KAAkCnqG,IAAA+Y,IAdxG,GAAA8pC,GAAAD,EAAAyoD,EAAAT,EACAthD,EAAAC,EAAA+hD,EAAAT,EAEAl0F,EAAAoC,EAAAiU,EAAAQ,EADAm+B,EAAA,GAAAC,EAAAD,EAAAwlD,EAAA,GAAAC,EAAA,IAEA7nC,EAAA,GA+EA,OAlEA2nC,GAAApD,MAAA,WACA,MAAAA,KAAA9tG,IAAA,SAAAmmG,GAA8C,OAASj5F,KAAA,aAAAi5F,kBAGvD+K,EAAAG,QAAA,WACA,OACAnkG,KAAA,UACAi5F,aACAn5E,EAAA49E,GAAA/qF,OACA2N,EAAA89E,GAAAniG,MAAA,GACA6jB,EAAAq+E,GAAA3xC,UAAAvwD,MAAA,GACAqkB,EAAAq9E,GAAAnxC,UAAAvwD,MAAA,OAKA+nG,EAAAzvD,OAAA,SAAA0B,GACA,MAAAtiD,WAAAC,OACAowG,EAAAI,YAAAnuD,GAAAouD,YAAApuD,GADA+tD,EAAAK,eAIAL,EAAAI,YAAA,SAAAnuD,GACA,MAAAtiD,WAAAC,QACA8pG,GAAAznD,EAAA,MAAAkoD,GAAAloD,EAAA,MACA0nD,GAAA1nD,EAAA,MAAAmoD,GAAAnoD,EAAA,MACAynD,EAAAS,IAAAloD,EAAAynD,IAAAS,IAAAloD,GACA0nD,EAAAS,IAAAnoD,EAAA0nD,IAAAS,IAAAnoD,GACA+tD,EAAA3nC,gBALAqhC,EAAAC,IAAAQ,EAAAC,KAQA4F,EAAAK,YAAA,SAAApuD,GACA,MAAAtiD,WAAAC,QACA8hD,GAAAO,EAAA,MAAAN,GAAAM,EAAA,MACAoG,GAAApG,EAAA,MAAAmG,GAAAnG,EAAA,MACAP,EAAAC,IAAAM,EAAAP,IAAAC,IAAAM,GACAoG,EAAAD,IAAAnG,EAAAoG,IAAAD,IAAAnG,GACA+tD,EAAA3nC,gBALA3mB,EAAA2G,IAAA1G,EAAAyG,KAQA4nD,EAAAv0E,KAAA,SAAAwmB,GACA,MAAAtiD,WAAAC,OACAowG,EAAAM,UAAAruD,GAAAsuD,UAAAtuD,GADA+tD,EAAAO,aAIAP,EAAAM,UAAA,SAAAruD,GACA,MAAAtiD,WAAAC,QACAqwG,GAAAhuD,EAAA,GAAAiuD,GAAAjuD,EAAA,GACA+tD,IAFAC,EAAAC,IAKAF,EAAAO,UAAA,SAAAtuD,GACA,MAAAtiD,WAAAC,QACA6qD,GAAAxI,EAAA,GAAAyI,GAAAzI,EAAA,GACA+tD,IAFAvlD,EAAAC,IAKAslD,EAAA3nC,UAAA,SAAApmB,GACA,MAAAtiD,WAAAC,QACAyoE,GAAApmB,EACAxsC,EAAAq6F,GAAAznD,EAAAD,EAAA,IACAvwC,EAAAk4F,GAAAruD,EAAAC,EAAA0mB,GACAv8C,EAAAgkF,GAAAnG,EAAAS,EAAA,IACA99E,EAAAyjF,GAAArG,EAAAS,EAAA9hC,GACA2nC,GANA3nC,GASA2nC,EACAI,eAAA,QAAAnH,KAAA,OAAAA,MACAoH,eAAA,QAAApH,KAAA,OAAAA,MAGA,QAAAuH,IAAAvvG,EAAAE,GACA,GAAAugD,GAAAzgD,EAAA,GAAAglG,GACA59C,EAAApnD,EAAA,GAAAglG,GACAtkD,EAAAxgD,EAAA,GAAA8kG,GACA79C,EAAAjnD,EAAA,GAAA8kG,GACAv3C,EAAA03C,GAAA/9C,GACAs7C,EAAAe,GAAAr8C,GACAuG,EAAAw3C,GAAAh+C,GACAqoD,EAAA/L,GAAAt8C,GACAsoD,EAAAhiD,EAAA03C,GAAA1kD,GACAivD,EAAAjiD,EAAAg2C,GAAAhjD,GACAkvD,EAAAhiD,EAAAw3C,GAAAzkD,GACAkvD,EAAAjiD,EAAA81C,GAAA/iD,GACA3kD,EAAA,EAAAunG,GAAAgD,GAAA9C,GAAAr8C,EAAAC,GAAAqG,EAAAE,EAAA61C,GAAA9iD,EAAAD,KACAjpC,EAAAisF,GAAA1nG,GAEAigE,EAAAjgE,EAAA,SAAAgd,GACA,GAAA3B,GAAAqsF,GAAA1qF,GAAAhd,GAAAyb,EACAT,EAAA0sF,GAAA1nG,EAAAgd,GAAAvB,EACAhD,EAAAuC,EAAA04F,EAAAr4F,EAAAu4F,EACA/4F,EAAAG,EAAA24F,EAAAt4F,EAAAw4F,EACAz4F,EAAAJ,EAAA2rF,EAAAtrF,EAAAo4F,CACA,QACAz/C,GAAAn5C,EAAApC,GAAA6yF,GACAt3C,GAAA54C,EAAAmvF,GAAA9xF,IAAAoC,MAAAywF,KAEG,WACH,OAAA5mD,EAAA4mD,GAAAjgD,EAAAigD,IAKA,OAFArrC,GAAAk2B,SAAAn2F,EAEAigE,EAGA,QAAA6zC,IAAAr7F,GACA,MAAAA,GA6BA,QAAAs7F,MACAC,GAAA7oD,MAAA8oD,GAGA,QAAAA,IAAAx7F,EAAAoC,GACAm5F,GAAA7oD,MAAA+oD,GACA3iD,GAAA4iD,GAAA17F,EAAA+4C,GAAA4iD,GAAAv5F,EAGA,QAAAq5F,IAAAz7F,EAAAoC,GACAw5F,GAAAz6E,IAAAw6E,GAAA37F,EAAA07F,GAAAt5F,GACAs5F,GAAA17F,EAAA27F,GAAAv5F,EAGA,QAAAy5F,MACAJ,GAAA3iD,GAAAC,IAoBA,QAAA+iD,IAAA97F,EAAAoC,GACApC,EAAA+7F,QAAA/7F,GACAA,EAAAksC,QAAAlsC,GACAoC,EAAA45F,QAAA55F,GACAA,EAAAuwC,QAAAvwC,GAyCA,QAAA65F,IAAAj8F,EAAAoC,GACA85F,IAAAl8F,EACAm8F,IAAA/5F,IACAg6F,GAGA,QAAAC,MACAC,GAAA5pD,MAAA6pD,GAGA,QAAAA,IAAAv8F,EAAAoC,GACAk6F,GAAA5pD,MAAA8pD,GACAP,GAAAQ,GAAAz8F,EAAA08F,GAAAt6F,GAGA,QAAAo6F,IAAAx8F,EAAAoC,GACA,GAAA4yC,GAAAh1C,EAAAy8F,GAAAxnD,EAAA7yC,EAAAs6F,GAAA/5F,EAAAmvF,GAAA98C,IAAAC,IACA0nD,KAAAh6F,GAAA85F,GAAAz8F,GAAA,EACA48F,IAAAj6F,GAAA+5F,GAAAt6F,GAAA,EACAy6F,IAAAl6F,EACAs5F,GAAAQ,GAAAz8F,EAAA08F,GAAAt6F,GAGA,QAAA06F,MACAR,GAAA5pD,MAAAupD,GAGA,QAAAc,MACAT,GAAA5pD,MAAAsqD,GAGA,QAAAC,MACAC,GAAAC,GAAAC,IAGA,QAAAJ,IAAAh9F,EAAAoC,GACAk6F,GAAA5pD,MAAAwqD,GACAjB,GAAAkB,GAAAV,GAAAz8F,EAAAo9F,GAAAV,GAAAt6F,GAGA,QAAA86F,IAAAl9F,EAAAoC,GACA,GAAA4yC,GAAAh1C,EAAAy8F,GACAxnD,EAAA7yC,EAAAs6F,GACA/5F,EAAAmvF,GAAA98C,IAAAC,IAEA0nD,KAAAh6F,GAAA85F,GAAAz8F,GAAA,EACA48F,IAAAj6F,GAAA+5F,GAAAt6F,GAAA,EACAy6F,IAAAl6F,EAEAA,EAAA+5F,GAAA18F,EAAAy8F,GAAAr6F,EACAi7F,IAAA16F,GAAA85F,GAAAz8F,GACAs9F,IAAA36F,GAAA+5F,GAAAt6F,GACAm7F,IAAA,EAAA56F,EACAs5F,GAAAQ,GAAAz8F,EAAA08F,GAAAt6F,GAGA,QAAAo7F,IAAAh7F,GAsBA,QAAAkwC,GAAA1yC,EAAAoC,GACAI,EAAAw3C,OAAAh6C,EAAAy9F,EAAAr7F,GACAI,EAAAk3C,IAAA15C,EAAAoC,EAAAq7F,EAAA,EAAA5H,IAGA,QAAA6H,GAAA19F,EAAAoC,GACAI,EAAAw3C,OAAAh6C,EAAAoC,GACAitF,EAAA38C,MAAAirD,EAGA,QAAAA,GAAA39F,EAAAoC,GACAI,EAAAg5C,OAAAx7C,EAAAoC,GAGA,QAAA65C,KACAozC,EAAA38C,QAGA,QAAAkrD,KACAp7F,EAAAi5C,YAxCA,GAAAgiD,GAAA,IAEApO,GACA38C,QAGAsJ,UAAA,WAA2BqzC,EAAA38C,MAAAgrD,GAC3BzhD,UAGA2zC,aAAA,WAA8BP,EAAApzC,QAAA2hD,GAC9B/N,WAAA,WAA4BR,EAAApzC,UAA0BozC,EAAA38C,SAEtD+qD,YAAA,SAAAjxD,GAEA,MADAixD,GAAAjxD,EACA6iD,GAGAl7F,OAAA+6F,GAyBA,OAAAG,GAGA,QAAAwO,MA4BA,QAAAnrD,GAAA1yC,EAAAoC,GACAsyD,EAAA7nE,KAAA,IAAAmT,EAAA,IAAAoC,EAAA07F,GAGA,QAAAJ,GAAA19F,EAAAoC,GACAsyD,EAAA7nE,KAAA,IAAAmT,EAAA,IAAAoC,GACAitF,EAAA38C,MAAAirD,EAGA,QAAAA,GAAA39F,EAAAoC,GACAsyD,EAAA7nE,KAAA,IAAAmT,EAAA,IAAAoC,GAGA,QAAA45C,KACAqzC,EAAA38C,MAAAgrD,EAGA,QAAAzhD,KACAozC,EAAA38C,QAGA,QAAAkrD,KACAlpC,EAAA7nE,KAAA,KAjDA,GAAAixG,GAAAC,GAAA,KACArpC,KAEA26B,GACA38C,QACAsJ,YACAC,UACA2zC,aAAA,WACAP,EAAApzC,QAAA2hD,GAEA/N,WAAA,WACAR,EAAApzC,UACAozC,EAAA38C,SAEA+qD,YAAA,SAAAjxD,GAEA,MADAsxD,GAAAC,GAAAvxD,GACA6iD,GAEAl7F,OAAA,WACA,GAAAugE,EAAAvqE,OAAA,CACA,GAAAgK,GAAAugE,EAAAprE,KAAA,GAEA,OADAorE,MACAvgE,IA8BA,OAAAk7F,GAGA,QAAA0O,IAAArpD,GACA,YAAAA,EACA,IAAAA,EAAA,IAAAA,EAAA,eAAAA,EACA,IAAAA,EAAA,IAAAA,EAAA,cAAAA,EACA,IAGA,QAAAspD,MAOA,QAAA3qD,GAAAnrD,GAKA,MAJAA,KACA,mBAAAu1G,IAAAQ,EAAAR,eAAA/1F,MAAA7c,KAAAX,YACA4lG,GAAA5nG,EAAAg2G,EAAAD,KAEAA,EAAA9pG,SAXA,GACAgqG,GACAD,EACA17F,EACAy7F,EAJAR,EAAA,GA8CA,OAhCApqD,GAAArP,KAAA,SAAA97C,GAEA,MADA4nG,IAAA5nG,EAAAg2G,EAAA3C,KACAA,GAAApnG,UAGAk/C,EAAAsgD,OAAA,SAAAzrG,GAEA,MADA4nG,IAAA5nG,EAAAg2G,EAAAE,KACAA,GAAAjqG,UAGAk/C,EAAAvB,SAAA,SAAA5pD,GAEA,MADA4nG,IAAA5nG,EAAAg2G,EAAA5B,KACAA,GAAAnoG,UAGAk/C,EAAA8qD,WAAA,SAAA3xD,GACA,MAAAtiD,WAAAC,QAAA+zG,EAAA,OAAAC,EAAA3xD,GAAA6uD,GAAA7uD,EAAA6iD,OAAAh8C,GAAA8qD,GAGA9qD,EAAA7wC,QAAA,SAAAgqC,GACA,MAAAtiD,WAAAC,QACA8zG,EAAA,OAAAz7F,EAAAgqC,GAAA,GAAAqxD,IAAA,GAAAL,IAAAhxD,GACA,mBAAAixD,IAAAQ,EAAAR,eACApqD,GAHA7wC,GAMA6wC,EAAAoqD,YAAA,SAAAjxD,GACA,MAAAtiD,WAAAC,QACAszG,EAAA,mBAAAjxD,MAAAyxD,EAAAR,aAAAjxD,OACA6G,GAFAoqD,GAKApqD,EAAA8qD,WAAA,MAAA37F,QAAA,MAKA,QAAA67F,IAAAxsD,EAAAa,GACA,GAAA/C,GAAA+C,EAAA,GACA69C,EAAA79C,EAAA,GACAzD,GAAAggD,GAAAt/C,IAAAghD,GAAAhhD,GAAA,GACA4N,EAAA,EACAi7C,EAAA,CAEA8F,IAAA7P,OAEA,QAAAvnG,GAAA,EAAAc,EAAA6pD,EAAA1nD,OAAqCjD,EAAAc,IAAOd,EAC5C,GAAAG,GAAA4vG,EAAAplD,EAAA3qD,IAAAiD,OASA,OARA8sG,GACA5vG,EACA4jG,EAAAgM,EAAA5vG,EAAA,GACAopG,EAAAxF,EAAA,GACAmH,EAAAnH,EAAA,KAAA2F,GACAC,EAAA5B,GAAAmD,GACA1B,EAAAC,GAAAyB,GAEA/1F,EAAA,EAAmBA,EAAAhV,IAAOgV,EAAAo0F,EAAA0B,EAAAtB,EAAA0N,EAAA7N,EAAA8N,EAAAvT,EAAAN,EAAA,CAC1B,GAAAA,GAAAsM,EAAA56F,GACA81F,EAAAxH,EAAA,GACA0H,EAAA1H,EAAA,KAAAiG,GACA2N,EAAAtP,GAAAoD,GACAmM,EAAA7N,GAAA0B,GACAK,EAAAP,EAAA1B,EACArwC,EAAAsyC,GAAA,OACA+L,EAAAr+C,EAAAsyC,EACAI,EAAA2L,EAAA5P,GACA7rF,EAAA6tF,EAAA0N,CAOA,IALAD,GAAAn9E,IAAAo6B,GAAAv4C,EAAAo9C,EAAA6uC,GAAAwP,GAAA/N,EAAA8N,EAAAx7F,EAAA2tF,GAAA8N,KACAlhD,GAAAu1C,EAAAJ,EAAAtyC,EAAAy1C,GAAAnD,EAIAI,EAAArC,GAAA9gD,EAAAwiD,GAAAxiD,EAAA,CACA,GAAA+J,GAAA+3C,GAAAF,GAAAtG,GAAAsG,GAAA5G,GACAkH,IAAAn4C,EACA,IAAAglD,GAAAjN,GAAAxiD,EAAAyK,EACAm4C,IAAA6M,EACA,IAAAC,IAAA7L,EAAAJ,GAAA,QAAA5D,GAAA4P,EAAA,KACAnO,EAAAoO,GAAApO,IAAAoO,IAAAjlD,EAAA,IAAAA,EAAA,OACA8+C,GAAA1F,EAAAJ,GAAA,SAiBA,OAAAn1C,GAAAi2C,IAAAj2C,EAAAi2C,IAAA8K,IAAA9K,IAAA,EAAAgF,EAGA,QAAAV,IAAA8G,EAAAvH,EAAA7vC,EAAAzqD,GACA,gBAAA8rD,EAAAg2C,GAgDA,QAAAnsD,GAAA/C,EAAA4gD,GACA,GAAA79C,GAAAmW,EAAAlZ,EAAA4gD,EACAqO,GAAAjvD,EAAA+C,EAAA,GAAA69C,EAAA79C,EAAA,KAAAmsD,EAAAnsD,MAAA/C,EAAA4gD,GAGA,QAAAoN,GAAAhuD,EAAA4gD,GACA,GAAA79C,GAAAmW,EAAAlZ,EAAA4gD,EACAnhG,GAAAsjD,QAAA,GAAAA,EAAA,IAGA,QAAAsJ,KACA87C,EAAAplD,MAAAirD,EACAvuG,EAAA4sD,YAGA,QAAAC,KACA67C,EAAAplD,QACAtjD,EAAA6sD,UAGA,QAAA6iD,GAAAnvD,EAAA4gD,GACA0G,EAAApqG,MAAA8iD,EAAA4gD,GACA,IAAA79C,GAAAmW,EAAAlZ,EAAA4gD,EACAwO,GAAArsD,QAAA,GAAAA,EAAA,IAGA,QAAAssD,KACAD,EAAA/iD,YACAi7C,KAGA,QAAAgI,KACAH,EAAA7H,EAAA,MAAAA,EAAA,OACA8H,EAAA9iD,SAEA,IAEA/0D,GAAAG,EACA0wG,EACArlD,EAJAgmD,EAAAqG,EAAArG,QACAwG,EAAAC,EAAAhrG,SACAnM,EAAAk3G,EAAA/0G,MAQA,IAJA8sG,EAAAhzF,MACA4tC,EAAAhlD,KAAAoqG,GACAA,EAAA,KAEAjvG,EAGA,KAAA0wG,GAEA,GADAX,EAAAmH,EAAA,IACA73G,EAAA0wG,EAAA5tG,OAAA,MAGA,IAFAi1G,IAAAP,EAAAjP,eAAAwP,GAAA,GACAP,EAAA7iD,YACA90D,EAAA,EAAqBA,EAAAG,IAAOH,EAAA23G,EAAAnsD,SAAAqlD,EAAA7wG,IAAA,GAAAwrD,EAAA,GAC5BmsD,GAAA5iD,eAOAj0D,GAAA,KAAA0wG,GAAAwG,EAAAryG,KAAAqyG,EAAAj7F,MAAAiF,OAAAg2F,EAAA9rG,UAEAukG,EAAA9qG,KAAAqyG,EAAA7uC,OAAAgvC,KA9GA,GAKAxtD,GACA8lD,EACAV,EAPA7nG,EAAAioG,EAAAwH,GACAS,EAAAz2C,EAAA0V,OAAAxhE,EAAA,GAAAA,EAAA,IACAoiG,EAAAjI,KACA6H,EAAA1H,EAAA8H,GACAC,GAAA,EAKAtH,GACAplD,QACAsJ,YACAC,UACA2zC,aAAA,WACAkI,EAAAplD,MAAAosD,EACAhH,EAAA97C,UAAAgjD,EACAlH,EAAA77C,QAAAgjD,EACAtH,KACA9lD,MAEAg+C,WAAA,WACAiI,EAAAplD,QACAolD,EAAA97C,YACA87C,EAAA77C,UACA07C,EAAA3qD,EAAA2qD,EACA,IAAAE,GAAAwG,GAAAxsD,EAAAytD,EACA3H,GAAAxtG,QACAi1G,IAAAP,EAAAjP,eAAAwP,GAAA,GACA1H,GAAAC,EAAAC,GAAAC,EAAArwC,EAAAq3C,IACShH,IACTuH,IAAAP,EAAAjP,eAAAwP,GAAA,GACAP,EAAA7iD,YACAwL,EAAA,YAAAq3C,GACAA,EAAA5iD,WAEAmjD,IAAAP,EAAAhP,aAAAuP,GAAA,GACAzH,EAAA9lD,EAAA,MAEA0tD,OAAA,WACAV,EAAAjP,eACAiP,EAAA7iD,YACAwL,EAAA,YAAAq3C,GACAA,EAAA5iD,UACA4iD,EAAAhP,cAsEA,OAAAiI,IAIA,QAAAuH,IAAAtH,GACA,MAAAA,GAAA5tG,OAAA,EAKA,QAAAytG,IAAApsG,EAAAE,GACA,QAAAF,IAAAwU,GAAA,KAAAxU,EAAA,GAAAujG,GAAAyE,GAAAzE,GAAAvjG,EAAA,MACAE,IAAAsU,GAAA,KAAAtU,EAAA,GAAAqjG,GAAAyE,GAAAzE,GAAArjG,EAAA,IAaA,QAAA8zG,IAAAnQ,GACA,GAGAqJ,GAHAjI,EAAAxmD,IACAmoD,EAAAnoD,IACAw1D,EAAAx1D,GAGA,QACA+R,UAAA,WACAqzC,EAAArzC,YACA08C,EAAA,GAEAhmD,MAAA,SAAAy/C,EAAAE,GACA,GAAAqN,GAAAvN,EAAA,EAAAtD,OACA6D,EAAArnD,GAAA8mD,EAAA1B,EACAplD,IAAAqnD,EAAA7D,IAAA2E,IACAnE,EAAA38C,MAAA+9C,EAAA2B,KAAAC,GAAA,IAAAtD,QACAM,EAAA38C,MAAA+sD,EAAArN,GACA/C,EAAApzC,UACAozC,EAAArzC,YACAqzC,EAAA38C,MAAAgtD,EAAAtN,GACA/C,EAAA38C,MAAAy/C,EAAAC,GACAsG,EAAA,GACO+G,IAAAC,GAAAhN,GAAA7D,KACPxjD,GAAAolD,EAAAgP,GAAAjM,KAAA/C,GAAAgP,EAAAjM,IACAnoD,GAAA8mD,EAAAuN,GAAAlM,KAAArB,GAAAuN,EAAAlM,IACApB,EAAAuN,GAAAlP,EAAA2B,EAAAD,EAAAE,GACAhD,EAAA38C,MAAA+sD,EAAArN,GACA/C,EAAApzC,UACAozC,EAAArzC,YACAqzC,EAAA38C,MAAAgtD,EAAAtN,GACAsG,EAAA,GAEArJ,EAAA38C,MAAA+9C,EAAA0B,EAAAC,EAAAC,GACAoN,EAAAC,GAEAzjD,QAAA,WACAozC,EAAApzC,UACAw0C,EAAA2B,EAAAnoD,KAEAyuD,MAAA,WACA,SAAAA,IAKA,QAAAiH,IAAAlP,EAAA2B,EAAAD,EAAAE,GACA,GAAA3B,GACA8N,EACAoB,EAAA3Q,GAAAwB,EAAA0B,EACA,OAAA9mD,IAAAu0D,GAAApM,GACAzqC,IAAAkmC,GAAAmD,IAAAoM,EAAA7N,GAAA0B,IAAApD,GAAAkD,GACAlD,GAAAoD,IAAA3B,EAAAC,GAAAyB,IAAAnD,GAAAwB,KACAC,EAAA8N,EAAAoB,KACAxN,EAAAC,GAAA,EAGA,QAAAwN,IAAA91G,EAAAE,EAAA2sG,EAAAvH,GACA,GAAAkB,EACA,UAAAxmG,EACAwmG,EAAAqG,EAAA7H,GACAM,EAAA38C,OAAAm8C,GAAA0B,GACAlB,EAAA38C,MAAA,EAAA69C,GACAlB,EAAA38C,MAAAm8C,GAAA0B,GACAlB,EAAA38C,MAAAm8C,GAAA,GACAQ,EAAA38C,MAAAm8C,IAAA0B,GACAlB,EAAA38C,MAAA,GAAA69C,GACAlB,EAAA38C,OAAAm8C,IAAA0B,GACAlB,EAAA38C,OAAAm8C,GAAA,GACAQ,EAAA38C,OAAAm8C,GAAA0B,OACG,IAAAllD,GAAAthD,EAAA,GAAAE,EAAA,IAAAupG,GAAA,CACH,GAAA7jD,GAAA5lD,EAAA,GAAAE,EAAA,GAAA4kG,MACA0B,GAAAqG,EAAAjnD,EAAA,EACA0/C,EAAA38C,OAAA/C,EAAA4gD,GACAlB,EAAA38C,MAAA,EAAA69C,GACAlB,EAAA38C,MAAA/C,EAAA4gD,OAEAlB,GAAA38C,MAAAzoD,EAAA,GAAAA,EAAA,IAIA,QAAA61G,IAAAprD,EAAAg+C,GAKA,QAAAlrC,GAAAz9D,EAAAE,EAAA2sG,EAAAvH,GACAsH,GAAAtH,EAAA36C,EAAAg+C,EAAAkE,EAAA7sG,EAAAE,GAGA,QAAAkuG,GAAAxoD,EAAA4gD,GACA,MAAAI,IAAAhhD,GAAAghD,GAAAJ,GAAAwP,EAOA,QAAA1I,GAAAhI,GACA,GAAApE,GACA+U,EACAz5C,EACAq9B,EACA8U,CACA,QACA18C,UAAA,WACA4nC,EAAAr9B,GAAA,EACAmyC,EAAA,GAEAhmD,MAAA,SAAA/C,EAAA4gD,GACA,GACA0P,GADAtV,GAAAh7C,EAAA4gD,GAEAv0F,EAAAm8F,EAAAxoD,EAAA4gD,GACAjpG,EAAA44G,EACAlkG,EAAA,EAAAmkG,EAAAxwD,EAAA4gD,GACAv0F,EAAAmkG,EAAAxwD,KAAA,EAAAk/C,QAAA0B,GAAA,CAYA,KAXAtF,IAAArH,EAAAr9B,EAAAvqD,IAAAqzF,EAAArzC,YAGAhgD,IAAAuqD,IACA05C,EAAAjoD,EAAAizC,EAAAN,IACA2M,GAAArM,EAAAgV,IAAA3I,GAAA3M,EAAAsV,MACAtV,EAAA,IAAA6I,GACA7I,EAAA,IAAA6I,GACAx3F,EAAAm8F,EAAAxN,EAAA,GAAAA,EAAA,MAGA3uF,IAAAuqD,EACAmyC,EAAA,EACA18F,GAEAqzF,EAAArzC,YACAikD,EAAAjoD,EAAA2yC,EAAAM,GACAoE,EAAA38C,MAAAutD,EAAA,GAAAA,EAAA,MAGAA,EAAAjoD,EAAAizC,EAAAN,GACA0E,EAAA38C,MAAAutD,EAAA,GAAAA,EAAA,IACA5Q,EAAApzC,WAEAgvC,EAAAgV,MACS,IAAAG,GAAAnV,GAAAiV,EAAAlkG,EAAA,CACT,GAAAuI,EAGAjd,GAAA04G,KAAAz7F,EAAAyzC,EAAA2yC,EAAAM,GAAA,MACAyN,EAAA,EACAwH,GACA7Q,EAAArzC,YACAqzC,EAAA38C,MAAAnuC,EAAA,MAAAA,EAAA,OACA8qF,EAAA38C,MAAAnuC,EAAA,MAAAA,EAAA,OACA8qF,EAAApzC,YAEAozC,EAAA38C,MAAAnuC,EAAA,MAAAA,EAAA,OACA8qF,EAAApzC,UACAozC,EAAArzC,YACAqzC,EAAA38C,MAAAnuC,EAAA,MAAAA,EAAA,UAIAvI,GAAAivF,GAAAqM,GAAArM,EAAAN,IACA0E,EAAA38C,MAAAi4C,EAAA,GAAAA,EAAA,IAEAM,EAAAN,EAAApkC,EAAAvqD,EAAAgkG,EAAA14G,GAEA20D,QAAA,WACAsK,GAAA8oC,EAAApzC,UACAgvC,EAAA,MAIAyN,MAAA,WACA,MAAAA,IAAA9U,GAAAr9B,IAAA,IAMA,QAAAvO,GAAAxsD,EAAAE,EAAA20G,GACA,GAAAv5F,GAAAyqF,GAAA/lG,GACA2e,EAAAonF,GAAA7lG,GAIA+/F,GAAA,OACA6U,EAAA7O,GAAA3qF,EAAAqD,GACAo2F,EAAA/O,GAAA8O,KACAE,EAAAF,EAAA,GACAG,EAAAF,EAAAC,GAGA,KAAAC,EAAA,OAAAJ,GAAA70G,CAEA,IAAAk1G,GAAAX,EAAAQ,EAAAE,EACAlqB,GAAAwpB,EAAAS,EAAAC,EACAE,EAAAlP,GAAAhG,EAAA6U,GACA/9F,EAAAovF,GAAAlG,EAAAiV,EAEAhP,IAAAnvF,EADAovF,GAAA2O,EAAA/pB,GAIA,IAAA/xE,GAAAm8F,EACAvkG,EAAAo1F,GAAAjvF,EAAAiC,GACAo8F,EAAApP,GAAAhtF,KACAihD,EAAArpD,IAAAwkG,GAAApP,GAAAjvF,KAAA,EAEA,MAAAkjD,EAAA,IAEA,GAAAlhD,GAAAutF,GAAArsC,GACA3gD,EAAA6sF,GAAAntF,IAAApI,EAAAmI,GAAAq8F,EAIA,IAHAlP,GAAA5sF,EAAAvC,GACAuC,EAAAwsF,GAAAxsF,IAEAu7F,EAAA,MAAAv7F,EAGA,IAIAnC,GAJA8tF,EAAAjlG,EAAA,GACA2mG,EAAAzmG,EAAA,GACA0mG,EAAA5mG,EAAA,GACA6mG,EAAA3mG,EAAA,EAGAymG,GAAA1B,IAAA9tF,EAAA8tF,IAAA0B,IAAAxvF,EAEA,IAAA+vF,GAAAP,EAAA1B,EACAoQ,EAAAx1D,GAAAqnD,EAAA7D,IAAA2E,GACAsN,EAAAD,GAAAnO,EAAAc,EAKA,KAHAqN,GAAAxO,EAAAD,IAAAzvF,EAAAyvF,IAAAC,IAAA1vF,GAGAm+F,EACAD,EACAzO,EAAAC,EAAA,EAAAvtF,EAAA,IAAAumC,GAAAvmC,EAAA,GAAA2rF,GAAA+C,GAAApB,EAAAC,GACAD,GAAAttF,EAAA,IAAAA,EAAA,IAAAutF,EACAK,EAAA7D,IAAA4B,GAAA3rF,EAAA,IAAAA,EAAA,IAAAqtF,GAAA,CACA,GAAA4O,GAAApP,GAAAntF,IAAApI,EAAAmI,GAAAq8F,EAEA,OADAlP,IAAAqP,EAAAx+F,IACAuC,EAAAwsF,GAAAyP,MAMA,QAAAZ,GAAAxwD,EAAA4gD,GACA,GAAAxwF,GAAAmgG,EAAAxrD,EAAAm6C,GAAAn6C,EACAyrD,EAAA,CAKA,OAJAxwD,IAAA5vC,EAAAogG,GAAA,EACAxwD,EAAA5vC,IAAAogG,GAAA,GACA5P,GAAAxwF,EAAAogG,GAAA,EACA5P,EAAAxwF,IAAAogG,GAAA,GACAA,EAzKA,GAAAJ,GAAApP,GAAAj8C,GACAwrD,EAAAH,EAAA,EACAK,EAAA/0D,GAAA00D,GAAAvM,EA0KA,OAAAsE,IAAAK,EAAAd,EAAA7vC,EAAA04C,GAAA,GAAAxrD,KAAAm6C,GAAAn6C,EAAAm6C,KAGA,QAAAmS,IAAA54G,GACA,OACAinG,OAAA4R,GAAA74G,IAIA,QAAA64G,IAAA74G,GACA,QAAAwc,MACA,GAAAtc,GAAAsc,EAAAxc,UAAAT,OAAAiT,OAAAsmG,GAAA94G,UACA,QAAA4a,KAAA5a,GAAAE,EAAA0a,GAAA5a,EAAA4a,EACA,iBAAAqsF,GACA,GAAA9qF,GAAA,GAAAK,EAEA,OADAL,GAAA8qF,SACA9qF,GAIA,QAAA28F,OAWA,QAAAC,IAAAC,EAAAt2D,EAAA5iD,GACA,GAAAkU,GAAA0uC,EAAA,MAAAA,EAAA,MACAznC,EAAAynC,EAAA,MAAAA,EAAA,MACAgtD,EAAAsJ,EAAAlJ,YAAAkJ,EAAAlJ,YAEAkJ,GACAn3C,MAAA,KACAD,WAAA,MAEA,MAAA8tC,GAAAsJ,EAAAlJ,WAAA,MAEApI,GAAA5nG,EAAAk5G,EAAA/R,OAAA+O,IAEA,IAAA1yG,GAAA0yG,GAAAjqG,SACA6O,EAAA3H,KAAAF,IAAAiB,GAAA1Q,EAAA,MAAAA,EAAA,OAAA2X,GAAA3X,EAAA,MAAAA,EAAA,QACAsU,GAAA8qC,EAAA,OAAA1uC,EAAA4G,GAAAtX,EAAA,MAAAA,EAAA,UACA0W,GAAA0oC,EAAA,OAAAznC,EAAAL,GAAAtX,EAAA,MAAAA,EAAA,SAIA,OAFA,OAAAosG,GAAAsJ,EAAAlJ,WAAAJ,GAEAsJ,EACAn3C,MAAA,IAAAjnD,GACAgnD,WAAAhqD,EAAAoC,IAGA,QAAAi/F,IAAAD,GACA,gBAAAvlG,EAAA3T,GACA,MAAAi5G,IAAAC,IAAA,KAAAvlG,GAAA3T,IAIA,QAAAo5G,IAAAF,GACA,gBAAAt2D,EAAA5iD,GACA,MAAAi5G,IAAAC,EAAAt2D,EAAA5iD,IAQA,QAAAq5G,IAAAH,EAAAI,GACA,OAAAA,EAAAC,GAAAL,EAAAI,GAAAE,GAAAN,GAGA,QAAAM,IAAAN,GACA,MAAAH,KACAvuD,MAAA,SAAA1yC,EAAAoC,GACApC,EAAAohG,EAAAphG,EAAAoC,GACAvX,KAAAwkG,OAAA38C,MAAA1yC,EAAA,GAAAA,EAAA,OAKA,QAAAyhG,IAAAL,EAAAI,GAEA,QAAAG,GAAA11D,EAAA2G,EAAA69C,EAAA72C,EAAAzI,EAAA6uD,EAAA9zD,EAAAyG,EAAAw/C,EAAAt4C,EAAA3I,EAAAwvD,EAAAvyD,EAAAkhD,GACA,GAAAr6C,GAAA9I,EAAAD,EACAgJ,EAAAtC,EAAAC,EACAsC,EAAAF,IAAAC,GACA,IAAAC,EAAA,EAAAssD,GAAArzD,IAAA,CACA,GAAA3iD,GAAAouD,EAAAC,EACAnuD,EAAAylD,EAAAD,EACA5pD,EAAA04G,EAAAU,EACAr5G,EAAAyqG,GAAAtmG,IAAAE,IAAApE,KACAs6G,EAAA9S,GAAAxnG,GAAAD,GACAsrG,EAAAtnD,MAAA/jD,GAAA,GAAAksG,IAAAnoD,GAAAolD,EAAA0B,GAAAqB,IAAA/C,EAAA0B,GAAA,EAAA52C,GAAA7vD,EAAAF,GACAlD,EAAA84G,EAAAzO,EAAAiP,GACAjtD,EAAArsD,EAAA,GACAssD,EAAAtsD,EAAA,GACAu5G,EAAAltD,EAAA1I,EACA61D,EAAAltD,EAAAhC,EACAmvD,EAAA9sD,EAAA4sD,EAAA7sD,EAAA8sD,GACAC,IAAA7sD,EAAAssD,GACAn2D,IAAA2J,EAAA6sD,EAAA5sD,EAAA6sD,GAAA5sD,EAAA,QACA0E,EAAAC,EAAA1I,EAAAD,EAAA8uD,EAAAU,EAAAsB,MACAL,EAAA11D,EAAA2G,EAAA69C,EAAA72C,EAAAzI,EAAA6uD,EAAArrD,EAAAC,EAAA+9C,EAAAnnG,GAAAnE,EAAAqE,GAAArE,EAAAC,EAAA6mD,EAAAkhD,GACAA,EAAA38C,MAAAiC,EAAAC,GACA+sD,EAAAhtD,EAAAC,EAAA+9C,EAAAnnG,EAAAE,EAAApE,EAAA4kD,EAAAyG,EAAAw/C,EAAAt4C,EAAA3I,EAAAwvD,EAAAvyD,EAAAkhD,KAIA,gBAAAA,GAYA,QAAA38C,GAAA1yC,EAAAoC,GACApC,EAAAohG,EAAAphG,EAAAoC,GACAitF,EAAA38C,MAAA1yC,EAAA,GAAAA,EAAA,IAGA,QAAAg8C,KACA/P,EAAAhC,IACAg4D,EAAAvvD,MAAA4/C,EACAjD,EAAArzC,YAGA,QAAAs2C,GAAA3iD,EAAA4gD,GACA,GAAAjpG,GAAAiqG,IAAA5hD,EAAA4gD,IAAAjoG,EAAA84G,EAAAzxD,EAAA4gD,EACAoR,GAAA11D,EAAA2G,EAAA69C,EAAA72C,EAAAzI,EAAA6uD,EAAA/zD,EAAA3jD,EAAA,GAAAsqD,EAAAtqD,EAAA,GAAAmoG,EAAA9gD,EAAAiK,EAAAtyD,EAAA,GAAA6pD,EAAA7pD,EAAA,GAAA04G,EAAA14G,EAAA,GAAA46G,GAAA7S,GACAA,EAAA38C,MAAAzG,EAAA2G,GAGA,QAAAqJ,KACAgmD,EAAAvvD,QACA28C,EAAApzC,UAGA,QAAA+iD,KACAhjD,IACAimD,EAAAvvD,MAAAyvD,EACAF,EAAAhmD,QAAAgjD,EAGA,QAAAkD,GAAAxyD,EAAA4gD,GACA+B,EAAAjC,EAAA1gD,EAAA4gD,GAAAz3C,EAAA7M,EAAA8M,EAAAnG,EAAAyH,EAAAT,EAAAwoD,EAAAjxD,EAAAkxD,EAAArC,EACAiC,EAAAvvD,MAAA4/C,EAGA,QAAA2M,KACA0C,EAAA11D,EAAA2G,EAAA69C,EAAA72C,EAAAzI,EAAA6uD,EAAAlnD,EAAAC,EAAAs3C,EAAAh2C,EAAA+nD,EAAAC,EAAAH,GAAA7S,GACA4S,EAAAhmD,UACAA,IA/CA,GAAAo0C,GAAAv3C,EAAAC,EAAAsB,EAAA+nD,EAAAC,EACA5R,EAAAxkD,EAAA2G,EAAAgH,EAAAzI,EAAA6uD,EAEAiC,GACAvvD,QACAsJ,YACAC,UACA2zC,aAAA,WAAgCP,EAAAO,eAAuBqS,EAAAjmD,UAAAgjD,GACvDnP,WAAA,WAA8BR,EAAAQ,aAAqBoS,EAAAjmD,aA0CnD,OAAAimD,IAUA,QAAA9D,IAAAiD,GACA,MAAAkB,IAAA,WAAuC,MAAAlB,OAGvC,QAAAkB,IAAAC,GAYA,QAAApE,GAAAzrD,GAEA,MADAA,GAAA8vD,EAAA9vD,EAAA,GAAA89C,GAAA99C,EAAA,GAAA89C,KACA99C,EAAA,GAAA1vC,EAAAgyC,EAAAC,EAAAvC,EAAA,GAAA1vC,GAGA,QAAAu7D,GAAA7rB,GAEA,OADAA,EAAA8vD,EAAAjkC,QAAA7rB,EAAA,GAAAsC,GAAAhyC,GAAAiyC,EAAAvC,EAAA,IAAA1vC,MACA0vC,EAAA,GAAAmgD,GAAAngD,EAAA,GAAAmgD,IAGA,QAAA4P,GAAAziG,EAAAoC,GACA,MAAApC,GAAAohG,EAAAphG,EAAAoC,IAAApC,EAAA,GAAAgD,EAAAgyC,EAAAC,EAAAj1C,EAAA,GAAAgD,GAuCA,QAAA0/F,KACAF,EAAA7M,GAAA9sC,EAAAitC,GAAAC,EAAAC,EAAAC,GAAAmL,EACA,IAAAhwB,GAAAgwB,EAAAzxD,EAAA4gD,EAGA,OAFAv7C,GAAAh1C,EAAAoxE,EAAA,GAAApuE,EACAiyC,EAAA7yC,EAAAgvE,EAAA,GAAApuE,EACAyrF,IAGA,QAAAA,KAEA,MADA6K,GAAAC,EAAA,KACA4E,EAvEA,GAAAiD,GAGApsD,EAAAC,EACA4T,EAAA25C,EAEA5vD,EAAA1G,EAAAyG,EAEA2mD,EACAC,EARAv2F,EAAA,IACAhD,EAAA,IAAAoC,EAAA,IACAutC,EAAA,EAAA4gD,EAAA,EACAwF,EAAA,EAAAC,EAAA,EAAAC,EAAA,EACA9W,EAAA,KAAAwjB,EAAAC,GACA32D,EAAA,KAAA42D,EAAAxH,GACAmG,EAAA,GAAAsB,EAAAvB,GAAAkB,EAAAjB,EAmEA,OAjDArD,GAAA9O,OAAA,SAAAA,GACA,MAAAiK,IAAAC,IAAAlK,EAAAiK,IAAAyJ,GAAAJ,EAAA95C,EAAAi6C,EAAAD,EAAAtJ,EAAAlK,OAGA8O,EAAA6E,UAAA,SAAAx2D,GACA,MAAAtiD,WAAAC,QAAAw4G,GAAAn2D,EAAAszD,GAAA3gB,EAAA3yC,EAAAgkD,GAAA,EAAAA,KAAArR,EAAA,KAAAyjB,IAAAnU,KAAAtP,EAAA0T,IAGAsL,EAAAjG,WAAA,SAAA1rD,GACA,MAAAtiD,WAAAC,QAAA04G,EAAA,MAAAr2D,GAAAP,EAAA2G,EAAA1G,EAAAyG,EAAA,KAAA0oD,IAAAnD,GAAAjsD,GAAAO,EAAA,MAAAoG,GAAApG,EAAA,MAAAN,GAAAM,EAAA,MAAAmG,GAAAnG,EAAA,OAAAiiD,KAAA,MAAAxiD,EAAA,OAAAA,EAAA2G,IAAA1G,EAAAyG,KAGAwrD,EAAAl0C,MAAA,SAAAzd,GACA,MAAAtiD,WAAAC,QAAA6Y,GAAAwpC,EAAAk2D,KAAA1/F,GAGAm7F,EAAAn0C,UAAA,SAAAxd,GACA,MAAAtiD,WAAAC,QAAA6V,GAAAwsC,EAAA,GAAApqC,GAAAoqC,EAAA,GAAAk2D,MAAA1iG,EAAAoC,IAGA+7F,EAAA/sB,OAAA,SAAA5kC,GACA,MAAAtiD,WAAAC,QAAAwlD,EAAAnD,EAAA,OAAAgkD,GAAAD,EAAA/jD,EAAA,OAAAgkD,GAAAkS,MAAA/yD,EAAAkjD,GAAAtC,EAAAsC,KAGAsL,EAAAt1C,OAAA,SAAArc,GACA,MAAAtiD,WAAAC,QAAA4rG,EAAAvpD,EAAA,OAAAgkD,GAAAwF,EAAAxpD,EAAA,OAAAgkD,GAAAyF,EAAAzpD,EAAAriD,OAAA,EAAAqiD,EAAA,OAAAgkD,GAAA,EAAAkS,MAAA3M,EAAAlD,GAAAmD,EAAAnD,GAAAoD,EAAApD,KAGAsL,EAAAvrC,UAAA,SAAApmB,GACA,MAAAtiD,WAAAC,QAAA24G,EAAAvB,GAAAkB,EAAAjB,EAAAh1D,KAAAiiD,KAAAqD,GAAA0P,IAGArD,EAAAmD,aAAAnD,GAEAA,EAAAkD,WAAAlD,GAeA,WAGA,MAFAiD,GAAAmB,EAAA76F,MAAA7c,KAAAX,WACAi0G,EAAA5/B,OAAA6iC,EAAA7iC,UACAmkC,KAIA,QAAAO,IAAAV,GACA,GAAAnQ,GAAA,EACAC,EAAAxD,GAAA,EACAxnG,EAAAi7G,GAAAC,GACAj6G,EAAAjB,EAAA+qG,EAAAC,EAMA,OAJA/pG,GAAA46G,UAAA,SAAA12D,GACA,MAAAtiD,WAAAC,OAAA9C,EAAA+qG,EAAA5lD,EAAA,GAAAgkD,GAAA6B,EAAA7lD,EAAA,GAAAgkD,KAAA4B,EAAAS,GAAAR,EAAAQ,KAGAvqG,EAGA,QAAA66G,IAAAvwD,EAAAD,GAMA,QAAAyuD,GAAAphG,EAAAoC,GACA,GAAArC,GAAA+xF,GAAAxqG,EAAA,EAAAU,EAAAinG,GAAA7sF,IAAApa,CACA,QAAA+X,EAAAkvF,GAAAjvF,GAAAhY,GAAA2xD,EAAA55C,EAAA4wF,GAAA3wF,IAPA,GAAAkuF,GAAAe,GAAAr8C,GACA5qD,GAAAkmG,EAAAe,GAAAt8C,IAAA,EACArrD,EAAA,EAAA4mG,GAAA,EAAAlmG,EAAAkmG,GACAv0C,EAAAm4C,GAAAxqG,GAAAU,CAYA,OALAo5G,GAAA7iC,OAAA,SAAAv+D,EAAAoC,GACA,GAAAghG,GAAAzpD,EAAAv3C,CACA,QAAAm5C,GAAAv7C,EAAAojG,GAAAp7G,EAAA8mG,IAAAxnG,GAAA0Y,IAAAojG,KAAAp7G,MAAA,EAAAA,MAGAo5G,EAGA,QAAAiC,MACA,MAAAJ,IAAAE,IACAl5C,MAAA,SACAmnB,QAAA,YAGA,QAAAkyB,MACA,MAAAD,MACAH,WAAA,YACAj5C,MAAA,MACAD,WAAA,UACAnB,QAAA,OACAuoB,SAAA,UAKA,QAAAmyB,IAAAC,GACA,GAAAx7G,GAAAw7G,EAAAr5G,MACA,QACAuoD,MAAA,SAAA1yC,EAAAoC,GAAuC,IAAZ,GAAAlb,IAAA,IAAYA,EAAAc,GAAAw7G,EAAAt8G,GAAAwrD,MAAA1yC,EAAAoC,IACvCm9F,OAAA,WAAoC,IAAZ,GAAAr4G,IAAA,IAAYA,EAAAc,GAAAw7G,EAAAt8G,GAAAq4G,UACpCvjD,UAAA,WAAuC,IAAZ,GAAA90D,IAAA,IAAYA,EAAAc,GAAAw7G,EAAAt8G,GAAA80D,aACvCC,QAAA,WAAqC,IAAZ,GAAA/0D,IAAA,IAAYA,EAAAc,GAAAw7G,EAAAt8G,GAAA+0D,WACrC2zC,aAAA,WAA0C,IAAZ,GAAA1oG,IAAA,IAAYA,EAAAc,GAAAw7G,EAAAt8G,GAAA0oG,gBAC1CC,WAAA,WAAwC,IAAZ,GAAA3oG,IAAA,IAAYA,EAAAc,GAAAw7G,EAAAt8G,GAAA2oG,eASxC,QAAA4T,MAQA,QAAAA,GAAAjU,GACA,GAAAxvF,GAAAwvF,EAAA,GAAAptF,EAAAotF,EAAA,EACA,OAAA98C,GAAA,KACAgxD,EAAAhxD,MAAA1yC,EAAAoC,GAAAswC,IACAixD,EAAAjxD,MAAA1yC,EAAAoC,GAAAswC,KACAkxD,EAAAlxD,MAAA1yC,EAAAoC,GAAAswC,GAZA,GAAA4mD,GACAC,EACAmK,EACAC,EACAC,EACAlxD,EAHAmxD,EAAAP,KACAQ,EAAAT,KAAAx6C,QAAA,QAAAuoB,SAAA,SAAA8xB,WAAA,QACAa,EAAAV,KAAAx6C,QAAA,QAAAuoB,SAAA,SAAA8xB,WAAA,OACAc,GAA4BtxD,MAAA,SAAA1yC,EAAAoC,GAAuBswC,GAAA1yC,EAAAoC,IA8DnD,OApDAqhG,GAAAllC,OAAA,SAAAixB,GACA,GAAAxsF,GAAA6gG,EAAA55C,QACA1lD,EAAAs/F,EAAA75C,YACAhqD,GAAAwvF,EAAA,GAAAjrF,EAAA,IAAAvB,EACAZ,GAAAotF,EAAA,GAAAjrF,EAAA,IAAAvB,CACA,QAAAZ,GAAA,KAAAA,EAAA,MAAApC,IAAA,MAAAA,GAAA,KAAA8jG,EACA1hG,GAAA,MAAAA,EAAA,MAAApC,IAAA,MAAAA,GAAA,KAAA+jG,EACAF,GAAAtlC,OAAAixB,IAGAiU,EAAApU,OAAA,SAAAA,GACA,MAAAiK,IAAAC,IAAAlK,EAAAiK,IAAAiK,IAAAM,EAAAxU,OAAAkK,EAAAlK,GAAAyU,EAAAzU,UAAA0U,EAAA1U,aAGAoU,EAAA7wC,UAAA,SAAApmB,GACA,MAAAtiD,WAAAC,QACA05G,EAAAjxC,UAAApmB,GAAAs3D,EAAAlxC,UAAApmB,GAAAu3D,EAAAnxC,UAAApmB,GACAi3D,GAFAI,EAAAjxC,aAKA6wC,EAAAx5C,MAAA,SAAAzd,GACA,MAAAtiD,WAAAC,QACA05G,EAAA55C,MAAAzd,GAAAs3D,EAAA75C,MAAA,IAAAzd,GAAAu3D,EAAA95C,MAAAzd,GACAi3D,EAAAz5C,UAAA65C,EAAA75C,cAFA65C,EAAA55C,SAKAw5C,EAAAz5C,UAAA,SAAAxd,GACA,IAAAtiD,UAAAC,OAAA,MAAA05G,GAAA75C,WACA,IAAAhnD,GAAA6gG,EAAA55C,QAAAjqD,GAAAwsC,EAAA,GAAApqC,GAAAoqC,EAAA,EAiBA,OAfAk3D,GAAAG,EACA75C,UAAAxd,GACA0rD,aAAAl4F,EAAA,KAAAgD,EAAAZ,EAAA,KAAAY,IAAAhD,EAAA,KAAAgD,EAAAZ,EAAA,KAAAY,KACAqsF,OAAA2U,GAEAL,EAAAG,EACA95C,WAAAhqD,EAAA,KAAAgD,EAAAZ,EAAA,KAAAY,IACAk1F,aAAAl4F,EAAA,KAAAgD,EAAAwwF,GAAApxF,EAAA,IAAAY,EAAAwwF,KAAAxzF,EAAA,KAAAgD,EAAAwwF,GAAApxF,EAAA,KAAAY,EAAAwwF,MACAnE,OAAA2U,GAEAJ,EAAAG,EACA/5C,WAAAhqD,EAAA,KAAAgD,EAAAZ,EAAA,KAAAY,IACAk1F,aAAAl4F,EAAA,KAAAgD,EAAAwwF,GAAApxF,EAAA,KAAAY,EAAAwwF,KAAAxzF,EAAA,KAAAgD,EAAAwwF,GAAApxF,EAAA,KAAAY,EAAAwwF,MACAnE,OAAA2U,GAEAP,GAGAA,EAAAnC,aAAAmC,GAEAA,EAAApC,WAAAoC,GAEAA,EAAAx5C,MAAA,MAGA,QAAAg6C,IAAAh6C,GACA,gBAAAjqD,EAAAoC,GACA,GAAAo3C,GAAAm3C,GAAA3wF,GACAy5C,EAAAk3C,GAAAvuF,GACAY,EAAAinD,EAAAzQ,EAAAC,EACA,QACAz2C,EAAAy2C,EAAAw1C,GAAAjvF,GACAgD,EAAAisF,GAAA7sF,KAKA,QAAA8hG,IAAA3mD,GACA,gBAAAv9C,EAAAoC,GACA,GAAAO,GAAAmvF,GAAA9xF,IAAAoC,KACA9a,EAAAi2D,EAAA56C,GACA2L,EAAA2gF,GAAA3nG,GACA4lB,EAAAyjF,GAAArpG,EACA,QACAi0D,GAAAv7C,EAAAsO,EAAA3L,EAAAuK,GACA4hF,GAAAnsF,GAAAP,EAAAkM,EAAA3L,KAaA,QAAAwhG,MACA,MAAAhG,IAAAiG,IACAn6C,MAAA,QACA+4C,UAAA,SAWA,QAAAqB,MACA,MAAAlG,IAAAmG,IACAr6C,MAAA,SACA+4C,UAAA,SAGA,QAAAuB,IAAA50D,EAAA4gD,GACA,OAAA5gD,EAAA60D,GAAAC,IAAA1V,GAAAwB,GAAA,KAOA,QAAAmU,MACA,MAAAC,IAAAJ,IACAt6C,MAAA,IAAA4rC,IAGA,QAAA8O,IAAAvD,GACA,GAIAwD,GAJAv9G,EAAA82G,GAAAiD,GACAn3C,EAAA5iE,EAAA4iE,MACAD,EAAA3iE,EAAA2iE,UACAkuC,EAAA7wG,EAAA6wG,UAsBA,OAnBA7wG,GAAA4iE,MAAA,SAAAzd,GACA,MAAAtiD,WAAAC,QAAA8/D,EAAAzd,GAAAo4D,GAAAv9G,EAAA6wG,WAAA,MAAA7wG,GAAA4iE,KAGA5iE,EAAA2iE,UAAA,SAAAxd,GACA,MAAAtiD,WAAAC,QAAA6/D,EAAAxd,GAAAo4D,GAAAv9G,EAAA6wG,WAAA,MAAA7wG,GAAA2iE,KAGA3iE,EAAA6wG,WAAA,SAAA1rD,GACA,IAAAtiD,UAAAC,OAAA,MAAAy6G,GAAA,KAAA1M,GACA,IAAA0M,EAAA,MAAAp4D,EAAA,CACA,GAAAxpC,GAAA6rF,GAAA5kC,IACA1lD,EAAAylD,GACAxd,KAAAjoC,EAAA,GAAAvB,EAAAuB,EAAA,GAAAvB,IAAAuB,EAAA,GAAAvB,EAAAuB,EAAA,GAAAvB,IAGA,MADAk1F,GAAA1rD,GACAnlD,GAGAA,EAAA6wG,WAAA,MAGA,QAAA2M,IAAAziG,GACA,MAAAqiG,KAAA1V,GAAA3sF,GAAA,GAGA,QAAA0iG,IAAAlyD,EAAAD,GAOA,QAAAyuD,GAAAphG,EAAAoC,GACArG,EAAA,EAAgBqG,GAAA2sF,GAAAyE,KAAApxF,GAAA2sF,GAAAyE,IACNpxF,EAAA2sF,GAAAyE,KAAApxF,EAAA2sF,GAAAyE,GACV,IAAAzzF,GAAAhE,EAAAgpG,GAAAF,GAAAziG,GAAApa,EACA,QAAA+X,EAAAkvF,GAAAjnG,EAAAgY,GAAAjE,EAAAgE,EAAA4wF,GAAA3oG,EAAAgY,IAVA,GAAAi5C,GAAA03C,GAAA/9C,GACA5qD,EAAA4qD,IAAAD,EAAAs8C,GAAAr8C,GAAA4xD,GAAAvrD,EAAA03C,GAAAh+C,IAAA6xD,GAAAK,GAAAlyD,GAAAkyD,GAAAjyD,IACA72C,EAAAk9C,EAAA8rD,GAAAF,GAAAjyD,GAAA5qD,IAEA,OAAAA,IASAo5G,EAAA7iC,OAAA,SAAAv+D,EAAAoC,GACA,GAAAi8E,GAAAtiF,EAAAqG,EAAArC,EAAAilG,GAAAh9G,GAAA8pG,GAAA9xF,IAAAq+E,IACA,QAAA9iC,GAAAv7C,EAAAq+E,GAAAr2F,EAAA,EAAA+gE,GAAAg8C,GAAAhpG,EAAAgE,EAAA,EAAA/X,IAAA+mG,KAGAqS,GAdAmD,GAiBA,QAAAU,MACA,MAAAhC,IAAA6B,IACA76C,MAAA,OACAi5C,WAAA,QAGA,QAAAgC,IAAAv1D,EAAA4gD,GACA,OAAA5gD,EAAA4gD,GAKA,QAAA4U,MACA,MAAAhH,IAAA+G,IACAj7C,MAAA,QAGA,QAAAm7C,IAAAxyD,EAAAD,GAOA,QAAAyuD,GAAAphG,EAAAoC,GACA,GAAAijG,GAAA5zG,EAAA2Q,EAAAkjG,EAAAt9G,EAAAgY,CACA,QAAAqlG,EAAApW,GAAAqW,GAAA7zG,EAAA4zG,EAAA1U,GAAA2U,IARA,GAAArsD,GAAA03C,GAAA/9C,GACA5qD,EAAA4qD,IAAAD,EAAAs8C,GAAAr8C,IAAAqG,EAAA03C,GAAAh+C,OAAAC,GACAnhD,EAAAwnD,EAAAjxD,EAAA4qD,CAEA,OAAAvH,IAAArjD,GAAAwrG,GAAA0R,IAOA9D,EAAA7iC,OAAA,SAAAv+D,EAAAoC,GACA,GAAAijG,GAAA5zG,EAAA2Q,CACA,QAAAm5C,GAAAv7C,EAAAqlG,GAAAr9G,EAAAyJ,EAAAuzG,GAAAh9G,GAAA8pG,GAAA9xF,IAAAqlG,OAGAjE,GAGA,QAAAmE,MACA,MAAAtC,IAAAmC,IACAn7C,MAAA,SACAmnB,QAAA,YAGA,QAAAo0B,IAAAxlG,EAAAoC,GACA,GAAAq3C,GAAAk3C,GAAAvuF,GAAAY,EAAA2tF,GAAA3wF,GAAAy5C,CACA,QAAAA,EAAAw1C,GAAAjvF,GAAAgD,EAAAisF,GAAA7sF,GAAAY,GAKA,QAAAyiG,MACA,MAAAtH,IAAAqH,IACAv7C,MAAA,SACA+4C,UAAA,IAGA,QAAA0C,IAAA1lG,EAAAoC,GACA,OAAAuuF,GAAAvuF,GAAA6sF,GAAAjvF,GAAAivF,GAAA7sF,IAKA,QAAAujG,MACA,MAAAxH,IAAAuH,IACAz7C,MAAA,OACA+4C,UAAA,GAAAxP,IAGA,QAAAoS,IAAA5lG,EAAAoC,GACA,GAAAq3C,GAAAk3C,GAAAvuF,GAAAY,EAAA,EAAA2tF,GAAA3wF,GAAAy5C,CACA,QAAAA,EAAAw1C,GAAAjvF,GAAAgD,EAAAisF,GAAA7sF,GAAAY,GAOA,QAAA6iG,MACA,MAAA1H,IAAAyH,IACA37C,MAAA,KACA+4C,UAAA,KAGA,QAAA8C,IAAAn2D,EAAA4gD,GACA,OAAAiU,GAAAC,IAAA1V,GAAAwB,GAAA,KAAA5gD,GAOA,QAAAo2D,MACA,GAAA1+G,GAAAs9G,GAAAmB,IACA10B,EAAA/pF,EAAA+pF,OACAvoB,EAAAxhE,EAAAwhE,MAUA,OARAxhE,GAAA+pF,OAAA,SAAA5kC,GACA,MAAAtiD,WAAAC,OAAAinF,IAAA5kC,EAAA,GAAAA,EAAA,MAAAA,EAAA4kC,KAAA5kC,EAAA,IAAAA,EAAA,MAGAnlD,EAAAwhE,OAAA,SAAArc,GACA,MAAAtiD,WAAAC,OAAA0+D,GAAArc,EAAA,GAAAA,EAAA,GAAAA,EAAAriD,OAAA,EAAAqiD,EAAA,YAAAA,EAAAqc,KAAArc,EAAA,GAAAA,EAAA,GAAAA,EAAA,SAGAqc,GAAA,SACAoB,MAAA,SA/9eA,GAsCA+7C,IAAA97D,EAAAF,GACAuC,GAAAy5D,GAAAx7D,MACAy7D,GAAAD,GAAA5/D,KAyEAuE,GAAAp4C,MAAAnK,UAEAoK,GAAAm4C,GAAAn4C,MACAnJ,GAAAshD,GAAAthD,IA0BAqiD,GAAArwC,KAAAwvC,KAAA,IACAc,GAAAtwC,KAAAwvC,KAAA,IACAe,GAAAvwC,KAAAwvC,KAAA,EA8RAjwB,GAAAxyB,UAAA4lD,EAAA5lD,WACAiE,YAAAuuB,EACAhiB,IAAA,SAAAxO,GACA,MAPA,IAOAA,IAAAS,OAEA9C,IAAA,SAAAqC,GACA,MAAAS,MAVA,IAUAT,IAEA8K,IAAA,SAAA9K,EAAAoD,GAEA,MADA3C,MAbA,IAaAT,GAAAoD,EACA3C,MAEAg+C,OAAA,SAAAz+C,GACA,GAAAjC,GAjBA,IAiBAiC,CACA,OAAAjC,KAAA0C,mBAAA1C,IAEA+9G,MAAA,WACA,OAAA/9G,KAAA0C,MArBA,MAqBA1C,EAAA,UAAA0C,MAAA1C,IAEAwB,KAAA,WACA,GAAAA,KACA,QAAAxB,KAAA0C,MAzBA,MAyBA1C,EAAA,IAAAwB,EAAAkD,KAAA1E,EAAAqK,MAAA,GACA,OAAA7I,IAEAgJ,OAAA,WACA,GAAAA,KACA,QAAAxK,KAAA0C,MA9BA,MA8BA1C,EAAA,IAAAwK,EAAA9F,KAAAhC,KAAA1C,GACA,OAAAwK,IAEAmG,QAAA,WACA,GAAAA,KACA,QAAA3Q,KAAA0C,MAnCA,MAmCA1C,EAAA,IAAA2Q,EAAAjM,MAAyEzC,IAAAjC,EAAAqK,MAAA,GAAAhF,MAAA3C,KAAA1C,IACzE,OAAA2Q,IAEA+C,KAAA,WACA,GAAAA,GAAA,CACA,QAAA1T,KAAA0C,MAxCA,MAwCA1C,EAAA,MAAA0T,CACA,OAAAA,IAEAipE,MAAA,WACA,OAAA38E,KAAA0C,MAAA,GA5CA,MA4CA1C,EAAA,WACA,WAEA8lD,KAAA,SAAAlyC,GACA,OAAA5T,KAAA0C,MAhDA,MAgDA1C,EAAA,IAAA4T,EAAAlR,KAAA1C,KAAAqK,MAAA,GAAA3H,OAoGA,IAAAs7G,IAAAn4D,EAAA5lD,SAEA84B,GAAA94B,UAAA8M,EAAA9M,WACAiE,YAAA60B,EACAtoB,IAAAutG,GAAAvtG,IACAuoB,IAAA,SAAA3zB,GAGA,MAFAA,IAAA,GACA3C,KA3JA,IA2JA2C,KACA3C,MAEAg+C,OAAAs9D,GAAAt9D,OACAq9D,MAAAC,GAAAD,MACAvzG,OAAAwzG,GAAAx8G,KACAkS,KAAAsqG,GAAAtqG,KACAipE,MAAAqhC,GAAArhC,MACA72B,KAAAk4D,GAAAl4D,KA2HA,IAEAm4D,IAAA,QAAAC,GAAAz0G,GAGA,QAAAw0G,GAAA7hG,GACA,MAAAlJ,MAAAkwC,IAAAhnC,EAAA3S,GAKA,MARAA,MAMAw0G,EAAAl0C,SAAAm0C,EAEAD,GAXA,GAcAE,GAAA,QAAAD,GAAAz0G,GAGA,QAAA00G,GAAA/hG,GACA,SAAAlJ,KAAAkwC,IAAA,EAAAhnC,EAAA3S,GAKA,MARAA,MAMA00G,EAAAp0C,SAAAm0C,EAEAC,GAvBA,GA0BAC,GAAA,QAAAF,GAAAz0G,GAGA,QAAA20G,GAAAhiG,GACA,QAAAA,GAAA,MAAAlJ,KAAAkwC,IAAAhnC,EAAA3S,GAAA,EAAAyJ,KAAAkwC,IAAA,EAAAhnC,EAAA3S,IAAA,EAKA,MARAA,MAMA20G,EAAAr0C,SAAAm0C,EAEAE,GAnCA,GAsCA91D,GAAAp1C,KAAAmrG,GACAn2D,GAAAI,GAAA,EAqCAS,GAAA,KACAG,GAAA,KACAD,GAAA,KACAE,GAAA,IACAE,GAAA,KACAD,GAAA,MACAE,GAAA,MACAC,GAAA,MACAC,GAAA,MACAR,GAAA,EAAAD,MAeAu1D,GAAA,QAAAJ,GAAA99G,GAGA,QAAAk+G,GAAAliG,GACA,MAAAA,OAAAhc,EAAA,GAAAgc,EAAAhc,GAKA,MARAA,MAMAk+G,EAAAC,UAAAL,EAEAI,GAXA,SAcAE,GAAA,QAAAN,GAAA99G,GAGA,QAAAo+G,GAAApiG,GACA,QAAAA,MAAAhc,EAAA,GAAAgc,EAAAhc,GAAA,EAKA,MARAA,MAMAo+G,EAAAD,UAAAL,EAEAM,GAvBA,SA0BAC,GAAA,QAAAP,GAAA99G,GAGA,QAAAq+G,GAAAriG,GACA,QAAAA,GAAA,KAAAA,MAAAhc,EAAA,GAAAgc,EAAAhc,IAAAgc,GAAA,GAAAA,IAAAhc,EAAA,GAAAgc,EAAAhc,GAAA,KAKA,MARAA,MAMAq+G,EAAAF,UAAAL,EAEAO,GAnCA,SAsCAC,GAAA,EAAAxrG,KAAAmrG,GAGAM,GAAA,QAAAT,GAAA76G,EAAAlD,GAGA,QAAAw+G,GAAAviG,GACA,MAAA/Y,GAAA6P,KAAAkwC,IAAA,OAAAhnC,GAAAlJ,KAAAk1C,KAAAhoD,EAAAgc,GAAAjc,GAHA,GAAAC,GAAA8S,KAAAy8C,KAAA,GAAAtsD,EAAA6P,KAAAJ,IAAA,EAAAzP,MAAAlD,GAAAu+G,GASA,OAHAC,GAAAC,UAAA,SAAAv7G,GAAqC,MAAA66G,GAAA76G,EAAAlD,EAAAu+G,KACrCC,EAAAE,OAAA,SAAA1+G,GAAkC,MAAA+9G,GAAA76G,EAAAlD,IAElCw+G,GAZA,EACA,IAcAG,GAAA,QAAAZ,GAAA76G,EAAAlD,GAGA,QAAA2+G,GAAA1iG,GACA,SAAA/Y,EAAA6P,KAAAkwC,IAAA,OAAAhnC,OAAAlJ,KAAAk1C,KAAAhsC,EAAAhc,GAAAD,GAHA,GAAAC,GAAA8S,KAAAy8C,KAAA,GAAAtsD,EAAA6P,KAAAJ,IAAA,EAAAzP,MAAAlD,GAAAu+G,GASA,OAHAI,GAAAF,UAAA,SAAAv7G,GAAsC,MAAA66G,GAAA76G,EAAAlD,EAAAu+G,KACtCI,EAAAD,OAAA,SAAA1+G,GAAmC,MAAA+9G,GAAA76G,EAAAlD,IAEnC2+G,GAzBA,EACA,IA2BAC,GAAA,QAAAb,GAAA76G,EAAAlD,GAGA,QAAA4+G,GAAA3iG,GACA,QAAAA,EAAA,EAAAA,EAAA,KACA/Y,EAAA6P,KAAAkwC,IAAA,KAAAhnC,GAAAlJ,KAAAk1C,KAAAhoD,EAAAgc,GAAAjc,GACA,EAAAkD,EAAA6P,KAAAkwC,IAAA,MAAAhnC,GAAAlJ,KAAAk1C,KAAAhoD,EAAAgc,GAAAjc,IAAA,EALA,GAAAC,GAAA8S,KAAAy8C,KAAA,GAAAtsD,EAAA6P,KAAAJ,IAAA,EAAAzP,MAAAlD,GAAAu+G,GAWA,OAHAK,GAAAH,UAAA,SAAAv7G,GAAwC,MAAA66G,GAAA76G,EAAAlD,EAAAu+G,KACxCK,EAAAF,OAAA,SAAA1+G,GAAqC,MAAA+9G,GAAA76G,EAAAlD,IAErC4+G,GAxCA,EACA,IAgLAC,GAAA9rG,KAAAmrG,GACAY,GAAA,EAAAD,GAEAE,GAAAD,GADA,IAYAp0D,IAAA5qD,UAAAirD,GAAAjrD,WACAiE,YAAA2mD,GACAgH,OAAA,SAAAh6C,EAAAoC,GACAvX,KAAA2hD,EAAA3/C,KAAA,IAAAhC,KAAAooD,IAAApoD,KAAAsoD,KAAAnzC,EAAA,IAAAnV,KAAAqoD,IAAAroD,KAAAuoD,KAAAhxC,IAEAq5C,UAAA,WACA,OAAA5wD,KAAAsoD,MACAtoD,KAAAsoD,IAAAtoD,KAAAooD,IAAApoD,KAAAuoD,IAAAvoD,KAAAqoD,IACAroD,KAAA2hD,EAAA3/C,KAAA,OAGA2uD,OAAA,SAAAx7C,EAAAoC,GACAvX,KAAA2hD,EAAA3/C,KAAA,IAAAhC,KAAAsoD,KAAAnzC,EAAA,IAAAnV,KAAAuoD,KAAAhxC,IAEAksF,iBAAA,SAAApiD,EAAAyG,EAAA3yC,EAAAoC,GACAvX,KAAA2hD,EAAA3/C,KAAA,KAAAq/C,EAAA,KAAAyG,EAAA,IAAA9nD,KAAAsoD,KAAAnzC,EAAA,IAAAnV,KAAAuoD,KAAAhxC,IAEA+7C,cAAA,SAAAjS,EAAAyG,EAAAgC,EAAAC,EAAA50C,EAAAoC,GACAvX,KAAA2hD,EAAA3/C,KAAA,KAAAq/C,EAAA,KAAAyG,EAAA,KAAAgC,EAAA,KAAAC,EAAA,IAAA/pD,KAAAsoD,KAAAnzC,EAAA,IAAAnV,KAAAuoD,KAAAhxC,IAEAklG,MAAA,SAAAp7D,EAAAyG,EAAAgC,EAAAC,EAAA70C,GACAmsC,KAAAyG,KAAAgC,KAAAC,KAAA70C,IACA,IAAAksC,GAAAphD,KAAAsoD,IACAP,EAAA/nD,KAAAuoD,IACA8iC,EAAAvhC,EAAAzI,EACAiqC,EAAAvhC,EAAAjC,EACA6F,EAAAvM,EAAAC,EACAuM,EAAA7F,EAAAD,EACA40D,EAAA/uD,IAAAC,GAGA,IAAA14C,EAAA,WAAAzJ,OAAA,oBAAAyJ,EAGA,WAAAlV,KAAAsoD,IACAtoD,KAAA2hD,EAAA3/C,KACA,IAAAhC,KAAAsoD,IAAAjH,EAAA,IAAArhD,KAAAuoD,IAAAT,OAKA,IAAA40D,EArDA,KA0DA,GAAAlsG,KAAAgwC,IAAAoN,EAAAy9B,EAAAC,EAAA39B,GA1DA,MA0DAz4C,EAOA,CACA,GAAAynG,GAAA7yD,EAAA1I,EACAw7D,EAAA7yD,EAAAhC,EACA80D,EAAAxxB,IAAAC,IACAwxB,EAAAH,IAAAC,IACAG,EAAAvsG,KAAAwvC,KAAA68D,GACAG,EAAAxsG,KAAAwvC,KAAA08D,GACApgH,EAAA4Y,EAAA1E,KAAAopG,KAAA0C,GAAA9rG,KAAAigD,MAAAosD,EAAAH,EAAAI,IAAA,EAAAC,EAAAC,KAAA,GACAC,EAAA3gH,EAAA0gH,EACAE,EAAA5gH,EAAAygH,CAGAvsG,MAAAgwC,IAAAy8D,EAAA,GA7EA,MA8EAj9G,KAAA2hD,EAAA3/C,KACA,IAAAq/C,EAAA47D,EAAAtvD,EAAA,IAAA7F,EAAAm1D,EAAArvD,GAIA5tD,KAAA2hD,EAAA3/C,KACA,IAAAkT,EAAA,IAAAA,EAAA,UAAA04C,EAAA+uD,EAAAhvD,EAAAivD,GAAA,IAAA58G,KAAAsoD,IAAAjH,EAAA67D,EAAA7xB,EAAA,IAAArrF,KAAAuoD,IAAAT,EAAAo1D,EAAA5xB,OAzBAtrF,MAAA2hD,EAAA3/C,KACA,IAAAhC,KAAAsoD,IAAAjH,EAAA,IAAArhD,KAAAuoD,IAAAT,UA4BA+G,IAAA,SAAA15C,EAAAoC,EAAArC,EAAA65C,EAAAC,EAAAmuD,GACAhoG,KAAAoC,KAAArC,IACA,IAAAi1C,GAAAj1C,EAAA1E,KAAA+0C,IAAAwJ,GACA3E,EAAAl1C,EAAA1E,KAAAk1C,IAAAqJ,GACA3N,EAAAjsC,EAAAg1C,EACApC,EAAAxwC,EAAA6yC,EACAsD,EAAA,EAAAyvD,EACA9zF,EAAA8zF,EAAApuD,EAAAC,IAAAD,CAGA,IAAA75C,EAAA,WAAAzJ,OAAA,oBAAAyJ,EAGA,QAAAlV,KAAAsoD,IACAtoD,KAAA2hD,EAAA3/C,KACA,IAAAo/C,EAAA,IAAA2G,IAKAv3C,KAAAgwC,IAAAxgD,KAAAsoD,IAAAlH,GA5GA,MA4GA5wC,KAAAgwC,IAAAxgD,KAAAuoD,IAAAR,GA5GA,OA6GA/nD,KAAA2hD,EAAA3/C,KACA,IAAAo/C,EAAA,IAAA2G,GAKA7yC,IAGAmU,EAAAmzF,GACAx8G,KAAA2hD,EAAA3/C,KACA,IAAAkT,EAAA,IAAAA,EAAA,QAAAw4C,EAAA,IAAAv4C,EAAAg1C,EAAA,IAAA5yC,EAAA6yC,EACA,IAAAl1C,EAAA,IAAAA,EAAA,QAAAw4C,EAAA,IAAA1tD,KAAAsoD,IAAAlH,EAAA,IAAAphD,KAAAuoD,IAAAR,IAMA1+B,EAAA,IAAAA,IAAAkzF,OACAv8G,KAAA2hD,EAAA3/C,KACA,IAAAkT,EAAA,IAAAA,EAAA,QAAAmU,GAAAizF,IAAA,IAAA5uD,EAAA,IAAA1tD,KAAAsoD,IAAAnzC,EAAAD,EAAA1E,KAAA+0C,IAAAyJ,GAAA,IAAAhvD,KAAAuoD,IAAAhxC,EAAArC,EAAA1E,KAAAk1C,IAAAsJ,OAIAiqB,KAAA,SAAA9jE,EAAAoC,EAAAhG,EAAAiH,GACAxY,KAAA2hD,EAAA3/C,KAAA,IAAAhC,KAAAooD,IAAApoD,KAAAsoD,KAAAnzC,EAAA,IAAAnV,KAAAqoD,IAAAroD,KAAAuoD,KAAAhxC,EAAA,KAAAhG,EAAA,KAAAiH,EAAA,KAAAjH,EAAA,MAEApG,SAAA,WACA,MAAAnL,MAAA2hD,EAAAljD,KAAA,KAmYA,IAAA2+G,IAAAlyD,GAAA3tD,UAAA6tD,GAAA7tD,SAEA6/G,IAAA9xD,KAAA,WACA,GAEAH,GACApkC,EAHAukC,EAAA,GAAAF,IAAAprD,KAAA0oD,GAAA1oD,KAAA2oD,GAAA3oD,KAAAooD,IAAApoD,KAAAqoD,IAAAroD,KAAAsoD,IAAAtoD,KAAAuoD,KACAjiD,EAAAtG,KAAAghB,KAIA,KAAA1a,EAAA,MAAAglD,EAEA,KAAAhlD,EAAAhH,OAAA,MAAAgsD,GAAAtqC,MAAAqqC,GAAA/kD,GAAAglD,CAGA,KADAH,IAAYlsD,OAAAqH,EAAAtH,OAAAssD,EAAAtqC,MAAA,GAAAtZ,OAAA,KACZpB,EAAA6kD,EAAA/xC,OACA,OAAA/c,GAAA,EAAmBA,EAAA,IAAOA,GAC1B0qB,EAAAzgB,EAAArH,OAAA5C,MACA0qB,EAAAznB,OAAA6rD,EAAAnpD,MAAsC/C,OAAA8nB,EAAA/nB,OAAAsH,EAAAtH,OAAA3C,GAAA,GAAAqL,OAAA,KACtCpB,EAAAtH,OAAA3C,GAAAgvD,GAAAtkC,GAKA,OAAAukC,IAGA8xD,GAAA9mF,IAAAmyB,GACA20D,GAAA/zD,UACA+zD,GAAAx0D,MAAAW,GACA6zD,GAAAz2G,KAAA6iD,GACA4zD,GAAAn9D,OAAAyJ,GACA0zD,GAAAvpB,KAAAjqC,GACAwzD,GAAAp/D,OAAAsM,GACA8yD,GAAA3yD,aACA2yD,GAAA58B,KAAA91B,GACA0yD,GAAApsG,KAAA25C,GACAyyD,GAAA3zD,MAAAmB,GACAwyD,GAAAlrB,WAAArnC,GACAuyD,GAAAjoG,EAAA41C,GACAqyD,GAAA7lG,EAAA0zC,EAEA,IAAAoyD,OAAA11G,MAEAwkD,KAeAZ,IAAAhuD,UAAAyH,GAAAzH,WACAiE,YAAA+pD,GACAlqB,MAAA,SAAA37B,GACA,sBAAAA,IAAA1F,KAAAyrD,MAAA,SAAAhgD,MACA,UAAAzL,KAAA0rD,OAAA,MAAA1rD,KACA,IAAA0Z,GAAA2jG,GAAA9gH,KAAA8C,UAAA,EAIA,OAHAqa,GAAA1X,KAAA0D,KACA1F,KAAA6rD,SAAA7rD,KAAA2rD,OAAA3pD,KAAA0X,GACAuyC,GAAAjsD,MACAA,MAEAksD,MAAA,WAEA,MADA,OAAAlsD,KAAA0rD,QAAAQ,GAAAlsD,KAAA,GAAAyL,OAAA,UACAzL,MAEAs9G,MAAA,SAAA53G,GACA,sBAAAA,IAAA1F,KAAAyrD,MAAA,SAAAhgD,MAGA,OAFAzL,MAAAyrD,MAAA,SAAAhoD,EAAA85G,GAA2C73G,EAAAmX,MAAA,MAAApZ,GAAA4a,OAAAk/F,KAC3CnxD,GAAApsD,MACAA,MAEAw9G,SAAA,SAAA93G,GACA,sBAAAA,IAAA1F,KAAAyrD,MAAA,SAAAhgD,MAGA,OAFAzL,MAAAyrD,MAAA/lD,EACA0mD,GAAApsD,MACAA,MAuEA,IAAAivD,IAAA,MACAmB,GAAA5/C,KAAAmrG,GACAzuD,GAAAkD,GAAA,EACAlB,GAAA,EAAAkB,EA0QAS,IAAAtzD,WACAm0D,UAAA,WACA1xD,KAAAy9G,MAAA,GAEA9rD,QAAA,WACA3xD,KAAAy9G,MAAAr+D,KAEA+R,UAAA,WACAnxD,KAAA09G,OAAA,GAEAtsD,QAAA,YACApxD,KAAAy9G,OAAA,IAAAz9G,KAAAy9G,OAAA,IAAAz9G,KAAA09G,SAAA19G,KAAA8wD,SAAAF,YACA5wD,KAAAy9G,MAAA,EAAAz9G,KAAAy9G,OAEA51D,MAAA,SAAA1yC,EAAAoC,GAEA,OADApC,KAAAoC,KACAvX,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAy9G,MAAAz9G,KAAA8wD,SAAAH,OAAAx7C,EAAAoC,GAAAvX,KAAA8wD,SAAA3B,OAAAh6C,EAAAoC,EAAsE,MACpG,QAAAvX,KAAA09G,OAAA,CACA,SAAA19G,KAAA8wD,SAAAH,OAAAx7C,EAAAoC,KA+PA,IAAAq7C,IAAAL,GAAAxB,GAMAsB,IAAA90D,WACAm0D,UAAA,WACA1xD,KAAAsyD,OAAAZ,aAEAC,QAAA,WACA3xD,KAAAsyD,OAAAX,WAEAR,UAAA,WACAnxD,KAAAsyD,OAAAnB,aAEAC,QAAA,WACApxD,KAAAsyD,OAAAlB,WAEAvJ,MAAA,SAAAlnD,EAAAuU,GACAlV,KAAAsyD,OAAAzK,MAAA3yC,EAAA1E,KAAAk1C,IAAA/kD,GAAAuU,GAAA1E,KAAA+0C,IAAA5kD,KA0DA,IAAAyyD,KACAD,KAAA,SAAAx7C,EAAA3G,GACA,GAAAkE,GAAA1E,KAAAwvC,KAAAhvC,EAAAo/C,GACAz4C,GAAAw3C,OAAAj6C,EAAA,GACAyC,EAAAk3C,IAAA,IAAA35C,EAAA,EAAAg6C,MAIAyuD,IACAxqD,KAAA,SAAAx7C,EAAA3G,GACA,GAAAkE,GAAA1E,KAAAwvC,KAAAhvC,EAAA,IACA2G,GAAAw3C,QAAA,EAAAj6C,MACAyC,EAAAg5C,QAAAz7C,MACAyC,EAAAg5C,QAAAz7C,GAAA,EAAAA,GACAyC,EAAAg5C,OAAAz7C,GAAA,EAAAA,GACAyC,EAAAg5C,OAAAz7C,MACAyC,EAAAg5C,OAAA,EAAAz7C,MACAyC,EAAAg5C,OAAA,EAAAz7C,KACAyC,EAAAg5C,OAAAz7C,KACAyC,EAAAg5C,OAAAz7C,EAAA,EAAAA,GACAyC,EAAAg5C,QAAAz7C,EAAA,EAAAA,GACAyC,EAAAg5C,QAAAz7C,KACAyC,EAAAg5C,QAAA,EAAAz7C,KACAyC,EAAAi5C,cAIAgtD,GAAAptG,KAAAwvC,KAAA,KACA69D,GAAA,EAAAD,GACAE,IACA3qD,KAAA,SAAAx7C,EAAA3G,GACA,GAAAuG,GAAA/G,KAAAwvC,KAAAhvC,EAAA6sG,IACA1oG,EAAAoC,EAAAqmG,EACAjmG,GAAAw3C,OAAA,GAAA53C,GACAI,EAAAg5C,OAAAx7C,EAAA,GACAwC,EAAAg5C,OAAA,EAAAp5C,GACAI,EAAAg5C,QAAAx7C,EAAA,GACAwC,EAAAi5C,cAKAmtD,GAAAvtG,KAAAk1C,IAAA0K,GAAA,IAAA5/C,KAAAk1C,IAAA,EAAA0K,GAAA,IACAs+B,GAAAl+E,KAAAk1C,IAAAwJ,GAAA,IAAA6uD,GACApvB,IAAAn+E,KAAA+0C,IAAA2J,GAAA,IAAA6uD,GACAC,IACA7qD,KAAA,SAAAx7C,EAAA3G,GACA,GAAAkE,GAAA1E,KAAAwvC,KANA,kBAMAhvC,GACAmE,EAAAu5E,GAAAx5E,EACAqC,EAAAo3E,GAAAz5E,CACAyC,GAAAw3C,OAAA,GAAAj6C,GACAyC,EAAAg5C,OAAAx7C,EAAAoC,EACA,QAAAlb,GAAA,EAAmBA,EAAA,IAAOA,EAAA,CAC1B,GAAAsE,GAAAuuD,GAAA7yD,EAAA,EACAI,EAAA+T,KAAA+0C,IAAA5kD,GACAjD,EAAA8S,KAAAk1C,IAAA/kD,EACAgX,GAAAg5C,OAAAjzD,EAAAwX,GAAAzY,EAAAyY,GACAyC,EAAAg5C,OAAAl0D,EAAA0Y,EAAAzX,EAAA6Z,EAAA7Z,EAAAyX,EAAA1Y,EAAA8a,GAEAI,EAAAi5C,cAIAqtD,IACA9qD,KAAA,SAAAx7C,EAAA3G,GACA,GAAAO,GAAAf,KAAAwvC,KAAAhvC,GACAmE,GAAA5D,EAAA,CACAoG,GAAAshE,KAAA9jE,IAAA5D,OAIA2sG,GAAA1tG,KAAAwvC,KAAA,GAEAm+D,IACAhrD,KAAA,SAAAx7C,EAAA3G,GACA,GAAAuG,IAAA/G,KAAAwvC,KAAAhvC,GAAA,EAAAktG,IACAvmG,GAAAw3C,OAAA,IAAA53C,GACAI,EAAAg5C,QAAAutD,GAAA3mG,MACAI,EAAAg5C,OAAAutD,GAAA3mG,MACAI,EAAAi5C,cAIAn0D,IAAA,GACAiB,GAAA8S,KAAAwvC,KAAA,KACA7nC,GAAA,EAAA3H,KAAAwvC,KAAA,IACAr/C,GAAA,GAAAwX,GAAA,KACAimG,IACAjrD,KAAA,SAAAx7C,EAAA3G,GACA,GAAAkE,GAAA1E,KAAAwvC,KAAAhvC,EAAArQ,IACAygD,EAAAlsC,EAAA,EACA6yC,EAAA7yC,EAAAiD,GACAkpC,EAAAD,EACA0G,EAAA5yC,EAAAiD,GAAAjD,EACA40C,GAAAzI,EACA0I,EAAAjC,CACAnwC,GAAAw3C,OAAA/N,EAAA2G,GACApwC,EAAAg5C,OAAAtP,EAAAyG,GACAnwC,EAAAg5C,OAAA7G,EAAAC,GACApyC,EAAAg5C,OAAAl0D,GAAA2kD,EAAA1jD,GAAAqqD,EAAArqD,GAAA0jD,EAAA3kD,GAAAsrD,GACApwC,EAAAg5C,OAAAl0D,GAAA4kD,EAAA3jD,GAAAoqD,EAAApqD,GAAA2jD,EAAA5kD,GAAAqrD,GACAnwC,EAAAg5C,OAAAl0D,GAAAqtD,EAAApsD,GAAAqsD,EAAArsD,GAAAosD,EAAArtD,GAAAstD,GACApyC,EAAAg5C,OAAAl0D,GAAA2kD,EAAA1jD,GAAAqqD,EAAAtrD,GAAAsrD,EAAArqD,GAAA0jD,GACAzpC,EAAAg5C,OAAAl0D,GAAA4kD,EAAA3jD,GAAAoqD,EAAArrD,GAAAqrD,EAAApqD,GAAA2jD,GACA1pC,EAAAg5C,OAAAl0D,GAAAqtD,EAAApsD,GAAAqsD,EAAAttD,GAAAstD,EAAArsD,GAAAosD,GACAnyC,EAAAi5C,cAIAzxD,IACAi0D,GACAuqD,GACAG,GACAG,GACAD,GACAG,GACAC,GA+CA7qD,IAAAh2D,WACAm0D,UAAA,WACA1xD,KAAAy9G,MAAA,GAEA9rD,QAAA,WACA3xD,KAAAy9G,MAAAr+D,KAEA+R,UAAA,WACAnxD,KAAAooD,IAAApoD,KAAAsoD,IACAtoD,KAAAqoD,IAAAroD,KAAAuoD,IAAAnJ,IACAp/C,KAAA09G,OAAA,GAEAtsD,QAAA,WACA,OAAApxD,KAAA09G,QACA,OAAA71D,GAAA7nD,UAAAsoD,IAAAtoD,KAAAuoD,IACA,QAAAvoD,KAAA8wD,SAAAH,OAAA3wD,KAAAsoD,IAAAtoD,KAAAuoD,MAEAvoD,KAAAy9G,OAAA,IAAAz9G,KAAAy9G,OAAA,IAAAz9G,KAAA09G,SAAA19G,KAAA8wD,SAAAF,YACA5wD,KAAAy9G,MAAA,EAAAz9G,KAAAy9G,OAEA51D,MAAA,SAAA1yC,EAAAoC,GAEA,OADApC,KAAAoC,KACAvX,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAy9G,MAAAz9G,KAAA8wD,SAAAH,OAAAx7C,EAAAoC,GAAAvX,KAAA8wD,SAAA3B,OAAAh6C,EAAAoC,EAAsE,MACpG,QAAAvX,KAAA09G,OAAA,CAA8B,MAC9B,QAAA19G,KAAA09G,OAAA,EAA8B19G,KAAA8wD,SAAAH,QAAA,EAAA3wD,KAAAooD,IAAApoD,KAAAsoD,KAAA,KAAAtoD,KAAAqoD,IAAAroD,KAAAuoD,KAAA,EAC9B,SAAAV,GAAA7nD,KAAAmV,EAAAoC,GAEAvX,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAsoD,IAAAnzC,EACAnV,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAuoD,IAAAhxC,IAYAk8C,GAAAl2D,WACAm0D,UAAAxxD,GACAyxD,QAAAzxD,GACAixD,UAAA,WACAnxD,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAm0D,IAAAn0D,KAAAq+G,IAAAr+G,KAAAs+G,IACAt+G,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAp0D,KAAAu+G,IAAAv+G,KAAAw+G,IAAAp/D,IACAp/C,KAAA09G,OAAA,GAEAtsD,QAAA,WACA,OAAApxD,KAAA09G,QACA,OACA19G,KAAA8wD,SAAA3B,OAAAnvD,KAAAm0D,IAAAn0D,KAAAo0D,KACAp0D,KAAA8wD,SAAAF,WACA,MAEA,QACA5wD,KAAA8wD,SAAA3B,QAAAnvD,KAAAm0D,IAAA,EAAAn0D,KAAAq+G,KAAA,GAAAr+G,KAAAo0D,IAAA,EAAAp0D,KAAAu+G,KAAA,GACAv+G,KAAA8wD,SAAAH,QAAA3wD,KAAAq+G,IAAA,EAAAr+G,KAAAm0D,KAAA,GAAAn0D,KAAAu+G,IAAA,EAAAv+G,KAAAo0D,KAAA,GACAp0D,KAAA8wD,SAAAF,WACA,MAEA,QACA5wD,KAAA6nD,MAAA7nD,KAAAm0D,IAAAn0D,KAAAo0D,KACAp0D,KAAA6nD,MAAA7nD,KAAAq+G,IAAAr+G,KAAAu+G,KACAv+G,KAAA6nD,MAAA7nD,KAAAs+G,IAAAt+G,KAAAw+G,OAKA32D,MAAA,SAAA1yC,EAAAoC,GAEA,OADApC,KAAAoC,KACAvX,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAm0D,IAAAh/C,EAAAnV,KAAAo0D,IAAA78C,CAA4B,MAC1D,QAAAvX,KAAA09G,OAAA,EAA8B19G,KAAAq+G,IAAAlpG,EAAAnV,KAAAu+G,IAAAhnG,CAA4B,MAC1D,QAAAvX,KAAA09G,OAAA,EAA8B19G,KAAAs+G,IAAAnpG,EAAAnV,KAAAw+G,IAAAjnG,EAA4BvX,KAAA8wD,SAAA3B,QAAAnvD,KAAAooD,IAAA,EAAApoD,KAAAsoD,IAAAnzC,GAAA,GAAAnV,KAAAqoD,IAAA,EAAAroD,KAAAuoD,IAAAhxC,GAAA,EAA4F,MACtJ,SAAAswC,GAAA7nD,KAAAmV,EAAAoC,GAEAvX,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAsoD,IAAAnzC,EACAnV,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAuoD,IAAAhxC,IAYAo8C,GAAAp2D,WACAm0D,UAAA,WACA1xD,KAAAy9G,MAAA,GAEA9rD,QAAA,WACA3xD,KAAAy9G,MAAAr+D,KAEA+R,UAAA,WACAnxD,KAAAooD,IAAApoD,KAAAsoD,IACAtoD,KAAAqoD,IAAAroD,KAAAuoD,IAAAnJ,IACAp/C,KAAA09G,OAAA,GAEAtsD,QAAA,YACApxD,KAAAy9G,OAAA,IAAAz9G,KAAAy9G,OAAA,IAAAz9G,KAAA09G,SAAA19G,KAAA8wD,SAAAF,YACA5wD,KAAAy9G,MAAA,EAAAz9G,KAAAy9G,OAEA51D,MAAA,SAAA1yC,EAAAoC,GAEA,OADApC,KAAAoC,KACAvX,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,CAA8B,MAC9B,QAAA19G,KAAA09G,OAAA,CAA8B,MAC9B,QAAA19G,KAAA09G,OAAA,CAA8B,IAAAt8D,IAAAphD,KAAAooD,IAAA,EAAApoD,KAAAsoD,IAAAnzC,GAAA,EAAA4yC,GAAA/nD,KAAAqoD,IAAA,EAAAroD,KAAAuoD,IAAAhxC,GAAA,CAAoFvX,MAAAy9G,MAAAz9G,KAAA8wD,SAAAH,OAAAvP,EAAA2G,GAAA/nD,KAAA8wD,SAAA3B,OAAA/N,EAAA2G,EAA0E,MAC5L,QAAA/nD,KAAA09G,OAAA,CACA,SAAA71D,GAAA7nD,KAAAmV,EAAAoC,GAEAvX,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAsoD,IAAAnzC,EACAnV,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAuoD,IAAAhxC,IAaAs8C,GAAAt2D,WACA4zD,UAAA,WACAnxD,KAAA0oD,MACA1oD,KAAA2oD,MACA3oD,KAAA+zD,OAAA5C,aAEAC,QAAA,WACA,GAAAj8C,GAAAnV,KAAA0oD,GACAnxC,EAAAvX,KAAA2oD,GACAn3C,EAAA2D,EAAA7V,OAAA,CAEA,IAAAkS,EAAA,EAQA,IAPA,GAKAkI,GALA0nC,EAAAjsC,EAAA,GACA4yC,EAAAxwC,EAAA,GACA4yC,EAAAh1C,EAAA3D,GAAA4vC,EACAgJ,EAAA7yC,EAAA/F,GAAAu2C,EACA1rD,GAAA,IAGAA,GAAAmV,GACAkI,EAAArd,EAAAmV,EACAxR,KAAA+zD,OAAAlM,MACA7nD,KAAAg0D,MAAA7+C,EAAA9Y,IAAA,EAAA2D,KAAAg0D,QAAA5S,EAAA1nC,EAAAywC,GACAnqD,KAAAg0D,MAAAz8C,EAAAlb,IAAA,EAAA2D,KAAAg0D,QAAAjM,EAAAruC,EAAA0wC,GAKApqD,MAAA0oD,GAAA1oD,KAAA2oD,GAAA,KACA3oD,KAAA+zD,OAAA3C,WAEAvJ,MAAA,SAAA1yC,EAAAoC,GACAvX,KAAA0oD,GAAA1mD,MAAAmT,GACAnV,KAAA2oD,GAAA3mD,MAAAuV,IAIA,IAAAknG,IAAA,QAAAjD,GAAA1nD,GAEA,QAAA2qD,GAAA9mG,GACA,WAAAm8C,EAAA,GAAAP,IAAA57C,GAAA,GAAAk8C,IAAAl8C,EAAAm8C,GAOA,MAJA2qD,GAAA3qD,KAAA,SAAAA,GACA,MAAA0nD,IAAA1nD,IAGA2qD,GACC,IAkBDpqD,IAAA92D,WACAm0D,UAAA,WACA1xD,KAAAy9G,MAAA,GAEA9rD,QAAA,WACA3xD,KAAAy9G,MAAAr+D,KAEA+R,UAAA,WACAnxD,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAm0D,IACAn0D,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAhV,IACAp/C,KAAA09G,OAAA,GAEAtsD,QAAA,WACA,OAAApxD,KAAA09G,QACA,OAAA19G,KAAA8wD,SAAAH,OAAA3wD,KAAAm0D,IAAAn0D,KAAAo0D,IAAuD,MACvD,QAAAH,GAAAj0D,UAAAsoD,IAAAtoD,KAAAuoD,MAEAvoD,KAAAy9G,OAAA,IAAAz9G,KAAAy9G,OAAA,IAAAz9G,KAAA09G,SAAA19G,KAAA8wD,SAAAF,YACA5wD,KAAAy9G,MAAA,EAAAz9G,KAAAy9G,OAEA51D,MAAA,SAAA1yC,EAAAoC,GAEA,OADApC,KAAAoC,KACAvX,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAy9G,MAAAz9G,KAAA8wD,SAAAH,OAAAx7C,EAAAoC,GAAAvX,KAAA8wD,SAAA3B,OAAAh6C,EAAAoC,EAAsE,MACpG,QAAAvX,KAAA09G,OAAA,EAA8B19G,KAAAsoD,IAAAnzC,EAAAnV,KAAAuoD,IAAAhxC,CAA4B,MAC1D,QAAAvX,KAAA09G,OAAA,CACA,SAAAzpD,GAAAj0D,KAAAmV,EAAAoC,GAEAvX,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAsoD,IAAAtoD,KAAAm0D,IAAAn0D,KAAAm0D,IAAAh/C,EACAnV,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAp0D,KAAAo0D,IAAA78C,GAIA,IAAAmnG,IAAA,QAAAlD,GAAAlnD,GAEA,QAAAoqD,GAAA/mG,GACA,UAAA08C,IAAA18C,EAAA28C,GAOA,MAJAoqD,GAAApqD,QAAA,SAAAA,GACA,MAAAknD,IAAAlnD,IAGAoqD,GACC,EAODnqD,IAAAh3D,WACAm0D,UAAAxxD,GACAyxD,QAAAzxD,GACAixD,UAAA,WACAnxD,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAm0D,IAAAn0D,KAAAq+G,IAAAr+G,KAAAs+G,IAAAt+G,KAAA2+G,IACA3+G,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAp0D,KAAAu+G,IAAAv+G,KAAAw+G,IAAAx+G,KAAA4+G,IAAAx/D,IACAp/C,KAAA09G,OAAA,GAEAtsD,QAAA,WACA,OAAApxD,KAAA09G,QACA,OACA19G,KAAA8wD,SAAA3B,OAAAnvD,KAAAq+G,IAAAr+G,KAAAu+G,KACAv+G,KAAA8wD,SAAAF,WACA,MAEA,QACA5wD,KAAA8wD,SAAAH,OAAA3wD,KAAAq+G,IAAAr+G,KAAAu+G,KACAv+G,KAAA8wD,SAAAF,WACA,MAEA,QACA5wD,KAAA6nD,MAAA7nD,KAAAq+G,IAAAr+G,KAAAu+G,KACAv+G,KAAA6nD,MAAA7nD,KAAAs+G,IAAAt+G,KAAAw+G,KACAx+G,KAAA6nD,MAAA7nD,KAAA2+G,IAAA3+G,KAAA4+G,OAKA/2D,MAAA,SAAA1yC,EAAAoC,GAEA,OADApC,KAAAoC,KACAvX,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAq+G,IAAAlpG,EAAAnV,KAAAu+G,IAAAhnG,CAA4B,MAC1D,QAAAvX,KAAA09G,OAAA,EAA8B19G,KAAA8wD,SAAA3B,OAAAnvD,KAAAs+G,IAAAnpG,EAAAnV,KAAAw+G,IAAAjnG,EAAkD,MAChF,QAAAvX,KAAA09G,OAAA,EAA8B19G,KAAA2+G,IAAAxpG,EAAAnV,KAAA4+G,IAAArnG,CAA4B,MAC1D,SAAA08C,GAAAj0D,KAAAmV,EAAAoC,GAEAvX,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAsoD,IAAAtoD,KAAAm0D,IAAAn0D,KAAAm0D,IAAAh/C,EACAnV,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAp0D,KAAAo0D,IAAA78C,GAIA,IAAAsnG,IAAA,QAAArD,GAAAlnD,GAEA,QAAAoqD,GAAA/mG,GACA,UAAA48C,IAAA58C,EAAA28C,GAOA,MAJAoqD,GAAApqD,QAAA,SAAAA,GACA,MAAAknD,IAAAlnD,IAGAoqD,GACC,EAODlqD,IAAAj3D,WACAm0D,UAAA,WACA1xD,KAAAy9G,MAAA,GAEA9rD,QAAA,WACA3xD,KAAAy9G,MAAAr+D,KAEA+R,UAAA,WACAnxD,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAm0D,IACAn0D,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAhV,IACAp/C,KAAA09G,OAAA,GAEAtsD,QAAA,YACApxD,KAAAy9G,OAAA,IAAAz9G,KAAAy9G,OAAA,IAAAz9G,KAAA09G,SAAA19G,KAAA8wD,SAAAF,YACA5wD,KAAAy9G,MAAA,EAAAz9G,KAAAy9G,OAEA51D,MAAA,SAAA1yC,EAAAoC,GAEA,OADApC,KAAAoC,KACAvX,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,CAA8B,MAC9B,QAAA19G,KAAA09G,OAAA,CAA8B,MAC9B,QAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAy9G,MAAAz9G,KAAA8wD,SAAAH,OAAA3wD,KAAAm0D,IAAAn0D,KAAAo0D,KAAAp0D,KAAA8wD,SAAA3B,OAAAnvD,KAAAm0D,IAAAn0D,KAAAo0D,IAAkG,MAChI,QAAAp0D,KAAA09G,OAAA,CACA,SAAAzpD,GAAAj0D,KAAAmV,EAAAoC,GAEAvX,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAsoD,IAAAtoD,KAAAm0D,IAAAn0D,KAAAm0D,IAAAh/C,EACAnV,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAp0D,KAAAo0D,IAAA78C,GAIA,IAAAunG,IAAA,QAAAtD,GAAAlnD,GAEA,QAAAoqD,GAAA/mG,GACA,UAAA68C,IAAA78C,EAAA28C,GAOA,MAJAoqD,GAAApqD,QAAA,SAAAA,GACA,MAAAknD,IAAAlnD,IAGAoqD,GACC,EA8BD1pD,IAAAz3D,WACAm0D,UAAA,WACA1xD,KAAAy9G,MAAA,GAEA9rD,QAAA,WACA3xD,KAAAy9G,MAAAr+D,KAEA+R,UAAA,WACAnxD,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAm0D,IACAn0D,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAhV,IACAp/C,KAAA00D,OAAA10D,KAAA40D,OAAA50D,KAAA80D,OACA90D,KAAA20D,QAAA30D,KAAA60D,QAAA70D,KAAA+0D,QACA/0D,KAAA09G,OAAA,GAEAtsD,QAAA,WACA,OAAApxD,KAAA09G,QACA,OAAA19G,KAAA8wD,SAAAH,OAAA3wD,KAAAm0D,IAAAn0D,KAAAo0D,IAAuD,MACvD,QAAAp0D,KAAA6nD,MAAA7nD,UAAAm0D,IAAAn0D,KAAAo0D,MAEAp0D,KAAAy9G,OAAA,IAAAz9G,KAAAy9G,OAAA,IAAAz9G,KAAA09G,SAAA19G,KAAA8wD,SAAAF,YACA5wD,KAAAy9G,MAAA,EAAAz9G,KAAAy9G,OAEA51D,MAAA,SAAA1yC,EAAAoC,GAGA,GAFApC,KAAAoC,KAEAvX,KAAA09G,OAAA,CACA,GAAAqB,GAAA/+G,KAAAm0D,IAAAh/C,EACA6pG,EAAAh/G,KAAAo0D,IAAA78C,CACAvX,MAAA80D,OAAAtkD,KAAAwvC,KAAAhgD,KAAA+0D,QAAAvkD,KAAAkwC,IAAAq+D,IAAAC,IAAAh/G,KAAAk1D,SAGA,OAAAl1D,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAy9G,MAAAz9G,KAAA8wD,SAAAH,OAAAx7C,EAAAoC,GAAAvX,KAAA8wD,SAAA3B,OAAAh6C,EAAAoC,EAAsE,MACpG,QAAAvX,KAAA09G,OAAA,CAA8B,MAC9B,QAAA19G,KAAA09G,OAAA,CACA,SAAAjpD,GAAAz0D,KAAAmV,EAAAoC,GAGAvX,KAAA00D,OAAA10D,KAAA40D,OAAA50D,KAAA40D,OAAA50D,KAAA80D,OACA90D,KAAA20D,QAAA30D,KAAA60D,QAAA70D,KAAA60D,QAAA70D,KAAA+0D,QACA/0D,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAsoD,IAAAtoD,KAAAm0D,IAAAn0D,KAAAm0D,IAAAh/C,EACAnV,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAp0D,KAAAo0D,IAAA78C,GAIA,IAAA0nG,IAAA,QAAAzD,GAAAvmD,GAEA,QAAAgqD,GAAAtnG,GACA,MAAAs9C,GAAA,GAAAD,IAAAr9C,EAAAs9C,GAAA,GAAAZ,IAAA18C,EAAA,GAOA,MAJAsnG,GAAAhqD,MAAA,SAAAA,GACA,MAAAumD,IAAAvmD,IAGAgqD,GACC,GAOD9pD,IAAA53D,WACAm0D,UAAAxxD,GACAyxD,QAAAzxD,GACAixD,UAAA,WACAnxD,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAm0D,IAAAn0D,KAAAq+G,IAAAr+G,KAAAs+G,IAAAt+G,KAAA2+G,IACA3+G,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAp0D,KAAAu+G,IAAAv+G,KAAAw+G,IAAAx+G,KAAA4+G,IAAAx/D,IACAp/C,KAAA00D,OAAA10D,KAAA40D,OAAA50D,KAAA80D,OACA90D,KAAA20D,QAAA30D,KAAA60D,QAAA70D,KAAA+0D,QACA/0D,KAAA09G,OAAA,GAEAtsD,QAAA,WACA,OAAApxD,KAAA09G,QACA,OACA19G,KAAA8wD,SAAA3B,OAAAnvD,KAAAq+G,IAAAr+G,KAAAu+G,KACAv+G,KAAA8wD,SAAAF,WACA,MAEA,QACA5wD,KAAA8wD,SAAAH,OAAA3wD,KAAAq+G,IAAAr+G,KAAAu+G,KACAv+G,KAAA8wD,SAAAF,WACA,MAEA,QACA5wD,KAAA6nD,MAAA7nD,KAAAq+G,IAAAr+G,KAAAu+G,KACAv+G,KAAA6nD,MAAA7nD,KAAAs+G,IAAAt+G,KAAAw+G,KACAx+G,KAAA6nD,MAAA7nD,KAAA2+G,IAAA3+G,KAAA4+G,OAKA/2D,MAAA,SAAA1yC,EAAAoC,GAGA,GAFApC,KAAAoC,KAEAvX,KAAA09G,OAAA,CACA,GAAAqB,GAAA/+G,KAAAm0D,IAAAh/C,EACA6pG,EAAAh/G,KAAAo0D,IAAA78C,CACAvX,MAAA80D,OAAAtkD,KAAAwvC,KAAAhgD,KAAA+0D,QAAAvkD,KAAAkwC,IAAAq+D,IAAAC,IAAAh/G,KAAAk1D,SAGA,OAAAl1D,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAq+G,IAAAlpG,EAAAnV,KAAAu+G,IAAAhnG,CAA4B,MAC1D,QAAAvX,KAAA09G,OAAA,EAA8B19G,KAAA8wD,SAAA3B,OAAAnvD,KAAAs+G,IAAAnpG,EAAAnV,KAAAw+G,IAAAjnG,EAAkD,MAChF,QAAAvX,KAAA09G,OAAA,EAA8B19G,KAAA2+G,IAAAxpG,EAAAnV,KAAA4+G,IAAArnG,CAA4B,MAC1D,SAAAk9C,GAAAz0D,KAAAmV,EAAAoC,GAGAvX,KAAA00D,OAAA10D,KAAA40D,OAAA50D,KAAA40D,OAAA50D,KAAA80D,OACA90D,KAAA20D,QAAA30D,KAAA60D,QAAA70D,KAAA60D,QAAA70D,KAAA+0D,QACA/0D,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAsoD,IAAAtoD,KAAAm0D,IAAAn0D,KAAAm0D,IAAAh/C,EACAnV,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAp0D,KAAAo0D,IAAA78C,GAIA,IAAA2nG,IAAA,QAAA1D,GAAAvmD,GAEA,QAAAgqD,GAAAtnG,GACA,MAAAs9C,GAAA,GAAAE,IAAAx9C,EAAAs9C,GAAA,GAAAV,IAAA58C,EAAA,GAOA,MAJAsnG,GAAAhqD,MAAA,SAAAA,GACA,MAAAumD,IAAAvmD,IAGAgqD,GACC,GAOD7pD,IAAA73D,WACAm0D,UAAA,WACA1xD,KAAAy9G,MAAA,GAEA9rD,QAAA,WACA3xD,KAAAy9G,MAAAr+D,KAEA+R,UAAA,WACAnxD,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAm0D,IACAn0D,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAhV,IACAp/C,KAAA00D,OAAA10D,KAAA40D,OAAA50D,KAAA80D,OACA90D,KAAA20D,QAAA30D,KAAA60D,QAAA70D,KAAA+0D,QACA/0D,KAAA09G,OAAA,GAEAtsD,QAAA,YACApxD,KAAAy9G,OAAA,IAAAz9G,KAAAy9G,OAAA,IAAAz9G,KAAA09G,SAAA19G,KAAA8wD,SAAAF,YACA5wD,KAAAy9G,MAAA,EAAAz9G,KAAAy9G,OAEA51D,MAAA,SAAA1yC,EAAAoC,GAGA,GAFApC,KAAAoC,KAEAvX,KAAA09G,OAAA,CACA,GAAAqB,GAAA/+G,KAAAm0D,IAAAh/C,EACA6pG,EAAAh/G,KAAAo0D,IAAA78C,CACAvX,MAAA80D,OAAAtkD,KAAAwvC,KAAAhgD,KAAA+0D,QAAAvkD,KAAAkwC,IAAAq+D,IAAAC,IAAAh/G,KAAAk1D,SAGA,OAAAl1D,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,CAA8B,MAC9B,QAAA19G,KAAA09G,OAAA,CAA8B,MAC9B,QAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAy9G,MAAAz9G,KAAA8wD,SAAAH,OAAA3wD,KAAAm0D,IAAAn0D,KAAAo0D,KAAAp0D,KAAA8wD,SAAA3B,OAAAnvD,KAAAm0D,IAAAn0D,KAAAo0D,IAAkG,MAChI,QAAAp0D,KAAA09G,OAAA,CACA,SAAAjpD,GAAAz0D,KAAAmV,EAAAoC,GAGAvX,KAAA00D,OAAA10D,KAAA40D,OAAA50D,KAAA40D,OAAA50D,KAAA80D,OACA90D,KAAA20D,QAAA30D,KAAA60D,QAAA70D,KAAA60D,QAAA70D,KAAA+0D,QACA/0D,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAsoD,IAAAtoD,KAAAm0D,IAAAn0D,KAAAm0D,IAAAh/C,EACAnV,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAuoD,IAAAvoD,KAAAo0D,IAAAp0D,KAAAo0D,IAAA78C,GAIA,IAAA4nG,IAAA,QAAA3D,GAAAvmD,GAEA,QAAAgqD,GAAAtnG,GACA,MAAAs9C,GAAA,GAAAG,IAAAz9C,EAAAs9C,GAAA,GAAAT,IAAA78C,EAAA,GAOA,MAJAsnG,GAAAhqD,MAAA,SAAAA,GACA,MAAAumD,IAAAvmD,IAGAgqD,GACC,GAMD5pD,IAAA93D,WACAm0D,UAAAxxD,GACAyxD,QAAAzxD,GACAixD,UAAA,WACAnxD,KAAA09G,OAAA,GAEAtsD,QAAA,WACApxD,KAAA09G,QAAA19G,KAAA8wD,SAAAF,aAEA/I,MAAA,SAAA1yC,EAAAoC,GACApC,KAAAoC,KACAvX,KAAA09G,OAAA19G,KAAA8wD,SAAAH,OAAAx7C,EAAAoC,IACAvX,KAAA09G,OAAA,EAAA19G,KAAA8wD,SAAA3B,OAAAh6C,EAAAoC,MA+CAw+C,GAAAx4D,WACAm0D,UAAA,WACA1xD,KAAAy9G,MAAA,GAEA9rD,QAAA,WACA3xD,KAAAy9G,MAAAr+D,KAEA+R,UAAA,WACAnxD,KAAAooD,IAAApoD,KAAAsoD,IACAtoD,KAAAqoD,IAAAroD,KAAAuoD,IACAvoD,KAAAo/G,IAAAhgE,IACAp/C,KAAA09G,OAAA,GAEAtsD,QAAA,WACA,OAAApxD,KAAA09G,QACA,OAAA19G,KAAA8wD,SAAAH,OAAA3wD,KAAAsoD,IAAAtoD,KAAAuoD,IAAuD,MACvD,QAAAuN,GAAA91D,UAAAo/G,IAAAvpD,GAAA71D,UAAAo/G,OAEAp/G,KAAAy9G,OAAA,IAAAz9G,KAAAy9G,OAAA,IAAAz9G,KAAA09G,SAAA19G,KAAA8wD,SAAAF,YACA5wD,KAAAy9G,MAAA,EAAAz9G,KAAAy9G,OAEA51D,MAAA,SAAA1yC,EAAAoC,GACA,GAAA83C,GAAAjQ,GAGA,IADAjqC,KAAAoC,KACApC,IAAAnV,KAAAsoD,KAAA/wC,IAAAvX,KAAAuoD,IAAA,CACA,OAAAvoD,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAy9G,MAAAz9G,KAAA8wD,SAAAH,OAAAx7C,EAAAoC,GAAAvX,KAAA8wD,SAAA3B,OAAAh6C,EAAAoC,EAAsE,MACpG,QAAAvX,KAAA09G,OAAA,CAA8B,MAC9B,QAAA19G,KAAA09G,OAAA,EAA8B5nD,GAAA91D,KAAA61D,GAAA71D,KAAAqvD,EAAAmG,GAAAx1D,KAAAmV,EAAAoC,IAAA83C,EAA0D,MACxF,SAAAyG,GAAA91D,UAAAo/G,IAAA/vD,EAAAmG,GAAAx1D,KAAAmV,EAAAoC,IAGAvX,KAAAooD,IAAApoD,KAAAsoD,IAAAtoD,KAAAsoD,IAAAnzC,EACAnV,KAAAqoD,IAAAroD,KAAAuoD,IAAAvoD,KAAAuoD,IAAAhxC,EACAvX,KAAAo/G,IAAA/vD,MAQA2G,GAAAz4D,UAAAT,OAAAiT,OAAAgmD,GAAAx4D,YAAAsqD,MAAA,SAAA1yC,EAAAoC,GACAw+C,GAAAx4D,UAAAsqD,MAAAtrD,KAAAyD,KAAAuX,EAAApC,IAOA8gD,GAAA14D,WACA4xD,OAAA,SAAAh6C,EAAAoC,GAA0BvX,KAAA8wD,SAAA3B,OAAA53C,EAAApC,IAC1By7C,UAAA,WAAyB5wD,KAAA8wD,SAAAF,aACzBD,OAAA,SAAAx7C,EAAAoC,GAA0BvX,KAAA8wD,SAAAH,OAAAp5C,EAAApC,IAC1Bm+C,cAAA,SAAAjS,EAAAyG,EAAAgC,EAAAC,EAAA50C,EAAAoC,GAAiDvX,KAAA8wD,SAAAwC,cAAAxL,EAAAzG,EAAA0I,EAAAD,EAAAvyC,EAAApC,KAejDihD,GAAA74D,WACAm0D,UAAA,WACA1xD,KAAAy9G,MAAA,GAEA9rD,QAAA,WACA3xD,KAAAy9G,MAAAr+D,KAEA+R,UAAA,WACAnxD,KAAA0oD,MACA1oD,KAAA2oD,OAEAyI,QAAA,WACA,GAAAj8C,GAAAnV,KAAA0oD,GACAnxC,EAAAvX,KAAA2oD,GACAxrD,EAAAgY,EAAA7V,MAEA,IAAAnC,EAEA,GADA6C,KAAAy9G,MAAAz9G,KAAA8wD,SAAAH,OAAAx7C,EAAA,GAAAoC,EAAA,IAAAvX,KAAA8wD,SAAA3B,OAAAh6C,EAAA,GAAAoC,EAAA,IACA,IAAApa,EACA6C,KAAA8wD,SAAAH,OAAAx7C,EAAA,GAAAoC,EAAA,QAIA,QAFA8nG,GAAAhpD,GAAAlhD,GACAmqG,EAAAjpD,GAAA9+C,GACAsrC,EAAA,EAAAC,EAAA,EAAgCA,EAAA3lD,IAAQ0lD,IAAAC,EACxC9iD,KAAA8wD,SAAAwC,cAAA+rD,EAAA,GAAAx8D,GAAAy8D,EAAA,GAAAz8D,GAAAw8D,EAAA,GAAAx8D,GAAAy8D,EAAA,GAAAz8D,GAAA1tC,EAAA2tC,GAAAvrC,EAAAurC,KAKA9iD,KAAAy9G,OAAA,IAAAz9G,KAAAy9G,OAAA,IAAAtgH,IAAA6C,KAAA8wD,SAAAF,YACA5wD,KAAAy9G,MAAA,EAAAz9G,KAAAy9G,MACAz9G,KAAA0oD,GAAA1oD,KAAA2oD,GAAA,MAEAd,MAAA,SAAA1yC,EAAAoC,GACAvX,KAAA0oD,GAAA1mD,MAAAmT,GACAnV,KAAA2oD,GAAA3mD,MAAAuV,KAgCAg/C,GAAAh5D,WACAm0D,UAAA,WACA1xD,KAAAy9G,MAAA,GAEA9rD,QAAA,WACA3xD,KAAAy9G,MAAAr+D,KAEA+R,UAAA,WACAnxD,KAAA0oD,GAAA1oD,KAAA2oD,GAAAvJ,IACAp/C,KAAA09G,OAAA,GAEAtsD,QAAA,WACA,EAAApxD,KAAAw2D,IAAAx2D,KAAAw2D,GAAA,OAAAx2D,KAAA09G,QAAA19G,KAAA8wD,SAAAH,OAAA3wD,KAAA0oD,GAAA1oD,KAAA2oD,KACA3oD,KAAAy9G,OAAA,IAAAz9G,KAAAy9G,OAAA,IAAAz9G,KAAA09G,SAAA19G,KAAA8wD,SAAAF,YACA5wD,KAAAy9G,OAAA,IAAAz9G,KAAAw2D,GAAA,EAAAx2D,KAAAw2D,GAAAx2D,KAAAy9G,MAAA,EAAAz9G,KAAAy9G,QAEA51D,MAAA,SAAA1yC,EAAAoC,GAEA,OADApC,KAAAoC,KACAvX,KAAA09G,QACA,OAAA19G,KAAA09G,OAAA,EAA8B19G,KAAAy9G,MAAAz9G,KAAA8wD,SAAAH,OAAAx7C,EAAAoC,GAAAvX,KAAA8wD,SAAA3B,OAAAh6C,EAAAoC,EAAsE,MACpG,QAAAvX,KAAA09G,OAAA,CACA,SACA,GAAA19G,KAAAw2D,IAAA,EACAx2D,KAAA8wD,SAAAH,OAAA3wD,KAAA0oD,GAAAnxC,GACAvX,KAAA8wD,SAAAH,OAAAx7C,EAAAoC,OACS,CACT,GAAA8pC,GAAArhD,KAAA0oD,IAAA,EAAA1oD,KAAAw2D,IAAArhD,EAAAnV,KAAAw2D,EACAx2D,MAAA8wD,SAAAH,OAAAtP,EAAArhD,KAAA2oD,IACA3oD,KAAA8wD,SAAAH,OAAAtP,EAAA9pC,IAKAvX,KAAA0oD,GAAAvzC,EAAAnV,KAAA2oD,GAAApxC,GAgBA,IAAA8/C,IAAA3vD,MAAAnK,UAAAoK,MA4KA+wD,GAAA,mBACAG,GAAA,mBACAE,GAAA,8DACAC,GAAA,+FACAC,GAAA,0FACAE,GAAA,2HACAC,GAAA,8FACAE,GAAA,0HACAC,IACAgmD,UAAA,SACAC,aAAA,SACAC,KAAA,MACAC,WAAA,QACAC,MAAA,SACAC,MAAA,SACAC,OAAA,SACAC,MAAA,EACAC,eAAA,SACAC,KAAA,IACAC,WAAA,QACAC,MAAA,SACAC,UAAA,SACAC,UAAA,QACAC,WAAA,QACAC,UAAA,SACAC,MAAA,SACAC,eAAA,QACAC,SAAA,SACAC,QAAA,SACAC,KAAA,MACAC,SAAA,IACAC,SAAA,MACAC,cAAA,SACAC,SAAA,SACAC,UAAA,MACAC,SAAA,SACAC,UAAA,SACAC,YAAA,QACAC,eAAA,QACAC,WAAA,SACAC,WAAA,SACAC,QAAA,QACAC,WAAA,SACAC,aAAA,QACAC,cAAA,QACAC,cAAA,QACAC,cAAA,QACAC,cAAA,MACAC,WAAA,QACAC,SAAA,SACAC,YAAA,MACAC,QAAA,QACAC,QAAA,QACAC,WAAA,QACAC,UAAA,SACAC,YAAA,SACAC,YAAA,QACAC,QAAA,SACAC,UAAA,SACAC,WAAA,SACAC,KAAA,SACAC,UAAA,SACAC,KAAA,QACAC,MAAA,MACAC,YAAA,SACAC,KAAA,QACAC,SAAA,SACAC,QAAA,SACAC,UAAA,SACAC,OAAA,QACAC,MAAA,SACAC,MAAA,SACAC,SAAA,SACAC,cAAA,SACAC,UAAA,QACAC,aAAA,SACAC,UAAA,SACAC,WAAA,SACAC,UAAA,SACAC,qBAAA,SACAC,UAAA,SACAC,WAAA,QACAC,UAAA,SACAC,UAAA,SACAC,YAAA,SACAC,cAAA,QACAC,aAAA,QACAC,eAAA,QACAC,eAAA,QACAC,eAAA,SACAC,YAAA,SACAC,KAAA,MACAC,UAAA,QACAC,MAAA,SACAC,QAAA,SACAC,OAAA,QACAC,iBAAA,QACAC,WAAA,IACAC,aAAA,SACAC,aAAA,QACAC,eAAA,QACAC,gBAAA,QACAC,kBAAA,MACAC,gBAAA,QACAC,gBAAA,SACAC,aAAA,QACAC,UAAA,SACAC,UAAA,SACAC,SAAA,SACAC,YAAA,SACAC,KAAA,IACAC,QAAA,SACAC,MAAA,QACAC,UAAA,QACAC,OAAA,SACAC,UAAA,SACAC,OAAA,SACAC,cAAA,SACAC,UAAA,SACAC,cAAA,SACAC,cAAA,SACAC,WAAA,SACAC,UAAA,SACAC,KAAA,SACAC,KAAA,SACAC,KAAA,SACAC,WAAA,SACAC,OAAA,QACAC,cAAA,QACAC,IAAA,SACAC,UAAA,SACAC,UAAA,QACAC,YAAA,QACAC,OAAA,SACAC,WAAA,SACAC,SAAA,QACAC,SAAA,SACAC,OAAA,SACAC,OAAA,SACAC,QAAA,QACAC,UAAA,QACAC,UAAA,QACAC,UAAA,QACAC,KAAA,SACAC,YAAA,MACAC,UAAA,QACAnO,IAAA,SACAoO,KAAA,MACAC,QAAA,SACAC,OAAA,SACAC,UAAA,QACAC,OAAA,SACAC,MAAA,SACAC,MAAA,SACAC,WAAA,SACAC,OAAA,SACAC,YAAA,SAGAnwD,IAAAE,GAAAjmD,IACAm2G,YAAA,WACA,MAAA1oH,MAAAy5D,MAAAivD,eAEAv9G,SAAA,WACA,MAAAnL,MAAAy5D,MAAA,MA+CAnB,GAAAM,GAAAc,GAAAze,GAAAud,IACAvhD,SAAA,SAAAkB,GAEA,MADAA,GAAA,MAAAA,EAvNA,EADA,GAwNA3H,KAAAkwC,IAvNA,EADA,GAwNAvoC,GACA,GAAAygD,IAAA54D,KAAAkV,EAAAiD,EAAAnY,KAAA4G,EAAAuR,EAAAnY,KAAAa,EAAAsX,EAAAnY,KAAAg4C,UAEAjiC,OAAA,SAAAoC,GAEA,MADAA,GAAA,MAAAA,EA5NA,GA4NA3H,KAAAkwC,IA5NA,GA4NAvoC,GACA,GAAAygD,IAAA54D,KAAAkV,EAAAiD,EAAAnY,KAAA4G,EAAAuR,EAAAnY,KAAAa,EAAAsX,EAAAnY,KAAAg4C,UAEAyhB,IAAA,WACA,MAAAz5D,OAEA0oH,YAAA,WACA,UAAA1oH,KAAAkV,GAAAlV,KAAAkV,GAAA,KACA,GAAAlV,KAAA4G,GAAA5G,KAAA4G,GAAA,KACA,GAAA5G,KAAAa,GAAAb,KAAAa,GAAA,KACA,GAAAb,KAAAg4C,SAAAh4C,KAAAg4C,SAAA,GAEA7sC,SAAA,WACA,GAAAxK,GAAAX,KAAAg4C,OACA,OADyBr3C,GAAA85B,MAAA95B,GAAA,EAAA6P,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,EAAA3P,KACzB,IAAAA,EAAA,gBACA6P,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,IAAAE,KAAA4rD,MAAAp8D,KAAAkV,IAAA,SACA1E,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,IAAAE,KAAA4rD,MAAAp8D,KAAA4G,IAAA,SACA4J,KAAAJ,IAAA,EAAAI,KAAAF,IAAA,IAAAE,KAAA4rD,MAAAp8D,KAAAa,IAAA,KACA,IAAAF,EAAA,SAAAA,EAAA,SAgDA23D,GAAAqB,GAAAE,GAAA5e,GAAAud,IACAvhD,SAAA,SAAAkB,GAEA,MADAA,GAAA,MAAAA,EA/RA,EADA,GAgSA3H,KAAAkwC,IA/RA,EADA,GAgSAvoC,GACA,GAAAwhD,IAAA35D,KAAAwY,EAAAxY,KAAAtC,EAAAsC,KAAA1D,EAAA6b,EAAAnY,KAAAg4C,UAEAjiC,OAAA,SAAAoC,GAEA,MADAA,GAAA,MAAAA,EApSA,GAoSA3H,KAAAkwC,IApSA,GAoSAvoC,GACA,GAAAwhD,IAAA35D,KAAAwY,EAAAxY,KAAAtC,EAAAsC,KAAA1D,EAAA6b,EAAAnY,KAAAg4C,UAEAyhB,IAAA,WACA,GAAAjhD,GAAAxY,KAAAwY,EAAA,SAAAxY,KAAAwY,EAAA,GACA9a,EAAA+8B,MAAAjiB,IAAAiiB,MAAAz6B,KAAAtC,GAAA,EAAAsC,KAAAtC,EACApB,EAAA0D,KAAA1D,EACA09D,EAAA19D,KAAA,GAAAA,EAAA,EAAAA,GAAAoB,EACAq8D,EAAA,EAAAz9D,EAAA09D,CACA,WAAApB,IACAkB,GAAAthD,GAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAuhD,EAAAC,GACAF,GAAAthD,EAAAuhD,EAAAC,GACAF,GAAAthD,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAuhD,EAAAC,GACAh6D,KAAAg4C,UAGA0wE,YAAA,WACA,UAAA1oH,KAAAtC,GAAAsC,KAAAtC,GAAA,GAAA+8B,MAAAz6B,KAAAtC,KACA,GAAAsC,KAAA1D,GAAA0D,KAAA1D,GAAA,GACA,GAAA0D,KAAAg4C,SAAAh4C,KAAAg4C,SAAA,KAYA,IAAAoiB,IAAA5pD,KAAAmrG,GAAA,IACA3gD,GAAA,IAAAxqD,KAAAmrG,GAGAphD,GAAA,OACAC,GAAA,EACAC,GAAA,QACArL,GAAA,KACAC,GAAA,KACAuL,GAAA,EAAAvL,MACAsL,GAAAtL,QA4BAiJ,IAAA4B,GAAAQ,GAAAzf,GAAAud,IACAvhD,SAAA,SAAAkB,GACA,UAAA+hD,IAAAl6D,KAAA1D,EArCA,IAqCA,MAAA6b,EAAA,EAAAA,GAAAnY,KAAAW,EAAAX,KAAAa,EAAAb,KAAAg4C,UAEAjiC,OAAA,SAAAoC,GACA,UAAA+hD,IAAAl6D,KAAA1D,EAxCA,IAwCA,MAAA6b,EAAA,EAAAA,GAAAnY,KAAAW,EAAAX,KAAAa,EAAAb,KAAAg4C,UAEAyhB,IAAA,WACA,GAAAliD,IAAAvX,KAAA1D,EAAA,QACA6Y,EAAAslB,MAAAz6B,KAAAW,GAAA4W,IAAAvX,KAAAW,EAAA,IACAmX,EAAA2iB,MAAAz6B,KAAAa,GAAA0W,IAAAvX,KAAAa,EAAA,GAIA,OAHA0W,GAAAijD,GAAAK,GAAAtjD,GACApC,EAAAolD,GAAAM,GAAA1lD,GACA2C,EAAA2iD,GAAAI,GAAA/iD,GACA,GAAA8gD,IACAkC,GAAA,UAAA3lD,EAAA,UAAAoC,EAAA,SAAAO,GACAgjD,IAAA,QAAA3lD,EAAA,UAAAoC,EAAA,QAAAO,GACAgjD,GAAA,SAAA3lD,EAAA,SAAAoC,EAAA,UAAAO,GACA9X,KAAAg4C,aAuCAsgB,GAAA6B,GAAAc,GAAAhgB,GAAAud,IACAvhD,SAAA,SAAAkB,GACA,UAAAgiD,IAAAn6D,KAAAwY,EAAAxY,KAAAvD,EAAAuD,KAAA1D,EA9FA,IA8FA,MAAA6b,EAAA,EAAAA,GAAAnY,KAAAg4C,UAEAjiC,OAAA,SAAAoC,GACA,UAAAgiD,IAAAn6D,KAAAwY,EAAAxY,KAAAvD,EAAAuD,KAAA1D,EAjGA,IAiGA,MAAA6b,EAAA,EAAAA,GAAAnY,KAAAg4C,UAEAyhB,IAAA,WACA,MAAAQ,IAAAj6D,MAAAy5D,SAIA,IAAA/hD,KAAA,OACAK,GAAA,QACAC,IAAA,OACAwC,IAAA,OACAvC,GAAA,QACAojD,GAAApjD,GAAAuC,GACA8gD,GAAArjD,GAAAF,GACAqjD,GAAArjD,GAAAC,GAAAwC,GAAA9C,EA0BA4gD,IAAA6C,GAAAK,GAAAvgB,GAAAud,IACAvhD,SAAA,SAAAkB,GAEA,MADAA,GAAA,MAAAA,EAhdA,EADA,GAidA3H,KAAAkwC,IAhdA,EADA,GAidAvoC,GACA,GAAAgjD,IAAAn7D,KAAAwY,EAAAxY,KAAAtC,EAAAsC,KAAA1D,EAAA6b,EAAAnY,KAAAg4C,UAEAjiC,OAAA,SAAAoC,GAEA,MADAA,GAAA,MAAAA,EArdA,GAqdA3H,KAAAkwC,IArdA,GAqdAvoC,GACA,GAAAgjD,IAAAn7D,KAAAwY,EAAAxY,KAAAtC,EAAAsC,KAAA1D,EAAA6b,EAAAnY,KAAAg4C,UAEAyhB,IAAA,WACA,GAAAjhD,GAAAiiB,MAAAz6B,KAAAwY,GAAA,GAAAxY,KAAAwY,EAAA,KAAA4hD,GACA99D,GAAA0D,KAAA1D,EACAqE,EAAA85B,MAAAz6B,KAAAtC,GAAA,EAAAsC,KAAAtC,EAAApB,GAAA,EAAAA,GACA+iE,EAAA7uD,KAAA+0C,IAAA/sC,GACA8mD,EAAA9uD,KAAAk1C,IAAAltC,EACA,WAAAogD,IACA,KAAAt8D,EAAAqE,GAAA+W,GAAA2nD,EAAAtnD,GAAAunD,IACA,KAAAhjE,EAAAqE,GAAAqX,GAAAqnD,EAAA7kD,GAAA8kD,IACA,KAAAhjE,EAAAqE,GAAAsX,GAAAonD,IACAr/D,KAAAg4C,YAuEA,IAiNAqmB,IACAC,GACAC,GACAK,GApNApB,GAAA,QAAAmrD,GAAApxG,GAGA,QAAAkiD,GAAAvnD,EAAAC,GACA,GAAA+C,GAAA3C,GAAAL,EAAAwnD,GAAAxnD,IAAAgD,GAAA/C,EAAAunD,GAAAvnD,IAAA+C,GACAtO,EAAA2L,EAAAL,EAAAtL,EAAAuL,EAAAvL,GACA/F,EAAA0R,EAAAL,EAAArR,EAAAsR,EAAAtR,GACAm3C,EAAAzlC,EAAAL,EAAA8lC,QAAA7lC,EAAA6lC,QACA,iBAAAt+B,GAKA,MAJAxH,GAAAgD,IAAAwE,GACAxH,EAAAtL,IAAA8S,GACAxH,EAAArR,IAAA6Y,GACAxH,EAAA8lC,UAAAt+B,GACAxH,EAAA,IAZA,GAAAK,GAAA8pD,GAAA9kD,EAkBA,OAFAkiD,GAAA4C,MAAAssD,EAEAlvD,GACC,GA4BDmvD,GAAArsD,GAAAT,IACA+sD,GAAAtsD,GAAAR,IAqDAsB,GAAA,8CACAE,GAAA,GAAAkF,QAAApF,GAAAp+D,OAAA,KA+EAg/D,GAAA,IAAAztD,KAAAmrG,GAEAv9C,IACAN,WAAA,EACAC,WAAA,EACAC,OAAA,EACAH,MAAA,EACAF,OAAA,EACAC,OAAA,GAoGA2nB,GAAAxmB,GAAAZ,GAAA,qBACAilB,GAAArkB,GAAAJ,GAAA,cAEAqB,GAAAxvD,KAAAs4G,MACA3oD,GAAA,EACAD,GAAA,EACAH,GAAA,MA6EAgpD,GAAAzoD,GAAAnE,IACA6sD,GAAA1oD,GAAAhE,IAgCA2sD,GAAAzoD,GAAArE,IACA+sD,GAAA1oD,GAAAlE,IA0BA6sD,GAAA1oD,GAAAtE,IACAitD,GAAA3oD,GAAAnE,IAQA+E,IAAc1+D,MAAA,aAuBdq+D,IAAAzjE,UAAAwjE,GAAAxjE,WACAiE,YAAAw/D,GACAsC,GAAA,SAAA6U,EAAAzyE,GACA,GAEAgU,GAFAioC,EAAA3hD,KAAA2hD,EACA5nC,EAAAknD,GAAAkX,EAAA,GAAAx2B,GAEAtlD,GAAA,EACAc,EAAA4c,EAAAza,MAGA,OAAAD,UAAAC,OAAA,IAOA,SAAAoG,GAAA,mBAAAA,GAAA,SAAA+F,OAAA,qBAAA/F,EACA,QAAArJ,EAAAc,GACA,GAAAuc,GAAAy+D,EAAAp+D,EAAA1d,IAAAqP,KAAAi2C,EAAAjoC,GAAA0nD,GAAAzf,EAAAjoC,GAAAy+D,EAAAx7E,KAAA+I,OACA,UAAAA,EAAA,IAAAgU,IAAAioC,KAAAjoC,GAAA0nD,GAAAzf,EAAAjoC,GAAAy+D,EAAAx7E,KAAA,KAGA,OAAAqD,MAZA,OAAA3D,EAAAc,GAAA,IAAAuc,GAAAy+D,EAAAp+D,EAAA1d,IAAAqP,QAAAgO,EAAAxc,GAAAykD,EAAAjoC,GAAAy+D,EAAAx7E,OAAA,MAAA+c,KAcA4xC,KAAA,WACA,GAAAA,MAAiB3J,EAAA3hD,KAAA2hD,CACjB,QAAAjoC,KAAAioC,GAAA2J,EAAA5xC,GAAAioC,EAAAjoC,GAAA/R,OACA,WAAAq5D,IAAA1V,IAEA/uD,KAAA,SAAAmP,EAAA2nD,GACA,IAAAl2D,EAAAkC,UAAAC,OAAA,YAAAnC,GAAAuc,EAAAjS,EAAA,GAAAC,OAAAvK,GAAAd,EAAA,EAAkFA,EAAAc,IAAOd,EAAAoL,EAAApL,GAAAgD,UAAAhD,EAAA,EACzF,KAAA2D,KAAA2hD,EAAAnkD,eAAAkO,GAAA,SAAAD,OAAA,iBAAAC,EACA,KAAAgO,EAAA1Z,KAAA2hD,EAAAj2C,GAAArP,EAAA,EAAAc,EAAAuc,EAAApa,OAA+CjD,EAAAc,IAAOd,EAAAqd,EAAArd,GAAAsG,MAAAka,MAAAw2C,EAAA5rD,IAEtDoV,MAAA,SAAAnR,EAAA2nD,EAAA5rD,GACA,IAAAzH,KAAA2hD,EAAAnkD,eAAAkO,GAAA,SAAAD,OAAA,iBAAAC,EACA,QAAAgO,GAAA1Z,KAAA2hD,EAAAj2C,GAAArP,EAAA,EAAAc,EAAAuc,EAAApa,OAAmDjD,EAAAc,IAAOd,EAAAqd,EAAArd,GAAAsG,MAAAka,MAAAw2C,EAAA5rD,IA8J1D,IAwNA88D,IACAM,GAzNAwkD,GAAA1nD,GAAA,KAEA2nD,GAAAD,GAAAr9G,MACAu9G,GAAAF,GAAAvnD,UACA0nD,GAAAH,GAAA5wD,OACAgxD,GAAAJ,GAAA/mD,WAEAonD,GAAA/nD,GAAA,MAEAgoD,GAAAD,GAAA19G,MACA49G,GAAAF,GAAA5nD,UACA+nD,GAAAH,GAAAjxD,OACAqxD,GAAAJ,GAAApnD,WAkKAvsB,GAAArqC,GAAA,qBAAA+C,GACA,MAAAlI,UAAA20C,cAAA6uE,yBAAAt7G,EAAAI,gBAGA/C,GAAAJ,GAAA,4BAAA+C,GACA,MAAA1C,MAAAC,MAAAyC,EAAAI,gBAGAjD,GAAAF,GAAA,sBAAA+C,GACA,MAAAA,GAAAI,eAGAo0B,GAAAv3B,GAAA,2BAAA+C,GACA,GAAAw0B,GAAAx0B,EAAAu7G,WACA,KAAA/mF,EAAA,SAAAx3B,OAAA,cACA,OAAAw3B,KAmBAgnF,GAAAzmD,GAAA,WAAA8lD,IAEAY,GAAA1mD,GAAA,4BAAAmmD,IAEArlD,GAAA,EACAlgE,GAAA,EACAwR,GAAA,EACAgvD,GAAA,IAGAH,GAAA,EACAf,GAAA,EACAI,GAAA,EACAD,GAAA,iBAAApvB,0BAAA7b,IAAA6b,YAAAlO,KACAo9B,GAAA,mBAAAjuB,uBACAmuB,KAAAt9B,KAAA,SAAAr1B,GAAyCwkC,sBAAA,WAAmCxkC,EAAA2yD,GAAAjrC,UAAsB8c,sBAClG,SAAAxkC,GAAuB7M,WAAA6M,EAAA,IAevB6yD,IAAAxmE,UAAA2mE,GAAA3mE,WACAiE,YAAAuiE,GACAK,QAAA,SAAA1+D,EAAAy+D,EAAAx7B,GACA,sBAAAjjC,GAAA,SAAA5H,WAAA,6BACA6qC,IAAA,MAAAA,EAAA/P,MAAA+P,IAAA,MAAAw7B,EAAA,GAAAA,GACAnkE,KAAAikE,OAAAY,KAAA7kE,OACA6kE,MAAAZ,MAAAjkE,KACAukE,GAAAvkE,KACA6kE,GAAA7kE,MAEAA,KAAAyrD,MAAA/lD,EACA1F,KAAAgkE,MAAAr7B,EACAm8B,MAEA1kB,KAAA,WACApgD,KAAAyrD,QACAzrD,KAAAyrD,MAAA,KACAzrD,KAAAgkE,MAAAnuB,IACAivB,OAyFA,IAAAW,IAAA,GAAAl/B,MACAm/B,GAAA,GAAAn/B,MA4DA8uC,GAAAlQ,GAAA,aAEC,SAAAl9B,EAAA9M,GACD8M,EAAA20B,SAAA30B,EAAA9M,IACC,SAAAjpB,EAAAC,GACD,MAAAA,GAAAD,GAIAmjE,IAAA1P,MAAA,SAAAxtD,GAEA,MADAA,GAAA3H,KAAAuB,MAAAoG,GACAytD,SAAAztD,MAAA,EACAA,EAAA,EACAgtD,GAAA,SAAAl9B,GACAA,EAAA20B,QAAApsD,KAAAuB,MAAAk2B,EAAA9vB,OACG,SAAA8vB,EAAA9M,GACH8M,EAAA20B,SAAA30B,EAAA9M,EAAAhjB,IACG,SAAAjG,EAAAC,GACH,OAAAA,EAAAD,GAAAiG,IANAk9D,GADA,KAWA,IAAA80C,IAAA90C,GAAA7sC,MAGA29B,GAAA,IAGAC,GAAA,OAEAgP,GAAAjQ,GAAA,SAAAl9B,GACAA,EAAA20B,QAPA,IAOApsD,KAAAuB,MAAAk2B,EAPA,OAQC,SAAAA,EAAA9M,GACD8M,EAAA20B,SAAA30B,EATA,IASA9M,IACC,SAAAjpB,EAAAC,GACD,OAAAA,EAAAD,GAXA,KAYC,SAAA+1B,GACD,MAAAA,GAAAkpC,kBAGAi5C,GAAAh1C,GAAA5sC,MAEA2sC,GAAAhQ,GAAA,SAAAl9B,GACAA,EAAA20B,QAAApsD,KAAAuB,MAAAk2B,EAAAk+B,SACC,SAAAl+B,EAAA9M,GACD8M,EAAA20B,SAAA30B,EAAA9M,EAAAgrC,KACC,SAAAj0D,EAAAC,GACD,OAAAA,EAAAD,GAAAi0D,IACC,SAAAl+B,GACD,MAAAA,GAAAyoC,eAGA25C,GAAAl1C,GAAA3sC,MAEA0sC,GAAA/P,GAAA,SAAAl9B,GACA,GAAAnf,GAAAmf,EAAAi+B,oBAAAC,GA7BA,IA8BAr9C,GAAA,IAAAA,GA9BA,MA+BAmf,EAAA20B,QA/BA,KA+BApsD,KAAAuB,QAAAk2B,EAAAnf,GA/BA,MA+BAA,IACC,SAAAmf,EAAA9M,GACD8M,EAAA20B,SAAA30B,EAjCA,KAiCA9M,IACC,SAAAjpB,EAAAC,GACD,OAAAA,EAAAD,GAnCA,MAoCC,SAAA+1B,GACD,MAAAA,GAAAmkC,aAGAk+C,GAAAp1C,GAAA1sC,MAEA0hC,GAAA/E,GAAA,SAAAl9B,GACAA,EAAAg+B,SAAA,UACC,SAAAh+B,EAAA9M,GACD8M,EAAA69B,QAAA79B,EAAA89B,UAAA5qC,IACC,SAAAjpB,EAAAC,GACD,OAAAA,EAAAD,GAAAC,EAAA+zD,oBAAAh0D,EAAAg0D,qBAAAC,IA9CA,OA+CC,SAAAl+B,GACD,MAAAA,GAAA89B,UAAA,IAGA+G,GAAA5C,GAAA1hC,MAaAooC,GAAA/K,GAAA,GACAgL,GAAAhL,GAAA,GACA0kD,GAAA1kD,GAAA,GACA2kD,GAAA3kD,GAAA,GACA4kD,GAAA5kD,GAAA,GACA6kD,GAAA7kD,GAAA,GACA8kD,GAAA9kD,GAAA,GAEA+kD,GAAAh6C,GAAApoC,MACAqiF,GAAAh6C,GAAAroC,MACAsiF,GAAAP,GAAA/hF,MACAuiF,GAAAP,GAAAhiF,MACAwiF,GAAAP,GAAAjiF,MACAyiF,GAAAP,GAAAliF,MACA0iF,GAAAP,GAAAniF,MAEAH,GAAA88B,GAAA,SAAAl9B,GACAA,EAAA69B,QAAA,GACA79B,EAAAg+B,SAAA,UACC,SAAAh+B,EAAA9M,GACD8M,EAAAkjF,SAAAljF,EAAA8jC,WAAA5wC,IACC,SAAAjpB,EAAAC,GACD,MAAAA,GAAA45D,WAAA75D,EAAA65D,WAAA,IAAA55D,EAAA2+D,cAAA5+D,EAAA4+D,gBACC,SAAA7oC,GACD,MAAAA,GAAA8jC,aAGAiB,GAAA3kC,GAAAG,MAEAgoC,GAAArL,GAAA,SAAAl9B,GACAA,EAAAkjF,SAAA,KACAljF,EAAAg+B,SAAA,UACC,SAAAh+B,EAAA9M,GACD8M,EAAAohC,YAAAphC,EAAA6oC,cAAA31C,IACC,SAAAjpB,EAAAC,GACD,MAAAA,GAAA2+D,cAAA5+D,EAAA4+D,eACC,SAAA7oC,GACD,MAAAA,GAAA6oC,eAIAN,IAAA7K,MAAA,SAAAxtD,GACA,MAAAytD,UAAAztD,EAAA3H,KAAAuB,MAAAoG,OAAA,EAAAgtD,GAAA,SAAAl9B,GACAA,EAAAohC,YAAA74D,KAAAuB,MAAAk2B,EAAA6oC,cAAA34D,MACA8vB,EAAAkjF,SAAA,KACAljF,EAAAg+B,SAAA,UACG,SAAAh+B,EAAA9M,GACH8M,EAAAohC,YAAAphC,EAAA6oC,cAAA31C,EAAAhjB,KALA,KASA,IAAAizG,IAAA56C,GAAAhoC,MAEAguC,GAAArR,GAAA,SAAAl9B,GACAA,EAAAojF,cAAA,MACC,SAAApjF,EAAA9M,GACD8M,EAAA20B,SAAA30B,EAAA9M,EAAAgrC,KACC,SAAAj0D,EAAAC,GACD,OAAAA,EAAAD,GAAAi0D,IACC,SAAAl+B,GACD,MAAAA,GAAAipC,kBAGAo6C,GAAA90C,GAAAhuC,MAEA+tC,GAAApR,GAAA,SAAAl9B,GACAA,EAAAsjF,cAAA,QACC,SAAAtjF,EAAA9M,GACD8M,EAAA20B,SAAA30B,EArIA,KAqIA9M,IACC,SAAAjpB,EAAAC,GACD,OAAAA,EAAAD,GAvIA,MAwIC,SAAA+1B,GACD,MAAAA,GAAA0kC,gBAGA6+C,GAAAj1C,GAAA/tC,MAEAuoC,GAAA5L,GAAA,SAAAl9B,GACAA,EAAAw+B,YAAA,UACC,SAAAx+B,EAAA9M,GACD8M,EAAAq+B,WAAAr+B,EAAAs+B,aAAAprC,IACC,SAAAjpB,EAAAC,GACD,OAAAA,EAAAD,GAlJA,OAmJC,SAAA+1B,GACD,MAAAA,GAAAs+B,aAAA,IAGAklD,GAAA16C,GAAAvoC,MAaA4oC,GAAA/K,GAAA,GACAgL,GAAAhL,GAAA,GACAqlD,GAAArlD,GAAA,GACAslD,GAAAtlD,GAAA,GACAulD,GAAAvlD,GAAA,GACAwlD,GAAAxlD,GAAA,GACAylD,GAAAzlD,GAAA,GAEA0lD,GAAA36C,GAAA5oC,MACAwjF,GAAA36C,GAAA7oC,MACAyjF,GAAAP,GAAAljF,MACA0jF,GAAAP,GAAAnjF,MACA2jF,GAAAP,GAAApjF,MACA4jF,GAAAP,GAAArjF,MACA6jF,GAAAP,GAAAtjF,MAEA8tC,GAAAnR,GAAA,SAAAl9B,GACAA,EAAAq+B,WAAA,GACAr+B,EAAAw+B,YAAA,UACC,SAAAx+B,EAAA9M,GACD8M,EAAAqkF,YAAArkF,EAAAukC,cAAArxC,IACC,SAAAjpB,EAAAC,GACD,MAAAA,GAAAq6D,cAAAt6D,EAAAs6D,cAAA,IAAAr6D,EAAAm/D,iBAAAp/D,EAAAo/D,mBACC,SAAArpC,GACD,MAAAA,GAAAukC,gBAGA+/C,GAAAj2C,GAAA9tC,MAEAwoC,GAAA7L,GAAA,SAAAl9B,GACAA,EAAAqkF,YAAA,KACArkF,EAAAw+B,YAAA,UACC,SAAAx+B,EAAA9M,GACD8M,EAAAuhC,eAAAvhC,EAAAqpC,iBAAAn2C,IACC,SAAAjpB,EAAAC,GACD,MAAAA,GAAAm/D,iBAAAp/D,EAAAo/D,kBACC,SAAArpC,GACD,MAAAA,GAAAqpC,kBAIAN,IAAArL,MAAA,SAAAxtD,GACA,MAAAytD,UAAAztD,EAAA3H,KAAAuB,MAAAoG,OAAA,EAAAgtD,GAAA,SAAAl9B,GACAA,EAAAuhC,eAAAh5D,KAAAuB,MAAAk2B,EAAAqpC,iBAAAn5D,MACA8vB,EAAAqkF,YAAA,KACArkF,EAAAw+B,YAAA,UACG,SAAAx+B,EAAA9M,GACH8M,EAAAuhC,eAAAvhC,EAAAqpC,iBAAAn2C,EAAAhjB,KALA,KASA,IAuDAmvD,IAvDAklD,GAAAx7C,GAAAxoC,MAgFAw/B,IACAykD,GAAAxlD,GACAiH,IAAA,SAAA/4D,EAAA1X,GAAuB,WAAA0X,GAAAu3G,QAAAjvH,IACvBoD,EAAA,SAAAsU,GAAoB,MAAA3E,MAAA4rD,MAAAjnD,GAAAhK,SAAA,IACpB1O,EAAA,SAAA0Y,GAAoB,MAAAA,GAAA,IACpBzY,EAAA,SAAAyY,GAAoB,MAAA3E,MAAA4rD,MAAAjnD,GAAAhK,SAAA,KACpBpE,EAAA,SAAAoO,EAAA1X,GAAuB,MAAA0X,GAAAwxD,cAAAlpE,IACvByT,EAAA,SAAAiE,EAAA1X,GAAuB,MAAA0X,GAAAu3G,QAAAjvH,IACvBmJ,EAAA,SAAAuO,EAAA1X,GAAuB,MAAA0X,GAAA+xD,YAAAzpE,IACvBZ,EAAA,SAAAsY,GAAoB,MAAA3E,MAAA4rD,MAAAjnD,GAAAhK,SAAA,IACpB1N,EAAA,SAAA0X,EAAA1X,GAAuB,MAAA8pE,IAAA,IAAApyD,EAAA1X,IACvByX,EAAAqyD,GACA7pE,EAAA0pE,GACA57C,EAAA,SAAArW,GAAoB,MAAA3E,MAAA4rD,MAAAjnD,GAAAhK,SAAA,IAAAiB,eACpB+I,EAAA,SAAAA,GAAoB,MAAA3E,MAAA4rD,MAAAjnD,GAAAhK,SAAA,MAIpB4gB,GAAA,uEAwCA27C,IAAAnqE,UAAA4N,SAAA,WACA,MAAAnL,MAAA4nE,KACA5nE,KAAA6nE,MACA7nE,KAAAu1D,KACAv1D,KAAAkzD,QACAlzD,KAAA88D,KAAA,SACA,MAAA98D,KAAAsR,MAAA,GAAAd,KAAAJ,IAAA,IAAApQ,KAAAsR,SACAtR,KAAA8nE,MAAA,SACA,MAAA9nE,KAAA+nE,UAAA,OAAAv3D,KAAAJ,IAAA,IAAApQ,KAAA+nE,YACA/nE,KAAA0L,KAGA,IAwIAsnC,IAxIA01B,IAAA,sEAyIAM,KACAJ,QAAA,IACA5B,UAAA,IACAD,UAAA,GACA+B,UAAA,SAgVA,IAsNA0I,IAtNA1H,IAAY6iD,IAAA,GAAAhrE,EAAA,IAAAirE,EAAA,KACZt8C,GAAA,UACAC,GAAA,KACAH,GAAA,iCAoNAmB,KACA3E,SAAA,SACA3kC,KAAA,aACAU,KAAA,eACAkkC,SAAA,WACAC,MAAA,wEACAC,WAAA,2CACAC,QAAA,+GACAC,aAAA,0EAYA,IAMA4/C,IAAAtmF,KAAAhpC,UAAAq0E,YACAD,GACAx1E,EAAA8zE,UARA,yBAeA68C,IAAA,GAAAvmF,MAAA,4BACAsrC,GACA11E,EAAA+zE,SAjBA,yBAmBA68C,GAAArlH,MAAAnK,UAEAo2E,GAAAo5C,GAAAvuH,IACAyzE,GAAA86C,GAAAplH,MAEAqqE,IAAgBr1E,KAAA,YAyJhB82E,IAAA,KAofAsC,GAAA,IACAC,GAAA,GAAAD,GACAE,GAAA,GAAAD,GACAE,GAAA,GAAAD,GACAE,GAAA,EAAAD,GACAE,GAAA,GAAAF,GACAJ,GAAA,IAAAI,GAmIA82C,GAAAvwD,GAAA,gEAEAwwD,GAAAxwD,GAAA,4HAEAywD,GAAAzwD,GAAA,4HAEA0wD,GAAA1wD,GAAA,4HAEA2wD,GAAAhE,GAAA5tD,GAAA,UAAAA,IAAA,WAEA6xD,GAAAjE,GAAA5tD,IAAA,aAAAA,GAAA,YAEA8xD,GAAAlE,GAAA5tD,GAAA,aAAAA,GAAA,YAEAmb,GAAAnb,KAkBA+xD,GAAA32C,GAAAna,GAAA,qgDAEA+wD,GAAA52C,GAAAna,GAAA,qgDAEAgxD,GAAA72C,GAAAna,GAAA,qgDAEAixD,GAAA92C,GAAAna,GAAA,qgDA+BA2a,GAAA,+BAEAL,IACA9gC,IAAA,6BACAmhC,SACAp0C,MAAA,+BACAC,IAAA,uCACA0qF,MAAA,iCAgCAl2C,GAAA,CAUAD,IAAAj6E,UAAA05E,GAAA15E,WACAiE,YAAAg2E,GACAt6E,IAAA,SAAAoJ,GAEA,IADA,GAAAjD,GAAArD,KAAA2hD,IACAt+C,IAAAiD,KAAA,KAAAA,IAAAiZ,YAAA,MACA,OAAAjZ,GAAAjD,IAEAgH,IAAA,SAAA/D,EAAA3D,GACA,MAAA2D,GAAAtG,KAAA2hD,GAAAh/C,GAEAq7C,OAAA,SAAA13C,GACA,MAAAtG,MAAA2hD,IAAAr7C,aAAAtG,KAAA2hD,IAEAx2C,SAAA,WACA,MAAAnL,MAAA2hD,GAIA,IAAAisE,IAAA,SAAAr0C,GACA,kBACA,MAAAv5E,MAAA6tH,QAAAt0C,IAIA,wBAAAhzE,UAAA,CACA,GAAA6qB,IAAA7qB,SAAAoa,eACA,KAAAyQ,GAAAy8F,QAAA,CACA,GAAAC,IAAA18F,GAAA28F,uBACA38F,GAAA48F,mBACA58F,GAAA68F,oBACA78F,GAAA88F,gBACAN,IAAA,SAAAr0C,GACA,kBACA,MAAAu0C,IAAAvxH,KAAAyD,KAAAu5E,MAMA,GAAAe,IAAAszC,GAEAr1C,KAIA,IAFAp8E,EAAAymE,MAAA,KAEA,oBAAAr8D,UAAA,CAEA,gBADAA,UAAAoa,kBAEA43D,IAAoB41C,WAAA,YAAAC,WAAA,aA6MpBzzC,GAAAp9E,WACAiE,YAAAm5E,GACA7nD,YAAA,SAAA/L,GAAgC,MAAA/mB,MAAA66E,QAAA7nD,aAAAjM,EAAA/mB,KAAAikE,QAChCjxC,aAAA,SAAAjM,EAAAze,GAAuC,MAAAtI,MAAA66E,QAAA7nD,aAAAjM,EAAAze,IACvCkxE,cAAA,SAAAD,GAAqC,MAAAv5E,MAAA66E,QAAArB,cAAAD,IACrC7+B,iBAAA,SAAA6+B,GAAwC,MAAAv5E,MAAA66E,QAAAngC,iBAAA6+B,IASxC,IAAAlgE,IAAA,GAmWAglE,IAAA9gF,WACA+4B,IAAA,SAAA35B,GACAqD,KAAAu+E,OAAAjyE,QAAA3P,GACA,IACAqD,KAAAu+E,OAAAv8E,KAAArF,GACAqD,KAAAs+E,MAAAp6D,aAAA,QAAAlkB,KAAAu+E,OAAA9/E,KAAA,QAGAu/C,OAAA,SAAArhD,GACA,GAAAN,GAAA2D,KAAAu+E,OAAAjyE,QAAA3P,EACAN,IAAA,IACA2D,KAAAu+E,OAAA2D,OAAA7lF,EAAA,GACA2D,KAAAs+E,MAAAp6D,aAAA,QAAAlkB,KAAAu+E,OAAA9/E,KAAA,QAGAqgD,SAAA,SAAAniD,GACA,MAAAqD,MAAAu+E,OAAAjyE,QAAA3P,IAAA,GAsLA,IAAA6jF,KAAA,KAWAzG,IAAAx8E,UAAAs+E,GAAAt+E,WACAiE,YAAAu4E,GACA/vD,OAAAyvD,GACAgH,UAAAtG,GACA3U,OAAA6U,GACA1zE,KAAA40E,GACAP,MAAAP,GACAQ,KAAAU,GACAx5B,MAAAy5B,GACA3jC,MAAAmkC,GACAt6B,KAAAu6B,GACA9/E,KAAAmgF,GACAvxB,MAAAwxB,GACAr2E,KAAAs2E,GACA5rE,KAAA6rE,GACA5C,MAAA6C,GACA15B,KAAA25B,GACAuK,KAAA/J,GACAxqE,MAAA+qE,GACAxgF,SAAA4gF,GACAmwC,QAAAxvC,GACAjzE,KAAAqzE,GACAlpC,KAAAspC,GACA5K,MAAA8K,GACAC,MAAAE,GACA72E,OAAA82E,GACA4H,OAAA1H,GACA7hC,OAAA+hC,GACAnF,MAAAoF,GACA1c,GAAAkV,GACAzX,SAAAwf,GAqCA,IAAAS,IAAAjgB,GAAA,2BACAmgB,MAEAE,GAAA,EACAI,GAAA,EACAF,GAAA,EACAG,GAAA,EACAE,GAAA,EACAD,GAAA,EA4gBAuD,GAAApJ,GAAAt+E,UAAAiE,YA0HA6B,GAAA,EAiBAirH,GAAAzyC,GAAAt+E,SAEA2mF,IAAA3mF,UAAA8tC,GAAA9tC,WACAiE,YAAA0iF,GACAl6D,OAAA66D,GACApE,UAAAqE,GACAtf,OAAAye,GACA9hC,MAAAiiC,GACAvI,UAAAmJ,GACA35C,WAAAw6C,GACAtpF,KAAA+xH,GAAA/xH,KACA4uD,MAAAmjE,GAAAnjE,MACA7kD,KAAAgoH,GAAAhoH,KACA0K,KAAAs9G,GAAAt9G,KACAipE,MAAAq0C,GAAAr0C,MACA72B,KAAAkrE,GAAAlrE,KACAkgB,GAAAohB,GACA4C,KAAAnE,GACAE,UAAAG,GACAzwE,MAAAuyE,GACAE,WAAAC,GACA75E,KAAAg6E,GACA5nC,OAAA4mC,GACA3D,MAAAmB,GACAje,MAAAwf,GACAtjB,SAAAyjB,GACA3C,KAAA6C,GAGA,IAAAiC,KACAt9C,KAAA,KACAw7B,MAAA,EACA9D,SAAA,IACA8gB,KAAA97B,GAkCAw2B,IAAAt+E,UAAAqkF,UAAAE,GACAjG,GAAAt+E,UAAA8tC,WAAA66C,EAEA,IAAAC,KAAA,MAmBAuB,GAAAhgF,MAAAnK,UAAAoK,MAMA8zC,GAAA,EACAkE,GAAA,EACAwJ,GAAA,EACA5N,GAAA,EACAisC,GAAA,IA2aAvoC,IAAA1hD,UAAAusF,GAAAvsF,WACAiE,YAAAy9C,GACAmE,KAAAylC,GACAH,UAAAK,GACAG,WAAAJ,GACA/lC,IAAAimC,GACAlnC,KAAAmnC,GACAzgC,KAAA2gC,GACA9hE,UAAAmiE,GACA+kC,YAAA9kC,GACAE,OAAAD,GACAG,MAAAD,GACAt+B,KAAA6+B,GA2aA,IAAAqD,IAAA,IACAE,IAAepqC,OAAA,GACfmqC,KA2IAW,IAAA7wF,UAAAT,OAAAiT,OAAAkvC,GAAA1hD,UAkLA,IAAAmoG,KAAA,EAAAl1F,KAAAwvC,KAAA,MAgDAswC,GAAA,QAAAkrB,GAAAjsB,GAEA,QAAAe,GAAAxnC,EAAA1H,EAAA2G,EAAA1G,EAAAyG,GACAwnC,GAAAC,EAAAzmC,EAAA1H,EAAA2G,EAAA1G,EAAAyG,GAOA,MAJAwoC,GAAAf,MAAA,SAAAp6E,GACA,MAAAqmG,IAAArmG,MAAA,EAAAA,EAAA,IAGAm7E,GACCoV,IA6ID8oB,GAAA,QAAAhT,GAAAjsB,GAEA,QAAAi/B,GAAA1lE,EAAA1H,EAAA2G,EAAA1G,EAAAyG,GACA,IAAA7lB,EAAA6mB,EAAA2lE,YAAAxsF,EAAAstD,UAUA,IATA,GAAAttD,GACArvB,EACAu4C,EACA9uD,EAEAc,EADAqU,GAAA,EAEAhV,EAAAylC,EAAA3iC,OACAqD,EAAAmmD,EAAAnmD,QAEA6O,EAAAhV,GAAA,CAEA,IADAoW,EAAAqvB,EAAAzwB,GAAA25C,EAAAv4C,EAAA2F,SACAlc,EAAAuW,EAAAjQ,MAAA,EAAAxF,EAAAguD,EAAA7rD,OAAiDjD,EAAAc,IAAOd,EAAAuW,EAAAjQ,OAAAwoD,EAAA9uD,GAAAsG,KACxDiQ,GAAAi9E,KAAA/C,GAAAl6E,EAAAwuC,EAAA2G,EAAA1G,EAAA0G,IAAAD,EAAAC,GAAAn1C,EAAAjQ,SACA0sF,GAAAz8E,EAAAwuC,EAAA2G,EAAA3G,IAAAC,EAAAD,GAAAxuC,EAAAjQ,QAAAmlD,GACAnlD,GAAAiQ,EAAAjQ,UAGAmmD,GAAA2lE,UAAAxsF,EAAAqtD,GAAAC,EAAAzmC,EAAA1H,EAAA2G,EAAA1G,EAAAyG,GACA7lB,EAAAstD,QAQA,MAJAi/B,GAAAj/B,MAAA,SAAAp6E,GACA,MAAAqmG,IAAArmG,MAAA,EAAAA,EAAA,IAGAq5G,GACC9oB,IA+PDhS,GAAA,GACAC,GAAAnjF,KAAAmrG,IAAA,EAAAnrG,KAAAwvC,KAAA,GAsXAk1C,IAAA33F,UAAA+lE,GAAA,WACA,GAAA3gE,GAAA3C,KAAA2hD,EAAA2hB,GAAAzmD,MAAA7c,KAAA2hD,EAAAtiD,UACA,OAAAsD,KAAA3C,KAAA2hD,EAAA3hD,KAAA2C,GAwKA8zF,GAAAl5F,WACAiE,YAAAi1F,GAEAlP,OAAA,SAAAmnC,EAAApoH,GACA,GAAAwiD,GAAA6lE,EAAAC,CAEA,IAAAF,EAAA,CAKA,GAJApoH,EAAAmT,EAAAi1G,EACApoH,EAAA4S,EAAAw1G,EAAAx1G,EACAw1G,EAAAx1G,IAAAw1G,EAAAx1G,EAAAO,EAAAnT,GACAooH,EAAAx1G,EAAA5S,EACAooH,EAAA70G,EAAA,CAEA,IADA60G,IAAA70G,EACA60G,EAAA10G,GAAA00G,IAAA10G,CACA00G,GAAA10G,EAAA1T,MAEAooH,GAAA70G,EAAAvT,CAEAwiD,GAAA4lE,MACK1uH,MAAA2hD,GACL+sE,EAAA73B,GAAA72F,KAAA2hD,GACAr7C,EAAAmT,EAAA,KACAnT,EAAA4S,EAAAw1G,EACAA,EAAAj1G,EAAAi1G,EAAA10G,EAAA1T,EACAwiD,EAAA4lE,IAEApoH,EAAAmT,EAAAnT,EAAA4S,EAAA,KACAlZ,KAAA2hD,EAAAr7C,EACAwiD,EAAA,KAOA,KALAxiD,EAAA0T,EAAA1T,EAAAuT,EAAA,KACAvT,EAAAwU,EAAAguC,EACAxiD,EAAA0R,GAAA,EAEA02G,EAAApoH,EACAwiD,KAAA9wC,GACA22G,EAAA7lE,EAAAhuC,EACAguC,IAAA6lE,EAAA30G,GACA40G,EAAAD,EAAA90G,EACA+0G,KAAA52G,GACA8wC,EAAA9wC,EAAA42G,EAAA52G,GAAA,EACA22G,EAAA32G,GAAA,EACA02G,EAAAC,IAEAD,IAAA5lE,EAAAjvC,IACA88E,GAAA32F,KAAA8oD,GACA4lE,EAAA5lE,EACAA,EAAA4lE,EAAA5zG,GAEAguC,EAAA9wC,GAAA,EACA22G,EAAA32G,GAAA,EACA4+E,GAAA52F,KAAA2uH,MAGAC,EAAAD,EAAA30G,EACA40G,KAAA52G,GACA8wC,EAAA9wC,EAAA42G,EAAA52G,GAAA,EACA22G,EAAA32G,GAAA,EACA02G,EAAAC,IAEAD,IAAA5lE,EAAA9uC,IACA48E,GAAA52F,KAAA8oD,GACA4lE,EAAA5lE,EACAA,EAAA4lE,EAAA5zG,GAEAguC,EAAA9wC,GAAA,EACA22G,EAAA32G,GAAA,EACA2+E,GAAA32F,KAAA2uH,KAGA7lE,EAAA4lE,EAAA5zG,CAEA9a,MAAA2hD,EAAA3pC,GAAA,GAGAgmC,OAAA,SAAA13C,GACAA,EAAA4S,IAAA5S,EAAA4S,EAAAO,EAAAnT,EAAAmT,GACAnT,EAAAmT,IAAAnT,EAAAmT,EAAAP,EAAA5S,EAAA4S,GACA5S,EAAA4S,EAAA5S,EAAAmT,EAAA,IAEA,IACAuN,GAGA1e,EACAy+G,EALAj+D,EAAAxiD,EAAAwU,EAEAygC,EAAAj1C,EAAA0T,EACA2lC,EAAAr5C,EAAAuT,CAsCA,IAhCAvR,EAFAizC,EACAoE,EACAk3C,GAAAl3C,GADApE,EADAoE,EAIAmJ,EACAA,EAAA9uC,IAAA1T,EAAAwiD,EAAA9uC,EAAA1R,EACAwgD,EAAAjvC,EAAAvR,EAEAtI,KAAA2hD,EAAAr5C,EAGAizC,GAAAoE,GACAonE,EAAAz+G,EAAA0P,EACA1P,EAAA0P,EAAA1R,EAAA0R,EACA1P,EAAA0R,EAAAuhC,EACAA,EAAAzgC,EAAAxS,EACAA,IAAAq3C,GACAmJ,EAAAxgD,EAAAwS,EACAxS,EAAAwS,EAAAxU,EAAAwU,EACAxU,EAAAgC,EAAAuR,EACAivC,EAAA9uC,EAAA1T,EACAgC,EAAAuR,EAAA8lC,EACAA,EAAA7kC,EAAAxS,IAEAA,EAAAwS,EAAAguC,EACAA,EAAAxgD,EACAhC,EAAAgC,EAAAuR,KAGAktG,EAAAzgH,EAAA0R,EACA1R,EAAAgC,GAGAhC,MAAAwU,EAAAguC,IACAi+D,EAAA,CACA,GAAAzgH,KAAA0R,EAAyC,YAAhB1R,EAAA0R,GAAA,EAEzB,IACA,GAAA1R,IAAAtG,KAAA2hD,EAAA,KACA,IAAAr7C,IAAAwiD,EAAA9uC,GAQA,GAPAgN,EAAA8hC,EAAAjvC,EACAmN,EAAAhP,IACAgP,EAAAhP,GAAA,EACA8wC,EAAA9wC,GAAA,EACA2+E,GAAA32F,KAAA8oD,GACA9hC,EAAA8hC,EAAAjvC,GAEAmN,EAAAhN,GAAAgN,EAAAhN,EAAAhC,GACAgP,EAAAnN,GAAAmN,EAAAnN,EAAA7B,EAAA,CACAgP,EAAAnN,GAAAmN,EAAAnN,EAAA7B,IACAgP,EAAAhN,EAAAhC,GAAA,EACAgP,EAAAhP,GAAA,EACA4+E,GAAA52F,KAAAgnB,GACAA,EAAA8hC,EAAAjvC,GAEAmN,EAAAhP,EAAA8wC,EAAA9wC,EACA8wC,EAAA9wC,EAAAgP,EAAAnN,EAAA7B,GAAA,EACA2+E,GAAA32F,KAAA8oD,GACAxiD,EAAAtG,KAAA2hD,CACA,YAUA,IAPA36B,EAAA8hC,EAAA9uC,EACAgN,EAAAhP,IACAgP,EAAAhP,GAAA,EACA8wC,EAAA9wC,GAAA,EACA4+E,GAAA52F,KAAA8oD,GACA9hC,EAAA8hC,EAAA9uC,GAEAgN,EAAAhN,GAAAgN,EAAAhN,EAAAhC,GACAgP,EAAAnN,GAAAmN,EAAAnN,EAAA7B,EAAA,CACAgP,EAAAhN,GAAAgN,EAAAhN,EAAAhC,IACAgP,EAAAnN,EAAA7B,GAAA,EACAgP,EAAAhP,GAAA,EACA2+E,GAAA32F,KAAAgnB,GACAA,EAAA8hC,EAAA9uC,GAEAgN,EAAAhP,EAAA8wC,EAAA9wC,EACA8wC,EAAA9wC,EAAAgP,EAAAhN,EAAAhC,GAAA,EACA4+E,GAAA52F,KAAA8oD,GACAxiD,EAAAtG,KAAA2hD,CACA,OAGA36B,EAAAhP,GAAA,EACA1R,EAAAwiD,EACAA,IAAAhuC,SACKxU,EAAA0R,EAEL1R,OAAA0R,GAAA,KAkVA,IAEA4hF,IAwQAO,GACAjD,GACAxM,GACAsM,GA7QA2C,MA4EAM,MA4LAnC,GAAA,KACA4B,GAAA,KA6DAgC,IAAAn+F,WACAiE,YAAAk6F,GAEAG,SAAA,WACA,GAAA7E,GAAAh3F,KAAAg3F,KAEA,OAAAh3F,MAAAk3F,MAAA14F,IAAA,SAAA05F,GACA,GAAAlxC,GAAAkxC,EAAAf,UAAA34F,IAAA,SAAAnC,GAAoD,MAAA87F,IAAAD,EAAAlB,EAAA36F,KAEpD,OADA2qD,GAAArgD,KAAAuxF,EAAAF,KAAArxF,KACAqgD,KAIA80C,UAAA,WACA,GAAAA,MACA9E,EAAAh3F,KAAAg3F,KAqBA,OAnBAh3F,MAAAk3F,MAAAt4F,QAAA,SAAAs5F,EAAA77F,GASA,IARA,GAIAs5D,GAJAqiC,EAAAE,EAAAF,KACAb,EAAAe,EAAAf,UACA3lF,GAAA,EACAhV,EAAA26F,EAAA73F,OAEAmhG,EAAAzJ,EAAAG,EAAA36F,EAAA,IACAo5D,EAAA6qC,EAAAllD,OAAAy8C,EAAAyI,EAAA9gD,MAAA8gD,EAAAllD,OAEA/pC,EAAAhV,GACAm5D,EAAAC,EACA6qC,EAAAzJ,EAAAG,EAAA3lF,IACAokD,EAAA6qC,EAAAllD,OAAAy8C,EAAAyI,EAAA9gD,MAAA8gD,EAAAllD,KACAl/C,EAAAs5D,EAAAvwD,OAAA/I,EAAAu5D,EAAAxwD,OAAAo2F,GAAAxD,EAAAriC,EAAAC,GAAA,GACAkmC,EAAA95F,MAAAg2F,EAAArxF,KAAAgvD,EAAAhvD,KAAAivD,EAAAjvD,SAKAm1F,GAGAjS,MAAA,WACA,MAAA7pF,MAAAg3F,MAAAxxB,OAAA,SAAAuxB,GACA,MAAAA,GAAAp3C,QACKnhD,IAAA,SAAAu4F,GACL,OACA93F,OAAA83F,EAAAx7C,KAAA50C,KACA3H,OAAA+3F,EAAAp3C,MAAAh5C,UAqEAs1F,GAAA1+F,WACAiE,YAAAy6F,GACA78B,MAAA,SAAAjnD,GACA,WAAAA,EAAAnY,KAAA,GAAAi8F,IAAAj8F,KAAAmY,IAAAnY,KAAAmV,EAAAnV,KAAAuX,IAEA4nD,UAAA,SAAAhqD,EAAAoC,GACA,WAAApC,EAAA,IAAAoC,EAAAvX,KAAA,GAAAi8F,IAAAj8F,KAAAmY,EAAAnY,KAAAmV,EAAAnV,KAAAmY,EAAAhD,EAAAnV,KAAAuX,EAAAvX,KAAAmY,EAAAZ,IAEAsF,MAAA,SAAAgrC,GACA,OAAAA,EAAA,GAAA7nD,KAAAmY,EAAAnY,KAAAmV,EAAA0yC,EAAA,GAAA7nD,KAAAmY,EAAAnY,KAAAuX,IAEAs3G,OAAA,SAAA15G,GACA,MAAAA,GAAAnV,KAAAmY,EAAAnY,KAAAmV,GAEA25G,OAAA,SAAAv3G,GACA,MAAAA,GAAAvX,KAAAmY,EAAAnY,KAAAuX,GAEAm8D,OAAA,SAAAplE,GACA,QAAAA,EAAA,GAAAtO,KAAAmV,GAAAnV,KAAAmY,GAAA7J,EAAA,GAAAtO,KAAAuX,GAAAvX,KAAAmY,IAEA8kF,QAAA,SAAA9nF,GACA,OAAAA,EAAAnV,KAAAmV,GAAAnV,KAAAmY,GAEA+kF,QAAA,SAAA3lF,GACA,OAAAA,EAAAvX,KAAAuX,GAAAvX,KAAAmY,GAEA42G,SAAA,SAAA55G,GACA,MAAAA,GAAAm2C,OAAAt0C,OAAA7B,EAAAqzB,QAAAhqC,IAAAwB,KAAAi9F,QAAAj9F,MAAAxB,IAAA2W,EAAAu+D,OAAAv+D,KAEA65G,SAAA,SAAAz3G,GACA,MAAAA,GAAA+zC,OAAAt0C,OAAAO,EAAAixB,QAAAhqC,IAAAwB,KAAAk9F,QAAAl9F,MAAAxB,IAAA+Y,EAAAm8D,OAAAn8D,KAEApM,SAAA,WACA,mBAAAnL,KAAAmV,EAAA,IAAAnV,KAAAuX,EAAA,WAAAvX,KAAAmY,EAAA,KAIA,IAAAgkF,IAAA,GAAAF,IAAA,MAEAz9B,IAAAjhE,UAAA0+F,GAAA1+F,SAqYA,IAAA+iG,KAAiB3jG,KAAA,QACjB0jG,IAAkB1jG,KAAA,SAClBkkG,IAAmBlkG,KAAA,UACnBmkG,IAAmBnkG,KAAA,UACnB6uB,IACA7uB,KAAA,IACA6iG,SAAA,SAAAhhG,IAAAigG,IACAjyF,MAAA,SAAA2I,EAAApO,GAAyB,MAAAoO,QAAA,GAAApO,EAAA,QAAAoO,EAAA,GAAApO,EAAA,SACzB0N,OAAA,SAAAw6G,GAAwB,MAAAA,OAAA,MAAAA,EAAA,SAGxBjjG,IACArvB,KAAA,IACA6iG,SAAA,SAAAhhG,IAAAigG,IACAjyF,MAAA,SAAA+K,EAAAxQ,GAAyB,MAAAwQ,MAAAxQ,EAAA,MAAAwQ,EAAA,KAAAxQ,EAAA,MAAAwQ,EAAA,MACzB9C,OAAA,SAAAw6G,GAAwB,MAAAA,OAAA,MAAAA,EAAA,SAGxB5vB,IACA1iG,KAAA,KACA6iG,SAAA,qCAAAhhG,IAAAigG,IACAjyF,MAAA,SAAAyiH,GAAuB,MAAAA,IACvBx6G,OAAA,SAAAw6G,GAAwB,MAAAA,KAGxB1vB,IACAD,QAAA,YACAzjB,UAAA,OACA1+E,EAAA,YACA4J,EAAA,YACArJ,EAAA,YACA6T,EAAA,YACA29G,GAAA,cACA3jG,GAAA,cACAmB,GAAA,cACAyiG,GAAA,eAGApuB,IACAh6F,EAAA,IACAwK,EAAA,IACA29G,GAAA,KACA3jG,GAAA,KACAmB,GAAA,KACAyiG,GAAA,MAGAnuB,IACA7jG,EAAA,IACAO,EAAA,IACAwxH,GAAA,KACA3jG,GAAA,KACAmB,GAAA,KACAyiG,GAAA,MAGA/tB,IACA9B,QAAA,EACAzjB,UAAA,EACA1+E,EAAA,KACA4J,EAAA,EACArJ,EAAA,KACA6T,GAAA,EACA29G,IAAA,EACA3jG,GAAA,EACAmB,GAAA,EACAyiG,IAAA,GAGA9tB,IACA/B,QAAA,EACAzjB,UAAA,EACA1+E,GAAA,EACA4J,EAAA,KACArJ,EAAA,EACA6T,EAAA,KACA29G,IAAA,EACA3jG,IAAA,EACAmB,GAAA,EACAyiG,GAAA,GAmcA5pE,GAAA/0C,KAAA+0C,IACAG,GAAAl1C,KAAAk1C,IACA0pE,GAAA5+G,KAAAmrG,GACAzY,GAAAksB,GAAA,EACAltB,GAAA,EAAAktB,GACAntB,GAAAzxF,KAAAJ,IAyHA2yF,GAAAr7F,MAAAnK,UAAAoK,KA0GAg8F,IAAApmG,WACAiE,YAAAmiG,GACAC,MAAA,WACA5jG,KAAAtC,EACAsC,KAAA0Z,EAAA,GAEA4c,IAAA,SAAA/e,GACAssF,GAAAwrB,GAAA93G,EAAAvX,KAAA0Z,GACAmqF,GAAA7jG,KAAAqvH,GAAA3xH,EAAAsC,KAAAtC,GACAsC,KAAAtC,EAAAsC,KAAA0Z,GAAA21G,GAAA31G,EACA1Z,KAAAtC,EAAA2xH,GAAA31G,GAEA41G,QAAA,WACA,MAAAtvH,MAAAtC,GAIA,IAuHA8nG,IACAC,GACAG,GACAC,GACAG,GA8FAqB,GACAE,GACAD,GACAE,GACAM,GACAS,GACAC,GACAt4C,GAEAi3C,GACAC,GAkKA+B,GACAS,GACAR,GACAC,GACAC,GACAO,GACAC,GACAC,GACAS,GACAC,GACAC,GACAL,GACAC,GACAlpD,GACA2G,GACA2hD,GApZA2lB,GAAA,GAAA1rB,IASAgF,GAAA,KACAiC,GAAA,MACA5G,GAAAxzF,KAAAmrG,GACAzX,GAAAF,GAAA,EACA+B,GAAA/B,GAAA,EACAgH,GAAA,EAAAhH,GAEAgE,GAAA,IAAAhE,GACA2B,GAAA3B,GAAA,IAEAxjD,GAAAhwC,KAAAgwC,IACA0d,GAAA1tD,KAAA0tD,KACAxN,GAAAlgD,KAAAkgD,MACAo1C,GAAAt1F,KAAA+0C,IACA90C,GAAAD,KAAAC,KACAg0C,GAAAj0C,KAAAi0C,IACAk1D,GAAAnpG,KAAAmwC,IACAu5D,GAAA1pG,KAAAkwC,IACA0jD,GAAA5zF,KAAAk1C,IACAy0D,GAAA3pG,KAAA+kD,MAAA,SAAApgD,GAAuC,MAAAA,GAAA,IAAAA,EAAA,QACvC8xF,GAAAz2F,KAAAwvC,KACA45D,GAAAppG,KAAAopG,IAsBA1U,IACAqqB,QAAA,SAAAxmB,EAAAvE,GACAF,GAAAyE,EAAAxE,SAAAC,IAEAgrB,kBAAA,SAAAnyH,EAAAmnG,GAEA,IADA,GAAAirB,GAAApyH,EAAAoyH,SAAApzH,GAAA,EAAAc,EAAAsyH,EAAAnwH,SACAjD,EAAAc,GAAAmnG,GAAAmrB,EAAApzH,GAAAkoG,SAAAC,KAIAC,IACAirB,OAAA,SAAAryH,EAAAmnG,GACAA,EAAAkQ,UAEAib,MAAA,SAAAtyH,EAAAmnG,GACAnnG,IAAAsnG,YACAH,EAAA38C,MAAAxqD,EAAA,GAAAA,EAAA,GAAAA,EAAA,KAEAuyH,WAAA,SAAAvyH,EAAAmnG,GAEA,IADA,GAAAG,GAAAtnG,EAAAsnG,YAAAtoG,GAAA,EAAAc,EAAAwnG,EAAArlG,SACAjD,EAAAc,GAAAE,EAAAsnG,EAAAtoG,GAAAmoG,EAAA38C,MAAAxqD,EAAA,GAAAA,EAAA,GAAAA,EAAA,KAEAwyH,WAAA,SAAAxyH,EAAAmnG,GACAE,GAAArnG,EAAAsnG,YAAAH,EAAA,IAEAsrB,gBAAA,SAAAzyH,EAAAmnG,GAEA,IADA,GAAAG,GAAAtnG,EAAAsnG,YAAAtoG,GAAA,EAAAc,EAAAwnG,EAAArlG,SACAjD,EAAAc,GAAAunG,GAAAC,EAAAtoG,GAAAmoG,EAAA,IAEAurB,QAAA,SAAA1yH,EAAAmnG,GACAM,GAAAznG,EAAAsnG,YAAAH,IAEAwrB,aAAA,SAAA3yH,EAAAmnG,GAEA,IADA,GAAAG,GAAAtnG,EAAAsnG,YAAAtoG,GAAA,EAAAc,EAAAwnG,EAAArlG,SACAjD,EAAAc,GAAA2nG,GAAAH,EAAAtoG,GAAAmoG,IAEAyrB,mBAAA,SAAA5yH,EAAAmnG,GAEA,IADA,GAAA0rB,GAAA7yH,EAAA6yH,WAAA7zH,GAAA,EAAAc,EAAA+yH,EAAA5wH,SACAjD,EAAAc,GAAAmnG,GAAA4rB,EAAA7zH,GAAAmoG,KA0BA8B,GAAA5C,KAEA8C,GAAA9C,KAMA0B,IACAv9C,MAAAw8C,GACAlzC,UAAAkzC,GACAjzC,QAAAizC,GACAU,aAAA,WACAuB,GAAA1C,QACAwB,GAAAj0C,UAAAg0C,GACAC,GAAAh0C,QAAAk0C,IAEAN,WAAA,WACA,GAAAmrB,IAAA7pB,EACAE,IAAAlwE,IAAA65F,EAAA,EAAAnlB,GAAAmlB,KACAnwH,KAAAmxD,UAAAnxD,KAAAoxD,QAAApxD,KAAA6nD,MAAAw8C,IAEAqQ,OAAA,WACAlO,GAAAlwE,IAAA00E,MAsFA1C,GAAA5E,KAGAyE,IACAtgD,MAAAq/C,GACA/1C,UAAA+2C,GACA92C,QAAAg3C,GACArD,aAAA,WACAoD,GAAAtgD,MAAAwgD,GACAF,GAAAh3C,UAAAs3C,GACAN,GAAA/2C,QAAAs3C,GACAJ,GAAA1E,QACAwB,GAAAL,gBAEAC,WAAA,WACAI,GAAAJ,aACAmD,GAAAtgD,MAAAq/C,GACAiB,GAAAh3C,UAAA+2C,GACAC,GAAA/2C,QAAAg3C,GACA9B,GAAA,GAAAe,KAAAC,GAAA,KAAAC,KAAAC,GAAA,KACAc,GAAAK,GAAAnB,GAAA,GACAc,IAAAK,KAAApB,IAAA,IACAH,GAAA,GAAAC,GAAAD,GAAA,GAAAE,KAgKAkC,IACAkL,OAAArQ,GACAx8C,MAAAohD,GACA93C,UAAAo4C,GACAn4C,QAAA44C,GACAjF,aAAA,WACAyE,GAAAr4C,UAAA84C,GACAT,GAAAp4C,QAAA+4C,IAEAnF,WAAA,WACAwE,GAAAr4C,UAAAo4C,GACAC,GAAAp4C,QAAA44C,IA+IAe,IAAAr3B,OAAAq3B,EAqUA,IAuLAgE,IACAC,GACAC,GAiMAhhD,GACAC,GACA2iD,GACAC,GAwEAwB,GACAC,GACAX,GACAC,GAxcAtD,GAAA,IACAD,IAAAC,GAqLAc,GAAA3L,KAIAkL,IACA8F,OAAArQ,GACAx8C,MAAAw8C,GACAlzC,UAAAw9C,GACAv9C,QAAAizC,GACAU,aAAAV,GACAW,WAAAX,IAsCAM,IAAA,WACA4K,IAAgB7jG,KAAA,aAAAi5F,gBAiJhByrB,GAAA1sB,KACAqN,GAAArN,KAKAgN,IACA7oD,MAAAw8C,GACAlzC,UAAAkzC,GACAjzC,QAAAizC,GACAU,aAAA,WACA2L,GAAAv/C,UAAAs/C,GACAC,GAAAt/C,QAAA4/C,IAEAhM,WAAA,WACA0L,GAAAv/C,UAAAu/C,GAAAt/C,QAAAs/C,GAAA7oD,MAAAw8C,GACA+rB,GAAA95F,IAAAkqB,GAAAuwD,KACAA,GAAAnN,SAEAt6F,OAAA,WACA,GAAA6vC,GAAAi3E,GAAA,CAEA,OADAA,IAAAxsB,QACAzqD,IAsBA+3D,GAAAr7D,IACAs7D,GAAAD,GACA7vD,IAAA6vD,GACAppD,GAAAzG,GACAkyD,IACA1rD,MAAAopD,GACA9/C,UAAAkzC,GACAjzC,QAAAizC,GACAU,aAAAV,GACAW,WAAAX,GACA/6F,OAAA,WACA,GAAAw/F,KAAAoI,GAAAC,KAAA9vD,GAAAyG,IAEA,OADAzG,IAAAyG,KAAAqpD,GAAAD,GAAAr7D,KACAizD,IAWAuI,GAAA,EACAC,GAAA,EACAC,GAAA,EACAO,GAAA,EACAC,GAAA,EACAC,GAAA,EACAQ,GAAA,EACAC,GAAA,EACAC,GAAA,EAKAjB,IACA5pD,MAAAupD,GACAjgD,UAAAqgD,GACApgD,QAAA6gD,GACAlN,aAAA,WACA0M,GAAAtgD,UAAA+gD,GACAT,GAAArgD,QAAAghD,IAEApN,WAAA,WACAyM,GAAA5pD,MAAAupD,GACAK,GAAAtgD,UAAAqgD,GACAC,GAAArgD,QAAA6gD,IAEA3oG,OAAA,WACA,GAAA29C,GAAAyrD,IAAAF,GAAAE,GAAAD,GAAAC,IACAV,IAAAF,GAAAE,GAAAD,GAAAC,IACAT,IAAAF,GAAAE,GAAAD,GAAAC,KACAnyD,QAIA,OAHAiyD,IAAAC,GAAAC,GACAO,GAAAC,GAAAC,GACAQ,GAAAC,GAAAC,GAAA,EACAzrD,IA4NAwsD,GAAA/P,KAmMAqU,GAAA9K,GACA,WAAc,UACd0H,GACAK,KACAhR,IAAAE,IAyRAmS,IAAA94G,WACAsqD,MAAA,SAAA1yC,EAAAoC,GAAyBvX,KAAAwkG,OAAA38C,MAAA1yC,EAAAoC,IACzBm9F,OAAA,WAAsB10G,KAAAwkG,OAAAkQ,UACtBvjD,UAAA,WAAyBnxD,KAAAwkG,OAAArzC,aACzBC,QAAA,WAAuBpxD,KAAAwkG,OAAApzC,WACvB2zC,aAAA,WAA4B/kG,KAAAwkG,OAAAO,gBAC5BC,WAAA,WAA0BhlG,KAAAwkG,OAAAQ,cAwC1B,IAAAqS,IAAA,GACAF,GAAArR,GAAA,GAAAH,IAmGAuS,GAAA9B,IACAvuD,MAAA,SAAA1yC,EAAAoC,GACAvX,KAAAwkG,OAAA38C,MAAA1yC,EAAAwwF,GAAApuF,EAAAouF,OA4PA4T,GAAAH,GAAA,SAAAiX,GACA,MAAAppB,IAAA,KAAAopB,KAGA9W,IAAA7lC,OAAA2lC,GAAA,SAAAvhG,GACA,SAAAmsF,GAAAnsF,EAAA,IASA,IAAA2hG,IAAAL,GAAA,SAAA38G,GACA,OAAAA,EAAAg0D,GAAAh0D,OAAA2nG,GAAA3nG,IAGAg9G,IAAA/lC,OAAA2lC,GAAA,SAAAvhG,GACA,MAAAA,KAaA4hG,GAAAhmC,OAAA,SAAAv+D,EAAAoC,GACA,OAAApC,EAAA,EAAA+oD,GAAAzZ,GAAAltC,IAAA2sF,KAyEAmW,GAAA3mC,OAAA2mC,GAsCAM,GAAAjnC,OAAA2lC,GAAAn7C,IAYA28C,GAAAnnC,OAAA2lC,GAAApV,IAaA8W,GAAArnC,OAAA2lC,GAAA,SAAAvhG,GACA,SAAAomD,GAAApmD,KAaAmjG,GAAAvnC,OAAA,SAAAv+D,EAAAoC,GACA,QAAAA,EAAA,EAAA2mD,GAAAzZ,GAAAtvC,IAAA+uF,KAoBA/nG,EAAAqf,QAl+eA,QAm+eArf,EAAAm0H,OAAA5uE,GACAvlD,EAAAulD,eACAvlD,EAAAi/G,cACAj/G,EAAAgjD,YACAhjD,EAAAkjD,WACAljD,EAAAyjD,aACAzjD,EAAA4jD,YACA5jD,EAAA8jD,SACA9jD,EAAA+kD,YACA/kD,EAAAo0H,0BAAA1uE,EACA1lD,EAAAq0H,eAAAzuE,EACA5lD,EAAAs0H,iBAAAzvE,EACA7kD,EAAAiU,MACAjU,EAAA6lD,OACA7lD,EAAA8lD,SACA9lD,EAAAgmD,QACAhmD,EAAAmU,MACAnU,EAAAmmD,QACAnmD,EAAAomD,UACApmD,EAAAu4E,SAAAnzB,EACAplD,EAAAqsC,QACArsC,EAAAoJ,OACApJ,EAAAymD,UACAzmD,EAAA4mD,MACA5mD,EAAAkkD,QACAlkD,EAAAmkD,WACAnkD,EAAA6mD,YACA7mD,EAAA0jD,WACA1jD,EAAA+mD,MACA/mD,EAAA8R,UACA9R,EAAA2C,OACA3C,EAAA2L,SACA3L,EAAAqC,IAAA2kD,EACAhnD,EAAAkO,MACAlO,EAAAknD,OACAlnD,EAAAu0H,cAAAvsE,EACAhoD,EAAAqoD,aAAAJ,EACAjoD,EAAAw0H,gBAAApsE,EACApoD,EAAAy0H,YAAAjsE,EACAxoD,EAAAyoD,gBAAAF,EACAvoD,EAAA00H,kBAAAhsE,EACA1oD,EAAA20H,WAAA/rE,EACA5oD,EAAA40H,SAAA7rE,EACA/oD,EAAA60H,WAAAhsE,EACA7oD,EAAA80H,YAAAhsE,EACA9oD,EAAA+0H,cAAAhsE,EACA/oD,EAAAg1H,UAAA9rE,GACAlpD,EAAAi1H,YAAAjsE,GACAhpD,EAAAk1H,aAAAjsE,GACAjpD,EAAAkpD,kBACAlpD,EAAAm1H,SAAA5V,GACAv/G,EAAAo1H,WAAAhW,GACAp/G,EAAAq1H,YAAA/V,GACAt/G,EAAAs1H,cAAA/V,GACAv/G,EAAAu1H,QAAA/rE,GACAxpD,EAAAw1H,UAAArsE,GACAnpD,EAAAy1H,WAAAnsE,GACAtpD,EAAA01H,aAAAlsE,GACAxpD,EAAA21H,QAAA/rE,GACA5pD,EAAA41H,UAAAlsE,GACA1pD,EAAA61H,WAAAlsE,GACA3pD,EAAA81H,aAAAlsE,GACA5pD,EAAA+1H,WAAAhsE,GACA/pD,EAAAg2H,aAAAnsE,GACA7pD,EAAAi2H,cAAAnsE,GACA9pD,EAAAk2H,gBAAAnsE,GACA/pD,EAAAm2H,WAAAlsE,GACAjqD,EAAAo2H,aAAApsE,GACAhqD,EAAAq2H,cAAApsE,GACAjqD,EAAAs2H,gBAAA1rE,GACA5qD,EAAAu2H,SAAA3W,GACA5/G,EAAAw2H,WAAA/W,GACAz/G,EAAAy2H,YAAA9W,GACA3/G,EAAA02H,cAAA9W,GACA5/G,EAAA22H,YAAA1W,GACAjgH,EAAA42H,cAAA9W,GACA9/G,EAAA62H,eAAA5W,GACAjgH,EAAA82H,iBAAA5W,GACAlgH,EAAA+2H,YAAA/5E,GACAh9C,EAAAg3H,gBAAAlsE,GACA9qD,EAAAi3H,YAAA9rE,GACAnrD,EAAAq3G,gBAAA10D,GACA3iD,EAAAk3H,cAAAprE,GACA9rD,EAAAqsD,QACArsD,EAAA+uD,YACA/uD,EAAA6I,SACA7I,EAAA0yD,OACA1yD,EAAAg9C,KAAAoY,GACAp1D,EAAAoI,QACApI,EAAAg2D,OACAh2D,EAAA02D,cACA12D,EAAAs2D,WAAAE,GACAx2D,EAAA+2D,UACA/2D,EAAAgD,WACAhD,EAAAm3H,aAAAlgE,GACAj3D,EAAAo3H,YAAA5V,GACAxhH,EAAAq3H,cAAA1V,GACA3hH,EAAAs3H,aAAAxV,GACA9hH,EAAAu3H,WAAA1V,GACA7hH,EAAAw3H,eAAAxV,GACAhiH,EAAAy3H,UAAAxV,GACAjiH,EAAA03H,iBAAAngE,GACAv3D,EAAA23H,eAAAlgE,GACAz3D,EAAA43H,WAAAvgE,GACAr3D,EAAA63H,YAAAvV,GACAtiH,EAAA83H,oBAAApV,GACA1iH,EAAA+3H,kBAAApV,GACA3iH,EAAAg4H,cAAAzV,GACAviH,EAAAi4H,sBAAAlV,GACA/iH,EAAAk4H,oBAAAlV,GACAhjH,EAAAm4H,gBAAArV,GACA9iH,EAAAo4H,kBAAAj/D,GACAn5D,EAAA40D,eACA50D,EAAAq4H,eAAAt+D,GACA/5D,EAAAs4H,eAAAt+D,GACAh6D,EAAAu4H,aAAAp+D,GACAn6D,EAAAw4H,UAAAx5F,GACAh/B,EAAAy4H,eAAAl+D,GACAv6D,EAAA04H,gBAAAp+D,GACAt6D,EAAAmI,SACAnI,EAAA24H,kBAAAx9D,GACAn7D,EAAA44H,gBAAAp+D,GACAx6D,EAAA64H,sBAAAz9D,GACAp7D,EAAA84H,kBAAAz9D,GACAr7D,EAAA+4H,oBAAAp9D,GACA37D,EAAAg5H,qBAAAl9D,GACA97D,EAAAi5H,oBAAAj9D,GACAh8D,EAAAk5H,eAAAx+D,GACA16D,EAAAm5H,kBAAAp9D,GACA/7D,EAAAoW,SACApW,EAAAs9D,IAAAC,GACAv9D,EAAAmkE,IAAAzG,GACA19D,EAAAu+D,OACAv+D,EAAAqkE,IAAAvF,GACA9+D,EAAAq/D,aACAr/D,EAAAwgE,eACAxgE,EAAAo5H,iBAAA74D,GACAvgE,EAAAq5H,gBAAAvtF,GACA9rC,EAAA0gE,qBACA1gE,EAAAs5H,kBAAAp4H,GACAlB,EAAAshE,oBACAthE,EAAA6gE,qBACA7gE,EAAAu5H,wBAAAnwC,GACAppF,EAAAw5H,wBAAAvyC,GACAjnF,EAAAqjE,mBACArjE,EAAAqhE,kBACArhE,EAAAy5H,oBAAAhN,GACAzsH,EAAA05H,0BAAAhN,GACA1sH,EAAA25H,eAAA/M,GACA5sH,EAAA45H,mBAAA/M,GACA7sH,EAAA65H,eAAAz1D,GACApkE,EAAA85H,eAAAhN,GACA9sH,EAAA+5H,mBAAAhN,GACA/sH,EAAAg6H,qBAAAhN,GACAhtH,EAAAitH,4BACAjtH,EAAAi6H,iBAAAt6D,GACA3/D,EAAAk6H,uBAAAt6D,GACA5/D,EAAAykE,YACAzkE,EAAA4kE,YACA5kE,EAAAm6H,UAAA30D,GACAxlE,EAAAmtH,YACAntH,EAAAotH,gBACAptH,EAAAqtH,aACArtH,EAAAstH,iBACAttH,EAAAwtH,YACAxtH,EAAAytH,gBACAztH,EAAA0tH,aACA1tH,EAAA2tH,iBACA3tH,EAAAqS,WACArS,EAAA45C,QACA55C,EAAA2P,QACA3P,EAAAyP,QACAzP,EAAA8mC,OACA9mC,EAAAktH,IAAAY,GACA9tH,EAAAutH,IAAAQ,GACA/tH,EAAAy8B,OACAz8B,EAAA+nE,SACA/nE,EAAAkoE,cACAloE,EAAAiI,QAAA2gE,GACA5oE,EAAAyZ,SAAAqvD,GACA9oE,EAAAo6H,aAAApxD,GACAhpE,EAAAq6H,gBAAAnhD,GACAl5E,EAAAs6H,iBAAAtM,GACAhuH,EAAAu6H,WAAAthD,GACAj5E,EAAAw6H,YAAAvM,GACAjuH,EAAAy6H,WAAAzhD,GACAh5E,EAAA06H,YAAAxM,GACAluH,EAAA26H,SAAA5hD,GACA/4E,EAAA46H,UAAAzM,GACAnuH,EAAA66H,QAAA9sD,GACA/tE,EAAA86H,SAAAnqD,GACA3wE,EAAAy0E,WACAz0E,GAAA+6H,UAAAtM,GACAzuH,EAAAg7H,WAAAvmD,GACAz0E,EAAAi7H,YAAAxM,GACAzuH,EAAA00E,cACA10E,EAAAk7H,YAAAxM,GACA1uH,EAAAm7H,YAAA/M,GACApuH,EAAAo7H,aAAAzM,GACA3uH,EAAAq7H,cAAAhN,GACAruH,EAAAs7H,eAAA1M,GACA5uH,EAAAu7H,aAAAjN,GACAtuH,EAAAw7H,cAAA3M,GACA7uH,EAAAy7H,WAAAlN,GACAvuH,EAAA07H,YAAA5M,GACA9uH,EAAA27H,aAAAnN,GACAxuH,EAAA47H,cAAA7M,GACA/uH,EAAA67H,UAAA3vF,GACAlsC,EAAA87H,WAAAjrD,GACA7wE,EAAA+7H,SAAA1nD,GACAr0E,EAAAg8H,UAAA/M,GACAjvH,EAAAi8H,eAAA/iD,GACAl5E,EAAAk8H,gBAAAlO,GACAhuH,EAAAm8H,UAAAljD,GACAj5E,EAAAo8H,WAAAnO,GACAjuH,EAAAq6E,aACAr6E,EAAAmvH,cACAnvH,EAAAo6E,WACAp6E,EAAAqvH,YACArvH,EAAA40E,UACA50E,EAAAsvH,WACAtvH,EAAAi1E,WACAj1E,EAAAq8H,SAAAzM,GACA5vH,EAAAs8H,UAAArnD,GACAj1E,EAAA4vH,cACA5vH,EAAAk1E,aACAl1E,EAAA6vH,cACA7vH,EAAAuvH,cACAvvH,EAAA8vH,eACA9vH,EAAAwvH,gBACAxvH,EAAA+vH,iBACA/vH,EAAAyvH,eACAzvH,EAAAgwH,gBACAhwH,EAAA0vH,aACA1vH,EAAAiwH,cACAjwH,EAAA2vH,eACA3vH,EAAAkwH,gBACAlwH,EAAAm6E,YACAn6E,EAAAowH,aACApwH,EAAA60E,WACA70E,EAAAqwH,YACArwH,EAAA+rE,gBACA/rE,EAAAu8H,oBAAA1vD,GACA7sE,EAAAqrE,mBACArrE,EAAA8sE,kBACA9sE,EAAA+sE,mBACA/sE,EAAAgtE,kBACAhtE,EAAAw8H,UAAA9L,GACA1wH,EAAAy8H,SAAA9L,GACA3wH,EAAA08H,iBAAAnvD,GACAvtE,EAAA28H,wBAAAvnD,GACAp1E,EAAA48H,UAAA7mD,GACA/1E,EAAA68H,WAAArmD,GACAx2E,EAAA88H,cAAAjlD,GACA73E,EAAA+8H,YAAAnlD,GACA53E,EAAAg9H,SAAAx4E,GACAxkD,EAAAi9H,aAAAtnD,GACA31E,EAAAk9H,cAAArnD,GACA71E,EAAAm9H,SAAA54E,GACAvkD,EAAAo9H,UAAAv5E,GACA7jD,EAAAq9H,cAAA9kD,GACAv4E,EAAAs9H,cAAA5kD,GACA14E,EAAAu9H,eAAA5kD,GACA34E,EAAAw9H,UAAAhxF,GACAxsC,EAAAy9H,SAAAvjD,GACAl6E,EAAA09H,iBAAA7M,GACA7wH,EAAA29H,kBAAA7M,GACA9wH,EAAA49H,kBAAA7M,GACA/wH,EAAA69H,iBAAA7M,GACAhxH,EAAA89H,gBAAApjD,GACA16E,EAAA+9H,4BAAA9M,GACAjxH,EAAAg+H,mBAAA1jD,GACAt6E,EAAAi+H,gBAAA/M,GACAlxH,EAAAk+H,gBAAA/M,GACAnxH,EAAAm+H,mBAAA/M,GACApxH,EAAAo+H,iBAAA/M,GACArxH,EAAAq+H,mBAAA/M,GACAtxH,EAAAs+H,kBAAA/M,GACAvxH,EAAAo7E,WACAp7E,EAAAs8E,eACAt8E,EAAA86E,SACA96E,EAAAyxH,QAAAtzC,GACAn+E,EAAAk9E,SACAl9E,EAAA26E,aACA36E,EAAA46E,cACA56E,EAAA6tB,UACA7tB,EAAAskF,aACAtkF,EAAA0/E,aACA1/E,EAAAo9E,YACAp9E,EAAA+9E,eACA/9E,EAAAukF,SACAvkF,EAAA+2C,WACA/2C,EAAA6G,UACA7G,EAAA0lF,UACA1lF,EAAAylF,aACAzlF,EAAAkvC,cACAlvC,EAAAyrF,WACAzrF,EAAA0rF,aACA1rF,EAAA2rF,cACA3rF,EAAA4rF,YACA5rF,EAAAqsF,WACArsF,EAAA2tF,aACA3tF,EAAAiwF,KAAAhnF,GACAjJ,EAAAu+H,aAAAruC,GACAlwF,EAAA+vF,YAAAzB,GACAtuF,EAAA4wF,aACA5wF,EAAAixF,YACAjxF,EAAA0sD,QACA1sD,EAAA4zF,QAAAD,GACA3zF,EAAAw+H,cAAApqC,GACAp0F,EAAA2wF,eACA3wF,EAAAkzF,gBACAlzF,EAAAy+H,iBAAA9pC,GACA30F,EAAA0+H,gBAAAvqC,GACAn0F,EAAA2+H,kBAAAtM,GACAryH,EAAA4+H,YAAAhqC,GACA50F,EAAA6+H,aAAAtpC,GACAv1F,EAAA8+H,UAAAvhF,GACAv9C,EAAA++H,cAAAnnC,GACA53F,EAAAg/H,gBAAAnoC,GACA72F,EAAAi/H,OAAA7mC,GACAp4F,EAAAk/H,OAAA7mC,GACAr4F,EAAAo5F,QACAp5F,EAAAy4F,eACAz4F,EAAA44F,cACA54F,EAAAy/F,WACAz/F,EAAAm8C,QACAn8C,EAAAm/H,aAAAn/B,GACAhgG,EAAAo/H,cAAA/8D,GACAriE,EAAAijG,SACAjjG,EAAA8iG,UACA9iG,EAAAgjG,UACAhjG,EAAA4iG,kBACA5iG,EAAAulG,SACAvlG,EAAA0mG,UACA1mG,EAAAq/H,UAAA/iB,GACAt8G,EAAAs/H,aAAA7iB,GACAz8G,EAAAu/H,QAAAn1B,GACApqG,EAAAw/H,sBAAAriB,GACAn9G,EAAAy/H,yBAAAriB,GACAp9G,EAAA0/H,wBAAAriB,GACAr9G,EAAA2/H,2BAAAriB,GACAt9G,EAAA4/H,UAAAjzB,GACA3sG,EAAA6/H,YAAArxB,GACAxuG,EAAA8/H,UAAA9vB,GACAhwG,EAAA+/H,cAAA1tB,GACAryG,EAAAggI,kBAAA/hB,GACAj+G,EAAAigI,qBAAAniB,GACA99G,EAAAkgI,kBAAA7jB,GACAr8G,EAAAmgI,qBAAAhkB,GACAn8G,EAAAogI,oBAAA7hB,GACAv+G,EAAAqgI,uBAAAjiB,GACAp+G,EAAAsgI,YAAA5pC,GACA12F,EAAAugI,mBAAApiB,GACAn+G,EAAAwgI,sBAAAtiB,GACAl+G,EAAAygI,YAAAhiB,GACAz+G,EAAA0gI,eAAAliB,GACAx+G,EAAA2gI,aAAAptB,GACAvzG,EAAA4gI,eAAA7sB,GACA/zG,EAAA6gI,UAAA1tB,GACAnzG,EAAA8gI,YAAApjB,GACA19G,EAAA+gI,eAAAxjB,GACAv9G,EAAAghI,gBAAAriB,GACA3+G,EAAAihI,mBAAAviB,GACA1+G,EAAAkhI,QAAAlqB,GACAh3G,EAAAmhI,cAAAhqB,GACAn3G,EAAAohI,qBAAA9lB,GACAt7G,EAAAqhI,YAAAhyB,GACArvG,EAAAshI,iBAAAziB,GACA7+G,EAAAuhI,oBAAA3iB,GACA5+G,EAAA8oG,aACA9oG,EAAAwhI,aAAAxnB,GACAh6G,EAAAyhI,sBAAA1iB,GACA/+G,EAAA0hI,yBAAA5iB,GAEAn+G,OAAAC,eAAAZ,EAAA,cAA8CwG,OAAA,OzB6wExC,SAAUvG,EAAQD","file":"static/js/main.52d8c6a6.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/convolution-visualizer/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 5);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar asap = __webpack_require__(8);\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nif (true) {\n module.exports = __webpack_require__(13);\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar emptyObject = {};\n\nif (false) {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(6);\nmodule.exports = __webpack_require__(12);\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// @remove-on-eject-begin\n/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// @remove-on-eject-end\n\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n __webpack_require__(7).enable();\n window.Promise = __webpack_require__(10);\n}\n\n// fetch() polyfill for making API calls.\n__webpack_require__(11);\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = __webpack_require__(0);\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (false) {\n require('raf').polyfill(global);\n}\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Promise = __webpack_require__(2);\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._47 = null;\n Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._47 = function (promise) {\n if (\n promise._83 === 2 && // IS REJECTED\n rejections[promise._56]\n ) {\n if (rejections[promise._56].logged) {\n onHandled(promise._56);\n } else {\n clearTimeout(rejections[promise._56].timeout);\n }\n delete rejections[promise._56];\n }\n };\n Promise._71 = function (promise, err) {\n if (promise._75 === 0) { // not yet handled\n promise._56 = id++;\n rejections[promise._56] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._56),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9)))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = __webpack_require__(2);\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_dom__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3v4__ = __webpack_require__(24);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_d3v4___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_d3v4__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__index_css__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__index_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__index_css__);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i=max;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('span',{className:'slider'},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('input',{type:'range',min:min,max:max,value:props.value,onChange:props.onChange,disabled:disabled}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('input',{type:'text',value:props.value,onChange:props.onChange,maxLength:maxLength,disabled:disabled,size:Math.max(maxLength,2)}));}/**\n * Create a 1-dimensional array of size 'length', where the 'i'th entry\n * is initialized to 'f(i)', or 'undefined' if 'f' is not passed.\n */function array1d(length,f){return Array.from({length:length},f?function(v,i){return f(i);}:undefined);}/**\n * Create a 2-dimensional array of size 'height' x 'width', where the 'i','j' entry\n * is initialized to 'f(i, j)', or 'undefined' if 'f' is not passed.\n */function array2d(height,width,f){return Array.from({length:height},function(v,i){return Array.from({length:width},f?function(w,j){return f(i,j);}:undefined);});}/**\n * The classic convolution output size formula.\n *\n * The derivation for many special cases is worked out in:\n * http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html\n */function computeOutputSize(input_size,weight_size,padding,dilation,stride){return Math.floor((input_size+2*padding-dilation*(weight_size-1)-1)/stride+1);}/**\n * Test if a set of parameters is valid.\n */function paramsOK(input_size,weight_size,padding,dilation,stride){return computeOutputSize(input_size,weight_size,padding,dilation,stride)>0;}// We use the next two functions (maxWhile and minWhile) to\n// inefficiently compute the bounds for various parameters\n// given fixed values for other parameters.\n/**\n * Given a predicate 'pred' and a starting integer 'start',\n * find the largest integer i >= start such that 'pred(i)'\n * is true OR end, whichever is smaller.\n */function maxWhile(start,end,pred){for(var i=start;i<=end;i++){if(pred(i))continue;return i-1;}return end;}/**\n * Given a predicate 'pred' and a starting integer 'start',\n * find the smallest integer i <= start such that 'pred(i)'\n * is true OR end, whichever is larger.\n */function minWhile(start,end,pred){for(var i=start;i>=end;i--){if(pred(i))continue;return i+1;}return end;}/**\n * Return the color at 0 <= p <= 1 for the RGB linear interpolation\n * between color (0) and white (1).\n */function whiten(color,p){return __WEBPACK_IMPORTED_MODULE_2_d3v4__[\"interpolateRgb\"](color,\"white\")(p);}/**\n * Top-level component for the entire visualization. This component\n * controls top level parameters like input sizes, but not the mouse\n * interaction with the actual visualized grids.\n */var App=function(_React$Component){_inherits(App,_React$Component);function App(props){_classCallCheck(this,App);var _this=_possibleConstructorReturn(this,(App.__proto__||Object.getPrototypeOf(App)).call(this,props));_this.state={input_size:5,weight_size:3,padding:0,dilation:1,stride:1};return _this;}// React controlled components clobber saved browser state, so\n// instead we manually save/load our state from localStorage.\n_createClass(App,[{key:'componentDidMount',value:function componentDidMount(){var state=localStorage.getItem(\"state\");if(state){this.setState(JSON.parse(state));}}},{key:'componentDidUpdate',value:function componentDidUpdate(){localStorage.setItem(\"state\",JSON.stringify(this.state));}},{key:'render',value:function render(){var _this2=this;var input_size=this.state.input_size;var weight_size=this.state.weight_size;var padding=this.state.padding;var dilation=this.state.dilation;var stride=this.state.stride;var padded_input_size=input_size+padding*2;// TODO: transposed convolution\nvar output_size=computeOutputSize(input_size,weight_size,padding,dilation,stride);// Compute the convolution symbolically.\n// output[output_height][output_width] =\n// symbolic expression s for this cell, where\n// s[kernel_height][kernel_width] =\n// the flat input index multiplied against this kernel entry\n// (undefined if this entry not used)\n//\n// Recall: the flat input index for (i, j) in a square matrix is 'i * size + j'\nvar output=array2d(output_size,output_size,function(i,j){return array2d(weight_size,weight_size);});for(var h_out=0;h_out=input_size+padding||j=input_size+padding){r=r.darker(2.5);}return r;};}// Given the animation timestep, determine the output coordinates\n// of our animated stencil.\nvar flat_animated=this.state.counter%(output_size*output_size);var animatedH=Math.floor(flat_animated/output_size);var animatedW=flat_animated%output_size;// If the user is not hovering over any matrix, render \"as if\"\n// they were hovering over the animated output coordinate.\nif(!hoverOver){hoverOver=\"output\";hoverH=animatedH;hoverW=animatedW;}// If the user is hovering over the input matrix, render \"as if'\n// they were hovering over the output coordinate, such that the\n// top-left corner of the stencil is attached to the cursor.\nif(hoverOver===\"input\"){hoverOver=\"output\";hoverH=Math.min(Math.floor(hoverH/stride),output_size-1);hoverW=Math.min(Math.floor(hoverW/stride),output_size-1);}// Generate the color interpolator for generating the kernels.\n// This particular scale was found via experimentation with various\n// start/endpoints and different interpolation schemes. For more\n// documentation on these D3 functions, see:\n//\n// - https://github.com/d3/d3-interpolate\n// - https://github.com/d3/d3-color\n//\n// Some notes on what I was going for, from an aesthetic perspective:\n//\n// - The most important constraint is that all colors produced by the\n// interpolator need to be saturated enough so they are not confused\n// with the \"animation\" shadow.\n// - I wanted the interpolation to be smooth, despite this being a\n// discrete setting where an ordinal color scheme could be\n// employed. (Also I couldn't get the color schemes to work lol.)\n//\n// If you are a visualization expert and have a pet 2D color\n// interpolation scheme, please try swapping it in here and seeing\n// how it goes.\nvar scale_size=weight_size;var xScale=__WEBPACK_IMPORTED_MODULE_2_d3v4__[\"scaleSequential\"](__WEBPACK_IMPORTED_MODULE_2_d3v4__[\"interpolateLab\"]('#d7191c','#2c7bb6')).domain([-1,scale_size]);var yScale=__WEBPACK_IMPORTED_MODULE_2_d3v4__[\"scaleSequential\"](__WEBPACK_IMPORTED_MODULE_2_d3v4__[\"interpolateLab\"]('#d7191c',__WEBPACK_IMPORTED_MODULE_2_d3v4__[\"color\"]('#1a9641').brighter(1))).domain([-1,scale_size]);function xyScale(i,j){return __WEBPACK_IMPORTED_MODULE_2_d3v4__[\"color\"](__WEBPACK_IMPORTED_MODULE_2_d3v4__[\"interpolateLab\"](xScale(i),yScale(j))((j-i)/(scale_size-1)));}// Given an output coordinate 'hoverH, hoverW', compute a mapping\n// from inputs to the weight coordinates which multiplied with\n// that input.\n//\n// Result:\n// r[input_height][input_width] = [weight_height, weight_width]\nfunction compute_input_multiplies_with_weight(hoverH,hoverW){var input_multiplies_with_weight=array1d(padded_input_size*padded_input_size);for(var h_weight=0;h_weightM.length&&M.push(a)}\nfunction P(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case r:case t:case u:case v:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+Q(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k=g.hasBooleanValue+g.hasNumericValue+g.hasOverloadedBooleanValue?void 0:E(\"50\",f);e.hasOwnProperty(f)&&(g.attributeName=e[f]);d.hasOwnProperty(f)&&(g.attributeNamespace=d[f]);a.hasOwnProperty(f)&&(g.mutationMethod=a[f]);ua[f]=g}}},ua={};\nfunction va(a,b){if(oa.hasOwnProperty(a)||2this.eventPool.length&&this.eventPool.push(a)}function Jb(a){a.eventPool=[];a.getPooled=Kb;a.release=Lb}function Mb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Mb,{data:null});function Nb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Nb,{data:null});var Pb=[9,13,27,32],Vb=l.canUseDOM&&\"CompositionEvent\"in window,Wb=null;l.canUseDOM&&\"documentMode\"in document&&(Wb=document.documentMode);var Xb;\nif(Xb=l.canUseDOM&&\"TextEvent\"in window&&!Wb){var Yb=window.opera;Xb=!(\"object\"===typeof Yb&&\"function\"===typeof Yb.version&&12>=parseInt(Yb.version(),10))}\nvar Zb=Xb,$b=l.canUseDOM&&(!Vb||Wb&&8=Wb),ac=String.fromCharCode(32),bc={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"topCompositionEnd\",\"topKeyPress\",\"topTextInput\",\"topPaste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")}},cc=!1;\nfunction dc(a,b){switch(a){case \"topKeyUp\":return-1!==Pb.indexOf(b.keyCode);case \"topKeyDown\":return 229!==b.keyCode;case \"topKeyPress\":case \"topMouseDown\":case \"topBlur\":return!0;default:return!1}}function ec(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var fc=!1;function gc(a,b){switch(a){case \"topCompositionEnd\":return ec(b);case \"topKeyPress\":if(32!==b.which)return null;cc=!0;return ac;case \"topTextInput\":return a=b.data,a===ac&&cc?null:a;default:return null}}\nfunction hc(a,b){if(fc)return\"topCompositionEnd\"===a||!Vb&&dc(a,b)?(a=Fb(),S._root=null,S._startText=null,S._fallbackText=null,fc=!1,a):null;switch(a){case \"topPaste\":return null;case \"topKeyPress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1qd.length&&qd.push(a)}}}\nvar xd=Object.freeze({get _enabled(){return td},get _handleTopLevel(){return sd},setHandleTopLevel:function(a){sd=a},setEnabled:ud,isEnabled:function(){return td},trapBubbledEvent:U,trapCapturedEvent:wd,dispatchEvent:vd});function yd(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;c[\"ms\"+a]=\"MS\"+b;c[\"O\"+a]=\"o\"+b.toLowerCase();return c}\nvar zd={animationend:yd(\"Animation\",\"AnimationEnd\"),animationiteration:yd(\"Animation\",\"AnimationIteration\"),animationstart:yd(\"Animation\",\"AnimationStart\"),transitionend:yd(\"Transition\",\"TransitionEnd\")},Ad={},Bd={};l.canUseDOM&&(Bd=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete zd.animationend.animation,delete zd.animationiteration.animation,delete zd.animationstart.animation),\"TransitionEvent\"in window||delete zd.transitionend.transition);\nfunction Cd(a){if(Ad[a])return Ad[a];if(!zd[a])return a;var b=zd[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Bd)return Ad[a]=b[c];return\"\"}\nvar Dd={topAbort:\"abort\",topAnimationEnd:Cd(\"animationend\")||\"animationend\",topAnimationIteration:Cd(\"animationiteration\")||\"animationiteration\",topAnimationStart:Cd(\"animationstart\")||\"animationstart\",topBlur:\"blur\",topCancel:\"cancel\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topChange:\"change\",topClick:\"click\",topClose:\"close\",topCompositionEnd:\"compositionend\",topCompositionStart:\"compositionstart\",topCompositionUpdate:\"compositionupdate\",topContextMenu:\"contextmenu\",topCopy:\"copy\",\ntopCut:\"cut\",topDoubleClick:\"dblclick\",topDrag:\"drag\",topDragEnd:\"dragend\",topDragEnter:\"dragenter\",topDragExit:\"dragexit\",topDragLeave:\"dragleave\",topDragOver:\"dragover\",topDragStart:\"dragstart\",topDrop:\"drop\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topFocus:\"focus\",topInput:\"input\",topKeyDown:\"keydown\",topKeyPress:\"keypress\",topKeyUp:\"keyup\",topLoadedData:\"loadeddata\",topLoad:\"load\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",\ntopMouseDown:\"mousedown\",topMouseMove:\"mousemove\",topMouseOut:\"mouseout\",topMouseOver:\"mouseover\",topMouseUp:\"mouseup\",topPaste:\"paste\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topScroll:\"scroll\",topSeeked:\"seeked\",topSeeking:\"seeking\",topSelectionChange:\"selectionchange\",topStalled:\"stalled\",topSuspend:\"suspend\",topTextInput:\"textInput\",topTimeUpdate:\"timeupdate\",topToggle:\"toggle\",topTouchCancel:\"touchcancel\",topTouchEnd:\"touchend\",topTouchMove:\"touchmove\",\ntopTouchStart:\"touchstart\",topTransitionEnd:Cd(\"transitionend\")||\"transitionend\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\",topWheel:\"wheel\"},Ed={},Fd=0,Gd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);function Hd(a){Object.prototype.hasOwnProperty.call(a,Gd)||(a[Gd]=Fd++,Ed[a[Gd]]={});return Ed[a[Gd]]}function Id(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Jd(a,b){var c=Id(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Id(c)}}function Kd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&\"text\"===a.type||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Ld=l.canUseDOM&&\"documentMode\"in document&&11>=document.documentMode,Md={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange\".split(\" \")}},Nd=null,Od=null,Pd=null,Qd=!1;\nfunction Rd(a,b){if(Qd||null==Nd||Nd!==da())return null;var c=Nd;\"selectionStart\"in c&&Kd(c)?c={start:c.selectionStart,end:c.selectionEnd}:window.getSelection?(c=window.getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}):c=void 0;return Pd&&ea(Pd,c)?null:(Pd=c,a=T.getPooled(Md.select,Od,a,b),a.type=\"select\",a.target=Nd,Ab(a),a)}\nvar Sd={eventTypes:Md,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Hd(e);f=Sa.onSelect;for(var g=0;ghe||(a.current=ge[he],ge[he]=null,he--)}function W(a,b){he++;ge[he]=a.current;a.current=b}new Set;var ie={current:D},X={current:!1},je=D;function ke(a){return le(a)?je:ie.current}\nfunction me(a,b){var c=a.type.contextTypes;if(!c)return D;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function le(a){return 2===a.tag&&null!=a.type.childContextTypes}function ne(a){le(a)&&(V(X,a),V(ie,a))}\nfunction oe(a,b,c){null!=ie.cursor?E(\"168\"):void 0;W(ie,b,a);W(X,c,a)}function pe(a,b){var c=a.stateNode,d=a.type.childContextTypes;if(\"function\"!==typeof c.getChildContext)return b;c=c.getChildContext();for(var e in c)e in d?void 0:E(\"108\",jd(a)||\"Unknown\",e);return B({},b,c)}function qe(a){if(!le(a))return!1;var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||D;je=ie.current;W(ie,b,a);W(X,X.current,a);return!0}\nfunction re(a,b){var c=a.stateNode;c?void 0:E(\"169\");if(b){var d=pe(a,je);c.__reactInternalMemoizedMergedChildContext=d;V(X,a);V(ie,a);W(ie,d,a)}else V(X,a);W(X,b,a)}\nfunction Y(a,b,c){this.tag=a;this.key=b;this.stateNode=this.type=null;this.sibling=this.child=this[\"return\"]=null;this.index=0;this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null;this.internalContextTag=c;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.expirationTime=0;this.alternate=null}\nfunction se(a,b,c){var d=a.alternate;null===d?(d=new Y(a.tag,a.key,a.internalContextTag),d.type=a.type,d.stateNode=a.stateNode,d.alternate=a,a.alternate=d):(d.effectTag=0,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null);d.expirationTime=c;d.pendingProps=b;d.child=a.child;d.memoizedProps=a.memoizedProps;d.memoizedState=a.memoizedState;d.updateQueue=a.updateQueue;d.sibling=a.sibling;d.index=a.index;d.ref=a.ref;return d}\nfunction te(a,b,c){var d=void 0,e=a.type,f=a.key;\"function\"===typeof e?(d=e.prototype&&e.prototype.isReactComponent?new Y(2,f,b):new Y(0,f,b),d.type=e,d.pendingProps=a.props):\"string\"===typeof e?(d=new Y(5,f,b),d.type=e,d.pendingProps=a.props):\"object\"===typeof e&&null!==e&&\"number\"===typeof e.tag?(d=e,d.pendingProps=a.props):E(\"130\",null==e?e:typeof e,\"\");d.expirationTime=c;return d}function ue(a,b,c,d){b=new Y(10,d,b);b.pendingProps=a;b.expirationTime=c;return b}\nfunction ve(a,b,c){b=new Y(6,null,b);b.pendingProps=a;b.expirationTime=c;return b}function we(a,b,c){b=new Y(7,a.key,b);b.type=a.handler;b.pendingProps=a;b.expirationTime=c;return b}function xe(a,b,c){a=new Y(9,null,b);a.expirationTime=c;return a}function ye(a,b,c){b=new Y(4,a.key,b);b.pendingProps=a.children||[];b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}var ze=null,Ae=null;\nfunction Be(a){return function(b){try{return a(b)}catch(c){}}}function Ce(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);ze=Be(function(a){return b.onCommitFiberRoot(c,a)});Ae=Be(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function De(a){\"function\"===typeof ze&&ze(a)}function Ee(a){\"function\"===typeof Ae&&Ae(a)}\nfunction Fe(a){return{baseState:a,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function Ge(a,b){null===a.last?a.first=a.last=b:(a.last.next=b,a.last=b);if(0===a.expirationTime||a.expirationTime>b.expirationTime)a.expirationTime=b.expirationTime}\nfunction He(a,b){var c=a.alternate,d=a.updateQueue;null===d&&(d=a.updateQueue=Fe(null));null!==c?(a=c.updateQueue,null===a&&(a=c.updateQueue=Fe(null))):a=null;a=a!==d?a:null;null===a?Ge(d,b):null===d.last||null===a.last?(Ge(d,b),Ge(a,b)):(Ge(d,b),a.last=b)}function Ie(a,b,c,d){a=a.partialState;return\"function\"===typeof a?a.call(b,c,d):a}\nfunction Je(a,b,c,d,e,f){null!==a&&a.updateQueue===c&&(c=b.updateQueue={baseState:c.baseState,expirationTime:c.expirationTime,first:c.first,last:c.last,isInitialized:c.isInitialized,callbackList:null,hasForceUpdate:!1});c.expirationTime=0;c.isInitialized?a=c.baseState:(a=c.baseState=b.memoizedState,c.isInitialized=!0);for(var g=!0,h=c.first,k=!1;null!==h;){var q=h.expirationTime;if(q>f){var v=c.expirationTime;if(0===v||v>q)c.expirationTime=q;k||(k=!0,c.baseState=a)}else{k||(c.first=h.next,null===\nc.first&&(c.last=null));if(h.isReplace)a=Ie(h,d,a,e),g=!0;else if(q=Ie(h,d,a,e))a=g?B({},a,q):B(a,q),g=!1;h.isForced&&(c.hasForceUpdate=!0);null!==h.callback&&(q=c.callbackList,null===q&&(q=c.callbackList=[]),q.push(h))}h=h.next}null!==c.callbackList?b.effectTag|=32:null!==c.first||c.hasForceUpdate||(b.updateQueue=null);k||(c.baseState=a);return a}\nfunction Ke(a,b){var c=a.callbackList;if(null!==c)for(a.callbackList=null,a=0;aw?(k=n,n=null):k=n.sibling;var x=G(e,n,m[w],A);if(null===x){null===n&&(n=k);break}a&&n&&null===x.alternate&&b(e,n);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x;n=k}if(w===m.length)return c(e,n),h;if(null===n){for(;ww?(k=n,n=null):k=n.sibling;var J=G(e,n,x.value,A);if(null===J){n||(n=k);break}a&&n&&null===J.alternate&&b(e,n);g=f(J,\ng,w);null===r?h=J:r.sibling=J;r=J;n=k}if(x.done)return c(e,n),h;if(null===n){for(;!x.done;w++,x=m.next())x=z(e,x.value,A),null!==x&&(g=f(x,g,w),null===r?h=x:r.sibling=x,r=x);return h}for(n=d(e,n);!x.done;w++,x=m.next())if(x=I(n,e,w,x.value,A),null!==x){if(a&&null!==x.alternate)n[\"delete\"](null===x.key?w:x.key);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x}a&&n.forEach(function(a){return b(e,a)});return h}return function(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===Ve&&null===f.key&&(f=f.props.children);\nvar m=\"object\"===typeof f&&null!==f;if(m)switch(f.$$typeof){case Re:a:{var r=f.key;for(m=d;null!==m;){if(m.key===r)if(10===m.tag?f.type===Ve:m.type===f.type){c(a,m.sibling);d=e(m,f.type===Ve?f.props.children:f.props,h);d.ref=Ze(m,f);d[\"return\"]=a;a=d;break a}else{c(a,m);break}else b(a,m);m=m.sibling}f.type===Ve?(d=ue(f.props.children,a.internalContextTag,h,f.key),d[\"return\"]=a,a=d):(h=te(f,a.internalContextTag,h),h.ref=Ze(d,f),h[\"return\"]=a,a=h)}return g(a);case Se:a:{for(m=f.key;null!==d;){if(d.key===\nm)if(7===d.tag){c(a,d.sibling);d=e(d,f,h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=we(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a);case Te:a:{if(null!==d)if(9===d.tag){c(a,d.sibling);d=e(d,null,h);d.type=f.value;d[\"return\"]=a;a=d;break a}else c(a,d);d=xe(f,a.internalContextTag,h);d.type=f.value;d[\"return\"]=a;a=d}return g(a);case Ue:a:{for(m=f.key;null!==d;){if(d.key===m)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===\nf.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ye(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h)):(c(a,d),d=ve(f,a.internalContextTag,h)),d[\"return\"]=a,a=d,g(a);if(Ye(f))return L(a,d,f,h);if(Xe(f))return N(a,d,f,h);m&&$e(a,f);if(\"undefined\"===typeof f)switch(a.tag){case 2:case 1:h=a.type,E(\"152\",h.displayName||\nh.name||\"Component\")}return c(a,d)}}var bf=af(!0),cf=af(!1);\nfunction df(a,b,c,d,e){function f(a,b,c){var d=b.expirationTime;b.child=null===a?cf(b,null,c,d):bf(b,a.child,c,d)}function g(a,b){var c=b.ref;null===c||a&&a.ref===c||(b.effectTag|=128)}function h(a,b,c,d){g(a,b);if(!c)return d&&re(b,!1),q(a,b);c=b.stateNode;id.current=b;var e=c.render();b.effectTag|=1;f(a,b,e);b.memoizedState=c.state;b.memoizedProps=c.props;d&&re(b,!0);return b.child}function k(a){var b=a.stateNode;b.pendingContext?oe(a,b.pendingContext,b.pendingContext!==b.context):b.context&&oe(a,\nb.context,!1);I(a,b.containerInfo)}function q(a,b){null!==a&&b.child!==a.child?E(\"153\"):void 0;if(null!==b.child){a=b.child;var c=se(a,a.pendingProps,a.expirationTime);b.child=c;for(c[\"return\"]=b;null!==a.sibling;)a=a.sibling,c=c.sibling=se(a,a.pendingProps,a.expirationTime),c[\"return\"]=b;c.sibling=null}return b.child}function v(a,b){switch(b.tag){case 3:k(b);break;case 2:qe(b);break;case 4:I(b,b.stateNode.containerInfo)}return null}var y=a.shouldSetTextContent,u=a.useSyncScheduling,z=a.shouldDeprioritizeSubtree,\nG=b.pushHostContext,I=b.pushHostContainer,L=c.enterHydrationState,N=c.resetHydrationState,J=c.tryToClaimNextHydratableInstance;a=Le(d,e,function(a,b){a.memoizedProps=b},function(a,b){a.memoizedState=b});var w=a.adoptClassInstance,m=a.constructClassInstance,A=a.mountClassInstance,Ob=a.updateClassInstance;return{beginWork:function(a,b,c){if(0===b.expirationTime||b.expirationTime>c)return v(a,b);switch(b.tag){case 0:null!==a?E(\"155\"):void 0;var d=b.type,e=b.pendingProps,r=ke(b);r=me(b,r);d=d(e,r);b.effectTag|=\n1;\"object\"===typeof d&&null!==d&&\"function\"===typeof d.render?(b.tag=2,e=qe(b),w(b,d),A(b,c),b=h(a,b,!0,e)):(b.tag=1,f(a,b,d),b.memoizedProps=e,b=b.child);return b;case 1:a:{e=b.type;c=b.pendingProps;d=b.memoizedProps;if(X.current)null===c&&(c=d);else if(null===c||d===c){b=q(a,b);break a}d=ke(b);d=me(b,d);e=e(c,d);b.effectTag|=1;f(a,b,e);b.memoizedProps=c;b=b.child}return b;case 2:return e=qe(b),d=void 0,null===a?b.stateNode?E(\"153\"):(m(b,b.pendingProps),A(b,c),d=!0):d=Ob(a,b,c),h(a,b,d,e);case 3:return k(b),\ne=b.updateQueue,null!==e?(d=b.memoizedState,e=Je(a,b,e,null,null,c),d===e?(N(),b=q(a,b)):(d=e.element,r=b.stateNode,(null===a||null===a.child)&&r.hydrate&&L(b)?(b.effectTag|=2,b.child=cf(b,null,d,c)):(N(),f(a,b,d)),b.memoizedState=e,b=b.child)):(N(),b=q(a,b)),b;case 5:G(b);null===a&&J(b);e=b.type;var n=b.memoizedProps;d=b.pendingProps;null===d&&(d=n,null===d?E(\"154\"):void 0);r=null!==a?a.memoizedProps:null;X.current||null!==d&&n!==d?(n=d.children,y(e,d)?n=null:r&&y(e,r)&&(b.effectTag|=16),g(a,b),\n2147483647!==c&&!u&&z(e,d)?(b.expirationTime=2147483647,b=null):(f(a,b,n),b.memoizedProps=d,b=b.child)):b=q(a,b);return b;case 6:return null===a&&J(b),a=b.pendingProps,null===a&&(a=b.memoizedProps),b.memoizedProps=a,null;case 8:b.tag=7;case 7:e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null===e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e)e=b.memoizedProps;d=e.children;b.stateNode=null===a?cf(b,b.stateNode,d,c):bf(b,b.stateNode,d,c);b.memoizedProps=e;return b.stateNode;\ncase 9:return null;case 4:a:{I(b,b.stateNode.containerInfo);e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null==e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e){b=q(a,b);break a}null===a?b.child=bf(b,null,e,c):f(a,b,e);b.memoizedProps=e;b=b.child}return b;case 10:a:{c=b.pendingProps;if(X.current)null===c&&(c=b.memoizedProps);else if(null===c||b.memoizedProps===c){b=q(a,b);break a}f(a,b,c);b.memoizedProps=c;b=b.child}return b;default:E(\"156\")}},beginFailedWork:function(a,b,\nc){switch(b.tag){case 2:qe(b);break;case 3:k(b);break;default:E(\"157\")}b.effectTag|=64;null===a?b.child=null:b.child!==a.child&&(b.child=a.child);if(0===b.expirationTime||b.expirationTime>c)return v(a,b);b.firstEffect=null;b.lastEffect=null;b.child=null===a?cf(b,null,null,c):bf(b,a.child,null,c);2===b.tag&&(a=b.stateNode,b.memoizedProps=a.props,b.memoizedState=a.state);return b.child}}}\nfunction ef(a,b,c){function d(a){a.effectTag|=4}var e=a.createInstance,f=a.createTextInstance,g=a.appendInitialChild,h=a.finalizeInitialChildren,k=a.prepareUpdate,q=a.persistence,v=b.getRootHostContainer,y=b.popHostContext,u=b.getHostContext,z=b.popHostContainer,G=c.prepareToHydrateHostInstance,I=c.prepareToHydrateHostTextInstance,L=c.popHydrationState,N=void 0,J=void 0,w=void 0;a.mutation?(N=function(){},J=function(a,b,c){(b.updateQueue=c)&&d(b)},w=function(a,b,c,e){c!==e&&d(b)}):q?E(\"235\"):E(\"236\");\nreturn{completeWork:function(a,b,c){var m=b.pendingProps;if(null===m)m=b.memoizedProps;else if(2147483647!==b.expirationTime||2147483647===c)b.pendingProps=null;switch(b.tag){case 1:return null;case 2:return ne(b),null;case 3:z(b);V(X,b);V(ie,b);m=b.stateNode;m.pendingContext&&(m.context=m.pendingContext,m.pendingContext=null);if(null===a||null===a.child)L(b),b.effectTag&=-3;N(b);return null;case 5:y(b);c=v();var A=b.type;if(null!==a&&null!=b.stateNode){var p=a.memoizedProps,q=b.stateNode,x=u();q=\nk(q,A,p,m,c,x);J(a,b,q,A,p,m,c);a.ref!==b.ref&&(b.effectTag|=128)}else{if(!m)return null===b.stateNode?E(\"166\"):void 0,null;a=u();if(L(b))G(b,c,a)&&d(b);else{a=e(A,m,c,a,b);a:for(p=b.child;null!==p;){if(5===p.tag||6===p.tag)g(a,p.stateNode);else if(4!==p.tag&&null!==p.child){p.child[\"return\"]=p;p=p.child;continue}if(p===b)break;for(;null===p.sibling;){if(null===p[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}h(a,A,m,c)&&d(b);b.stateNode=a}null!==b.ref&&\n(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)w(a,b,a.memoizedProps,m);else{if(\"string\"!==typeof m)return null===b.stateNode?E(\"166\"):void 0,null;a=v();c=u();L(b)?I(b)&&d(b):b.stateNode=f(m,a,c,b)}return null;case 7:(m=b.memoizedProps)?void 0:E(\"165\");b.tag=8;A=[];a:for((p=b.stateNode)&&(p[\"return\"]=b);null!==p;){if(5===p.tag||6===p.tag||4===p.tag)E(\"247\");else if(9===p.tag)A.push(p.type);else if(null!==p.child){p.child[\"return\"]=p;p=p.child;continue}for(;null===p.sibling;){if(null===\np[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}p=m.handler;m=p(m.props,A);b.child=bf(b,null!==a?a.child:null,m,c);return b.child;case 8:return b.tag=7,null;case 9:return null;case 10:return null;case 4:return z(b),N(b),null;case 0:E(\"167\");default:E(\"156\")}}}}\nfunction ff(a,b){function c(a){var c=a.ref;if(null!==c)try{c(null)}catch(A){b(a,A)}}function d(a){\"function\"===typeof Ee&&Ee(a);switch(a.tag){case 2:c(a);var d=a.stateNode;if(\"function\"===typeof d.componentWillUnmount)try{d.props=a.memoizedProps,d.state=a.memoizedState,d.componentWillUnmount()}catch(A){b(a,A)}break;case 5:c(a);break;case 7:e(a.stateNode);break;case 4:k&&g(a)}}function e(a){for(var b=a;;)if(d(b),null===b.child||k&&4===b.tag){if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||\nb[\"return\"]===a)return;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}else b.child[\"return\"]=b,b=b.child}function f(a){return 5===a.tag||3===a.tag||4===a.tag}function g(a){for(var b=a,c=!1,f=void 0,g=void 0;;){if(!c){c=b[\"return\"];a:for(;;){null===c?E(\"160\"):void 0;switch(c.tag){case 5:f=c.stateNode;g=!1;break a;case 3:f=c.stateNode.containerInfo;g=!0;break a;case 4:f=c.stateNode.containerInfo;g=!0;break a}c=c[\"return\"]}c=!0}if(5===b.tag||6===b.tag)e(b),g?J(f,b.stateNode):N(f,b.stateNode);\nelse if(4===b.tag?f=b.stateNode.containerInfo:d(b),null!==b.child){b.child[\"return\"]=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||b[\"return\"]===a)return;b=b[\"return\"];4===b.tag&&(c=!1)}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}var h=a.getPublicInstance,k=a.mutation;a=a.persistence;k||(a?E(\"235\"):E(\"236\"));var q=k.commitMount,v=k.commitUpdate,y=k.resetTextContent,u=k.commitTextUpdate,z=k.appendChild,G=k.appendChildToContainer,I=k.insertBefore,L=k.insertInContainerBefore,\nN=k.removeChild,J=k.removeChildFromContainer;return{commitResetTextContent:function(a){y(a.stateNode)},commitPlacement:function(a){a:{for(var b=a[\"return\"];null!==b;){if(f(b)){var c=b;break a}b=b[\"return\"]}E(\"160\");c=void 0}var d=b=void 0;switch(c.tag){case 5:b=c.stateNode;d=!1;break;case 3:b=c.stateNode.containerInfo;d=!0;break;case 4:b=c.stateNode.containerInfo;d=!0;break;default:E(\"161\")}c.effectTag&16&&(y(b),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c[\"return\"]||f(c[\"return\"])){c=\nnull;break a}c=c[\"return\"]}c.sibling[\"return\"]=c[\"return\"];for(c=c.sibling;5!==c.tag&&6!==c.tag;){if(c.effectTag&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child[\"return\"]=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)c?d?L(b,e.stateNode,c):I(b,e.stateNode,c):d?G(b,e.stateNode):z(b,e.stateNode);else if(4!==e.tag&&null!==e.child){e.child[\"return\"]=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e[\"return\"]||e[\"return\"]===\na)return;e=e[\"return\"]}e.sibling[\"return\"]=e[\"return\"];e=e.sibling}},commitDeletion:function(a){g(a);a[\"return\"]=null;a.child=null;a.alternate&&(a.alternate.child=null,a.alternate[\"return\"]=null)},commitWork:function(a,b){switch(b.tag){case 2:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null;null!==f&&v(c,f,e,a,d,b)}break;case 6:null===b.stateNode?E(\"162\"):void 0;c=b.memoizedProps;u(b.stateNode,null!==a?a.memoizedProps:\nc,c);break;case 3:break;default:E(\"163\")}},commitLifeCycles:function(a,b){switch(b.tag){case 2:var c=b.stateNode;if(b.effectTag&4)if(null===a)c.props=b.memoizedProps,c.state=b.memoizedState,c.componentDidMount();else{var d=a.memoizedProps;a=a.memoizedState;c.props=b.memoizedProps;c.state=b.memoizedState;c.componentDidUpdate(d,a)}b=b.updateQueue;null!==b&&Ke(b,c);break;case 3:c=b.updateQueue;null!==c&&Ke(c,null!==b.child?b.child.stateNode:null);break;case 5:c=b.stateNode;null===a&&b.effectTag&4&&q(c,\nb.type,b.memoizedProps,b);break;case 6:break;case 4:break;default:E(\"163\")}},commitAttachRef:function(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:b(h(c));break;default:b(c)}}},commitDetachRef:function(a){a=a.ref;null!==a&&a(null)}}}var gf={};\nfunction hf(a){function b(a){a===gf?E(\"174\"):void 0;return a}var c=a.getChildHostContext,d=a.getRootHostContext,e={current:gf},f={current:gf},g={current:gf};return{getHostContext:function(){return b(e.current)},getRootHostContainer:function(){return b(g.current)},popHostContainer:function(a){V(e,a);V(f,a);V(g,a)},popHostContext:function(a){f.current===a&&(V(e,a),V(f,a))},pushHostContainer:function(a,b){W(g,b,a);b=d(b);W(f,a,a);W(e,b,a)},pushHostContext:function(a){var d=b(g.current),h=b(e.current);\nd=c(h,a.type,d);h!==d&&(W(f,a,a),W(e,d,a))},resetHostContainer:function(){e.current=gf;g.current=gf}}}\nfunction jf(a){function b(a,b){var c=new Y(5,null,0);c.type=\"DELETED\";c.stateNode=b;c[\"return\"]=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function c(a,b){switch(a.tag){case 5:return b=f(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=g(b,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;default:return!1}}function d(a){for(a=a[\"return\"];null!==a&&5!==a.tag&&3!==a.tag;)a=a[\"return\"];y=a}var e=a.shouldSetTextContent;\na=a.hydration;if(!a)return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){E(\"175\")},prepareToHydrateHostTextInstance:function(){E(\"176\")},popHydrationState:function(){return!1}};var f=a.canHydrateInstance,g=a.canHydrateTextInstance,h=a.getNextHydratableSibling,k=a.getFirstHydratableChild,q=a.hydrateInstance,v=a.hydrateTextInstance,y=null,u=null,z=!1;return{enterHydrationState:function(a){u=\nk(a.stateNode.containerInfo);y=a;return z=!0},resetHydrationState:function(){u=y=null;z=!1},tryToClaimNextHydratableInstance:function(a){if(z){var d=u;if(d){if(!c(a,d)){d=h(d);if(!d||!c(a,d)){a.effectTag|=2;z=!1;y=a;return}b(y,u)}y=a;u=k(d)}else a.effectTag|=2,z=!1,y=a}},prepareToHydrateHostInstance:function(a,b,c){b=q(a.stateNode,a.type,a.memoizedProps,b,c,a);a.updateQueue=b;return null!==b?!0:!1},prepareToHydrateHostTextInstance:function(a){return v(a.stateNode,a.memoizedProps,a)},popHydrationState:function(a){if(a!==\ny)return!1;if(!z)return d(a),z=!0,!1;var c=a.type;if(5!==a.tag||\"head\"!==c&&\"body\"!==c&&!e(c,a.memoizedProps))for(c=u;c;)b(a,c),c=h(c);d(a);u=y?h(a.stateNode):null;return!0}}}\nfunction kf(a){function b(a){Qb=ja=!0;var b=a.stateNode;b.current===a?E(\"177\"):void 0;b.isReadyForCommit=!1;id.current=null;if(1g.expirationTime)&&(f=g.expirationTime),g=g.sibling;e.expirationTime=f}if(null!==b)return b;null!==c&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1a))if(H<=Uc)for(;null!==F;)F=k(F)?e(F):d(F);else for(;null!==F&&!A();)F=k(F)?e(F):d(F)}else if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=d(F);else for(;null!==F&&!A();)F=d(F)}function g(a,b){ja?E(\"243\"):void 0;ja=!0;a.isReadyForCommit=\n!1;if(a!==ra||b!==H||null===F){for(;-1b)a.expirationTime=b;null!==a.alternate&&(0===a.alternate.expirationTime||a.alternate.expirationTime>b)&&(a.alternate.expirationTime=b);if(null===a[\"return\"])if(3===a.tag){var c=a.stateNode;!ja&&c===ra&&bIg&&E(\"185\");if(null===d.nextScheduledRoot)d.remainingExpirationTime=e,null===O?(sa=O=d,d.nextScheduledRoot=d):(O=O.nextScheduledRoot=d,O.nextScheduledRoot=sa);else{var f=d.remainingExpirationTime;if(0===f||eTb)return;Jg(Xc)}var b=Wc()-Pe;Tb=a;Xc=Kg(J,{timeout:10*(a-2)-b})}function N(){var a=0,b=null;if(null!==O)for(var c=O,d=sa;null!==d;){var e=d.remainingExpirationTime;if(0===e){null===c||null===O?E(\"244\"):void 0;if(d===d.nextScheduledRoot){sa=O=d.nextScheduledRoot=null;break}else if(d===sa)sa=e=d.nextScheduledRoot,\nO.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===O){O=c;O.nextScheduledRoot=sa;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{if(0===a||eLg?!1:Yc=!0}function Ob(a){null===ma?E(\"246\"):\nvoid 0;ma.remainingExpirationTime=0;Ub||(Ub=!0,Zc=a)}var r=hf(a),n=jf(a),p=r.popHostContainer,qg=r.popHostContext,x=r.resetHostContainer,Me=df(a,r,n,u,y),rg=Me.beginWork,Gg=Me.beginFailedWork,Fg=ef(a,r,n).completeWork;r=ff(a,h);var zg=r.commitResetTextContent,Ne=r.commitPlacement,Bg=r.commitDeletion,Oe=r.commitWork,Dg=r.commitLifeCycles,Eg=r.commitAttachRef,Ag=r.commitDetachRef,Wc=a.now,Kg=a.scheduleDeferredCallback,Jg=a.cancelDeferredCallback,Hg=a.useSyncScheduling,yg=a.prepareForCommit,Cg=a.resetAfterCommit,\nPe=Wc(),Uc=2,ka=0,ja=!1,F=null,ra=null,H=0,t=null,R=null,qa=null,ha=null,ca=null,eb=!1,Qb=!1,Sc=!1,sa=null,O=null,Tb=0,Xc=-1,Fa=!1,ma=null,na=0,Yc=!1,Ub=!1,Zc=null,fb=null,la=!1,Sb=!1,Ig=1E3,Rb=0,Lg=1;return{computeAsyncExpiration:v,computeExpirationForFiber:y,scheduleWork:u,batchedUpdates:function(a,b){var c=la;la=!0;try{return a(b)}finally{(la=c)||Fa||w(1,null)}},unbatchedUpdates:function(a){if(la&&!Sb){Sb=!0;try{return a()}finally{Sb=!1}}return a()},flushSync:function(a){var b=la;la=!0;try{a:{var c=\nka;ka=1;try{var d=a();break a}finally{ka=c}d=void 0}return d}finally{la=b,Fa?E(\"187\"):void 0,w(1,null)}},deferredUpdates:function(a){var b=ka;ka=v();try{return a()}finally{ka=b}}}}\nfunction lf(a){function b(a){a=od(a);return null===a?null:a.stateNode}var c=a.getPublicInstance;a=kf(a);var d=a.computeAsyncExpiration,e=a.computeExpirationForFiber,f=a.scheduleWork;return{createContainer:function(a,b){var c=new Y(3,null,0);a={current:c,containerInfo:a,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:b,nextScheduledRoot:null};return c.stateNode=a},updateContainer:function(a,b,c,q){var g=b.current;if(c){c=\nc._reactInternalFiber;var h;b:{2===kd(c)&&2===c.tag?void 0:E(\"170\");for(h=c;3!==h.tag;){if(le(h)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}(h=h[\"return\"])?void 0:E(\"171\")}h=h.stateNode.context}c=le(c)?pe(c,h):h}else c=D;null===b.context?b.context=c:b.pendingContext=c;b=q;b=void 0===b?null:b;q=null!=a&&null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent?d():e(g);He(g,{expirationTime:q,partialState:{element:a},callback:b,isReplace:!1,isForced:!1,\nnextCallback:null,next:null});f(g,q)},batchedUpdates:a.batchedUpdates,unbatchedUpdates:a.unbatchedUpdates,deferredUpdates:a.deferredUpdates,flushSync:a.flushSync,getPublicRootInstance:function(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return c(a.child.stateNode);default:return a.child.stateNode}},findHostInstance:b,findHostInstanceWithNoPortals:function(a){a=pd(a);return null===a?null:a.stateNode},injectIntoDevTools:function(a){var c=a.findFiberByHostInstance;return Ce(B({},\na,{findHostInstanceByFiber:function(a){return b(a)},findFiberByHostInstance:function(a){return c?c(a):null}}))}}}var mf=Object.freeze({default:lf}),nf=mf&&lf||mf,of=nf[\"default\"]?nf[\"default\"]:nf;function pf(a,b,c){var d=3=yf-a)if(-1!==wf&&wf<=\na)Bf.didTimeout=!0;else{xf||(xf=!0,requestAnimationFrame(Df));return}else Bf.didTimeout=!1;wf=-1;a=uf;uf=null;null!==a&&a(Bf)}},!1);var Df=function(a){xf=!1;var b=a-yf+Af;bb&&(b=8),Af=bc||d.hasOverloadedBooleanValue&&!1===c?Jf(a,b):d.mustUseProperty?a[d.propertyName]=c:(b=d.attributeName,(e=d.attributeNamespace)?a.setAttributeNS(e,b,\"\"+c):d.hasBooleanValue||d.hasOverloadedBooleanValue&&!0===c?a.setAttribute(b,\"\"):a.setAttribute(b,\"\"+c))}else Kf(a,b,va(b,c)?c:null)}\nfunction Kf(a,b,c){Hf(b)&&(null==c?a.removeAttribute(b):a.setAttribute(b,\"\"+c))}function Jf(a,b){var c=wa(b);c?(b=c.mutationMethod)?b(a,void 0):c.mustUseProperty?a[c.propertyName]=c.hasBooleanValue?!1:\"\":a.removeAttribute(c.attributeName):a.removeAttribute(b)}\nfunction Lf(a,b){var c=b.value,d=b.checked;return B({type:void 0,step:void 0,min:void 0,max:void 0},b,{defaultChecked:void 0,defaultValue:void 0,value:null!=c?c:a._wrapperState.initialValue,checked:null!=d?d:a._wrapperState.initialChecked})}function Mf(a,b){var c=b.defaultValue;a._wrapperState={initialChecked:null!=b.checked?b.checked:b.defaultChecked,initialValue:null!=b.value?b.value:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}\nfunction Nf(a,b){b=b.checked;null!=b&&If(a,\"checked\",b)}function Of(a,b){Nf(a,b);var c=b.value;if(null!=c)if(0===c&&\"\"===a.value)a.value=\"0\";else if(\"number\"===b.type){if(b=parseFloat(a.value)||0,c!=b||c==b&&a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else null==b.value&&null!=b.defaultValue&&a.defaultValue!==\"\"+b.defaultValue&&(a.defaultValue=\"\"+b.defaultValue),null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Pf(a,b){switch(b.type){case \"submit\":case \"reset\":break;case \"color\":case \"date\":case \"datetime\":case \"datetime-local\":case \"month\":case \"time\":case \"week\":a.value=\"\";a.value=a.defaultValue;break;default:a.value=a.value}b=a.name;\"\"!==b&&(a.name=\"\");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!a.defaultChecked;\"\"!==b&&(a.name=b)}function Qf(a){var b=\"\";aa.Children.forEach(a,function(a){null==a||\"string\"!==typeof a&&\"number\"!==typeof a||(b+=a)});return b}\nfunction Rf(a,b){a=B({children:void 0},b);if(b=Qf(b.children))a.children=b;return a}function Sf(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=b.length?void 0:E(\"93\"),b=b[0]),c=\"\"+b),null==c&&(c=\"\"));a._wrapperState={initialValue:\"\"+c}}\nfunction Wf(a,b){var c=b.value;null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&(a.defaultValue=c));null!=b.defaultValue&&(a.defaultValue=b.defaultValue)}function Xf(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var Yf={html:\"http://www.w3.org/1999/xhtml/",mathml:\"http://www.w3.org/1998/Math/MathML/",svg:\"http://www.w3.org/2000/svg/"};\nfunction Zf(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg/";case \"math\":return\"http://www.w3.org/1998/Math/MathML/";default:return\"http://www.w3.org/1999/xhtml/"}}function $f(a,b){return null==a||\"http://www.w3.org/1999/xhtml/"===a?Zf(b):\"http://www.w3.org/2000/svg/"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml/":a}\nvar ag=void 0,bg=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Yf.svg||\"innerHTML\"in a)a.innerHTML=b;else{ag=ag||document.createElement(\"div\");ag.innerHTML=\"\\x3csvg\\x3e\"+b+\"\\x3c/svg\\x3e\";for(b=ag.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction cg(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar dg={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,\nstopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},eg=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(dg).forEach(function(a){eg.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);dg[b]=dg[a]})});\nfunction fg(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\");var e=c;var f=b[c];e=null==f||\"boolean\"===typeof f||\"\"===f?\"\":d||\"number\"!==typeof f||0===f||dg.hasOwnProperty(e)&&dg[e]?(\"\"+f).trim():f+\"px\";\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var gg=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction hg(a,b,c){b&&(gg[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?E(\"137\",a,c()):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?E(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:E(\"61\")),null!=b.style&&\"object\"!==typeof b.style?E(\"62\",c()):void 0)}\nfunction ig(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var jg=Yf.html,kg=C.thatReturns(\"\");\nfunction lg(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Hd(a);b=Sa[b];for(var d=0;d\nd&&(e=d,d=a,a=e);e=Jd(c,a);var f=Jd(c,d);if(e&&f&&(1!==b.rangeCount||b.anchorNode!==e.node||b.anchorOffset!==e.offset||b.focusNode!==f.node||b.focusOffset!==f.offset)){var g=document.createRange();g.setStart(e.node,e.offset);b.removeAllRanges();a>d?(b.addRange(g),b.extend(f.node,f.offset)):(g.setEnd(f.node,f.offset),b.addRange(g))}}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});ia(c);for(c=0;c b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction bisector(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n\nvar ascendingBisect = bisector(ascending);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\n\nfunction descending(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n\nfunction number(x) {\n return x === null ? NaN : +x;\n}\n\nfunction variance(array, f) {\n var n = array.length,\n m = 0,\n a,\n d,\n s = 0,\n i = -1,\n j = 0;\n\n if (f == null) {\n while (++i < n) {\n if (!isNaN(a = number(array[i]))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(a = number(f(array[i], i, array)))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n }\n\n if (j > 1) return s / (j - 1);\n}\n\nfunction deviation(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n\nfunction extent(array, f) {\n var i = -1,\n n = array.length,\n a,\n b,\n c;\n\n if (f == null) {\n while (++i < n) if ((b = array[i]) != null && b >= b) { a = c = b; break; }\n while (++i < n) if ((b = array[i]) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n\n else {\n while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = c = b; break; }\n while (++i < n) if ((b = f(array[i], i, array)) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n\n return [a, c];\n}\n\nvar array = Array.prototype;\n\nvar slice = array.slice;\nvar map = array.map;\n\nfunction constant(x) {\n return function() {\n return x;\n };\n}\n\nfunction identity(x) {\n return x;\n}\n\nfunction range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n\nvar e10 = Math.sqrt(50);\nvar e5 = Math.sqrt(10);\nvar e2 = Math.sqrt(2);\nfunction ticks(start, stop, count) {\n var step = tickStep(start, stop, count);\n return range(\n Math.ceil(start / step) * step,\n Math.floor(stop / step) * step + step / 2, // inclusive\n step\n );\n}\n\nfunction tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\nfunction sturges(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n\nfunction histogram() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) tz = ticks(x0, x1, tz);\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] >= x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisectRight(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n\nfunction threshold(array, p, f) {\n if (f == null) f = number;\n if (!(n = array.length)) return;\n if ((p = +p) <= 0 || n < 2) return +f(array[0], 0, array);\n if (p >= 1) return +f(array[n - 1], n - 1, array);\n var n,\n h = (n - 1) * p,\n i = Math.floor(h),\n a = +f(array[i], i, array),\n b = +f(array[i + 1], i + 1, array);\n return a + (b - a) * (h - i);\n}\n\nfunction freedmanDiaconis(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (threshold(values, 0.75) - threshold(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n\nfunction scott(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n}\n\nfunction max(array, f) {\n var i = -1,\n n = array.length,\n a,\n b;\n\n if (f == null) {\n while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }\n while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n }\n\n else {\n while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = b; break; }\n while (++i < n) if ((b = f(array[i], i, array)) != null && b > a) a = b;\n }\n\n return a;\n}\n\nfunction mean(array, f) {\n var s = 0,\n n = array.length,\n a,\n i = -1,\n j = n;\n\n if (f == null) {\n while (++i < n) if (!isNaN(a = number(array[i]))) s += a; else --j;\n }\n\n else {\n while (++i < n) if (!isNaN(a = number(f(array[i], i, array)))) s += a; else --j;\n }\n\n if (j) return s / j;\n}\n\nfunction median(array, f) {\n var numbers = [],\n n = array.length,\n a,\n i = -1;\n\n if (f == null) {\n while (++i < n) if (!isNaN(a = number(array[i]))) numbers.push(a);\n }\n\n else {\n while (++i < n) if (!isNaN(a = number(f(array[i], i, array)))) numbers.push(a);\n }\n\n return threshold(numbers.sort(ascending), 0.5);\n}\n\nfunction merge(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n\nfunction min(array, f) {\n var i = -1,\n n = array.length,\n a,\n b;\n\n if (f == null) {\n while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }\n while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n }\n\n else {\n while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = b; break; }\n while (++i < n) if ((b = f(array[i], i, array)) != null && a > b) a = b;\n }\n\n return a;\n}\n\nfunction pairs(array) {\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = [p, p = array[++i]];\n return pairs;\n}\n\nfunction permute(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n}\n\nfunction scan(array, compare) {\n if (!(n = array.length)) return;\n var i = 0,\n n,\n j = 0,\n xi,\n xj = array[j];\n\n if (!compare) compare = ascending;\n\n while (++i < n) if (compare(xi = array[i], xj) < 0 || compare(xj, xj) !== 0) xj = xi, j = i;\n\n if (compare(xj, xj) === 0) return j;\n}\n\nfunction shuffle(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n\nfunction sum(array, f) {\n var s = 0,\n n = array.length,\n a,\n i = -1;\n\n if (f == null) {\n while (++i < n) if (a = +array[i]) s += a; // Note: zero and null are equivalent.\n }\n\n else {\n while (++i < n) if (a = +f(array[i], i, array)) s += a;\n }\n\n return s;\n}\n\nfunction transpose(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n\nfunction zip() {\n return transpose(arguments);\n}\n\nvar prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map$1.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map$1(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nfunction nest() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) return rollup != null\n ? rollup(array) : (sortValues != null\n ? array.sort(sortValues)\n : array);\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map$1(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map$1();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n\nfunction Set() {}\n\nvar proto = map$1.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nfunction keys(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n}\n\nfunction values(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n}\n\nfunction entries(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n}\n\nfunction uniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return Math.random() * max + min;\n };\n}\n\nfunction normal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = Math.random() * 2 - 1;\n y = Math.random() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n}\n\nfunction logNormal() {\n var randomNormal = normal.apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n}\n\nfunction irwinHall(n) {\n return function() {\n for (var sum = 0, i = 0; i < n; ++i) sum += Math.random();\n return sum;\n };\n}\n\nfunction bates(n) {\n var randomIrwinHall = irwinHall(n);\n return function() {\n return randomIrwinHall() / n;\n };\n}\n\nfunction exponential(lambda) {\n return function() {\n return -Math.log(1 - Math.random()) / lambda;\n };\n}\n\nfunction linear(t) {\n return +t;\n}\n\nfunction quadIn(t) {\n return t * t;\n}\n\nfunction quadOut(t) {\n return t * (2 - t);\n}\n\nfunction quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n\nfunction cubicIn(t) {\n return t * t * t;\n}\n\nfunction cubicOut(t) {\n return --t * t * t + 1;\n}\n\nfunction easeCubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\nvar exponent = 3;\n\nvar polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nvar polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nvar polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n\nvar pi = Math.PI;\nvar halfPi = pi / 2;\nfunction sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nfunction sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nfunction sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n\nfunction expIn(t) {\n return Math.pow(2, 10 * t - 10);\n}\n\nfunction expOut(t) {\n return 1 - Math.pow(2, -10 * t);\n}\n\nfunction expInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n}\n\nfunction circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nfunction circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nfunction circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n\nvar b1 = 4 / 11;\nvar b2 = 6 / 11;\nvar b3 = 8 / 11;\nvar b4 = 3 / 4;\nvar b5 = 9 / 11;\nvar b6 = 10 / 11;\nvar b7 = 15 / 16;\nvar b8 = 21 / 22;\nvar b9 = 63 / 64;\nvar b0 = 1 / b1 / b1;\nfunction bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nfunction bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nfunction bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n\nvar overshoot = 1.70158;\n\nvar backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nvar backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nvar backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n\nvar tau = 2 * Math.PI;\nvar amplitude = 1;\nvar period = 0.3;\nvar elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nvar elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nvar elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n\nfunction area(polygon) {\n var i = -1,\n n = polygon.length,\n a,\n b = polygon[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n\n return area / 2;\n}\n\nfunction centroid(polygon) {\n var i = -1,\n n = polygon.length,\n x = 0,\n y = 0,\n a,\n b = polygon[n - 1],\n c,\n k = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n k += c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n\n return k *= 3, [x / k, y / k];\n}\n\n// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of\n// the 3D cross product in a quadrant I Cartesian coordinate system (+x is\n// right, +y is up). Returns a positive value if ABC is counter-clockwise,\n// negative if clockwise, and zero if the points are collinear.\nfunction cross(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n}\n\nfunction lexicographicOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n}\n\n// Computes the upper convex hull per the monotone chain algorithm.\n// Assumes points.length >= 3, is sorted by x, unique in y.\n// Returns an array of indices into points in left-to-right order.\nfunction computeUpperHullIndexes(points) {\n var n = points.length,\n indexes = [0, 1],\n size = 2;\n\n for (var i = 2; i < n; ++i) {\n while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;\n indexes[size++] = i;\n }\n\n return indexes.slice(0, size); // remove popped points\n}\n\nfunction hull(points) {\n if ((n = points.length) < 3) return null;\n\n var i,\n n,\n sortedPoints = new Array(n),\n flippedPoints = new Array(n);\n\n for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];\n sortedPoints.sort(lexicographicOrder);\n for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];\n\n var upperIndexes = computeUpperHullIndexes(sortedPoints),\n lowerIndexes = computeUpperHullIndexes(flippedPoints);\n\n // Construct the hull polygon, removing possible duplicate endpoints.\n var skipLeft = lowerIndexes[0] === upperIndexes[0],\n skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],\n hull = [];\n\n // Add upper hull in right-to-l order.\n // Then add lower hull in left-to-right order.\n for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);\n for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);\n\n return hull;\n}\n\nfunction contains(polygon, point) {\n var n = polygon.length,\n p = polygon[n - 1],\n x = point[0], y = point[1],\n x0 = p[0], y0 = p[1],\n x1, y1,\n inside = false;\n\n for (var i = 0; i < n; ++i) {\n p = polygon[i], x1 = p[0], y1 = p[1];\n if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;\n x0 = x1, y0 = y1;\n }\n\n return inside;\n}\n\nfunction length$1(polygon) {\n var i = -1,\n n = polygon.length,\n b = polygon[n - 1],\n xa,\n ya,\n xb = b[0],\n yb = b[1],\n perimeter = 0;\n\n while (++i < n) {\n xa = xb;\n ya = yb;\n b = polygon[i];\n xb = b[0];\n yb = b[1];\n xa -= xb;\n ya -= yb;\n perimeter += Math.sqrt(xa * xa + ya * ya);\n }\n\n return perimeter;\n}\n\nvar pi$1 = Math.PI;\nvar tau$1 = 2 * pi$1;\nvar epsilon = 1e-6;\nvar tauEpsilon = tau$1 - epsilon;\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = [];\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._.push(\"M\", this._x0 = this._x1 = +x, \",\", this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._.push(\"Z\");\n }\n },\n lineTo: function(x, y) {\n this._.push(\"L\", this._x1 = +x, \",\", this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._.push(\"Q\", +x1, \",\", +y1, \",\", this._x1 = +x, \",\", this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._.push(\"C\", +x1, \",\", +y1, \",\", +x2, \",\", +y2, \",\", this._x1 = +x, \",\", this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._.push(\n \"M\", this._x1 = x1, \",\", this._y1 = y1\n );\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._.push(\n \"L\", this._x1 = x1, \",\", this._y1 = y1\n );\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi$1 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._.push(\n \"L\", x1 + t01 * x01, \",\", y1 + t01 * y01\n );\n }\n\n this._.push(\n \"A\", r, \",\", r, \",0,0,\", +(y01 * x20 > x01 * y20), \",\", this._x1 = x1 + t21 * x21, \",\", this._y1 = y1 + t21 * y21\n );\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._.push(\n \"M\", x0, \",\", y0\n );\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._.push(\n \"L\", x0, \",\", y0\n );\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._.push(\n \"A\", r, \",\", r, \",0,1,\", cw, \",\", x - dx, \",\", y - dy,\n \"A\", r, \",\", r, \",0,1,\", cw, \",\", this._x1 = x0, \",\", this._y1 = y0\n );\n }\n\n // Otherwise, draw an arc!\n else {\n if (da < 0) da = da % tau$1 + tau$1;\n this._.push(\n \"A\", r, \",\", r, \",0,\", +(da >= pi$1), \",\", cw, \",\", this._x1 = x + r * Math.cos(a1), \",\", this._y1 = y + r * Math.sin(a1)\n );\n }\n },\n rect: function(x, y, w, h) {\n this._.push(\"M\", this._x0 = this._x1 = +x, \",\", this._y0 = this._y1 = +y, \"h\", +w, \"v\", +h, \"h\", -w, \"Z\");\n },\n toString: function() {\n return this._.join(\"\");\n }\n};\n\nfunction tree_add(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nfunction addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, inherit the existing extent.\n if (x1 < x0) x0 = this._x0, x1 = this._x1;\n if (y1 < y0) y0 = this._y0, y1 = this._y1;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n\nfunction tree_cover(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else if (x0 > x || x > x1 || y0 > y || y > y1) {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n switch (i = (y < (y0 + y1) / 2) << 1 | (x < (x0 + x1) / 2)) {\n case 0: {\n do parent = new Array(4), parent[i] = node, node = parent;\n while (z *= 2, x1 = x0 + z, y1 = y0 + z, x > x1 || y > y1);\n break;\n }\n case 1: {\n do parent = new Array(4), parent[i] = node, node = parent;\n while (z *= 2, x0 = x1 - z, y1 = y0 + z, x0 > x || y > y1);\n break;\n }\n case 2: {\n do parent = new Array(4), parent[i] = node, node = parent;\n while (z *= 2, x1 = x0 + z, y0 = y1 - z, x > x1 || y0 > y);\n break;\n }\n case 3: {\n do parent = new Array(4), parent[i] = node, node = parent;\n while (z *= 2, x0 = x1 - z, y0 = y1 - z, x0 > x || y0 > y);\n break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n // If the quadtree covers the point already, just return.\n else return this;\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n\nfunction tree_data() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n\nfunction tree_extent(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n\nfunction Quad(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n\nfunction tree_find(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n\nfunction tree_remove(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nfunction removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n\nfunction tree_root() {\n return this._root;\n}\n\nfunction tree_size() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n\nfunction tree_visit(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n\nfunction tree_visitAfter(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction tree_x(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction tree_y(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n\nfunction quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n\nvar slice$1 = [].slice;\n\nvar noabort = {};\n\nfunction Queue(size) {\n if (!(size >= 1)) throw new Error;\n this._size = size;\n this._call =\n this._error = null;\n this._tasks = [];\n this._data = [];\n this._waiting =\n this._active =\n this._ended =\n this._start = 0; // inside a synchronous task callback?\n}\n\nQueue.prototype = queue.prototype = {\n constructor: Queue,\n defer: function(callback) {\n if (typeof callback !== \"function\" || this._call) throw new Error;\n if (this._error != null) return this;\n var t = slice$1.call(arguments, 1);\n t.push(callback);\n ++this._waiting, this._tasks.push(t);\n poke(this);\n return this;\n },\n abort: function() {\n if (this._error == null) abort(this, new Error(\"abort\"));\n return this;\n },\n await: function(callback) {\n if (typeof callback !== \"function\" || this._call) throw new Error;\n this._call = function(error, results) { callback.apply(null, [error].concat(results)); };\n maybeNotify(this);\n return this;\n },\n awaitAll: function(callback) {\n if (typeof callback !== \"function\" || this._call) throw new Error;\n this._call = callback;\n maybeNotify(this);\n return this;\n }\n};\n\nfunction poke(q) {\n if (!q._start) try { start(q); } // let the current task complete\n catch (e) { if (q._tasks[q._ended + q._active - 1]) abort(q, e); } // task errored synchronously\n}\n\nfunction start(q) {\n while (q._start = q._waiting && q._active < q._size) {\n var i = q._ended + q._active,\n t = q._tasks[i],\n j = t.length - 1,\n c = t[j];\n t[j] = end(q, i);\n --q._waiting, ++q._active;\n t = c.apply(null, t);\n if (!q._tasks[i]) continue; // task finished synchronously\n q._tasks[i] = t || noabort;\n }\n}\n\nfunction end(q, i) {\n return function(e, r) {\n if (!q._tasks[i]) return; // ignore multiple callbacks\n --q._active, ++q._ended;\n q._tasks[i] = null;\n if (q._error != null) return; // ignore secondary errors\n if (e != null) {\n abort(q, e);\n } else {\n q._data[i] = r;\n if (q._waiting) poke(q);\n else maybeNotify(q);\n }\n };\n}\n\nfunction abort(q, e) {\n var i = q._tasks.length, t;\n q._error = e; // ignore active callbacks\n q._data = undefined; // allow gc\n q._waiting = NaN; // prevent starting\n\n while (--i >= 0) {\n if (t = q._tasks[i]) {\n q._tasks[i] = null;\n if (t.abort) try { t.abort(); }\n catch (e) { /* ignore */ }\n }\n }\n\n q._active = NaN; // allow notification\n maybeNotify(q);\n}\n\nfunction maybeNotify(q) {\n if (!q._active && q._call) q._call(q._error, q._data);\n}\n\nfunction queue(concurrency) {\n return new Queue(arguments.length ? +concurrency : Infinity);\n}\n\nfunction constant$1(x) {\n return function constant() {\n return x;\n };\n}\n\nvar epsilon$1 = 1e-12;\nvar pi$2 = Math.PI;\nvar halfPi$1 = pi$2 / 2;\nvar tau$2 = 2 * pi$2;\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction asin(x) {\n return x >= 1 ? halfPi$1 : x <= -1 ? -halfPi$1 : Math.asin(x);\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / (y32 * x10 - x32 * y10);\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nfunction arc() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant$1(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi$1,\n a1 = endAngle.apply(this, arguments) - halfPi$1,\n da = Math.abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon$1)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau$2 - epsilon$1) {\n context.moveTo(r1 * Math.cos(a0), r1 * Math.sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon$1) {\n context.moveTo(r0 * Math.cos(a1), r0 * Math.sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon$1) && (padRadius ? +padRadius.apply(this, arguments) : Math.sqrt(r0 * r0 + r1 * r1)),\n rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon$1) {\n var p0 = asin(rp / r0 * Math.sin(ap)),\n p1 = asin(rp / r1 * Math.sin(ap));\n if ((da0 -= p0 * 2) > epsilon$1) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon$1) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * Math.cos(a01),\n y01 = r1 * Math.sin(a01),\n x10 = r0 * Math.cos(a10),\n y10 = r0 * Math.sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon$1) {\n var x11 = r1 * Math.cos(a11),\n y11 = r1 * Math.sin(a11),\n x00 = r0 * Math.cos(a00),\n y00 = r0 * Math.sin(a00);\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi$2) {\n var oc = da0 > epsilon$1 ? intersect(x01, y01, x00, y00, x11, y11, x10, y10) : [x10, y10],\n ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2),\n lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = Math.min(rc, (r0 - lc) / (kc - 1));\n rc1 = Math.min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon$1)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon$1) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, Math.atan2(t0.y01, t0.x01), Math.atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, Math.atan2(t0.y01, t0.x01), Math.atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, Math.atan2(t0.cy + t0.y11, t0.cx + t0.x11), Math.atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, Math.atan2(t1.y11, t1.x11), Math.atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon$1) || !(da0 > epsilon$1)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon$1) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, Math.atan2(t0.y01, t0.x01), Math.atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, Math.atan2(t0.y01, t0.x01), Math.atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, Math.atan2(t0.cy + t0.y11, t0.cx + t0.x11), Math.atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, Math.atan2(t1.y11, t1.x11), Math.atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi$2 / 2;\n return [Math.cos(a) * r, Math.sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant$1(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant$1(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant$1(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant$1(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant$1(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant$1(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant$1(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n\nfunction Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nfunction curveLinear(context) {\n return new Linear(context);\n}\n\nfunction x(p) {\n return p[0];\n}\n\nfunction y(p) {\n return p[1];\n}\n\nfunction line() {\n var x$$ = x,\n y$$ = y,\n defined = constant$1(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x$$(d, i, data), +y$$(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x$$ = typeof _ === \"function\" ? _ : constant$1(+_), line) : x$$;\n };\n\n line.y = function(_) {\n return arguments.length ? (y$$ = typeof _ === \"function\" ? _ : constant$1(+_), line) : y$$;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant$1(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n\nfunction area$1() {\n var x0 = x,\n x1 = null,\n y0 = constant$1(0),\n y1 = y,\n defined = constant$1(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant$1(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant$1(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant$1(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant$1(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant$1(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant$1(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant$1(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n\nfunction descending$1(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n\nfunction identity$1(d) {\n return d;\n}\n\nfunction pie() {\n var value = identity$1,\n sortValues = descending$1,\n sort = null,\n startAngle = constant$1(0),\n endAngle = constant$1(tau$2),\n padAngle = constant$1(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau$2, Math.max(-tau$2, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant$1(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant$1(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant$1(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant$1(+_), pie) : padAngle;\n };\n\n return pie;\n}\n\nvar curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nfunction curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n\nfunction radialLine(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nfunction radialLine$1() {\n return radialLine(line().curve(curveRadialLinear));\n}\n\nfunction radialArea() {\n var a = area$1().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return radialLine(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return radialLine(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return radialLine(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return radialLine(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n\nvar circle = {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi$2);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau$2);\n }\n};\n\nvar cross$1 = {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n\nvar tan30 = Math.sqrt(1 / 3);\nvar tan30_2 = tan30 * 2;\nvar diamond = {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n\nvar ka = 0.89081309152928522810;\nvar kr = Math.sin(pi$2 / 10) / Math.sin(7 * pi$2 / 10);\nvar kx = Math.sin(tau$2 / 10) * kr;\nvar ky = -Math.cos(tau$2 / 10) * kr;\nvar star = {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau$2 * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n\nvar square = {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n\nvar sqrt3 = Math.sqrt(3);\n\nvar triangle = {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n\nvar c = -0.5;\nvar s = Math.sqrt(3) / 2;\nvar k = 1 / Math.sqrt(12);\nvar a = (k / 2 + 1) * 3;\nvar wye = {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n\nvar symbols = [\n circle,\n cross$1,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nfunction symbol() {\n var type = constant$1(circle),\n size = constant$1(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant$1(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant$1(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n\nfunction noop() {}\n\nfunction point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nfunction Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nfunction basis(context) {\n return new Basis(context);\n}\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nfunction basisClosed(context) {\n return new BasisClosed(context);\n}\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nfunction basisOpen(context) {\n return new BasisOpen(context);\n}\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nvar bundle = (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n\nfunction point$1(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nfunction Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point$1(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point$1(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar cardinal = (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\nfunction CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point$1(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar cardinalClosed = (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\nfunction CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point$1(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar cardinalOpen = (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\nfunction point$2(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon$1) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon$1) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this, this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point$2(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar catmullRom = (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point$2(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar catmullRomClosed = (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point$2(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar catmullRomOpen = (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nfunction linearClosed(context) {\n return new LinearClosed(context);\n}\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point$3(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point$3(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point$3(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point$3(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nfunction monotoneX(context) {\n return new MonotoneX(context);\n}\n\nfunction monotoneY(context) {\n return new MonotoneY(context);\n}\n\nfunction Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nfunction natural(context) {\n return new Natural(context);\n}\n\nfunction Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nfunction step(context) {\n return new Step(context, 0.5);\n}\n\nfunction stepBefore(context) {\n return new Step(context, 0);\n}\n\nfunction stepAfter(context) {\n return new Step(context, 1);\n}\n\nvar slice$2 = Array.prototype.slice;\n\nfunction none(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (var j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n\nfunction none$1(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stack() {\n var keys = constant$1([]),\n order = none$1,\n offset = none,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant$1(slice$2.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant$1(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? none$1 : typeof _ === \"function\" ? _ : constant$1(slice$2.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? none : _, stack) : offset;\n };\n\n return stack;\n}\n\nfunction expand(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n\nfunction silhouette(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n\nfunction wiggle(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n\nfunction ascending$1(series) {\n var sums = series.map(sum$1);\n return none$1(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nfunction sum$1(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n\nfunction descending$2(series) {\n return ascending$1(series).reverse();\n}\n\nfunction insideOut(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum$1),\n order = none$1(series).sort(function(a, b) { return sums[b] - sums[a]; }),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n\nfunction reverse(series) {\n return none$1(series).reverse();\n}\n\nfunction define(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reHex3 = /^#([0-9a-f]{3})$/;\nvar reHex6 = /^#([0-9a-f]{6})$/;\nvar reRgbInteger = /^rgb\\(\\s*([-+]?\\d+)\\s*,\\s*([-+]?\\d+)\\s*,\\s*([-+]?\\d+)\\s*\\)$/;\nvar reRgbPercent = /^rgb\\(\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\nvar reRgbaInteger = /^rgba\\(\\s*([-+]?\\d+)\\s*,\\s*([-+]?\\d+)\\s*,\\s*([-+]?\\d+)\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)\\s*\\)$/;\nvar reRgbaPercent = /^rgba\\(\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)\\s*\\)$/;\nvar reHslPercent = /^hsl\\(\\s*([-+]?\\d+(?:\\.\\d+)?)\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\nvar reHslaPercent = /^hsla\\(\\s*([-+]?\\d+(?:\\.\\d+)?)\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)\\s*\\)$/;\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n displayable: function() {\n return this.rgb().displayable();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nfunction color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format])\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction colorRgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, colorRgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (0 <= this.r && this.r <= 255)\n && (0 <= this.g && this.g <= 255)\n && (0 <= this.b && this.b <= 255)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nfunction colorHsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, colorHsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\nvar deg2rad = Math.PI / 180;\nvar rad2deg = 180 / Math.PI;\n\nvar Kn = 18;\nvar Xn = 0.950470;\nvar Yn = 1;\nvar Zn = 1.088830;\nvar t0 = 4 / 29;\nvar t1 = 6 / 29;\nvar t2 = 3 * t1 * t1;\nvar t3 = t1 * t1 * t1;\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) {\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var b = rgb2xyz(o.r),\n a = rgb2xyz(o.g),\n l = rgb2xyz(o.b),\n x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),\n y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),\n z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nfunction lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nfunction Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n y = Yn * lab2xyz(y);\n x = Xn * lab2xyz(x);\n z = Zn * lab2xyz(z);\n return new Rgb(\n xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB\n xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),\n xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction xyz2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2xyz(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nfunction colorHcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hcl, colorHcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return labConvert(this).rgb();\n }\n}));\n\nvar A = -0.14861;\nvar B = +1.78277;\nvar C = -0.29227;\nvar D = -0.90649;\nvar E = +1.97294;\nvar ED = E * D;\nvar EB = E * B;\nvar BC_DA = B * C - D * A;\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nfunction cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\nfunction basis$1(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nfunction basis$2(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis$1((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\nfunction basisClosed$1(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis$1((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\nfunction constant$2(x) {\n return function() {\n return x;\n };\n}\n\nfunction linear$1(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential$1(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nfunction hue(a, b) {\n var d = b - a;\n return d ? linear$1(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$2(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential$1(a, b, y) : constant$2(isNaN(a) ? b : a);\n };\n}\n\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear$1(a, d) : constant$2(isNaN(a) ? b : a);\n}\n\nvar interpolateRgb = (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nvar rgbBasis = rgbSpline(basis$2);\nvar rgbBasisClosed = rgbSpline(basisClosed$1);\n\nfunction array$1(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(nb),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = interpolate(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n\nfunction date(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n}\n\nfunction interpolateNumber(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n}\n\nfunction object(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = interpolate(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\nvar reB = new RegExp(reA.source, \"g\");\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nfunction interpolateString(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: interpolateNumber(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n\nfunction interpolate(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant$2(b)\n : (t === \"number\" ? interpolateNumber\n : t === \"string\" ? ((c = color(b)) ? (b = c, interpolateRgb) : interpolateString)\n : b instanceof color ? interpolateRgb\n : b instanceof Date ? date\n : Array.isArray(b) ? array$1\n : isNaN(b) ? object\n : interpolateNumber)(a, b);\n}\n\nfunction interpolateRound(a, b) {\n return a = +a, b -= a, function(t) {\n return Math.round(a + b * t);\n };\n}\n\nvar degrees = 180 / Math.PI;\n\nvar identity$2 = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nfunction decompose(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n\nvar cssNode;\nvar cssRoot;\nvar cssView;\nvar svgNode;\nfunction parseCss(value) {\n if (value === \"none\") return identity$2;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nfunction parseSvg(value) {\n if (value == null) return identity$2;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg/", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity$2;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: interpolateNumber(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: interpolateNumber(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nvar interpolateTransform$1 = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nvar interpolateTransform$2 = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\nvar rho = Math.SQRT2;\nvar rho2 = 2;\nvar rho4 = 4;\nvar epsilon2 = 1e-12;\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nfunction interpolateZoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nvar hsl$1 = hsl(hue);\nvar hslLong = hsl(nogamma);\n\nfunction lab$1(start, end) {\n var l = nogamma((start = lab(start)).l, (end = lab(end)).l),\n a = nogamma(start.a, end.a),\n b = nogamma(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = nogamma(start.c, end.c),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nvar hcl$1 = hcl(hue);\nvar hclLong = hcl(nogamma);\n\nfunction cubehelix$1(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix$$(start, end) {\n var h = hue((start = cubehelix(start)).h, (end = cubehelix(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix$$.gamma = cubehelixGamma;\n\n return cubehelix$$;\n })(1);\n}\n\nvar cubehelix$2 = cubehelix$1(hue);\nvar interpolateCubehelixLong = cubehelix$1(nogamma);\n\nfunction quantize(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n\nvar noop$1 = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set$1(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set$1(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set$1(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop$1, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"]\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction dsv(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n]\"),\n delimiterCode = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns;\n return rows;\n }\n\n function parseRows(text, f) {\n var EOL = {}, // sentinel value for end-of-line\n EOF = {}, // sentinel value for end-of-file\n rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // the current line number\n t, // the current token\n eol; // is the current token followed by EOL?\n\n function token() {\n if (I >= N) return EOF; // special case: end of file\n if (eol) return eol = false, EOL; // special case: end of line\n\n // special case: quotes\n var j = I, c;\n if (text.charCodeAt(j) === 34) {\n var i = j;\n while (i++ < N) {\n if (text.charCodeAt(i) === 34) {\n if (text.charCodeAt(i + 1) !== 34) break;\n ++i;\n }\n }\n I = i + 2;\n c = text.charCodeAt(i + 1);\n if (c === 13) {\n eol = true;\n if (text.charCodeAt(i + 2) === 10) ++I;\n } else if (c === 10) {\n eol = true;\n }\n return text.slice(j + 1, i).replace(/\"\"/g, \"\\\"\");\n }\n\n // common case: find next delimiter or newline\n while (I < N) {\n var k = 1;\n c = text.charCodeAt(I++);\n if (c === 10) eol = true; // \\n\n else if (c === 13) { eol = true; if (text.charCodeAt(I) === 10) ++I, ++k; } // \\r|\\r\\n\n else if (c !== delimiterCode) continue;\n return text.slice(j, I - k);\n }\n\n // special case: last token before EOF\n return text.slice(j);\n }\n\n while ((t = token()) !== EOF) {\n var a = [];\n while (t !== EOL && t !== EOF) {\n a.push(t);\n t = token();\n }\n if (f && (a = f(a, n++)) == null) continue;\n rows.push(a);\n }\n\n return rows;\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n })).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(text) {\n return text == null ? \"\"\n : reFormat.test(text += \"\") ? \"\\\"\" + text.replace(/\\\"/g, \"\\\"\\\"\") + \"\\\"\"\n : text;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatRows: formatRows\n };\n}\n\nvar csv = dsv(\",\");\n\nvar csvParse = csv.parse;\nvar csvParseRows = csv.parseRows;\nvar csvFormat = csv.format;\nvar csvFormatRows = csv.formatRows;\n\nvar tsv = dsv(\"\\t\");\n\nvar tsvParse = tsv.parse;\nvar tsvParseRows = tsv.parseRows;\nvar tsvFormat = tsv.format;\nvar tsvFormatRows = tsv.formatRows;\n\nfunction request(url, callback) {\n var request,\n event = dispatch(\"beforesend\", \"progress\", \"load\", \"error\"),\n mimeType,\n headers = map$1(),\n xhr = new XMLHttpRequest,\n user = null,\n password = null,\n response,\n responseType,\n timeout = 0;\n\n // If IE does not support CORS, use XDomainRequest.\n if (typeof XDomainRequest !== \"undefined\"\n && !(\"withCredentials\" in xhr)\n && /^(http(s)?:)?\\/\\//.test(url)) xhr = new XDomainRequest;\n\n \"onload\" in xhr\n ? xhr.onload = xhr.onerror = xhr.ontimeout = respond\n : xhr.onreadystatechange = function(o) { xhr.readyState > 3 && respond(o); };\n\n function respond(o) {\n var status = xhr.status, result;\n if (!status && hasResponse(xhr)\n || status >= 200 && status < 300\n || status === 304) {\n if (response) {\n try {\n result = response.call(request, xhr);\n } catch (e) {\n event.call(\"error\", request, e);\n return;\n }\n } else {\n result = xhr;\n }\n event.call(\"load\", request, result);\n } else {\n event.call(\"error\", request, o);\n }\n }\n\n xhr.onprogress = function(e) {\n event.call(\"progress\", request, e);\n };\n\n request = {\n header: function(name, value) {\n name = (name + \"\").toLowerCase();\n if (arguments.length < 2) return headers.get(name);\n if (value == null) headers.remove(name);\n else headers.set(name, value + \"\");\n return request;\n },\n\n // If mimeType is non-null and no Accept header is set, a default is used.\n mimeType: function(value) {\n if (!arguments.length) return mimeType;\n mimeType = value == null ? null : value + \"\";\n return request;\n },\n\n // Specifies what type the response value should take;\n // for instance, arraybuffer, blob, document, or text.\n responseType: function(value) {\n if (!arguments.length) return responseType;\n responseType = value;\n return request;\n },\n\n timeout: function(value) {\n if (!arguments.length) return timeout;\n timeout = +value;\n return request;\n },\n\n user: function(value) {\n return arguments.length < 1 ? user : (user = value == null ? null : value + \"\", request);\n },\n\n password: function(value) {\n return arguments.length < 1 ? password : (password = value == null ? null : value + \"\", request);\n },\n\n // Specify how to convert the response content to a specific type;\n // changes the callback value on \"load\" events.\n response: function(value) {\n response = value;\n return request;\n },\n\n // Alias for send(\"GET\", …).\n get: function(data, callback) {\n return request.send(\"GET\", data, callback);\n },\n\n // Alias for send(\"POST\", …).\n post: function(data, callback) {\n return request.send(\"POST\", data, callback);\n },\n\n // If callback is non-null, it will be used for error and load events.\n send: function(method, data, callback) {\n xhr.open(method, url, true, user, password);\n if (mimeType != null && !headers.has(\"accept\")) headers.set(\"accept\", mimeType + \",*/*\");\n if (xhr.setRequestHeader) headers.each(function(value, name) { xhr.setRequestHeader(name, value); });\n if (mimeType != null && xhr.overrideMimeType) xhr.overrideMimeType(mimeType);\n if (responseType != null) xhr.responseType = responseType;\n if (timeout > 0) xhr.timeout = timeout;\n if (callback == null && typeof data === \"function\") callback = data, data = null;\n if (callback != null && callback.length === 1) callback = fixCallback(callback);\n if (callback != null) request.on(\"error\", callback).on(\"load\", function(xhr) { callback(null, xhr); });\n event.call(\"beforesend\", request, xhr);\n xhr.send(data == null ? null : data);\n return request;\n },\n\n abort: function() {\n xhr.abort();\n return request;\n },\n\n on: function() {\n var value = event.on.apply(event, arguments);\n return value === event ? request : value;\n }\n };\n\n if (callback != null) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n return request.get(callback);\n }\n\n return request;\n}\n\nfunction fixCallback(callback) {\n return function(error, xhr) {\n callback(error == null ? xhr : null);\n };\n}\n\nfunction hasResponse(xhr) {\n var type = xhr.responseType;\n return type && type !== \"text\"\n ? xhr.response // null on error\n : xhr.responseText; // \"\" on error\n}\n\nfunction type(defaultMimeType, response) {\n return function(url, callback) {\n var r = request(url).mimeType(defaultMimeType).response(response);\n if (callback != null) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n return r.get(callback);\n }\n return r;\n };\n}\n\nvar html = type(\"text/html\", function(xhr) {\n return document.createRange().createContextualFragment(xhr.responseText);\n});\n\nvar json = type(\"application/json\", function(xhr) {\n return JSON.parse(xhr.responseText);\n});\n\nvar text = type(\"text/plain\", function(xhr) {\n return xhr.responseText;\n});\n\nvar xml = type(\"application/xml\", function(xhr) {\n var xml = xhr.responseXML;\n if (!xml) throw new Error(\"parse error\");\n return xml;\n});\n\nfunction dsv$1(defaultMimeType, parse) {\n return function(url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var r = request(url).mimeType(defaultMimeType);\n r.row = function(_) { return arguments.length ? r.response(responseOf(parse, row = _)) : row; };\n r.row(row);\n return callback ? r.get(callback) : r;\n };\n}\n\nfunction responseOf(parse, row) {\n return function(request) {\n return parse(request.responseText, row);\n };\n}\n\nvar csv$1 = dsv$1(\"text/csv\", csvParse);\n\nvar tsv$1 = dsv$1(\"text/tab-separated-values\", tsvParse);\n\nvar frame = 0;\nvar timeout = 0;\nvar interval = 0;\nvar pokeDelay = 1000;\nvar taskHead;\nvar taskTail;\nvar clockLast = 0;\nvar clockNow = 0;\nvar clockSkew = 0;\nvar clock = typeof performance === \"object\" && performance.now ? performance : Date;\nvar setFrame = typeof requestAnimationFrame === \"function\"\n ? (clock === Date ? function(f) { requestAnimationFrame(function() { f(clock.now()); }); } : requestAnimationFrame)\n : function(f) { setTimeout(f, 17); };\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nfunction Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nfunction timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nfunction timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake(time) {\n clockNow = (clockLast = time || clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke$1() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow;\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, delay);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) interval = setInterval(poke$1, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n\nfunction timeout$1(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n\nfunction interval$1(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n}\n\nvar t0$1 = new Date;\nvar t1$1 = new Date;\nfunction newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = new Date(+date)), date;\n }\n\n interval.floor = interval;\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(new Date(+start)); while (offseti(start, step), floori(start), start < stop)\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n while (--step >= 0) while (offseti(date, 1), !test(date));\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0$1.setTime(+start), t1$1.setTime(+end);\n floori(t0$1), floori(t1$1);\n return Math.floor(count(t0$1, t1$1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n\nvar millisecond = newInterval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return newInterval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nvar milliseconds = millisecond.range;\n\nvar durationSecond = 1e3;\nvar durationMinute = 6e4;\nvar durationHour = 36e5;\nvar durationDay = 864e5;\nvar durationWeek = 6048e5;\n\nvar second = newInterval(function(date) {\n date.setTime(Math.floor(date / durationSecond) * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nvar seconds = second.range;\n\nvar minute = newInterval(function(date) {\n date.setTime(Math.floor(date / durationMinute) * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nvar minutes = minute.range;\n\nvar hour = newInterval(function(date) {\n var offset = date.getTimezoneOffset() * durationMinute % durationHour;\n if (offset < 0) offset += durationHour;\n date.setTime(Math.floor((+date - offset) / durationHour) * durationHour + offset);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nvar hours = hour.range;\n\nvar day = newInterval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nvar days = day.range;\n\nfunction weekday(i) {\n return newInterval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nvar timeWeek = weekday(0);\nvar timeMonday = weekday(1);\nvar tuesday = weekday(2);\nvar wednesday = weekday(3);\nvar thursday = weekday(4);\nvar friday = weekday(5);\nvar saturday = weekday(6);\n\nvar sundays = timeWeek.range;\nvar mondays = timeMonday.range;\nvar tuesdays = tuesday.range;\nvar wednesdays = wednesday.range;\nvar thursdays = thursday.range;\nvar fridays = friday.range;\nvar saturdays = saturday.range;\n\nvar month = newInterval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nvar months = month.range;\n\nvar year = newInterval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nvar years = year.range;\n\nvar utcMinute = newInterval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nvar utcMinutes = utcMinute.range;\n\nvar utcHour = newInterval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nvar utcHours = utcHour.range;\n\nvar utcDay = newInterval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nvar utcDays = utcDay.range;\n\nfunction utcWeekday(i) {\n return newInterval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nvar utcWeek = utcWeekday(0);\nvar utcMonday = utcWeekday(1);\nvar utcTuesday = utcWeekday(2);\nvar utcWednesday = utcWeekday(3);\nvar utcThursday = utcWeekday(4);\nvar utcFriday = utcWeekday(5);\nvar utcSaturday = utcWeekday(6);\n\nvar utcSundays = utcWeek.range;\nvar utcMondays = utcMonday.range;\nvar utcTuesdays = utcTuesday.range;\nvar utcWednesdays = utcWednesday.range;\nvar utcThursdays = utcThursday.range;\nvar utcFridays = utcFriday.range;\nvar utcSaturdays = utcSaturday.range;\n\nvar utcMonth = newInterval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nvar utcMonths = utcMonth.range;\n\nvar utcYear = newInterval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nvar utcYears = utcYear.range;\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nfunction formatDecimal(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n\nfunction exponent$1(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n\nfunction formatGroup(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n\nfunction formatDefault(x, p) {\n x = x.toPrecision(p);\n\n out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (x[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n case \"e\": break out;\n default: if (i0 > 0) i0 = 0; break;\n }\n }\n\n return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;\n}\n\nvar prefixExponent;\n\nfunction formatPrefixAuto(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n\nfunction formatRounded(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n\nvar formatTypes = {\n \"\": formatDefault,\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n\n// [[fill]align][sign][symbol][0][width][,][.precision][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n return new FormatSpecifier(specifier);\n}\n\nfunction FormatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n\n var match,\n fill = match[1] || \" \",\n align = match[2] || \">\",\n sign = match[3] || \"-\",\n symbol = match[4] || \"\",\n zero = !!match[5],\n width = match[6] && +match[6],\n comma = !!match[7],\n precision = match[8] && +match[8].slice(1),\n type = match[9] || \"\";\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // Map invalid types to the default format.\n else if (!formatTypes[type]) type = \"\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n this.fill = fill;\n this.align = align;\n this.sign = sign;\n this.symbol = symbol;\n this.zero = zero;\n this.width = width;\n this.comma = comma;\n this.precision = precision;\n this.type = type;\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + this.type;\n};\n\nvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"\\xB5\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nfunction identity$3(x) {\n return x;\n}\n\nfunction formatLocale(locale) {\n var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity$3,\n currency = locale.currency,\n decimal = locale.decimal;\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n type = specifier.type;\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? \"%\" : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = !type || /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision == null ? (type ? 6 : 12)\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Convert negative to positive, and compute the prefix.\n // Note that -0 is not less than 0, but 1 / -0 is!\n var valueNegative = (value < 0 || 1 / value < 0) && (value *= -1, true);\n\n // Perform the initial formatting.\n value = formatType(value, precision);\n\n // If the original value was negative, it may be rounded to zero during\n // formatting; treat this as (positive) zero.\n if (valueNegative) {\n i = -1, n = value.length;\n valueNegative = false;\n while (++i < n) {\n if (c = value.charCodeAt(i), (48 < c && c < 58)\n || (type === \"x\" && 96 < c && c < 103)\n || (type === \"X\" && 64 < c && c < 71)) {\n valueNegative = true;\n break;\n }\n }\n }\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = valueSuffix + (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": return valuePrefix + value + valueSuffix + padding;\n case \"=\": return valuePrefix + padding + value + valueSuffix;\n case \"^\": return padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n }\n return padding + valuePrefix + value + valueSuffix;\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent$1(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n\nvar locale;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nfunction defaultLocale(definition) {\n locale = formatLocale(definition);\n exports.format = locale.format;\n exports.formatPrefix = locale.formatPrefix;\n return locale;\n}\n\nfunction precisionFixed(step) {\n return Math.max(0, -exponent$1(Math.abs(step)));\n}\n\nfunction precisionPrefix(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent$1(value) / 3))) * 3 - exponent$1(Math.abs(step)));\n}\n\nfunction precisionRound(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent$1(max) - exponent$1(step)) + 1;\n}\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newYear(y) {\n return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};\n}\n\nfunction formatLocale$1(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"S\": formatSeconds,\n \"U\": formatWeekNumberSunday,\n \"w\": formatWeekdayNumber,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"S\": formatUTCSeconds,\n \"U\": formatUTCWeekNumberSunday,\n \"w\": formatUTCWeekdayNumber,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"S\": parseSeconds,\n \"U\": parseWeekNumberSunday,\n \"w\": parseWeekdayNumber,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, newDate) {\n return function(string) {\n var d = newYear(1900),\n i = parseSpecifier(d, specifier, string += \"\", 0);\n if (i != string.length) return null;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"W\" in d ? 1 : 0;\n var day = \"Z\" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", localDate);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier, utcDate);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"};\nvar numberRe = /^\\s*\\d+/;\nvar percentRe = /^%/;\nvar requoteRe = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?:\\:?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + day.count(year(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeWeek.count(year(d), d), p, 2);\n}\n\nfunction formatWeekdayNumber(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(year(d), d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcWeek.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCWeekdayNumber(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nvar locale$1;\ndefaultLocale$1({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nfunction defaultLocale$1(definition) {\n locale$1 = formatLocale$1(definition);\n exports.timeFormat = locale$1.format;\n exports.timeParse = locale$1.parse;\n exports.utcFormat = locale$1.utcFormat;\n exports.utcParse = locale$1.utcParse;\n return locale$1;\n}\n\nvar isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : exports.utcFormat(isoSpecifier);\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : exports.utcParse(isoSpecifier);\n\nvar array$2 = Array.prototype;\n\nvar map$2 = array$2.map;\nvar slice$3 = array$2.slice;\n\nvar implicit = {name: \"implicit\"};\n\nfunction ordinal(range) {\n var index = map$1(),\n domain = [],\n unknown = implicit;\n\n range = range == null ? [] : slice$3.call(range);\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map$1();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice$3.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return scale;\n}\n\nfunction band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range$$ = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range$$[1] < range$$[0],\n start = range$$[reverse - 0],\n stop = range$$[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = range(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range$$ = [+_[0], +_[1]], rescale()) : range$$.slice();\n };\n\n scale.rangeRound = function(_) {\n return range$$ = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band()\n .domain(domain())\n .range(range$$)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return rescale();\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nfunction point$4() {\n return pointish(band().paddingInner(1));\n}\n\nfunction constant$3(x) {\n return function() {\n return x;\n };\n}\n\nfunction number$1(x) {\n return +x;\n}\n\nvar unit = [0, 1];\n\nfunction deinterpolate(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant$3(b);\n}\n\nfunction deinterpolateClamp(deinterpolate) {\n return function(a, b) {\n var d = deinterpolate(a = +a, b = +b);\n return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n return function(a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n };\n}\n\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisectRight(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nfunction copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp());\n}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nfunction continuous(deinterpolate$$, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate$$ = interpolate,\n clamp = false,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate$$) : deinterpolate$$, interpolate$$)))(+x);\n }\n\n scale.invert = function(y) {\n return (input || (input = piecewise(range, domain, deinterpolate, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map$2.call(_, number$1), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice$3.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice$3.call(_), interpolate$$ = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate$$ = _, rescale()) : interpolate$$;\n };\n\n return rescale();\n}\n\nfunction tickFormat(domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = tickStep(start, stop, count == null ? 10 : count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return exports.formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return exports.format(specifier);\n}\n\nfunction linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function(count) {\n var d = domain(),\n i = d.length - 1,\n n = count == null ? 10 : count,\n start = d[0],\n stop = d[i],\n step = tickStep(start, stop, n);\n\n if (step) {\n step = tickStep(Math.floor(start / step) * step, Math.ceil(stop / step) * step, n);\n d[0] = Math.floor(start / step) * step;\n d[i] = Math.ceil(stop / step) * step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nfunction linear$2() {\n var scale = continuous(deinterpolate, interpolateNumber);\n\n scale.copy = function() {\n return copy(scale, linear$2());\n };\n\n return linearish(scale);\n}\n\nfunction identity$4() {\n var domain = [0, 1];\n\n function scale(x) {\n return +x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map$2.call(_, number$1), scale) : domain.slice();\n };\n\n scale.copy = function() {\n return identity$4().domain(domain);\n };\n\n return linearish(scale);\n}\n\nfunction nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n\nfunction deinterpolate$1(a, b) {\n return (b = Math.log(b / a))\n ? function(x) { return Math.log(x / a) / b; }\n : constant$3(b);\n}\n\nfunction reinterpolate(a, b) {\n return a < 0\n ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }\n : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nfunction log() {\n var scale = continuous(deinterpolate$1, reinterpolate).domain([1, 10]),\n domain = scale.domain,\n base = 10,\n logs = logp(10),\n pows = powp(10);\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = exports.format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n scale.copy = function() {\n return copy(scale, log().base(base));\n };\n\n return scale;\n}\n\nfunction raise(x, exponent) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n}\n\nfunction pow() {\n var exponent = 1,\n scale = continuous(deinterpolate, reinterpolate),\n domain = scale.domain;\n\n function deinterpolate(a, b) {\n return (b = raise(b, exponent) - (a = raise(a, exponent)))\n ? function(x) { return (raise(x, exponent) - a) / b; }\n : constant$3(b);\n }\n\n function reinterpolate(a, b) {\n b = raise(b, exponent) - (a = raise(a, exponent));\n return function(t) { return raise(a + b * t, 1 / exponent); };\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, domain(domain())) : exponent;\n };\n\n scale.copy = function() {\n return copy(scale, pow().exponent(exponent));\n };\n\n return linearish(scale);\n}\n\nfunction sqrt() {\n return pow().exponent(0.5);\n}\n\nfunction quantile() {\n var domain = [],\n range = [],\n thresholds = [];\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n if (!isNaN(x = +x)) return range[bisectRight(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice$3.call(_), rescale()) : range.slice();\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range);\n };\n\n return scale;\n}\n\nfunction quantize$1() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1];\n\n function scale(x) {\n if (x <= x) return range[bisectRight(domain, x, 0, n)];\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice$3.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.copy = function() {\n return quantize$1()\n .domain([x0, x1])\n .range(range);\n };\n\n return linearish(scale);\n}\n\nfunction threshold$1() {\n var domain = [0.5],\n range = [0, 1],\n n = 1;\n\n function scale(x) {\n if (x <= x) return range[bisectRight(domain, x, 0, n)];\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice$3.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice$3.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.copy = function() {\n return threshold$1()\n .domain(domain)\n .range(range);\n };\n\n return scale;\n}\n\nvar durationSecond$1 = 1000;\nvar durationMinute$1 = durationSecond$1 * 60;\nvar durationHour$1 = durationMinute$1 * 60;\nvar durationDay$1 = durationHour$1 * 24;\nvar durationWeek$1 = durationDay$1 * 7;\nvar durationMonth = durationDay$1 * 30;\nvar durationYear = durationDay$1 * 365;\nfunction date$1(t) {\n return new Date(t);\n}\n\nfunction number$2(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nfunction calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, interpolateNumber),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond$1],\n [second, 5, 5 * durationSecond$1],\n [second, 15, 15 * durationSecond$1],\n [second, 30, 30 * durationSecond$1],\n [minute, 1, durationMinute$1],\n [minute, 5, 5 * durationMinute$1],\n [minute, 15, 15 * durationMinute$1],\n [minute, 30, 30 * durationMinute$1],\n [ hour, 1, durationHour$1 ],\n [ hour, 3, 3 * durationHour$1 ],\n [ hour, 6, 6 * durationHour$1 ],\n [ hour, 12, 12 * durationHour$1 ],\n [ day, 1, durationDay$1 ],\n [ day, 2, 2 * durationDay$1 ],\n [ week, 1, durationWeek$1 ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = tickStep(start, stop, interval);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map$2.call(_, number$2)) : domain().map(date$1);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nfunction time() {\n return calendar(year, month, timeWeek, day, hour, minute, second, millisecond, exports.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}\n\nfunction utcTime() {\n return calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, second, millisecond, exports.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);\n}\n\nfunction colors(s) {\n return s.match(/.{6}/g).map(function(x) {\n return \"#\" + x;\n });\n}\n\nvar category10 = colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n\nvar category20b = colors(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\");\n\nvar category20c = colors(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\");\n\nvar category20 = colors(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\");\n\nvar cubehelix$3 = interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n\nvar warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar rainbow = cubehelix();\n\nfunction rainbow$1(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n rainbow.h = 360 * t - 100;\n rainbow.s = 1.5 - 1.5 * ts;\n rainbow.l = 0.8 - 0.9 * ts;\n return rainbow + \"\";\n}\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nvar viridis = ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nvar magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nvar inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nvar plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n\nfunction sequential(interpolator) {\n var x0 = 0,\n x1 = 1,\n clamp = false;\n\n function scale(x) {\n var t = (x - x0) / (x1 - x0);\n return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequential(interpolator).domain([x0, x1]).clamp(clamp);\n };\n\n return linearish(scale);\n}\n\nvar xhtml = \"http://www.w3.org/1999/xhtml/";\n\nvar namespaces = {\n svg: \"http://www.w3.org/2000/svg/",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink/",\n xml: \"http://www.w3.org/XML/1998/namespace/",\n xmlns: \"http://www.w3.org/2000/xmlns//"\n};\n\nfunction namespace(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nfunction creator(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n\nvar nextId = 0;\n\nfunction local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n\nvar matcher = function(selector) {\n return function() {\n return this.matches(selector);\n };\n};\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!element.matches) {\n var vendorMatches = element.webkitMatchesSelector\n || element.msMatchesSelector\n || element.mozMatchesSelector\n || element.oMatchesSelector;\n matcher = function(selector) {\n return function() {\n return vendorMatches.call(this, selector);\n };\n };\n }\n}\n\nvar matcher$1 = matcher;\n\nvar filterEvents = {};\n\nexports.event = null;\n\nif (typeof document !== \"undefined\") {\n var element$1 = document.documentElement;\n if (!(\"onmouseenter\" in element$1)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = exports.event; // Events can be reentrant (e.g., focus).\n exports.event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n exports.event = event0;\n }\n };\n}\n\nfunction parseTypenames$1(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nfunction selection_on(typename, value, capture) {\n var typenames = parseTypenames$1(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nfunction customEvent(event1, listener, that, args) {\n var event0 = exports.event;\n event1.sourceEvent = exports.event;\n exports.event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n exports.event = event0;\n }\n}\n\nfunction sourceEvent() {\n var current = exports.event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n\nfunction point$5(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n\nfunction mouse(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point$5(node, event);\n}\n\nfunction none$2() {}\n\nfunction selector(selector) {\n return selector == null ? none$2 : function() {\n return this.querySelector(selector);\n };\n}\n\nfunction selection_select(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n\nfunction empty() {\n return [];\n}\n\nfunction selectorAll(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n\nfunction selection_selectAll(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n\nfunction selection_filter(match) {\n if (typeof match !== \"function\") match = matcher$1(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n\nfunction sparse(update) {\n return new Array(update.length);\n}\n\nfunction selection_enter() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nfunction EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\nfunction constant$4(x) {\n return function() {\n return x;\n };\n}\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction selection_data(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant$4(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\nfunction selection_exit() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n\nfunction selection_merge(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n\nfunction selection_order() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n\nfunction selection_sort(compare) {\n if (!compare) compare = ascending$2;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending$2(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction selection_call() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n\nfunction selection_nodes() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n\nfunction selection_node() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n\nfunction selection_size() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n\nfunction selection_empty() {\n return !this.node();\n}\n\nfunction selection_each(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nfunction selection_attr(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n\nfunction window(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nfunction selection_style(name, value, priority) {\n var node;\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : window(node = this.node())\n .getComputedStyle(node, null)\n .getPropertyValue(name);\n}\n\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nfunction selection_property(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nfunction selection_classed(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n\nfunction textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nfunction selection_text(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nfunction selection_html(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n\nfunction raise$1() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nfunction selection_raise() {\n return this.each(raise$1);\n}\n\nfunction lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nfunction selection_lower() {\n return this.each(lower);\n}\n\nfunction selection_append(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n\nfunction constantNull() {\n return null;\n}\n\nfunction selection_insert(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n\nfunction remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nfunction selection_remove() {\n return this.each(remove);\n}\n\nfunction selection_datum(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n\nfunction dispatchEvent(node, type, params) {\n var window$$ = window(node),\n event = window$$.CustomEvent;\n\n if (event) {\n event = new event(type, params);\n } else {\n event = window$$.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nfunction selection_dispatch(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n\nvar root = [null];\n\nfunction Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nfunction select(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n\nfunction selectAll(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n\nfunction touch(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point$5(node, touch);\n }\n }\n\n return null;\n}\n\nfunction touches(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point$5(node, touches[i]);\n }\n\n return points;\n}\n\nvar emptyOn = dispatch(\"start\", \"end\", \"interrupt\");\nvar emptyTween = [];\n\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar ENDING = 4;\nvar ENDED = 5;\n\nfunction schedule(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nfunction init(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id]) || schedule.state > CREATED) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction set$2(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id]) || schedule.state > STARTING) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction get$1(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n // If the delay is greater than this first sleep, sleep some more;\n // otherwise, start immediately.\n function schedule(elapsed) {\n self.state = SCHEDULED;\n if (self.delay <= elapsed) start(elapsed - self.delay);\n else self.timer.restart(start, self.delay, self.time);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // Interrupt the active transition, if any.\n // Dispatch the interrupt event.\n if (o.state === STARTED) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions. No interrupt event is dispatched\n // because the cancelled transitions never started. Note that this also\n // removes this transition from the pending list!\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see mbostock/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout$1(function() {\n if (self.state === STARTED) {\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(null, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.state = ENDED;\n self.timer.stop();\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n for (i in schedules) if (+i !== id) return void delete schedules[id];\n delete node.__transition;\n }\n }\n}\n\nfunction interrupt(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state === STARTED;\n schedule.state = ENDED;\n schedule.timer.stop();\n if (active) schedule.on.call(\"interrupt\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n\nfunction selection_interrupt(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set$2(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set$2(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction transition_tween(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get$1(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nfunction tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set$2(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get$1(node, id).value[name];\n };\n}\n\nfunction interpolate$1(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n\nfunction attrRemove$1(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS$1(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant$1(name, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrConstantNS$1(fullname, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrFunction$1(name, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttribute(name);\n value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction attrFunctionNS$1(fullname, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction transition_attr(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform$2 : interpolate$1;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS$1 : attrFunction$1)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS$1 : attrRemove$1)(fullname)\n : (fullname.local ? attrConstantNS$1 : attrConstant$1)(fullname, i, value));\n}\n\nfunction attrTweenNS(fullname, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttributeNS(fullname.space, fullname.local, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttribute(name, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction transition_attrTween(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nfunction transition_delay(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get$1(this.node(), id).delay;\n}\n\nfunction durationFunction(id, value) {\n return function() {\n set$2(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set$2(this, id).duration = value;\n };\n}\n\nfunction transition_duration(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get$1(this.node(), id).duration;\n}\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set$2(this, id).ease = value;\n };\n}\n\nfunction transition_ease(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get$1(this.node(), id).ease;\n}\n\nfunction transition_filter(match) {\n if (typeof match !== \"function\") match = matcher$1(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n\nfunction transition_merge(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n\nfunction start$1(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start$1(name) ? init : set$2;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nfunction transition_on(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get$1(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n\nfunction removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nfunction transition_remove() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n\nfunction transition_select(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get$1(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n\nfunction transition_selectAll(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get$1(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n\nvar Selection$1 = selection.prototype.constructor;\n\nfunction transition_selection() {\n return new Selection$1(this._groups, this._parents);\n}\n\nfunction styleRemove$1(name, interpolate) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var style = window(this).getComputedStyle(this, null),\n value0 = style.getPropertyValue(name),\n value1 = (this.style.removeProperty(name), style.getPropertyValue(name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction styleRemoveEnd(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant$1(name, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = window(this).getComputedStyle(this, null).getPropertyValue(name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction styleFunction$1(name, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var style = window(this).getComputedStyle(this, null),\n value0 = style.getPropertyValue(name),\n value1 = value(this);\n if (value1 == null) value1 = (this.style.removeProperty(name), style.getPropertyValue(name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction transition_style(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform$1 : interpolate$1;\n return value == null ? this\n .styleTween(name, styleRemove$1(name, i))\n .on(\"end.style.\" + name, styleRemoveEnd(name))\n : this.styleTween(name, typeof value === \"function\"\n ? styleFunction$1(name, i, tweenValue(this, \"style.\" + name, value))\n : styleConstant$1(name, i, value), priority);\n}\n\nfunction styleTween(name, value, priority) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.style.setProperty(name, i(t), priority);\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction transition_styleTween(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n\nfunction textConstant$1(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction$1(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nfunction transition_text(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction$1(tweenValue(this, \"text\", value))\n : textConstant$1(value == null ? \"\" : value + \"\"));\n}\n\nfunction transition_transition() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get$1(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n\nvar id = 0;\n\nfunction Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nfunction transition(name) {\n return selection().transition(name);\n}\n\nfunction newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease\n};\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nfunction selection_transition(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n\nvar root$1 = [null];\n\nfunction active(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root$1, name, +i);\n }\n }\n }\n\n return null;\n}\n\nvar slice$4 = Array.prototype.slice;\n\nfunction identity$5(x) {\n return x;\n}\n\nvar top = 1;\nvar right = 2;\nvar bottom = 3;\nvar left = 4;\nvar epsilon$2 = 1e-6;\nfunction translateX(scale0, scale1, d) {\n var x = scale0(d);\n return \"translate(\" + (isFinite(x) ? x : scale1(d)) + \",0)\";\n}\n\nfunction translateY(scale0, scale1, d) {\n var y = scale0(d);\n return \"translate(0,\" + (isFinite(y) ? y : scale1(d)) + \")\";\n}\n\nfunction center(scale) {\n var offset = scale.bandwidth() / 2;\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$5) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n transform = orient === top || orient === bottom ? translateX : translateY,\n range = scale.range(),\n range0 = range[0] + 0.5,\n range1 = range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : identity$5)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\"),\n k = orient === top || orient === left ? -1 : 1,\n x, y = orient === left || orient === right ? (x = \"x\", \"y\") : (x = \"y\", \"x\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"#000\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"#000\")\n .attr(x + \"2\", k * tickSizeInner)\n .attr(y + \"1\", 0.5)\n .attr(y + \"2\", 0.5));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"#000\")\n .attr(x, k * spacing)\n .attr(y, 0.5)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon$2)\n .attr(\"transform\", function(d) { return transform(position, this.parentNode.__axis || position, d); });\n\n tickEnter\n .attr(\"opacity\", epsilon$2)\n .attr(\"transform\", function(d) { return transform(this.parentNode.__axis || position, position, d); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter\n : \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter);\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position, position, d); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice$4.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice$4.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice$4.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nfunction axisTop(scale) {\n return axis(top, scale);\n}\n\nfunction axisRight(scale) {\n return axis(right, scale);\n}\n\nfunction axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nfunction axisLeft(scale) {\n return axis(left, scale);\n}\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nfunction cluster() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n\nfunction node_each(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n\nfunction node_eachBefore(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n\nfunction node_eachAfter(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n\nfunction node_sum(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n\nfunction node_sort(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n\nfunction node_path(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n\nfunction node_ancestors() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n\nfunction node_descendants() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n\nfunction node_leaves() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n\nfunction node_links() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n\nfunction hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nfunction computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nfunction Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n\nfunction Node$2(value) {\n this._ = value;\n this.next = null;\n}\n\nfunction shuffle$1(array) {\n var i,\n n = (array = array.slice()).length,\n head = null,\n node = head;\n\n while (n) {\n var next = new Node$2(array[n - 1]);\n if (node) node = node.next = next;\n else node = head = next;\n array[i] = array[--n];\n }\n\n return {\n head: head,\n tail: node\n };\n}\n\nfunction enclose(circles) {\n return encloseN(shuffle$1(circles), []);\n}\n\nfunction encloses(a, b) {\n var dx = b.x - a.x,\n dy = b.y - a.y,\n dr = a.r - b.r;\n return dr * dr + 1e-6 > dx * dx + dy * dy;\n}\n\n// Returns the smallest circle that contains circles L and intersects circles B.\nfunction encloseN(L, B) {\n var circle,\n l0 = null,\n l1 = L.head,\n l2,\n p1;\n\n switch (B.length) {\n case 1: circle = enclose1(B[0]); break;\n case 2: circle = enclose2(B[0], B[1]); break;\n case 3: circle = enclose3(B[0], B[1], B[2]); break;\n }\n\n while (l1) {\n p1 = l1._, l2 = l1.next;\n if (!circle || !encloses(circle, p1)) {\n\n // Temporarily truncate L before l1.\n if (l0) L.tail = l0, l0.next = null;\n else L.head = L.tail = null;\n\n B.push(p1);\n circle = encloseN(L, B); // Note: reorders L!\n B.pop();\n\n // Move l1 to the front of L and reconnect the truncated list L.\n if (L.head) l1.next = L.head, L.head = l1;\n else l1.next = null, L.head = L.tail = l1;\n l0 = L.tail, l0.next = l2;\n\n } else {\n l0 = l1;\n }\n l1 = l2;\n }\n\n L.tail = l0;\n return circle;\n}\n\nfunction enclose1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction enclose2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction enclose3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = 2 * (x1 - x2),\n b2 = 2 * (y1 - y2),\n c2 = 2 * (r2 - r1),\n d2 = x1 * x1 + y1 * y1 - r1 * r1 - x2 * x2 - y2 * y2 + r2 * r2,\n a3 = 2 * (x1 - x3),\n b3 = 2 * (y1 - y3),\n c3 = 2 * (r3 - r1),\n d3 = x1 * x1 + y1 * y1 - r1 * r1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / ab - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / ab - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (xa * xb + ya * yb + r1),\n C = xa * xa + ya * ya - r1 * r1,\n r = (-B - Math.sqrt(B * B - 4 * A * C)) / (2 * A);\n return {\n x: xa + xb * r + x1,\n y: ya + yb * r + y1,\n r: r\n };\n}\n\nfunction place(a, b, c) {\n var ax = a.x,\n ay = a.y,\n da = b.r + c.r,\n db = a.r + c.r,\n dx = b.x - ax,\n dy = b.y - ay,\n dc = dx * dx + dy * dy;\n if (dc) {\n var x = 0.5 + ((db *= db) - (da *= da)) / (2 * dc),\n y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);\n c.x = ax + x * dx + y * dy;\n c.y = ay + x * dy - y * dx;\n } else {\n c.x = ax + db;\n c.y = ay;\n }\n}\n\nfunction intersects(a, b) {\n var dx = b.x - a.x,\n dy = b.y - a.y,\n dr = a.r + b.r;\n return dr * dr > dx * dx + dy * dy;\n}\n\nfunction distance2(circle, x, y) {\n var dx = circle.x - x,\n dy = circle.y - y;\n return dx * dx + dy * dy;\n}\n\nfunction Node$1(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nfunction packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n\n var a, b, c, n;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the weighted centroid.\n var aa = a.r * a.r,\n ba = b.r * b.r,\n ca = c.r * c.r,\n oa = aa + ba + ca,\n ox = aa * a.x + ba * b.x + ca * c.x,\n oy = aa * a.y + ba * b.y + ca * c.y,\n cx, cy, i, j, k, sj, sk;\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node$1(a), b = new Node$1(b), c = new Node$1(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node$1(c);\n\n // If there are only three elements in the front-chain…\n if ((k = a.previous) === (j = b.next)) {\n // If the new circle intersects the third circle,\n // rotate the front chain to try the next position.\n if (intersects(j._, c._)) {\n a = b, b = j, --i;\n continue pack;\n }\n }\n\n // Find the closest intersecting circle on the front-chain, if any.\n else {\n sj = j._.r, sk = k._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n j = j.next, sj += j._.r;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n k = k.previous, sk += k._.r;\n }\n } while (j !== k.next);\n }\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Update the weighted centroid.\n oa += ca = c._.r * c._.r;\n ox += ca * c._.x;\n oy += ca * c._.y;\n\n // Compute the new closest circle a to centroid.\n aa = distance2(a._, cx = ox / oa, cy = oy / oa);\n while ((c = c.next) !== b) {\n if ((ca = distance2(c._, cx, cy)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nfunction siblings(circles) {\n packEnclose(circles);\n return circles;\n}\n\nfunction optional(f) {\n return f == null ? null : required(f);\n}\n\nfunction required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n\nfunction constantZero() {\n return 0;\n}\n\nfunction constant$5(x) {\n return function() {\n return x;\n };\n}\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nfunction index() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant$5(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n\nfunction roundNode(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n\nfunction treemapDice(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n\nfunction partition() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n\nvar keyPrefix$1 = \"$\";\nvar preroot = {depth: -1};\nvar ambiguous = {};\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nfunction stratify() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix$1 + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix$1 + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n\nfunction defaultSeparation$1(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nfunction tree() {\n var separation = defaultSeparation$1,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n\nfunction treemapSlice(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n\nvar phi = (1 + Math.sqrt(5)) / 2;\n\nfunction squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n minValue = maxValue = sumValue = nodes[i0].value;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (i1 = i0 + 1; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nvar squarify = (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n\nfunction index$1() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant$5(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant$5(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant$5(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant$5(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant$5(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n\nfunction binary(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((y1 - y0) > (x1 - x0)) {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n } else {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n }\n }\n}\n\nfunction sliceDice(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1);\n}\n\nvar resquarify = (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n\nfunction center$1(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n\nfunction constant$6(x) {\n return function() {\n return x;\n };\n}\n\nfunction jiggle() {\n return (Math.random() - 0.5) * 1e-6;\n}\n\nfunction x$1(d) {\n return d.x + d.vx;\n}\n\nfunction y$1(d) {\n return d.y + d.vy;\n}\n\nfunction collide(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant$6(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x$1, y$1).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[i], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > i) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n force.initialize = function(_) {\n var i, n = (nodes = _).length; radii = new Array(n);\n for (i = 0; i < n; ++i) radii[i] = +radius(nodes[i], i, nodes);\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant$6(+_), force) : radius;\n };\n\n return force;\n}\n\nfunction index$2(d, i) {\n return i;\n}\n\nfunction link(links) {\n var id = index$2,\n strength = defaultStrength,\n strengths,\n distance = constant$6(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = map$1(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < n; ++i) {\n count[i] = 0;\n }\n\n for (i = 0; i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = nodeById.get(link.source);\n if (typeof link.target !== \"object\") link.target = nodeById.get(link.target);\n ++count[link.source.index], ++count[link.target.index];\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant$6(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant$6(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n\nfunction x$2(d) {\n return d.x;\n}\n\nfunction y$2(d) {\n return d.y;\n}\n\nvar initialRadius = 10;\nvar initialAngle = Math.PI * (3 - Math.sqrt(5));\nfunction simulation(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map$1(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick() {\n var i, n = nodes.length, node;\n\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function(force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n\nfunction manyBody() {\n var nodes,\n node,\n alpha,\n strength = constant$6(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x$2, y$2).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) strengths[i] = +strength(nodes[i], i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = q.value)) {\n strength += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / strength;\n quad.y = y / strength;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant$6(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n\nfunction x$3(x) {\n var strength = constant$6(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant$6(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant$6(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant$6(+_), initialize(), force) : x;\n };\n\n return force;\n}\n\nfunction y$3(y) {\n var strength = constant$6(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant$6(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant$6(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant$6(+_), initialize(), force) : y;\n };\n\n return force;\n}\n\nfunction nopropagation() {\n exports.event.stopImmediatePropagation();\n}\n\nfunction noevent() {\n exports.event.preventDefault();\n exports.event.stopImmediatePropagation();\n}\n\nfunction dragDisable(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nfunction dragEnable(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n\nfunction constant$7(x) {\n return function() {\n return x;\n };\n}\n\nfunction DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !exports.event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: exports.event.x, y: exports.event.y} : d;\n}\n\nfunction drag() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousemoving,\n touchending;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(exports.event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n dragDisable(exports.event.view);\n nopropagation();\n mousemoving = false;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n mousemoving = true;\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(exports.event.view).on(\"mousemove.drag mouseup.drag\", null);\n dragEnable(exports.event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = exports.event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = exports.event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = exports.event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((exports.event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant$7(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant$7(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant$7(_), drag) : subject;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n return drag;\n}\n\nfunction constant$8(x) {\n return function() {\n return x;\n };\n}\n\nfunction x$4(d) {\n return d[0];\n}\n\nfunction y$4(d) {\n return d[1];\n}\n\nfunction RedBlackTree() {\n this._ = null; // root node\n}\n\nfunction RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\n\nfunction createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\n\nfunction createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nfunction setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nfunction clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon$3\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon$3)) {\n delete edges[i];\n }\n }\n}\n\nfunction createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];\n else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nfunction cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\n\nfunction cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nfunction sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\n\nfunction clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon$3 || Math.abs(endY - startY) > epsilon$3) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon$3 && y1 - endY > epsilon$3 ? [x0, Math.abs(startX - x0) < epsilon$3 ? startY : y1]\n : Math.abs(endY - y1) < epsilon$3 && x1 - endX > epsilon$3 ? [Math.abs(startY - y1) < epsilon$3 ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon$3 && endY - y0 > epsilon$3 ? [x1, Math.abs(startX - x1) < epsilon$3 ? startY : y0]\n : Math.abs(endY - y0) < epsilon$3 && endX - x0 > epsilon$3 ? [Math.abs(startY - y0) < epsilon$3 ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n\nvar circlePool = [];\n\nvar firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nfunction attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2$1) return;\n\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n\n var circle = circlePool.pop() || new Circle;\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {\n if (node.L) node = node.L;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nfunction detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach;\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nfunction removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon$3\n && Math.abs(y - lArc.circle.cy) < epsilon$3) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon$3\n && Math.abs(y - rArc.circle.cy) < epsilon$3) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon$3) node = node.L; else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon$3) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon$3) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon$3) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}\n\nvar epsilon$3 = 1e-6;\nvar epsilon2$1 = 1e-12;\nvar beaches;\nvar cells;\nvar circles;\nvar edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1]\n || b[0] - a[0];\n}\n\nfunction Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\n this.cells.forEach(function(cell, i) {\n var site = cell.site,\n halfedges = cell.halfedges,\n j = -1,\n m = halfedges.length,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n\n return triangles;\n },\n\n links: function() {\n return this.edges.filter(function(edge) {\n return edge.right;\n }).map(function(edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n }\n}\n\nfunction voronoi() {\n var x = x$4,\n y = y$4,\n extent = null;\n\n function voronoi(data) {\n return new Diagram(data.map(function(d, i) {\n var s = [Math.round(x(d, i, data) / epsilon$3) * epsilon$3, Math.round(y(d, i, data) / epsilon$3) * epsilon$3];\n s.index = i;\n s.data = d;\n return s;\n }), extent);\n }\n\n voronoi.polygons = function(data) {\n return voronoi(data).polygons();\n };\n\n voronoi.links = function(data) {\n return voronoi(data).links();\n };\n\n voronoi.triangles = function(data) {\n return voronoi(data).triangles();\n };\n\n voronoi.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant$8(+_), voronoi) : x;\n };\n\n voronoi.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant$8(+_), voronoi) : y;\n };\n\n voronoi.extent = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];\n };\n\n voronoi.size = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];\n };\n\n return voronoi;\n}\n\nfunction constant$9(x) {\n return function() {\n return x;\n };\n}\n\nfunction ZoomEvent(target, type, transform) {\n this.target = target;\n this.type = type;\n this.transform = transform;\n}\n\nfunction Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nvar identity$6 = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nfunction transform(node) {\n return node.__zoom || identity$6;\n}\n\nfunction nopropagation$1() {\n exports.event.stopImmediatePropagation();\n}\n\nfunction noevent$1() {\n exports.event.preventDefault();\n exports.event.stopImmediatePropagation();\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter$1() {\n return !exports.event.button;\n}\n\nfunction defaultExtent() {\n var e = this, w, h;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n w = e.width.baseVal.value;\n h = e.height.baseVal.value;\n } else {\n w = e.clientWidth;\n h = e.clientHeight;\n }\n return [[0, 0], [w, h]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity$6;\n}\n\nfunction zoom() {\n var filter = defaultFilter$1,\n extent = defaultExtent,\n k0 = 0,\n k1 = Infinity,\n x0 = -k1,\n x1 = k1,\n y0 = x0,\n y1 = x1,\n duration = 250,\n gestures = [],\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150;\n\n function zoom(selection) {\n selection\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\")\n .property(\"__zoom\", defaultTransform);\n }\n\n zoom.transform = function(collection, transform) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n });\n };\n\n zoom.scaleTo = function(selection, k) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = centroid(e),\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e);\n });\n };\n\n zoom.translateBy = function(selection, x, y) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments));\n });\n };\n\n function scale(transform, k) {\n k = Math.max(k0, Math.min(k1, k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function constrain(transform, extent) {\n var dx = Math.min(0, transform.invertX(extent[0][0]) - x0) || Math.max(0, transform.invertX(extent[1][0]) - x1),\n dy = Math.min(0, transform.invertY(extent[0][1]) - y0) || Math.max(0, transform.invertY(extent[1][1]) - y1);\n return dx || dy ? transform.translate(dx, dy) : transform;\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, center) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args),\n e = extent.apply(that, args),\n p = center || centroid(e),\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolateZoom(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args) {\n for (var i = 0, n = gestures.length, g; i < n; ++i) {\n if ((g = gestures[i]).that === that) {\n return g;\n }\n }\n return new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.index = -1;\n this.active = 0;\n this.extent = extent.apply(that, args);\n }\n\n Gesture.prototype = {\n start: function() {\n if (++this.active === 1) {\n this.index = gestures.push(this) - 1;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n gestures.splice(this.index, 1);\n this.index = -1;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n t = this.__zoom,\n k = Math.max(k0, Math.min(k1, t.k * Math.pow(2, -exports.event.deltaY * (exports.event.deltaMode ? 120 : 1) / 500))),\n p = mouse(this);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent$1();\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n v = select(exports.event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = mouse(this);\n\n dragDisable(exports.event.view);\n nopropagation$1();\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved() {\n noevent$1();\n g.moved = true;\n g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(exports.event.view, g.moved);\n noevent$1();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = mouse(this),\n p1 = t0.invert(p0),\n k1 = t0.k * (exports.event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments));\n\n noevent$1();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);\n else select(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n touches = exports.event.changedTouches,\n n = touches.length, i, t, p;\n\n nopropagation$1();\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p;\n else if (!g.touch1) g.touch1 = p;\n }\n if (touchstarting) {\n touchstarting = clearTimeout(touchstarting);\n if (!g.touch1) return g.end(), dblclicked.apply(this, arguments);\n }\n if (exports.event.touches.length === n) {\n touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved() {\n var g = gesture(this, arguments),\n touches = exports.event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent$1();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent));\n }\n\n function touchended() {\n var g = gesture(this, arguments),\n touches = exports.event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation$1();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (!g.touch0) g.end();\n }\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant$9(!!_), zoom) : filter;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant$9([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (k0 = +_[0], k1 = +_[1], zoom) : [k0, k1];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], zoom) : [[x0, y0], [x1, y1]];\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n return zoom;\n}\n\nfunction constant$10(x) {\n return function() {\n return x;\n };\n}\n\nfunction BrushEvent(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n\nfunction nopropagation$2() {\n exports.event.stopImmediatePropagation();\n}\n\nfunction noevent$2() {\n exports.event.preventDefault();\n exports.event.stopImmediatePropagation();\n}\n\nvar MODE_DRAG = {name: \"drag\"};\nvar MODE_SPACE = {name: \"space\"};\nvar MODE_HANDLE = {name: \"handle\"};\nvar MODE_CENTER = {name: \"center\"};\nvar X = {\n name: \"x\",\n handles: [\"e\", \"w\"].map(type$1),\n input: function(x, e) { return x && [[x[0], e[0][1]], [x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type$1),\n input: function(y, e) { return y && [[e[0][0], y[0]], [e[1][0], y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\"].map(type$1),\n input: function(xy) { return xy; },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type$1(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter$2() {\n return !exports.event.button;\n}\n\nfunction defaultExtent$1() {\n var svg = this.ownerSVGElement || this;\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local$1(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty$1(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nfunction brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nfunction brushX() {\n return brush$1(X);\n}\n\nfunction brushY() {\n return brush$1(Y);\n}\n\nfunction brush() {\n return brush$1(XY);\n}\n\nfunction brush$1(dim) {\n var extent = defaultExtent$1,\n filter = defaultFilter$2,\n listeners = dispatch(brush, \"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type$1(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local$1(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type$1(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\")\n .on(\"mousedown.brush touchstart.brush\", started);\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && empty$1(selection1) ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 && selection1 ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 == null || empty$1(selection1) ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n function redraw() {\n var group = select(this),\n selection = local$1(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args) {\n return that.__brush.emitter || new Emitter(that, args);\n }\n\n function Emitter(that, args) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (exports.event.touches) { if (exports.event.changedTouches.length < exports.event.touches.length) return noevent$2(); }\n else if (touchending) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = exports.event.target.__data__.type,\n mode = (exports.event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (exports.event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local$1(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx,\n dy,\n moving,\n shifting = signX && signY && exports.event.shiftKey,\n lockX,\n lockY,\n point0 = mouse(that),\n point = point0,\n emit = emitter(that, arguments).beforestart();\n\n if (type === \"overlay\") {\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (exports.event.touches) {\n group\n .on(\"touchmove.brush\", moved, true)\n .on(\"touchend.brush touchcancel.brush\", ended, true);\n } else {\n var view = select(exports.event.view)\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n\n dragDisable(exports.event.view);\n }\n\n nopropagation$2();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = mouse(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent$2();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n selection = state.selection; // May be set by brush.move!\n\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation$2();\n if (exports.event.touches) {\n if (exports.event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n group.on(\"touchmove.brush touchend.brush touchcancel.brush\", null);\n } else {\n dragEnable(exports.event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (empty$1(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (exports.event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent$2();\n }\n\n function keyupped() {\n switch (exports.event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (exports.event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent$2();\n }\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = extent.apply(this, arguments);\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant$10([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant$10(!!_), brush) : filter;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n\nvar cos = Math.cos;\nvar sin = Math.sin;\nvar pi$3 = Math.PI;\nvar halfPi$2 = pi$3 / 2;\nvar tau$3 = pi$3 * 2;\nvar max$1 = Math.max;\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nfunction chord() {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = [],\n groupIndex = range(n),\n subgroupIndex = [],\n chords = [],\n groups = chords.groups = new Array(n),\n subgroups = new Array(n * n),\n k,\n x,\n x0,\n dx,\n i,\n j;\n\n // Compute the sum.\n k = 0, i = -1; while (++i < n) {\n x = 0, j = -1; while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(range(n));\n k += x;\n }\n\n // Sort groups…\n if (sortGroups) groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n\n // Sort subgroups…\n if (sortSubgroups) subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n\n // Convert the sum to scaling factor for [0, 2pi].\n // TODO Allow start and end angle to be specified?\n // TODO Allow padding to be specified as percentage?\n k = max$1(0, tau$3 - padAngle * n) / k;\n dx = k ? padAngle : tau$3 / n;\n\n // Compute the start and end angle for each group and subgroup.\n // Note: Opera has a bug reordering object literal properties!\n x = 0, i = -1; while (++i < n) {\n x0 = x, j = -1; while (++j < n) {\n var di = groupIndex[i],\n dj = subgroupIndex[di][j],\n v = matrix[di][dj],\n a0 = x,\n a1 = x += v * k;\n subgroups[dj * n + di] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += dx;\n }\n\n // Generate chords for each (non-empty) subgroup-subgroup link.\n i = -1; while (++i < n) {\n j = i - 1; while (++j < n) {\n var source = subgroups[j * n + i],\n target = subgroups[i * n + j];\n if (source.value || target.value) {\n chords.push(source.value < target.value\n ? {source: target, target: source}\n : {source: source, target: target});\n }\n }\n }\n\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max$1(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n\nvar slice$5 = Array.prototype.slice;\n\nfunction constant$11(x) {\n return function() {\n return x;\n };\n}\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius$1(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nfunction ribbon() {\n var source = defaultSource,\n target = defaultTarget,\n radius = defaultRadius$1,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n argv = slice$5.call(arguments),\n s = source.apply(this, argv),\n t = target.apply(this, argv),\n sr = +radius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi$2,\n sa1 = endAngle.apply(this, argv) - halfPi$2,\n sx0 = sr * cos(sa0),\n sy0 = sr * sin(sa0),\n tr = +radius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi$2,\n ta1 = endAngle.apply(this, argv) - halfPi$2;\n\n if (!context) context = buffer = path();\n\n context.moveTo(sx0, sy0);\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n context.quadraticCurveTo(0, 0, sx0, sy0);\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n ribbon.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant$11(+_), ribbon) : radius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant$11(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant$11(+_), ribbon) : endAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n\n// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nfunction adder() {\n return new Adder;\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function(y) {\n add$1(temp, y, this.t);\n add$1(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\n};\n\nvar temp = new Adder;\n\nfunction add$1(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = (a - av) + (b - bv);\n}\n\nvar epsilon$4 = 1e-6;\nvar epsilon2$2 = 1e-12;\nvar pi$4 = Math.PI;\nvar halfPi$3 = pi$4 / 2;\nvar quarterPi = pi$4 / 4;\nvar tau$4 = pi$4 * 2;\n\nvar degrees$1 = 180 / pi$4;\nvar radians = pi$4 / 180;\n\nvar abs = Math.abs;\nvar atan = Math.atan;\nvar atan2 = Math.atan2;\nvar cos$1 = Math.cos;\nvar ceil = Math.ceil;\nvar exp = Math.exp;\nvar log$1 = Math.log;\nvar pow$1 = Math.pow;\nvar sin$1 = Math.sin;\nvar sign$1 = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nvar sqrt$1 = Math.sqrt;\nvar tan = Math.tan;\n\nfunction acos(x) {\n return x > 1 ? 0 : x < -1 ? pi$4 : Math.acos(x);\n}\n\nfunction asin$1(x) {\n return x > 1 ? halfPi$3 : x < -1 ? -halfPi$3 : Math.asin(x);\n}\n\nfunction haversin(x) {\n return (x = sin$1(x / 2)) * x;\n}\n\nfunction noop$2() {}\n\nfunction streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(feature, stream) {\n streamGeometry(feature.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nfunction geoStream(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n\nvar areaRingSum = adder();\n\nvar areaSum = adder();\nvar lambda00;\nvar phi00;\nvar lambda0;\nvar cosPhi0;\nvar sinPhi0;\nvar areaStream = {\n point: noop$2,\n lineStart: noop$2,\n lineEnd: noop$2,\n polygonStart: function() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau$4 + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop$2;\n },\n sphere: function() {\n areaSum.add(tau$4);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos$1(phi = phi / 2 + quarterPi), sinPhi0 = sin$1(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos$1(phi),\n sinPhi = sin$1(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos$1(adLambda),\n v = k * sdLambda * sin$1(adLambda);\n areaRingSum.add(atan2(v, u));\n\n // Advance the previous points.\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nfunction area$2(object) {\n areaSum.reset();\n geoStream(object, areaStream);\n return areaSum * 2;\n}\n\nfunction spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin$1(cartesian[2])];\n}\n\nfunction cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos$1(phi);\n return [cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)];\n}\n\nfunction cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nfunction cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nfunction cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nfunction cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nfunction cartesianNormalizeInPlace(d) {\n var l = sqrt$1(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n\nvar lambda0$1;\nvar phi0;\nvar lambda1;\nvar phi1;\nvar lambda2;\nvar lambda00$1;\nvar phi00$1;\nvar p0;\nvar deltaSum = adder();\nvar ranges;\nvar range$1;\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon$4) phi1 = 90;\n else if (deltaSum < -epsilon$4) phi0 = -90;\n range$1[0] = lambda0$1, range$1[1] = lambda1;\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range$1 = [lambda0$1 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees$1 * sign,\n phii,\n antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees$1;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees$1;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;\n }\n } else {\n if (lambda1 >= lambda0$1) {\n if (lambda < lambda0$1) lambda0$1 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;\n }\n }\n }\n } else {\n boundsPoint(lambda, phi);\n }\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range$1[0] = lambda0$1, range$1[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00$1 = lambda, phi00$1 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00$1, phi00$1);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon$4) lambda0$1 = -(lambda1 = 180);\n range$1[0] = lambda0$1, range$1[1] = lambda1;\n p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nfunction bounds(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n\n phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity);\n ranges = [];\n geoStream(feature, boundsStream);\n\n // First, sort ranges by their minimum longitudes.\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n\n // Then, merge any ranges that overlap.\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n\n // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range$1 = null;\n\n return lambda0$1 === Infinity || phi0 === Infinity\n ? [[NaN, NaN], [NaN, NaN]]\n : [[lambda0$1, phi0], [lambda1, phi1]];\n}\n\nvar W0;\nvar W1;\nvar X0;\nvar Y0;\nvar Z0;\nvar X1;\nvar Y1;\nvar Z1;\nvar X2;\nvar Y2;\nvar Z2;\nvar lambda00$2;\nvar phi00$2;\nvar x0;\nvar y0;\nvar z0;\n// previous point\n\nvar centroidStream = {\n sphere: noop$2,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n};\n\n// Arithmetic mean of Cartesian vectors.\nfunction centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos$1(phi);\n centroidPointCartesian(cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos$1(phi);\n x0 = cosPhi * cos$1(lambda);\n y0 = cosPhi * sin$1(lambda);\n z0 = sin$1(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos$1(phi),\n x = cosPhi * cos$1(lambda),\n y = cosPhi * sin$1(lambda),\n z = sin$1(phi),\n w = atan2(sqrt$1((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\n// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\nfunction centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n centroidRingPoint(lambda00$2, phi00$2);\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n lambda00$2 = lambda, phi00$2 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos$1(phi);\n x0 = cosPhi * cos$1(lambda);\n y0 = cosPhi * sin$1(lambda);\n z0 = sin$1(phi);\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos$1(phi),\n x = cosPhi * cos$1(lambda),\n y = cosPhi * sin$1(lambda),\n z = sin$1(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = sqrt$1(cx * cx + cy * cy + cz * cz),\n u = x0 * x + y0 * y + z0 * z,\n v = m && -acos(u) / m, // area weight\n w = atan2(m, u); // line weight\n X2 += v * cx;\n Y2 += v * cy;\n Z2 += v * cz;\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroid$1(object) {\n W0 = W1 =\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n geoStream(object, centroidStream);\n\n var x = X2,\n y = Y2,\n z = Z2,\n m = x * x + y * y + z * z;\n\n // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n if (m < epsilon2$2) {\n x = X1, y = Y1, z = Z1;\n // If the feature has zero length, fall back to arithmetic mean of point vectors.\n if (W1 < epsilon$4) x = X0, y = Y0, z = Z0;\n m = x * x + y * y + z * z;\n // If the feature still has an undefined ccentroid, then return.\n if (m < epsilon2$2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees$1, asin$1(z / sqrt$1(m)) * degrees$1];\n}\n\nfunction constant$12(x) {\n return function() {\n return x;\n };\n}\n\nfunction compose(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n\nfunction rotationIdentity(lambda, phi) {\n return [lambda > pi$4 ? lambda - tau$4 : lambda < -pi$4 ? lambda + tau$4 : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nfunction rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau$4) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi$4 ? lambda - tau$4 : lambda < -pi$4 ? lambda + tau$4 : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos$1(deltaPhi),\n sinDeltaPhi = sin$1(deltaPhi),\n cosDeltaGamma = cos$1(deltaGamma),\n sinDeltaGamma = sin$1(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos$1(phi),\n x = cos$1(lambda) * cosPhi,\n y = sin$1(lambda) * cosPhi,\n z = sin$1(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin$1(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos$1(phi),\n x = cos$1(lambda) * cosPhi,\n y = sin$1(lambda) * cosPhi,\n z = sin$1(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin$1(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nfunction rotation(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees$1, coordinates[1] *= degrees$1, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees$1, coordinates[1] *= degrees$1, coordinates;\n };\n\n return forward;\n}\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nfunction circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos$1(radius),\n sinRadius = sin$1(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau$4;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau$4;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos$1(t), -sinRadius * sin$1(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau$4 - epsilon$4) % tau$4;\n}\n\nfunction circle$1() {\n var center = constant$12([0, 0]),\n radius = constant$12(90),\n precision = constant$12(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees$1, x[1] *= degrees$1;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant$12([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant$12(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant$12(+_), circle) : precision;\n };\n\n return circle;\n}\n\nfunction clipBuffer() {\n var lines = [],\n line;\n return {\n point: function(x, y) {\n line.push([x, y]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop$2,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n\nfunction clipLine(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n\nfunction pointEqual(a, b) {\n return abs(a[0] - b[0]) < epsilon$4 && abs(a[1] - b[1]) < epsilon$4;\n}\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nfunction clipPolygon(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n // If the first and last points of a segment are coincident, then treat as a\n // closed ring. TODO if all rings are closed, then the winding order of the\n // exterior ring should be checked.\n if (pointEqual(p0, p1)) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link$1(subject);\n link$1(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link$1(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n\nvar clipMax = 1e9;\nvar clipMin = -clipMax;\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nfunction clipExtent(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon$4 ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon$4 ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon$4 ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipPolygon(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n\nfunction extent$1() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n\n return clip = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipExtent(x0, y0, x1, y1)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}\n\nvar lengthSum = adder();\nvar lambda0$2;\nvar sinPhi0$1;\nvar cosPhi0$1;\nvar lengthStream = {\n sphere: noop$2,\n point: noop$2,\n lineStart: lengthLineStart,\n lineEnd: noop$2,\n polygonStart: noop$2,\n polygonEnd: noop$2\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop$2;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0$2 = lambda, sinPhi0$1 = sin$1(phi), cosPhi0$1 = cos$1(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin$1(phi),\n cosPhi = cos$1(phi),\n delta = abs(lambda - lambda0$2),\n cosDelta = cos$1(delta),\n sinDelta = sin$1(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0$1 * sinPhi - sinPhi0$1 * cosPhi * cosDelta,\n z = sinPhi0$1 * sinPhi + cosPhi0$1 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt$1(x * x + y * y), z));\n lambda0$2 = lambda, sinPhi0$1 = sinPhi, cosPhi0$1 = cosPhi;\n}\n\nfunction length$2(object) {\n lengthSum.reset();\n geoStream(object, lengthStream);\n return +lengthSum;\n}\n\nvar coordinates = [null, null];\nvar object$1 = {type: \"LineString\", coordinates: coordinates};\nfunction distance(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length$2(object$1);\n}\n\nfunction graticuleX(y0, y1, dy) {\n var y = range(y0, y1 - epsilon$4, dy).concat(y1);\n return function(x) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon$4, dx).concat(x1);\n return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nfunction graticule() {\n var x1, x0, X1, X0,\n y1, y0, Y1, Y0,\n dx = 10, dy = dx, DX = 90, DY = 360,\n x, y, X, Y,\n precision = 2.5;\n\n function graticule() {\n return {type: \"MultiLineString\", coordinates: lines()};\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X)\n .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))\n .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon$4; }).map(x))\n .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon$4; }).map(y));\n }\n\n graticule.lines = function() {\n return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n };\n\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X0).concat(\n Y(Y1).slice(1),\n X(X1).reverse().slice(1),\n Y(Y0).reverse().slice(1))\n ]\n };\n };\n\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = function(_) {\n if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.extentMinor = function(_) {\n if (!arguments.length) return [[x0, y0], [x1, y1]];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.step = function(_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function(_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function(_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule\n .extentMajor([[-180, -90 + epsilon$4], [180, 90 - epsilon$4]])\n .extentMinor([[-180, -80 - epsilon$4], [180, 80 + epsilon$4]]);\n}\n\nfunction interpolate$2(a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos$1(y0),\n sy0 = sin$1(y0),\n cy1 = cos$1(y1),\n sy1 = sin$1(y1),\n kx0 = cy0 * cos$1(x0),\n ky0 = cy0 * sin$1(x0),\n kx1 = cy1 * cos$1(x1),\n ky1 = cy1 * sin$1(x1),\n d = 2 * asin$1(sqrt$1(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin$1(d);\n\n var interpolate = d ? function(t) {\n var B = sin$1(t *= d) / k,\n A = sin$1(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [\n atan2(y, x) * degrees$1,\n atan2(z, sqrt$1(x * x + y * y)) * degrees$1\n ];\n } : function() {\n return [x0 * degrees$1, y0 * degrees$1];\n };\n\n interpolate.distance = d;\n\n return interpolate;\n}\n\nfunction identity$7(x) {\n return x;\n}\n\nvar areaSum$1 = adder();\nvar areaRingSum$1 = adder();\nvar x00;\nvar y00;\nvar x0$1;\nvar y0$1;\nvar areaStream$1 = {\n point: noop$2,\n lineStart: noop$2,\n lineEnd: noop$2,\n polygonStart: function() {\n areaStream$1.lineStart = areaRingStart$1;\n areaStream$1.lineEnd = areaRingEnd$1;\n },\n polygonEnd: function() {\n areaStream$1.lineStart = areaStream$1.lineEnd = areaStream$1.point = noop$2;\n areaSum$1.add(abs(areaRingSum$1));\n areaRingSum$1.reset();\n },\n result: function() {\n var area = areaSum$1 / 2;\n areaSum$1.reset();\n return area;\n }\n};\n\nfunction areaRingStart$1() {\n areaStream$1.point = areaPointFirst$1;\n}\n\nfunction areaPointFirst$1(x, y) {\n areaStream$1.point = areaPoint$1;\n x00 = x0$1 = x, y00 = y0$1 = y;\n}\n\nfunction areaPoint$1(x, y) {\n areaRingSum$1.add(y0$1 * x - x0$1 * y);\n x0$1 = x, y0$1 = y;\n}\n\nfunction areaRingEnd$1() {\n areaPoint$1(x00, y00);\n}\n\nvar x0$2 = Infinity;\nvar y0$2 = x0$2;\nvar x1 = -x0$2;\nvar y1 = x1;\nvar boundsStream$1 = {\n point: boundsPoint$1,\n lineStart: noop$2,\n lineEnd: noop$2,\n polygonStart: noop$2,\n polygonEnd: noop$2,\n result: function() {\n var bounds = [[x0$2, y0$2], [x1, y1]];\n x1 = y1 = -(y0$2 = x0$2 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint$1(x, y) {\n if (x < x0$2) x0$2 = x;\n if (x > x1) x1 = x;\n if (y < y0$2) y0$2 = y;\n if (y > y1) y1 = y;\n}\n\nvar X0$1 = 0;\nvar Y0$1 = 0;\nvar Z0$1 = 0;\nvar X1$1 = 0;\nvar Y1$1 = 0;\nvar Z1$1 = 0;\nvar X2$1 = 0;\nvar Y2$1 = 0;\nvar Z2$1 = 0;\nvar x00$1;\nvar y00$1;\nvar x0$3;\nvar y0$3;\nvar centroidStream$1 = {\n point: centroidPoint$1,\n lineStart: centroidLineStart$1,\n lineEnd: centroidLineEnd$1,\n polygonStart: function() {\n centroidStream$1.lineStart = centroidRingStart$1;\n centroidStream$1.lineEnd = centroidRingEnd$1;\n },\n polygonEnd: function() {\n centroidStream$1.point = centroidPoint$1;\n centroidStream$1.lineStart = centroidLineStart$1;\n centroidStream$1.lineEnd = centroidLineEnd$1;\n },\n result: function() {\n var centroid = Z2$1 ? [X2$1 / Z2$1, Y2$1 / Z2$1]\n : Z1$1 ? [X1$1 / Z1$1, Y1$1 / Z1$1]\n : Z0$1 ? [X0$1 / Z0$1, Y0$1 / Z0$1]\n : [NaN, NaN];\n X0$1 = Y0$1 = Z0$1 =\n X1$1 = Y1$1 = Z1$1 =\n X2$1 = Y2$1 = Z2$1 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint$1(x, y) {\n X0$1 += x;\n Y0$1 += y;\n ++Z0$1;\n}\n\nfunction centroidLineStart$1() {\n centroidStream$1.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream$1.point = centroidPointLine;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0$3, dy = y - y0$3, z = sqrt$1(dx * dx + dy * dy);\n X1$1 += z * (x0$3 + x) / 2;\n Y1$1 += z * (y0$3 + y) / 2;\n Z1$1 += z;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n}\n\nfunction centroidLineEnd$1() {\n centroidStream$1.point = centroidPoint$1;\n}\n\nfunction centroidRingStart$1() {\n centroidStream$1.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd$1() {\n centroidPointRing(x00$1, y00$1);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream$1.point = centroidPointRing;\n centroidPoint$1(x00$1 = x0$3 = x, y00$1 = y0$3 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0$3,\n dy = y - y0$3,\n z = sqrt$1(dx * dx + dy * dy);\n\n X1$1 += z * (x0$3 + x) / 2;\n Y1$1 += z * (y0$3 + y) / 2;\n Z1$1 += z;\n\n z = y0$3 * x - x0$3 * y;\n X2$1 += z * (x0$3 + x);\n Y2$1 += z * (y0$3 + y);\n Z2$1 += z * 3;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n}\n\nfunction PathContext(context) {\n var pointRadius = 4.5;\n\n var stream = {\n point: point,\n\n // While inside a line, override point to moveTo then lineTo.\n lineStart: function() { stream.point = pointLineStart; },\n lineEnd: lineEnd,\n\n // While inside a polygon, override lineEnd to closePath.\n polygonStart: function() { stream.lineEnd = lineEndPolygon; },\n polygonEnd: function() { stream.lineEnd = lineEnd; stream.point = point; },\n\n pointRadius: function(_) {\n pointRadius = _;\n return stream;\n },\n\n result: noop$2\n };\n\n function point(x, y) {\n context.moveTo(x + pointRadius, y);\n context.arc(x, y, pointRadius, 0, tau$4);\n }\n\n function pointLineStart(x, y) {\n context.moveTo(x, y);\n stream.point = pointLine;\n }\n\n function pointLine(x, y) {\n context.lineTo(x, y);\n }\n\n function lineEnd() {\n stream.point = point;\n }\n\n function lineEndPolygon() {\n context.closePath();\n }\n\n return stream;\n}\n\nfunction PathString() {\n var pointCircle = circle$2(4.5),\n string = [];\n\n var stream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointCircle = circle$2(_);\n return stream;\n },\n result: function() {\n if (string.length) {\n var result = string.join(\"\");\n string = [];\n return result;\n }\n }\n };\n\n function point(x, y) {\n string.push(\"M\", x, \",\", y, pointCircle);\n }\n\n function pointLineStart(x, y) {\n string.push(\"M\", x, \",\", y);\n stream.point = pointLine;\n }\n\n function pointLine(x, y) {\n string.push(\"L\", x, \",\", y);\n }\n\n function lineStart() {\n stream.point = pointLineStart;\n }\n\n function lineEnd() {\n stream.point = point;\n }\n\n function lineEndPolygon() {\n string.push(\"Z\");\n }\n\n return stream;\n}\n\nfunction circle$2(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n\nfunction index$3() {\n var pointRadius = 4.5,\n projection,\n projectionStream,\n context,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n geoStream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n geoStream(object, projectionStream(areaStream$1));\n return areaStream$1.result();\n };\n\n path.bounds = function(object) {\n geoStream(object, projectionStream(boundsStream$1));\n return boundsStream$1.result();\n };\n\n path.centroid = function(object) {\n geoStream(object, projectionStream(centroidStream$1));\n return centroidStream$1.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = (projection = _) == null ? identity$7 : _.stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = (context = _) == null ? new PathString : new PathContext(_);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(null).context(null);\n}\n\nvar sum$2 = adder();\n\nfunction polygonContains(polygon, point) {\n var lambda = point[0],\n phi = point[1],\n normal = [sin$1(lambda), -cos$1(lambda), 0],\n angle = 0,\n winding = 0;\n\n sum$2.reset();\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = point0[0],\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin$1(phi0),\n cosPhi0 = cos$1(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = point1[0],\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin$1(phi1),\n cosPhi1 = cos$1(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi$4,\n k = sinPhi0 * sinPhi1;\n\n sum$2.add(atan2(k * sign * sin$1(absDelta), cosPhi0 * cosPhi1 + k * cos$1(absDelta)));\n angle += antimeridian ? delta + sign * tau$4 : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin$1(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon$4 || angle < epsilon$4 && sum$2 < -epsilon$4) ^ (winding & 1);\n}\n\nfunction clip(pointVisible, clipLine, interpolate, start) {\n return function(rotate, sink) {\n var line = clipLine(sink),\n rotatedStart = rotate.invert(start[0], start[1]),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, rotatedStart);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipPolygon(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n var point = rotate(lambda, phi);\n if (pointVisible(lambda = point[0], phi = point[1])) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n var point = rotate(lambda, phi);\n line.point(point[0], point[1]);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n var point = rotate(lambda, phi);\n ringSink.point(point[0], point[1]);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi$3 - epsilon$4 : halfPi$3 - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi$3 - epsilon$4 : halfPi$3 - b[1]);\n}\n\nvar clipAntimeridian = clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi$4, -halfPi$3]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi$4 : -pi$4,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi$4) < epsilon$4) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi$3 : -halfPi$3);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi$4) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon$4) lambda0 -= sign0 * epsilon$4; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon$4) lambda1 -= sign1 * epsilon$4;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin$1(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon$4\n ? atan((sin$1(phi0) * (cosPhi1 = cos$1(phi1)) * sin$1(lambda1)\n - sin$1(phi1) * (cosPhi0 = cos$1(phi0)) * sin$1(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi$3;\n stream.point(-pi$4, phi);\n stream.point(0, phi);\n stream.point(pi$4, phi);\n stream.point(pi$4, 0);\n stream.point(pi$4, -phi);\n stream.point(0, -phi);\n stream.point(-pi$4, -phi);\n stream.point(-pi$4, 0);\n stream.point(-pi$4, phi);\n } else if (abs(from[0] - to[0]) > epsilon$4) {\n var lambda = from[0] < to[0] ? pi$4 : -pi$4;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n\nfunction clipCircle(radius, delta) {\n var cr = cos$1(radius),\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon$4; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos$1(lambda) * cos$1(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi$4 : -pi$4), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n // Handle degeneracies.\n // TODO ignore if not clipping polygons.\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (pointEqual(point0, point2) || pointEqual(point1, point2)) {\n point1[0] += epsilon$4;\n point1[1] += epsilon$4;\n v = visible(point1[0], point1[1]);\n }\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1]);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt$1(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi$4) < epsilon$4,\n meridian = polar || delta < epsilon$4;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon$4 ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi$4 ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi$4 - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi$4, radius - pi$4]);\n}\n\nfunction transform$1(prototype) {\n return {\n stream: transform$2(prototype)\n };\n}\n\nfunction transform$2(prototype) {\n function T() {}\n var p = T.prototype = Object.create(Transform$1.prototype);\n for (var k in prototype) p[k] = prototype[k];\n return function(stream) {\n var t = new T;\n t.stream = stream;\n return t;\n };\n}\n\nfunction Transform$1() {}\n\nTransform$1.prototype = {\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n\nfunction fit(project, extent, object) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n clip = project.clipExtent && project.clipExtent();\n\n project\n .scale(150)\n .translate([0, 0]);\n\n if (clip != null) project.clipExtent(null);\n\n geoStream(object, project.stream(boundsStream$1));\n\n var b = boundsStream$1.result(),\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n\n if (clip != null) project.clipExtent(clip);\n\n return project\n .scale(k * 150)\n .translate([x, y]);\n}\n\nfunction fitSize(project) {\n return function(size, object) {\n return fit(project, [[0, 0], size], object);\n };\n}\n\nfunction fitExtent(project) {\n return function(extent, object) {\n return fit(project, extent, object);\n };\n}\n\nvar maxDepth = 16;\nvar cosMinDistance = cos$1(30 * radians);\n// cos(minimum angular distance)\n\nfunction resample(project, delta2) {\n return +delta2 ? resample$1(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transform$2({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample$1(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt$1(a * a + b * b + c * c),\n phi2 = asin$1(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon$4 || abs(lambda0 - lambda1) < epsilon$4 ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n\nvar transformRadians = transform$2({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nfunction projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n dx, dy, lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, projectRotate, // rotate\n theta = null, preclip = clipAntimeridian, // clip angle\n x0 = null, y0, x1, y1, postclip = identity$7, // clip extent\n delta2 = 0.5, projectResample = resample(projectTransform, delta2), // precision\n cache,\n cacheStream;\n\n function projection(point) {\n point = projectRotate(point[0] * radians, point[1] * radians);\n return [point[0] * k + dx, dy - point[1] * k];\n }\n\n function invert(point) {\n point = projectRotate.invert((point[0] - dx) / k, (dy - point[1]) / k);\n return point && [point[0] * degrees$1, point[1] * degrees$1];\n }\n\n function projectTransform(x, y) {\n return x = project(x, y), [x[0] * k + dx, dy - x[1] * k];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(preclip(rotate, projectResample(postclip(cacheStream = stream))));\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians, 6 * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees$1;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$7) : clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees$1, phi * degrees$1];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees$1, deltaPhi * degrees$1, deltaGamma * degrees$1];\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt$1(delta2);\n };\n\n projection.fitExtent = fitExtent(projection);\n\n projection.fitSize = fitSize(projection);\n\n function recenter() {\n projectRotate = compose(rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma), project);\n var center = project(lambda, phi);\n dx = x - center[0] * k;\n dy = y + center[1] * k;\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n\nfunction conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi$4 / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees$1, phi1 * degrees$1];\n };\n\n return p;\n}\n\nfunction conicEqualAreaRaw(y0, y1) {\n var sy0 = sin$1(y0),\n n = (sy0 + sin$1(y1)) / 2,\n c = 1 + sy0 * (2 * n - sy0),\n r0 = sqrt$1(c) / n;\n\n function project(x, y) {\n var r = sqrt$1(c - 2 * n * sin$1(y)) / n;\n return [r * sin$1(x *= n), r0 - r * cos$1(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y;\n return [atan2(x, r0y) / n, asin$1((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nfunction conicEqualArea() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n\nfunction albers() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nfunction albersUsa() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return albersUsa;\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon$4, y + 0.120 * k + epsilon$4], [x - 0.214 * k - epsilon$4, y + 0.234 * k - epsilon$4]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon$4, y + 0.166 * k + epsilon$4], [x - 0.115 * k - epsilon$4, y + 0.234 * k - epsilon$4]])\n .stream(pointStream);\n\n return albersUsa;\n };\n\n albersUsa.fitExtent = fitExtent(albersUsa);\n\n albersUsa.fitSize = fitSize(albersUsa);\n\n return albersUsa.scale(1070);\n}\n\nfunction azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos$1(x),\n cy = cos$1(y),\n k = scale(cx * cy);\n return [\n k * cy * sin$1(x),\n k * sin$1(y)\n ];\n }\n}\n\nfunction azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt$1(x * x + y * y),\n c = angle(z),\n sc = sin$1(c),\n cc = cos$1(c);\n return [\n atan2(x * sc, z * cc),\n asin$1(z && y * sc / z)\n ];\n }\n}\n\nvar azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt$1(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin$1(z / 2);\n});\n\nfunction azimuthalEqualArea() {\n return projection(azimuthalEqualAreaRaw)\n .scale(124.75)\n .clipAngle(180 - 1e-3);\n}\n\nvar azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin$1(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n});\n\nfunction azimuthalEquidistant() {\n return projection(azimuthalEquidistantRaw)\n .scale(79.4188)\n .clipAngle(180 - 1e-3);\n}\n\nfunction mercatorRaw(lambda, phi) {\n return [lambda, log$1(tan((halfPi$3 + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi$3];\n};\n\nfunction mercator() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau$4);\n}\n\nfunction mercatorProjection(project) {\n var m = projection(project),\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n clipAuto;\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), clipAuto && m.clipExtent(null), m) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), clipAuto && m.clipExtent(null), m) : translate();\n };\n\n m.clipExtent = function(_) {\n if (!arguments.length) return clipAuto ? null : clipExtent();\n if (clipAuto = _ == null) {\n var k = pi$4 * scale(),\n t = translate();\n _ = [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]];\n }\n clipExtent(_);\n return m;\n };\n\n return m.clipExtent(null);\n}\n\nfunction tany(y) {\n return tan((halfPi$3 + y) / 2);\n}\n\nfunction conicConformalRaw(y0, y1) {\n var cy0 = cos$1(y0),\n n = y0 === y1 ? sin$1(y0) : log$1(cy0 / cos$1(y1)) / log$1(tany(y1) / tany(y0)),\n f = cy0 * pow$1(tany(y0), n) / n;\n\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) { if (y < -halfPi$3 + epsilon$4) y = -halfPi$3 + epsilon$4; }\n else { if (y > halfPi$3 - epsilon$4) y = halfPi$3 - epsilon$4; }\n var r = f / pow$1(tany(y), n);\n return [r * sin$1(n * x), f - r * cos$1(n * x)];\n }\n\n project.invert = function(x, y) {\n var fy = f - y, r = sign$1(n) * sqrt$1(x * x + fy * fy);\n return [atan2(x, fy) / n, 2 * atan(pow$1(f / r, 1 / n)) - halfPi$3];\n };\n\n return project;\n}\n\nfunction conicConformal() {\n return conicProjection(conicConformalRaw)\n .scale(109.5)\n .parallels([30, 30]);\n}\n\nfunction equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nfunction equirectangular() {\n return projection(equirectangularRaw)\n .scale(152.63);\n}\n\nfunction conicEquidistantRaw(y0, y1) {\n var cy0 = cos$1(y0),\n n = y0 === y1 ? sin$1(y0) : (cy0 - cos$1(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n\n if (abs(n) < epsilon$4) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y, nx = n * x;\n return [gy * sin$1(nx), g - gy * cos$1(nx)];\n }\n\n project.invert = function(x, y) {\n var gy = g - y;\n return [atan2(x, gy) / n, g - sign$1(n) * sqrt$1(x * x + gy * gy)];\n };\n\n return project;\n}\n\nfunction conicEquidistant() {\n return conicProjection(conicEquidistantRaw)\n .scale(131.154)\n .center([0, 13.9389]);\n}\n\nfunction gnomonicRaw(x, y) {\n var cy = cos$1(y), k = cos$1(x) * cy;\n return [cy * sin$1(x) / k, sin$1(y) / k];\n}\n\ngnomonicRaw.invert = azimuthalInvert(atan);\n\nfunction gnomonic() {\n return projection(gnomonicRaw)\n .scale(144.049)\n .clipAngle(60);\n}\n\nfunction orthographicRaw(x, y) {\n return [cos$1(y) * sin$1(x), sin$1(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin$1);\n\nfunction orthographic() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon$4);\n}\n\nfunction stereographicRaw(x, y) {\n var cy = cos$1(y), k = 1 + cos$1(x) * cy;\n return [cy * sin$1(x) / k, sin$1(y) / k];\n}\n\nstereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n});\n\nfunction stereographic() {\n return projection(stereographicRaw)\n .scale(250)\n .clipAngle(142);\n}\n\nfunction transverseMercatorRaw(lambda, phi) {\n return [log$1(tan((halfPi$3 + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function(x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi$3];\n};\n\nfunction transverseMercator() {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function(_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function(_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90])\n .scale(159.155);\n}\n\nexports.version = version;\nexports.bisect = bisectRight;\nexports.bisectRight = bisectRight;\nexports.bisectLeft = bisectLeft;\nexports.ascending = ascending;\nexports.bisector = bisector;\nexports.descending = descending;\nexports.deviation = deviation;\nexports.extent = extent;\nexports.histogram = histogram;\nexports.thresholdFreedmanDiaconis = freedmanDiaconis;\nexports.thresholdScott = scott;\nexports.thresholdSturges = sturges;\nexports.max = max;\nexports.mean = mean;\nexports.median = median;\nexports.merge = merge;\nexports.min = min;\nexports.pairs = pairs;\nexports.permute = permute;\nexports.quantile = threshold;\nexports.range = range;\nexports.scan = scan;\nexports.shuffle = shuffle;\nexports.sum = sum;\nexports.ticks = ticks;\nexports.tickStep = tickStep;\nexports.transpose = transpose;\nexports.variance = variance;\nexports.zip = zip;\nexports.entries = entries;\nexports.keys = keys;\nexports.values = values;\nexports.map = map$1;\nexports.set = set;\nexports.nest = nest;\nexports.randomUniform = uniform;\nexports.randomNormal = normal;\nexports.randomLogNormal = logNormal;\nexports.randomBates = bates;\nexports.randomIrwinHall = irwinHall;\nexports.randomExponential = exponential;\nexports.easeLinear = linear;\nexports.easeQuad = quadInOut;\nexports.easeQuadIn = quadIn;\nexports.easeQuadOut = quadOut;\nexports.easeQuadInOut = quadInOut;\nexports.easeCubic = easeCubicInOut;\nexports.easeCubicIn = cubicIn;\nexports.easeCubicOut = cubicOut;\nexports.easeCubicInOut = easeCubicInOut;\nexports.easePoly = polyInOut;\nexports.easePolyIn = polyIn;\nexports.easePolyOut = polyOut;\nexports.easePolyInOut = polyInOut;\nexports.easeSin = sinInOut;\nexports.easeSinIn = sinIn;\nexports.easeSinOut = sinOut;\nexports.easeSinInOut = sinInOut;\nexports.easeExp = expInOut;\nexports.easeExpIn = expIn;\nexports.easeExpOut = expOut;\nexports.easeExpInOut = expInOut;\nexports.easeCircle = circleInOut;\nexports.easeCircleIn = circleIn;\nexports.easeCircleOut = circleOut;\nexports.easeCircleInOut = circleInOut;\nexports.easeBounce = bounceOut;\nexports.easeBounceIn = bounceIn;\nexports.easeBounceOut = bounceOut;\nexports.easeBounceInOut = bounceInOut;\nexports.easeBack = backInOut;\nexports.easeBackIn = backIn;\nexports.easeBackOut = backOut;\nexports.easeBackInOut = backInOut;\nexports.easeElastic = elasticOut;\nexports.easeElasticIn = elasticIn;\nexports.easeElasticOut = elasticOut;\nexports.easeElasticInOut = elasticInOut;\nexports.polygonArea = area;\nexports.polygonCentroid = centroid;\nexports.polygonHull = hull;\nexports.polygonContains = contains;\nexports.polygonLength = length$1;\nexports.path = path;\nexports.quadtree = quadtree;\nexports.queue = queue;\nexports.arc = arc;\nexports.area = area$1;\nexports.line = line;\nexports.pie = pie;\nexports.radialArea = radialArea;\nexports.radialLine = radialLine$1;\nexports.symbol = symbol;\nexports.symbols = symbols;\nexports.symbolCircle = circle;\nexports.symbolCross = cross$1;\nexports.symbolDiamond = diamond;\nexports.symbolSquare = square;\nexports.symbolStar = star;\nexports.symbolTriangle = triangle;\nexports.symbolWye = wye;\nexports.curveBasisClosed = basisClosed;\nexports.curveBasisOpen = basisOpen;\nexports.curveBasis = basis;\nexports.curveBundle = bundle;\nexports.curveCardinalClosed = cardinalClosed;\nexports.curveCardinalOpen = cardinalOpen;\nexports.curveCardinal = cardinal;\nexports.curveCatmullRomClosed = catmullRomClosed;\nexports.curveCatmullRomOpen = catmullRomOpen;\nexports.curveCatmullRom = catmullRom;\nexports.curveLinearClosed = linearClosed;\nexports.curveLinear = curveLinear;\nexports.curveMonotoneX = monotoneX;\nexports.curveMonotoneY = monotoneY;\nexports.curveNatural = natural;\nexports.curveStep = step;\nexports.curveStepAfter = stepAfter;\nexports.curveStepBefore = stepBefore;\nexports.stack = stack;\nexports.stackOffsetExpand = expand;\nexports.stackOffsetNone = none;\nexports.stackOffsetSilhouette = silhouette;\nexports.stackOffsetWiggle = wiggle;\nexports.stackOrderAscending = ascending$1;\nexports.stackOrderDescending = descending$2;\nexports.stackOrderInsideOut = insideOut;\nexports.stackOrderNone = none$1;\nexports.stackOrderReverse = reverse;\nexports.color = color;\nexports.rgb = colorRgb;\nexports.hsl = colorHsl;\nexports.lab = lab;\nexports.hcl = colorHcl;\nexports.cubehelix = cubehelix;\nexports.interpolate = interpolate;\nexports.interpolateArray = array$1;\nexports.interpolateDate = date;\nexports.interpolateNumber = interpolateNumber;\nexports.interpolateObject = object;\nexports.interpolateRound = interpolateRound;\nexports.interpolateString = interpolateString;\nexports.interpolateTransformCss = interpolateTransform$1;\nexports.interpolateTransformSvg = interpolateTransform$2;\nexports.interpolateZoom = interpolateZoom;\nexports.interpolateRgb = interpolateRgb;\nexports.interpolateRgbBasis = rgbBasis;\nexports.interpolateRgbBasisClosed = rgbBasisClosed;\nexports.interpolateHsl = hsl$1;\nexports.interpolateHslLong = hslLong;\nexports.interpolateLab = lab$1;\nexports.interpolateHcl = hcl$1;\nexports.interpolateHclLong = hclLong;\nexports.interpolateCubehelix = cubehelix$2;\nexports.interpolateCubehelixLong = interpolateCubehelixLong;\nexports.interpolateBasis = basis$2;\nexports.interpolateBasisClosed = basisClosed$1;\nexports.quantize = quantize;\nexports.dispatch = dispatch;\nexports.dsvFormat = dsv;\nexports.csvParse = csvParse;\nexports.csvParseRows = csvParseRows;\nexports.csvFormat = csvFormat;\nexports.csvFormatRows = csvFormatRows;\nexports.tsvParse = tsvParse;\nexports.tsvParseRows = tsvParseRows;\nexports.tsvFormat = tsvFormat;\nexports.tsvFormatRows = tsvFormatRows;\nexports.request = request;\nexports.html = html;\nexports.json = json;\nexports.text = text;\nexports.xml = xml;\nexports.csv = csv$1;\nexports.tsv = tsv$1;\nexports.now = now;\nexports.timer = timer;\nexports.timerFlush = timerFlush;\nexports.timeout = timeout$1;\nexports.interval = interval$1;\nexports.timeInterval = newInterval;\nexports.timeMillisecond = millisecond;\nexports.timeMilliseconds = milliseconds;\nexports.timeSecond = second;\nexports.timeSeconds = seconds;\nexports.timeMinute = minute;\nexports.timeMinutes = minutes;\nexports.timeHour = hour;\nexports.timeHours = hours;\nexports.timeDay = day;\nexports.timeDays = days;\nexports.timeWeek = timeWeek;\nexports.timeWeeks = sundays;\nexports.timeSunday = timeWeek;\nexports.timeSundays = sundays;\nexports.timeMonday = timeMonday;\nexports.timeMondays = mondays;\nexports.timeTuesday = tuesday;\nexports.timeTuesdays = tuesdays;\nexports.timeWednesday = wednesday;\nexports.timeWednesdays = wednesdays;\nexports.timeThursday = thursday;\nexports.timeThursdays = thursdays;\nexports.timeFriday = friday;\nexports.timeFridays = fridays;\nexports.timeSaturday = saturday;\nexports.timeSaturdays = saturdays;\nexports.timeMonth = month;\nexports.timeMonths = months;\nexports.timeYear = year;\nexports.timeYears = years;\nexports.utcMillisecond = millisecond;\nexports.utcMilliseconds = milliseconds;\nexports.utcSecond = second;\nexports.utcSeconds = seconds;\nexports.utcMinute = utcMinute;\nexports.utcMinutes = utcMinutes;\nexports.utcHour = utcHour;\nexports.utcHours = utcHours;\nexports.utcDay = utcDay;\nexports.utcDays = utcDays;\nexports.utcWeek = utcWeek;\nexports.utcWeeks = utcSundays;\nexports.utcSunday = utcWeek;\nexports.utcSundays = utcSundays;\nexports.utcMonday = utcMonday;\nexports.utcMondays = utcMondays;\nexports.utcTuesday = utcTuesday;\nexports.utcTuesdays = utcTuesdays;\nexports.utcWednesday = utcWednesday;\nexports.utcWednesdays = utcWednesdays;\nexports.utcThursday = utcThursday;\nexports.utcThursdays = utcThursdays;\nexports.utcFriday = utcFriday;\nexports.utcFridays = utcFridays;\nexports.utcSaturday = utcSaturday;\nexports.utcSaturdays = utcSaturdays;\nexports.utcMonth = utcMonth;\nexports.utcMonths = utcMonths;\nexports.utcYear = utcYear;\nexports.utcYears = utcYears;\nexports.formatLocale = formatLocale;\nexports.formatDefaultLocale = defaultLocale;\nexports.formatSpecifier = formatSpecifier;\nexports.precisionFixed = precisionFixed;\nexports.precisionPrefix = precisionPrefix;\nexports.precisionRound = precisionRound;\nexports.isoFormat = formatIso;\nexports.isoParse = parseIso;\nexports.timeFormatLocale = formatLocale$1;\nexports.timeFormatDefaultLocale = defaultLocale$1;\nexports.scaleBand = band;\nexports.scalePoint = point$4;\nexports.scaleIdentity = identity$4;\nexports.scaleLinear = linear$2;\nexports.scaleLog = log;\nexports.scaleOrdinal = ordinal;\nexports.scaleImplicit = implicit;\nexports.scalePow = pow;\nexports.scaleSqrt = sqrt;\nexports.scaleQuantile = quantile;\nexports.scaleQuantize = quantize$1;\nexports.scaleThreshold = threshold$1;\nexports.scaleTime = time;\nexports.scaleUtc = utcTime;\nexports.schemeCategory10 = category10;\nexports.schemeCategory20b = category20b;\nexports.schemeCategory20c = category20c;\nexports.schemeCategory20 = category20;\nexports.scaleSequential = sequential;\nexports.interpolateCubehelixDefault = cubehelix$3;\nexports.interpolateRainbow = rainbow$1;\nexports.interpolateWarm = warm;\nexports.interpolateCool = cool;\nexports.interpolateViridis = viridis;\nexports.interpolateMagma = magma;\nexports.interpolateInferno = inferno;\nexports.interpolatePlasma = plasma;\nexports.creator = creator;\nexports.customEvent = customEvent;\nexports.local = local;\nexports.matcher = matcher$1;\nexports.mouse = mouse;\nexports.namespace = namespace;\nexports.namespaces = namespaces;\nexports.select = select;\nexports.selectAll = selectAll;\nexports.selection = selection;\nexports.selector = selector;\nexports.selectorAll = selectorAll;\nexports.touch = touch;\nexports.touches = touches;\nexports.window = window;\nexports.active = active;\nexports.interrupt = interrupt;\nexports.transition = transition;\nexports.axisTop = axisTop;\nexports.axisRight = axisRight;\nexports.axisBottom = axisBottom;\nexports.axisLeft = axisLeft;\nexports.cluster = cluster;\nexports.hierarchy = hierarchy;\nexports.pack = index;\nexports.packSiblings = siblings;\nexports.packEnclose = enclose;\nexports.partition = partition;\nexports.stratify = stratify;\nexports.tree = tree;\nexports.treemap = index$1;\nexports.treemapBinary = binary;\nexports.treemapDice = treemapDice;\nexports.treemapSlice = treemapSlice;\nexports.treemapSliceDice = sliceDice;\nexports.treemapSquarify = squarify;\nexports.treemapResquarify = resquarify;\nexports.forceCenter = center$1;\nexports.forceCollide = collide;\nexports.forceLink = link;\nexports.forceManyBody = manyBody;\nexports.forceSimulation = simulation;\nexports.forceX = x$3;\nexports.forceY = y$3;\nexports.drag = drag;\nexports.dragDisable = dragDisable;\nexports.dragEnable = dragEnable;\nexports.voronoi = voronoi;\nexports.zoom = zoom;\nexports.zoomIdentity = identity$6;\nexports.zoomTransform = transform;\nexports.brush = brush;\nexports.brushX = brushX;\nexports.brushY = brushY;\nexports.brushSelection = brushSelection;\nexports.chord = chord;\nexports.ribbon = ribbon;\nexports.geoAlbers = albers;\nexports.geoAlbersUsa = albersUsa;\nexports.geoArea = area$2;\nexports.geoAzimuthalEqualArea = azimuthalEqualArea;\nexports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw;\nexports.geoAzimuthalEquidistant = azimuthalEquidistant;\nexports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw;\nexports.geoBounds = bounds;\nexports.geoCentroid = centroid$1;\nexports.geoCircle = circle$1;\nexports.geoClipExtent = extent$1;\nexports.geoConicConformal = conicConformal;\nexports.geoConicConformalRaw = conicConformalRaw;\nexports.geoConicEqualArea = conicEqualArea;\nexports.geoConicEqualAreaRaw = conicEqualAreaRaw;\nexports.geoConicEquidistant = conicEquidistant;\nexports.geoConicEquidistantRaw = conicEquidistantRaw;\nexports.geoDistance = distance;\nexports.geoEquirectangular = equirectangular;\nexports.geoEquirectangularRaw = equirectangularRaw;\nexports.geoGnomonic = gnomonic;\nexports.geoGnomonicRaw = gnomonicRaw;\nexports.geoGraticule = graticule;\nexports.geoInterpolate = interpolate$2;\nexports.geoLength = length$2;\nexports.geoMercator = mercator;\nexports.geoMercatorRaw = mercatorRaw;\nexports.geoOrthographic = orthographic;\nexports.geoOrthographicRaw = orthographicRaw;\nexports.geoPath = index$3;\nexports.geoProjection = projection;\nexports.geoProjectionMutator = projectionMutator;\nexports.geoRotation = rotation;\nexports.geoStereographic = stereographic;\nexports.geoStereographicRaw = stereographicRaw;\nexports.geoStream = geoStream;\nexports.geoTransform = transform$1;\nexports.geoTransverseMercator = transverseMercator;\nexports.geoTransverseMercatorRaw = transverseMercatorRaw;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// static/js/main.52d8c6a6.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/convolution-visualizer/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap dc042360bf48166430fe","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 0\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyFunction.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise/lib/core.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react/index.js\n// module id = 3\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fbjs/lib/emptyObject.js\n// module id = 4\n// module chunks = 0","// @remove-on-eject-begin\n/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// @remove-on-eject-end\n'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n require('raf').polyfill(global);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-scripts/config/polyfills.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._47 = null;\n Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._47 = function (promise) {\n if (\n promise._83 === 2 && // IS REJECTED\n rejections[promise._56]\n ) {\n if (rejections[promise._56].logged) {\n onHandled(promise._56);\n } else {\n clearTimeout(rejections[promise._56].timeout);\n }\n delete rejections[promise._56];\n }\n };\n Promise._71 = function (promise, err) {\n if (promise._75 === 0) { // not yet handled\n promise._56 = id++;\n rejections[promise._56] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._56),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise/lib/rejection-tracking.js\n// module id = 7\n// module chunks = 0","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/asap/browser-raw.js\n// module id = 8\n// module chunks = 0","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 9\n// module chunks = 0","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise/lib/es6-extensions.js\n// module id = 10\n// module chunks = 0","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/whatwg-fetch/fetch.js\n// module id = 11\n// module chunks = 0","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport * as d3 from 'd3v4';\nimport './index.css';\n\n/**\n * An HTML5 range slider and associated raw text input.\n *\n * Properties:\n * - min: The minimum allowed value for the slider range\n * - max: The maximum allowed value for the slider range\n * - value: The current value of the slider\n * - disabled: Whether or not to disable the slider. A slider\n * is automatically disabled when min == max.\n * - onChange: Callback when the value of this slider changes.\n */\nfunction Slider(props) {\n const max = parseInt(props.max, 10);\n const min = parseInt(props.min, 10);\n const maxLength = max ? Math.ceil(Math.log10(max)) : 1;\n const disabled = props.disabled || min >= max;\n return (\n \n \n \n \n );\n}\n\n/**\n * Create a 1-dimensional array of size 'length', where the 'i'th entry\n * is initialized to 'f(i)', or 'undefined' if 'f' is not passed.\n */\nfunction array1d(length, f) {\n return Array.from({length: length}, f ? ((v, i) => f(i)) : undefined);\n}\n\n/**\n * Create a 2-dimensional array of size 'height' x 'width', where the 'i','j' entry\n * is initialized to 'f(i, j)', or 'undefined' if 'f' is not passed.\n */\nfunction array2d(height, width, f) {\n return Array.from({length: height}, (v, i) => Array.from({length: width}, f ? ((w, j) => f(i, j)) : undefined));\n}\n\n/**\n * The classic convolution output size formula.\n *\n * The derivation for many special cases is worked out in:\n * http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html\n */\nfunction computeOutputSize(input_size, weight_size, padding, dilation, stride) {\n return Math.floor((input_size + 2 * padding - dilation * (weight_size - 1) - 1) / stride + 1);\n}\n\n/**\n * Test if a set of parameters is valid.\n */\nfunction paramsOK(input_size, weight_size, padding, dilation, stride) {\n return computeOutputSize(input_size, weight_size, padding, dilation, stride) > 0;\n}\n\n// We use the next two functions (maxWhile and minWhile) to\n// inefficiently compute the bounds for various parameters\n// given fixed values for other parameters.\n\n/**\n * Given a predicate 'pred' and a starting integer 'start',\n * find the largest integer i >= start such that 'pred(i)'\n * is true OR end, whichever is smaller.\n */\nfunction maxWhile(start, end, pred) {\n for (let i = start; i <= end; i++) {\n if (pred(i)) continue;\n return i - 1;\n }\n return end;\n}\n\n/**\n * Given a predicate 'pred' and a starting integer 'start',\n * find the smallest integer i <= start such that 'pred(i)'\n * is true OR end, whichever is larger.\n */\nfunction minWhile(start, end, pred) {\n for (let i = start; i >= end; i--) {\n if (pred(i)) continue;\n return i + 1;\n }\n return end;\n}\n\n/**\n * Return the color at 0 <= p <= 1 for the RGB linear interpolation\n * between color (0) and white (1).\n */\nfunction whiten(color, p) {\n return d3.interpolateRgb(color, \"white\")(p)\n}\n\n/**\n * Top-level component for the entire visualization. This component\n * controls top level parameters like input sizes, but not the mouse\n * interaction with the actual visualized grids.\n */\nclass App extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n input_size: 5,\n weight_size: 3,\n padding: 0,\n dilation: 1,\n stride: 1,\n };\n }\n\n // React controlled components clobber saved browser state, so\n // instead we manually save/load our state from localStorage.\n\n componentDidMount() {\n const state = localStorage.getItem(\"state\");\n if (state) {\n this.setState(JSON.parse(state));\n }\n }\n\n componentDidUpdate() {\n localStorage.setItem(\"state\", JSON.stringify(this.state));\n }\n\n render() {\n const input_size = this.state.input_size;\n const weight_size = this.state.weight_size;\n const padding = this.state.padding;\n const dilation = this.state.dilation;\n const stride = this.state.stride;\n const padded_input_size = input_size + padding * 2;\n\n // TODO: transposed convolution\n\n const output_size = computeOutputSize(input_size, weight_size, padding, dilation, stride);\n\n // Compute the convolution symbolically.\n\n // output[output_height][output_width] =\n // symbolic expression s for this cell, where\n // s[kernel_height][kernel_width] =\n // the flat input index multiplied against this kernel entry\n // (undefined if this entry not used)\n //\n // Recall: the flat input index for (i, j) in a square matrix is 'i * size + j'\n const output = array2d(output_size, output_size, (i, j) => array2d(weight_size, weight_size));\n\n for (let h_out = 0; h_out < output_size; h_out++) {\n for (let w_out = 0; w_out < output_size; w_out++) {\n for (let h_kern = 0; h_kern < weight_size; h_kern++) {\n for (let w_kern = 0; w_kern < weight_size; w_kern++) {\n // NB: We purposely don't apply padding here, this is\n // handled at render time.\n const h_im = h_out * stride + h_kern * dilation;\n const w_im = w_out * stride + w_kern * dilation;\n output[h_out][w_out][h_kern][w_kern] = h_im * padded_input_size + w_im;\n }\n }\n }\n }\n\n // Make an extended params dictionary with our new computed values\n // to pass to the inner component.\n const params = Object.assign({\n padded_input_size: padded_input_size,\n output_size: output_size,\n output: output,\n }, this.state);\n\n const onChange = (state_key) => {\n return (e) => {\n const r = parseInt(e.target.value, 10);\n // Text inputs can sometimes temporarily be in invalid states.\n // If it's not a valid number, refuse to set it.\n if (typeof r !== \"undefined\") {\n this.setState({[state_key]: r});\n }\n };\n };\n\n // An arbitrary constant I found aesthetically pleasing.\n const max_input_size = 16;\n\n return (\n
\n

Convolution Visualizer

\n
Edward Z. Yang
\n

\n This interactive visualization demonstrates how various convolution parameters\n affect shapes and data dependencies between the input, weight and\n output matrices. Hovering over an input/output will highlight the\n corresponding output/input, while hovering over an weight\n will highlight which inputs were multiplied into that weight to\n compute an output. (Strictly speaking, the operation visualized\n here is a correlation, not a convolution, as a true\n convolution flips its weights before performing a correlation.\n However, most deep learning frameworks still call these convolutions,\n and in the end it's all the same to gradient descent.)\n

\n
\n
\n Input size:\n paramsOK(x, weight_size, padding, dilation, stride))}\n max={max_input_size}\n value={input_size}\n onChange={onChange(\"input_size\")}\n />\n
\n
\n Kernel size:\n paramsOK(input_size, x, padding, dilation, stride))}\n value={weight_size}\n onChange={onChange(\"weight_size\")}\n />\n
\n
\n Padding:\n paramsOK(input_size, weight_size, x, dilation, stride))}\n max={dilation*(weight_size-1)}\n value={padding}\n onChange={onChange(\"padding\")}\n />\n
\n
\n Dilation:\n paramsOK(input_size, weight_size, padding, x, stride))}\n value={dilation}\n onChange={onChange(\"dilation\")}\n disabled={weight_size === 1}\n />\n
\n
\n Stride:\n \n
\n
\n \n
\n );\n }\n}\n\n/**\n * The viewport into the actual meat of the visualization, the\n * matrices. This component controls the state for hovering\n * and the animation.\n */\nclass Viewport extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n // Which matrix are we hovering over?\n hoverOver: undefined,\n // Which coordinate are we hovering over? Origin\n // is the top-left corner.\n hoverH: undefined,\n hoverW: undefined,\n // What is our animation timestep? A monotonically\n // increasing integer.\n counter: 0\n };\n }\n\n // Arrange for counter to increment by one after a fixed\n // time interval:\n\n tick() {\n this.setState({counter: this.state.counter + 1});\n }\n componentDidMount() {\n this.interval = setInterval(this.tick.bind(this), 1000); // 1 second\n }\n componentWillUnmount() {\n clearInterval(this.interval);\n }\n\n render() {\n const input_size = this.props.input_size;\n const padded_input_size = this.props.padded_input_size;\n const weight_size = this.props.weight_size;\n const output_size = this.props.output_size;\n const output = this.props.output;\n const padding = this.props.padding;\n const stride = this.props.stride;\n\n let hoverOver = this.state.hoverOver;\n let hoverH = this.state.hoverH;\n let hoverW = this.state.hoverW;\n\n // The primary heavy lifting of the render() function is to\n // define colorizer functions for each matrix, such that\n //\n // colorizer(i, j) = color of the cell at i, j\n //\n let inputColorizer = undefined;\n let weightColorizer = undefined;\n let outputColorizer = undefined;\n\n // After colorizing an input cell, apply darkening if the cell falls\n // within the padding. This function is responsible for rendering\n // the dark padding border; if you replace this with a passthrough\n // to f no dark padding border will be rendered.\n function inputColorizerWrapper(f) {\n return (i, j) => {\n let r = f(i, j);\n if (typeof r === \"undefined\") {\n r = d3.color(\"white\");\n } else {\n r = d3.color(r);\n }\n if (i < padding || i >= input_size + padding || j < padding || j >= input_size + padding) {\n r = r.darker(2.5);\n }\n return r;\n };\n }\n\n // Given the animation timestep, determine the output coordinates\n // of our animated stencil.\n const flat_animated = this.state.counter % (output_size * output_size);\n const animatedH = Math.floor(flat_animated / output_size);\n const animatedW = flat_animated % output_size;\n\n // If the user is not hovering over any matrix, render \"as if\"\n // they were hovering over the animated output coordinate.\n if (!hoverOver) {\n hoverOver = \"output\";\n hoverH = animatedH;\n hoverW = animatedW;\n }\n\n // If the user is hovering over the input matrix, render \"as if'\n // they were hovering over the output coordinate, such that the\n // top-left corner of the stencil is attached to the cursor.\n if (hoverOver === \"input\") {\n hoverOver = \"output\";\n hoverH = Math.min(Math.floor(hoverH / stride), output_size - 1);\n hoverW = Math.min(Math.floor(hoverW / stride), output_size - 1);\n }\n\n // Generate the color interpolator for generating the kernels.\n // This particular scale was found via experimentation with various\n // start/endpoints and different interpolation schemes. For more\n // documentation on these D3 functions, see:\n //\n // - https://github.com/d3/d3-interpolate\n // - https://github.com/d3/d3-color\n //\n // Some notes on what I was going for, from an aesthetic perspective:\n //\n // - The most important constraint is that all colors produced by the\n // interpolator need to be saturated enough so they are not confused\n // with the \"animation\" shadow.\n // - I wanted the interpolation to be smooth, despite this being a\n // discrete setting where an ordinal color scheme could be\n // employed. (Also I couldn't get the color schemes to work lol.)\n //\n // If you are a visualization expert and have a pet 2D color\n // interpolation scheme, please try swapping it in here and seeing\n // how it goes.\n const scale_size = weight_size;\n const xScale = d3.scaleSequential(d3.interpolateLab('#d7191c', '#2c7bb6')).domain([-1, scale_size])\n const yScale = d3.scaleSequential(d3.interpolateLab('#d7191c', d3.color('#1a9641').brighter(1))).domain([-1, scale_size])\n function xyScale(i, j) {\n return d3.color(d3.interpolateLab(xScale(i), yScale(j))((j-i) / (scale_size-1)));\n }\n\n // Given an output coordinate 'hoverH, hoverW', compute a mapping\n // from inputs to the weight coordinates which multiplied with\n // that input.\n //\n // Result:\n // r[input_height][input_width] = [weight_height, weight_width]\n function compute_input_multiplies_with_weight(hoverH, hoverW) {\n const input_multiplies_with_weight = array1d(padded_input_size * padded_input_size);\n for (let h_weight = 0; h_weight < weight_size; h_weight++) {\n for (let w_weight = 0; w_weight < weight_size; w_weight++) {\n const flat_input = output[hoverH][hoverW][h_weight][w_weight];\n if (typeof flat_input === \"undefined\") continue;\n input_multiplies_with_weight[flat_input] = [h_weight, w_weight];\n }\n }\n return input_multiplies_with_weight;\n }\n\n // The user is hovering over the output matrix (or the input matrix)\n if (hoverOver === \"output\") {\n outputColorizer = (i, j) => {\n const base = d3.color('#666')\n // If this output is selected, display it as dark grey\n if (hoverH === i && hoverW === j) {\n return base;\n }\n\n // Otherwise, if the output is animated, display it as a lighter\n // gray\n if (animatedH === i && animatedW === j) {\n return whiten(base, 0.8);\n }\n };\n\n const input_multiplies_with_weight = compute_input_multiplies_with_weight(hoverH, hoverW);\n const animated_input_multiplies_with_weight = compute_input_multiplies_with_weight(animatedH, animatedW);\n\n inputColorizer = inputColorizerWrapper((i, j) => {\n // If this input was used to compute the selected output, render\n // it the same color as the corresponding entry in the weight\n // matrix which it was multiplied against.\n const r = input_multiplies_with_weight[i * padded_input_size + j];\n if (r) {\n return xyScale(r[0], r[1]);\n }\n\n // Otherwise, if the input was used to compute the animated\n // output, render it as a lighter version of the weight color it was\n // multiplied against.\n const s = animated_input_multiplies_with_weight[i * padded_input_size + j];\n if (s) {\n return whiten(xyScale(s[0], s[1]), 0.8);\n }\n });\n\n // The weight matrix displays the full 2D color scale\n weightColorizer = (i, j) => {\n return xyScale(i, j);\n };\n\n // The user is hovering over the weight matrix\n } else if (hoverOver === \"weight\") {\n\n weightColorizer = (i, j) => {\n // If this weight is selected, render its color\n if (hoverH === i && hoverW === j) {\n return xyScale(hoverH, hoverW);\n }\n };\n\n // Compute a mapping from flat input index to output coordinates which\n // this input multiplied with the selected weight to produce.\n const input_produces_output = array1d(padded_input_size * padded_input_size);\n for (let h_out = 0; h_out < output_size; h_out++) {\n for (let w_out = 0; w_out < output_size; w_out++) {\n const flat_input = output[h_out][w_out][hoverH][hoverW];\n if (typeof flat_input === \"undefined\") continue;\n input_produces_output[flat_input] = [h_out, w_out];\n }\n }\n\n const animated_input_multiplies_with_weight = compute_input_multiplies_with_weight(animatedH, animatedW);\n\n inputColorizer = inputColorizerWrapper((i, j) => {\n // We are only rendering inputs which multiplied against a given\n // weight, so render all inputs the same color as the selected\n // weight.\n const color = xyScale(hoverH, hoverW);\n\n // If this input cell was multiplied by the selected weight to\n // produce the animated output, darken it. This shows the\n // current animation step's \"contribution\" to the colored\n // inputs.\n const s = animated_input_multiplies_with_weight[i * padded_input_size + j];\n if (s) {\n if (s[0] === hoverH && s[1] === hoverW) {\n return color.darker(1);\n }\n }\n\n // If this input cell was multiplied by the selected weight to\n // produce *some* output, render it as the weight's color.\n const r = input_produces_output[i * padded_input_size + j];\n if (r) {\n // BUT, if the input cell is part of the current animation\n // stencil, lighten it so that we can still see the stencil.\n if (s) {\n return whiten(color, 0.2);\n }\n return color;\n }\n\n // If this input cell is part of the animated stencil (and\n // it is not part of the solid block of color), render a shadow\n // of the stencil so we can still see it.\n if (s) {\n return whiten(xyScale(s[0], s[1]), 0.8);\n }\n });\n\n // The output matrix is a solid color of the selected weight.\n outputColorizer = (i, j) => {\n const color = xyScale(hoverH, hoverW);\n // If the output is the animated one, darken it, so we can\n // see the animation.\n if (i === animatedH && j === animatedW) {\n return color.darker(1);\n }\n return color;\n };\n }\n\n return (\n
\n
\n Input ({input_size} × {input_size}):\n {\n this.setState({hoverOver: \"input\", hoverH: i, hoverW: j});\n }}\n onMouseLeave={(e, i, j) => {\n this.setState({hoverOver: undefined, hoverH: undefined, hoverW: undefined});\n }}\n />\n
\n
\n Weight ({weight_size} × {weight_size}):\n {\n this.setState({hoverOver: \"weight\", hoverH: i, hoverW: j});\n }}\n onMouseLeave={(e, i, j) => {\n this.setState({hoverOver: undefined, hoverH: undefined, hoverW: undefined});\n }}\n />\n
\n
\n Output ({output_size} × {output_size}):\n {\n this.setState({hoverOver: \"output\", hoverH: i, hoverW: j});\n }}\n onMouseLeave={(e, i, j) => {\n this.setState({hoverOver: undefined, hoverH: undefined, hoverW: undefined});\n }}\n />\n
\n
\n );\n }\n}\n\n/**\n * A square matrix grid which we render our matrix animations.\n *\n * Properties:\n * - size: The height/width of the matrix\n * - colorizer: A function f(i, j), returning the color of the i,j cell\n * - onMouseEnter: A callback invoked f(event, i, j) when the i,j cell is\n * entered by a mouse.\n * - onMouseLeave: A callback invoked f(event, i, j) when the i,j cell is\n * left by a mouse.\n */\nfunction Grid(props) {\n const size = parseInt(props.size, 10);\n const grid = array2d(size, size);\n const xgrid = grid.map((row, i) => {\n const xrow = row.map((e, j) => {\n // Use of colorizer this way means we force recompute of all tiles\n const color = props.colorizer ? props.colorizer(i, j) : undefined;\n return props.onMouseEnter(e, i, j)) : undefined}\n onMouseLeave={props.onMouseLeave ?\n ((e) => props.onMouseLeave(e, i, j)) : undefined} />\n });\n return {xrow};\n });\n return {xgrid}
;\n}\n\n// ========================================\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","/** @license React v16.2.0\n * react.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var m=require(\"object-assign\"),n=require(\"fbjs/lib/emptyObject\"),p=require(\"fbjs/lib/emptyFunction\"),q=\"function\"===typeof Symbol&&Symbol[\"for\"],r=q?Symbol[\"for\"](\"react.element\"):60103,t=q?Symbol[\"for\"](\"react.call\"):60104,u=q?Symbol[\"for\"](\"react.return\"):60105,v=q?Symbol[\"for\"](\"react.portal\"):60106,w=q?Symbol[\"for\"](\"react.fragment\"):60107,x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){for(var b=arguments.length-1,e=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,c=0;cM.length&&M.push(a)}\nfunction P(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case r:case t:case u:case v:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+Q(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k=g.hasBooleanValue+g.hasNumericValue+g.hasOverloadedBooleanValue?void 0:E(\"50\",f);e.hasOwnProperty(f)&&(g.attributeName=e[f]);d.hasOwnProperty(f)&&(g.attributeNamespace=d[f]);a.hasOwnProperty(f)&&(g.mutationMethod=a[f]);ua[f]=g}}},ua={};\nfunction va(a,b){if(oa.hasOwnProperty(a)||2this.eventPool.length&&this.eventPool.push(a)}function Jb(a){a.eventPool=[];a.getPooled=Kb;a.release=Lb}function Mb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Mb,{data:null});function Nb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Nb,{data:null});var Pb=[9,13,27,32],Vb=l.canUseDOM&&\"CompositionEvent\"in window,Wb=null;l.canUseDOM&&\"documentMode\"in document&&(Wb=document.documentMode);var Xb;\nif(Xb=l.canUseDOM&&\"TextEvent\"in window&&!Wb){var Yb=window.opera;Xb=!(\"object\"===typeof Yb&&\"function\"===typeof Yb.version&&12>=parseInt(Yb.version(),10))}\nvar Zb=Xb,$b=l.canUseDOM&&(!Vb||Wb&&8=Wb),ac=String.fromCharCode(32),bc={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"topCompositionEnd\",\"topKeyPress\",\"topTextInput\",\"topPaste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")}},cc=!1;\nfunction dc(a,b){switch(a){case \"topKeyUp\":return-1!==Pb.indexOf(b.keyCode);case \"topKeyDown\":return 229!==b.keyCode;case \"topKeyPress\":case \"topMouseDown\":case \"topBlur\":return!0;default:return!1}}function ec(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var fc=!1;function gc(a,b){switch(a){case \"topCompositionEnd\":return ec(b);case \"topKeyPress\":if(32!==b.which)return null;cc=!0;return ac;case \"topTextInput\":return a=b.data,a===ac&&cc?null:a;default:return null}}\nfunction hc(a,b){if(fc)return\"topCompositionEnd\"===a||!Vb&&dc(a,b)?(a=Fb(),S._root=null,S._startText=null,S._fallbackText=null,fc=!1,a):null;switch(a){case \"topPaste\":return null;case \"topKeyPress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1qd.length&&qd.push(a)}}}\nvar xd=Object.freeze({get _enabled(){return td},get _handleTopLevel(){return sd},setHandleTopLevel:function(a){sd=a},setEnabled:ud,isEnabled:function(){return td},trapBubbledEvent:U,trapCapturedEvent:wd,dispatchEvent:vd});function yd(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;c[\"ms\"+a]=\"MS\"+b;c[\"O\"+a]=\"o\"+b.toLowerCase();return c}\nvar zd={animationend:yd(\"Animation\",\"AnimationEnd\"),animationiteration:yd(\"Animation\",\"AnimationIteration\"),animationstart:yd(\"Animation\",\"AnimationStart\"),transitionend:yd(\"Transition\",\"TransitionEnd\")},Ad={},Bd={};l.canUseDOM&&(Bd=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete zd.animationend.animation,delete zd.animationiteration.animation,delete zd.animationstart.animation),\"TransitionEvent\"in window||delete zd.transitionend.transition);\nfunction Cd(a){if(Ad[a])return Ad[a];if(!zd[a])return a;var b=zd[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Bd)return Ad[a]=b[c];return\"\"}\nvar Dd={topAbort:\"abort\",topAnimationEnd:Cd(\"animationend\")||\"animationend\",topAnimationIteration:Cd(\"animationiteration\")||\"animationiteration\",topAnimationStart:Cd(\"animationstart\")||\"animationstart\",topBlur:\"blur\",topCancel:\"cancel\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topChange:\"change\",topClick:\"click\",topClose:\"close\",topCompositionEnd:\"compositionend\",topCompositionStart:\"compositionstart\",topCompositionUpdate:\"compositionupdate\",topContextMenu:\"contextmenu\",topCopy:\"copy\",\ntopCut:\"cut\",topDoubleClick:\"dblclick\",topDrag:\"drag\",topDragEnd:\"dragend\",topDragEnter:\"dragenter\",topDragExit:\"dragexit\",topDragLeave:\"dragleave\",topDragOver:\"dragover\",topDragStart:\"dragstart\",topDrop:\"drop\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topFocus:\"focus\",topInput:\"input\",topKeyDown:\"keydown\",topKeyPress:\"keypress\",topKeyUp:\"keyup\",topLoadedData:\"loadeddata\",topLoad:\"load\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",\ntopMouseDown:\"mousedown\",topMouseMove:\"mousemove\",topMouseOut:\"mouseout\",topMouseOver:\"mouseover\",topMouseUp:\"mouseup\",topPaste:\"paste\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topScroll:\"scroll\",topSeeked:\"seeked\",topSeeking:\"seeking\",topSelectionChange:\"selectionchange\",topStalled:\"stalled\",topSuspend:\"suspend\",topTextInput:\"textInput\",topTimeUpdate:\"timeupdate\",topToggle:\"toggle\",topTouchCancel:\"touchcancel\",topTouchEnd:\"touchend\",topTouchMove:\"touchmove\",\ntopTouchStart:\"touchstart\",topTransitionEnd:Cd(\"transitionend\")||\"transitionend\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\",topWheel:\"wheel\"},Ed={},Fd=0,Gd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);function Hd(a){Object.prototype.hasOwnProperty.call(a,Gd)||(a[Gd]=Fd++,Ed[a[Gd]]={});return Ed[a[Gd]]}function Id(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Jd(a,b){var c=Id(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Id(c)}}function Kd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&\"text\"===a.type||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Ld=l.canUseDOM&&\"documentMode\"in document&&11>=document.documentMode,Md={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange\".split(\" \")}},Nd=null,Od=null,Pd=null,Qd=!1;\nfunction Rd(a,b){if(Qd||null==Nd||Nd!==da())return null;var c=Nd;\"selectionStart\"in c&&Kd(c)?c={start:c.selectionStart,end:c.selectionEnd}:window.getSelection?(c=window.getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}):c=void 0;return Pd&&ea(Pd,c)?null:(Pd=c,a=T.getPooled(Md.select,Od,a,b),a.type=\"select\",a.target=Nd,Ab(a),a)}\nvar Sd={eventTypes:Md,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Hd(e);f=Sa.onSelect;for(var g=0;ghe||(a.current=ge[he],ge[he]=null,he--)}function W(a,b){he++;ge[he]=a.current;a.current=b}new Set;var ie={current:D},X={current:!1},je=D;function ke(a){return le(a)?je:ie.current}\nfunction me(a,b){var c=a.type.contextTypes;if(!c)return D;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function le(a){return 2===a.tag&&null!=a.type.childContextTypes}function ne(a){le(a)&&(V(X,a),V(ie,a))}\nfunction oe(a,b,c){null!=ie.cursor?E(\"168\"):void 0;W(ie,b,a);W(X,c,a)}function pe(a,b){var c=a.stateNode,d=a.type.childContextTypes;if(\"function\"!==typeof c.getChildContext)return b;c=c.getChildContext();for(var e in c)e in d?void 0:E(\"108\",jd(a)||\"Unknown\",e);return B({},b,c)}function qe(a){if(!le(a))return!1;var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||D;je=ie.current;W(ie,b,a);W(X,X.current,a);return!0}\nfunction re(a,b){var c=a.stateNode;c?void 0:E(\"169\");if(b){var d=pe(a,je);c.__reactInternalMemoizedMergedChildContext=d;V(X,a);V(ie,a);W(ie,d,a)}else V(X,a);W(X,b,a)}\nfunction Y(a,b,c){this.tag=a;this.key=b;this.stateNode=this.type=null;this.sibling=this.child=this[\"return\"]=null;this.index=0;this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null;this.internalContextTag=c;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.expirationTime=0;this.alternate=null}\nfunction se(a,b,c){var d=a.alternate;null===d?(d=new Y(a.tag,a.key,a.internalContextTag),d.type=a.type,d.stateNode=a.stateNode,d.alternate=a,a.alternate=d):(d.effectTag=0,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null);d.expirationTime=c;d.pendingProps=b;d.child=a.child;d.memoizedProps=a.memoizedProps;d.memoizedState=a.memoizedState;d.updateQueue=a.updateQueue;d.sibling=a.sibling;d.index=a.index;d.ref=a.ref;return d}\nfunction te(a,b,c){var d=void 0,e=a.type,f=a.key;\"function\"===typeof e?(d=e.prototype&&e.prototype.isReactComponent?new Y(2,f,b):new Y(0,f,b),d.type=e,d.pendingProps=a.props):\"string\"===typeof e?(d=new Y(5,f,b),d.type=e,d.pendingProps=a.props):\"object\"===typeof e&&null!==e&&\"number\"===typeof e.tag?(d=e,d.pendingProps=a.props):E(\"130\",null==e?e:typeof e,\"\");d.expirationTime=c;return d}function ue(a,b,c,d){b=new Y(10,d,b);b.pendingProps=a;b.expirationTime=c;return b}\nfunction ve(a,b,c){b=new Y(6,null,b);b.pendingProps=a;b.expirationTime=c;return b}function we(a,b,c){b=new Y(7,a.key,b);b.type=a.handler;b.pendingProps=a;b.expirationTime=c;return b}function xe(a,b,c){a=new Y(9,null,b);a.expirationTime=c;return a}function ye(a,b,c){b=new Y(4,a.key,b);b.pendingProps=a.children||[];b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}var ze=null,Ae=null;\nfunction Be(a){return function(b){try{return a(b)}catch(c){}}}function Ce(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);ze=Be(function(a){return b.onCommitFiberRoot(c,a)});Ae=Be(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function De(a){\"function\"===typeof ze&&ze(a)}function Ee(a){\"function\"===typeof Ae&&Ae(a)}\nfunction Fe(a){return{baseState:a,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function Ge(a,b){null===a.last?a.first=a.last=b:(a.last.next=b,a.last=b);if(0===a.expirationTime||a.expirationTime>b.expirationTime)a.expirationTime=b.expirationTime}\nfunction He(a,b){var c=a.alternate,d=a.updateQueue;null===d&&(d=a.updateQueue=Fe(null));null!==c?(a=c.updateQueue,null===a&&(a=c.updateQueue=Fe(null))):a=null;a=a!==d?a:null;null===a?Ge(d,b):null===d.last||null===a.last?(Ge(d,b),Ge(a,b)):(Ge(d,b),a.last=b)}function Ie(a,b,c,d){a=a.partialState;return\"function\"===typeof a?a.call(b,c,d):a}\nfunction Je(a,b,c,d,e,f){null!==a&&a.updateQueue===c&&(c=b.updateQueue={baseState:c.baseState,expirationTime:c.expirationTime,first:c.first,last:c.last,isInitialized:c.isInitialized,callbackList:null,hasForceUpdate:!1});c.expirationTime=0;c.isInitialized?a=c.baseState:(a=c.baseState=b.memoizedState,c.isInitialized=!0);for(var g=!0,h=c.first,k=!1;null!==h;){var q=h.expirationTime;if(q>f){var v=c.expirationTime;if(0===v||v>q)c.expirationTime=q;k||(k=!0,c.baseState=a)}else{k||(c.first=h.next,null===\nc.first&&(c.last=null));if(h.isReplace)a=Ie(h,d,a,e),g=!0;else if(q=Ie(h,d,a,e))a=g?B({},a,q):B(a,q),g=!1;h.isForced&&(c.hasForceUpdate=!0);null!==h.callback&&(q=c.callbackList,null===q&&(q=c.callbackList=[]),q.push(h))}h=h.next}null!==c.callbackList?b.effectTag|=32:null!==c.first||c.hasForceUpdate||(b.updateQueue=null);k||(c.baseState=a);return a}\nfunction Ke(a,b){var c=a.callbackList;if(null!==c)for(a.callbackList=null,a=0;aw?(k=n,n=null):k=n.sibling;var x=G(e,n,m[w],A);if(null===x){null===n&&(n=k);break}a&&n&&null===x.alternate&&b(e,n);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x;n=k}if(w===m.length)return c(e,n),h;if(null===n){for(;ww?(k=n,n=null):k=n.sibling;var J=G(e,n,x.value,A);if(null===J){n||(n=k);break}a&&n&&null===J.alternate&&b(e,n);g=f(J,\ng,w);null===r?h=J:r.sibling=J;r=J;n=k}if(x.done)return c(e,n),h;if(null===n){for(;!x.done;w++,x=m.next())x=z(e,x.value,A),null!==x&&(g=f(x,g,w),null===r?h=x:r.sibling=x,r=x);return h}for(n=d(e,n);!x.done;w++,x=m.next())if(x=I(n,e,w,x.value,A),null!==x){if(a&&null!==x.alternate)n[\"delete\"](null===x.key?w:x.key);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x}a&&n.forEach(function(a){return b(e,a)});return h}return function(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===Ve&&null===f.key&&(f=f.props.children);\nvar m=\"object\"===typeof f&&null!==f;if(m)switch(f.$$typeof){case Re:a:{var r=f.key;for(m=d;null!==m;){if(m.key===r)if(10===m.tag?f.type===Ve:m.type===f.type){c(a,m.sibling);d=e(m,f.type===Ve?f.props.children:f.props,h);d.ref=Ze(m,f);d[\"return\"]=a;a=d;break a}else{c(a,m);break}else b(a,m);m=m.sibling}f.type===Ve?(d=ue(f.props.children,a.internalContextTag,h,f.key),d[\"return\"]=a,a=d):(h=te(f,a.internalContextTag,h),h.ref=Ze(d,f),h[\"return\"]=a,a=h)}return g(a);case Se:a:{for(m=f.key;null!==d;){if(d.key===\nm)if(7===d.tag){c(a,d.sibling);d=e(d,f,h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=we(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a);case Te:a:{if(null!==d)if(9===d.tag){c(a,d.sibling);d=e(d,null,h);d.type=f.value;d[\"return\"]=a;a=d;break a}else c(a,d);d=xe(f,a.internalContextTag,h);d.type=f.value;d[\"return\"]=a;a=d}return g(a);case Ue:a:{for(m=f.key;null!==d;){if(d.key===m)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===\nf.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ye(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h)):(c(a,d),d=ve(f,a.internalContextTag,h)),d[\"return\"]=a,a=d,g(a);if(Ye(f))return L(a,d,f,h);if(Xe(f))return N(a,d,f,h);m&&$e(a,f);if(\"undefined\"===typeof f)switch(a.tag){case 2:case 1:h=a.type,E(\"152\",h.displayName||\nh.name||\"Component\")}return c(a,d)}}var bf=af(!0),cf=af(!1);\nfunction df(a,b,c,d,e){function f(a,b,c){var d=b.expirationTime;b.child=null===a?cf(b,null,c,d):bf(b,a.child,c,d)}function g(a,b){var c=b.ref;null===c||a&&a.ref===c||(b.effectTag|=128)}function h(a,b,c,d){g(a,b);if(!c)return d&&re(b,!1),q(a,b);c=b.stateNode;id.current=b;var e=c.render();b.effectTag|=1;f(a,b,e);b.memoizedState=c.state;b.memoizedProps=c.props;d&&re(b,!0);return b.child}function k(a){var b=a.stateNode;b.pendingContext?oe(a,b.pendingContext,b.pendingContext!==b.context):b.context&&oe(a,\nb.context,!1);I(a,b.containerInfo)}function q(a,b){null!==a&&b.child!==a.child?E(\"153\"):void 0;if(null!==b.child){a=b.child;var c=se(a,a.pendingProps,a.expirationTime);b.child=c;for(c[\"return\"]=b;null!==a.sibling;)a=a.sibling,c=c.sibling=se(a,a.pendingProps,a.expirationTime),c[\"return\"]=b;c.sibling=null}return b.child}function v(a,b){switch(b.tag){case 3:k(b);break;case 2:qe(b);break;case 4:I(b,b.stateNode.containerInfo)}return null}var y=a.shouldSetTextContent,u=a.useSyncScheduling,z=a.shouldDeprioritizeSubtree,\nG=b.pushHostContext,I=b.pushHostContainer,L=c.enterHydrationState,N=c.resetHydrationState,J=c.tryToClaimNextHydratableInstance;a=Le(d,e,function(a,b){a.memoizedProps=b},function(a,b){a.memoizedState=b});var w=a.adoptClassInstance,m=a.constructClassInstance,A=a.mountClassInstance,Ob=a.updateClassInstance;return{beginWork:function(a,b,c){if(0===b.expirationTime||b.expirationTime>c)return v(a,b);switch(b.tag){case 0:null!==a?E(\"155\"):void 0;var d=b.type,e=b.pendingProps,r=ke(b);r=me(b,r);d=d(e,r);b.effectTag|=\n1;\"object\"===typeof d&&null!==d&&\"function\"===typeof d.render?(b.tag=2,e=qe(b),w(b,d),A(b,c),b=h(a,b,!0,e)):(b.tag=1,f(a,b,d),b.memoizedProps=e,b=b.child);return b;case 1:a:{e=b.type;c=b.pendingProps;d=b.memoizedProps;if(X.current)null===c&&(c=d);else if(null===c||d===c){b=q(a,b);break a}d=ke(b);d=me(b,d);e=e(c,d);b.effectTag|=1;f(a,b,e);b.memoizedProps=c;b=b.child}return b;case 2:return e=qe(b),d=void 0,null===a?b.stateNode?E(\"153\"):(m(b,b.pendingProps),A(b,c),d=!0):d=Ob(a,b,c),h(a,b,d,e);case 3:return k(b),\ne=b.updateQueue,null!==e?(d=b.memoizedState,e=Je(a,b,e,null,null,c),d===e?(N(),b=q(a,b)):(d=e.element,r=b.stateNode,(null===a||null===a.child)&&r.hydrate&&L(b)?(b.effectTag|=2,b.child=cf(b,null,d,c)):(N(),f(a,b,d)),b.memoizedState=e,b=b.child)):(N(),b=q(a,b)),b;case 5:G(b);null===a&&J(b);e=b.type;var n=b.memoizedProps;d=b.pendingProps;null===d&&(d=n,null===d?E(\"154\"):void 0);r=null!==a?a.memoizedProps:null;X.current||null!==d&&n!==d?(n=d.children,y(e,d)?n=null:r&&y(e,r)&&(b.effectTag|=16),g(a,b),\n2147483647!==c&&!u&&z(e,d)?(b.expirationTime=2147483647,b=null):(f(a,b,n),b.memoizedProps=d,b=b.child)):b=q(a,b);return b;case 6:return null===a&&J(b),a=b.pendingProps,null===a&&(a=b.memoizedProps),b.memoizedProps=a,null;case 8:b.tag=7;case 7:e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null===e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e)e=b.memoizedProps;d=e.children;b.stateNode=null===a?cf(b,b.stateNode,d,c):bf(b,b.stateNode,d,c);b.memoizedProps=e;return b.stateNode;\ncase 9:return null;case 4:a:{I(b,b.stateNode.containerInfo);e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null==e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e){b=q(a,b);break a}null===a?b.child=bf(b,null,e,c):f(a,b,e);b.memoizedProps=e;b=b.child}return b;case 10:a:{c=b.pendingProps;if(X.current)null===c&&(c=b.memoizedProps);else if(null===c||b.memoizedProps===c){b=q(a,b);break a}f(a,b,c);b.memoizedProps=c;b=b.child}return b;default:E(\"156\")}},beginFailedWork:function(a,b,\nc){switch(b.tag){case 2:qe(b);break;case 3:k(b);break;default:E(\"157\")}b.effectTag|=64;null===a?b.child=null:b.child!==a.child&&(b.child=a.child);if(0===b.expirationTime||b.expirationTime>c)return v(a,b);b.firstEffect=null;b.lastEffect=null;b.child=null===a?cf(b,null,null,c):bf(b,a.child,null,c);2===b.tag&&(a=b.stateNode,b.memoizedProps=a.props,b.memoizedState=a.state);return b.child}}}\nfunction ef(a,b,c){function d(a){a.effectTag|=4}var e=a.createInstance,f=a.createTextInstance,g=a.appendInitialChild,h=a.finalizeInitialChildren,k=a.prepareUpdate,q=a.persistence,v=b.getRootHostContainer,y=b.popHostContext,u=b.getHostContext,z=b.popHostContainer,G=c.prepareToHydrateHostInstance,I=c.prepareToHydrateHostTextInstance,L=c.popHydrationState,N=void 0,J=void 0,w=void 0;a.mutation?(N=function(){},J=function(a,b,c){(b.updateQueue=c)&&d(b)},w=function(a,b,c,e){c!==e&&d(b)}):q?E(\"235\"):E(\"236\");\nreturn{completeWork:function(a,b,c){var m=b.pendingProps;if(null===m)m=b.memoizedProps;else if(2147483647!==b.expirationTime||2147483647===c)b.pendingProps=null;switch(b.tag){case 1:return null;case 2:return ne(b),null;case 3:z(b);V(X,b);V(ie,b);m=b.stateNode;m.pendingContext&&(m.context=m.pendingContext,m.pendingContext=null);if(null===a||null===a.child)L(b),b.effectTag&=-3;N(b);return null;case 5:y(b);c=v();var A=b.type;if(null!==a&&null!=b.stateNode){var p=a.memoizedProps,q=b.stateNode,x=u();q=\nk(q,A,p,m,c,x);J(a,b,q,A,p,m,c);a.ref!==b.ref&&(b.effectTag|=128)}else{if(!m)return null===b.stateNode?E(\"166\"):void 0,null;a=u();if(L(b))G(b,c,a)&&d(b);else{a=e(A,m,c,a,b);a:for(p=b.child;null!==p;){if(5===p.tag||6===p.tag)g(a,p.stateNode);else if(4!==p.tag&&null!==p.child){p.child[\"return\"]=p;p=p.child;continue}if(p===b)break;for(;null===p.sibling;){if(null===p[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}h(a,A,m,c)&&d(b);b.stateNode=a}null!==b.ref&&\n(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)w(a,b,a.memoizedProps,m);else{if(\"string\"!==typeof m)return null===b.stateNode?E(\"166\"):void 0,null;a=v();c=u();L(b)?I(b)&&d(b):b.stateNode=f(m,a,c,b)}return null;case 7:(m=b.memoizedProps)?void 0:E(\"165\");b.tag=8;A=[];a:for((p=b.stateNode)&&(p[\"return\"]=b);null!==p;){if(5===p.tag||6===p.tag||4===p.tag)E(\"247\");else if(9===p.tag)A.push(p.type);else if(null!==p.child){p.child[\"return\"]=p;p=p.child;continue}for(;null===p.sibling;){if(null===\np[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}p=m.handler;m=p(m.props,A);b.child=bf(b,null!==a?a.child:null,m,c);return b.child;case 8:return b.tag=7,null;case 9:return null;case 10:return null;case 4:return z(b),N(b),null;case 0:E(\"167\");default:E(\"156\")}}}}\nfunction ff(a,b){function c(a){var c=a.ref;if(null!==c)try{c(null)}catch(A){b(a,A)}}function d(a){\"function\"===typeof Ee&&Ee(a);switch(a.tag){case 2:c(a);var d=a.stateNode;if(\"function\"===typeof d.componentWillUnmount)try{d.props=a.memoizedProps,d.state=a.memoizedState,d.componentWillUnmount()}catch(A){b(a,A)}break;case 5:c(a);break;case 7:e(a.stateNode);break;case 4:k&&g(a)}}function e(a){for(var b=a;;)if(d(b),null===b.child||k&&4===b.tag){if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||\nb[\"return\"]===a)return;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}else b.child[\"return\"]=b,b=b.child}function f(a){return 5===a.tag||3===a.tag||4===a.tag}function g(a){for(var b=a,c=!1,f=void 0,g=void 0;;){if(!c){c=b[\"return\"];a:for(;;){null===c?E(\"160\"):void 0;switch(c.tag){case 5:f=c.stateNode;g=!1;break a;case 3:f=c.stateNode.containerInfo;g=!0;break a;case 4:f=c.stateNode.containerInfo;g=!0;break a}c=c[\"return\"]}c=!0}if(5===b.tag||6===b.tag)e(b),g?J(f,b.stateNode):N(f,b.stateNode);\nelse if(4===b.tag?f=b.stateNode.containerInfo:d(b),null!==b.child){b.child[\"return\"]=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||b[\"return\"]===a)return;b=b[\"return\"];4===b.tag&&(c=!1)}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}var h=a.getPublicInstance,k=a.mutation;a=a.persistence;k||(a?E(\"235\"):E(\"236\"));var q=k.commitMount,v=k.commitUpdate,y=k.resetTextContent,u=k.commitTextUpdate,z=k.appendChild,G=k.appendChildToContainer,I=k.insertBefore,L=k.insertInContainerBefore,\nN=k.removeChild,J=k.removeChildFromContainer;return{commitResetTextContent:function(a){y(a.stateNode)},commitPlacement:function(a){a:{for(var b=a[\"return\"];null!==b;){if(f(b)){var c=b;break a}b=b[\"return\"]}E(\"160\");c=void 0}var d=b=void 0;switch(c.tag){case 5:b=c.stateNode;d=!1;break;case 3:b=c.stateNode.containerInfo;d=!0;break;case 4:b=c.stateNode.containerInfo;d=!0;break;default:E(\"161\")}c.effectTag&16&&(y(b),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c[\"return\"]||f(c[\"return\"])){c=\nnull;break a}c=c[\"return\"]}c.sibling[\"return\"]=c[\"return\"];for(c=c.sibling;5!==c.tag&&6!==c.tag;){if(c.effectTag&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child[\"return\"]=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)c?d?L(b,e.stateNode,c):I(b,e.stateNode,c):d?G(b,e.stateNode):z(b,e.stateNode);else if(4!==e.tag&&null!==e.child){e.child[\"return\"]=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e[\"return\"]||e[\"return\"]===\na)return;e=e[\"return\"]}e.sibling[\"return\"]=e[\"return\"];e=e.sibling}},commitDeletion:function(a){g(a);a[\"return\"]=null;a.child=null;a.alternate&&(a.alternate.child=null,a.alternate[\"return\"]=null)},commitWork:function(a,b){switch(b.tag){case 2:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null;null!==f&&v(c,f,e,a,d,b)}break;case 6:null===b.stateNode?E(\"162\"):void 0;c=b.memoizedProps;u(b.stateNode,null!==a?a.memoizedProps:\nc,c);break;case 3:break;default:E(\"163\")}},commitLifeCycles:function(a,b){switch(b.tag){case 2:var c=b.stateNode;if(b.effectTag&4)if(null===a)c.props=b.memoizedProps,c.state=b.memoizedState,c.componentDidMount();else{var d=a.memoizedProps;a=a.memoizedState;c.props=b.memoizedProps;c.state=b.memoizedState;c.componentDidUpdate(d,a)}b=b.updateQueue;null!==b&&Ke(b,c);break;case 3:c=b.updateQueue;null!==c&&Ke(c,null!==b.child?b.child.stateNode:null);break;case 5:c=b.stateNode;null===a&&b.effectTag&4&&q(c,\nb.type,b.memoizedProps,b);break;case 6:break;case 4:break;default:E(\"163\")}},commitAttachRef:function(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:b(h(c));break;default:b(c)}}},commitDetachRef:function(a){a=a.ref;null!==a&&a(null)}}}var gf={};\nfunction hf(a){function b(a){a===gf?E(\"174\"):void 0;return a}var c=a.getChildHostContext,d=a.getRootHostContext,e={current:gf},f={current:gf},g={current:gf};return{getHostContext:function(){return b(e.current)},getRootHostContainer:function(){return b(g.current)},popHostContainer:function(a){V(e,a);V(f,a);V(g,a)},popHostContext:function(a){f.current===a&&(V(e,a),V(f,a))},pushHostContainer:function(a,b){W(g,b,a);b=d(b);W(f,a,a);W(e,b,a)},pushHostContext:function(a){var d=b(g.current),h=b(e.current);\nd=c(h,a.type,d);h!==d&&(W(f,a,a),W(e,d,a))},resetHostContainer:function(){e.current=gf;g.current=gf}}}\nfunction jf(a){function b(a,b){var c=new Y(5,null,0);c.type=\"DELETED\";c.stateNode=b;c[\"return\"]=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function c(a,b){switch(a.tag){case 5:return b=f(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=g(b,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;default:return!1}}function d(a){for(a=a[\"return\"];null!==a&&5!==a.tag&&3!==a.tag;)a=a[\"return\"];y=a}var e=a.shouldSetTextContent;\na=a.hydration;if(!a)return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){E(\"175\")},prepareToHydrateHostTextInstance:function(){E(\"176\")},popHydrationState:function(){return!1}};var f=a.canHydrateInstance,g=a.canHydrateTextInstance,h=a.getNextHydratableSibling,k=a.getFirstHydratableChild,q=a.hydrateInstance,v=a.hydrateTextInstance,y=null,u=null,z=!1;return{enterHydrationState:function(a){u=\nk(a.stateNode.containerInfo);y=a;return z=!0},resetHydrationState:function(){u=y=null;z=!1},tryToClaimNextHydratableInstance:function(a){if(z){var d=u;if(d){if(!c(a,d)){d=h(d);if(!d||!c(a,d)){a.effectTag|=2;z=!1;y=a;return}b(y,u)}y=a;u=k(d)}else a.effectTag|=2,z=!1,y=a}},prepareToHydrateHostInstance:function(a,b,c){b=q(a.stateNode,a.type,a.memoizedProps,b,c,a);a.updateQueue=b;return null!==b?!0:!1},prepareToHydrateHostTextInstance:function(a){return v(a.stateNode,a.memoizedProps,a)},popHydrationState:function(a){if(a!==\ny)return!1;if(!z)return d(a),z=!0,!1;var c=a.type;if(5!==a.tag||\"head\"!==c&&\"body\"!==c&&!e(c,a.memoizedProps))for(c=u;c;)b(a,c),c=h(c);d(a);u=y?h(a.stateNode):null;return!0}}}\nfunction kf(a){function b(a){Qb=ja=!0;var b=a.stateNode;b.current===a?E(\"177\"):void 0;b.isReadyForCommit=!1;id.current=null;if(1g.expirationTime)&&(f=g.expirationTime),g=g.sibling;e.expirationTime=f}if(null!==b)return b;null!==c&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1a))if(H<=Uc)for(;null!==F;)F=k(F)?e(F):d(F);else for(;null!==F&&!A();)F=k(F)?e(F):d(F)}else if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=d(F);else for(;null!==F&&!A();)F=d(F)}function g(a,b){ja?E(\"243\"):void 0;ja=!0;a.isReadyForCommit=\n!1;if(a!==ra||b!==H||null===F){for(;-1b)a.expirationTime=b;null!==a.alternate&&(0===a.alternate.expirationTime||a.alternate.expirationTime>b)&&(a.alternate.expirationTime=b);if(null===a[\"return\"])if(3===a.tag){var c=a.stateNode;!ja&&c===ra&&bIg&&E(\"185\");if(null===d.nextScheduledRoot)d.remainingExpirationTime=e,null===O?(sa=O=d,d.nextScheduledRoot=d):(O=O.nextScheduledRoot=d,O.nextScheduledRoot=sa);else{var f=d.remainingExpirationTime;if(0===f||eTb)return;Jg(Xc)}var b=Wc()-Pe;Tb=a;Xc=Kg(J,{timeout:10*(a-2)-b})}function N(){var a=0,b=null;if(null!==O)for(var c=O,d=sa;null!==d;){var e=d.remainingExpirationTime;if(0===e){null===c||null===O?E(\"244\"):void 0;if(d===d.nextScheduledRoot){sa=O=d.nextScheduledRoot=null;break}else if(d===sa)sa=e=d.nextScheduledRoot,\nO.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===O){O=c;O.nextScheduledRoot=sa;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{if(0===a||eLg?!1:Yc=!0}function Ob(a){null===ma?E(\"246\"):\nvoid 0;ma.remainingExpirationTime=0;Ub||(Ub=!0,Zc=a)}var r=hf(a),n=jf(a),p=r.popHostContainer,qg=r.popHostContext,x=r.resetHostContainer,Me=df(a,r,n,u,y),rg=Me.beginWork,Gg=Me.beginFailedWork,Fg=ef(a,r,n).completeWork;r=ff(a,h);var zg=r.commitResetTextContent,Ne=r.commitPlacement,Bg=r.commitDeletion,Oe=r.commitWork,Dg=r.commitLifeCycles,Eg=r.commitAttachRef,Ag=r.commitDetachRef,Wc=a.now,Kg=a.scheduleDeferredCallback,Jg=a.cancelDeferredCallback,Hg=a.useSyncScheduling,yg=a.prepareForCommit,Cg=a.resetAfterCommit,\nPe=Wc(),Uc=2,ka=0,ja=!1,F=null,ra=null,H=0,t=null,R=null,qa=null,ha=null,ca=null,eb=!1,Qb=!1,Sc=!1,sa=null,O=null,Tb=0,Xc=-1,Fa=!1,ma=null,na=0,Yc=!1,Ub=!1,Zc=null,fb=null,la=!1,Sb=!1,Ig=1E3,Rb=0,Lg=1;return{computeAsyncExpiration:v,computeExpirationForFiber:y,scheduleWork:u,batchedUpdates:function(a,b){var c=la;la=!0;try{return a(b)}finally{(la=c)||Fa||w(1,null)}},unbatchedUpdates:function(a){if(la&&!Sb){Sb=!0;try{return a()}finally{Sb=!1}}return a()},flushSync:function(a){var b=la;la=!0;try{a:{var c=\nka;ka=1;try{var d=a();break a}finally{ka=c}d=void 0}return d}finally{la=b,Fa?E(\"187\"):void 0,w(1,null)}},deferredUpdates:function(a){var b=ka;ka=v();try{return a()}finally{ka=b}}}}\nfunction lf(a){function b(a){a=od(a);return null===a?null:a.stateNode}var c=a.getPublicInstance;a=kf(a);var d=a.computeAsyncExpiration,e=a.computeExpirationForFiber,f=a.scheduleWork;return{createContainer:function(a,b){var c=new Y(3,null,0);a={current:c,containerInfo:a,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:b,nextScheduledRoot:null};return c.stateNode=a},updateContainer:function(a,b,c,q){var g=b.current;if(c){c=\nc._reactInternalFiber;var h;b:{2===kd(c)&&2===c.tag?void 0:E(\"170\");for(h=c;3!==h.tag;){if(le(h)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}(h=h[\"return\"])?void 0:E(\"171\")}h=h.stateNode.context}c=le(c)?pe(c,h):h}else c=D;null===b.context?b.context=c:b.pendingContext=c;b=q;b=void 0===b?null:b;q=null!=a&&null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent?d():e(g);He(g,{expirationTime:q,partialState:{element:a},callback:b,isReplace:!1,isForced:!1,\nnextCallback:null,next:null});f(g,q)},batchedUpdates:a.batchedUpdates,unbatchedUpdates:a.unbatchedUpdates,deferredUpdates:a.deferredUpdates,flushSync:a.flushSync,getPublicRootInstance:function(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return c(a.child.stateNode);default:return a.child.stateNode}},findHostInstance:b,findHostInstanceWithNoPortals:function(a){a=pd(a);return null===a?null:a.stateNode},injectIntoDevTools:function(a){var c=a.findFiberByHostInstance;return Ce(B({},\na,{findHostInstanceByFiber:function(a){return b(a)},findFiberByHostInstance:function(a){return c?c(a):null}}))}}}var mf=Object.freeze({default:lf}),nf=mf&&lf||mf,of=nf[\"default\"]?nf[\"default\"]:nf;function pf(a,b,c){var d=3=yf-a)if(-1!==wf&&wf<=\na)Bf.didTimeout=!0;else{xf||(xf=!0,requestAnimationFrame(Df));return}else Bf.didTimeout=!1;wf=-1;a=uf;uf=null;null!==a&&a(Bf)}},!1);var Df=function(a){xf=!1;var b=a-yf+Af;bb&&(b=8),Af=bc||d.hasOverloadedBooleanValue&&!1===c?Jf(a,b):d.mustUseProperty?a[d.propertyName]=c:(b=d.attributeName,(e=d.attributeNamespace)?a.setAttributeNS(e,b,\"\"+c):d.hasBooleanValue||d.hasOverloadedBooleanValue&&!0===c?a.setAttribute(b,\"\"):a.setAttribute(b,\"\"+c))}else Kf(a,b,va(b,c)?c:null)}\nfunction Kf(a,b,c){Hf(b)&&(null==c?a.removeAttribute(b):a.setAttribute(b,\"\"+c))}function Jf(a,b){var c=wa(b);c?(b=c.mutationMethod)?b(a,void 0):c.mustUseProperty?a[c.propertyName]=c.hasBooleanValue?!1:\"\":a.removeAttribute(c.attributeName):a.removeAttribute(b)}\nfunction Lf(a,b){var c=b.value,d=b.checked;return B({type:void 0,step:void 0,min:void 0,max:void 0},b,{defaultChecked:void 0,defaultValue:void 0,value:null!=c?c:a._wrapperState.initialValue,checked:null!=d?d:a._wrapperState.initialChecked})}function Mf(a,b){var c=b.defaultValue;a._wrapperState={initialChecked:null!=b.checked?b.checked:b.defaultChecked,initialValue:null!=b.value?b.value:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}\nfunction Nf(a,b){b=b.checked;null!=b&&If(a,\"checked\",b)}function Of(a,b){Nf(a,b);var c=b.value;if(null!=c)if(0===c&&\"\"===a.value)a.value=\"0\";else if(\"number\"===b.type){if(b=parseFloat(a.value)||0,c!=b||c==b&&a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else null==b.value&&null!=b.defaultValue&&a.defaultValue!==\"\"+b.defaultValue&&(a.defaultValue=\"\"+b.defaultValue),null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Pf(a,b){switch(b.type){case \"submit\":case \"reset\":break;case \"color\":case \"date\":case \"datetime\":case \"datetime-local\":case \"month\":case \"time\":case \"week\":a.value=\"\";a.value=a.defaultValue;break;default:a.value=a.value}b=a.name;\"\"!==b&&(a.name=\"\");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!a.defaultChecked;\"\"!==b&&(a.name=b)}function Qf(a){var b=\"\";aa.Children.forEach(a,function(a){null==a||\"string\"!==typeof a&&\"number\"!==typeof a||(b+=a)});return b}\nfunction Rf(a,b){a=B({children:void 0},b);if(b=Qf(b.children))a.children=b;return a}function Sf(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=b.length?void 0:E(\"93\"),b=b[0]),c=\"\"+b),null==c&&(c=\"\"));a._wrapperState={initialValue:\"\"+c}}\nfunction Wf(a,b){var c=b.value;null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&(a.defaultValue=c));null!=b.defaultValue&&(a.defaultValue=b.defaultValue)}function Xf(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var Yf={html:\"http://www.w3.org/1999/xhtml/",mathml:\"http://www.w3.org/1998/Math/MathML/",svg:\"http://www.w3.org/2000/svg/"};\nfunction Zf(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg/";case \"math\":return\"http://www.w3.org/1998/Math/MathML/";default:return\"http://www.w3.org/1999/xhtml/"}}function $f(a,b){return null==a||\"http://www.w3.org/1999/xhtml/"===a?Zf(b):\"http://www.w3.org/2000/svg/"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml/":a}\nvar ag=void 0,bg=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Yf.svg||\"innerHTML\"in a)a.innerHTML=b;else{ag=ag||document.createElement(\"div\");ag.innerHTML=\"\\x3csvg\\x3e\"+b+\"\\x3c/svg\\x3e\";for(b=ag.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction cg(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar dg={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,\nstopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},eg=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(dg).forEach(function(a){eg.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);dg[b]=dg[a]})});\nfunction fg(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\");var e=c;var f=b[c];e=null==f||\"boolean\"===typeof f||\"\"===f?\"\":d||\"number\"!==typeof f||0===f||dg.hasOwnProperty(e)&&dg[e]?(\"\"+f).trim():f+\"px\";\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var gg=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction hg(a,b,c){b&&(gg[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?E(\"137\",a,c()):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?E(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:E(\"61\")),null!=b.style&&\"object\"!==typeof b.style?E(\"62\",c()):void 0)}\nfunction ig(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var jg=Yf.html,kg=C.thatReturns(\"\");\nfunction lg(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Hd(a);b=Sa[b];for(var d=0;d\nd&&(e=d,d=a,a=e);e=Jd(c,a);var f=Jd(c,d);if(e&&f&&(1!==b.rangeCount||b.anchorNode!==e.node||b.anchorOffset!==e.offset||b.focusNode!==f.node||b.focusOffset!==f.offset)){var g=document.createRange();g.setStart(e.node,e.offset);b.removeAllRanges();a>d?(b.addRange(g),b.extend(f.node,f.offset)):(g.setEnd(f.node,f.offset),b.addRange(g))}}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});ia(c);for(c=0;c b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction bisector(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n\nvar ascendingBisect = bisector(ascending);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\n\nfunction descending(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n\nfunction number(x) {\n return x === null ? NaN : +x;\n}\n\nfunction variance(array, f) {\n var n = array.length,\n m = 0,\n a,\n d,\n s = 0,\n i = -1,\n j = 0;\n\n if (f == null) {\n while (++i < n) {\n if (!isNaN(a = number(array[i]))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(a = number(f(array[i], i, array)))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n }\n\n if (j > 1) return s / (j - 1);\n}\n\nfunction deviation(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n\nfunction extent(array, f) {\n var i = -1,\n n = array.length,\n a,\n b,\n c;\n\n if (f == null) {\n while (++i < n) if ((b = array[i]) != null && b >= b) { a = c = b; break; }\n while (++i < n) if ((b = array[i]) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n\n else {\n while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = c = b; break; }\n while (++i < n) if ((b = f(array[i], i, array)) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n\n return [a, c];\n}\n\nvar array = Array.prototype;\n\nvar slice = array.slice;\nvar map = array.map;\n\nfunction constant(x) {\n return function() {\n return x;\n };\n}\n\nfunction identity(x) {\n return x;\n}\n\nfunction range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n\nvar e10 = Math.sqrt(50);\nvar e5 = Math.sqrt(10);\nvar e2 = Math.sqrt(2);\nfunction ticks(start, stop, count) {\n var step = tickStep(start, stop, count);\n return range(\n Math.ceil(start / step) * step,\n Math.floor(stop / step) * step + step / 2, // inclusive\n step\n );\n}\n\nfunction tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\nfunction sturges(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n\nfunction histogram() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) tz = ticks(x0, x1, tz);\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] >= x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisectRight(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n\nfunction threshold(array, p, f) {\n if (f == null) f = number;\n if (!(n = array.length)) return;\n if ((p = +p) <= 0 || n < 2) return +f(array[0], 0, array);\n if (p >= 1) return +f(array[n - 1], n - 1, array);\n var n,\n h = (n - 1) * p,\n i = Math.floor(h),\n a = +f(array[i], i, array),\n b = +f(array[i + 1], i + 1, array);\n return a + (b - a) * (h - i);\n}\n\nfunction freedmanDiaconis(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (threshold(values, 0.75) - threshold(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n\nfunction scott(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n}\n\nfunction max(array, f) {\n var i = -1,\n n = array.length,\n a,\n b;\n\n if (f == null) {\n while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }\n while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n }\n\n else {\n while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = b; break; }\n while (++i < n) if ((b = f(array[i], i, array)) != null && b > a) a = b;\n }\n\n return a;\n}\n\nfunction mean(array, f) {\n var s = 0,\n n = array.length,\n a,\n i = -1,\n j = n;\n\n if (f == null) {\n while (++i < n) if (!isNaN(a = number(array[i]))) s += a; else --j;\n }\n\n else {\n while (++i < n) if (!isNaN(a = number(f(array[i], i, array)))) s += a; else --j;\n }\n\n if (j) return s / j;\n}\n\nfunction median(array, f) {\n var numbers = [],\n n = array.length,\n a,\n i = -1;\n\n if (f == null) {\n while (++i < n) if (!isNaN(a = number(array[i]))) numbers.push(a);\n }\n\n else {\n while (++i < n) if (!isNaN(a = number(f(array[i], i, array)))) numbers.push(a);\n }\n\n return threshold(numbers.sort(ascending), 0.5);\n}\n\nfunction merge(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n\nfunction min(array, f) {\n var i = -1,\n n = array.length,\n a,\n b;\n\n if (f == null) {\n while (++i < n) if ((b = array[i]) != null && b >= b) { a = b; break; }\n while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n }\n\n else {\n while (++i < n) if ((b = f(array[i], i, array)) != null && b >= b) { a = b; break; }\n while (++i < n) if ((b = f(array[i], i, array)) != null && a > b) a = b;\n }\n\n return a;\n}\n\nfunction pairs(array) {\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = [p, p = array[++i]];\n return pairs;\n}\n\nfunction permute(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n}\n\nfunction scan(array, compare) {\n if (!(n = array.length)) return;\n var i = 0,\n n,\n j = 0,\n xi,\n xj = array[j];\n\n if (!compare) compare = ascending;\n\n while (++i < n) if (compare(xi = array[i], xj) < 0 || compare(xj, xj) !== 0) xj = xi, j = i;\n\n if (compare(xj, xj) === 0) return j;\n}\n\nfunction shuffle(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n\nfunction sum(array, f) {\n var s = 0,\n n = array.length,\n a,\n i = -1;\n\n if (f == null) {\n while (++i < n) if (a = +array[i]) s += a; // Note: zero and null are equivalent.\n }\n\n else {\n while (++i < n) if (a = +f(array[i], i, array)) s += a;\n }\n\n return s;\n}\n\nfunction transpose(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n\nfunction zip() {\n return transpose(arguments);\n}\n\nvar prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map$1.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map$1(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nfunction nest() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) return rollup != null\n ? rollup(array) : (sortValues != null\n ? array.sort(sortValues)\n : array);\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map$1(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map$1();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n\nfunction Set() {}\n\nvar proto = map$1.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nfunction keys(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n}\n\nfunction values(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n}\n\nfunction entries(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n}\n\nfunction uniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return Math.random() * max + min;\n };\n}\n\nfunction normal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = Math.random() * 2 - 1;\n y = Math.random() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n}\n\nfunction logNormal() {\n var randomNormal = normal.apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n}\n\nfunction irwinHall(n) {\n return function() {\n for (var sum = 0, i = 0; i < n; ++i) sum += Math.random();\n return sum;\n };\n}\n\nfunction bates(n) {\n var randomIrwinHall = irwinHall(n);\n return function() {\n return randomIrwinHall() / n;\n };\n}\n\nfunction exponential(lambda) {\n return function() {\n return -Math.log(1 - Math.random()) / lambda;\n };\n}\n\nfunction linear(t) {\n return +t;\n}\n\nfunction quadIn(t) {\n return t * t;\n}\n\nfunction quadOut(t) {\n return t * (2 - t);\n}\n\nfunction quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n\nfunction cubicIn(t) {\n return t * t * t;\n}\n\nfunction cubicOut(t) {\n return --t * t * t + 1;\n}\n\nfunction easeCubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\nvar exponent = 3;\n\nvar polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nvar polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nvar polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n\nvar pi = Math.PI;\nvar halfPi = pi / 2;\nfunction sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nfunction sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nfunction sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n\nfunction expIn(t) {\n return Math.pow(2, 10 * t - 10);\n}\n\nfunction expOut(t) {\n return 1 - Math.pow(2, -10 * t);\n}\n\nfunction expInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n}\n\nfunction circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nfunction circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nfunction circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n\nvar b1 = 4 / 11;\nvar b2 = 6 / 11;\nvar b3 = 8 / 11;\nvar b4 = 3 / 4;\nvar b5 = 9 / 11;\nvar b6 = 10 / 11;\nvar b7 = 15 / 16;\nvar b8 = 21 / 22;\nvar b9 = 63 / 64;\nvar b0 = 1 / b1 / b1;\nfunction bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nfunction bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nfunction bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n\nvar overshoot = 1.70158;\n\nvar backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nvar backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nvar backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n\nvar tau = 2 * Math.PI;\nvar amplitude = 1;\nvar period = 0.3;\nvar elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nvar elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nvar elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n\nfunction area(polygon) {\n var i = -1,\n n = polygon.length,\n a,\n b = polygon[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n\n return area / 2;\n}\n\nfunction centroid(polygon) {\n var i = -1,\n n = polygon.length,\n x = 0,\n y = 0,\n a,\n b = polygon[n - 1],\n c,\n k = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n k += c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n\n return k *= 3, [x / k, y / k];\n}\n\n// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of\n// the 3D cross product in a quadrant I Cartesian coordinate system (+x is\n// right, +y is up). Returns a positive value if ABC is counter-clockwise,\n// negative if clockwise, and zero if the points are collinear.\nfunction cross(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n}\n\nfunction lexicographicOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n}\n\n// Computes the upper convex hull per the monotone chain algorithm.\n// Assumes points.length >= 3, is sorted by x, unique in y.\n// Returns an array of indices into points in left-to-right order.\nfunction computeUpperHullIndexes(points) {\n var n = points.length,\n indexes = [0, 1],\n size = 2;\n\n for (var i = 2; i < n; ++i) {\n while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;\n indexes[size++] = i;\n }\n\n return indexes.slice(0, size); // remove popped points\n}\n\nfunction hull(points) {\n if ((n = points.length) < 3) return null;\n\n var i,\n n,\n sortedPoints = new Array(n),\n flippedPoints = new Array(n);\n\n for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];\n sortedPoints.sort(lexicographicOrder);\n for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];\n\n var upperIndexes = computeUpperHullIndexes(sortedPoints),\n lowerIndexes = computeUpperHullIndexes(flippedPoints);\n\n // Construct the hull polygon, removing possible duplicate endpoints.\n var skipLeft = lowerIndexes[0] === upperIndexes[0],\n skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],\n hull = [];\n\n // Add upper hull in right-to-l order.\n // Then add lower hull in left-to-right order.\n for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);\n for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);\n\n return hull;\n}\n\nfunction contains(polygon, point) {\n var n = polygon.length,\n p = polygon[n - 1],\n x = point[0], y = point[1],\n x0 = p[0], y0 = p[1],\n x1, y1,\n inside = false;\n\n for (var i = 0; i < n; ++i) {\n p = polygon[i], x1 = p[0], y1 = p[1];\n if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;\n x0 = x1, y0 = y1;\n }\n\n return inside;\n}\n\nfunction length$1(polygon) {\n var i = -1,\n n = polygon.length,\n b = polygon[n - 1],\n xa,\n ya,\n xb = b[0],\n yb = b[1],\n perimeter = 0;\n\n while (++i < n) {\n xa = xb;\n ya = yb;\n b = polygon[i];\n xb = b[0];\n yb = b[1];\n xa -= xb;\n ya -= yb;\n perimeter += Math.sqrt(xa * xa + ya * ya);\n }\n\n return perimeter;\n}\n\nvar pi$1 = Math.PI;\nvar tau$1 = 2 * pi$1;\nvar epsilon = 1e-6;\nvar tauEpsilon = tau$1 - epsilon;\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = [];\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._.push(\"M\", this._x0 = this._x1 = +x, \",\", this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._.push(\"Z\");\n }\n },\n lineTo: function(x, y) {\n this._.push(\"L\", this._x1 = +x, \",\", this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._.push(\"Q\", +x1, \",\", +y1, \",\", this._x1 = +x, \",\", this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._.push(\"C\", +x1, \",\", +y1, \",\", +x2, \",\", +y2, \",\", this._x1 = +x, \",\", this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._.push(\n \"M\", this._x1 = x1, \",\", this._y1 = y1\n );\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._.push(\n \"L\", this._x1 = x1, \",\", this._y1 = y1\n );\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi$1 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._.push(\n \"L\", x1 + t01 * x01, \",\", y1 + t01 * y01\n );\n }\n\n this._.push(\n \"A\", r, \",\", r, \",0,0,\", +(y01 * x20 > x01 * y20), \",\", this._x1 = x1 + t21 * x21, \",\", this._y1 = y1 + t21 * y21\n );\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._.push(\n \"M\", x0, \",\", y0\n );\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._.push(\n \"L\", x0, \",\", y0\n );\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._.push(\n \"A\", r, \",\", r, \",0,1,\", cw, \",\", x - dx, \",\", y - dy,\n \"A\", r, \",\", r, \",0,1,\", cw, \",\", this._x1 = x0, \",\", this._y1 = y0\n );\n }\n\n // Otherwise, draw an arc!\n else {\n if (da < 0) da = da % tau$1 + tau$1;\n this._.push(\n \"A\", r, \",\", r, \",0,\", +(da >= pi$1), \",\", cw, \",\", this._x1 = x + r * Math.cos(a1), \",\", this._y1 = y + r * Math.sin(a1)\n );\n }\n },\n rect: function(x, y, w, h) {\n this._.push(\"M\", this._x0 = this._x1 = +x, \",\", this._y0 = this._y1 = +y, \"h\", +w, \"v\", +h, \"h\", -w, \"Z\");\n },\n toString: function() {\n return this._.join(\"\");\n }\n};\n\nfunction tree_add(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nfunction addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, inherit the existing extent.\n if (x1 < x0) x0 = this._x0, x1 = this._x1;\n if (y1 < y0) y0 = this._y0, y1 = this._y1;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n\nfunction tree_cover(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else if (x0 > x || x > x1 || y0 > y || y > y1) {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n switch (i = (y < (y0 + y1) / 2) << 1 | (x < (x0 + x1) / 2)) {\n case 0: {\n do parent = new Array(4), parent[i] = node, node = parent;\n while (z *= 2, x1 = x0 + z, y1 = y0 + z, x > x1 || y > y1);\n break;\n }\n case 1: {\n do parent = new Array(4), parent[i] = node, node = parent;\n while (z *= 2, x0 = x1 - z, y1 = y0 + z, x0 > x || y > y1);\n break;\n }\n case 2: {\n do parent = new Array(4), parent[i] = node, node = parent;\n while (z *= 2, x1 = x0 + z, y0 = y1 - z, x > x1 || y0 > y);\n break;\n }\n case 3: {\n do parent = new Array(4), parent[i] = node, node = parent;\n while (z *= 2, x0 = x1 - z, y0 = y1 - z, x0 > x || y0 > y);\n break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n // If the quadtree covers the point already, just return.\n else return this;\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n\nfunction tree_data() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n\nfunction tree_extent(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n\nfunction Quad(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n\nfunction tree_find(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n\nfunction tree_remove(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nfunction removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n\nfunction tree_root() {\n return this._root;\n}\n\nfunction tree_size() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n\nfunction tree_visit(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n\nfunction tree_visitAfter(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n\nfunction defaultX(d) {\n return d[0];\n}\n\nfunction tree_x(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n\nfunction defaultY(d) {\n return d[1];\n}\n\nfunction tree_y(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n\nfunction quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n\nvar slice$1 = [].slice;\n\nvar noabort = {};\n\nfunction Queue(size) {\n if (!(size >= 1)) throw new Error;\n this._size = size;\n this._call =\n this._error = null;\n this._tasks = [];\n this._data = [];\n this._waiting =\n this._active =\n this._ended =\n this._start = 0; // inside a synchronous task callback?\n}\n\nQueue.prototype = queue.prototype = {\n constructor: Queue,\n defer: function(callback) {\n if (typeof callback !== \"function\" || this._call) throw new Error;\n if (this._error != null) return this;\n var t = slice$1.call(arguments, 1);\n t.push(callback);\n ++this._waiting, this._tasks.push(t);\n poke(this);\n return this;\n },\n abort: function() {\n if (this._error == null) abort(this, new Error(\"abort\"));\n return this;\n },\n await: function(callback) {\n if (typeof callback !== \"function\" || this._call) throw new Error;\n this._call = function(error, results) { callback.apply(null, [error].concat(results)); };\n maybeNotify(this);\n return this;\n },\n awaitAll: function(callback) {\n if (typeof callback !== \"function\" || this._call) throw new Error;\n this._call = callback;\n maybeNotify(this);\n return this;\n }\n};\n\nfunction poke(q) {\n if (!q._start) try { start(q); } // let the current task complete\n catch (e) { if (q._tasks[q._ended + q._active - 1]) abort(q, e); } // task errored synchronously\n}\n\nfunction start(q) {\n while (q._start = q._waiting && q._active < q._size) {\n var i = q._ended + q._active,\n t = q._tasks[i],\n j = t.length - 1,\n c = t[j];\n t[j] = end(q, i);\n --q._waiting, ++q._active;\n t = c.apply(null, t);\n if (!q._tasks[i]) continue; // task finished synchronously\n q._tasks[i] = t || noabort;\n }\n}\n\nfunction end(q, i) {\n return function(e, r) {\n if (!q._tasks[i]) return; // ignore multiple callbacks\n --q._active, ++q._ended;\n q._tasks[i] = null;\n if (q._error != null) return; // ignore secondary errors\n if (e != null) {\n abort(q, e);\n } else {\n q._data[i] = r;\n if (q._waiting) poke(q);\n else maybeNotify(q);\n }\n };\n}\n\nfunction abort(q, e) {\n var i = q._tasks.length, t;\n q._error = e; // ignore active callbacks\n q._data = undefined; // allow gc\n q._waiting = NaN; // prevent starting\n\n while (--i >= 0) {\n if (t = q._tasks[i]) {\n q._tasks[i] = null;\n if (t.abort) try { t.abort(); }\n catch (e) { /* ignore */ }\n }\n }\n\n q._active = NaN; // allow notification\n maybeNotify(q);\n}\n\nfunction maybeNotify(q) {\n if (!q._active && q._call) q._call(q._error, q._data);\n}\n\nfunction queue(concurrency) {\n return new Queue(arguments.length ? +concurrency : Infinity);\n}\n\nfunction constant$1(x) {\n return function constant() {\n return x;\n };\n}\n\nvar epsilon$1 = 1e-12;\nvar pi$2 = Math.PI;\nvar halfPi$1 = pi$2 / 2;\nvar tau$2 = 2 * pi$2;\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction asin(x) {\n return x >= 1 ? halfPi$1 : x <= -1 ? -halfPi$1 : Math.asin(x);\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / (y32 * x10 - x32 * y10);\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nfunction arc() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant$1(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi$1,\n a1 = endAngle.apply(this, arguments) - halfPi$1,\n da = Math.abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon$1)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau$2 - epsilon$1) {\n context.moveTo(r1 * Math.cos(a0), r1 * Math.sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon$1) {\n context.moveTo(r0 * Math.cos(a1), r0 * Math.sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon$1) && (padRadius ? +padRadius.apply(this, arguments) : Math.sqrt(r0 * r0 + r1 * r1)),\n rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon$1) {\n var p0 = asin(rp / r0 * Math.sin(ap)),\n p1 = asin(rp / r1 * Math.sin(ap));\n if ((da0 -= p0 * 2) > epsilon$1) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon$1) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * Math.cos(a01),\n y01 = r1 * Math.sin(a01),\n x10 = r0 * Math.cos(a10),\n y10 = r0 * Math.sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon$1) {\n var x11 = r1 * Math.cos(a11),\n y11 = r1 * Math.sin(a11),\n x00 = r0 * Math.cos(a00),\n y00 = r0 * Math.sin(a00);\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi$2) {\n var oc = da0 > epsilon$1 ? intersect(x01, y01, x00, y00, x11, y11, x10, y10) : [x10, y10],\n ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2),\n lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = Math.min(rc, (r0 - lc) / (kc - 1));\n rc1 = Math.min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon$1)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon$1) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, Math.atan2(t0.y01, t0.x01), Math.atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, Math.atan2(t0.y01, t0.x01), Math.atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, Math.atan2(t0.cy + t0.y11, t0.cx + t0.x11), Math.atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, Math.atan2(t1.y11, t1.x11), Math.atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon$1) || !(da0 > epsilon$1)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon$1) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, Math.atan2(t0.y01, t0.x01), Math.atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, Math.atan2(t0.y01, t0.x01), Math.atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, Math.atan2(t0.cy + t0.y11, t0.cx + t0.x11), Math.atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, Math.atan2(t1.y11, t1.x11), Math.atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi$2 / 2;\n return [Math.cos(a) * r, Math.sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant$1(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant$1(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant$1(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant$1(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant$1(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant$1(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant$1(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n\nfunction Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nfunction curveLinear(context) {\n return new Linear(context);\n}\n\nfunction x(p) {\n return p[0];\n}\n\nfunction y(p) {\n return p[1];\n}\n\nfunction line() {\n var x$$ = x,\n y$$ = y,\n defined = constant$1(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x$$(d, i, data), +y$$(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x$$ = typeof _ === \"function\" ? _ : constant$1(+_), line) : x$$;\n };\n\n line.y = function(_) {\n return arguments.length ? (y$$ = typeof _ === \"function\" ? _ : constant$1(+_), line) : y$$;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant$1(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n\nfunction area$1() {\n var x0 = x,\n x1 = null,\n y0 = constant$1(0),\n y1 = y,\n defined = constant$1(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant$1(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant$1(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant$1(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant$1(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant$1(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant$1(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant$1(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n\nfunction descending$1(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n\nfunction identity$1(d) {\n return d;\n}\n\nfunction pie() {\n var value = identity$1,\n sortValues = descending$1,\n sort = null,\n startAngle = constant$1(0),\n endAngle = constant$1(tau$2),\n padAngle = constant$1(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau$2, Math.max(-tau$2, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant$1(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant$1(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant$1(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant$1(+_), pie) : padAngle;\n };\n\n return pie;\n}\n\nvar curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nfunction curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n\nfunction radialLine(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nfunction radialLine$1() {\n return radialLine(line().curve(curveRadialLinear));\n}\n\nfunction radialArea() {\n var a = area$1().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return radialLine(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return radialLine(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return radialLine(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return radialLine(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n\nvar circle = {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi$2);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau$2);\n }\n};\n\nvar cross$1 = {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n\nvar tan30 = Math.sqrt(1 / 3);\nvar tan30_2 = tan30 * 2;\nvar diamond = {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n\nvar ka = 0.89081309152928522810;\nvar kr = Math.sin(pi$2 / 10) / Math.sin(7 * pi$2 / 10);\nvar kx = Math.sin(tau$2 / 10) * kr;\nvar ky = -Math.cos(tau$2 / 10) * kr;\nvar star = {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau$2 * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n\nvar square = {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n\nvar sqrt3 = Math.sqrt(3);\n\nvar triangle = {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n\nvar c = -0.5;\nvar s = Math.sqrt(3) / 2;\nvar k = 1 / Math.sqrt(12);\nvar a = (k / 2 + 1) * 3;\nvar wye = {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n\nvar symbols = [\n circle,\n cross$1,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nfunction symbol() {\n var type = constant$1(circle),\n size = constant$1(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant$1(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant$1(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n\nfunction noop() {}\n\nfunction point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nfunction Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nfunction basis(context) {\n return new Basis(context);\n}\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nfunction basisClosed(context) {\n return new BasisClosed(context);\n}\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nfunction basisOpen(context) {\n return new BasisOpen(context);\n}\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nvar bundle = (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n\nfunction point$1(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nfunction Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point$1(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point$1(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar cardinal = (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\nfunction CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point$1(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar cardinalClosed = (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\nfunction CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point$1(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar cardinalOpen = (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n\nfunction point$2(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon$1) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon$1) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this, this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point$2(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar catmullRom = (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point$2(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar catmullRomClosed = (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point$2(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nvar catmullRomOpen = (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nfunction linearClosed(context) {\n return new LinearClosed(context);\n}\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point$3(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point$3(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point$3(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point$3(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nfunction monotoneX(context) {\n return new MonotoneX(context);\n}\n\nfunction monotoneY(context) {\n return new MonotoneY(context);\n}\n\nfunction Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nfunction natural(context) {\n return new Natural(context);\n}\n\nfunction Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nfunction step(context) {\n return new Step(context, 0.5);\n}\n\nfunction stepBefore(context) {\n return new Step(context, 0);\n}\n\nfunction stepAfter(context) {\n return new Step(context, 1);\n}\n\nvar slice$2 = Array.prototype.slice;\n\nfunction none(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (var j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n\nfunction none$1(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stack() {\n var keys = constant$1([]),\n order = none$1,\n offset = none,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant$1(slice$2.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant$1(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? none$1 : typeof _ === \"function\" ? _ : constant$1(slice$2.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? none : _, stack) : offset;\n };\n\n return stack;\n}\n\nfunction expand(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n\nfunction silhouette(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n\nfunction wiggle(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n\nfunction ascending$1(series) {\n var sums = series.map(sum$1);\n return none$1(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nfunction sum$1(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n\nfunction descending$2(series) {\n return ascending$1(series).reverse();\n}\n\nfunction insideOut(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum$1),\n order = none$1(series).sort(function(a, b) { return sums[b] - sums[a]; }),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n\nfunction reverse(series) {\n return none$1(series).reverse();\n}\n\nfunction define(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reHex3 = /^#([0-9a-f]{3})$/;\nvar reHex6 = /^#([0-9a-f]{6})$/;\nvar reRgbInteger = /^rgb\\(\\s*([-+]?\\d+)\\s*,\\s*([-+]?\\d+)\\s*,\\s*([-+]?\\d+)\\s*\\)$/;\nvar reRgbPercent = /^rgb\\(\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\nvar reRgbaInteger = /^rgba\\(\\s*([-+]?\\d+)\\s*,\\s*([-+]?\\d+)\\s*,\\s*([-+]?\\d+)\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)\\s*\\)$/;\nvar reRgbaPercent = /^rgba\\(\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)\\s*\\)$/;\nvar reHslPercent = /^hsl\\(\\s*([-+]?\\d+(?:\\.\\d+)?)\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*\\)$/;\nvar reHslaPercent = /^hsla\\(\\s*([-+]?\\d+(?:\\.\\d+)?)\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)%\\s*,\\s*([-+]?\\d+(?:\\.\\d+)?)\\s*\\)$/;\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n displayable: function() {\n return this.rgb().displayable();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nfunction color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format])\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction colorRgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, colorRgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (0 <= this.r && this.r <= 255)\n && (0 <= this.g && this.g <= 255)\n && (0 <= this.b && this.b <= 255)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nfunction colorHsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, colorHsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\nvar deg2rad = Math.PI / 180;\nvar rad2deg = 180 / Math.PI;\n\nvar Kn = 18;\nvar Xn = 0.950470;\nvar Yn = 1;\nvar Zn = 1.088830;\nvar t0 = 4 / 29;\nvar t1 = 6 / 29;\nvar t2 = 3 * t1 * t1;\nvar t3 = t1 * t1 * t1;\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) {\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var b = rgb2xyz(o.r),\n a = rgb2xyz(o.g),\n l = rgb2xyz(o.b),\n x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),\n y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),\n z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nfunction lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nfunction Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n y = Yn * lab2xyz(y);\n x = Xn * lab2xyz(x);\n z = Zn * lab2xyz(z);\n return new Rgb(\n xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB\n xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),\n xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction xyz2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2xyz(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nfunction colorHcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hcl, colorHcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return labConvert(this).rgb();\n }\n}));\n\nvar A = -0.14861;\nvar B = +1.78277;\nvar C = -0.29227;\nvar D = -0.90649;\nvar E = +1.97294;\nvar ED = E * D;\nvar EB = E * B;\nvar BC_DA = B * C - D * A;\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nfunction cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\nfunction basis$1(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nfunction basis$2(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis$1((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\nfunction basisClosed$1(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis$1((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\nfunction constant$2(x) {\n return function() {\n return x;\n };\n}\n\nfunction linear$1(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential$1(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nfunction hue(a, b) {\n var d = b - a;\n return d ? linear$1(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$2(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential$1(a, b, y) : constant$2(isNaN(a) ? b : a);\n };\n}\n\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear$1(a, d) : constant$2(isNaN(a) ? b : a);\n}\n\nvar interpolateRgb = (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nvar rgbBasis = rgbSpline(basis$2);\nvar rgbBasisClosed = rgbSpline(basisClosed$1);\n\nfunction array$1(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(nb),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = interpolate(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n\nfunction date(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n}\n\nfunction interpolateNumber(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n}\n\nfunction object(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = interpolate(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\nvar reB = new RegExp(reA.source, \"g\");\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nfunction interpolateString(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: interpolateNumber(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n\nfunction interpolate(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant$2(b)\n : (t === \"number\" ? interpolateNumber\n : t === \"string\" ? ((c = color(b)) ? (b = c, interpolateRgb) : interpolateString)\n : b instanceof color ? interpolateRgb\n : b instanceof Date ? date\n : Array.isArray(b) ? array$1\n : isNaN(b) ? object\n : interpolateNumber)(a, b);\n}\n\nfunction interpolateRound(a, b) {\n return a = +a, b -= a, function(t) {\n return Math.round(a + b * t);\n };\n}\n\nvar degrees = 180 / Math.PI;\n\nvar identity$2 = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nfunction decompose(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n\nvar cssNode;\nvar cssRoot;\nvar cssView;\nvar svgNode;\nfunction parseCss(value) {\n if (value === \"none\") return identity$2;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nfunction parseSvg(value) {\n if (value == null) return identity$2;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg/", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity$2;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: interpolateNumber(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: interpolateNumber(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nvar interpolateTransform$1 = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nvar interpolateTransform$2 = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\nvar rho = Math.SQRT2;\nvar rho2 = 2;\nvar rho4 = 4;\nvar epsilon2 = 1e-12;\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nfunction interpolateZoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nvar hsl$1 = hsl(hue);\nvar hslLong = hsl(nogamma);\n\nfunction lab$1(start, end) {\n var l = nogamma((start = lab(start)).l, (end = lab(end)).l),\n a = nogamma(start.a, end.a),\n b = nogamma(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = nogamma(start.c, end.c),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nvar hcl$1 = hcl(hue);\nvar hclLong = hcl(nogamma);\n\nfunction cubehelix$1(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix$$(start, end) {\n var h = hue((start = cubehelix(start)).h, (end = cubehelix(end)).h),\n s = nogamma(start.s, end.s),\n l = nogamma(start.l, end.l),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix$$.gamma = cubehelixGamma;\n\n return cubehelix$$;\n })(1);\n}\n\nvar cubehelix$2 = cubehelix$1(hue);\nvar interpolateCubehelixLong = cubehelix$1(nogamma);\n\nfunction quantize(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n\nvar noop$1 = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set$1(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set$1(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set$1(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop$1, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"]\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction dsv(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n]\"),\n delimiterCode = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns;\n return rows;\n }\n\n function parseRows(text, f) {\n var EOL = {}, // sentinel value for end-of-line\n EOF = {}, // sentinel value for end-of-file\n rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // the current line number\n t, // the current token\n eol; // is the current token followed by EOL?\n\n function token() {\n if (I >= N) return EOF; // special case: end of file\n if (eol) return eol = false, EOL; // special case: end of line\n\n // special case: quotes\n var j = I, c;\n if (text.charCodeAt(j) === 34) {\n var i = j;\n while (i++ < N) {\n if (text.charCodeAt(i) === 34) {\n if (text.charCodeAt(i + 1) !== 34) break;\n ++i;\n }\n }\n I = i + 2;\n c = text.charCodeAt(i + 1);\n if (c === 13) {\n eol = true;\n if (text.charCodeAt(i + 2) === 10) ++I;\n } else if (c === 10) {\n eol = true;\n }\n return text.slice(j + 1, i).replace(/\"\"/g, \"\\\"\");\n }\n\n // common case: find next delimiter or newline\n while (I < N) {\n var k = 1;\n c = text.charCodeAt(I++);\n if (c === 10) eol = true; // \\n\n else if (c === 13) { eol = true; if (text.charCodeAt(I) === 10) ++I, ++k; } // \\r|\\r\\n\n else if (c !== delimiterCode) continue;\n return text.slice(j, I - k);\n }\n\n // special case: last token before EOF\n return text.slice(j);\n }\n\n while ((t = token()) !== EOF) {\n var a = [];\n while (t !== EOL && t !== EOF) {\n a.push(t);\n t = token();\n }\n if (f && (a = f(a, n++)) == null) continue;\n rows.push(a);\n }\n\n return rows;\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n })).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(text) {\n return text == null ? \"\"\n : reFormat.test(text += \"\") ? \"\\\"\" + text.replace(/\\\"/g, \"\\\"\\\"\") + \"\\\"\"\n : text;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatRows: formatRows\n };\n}\n\nvar csv = dsv(\",\");\n\nvar csvParse = csv.parse;\nvar csvParseRows = csv.parseRows;\nvar csvFormat = csv.format;\nvar csvFormatRows = csv.formatRows;\n\nvar tsv = dsv(\"\\t\");\n\nvar tsvParse = tsv.parse;\nvar tsvParseRows = tsv.parseRows;\nvar tsvFormat = tsv.format;\nvar tsvFormatRows = tsv.formatRows;\n\nfunction request(url, callback) {\n var request,\n event = dispatch(\"beforesend\", \"progress\", \"load\", \"error\"),\n mimeType,\n headers = map$1(),\n xhr = new XMLHttpRequest,\n user = null,\n password = null,\n response,\n responseType,\n timeout = 0;\n\n // If IE does not support CORS, use XDomainRequest.\n if (typeof XDomainRequest !== \"undefined\"\n && !(\"withCredentials\" in xhr)\n && /^(http(s)?:)?\\/\\//.test(url)) xhr = new XDomainRequest;\n\n \"onload\" in xhr\n ? xhr.onload = xhr.onerror = xhr.ontimeout = respond\n : xhr.onreadystatechange = function(o) { xhr.readyState > 3 && respond(o); };\n\n function respond(o) {\n var status = xhr.status, result;\n if (!status && hasResponse(xhr)\n || status >= 200 && status < 300\n || status === 304) {\n if (response) {\n try {\n result = response.call(request, xhr);\n } catch (e) {\n event.call(\"error\", request, e);\n return;\n }\n } else {\n result = xhr;\n }\n event.call(\"load\", request, result);\n } else {\n event.call(\"error\", request, o);\n }\n }\n\n xhr.onprogress = function(e) {\n event.call(\"progress\", request, e);\n };\n\n request = {\n header: function(name, value) {\n name = (name + \"\").toLowerCase();\n if (arguments.length < 2) return headers.get(name);\n if (value == null) headers.remove(name);\n else headers.set(name, value + \"\");\n return request;\n },\n\n // If mimeType is non-null and no Accept header is set, a default is used.\n mimeType: function(value) {\n if (!arguments.length) return mimeType;\n mimeType = value == null ? null : value + \"\";\n return request;\n },\n\n // Specifies what type the response value should take;\n // for instance, arraybuffer, blob, document, or text.\n responseType: function(value) {\n if (!arguments.length) return responseType;\n responseType = value;\n return request;\n },\n\n timeout: function(value) {\n if (!arguments.length) return timeout;\n timeout = +value;\n return request;\n },\n\n user: function(value) {\n return arguments.length < 1 ? user : (user = value == null ? null : value + \"\", request);\n },\n\n password: function(value) {\n return arguments.length < 1 ? password : (password = value == null ? null : value + \"\", request);\n },\n\n // Specify how to convert the response content to a specific type;\n // changes the callback value on \"load\" events.\n response: function(value) {\n response = value;\n return request;\n },\n\n // Alias for send(\"GET\", …).\n get: function(data, callback) {\n return request.send(\"GET\", data, callback);\n },\n\n // Alias for send(\"POST\", …).\n post: function(data, callback) {\n return request.send(\"POST\", data, callback);\n },\n\n // If callback is non-null, it will be used for error and load events.\n send: function(method, data, callback) {\n xhr.open(method, url, true, user, password);\n if (mimeType != null && !headers.has(\"accept\")) headers.set(\"accept\", mimeType + \",*/*\");\n if (xhr.setRequestHeader) headers.each(function(value, name) { xhr.setRequestHeader(name, value); });\n if (mimeType != null && xhr.overrideMimeType) xhr.overrideMimeType(mimeType);\n if (responseType != null) xhr.responseType = responseType;\n if (timeout > 0) xhr.timeout = timeout;\n if (callback == null && typeof data === \"function\") callback = data, data = null;\n if (callback != null && callback.length === 1) callback = fixCallback(callback);\n if (callback != null) request.on(\"error\", callback).on(\"load\", function(xhr) { callback(null, xhr); });\n event.call(\"beforesend\", request, xhr);\n xhr.send(data == null ? null : data);\n return request;\n },\n\n abort: function() {\n xhr.abort();\n return request;\n },\n\n on: function() {\n var value = event.on.apply(event, arguments);\n return value === event ? request : value;\n }\n };\n\n if (callback != null) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n return request.get(callback);\n }\n\n return request;\n}\n\nfunction fixCallback(callback) {\n return function(error, xhr) {\n callback(error == null ? xhr : null);\n };\n}\n\nfunction hasResponse(xhr) {\n var type = xhr.responseType;\n return type && type !== \"text\"\n ? xhr.response // null on error\n : xhr.responseText; // \"\" on error\n}\n\nfunction type(defaultMimeType, response) {\n return function(url, callback) {\n var r = request(url).mimeType(defaultMimeType).response(response);\n if (callback != null) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n return r.get(callback);\n }\n return r;\n };\n}\n\nvar html = type(\"text/html\", function(xhr) {\n return document.createRange().createContextualFragment(xhr.responseText);\n});\n\nvar json = type(\"application/json\", function(xhr) {\n return JSON.parse(xhr.responseText);\n});\n\nvar text = type(\"text/plain\", function(xhr) {\n return xhr.responseText;\n});\n\nvar xml = type(\"application/xml\", function(xhr) {\n var xml = xhr.responseXML;\n if (!xml) throw new Error(\"parse error\");\n return xml;\n});\n\nfunction dsv$1(defaultMimeType, parse) {\n return function(url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var r = request(url).mimeType(defaultMimeType);\n r.row = function(_) { return arguments.length ? r.response(responseOf(parse, row = _)) : row; };\n r.row(row);\n return callback ? r.get(callback) : r;\n };\n}\n\nfunction responseOf(parse, row) {\n return function(request) {\n return parse(request.responseText, row);\n };\n}\n\nvar csv$1 = dsv$1(\"text/csv\", csvParse);\n\nvar tsv$1 = dsv$1(\"text/tab-separated-values\", tsvParse);\n\nvar frame = 0;\nvar timeout = 0;\nvar interval = 0;\nvar pokeDelay = 1000;\nvar taskHead;\nvar taskTail;\nvar clockLast = 0;\nvar clockNow = 0;\nvar clockSkew = 0;\nvar clock = typeof performance === \"object\" && performance.now ? performance : Date;\nvar setFrame = typeof requestAnimationFrame === \"function\"\n ? (clock === Date ? function(f) { requestAnimationFrame(function() { f(clock.now()); }); } : requestAnimationFrame)\n : function(f) { setTimeout(f, 17); };\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nfunction Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nfunction timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nfunction timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake(time) {\n clockNow = (clockLast = time || clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke$1() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow;\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, delay);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) interval = setInterval(poke$1, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n\nfunction timeout$1(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n\nfunction interval$1(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n}\n\nvar t0$1 = new Date;\nvar t1$1 = new Date;\nfunction newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = new Date(+date)), date;\n }\n\n interval.floor = interval;\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(new Date(+start)); while (offseti(start, step), floori(start), start < stop)\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n while (--step >= 0) while (offseti(date, 1), !test(date));\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0$1.setTime(+start), t1$1.setTime(+end);\n floori(t0$1), floori(t1$1);\n return Math.floor(count(t0$1, t1$1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n\nvar millisecond = newInterval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return newInterval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nvar milliseconds = millisecond.range;\n\nvar durationSecond = 1e3;\nvar durationMinute = 6e4;\nvar durationHour = 36e5;\nvar durationDay = 864e5;\nvar durationWeek = 6048e5;\n\nvar second = newInterval(function(date) {\n date.setTime(Math.floor(date / durationSecond) * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nvar seconds = second.range;\n\nvar minute = newInterval(function(date) {\n date.setTime(Math.floor(date / durationMinute) * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nvar minutes = minute.range;\n\nvar hour = newInterval(function(date) {\n var offset = date.getTimezoneOffset() * durationMinute % durationHour;\n if (offset < 0) offset += durationHour;\n date.setTime(Math.floor((+date - offset) / durationHour) * durationHour + offset);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nvar hours = hour.range;\n\nvar day = newInterval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nvar days = day.range;\n\nfunction weekday(i) {\n return newInterval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nvar timeWeek = weekday(0);\nvar timeMonday = weekday(1);\nvar tuesday = weekday(2);\nvar wednesday = weekday(3);\nvar thursday = weekday(4);\nvar friday = weekday(5);\nvar saturday = weekday(6);\n\nvar sundays = timeWeek.range;\nvar mondays = timeMonday.range;\nvar tuesdays = tuesday.range;\nvar wednesdays = wednesday.range;\nvar thursdays = thursday.range;\nvar fridays = friday.range;\nvar saturdays = saturday.range;\n\nvar month = newInterval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nvar months = month.range;\n\nvar year = newInterval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nvar years = year.range;\n\nvar utcMinute = newInterval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nvar utcMinutes = utcMinute.range;\n\nvar utcHour = newInterval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nvar utcHours = utcHour.range;\n\nvar utcDay = newInterval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nvar utcDays = utcDay.range;\n\nfunction utcWeekday(i) {\n return newInterval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nvar utcWeek = utcWeekday(0);\nvar utcMonday = utcWeekday(1);\nvar utcTuesday = utcWeekday(2);\nvar utcWednesday = utcWeekday(3);\nvar utcThursday = utcWeekday(4);\nvar utcFriday = utcWeekday(5);\nvar utcSaturday = utcWeekday(6);\n\nvar utcSundays = utcWeek.range;\nvar utcMondays = utcMonday.range;\nvar utcTuesdays = utcTuesday.range;\nvar utcWednesdays = utcWednesday.range;\nvar utcThursdays = utcThursday.range;\nvar utcFridays = utcFriday.range;\nvar utcSaturdays = utcSaturday.range;\n\nvar utcMonth = newInterval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nvar utcMonths = utcMonth.range;\n\nvar utcYear = newInterval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nvar utcYears = utcYear.range;\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nfunction formatDecimal(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n\nfunction exponent$1(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n\nfunction formatGroup(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n\nfunction formatDefault(x, p) {\n x = x.toPrecision(p);\n\n out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (x[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n case \"e\": break out;\n default: if (i0 > 0) i0 = 0; break;\n }\n }\n\n return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;\n}\n\nvar prefixExponent;\n\nfunction formatPrefixAuto(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n\nfunction formatRounded(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n\nvar formatTypes = {\n \"\": formatDefault,\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n\n// [[fill]align][sign][symbol][0][width][,][.precision][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n return new FormatSpecifier(specifier);\n}\n\nfunction FormatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n\n var match,\n fill = match[1] || \" \",\n align = match[2] || \">\",\n sign = match[3] || \"-\",\n symbol = match[4] || \"\",\n zero = !!match[5],\n width = match[6] && +match[6],\n comma = !!match[7],\n precision = match[8] && +match[8].slice(1),\n type = match[9] || \"\";\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // Map invalid types to the default format.\n else if (!formatTypes[type]) type = \"\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n this.fill = fill;\n this.align = align;\n this.sign = sign;\n this.symbol = symbol;\n this.zero = zero;\n this.width = width;\n this.comma = comma;\n this.precision = precision;\n this.type = type;\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width == null ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision == null ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + this.type;\n};\n\nvar prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"\\xB5\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nfunction identity$3(x) {\n return x;\n}\n\nfunction formatLocale(locale) {\n var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity$3,\n currency = locale.currency,\n decimal = locale.decimal;\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n type = specifier.type;\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currency[1] : /[%p]/.test(type) ? \"%\" : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = !type || /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision == null ? (type ? 6 : 12)\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Convert negative to positive, and compute the prefix.\n // Note that -0 is not less than 0, but 1 / -0 is!\n var valueNegative = (value < 0 || 1 / value < 0) && (value *= -1, true);\n\n // Perform the initial formatting.\n value = formatType(value, precision);\n\n // If the original value was negative, it may be rounded to zero during\n // formatting; treat this as (positive) zero.\n if (valueNegative) {\n i = -1, n = value.length;\n valueNegative = false;\n while (++i < n) {\n if (c = value.charCodeAt(i), (48 < c && c < 58)\n || (type === \"x\" && 96 < c && c < 103)\n || (type === \"X\" && 64 < c && c < 71)) {\n valueNegative = true;\n break;\n }\n }\n }\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = valueSuffix + (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": return valuePrefix + value + valueSuffix + padding;\n case \"=\": return valuePrefix + padding + value + valueSuffix;\n case \"^\": return padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n }\n return padding + valuePrefix + value + valueSuffix;\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent$1(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n\nvar locale;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nfunction defaultLocale(definition) {\n locale = formatLocale(definition);\n exports.format = locale.format;\n exports.formatPrefix = locale.formatPrefix;\n return locale;\n}\n\nfunction precisionFixed(step) {\n return Math.max(0, -exponent$1(Math.abs(step)));\n}\n\nfunction precisionPrefix(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent$1(value) / 3))) * 3 - exponent$1(Math.abs(step)));\n}\n\nfunction precisionRound(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent$1(max) - exponent$1(step)) + 1;\n}\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newYear(y) {\n return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};\n}\n\nfunction formatLocale$1(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"S\": formatSeconds,\n \"U\": formatWeekNumberSunday,\n \"w\": formatWeekdayNumber,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"S\": formatUTCSeconds,\n \"U\": formatUTCWeekNumberSunday,\n \"w\": formatUTCWeekdayNumber,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"S\": parseSeconds,\n \"U\": parseWeekNumberSunday,\n \"w\": parseWeekdayNumber,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, newDate) {\n return function(string) {\n var d = newYear(1900),\n i = parseSpecifier(d, specifier, string += \"\", 0);\n if (i != string.length) return null;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"W\" in d ? 1 : 0;\n var day = \"Z\" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", localDate);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier, utcDate);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"};\nvar numberRe = /^\\s*\\d+/;\nvar percentRe = /^%/;\nvar requoteRe = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?:\\:?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + day.count(year(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeWeek.count(year(d), d), p, 2);\n}\n\nfunction formatWeekdayNumber(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(year(d), d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcWeek.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCWeekdayNumber(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nvar locale$1;\ndefaultLocale$1({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nfunction defaultLocale$1(definition) {\n locale$1 = formatLocale$1(definition);\n exports.timeFormat = locale$1.format;\n exports.timeParse = locale$1.parse;\n exports.utcFormat = locale$1.utcFormat;\n exports.utcParse = locale$1.utcParse;\n return locale$1;\n}\n\nvar isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : exports.utcFormat(isoSpecifier);\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : exports.utcParse(isoSpecifier);\n\nvar array$2 = Array.prototype;\n\nvar map$2 = array$2.map;\nvar slice$3 = array$2.slice;\n\nvar implicit = {name: \"implicit\"};\n\nfunction ordinal(range) {\n var index = map$1(),\n domain = [],\n unknown = implicit;\n\n range = range == null ? [] : slice$3.call(range);\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map$1();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice$3.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return scale;\n}\n\nfunction band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range$$ = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range$$[1] < range$$[0],\n start = range$$[reverse - 0],\n stop = range$$[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = range(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range$$ = [+_[0], +_[1]], rescale()) : range$$.slice();\n };\n\n scale.rangeRound = function(_) {\n return range$$ = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band()\n .domain(domain())\n .range(range$$)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return rescale();\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nfunction point$4() {\n return pointish(band().paddingInner(1));\n}\n\nfunction constant$3(x) {\n return function() {\n return x;\n };\n}\n\nfunction number$1(x) {\n return +x;\n}\n\nvar unit = [0, 1];\n\nfunction deinterpolate(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant$3(b);\n}\n\nfunction deinterpolateClamp(deinterpolate) {\n return function(a, b) {\n var d = deinterpolate(a = +a, b = +b);\n return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n return function(a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n };\n}\n\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisectRight(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nfunction copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp());\n}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nfunction continuous(deinterpolate$$, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate$$ = interpolate,\n clamp = false,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate$$) : deinterpolate$$, interpolate$$)))(+x);\n }\n\n scale.invert = function(y) {\n return (input || (input = piecewise(range, domain, deinterpolate, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map$2.call(_, number$1), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice$3.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice$3.call(_), interpolate$$ = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate$$ = _, rescale()) : interpolate$$;\n };\n\n return rescale();\n}\n\nfunction tickFormat(domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = tickStep(start, stop, count == null ? 10 : count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return exports.formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return exports.format(specifier);\n}\n\nfunction linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function(count) {\n var d = domain(),\n i = d.length - 1,\n n = count == null ? 10 : count,\n start = d[0],\n stop = d[i],\n step = tickStep(start, stop, n);\n\n if (step) {\n step = tickStep(Math.floor(start / step) * step, Math.ceil(stop / step) * step, n);\n d[0] = Math.floor(start / step) * step;\n d[i] = Math.ceil(stop / step) * step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nfunction linear$2() {\n var scale = continuous(deinterpolate, interpolateNumber);\n\n scale.copy = function() {\n return copy(scale, linear$2());\n };\n\n return linearish(scale);\n}\n\nfunction identity$4() {\n var domain = [0, 1];\n\n function scale(x) {\n return +x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map$2.call(_, number$1), scale) : domain.slice();\n };\n\n scale.copy = function() {\n return identity$4().domain(domain);\n };\n\n return linearish(scale);\n}\n\nfunction nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n\nfunction deinterpolate$1(a, b) {\n return (b = Math.log(b / a))\n ? function(x) { return Math.log(x / a) / b; }\n : constant$3(b);\n}\n\nfunction reinterpolate(a, b) {\n return a < 0\n ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }\n : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nfunction log() {\n var scale = continuous(deinterpolate$1, reinterpolate).domain([1, 10]),\n domain = scale.domain,\n base = 10,\n logs = logp(10),\n pows = powp(10);\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = exports.format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n scale.copy = function() {\n return copy(scale, log().base(base));\n };\n\n return scale;\n}\n\nfunction raise(x, exponent) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n}\n\nfunction pow() {\n var exponent = 1,\n scale = continuous(deinterpolate, reinterpolate),\n domain = scale.domain;\n\n function deinterpolate(a, b) {\n return (b = raise(b, exponent) - (a = raise(a, exponent)))\n ? function(x) { return (raise(x, exponent) - a) / b; }\n : constant$3(b);\n }\n\n function reinterpolate(a, b) {\n b = raise(b, exponent) - (a = raise(a, exponent));\n return function(t) { return raise(a + b * t, 1 / exponent); };\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, domain(domain())) : exponent;\n };\n\n scale.copy = function() {\n return copy(scale, pow().exponent(exponent));\n };\n\n return linearish(scale);\n}\n\nfunction sqrt() {\n return pow().exponent(0.5);\n}\n\nfunction quantile() {\n var domain = [],\n range = [],\n thresholds = [];\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n if (!isNaN(x = +x)) return range[bisectRight(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice$3.call(_), rescale()) : range.slice();\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range);\n };\n\n return scale;\n}\n\nfunction quantize$1() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1];\n\n function scale(x) {\n if (x <= x) return range[bisectRight(domain, x, 0, n)];\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice$3.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.copy = function() {\n return quantize$1()\n .domain([x0, x1])\n .range(range);\n };\n\n return linearish(scale);\n}\n\nfunction threshold$1() {\n var domain = [0.5],\n range = [0, 1],\n n = 1;\n\n function scale(x) {\n if (x <= x) return range[bisectRight(domain, x, 0, n)];\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice$3.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice$3.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.copy = function() {\n return threshold$1()\n .domain(domain)\n .range(range);\n };\n\n return scale;\n}\n\nvar durationSecond$1 = 1000;\nvar durationMinute$1 = durationSecond$1 * 60;\nvar durationHour$1 = durationMinute$1 * 60;\nvar durationDay$1 = durationHour$1 * 24;\nvar durationWeek$1 = durationDay$1 * 7;\nvar durationMonth = durationDay$1 * 30;\nvar durationYear = durationDay$1 * 365;\nfunction date$1(t) {\n return new Date(t);\n}\n\nfunction number$2(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nfunction calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, interpolateNumber),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond$1],\n [second, 5, 5 * durationSecond$1],\n [second, 15, 15 * durationSecond$1],\n [second, 30, 30 * durationSecond$1],\n [minute, 1, durationMinute$1],\n [minute, 5, 5 * durationMinute$1],\n [minute, 15, 15 * durationMinute$1],\n [minute, 30, 30 * durationMinute$1],\n [ hour, 1, durationHour$1 ],\n [ hour, 3, 3 * durationHour$1 ],\n [ hour, 6, 6 * durationHour$1 ],\n [ hour, 12, 12 * durationHour$1 ],\n [ day, 1, durationDay$1 ],\n [ day, 2, 2 * durationDay$1 ],\n [ week, 1, durationWeek$1 ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = tickStep(start, stop, interval);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map$2.call(_, number$2)) : domain().map(date$1);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nfunction time() {\n return calendar(year, month, timeWeek, day, hour, minute, second, millisecond, exports.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}\n\nfunction utcTime() {\n return calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, second, millisecond, exports.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);\n}\n\nfunction colors(s) {\n return s.match(/.{6}/g).map(function(x) {\n return \"#\" + x;\n });\n}\n\nvar category10 = colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n\nvar category20b = colors(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\");\n\nvar category20c = colors(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\");\n\nvar category20 = colors(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\");\n\nvar cubehelix$3 = interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n\nvar warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar rainbow = cubehelix();\n\nfunction rainbow$1(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n rainbow.h = 360 * t - 100;\n rainbow.s = 1.5 - 1.5 * ts;\n rainbow.l = 0.8 - 0.9 * ts;\n return rainbow + \"\";\n}\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nvar viridis = ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nvar magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nvar inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nvar plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n\nfunction sequential(interpolator) {\n var x0 = 0,\n x1 = 1,\n clamp = false;\n\n function scale(x) {\n var t = (x - x0) / (x1 - x0);\n return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequential(interpolator).domain([x0, x1]).clamp(clamp);\n };\n\n return linearish(scale);\n}\n\nvar xhtml = \"http://www.w3.org/1999/xhtml/";\n\nvar namespaces = {\n svg: \"http://www.w3.org/2000/svg/",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink/",\n xml: \"http://www.w3.org/XML/1998/namespace/",\n xmlns: \"http://www.w3.org/2000/xmlns//"\n};\n\nfunction namespace(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nfunction creator(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n\nvar nextId = 0;\n\nfunction local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n\nvar matcher = function(selector) {\n return function() {\n return this.matches(selector);\n };\n};\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!element.matches) {\n var vendorMatches = element.webkitMatchesSelector\n || element.msMatchesSelector\n || element.mozMatchesSelector\n || element.oMatchesSelector;\n matcher = function(selector) {\n return function() {\n return vendorMatches.call(this, selector);\n };\n };\n }\n}\n\nvar matcher$1 = matcher;\n\nvar filterEvents = {};\n\nexports.event = null;\n\nif (typeof document !== \"undefined\") {\n var element$1 = document.documentElement;\n if (!(\"onmouseenter\" in element$1)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = exports.event; // Events can be reentrant (e.g., focus).\n exports.event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n exports.event = event0;\n }\n };\n}\n\nfunction parseTypenames$1(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nfunction selection_on(typename, value, capture) {\n var typenames = parseTypenames$1(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nfunction customEvent(event1, listener, that, args) {\n var event0 = exports.event;\n event1.sourceEvent = exports.event;\n exports.event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n exports.event = event0;\n }\n}\n\nfunction sourceEvent() {\n var current = exports.event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n\nfunction point$5(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n\nfunction mouse(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point$5(node, event);\n}\n\nfunction none$2() {}\n\nfunction selector(selector) {\n return selector == null ? none$2 : function() {\n return this.querySelector(selector);\n };\n}\n\nfunction selection_select(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n\nfunction empty() {\n return [];\n}\n\nfunction selectorAll(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n\nfunction selection_selectAll(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n\nfunction selection_filter(match) {\n if (typeof match !== \"function\") match = matcher$1(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n\nfunction sparse(update) {\n return new Array(update.length);\n}\n\nfunction selection_enter() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nfunction EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\nfunction constant$4(x) {\n return function() {\n return x;\n };\n}\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction selection_data(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant$4(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\nfunction selection_exit() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n\nfunction selection_merge(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n\nfunction selection_order() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n\nfunction selection_sort(compare) {\n if (!compare) compare = ascending$2;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending$2(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction selection_call() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n\nfunction selection_nodes() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n\nfunction selection_node() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n\nfunction selection_size() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n\nfunction selection_empty() {\n return !this.node();\n}\n\nfunction selection_each(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nfunction selection_attr(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n\nfunction window(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nfunction selection_style(name, value, priority) {\n var node;\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : window(node = this.node())\n .getComputedStyle(node, null)\n .getPropertyValue(name);\n}\n\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nfunction selection_property(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nfunction selection_classed(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n\nfunction textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nfunction selection_text(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nfunction selection_html(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n\nfunction raise$1() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nfunction selection_raise() {\n return this.each(raise$1);\n}\n\nfunction lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nfunction selection_lower() {\n return this.each(lower);\n}\n\nfunction selection_append(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n\nfunction constantNull() {\n return null;\n}\n\nfunction selection_insert(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n\nfunction remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nfunction selection_remove() {\n return this.each(remove);\n}\n\nfunction selection_datum(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n\nfunction dispatchEvent(node, type, params) {\n var window$$ = window(node),\n event = window$$.CustomEvent;\n\n if (event) {\n event = new event(type, params);\n } else {\n event = window$$.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nfunction selection_dispatch(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n\nvar root = [null];\n\nfunction Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nfunction select(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n\nfunction selectAll(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n\nfunction touch(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point$5(node, touch);\n }\n }\n\n return null;\n}\n\nfunction touches(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point$5(node, touches[i]);\n }\n\n return points;\n}\n\nvar emptyOn = dispatch(\"start\", \"end\", \"interrupt\");\nvar emptyTween = [];\n\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar ENDING = 4;\nvar ENDED = 5;\n\nfunction schedule(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nfunction init(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id]) || schedule.state > CREATED) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction set$2(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id]) || schedule.state > STARTING) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction get$1(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"too late\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n // If the delay is greater than this first sleep, sleep some more;\n // otherwise, start immediately.\n function schedule(elapsed) {\n self.state = SCHEDULED;\n if (self.delay <= elapsed) start(elapsed - self.delay);\n else self.timer.restart(start, self.delay, self.time);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // Interrupt the active transition, if any.\n // Dispatch the interrupt event.\n if (o.state === STARTED) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions. No interrupt event is dispatched\n // because the cancelled transitions never started. Note that this also\n // removes this transition from the pending list!\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see mbostock/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout$1(function() {\n if (self.state === STARTED) {\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(null, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.state = ENDED;\n self.timer.stop();\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n for (i in schedules) if (+i !== id) return void delete schedules[id];\n delete node.__transition;\n }\n }\n}\n\nfunction interrupt(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state === STARTED;\n schedule.state = ENDED;\n schedule.timer.stop();\n if (active) schedule.on.call(\"interrupt\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n\nfunction selection_interrupt(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set$2(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set$2(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction transition_tween(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get$1(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nfunction tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set$2(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get$1(node, id).value[name];\n };\n}\n\nfunction interpolate$1(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n\nfunction attrRemove$1(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS$1(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant$1(name, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrConstantNS$1(fullname, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrFunction$1(name, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttribute(name);\n value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction attrFunctionNS$1(fullname, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction transition_attr(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform$2 : interpolate$1;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS$1 : attrFunction$1)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS$1 : attrRemove$1)(fullname)\n : (fullname.local ? attrConstantNS$1 : attrConstant$1)(fullname, i, value));\n}\n\nfunction attrTweenNS(fullname, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttributeNS(fullname.space, fullname.local, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttribute(name, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction transition_attrTween(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nfunction transition_delay(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get$1(this.node(), id).delay;\n}\n\nfunction durationFunction(id, value) {\n return function() {\n set$2(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set$2(this, id).duration = value;\n };\n}\n\nfunction transition_duration(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get$1(this.node(), id).duration;\n}\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set$2(this, id).ease = value;\n };\n}\n\nfunction transition_ease(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get$1(this.node(), id).ease;\n}\n\nfunction transition_filter(match) {\n if (typeof match !== \"function\") match = matcher$1(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n\nfunction transition_merge(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n\nfunction start$1(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start$1(name) ? init : set$2;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nfunction transition_on(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get$1(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n\nfunction removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nfunction transition_remove() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n\nfunction transition_select(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get$1(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n\nfunction transition_selectAll(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get$1(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n\nvar Selection$1 = selection.prototype.constructor;\n\nfunction transition_selection() {\n return new Selection$1(this._groups, this._parents);\n}\n\nfunction styleRemove$1(name, interpolate) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var style = window(this).getComputedStyle(this, null),\n value0 = style.getPropertyValue(name),\n value1 = (this.style.removeProperty(name), style.getPropertyValue(name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction styleRemoveEnd(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant$1(name, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = window(this).getComputedStyle(this, null).getPropertyValue(name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction styleFunction$1(name, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var style = window(this).getComputedStyle(this, null),\n value0 = style.getPropertyValue(name),\n value1 = value(this);\n if (value1 == null) value1 = (this.style.removeProperty(name), style.getPropertyValue(name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction transition_style(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform$1 : interpolate$1;\n return value == null ? this\n .styleTween(name, styleRemove$1(name, i))\n .on(\"end.style.\" + name, styleRemoveEnd(name))\n : this.styleTween(name, typeof value === \"function\"\n ? styleFunction$1(name, i, tweenValue(this, \"style.\" + name, value))\n : styleConstant$1(name, i, value), priority);\n}\n\nfunction styleTween(name, value, priority) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.style.setProperty(name, i(t), priority);\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction transition_styleTween(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n\nfunction textConstant$1(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction$1(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nfunction transition_text(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction$1(tweenValue(this, \"text\", value))\n : textConstant$1(value == null ? \"\" : value + \"\"));\n}\n\nfunction transition_transition() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get$1(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n\nvar id = 0;\n\nfunction Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nfunction transition(name) {\n return selection().transition(name);\n}\n\nfunction newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease\n};\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nfunction selection_transition(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n\nvar root$1 = [null];\n\nfunction active(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root$1, name, +i);\n }\n }\n }\n\n return null;\n}\n\nvar slice$4 = Array.prototype.slice;\n\nfunction identity$5(x) {\n return x;\n}\n\nvar top = 1;\nvar right = 2;\nvar bottom = 3;\nvar left = 4;\nvar epsilon$2 = 1e-6;\nfunction translateX(scale0, scale1, d) {\n var x = scale0(d);\n return \"translate(\" + (isFinite(x) ? x : scale1(d)) + \",0)\";\n}\n\nfunction translateY(scale0, scale1, d) {\n var y = scale0(d);\n return \"translate(0,\" + (isFinite(y) ? y : scale1(d)) + \")\";\n}\n\nfunction center(scale) {\n var offset = scale.bandwidth() / 2;\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$5) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n transform = orient === top || orient === bottom ? translateX : translateY,\n range = scale.range(),\n range0 = range[0] + 0.5,\n range1 = range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : identity$5)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\"),\n k = orient === top || orient === left ? -1 : 1,\n x, y = orient === left || orient === right ? (x = \"x\", \"y\") : (x = \"y\", \"x\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"#000\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"#000\")\n .attr(x + \"2\", k * tickSizeInner)\n .attr(y + \"1\", 0.5)\n .attr(y + \"2\", 0.5));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"#000\")\n .attr(x, k * spacing)\n .attr(y, 0.5)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon$2)\n .attr(\"transform\", function(d) { return transform(position, this.parentNode.__axis || position, d); });\n\n tickEnter\n .attr(\"opacity\", epsilon$2)\n .attr(\"transform\", function(d) { return transform(this.parentNode.__axis || position, position, d); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter\n : \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter);\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position, position, d); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice$4.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice$4.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice$4.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nfunction axisTop(scale) {\n return axis(top, scale);\n}\n\nfunction axisRight(scale) {\n return axis(right, scale);\n}\n\nfunction axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nfunction axisLeft(scale) {\n return axis(left, scale);\n}\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nfunction cluster() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n\nfunction node_each(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n\nfunction node_eachBefore(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n\nfunction node_eachAfter(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n\nfunction node_sum(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n\nfunction node_sort(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n\nfunction node_path(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n\nfunction node_ancestors() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n\nfunction node_descendants() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n\nfunction node_leaves() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n\nfunction node_links() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n\nfunction hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nfunction computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nfunction Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n\nfunction Node$2(value) {\n this._ = value;\n this.next = null;\n}\n\nfunction shuffle$1(array) {\n var i,\n n = (array = array.slice()).length,\n head = null,\n node = head;\n\n while (n) {\n var next = new Node$2(array[n - 1]);\n if (node) node = node.next = next;\n else node = head = next;\n array[i] = array[--n];\n }\n\n return {\n head: head,\n tail: node\n };\n}\n\nfunction enclose(circles) {\n return encloseN(shuffle$1(circles), []);\n}\n\nfunction encloses(a, b) {\n var dx = b.x - a.x,\n dy = b.y - a.y,\n dr = a.r - b.r;\n return dr * dr + 1e-6 > dx * dx + dy * dy;\n}\n\n// Returns the smallest circle that contains circles L and intersects circles B.\nfunction encloseN(L, B) {\n var circle,\n l0 = null,\n l1 = L.head,\n l2,\n p1;\n\n switch (B.length) {\n case 1: circle = enclose1(B[0]); break;\n case 2: circle = enclose2(B[0], B[1]); break;\n case 3: circle = enclose3(B[0], B[1], B[2]); break;\n }\n\n while (l1) {\n p1 = l1._, l2 = l1.next;\n if (!circle || !encloses(circle, p1)) {\n\n // Temporarily truncate L before l1.\n if (l0) L.tail = l0, l0.next = null;\n else L.head = L.tail = null;\n\n B.push(p1);\n circle = encloseN(L, B); // Note: reorders L!\n B.pop();\n\n // Move l1 to the front of L and reconnect the truncated list L.\n if (L.head) l1.next = L.head, L.head = l1;\n else l1.next = null, L.head = L.tail = l1;\n l0 = L.tail, l0.next = l2;\n\n } else {\n l0 = l1;\n }\n l1 = l2;\n }\n\n L.tail = l0;\n return circle;\n}\n\nfunction enclose1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction enclose2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction enclose3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = 2 * (x1 - x2),\n b2 = 2 * (y1 - y2),\n c2 = 2 * (r2 - r1),\n d2 = x1 * x1 + y1 * y1 - r1 * r1 - x2 * x2 - y2 * y2 + r2 * r2,\n a3 = 2 * (x1 - x3),\n b3 = 2 * (y1 - y3),\n c3 = 2 * (r3 - r1),\n d3 = x1 * x1 + y1 * y1 - r1 * r1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / ab - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / ab - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (xa * xb + ya * yb + r1),\n C = xa * xa + ya * ya - r1 * r1,\n r = (-B - Math.sqrt(B * B - 4 * A * C)) / (2 * A);\n return {\n x: xa + xb * r + x1,\n y: ya + yb * r + y1,\n r: r\n };\n}\n\nfunction place(a, b, c) {\n var ax = a.x,\n ay = a.y,\n da = b.r + c.r,\n db = a.r + c.r,\n dx = b.x - ax,\n dy = b.y - ay,\n dc = dx * dx + dy * dy;\n if (dc) {\n var x = 0.5 + ((db *= db) - (da *= da)) / (2 * dc),\n y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);\n c.x = ax + x * dx + y * dy;\n c.y = ay + x * dy - y * dx;\n } else {\n c.x = ax + db;\n c.y = ay;\n }\n}\n\nfunction intersects(a, b) {\n var dx = b.x - a.x,\n dy = b.y - a.y,\n dr = a.r + b.r;\n return dr * dr > dx * dx + dy * dy;\n}\n\nfunction distance2(circle, x, y) {\n var dx = circle.x - x,\n dy = circle.y - y;\n return dx * dx + dy * dy;\n}\n\nfunction Node$1(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nfunction packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n\n var a, b, c, n;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the weighted centroid.\n var aa = a.r * a.r,\n ba = b.r * b.r,\n ca = c.r * c.r,\n oa = aa + ba + ca,\n ox = aa * a.x + ba * b.x + ca * c.x,\n oy = aa * a.y + ba * b.y + ca * c.y,\n cx, cy, i, j, k, sj, sk;\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node$1(a), b = new Node$1(b), c = new Node$1(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node$1(c);\n\n // If there are only three elements in the front-chain…\n if ((k = a.previous) === (j = b.next)) {\n // If the new circle intersects the third circle,\n // rotate the front chain to try the next position.\n if (intersects(j._, c._)) {\n a = b, b = j, --i;\n continue pack;\n }\n }\n\n // Find the closest intersecting circle on the front-chain, if any.\n else {\n sj = j._.r, sk = k._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n j = j.next, sj += j._.r;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n k = k.previous, sk += k._.r;\n }\n } while (j !== k.next);\n }\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Update the weighted centroid.\n oa += ca = c._.r * c._.r;\n ox += ca * c._.x;\n oy += ca * c._.y;\n\n // Compute the new closest circle a to centroid.\n aa = distance2(a._, cx = ox / oa, cy = oy / oa);\n while ((c = c.next) !== b) {\n if ((ca = distance2(c._, cx, cy)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nfunction siblings(circles) {\n packEnclose(circles);\n return circles;\n}\n\nfunction optional(f) {\n return f == null ? null : required(f);\n}\n\nfunction required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n\nfunction constantZero() {\n return 0;\n}\n\nfunction constant$5(x) {\n return function() {\n return x;\n };\n}\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nfunction index() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant$5(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n\nfunction roundNode(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n\nfunction treemapDice(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n\nfunction partition() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n\nvar keyPrefix$1 = \"$\";\nvar preroot = {depth: -1};\nvar ambiguous = {};\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nfunction stratify() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix$1 + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix$1 + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n\nfunction defaultSeparation$1(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nfunction tree() {\n var separation = defaultSeparation$1,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n\nfunction treemapSlice(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n\nvar phi = (1 + Math.sqrt(5)) / 2;\n\nfunction squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n minValue = maxValue = sumValue = nodes[i0].value;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (i1 = i0 + 1; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nvar squarify = (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n\nfunction index$1() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant$5(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant$5(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant$5(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant$5(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant$5(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n\nfunction binary(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((y1 - y0) > (x1 - x0)) {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n } else {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n }\n }\n}\n\nfunction sliceDice(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1);\n}\n\nvar resquarify = (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n\nfunction center$1(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n\nfunction constant$6(x) {\n return function() {\n return x;\n };\n}\n\nfunction jiggle() {\n return (Math.random() - 0.5) * 1e-6;\n}\n\nfunction x$1(d) {\n return d.x + d.vx;\n}\n\nfunction y$1(d) {\n return d.y + d.vy;\n}\n\nfunction collide(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant$6(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x$1, y$1).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[i], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > i) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n force.initialize = function(_) {\n var i, n = (nodes = _).length; radii = new Array(n);\n for (i = 0; i < n; ++i) radii[i] = +radius(nodes[i], i, nodes);\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant$6(+_), force) : radius;\n };\n\n return force;\n}\n\nfunction index$2(d, i) {\n return i;\n}\n\nfunction link(links) {\n var id = index$2,\n strength = defaultStrength,\n strengths,\n distance = constant$6(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = map$1(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < n; ++i) {\n count[i] = 0;\n }\n\n for (i = 0; i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = nodeById.get(link.source);\n if (typeof link.target !== \"object\") link.target = nodeById.get(link.target);\n ++count[link.source.index], ++count[link.target.index];\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant$6(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant$6(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n\nfunction x$2(d) {\n return d.x;\n}\n\nfunction y$2(d) {\n return d.y;\n}\n\nvar initialRadius = 10;\nvar initialAngle = Math.PI * (3 - Math.sqrt(5));\nfunction simulation(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map$1(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick() {\n var i, n = nodes.length, node;\n\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function(force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n\nfunction manyBody() {\n var nodes,\n node,\n alpha,\n strength = constant$6(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x$2, y$2).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) strengths[i] = +strength(nodes[i], i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = q.value)) {\n strength += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / strength;\n quad.y = y / strength;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant$6(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n\nfunction x$3(x) {\n var strength = constant$6(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant$6(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant$6(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant$6(+_), initialize(), force) : x;\n };\n\n return force;\n}\n\nfunction y$3(y) {\n var strength = constant$6(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant$6(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant$6(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant$6(+_), initialize(), force) : y;\n };\n\n return force;\n}\n\nfunction nopropagation() {\n exports.event.stopImmediatePropagation();\n}\n\nfunction noevent() {\n exports.event.preventDefault();\n exports.event.stopImmediatePropagation();\n}\n\nfunction dragDisable(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nfunction dragEnable(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n\nfunction constant$7(x) {\n return function() {\n return x;\n };\n}\n\nfunction DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !exports.event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: exports.event.x, y: exports.event.y} : d;\n}\n\nfunction drag() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousemoving,\n touchending;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(exports.event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n dragDisable(exports.event.view);\n nopropagation();\n mousemoving = false;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n mousemoving = true;\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(exports.event.view).on(\"mousemove.drag mouseup.drag\", null);\n dragEnable(exports.event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = exports.event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = exports.event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = exports.event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((exports.event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant$7(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant$7(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant$7(_), drag) : subject;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n return drag;\n}\n\nfunction constant$8(x) {\n return function() {\n return x;\n };\n}\n\nfunction x$4(d) {\n return d[0];\n}\n\nfunction y$4(d) {\n return d[1];\n}\n\nfunction RedBlackTree() {\n this._ = null; // root node\n}\n\nfunction RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\n\nfunction createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\n\nfunction createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nfunction setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nfunction clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon$3\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon$3)) {\n delete edges[i];\n }\n }\n}\n\nfunction createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];\n else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nfunction cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\n\nfunction cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nfunction sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\n\nfunction clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon$3 || Math.abs(endY - startY) > epsilon$3) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon$3 && y1 - endY > epsilon$3 ? [x0, Math.abs(startX - x0) < epsilon$3 ? startY : y1]\n : Math.abs(endY - y1) < epsilon$3 && x1 - endX > epsilon$3 ? [Math.abs(startY - y1) < epsilon$3 ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon$3 && endY - y0 > epsilon$3 ? [x1, Math.abs(startX - x1) < epsilon$3 ? startY : y0]\n : Math.abs(endY - y0) < epsilon$3 && endX - x0 > epsilon$3 ? [Math.abs(startY - y0) < epsilon$3 ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n\nvar circlePool = [];\n\nvar firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nfunction attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2$1) return;\n\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n\n var circle = circlePool.pop() || new Circle;\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {\n if (node.L) node = node.L;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nfunction detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach;\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nfunction removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon$3\n && Math.abs(y - lArc.circle.cy) < epsilon$3) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon$3\n && Math.abs(y - rArc.circle.cy) < epsilon$3) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon$3) node = node.L; else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon$3) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon$3) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon$3) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}\n\nvar epsilon$3 = 1e-6;\nvar epsilon2$1 = 1e-12;\nvar beaches;\nvar cells;\nvar circles;\nvar edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1]\n || b[0] - a[0];\n}\n\nfunction Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\n this.cells.forEach(function(cell, i) {\n var site = cell.site,\n halfedges = cell.halfedges,\n j = -1,\n m = halfedges.length,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n\n return triangles;\n },\n\n links: function() {\n return this.edges.filter(function(edge) {\n return edge.right;\n }).map(function(edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n }\n}\n\nfunction voronoi() {\n var x = x$4,\n y = y$4,\n extent = null;\n\n function voronoi(data) {\n return new Diagram(data.map(function(d, i) {\n var s = [Math.round(x(d, i, data) / epsilon$3) * epsilon$3, Math.round(y(d, i, data) / epsilon$3) * epsilon$3];\n s.index = i;\n s.data = d;\n return s;\n }), extent);\n }\n\n voronoi.polygons = function(data) {\n return voronoi(data).polygons();\n };\n\n voronoi.links = function(data) {\n return voronoi(data).links();\n };\n\n voronoi.triangles = function(data) {\n return voronoi(data).triangles();\n };\n\n voronoi.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant$8(+_), voronoi) : x;\n };\n\n voronoi.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant$8(+_), voronoi) : y;\n };\n\n voronoi.extent = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];\n };\n\n voronoi.size = function(_) {\n return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];\n };\n\n return voronoi;\n}\n\nfunction constant$9(x) {\n return function() {\n return x;\n };\n}\n\nfunction ZoomEvent(target, type, transform) {\n this.target = target;\n this.type = type;\n this.transform = transform;\n}\n\nfunction Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nvar identity$6 = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nfunction transform(node) {\n return node.__zoom || identity$6;\n}\n\nfunction nopropagation$1() {\n exports.event.stopImmediatePropagation();\n}\n\nfunction noevent$1() {\n exports.event.preventDefault();\n exports.event.stopImmediatePropagation();\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter$1() {\n return !exports.event.button;\n}\n\nfunction defaultExtent() {\n var e = this, w, h;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n w = e.width.baseVal.value;\n h = e.height.baseVal.value;\n } else {\n w = e.clientWidth;\n h = e.clientHeight;\n }\n return [[0, 0], [w, h]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity$6;\n}\n\nfunction zoom() {\n var filter = defaultFilter$1,\n extent = defaultExtent,\n k0 = 0,\n k1 = Infinity,\n x0 = -k1,\n x1 = k1,\n y0 = x0,\n y1 = x1,\n duration = 250,\n gestures = [],\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150;\n\n function zoom(selection) {\n selection\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\")\n .property(\"__zoom\", defaultTransform);\n }\n\n zoom.transform = function(collection, transform) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n });\n };\n\n zoom.scaleTo = function(selection, k) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = centroid(e),\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e);\n });\n };\n\n zoom.translateBy = function(selection, x, y) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments));\n });\n };\n\n function scale(transform, k) {\n k = Math.max(k0, Math.min(k1, k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function constrain(transform, extent) {\n var dx = Math.min(0, transform.invertX(extent[0][0]) - x0) || Math.max(0, transform.invertX(extent[1][0]) - x1),\n dy = Math.min(0, transform.invertY(extent[0][1]) - y0) || Math.max(0, transform.invertY(extent[1][1]) - y1);\n return dx || dy ? transform.translate(dx, dy) : transform;\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, center) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args),\n e = extent.apply(that, args),\n p = center || centroid(e),\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolateZoom(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args) {\n for (var i = 0, n = gestures.length, g; i < n; ++i) {\n if ((g = gestures[i]).that === that) {\n return g;\n }\n }\n return new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.index = -1;\n this.active = 0;\n this.extent = extent.apply(that, args);\n }\n\n Gesture.prototype = {\n start: function() {\n if (++this.active === 1) {\n this.index = gestures.push(this) - 1;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n gestures.splice(this.index, 1);\n this.index = -1;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n t = this.__zoom,\n k = Math.max(k0, Math.min(k1, t.k * Math.pow(2, -exports.event.deltaY * (exports.event.deltaMode ? 120 : 1) / 500))),\n p = mouse(this);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent$1();\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n v = select(exports.event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = mouse(this);\n\n dragDisable(exports.event.view);\n nopropagation$1();\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved() {\n noevent$1();\n g.moved = true;\n g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(exports.event.view, g.moved);\n noevent$1();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = mouse(this),\n p1 = t0.invert(p0),\n k1 = t0.k * (exports.event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments));\n\n noevent$1();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);\n else select(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n touches = exports.event.changedTouches,\n n = touches.length, i, t, p;\n\n nopropagation$1();\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p;\n else if (!g.touch1) g.touch1 = p;\n }\n if (touchstarting) {\n touchstarting = clearTimeout(touchstarting);\n if (!g.touch1) return g.end(), dblclicked.apply(this, arguments);\n }\n if (exports.event.touches.length === n) {\n touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved() {\n var g = gesture(this, arguments),\n touches = exports.event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent$1();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent));\n }\n\n function touchended() {\n var g = gesture(this, arguments),\n touches = exports.event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation$1();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (!g.touch0) g.end();\n }\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant$9(!!_), zoom) : filter;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant$9([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (k0 = +_[0], k1 = +_[1], zoom) : [k0, k1];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], zoom) : [[x0, y0], [x1, y1]];\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n return zoom;\n}\n\nfunction constant$10(x) {\n return function() {\n return x;\n };\n}\n\nfunction BrushEvent(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n\nfunction nopropagation$2() {\n exports.event.stopImmediatePropagation();\n}\n\nfunction noevent$2() {\n exports.event.preventDefault();\n exports.event.stopImmediatePropagation();\n}\n\nvar MODE_DRAG = {name: \"drag\"};\nvar MODE_SPACE = {name: \"space\"};\nvar MODE_HANDLE = {name: \"handle\"};\nvar MODE_CENTER = {name: \"center\"};\nvar X = {\n name: \"x\",\n handles: [\"e\", \"w\"].map(type$1),\n input: function(x, e) { return x && [[x[0], e[0][1]], [x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type$1),\n input: function(y, e) { return y && [[e[0][0], y[0]], [e[1][0], y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\"].map(type$1),\n input: function(xy) { return xy; },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type$1(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter$2() {\n return !exports.event.button;\n}\n\nfunction defaultExtent$1() {\n var svg = this.ownerSVGElement || this;\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local$1(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty$1(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nfunction brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nfunction brushX() {\n return brush$1(X);\n}\n\nfunction brushY() {\n return brush$1(Y);\n}\n\nfunction brush() {\n return brush$1(XY);\n}\n\nfunction brush$1(dim) {\n var extent = defaultExtent$1,\n filter = defaultFilter$2,\n listeners = dispatch(brush, \"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type$1(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local$1(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type$1(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\")\n .on(\"mousedown.brush touchstart.brush\", started);\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && empty$1(selection1) ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 && selection1 ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 == null || empty$1(selection1) ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n function redraw() {\n var group = select(this),\n selection = local$1(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args) {\n return that.__brush.emitter || new Emitter(that, args);\n }\n\n function Emitter(that, args) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (exports.event.touches) { if (exports.event.changedTouches.length < exports.event.touches.length) return noevent$2(); }\n else if (touchending) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = exports.event.target.__data__.type,\n mode = (exports.event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (exports.event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local$1(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx,\n dy,\n moving,\n shifting = signX && signY && exports.event.shiftKey,\n lockX,\n lockY,\n point0 = mouse(that),\n point = point0,\n emit = emitter(that, arguments).beforestart();\n\n if (type === \"overlay\") {\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (exports.event.touches) {\n group\n .on(\"touchmove.brush\", moved, true)\n .on(\"touchend.brush touchcancel.brush\", ended, true);\n } else {\n var view = select(exports.event.view)\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n\n dragDisable(exports.event.view);\n }\n\n nopropagation$2();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = mouse(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent$2();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n selection = state.selection; // May be set by brush.move!\n\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation$2();\n if (exports.event.touches) {\n if (exports.event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n group.on(\"touchmove.brush touchend.brush touchcancel.brush\", null);\n } else {\n dragEnable(exports.event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (empty$1(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (exports.event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent$2();\n }\n\n function keyupped() {\n switch (exports.event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (exports.event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent$2();\n }\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = extent.apply(this, arguments);\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant$10([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant$10(!!_), brush) : filter;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n\nvar cos = Math.cos;\nvar sin = Math.sin;\nvar pi$3 = Math.PI;\nvar halfPi$2 = pi$3 / 2;\nvar tau$3 = pi$3 * 2;\nvar max$1 = Math.max;\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nfunction chord() {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = [],\n groupIndex = range(n),\n subgroupIndex = [],\n chords = [],\n groups = chords.groups = new Array(n),\n subgroups = new Array(n * n),\n k,\n x,\n x0,\n dx,\n i,\n j;\n\n // Compute the sum.\n k = 0, i = -1; while (++i < n) {\n x = 0, j = -1; while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(range(n));\n k += x;\n }\n\n // Sort groups…\n if (sortGroups) groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n\n // Sort subgroups…\n if (sortSubgroups) subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n\n // Convert the sum to scaling factor for [0, 2pi].\n // TODO Allow start and end angle to be specified?\n // TODO Allow padding to be specified as percentage?\n k = max$1(0, tau$3 - padAngle * n) / k;\n dx = k ? padAngle : tau$3 / n;\n\n // Compute the start and end angle for each group and subgroup.\n // Note: Opera has a bug reordering object literal properties!\n x = 0, i = -1; while (++i < n) {\n x0 = x, j = -1; while (++j < n) {\n var di = groupIndex[i],\n dj = subgroupIndex[di][j],\n v = matrix[di][dj],\n a0 = x,\n a1 = x += v * k;\n subgroups[dj * n + di] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += dx;\n }\n\n // Generate chords for each (non-empty) subgroup-subgroup link.\n i = -1; while (++i < n) {\n j = i - 1; while (++j < n) {\n var source = subgroups[j * n + i],\n target = subgroups[i * n + j];\n if (source.value || target.value) {\n chords.push(source.value < target.value\n ? {source: target, target: source}\n : {source: source, target: target});\n }\n }\n }\n\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max$1(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n\nvar slice$5 = Array.prototype.slice;\n\nfunction constant$11(x) {\n return function() {\n return x;\n };\n}\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius$1(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nfunction ribbon() {\n var source = defaultSource,\n target = defaultTarget,\n radius = defaultRadius$1,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n argv = slice$5.call(arguments),\n s = source.apply(this, argv),\n t = target.apply(this, argv),\n sr = +radius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi$2,\n sa1 = endAngle.apply(this, argv) - halfPi$2,\n sx0 = sr * cos(sa0),\n sy0 = sr * sin(sa0),\n tr = +radius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi$2,\n ta1 = endAngle.apply(this, argv) - halfPi$2;\n\n if (!context) context = buffer = path();\n\n context.moveTo(sx0, sy0);\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n context.quadraticCurveTo(0, 0, sx0, sy0);\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n ribbon.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant$11(+_), ribbon) : radius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant$11(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant$11(+_), ribbon) : endAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n\n// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nfunction adder() {\n return new Adder;\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function(y) {\n add$1(temp, y, this.t);\n add$1(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\n};\n\nvar temp = new Adder;\n\nfunction add$1(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = (a - av) + (b - bv);\n}\n\nvar epsilon$4 = 1e-6;\nvar epsilon2$2 = 1e-12;\nvar pi$4 = Math.PI;\nvar halfPi$3 = pi$4 / 2;\nvar quarterPi = pi$4 / 4;\nvar tau$4 = pi$4 * 2;\n\nvar degrees$1 = 180 / pi$4;\nvar radians = pi$4 / 180;\n\nvar abs = Math.abs;\nvar atan = Math.atan;\nvar atan2 = Math.atan2;\nvar cos$1 = Math.cos;\nvar ceil = Math.ceil;\nvar exp = Math.exp;\nvar log$1 = Math.log;\nvar pow$1 = Math.pow;\nvar sin$1 = Math.sin;\nvar sign$1 = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nvar sqrt$1 = Math.sqrt;\nvar tan = Math.tan;\n\nfunction acos(x) {\n return x > 1 ? 0 : x < -1 ? pi$4 : Math.acos(x);\n}\n\nfunction asin$1(x) {\n return x > 1 ? halfPi$3 : x < -1 ? -halfPi$3 : Math.asin(x);\n}\n\nfunction haversin(x) {\n return (x = sin$1(x / 2)) * x;\n}\n\nfunction noop$2() {}\n\nfunction streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(feature, stream) {\n streamGeometry(feature.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nfunction geoStream(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n\nvar areaRingSum = adder();\n\nvar areaSum = adder();\nvar lambda00;\nvar phi00;\nvar lambda0;\nvar cosPhi0;\nvar sinPhi0;\nvar areaStream = {\n point: noop$2,\n lineStart: noop$2,\n lineEnd: noop$2,\n polygonStart: function() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau$4 + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop$2;\n },\n sphere: function() {\n areaSum.add(tau$4);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos$1(phi = phi / 2 + quarterPi), sinPhi0 = sin$1(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos$1(phi),\n sinPhi = sin$1(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos$1(adLambda),\n v = k * sdLambda * sin$1(adLambda);\n areaRingSum.add(atan2(v, u));\n\n // Advance the previous points.\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nfunction area$2(object) {\n areaSum.reset();\n geoStream(object, areaStream);\n return areaSum * 2;\n}\n\nfunction spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin$1(cartesian[2])];\n}\n\nfunction cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos$1(phi);\n return [cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)];\n}\n\nfunction cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nfunction cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nfunction cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nfunction cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nfunction cartesianNormalizeInPlace(d) {\n var l = sqrt$1(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n\nvar lambda0$1;\nvar phi0;\nvar lambda1;\nvar phi1;\nvar lambda2;\nvar lambda00$1;\nvar phi00$1;\nvar p0;\nvar deltaSum = adder();\nvar ranges;\nvar range$1;\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon$4) phi1 = 90;\n else if (deltaSum < -epsilon$4) phi0 = -90;\n range$1[0] = lambda0$1, range$1[1] = lambda1;\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range$1 = [lambda0$1 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees$1 * sign,\n phii,\n antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees$1;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees$1;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;\n }\n } else {\n if (lambda1 >= lambda0$1) {\n if (lambda < lambda0$1) lambda0$1 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;\n }\n }\n }\n } else {\n boundsPoint(lambda, phi);\n }\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range$1[0] = lambda0$1, range$1[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00$1 = lambda, phi00$1 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00$1, phi00$1);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon$4) lambda0$1 = -(lambda1 = 180);\n range$1[0] = lambda0$1, range$1[1] = lambda1;\n p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nfunction bounds(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n\n phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity);\n ranges = [];\n geoStream(feature, boundsStream);\n\n // First, sort ranges by their minimum longitudes.\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n\n // Then, merge any ranges that overlap.\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n\n // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range$1 = null;\n\n return lambda0$1 === Infinity || phi0 === Infinity\n ? [[NaN, NaN], [NaN, NaN]]\n : [[lambda0$1, phi0], [lambda1, phi1]];\n}\n\nvar W0;\nvar W1;\nvar X0;\nvar Y0;\nvar Z0;\nvar X1;\nvar Y1;\nvar Z1;\nvar X2;\nvar Y2;\nvar Z2;\nvar lambda00$2;\nvar phi00$2;\nvar x0;\nvar y0;\nvar z0;\n// previous point\n\nvar centroidStream = {\n sphere: noop$2,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n};\n\n// Arithmetic mean of Cartesian vectors.\nfunction centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos$1(phi);\n centroidPointCartesian(cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos$1(phi);\n x0 = cosPhi * cos$1(lambda);\n y0 = cosPhi * sin$1(lambda);\n z0 = sin$1(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos$1(phi),\n x = cosPhi * cos$1(lambda),\n y = cosPhi * sin$1(lambda),\n z = sin$1(phi),\n w = atan2(sqrt$1((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\n// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\nfunction centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n centroidRingPoint(lambda00$2, phi00$2);\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n lambda00$2 = lambda, phi00$2 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos$1(phi);\n x0 = cosPhi * cos$1(lambda);\n y0 = cosPhi * sin$1(lambda);\n z0 = sin$1(phi);\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos$1(phi),\n x = cosPhi * cos$1(lambda),\n y = cosPhi * sin$1(lambda),\n z = sin$1(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = sqrt$1(cx * cx + cy * cy + cz * cz),\n u = x0 * x + y0 * y + z0 * z,\n v = m && -acos(u) / m, // area weight\n w = atan2(m, u); // line weight\n X2 += v * cx;\n Y2 += v * cy;\n Z2 += v * cz;\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroid$1(object) {\n W0 = W1 =\n X0 = Y0 = Z0 =\n X1 = Y1 = Z1 =\n X2 = Y2 = Z2 = 0;\n geoStream(object, centroidStream);\n\n var x = X2,\n y = Y2,\n z = Z2,\n m = x * x + y * y + z * z;\n\n // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n if (m < epsilon2$2) {\n x = X1, y = Y1, z = Z1;\n // If the feature has zero length, fall back to arithmetic mean of point vectors.\n if (W1 < epsilon$4) x = X0, y = Y0, z = Z0;\n m = x * x + y * y + z * z;\n // If the feature still has an undefined ccentroid, then return.\n if (m < epsilon2$2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees$1, asin$1(z / sqrt$1(m)) * degrees$1];\n}\n\nfunction constant$12(x) {\n return function() {\n return x;\n };\n}\n\nfunction compose(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n\nfunction rotationIdentity(lambda, phi) {\n return [lambda > pi$4 ? lambda - tau$4 : lambda < -pi$4 ? lambda + tau$4 : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nfunction rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau$4) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi$4 ? lambda - tau$4 : lambda < -pi$4 ? lambda + tau$4 : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos$1(deltaPhi),\n sinDeltaPhi = sin$1(deltaPhi),\n cosDeltaGamma = cos$1(deltaGamma),\n sinDeltaGamma = sin$1(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos$1(phi),\n x = cos$1(lambda) * cosPhi,\n y = sin$1(lambda) * cosPhi,\n z = sin$1(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin$1(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos$1(phi),\n x = cos$1(lambda) * cosPhi,\n y = sin$1(lambda) * cosPhi,\n z = sin$1(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin$1(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nfunction rotation(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees$1, coordinates[1] *= degrees$1, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees$1, coordinates[1] *= degrees$1, coordinates;\n };\n\n return forward;\n}\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nfunction circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos$1(radius),\n sinRadius = sin$1(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau$4;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau$4;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos$1(t), -sinRadius * sin$1(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau$4 - epsilon$4) % tau$4;\n}\n\nfunction circle$1() {\n var center = constant$12([0, 0]),\n radius = constant$12(90),\n precision = constant$12(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees$1, x[1] *= degrees$1;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant$12([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant$12(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant$12(+_), circle) : precision;\n };\n\n return circle;\n}\n\nfunction clipBuffer() {\n var lines = [],\n line;\n return {\n point: function(x, y) {\n line.push([x, y]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop$2,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n\nfunction clipLine(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n\nfunction pointEqual(a, b) {\n return abs(a[0] - b[0]) < epsilon$4 && abs(a[1] - b[1]) < epsilon$4;\n}\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nfunction clipPolygon(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n // If the first and last points of a segment are coincident, then treat as a\n // closed ring. TODO if all rings are closed, then the winding order of the\n // exterior ring should be checked.\n if (pointEqual(p0, p1)) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link$1(subject);\n link$1(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link$1(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n\nvar clipMax = 1e9;\nvar clipMin = -clipMax;\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nfunction clipExtent(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon$4 ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon$4 ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon$4 ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipPolygon(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n\nfunction extent$1() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n\n return clip = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipExtent(x0, y0, x1, y1)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}\n\nvar lengthSum = adder();\nvar lambda0$2;\nvar sinPhi0$1;\nvar cosPhi0$1;\nvar lengthStream = {\n sphere: noop$2,\n point: noop$2,\n lineStart: lengthLineStart,\n lineEnd: noop$2,\n polygonStart: noop$2,\n polygonEnd: noop$2\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop$2;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0$2 = lambda, sinPhi0$1 = sin$1(phi), cosPhi0$1 = cos$1(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin$1(phi),\n cosPhi = cos$1(phi),\n delta = abs(lambda - lambda0$2),\n cosDelta = cos$1(delta),\n sinDelta = sin$1(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0$1 * sinPhi - sinPhi0$1 * cosPhi * cosDelta,\n z = sinPhi0$1 * sinPhi + cosPhi0$1 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt$1(x * x + y * y), z));\n lambda0$2 = lambda, sinPhi0$1 = sinPhi, cosPhi0$1 = cosPhi;\n}\n\nfunction length$2(object) {\n lengthSum.reset();\n geoStream(object, lengthStream);\n return +lengthSum;\n}\n\nvar coordinates = [null, null];\nvar object$1 = {type: \"LineString\", coordinates: coordinates};\nfunction distance(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length$2(object$1);\n}\n\nfunction graticuleX(y0, y1, dy) {\n var y = range(y0, y1 - epsilon$4, dy).concat(y1);\n return function(x) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon$4, dx).concat(x1);\n return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nfunction graticule() {\n var x1, x0, X1, X0,\n y1, y0, Y1, Y0,\n dx = 10, dy = dx, DX = 90, DY = 360,\n x, y, X, Y,\n precision = 2.5;\n\n function graticule() {\n return {type: \"MultiLineString\", coordinates: lines()};\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X)\n .concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y))\n .concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > epsilon$4; }).map(x))\n .concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > epsilon$4; }).map(y));\n }\n\n graticule.lines = function() {\n return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n };\n\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X0).concat(\n Y(Y1).slice(1),\n X(X1).reverse().slice(1),\n Y(Y0).reverse().slice(1))\n ]\n };\n };\n\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = function(_) {\n if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.extentMinor = function(_) {\n if (!arguments.length) return [[x0, y0], [x1, y1]];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.step = function(_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function(_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function(_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule\n .extentMajor([[-180, -90 + epsilon$4], [180, 90 - epsilon$4]])\n .extentMinor([[-180, -80 - epsilon$4], [180, 80 + epsilon$4]]);\n}\n\nfunction interpolate$2(a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos$1(y0),\n sy0 = sin$1(y0),\n cy1 = cos$1(y1),\n sy1 = sin$1(y1),\n kx0 = cy0 * cos$1(x0),\n ky0 = cy0 * sin$1(x0),\n kx1 = cy1 * cos$1(x1),\n ky1 = cy1 * sin$1(x1),\n d = 2 * asin$1(sqrt$1(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin$1(d);\n\n var interpolate = d ? function(t) {\n var B = sin$1(t *= d) / k,\n A = sin$1(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [\n atan2(y, x) * degrees$1,\n atan2(z, sqrt$1(x * x + y * y)) * degrees$1\n ];\n } : function() {\n return [x0 * degrees$1, y0 * degrees$1];\n };\n\n interpolate.distance = d;\n\n return interpolate;\n}\n\nfunction identity$7(x) {\n return x;\n}\n\nvar areaSum$1 = adder();\nvar areaRingSum$1 = adder();\nvar x00;\nvar y00;\nvar x0$1;\nvar y0$1;\nvar areaStream$1 = {\n point: noop$2,\n lineStart: noop$2,\n lineEnd: noop$2,\n polygonStart: function() {\n areaStream$1.lineStart = areaRingStart$1;\n areaStream$1.lineEnd = areaRingEnd$1;\n },\n polygonEnd: function() {\n areaStream$1.lineStart = areaStream$1.lineEnd = areaStream$1.point = noop$2;\n areaSum$1.add(abs(areaRingSum$1));\n areaRingSum$1.reset();\n },\n result: function() {\n var area = areaSum$1 / 2;\n areaSum$1.reset();\n return area;\n }\n};\n\nfunction areaRingStart$1() {\n areaStream$1.point = areaPointFirst$1;\n}\n\nfunction areaPointFirst$1(x, y) {\n areaStream$1.point = areaPoint$1;\n x00 = x0$1 = x, y00 = y0$1 = y;\n}\n\nfunction areaPoint$1(x, y) {\n areaRingSum$1.add(y0$1 * x - x0$1 * y);\n x0$1 = x, y0$1 = y;\n}\n\nfunction areaRingEnd$1() {\n areaPoint$1(x00, y00);\n}\n\nvar x0$2 = Infinity;\nvar y0$2 = x0$2;\nvar x1 = -x0$2;\nvar y1 = x1;\nvar boundsStream$1 = {\n point: boundsPoint$1,\n lineStart: noop$2,\n lineEnd: noop$2,\n polygonStart: noop$2,\n polygonEnd: noop$2,\n result: function() {\n var bounds = [[x0$2, y0$2], [x1, y1]];\n x1 = y1 = -(y0$2 = x0$2 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint$1(x, y) {\n if (x < x0$2) x0$2 = x;\n if (x > x1) x1 = x;\n if (y < y0$2) y0$2 = y;\n if (y > y1) y1 = y;\n}\n\nvar X0$1 = 0;\nvar Y0$1 = 0;\nvar Z0$1 = 0;\nvar X1$1 = 0;\nvar Y1$1 = 0;\nvar Z1$1 = 0;\nvar X2$1 = 0;\nvar Y2$1 = 0;\nvar Z2$1 = 0;\nvar x00$1;\nvar y00$1;\nvar x0$3;\nvar y0$3;\nvar centroidStream$1 = {\n point: centroidPoint$1,\n lineStart: centroidLineStart$1,\n lineEnd: centroidLineEnd$1,\n polygonStart: function() {\n centroidStream$1.lineStart = centroidRingStart$1;\n centroidStream$1.lineEnd = centroidRingEnd$1;\n },\n polygonEnd: function() {\n centroidStream$1.point = centroidPoint$1;\n centroidStream$1.lineStart = centroidLineStart$1;\n centroidStream$1.lineEnd = centroidLineEnd$1;\n },\n result: function() {\n var centroid = Z2$1 ? [X2$1 / Z2$1, Y2$1 / Z2$1]\n : Z1$1 ? [X1$1 / Z1$1, Y1$1 / Z1$1]\n : Z0$1 ? [X0$1 / Z0$1, Y0$1 / Z0$1]\n : [NaN, NaN];\n X0$1 = Y0$1 = Z0$1 =\n X1$1 = Y1$1 = Z1$1 =\n X2$1 = Y2$1 = Z2$1 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint$1(x, y) {\n X0$1 += x;\n Y0$1 += y;\n ++Z0$1;\n}\n\nfunction centroidLineStart$1() {\n centroidStream$1.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream$1.point = centroidPointLine;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0$3, dy = y - y0$3, z = sqrt$1(dx * dx + dy * dy);\n X1$1 += z * (x0$3 + x) / 2;\n Y1$1 += z * (y0$3 + y) / 2;\n Z1$1 += z;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n}\n\nfunction centroidLineEnd$1() {\n centroidStream$1.point = centroidPoint$1;\n}\n\nfunction centroidRingStart$1() {\n centroidStream$1.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd$1() {\n centroidPointRing(x00$1, y00$1);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream$1.point = centroidPointRing;\n centroidPoint$1(x00$1 = x0$3 = x, y00$1 = y0$3 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0$3,\n dy = y - y0$3,\n z = sqrt$1(dx * dx + dy * dy);\n\n X1$1 += z * (x0$3 + x) / 2;\n Y1$1 += z * (y0$3 + y) / 2;\n Z1$1 += z;\n\n z = y0$3 * x - x0$3 * y;\n X2$1 += z * (x0$3 + x);\n Y2$1 += z * (y0$3 + y);\n Z2$1 += z * 3;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n}\n\nfunction PathContext(context) {\n var pointRadius = 4.5;\n\n var stream = {\n point: point,\n\n // While inside a line, override point to moveTo then lineTo.\n lineStart: function() { stream.point = pointLineStart; },\n lineEnd: lineEnd,\n\n // While inside a polygon, override lineEnd to closePath.\n polygonStart: function() { stream.lineEnd = lineEndPolygon; },\n polygonEnd: function() { stream.lineEnd = lineEnd; stream.point = point; },\n\n pointRadius: function(_) {\n pointRadius = _;\n return stream;\n },\n\n result: noop$2\n };\n\n function point(x, y) {\n context.moveTo(x + pointRadius, y);\n context.arc(x, y, pointRadius, 0, tau$4);\n }\n\n function pointLineStart(x, y) {\n context.moveTo(x, y);\n stream.point = pointLine;\n }\n\n function pointLine(x, y) {\n context.lineTo(x, y);\n }\n\n function lineEnd() {\n stream.point = point;\n }\n\n function lineEndPolygon() {\n context.closePath();\n }\n\n return stream;\n}\n\nfunction PathString() {\n var pointCircle = circle$2(4.5),\n string = [];\n\n var stream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointCircle = circle$2(_);\n return stream;\n },\n result: function() {\n if (string.length) {\n var result = string.join(\"\");\n string = [];\n return result;\n }\n }\n };\n\n function point(x, y) {\n string.push(\"M\", x, \",\", y, pointCircle);\n }\n\n function pointLineStart(x, y) {\n string.push(\"M\", x, \",\", y);\n stream.point = pointLine;\n }\n\n function pointLine(x, y) {\n string.push(\"L\", x, \",\", y);\n }\n\n function lineStart() {\n stream.point = pointLineStart;\n }\n\n function lineEnd() {\n stream.point = point;\n }\n\n function lineEndPolygon() {\n string.push(\"Z\");\n }\n\n return stream;\n}\n\nfunction circle$2(radius) {\n return \"m0,\" + radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n + \"z\";\n}\n\nfunction index$3() {\n var pointRadius = 4.5,\n projection,\n projectionStream,\n context,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n geoStream(object, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n\n path.area = function(object) {\n geoStream(object, projectionStream(areaStream$1));\n return areaStream$1.result();\n };\n\n path.bounds = function(object) {\n geoStream(object, projectionStream(boundsStream$1));\n return boundsStream$1.result();\n };\n\n path.centroid = function(object) {\n geoStream(object, projectionStream(centroidStream$1));\n return centroidStream$1.result();\n };\n\n path.projection = function(_) {\n return arguments.length ? (projectionStream = (projection = _) == null ? identity$7 : _.stream, path) : projection;\n };\n\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = (context = _) == null ? new PathString : new PathContext(_);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(null).context(null);\n}\n\nvar sum$2 = adder();\n\nfunction polygonContains(polygon, point) {\n var lambda = point[0],\n phi = point[1],\n normal = [sin$1(lambda), -cos$1(lambda), 0],\n angle = 0,\n winding = 0;\n\n sum$2.reset();\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = point0[0],\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin$1(phi0),\n cosPhi0 = cos$1(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = point1[0],\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin$1(phi1),\n cosPhi1 = cos$1(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi$4,\n k = sinPhi0 * sinPhi1;\n\n sum$2.add(atan2(k * sign * sin$1(absDelta), cosPhi0 * cosPhi1 + k * cos$1(absDelta)));\n angle += antimeridian ? delta + sign * tau$4 : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin$1(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon$4 || angle < epsilon$4 && sum$2 < -epsilon$4) ^ (winding & 1);\n}\n\nfunction clip(pointVisible, clipLine, interpolate, start) {\n return function(rotate, sink) {\n var line = clipLine(sink),\n rotatedStart = rotate.invert(start[0], start[1]),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, rotatedStart);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipPolygon(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n var point = rotate(lambda, phi);\n if (pointVisible(lambda = point[0], phi = point[1])) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n var point = rotate(lambda, phi);\n line.point(point[0], point[1]);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n var point = rotate(lambda, phi);\n ringSink.point(point[0], point[1]);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi$3 - epsilon$4 : halfPi$3 - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi$3 - epsilon$4 : halfPi$3 - b[1]);\n}\n\nvar clipAntimeridian = clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi$4, -halfPi$3]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi$4 : -pi$4,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi$4) < epsilon$4) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi$3 : -halfPi$3);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi$4) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon$4) lambda0 -= sign0 * epsilon$4; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon$4) lambda1 -= sign1 * epsilon$4;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin$1(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon$4\n ? atan((sin$1(phi0) * (cosPhi1 = cos$1(phi1)) * sin$1(lambda1)\n - sin$1(phi1) * (cosPhi0 = cos$1(phi0)) * sin$1(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi$3;\n stream.point(-pi$4, phi);\n stream.point(0, phi);\n stream.point(pi$4, phi);\n stream.point(pi$4, 0);\n stream.point(pi$4, -phi);\n stream.point(0, -phi);\n stream.point(-pi$4, -phi);\n stream.point(-pi$4, 0);\n stream.point(-pi$4, phi);\n } else if (abs(from[0] - to[0]) > epsilon$4) {\n var lambda = from[0] < to[0] ? pi$4 : -pi$4;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n\nfunction clipCircle(radius, delta) {\n var cr = cos$1(radius),\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon$4; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos$1(lambda) * cos$1(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi$4 : -pi$4), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n // Handle degeneracies.\n // TODO ignore if not clipping polygons.\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (pointEqual(point0, point2) || pointEqual(point1, point2)) {\n point1[0] += epsilon$4;\n point1[1] += epsilon$4;\n v = visible(point1[0], point1[1]);\n }\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1]);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt$1(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi$4) < epsilon$4,\n meridian = polar || delta < epsilon$4;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon$4 ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi$4 ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi$4 - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi$4, radius - pi$4]);\n}\n\nfunction transform$1(prototype) {\n return {\n stream: transform$2(prototype)\n };\n}\n\nfunction transform$2(prototype) {\n function T() {}\n var p = T.prototype = Object.create(Transform$1.prototype);\n for (var k in prototype) p[k] = prototype[k];\n return function(stream) {\n var t = new T;\n t.stream = stream;\n return t;\n };\n}\n\nfunction Transform$1() {}\n\nTransform$1.prototype = {\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n\nfunction fit(project, extent, object) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n clip = project.clipExtent && project.clipExtent();\n\n project\n .scale(150)\n .translate([0, 0]);\n\n if (clip != null) project.clipExtent(null);\n\n geoStream(object, project.stream(boundsStream$1));\n\n var b = boundsStream$1.result(),\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n\n if (clip != null) project.clipExtent(clip);\n\n return project\n .scale(k * 150)\n .translate([x, y]);\n}\n\nfunction fitSize(project) {\n return function(size, object) {\n return fit(project, [[0, 0], size], object);\n };\n}\n\nfunction fitExtent(project) {\n return function(extent, object) {\n return fit(project, extent, object);\n };\n}\n\nvar maxDepth = 16;\nvar cosMinDistance = cos$1(30 * radians);\n// cos(minimum angular distance)\n\nfunction resample(project, delta2) {\n return +delta2 ? resample$1(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transform$2({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample$1(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt$1(a * a + b * b + c * c),\n phi2 = asin$1(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon$4 || abs(lambda0 - lambda1) < epsilon$4 ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n\nvar transformRadians = transform$2({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nfunction projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n dx, dy, lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, projectRotate, // rotate\n theta = null, preclip = clipAntimeridian, // clip angle\n x0 = null, y0, x1, y1, postclip = identity$7, // clip extent\n delta2 = 0.5, projectResample = resample(projectTransform, delta2), // precision\n cache,\n cacheStream;\n\n function projection(point) {\n point = projectRotate(point[0] * radians, point[1] * radians);\n return [point[0] * k + dx, dy - point[1] * k];\n }\n\n function invert(point) {\n point = projectRotate.invert((point[0] - dx) / k, (dy - point[1]) / k);\n return point && [point[0] * degrees$1, point[1] * degrees$1];\n }\n\n function projectTransform(x, y) {\n return x = project(x, y), [x[0] * k + dx, dy - x[1] * k];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(preclip(rotate, projectResample(postclip(cacheStream = stream))));\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians, 6 * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees$1;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$7) : clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees$1, phi * degrees$1];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees$1, deltaPhi * degrees$1, deltaGamma * degrees$1];\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt$1(delta2);\n };\n\n projection.fitExtent = fitExtent(projection);\n\n projection.fitSize = fitSize(projection);\n\n function recenter() {\n projectRotate = compose(rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma), project);\n var center = project(lambda, phi);\n dx = x - center[0] * k;\n dy = y + center[1] * k;\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n\nfunction conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi$4 / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees$1, phi1 * degrees$1];\n };\n\n return p;\n}\n\nfunction conicEqualAreaRaw(y0, y1) {\n var sy0 = sin$1(y0),\n n = (sy0 + sin$1(y1)) / 2,\n c = 1 + sy0 * (2 * n - sy0),\n r0 = sqrt$1(c) / n;\n\n function project(x, y) {\n var r = sqrt$1(c - 2 * n * sin$1(y)) / n;\n return [r * sin$1(x *= n), r0 - r * cos$1(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y;\n return [atan2(x, r0y) / n, asin$1((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nfunction conicEqualArea() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n\nfunction albers() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nfunction albersUsa() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return albersUsa;\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon$4, y + 0.120 * k + epsilon$4], [x - 0.214 * k - epsilon$4, y + 0.234 * k - epsilon$4]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon$4, y + 0.166 * k + epsilon$4], [x - 0.115 * k - epsilon$4, y + 0.234 * k - epsilon$4]])\n .stream(pointStream);\n\n return albersUsa;\n };\n\n albersUsa.fitExtent = fitExtent(albersUsa);\n\n albersUsa.fitSize = fitSize(albersUsa);\n\n return albersUsa.scale(1070);\n}\n\nfunction azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos$1(x),\n cy = cos$1(y),\n k = scale(cx * cy);\n return [\n k * cy * sin$1(x),\n k * sin$1(y)\n ];\n }\n}\n\nfunction azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt$1(x * x + y * y),\n c = angle(z),\n sc = sin$1(c),\n cc = cos$1(c);\n return [\n atan2(x * sc, z * cc),\n asin$1(z && y * sc / z)\n ];\n }\n}\n\nvar azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt$1(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin$1(z / 2);\n});\n\nfunction azimuthalEqualArea() {\n return projection(azimuthalEqualAreaRaw)\n .scale(124.75)\n .clipAngle(180 - 1e-3);\n}\n\nvar azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin$1(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n});\n\nfunction azimuthalEquidistant() {\n return projection(azimuthalEquidistantRaw)\n .scale(79.4188)\n .clipAngle(180 - 1e-3);\n}\n\nfunction mercatorRaw(lambda, phi) {\n return [lambda, log$1(tan((halfPi$3 + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi$3];\n};\n\nfunction mercator() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau$4);\n}\n\nfunction mercatorProjection(project) {\n var m = projection(project),\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n clipAuto;\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), clipAuto && m.clipExtent(null), m) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), clipAuto && m.clipExtent(null), m) : translate();\n };\n\n m.clipExtent = function(_) {\n if (!arguments.length) return clipAuto ? null : clipExtent();\n if (clipAuto = _ == null) {\n var k = pi$4 * scale(),\n t = translate();\n _ = [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]];\n }\n clipExtent(_);\n return m;\n };\n\n return m.clipExtent(null);\n}\n\nfunction tany(y) {\n return tan((halfPi$3 + y) / 2);\n}\n\nfunction conicConformalRaw(y0, y1) {\n var cy0 = cos$1(y0),\n n = y0 === y1 ? sin$1(y0) : log$1(cy0 / cos$1(y1)) / log$1(tany(y1) / tany(y0)),\n f = cy0 * pow$1(tany(y0), n) / n;\n\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) { if (y < -halfPi$3 + epsilon$4) y = -halfPi$3 + epsilon$4; }\n else { if (y > halfPi$3 - epsilon$4) y = halfPi$3 - epsilon$4; }\n var r = f / pow$1(tany(y), n);\n return [r * sin$1(n * x), f - r * cos$1(n * x)];\n }\n\n project.invert = function(x, y) {\n var fy = f - y, r = sign$1(n) * sqrt$1(x * x + fy * fy);\n return [atan2(x, fy) / n, 2 * atan(pow$1(f / r, 1 / n)) - halfPi$3];\n };\n\n return project;\n}\n\nfunction conicConformal() {\n return conicProjection(conicConformalRaw)\n .scale(109.5)\n .parallels([30, 30]);\n}\n\nfunction equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nfunction equirectangular() {\n return projection(equirectangularRaw)\n .scale(152.63);\n}\n\nfunction conicEquidistantRaw(y0, y1) {\n var cy0 = cos$1(y0),\n n = y0 === y1 ? sin$1(y0) : (cy0 - cos$1(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n\n if (abs(n) < epsilon$4) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y, nx = n * x;\n return [gy * sin$1(nx), g - gy * cos$1(nx)];\n }\n\n project.invert = function(x, y) {\n var gy = g - y;\n return [atan2(x, gy) / n, g - sign$1(n) * sqrt$1(x * x + gy * gy)];\n };\n\n return project;\n}\n\nfunction conicEquidistant() {\n return conicProjection(conicEquidistantRaw)\n .scale(131.154)\n .center([0, 13.9389]);\n}\n\nfunction gnomonicRaw(x, y) {\n var cy = cos$1(y), k = cos$1(x) * cy;\n return [cy * sin$1(x) / k, sin$1(y) / k];\n}\n\ngnomonicRaw.invert = azimuthalInvert(atan);\n\nfunction gnomonic() {\n return projection(gnomonicRaw)\n .scale(144.049)\n .clipAngle(60);\n}\n\nfunction orthographicRaw(x, y) {\n return [cos$1(y) * sin$1(x), sin$1(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin$1);\n\nfunction orthographic() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon$4);\n}\n\nfunction stereographicRaw(x, y) {\n var cy = cos$1(y), k = 1 + cos$1(x) * cy;\n return [cy * sin$1(x) / k, sin$1(y) / k];\n}\n\nstereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n});\n\nfunction stereographic() {\n return projection(stereographicRaw)\n .scale(250)\n .clipAngle(142);\n}\n\nfunction transverseMercatorRaw(lambda, phi) {\n return [log$1(tan((halfPi$3 + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function(x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi$3];\n};\n\nfunction transverseMercator() {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function(_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function(_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90])\n .scale(159.155);\n}\n\nexports.version = version;\nexports.bisect = bisectRight;\nexports.bisectRight = bisectRight;\nexports.bisectLeft = bisectLeft;\nexports.ascending = ascending;\nexports.bisector = bisector;\nexports.descending = descending;\nexports.deviation = deviation;\nexports.extent = extent;\nexports.histogram = histogram;\nexports.thresholdFreedmanDiaconis = freedmanDiaconis;\nexports.thresholdScott = scott;\nexports.thresholdSturges = sturges;\nexports.max = max;\nexports.mean = mean;\nexports.median = median;\nexports.merge = merge;\nexports.min = min;\nexports.pairs = pairs;\nexports.permute = permute;\nexports.quantile = threshold;\nexports.range = range;\nexports.scan = scan;\nexports.shuffle = shuffle;\nexports.sum = sum;\nexports.ticks = ticks;\nexports.tickStep = tickStep;\nexports.transpose = transpose;\nexports.variance = variance;\nexports.zip = zip;\nexports.entries = entries;\nexports.keys = keys;\nexports.values = values;\nexports.map = map$1;\nexports.set = set;\nexports.nest = nest;\nexports.randomUniform = uniform;\nexports.randomNormal = normal;\nexports.randomLogNormal = logNormal;\nexports.randomBates = bates;\nexports.randomIrwinHall = irwinHall;\nexports.randomExponential = exponential;\nexports.easeLinear = linear;\nexports.easeQuad = quadInOut;\nexports.easeQuadIn = quadIn;\nexports.easeQuadOut = quadOut;\nexports.easeQuadInOut = quadInOut;\nexports.easeCubic = easeCubicInOut;\nexports.easeCubicIn = cubicIn;\nexports.easeCubicOut = cubicOut;\nexports.easeCubicInOut = easeCubicInOut;\nexports.easePoly = polyInOut;\nexports.easePolyIn = polyIn;\nexports.easePolyOut = polyOut;\nexports.easePolyInOut = polyInOut;\nexports.easeSin = sinInOut;\nexports.easeSinIn = sinIn;\nexports.easeSinOut = sinOut;\nexports.easeSinInOut = sinInOut;\nexports.easeExp = expInOut;\nexports.easeExpIn = expIn;\nexports.easeExpOut = expOut;\nexports.easeExpInOut = expInOut;\nexports.easeCircle = circleInOut;\nexports.easeCircleIn = circleIn;\nexports.easeCircleOut = circleOut;\nexports.easeCircleInOut = circleInOut;\nexports.easeBounce = bounceOut;\nexports.easeBounceIn = bounceIn;\nexports.easeBounceOut = bounceOut;\nexports.easeBounceInOut = bounceInOut;\nexports.easeBack = backInOut;\nexports.easeBackIn = backIn;\nexports.easeBackOut = backOut;\nexports.easeBackInOut = backInOut;\nexports.easeElastic = elasticOut;\nexports.easeElasticIn = elasticIn;\nexports.easeElasticOut = elasticOut;\nexports.easeElasticInOut = elasticInOut;\nexports.polygonArea = area;\nexports.polygonCentroid = centroid;\nexports.polygonHull = hull;\nexports.polygonContains = contains;\nexports.polygonLength = length$1;\nexports.path = path;\nexports.quadtree = quadtree;\nexports.queue = queue;\nexports.arc = arc;\nexports.area = area$1;\nexports.line = line;\nexports.pie = pie;\nexports.radialArea = radialArea;\nexports.radialLine = radialLine$1;\nexports.symbol = symbol;\nexports.symbols = symbols;\nexports.symbolCircle = circle;\nexports.symbolCross = cross$1;\nexports.symbolDiamond = diamond;\nexports.symbolSquare = square;\nexports.symbolStar = star;\nexports.symbolTriangle = triangle;\nexports.symbolWye = wye;\nexports.curveBasisClosed = basisClosed;\nexports.curveBasisOpen = basisOpen;\nexports.curveBasis = basis;\nexports.curveBundle = bundle;\nexports.curveCardinalClosed = cardinalClosed;\nexports.curveCardinalOpen = cardinalOpen;\nexports.curveCardinal = cardinal;\nexports.curveCatmullRomClosed = catmullRomClosed;\nexports.curveCatmullRomOpen = catmullRomOpen;\nexports.curveCatmullRom = catmullRom;\nexports.curveLinearClosed = linearClosed;\nexports.curveLinear = curveLinear;\nexports.curveMonotoneX = monotoneX;\nexports.curveMonotoneY = monotoneY;\nexports.curveNatural = natural;\nexports.curveStep = step;\nexports.curveStepAfter = stepAfter;\nexports.curveStepBefore = stepBefore;\nexports.stack = stack;\nexports.stackOffsetExpand = expand;\nexports.stackOffsetNone = none;\nexports.stackOffsetSilhouette = silhouette;\nexports.stackOffsetWiggle = wiggle;\nexports.stackOrderAscending = ascending$1;\nexports.stackOrderDescending = descending$2;\nexports.stackOrderInsideOut = insideOut;\nexports.stackOrderNone = none$1;\nexports.stackOrderReverse = reverse;\nexports.color = color;\nexports.rgb = colorRgb;\nexports.hsl = colorHsl;\nexports.lab = lab;\nexports.hcl = colorHcl;\nexports.cubehelix = cubehelix;\nexports.interpolate = interpolate;\nexports.interpolateArray = array$1;\nexports.interpolateDate = date;\nexports.interpolateNumber = interpolateNumber;\nexports.interpolateObject = object;\nexports.interpolateRound = interpolateRound;\nexports.interpolateString = interpolateString;\nexports.interpolateTransformCss = interpolateTransform$1;\nexports.interpolateTransformSvg = interpolateTransform$2;\nexports.interpolateZoom = interpolateZoom;\nexports.interpolateRgb = interpolateRgb;\nexports.interpolateRgbBasis = rgbBasis;\nexports.interpolateRgbBasisClosed = rgbBasisClosed;\nexports.interpolateHsl = hsl$1;\nexports.interpolateHslLong = hslLong;\nexports.interpolateLab = lab$1;\nexports.interpolateHcl = hcl$1;\nexports.interpolateHclLong = hclLong;\nexports.interpolateCubehelix = cubehelix$2;\nexports.interpolateCubehelixLong = interpolateCubehelixLong;\nexports.interpolateBasis = basis$2;\nexports.interpolateBasisClosed = basisClosed$1;\nexports.quantize = quantize;\nexports.dispatch = dispatch;\nexports.dsvFormat = dsv;\nexports.csvParse = csvParse;\nexports.csvParseRows = csvParseRows;\nexports.csvFormat = csvFormat;\nexports.csvFormatRows = csvFormatRows;\nexports.tsvParse = tsvParse;\nexports.tsvParseRows = tsvParseRows;\nexports.tsvFormat = tsvFormat;\nexports.tsvFormatRows = tsvFormatRows;\nexports.request = request;\nexports.html = html;\nexports.json = json;\nexports.text = text;\nexports.xml = xml;\nexports.csv = csv$1;\nexports.tsv = tsv$1;\nexports.now = now;\nexports.timer = timer;\nexports.timerFlush = timerFlush;\nexports.timeout = timeout$1;\nexports.interval = interval$1;\nexports.timeInterval = newInterval;\nexports.timeMillisecond = millisecond;\nexports.timeMilliseconds = milliseconds;\nexports.timeSecond = second;\nexports.timeSeconds = seconds;\nexports.timeMinute = minute;\nexports.timeMinutes = minutes;\nexports.timeHour = hour;\nexports.timeHours = hours;\nexports.timeDay = day;\nexports.timeDays = days;\nexports.timeWeek = timeWeek;\nexports.timeWeeks = sundays;\nexports.timeSunday = timeWeek;\nexports.timeSundays = sundays;\nexports.timeMonday = timeMonday;\nexports.timeMondays = mondays;\nexports.timeTuesday = tuesday;\nexports.timeTuesdays = tuesdays;\nexports.timeWednesday = wednesday;\nexports.timeWednesdays = wednesdays;\nexports.timeThursday = thursday;\nexports.timeThursdays = thursdays;\nexports.timeFriday = friday;\nexports.timeFridays = fridays;\nexports.timeSaturday = saturday;\nexports.timeSaturdays = saturdays;\nexports.timeMonth = month;\nexports.timeMonths = months;\nexports.timeYear = year;\nexports.timeYears = years;\nexports.utcMillisecond = millisecond;\nexports.utcMilliseconds = milliseconds;\nexports.utcSecond = second;\nexports.utcSeconds = seconds;\nexports.utcMinute = utcMinute;\nexports.utcMinutes = utcMinutes;\nexports.utcHour = utcHour;\nexports.utcHours = utcHours;\nexports.utcDay = utcDay;\nexports.utcDays = utcDays;\nexports.utcWeek = utcWeek;\nexports.utcWeeks = utcSundays;\nexports.utcSunday = utcWeek;\nexports.utcSundays = utcSundays;\nexports.utcMonday = utcMonday;\nexports.utcMondays = utcMondays;\nexports.utcTuesday = utcTuesday;\nexports.utcTuesdays = utcTuesdays;\nexports.utcWednesday = utcWednesday;\nexports.utcWednesdays = utcWednesdays;\nexports.utcThursday = utcThursday;\nexports.utcThursdays = utcThursdays;\nexports.utcFriday = utcFriday;\nexports.utcFridays = utcFridays;\nexports.utcSaturday = utcSaturday;\nexports.utcSaturdays = utcSaturdays;\nexports.utcMonth = utcMonth;\nexports.utcMonths = utcMonths;\nexports.utcYear = utcYear;\nexports.utcYears = utcYears;\nexports.formatLocale = formatLocale;\nexports.formatDefaultLocale = defaultLocale;\nexports.formatSpecifier = formatSpecifier;\nexports.precisionFixed = precisionFixed;\nexports.precisionPrefix = precisionPrefix;\nexports.precisionRound = precisionRound;\nexports.isoFormat = formatIso;\nexports.isoParse = parseIso;\nexports.timeFormatLocale = formatLocale$1;\nexports.timeFormatDefaultLocale = defaultLocale$1;\nexports.scaleBand = band;\nexports.scalePoint = point$4;\nexports.scaleIdentity = identity$4;\nexports.scaleLinear = linear$2;\nexports.scaleLog = log;\nexports.scaleOrdinal = ordinal;\nexports.scaleImplicit = implicit;\nexports.scalePow = pow;\nexports.scaleSqrt = sqrt;\nexports.scaleQuantile = quantile;\nexports.scaleQuantize = quantize$1;\nexports.scaleThreshold = threshold$1;\nexports.scaleTime = time;\nexports.scaleUtc = utcTime;\nexports.schemeCategory10 = category10;\nexports.schemeCategory20b = category20b;\nexports.schemeCategory20c = category20c;\nexports.schemeCategory20 = category20;\nexports.scaleSequential = sequential;\nexports.interpolateCubehelixDefault = cubehelix$3;\nexports.interpolateRainbow = rainbow$1;\nexports.interpolateWarm = warm;\nexports.interpolateCool = cool;\nexports.interpolateViridis = viridis;\nexports.interpolateMagma = magma;\nexports.interpolateInferno = inferno;\nexports.interpolatePlasma = plasma;\nexports.creator = creator;\nexports.customEvent = customEvent;\nexports.local = local;\nexports.matcher = matcher$1;\nexports.mouse = mouse;\nexports.namespace = namespace;\nexports.namespaces = namespaces;\nexports.select = select;\nexports.selectAll = selectAll;\nexports.selection = selection;\nexports.selector = selector;\nexports.selectorAll = selectorAll;\nexports.touch = touch;\nexports.touches = touches;\nexports.window = window;\nexports.active = active;\nexports.interrupt = interrupt;\nexports.transition = transition;\nexports.axisTop = axisTop;\nexports.axisRight = axisRight;\nexports.axisBottom = axisBottom;\nexports.axisLeft = axisLeft;\nexports.cluster = cluster;\nexports.hierarchy = hierarchy;\nexports.pack = index;\nexports.packSiblings = siblings;\nexports.packEnclose = enclose;\nexports.partition = partition;\nexports.stratify = stratify;\nexports.tree = tree;\nexports.treemap = index$1;\nexports.treemapBinary = binary;\nexports.treemapDice = treemapDice;\nexports.treemapSlice = treemapSlice;\nexports.treemapSliceDice = sliceDice;\nexports.treemapSquarify = squarify;\nexports.treemapResquarify = resquarify;\nexports.forceCenter = center$1;\nexports.forceCollide = collide;\nexports.forceLink = link;\nexports.forceManyBody = manyBody;\nexports.forceSimulation = simulation;\nexports.forceX = x$3;\nexports.forceY = y$3;\nexports.drag = drag;\nexports.dragDisable = dragDisable;\nexports.dragEnable = dragEnable;\nexports.voronoi = voronoi;\nexports.zoom = zoom;\nexports.zoomIdentity = identity$6;\nexports.zoomTransform = transform;\nexports.brush = brush;\nexports.brushX = brushX;\nexports.brushY = brushY;\nexports.brushSelection = brushSelection;\nexports.chord = chord;\nexports.ribbon = ribbon;\nexports.geoAlbers = albers;\nexports.geoAlbersUsa = albersUsa;\nexports.geoArea = area$2;\nexports.geoAzimuthalEqualArea = azimuthalEqualArea;\nexports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw;\nexports.geoAzimuthalEquidistant = azimuthalEquidistant;\nexports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw;\nexports.geoBounds = bounds;\nexports.geoCentroid = centroid$1;\nexports.geoCircle = circle$1;\nexports.geoClipExtent = extent$1;\nexports.geoConicConformal = conicConformal;\nexports.geoConicConformalRaw = conicConformalRaw;\nexports.geoConicEqualArea = conicEqualArea;\nexports.geoConicEqualAreaRaw = conicEqualAreaRaw;\nexports.geoConicEquidistant = conicEquidistant;\nexports.geoConicEquidistantRaw = conicEquidistantRaw;\nexports.geoDistance = distance;\nexports.geoEquirectangular = equirectangular;\nexports.geoEquirectangularRaw = equirectangularRaw;\nexports.geoGnomonic = gnomonic;\nexports.geoGnomonicRaw = gnomonicRaw;\nexports.geoGraticule = graticule;\nexports.geoInterpolate = interpolate$2;\nexports.geoLength = length$2;\nexports.geoMercator = mercator;\nexports.geoMercatorRaw = mercatorRaw;\nexports.geoOrthographic = orthographic;\nexports.geoOrthographicRaw = orthographicRaw;\nexports.geoPath = index$3;\nexports.geoProjection = projection;\nexports.geoProjectionMutator = projectionMutator;\nexports.geoRotation = rotation;\nexports.geoStereographic = stereographic;\nexports.geoStereographicRaw = stereographicRaw;\nexports.geoStream = geoStream;\nexports.geoTransform = transform$1;\nexports.geoTransverseMercator = transverseMercator;\nexports.geoTransverseMercatorRaw = transverseMercatorRaw;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/d3v4/build/d3.js\n// module id = 24\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 0522f39..0000000 --- a/yarn.lock +++ /dev/null @@ -1,6925 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -abab@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" - -accepts@~1.3.4, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - dependencies: - acorn "^4.0.3" - -acorn-globals@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" - dependencies: - acorn "^4.0.4" - -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^4.0.3, acorn@^4.0.4: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - -acorn@^5.0.0, acorn@^5.4.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102" - -address@1.0.3, address@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" - -ajv-keywords@^2.0.0, ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - -ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.0, ajv@^5.2.3: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - dependencies: - string-width "^2.0.0" - -ansi-escapes@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - -ansi-escapes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - -ansi-regex@^2.0.0, ansi-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.0.0, ansi-styles@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" - dependencies: - color-convert "^1.9.0" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - -append-transform@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" - dependencies: - default-require-extensions "^1.0.0" - -argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: - sprintf-js "~1.0.2" - -aria-query@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e" - dependencies: - ast-types-flow "0.0.7" - commander "^2.11.0" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - -array-flatten@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" - -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - -asn1.js@^4.0.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -ast-types-flow@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async@2.6.0, async@^2.1.2, async@^2.1.4, async@^2.4.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" - dependencies: - lodash "^4.14.0" - -async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -autoprefixer@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.6.tgz#fb933039f74af74a83e71225ce78d9fd58ba84d7" - dependencies: - browserslist "^2.5.1" - caniuse-lite "^1.0.30000748" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^6.0.13" - postcss-value-parser "^3.2.3" - -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" - -axobject-query@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" - dependencies: - ast-types-flow "0.0.7" - -babel-code-frame@6.26.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@6.26.0, babel-core@^6.0.0, babel-core@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" - -babel-eslint@7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" - dependencies: - babel-code-frame "^6.22.0" - babel-traverse "^6.23.1" - babel-types "^6.23.0" - babylon "^6.17.0" - -babel-generator@^6.18.0, babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-jest@20.0.3, babel-jest@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.3.tgz#e4a03b13dc10389e140fc645d09ffc4ced301671" - dependencies: - babel-core "^6.0.0" - babel-plugin-istanbul "^4.0.0" - babel-preset-jest "^20.0.3" - -babel-loader@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" - dependencies: - find-cache-dir "^1.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-dynamic-import-node@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz#bd1d88ac7aaf98df4917c384373b04d971a2b37a" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-istanbul@^4.0.0: - version "4.1.5" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e" - dependencies: - find-up "^2.1.0" - istanbul-lib-instrument "^1.7.5" - test-exclude "^4.1.1" - -babel-plugin-jest-hoist@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-dynamic-import@6.18.0, babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-class-properties@6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@6.23.0, babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-object-rest-spread@6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - -babel-plugin-transform-react-constant-elements@6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz#2f119bf4d2cdd45eb9baaae574053c604f6147dd" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@6.22.0, babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-source@6.22.0, babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@6.24.1, babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@6.26.0, babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-runtime@6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-jest@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz#cbacaadecb5d689ca1e1de1360ebfc66862c178a" - dependencies: - babel-plugin-jest-hoist "^20.0.3" - -babel-preset-react-app@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-3.1.1.tgz#d3f06a79742f0e89d7afcb72e282d9809c850920" - dependencies: - babel-plugin-dynamic-import-node "1.1.0" - babel-plugin-syntax-dynamic-import "6.18.0" - babel-plugin-transform-class-properties "6.24.1" - babel-plugin-transform-es2015-destructuring "6.23.0" - babel-plugin-transform-object-rest-spread "6.26.0" - babel-plugin-transform-react-constant-elements "6.23.0" - babel-plugin-transform-react-jsx "6.24.1" - babel-plugin-transform-react-jsx-self "6.22.0" - babel-plugin-transform-react-jsx-source "6.22.0" - babel-plugin-transform-regenerator "6.26.0" - babel-plugin-transform-runtime "6.23.0" - babel-preset-env "1.6.1" - babel-preset-react "6.24.1" - -babel-preset-react@6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@6.26.0, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.17.0, babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - -base64-js@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" - -base64url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - -binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.4.7: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - -bn.js@^5.0.0, bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - -boom@4.x.x: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - dependencies: - hoek "4.x.x" - -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - -brace-expansion@^1.0.0, brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browser-resolve@^1.11.2: - version "1.11.2" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" - dependencies: - resolve "1.1.7" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-rsa@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e" - dependencies: - bn.js "^5.2.1" - browserify-rsa "^4.1.0" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.4" - inherits "^2.0.4" - parse-asn1 "^5.1.6" - readable-stream "^3.6.2" - safe-buffer "^5.2.1" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - dependencies: - pako "~1.0.5" - -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" - dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" - -browserslist@^2.1.2, browserslist@^2.5.1: - version "2.11.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" - dependencies: - caniuse-lite "^1.0.30000792" - electron-to-chromium "^1.3.30" - -bser@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169" - dependencies: - node-int64 "^0.4.0" - -bser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" - dependencies: - node-int64 "^0.4.0" - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-modules@^1.0.0, builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - -camelcase@^4.0.0, camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" - dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000807" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000807.tgz#2f02732d0f060e65472d4608b3d507f257b71655" - -caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792: - version "1.0.30000807" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000807.tgz#51ea478d07269e9dd4d8c639509df61d2516fa92" - -capture-stack-trace@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" - -case-sensitive-paths-webpack-plugin@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz#3d29ced8c1f124bf6f53846fb3f5894731fdc909" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@1.1.3, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" - -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - -chokidar@^1.6.0, chokidar@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -ci-info@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - dependencies: - chalk "^1.1.3" - -clean-css@4.1.x: - version "4.1.9" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301" - dependencies: - source-map "0.5.x" - -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - dependencies: - restore-cursor "^2.0.0" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -clone@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" - dependencies: - q "^1.1.2" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -color-convert@^1.3.0, color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" - dependencies: - color-name "^1.1.1" - -color-name@^1.0.0, color-name@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - dependencies: - color-name "^1.0.0" - -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commander@2, commander@2.14.x, commander@^2.11.0, commander@~2.14.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" - -commander@2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -compressible@~2.0.11: - version "2.0.12" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.12.tgz#c59a5c99db76767e9876500e271ef63b3493bd66" - dependencies: - mime-db ">= 1.30.0 < 2" - -compression@^1.5.2: - version "1.7.1" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db" - dependencies: - accepts "~1.3.4" - bytes "3.0.0" - compressible "~2.0.11" - debug "2.6.9" - on-headers "~1.0.1" - safe-buffer "5.1.1" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -configstore@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - -connect-history-api-fallback@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - dependencies: - safe-buffer "5.2.1" - -content-type-parser@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - -convert-source-map@^1.4.0, convert-source-map@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" - -create-ecdh@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - dependencies: - capture-stack-trace "^1.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - ripemd160 "^2.0.0" - sha.js "^2.4.0" - -create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4: - version "1.1.6" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cryptiles@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" - dependencies: - boom "5.x.x" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - -css-color-names@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - -css-loader@0.28.7: - version "0.28.7" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.7.tgz#5f2ee989dd32edd907717f953317656160999c1b" - dependencies: - babel-code-frame "^6.11.0" - css-selector-tokenizer "^0.7.0" - cssnano ">=2.6.1 <4" - icss-utils "^2.1.0" - loader-utils "^1.0.2" - lodash.camelcase "^4.3.0" - object-assign "^4.0.1" - postcss "^5.0.6" - postcss-modules-extract-imports "^1.0.0" - postcss-modules-local-by-default "^1.0.1" - postcss-modules-scope "^1.0.0" - postcss-modules-values "^1.1.0" - postcss-value-parser "^3.3.0" - source-list-map "^2.0.0" - -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-selector-tokenizer@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" - -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - -"cssnano@>=2.6.1 <4": - version "3.10.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" - dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" - dependencies: - clap "^1.0.9" - source-map "^0.5.3" - -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" - -"cssstyle@>= 0.2.37 < 0.3.0": - version "0.2.37" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" - dependencies: - cssom "0.3.x" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -d3-array@1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.1.tgz#d1ca33de2f6ac31efadb8e050a021d7e2396d5dc" - -d3-array@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.0.1.tgz#375c02874fcd96c16ed9f1bcf5b4a7be53f358e7" - -d3-axis@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.3.tgz#ddcbd8a23c2a568d3787de0dee00a36413c5d595" - -d3-brush@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.0.2.tgz#c9a725d0d7f7d69245551ff96e264215e59a82eb" - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - -d3-chord@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.2.tgz#9b1ac90efe7de448c0b9188309071de52855a99a" - dependencies: - d3-array "1" - d3-path "1" - -d3-collection@1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.4.tgz#342dfd12837c90974f33f1cc0a785aea570dcdc2" - -d3-collection@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.1.tgz#5b5c5626f731122b600b107d71a08833fec049ad" - -d3-color@1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.0.3.tgz#bc7643fca8e53a8347e2fbdaffa236796b58509b" - -d3-color@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.0.1.tgz#73cc91f4ee3f12e00ca06b1596a7c83cf104723a" - -d3-dispatch@1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.3.tgz#46e1491eaa9b58c358fce5be4e8bed626e7871f8" - -d3-dispatch@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.1.tgz#4bd65a43cecff4318deb9df24552aa8bf281a840" - -d3-drag@1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.1.tgz#df8dd4c502fb490fc7462046a8ad98a5c479282d" - dependencies: - d3-dispatch "1" - d3-selection "1" - -d3-drag@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.0.1.tgz#49ad9f5c91865593fb30c86b15f9322d43fec51f" - dependencies: - d3-dispatch "1" - d3-selection "1" - -d3-dsv@1: - version "1.0.8" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.8.tgz#907e240d57b386618dc56468bacfe76bf19764ae" - dependencies: - commander "2" - iconv-lite "0.4" - rw "1" - -d3-dsv@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.1.tgz#d495347c04cb1e0d26557bbdc4775c4d11a245ea" - dependencies: - rw "1" - -d3-ease@1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.3.tgz#68bfbc349338a380c44d8acc4fbc3304aa2d8c0e" - -d3-ease@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.1.tgz#a18c2d44e218fb8b9ec6d635bcca587f85979a85" - -d3-force@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.0.2.tgz#92dbedeacf9a2d3f6686450c8d6375f3c363af66" - dependencies: - d3-collection "1" - d3-dispatch "1" - d3-quadtree "1" - d3-timer "1" - -d3-format@1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.2.2.tgz#1a39c479c8a57fe5051b2e67a3bee27061a74e7a" - -d3-format@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.0.2.tgz#138618320b4bbeb43b5c0ff30519079fbbd7375e" - -d3-geo@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.2.3.tgz#9b2430a76a72510f2c4a5862fe1f07305052c6a9" - dependencies: - d3-array "1" - -d3-hierarchy@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.0.2.tgz#c8faa11dc49bcc93914c6aa35a46bdee4e01ee72" - -d3-interpolate@1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6" - dependencies: - d3-color "1" - -d3-interpolate@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.1.tgz#f9ad4f9a421b22cad8838cf53d9bd2cbad0b8fd7" - dependencies: - d3-color "1" - -d3-path@1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.5.tgz#241eb1849bd9e9e8021c0d0a799f8a0e8e441764" - -d3-path@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.1.tgz#a8c07cf633b6bd5f970e08638e49e5979b419cb5" - -d3-polygon@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.1.tgz#c1e710cc715b082f18494d102e41bdaaf8c44d03" - -d3-quadtree@1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.3.tgz#ac7987e3e23fe805a990f28e1b50d38fcb822438" - -d3-quadtree@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.1.tgz#13be025624f110405ed43536c506aaec199ed591" - -d3-queue@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/d3-queue/-/d3-queue-3.0.2.tgz#f2939cccd94b301cc729e1c9d158bd5c2b6c7036" - -d3-random@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.0.1.tgz#2c9444cdcba23f8c41f7940d46bf301bf99603eb" - -d3-request@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-request/-/d3-request-1.0.2.tgz#98083736d4146fdd28703b5aa8ef7e7328ba3f69" - dependencies: - d3-collection "1" - d3-dispatch "1" - d3-dsv "1" - xmlhttprequest "1" - -d3-scale-chromatic@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.2.0.tgz#25820d059c0eccc33e85f77561f37382a817ab58" - dependencies: - d3-color "1" - d3-interpolate "1" - -d3-scale@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.3.tgz#4f9e8f0cc2ea0f3925ff04ac27adc09045fa4c90" - dependencies: - d3-array "1" - d3-collection "1" - d3-color "1" - d3-format "1" - d3-interpolate "1" - d3-time "1" - d3-time-format "2" - -d3-selection@1, d3-selection@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.3.0.tgz#d53772382d3dc4f7507bfb28bcd2d6aed2a0ad6d" - -d3-selection@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.0.2.tgz#ae662afd4702ac9c5da039b2107a1764fa1c9070" - -d3-shape@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.0.2.tgz#3765714f864581b5787d08b17ec7a8d62d0318f9" - dependencies: - d3-path "1" - -d3-time-format@2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.1.tgz#85b7cdfbc9ffca187f14d3c456ffda268081bb31" - dependencies: - d3-time "1" - -d3-time-format@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.0.2.tgz#1c537e9d4558966a658c51f4ca3dd1b47369c2d5" - dependencies: - d3-time "1" - -d3-time@1: - version "1.0.8" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.8.tgz#dbd2d6007bf416fe67a76d17947b784bffea1e84" - -d3-time@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.2.tgz#25da641a7061af8f68ad08ca173101717b7430fc" - -d3-timer@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.7.tgz#df9650ca587f6c96607ff4e60cc38229e8dd8531" - -d3-timer@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.2.tgz#6ebf6bbeb6add41fc505284a97cc7611a30029f3" - -d3-transition@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.1.1.tgz#d8ef89c3b848735b060e54a39b32aaebaa421039" - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" - -d3-transition@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.0.1.tgz#03fcf34d2ff102a1785768ee52dd6b9c190af7c8" - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "1" - d3-timer "1" - -d3-voronoi@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.0.2.tgz#09b1a3a7891c4ed8376d9ffdb2e770430f3f55c3" - -d3-zoom@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.0.3.tgz#b36bfb517e535dff0e179088dbeb3d7899a6050e" - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - -d3v4@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/d3v4/-/d3v4-4.2.2.tgz#758136fd790aaa8fd557dac35bc34c3812281c58" - dependencies: - d3-array "1.0.1" - d3-axis "1.0.3" - d3-brush "1.0.2" - d3-chord "1.0.2" - d3-collection "1.0.1" - d3-color "1.0.1" - d3-dispatch "1.0.1" - d3-drag "1.0.1" - d3-dsv "1.0.1" - d3-ease "1.0.1" - d3-force "1.0.2" - d3-format "1.0.2" - d3-geo "1.2.3" - d3-hierarchy "1.0.2" - d3-interpolate "1.1.1" - d3-path "1.0.1" - d3-polygon "1.0.1" - d3-quadtree "1.0.1" - d3-queue "3.0.2" - d3-random "1.0.1" - d3-request "1.0.2" - d3-scale "1.0.3" - d3-selection "1.0.2" - d3-shape "1.0.2" - d3-time "1.0.2" - d3-time-format "2.0.2" - d3-timer "1.0.2" - d3-transition "1.0.1" - d3-voronoi "1.0.2" - d3-zoom "1.0.3" - -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" - -d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -damerau-levenshtein@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -debug@2.6.9, debug@^2.2.0, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -debug@^3.0.1, debug@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - dependencies: - ms "2.0.0" - -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - -deep-extend@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -default-require-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" - dependencies: - strip-bom "^2.0.0" - -define-properties@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" - dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -del@^2.0.2, del@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -depd@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-node@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" - -detect-port-alt@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.5.tgz#a1aa8fc805a4a5df9b905b7ddc7eed036bcce889" - dependencies: - address "^1.0.1" - debug "^2.6.0" - -diff@^3.2.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" - -diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - dependencies: - buffer-indexof "^1.0.0" - -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - dependencies: - esutils "^2.0.2" - -dom-converter@~0.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" - dependencies: - utila "~0.3" - -dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -dom-urls@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/dom-urls/-/dom-urls-1.1.0.tgz#001ddf81628cd1e706125c7176f53ccec55d918e" - dependencies: - urijs "^1.16.1" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - -domelementtype@1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" - dependencies: - domelementtype "1" - -domutils@1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - dependencies: - is-obj "^1.0.0" - -dotenv-expand@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" - -dotenv@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - -duplexer@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.33" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.33.tgz#bf00703d62a7c65238136578c352d6c5c042a545" - -elliptic@^6.0.0, elliptic@^6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^6.1.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - -enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" - -entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -errno@^0.1.3, errno@^0.1.4: - version "0.1.6" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026" - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.7.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" - dependencies: - is-callable "^1.1.1" - is-date-object "^1.0.1" - is-symbol "^1.0.1" - -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.63" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.63.tgz#9c222a63b6a332ac80b1e373b426af723b895bd6" - dependencies: - es6-iterator "^2.0.3" - es6-symbol "^3.1.3" - esniff "^2.0.1" - next-tick "^1.1.0" - -es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-promise@^4.0.5: - version "4.2.4" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-symbol@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - dependencies: - d "^1.0.1" - ext "^1.1.2" - -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@^1.6.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852" - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.5.6" - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-config-react-app@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-2.1.0.tgz#23c909f71cbaff76b945b831d2d814b8bde169eb" - -eslint-import-resolver-node@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" - dependencies: - debug "^2.6.9" - resolve "^1.5.0" - -eslint-loader@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13" - dependencies: - loader-fs-cache "^1.0.0" - loader-utils "^1.0.2" - object-assign "^4.0.1" - object-hash "^1.1.4" - rimraf "^2.6.1" - -eslint-module-utils@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" - dependencies: - debug "^2.6.8" - pkg-dir "^1.0.0" - -eslint-plugin-flowtype@2.39.1: - version "2.39.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz#b5624622a0388bcd969f4351131232dcb9649cd5" - dependencies: - lodash "^4.15.0" - -eslint-plugin-import@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" - dependencies: - builtin-modules "^1.1.1" - contains-path "^0.1.0" - debug "^2.6.8" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.1.1" - has "^1.0.1" - lodash.cond "^4.3.0" - minimatch "^3.0.3" - read-pkg-up "^2.0.0" - -eslint-plugin-jsx-a11y@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz#5c96bb5186ca14e94db1095ff59b3e2bd94069b1" - dependencies: - aria-query "^0.7.0" - array-includes "^3.0.3" - ast-types-flow "0.0.7" - axobject-query "^0.1.0" - damerau-levenshtein "^1.0.0" - emoji-regex "^6.1.0" - jsx-ast-utils "^1.4.0" - -eslint-plugin-react@7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz#300a95861b9729c087d362dd64abcc351a74364a" - dependencies: - doctrine "^2.0.0" - has "^1.0.1" - jsx-ast-utils "^2.0.0" - prop-types "^15.5.10" - -eslint-scope@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint@4.10.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.10.0.tgz#f25d0d7955c81968c2309aa5c9a229e045176bb7" - dependencies: - ajv "^5.2.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.0.1" - doctrine "^2.0.0" - eslint-scope "^3.7.1" - espree "^3.5.1" - esquery "^1.0.0" - estraverse "^4.2.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^9.17.0" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "^4.0.1" - text-table "~0.2.0" - -esniff@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" - dependencies: - d "^1.0.1" - es5-ext "^0.10.62" - event-emitter "^0.3.5" - type "^2.7.2" - -espree@^3.5.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.3.tgz#931e0af64e7fbbed26b050a29daad1fc64799fa6" - dependencies: - acorn "^5.4.0" - acorn-jsx "^3.0.0" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - -esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" - -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" - dependencies: - estraverse "^4.1.0" - object-assign "^4.0.1" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - -event-emitter@^0.3.5, event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" - -eventemitter3@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -eventsource@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" - dependencies: - original ">=0.0.5" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -exec-sh@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" - dependencies: - merge "^1.1.3" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - dependencies: - homedir-polyfill "^1.0.1" - -express@^4.13.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" - dependencies: - type "^2.7.2" - -extend@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -external-editor@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extract-text-webpack-plugin@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" - dependencies: - async "^2.4.1" - loader-utils "^1.1.0" - schema-utils "^0.3.0" - webpack-sources "^1.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - -fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -fastparse@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^1.8.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.2.tgz#a24cf47827f82d38fb59a69ad70b76e3b6ae7383" - dependencies: - bser "1.0.2" - -fb-watchman@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" - dependencies: - bser "^2.0.0" - -fbjs@^0.8.16: - version "0.8.16" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.9" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -file-loader@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.5.tgz#91c25b6b6fbe56dae99f10a425fd64933b5c9daa" - dependencies: - loader-utils "^1.0.2" - schema-utils "^0.3.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fileset@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - -filesize@3.5.11: - version "3.5.11" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" - dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - -fs-extra@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^3.0.0" - universalify "^0.1.0" - -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0, fsevents@^1.1.3: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -function-bind@^1.0.2, function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - -get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -gh-pages@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-1.1.0.tgz#738134d8e35e5323b39892cda28b8904e85f24b2" - dependencies: - async "2.6.0" - base64url "^2.0.0" - commander "2.11.0" - fs-extra "^4.0.2" - globby "^6.1.0" - graceful-fs "4.1.11" - rimraf "^2.6.2" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - dependencies: - ini "^1.3.4" - -global-modules@1.0.0, global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -globals@^9.17.0, globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - -graceful-fs@4.1.11, graceful-fs@^4.1.11, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -graceful-fs@^4.1.2: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - -gzip-size@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" - dependencies: - duplexer "^0.1.1" - -handle-thing@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" - -handlebars@^4.0.3: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - -har-validator@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - dependencies: - ajv "^5.1.0" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - -has@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - dependencies: - function-bind "^1.1.1" - -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" - dependencies: - inherits "^2.0.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hawk@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" - -he@1.1.x: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoek@4.x.x: - version "4.2.0" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" - -html-encoding-sniffer@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - dependencies: - whatwg-encoding "^1.0.1" - -html-entities@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - -html-minifier@^3.2.3: - version "3.5.9" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.9.tgz#74424014b872598d4bb0e20ac420926ec61024b6" - dependencies: - camel-case "3.0.x" - clean-css "4.1.x" - commander "2.14.x" - he "1.1.x" - ncname "1.0.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.3.x" - -html-webpack-plugin@2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz#e987f421853d3b6938c8c4c8171842e5fd17af23" - dependencies: - bluebird "^3.4.7" - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - toposort "^1.0.0" - -htmlparser2@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" - dependencies: - domelementtype "1" - domhandler "2.1" - domutils "1.1" - readable-stream "1.0" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@~1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-parser-js@>=0.4.0: - version "0.4.10" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" - -http-proxy-middleware@~0.17.4: - version "0.17.4" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" - dependencies: - http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" - -http-proxy@^1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" - dependencies: - eventemitter3 "1.x.x" - requires-port "1.x.x" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - -iconv-lite@0.4, iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" - dependencies: - postcss "^6.0.1" - -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -ignore@^3.3.3: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - -import-local@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-0.1.1.tgz#b1179572aacdc11c6a91009fb430dbcab5f668a8" - dependencies: - pkg-dir "^2.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -ini@^1.3.4, ini@~1.3.0: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - -inquirer@3.3.0, inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -internal-ip@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" - dependencies: - meow "^3.3.0" - -interpret@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" - -invariant@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -ip@^1.1.0, ip@^1.1.5: - version "1.1.9" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-callable@^1.1.1, is-callable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" - -is-ci@^1.0.10: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" - dependencies: - ci-info "^1.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - dependencies: - has "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - -is-retry-allowed@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" - -is-root@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5" - -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -is-windows@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9" - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -istanbul-api@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.2.1.tgz#0c60a0515eb11c7d65c6b50bba2c6e999acd8620" - dependencies: - async "^2.1.4" - fileset "^2.0.2" - istanbul-lib-coverage "^1.1.1" - istanbul-lib-hook "^1.1.0" - istanbul-lib-instrument "^1.9.1" - istanbul-lib-report "^1.1.2" - istanbul-lib-source-maps "^1.2.2" - istanbul-reports "^1.1.3" - js-yaml "^3.7.0" - mkdirp "^0.5.1" - once "^1.4.0" - -istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" - -istanbul-lib-hook@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b" - dependencies: - append-transform "^0.4.0" - -istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e" - dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.1.1" - semver "^5.3.0" - -istanbul-lib-report@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425" - dependencies: - istanbul-lib-coverage "^1.1.1" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" - -istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c" - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.1.1" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-reports@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.3.tgz#3b9e1e8defb6d18b1d425da8e8b32c5a163f2d10" - dependencies: - handlebars "^4.0.3" - -jest-changed-files@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8" - -jest-cli@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-20.0.4.tgz#e532b19d88ae5bc6c417e8b0593a6fe954b1dc93" - dependencies: - ansi-escapes "^1.4.0" - callsites "^2.0.0" - chalk "^1.1.3" - graceful-fs "^4.1.11" - is-ci "^1.0.10" - istanbul-api "^1.1.1" - istanbul-lib-coverage "^1.0.1" - istanbul-lib-instrument "^1.4.2" - istanbul-lib-source-maps "^1.1.0" - jest-changed-files "^20.0.3" - jest-config "^20.0.4" - jest-docblock "^20.0.3" - jest-environment-jsdom "^20.0.3" - jest-haste-map "^20.0.4" - jest-jasmine2 "^20.0.4" - jest-message-util "^20.0.3" - jest-regex-util "^20.0.3" - jest-resolve-dependencies "^20.0.3" - jest-runtime "^20.0.4" - jest-snapshot "^20.0.3" - jest-util "^20.0.3" - micromatch "^2.3.11" - node-notifier "^5.0.2" - pify "^2.3.0" - slash "^1.0.0" - string-length "^1.0.1" - throat "^3.0.0" - which "^1.2.12" - worker-farm "^1.3.1" - yargs "^7.0.2" - -jest-config@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-20.0.4.tgz#e37930ab2217c913605eff13e7bd763ec48faeea" - dependencies: - chalk "^1.1.3" - glob "^7.1.1" - jest-environment-jsdom "^20.0.3" - jest-environment-node "^20.0.3" - jest-jasmine2 "^20.0.4" - jest-matcher-utils "^20.0.3" - jest-regex-util "^20.0.3" - jest-resolve "^20.0.4" - jest-validate "^20.0.3" - pretty-format "^20.0.3" - -jest-diff@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.3.tgz#81f288fd9e675f0fb23c75f1c2b19445fe586617" - dependencies: - chalk "^1.1.3" - diff "^3.2.0" - jest-matcher-utils "^20.0.3" - pretty-format "^20.0.3" - -jest-docblock@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712" - -jest-environment-jsdom@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz#048a8ac12ee225f7190417713834bb999787de99" - dependencies: - jest-mock "^20.0.3" - jest-util "^20.0.3" - jsdom "^9.12.0" - -jest-environment-node@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-20.0.3.tgz#d488bc4612af2c246e986e8ae7671a099163d403" - dependencies: - jest-mock "^20.0.3" - jest-util "^20.0.3" - -jest-haste-map@^20.0.4: - version "20.0.5" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.5.tgz#abad74efb1a005974a7b6517e11010709cab9112" - dependencies: - fb-watchman "^2.0.0" - graceful-fs "^4.1.11" - jest-docblock "^20.0.3" - micromatch "^2.3.11" - sane "~1.6.0" - worker-farm "^1.3.1" - -jest-jasmine2@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz#fcc5b1411780d911d042902ef1859e852e60d5e1" - dependencies: - chalk "^1.1.3" - graceful-fs "^4.1.11" - jest-diff "^20.0.3" - jest-matcher-utils "^20.0.3" - jest-matchers "^20.0.3" - jest-message-util "^20.0.3" - jest-snapshot "^20.0.3" - once "^1.4.0" - p-map "^1.1.1" - -jest-matcher-utils@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz#b3a6b8e37ca577803b0832a98b164f44b7815612" - dependencies: - chalk "^1.1.3" - pretty-format "^20.0.3" - -jest-matchers@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60" - dependencies: - jest-diff "^20.0.3" - jest-matcher-utils "^20.0.3" - jest-message-util "^20.0.3" - jest-regex-util "^20.0.3" - -jest-message-util@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.3.tgz#6aec2844306fcb0e6e74d5796c1006d96fdd831c" - dependencies: - chalk "^1.1.3" - micromatch "^2.3.11" - slash "^1.0.0" - -jest-mock@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59" - -jest-regex-util@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762" - -jest-resolve-dependencies@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz#6e14a7b717af0f2cb3667c549de40af017b1723a" - dependencies: - jest-regex-util "^20.0.3" - -jest-resolve@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-20.0.4.tgz#9448b3e8b6bafc15479444c6499045b7ffe597a5" - dependencies: - browser-resolve "^1.11.2" - is-builtin-module "^1.0.0" - resolve "^1.3.2" - -jest-runtime@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-20.0.4.tgz#a2c802219c4203f754df1404e490186169d124d8" - dependencies: - babel-core "^6.0.0" - babel-jest "^20.0.3" - babel-plugin-istanbul "^4.0.0" - chalk "^1.1.3" - convert-source-map "^1.4.0" - graceful-fs "^4.1.11" - jest-config "^20.0.4" - jest-haste-map "^20.0.4" - jest-regex-util "^20.0.3" - jest-resolve "^20.0.4" - jest-util "^20.0.3" - json-stable-stringify "^1.0.1" - micromatch "^2.3.11" - strip-bom "3.0.0" - yargs "^7.0.2" - -jest-snapshot@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-20.0.3.tgz#5b847e1adb1a4d90852a7f9f125086e187c76566" - dependencies: - chalk "^1.1.3" - jest-diff "^20.0.3" - jest-matcher-utils "^20.0.3" - jest-util "^20.0.3" - natural-compare "^1.4.0" - pretty-format "^20.0.3" - -jest-util@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.3.tgz#0c07f7d80d82f4e5a67c6f8b9c3fe7f65cfd32ad" - dependencies: - chalk "^1.1.3" - graceful-fs "^4.1.11" - jest-message-util "^20.0.3" - jest-mock "^20.0.3" - jest-validate "^20.0.3" - leven "^2.1.0" - mkdirp "^0.5.1" - -jest-validate@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-20.0.3.tgz#d0cfd1de4f579f298484925c280f8f1d94ec3cab" - dependencies: - chalk "^1.1.3" - jest-matcher-utils "^20.0.3" - leven "^2.1.0" - pretty-format "^20.0.3" - -jest@20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.4.tgz#3dd260c2989d6dad678b1e9cc4d91944f6d602ac" - dependencies: - jest-cli "^20.0.4" - -js-base64@^2.1.9: - version "2.4.3" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.1: - version "3.10.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jsdom@^9.12.0: - version "9.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" - dependencies: - abab "^1.0.3" - acorn "^4.0.4" - acorn-globals "^3.1.0" - array-equal "^1.0.0" - content-type-parser "^1.0.1" - cssom ">= 0.3.2 < 0.4.0" - cssstyle ">= 0.2.37 < 0.3.0" - escodegen "^1.6.1" - html-encoding-sniffer "^1.0.1" - nwmatcher ">= 1.3.9 < 2.0.0" - parse5 "^1.5.1" - request "^2.79.0" - sax "^1.2.1" - symbol-tree "^3.2.1" - tough-cookie "^2.3.2" - webidl-conversions "^4.0.0" - whatwg-encoding "^1.0.1" - whatwg-url "^4.3.0" - xml-name-validator "^2.0.1" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json3@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -jsx-ast-utils@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" - -jsx-ast-utils@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" - dependencies: - array-includes "^3.0.3" - -killable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" - -kind-of@^3.0.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - optionalDependencies: - graceful-fs "^4.1.9" - -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - dependencies: - package-json "^4.0.0" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-fs-cache@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc" - dependencies: - find-cache-dir "^0.1.1" - mkdirp "0.5.1" - -loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash._reinterpolate@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - -lodash.cond@^4.3.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - -lodash.template@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" - dependencies: - lodash._reinterpolate "~3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" - dependencies: - lodash._reinterpolate "~3.0.0" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - -"lodash@>=3.5 <5", lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - -loglevel@^1.4.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - -lowercase-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - -lru-cache@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -macaddress@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" - -make-dir@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" - dependencies: - pify "^3.0.0" - -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - dependencies: - tmpl "1.0.x" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" - -md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" - -memory-fs@^0.4.0, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.3.0, meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - -merge@^1.1.3: - version "1.2.1" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.1.5, micromatch@^2.3.11: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - -"mime-db@>= 1.30.0 < 2": - version "1.32.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.32.0.tgz#485b3848b01a3cda5f968b4882c0771e58e09414" - -mime-db@~1.30.0: - version "1.30.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" - -mime-types@^2.1.12, mime-types@~2.1.17: - version "2.1.17" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" - dependencies: - mime-db "~1.30.0" - -mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - dependencies: - mime-db "1.52.0" - -mime@1.6.0, mime@^1.4.1, mime@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -minimatch@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - -mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - -nan@^2.12.1: - version "2.18.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - -ncname@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" - dependencies: - xml-char-classes "^1.0.0" - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - -neo-async@^2.6.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - dependencies: - lower-case "^1.1.1" - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-forge@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - -node-libs-browser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.0" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-notifier@^5.0.2: - version "5.2.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" - dependencies: - growly "^1.3.0" - semver "^5.4.1" - shellwords "^0.1.1" - which "^1.3.0" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0, normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -nth-check@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -"nwmatcher@>= 1.3.9 < 2.0.0": - version "1.4.3" - resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c" - -oauth-sign@~0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-hash@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.2.0.tgz#e96af0e96981996a1d47f88ead8f74f1ebc4422b" - -object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - -object-keys@^1.0.8: - version "1.0.11" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -obuf@^1.0.0, obuf@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" - -once@^1.3.0, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - dependencies: - mimic-fn "^1.0.0" - -opn@5.2.0, opn@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" - dependencies: - is-wsl "^1.1.0" - -optionator@^0.8.1, optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -original@>=0.0.5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" - dependencies: - url-parse "1.0.x" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-limit@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" - dependencies: - p-try "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - -pako@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - dependencies: - no-case "^2.2.0" - -parse-asn1@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - -parse-asn1@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - -parse5@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - -path-to-regexp@^1.0.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" - dependencies: - isarray "0.0.1" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -pbkdf2@^3.0.3: - version "3.0.14" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - dependencies: - find-up "^1.0.0" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - -portfinder@^1.0.9: - version "1.0.13" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" - dependencies: - async "^1.5.2" - debug "^2.2.0" - mkdirp "0.5.x" - -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" - -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" - dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" - -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" - dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" - -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - dependencies: - postcss "^5.0.14" - -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" - dependencies: - postcss "^5.0.4" - -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - dependencies: - postcss "^5.0.14" - -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - dependencies: - postcss "^5.0.16" - -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" - dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" - -postcss-filter-plugins@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" - dependencies: - postcss "^5.0.4" - uniqid "^4.0.0" - -postcss-flexbugs-fixes@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz#9b8b932c53f9cf13ba0f61875303e447c33dcc51" - dependencies: - postcss "^6.0.1" - -postcss-load-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" - -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" - dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" - -postcss-loader@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.8.tgz#8c67ddb029407dfafe684a406cfc16bad2ce0814" - dependencies: - loader-utils "^1.1.0" - postcss "^6.0.0" - postcss-load-config "^1.2.0" - schema-utils "^0.3.0" - -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" - -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" - dependencies: - postcss "^5.0.4" - -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" - dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" - vendors "^1.0.0" - -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" - dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" - -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" - -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" - dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" - -postcss-modules-extract-imports@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" - dependencies: - postcss "^6.0.1" - -postcss-modules-local-by-default@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-values@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" - dependencies: - postcss "^5.0.5" - -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" - -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" - dependencies: - postcss "^5.0.4" - -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" - -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" - dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" - -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13: - version "6.0.17" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.17.tgz#e259a051ca513f81e9afd0c21f7f82eda50c65c5" - dependencies: - chalk "^2.3.0" - source-map "^0.6.1" - supports-color "^5.1.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -prepend-http@^1.0.0, prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -pretty-bytes@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" - -pretty-error@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - dependencies: - renderkid "^2.0.1" - utila "~0.4" - -pretty-format@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14" - dependencies: - ansi-regex "^2.1.1" - ansi-styles "^3.0.0" - -private@^0.1.6, private@^0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" - -promise@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.1.tgz#e45d68b00a17647b6da711bf85ed6ed47208f450" - dependencies: - asap "~2.0.3" - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - dependencies: - asap "~2.0.3" - -prop-types@^15.5.10, prop-types@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.3.1" - object-assign "^4.1.1" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - dependencies: - side-channel "^1.0.4" - -qs@~6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -querystringify@0.0.x: - version "0.0.4" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" - -querystringify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" - -raf@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575" - dependencies: - performance-now "^2.1.0" - -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.0.3, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.0.1, rc@^1.1.6: - version "1.2.5" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-dev-utils@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-5.0.0.tgz#425ac7c9c40c2603bc4f7ab8836c1406e96bb473" - dependencies: - address "1.0.3" - babel-code-frame "6.26.0" - chalk "1.1.3" - cross-spawn "5.1.0" - detect-port-alt "1.1.5" - escape-string-regexp "1.0.5" - filesize "3.5.11" - global-modules "1.0.0" - gzip-size "3.0.0" - inquirer "3.3.0" - is-root "1.0.0" - opn "5.2.0" - react-error-overlay "^4.0.0" - recursive-readdir "2.2.1" - shell-quote "1.6.1" - sockjs-client "1.1.4" - strip-ansi "3.0.1" - text-table "0.2.0" - -react-dom@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.2.0.tgz#69003178601c0ca19b709b33a83369fe6124c044" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.0" - -react-error-overlay@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-4.0.0.tgz#d198408a85b4070937a98667f500c832f86bd5d4" - -react-scripts@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-1.1.1.tgz#279d449f7311fed910506987a1ade014027788a8" - dependencies: - autoprefixer "7.1.6" - babel-core "6.26.0" - babel-eslint "7.2.3" - babel-jest "20.0.3" - babel-loader "7.1.2" - babel-preset-react-app "^3.1.1" - babel-runtime "6.26.0" - case-sensitive-paths-webpack-plugin "2.1.1" - chalk "1.1.3" - css-loader "0.28.7" - dotenv "4.0.0" - dotenv-expand "4.2.0" - eslint "4.10.0" - eslint-config-react-app "^2.1.0" - eslint-loader "1.9.0" - eslint-plugin-flowtype "2.39.1" - eslint-plugin-import "2.8.0" - eslint-plugin-jsx-a11y "5.1.1" - eslint-plugin-react "7.4.0" - extract-text-webpack-plugin "3.0.2" - file-loader "1.1.5" - fs-extra "3.0.1" - html-webpack-plugin "2.29.0" - jest "20.0.4" - object-assign "4.1.1" - postcss-flexbugs-fixes "3.2.0" - postcss-loader "2.0.8" - promise "8.0.1" - raf "3.4.0" - react-dev-utils "^5.0.0" - style-loader "0.19.0" - sw-precache-webpack-plugin "0.11.4" - url-loader "0.6.2" - webpack "3.8.1" - webpack-dev-server "2.9.4" - webpack-manifest-plugin "1.3.2" - whatwg-fetch "2.0.3" - optionalDependencies: - fsevents "^1.1.3" - -react@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.2.0.tgz#a31bd2dab89bff65d42134fa187f24d054c273ba" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -readable-stream@1.0: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.0.3" - util-deprecate "~1.0.1" - -readable-stream@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -recursive-readdir@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" - dependencies: - minimatch "3.0.3" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" - -reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" - dependencies: - balanced-match "^0.4.2" - -regenerate@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -registry-auth-token@^3.0.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - dependencies: - rc "^1.0.1" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -renderkid@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" - dependencies: - css-select "^1.1.0" - dom-converter "~0.1" - htmlparser2 "~3.3.0" - strip-ansi "^3.0.0" - utila "~0.3" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@^2.79.0: - version "2.83.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-from-string@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - dependencies: - resolve-from "^3.0.0" - -resolve-dir@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -resolve@^1.3.2, resolve@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" - dependencies: - path-parse "^1.0.5" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@^2.2.8, rimraf@^2.6.1, rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" - dependencies: - hash-base "^2.0.0" - inherits "^2.0.1" - -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - dependencies: - is-promise "^2.1.0" - -rw@1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - -safe-buffer@5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -sane@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-1.6.0.tgz#9610c452307a135d29c1fdfe2547034180c46775" - dependencies: - anymatch "^1.3.0" - exec-sh "^0.2.0" - fb-watchman "^1.8.0" - minimatch "^3.0.2" - minimist "^1.1.1" - walker "~1.0.5" - watch "~0.10.0" - -sax@^1.2.1, sax@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" - dependencies: - ajv "^5.0.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - -selfsigned@^1.9.1: - version "1.10.2" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758" - dependencies: - node-forge "0.7.1" - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serve-index@^1.7.2: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -serviceworker-cache-polyfill@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -setimmediate@^1.0.4, setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.10" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -shell-quote@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - dependencies: - is-fullwidth-code-point "^2.0.0" - -sntp@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" - dependencies: - hoek "4.x.x" - -sockjs-client@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" - dependencies: - debug "^2.6.6" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.1.8" - -sockjs@0.3.18: - version "0.3.18" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" - dependencies: - faye-websocket "^0.10.0" - uuid "^2.0.2" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -spdy-transport@^2.0.18: - version "2.0.20" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" - dependencies: - debug "^2.6.8" - detect-node "^2.0.3" - hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" - -spdy@^3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" - dependencies: - debug "^2.6.8" - handle-thing "^1.2.5" - http-deceiver "^1.2.7" - safe-buffer "^5.0.1" - select-hose "^2.0.0" - spdy-transport "^2.0.18" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - -"statuses@>= 1.3.1 < 2": - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-http@^2.7.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.3" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - -string-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" - dependencies: - strip-ansi "^3.0.0" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@^1.0.0, string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" - dependencies: - safe-buffer "~5.1.0" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -stringstream@~0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-bom@3.0.0, strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -style-loader@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.0.tgz#7258e788f0fee6a42d710eaf7d6c2412a4c50759" - dependencies: - loader-utils "^1.0.2" - schema-utils "^0.3.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.2, supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^4.0.0, supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" - -supports-color@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.1.0.tgz#058a021d1b619f7ddf3980d712ea3590ce7de3d5" - dependencies: - has-flag "^2.0.0" - -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" - dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" - mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -sw-precache-webpack-plugin@0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.4.tgz#a695017e54eed575551493a519dc1da8da2dc5e0" - dependencies: - del "^2.2.2" - sw-precache "^5.1.1" - uglify-js "^3.0.13" - -sw-precache@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.1.tgz#06134f319eec68f3b9583ce9a7036b1c119f7179" - dependencies: - dom-urls "^1.1.0" - es6-promise "^4.0.5" - glob "^7.1.1" - lodash.defaults "^4.2.0" - lodash.template "^4.4.0" - meow "^3.7.0" - mkdirp "^0.5.1" - pretty-bytes "^4.0.2" - sw-toolbox "^3.4.0" - update-notifier "^2.3.0" - -sw-toolbox@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5" - dependencies: - path-to-regexp "^1.0.1" - serviceworker-cache-polyfill "^4.0.0" - -symbol-tree@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" - -table@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" - -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - dependencies: - execa "^0.7.0" - -test-exclude@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26" - dependencies: - arrify "^1.0.1" - micromatch "^2.3.11" - object-assign "^4.1.0" - read-pkg-up "^1.0.1" - require-main-filename "^1.0.1" - -text-table@0.2.0, text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -throat@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-3.2.0.tgz#50cb0670edbc40237b9e347d7e1f88e4620af836" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -thunky@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" - -time-stamp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" - -timed-out@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - -timers-browserify@^2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" - dependencies: - setimmediate "^1.0.4" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - -toposort@^1.0.0: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" - -tough-cookie@^2.3.2, tough-cookie@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" - dependencies: - punycode "^1.4.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - -type@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -ua-parser-js@^0.7.9: - version "0.7.33" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.33.tgz#1d04acb4ccef9293df6f70f2c3d22f3030d8b532" - -uglify-js@3.3.x, uglify-js@^3.0.13: - version "3.3.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.10.tgz#8e47821d4cf28e14c1826a0078ba0825ed094da8" - dependencies: - commander "~2.14.1" - source-map "~0.6.1" - -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-js@^3.1.4: - version "3.13.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.5.tgz#5d71d6dbba64cf441f32929b1efce7365bb4f113" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" - dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - -uniqid@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" - dependencies: - macaddress "^0.2.8" - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - dependencies: - crypto-random-string "^1.0.0" - -universalify@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - -update-notifier@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451" - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - -urijs@^1.16.1: - version "1.19.11" - resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc" - -url-loader@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7" - dependencies: - loader-utils "^1.0.2" - mime "^1.4.1" - schema-utils "^0.3.0" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - dependencies: - prepend-http "^1.0.1" - -url-parse@1.0.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" - dependencies: - querystringify "0.0.x" - requires-port "1.0.x" - -url-parse@^1.1.8: - version "1.2.0" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" - dependencies: - querystringify "~1.0.0" - requires-port "~1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@0.10.3, util@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -utila@~0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - -uuid@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - -uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - -validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - -vendors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -walker@~1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - dependencies: - makeerror "1.0.x" - -watch@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" - -watchpack@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" - dependencies: - async "^2.1.2" - chokidar "^1.7.0" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" - dependencies: - minimalistic-assert "^1.0.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - -webidl-conversions@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - -webpack-dev-middleware@^1.11.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" - dependencies: - memory-fs "~0.4.1" - mime "^1.5.0" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - time-stamp "^2.0.0" - -webpack-dev-server@2.9.4: - version "2.9.4" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz#7883e61759c6a4b33e9b19ec4037bd4ab61428d1" - dependencies: - ansi-html "0.0.7" - array-includes "^3.0.3" - bonjour "^3.5.0" - chokidar "^1.6.0" - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" - debug "^3.1.0" - del "^3.0.0" - express "^4.13.3" - html-entities "^1.2.0" - http-proxy-middleware "~0.17.4" - import-local "^0.1.1" - internal-ip "1.2.0" - ip "^1.1.5" - killable "^1.0.0" - loglevel "^1.4.1" - opn "^5.1.0" - portfinder "^1.0.9" - selfsigned "^1.9.1" - serve-index "^1.7.2" - sockjs "0.3.18" - sockjs-client "1.1.4" - spdy "^3.4.1" - strip-ansi "^3.0.1" - supports-color "^4.2.1" - webpack-dev-middleware "^1.11.0" - yargs "^6.6.0" - -webpack-manifest-plugin@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz#5ea8ee5756359ddc1d98814324fe43496349a7d4" - dependencies: - fs-extra "^0.30.0" - lodash ">=3.5 <5" - -webpack-sources@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^5.1.5" - ajv-keywords "^2.0.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - mkdirp "~0.5.0" - node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" - webpack-sources "^1.0.1" - yargs "^8.0.2" - -websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" - dependencies: - http-parser-js ">=0.4.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - -whatwg-encoding@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3" - dependencies: - iconv-lite "0.4.19" - -whatwg-fetch@2.0.3, whatwg-fetch@>=0.10.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" - -whatwg-url@^4.3.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0" - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" - dependencies: - isexe "^2.0.0" - -widest-line@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" - dependencies: - string-width "^2.1.1" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@^1.0.0, wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -worker-farm@^1.3.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.2.tgz#32b312e5dc3d5d45d79ef44acc2587491cd729ae" - dependencies: - errno "^0.1.4" - xtend "^4.0.1" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -write-file-atomic@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - -xml-char-classes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" - -xml-name-validator@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" - -xmlhttprequest@1: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - -xtend@^4.0.0, xtend@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - dependencies: - camelcase "^4.1.0" - -yargs@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" - -yargs@^7.0.2: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" - -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0"