UNPKG

plotly.js

Version:

The open source javascript graphing library that powers plotly

18 lines 5 MB
/** * plotly.js (strict - minified) v3.0.1 * Copyright 2012-2025, Plotly, Inc. * All rights reserved. * Licensed under the MIT license */ ( function(root, factory) { if (typeof module === "object" && module.exports) { module.exports = factory(); } else { root.moduleName = factory(); } } (typeof self !== "undefined" ? self : this, () => { "use strict";var Plotly=(()=>{var Let=Object.create;var MM=Object.defineProperty,zet=Object.defineProperties,Pet=Object.getOwnPropertyDescriptor,Iet=Object.getOwnPropertyDescriptors,Det=Object.getOwnPropertyNames,oee=Object.getOwnPropertySymbols,Ret=Object.getPrototypeOf,lee=Object.prototype.hasOwnProperty,Fet=Object.prototype.propertyIsEnumerable;var see=(e,t,r)=>t in e?MM(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,uee=(e,t)=>{for(var r in t||(t={}))lee.call(t,r)&&see(e,r,t[r]);if(oee)for(var r of oee(t))Fet.call(t,r)&&see(e,r,t[r]);return e},fee=(e,t)=>zet(e,Iet(t));var Bf=(e,t)=>()=>(e&&(t=e(e=0)),t);var Se=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),cee=(e,t)=>{for(var r in t)MM(e,r,{get:t[r],enumerable:!0})},hee=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Det(t))!lee.call(e,i)&&i!==r&&MM(e,i,{get:()=>t[i],enumerable:!(n=Pet(t,i))||n.enumerable});return e};var qet=(e,t,r)=>(r=e!=null?Let(Ret(e)):{},hee(t||!e||!e.__esModule?MM(r,"default",{value:e,enumerable:!0}):r,e)),O1=e=>hee(MM({},"__esModule",{value:!0}),e);var eL=Se(dee=>{"use strict";dee.version="3.0.1"});var vee=Se((pee,tL)=>{(function(t,r,n){r[t]=r[t]||n(),typeof tL!="undefined"&&tL.exports&&(tL.exports=r[t])})("Promise",typeof window!="undefined"?window:pee,function(){"use strict";var t,r,n,i=Object.prototype.toString,a=typeof setImmediate!="undefined"?function(k){return setImmediate(k)}:setTimeout;try{Object.defineProperty({},"x",{}),t=function(k,E,A,L){return Object.defineProperty(k,E,{value:A,writable:!0,configurable:L!==!1})}}catch(v){t=function(E,A,L){return E[A]=L,E}}n=function(){var k,E,A;function L(_,C){this.fn=_,this.self=C,this.next=void 0}return{add:function(C,M){A=new L(C,M),E?E.next=A:k=A,E=A,A=void 0},drain:function(){var C=k;for(k=E=r=void 0;C;)C.fn.call(C.self),C=C.next}}}();function o(v,k){n.add(v,k),r||(r=a(n.drain))}function s(v){var k,E=typeof v;return v!=null&&(E=="object"||E=="function")&&(k=v.then),typeof k=="function"?k:!1}function u(){for(var v=0;v<this.chain.length;v++)l(this,this.state===1?this.chain[v].success:this.chain[v].failure,this.chain[v]);this.chain.length=0}function l(v,k,E){var A,L;try{k===!1?E.reject(v.msg):(k===!0?A=v.msg:A=k.call(void 0,v.msg),A===E.promise?E.reject(TypeError("Promise-chain cycle")):(L=s(A))?L.call(A,E.resolve,E.reject):E.resolve(A))}catch(_){E.reject(_)}}function f(v){var k,E=this;if(!E.triggered){E.triggered=!0,E.def&&(E=E.def);try{(k=s(v))?o(function(){var A=new d(E);try{k.call(v,function(){f.apply(A,arguments)},function(){c.apply(A,arguments)})}catch(L){c.call(A,L)}}):(E.msg=v,E.state=1,E.chain.length>0&&o(u,E))}catch(A){c.call(new d(E),A)}}}function c(v){var k=this;k.triggered||(k.triggered=!0,k.def&&(k=k.def),k.msg=v,k.state=2,k.chain.length>0&&o(u,k))}function h(v,k,E,A){for(var L=0;L<k.length;L++)(function(C){v.resolve(k[C]).then(function(y){E(C,y)},A)})(L)}function d(v){this.def=v,this.triggered=!1}function p(v){this.promise=v,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function x(v){if(typeof v!="function")throw TypeError("Not a function");if(this.__NPO__!==0)throw TypeError("Not a promise");this.__NPO__=1;var k=new p(this);this.then=function(A,L){var _={success:typeof A=="function"?A:!0,failure:typeof L=="function"?L:!1};return _.promise=new this.constructor(function(M,y){if(typeof M!="function"||typeof y!="function")throw TypeError("Not a function");_.resolve=M,_.reject=y}),k.chain.push(_),k.state!==0&&o(u,k),_.promise},this.catch=function(A){return this.then(void 0,A)};try{v.call(void 0,function(A){f.call(k,A)},function(A){c.call(k,A)})}catch(E){c.call(k,E)}}var b=t({},"constructor",x,!1);return x.prototype=b,t(b,"__NPO__",0,!1),t(x,"resolve",function(k){var E=this;return k&&typeof k=="object"&&k.__NPO__===1?k:new E(function(L,_){if(typeof L!="function"||typeof _!="function")throw TypeError("Not a function");L(k)})}),t(x,"reject",function(k){return new this(function(A,L){if(typeof A!="function"||typeof L!="function")throw TypeError("Not a function");L(k)})}),t(x,"all",function(k){var E=this;return i.call(k)!="[object Array]"?E.reject(TypeError("Not an array")):k.length===0?E.resolve([]):new E(function(L,_){if(typeof L!="function"||typeof _!="function")throw TypeError("Not a function");var C=k.length,M=Array(C),y=0;h(E,k,function(T,F){M[T]=F,++y===C&&L(M)},_)})}),t(x,"race",function(k){var E=this;return i.call(k)!="[object Array]"?E.reject(TypeError("Not an array")):new E(function(L,_){if(typeof L!="function"||typeof _!="function")throw TypeError("Not a function");h(E,k,function(M,y){L(y)},_)})}),x})});var Nl=Se((ltr,rL)=>{(function(){var e={version:"3.8.2"},t=[].slice,r=function(X){return t.call(X)},n=self.document;function i(X){return X&&(X.ownerDocument||X.document||X).documentElement}function a(X){return X&&(X.ownerDocument&&X.ownerDocument.defaultView||X.document&&X||X.defaultView)}if(n)try{r(n.documentElement.childNodes)[0].nodeType}catch(X){r=function(se){for(var Le=se.length,We=new Array(Le);Le--;)We[Le]=se[Le];return We}}if(Date.now||(Date.now=function(){return+new Date}),n)try{n.createElement("DIV").style.setProperty("opacity",0,"")}catch(X){var o=this.Element.prototype,s=o.setAttribute,u=o.setAttributeNS,l=this.CSSStyleDeclaration.prototype,f=l.setProperty;o.setAttribute=function(se,Le){s.call(this,se,Le+"")},o.setAttributeNS=function(se,Le,We){u.call(this,se,Le,We+"")},l.setProperty=function(se,Le,We){f.call(this,se,Le+"",We)}}e.ascending=c;function c(X,se){return X<se?-1:X>se?1:X>=se?0:NaN}e.descending=function(X,se){return se<X?-1:se>X?1:se>=X?0:NaN},e.min=function(X,se){var Le=-1,We=X.length,Ye,it;if(arguments.length===1){for(;++Le<We;)if((it=X[Le])!=null&&it>=it){Ye=it;break}for(;++Le<We;)(it=X[Le])!=null&&Ye>it&&(Ye=it)}else{for(;++Le<We;)if((it=se.call(X,X[Le],Le))!=null&&it>=it){Ye=it;break}for(;++Le<We;)(it=se.call(X,X[Le],Le))!=null&&Ye>it&&(Ye=it)}return Ye},e.max=function(X,se){var Le=-1,We=X.length,Ye,it;if(arguments.length===1){for(;++Le<We;)if((it=X[Le])!=null&&it>=it){Ye=it;break}for(;++Le<We;)(it=X[Le])!=null&&it>Ye&&(Ye=it)}else{for(;++Le<We;)if((it=se.call(X,X[Le],Le))!=null&&it>=it){Ye=it;break}for(;++Le<We;)(it=se.call(X,X[Le],Le))!=null&&it>Ye&&(Ye=it)}return Ye},e.extent=function(X,se){var Le=-1,We=X.length,Ye,it,Nt;if(arguments.length===1){for(;++Le<We;)if((it=X[Le])!=null&&it>=it){Ye=Nt=it;break}for(;++Le<We;)(it=X[Le])!=null&&(Ye>it&&(Ye=it),Nt<it&&(Nt=it))}else{for(;++Le<We;)if((it=se.call(X,X[Le],Le))!=null&&it>=it){Ye=Nt=it;break}for(;++Le<We;)(it=se.call(X,X[Le],Le))!=null&&(Ye>it&&(Ye=it),Nt<it&&(Nt=it))}return[Ye,Nt]};function h(X){return X===null?NaN:+X}function d(X){return!isNaN(X)}e.sum=function(X,se){var Le=0,We=X.length,Ye,it=-1;if(arguments.length===1)for(;++it<We;)d(Ye=+X[it])&&(Le+=Ye);else for(;++it<We;)d(Ye=+se.call(X,X[it],it))&&(Le+=Ye);return Le},e.mean=function(X,se){var Le=0,We=X.length,Ye,it=-1,Nt=We;if(arguments.length===1)for(;++it<We;)d(Ye=h(X[it]))?Le+=Ye:--Nt;else for(;++it<We;)d(Ye=h(se.call(X,X[it],it)))?Le+=Ye:--Nt;if(Nt)return Le/Nt},e.quantile=function(X,se){var Le=(X.length-1)*se+1,We=Math.floor(Le),Ye=+X[We-1],it=Le-We;return it?Ye+it*(X[We]-Ye):Ye},e.median=function(X,se){var Le=[],We=X.length,Ye,it=-1;if(arguments.length===1)for(;++it<We;)d(Ye=h(X[it]))&&Le.push(Ye);else for(;++it<We;)d(Ye=h(se.call(X,X[it],it)))&&Le.push(Ye);if(Le.length)return e.quantile(Le.sort(c),.5)},e.variance=function(X,se){var Le=X.length,We=0,Ye,it,Nt=0,mt=-1,er=0;if(arguments.length===1)for(;++mt<Le;)d(Ye=h(X[mt]))&&(it=Ye-We,We+=it/++er,Nt+=it*(Ye-We));else for(;++mt<Le;)d(Ye=h(se.call(X,X[mt],mt)))&&(it=Ye-We,We+=it/++er,Nt+=it*(Ye-We));if(er>1)return Nt/(er-1)},e.deviation=function(){var X=e.variance.apply(this,arguments);return X&&Math.sqrt(X)};function p(X){return{left:function(se,Le,We,Ye){for(arguments.length<3&&(We=0),arguments.length<4&&(Ye=se.length);We<Ye;){var it=We+Ye>>>1;X(se[it],Le)<0?We=it+1:Ye=it}return We},right:function(se,Le,We,Ye){for(arguments.length<3&&(We=0),arguments.length<4&&(Ye=se.length);We<Ye;){var it=We+Ye>>>1;X(se[it],Le)>0?Ye=it:We=it+1}return We}}}var x=p(c);e.bisectLeft=x.left,e.bisect=e.bisectRight=x.right,e.bisector=function(X){return p(X.length===1?function(se,Le){return c(X(se),Le)}:X)},e.shuffle=function(X,se,Le){(We=arguments.length)<3&&(Le=X.length,We<2&&(se=0));for(var We=Le-se,Ye,it;We;)it=Math.random()*We--|0,Ye=X[We+se],X[We+se]=X[it+se],X[it+se]=Ye;return X},e.permute=function(X,se){for(var Le=se.length,We=new Array(Le);Le--;)We[Le]=X[se[Le]];return We},e.pairs=function(X){for(var se=0,Le=X.length-1,We,Ye=X[0],it=new Array(Le<0?0:Le);se<Le;)it[se]=[We=Ye,Ye=X[++se]];return it},e.transpose=function(X){if(!(it=X.length))return[];for(var se=-1,Le=e.min(X,b),We=new Array(Le);++se<Le;)for(var Ye=-1,it,Nt=We[se]=new Array(it);++Ye<it;)Nt[Ye]=X[Ye][se];return We};function b(X){return X.length}e.zip=function(){return e.transpose(arguments)},e.keys=function(X){var se=[];for(var Le in X)se.push(Le);return se},e.values=function(X){var se=[];for(var Le in X)se.push(X[Le]);return se},e.entries=function(X){var se=[];for(var Le in X)se.push({key:Le,value:X[Le]});return se},e.merge=function(X){for(var se=X.length,Le,We=-1,Ye=0,it,Nt;++We<se;)Ye+=X[We].length;for(it=new Array(Ye);--se>=0;)for(Nt=X[se],Le=Nt.length;--Le>=0;)it[--Ye]=Nt[Le];return it};var v=Math.abs;e.range=function(X,se,Le){if(arguments.length<3&&(Le=1,arguments.length<2&&(se=X,X=0)),(se-X)/Le===1/0)throw new Error("infinite range");var We=[],Ye=k(v(Le)),it=-1,Nt;if(X*=Ye,se*=Ye,Le*=Ye,Le<0)for(;(Nt=X+Le*++it)>se;)We.push(Nt/Ye);else for(;(Nt=X+Le*++it)<se;)We.push(Nt/Ye);return We};function k(X){for(var se=1;X*se%1;)se*=10;return se}function E(X,se){for(var Le in se)Object.defineProperty(X.prototype,Le,{value:se[Le],enumerable:!1})}e.map=function(X,se){var Le=new A;if(X instanceof A)X.forEach(function(mt,er){Le.set(mt,er)});else if(Array.isArray(X)){var We=-1,Ye=X.length,it;if(arguments.length===1)for(;++We<Ye;)Le.set(We,X[We]);else for(;++We<Ye;)Le.set(se.call(X,it=X[We],We),it)}else for(var Nt in X)Le.set(Nt,X[Nt]);return Le};function A(){this._=Object.create(null)}var L="__proto__",_="\0";E(A,{has:y,get:function(X){return this._[C(X)]},set:function(X,se){return this._[C(X)]=se},remove:z,keys:T,values:function(){var X=[];for(var se in this._)X.push(this._[se]);return X},entries:function(){var X=[];for(var se in this._)X.push({key:M(se),value:this._[se]});return X},size:F,empty:q,forEach:function(X){for(var se in this._)X.call(this,M(se),this._[se])}});function C(X){return(X+="")===L||X[0]===_?_+X:X}function M(X){return(X+="")[0]===_?X.slice(1):X}function y(X){return C(X)in this._}function z(X){return(X=C(X))in this._&&delete this._[X]}function T(){var X=[];for(var se in this._)X.push(M(se));return X}function F(){var X=0;for(var se in this._)++X;return X}function q(){for(var X in this._)return!1;return!0}e.nest=function(){var X={},se=[],Le=[],We,Ye;function it(mt,er,_r){if(_r>=se.length)return Ye?Ye.call(X,er):We?er.sort(We):er;for(var wr=-1,ni=er.length,Wr=se[_r++],Ci,Ji,ai,Ti=new A,Bi;++wr<ni;)(Bi=Ti.get(Ci=Wr(Ji=er[wr])))?Bi.push(Ji):Ti.set(Ci,[Ji]);return mt?(Ji=mt(),ai=function(en,Wi){Ji.set(en,it(mt,Wi,_r))}):(Ji={},ai=function(en,Wi){Ji[en]=it(mt,Wi,_r)}),Ti.forEach(ai),Ji}function Nt(mt,er){if(er>=se.length)return mt;var _r=[],wr=Le[er++];return mt.forEach(function(ni,Wr){_r.push({key:ni,values:Nt(Wr,er)})}),wr?_r.sort(function(ni,Wr){return wr(ni.key,Wr.key)}):_r}return X.map=function(mt,er){return it(er,mt,0)},X.entries=function(mt){return Nt(it(e.map,mt,0),0)},X.key=function(mt){return se.push(mt),X},X.sortKeys=function(mt){return Le[se.length-1]=mt,X},X.sortValues=function(mt){return We=mt,X},X.rollup=function(mt){return Ye=mt,X},X},e.set=function(X){var se=new U;if(X)for(var Le=0,We=X.length;Le<We;++Le)se.add(X[Le]);return se};function U(){this._=Object.create(null)}E(U,{has:y,add:function(X){return this._[C(X+="")]=!0,X},remove:z,values:T,size:F,empty:q,forEach:function(X){for(var se in this._)X.call(this,M(se))}}),e.behavior={};function H(X){return X}e.rebind=function(X,se){for(var Le=1,We=arguments.length,Ye;++Le<We;)X[Ye=arguments[Le]]=j(X,se,se[Ye]);return X};function j(X,se,Le){return function(){var We=Le.apply(se,arguments);return We===se?X:We}}function G(X,se){if(se in X)return se;se=se.charAt(0).toUpperCase()+se.slice(1);for(var Le=0,We=O.length;Le<We;++Le){var Ye=O[Le]+se;if(Ye in X)return Ye}}var O=["webkit","ms","moz","Moz","o","O"];function W(){}e.dispatch=function(){for(var X=new re,se=-1,Le=arguments.length;++se<Le;)X[arguments[se]]=ne(X);return X};function re(){}re.prototype.on=function(X,se){var Le=X.indexOf("."),We="";if(Le>=0&&(We=X.slice(Le+1),X=X.slice(0,Le)),X)return arguments.length<2?this[X].on(We):this[X].on(We,se);if(arguments.length===2){if(se==null)for(X in this)this.hasOwnProperty(X)&&this[X].on(We,null);return this}};function ne(X){var se=[],Le=new A;function We(){for(var Ye=se,it=-1,Nt=Ye.length,mt;++it<Nt;)(mt=Ye[it].on)&&mt.apply(this,arguments);return X}return We.on=function(Ye,it){var Nt=Le.get(Ye),mt;return arguments.length<2?Nt&&Nt.on:(Nt&&(Nt.on=null,se=se.slice(0,mt=se.indexOf(Nt)).concat(se.slice(mt+1)),Le.remove(Ye)),it&&se.push(Le.set(Ye,{on:it})),X)},We}e.event=null;function be(){e.event.preventDefault()}function ze(){for(var X=e.event,se;se=X.sourceEvent;)X=se;return X}function Ce(X){for(var se=new re,Le=0,We=arguments.length;++Le<We;)se[arguments[Le]]=ne(se);return se.of=function(Ye,it){return function(Nt){try{var mt=Nt.sourceEvent=e.event;Nt.target=X,e.event=Nt,se[Nt.type].apply(Ye,it)}finally{e.event=mt}}},se}e.requote=function(X){return X.replace(he,"\\$&")};var he=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,te={}.__proto__?function(X,se){X.__proto__=se}:function(X,se){for(var Le in se)X[Le]=se[Le]};function ke(X){return te(X,Re),X}var Ee=function(X,se){return se.querySelector(X)},Me=function(X,se){return se.querySelectorAll(X)},Oe=function(X,se){var Le=X.matches||X[G(X,"matchesSelector")];return Oe=function(We,Ye){return Le.call(We,Ye)},Oe(X,se)};typeof Sizzle=="function"&&(Ee=function(X,se){return Sizzle(X,se)[0]||null},Me=Sizzle,Oe=Sizzle.matchesSelector),e.selection=function(){return e.select(n.documentElement)};var Re=e.selection.prototype=[];Re.select=function(X){var se=[],Le,We,Ye,it;X=me(X);for(var Nt=-1,mt=this.length;++Nt<mt;){se.push(Le=[]),Le.parentNode=(Ye=this[Nt]).parentNode;for(var er=-1,_r=Ye.length;++er<_r;)(it=Ye[er])?(Le.push(We=X.call(it,it.__data__,er,Nt)),We&&"__data__"in it&&(We.__data__=it.__data__)):Le.push(null)}return ke(se)};function me(X){return typeof X=="function"?X:function(){return Ee(X,this)}}Re.selectAll=function(X){var se=[],Le,We;X=Be(X);for(var Ye=-1,it=this.length;++Ye<it;)for(var Nt=this[Ye],mt=-1,er=Nt.length;++mt<er;)(We=Nt[mt])&&(se.push(Le=r(X.call(We,We.__data__,mt,Ye))),Le.parentNode=We);return ke(se)};function Be(X){return typeof X=="function"?X:function(){return Me(X,this)}}var fe="http://www.w3.org/1999/xhtml",Ze={svg:"http://www.w3.org/2000/svg",xhtml:fe,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};e.ns={prefix:Ze,qualify:function(X){var se=X.indexOf(":"),Le=X;return se>=0&&(Le=X.slice(0,se))!=="xmlns"&&(X=X.slice(se+1)),Ze.hasOwnProperty(Le)?{space:Ze[Le],local:X}:X}},Re.attr=function(X,se){if(arguments.length<2){if(typeof X=="string"){var Le=this.node();return X=e.ns.qualify(X),X.local?Le.getAttributeNS(X.space,X.local):Le.getAttribute(X)}for(se in X)this.each(et(se,X[se]));return this}return this.each(et(X,se))};function et(X,se){X=e.ns.qualify(X);function Le(){this.removeAttribute(X)}function We(){this.removeAttributeNS(X.space,X.local)}function Ye(){this.setAttribute(X,se)}function it(){this.setAttributeNS(X.space,X.local,se)}function Nt(){var er=se.apply(this,arguments);er==null?this.removeAttribute(X):this.setAttribute(X,er)}function mt(){var er=se.apply(this,arguments);er==null?this.removeAttributeNS(X.space,X.local):this.setAttributeNS(X.space,X.local,er)}return se==null?X.local?We:Le:typeof se=="function"?X.local?mt:Nt:X.local?it:Ye}function gt(X){return X.trim().replace(/\s+/g," ")}Re.classed=function(X,se){if(arguments.length<2){if(typeof X=="string"){var Le=this.node(),We=(X=Qe(X)).length,Ye=-1;if(se=Le.classList){for(;++Ye<We;)if(!se.contains(X[Ye]))return!1}else for(se=Le.getAttribute("class");++Ye<We;)if(!Pt(X[Ye]).test(se))return!1;return!0}for(se in X)this.each(Xe(se,X[se]));return this}return this.each(Xe(X,se))};function Pt(X){return new RegExp("(?:^|\\s+)"+e.requote(X)+"(?:\\s+|$)","g")}function Qe(X){return(X+"").trim().split(/^|\s+/)}function Xe(X,se){X=Qe(X).map(Tt);var Le=X.length;function We(){for(var it=-1;++it<Le;)X[it](this,se)}function Ye(){for(var it=-1,Nt=se.apply(this,arguments);++it<Le;)X[it](this,Nt)}return typeof se=="function"?Ye:We}function Tt(X){var se=Pt(X);return function(Le,We){if(Ye=Le.classList)return We?Ye.add(X):Ye.remove(X);var Ye=Le.getAttribute("class")||"";We?(se.lastIndex=0,se.test(Ye)||Le.setAttribute("class",gt(Ye+" "+X))):Le.setAttribute("class",gt(Ye.replace(se," ")))}}Re.style=function(X,se,Le){var We=arguments.length;if(We<3){if(typeof X!="string"){We<2&&(se="");for(Le in X)this.each(xt(Le,X[Le],se));return this}if(We<2){var Ye=this.node();return a(Ye).getComputedStyle(Ye,null).getPropertyValue(X)}Le=""}return this.each(xt(X,se,Le))};function xt(X,se,Le){function We(){this.style.removeProperty(X)}function Ye(){this.style.setProperty(X,se,Le)}function it(){var Nt=se.apply(this,arguments);Nt==null?this.style.removeProperty(X):this.style.setProperty(X,Nt,Le)}return se==null?We:typeof se=="function"?it:Ye}Re.property=function(X,se){if(arguments.length<2){if(typeof X=="string")return this.node()[X];for(se in X)this.each(_t(se,X[se]));return this}return this.each(_t(X,se))};function _t(X,se){function Le(){delete this[X]}function We(){this[X]=se}function Ye(){var it=se.apply(this,arguments);it==null?delete this[X]:this[X]=it}return se==null?Le:typeof se=="function"?Ye:We}Re.text=function(X){return arguments.length?this.each(typeof X=="function"?function(){var se=X.apply(this,arguments);this.textContent=se==null?"":se}:X==null?function(){this.textContent=""}:function(){this.textContent=X}):this.node().textContent},Re.html=function(X){return arguments.length?this.each(typeof X=="function"?function(){var se=X.apply(this,arguments);this.innerHTML=se==null?"":se}:X==null?function(){this.innerHTML=""}:function(){this.innerHTML=X}):this.node().innerHTML},Re.append=function(X){return X=Ct(X),this.select(function(){return this.appendChild(X.apply(this,arguments))})};function Ct(X){function se(){var We=this.ownerDocument,Ye=this.namespaceURI;return Ye===fe&&We.documentElement.namespaceURI===fe?We.createElement(X):We.createElementNS(Ye,X)}function Le(){return this.ownerDocument.createElementNS(X.space,X.local)}return typeof X=="function"?X:(X=e.ns.qualify(X)).local?Le:se}Re.insert=function(X,se){return X=Ct(X),se=me(se),this.select(function(){return this.insertBefore(X.apply(this,arguments),se.apply(this,arguments)||null)})},Re.remove=function(){return this.each(jt)};function jt(){var X=this.parentNode;X&&X.removeChild(this)}Re.data=function(X,se){var Le=-1,We=this.length,Ye,it;if(!arguments.length){for(X=new Array(We=(Ye=this[0]).length);++Le<We;)(it=Ye[Le])&&(X[Le]=it.__data__);return X}function Nt(wr,ni){var Wr,Ci=wr.length,Ji=ni.length,ai=Math.min(Ci,Ji),Ti=new Array(Ji),Bi=new Array(Ji),en=new Array(Ci),Wi,bi;if(se){var ao=new A,yo=new Array(Ci),Ko;for(Wr=-1;++Wr<Ci;)(Wi=wr[Wr])&&(ao.has(Ko=se.call(Wi,Wi.__data__,Wr))?en[Wr]=Wi:ao.set(Ko,Wi),yo[Wr]=Ko);for(Wr=-1;++Wr<Ji;)(Wi=ao.get(Ko=se.call(ni,bi=ni[Wr],Wr)))?Wi!==!0&&(Ti[Wr]=Wi,Wi.__data__=bi):Bi[Wr]=At(bi),ao.set(Ko,!0);for(Wr=-1;++Wr<Ci;)Wr in yo&&ao.get(yo[Wr])!==!0&&(en[Wr]=wr[Wr])}else{for(Wr=-1;++Wr<ai;)Wi=wr[Wr],bi=ni[Wr],Wi?(Wi.__data__=bi,Ti[Wr]=Wi):Bi[Wr]=At(bi);for(;Wr<Ji;++Wr)Bi[Wr]=At(ni[Wr]);for(;Wr<Ci;++Wr)en[Wr]=wr[Wr]}Bi.update=Ti,Bi.parentNode=Ti.parentNode=en.parentNode=wr.parentNode,mt.push(Bi),er.push(Ti),_r.push(en)}var mt=ct([]),er=ke([]),_r=ke([]);if(typeof X=="function")for(;++Le<We;)Nt(Ye=this[Le],X.call(Ye,Ye.parentNode.__data__,Le));else for(;++Le<We;)Nt(Ye=this[Le],X);return er.enter=function(){return mt},er.exit=function(){return _r},er};function At(X){return{__data__:X}}Re.datum=function(X){return arguments.length?this.property("__data__",X):this.property("__data__")},Re.filter=function(X){var se=[],Le,We,Ye;typeof X!="function"&&(X=Te(X));for(var it=0,Nt=this.length;it<Nt;it++){se.push(Le=[]),Le.parentNode=(We=this[it]).parentNode;for(var mt=0,er=We.length;mt<er;mt++)(Ye=We[mt])&&X.call(Ye,Ye.__data__,mt,it)&&Le.push(Ye)}return ke(se)};function Te(X){return function(){return Oe(this,X)}}Re.order=function(){for(var X=-1,se=this.length;++X<se;)for(var Le=this[X],We=Le.length-1,Ye=Le[We],it;--We>=0;)(it=Le[We])&&(Ye&&Ye!==it.nextSibling&&Ye.parentNode.insertBefore(it,Ye),Ye=it);return this},Re.sort=function(X){X=nt.apply(this,arguments);for(var se=-1,Le=this.length;++se<Le;)this[se].sort(X);return this.order()};function nt(X){return arguments.length||(X=c),function(se,Le){return se&&Le?X(se.__data__,Le.__data__):!se-!Le}}Re.each=function(X){return ut(this,function(se,Le,We){X.call(se,se.__data__,Le,We)})};function ut(X,se){for(var Le=0,We=X.length;Le<We;Le++)for(var Ye=X[Le],it=0,Nt=Ye.length,mt;it<Nt;it++)(mt=Ye[it])&&se(mt,it,Le);return X}Re.call=function(X){var se=r(arguments);return X.apply(se[0]=this,se),this},Re.empty=function(){return!this.node()},Re.node=function(){for(var X=0,se=this.length;X<se;X++)for(var Le=this[X],We=0,Ye=Le.length;We<Ye;We++){var it=Le[We];if(it)return it}return null},Re.size=function(){var X=0;return ut(this,function(){++X}),X};function ct(X){return te(X,rt),X}var rt=[];e.selection.enter=ct,e.selection.enter.prototype=rt,rt.append=Re.append,rt.empty=Re.empty,rt.node=Re.node,rt.call=Re.call,rt.size=Re.size,rt.select=function(X){for(var se=[],Le,We,Ye,it,Nt,mt=-1,er=this.length;++mt<er;){Ye=(it=this[mt]).update,se.push(Le=[]),Le.parentNode=it.parentNode;for(var _r=-1,wr=it.length;++_r<wr;)(Nt=it[_r])?(Le.push(Ye[_r]=We=X.call(it.parentNode,Nt.__data__,_r,mt)),We.__data__=Nt.__data__):Le.push(null)}return ke(se)},rt.insert=function(X,se){return arguments.length<2&&(se=je(this)),Re.insert.call(this,X,se)};function je(X){var se,Le;return function(We,Ye,it){var Nt=X[it].update,mt=Nt.length,er;for(it!=Le&&(Le=it,se=0),Ye>=se&&(se=Ye+1);!(er=Nt[se])&&++se<mt;);return er}}e.select=function(X){var se;return typeof X=="string"?(se=[Ee(X,n)],se.parentNode=n.documentElement):(se=[X],se.parentNode=i(X)),ke([se])},e.selectAll=function(X){var se;return typeof X=="string"?(se=r(Me(X,n)),se.parentNode=n.documentElement):(se=r(X),se.parentNode=null),ke([se])},Re.on=function(X,se,Le){var We=arguments.length;if(We<3){if(typeof X!="string"){We<2&&(se=!1);for(Le in X)this.each(tt(Le,X[Le],se));return this}if(We<2)return(We=this.node()["__on"+X])&&We._;Le=!1}return this.each(tt(X,se,Le))};function tt(X,se,Le){var We="__on"+X,Ye=X.indexOf("."),it=Mt;Ye>0&&(X=X.slice(0,Ye));var Nt=Je.get(X);Nt&&(X=Nt,it=Vt);function mt(){var wr=this[We];wr&&(this.removeEventListener(X,wr,wr.$),delete this[We])}function er(){var wr=it(se,r(arguments));mt.call(this),this.addEventListener(X,this[We]=wr,wr.$=Le),wr._=se}function _r(){var wr=new RegExp("^__on([^.]+)"+e.requote(X)+"$"),ni;for(var Wr in this)if(ni=Wr.match(wr)){var Ci=this[Wr];this.removeEventListener(ni[1],Ci,Ci.$),delete this[Wr]}}return Ye?se?er:mt:se?W:_r}var Je=e.map({mouseenter:"mouseover",mouseleave:"mouseout"});n&&Je.forEach(function(X){"on"+X in n&&Je.remove(X)});function Mt(X,se){return function(Le){var We=e.event;e.event=Le,se[0]=this.__data__;try{X.apply(this,se)}finally{e.event=We}}}function Vt(X,se){var Le=Mt(X,se);return function(We){var Ye=this,it=We.relatedTarget;(!it||it!==Ye&&!(it.compareDocumentPosition(Ye)&8))&&Le.call(Ye,We)}}var Kt,ir=0;function fr(X){var se=".dragsuppress-"+ ++ir,Le="click"+se,We=e.select(a(X)).on("touchmove"+se,be).on("dragstart"+se,be).on("selectstart"+se,be);if(Kt==null&&(Kt="onselectstart"in X?!1:G(X.style,"userSelect")),Kt){var Ye=i(X).style,it=Ye[Kt];Ye[Kt]="none"}return function(Nt){if(We.on(se,null),Kt&&(Ye[Kt]=it),Nt){var mt=function(){We.on(Le,null)};We.on(Le,function(){be(),mt()},!0),setTimeout(mt,0)}}}e.mouse=function(X){return De(X,ze())};var Ot=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function De(X,se){se.changedTouches&&(se=se.changedTouches[0]);var Le=X.ownerSVGElement||X;if(Le.createSVGPoint){var We=Le.createSVGPoint();if(Ot<0){var Ye=a(X);if(Ye.scrollX||Ye.scrollY){Le=e.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var it=Le[0][0].getScreenCTM();Ot=!(it.f||it.e),Le.remove()}}return Ot?(We.x=se.pageX,We.y=se.pageY):(We.x=se.clientX,We.y=se.clientY),We=We.matrixTransform(X.getScreenCTM().inverse()),[We.x,We.y]}var Nt=X.getBoundingClientRect();return[se.clientX-Nt.left-X.clientLeft,se.clientY-Nt.top-X.clientTop]}e.touch=function(X,se,Le){if(arguments.length<3&&(Le=se,se=ze().changedTouches),se){for(var We=0,Ye=se.length,it;We<Ye;++We)if((it=se[We]).identifier===Le)return De(X,it)}},e.behavior.drag=function(){var X=Ce(Ye,"drag","dragstart","dragend"),se=null,Le=it(W,e.mouse,a,"mousemove","mouseup"),We=it(_e,e.touch,H,"touchmove","touchend");function Ye(){this.on("mousedown.drag",Le).on("touchstart.drag",We)}function it(Nt,mt,er,_r,wr){return function(){var ni=this,Wr=e.event.target.correspondingElement||e.event.target,Ci=ni.parentNode,Ji=X.of(ni,arguments),ai=0,Ti=Nt(),Bi=".drag"+(Ti==null?"":"-"+Ti),en,Wi=e.select(er(Wr)).on(_r+Bi,yo).on(wr+Bi,Ko),bi=fr(Wr),ao=mt(Ci,Ti);se?(en=se.apply(ni,arguments),en=[en.x-ao[0],en.y-ao[1]]):en=[0,0],Ji({type:"dragstart"});function yo(){var Ms=mt(Ci,Ti),vl,wl;Ms&&(vl=Ms[0]-ao[0],wl=Ms[1]-ao[1],ai|=vl|wl,ao=Ms,Ji({type:"drag",x:Ms[0]+en[0],y:Ms[1]+en[1],dx:vl,dy:wl}))}function Ko(){mt(Ci,Ti)&&(Wi.on(_r+Bi,null).on(wr+Bi,null),bi(ai),Ji({type:"dragend"}))}}}return Ye.origin=function(Nt){return arguments.length?(se=Nt,Ye):se},e.rebind(Ye,X,"on")};function _e(){return e.event.changedTouches[0].identifier}e.touches=function(X,se){return arguments.length<2&&(se=ze().touches),se?r(se).map(function(Le){var We=De(X,Le);return We.identifier=Le.identifier,We}):[]};var Fe=1e-6,Pe=Fe*Fe,Ie=Math.PI,lt=2*Ie,ye=lt-Fe,ue=Ie/2,de=Ie/180,ht=180/Ie;function Et(X){return X>0?1:X<0?-1:0}function St(X,se,Le){return(se[0]-X[0])*(Le[1]-X[1])-(se[1]-X[1])*(Le[0]-X[0])}function Zt(X){return X>1?0:X<-1?Ie:Math.acos(X)}function qr(X){return X>1?ue:X<-1?-ue:Math.asin(X)}function Lr(X){return((X=Math.exp(X))-1/X)/2}function vr(X){return((X=Math.exp(X))+1/X)/2}function Er(X){return((X=Math.exp(2*X))-1)/(X+1)}function si(X){return(X=Math.sin(X/2))*X}var Ei=Math.SQRT2,Si=2,xi=4;e.interpolateZoom=function(X,se){var Le=X[0],We=X[1],Ye=X[2],it=se[0],Nt=se[1],mt=se[2],er=it-Le,_r=Nt-We,wr=er*er+_r*_r,ni,Wr;if(wr<Pe)Wr=Math.log(mt/Ye)/Ei,ni=function(en){return[Le+en*er,We+en*_r,Ye*Math.exp(Ei*en*Wr)]};else{var Ci=Math.sqrt(wr),Ji=(mt*mt-Ye*Ye+xi*wr)/(2*Ye*Si*Ci),ai=(mt*mt-Ye*Ye-xi*wr)/(2*mt*Si*Ci),Ti=Math.log(Math.sqrt(Ji*Ji+1)-Ji),Bi=Math.log(Math.sqrt(ai*ai+1)-ai);Wr=(Bi-Ti)/Ei,ni=function(en){var Wi=en*Wr,bi=vr(Ti),ao=Ye/(Si*Ci)*(bi*Er(Ei*Wi+Ti)-Lr(Ti));return[Le+ao*er,We+ao*_r,Ye*bi/vr(Ei*Wi+Ti)]}}return ni.duration=Wr*1e3,ni},e.behavior.zoom=function(){var X={x:0,y:0,k:1},se,Le,We,Ye=[960,500],it=Hi,Nt=250,mt=0,er="mousedown.zoom",_r="mousemove.zoom",wr="mouseup.zoom",ni,Wr="touchstart.zoom",Ci,Ji=Ce(Wi,"zoomstart","zoom","zoomend"),ai,Ti,Bi,en;ci||(ci="onwheel"in n?(Jr=function(){return-e.event.deltaY*(e.event.deltaMode?120:1)},"wheel"):"onmousewheel"in n?(Jr=function(){return e.event.wheelDelta},"mousewheel"):(Jr=function(){return-e.event.detail},"MozMousePixelScroll"));function Wi(qo){qo.on(er,nu).on(ci+".zoom",qu).on("dblclick.zoom",Ju).on(Wr,Bu)}Wi.event=function(qo){qo.each(function(){var Rl=Ji.of(this,arguments),pu=X;Ll?e.select(this).transition().each("start.zoom",function(){X=this.__chart__||{x:0,y:0,k:1},wl(Rl)}).tween("zoom:zoom",function(){var xu=Ye[0],of=Ye[1],ff=Le?Le[0]:xu/2,xf=Le?Le[1]:of/2,hf=e.interpolateZoom([(ff-X.x)/X.k,(xf-X.y)/X.k,xu/X.k],[(ff-pu.x)/pu.k,(xf-pu.y)/pu.k,xu/pu.k]);return function(dc){var Gt=hf(dc),jr=xu/Gt[2];this.__chart__=X={x:ff-Gt[0]*jr,y:xf-Gt[1]*jr,k:jr},au(Rl)}}).each("interrupt.zoom",function(){Al(Rl)}).each("end.zoom",function(){Al(Rl)}):(this.__chart__=X,wl(Rl),au(Rl),Al(Rl))})},Wi.translate=function(qo){return arguments.length?(X={x:+qo[0],y:+qo[1],k:X.k},vl(),Wi):[X.x,X.y]},Wi.scale=function(qo){return arguments.length?(X={x:X.x,y:X.y,k:null},yo(+qo),vl(),Wi):X.k},Wi.scaleExtent=function(qo){return arguments.length?(it=qo==null?Hi:[+qo[0],+qo[1]],Wi):it},Wi.center=function(qo){return arguments.length?(We=qo&&[+qo[0],+qo[1]],Wi):We},Wi.size=function(qo){return arguments.length?(Ye=qo&&[+qo[0],+qo[1]],Wi):Ye},Wi.duration=function(qo){return arguments.length?(Nt=+qo,Wi):Nt},Wi.x=function(qo){return arguments.length?(Ti=qo,ai=qo.copy(),X={x:0,y:0,k:1},Wi):Ti},Wi.y=function(qo){return arguments.length?(en=qo,Bi=qo.copy(),X={x:0,y:0,k:1},Wi):en};function bi(qo){return[(qo[0]-X.x)/X.k,(qo[1]-X.y)/X.k]}function ao(qo){return[qo[0]*X.k+X.x,qo[1]*X.k+X.y]}function yo(qo){X.k=Math.max(it[0],Math.min(it[1],qo))}function Ko(qo,Rl){Rl=ao(Rl),X.x+=qo[0]-Rl[0],X.y+=qo[1]-Rl[1]}function Ms(qo,Rl,pu,xu){qo.__chart__={x:X.x,y:X.y,k:X.k},yo(Math.pow(2,xu)),Ko(Le=Rl,pu),qo=e.select(qo),Nt>0&&(qo=qo.transition().duration(Nt)),qo.call(Wi.event)}function vl(){Ti&&Ti.domain(ai.range().map(function(qo){return(qo-X.x)/X.k}).map(ai.invert)),en&&en.domain(Bi.range().map(function(qo){return(qo-X.y)/X.k}).map(Bi.invert))}function wl(qo){mt++||qo({type:"zoomstart"})}function au(qo){vl(),qo({type:"zoom",scale:X.k,translate:[X.x,X.y]})}function Al(qo){--mt||(qo({type:"zoomend"}),Le=null)}function nu(){var qo=this,Rl=Ji.of(qo,arguments),pu=0,xu=e.select(a(qo)).on(_r,xf).on(wr,hf),of=bi(e.mouse(qo)),ff=fr(qo);ys.call(qo),wl(Rl);function xf(){pu=1,Ko(e.mouse(qo),of),au(Rl)}function hf(){xu.on(_r,null).on(wr,null),ff(pu),Al(Rl)}}function Bu(){var qo=this,Rl=Ji.of(qo,arguments),pu={},xu=0,of,ff=".zoom-"+e.event.changedTouches[0].identifier,xf="touchmove"+ff,hf="touchend"+ff,dc=[],Gt=e.select(qo),jr=fr(qo);Mn(),wl(Rl),Gt.on(er,null).on(Wr,Mn);function _i(){var ha=e.touches(qo);return of=X.k,ha.forEach(function(Io){Io.identifier in pu&&(pu[Io.identifier]=bi(Io))}),ha}function Mn(){var ha=e.event.target;e.select(ha).on(xf,Ta).on(hf,fa),dc.push(ha);for(var Io=e.event.changedTouches,Vs=0,Hs=Io.length;Vs<Hs;++Vs)pu[Io[Vs].identifier]=null;var is=_i(),su=Date.now();if(is.length===1){if(su-Ci<500){var Ps=is[0];Ms(qo,Ps,pu[Ps.identifier],Math.floor(Math.log(X.k)/Math.LN2)+1),be()}Ci=su}else if(is.length>1){var Ps=is[0],qs=is[1],Do=Ps[0]-qs[0],kn=Ps[1]-qs[1];xu=Do*Do+kn*kn}}function Ta(){var ha=e.touches(qo),Io,Vs,Hs,is;ys.call(qo);for(var su=0,Ps=ha.length;su<Ps;++su,is=null)if(Hs=ha[su],is=pu[Hs.identifier]){if(Vs)break;Io=Hs,Vs=is}if(is){var qs=(qs=Hs[0]-Io[0])*qs+(qs=Hs[1]-Io[1])*qs,Do=xu&&Math.sqrt(qs/xu);Io=[(Io[0]+Hs[0])/2,(Io[1]+Hs[1])/2],Vs=[(Vs[0]+is[0])/2,(Vs[1]+is[1])/2],yo(Do*of)}Ci=null,Ko(Io,Vs),au(Rl)}function fa(){if(e.event.touches.length){for(var ha=e.event.changedTouches,Io=0,Vs=ha.length;Io<Vs;++Io)delete pu[ha[Io].identifier];for(var Hs in pu)return void _i()}e.selectAll(dc).on(ff,null),Gt.on(er,nu).on(Wr,Bu),jr(),Al(Rl)}}function qu(){var qo=Ji.of(this,arguments);ni?clearTimeout(ni):(ys.call(this),se=bi(Le=We||e.mouse(this)),wl(qo)),ni=setTimeout(function(){ni=null,Al(qo)},50),be(),yo(Math.pow(2,Jr()*.002)*X.k),Ko(Le,se),au(qo)}function Ju(){var qo=e.mouse(this),Rl=Math.log(X.k)/Math.LN2;Ms(this,qo,bi(qo),e.event.shiftKey?Math.ceil(Rl)-1:Math.floor(Rl)+1)}return e.rebind(Wi,Ji,"on")};var Hi=[0,1/0],Jr,ci;e.color=Di;function Di(){}Di.prototype.toString=function(){return this.rgb()+""},e.hsl=Lt;function Lt(X,se,Le){return this instanceof Lt?(this.h=+X,this.s=+se,void(this.l=+Le)):arguments.length<2?X instanceof Lt?new Lt(X.h,X.s,X.l):sn(""+X,fi,Lt):new Lt(X,se,Le)}var vt=Lt.prototype=new Di;vt.brighter=function(X){return X=Math.pow(.7,arguments.length?X:1),new Lt(this.h,this.s,this.l/X)},vt.darker=function(X){return X=Math.pow(.7,arguments.length?X:1),new Lt(this.h,this.s,X*this.l)},vt.rgb=function(){return Dt(this.h,this.s,this.l)};function Dt(X,se,Le){var We,Ye;X=isNaN(X)?0:(X%=360)<0?X+360:X,se=isNaN(se)||se<0?0:se>1?1:se,Le=Le<0?0:Le>1?1:Le,Ye=Le<=.5?Le*(1+se):Le+se-Le*se,We=2*Le-Ye;function it(mt){return mt>360?mt-=360:mt<0&&(mt+=360),mt<60?We+(Ye-We)*mt/60:mt<180?Ye:mt<240?We+(Ye-We)*(240-mt)/60:We}function Nt(mt){return Math.round(it(mt)*255)}return new ki(Nt(X+120),Nt(X),Nt(X-120))}e.hcl=Bt;function Bt(X,se,Le){return this instanceof Bt?(this.h=+X,this.c=+se,void(this.l=+Le)):arguments.length<2?X instanceof Bt?new Bt(X.h,X.c,X.l):X instanceof zr?Yr(X.l,X.a,X.b):Yr((X=Or((X=e.rgb(X)).r,X.g,X.b)).l,X.a,X.b):new Bt(X,se,Le)}var sr=Bt.prototype=new Di;sr.brighter=function(X){return new Bt(this.h,this.c,Math.min(100,this.l+Tr*(arguments.length?X:1)))},sr.darker=function(X){return new Bt(this.h,this.c,Math.max(0,this.l-Tr*(arguments.length?X:1)))},sr.rgb=function(){return br(this.h,this.c,this.l).rgb()};function br(X,se,Le){return isNaN(X)&&(X=0),isNaN(se)&&(se=0),new zr(Le,Math.cos(X*=de)*se,Math.sin(X)*se)}e.lab=zr;function zr(X,se,Le){return this instanceof zr?(this.l=+X,this.a=+se,void(this.b=+Le)):arguments.length<2?X instanceof zr?new zr(X.l,X.a,X.b):X instanceof Bt?br(X.h,X.c,X.l):Or((X=ki(X)).r,X.g,X.b):new zr(X,se,Le)}var Tr=18,Rr=.95047,Br=1,oi=1.08883,vi=zr.prototype=new Di;vi.brighter=function(X){return new zr(Math.min(100,this.l+Tr*(arguments.length?X:1)),this.a,this.b)},vi.darker=function(X){return new zr(Math.max(0,this.l-Tr*(arguments.length?X:1)),this.a,this.b)},vi.rgb=function(){return Pi(this.l,this.a,this.b)};function Pi(X,se,Le){var We=(X+16)/116,Ye=We+se/500,it=We-Le/200;return Ye=Ni(Ye)*Rr,We=Ni(We)*Br,it=Ni(it)*oi,new ki(ti(3.2404542*Ye-1.5371385*We-.4985314*it),ti(-.969266*Ye+1.8760108*We+.041556*it),ti(.0556434*Ye-.2040259*We+1.0572252*it))}function Yr(X,se,Le){return X>0?new Bt(Math.atan2(Le,se)*ht,Math.sqrt(se*se+Le*Le),X):new Bt(NaN,NaN,X)}function Ni(X){return X>.206893034?X*X*X:(X-4/29)/7.787037}function Ur(X){return X>.008856?Math.pow(X,1/3):7.787037*X+4/29}function ti(X){return Math.round(255*(X<=.00304?12.92*X:1.055*Math.pow(X,1/2.4)-.055))}e.rgb=ki;function ki(X,se,Le){return this instanceof ki?(this.r=~~X,this.g=~~se,void(this.b=~~Le)):arguments.length<2?X instanceof ki?new ki(X.r,X.g,X.b):sn(""+X,ki,Dt):new ki(X,se,Le)}function ji(X){return new ki(X>>16,X>>8&255,X&255)}function Vi(X){return ji(X)+""}var zi=ki.prototype=new Di;zi.brighter=function(X){X=Math.pow(.7,arguments.length?X:1);var se=this.r,Le=this.g,We=this.b,Ye=30;return!se&&!Le&&!We?new ki(Ye,Ye,Ye):(se&&se<Ye&&(se=Ye),Le&&Le<Ye&&(Le=Ye),We&&We<Ye&&(We=Ye),new ki(Math.min(255,se/X),Math.min(255,Le/X),Math.min(255,We/X)))},zi.darker=function(X){return X=Math.pow(.7,arguments.length?X:1),new ki(X*this.r,X*this.g,X*this.b)},zi.hsl=function(){return fi(this.r,this.g,this.b)},zi.toString=function(){return"#"+Mi(this.r)+Mi(this.g)+Mi(this.b)};function Mi(X){return X<16?"0"+Math.max(0,X).toString(16):Math.min(255,X).toString(16)}function sn(X,se,Le){var We=0,Ye=0,it=0,Nt,mt,er;if(Nt=/([a-z]+)\((.*)\)/.exec(X=X.toLowerCase()),Nt)switch(mt=Nt[2].split(","),Nt[1]){case"hsl":return Le(parseFloat(mt[0]),parseFloat(mt[1])/100,parseFloat(mt[2])/100);case"rgb":return se(Wt(mt[0]),Wt(mt[1]),Wt(mt[2]))}return(er=tr.get(X))?se(er.r,er.g,er.b):(X!=null&&X.charAt(0)==="#"&&!isNaN(er=parseInt(X.slice(1),16))&&(X.length===4?(We=(er&3840)>>4,We=We>>4|We,Ye=er&240,Ye=Ye>>4|Ye,it=er&15,it=it<<4|it):X.length===7&&(We=(er&16711680)>>16,Ye=(er&65280)>>8,it=er&255)),se(We,Ye,it))}function fi(X,se,Le){var We=Math.min(X/=255,se/=255,Le/=255),Ye=Math.max(X,se,Le),it=Ye-We,Nt,mt,er=(Ye+We)/2;return it?(mt=er<.5?it/(Ye+We):it/(2-Ye-We),X==Ye?Nt=(se-Le)/it+(se<Le?6:0):se==Ye?Nt=(Le-X)/it+2:Nt=(X-se)/it+4,Nt*=60):(Nt=NaN,mt=er>0&&er<1?0:Nt),new Lt(Nt,mt,er)}function Or(X,se,Le){X=st(X),se=st(se),Le=st(Le);var We=Ur((.4124564*X+.3575761*se+.1804375*Le)/Rr),Ye=Ur((.2126729*X+.7151522*se+.072175*Le)/Br),it=Ur((.0193339*X+.119192*se+.9503041*Le)/oi);return zr(116*Ye-16,500*(We-Ye),200*(Ye-it))}function st(X){return(X/=255)<=.04045?X/12.92:Math.pow((X+.055)/1.055,2.4)}function Wt(X){var se=parseFloat(X);return X.charAt(X.length-1)==="%"?Math.round(se*2.55):se}var tr=e.map({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});tr.forEach(function(X,se){tr.set(X,ji(se))});function or(X){return typeof X=="function"?X:function(){return X}}e.functor=or,e.xhr=Nr(H);function Nr(X){return function(se,Le,We){return arguments.length===2&&typeof Le=="function"&&(We=Le,Le=null),hi(se,Le,X,We)}}function hi(X,se,Le,We){var Ye={},it=e.dispatch("beforesend","progress","load","error"),Nt={},mt=new XMLHttpRequest,er=null;self.XDomainRequest&&!("withCredentials"in mt)&&/^(http(s)?:)?\/\//.test(X)&&(mt=new XDomainRequest),"onload"in mt?mt.onload=mt.onerror=_r:mt.onreadystatechange=function(){mt.readyState>3&&_r()};function _r(){var wr=mt.status,ni;if(!wr&&Qr(mt)||wr>=200&&wr<300||wr===304){try{ni=Le.call(Ye,mt)}catch(Wr){it.error.call(Ye,Wr);return}it.load.call(Ye,ni)}else it.error.call(Ye,mt)}return mt.onprogress=function(wr){var ni=e.event;e.event=wr;try{it.progress.call(Ye,mt)}finally{e.event=ni}},Ye.header=function(wr,ni){return wr=(wr+"").toLowerCase(),arguments.length<2?Nt[wr]:(ni==null?delete Nt[wr]:Nt[wr]=ni+"",Ye)},Ye.mimeType=function(wr){return arguments.length?(se=wr==null?null:wr+"",Ye):se},Ye.responseType=function(wr){return arguments.length?(er=wr,Ye):er},Ye.response=function(wr){return Le=wr,Ye},["get","post"].forEach(function(wr){Ye[wr]=function(){return Ye.send.apply(Ye,[wr].concat(r(arguments)))}}),Ye.send=function(wr,ni,Wr){if(arguments.length===2&&typeof ni=="function"&&(Wr=ni,ni=null),mt.open(wr,X,!0),se!=null&&!("accept"in Nt)&&(Nt.accept=se+",*/*"),mt.setRequestHeader)for(var Ci in Nt)mt.setRequestHeader(Ci,Nt[Ci]);return se!=null&&mt.overrideMimeType&&mt.overrideMimeType(se),er!=null&&(mt.responseType=er),Wr!=null&&Ye.on("error",Wr).on("load",function(Ji){Wr(null,Ji)}),it.beforesend.call(Ye,mt),mt.send(ni==null?null:ni),Ye},Ye.abort=function(){return mt.abort(),Ye},e.rebind(Ye,it,"on"),We==null?Ye:Ye.get(Gi(We))}function Gi(X){return X.length===1?function(se,Le){X(se==null?Le:null)}:X}function Qr(X){var se=X.responseType;return se&&se!=="text"?X.response:X.responseText}e.dsv=function(X,se){var Le=new RegExp('["'+X+` ]`),We=X.charCodeAt(0);function Ye(_r,wr,ni){arguments.length<3&&(ni=wr,wr=null);var Wr=hi(_r,se,wr==null?it:Nt(wr),ni);return Wr.row=function(Ci){return arguments.length?Wr.response((wr=Ci)==null?it:Nt(Ci)):wr},Wr}function it(_r){return Ye.parse(_r.responseText)}function Nt(_r){return function(wr){return Ye.parse(wr.responseText,_r)}}Ye.parse=function(_r,wr){var ni;return Ye.parseRows(_r,function(Wr,Ci){if(ni)return ni(Wr,Ci-1);var Ji=function(ai){for(var Ti={},Bi=Wr.length,en=0;en<Bi;++en)Ti[Wr[en]]=ai[en];return Ti};ni=wr?function(ai,Ti){return wr(Ji(ai),Ti)}:Ji})},Ye.parseRows=function(_r,wr){var ni={},Wr={},Ci=[],Ji=_r.length,ai=0,Ti=0,Bi,en;function Wi(){if(ai>=Ji)return Wr;if(en)return en=!1,ni;var ao=ai;if(_r.charCodeAt(ao)===34){for(var yo=ao;yo++<Ji;)if(_r.charCodeAt(yo)===34){if(_r.charCodeAt(yo+1)!==34)break;++yo}ai=yo+2;var Ko=_r.charCodeAt(yo+1);return Ko===13?(en=!0,_r.charCodeAt(yo+2)===10&&++ai):Ko===10&&(en=!0),_r.slice(ao+1,yo).replace(/""/g,'"')}for(;ai<Ji;){var Ko=_r.charCodeAt(ai++),Ms=1;if(Ko===10)en=!0;else if(Ko===13)en=!0,_r.charCodeAt(ai)===10&&(++ai,++Ms);else if(Ko!==We)continue;return _r.slice(ao,ai-Ms)}return _r.slice(ao)}for(;(Bi=Wi())!==Wr;){for(var bi=[];Bi!==ni&&Bi!==Wr;)bi.push(Bi),Bi=Wi();wr&&(bi=wr(bi,Ti++))==null||Ci.push(bi)}return Ci},Ye.format=function(_r){if(Array.isArray(_r[0]))return Ye.formatRows(_r);var wr=new U,ni=[];return _r.forEach(function(Wr){for(var Ci in Wr)wr.has(Ci)||ni.push(wr.add(Ci))}),[ni.map(er).join(X)].concat(_r.map(function(Wr){return ni.map(function(Ci){return er(Wr[Ci])}).join(X)})).join(` `)},Ye.formatRows=function(_r){return _r.map(mt).join(` `)};function mt(_r){return _r.map(er).join(X)}function er(_r){return Le.test(_r)?'"'+_r.replace(/\"/g,'""')+'"':_r}return Ye},e.csv=e.dsv(",","text/csv"),e.tsv=e.dsv(" ","text/tab-separated-values");var Ui,zn,fn,xn,_a=this[G(this,"requestAnimationFrame")]||function(X){setTimeout(X,17)};e.timer=function(){Wn.apply(this,arguments)};function Wn(X,se,Le){var We=arguments.length;We<2&&(se=0),We<3&&(Le=Date.now());var Ye=Le+se,it={c:X,t:Ye,n:null};return zn?zn.n=it:Ui=it,zn=it,fn||(xn=clearTimeout(xn),fn=1,_a(Fn)),it}function Fn(){var X=ia(),se=za()-X;se>24?(isFinite(se)&&(clearTimeout(xn),xn=setTimeout(Fn,se)),fn=0):(fn=1,_a(Fn))}e.timer.flush=function(){ia(),za()};function ia(){for(var X=Date.now(),se=Ui;se;)X>=se.t&&se.c(X-se.t)&&(se.c=null),se=se.n;return X}function za(){for(var X,se=Ui,Le=1/0;se;)se.c?(se.t<Le&&(Le=se.t),se=(X=se).n):se=X?X.n=se.n:Ui=se.n;return zn=X,Le}e.round=function(X,se){return se?Math.round(X*(se=Math.pow(10,se)))/se:Math.round(X)},e.geom={};function Hr(X){return X[0]}function na(X){return X[1]}e.geom.hull=function(X){var se=Hr,Le=na;if(arguments.length)return We(X);function We(Ye){if(Ye.length<3)return[];var it=or(se),Nt=or(Le),mt,er=Ye.length,_r=[],wr=[];for(mt=0;mt<er;mt++)_r.push([+it.call(this,Ye[mt],mt),+Nt.call(this,Ye[mt],mt),mt]);for(_r.sort(Dn),mt=0;mt<er;mt++)wr.push([_r[mt][0],-_r[mt][1]]);var ni=go(_r),Wr=go(wr),Ci=Wr[0]===ni[0],Ji=Wr[Wr.length-1]===ni[ni.length-1],ai=[];for(mt=ni.length-1;mt>=0;--mt)ai.push(Ye[_r[ni[mt]][2]]);for(mt=+Ci;mt<Wr.length-Ji;++mt)ai.push(Ye[_r[Wr[mt]][2]]);return ai}return We.x=function(Ye){return arguments.length?(se=Ye,We):se},We.y=function(Ye){return arguments.length?(Le=Ye,We):Le},We};function go(X){for(var se=X.length,Le=[0,1],We=2,Ye=2;Ye<se;Ye++){for(;We>1&&St(X[Le[We-2]],X[Le[We-1]],X[Ye])<=0;)--We;Le[We++]=Ye}return Le.slice(0,We)}function Dn(X,se){return X[0]-se[0]||X[1]-se[1]}e.geom.polygon=function(X){return te(X,un),X};var un=e.geom.polygon.prototype=[];un.area=function(){for(var X=-1,se=this.length,Le,We=this[se-1],Ye=0;++X<se;)Le=We,We=this[X],Ye+=Le[1]*We[0]-Le[0]*We[1];return Ye*.5},un.centroid=function(X){var se=-1,Le=this.length,We=0,Ye=0,it,Nt=this[Le-1],mt;for(arguments.length||(X=-1/(6*this.area()));++se<Le;)it=Nt,Nt=this[se],mt=it[0]*Nt[1]-Nt[0]*it[1],We+=(it[0]+Nt[0])*mt,Ye+=(it[1]+Nt[1])*mt;return[We*X,Ye*X]},un.clip=function(X){for(var se,Le=Ba(X),We=-1,Ye=this.length-Ba(this),it,Nt,mt=this[Ye-1],er,_r,wr;++We<Ye;){for(se=X.slice(),X.length=0,er=this[We],_r=se[(Nt=se.length-Le)-1],it=-1;++it<Nt;)wr=se[it],Zn(wr,mt,er)?(Zn(_r,mt,er)||X.push(Wo(_r,wr,mt,er)),X.push(wr)):Zn(_r,mt,er)&&X.push(Wo(_r,wr,mt,er)),_r=wr;Le&&X.push(X[0]),mt=er}return X};function Zn(X,se,Le){return(Le[0]-se[0])*(X[1]-se[1])<(Le[1]-se[1])*(X[0]-se[0])}function Wo(X,se,Le,We){var Ye=X[0],it=Le[0],Nt=se[0]-Ye,mt=We[0]-it,er=X[1],_r=Le[1],wr=se[1]-er,ni=We[1]-_r,Wr=(mt*(er-_r)-ni*(Ye-it))/(ni*Nt-mt*wr);return[Ye+Wr*Nt,er+Wr*wr]}function Ba(X){var se=X[0],Le=X[X.length-1];return!(se[0]-Le[0]||se[1]-Le[1])}var Bo,Ea,Ha,tn=[],Cn,Xn,ts=[];function Ja(){co(this),this.edge=this.site=this.circle=null}function to(X){var se=tn.pop()||new Ja;return se.site=X,se}function Ri(X){Yn(X),Ha.remove(X),tn.push(X),co(X)}function nn(X){var se=X.circle,Le=se.x,We=se.cy,Ye={x:Le,y:We},it=X.P,Nt=X.N,mt=[X];Ri(X);for(var er=it;er.circle&&v(Le-er.circle.x)<Fe&&v(We-er.circle.cy)<Fe;)it=er.P,mt.unshift(er),Ri(er),er=it;mt.unshift(er),Yn(er);for(var _r=Nt;_r.circle&&v(Le-_r.circle.x)<Fe&&v(We-_r.circle.cy)<Fe;)Nt=_r.N,mt.push(_r),Ri(_r),_r=Nt;mt.push(_r),Yn(_r);var wr=mt.length,ni;for(ni=1;ni<wr;++ni)_r=mt[ni],er=mt[ni-1],Vo(_r.edge,er.site,_r.site,Ye);er=mt[0],_r=mt[wr-1],_r.edge=qa(er.site,_r.site,null,Ye),Fi(er),Fi(_r)}function cs(X){for(var se=X.x,Le=X.y,We,Ye,it,Nt,mt=Ha._;mt;)if(it=pa(mt,Le)-se,it>Fe)mt=mt.L;else if(Nt=se-ln(mt,Le),Nt>Fe){if(!mt.R){We=mt;break}mt=mt.R}else{it>-Fe?(We=mt.P,Ye=mt):Nt>-Fe?(We=mt,Ye=mt.N):We=Ye=mt;break}var er=to(X);if(Ha.insert(We,er),!(!We&&!Ye)){if(We===Ye){Yn(We),Ye=to(We.site),Ha.insert(er,Ye),er.edge=Ye.edge=qa(We.site,er.site),Fi(We),Fi(Ye);return}if(!Ye){er.edge=qa(We.site,er.site);return}Yn(We),Yn(Ye);var _r=We.site,wr=_r.x,ni=_r.y,Wr=X.x-wr,Ci=X.y-ni,Ji=Ye.site,ai=Ji.x-wr,Ti=Ji.y-ni,Bi=2*(Wr*Ti-Ci*ai),en=Wr*Wr+Ci*Ci,Wi=ai*ai+Ti*Ti,bi={x:(Ti*en-Ci*Wi)/Bi+wr,y:(Wr*Wi-ai*en)/Bi+ni};Vo(Ye.edge,_r,Ji,bi),er.edge=qa(_r,X,null,bi),Ye.edge=qa(X,Ji,null,bi),Fi(We),Fi(Ye)}}function pa(X,se){var Le=X.site,We=Le.x,Ye=Le.y,it=Ye-se;if(!it)return We;var Nt=X.P;if(!Nt)return-1/0;Le=Nt.site;var mt=Le.x,er=Le.y,_r=er-se;if(!_r)return mt;var wr=mt-We,ni=1/it-1/_r,Wr=wr/_r;return ni?(-Wr+Math.sqrt(Wr*Wr-2*ni*(wr*wr/(-2*_r)-er+_r/2+Ye-it/2)))/ni+We:(We+mt)/2}function ln(X,se){var Le=X.N;if(Le)return pa(Le,se);var We=X.site;return We.y===se?We.x:1/0}function ka(X){this.site=X,this.edges=[]}ka.prototype.prepare=function(){for(var X=this.edges,se=X.length,Le;se--;)Le=X[se].edge,(!Le.b||!Le.a)&&X.splice(se,1);return X.sort(bo),X.length};function va(X){for(var se=X[0][0],Le=X[1][0],We=X[0][1],Ye=X[1][1],it,Nt,mt,er,_r=Ea,wr=_r.length,ni,Wr,Ci,Ji,ai,Ti;wr--;)if(ni=_r[wr],!(!ni||!ni.prepare()))for(Ci=ni.edges,Ji=Ci.length,Wr=0;Wr<Ji;)Ti=Ci[Wr].end(),mt=Ti.x,er=Ti.y,ai=Ci[++Wr%Ji].start(),it=ai.x,Nt=ai.y,(v(mt-it)>Fe||v(er-Nt)>Fe)&&(Ci.splice(Wr,0,new Pa(jo(ni.site,Ti,v(mt-se)<Fe&&Ye-er>Fe?{x:se,y:v(it-se)<Fe?Nt:Ye}:v(er-Ye)<Fe&&Le-mt>Fe?{x:v(Nt-Ye)<Fe?it:Le,y:Ye}:v(mt-Le)<Fe&&er-We>Fe?{x:Le,y:v(it-Le)<Fe?Nt:We}:v(er-We)<Fe&&mt-se>Fe?{x:v(Nt-We)<Fe?it:se,y:We}:null),ni.site,null)),++Ji)}function bo(X,se){return se.angle-X.angle}function Co(){co(this),this.x=this.y=this.arc=this.site=this.cy=null}function Fi(X){var se=X.P,Le=X.N;if(!(!se||!Le)){var We=se.site,Ye=X.site,it=Le.site;if(We!==it){var Nt=Ye.x,mt=Ye.y,er=We.x-Nt,_r=We.y-mt,wr=it.x-Nt,Ti=it.y-mt,ni=2*(er*Ti-_r*wr);if(!(ni>=-Pe)){var Wr=er*er+_r*_r,Ci=wr*wr+Ti*Ti,Ji=(Ti*Wr-_r*Ci)/ni,ai=(er*Ci-wr*Wr)/ni,Ti=ai+mt,Bi=ts.pop()||new Co;Bi.arc=X,Bi.site=Ye,Bi.x=Ji+Nt,Bi.y=Ti+Math.sqrt(Ji*Ji+ai*ai),Bi.cy=Ti,X.circle=Bi;for(var en=null,Wi=Xn._;Wi;)if(Bi.y<Wi.y||Bi.y===Wi.y&&Bi.x<=Wi.x)if(Wi.L)Wi=Wi.L;else{en=Wi.P;break}else if(Wi.R)Wi=Wi.R;else{en=Wi;break}Xn.insert(en,Bi),en||(Cn=Bi)}}}}function Yn(X){var se=X.circle;se&&(se.P||(Cn=se.N),Xn.remove(se),ts.push(se),co(se),X.circle=null)}function xa(X,se,Le,We){return function(Ye){var it=Ye.a,Nt=Ye.b,mt=it.x,er=it.y,_r=Nt.x,wr=Nt.y,ni=0,Wr=1,Ci=_r-mt,Ji=wr-er,ai;if(ai=X-mt,!(!Ci&&ai>0)){if(ai/=Ci,Ci<0){if(ai<ni)return;ai<Wr&&(Wr=ai)}else if(Ci>0){if(ai>Wr)return;ai>ni&&(ni=ai)}if(ai=Le-mt,!(!Ci&&ai<0)){if(ai/=Ci,Ci<0){if(ai>Wr)return;ai>ni&&(ni=ai)}else if(Ci>0){if(ai<ni)return;ai<Wr&&(Wr=ai)}if