=f.length)return null!=r?r(n):null!=e?n.sort(e):n;for(var c,s,l,h=-1,p=n.length,d=f[i++],v=o(),_=u();++hf.length)return t;var i,o=l[e-1];return null!=r&&e>=f.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=o?i.sort(function(t,n){return o(t.key,n.key)}):i}var e,r,i,f=[],l=[];return i={object:function(n){return t(n,0,u,a)},map:function(n){return t(n,0,c,s)},entries:function(e){return n(t(e,0,c,s),0)},key:function(t){return f.push(t),i},sortKeys:function(t){return l[f.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},of=o.prototype;f.prototype=l.prototype={constructor:f,has:of.has,add:function(t){return t+="",this[ef+t]=t,this},remove:of.remove,clear:of.clear,values:of.keys,size:of.size,empty:of.empty,each:of.each};var uf=function(t){var n=[];for(var e in t)n.push(e);return n},af=function(t){var n=[];for(var e in t)n.push(t[e]);return n},cf=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},sf=function(t,n){return t=null==t?0:+t,n=null==n?1:+n,1===arguments.length?(n=t,t=0):n-=t,function(){return Math.random()*n+t}},ff=function(t,n){var e,r;return t=null==t?0:+t,n=null==n?1:+n,function(){var i;if(null!=e)i=e,e=null;else do e=2*Math.random()-1,i=2*Math.random()-1,r=e*e+i*i;while(!r||r>1);return t+n*i*Math.sqrt(-2*Math.log(r)/r)}},lf=function(){var t=ff.apply(this,arguments);return function(){return Math.exp(t())}},hf=function(t){return function(){for(var n=0,e=0;e=0;--n)s.push(t[r[o[n]][2]]);for(n=+a;na!=s>a&&u<(c-e)*(a-r)/(s-r)+e&&(f=!f),c=e,s=r;return f},Vf=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],u=o[0],a=o[1],c=0;++rZf)if(Math.abs(f*a-c*s)>Zf&&i){var h=e-o,p=r-u,d=a*a+c*c,v=h*h+p*p,_=Math.sqrt(d),y=Math.sqrt(l),g=i*Math.tan((Wf-Math.acos((d+l-v)/(2*_*y)))/2),m=g/y,x=g/_;Math.abs(m-1)>Zf&&this._.push("L",t+m*s,",",n+m*f),this._.push("A",i,",",i,",0,0,",+(f*h>s*p),",",this._x1=t+x*a,",",this._y1=n+x*c)}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 u=e*Math.cos(r),a=e*Math.sin(r),c=t+u,s=n+a,f=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._.push("M",c,",",s):(Math.abs(this._x1-c)>Zf||Math.abs(this._y1-s)>Zf)&&this._.push("L",c,",",s),e&&(l>Gf?this._.push("A",e,",",e,",0,1,",f,",",t-u,",",n-a,"A",e,",",e,",0,1,",f,",",this._x1=c,",",this._y1=s):(l<0&&(l=l%$f+$f),this._.push("A",e,",",e,",0,",+(l>=Wf),",",f,",",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 Jf=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return R(this.cover(n,e),n,e,t)},Qf=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var u,a,c=i-e,s=this._root;switch(a=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do u=new Array(4),u[a]=s,s=u;while(c*=2,i=e+c,o=r+c,t>i||n>o);break;case 1:do u=new Array(4),u[a]=s,s=u;while(c*=2,e=i-c,o=r+c,e>t||n>o);break;case 2:do u=new Array(4),u[a]=s,s=u;while(c*=2,i=e+c,r=o-c,t>i||r>n);break;case 3:do u=new Array(4),u[a]=s,s=u;while(c*=2,e=i-c,r=o-c,e>t||r>n)}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},Kf=function(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t},tl=function(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]]},nl=function(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i},el=function(t,n,e){var r,i,o,u,a,c,s,f=this._x0,l=this._y0,h=this._x1,p=this._y1,d=[],v=this._root;for(v&&d.push(new nl(v,f,l,h,p)),null==e?e=1/0:(f=t-e,l=n-e,h=t+e,p=n+e,e*=e);c=d.pop();)if(!(!(v=c.node)||(i=c.x0)>h||(o=c.y0)>p||(u=c.x1)=y)<<1|t>=_)&&(c=d[d.length-1],d[d.length-1]=d[d.length-1-s],d[d.length-1-s]=c)}else{var g=t-+this._x.call(null,v.data),m=n-+this._y.call(null,v.data),x=g*g+m*m;if(x=(a=(d+_)/2))?d=a:_=a,(f=u>=(c=(v+y)/2))?v=c:y=c,n=p,!(p=p[l=f<<1|s]))return this;if(!p.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}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[l]=i:delete n[l],(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)},il=function(){return this._root},ol=function(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t},ul=function(t){var n,e,r,i,o,u,a=[],c=this._root;for(c&&a.push(new nl(c,this._x0,this._y0,this._x1,this._y1));n=a.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,u=n.y1)&&c.length){var s=(r+o)/2,f=(i+u)/2;(e=c[3])&&a.push(new nl(e,s,f,o,u)),(e=c[2])&&a.push(new nl(e,r,f,s,u)),(e=c[1])&&a.push(new nl(e,s,i,o,f)),(e=c[0])&&a.push(new nl(e,r,i,s,f))}return this},al=function(t){var n,e=[],r=[];for(this._root&&e.push(new nl(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,u=n.x0,a=n.y0,c=n.x1,s=n.y1,f=(u+c)/2,l=(a+s)/2;(o=i[0])&&e.push(new nl(o,u,a,f,l)),(o=i[1])&&e.push(new nl(o,f,a,c,l)),(o=i[2])&&e.push(new nl(o,u,l,f,s)),(o=i[3])&&e.push(new nl(o,f,l,c,s))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},cl=function(t){return arguments.length?(this._x=t,this):this._x},sl=function(t){return arguments.length?(this._y=t,this):this._y},fl=I.prototype=Y.prototype;fl.copy=function(){var t,n,e=new Y(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=B(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]=B(n));return e},fl.add=Jf,fl.addAll=U,fl.cover=Qf,fl.data=Kf,fl.extent=tl,fl.find=el,fl.remove=rl,fl.removeAll=D,fl.root=il,fl.size=ol,fl.visit=ul,fl.visitAfter=al,fl.x=cl,fl.y=sl;var ll=[].slice,hl={};j.prototype=Z.prototype={constructor:j,defer:function(t){if("function"!=typeof t||this._call)throw new Error;if(null!=this._error)return this;var n=ll.call(arguments,1);return n.push(t),++this._waiting,this._tasks.push(n),H(this),this},abort:function(){return null==this._error&&W(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))},$(this),this},awaitAll:function(t){if("function"!=typeof t||this._call)throw new Error;return this._call=t,$(this),this}};var pl=function(t){return function(){return t}},dl=1e-12,vl=Math.PI,_l=vl/2,yl=2*vl,gl=function(){function t(){var t,s,f=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-_l,p=u.apply(this,arguments)-_l,d=Math.abs(p-h),v=p>h;if(c||(c=t=L()),ldl)if(d>yl-dl)c.moveTo(l*Math.cos(h),l*Math.sin(h)),c.arc(0,0,l,h,p,!v),f>dl&&(c.moveTo(f*Math.cos(p),f*Math.sin(p)),c.arc(0,0,f,p,h,v));else{var _,y,g=h,m=p,x=h,b=p,w=d,M=d,T=a.apply(this,arguments)/2,N=T>dl&&(i?+i.apply(this,arguments):Math.sqrt(f*f+l*l)),k=Math.min(Math.abs(l-f)/2,+r.apply(this,arguments)),S=k,A=k;if(N>dl){var E=nt(N/f*Math.sin(T)),C=nt(N/l*Math.sin(T));(w-=2*E)>dl?(E*=v?1:-1,x+=E,b-=E):(w=0,x=b=(h+p)/2),(M-=2*C)>dl?(C*=v?1:-1,g+=C,m-=C):(M=0,g=m=(h+p)/2)}var z=l*Math.cos(g),P=l*Math.sin(g),q=f*Math.cos(b),R=f*Math.sin(b);if(k>dl){var U=l*Math.cos(m),D=l*Math.sin(m),O=f*Math.cos(x),F=f*Math.sin(x);if(ddl?et(z,P,O,F,U,D,q,R):[q,R],Y=z-I[0],B=P-I[1],j=U-I[0],H=D-I[1],X=1/Math.sin(Math.acos((Y*j+B*H)/(Math.sqrt(Y*Y+B*B)*Math.sqrt(j*j+H*H)))/2),V=Math.sqrt(I[0]*I[0]+I[1]*I[1]);S=Math.min(k,(f-V)/(X-1)),A=Math.min(k,(l-V)/(X+1))}}M>dl?A>dl?(_=rt(O,F,z,P,l,A,v),y=rt(U,D,q,R,l,A,v),c.moveTo(_.cx+_.x01,_.cy+_.y01),Adl&&w>dl?S>dl?(_=rt(q,R,U,D,f,-S,v),y=rt(z,P,O,F,f,-S,v),c.lineTo(_.cx+_.x01,_.cy+_.y01),S=f;--l)s.point(_[l],y[l]);s.lineEnd(),s.areaEnd()}v&&(_[n]=+e(h,n,t),y[n]=+i(h,n,t),s.point(r?+r(h,n,t):_[n],o?+o(h,n,t):y[n]))}if(p)return s=null,p+""||null}function n(){return xl().defined(u).curve(c).context(a)}var e=ot,r=null,i=pl(0),o=ut,u=pl(!0),a=null,c=ml,s=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:pl(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:pl(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:pl(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:pl(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:pl(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:pl(+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?(u="function"==typeof n?n:pl(!!n),t):u},t.curve=function(n){return arguments.length?(c=n,null!=a&&(s=c(a)),t):c},t.context=function(n){return arguments.length?(null==n?a=s=null:s=c(a=n),t):a},t},wl=function(t,n){return nt?1:n>=t?0:NaN},Ml=function(t){return t},Tl=function(){function t(t){var a,c,s,f,l,h=t.length,p=0,d=new Array(h),v=new Array(h),_=+i.apply(this,arguments),y=Math.min(yl,Math.max(-yl,o.apply(this,arguments)-_)),g=Math.min(Math.abs(y)/h,u.apply(this,arguments)),m=g*(y<0?-1:1);for(a=0;a0&&(p+=l);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])}),a=0,s=p?(y-h*m)/p:0;a0?l*s:0)+m,v[c]={data:t[c],index:a,value:l,startAngle:_,endAngle:f,padAngle:g};return v}var n=Ml,e=wl,r=null,i=pl(0),o=pl(yl),u=pl(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:pl(+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:pl(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:pl(+n),t):o},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:pl(+n),t):u},t},Nl=ct(ml);at.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 kl=function(){return st(xl().curve(Nl))},Sl=function(){var t=bl().curve(Nl),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 st(e())},delete t.lineX0,t.lineEndAngle=function(){return st(r())},delete t.lineX1,t.lineInnerRadius=function(){return st(i())},delete t.lineY0,t.lineOuterRadius=function(){return st(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(ct(t)):n()._curve},t},Al={draw:function(t,n){var e=Math.sqrt(n/vl);t.moveTo(e,0),t.arc(0,0,e,0,yl)}},El={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()}},Cl=Math.sqrt(1/3),zl=2*Cl,Pl={draw:function(t,n){var e=Math.sqrt(n/zl),r=e*Cl;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},ql=.8908130915292852,Ll=Math.sin(vl/10)/Math.sin(7*vl/10),Rl=Math.sin(yl/10)*Ll,Ul=-Math.cos(yl/10)*Ll,Dl={draw:function(t,n){var e=Math.sqrt(n*ql),r=Rl*e,i=Ul*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var u=yl*o/5,a=Math.cos(u),c=Math.sin(u);t.lineTo(c*e,-a*e),t.lineTo(a*r-c*i,c*r+a*i)}t.closePath()}},Ol={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},Fl=Math.sqrt(3),Il={draw:function(t,n){var e=-Math.sqrt(n/(3*Fl));t.moveTo(0,2*e),t.lineTo(-Fl*e,-e),t.lineTo(Fl*e,-e),t.closePath()}},Yl=-.5,Bl=Math.sqrt(3)/2,jl=1/Math.sqrt(12),Hl=3*(jl/2+1),Xl={draw:function(t,n){var e=Math.sqrt(n/Hl),r=e/2,i=e*jl,o=r,u=e*jl+e,a=-o,c=u;t.moveTo(r,i),t.lineTo(o,u),t.lineTo(a,c),t.lineTo(Yl*r-Bl*i,Bl*r+Yl*i),t.lineTo(Yl*o-Bl*u,Bl*o+Yl*u),t.lineTo(Yl*a-Bl*c,Bl*a+Yl*c),t.lineTo(Yl*r+Bl*i,Yl*i-Bl*r),t.lineTo(Yl*o+Bl*u,Yl*u-Bl*o),t.lineTo(Yl*a+Bl*c,Yl*c-Bl*a),t.closePath()}},Vl=[Al,El,Pl,Ol,Dl,Il,Xl],Wl=function(){function t(){var t;if(r||(r=t=L()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=pl(Al),e=pl(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:pl(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:pl(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},$l=function(){};lt.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:ft(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:ft(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Zl=function(t){return new lt(t)};ht.prototype={areaStart:$l,areaEnd:$l,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:ft(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Gl=function(t){return new ht(t)};pt.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:ft(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Jl=function(t){return new pt(t)};dt.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],u=t[e]-i,a=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*u),this._beta*n[c]+(1-this._beta)*(o+r*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var Ql=function t(n){function e(t){return 1===n?new lt(t):new dt(t,n)}return e.beta=function(n){return t(+n)},e}(.85);_t.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:vt(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:vt(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 Kl=function t(n){function e(t){return new _t(t,n)}return e.tension=function(n){return t(+n)},e}(0);yt.prototype={areaStart:$l,areaEnd:$l,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:vt(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 th=function t(n){function e(t){return new yt(t,n)}return e.tension=function(n){return t(+n)},e}(0);gt.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:vt(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 nh=function t(n){function e(t){return new gt(t,n)}return e.tension=function(n){return t(+n)},e}(0);xt.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._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:mt(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 eh=function t(n){function e(t){return n?new xt(t,n):new _t(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);bt.prototype={areaStart:$l,areaEnd:$l,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:mt(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 rh=function t(n){function e(t){return n?new bt(t,n):new yt(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);wt.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:mt(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 ih=function t(n){function e(t){return n?new wt(t,n):new gt(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Mt.prototype={areaStart:$l,areaEnd:$l,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))}};var oh=function(t){return new Mt(t)};At.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:St(this,this._t0,kt(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,St(this,kt(this,e=Nt(this,t,n)),e);break;default:St(this,this._t0,e=Nt(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(Et.prototype=Object.create(At.prototype)).point=function(t,n){At.prototype.point.call(this,n,t)},Ct.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)}},qt.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=Lt(t),i=Lt(n),o=0,u=1;u=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 ah=function(t){return new Rt(t,.5)},ch=Array.prototype.slice,sh=function(t,n){if((r=t.length)>1)for(var e,r,i=1,o=t[n[0]],u=o.length;i=0;)e[n]=n;return e},lh=function(){function t(t){var o,u,a=n.apply(this,arguments),c=t.length,s=a.length,f=new Array(s);for(o=0;o0){for(var e,r,i,o=0,u=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,u=1;u=240?t-240:t+120,i,r),Qt(t,i,r),Qt(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 zh=Math.PI/180,Ph=180/Math.PI,qh=18,Lh=.95047,Rh=1,Uh=1.08883,Dh=4/29,Oh=6/29,Fh=3*Oh*Oh,Ih=Oh*Oh*Oh;mh(nn,tn,It(Yt,{brighter:function(t){return new nn(this.l+qh*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new nn(this.l-qh*(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=Rh*rn(t),n=Lh*rn(n),e=Uh*rn(e),new Wt(on(3.2404542*n-1.5371385*t-.4985314*e),on(-.969266*n+1.8760108*t+.041556*e),on(.0556434*n-.2040259*t+1.0572252*e),this.opacity)}})),mh(sn,cn,It(Yt,{brighter:function(t){return new sn(this.h,this.c,this.l+qh*(null==t?1:t),this.opacity)},darker:function(t){return new sn(this.h,this.c,this.l-qh*(null==t?1:t),this.opacity)},rgb:function(){return Kt(this).rgb()}}));var Yh=-.14861,Bh=1.78277,jh=-.29227,Hh=-.90649,Xh=1.97294,Vh=Xh*Hh,Wh=Xh*Bh,$h=Bh*jh-Hh*Yh;mh(hn,ln,It(Yt,{brighter:function(t){return t=null==t?bh:Math.pow(bh,t),new hn(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?xh:Math.pow(xh,t),new hn(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*zh,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Wt(255*(n+e*(Yh*r+Bh*i)),255*(n+e*(jh*r+Hh*i)),255*(n+e*(Xh*r)),this.opacity)}}));var Zh,Gh,Jh,Qh,Kh=function(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],u=r>0?t[r-1]:2*i-o,a=ro&&(i=n.slice(o,i),a[u]?a[u]+=i:a[++u]=i),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,c.push({i:u,x:ap(e,r)})),o=fp.lastIndex;return o0)for(var e,r,i=new Array(e),o=0;o=s)return u;if(i)return i=!1,o;var n,e=f;if(34===t.charCodeAt(e)){for(var r=e;r++=200&&e<300||304===e){if(u)try{n=u.call(r,f)}catch(t){return void c.call("error",r,t)}else n=f;c.call("load",r,n)}else c.call("error",r,t)}var r,i,u,a,c=Pn("beforesend","progress","load","error"),s=o(),f=new XMLHttpRequest,l=null,h=null,p=0;if("undefined"==typeof XDomainRequest||"withCredentials"in f||!/^(http(s)?:)?\/\//.test(t)||(f=new XDomainRequest),"onload"in f?f.onload=f.onerror=f.ontimeout=e:f.onreadystatechange=function(t){f.readyState>3&&e(t)},f.onprogress=function(t){c.call("progress",r,t)},r={header:function(t,n){return t=(t+"").toLowerCase(),arguments.length<2?s.get(t):(null==n?s.remove(t):s.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?(p=+t,r):p},user:function(t){return arguments.length<1?l:(l=null==t?null:t+"",r)},password:function(t){return arguments.length<1?h:(h=null==t?null:t+"",r)},response:function(t){return u=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 f.open(n,t,!0,l,h),null==i||s.has("accept")||s.set("accept",i+",*/*"),f.setRequestHeader&&s.each(function(t,n){f.setRequestHeader(n,t)}),null!=i&&f.overrideMimeType&&f.overrideMimeType(i),null!=a&&(f.responseType=a),p>0&&(f.timeout=p),null==o&&"function"==typeof e&&(o=e,e=null),null!=o&&1===o.length&&(o=In(o)),null!=o&&r.on("error",o).on("load",function(t){o(null,t)}),c.call("beforesend",r,f),f.send(null==e?null:e),r},abort:function(){return f.abort(),r},on:function(){var t=c.on.apply(c,arguments);return t===c?r:t}},null!=n){if("function"!=typeof n)throw new Error("invalid callback: "+n);return r.get(n)}return r},Vp=function(t,n){return function(e,r){var i=Xp(e).mimeType(t).response(n);if(null!=r){if("function"!=typeof r)throw new Error("invalid callback: "+r);return i.get(r)}return i}},Wp=Vp("text/html",function(t){return document.createRange().createContextualFragment(t.responseText)}),$p=Vp("application/json",function(t){return JSON.parse(t.responseText)}),Zp=Vp("text/plain",function(t){return t.responseText}),Gp=Vp("application/xml",function(t){var n=t.responseXML;if(!n)throw new Error("parse error");return n}),Jp=function(t,n){return function(e,r,i){arguments.length<3&&(i=r,r=null);var o=Xp(e).mimeType(t);return o.row=function(t){return arguments.length?o.response(Bn(n,r=t)):r},o.row(r),i?o.get(i):o}},Qp=Jp("text/csv",Up),Kp=Jp("text/tab-separated-values",Yp),td=0,nd=0,ed=0,rd=1e3,id=0,od=0,ud=0,ad="object"==typeof performance&&performance.now?performance:Date,cd="function"==typeof requestAnimationFrame?requestAnimationFrame:function(t){setTimeout(t,17)};Xn.prototype=Vn.prototype={constructor:Xn,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?jn():+e)+(null==n?0:+n),this._next||qp===this||(qp?qp._next=this:Pp=this,qp=this),this._call=t,this._time=e,Jn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Jn())}};var sd=function(t,n,e){var r=new Xn;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r},fd=function(t,n,e){var r=new Xn,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?jn():+e,r.restart(function o(u){u+=i,r.restart(o,i+=n,e),t(u)},n,e),r)},ld=new Date,hd=new Date,pd=Qn(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});pd.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Qn(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):pd:null};var dd=pd.range,vd=1e3,_d=6e4,yd=36e5,gd=864e5,md=6048e5,xd=Qn(function(t){t.setTime(Math.floor(t/vd)*vd)},function(t,n){t.setTime(+t+n*vd)},function(t,n){return(n-t)/vd},function(t){return t.getUTCSeconds()}),bd=xd.range,wd=Qn(function(t){t.setTime(Math.floor(t/_d)*_d)},function(t,n){t.setTime(+t+n*_d)},function(t,n){return(n-t)/_d},function(t){return t.getMinutes()}),Md=wd.range,Td=Qn(function(t){var n=t.getTimezoneOffset()*_d%yd;n<0&&(n+=yd),t.setTime(Math.floor((+t-n)/yd)*yd+n)},function(t,n){t.setTime(+t+n*yd)},function(t,n){return(n-t)/yd},function(t){return t.getHours()}),Nd=Td.range,kd=Qn(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())*_d)/gd},function(t){return t.getDate()-1}),Sd=kd.range,Ad=Kn(0),Ed=Kn(1),Cd=Kn(2),zd=Kn(3),Pd=Kn(4),qd=Kn(5),Ld=Kn(6),Rd=Ad.range,Ud=Ed.range,Dd=Cd.range,Od=zd.range,Fd=Pd.range,Id=qd.range,Yd=Ld.range,Bd=Qn(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()}),jd=Bd.range,Hd=Qn(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()});Hd.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Qn(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 Xd=Hd.range,Vd=Qn(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*_d)},function(t,n){return(n-t)/_d},function(t){return t.getUTCMinutes()}),Wd=Vd.range,$d=Qn(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+n*yd)},function(t,n){return(n-t)/yd},function(t){return t.getUTCHours()}),Zd=$d.range,Gd=Qn(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/gd},function(t){return t.getUTCDate()-1}),Jd=Gd.range,Qd=te(0),Kd=te(1),tv=te(2),nv=te(3),ev=te(4),rv=te(5),iv=te(6),ov=Qd.range,uv=Kd.range,av=tv.range,cv=nv.range,sv=ev.range,fv=rv.range,lv=iv.range,hv=Qn(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()}),pv=hv.range,dv=Qn(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()});dv.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Qn(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 vv,_v=dv.range,yv=function(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)]},gv=function(t){return t=yv(Math.abs(t)),t?t[1]:NaN},mv=function(t,n){return function(e,r){for(var i=e.length,o=[],u=0,a=t[0],c=0;i>0&&a>0&&(c+a+1>r&&(a=Math.max(1,r-c)),o.push(e.substring(i-=a,i+a)),!((c+=a+1)>r));)a=t[u=(u+1)%t.length];return o.reverse().join(n)}},xv=function(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},bv=function(t,n){var e=yv(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(vv=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return o===u?r:o>u?r+new Array(o-u+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+yv(t,Math.max(0,n+o-1))[0]},wv=function(t,n){var e=yv(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")},Mv={"":xv,"%":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 wv(100*t,n)},r:wv,s:bv,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Tv=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i,Nv=function(t){return new ne(t)};ne.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 kv,Sv=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],Av=function(t){function n(t){function n(t){var n,i,c,g=d,m=v;if("c"===p)m=_(t)+m,t="";else{t=+t;var x=(t<0||1/t<0)&&(t*=-1,!0);if(t=_(t,h),x)for(n=-1,i=t.length,x=!1;++nc||c>57){m=(46===c?o+t.slice(n+1):t.slice(n))+m,t=t.slice(0,n);break}}l&&!s&&(t=r(t,1/0));var b=g.length+t.length+m.length,w=b>1)+g+t+m+w.slice(b)}return w+g+t+m}t=Nv(t);var e=t.fill,u=t.align,a=t.sign,c=t.symbol,s=t.zero,f=t.width,l=t.comma,h=t.precision,p=t.type,d="$"===c?i[0]:"#"===c&&/[boxX]/.test(p)?"0"+p.toLowerCase():"",v="$"===c?i[1]:/[%p]/.test(p)?"%":"",_=Mv[p],y=!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=Nv(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(gv(e)/3))),o=Math.pow(10,-i),u=Sv[8+i/3];return function(t){return r(o*t)+u}}var r=t.grouping&&t.thousands?mv(t.grouping,t.thousands):ee,i=t.currency,o=t.decimal;return{format:n,formatPrefix:e}};re({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var Ev,Cv=function(t){return Math.max(0,-gv(Math.abs(t)))},zv=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(gv(n)/3)))-gv(Math.abs(t)))},Pv=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,gv(n)-gv(t))+1},qv={"-":"",_:" ",0:"0"},Lv=/^\s*\d+/,Rv=/^%/,Uv=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;nr({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 Dv="%Y-%m-%dT%H:%M:%S.%LZ",Ov=Date.prototype.toISOString?er:t.utcFormat(Dv),Fv=+new Date("2000-01-01T00:00:00.000Z")?rr:t.utcParse(Dv),Iv=Array.prototype,Yv=Iv.map,Bv=Iv.slice,jv={name:"implicit"},Hv=function(t){return function(){return t}},Xv=function(t){return+t},Vv=[0,1],Wv=function(n,r,i){var o,u=n[0],a=n[n.length-1],c=e(u,a,null==r?10:r);switch(i=Nv(null==i?",f":i),i.type){case"s":var s=Math.max(Math.abs(u),Math.abs(a));return null!=i.precision||isNaN(o=zv(c,s))||(i.precision=o),t.formatPrefix(i,s);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=Pv(c,Math.max(Math.abs(u),Math.abs(a))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=Cv(c))||(i.precision=o-2*("%"===i.type))}return t.format(i)},$v=function(t,n){t=t.slice();var e,r=0,i=t.length-1,o=t[r],u=t[i];return u1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return h_.h=360*t-100,h_.s=1.5-1.5*n,h_.l=.8-.9*n,h_+""},d_=Lr(i_("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),v_=Lr(i_("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),__=Lr(i_("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),y_=Lr(i_("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),g_="http://www.w3.org/1999/xhtml",m_={svg:"http://www.w3.org/2000/svg",xhtml:g_,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},x_=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),m_.hasOwnProperty(n)?{space:m_[n],local:t}:t},b_=function(t){var n=x_(t);return(n.local?Dr:Ur)(n)},w_=0;Fr.prototype=Or.prototype={constructor:Fr,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 M_=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;M_=function(t){return function(){return N_.call(this,t)}}}}var k_=M_,S_={};if(t.event=null,"undefined"!=typeof document){var A_=document.documentElement;"onmouseenter"in A_||(S_={mouseenter:"mouseover",mouseleave:"mouseout"})}var E_=function(t,n,e){var r,i,o=Br(t+""),u=o.length;{if(!(arguments.length<2)){for(a=n?Hr:jr,null==e&&(e=!1),r=0;r=b&&(b=x+1);!(m=_[b])&&++b=0;)(r=i[o])&&(u&&u!==r.nextSibling&&u.parentNode.insertBefore(r,u),u=r);return this},V_=function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Jr);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?ii:"function"==typeof n?ui:oi)(t,n,null==e?"":e)):ty(r=this.node()).getComputedStyle(r,null).getPropertyValue(t)},ey=function(t,n){return arguments.length>1?this.each((null==n?ai:"function"==typeof n?si:ci)(t,n)):this.node()[t]};hi.prototype={add:function(t){var n=this._names.indexOf(t);n<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 ry=function(t,n){var e=fi(t+"");if(arguments.length<2){for(var r=li(this.node()),i=-1,o=e.length;++iby&&e.name===n)return new so([[t]],Ky,n,+r)}return null},ng=Array.prototype.slice,eg=function(t){return t},rg=1,ig=2,og=3,ug=4,ag=1e-6,cg=function(){function t(t){var o,u=0;t.eachAfter(function(t){var e=t.children;e?(t.x=To(e),t.y=ko(e)):(t.x=o?u+=n(t,o):0,t.y=0,o=t)});var a=Ao(t),c=Eo(t),s=a.x-n(a,c)/2,f=c.x+n(c,a)/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-s)/(f-s)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=Mo,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},sg=function(t){var n,e,r,i,o=this,u=[o];do for(n=u.reverse(),u=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r=0;--e)i.push(n[e]);return this},lg=function(t){for(var n,e,r,i=this,o=[i],u=[];i=o.pop();)if(u.push(i),n=i.children)for(e=0,r=n.length;e=0;)e+=r[i].value;n.value=e})},pg=function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},dg=function(t){for(var n=this,e=Co(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},vg=function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},_g=function(){var t=[];return this.each(function(n){t.push(n)}),t},yg=function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},gg=function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n};Uo.prototype=zo.prototype={constructor:Uo,each:sg,eachAfter:lg,eachBefore:fg,sum:hg,sort:pg,path:dg,ancestors:vg,descendants:_g,leaves:yg,links:gg,copy:Po};var mg=function(t){for(var n,e=(t=t.slice()).length,r=null,i=r;e;){var o=new Do(t[e-1]);i=i?i.next=o:r=o,t[n]=t[--e]}return{head:r,tail:i}},xg=function(t){return Fo(mg(t),[])},bg=function(t){return Wo(t),t},wg=function(t){return function(){return t}},Mg=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Qo(n)).eachAfter(Ko(i,.5)).eachBefore(tu(1)):t.eachBefore(Qo(Jo)).eachAfter(Ko(Go,1)).eachAfter(Ko(i,t.r/Math.min(e,r))).eachBefore(tu(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=Go;return t.radius=function(e){return arguments.length?(n=$o(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:wg(+n),t):i},t},Tg=function(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)},Ng=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(r-n)/t.value;++a0)throw new Error("cycle");return o}var n=nu,e=eu;return t.id=function(e){return arguments.length?(n=Zo(e),t):n},t.parentId=function(n){return arguments.length?(e=Zo(n),t):e},t};su.prototype=Object.create(Uo.prototype);var zg=function(){function t(t){var r=fu(t);if(r.eachAfter(n),r.parent.m=-r.z,r.eachBefore(e),c)t.eachBefore(i);else{var s=t,f=t,l=t;t.eachBefore(function(t){t.xf.x&&(f=t),t.depth>l.depth&&(l=t)});var h=s===f?1:o(s,f)/2,p=h-s.x,d=u/(f.x+h+p),v=a/(l.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){au(t);var u=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+o(t._,i._),t.m=t.z-u):t.z=u}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,u=t,a=n,c=i.parent.children[0],s=i.m,f=u.m,l=a.m,h=c.m;a=ou(a),i=iu(i),a&&i;)c=iu(c),u=ou(u),u.a=t,r=a.z+l-i.z-s+o(a._,i._),r>0&&(uu(cu(a,t,e),t,r),s+=r,f+=r),l+=a.m,s+=i.m,h+=c.m,f+=u.m;a&&!ou(u)&&(u.t=a,u.m+=l-f),i&&!iu(c)&&(c.t=i,c.m+=s-h,e=t)}return e}function i(t){t.x*=u,t.y=t.depth*a}var o=ru,u=1,a=1,c=null;return t.separation=function(n){return arguments.length?(o=n,t):o},t.size=function(n){return arguments.length?(c=!1,u=+n[0],a=+n[1],t):c?null:[u,a]},t.nodeSize=function(n){return arguments.length?(c=!0,u=+n[0],a=+n[1],t):c?[u,a]:null},t},Pg=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(i-e)/t.value;++a1?n:1)},e}(qg),Rg=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),u=[0],r&&t.eachBefore(Tg),t}function n(t){var n=u[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o=n-1){var s=c[t];return s.x0=r,s.y0=i,s.x1=u,s.y1=a,void 0}for(var l=f[t],h=e/2+l,p=t+1,d=n-1;p>>1;f[v]u-r){var g=(i*y+a*_)/e;o(t,p,_,r,i,u,g),o(p,n,y,r,g,u,a)}else{var m=(r*y+u*_)/e;o(t,p,_,r,i,m,a),o(p,n,y,m,i,u,a)}}var u,a,c=t.children,s=c.length,f=new Array(s+1);for(f[0]=a=u=0;u1?n:1)},e}(qg),Fg=function(t,n){function e(){var e,i,o=r.length,u=0,a=0;for(e=0;es+d||if+d||un){var v=s-a.x-a.vx,_=f-a.y-a.vy,y=v*v+_*_;yt.r&&(t.r=t[n].r)}var r,i,o=1,u=1;return"function"!=typeof t&&(t=Ig(null==t?1:+t)),n.initialize=function(n){var e,o=(r=n).length;for(i=new Array(o),e=0;e1?(null==n?h.remove(t):h.set(t,i(n)),u):h.get(t)},find:function(n,e,r){var i,o,u,a,c,s=0,f=t.length;for(null==r?r=1/0:r*=r,s=0;s1?(d.on(t,n),u):d.on(t)}}},Wg=function(){function t(t){var n,a=i.length,c=I(i,vu,_u).visitAfter(e);for(u=t,n=0;n=f)){(t.data!==o||t.next)&&(0===i&&(i=Yg(),p+=i*i),0===c&&(c=Yg(),p+=c*c),p0?dy(this).transition().duration(N).call(u,f,a):dy(this).call(n.transform,f)}}function h(){if(y.apply(this,arguments)){var n,e,r,i=a(this,arguments),o=t.event.changedTouches,u=o.length;for(ia(),n=0;n0?1:t<0?-1:0},Ox=Math.sqrt,Fx=Math.tan,Ix={Feature:function(t,n){Ca(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++rxx?Gm=90:Wx<-xx&&($m=-90),ex[0]=Wm,ex[1]=Zm}},Zx=function(t){var n,e,r,i,o,u,a;if(Gm=Zm=-(Wm=$m=1/0),nx=[],Bx(t,$x),e=nx.length){for(nx.sort(Qa),n=1,r=nx[0],o=[r];nJa(r[0],r[1])&&(r[1]=i[1]),Ja(i[0],r[1])>Ja(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(u=-(1/0),e=o.length-1,n=0,r=o[e];n<=e;r=i,++n)i=o[n],(a=Ja(r[1],i[0]))>u&&(u=a,Wm=i[0],Zm=r[1])}return nx=ex=null,Wm===1/0||$m===1/0?[[NaN,NaN],[NaN,NaN]]:[[Wm,$m],[Zm,Gm]]},Gx={sphere:Ea,point:tc,lineStart:ec,lineEnd:oc,polygonStart:function(){Gx.lineStart=uc,Gx.lineEnd=ac},polygonEnd:function(){Gx.lineStart=ec,Gx.lineEnd=oc}},Jx=function(t){rx=ix=ox=ux=ax=cx=sx=fx=lx=hx=px=0,Bx(t,Gx);var n=lx,e=hx,r=px,i=n*n+e*e+r*r;return i2?t[2]*Sx:0),n.invert=function(n){return n=t.invert(n[0]*Sx,n[1]*Sx),n[0]*=kx,n[1]*=kx,n},n},hb=function(){function t(t,n){e.push(t=r(t,n)),t[0]*=kx,t[1]*=kx}function n(){var t=i.apply(this,arguments),n=o.apply(this,arguments)*Sx,c=u.apply(this,arguments)*Sx;return e=[],r=lc(-t[0]*Sx,-t[1]*Sx,0).invert,vc(a,n,c,1),t={type:"Polygon",coordinates:[e]},e=r=null,t}var e,r,i=Qx([0,0]),o=Qx(90),u=Qx(6),a={point:t};return n.center=function(t){return arguments.length?(i="function"==typeof t?t:Qx([+t[0],+t[1]]),n):i},n.radius=function(t){return arguments.length?(o="function"==typeof t?t:Qx(+t),n):o},n.precision=function(t){return arguments.length?(u="function"==typeof t?t:Qx(+t),n):u},n},pb=function(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:Ea,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}},db=function(t,n,e,r,i,o){var u,a=t[0],c=t[1],s=n[0],f=n[1],l=0,h=1,p=s-a,d=f-c;if(u=e-a,p||!(u>0)){if(u/=p,p<0){if(u0){if(u>h)return;u>l&&(l=u)}if(u=i-a,p||!(u<0)){if(u/=p,p<0){if(u>h)return;u>l&&(l=u)}else if(p>0){if(u0)){if(u/=d,d<0){if(u0){if(u>h)return;u>l&&(l=u)}if(u=o-c,d||!(u<0)){if(u/=d,d<0){if(u>h)return;u>l&&(l=u)}else if(d>0){if(u0&&(t[0]=a+l*p,t[1]=c+l*d),h<1&&(n[0]=a+h*p,n[1]=c+h*d),!0}}}}},vb=function(t,n){return Ax(t[0]-n[0])=0;--o)i.point((f=s[o])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}h=h.o,s=h.z,p=!p}while(!h.v);i.lineEnd()}}},yb=1e9,gb=-yb,mb=function(){var t,n,e,r=0,i=0,o=960,u=500;return e={stream:function(e){return t&&n===e?t:t=mc(r,i,o,u)(n=e)},extent:function(a){return arguments.length?(r=+a[0][0],i=+a[0][1],o=+a[1][0],u=+a[1][1],t=n=null,e):[[r,i],[o,u]]}}},xb=Ym(),bb={sphere:Ea,point:Ea,lineStart:xc,lineEnd:Ea,polygonStart:Ea,polygonEnd:Ea},wb=function(t){return xb.reset(),Bx(t,bb),+xb},Mb=[null,null],Tb={type:"LineString",coordinates:Mb},Nb=function(t,n){return Mb[0]=t,Mb[1]=n,wb(Tb)},kb=function(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return Ls(Px(o/_)*_,i,_).map(h).concat(Ls(Px(s/y)*y,c,y).map(p)).concat(Ls(Px(r/d)*d,e,d).filter(function(t){return Ax(t%_)>xx}).map(f)).concat(Ls(Px(a/v)*v,u,v).filter(function(t){return Ax(t%y)>xx}).map(l))}var e,r,i,o,u,a,c,s,f,l,h,p,d=10,v=d,_=90,y=360,g=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(c).slice(1),h(i).reverse().slice(1),p(s).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],s=+n[0][1],c=+n[1][1],o>i&&(n=o,o=i,i=n),s>c&&(n=s,s=c,c=n),t.precision(g)):[[o,s],[i,c]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],a=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),a>u&&(n=a,a=u,u=n),t.precision(g)):[[r,a],[e,u]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(_=+n[0],y=+n[1],t):[_,y]},t.stepMinor=function(n){return arguments.length?(d=+n[0],v=+n[1],t):[d,v]},t.precision=function(n){return arguments.length?(g=+n,f=Tc(a,u,90),l=Nc(r,e,g),h=Tc(s,c,90),p=Nc(o,i,g),t):g},t.extentMajor([[-180,-90+xx],[180,90-xx]]).extentMinor([[-180,-80-xx],[180,80+xx]])},Sb=function(t,n){var e=t[0]*Sx,r=t[1]*Sx,i=n[0]*Sx,o=n[1]*Sx,u=zx(r),a=Ux(r),c=zx(o),s=Ux(o),f=u*zx(e),l=u*Ux(e),h=c*zx(i),p=c*Ux(i),d=2*Sa(Ox(Aa(o-r)+u*c*Aa(i-e))),v=Ux(d),_=d?function(t){var n=Ux(t*=d)/v,e=Ux(d-t)/v,r=e*f+n*h,i=e*l+n*p,o=e*a+n*s;return[Cx(i,r)*kx,Cx(o,Ox(r*r+i*i))*kx]}:function(){return[e*kx,r*kx]};return _.distance=d,_},Ab=function(t){return t},Eb=Ym(),Cb=Ym(),zb={point:Ea,lineStart:Ea,lineEnd:Ea,polygonStart:function(){zb.lineStart=kc,zb.lineEnd=Ec},polygonEnd:function(){zb.lineStart=zb.lineEnd=zb.point=Ea,Eb.add(Ax(Cb)),Cb.reset()},result:function(){var t=Eb/2;return Eb.reset(),t}},Pb=1/0,qb=Pb,Lb=-Pb,Rb=Lb,Ub={point:Cc,lineStart:Ea,lineEnd:Ea,polygonStart:Ea,polygonEnd:Ea,result:function(){var t=[[Pb,qb],[Lb,Rb]];return Lb=Rb=-(qb=Pb=1/0),t}},Db=0,Ob=0,Fb=0,Ib=0,Yb=0,Bb=0,jb=0,Hb=0,Xb=0,Vb={point:zc,lineStart:Pc,lineEnd:Rc,polygonStart:function(){Vb.lineStart=Uc,Vb.lineEnd=Dc},polygonEnd:function(){Vb.point=zc,Vb.lineStart=Pc,Vb.lineEnd=Rc},result:function(){var t=Xb?[jb/Xb,Hb/Xb]:Bb?[Ib/Bb,Yb/Bb]:Fb?[Db/Fb,Ob/Fb]:[NaN,NaN];return Db=Ob=Fb=Ib=Yb=Bb=jb=Hb=Xb=0,t}};Ic.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Nx)}},result:Ea},Yc.prototype={_circle:Bc(4.5),pointRadius:function(t){return this._circle=Bc(t),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}}};var Wb=function(){function t(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),Bx(t,e(i))),i.result()}var n,e,r,i,o=4.5;return t.area=function(t){return Bx(t,e(zb)),zb.result()},t.bounds=function(t){return Bx(t,e(Ub)),Ub.result()},t.centroid=function(t){return Bx(t,e(Vb)),Vb.result()},t.projection=function(r){return arguments.length?(e=null==(n=r)?Ab:r.stream,t):n},t.context=function(n){return arguments.length?(i=null==(r=n)?new Yc:new Ic(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)},$b=Ym(),Zb=function(t,n){var e=n[0],r=n[1],i=[Ux(e),-zx(e),0],o=0,u=0;$b.reset();for(var a=0,c=t.length;a=0?1:-1,T=M*w,N=T>wx,k=d*x;if($b.add(Cx(k*M*Ux(T),v*b+k*zx(T))),o+=N?w+M*Nx:w,N^h>=e^g>=e){var S=Ia(Oa(l),Oa(y));ja(S);var A=Ia(i,S);ja(A);var E=(N^w>=0?-1:1)*Sa(A[2]);(r>E||r===E&&(S[0]||S[1]))&&(u+=N^w>=0?1:-1)}}return(o<-xx||o0){for(x||(o.polygonStart(),x=!0),o.lineStart(),t=0;t1&&2&i&&u.push(u.pop().concat(u.shift())),d.push(u.filter(jc))}var p,d,v,_=n(o),y=i.invert(r[0],r[1]),g=pb(),m=n(g),x=!1,b={point:u,lineStart:c,lineEnd:s,polygonStart:function(){b.point=f,b.lineStart=l,b.lineEnd=h,d=[],p=[]},polygonEnd:function(){b.point=u,b.lineStart=c,b.lineEnd=s,d=Ws(d);var t=Zb(p,y);d.length?(x||(o.polygonStart(),x=!0),_b(d,Hc,t,e,o)):t&&(x||(o.polygonStart(),x=!0),o.lineStart(),e(null,null,1,o),o.lineEnd()),x&&(o.polygonEnd(),x=!1),d=p=null},sphere:function(){o.polygonStart(),o.lineStart(),e(null,null,1,o),o.lineEnd(),o.polygonEnd()}};return b}},Jb=Gb(function(){return!0},Xc,Wc,[-wx,-Mx]),Qb=function(t,n){function e(e,r,i,o){vc(o,t,n,i,e,r)}function r(t,n){return zx(t)*zx(n)>a}function i(t){var n,e,i,a,f;return{lineStart:function(){a=i=!1,f=1},point:function(l,h){var p,d=[l,h],v=r(l,h),_=c?v?0:u(l,h):v?u(l+(l<0?wx:-wx),h):0;if(!n&&(a=i=v)&&t.lineStart(),v!==i&&(p=o(n,d),(vb(n,p)||vb(d,p))&&(d[0]+=xx,d[1]+=xx,v=r(d[0],d[1]))),v!==i)f=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(s&&n&&c^v){var y;_&e||!(y=o(d,n,!0))||(f=0,c?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||n&&vb(n,d)||t.point(d[0],d[1]),n=d,i=v,e=_},lineEnd:function(){i&&t.lineEnd(),n=null},clean:function(){return f|(a&&i)<<1}}}function o(t,n,e){var r=Oa(t),i=Oa(n),o=[1,0,0],u=Ia(r,i),c=Fa(u,u),s=u[0],f=c-s*s;if(!f)return!e&&t;var l=a*c/f,h=-a*s/f,p=Ia(o,u),d=Ba(o,l),v=Ba(u,h);Ya(d,v);var _=p,y=Fa(d,_),g=Fa(_,_),m=y*y-g*(Fa(d,d)-1);if(!(m<0)){var x=Ox(m),b=Ba(_,(-y-x)/g);if(Ya(b,d),b=Da(b),!e)return b;var w,M=t[0],T=n[0],N=t[1],k=n[1];T0^b[1]<(Ax(b[0]-M)wx^(M<=b[0]&&b[0]<=T)){var C=Ba(_,(-y+x)/g);return Ya(C,d),[b,Da(C)]}}}function u(n,e){var r=c?t:wx-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var a=zx(t),c=a>0,s=Ax(a)>xx;return Gb(r,i,e,c?[0,-t]:[-wx,t-wx])},Kb=function(t){return{stream:$c(t)}};Zc.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 tw=16,nw=zx(30*Sx),ew=function(t,n){return+n?ts(t,n):Kc(t)},rw=$c({point:function(t,n){this.stream.point(t*Sx,n*Sx)}}),iw=function(){return rs(is).scale(155.424).center([0,33.6442])},ow=function(){return iw().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])},uw=function(){function t(t){var n=t[0],e=t[1];return a=null,i.point(n,e),a||(o.point(n,e),a)||(u.point(n,e),a)}function n(){return e=r=null,t}var e,r,i,o,u,a,c=ow(),s=iw().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=iw().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){a=[t,n]}};return t.invert=function(t){var n=c.scale(),e=c.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?f:c).invert(t)},t.stream=function(t){return e&&r===t?e:e=os([c.stream(r=t),s.stream(t),f.stream(t)])},t.precision=function(t){return arguments.length?(c.precision(t),s.precision(t),f.precision(t),n()):c.precision()},t.scale=function(n){return arguments.length?(c.scale(n),s.scale(.35*n),f.scale(n),t.translate(c.translate())):c.scale()},t.translate=function(t){if(!arguments.length)return c.translate();var e=c.scale(),r=+t[0],a=+t[1];return i=c.translate(t).clipExtent([[r-.455*e,a-.238*e],[r+.455*e,a+.238*e]]).stream(l),o=s.translate([r-.307*e,a+.201*e]).clipExtent([[r-.425*e+xx,a+.12*e+xx],[r-.214*e-xx,a+.234*e-xx]]).stream(l),u=f.translate([r-.205*e,a+.212*e]).clipExtent([[r-.214*e+xx,a+.166*e+xx],[r-.115*e-xx,a+.234*e-xx]]).stream(l),n()},t.fitExtent=Qc(t),t.fitSize=Jc(t),t.scale(1070)},aw=us(function(t){return Ox(2/(1+t))});aw.invert=as(function(t){return 2*Sa(t/2)});var cw=function(){return ns(aw).scale(124.75).clipAngle(179.999)},sw=us(function(t){return(t=ka(t))&&t/Ux(t)});sw.invert=as(function(t){return t});var fw=function(){return ns(sw).scale(79.4188).clipAngle(179.999)};cs.invert=function(t,n){return[t,2*Ex(qx(n))-Mx]};var lw=function(){return ss(cs).scale(961/Nx)},hw=function(){return rs(ls).scale(109.5).parallels([30,30])};hs.invert=hs;var pw=function(){return ns(hs).scale(152.63)},dw=function(){return rs(ps).scale(131.154).center([0,13.9389])};ds.invert=as(Ex);var vw=function(){return ns(ds).scale(144.049).clipAngle(60)};vs.invert=as(Sa);var _w=function(){return ns(vs).scale(249.5).clipAngle(90+xx)};_s.invert=as(function(t){return 2*Ex(t)});var yw=function(){return ns(_s).scale(250).clipAngle(142)};ys.invert=function(t,n){return[-n,2*Ex(qx(t))-Mx]};var gw=function(){var t=ss(ys),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)};t.version=gs,t.bisect=ws,t.bisectRight=ws,t.bisectLeft=Ms,t.ascending=ms,t.bisector=xs,t.descending=Ts,t.deviation=Ss,t.extent=As,t.histogram=Is,t.thresholdFreedmanDiaconis=Bs,t.thresholdScott=js,t.thresholdSturges=Fs,t.max=Hs,t.mean=Xs,t.median=Vs,t.merge=Ws,t.min=$s,t.pairs=Zs,t.permute=Gs,t.quantile=Ys,t.range=Ls,t.scan=Js,t.shuffle=Qs,t.sum=Ks,t.ticks=Os,t.tickStep=e,t.transpose=tf,t.variance=ks,t.zip=nf,t.entries=cf,t.keys=uf,t.values=af,t.map=o,t.set=l,t.nest=rf,t.randomUniform=sf,t.randomNormal=ff,t.randomLogNormal=lf,t.randomBates=pf,t.randomIrwinHall=hf,t.randomExponential=df,t.easeLinear=h,t.easeQuad=v,t.easeQuadIn=p,t.easeQuadOut=d,t.easeQuadInOut=v,t.easeCubic=g,t.easeCubicIn=_,t.easeCubicOut=y,t.easeCubicInOut=g,t.easePoly=gf,t.easePolyIn=_f,t.easePolyOut=yf,t.easePolyInOut=gf,t.easeSin=b,t.easeSinIn=m,t.easeSinOut=x,t.easeSinInOut=b,t.easeExp=T,t.easeExpIn=w,t.easeExpOut=M,t.easeExpInOut=T,t.easeCircle=S,t.easeCircleIn=N,t.easeCircleOut=k,t.easeCircleInOut=S,t.easeBounce=E,t.easeBounceIn=A,t.easeBounceOut=E,t.easeBounceInOut=C,t.easeBack=Lf,t.easeBackIn=Pf,t.easeBackOut=qf,t.easeBackInOut=Lf,t.easeElastic=Ff,t.easeElasticIn=Of,t.easeElasticOut=Ff,t.easeElasticInOut=If,t.polygonArea=Yf,t.polygonCentroid=Bf,t.polygonHull=Hf,t.polygonContains=Xf,t.polygonLength=Vf,t.path=L,t.quadtree=I,t.queue=Z,t.arc=gl,t.area=bl,t.line=xl,t.pie=Tl,t.radialArea=Sl,t.radialLine=kl,t.symbol=Wl,t.symbols=Vl,t.symbolCircle=Al,t.symbolCross=El,t.symbolDiamond=Pl,t.symbolSquare=Ol,t.symbolStar=Dl,t.symbolTriangle=Il,t.symbolWye=Xl,t.curveBasisClosed=Gl,t.curveBasisOpen=Jl,t.curveBasis=Zl,t.curveBundle=Ql,t.curveCardinalClosed=th,t.curveCardinalOpen=nh,t.curveCardinal=Kl,t.curveCatmullRomClosed=rh,t.curveCatmullRomOpen=ih,t.curveCatmullRom=eh,t.curveLinearClosed=oh,t.curveLinear=ml,t.curveMonotoneX=zt,t.curveMonotoneY=Pt,t.curveNatural=uh,t.curveStep=ah,t.curveStepAfter=Dt,t.curveStepBefore=Ut,t.stack=lh,t.stackOffsetExpand=hh,t.stackOffsetNone=sh,t.stackOffsetSilhouette=ph,t.stackOffsetWiggle=dh,t.stackOrderAscending=vh,t.stackOrderDescending=_h,t.stackOrderInsideOut=yh,t.stackOrderNone=fh,t.stackOrderReverse=gh,t.color=Bt,t.rgb=Vt,t.hsl=Gt,t.lab=tn,t.hcl=cn,t.cubehelix=ln,t.interpolate=hp,t.interpolateArray=op,t.interpolateDate=up,t.interpolateNumber=ap,t.interpolateObject=cp,t.interpolateRound=pp,t.interpolateString=lp,t.interpolateTransformCss=yp,t.interpolateTransformSvg=gp,t.interpolateZoom=Mp,t.interpolateRgb=ep,t.interpolateRgbBasis=rp,t.interpolateRgbBasisClosed=ip,t.interpolateHsl=Tp,t.interpolateHslLong=Np,t.interpolateLab=En,t.interpolateHcl=kp,t.interpolateHclLong=Sp,t.interpolateCubehelix=Ap,t.interpolateCubehelixLong=Ep,t.interpolateBasis=Kh,t.interpolateBasisClosed=tp,t.quantize=Cp,t.dispatch=Pn,t.dsvFormat=Lp,t.csvParse=Up,t.csvParseRows=Dp,t.csvFormat=Op,t.csvFormatRows=Fp,t.tsvParse=Yp,t.tsvParseRows=Bp,t.tsvFormat=jp,t.tsvFormatRows=Hp,t.request=Xp,t.html=Wp,t.json=$p,t.text=Zp,t.xml=Gp,t.csv=Qp,t.tsv=Kp,t.now=jn,t.timer=Vn,t.timerFlush=Wn,t.timeout=sd,t.interval=fd,t.timeInterval=Qn,t.timeMillisecond=pd,t.timeMilliseconds=dd,t.timeSecond=xd,t.timeSeconds=bd,t.timeMinute=wd,t.timeMinutes=Md,t.timeHour=Td,t.timeHours=Nd,t.timeDay=kd,t.timeDays=Sd,t.timeWeek=Ad,t.timeWeeks=Rd,t.timeSunday=Ad,t.timeSundays=Rd,t.timeMonday=Ed,t.timeMondays=Ud,t.timeTuesday=Cd,t.timeTuesdays=Dd;t.timeWednesday=zd;t.timeWednesdays=Od,t.timeThursday=Pd,t.timeThursdays=Fd,t.timeFriday=qd,t.timeFridays=Id,t.timeSaturday=Ld,t.timeSaturdays=Yd,t.timeMonth=Bd,t.timeMonths=jd,t.timeYear=Hd,t.timeYears=Xd,t.utcMillisecond=pd,t.utcMilliseconds=dd,t.utcSecond=xd,t.utcSeconds=bd,t.utcMinute=Vd,t.utcMinutes=Wd,t.utcHour=$d,t.utcHours=Zd,t.utcDay=Gd,t.utcDays=Jd,t.utcWeek=Qd,t.utcWeeks=ov,t.utcSunday=Qd,t.utcSundays=ov,t.utcMonday=Kd,t.utcMondays=uv,t.utcTuesday=tv,t.utcTuesdays=av,t.utcWednesday=nv,t.utcWednesdays=cv,t.utcThursday=ev,t.utcThursdays=sv,t.utcFriday=rv,t.utcFridays=fv,t.utcSaturday=iv,t.utcSaturdays=lv,t.utcMonth=hv,t.utcMonths=pv,t.utcYear=dv,t.utcYears=_v,t.formatLocale=Av,t.formatDefaultLocale=re,t.formatSpecifier=Nv,t.precisionFixed=Cv,t.precisionPrefix=zv,t.precisionRound=Pv,t.isoFormat=Ov,t.isoParse=Fv,t.timeFormatLocale=ae,t.timeFormatDefaultLocale=nr,t.scaleBand=or,t.scalePoint=ar,t.scaleIdentity=yr,t.scaleLinear=_r,t.scaleLog=Tr,t.scaleOrdinal=ir,t.scaleImplicit=jv,t.scalePow=kr,t.scaleSqrt=Sr,t.scaleQuantile=Ar,t.scaleQuantize=Er,t.scaleThreshold=Cr,t.scaleTime=e_,t.scaleUtc=r_,t.schemeCategory10=o_,t.schemeCategory20b=u_,t.schemeCategory20c=a_,t.schemeCategory20=c_,t.scaleSequential=Rr,t.interpolateCubehelixDefault=s_,t.interpolateRainbow=p_,t.interpolateWarm=f_,t.interpolateCool=l_,t.interpolateViridis=d_,t.interpolateMagma=v_,t.interpolateInferno=__,t.interpolatePlasma=y_,t.creator=b_,t.customEvent=Xr,t.local=Or,t.matcher=k_,t.mouse=P_,t.namespace=x_,t.namespaces=m_,t.select=dy,t.selectAll=vy,t.selection=Pi,t.selector=q_,t.selectorAll=R_,t.touch=_y,t.touches=yy,t.window=ty,t.active=tg,t.interrupt=Ay,t.transition=fo,t.axisTop=mo,t.axisRight=xo,t.axisBottom=bo,t.axisLeft=wo,t.cluster=cg,t.hierarchy=zo,t.pack=Mg,t.packSiblings=bg,t.packEnclose=xg,t.partition=kg,t.stratify=Cg,t.tree=zg,t.treemap=Rg,t.treemapBinary=Ug,t.treemapDice=Ng,t.treemapSlice=Pg,t.treemapSliceDice=Dg,t.treemapSquarify=Lg,t.treemapResquarify=Og,t.forceCenter=Fg,t.forceCollide=Bg,t.forceLink=jg,t.forceManyBody=Wg,t.forceSimulation=Vg,t.forceX=$g,t.forceY=Zg,t.drag=Kg,t.dragDisable=Jg,t.dragEnable=gu,t.voronoi=fm,t.zoom=dm,t.zoomIdentity=hm,t.zoomTransform=ra,t.brush=Cm,t.brushX=va,t.brushY=_a,t.brushSelection=da,t.chord=Dm,t.ribbon=Im,t.geoAlbers=ow,t.geoAlbersUsa=uw,t.geoArea=Vx,t.geoAzimuthalEqualArea=cw,t.geoAzimuthalEqualAreaRaw=aw,t.geoAzimuthalEquidistant=fw,t.geoAzimuthalEquidistantRaw=sw,t.geoBounds=Zx,t.geoCentroid=Jx,t.geoCircle=hb,t.geoClipExtent=mb,t.geoConicConformal=hw,t.geoConicConformalRaw=ls,t.geoConicEqualArea=iw,t.geoConicEqualAreaRaw=is,t.geoConicEquidistant=dw,t.geoConicEquidistantRaw=ps,t.geoDistance=Nb,t.geoEquirectangular=pw,t.geoEquirectangularRaw=hs,t.geoGnomonic=vw,t.geoGnomonicRaw=ds,t.geoGraticule=kb,t.geoInterpolate=Sb,t.geoLength=wb,t.geoMercator=lw,t.geoMercatorRaw=cs,t.geoOrthographic=_w,t.geoOrthographicRaw=vs,t.geoPath=Wb,t.geoProjection=ns,t.geoProjectionMutator=es,t.geoRotation=lb,t.geoStereographic=yw,t.geoStereographicRaw=_s,t.geoStream=Bx,t.geoTransform=Kb,t.geoTransverseMercator=gw,t.geoTransverseMercatorRaw=ys,Object.defineProperty(t,"__esModule",{value:!0})});
\ No newline at end of file
diff --git a/public/themes/default/js/vendor/socketio/socket.io.min.js b/public/js/vendor/socketio/socket.io.min.js
similarity index 100%
rename from public/themes/default/js/vendor/socketio/socket.io.min.js
rename to public/js/vendor/socketio/socket.io.min.js
diff --git a/public/themes/default/css/vendor/metricsgraphics/metricsgraphics.css b/public/themes/default/css/vendor/metricsgraphics/metricsgraphics.css
new file mode 100755
index 000000000..cce403db0
--- /dev/null
+++ b/public/themes/default/css/vendor/metricsgraphics/metricsgraphics.css
@@ -0,0 +1,402 @@
+/*v2.10.1*/
+.mg-active-datapoint {
+ fill: black;
+ font-size: 0.9rem;
+ font-weight: 400;
+ opacity: 0.8;
+}
+
+.mg-area1-color {
+ fill: #0000ff;
+}
+
+.mg-area2-color {
+ fill: #05b378;
+}
+
+.mg-area3-color {
+ fill: #db4437;
+}
+
+.mg-area4-color {
+ fill: #f8b128;
+}
+
+.mg-area5-color {
+ fill: #5c5c5c;
+}
+
+text.mg-barplot-group-label {
+ font-weight:900;
+}
+
+.mg-barplot rect.mg-bar {
+ shape-rendering: auto;
+}
+
+.mg-barplot rect.mg-bar.default-bar {
+ fill: #b6b6fc;
+}
+
+.mg-barplot rect.mg-bar.default-active {
+ fill: #9e9efc;
+}
+
+.mg-barplot .mg-bar-prediction {
+ fill: #5b5b5b;
+}
+
+.mg-barplot .mg-bar-baseline {
+ stroke: #5b5b5b;
+ stroke-width: 2;
+}
+
+.mg-bar-target-element {
+ font-size:11px;
+ padding-left:5px;
+ padding-right:5px;
+ font-weight:300;
+}
+
+.mg-baselines line {
+ opacity: 1;
+ shape-rendering: auto;
+ stroke: #b3b2b2;
+ stroke-width: 1px;
+}
+
+.mg-baselines text {
+ fill: black;
+ font-size: 0.9rem;
+ opacity: 0.6;
+ stroke: none;
+}
+
+.mg-baselines-small text {
+ font-size: 0.6rem;
+}
+
+.mg-category-guides line {
+ stroke: #b3b2b2;
+}
+
+.mg-header {
+ cursor: default;
+ font-size: 1.2rem;
+}
+
+.mg-header .mg-chart-description {
+ fill: #ccc;
+ font-family: FontAwesome;
+ font-size: 1.2rem;
+}
+
+.mg-header .mg-warning {
+ fill: #ccc;
+ font-family: FontAwesome;
+ font-size: 1.2rem;
+}
+
+.mg-points circle {
+ opacity: 0.65;
+}
+
+.mg-popover {
+ font-size: 0.95rem;
+}
+
+.mg-popover-content {
+ cursor: auto;
+ line-height: 17px;
+}
+
+.mg-data-table {
+ margin-top: 30px;
+}
+
+.mg-data-table thead tr th {
+ border-bottom: 1px solid darkgray;
+ cursor: default;
+ font-size: 1.1rem;
+ font-weight: normal;
+ padding: 5px 5px 8px 5px;
+ text-align: right;
+}
+
+.mg-data-table thead tr th .fa {
+ color: #ccc;
+ padding-left: 4px;
+}
+
+.mg-data-table thead tr th .popover {
+ font-size: 1rem;
+ font-weight: normal;
+}
+
+.mg-data-table .secondary-title {
+ color: darkgray;
+}
+
+.mg-data-table tbody tr td {
+ margin: 2px;
+ padding: 5px;
+ vertical-align: top;
+}
+
+.mg-data-table tbody tr td.table-text {
+ opacity: 0.8;
+ padding-left: 30px;
+}
+
+.mg-y-axis line.mg-extended-yax-ticks {
+ opacity: 0.4;
+}
+
+.mg-x-axis line.mg-extended-xax-ticks {
+ opacity: 0.4;
+}
+
+.mg-histogram .axis path,
+.mg-histogram .axis line {
+ fill: none;
+ opacity: 0.7;
+ shape-rendering: auto;
+ stroke: #ccc;
+}
+
+tspan.hist-symbol {
+ fill: #9e9efc;
+}
+
+.mg-histogram .mg-bar rect {
+ fill: #b6b6fc;
+ shape-rendering: auto;
+}
+
+.mg-histogram .mg-bar rect.active {
+ fill: #9e9efc;
+}
+
+.mg-least-squares-line {
+ stroke: red;
+ stroke-width: 1px;
+}
+
+.mg-lowess-line {
+ fill: none;
+ stroke: red;
+}
+
+.mg-line1-color {
+ stroke: #4040e8;
+}
+
+.mg-hover-line1-color {
+ fill: #4040e8;
+}
+
+.mg-line2-color {
+ stroke: #05b378;
+}
+
+.mg-hover-line2-color {
+ fill: #05b378;
+}
+
+.mg-line3-color {
+ stroke: #db4437;
+}
+
+.mg-hover-line3-color {
+ fill: #db4437;
+}
+
+.mg-line4-color {
+ stroke: #f8b128;
+}
+
+.mg-hover-line4-color {
+ fill: #f8b128;
+}
+
+.mg-line5-color {
+ stroke: #5c5c5c;
+}
+
+.mg-hover-line5-color {
+ fill: #5c5c5c;
+}
+
+.mg-line-legend text {
+ font-size: 0.9rem;
+ font-weight: 300;
+ stroke: none;
+}
+
+.mg-line1-legend-color {
+ color: #4040e8;
+ fill: #4040e8;
+}
+
+.mg-line2-legend-color {
+ color: #05b378;
+ fill: #05b378;
+}
+
+.mg-line3-legend-color {
+ color: #db4437;
+ fill: #db4437;
+}
+
+.mg-line4-legend-color {
+ color: #f8b128;
+ fill: #f8b128;
+}
+
+.mg-line5-legend-color {
+ color: #5c5c5c;
+ fill: #5c5c5c;
+}
+
+.mg-main-area-solid svg .mg-main-area {
+ fill: #ccccff;
+ opacity: 1;
+}
+
+.mg-markers line {
+ opacity: 1;
+ shape-rendering: auto;
+ stroke: #b3b2b2;
+ stroke-width: 1px;
+}
+
+.mg-markers text {
+ fill: black;
+ font-size: 0.8rem;
+ opacity: 0.6;
+}
+
+.mg-missing-text {
+ opacity: 0.9;
+}
+
+.mg-missing-background {
+ stroke: blue;
+ fill: none;
+ stroke-dasharray: 10,5;
+ stroke-opacity: 0.05;
+ stroke-width: 2;
+}
+
+.mg-missing .mg-main-line {
+ opacity: 0.1;
+}
+
+.mg-missing .mg-main-area {
+ opacity: 0.03;
+}
+
+path.mg-main-area {
+ opacity: 0.2;
+ stroke: none;
+}
+
+path.mg-confidence-band {
+ fill: #ccc;
+ opacity: 0.4;
+ stroke: none;
+}
+
+path.mg-main-line {
+ fill: none;
+ opacity: 0.8;
+ stroke-width: 1.1px;
+}
+
+.mg-points circle {
+ fill-opacity: 0.4;
+ stroke-opacity: 1;
+}
+
+circle.mg-points-mono {
+ fill: #0000ff;
+ stroke: #0000ff;
+}
+
+tspan.mg-points-mono {
+ fill: #0000ff;
+ stroke: #0000ff;
+}
+
+/* a selected point in a scatterplot */
+.mg-points circle.selected {
+ fill-opacity: 1;
+ stroke-opacity: 1;
+}
+
+.mg-voronoi path {
+ fill: none;
+ pointer-events: all;
+ stroke: none;
+ stroke-opacity: 0.1;
+}
+
+.mg-x-rug-mono,
+.mg-y-rug-mono {
+ stroke: black;
+}
+
+.mg-x-axis line,
+.mg-y-axis line {
+ opacity: 1;
+ shape-rendering: auto;
+ stroke: #b3b2b2;
+ stroke-width: 1px;
+}
+
+.mg-x-axis text,
+.mg-y-axis text,
+.mg-histogram .axis text {
+ fill: black;
+ font-size: 0.9rem;
+ opacity: 0.6;
+}
+
+.mg-x-axis .label,
+.mg-y-axis .label,
+.mg-axis .label {
+ font-size: 0.8rem;
+ text-transform: uppercase;
+ font-weight: 400;
+}
+
+.mg-x-axis-small text,
+.mg-y-axis-small text,
+.mg-active-datapoint-small {
+ font-size: 0.6rem;
+}
+
+.mg-x-axis-small .label,
+.mg-y-axis-small .label {
+ font-size: 0.65rem;
+}
+
+.mg-european-hours {
+}
+
+.mg-year-marker text {
+ fill: black;
+ font-size: 0.7rem;
+ opacity: 0.6;
+}
+
+.mg-year-marker line {
+ opacity: 1;
+ shape-rendering: auto;
+ stroke: #b3b2b2;
+ stroke-width: 1px;
+}
+
+.mg-year-marker-small text {
+ font-size: 0.6rem;
+}
diff --git a/public/themes/default/js/vendor/metricsgraphics/metricsgraphics.min.js b/public/themes/default/js/vendor/metricsgraphics/metricsgraphics.min.js
new file mode 100755
index 000000000..44b5de3a8
--- /dev/null
+++ b/public/themes/default/js/vendor/metricsgraphics/metricsgraphics.min.js
@@ -0,0 +1,5 @@
+// v2.10.1
+!function(t,e){"function"==typeof define&&define.amd?define(["d3"],e):"object"==typeof exports?module.exports=e(require("d3")):t.MG=e(t.d3)}(this,function(t){function e(){return"undefined"!=typeof jQuery||"undefined"!=typeof $}function r(t){var e;switch(t.processed.x_time_frame){case"millis":e=MG.time_format(t.utc_time,"%b %e, %Y %H:%M:%S.%L");break;case"seconds":e=MG.time_format(t.utc_time,"%b %e, %Y %H:%M:%S");break;case"less-than-a-day":e=MG.time_format(t.utc_time,"%b %e, %Y %I:%M%p");break;case"four-days":e=MG.time_format(t.utc_time,"%b %e, %Y %I:%M%p");break;default:e=MG.time_format(t.utc_time,"%b %e, %Y")}return e}function a(t,e){return t[e.x_accessor]>=e.processed.min_x&&t[e.x_accessor]<=e.processed.max_x&&t[e.y_accessor]>=e.processed.min_y&&t[e.y_accessor]<=e.processed.max_y}function n(t){return"[object Array]"===Object.prototype.toString.call(t)}function o(t){return"[object Function]"===Object.prototype.toString.call(t)}function i(t){return n(t)&&0===t.length}function s(t){return"[object Object]"===Object.prototype.toString.call(t)}function c(e){var r=e.map(function(t){return n(t)===!0&&t.length>0});return t.sum(r)===e.length}function l(e){var r=e.map(function(t){return s(t)===!0});return t.sum(r)===e.length}function u(t){return i(t)||l(t)}function f(t,e){return t.map(function(t){return t[e]})}function d(t){return t.reduce(function(t,e){return t[e]=t[e]+1||1,t},{})}function p(t){return t.height-t.bottom}function _(t){return p(t)-t.buffer}function m(t){return t.top}function g(t){return m(t)+t.buffer}function h(t){return t.left}function x(t){return h(t)+t.buffer}function y(t){return t.width-t.right}function v(t){return y(t)-t.buffer}function b(t){t.exit().remove()}function w(t,e){t.selectAll(e).remove()}function k(t,e){return t.append("g").classed(e,!0)}function M(t,e){var r=R(t.target),a=Y(t.data),n=r.selectAll("line."+e).data(a);return n.enter().append("line").attr("class",e).attr("opacity",.3),b(n),b(n),n}function G(t,e,r){e.color_accessor?(t.attr("stroke",e.scalefns.colorf),t.classed(r,!1)):(t.attr("stroke",null),t.classed(r,!0))}function A(e,r){r&&e.attr({dy:0,transform:function(){var e=t.select(this);return"rotate("+r+" "+e.attr("x")+","+e.attr("y")+")"}})}function D(t){if(t=t.node(),!t)return!1;for(var e=0;e