UNPKG

@explorables/berlin_8_am

Version:

This explorable illustrates a model for traffic and congestion and the phenomenon knowns as phantom traffic jams, spontaneously emergent congested traffic segments that move slowly and oppositely to the traffic.

2 lines 175 kB
(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode('/*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial}}}@layer theme{:root,:host{--tw-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--tw-color-black:#000;--tw-color-white:#fff;--tw-spacing:.25rem;--tw-container-5xl:64rem;--tw-text-2xl:1.5rem;--tw-text-2xl--line-height:calc(2/1.5);--tw-text-3xl:1.875rem;--tw-text-3xl--line-height: 1.2 ;--tw-text-5xl:3rem;--tw-text-5xl--line-height:1;--tw-font-weight-light:300}}@layer base,components;@layer utilities{.tw\\:m-8{margin:calc(var(--tw-spacing)*8)}.tw\\:grid{display:grid}.tw\\:max-w-5xl{max-width:var(--tw-container-5xl)}.tw\\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw\\:bg-white{background-color:var(--tw-color-white)}.tw\\:p-0{padding:calc(var(--tw-spacing)*0)}.tw\\:px-1{padding-inline:calc(var(--tw-spacing)*1)}.tw\\:px-10{padding-inline:calc(var(--tw-spacing)*10)}.tw\\:font-sans{font-family:var(--tw-font-sans)}.tw\\:text-2xl{font-size:var(--tw-text-2xl);line-height:var(--tw-leading,var(--tw-text-2xl--line-height))}.tw\\:text-3xl{font-size:var(--tw-text-3xl);line-height:var(--tw-leading,var(--tw-text-3xl--line-height))}.tw\\:text-5xl{font-size:var(--tw-text-5xl);line-height:var(--tw-leading,var(--tw-text-5xl--line-height))}.tw\\:font-light{--tw-font-weight:var(--tw-font-weight-light);font-weight:var(--tw-font-weight-light)}.tw\\:text-black{color:var(--tw-color-black)}@media (min-width:40rem){.tw\\:sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\\:sm\\:gap-8{gap:calc(var(--tw-spacing)*8)}.tw\\:sm\\:p-0{padding:calc(var(--tw-spacing)*0)}}@media (prefers-color-scheme:dark){.tw\\:dark\\:bg-black{background-color:var(--tw-color-black)}.tw\\:dark\\:text-white{color:var(--tw-color-white)}}.debug-grid-16{background-image:linear-gradient(90deg,#0000ff1a 1px,#0000 1px),linear-gradient(#0000ff1a 1px,#0000 1px);background-repeat:repeat;background-size:6.25% 6.25%,6.25% 6.25%}}.explorable *,.explorable :before,.explorable :after{box-sizing:border-box}@property --tw-font-weight{syntax:"*";inherits:false}._displayPanel_u655x_1,._controlPanel_u655x_8{display:block;line-height:0;box-sizing:border-box}._displayPanel_u655x_1>canvas,._displayPanel_u655x_1>svg,._controlPanel_u655x_8>svg,._controlPanel_u655x_8>canvas{display:block;box-sizing:border-box}._car_u655x_29{stroke:#000;stroke-width:1px}._tire_u655x_34{fill:#000;stroke:none}._street_background_u655x_39{stroke:#000;stroke-width:32;fill:none;stroke-linecap:round}._asphalt_u655x_46{stroke:#787878;stroke-width:29;fill:none;stroke-linecap:round}._street_marks_u655x_53{stroke:#fff;stroke-width:1;fill:none;stroke-dasharray:4}._pivot_u655x_62{stroke:#000;fill:#000}._tachoborder_u655x_67{fill:none;stroke:#000;stroke-width:1.5px}._tachoredzone_u655x_73{fill:none;stroke:red;stroke-opacity:.3;stroke-width:7;stroke-linecap:round}._tachotick_u655x_81{fill:none;stroke:#000;stroke-width:1px}._ticklabel_u655x_87{font-size:10;text-anchor:middle}._pin_u655x_93{stroke:#000;stroke-width:1px;stroke-linecap:round;stroke-opacity:.1}._meanspeed_u655x_100{stroke:#b40000;stroke-width:5px;stroke-linecap:round;stroke-opacity:1}@media (prefers-color-scheme: dark){._car_u655x_29{stroke:#000;stroke-width:1px}._tire_u655x_34{fill:#000;stroke:none}._street_background_u655x_39{stroke:#fff;stroke-width:32;fill:none;stroke-linecap:round}._asphalt_u655x_46{stroke:#141414;stroke-width:29;fill:none;stroke-linecap:round}._street_marks_u655x_53{stroke:gray;stroke-width:1;fill:none;stroke-dasharray:4}._tachoborder_u655x_67{fill:none;stroke:#fff;stroke-width:1.5px}._tachoredzone_u655x_73{fill:none;stroke:red;stroke-opacity:.7;stroke-width:7;stroke-linecap:round}._tachotick_u655x_81{fill:none;stroke:#fff;stroke-width:1px}._ticklabel_u655x_87{font-size:10;text-anchor:middle;fill:#fff}._pin_u655x_93{stroke:#fff;stroke-width:1px;stroke-linecap:round;stroke-opacity:.1}._pivot_u655x_62{stroke:#fff;fill:#fff}._meanspeed_u655x_100{stroke:#b40000;stroke-width:5px;stroke-linecap:round;stroke-opacity:1}}')),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); (function(T,Gt){typeof exports=="object"&&typeof module<"u"?Gt(exports):typeof define=="function"&&define.amd?define(["exports"],Gt):(T=typeof globalThis<"u"?globalThis:T||self,Gt(T.berlin_8_am={}))})(this,function(T){"use strict";const Gt={display_type:"svg",debug:!1,controls_border:"",display_border:"",debug_lattice:"debug-grid-16",controls_grid:{nx:12,ny:12},display_size:{width:500,height:500},controls_size:{width:480,height:480},display_class:" tw:p-0",controls_class:"tw:p-0",container_class:"tw:font-sans tw:font-light tw:grid tw:grid-cols-1 tw:sm:grid-cols-2 tw:sm:gap-8 tw:px-1 tw:sm:p-0 tw:m-8"};function Vn(t,n){return t==null||n==null?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function Vu(t,n){return t==null||n==null?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function Yi(t){let n,e,r;t.length!==2?(n=Vn,e=(s,l)=>Vn(t(s),l),r=(s,l)=>t(s)-l):(n=t===Vn||t===Vu?t:Ku,e=t,r=t);function i(s,l,u=0,c=s.length){if(u<c){if(n(l,l)!==0)return c;do{const f=u+c>>>1;e(s[f],l)<0?u=f+1:c=f}while(u<c)}return u}function a(s,l,u=0,c=s.length){if(u<c){if(n(l,l)!==0)return c;do{const f=u+c>>>1;e(s[f],l)<=0?u=f+1:c=f}while(u<c)}return u}function o(s,l,u=0,c=s.length){const f=i(s,l,u,c-1);return f>u&&r(s[f-1],l)>-r(s[f],l)?f-1:f}return{left:i,center:o,right:a}}function Ku(){return 0}function Zu(t){return t===null?NaN:+t}const Wu=Yi(Vn).right;Yi(Zu).center;const Ju=Math.sqrt(50),Qu=Math.sqrt(10),tl=Math.sqrt(2);function Kn(t,n,e){const r=(n-t)/Math.max(0,e),i=Math.floor(Math.log10(r)),a=r/Math.pow(10,i),o=a>=Ju?10:a>=Qu?5:a>=tl?2:1;let s,l,u;return i<0?(u=Math.pow(10,-i)/o,s=Math.round(t*u),l=Math.round(n*u),s/u<t&&++s,l/u>n&&--l,u=-u):(u=Math.pow(10,i)*o,s=Math.round(t/u),l=Math.round(n/u),s*u<t&&++s,l*u>n&&--l),l<s&&.5<=e&&e<2?Kn(t,n,e*2):[s,l,u]}function nl(t,n,e){if(n=+n,t=+t,e=+e,!(e>0))return[];if(t===n)return[t];const r=n<t,[i,a,o]=r?Kn(n,t,e):Kn(t,n,e);if(!(a>=i))return[];const s=a-i+1,l=new Array(s);if(r)if(o<0)for(let u=0;u<s;++u)l[u]=(a-u)/-o;else for(let u=0;u<s;++u)l[u]=(a-u)*o;else if(o<0)for(let u=0;u<s;++u)l[u]=(i+u)/-o;else for(let u=0;u<s;++u)l[u]=(i+u)*o;return l}function fr(t,n,e){return n=+n,t=+t,e=+e,Kn(t,n,e)[2]}function el(t,n,e){n=+n,t=+t,e=+e;const r=n<t,i=r?fr(n,t,e):fr(t,n,e);return(r?-1:1)*(i<0?1/-i:i)}function rl(t,n){let e;if(n===void 0)for(const r of t)r!=null&&(e<r||e===void 0&&r>=r)&&(e=r);else{let r=-1;for(let i of t)(i=n(i,++r,t))!=null&&(e<i||e===void 0&&i>=i)&&(e=i)}return e}function il(t,n){let e;if(n===void 0)for(const r of t)r!=null&&(e>r||e===void 0&&r>=r)&&(e=r);else{let r=-1;for(let i of t)(i=n(i,++r,t))!=null&&(e>i||e===void 0&&i>=i)&&(e=i)}return e}function Vi(t,n){let e=0,r=0;if(n===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++e,r+=i);else{let i=-1;for(let a of t)(a=n(a,++i,t))!=null&&(a=+a)>=a&&(++e,r+=a)}if(e)return r/e}function Zn(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=Math.max(0,Math.ceil((n-t)/e))|0,a=new Array(i);++r<i;)a[r]=t+r*e;return a}var al={value:()=>{}};function Ki(){for(var t=0,n=arguments.length,e={},r;t<n;++t){if(!(r=arguments[t]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new Wn(e)}function Wn(t){this._=t}function ol(t,n){return t.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}Wn.prototype=Ki.prototype={constructor:Wn,on:function(t,n){var e=this._,r=ol(t+"",e),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(t=r[a]).type)&&(i=sl(e[i],t.name)))return i;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++a<o;)if(i=(t=r[a]).type)e[i]=Zi(e[i],t.name,n);else if(n==null)for(i in e)e[i]=Zi(e[i],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Wn(t)},call:function(t,n){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,a;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=this._[t],r=0,i=a.length;r<i;++r)a[r].value.apply(n,e)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,a=r.length;i<a;++i)r[i].value.apply(n,e)}};function sl(t,n){for(var e=0,r=t.length,i;e<r;++e)if((i=t[e]).name===n)return i.value}function Zi(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=al,t=t.slice(0,r).concat(t.slice(r+1));break}return e!=null&&t.push({name:n,value:e}),t}var hr="http://www.w3.org/1999/xhtml";const Wi={svg:"http://www.w3.org/2000/svg",xhtml:hr,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Jn(t){var n=t+="",e=n.indexOf(":");return e>=0&&(n=t.slice(0,e))!=="xmlns"&&(t=t.slice(e+1)),Wi.hasOwnProperty(n)?{space:Wi[n],local:t}:t}function ul(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===hr&&n.documentElement.namespaceURI===hr?n.createElement(t):n.createElementNS(e,t)}}function ll(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Ji(t){var n=Jn(t);return(n.local?ll:ul)(n)}function cl(){}function pr(t){return t==null?cl:function(){return this.querySelector(t)}}function fl(t){typeof t!="function"&&(t=pr(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,s=r[i]=new Array(o),l,u,c=0;c<o;++c)(l=a[c])&&(u=t.call(l,l.__data__,c,a))&&("__data__"in l&&(u.__data__=l.__data__),s[c]=u);return new q(r,this._parents)}function hl(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function pl(){return[]}function Qi(t){return t==null?pl:function(){return this.querySelectorAll(t)}}function dl(t){return function(){return hl(t.apply(this,arguments))}}function gl(t){typeof t=="function"?t=dl(t):t=Qi(t);for(var n=this._groups,e=n.length,r=[],i=[],a=0;a<e;++a)for(var o=n[a],s=o.length,l,u=0;u<s;++u)(l=o[u])&&(r.push(t.call(l,l.__data__,u,o)),i.push(l));return new q(r,i)}function ta(t){return function(){return this.matches(t)}}function na(t){return function(n){return n.matches(t)}}var _l=Array.prototype.find;function yl(t){return function(){return _l.call(this.children,t)}}function vl(){return this.firstElementChild}function ml(t){return this.select(t==null?vl:yl(typeof t=="function"?t:na(t)))}var wl=Array.prototype.filter;function bl(){return Array.from(this.children)}function xl(t){return function(){return wl.call(this.children,t)}}function Ml(t){return this.selectAll(t==null?bl:xl(typeof t=="function"?t:na(t)))}function $l(t){typeof t!="function"&&(t=ta(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,s=r[i]=[],l,u=0;u<o;++u)(l=a[u])&&t.call(l,l.__data__,u,a)&&s.push(l);return new q(r,this._parents)}function ea(t){return new Array(t.length)}function Al(){return new q(this._enter||this._groups.map(ea),this._parents)}function Qn(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}Qn.prototype={constructor:Qn,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Tl(t){return function(){return t}}function kl(t,n,e,r,i,a){for(var o=0,s,l=n.length,u=a.length;o<u;++o)(s=n[o])?(s.__data__=a[o],r[o]=s):e[o]=new Qn(t,a[o]);for(;o<l;++o)(s=n[o])&&(i[o]=s)}function Nl(t,n,e,r,i,a,o){var s,l,u=new Map,c=n.length,f=a.length,h=new Array(c),p;for(s=0;s<c;++s)(l=n[s])&&(h[s]=p=o.call(l,l.__data__,s,n)+"",u.has(p)?i[s]=l:u.set(p,l));for(s=0;s<f;++s)p=o.call(t,a[s],s,a)+"",(l=u.get(p))?(r[s]=l,l.__data__=a[s],u.delete(p)):e[s]=new Qn(t,a[s]);for(s=0;s<c;++s)(l=n[s])&&u.get(h[s])===l&&(i[s]=l)}function Sl(t){return t.__data__}function Pl(t,n){if(!arguments.length)return Array.from(this,Sl);var e=n?Nl:kl,r=this._parents,i=this._groups;typeof t!="function"&&(t=Tl(t));for(var a=i.length,o=new Array(a),s=new Array(a),l=new Array(a),u=0;u<a;++u){var c=r[u],f=i[u],h=f.length,p=El(t.call(c,c&&c.__data__,u,r)),g=p.length,y=s[u]=new Array(g),w=o[u]=new Array(g),b=l[u]=new Array(h);e(c,f,y,w,b,p,n);for(var d=0,M=0,_,m;d<g;++d)if(_=y[d]){for(d>=M&&(M=d+1);!(m=w[M])&&++M<g;);_._next=m||null}}return o=new q(o,r),o._enter=s,o._exit=l,o}function El(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Ol(){return new q(this._exit||this._groups.map(ea),this._parents)}function zl(t,n,e){var r=this.enter(),i=this,a=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),n!=null&&(i=n(i),i&&(i=i.selection())),e==null?a.remove():e(a),r&&i?r.merge(i).order():i}function Il(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,a=r.length,o=Math.min(i,a),s=new Array(i),l=0;l<o;++l)for(var u=e[l],c=r[l],f=u.length,h=s[l]=new Array(f),p,g=0;g<f;++g)(p=u[g]||c[g])&&(h[g]=p);for(;l<i;++l)s[l]=e[l];return new q(s,this._parents)}function Cl(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r=t[n],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Rl(t){t||(t=jl);function n(f,h){return f&&h?t(f.__data__,h.__data__):!f-!h}for(var e=this._groups,r=e.length,i=new Array(r),a=0;a<r;++a){for(var o=e[a],s=o.length,l=i[a]=new Array(s),u,c=0;c<s;++c)(u=o[c])&&(l[c]=u);l.sort(n)}return new q(i,this._parents).order()}function jl(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function Fl(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Ll(){return Array.from(this)}function Dl(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function ql(){let t=0;for(const n of this)++t;return t}function Bl(){return!this.node()}function Xl(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i=n[e],a=0,o=i.length,s;a<o;++a)(s=i[a])&&t.call(s,s.__data__,a,i);return this}function Hl(t){return function(){this.removeAttribute(t)}}function Ul(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Gl(t,n){return function(){this.setAttribute(t,n)}}function Yl(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function Vl(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttribute(t):this.setAttribute(t,e)}}function Kl(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function Zl(t,n){var e=Jn(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((n==null?e.local?Ul:Hl:typeof n=="function"?e.local?Kl:Vl:e.local?Yl:Gl)(e,n))}function ra(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Wl(t){return function(){this.style.removeProperty(t)}}function Jl(t,n,e){return function(){this.style.setProperty(t,n,e)}}function Ql(t,n,e){return function(){var r=n.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function tc(t,n,e){return arguments.length>1?this.each((n==null?Wl:typeof n=="function"?Ql:Jl)(t,n,e??"")):Yt(this.node(),t)}function Yt(t,n){return t.style.getPropertyValue(n)||ra(t).getComputedStyle(t,null).getPropertyValue(n)}function nc(t){return function(){delete this[t]}}function ec(t,n){return function(){this[t]=n}}function rc(t,n){return function(){var e=n.apply(this,arguments);e==null?delete this[t]:this[t]=e}}function ic(t,n){return arguments.length>1?this.each((n==null?nc:typeof n=="function"?rc:ec)(t,n)):this.node()[t]}function ia(t){return t.trim().split(/^|\s+/)}function dr(t){return t.classList||new aa(t)}function aa(t){this._node=t,this._names=ia(t.getAttribute("class")||"")}aa.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}};function oa(t,n){for(var e=dr(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function sa(t,n){for(var e=dr(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function ac(t){return function(){oa(this,t)}}function oc(t){return function(){sa(this,t)}}function sc(t,n){return function(){(n.apply(this,arguments)?oa:sa)(this,t)}}function uc(t,n){var e=ia(t+"");if(arguments.length<2){for(var r=dr(this.node()),i=-1,a=e.length;++i<a;)if(!r.contains(e[i]))return!1;return!0}return this.each((typeof n=="function"?sc:n?ac:oc)(e,n))}function lc(){this.textContent=""}function cc(t){return function(){this.textContent=t}}function fc(t){return function(){var n=t.apply(this,arguments);this.textContent=n??""}}function hc(t){return arguments.length?this.each(t==null?lc:(typeof t=="function"?fc:cc)(t)):this.node().textContent}function pc(){this.innerHTML=""}function dc(t){return function(){this.innerHTML=t}}function gc(t){return function(){var n=t.apply(this,arguments);this.innerHTML=n??""}}function _c(t){return arguments.length?this.each(t==null?pc:(typeof t=="function"?gc:dc)(t)):this.node().innerHTML}function yc(){this.nextSibling&&this.parentNode.appendChild(this)}function vc(){return this.each(yc)}function mc(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function wc(){return this.each(mc)}function bc(t){var n=typeof t=="function"?t:Ji(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function xc(){return null}function Mc(t,n){var e=typeof t=="function"?t:Ji(t),r=n==null?xc:typeof n=="function"?n:pr(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})}function $c(){var t=this.parentNode;t&&t.removeChild(this)}function Ac(){return this.each($c)}function Tc(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function kc(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Nc(t){return this.select(t?kc:Tc)}function Sc(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Pc(t){return function(n){t.call(this,n,this.__data__)}}function Ec(t){return t.trim().split(/^|\s+/).map(function(n){var e="",r=n.indexOf(".");return r>=0&&(e=n.slice(r+1),n=n.slice(0,r)),{type:n,name:e}})}function Oc(t){return function(){var n=this.__on;if(n){for(var e=0,r=-1,i=n.length,a;e<i;++e)a=n[e],(!t.type||a.type===t.type)&&a.name===t.name?this.removeEventListener(a.type,a.listener,a.options):n[++r]=a;++r?n.length=r:delete this.__on}}}function zc(t,n,e){return function(){var r=this.__on,i,a=Pc(n);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=e),i.value=n;return}}this.addEventListener(t.type,a,e),i={type:t.type,name:t.name,value:n,listener:a,options:e},r?r.push(i):this.__on=[i]}}function Ic(t,n,e){var r=Ec(t+""),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var l=0,u=s.length,c;l<u;++l)for(i=0,c=s[l];i<a;++i)if((o=r[i]).type===c.type&&o.name===c.name)return c.value}return}for(s=n?zc:Oc,i=0;i<a;++i)this.each(s(r[i],n,e));return this}function ua(t,n,e){var r=ra(t),i=r.CustomEvent;typeof i=="function"?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function Cc(t,n){return function(){return ua(this,t,n)}}function Rc(t,n){return function(){return ua(this,t,n.apply(this,arguments))}}function jc(t,n){return this.each((typeof n=="function"?Rc:Cc)(t,n))}function*Fc(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var la=[null];function q(t,n){this._groups=t,this._parents=n}function yn(){return new q([[document.documentElement]],la)}function Lc(){return this}q.prototype=yn.prototype={constructor:q,select:fl,selectAll:gl,selectChild:ml,selectChildren:Ml,filter:$l,data:Pl,enter:Al,exit:Ol,join:zl,merge:Il,selection:Lc,order:Cl,sort:Rl,call:Fl,nodes:Ll,node:Dl,size:ql,empty:Bl,each:Xl,attr:Zl,style:tc,property:ic,classed:uc,text:hc,html:_c,raise:vc,lower:wc,append:bc,insert:Mc,remove:Ac,clone:Nc,datum:Sc,on:Ic,dispatch:jc,[Symbol.iterator]:Fc};function Dc(t){return typeof t=="string"?new q([[document.querySelector(t)]],[document.documentElement]):new q([[t]],la)}function gr(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function ca(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function vn(){}var mn=.7,te=1/mn,Vt="\\s*([+-]?\\d+)\\s*",wn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",it="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",qc=/^#([0-9a-f]{3,8})$/,Bc=new RegExp(`^rgb\\(${Vt},${Vt},${Vt}\\)$`),Xc=new RegExp(`^rgb\\(${it},${it},${it}\\)$`),Hc=new RegExp(`^rgba\\(${Vt},${Vt},${Vt},${wn}\\)$`),Uc=new RegExp(`^rgba\\(${it},${it},${it},${wn}\\)$`),Gc=new RegExp(`^hsl\\(${wn},${it},${it}\\)$`),Yc=new RegExp(`^hsla\\(${wn},${it},${it},${wn}\\)$`),fa={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};gr(vn,Tt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:ha,formatHex:ha,formatHex8:Vc,formatHsl:Kc,formatRgb:pa,toString:pa});function ha(){return this.rgb().formatHex()}function Vc(){return this.rgb().formatHex8()}function Kc(){return va(this).formatHsl()}function pa(){return this.rgb().formatRgb()}function Tt(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=qc.exec(t))?(e=n[1].length,n=parseInt(n[1],16),e===6?da(n):e===3?new L(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):e===8?ne(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):e===4?ne(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=Bc.exec(t))?new L(n[1],n[2],n[3],1):(n=Xc.exec(t))?new L(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=Hc.exec(t))?ne(n[1],n[2],n[3],n[4]):(n=Uc.exec(t))?ne(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=Gc.exec(t))?ya(n[1],n[2]/100,n[3]/100,1):(n=Yc.exec(t))?ya(n[1],n[2]/100,n[3]/100,n[4]):fa.hasOwnProperty(t)?da(fa[t]):t==="transparent"?new L(NaN,NaN,NaN,0):null}function da(t){return new L(t>>16&255,t>>8&255,t&255,1)}function ne(t,n,e,r){return r<=0&&(t=n=e=NaN),new L(t,n,e,r)}function Zc(t){return t instanceof vn||(t=Tt(t)),t?(t=t.rgb(),new L(t.r,t.g,t.b,t.opacity)):new L}function _r(t,n,e,r){return arguments.length===1?Zc(t):new L(t,n,e,r??1)}function L(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}gr(L,_r,ca(vn,{brighter(t){return t=t==null?te:Math.pow(te,t),new L(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?mn:Math.pow(mn,t),new L(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new L(kt(this.r),kt(this.g),kt(this.b),ee(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ga,formatHex:ga,formatHex8:Wc,formatRgb:_a,toString:_a}));function ga(){return`#${Nt(this.r)}${Nt(this.g)}${Nt(this.b)}`}function Wc(){return`#${Nt(this.r)}${Nt(this.g)}${Nt(this.b)}${Nt((isNaN(this.opacity)?1:this.opacity)*255)}`}function _a(){const t=ee(this.opacity);return`${t===1?"rgb(":"rgba("}${kt(this.r)}, ${kt(this.g)}, ${kt(this.b)}${t===1?")":`, ${t})`}`}function ee(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function kt(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Nt(t){return t=kt(t),(t<16?"0":"")+t.toString(16)}function ya(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new V(t,n,e,r)}function va(t){if(t instanceof V)return new V(t.h,t.s,t.l,t.opacity);if(t instanceof vn||(t=Tt(t)),!t)return new V;if(t instanceof V)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),a=Math.max(n,e,r),o=NaN,s=a-i,l=(a+i)/2;return s?(n===a?o=(e-r)/s+(e<r)*6:e===a?o=(r-n)/s+2:o=(n-e)/s+4,s/=l<.5?a+i:2-a-i,o*=60):s=l>0&&l<1?0:o,new V(o,s,l,t.opacity)}function Jc(t,n,e,r){return arguments.length===1?va(t):new V(t,n,e,r??1)}function V(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}gr(V,Jc,ca(vn,{brighter(t){return t=t==null?te:Math.pow(te,t),new V(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?mn:Math.pow(mn,t),new V(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new L(yr(t>=240?t-240:t+120,i,r),yr(t,i,r),yr(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new V(ma(this.h),re(this.s),re(this.l),ee(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=ee(this.opacity);return`${t===1?"hsl(":"hsla("}${ma(this.h)}, ${re(this.s)*100}%, ${re(this.l)*100}%${t===1?")":`, ${t})`}`}}));function ma(t){return t=(t||0)%360,t<0?t+360:t}function re(t){return Math.max(0,Math.min(1,t||0))}function yr(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}const vr=t=>()=>t;function Qc(t,n){return function(e){return t+e*n}}function tf(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function nf(t){return(t=+t)==1?wa:function(n,e){return e-n?tf(n,e,t):vr(isNaN(n)?e:n)}}function wa(t,n){var e=n-t;return e?Qc(t,e):vr(isNaN(t)?n:t)}const ie=function t(n){var e=nf(n);function r(i,a){var o=e((i=_r(i)).r,(a=_r(a)).r),s=e(i.g,a.g),l=e(i.b,a.b),u=wa(i.opacity,a.opacity);return function(c){return i.r=o(c),i.g=s(c),i.b=l(c),i.opacity=u(c),i+""}}return r.gamma=t,r}(1);function ef(t,n){n||(n=[]);var e=t?Math.min(n.length,t.length):0,r=n.slice(),i;return function(a){for(i=0;i<e;++i)r[i]=t[i]*(1-a)+n[i]*a;return r}}function rf(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function af(t,n){var e=n?n.length:0,r=t?Math.min(e,t.length):0,i=new Array(r),a=new Array(e),o;for(o=0;o<r;++o)i[o]=br(t[o],n[o]);for(;o<e;++o)a[o]=n[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function of(t,n){var e=new Date;return t=+t,n=+n,function(r){return e.setTime(t*(1-r)+n*r),e}}function K(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}function sf(t,n){var e={},r={},i;(t===null||typeof t!="object")&&(t={}),(n===null||typeof n!="object")&&(n={});for(i in n)i in t?e[i]=br(t[i],n[i]):r[i]=n[i];return function(a){for(i in e)r[i]=e[i](a);return r}}var mr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,wr=new RegExp(mr.source,"g");function uf(t){return function(){return t}}function lf(t){return function(n){return t(n)+""}}function ba(t,n){var e=mr.lastIndex=wr.lastIndex=0,r,i,a,o=-1,s=[],l=[];for(t=t+"",n=n+"";(r=mr.exec(t))&&(i=wr.exec(n));)(a=i.index)>e&&(a=n.slice(e,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,l.push({i:o,x:K(r,i)})),e=wr.lastIndex;return e<n.length&&(a=n.slice(e),s[o]?s[o]+=a:s[++o]=a),s.length<2?l[0]?lf(l[0].x):uf(n):(n=l.length,function(u){for(var c=0,f;c<n;++c)s[(f=l[c]).i]=f.x(u);return s.join("")})}function br(t,n){var e=typeof n,r;return n==null||e==="boolean"?vr(n):(e==="number"?K:e==="string"?(r=Tt(n))?(n=r,ie):ba:n instanceof Tt?ie:n instanceof Date?of:rf(n)?ef:Array.isArray(n)?af:typeof n.valueOf!="function"&&typeof n.toString!="function"||isNaN(n)?sf:K)(t,n)}function cf(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}}var xa=180/Math.PI,xr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ma(t,n,e,r,i,a){var o,s,l;return(o=Math.sqrt(t*t+n*n))&&(t/=o,n/=o),(l=t*e+n*r)&&(e-=t*l,r-=n*l),(s=Math.sqrt(e*e+r*r))&&(e/=s,r/=s,l/=s),t*r<n*e&&(t=-t,n=-n,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(n,t)*xa,skewX:Math.atan(l)*xa,scaleX:o,scaleY:s}}var ae;function ff(t){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?xr:Ma(n.a,n.b,n.c,n.d,n.e,n.f)}function hf(t){return t==null||(ae||(ae=document.createElementNS("http://www.w3.org/2000/svg","g")),ae.setAttribute("transform",t),!(t=ae.transform.baseVal.consolidate()))?xr:(t=t.matrix,Ma(t.a,t.b,t.c,t.d,t.e,t.f))}function $a(t,n,e,r){function i(u){return u.length?u.pop()+" ":""}function a(u,c,f,h,p,g){if(u!==f||c!==h){var y=p.push("translate(",null,n,null,e);g.push({i:y-4,x:K(u,f)},{i:y-2,x:K(c,h)})}else(f||h)&&p.push("translate("+f+n+h+e)}function o(u,c,f,h){u!==c?(u-c>180?c+=360:c-u>180&&(u+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:K(u,c)})):c&&f.push(i(f)+"rotate("+c+r)}function s(u,c,f,h){u!==c?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:K(u,c)}):c&&f.push(i(f)+"skewX("+c+r)}function l(u,c,f,h,p,g){if(u!==f||c!==h){var y=p.push(i(p)+"scale(",null,",",null,")");g.push({i:y-4,x:K(u,f)},{i:y-2,x:K(c,h)})}else(f!==1||h!==1)&&p.push(i(p)+"scale("+f+","+h+")")}return function(u,c){var f=[],h=[];return u=t(u),c=t(c),a(u.translateX,u.translateY,c.translateX,c.translateY,f,h),o(u.rotate,c.rotate,f,h),s(u.skewX,c.skewX,f,h),l(u.scaleX,u.scaleY,c.scaleX,c.scaleY,f,h),u=c=null,function(p){for(var g=-1,y=h.length,w;++g<y;)f[(w=h[g]).i]=w.x(p);return f.join("")}}}var pf=$a(ff,"px, ","px)","deg)"),df=$a(hf,", ",")",")"),Kt=0,bn=0,xn=0,Aa=1e3,oe,Mn,se=0,St=0,ue=0,$n=typeof performance=="object"&&performance.now?performance:Date,Ta=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function le(){return St||(Ta(gf),St=$n.now()+ue)}function gf(){St=0}function An(){this._call=this._time=this._next=null}An.prototype=ka.prototype={constructor:An,restart:function(t,n,e){if(typeof t!="function")throw new TypeError("callback is not a function");e=(e==null?le():+e)+(n==null?0:+n),!this._next&&Mn!==this&&(Mn?Mn._next=this:oe=this,Mn=this),this._call=t,this._time=e,Mr()},stop:function(){this._call&&(this._call=null,this._time=1/0,Mr())}};function ka(t,n,e){var r=new An;return r.restart(t,n,e),r}function _f(){le(),++Kt;for(var t=oe,n;t;)(n=St-t._time)>=0&&t._call.call(void 0,n),t=t._next;--Kt}function Na(){St=(se=$n.now())+ue,Kt=bn=0;try{_f()}finally{Kt=0,vf(),St=0}}function yf(){var t=$n.now(),n=t-se;n>Aa&&(ue-=n,se=t)}function vf(){for(var t,n=oe,e,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:oe=e);Mn=t,Mr(r)}function Mr(t){if(!Kt){bn&&(bn=clearTimeout(bn));var n=t-St;n>24?(t<1/0&&(bn=setTimeout(Na,t-$n.now()-ue)),xn&&(xn=clearInterval(xn))):(xn||(se=$n.now(),xn=setInterval(yf,Aa)),Kt=1,Ta(Na))}}function Sa(t,n,e){var r=new An;return n=n==null?0:+n,r.restart(i=>{r.stop(),t(i+n)},n,e),r}function mf(t,n,e){var r=new An,i=n;return r._restart=r.restart,r.restart=function(a,o,s){o=+o,s=s==null?le():+s,r._restart(function l(u){u+=i,r._restart(l,i+=o,s),a(u)},o,s)},r.restart(t,n,e),r}var wf=Ki("start","end","cancel","interrupt"),bf=[],Pa=0,Ea=1,$r=2,ce=3,Oa=4,Ar=5,fe=6;function he(t,n,e,r,i,a){var o=t.__transition;if(!o)t.__transition={};else if(e in o)return;xf(t,e,{name:n,index:r,group:i,on:wf,tween:bf,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Pa})}function Tr(t,n){var e=Z(t,n);if(e.state>Pa)throw new Error("too late; already scheduled");return e}function at(t,n){var e=Z(t,n);if(e.state>ce)throw new Error("too late; already running");return e}function Z(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function xf(t,n,e){var r=t.__transition,i;r[n]=e,e.timer=ka(a,0,e.time);function a(u){e.state=Ea,e.timer.restart(o,e.delay,e.time),e.delay<=u&&o(u-e.delay)}function o(u){var c,f,h,p;if(e.state!==Ea)return l();for(c in r)if(p=r[c],p.name===e.name){if(p.state===ce)return Sa(o);p.state===Oa?(p.state=fe,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete r[c]):+c<n&&(p.state=fe,p.timer.stop(),p.on.call("cancel",t,t.__data__,p.index,p.group),delete r[c])}if(Sa(function(){e.state===ce&&(e.state=Oa,e.timer.restart(s,e.delay,e.time),s(u))}),e.state=$r,e.on.call("start",t,t.__data__,e.index,e.group),e.state===$r){for(e.state=ce,i=new Array(h=e.tween.length),c=0,f=-1;c<h;++c)(p=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(i[++f]=p);i.length=f+1}}function s(u){for(var c=u<e.duration?e.ease.call(null,u/e.duration):(e.timer.restart(l),e.state=Ar,1),f=-1,h=i.length;++f<h;)i[f].call(t,c);e.state===Ar&&(e.on.call("end",t,t.__data__,e.index,e.group),l())}function l(){e.state=fe,e.timer.stop(),delete r[n];for(var u in r)return;delete t.__transition}}function Mf(t,n){var e=t.__transition,r,i,a=!0,o;if(e){n=n==null?null:n+"";for(o in e){if((r=e[o]).name!==n){a=!1;continue}i=r.state>$r&&r.state<Ar,r.state=fe,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete e[o]}a&&delete t.__transition}}function $f(t){return this.each(function(){Mf(this,t)})}function Af(t,n){var e,r;return function(){var i=at(this,t),a=i.tween;if(a!==e){r=e=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===n){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Tf(t,n,e){var r,i;if(typeof e!="function")throw new Error;return function(){var a=at(this,t),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:n,value:e},l=0,u=i.length;l<u;++l)if(i[l].name===n){i[l]=s;break}l===u&&i.push(s)}a.tween=i}}function kf(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r=Z(this.node(),e).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((n==null?Af:Tf)(e,t,n))}function kr(t,n,e){var r=t._id;return t.each(function(){var i=at(this,r);(i.value||(i.value={}))[n]=e.apply(this,arguments)}),function(i){return Z(i,r).value[n]}}function za(t,n){var e;return(typeof n=="number"?K:n instanceof Tt?ie:(e=Tt(n))?(n=e,ie):ba)(t,n)}function Nf(t){return function(){this.removeAttribute(t)}}function Sf(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Pf(t,n,e){var r,i=e+"",a;return function(){var o=this.getAttribute(t);return o===i?null:o===r?a:a=n(r=o,e)}}function Ef(t,n,e){var r,i=e+"",a;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===r?a:a=n(r=o,e)}}function Of(t,n,e){var r,i,a;return function(){var o,s=e(this),l;return s==null?void this.removeAttribute(t):(o=this.getAttribute(t),l=s+"",o===l?null:o===r&&l===i?a:(i=l,a=n(r=o,s)))}}function zf(t,n,e){var r,i,a;return function(){var o,s=e(this),l;return s==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),l=s+"",o===l?null:o===r&&l===i?a:(i=l,a=n(r=o,s)))}}function If(t,n){var e=Jn(t),r=e==="transform"?df:za;return this.attrTween(t,typeof n=="function"?(e.local?zf:Of)(e,r,kr(this,"attr."+t,n)):n==null?(e.local?Sf:Nf)(e):(e.local?Ef:Pf)(e,r,n))}function Cf(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function Rf(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function jf(t,n){var e,r;function i(){var a=n.apply(this,arguments);return a!==r&&(e=(r=a)&&Rf(t,a)),e}return i._value=n,i}function Ff(t,n){var e,r;function i(){var a=n.apply(this,arguments);return a!==r&&(e=(r=a)&&Cf(t,a)),e}return i._value=n,i}function Lf(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(n==null)return this.tween(e,null);if(typeof n!="function")throw new Error;var r=Jn(t);return this.tween(e,(r.local?jf:Ff)(r,n))}function Df(t,n){return function(){Tr(this,t).delay=+n.apply(this,arguments)}}function qf(t,n){return n=+n,function(){Tr(this,t).delay=n}}function Bf(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?Df:qf)(n,t)):Z(this.node(),n).delay}function Xf(t,n){return function(){at(this,t).duration=+n.apply(this,arguments)}}function Hf(t,n){return n=+n,function(){at(this,t).duration=n}}function Uf(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?Xf:Hf)(n,t)):Z(this.node(),n).duration}function Gf(t,n){if(typeof n!="function")throw new Error;return function(){at(this,t).ease=n}}function Yf(t){var n=this._id;return arguments.length?this.each(Gf(n,t)):Z(this.node(),n).ease}function Vf(t,n){return function(){var e=n.apply(this,arguments);if(typeof e!="function")throw new Error;at(this,t).ease=e}}function Kf(t){if(typeof t!="function")throw new Error;return this.each(Vf(this._id,t))}function Zf(t){typeof t!="function"&&(t=ta(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,s=r[i]=[],l,u=0;u<o;++u)(l=a[u])&&t.call(l,l.__data__,u,a)&&s.push(l);return new lt(r,this._parents,this._name,this._id)}function Wf(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,a=Math.min(r,i),o=new Array(r),s=0;s<a;++s)for(var l=n[s],u=e[s],c=l.length,f=o[s]=new Array(c),h,p=0;p<c;++p)(h=l[p]||u[p])&&(f[p]=h);for(;s<r;++s)o[s]=n[s];return new lt(o,this._parents,this._name,this._id)}function Jf(t){return(t+"").trim().split(/^|\s+/).every(function(n){var e=n.indexOf(".");return e>=0&&(n=n.slice(0,e)),!n||n==="start"})}function Qf(t,n,e){var r,i,a=Jf(n)?Tr:at;return function(){var o=a(this,t),s=o.on;s!==r&&(i=(r=s).copy()).on(n,e),o.on=i}}function th(t,n){var e=this._id;return arguments.length<2?Z(this.node(),e).on.on(t):this.each(Qf(e,t,n))}function nh(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function eh(){return this.on("end.remove",nh(this._id))}function rh(t){var n=this._name,e=this._id;typeof t!="function"&&(t=pr(t));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o<i;++o)for(var s=r[o],l=s.length,u=a[o]=new Array(l),c,f,h=0;h<l;++h)(c=s[h])&&(f=t.call(c,c.__data__,h,s))&&("__data__"in c&&(f.__data__=c.__data__),u[h]=f,he(u[h],n,e,h,u,Z(c,e)));return new lt(a,this._parents,n,e)}function ih(t){var n=this._name,e=this._id;typeof t!="function"&&(t=Qi(t));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var l=r[s],u=l.length,c,f=0;f<u;++f)if(c=l[f]){for(var h=t.call(c,c.__data__,f,l),p,g=Z(c,e),y=0,w=h.length;y<w;++y)(p=h[y])&&he(p,n,e,y,h,g);a.push(h),o.push(c)}return new lt(a,o,n,e)}var ah=yn.prototype.constructor;function oh(){return new ah(this._groups,this._parents)}function sh(t,n){var e,r,i;return function(){var a=Yt(this,t),o=(this.style.removeProperty(t),Yt(this,t));return a===o?null:a===e&&o===r?i:i=n(e=a,r=o)}}function Ia(t){return function(){this.style.removeProperty(t)}}function uh(t,n,e){var r,i=e+"",a;return function(){var o=Yt(this,t);return o===i?null:o===r?a:a=n(r=o,e)}}function lh(t,n,e){var r,i,a;return function(){var o=Yt(this,t),s=e(this),l=s+"";return s==null&&(l=s=(this.style.removeProperty(t),Yt(this,t))),o===l?null:o===r&&l===i?a:(i=l,a=n(r=o,s))}}function ch(t,n){var e,r,i,a="style."+n,o="end."+a,s;return function(){var l=at(this,t),u=l.on,c=l.value[a]==null?s||(s=Ia(n)):void 0;(u!==e||i!==c)&&(r=(e=u).copy()).on(o,i=c),l.on=r}}function fh(t,n,e){var r=(t+="")=="transform"?pf:za;return n==null?this.styleTween(t,sh(t,r)).on("end.style."+t,Ia(t)):typeof n=="function"?this.styleTween(t,lh(t,r,kr(this,"style."+t,n))).each(ch(this._id,t)):this.styleTween(t,uh(t,r,n),e).on("end.style."+t,null)}function hh(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function ph(t,n,e){var r,i;function a(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&hh(t,o,e)),r}return a._value=n,a}function dh(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;return this.tween(r,ph(t,n,e??""))}function gh(t){return function(){this.textContent=t}}function _h(t){return function(){var n=t(this);this.textContent=n??""}}function yh(t){return this.tween("text",typeof t=="function"?_h(kr(this,"text",t)):gh(t==null?"":t+""))}function vh(t){return function(n){this.textContent=t.call(this,n)}}function mh(t){var n,e;function r(){var i=t.apply(this,arguments);return i!==e&&(n=(e=i)&&vh(i)),n}return r._value=t,r}function wh(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;return this.tween(n,mh(t))}function bh(){for(var t=this._name,n=this._id,e=Ca(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,l,u=0;u<s;++u)if(l=o[u]){var c=Z(l,n);he(l,t,e,u,o,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new lt(r,this._parents,t,e)}function xh(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(a,o){var s={value:o},l={value:function(){--i===0&&a()}};e.each(function(){var u=at(this,r),c=u.on;c!==t&&(n=(t=c).copy(),n._.cancel.push(s),n._.interrupt.push(s),n._.end.push(l)),u.on=n}),i===0&&a()})}var Mh=0;function lt(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Ca(){return++Mh}var ct=yn.prototype;lt.prototype={constructor:lt,select:rh,selectAll:ih,selectChild:ct.selectChild,selectChildren:ct.selectChildren,filter:Zf,merge:Wf,selection:oh,transition:bh,call:ct.call,nodes:ct.nodes,node:ct.node,size:ct.size,empty:ct.empty,each:ct.each,on:th,attr:If,attrTween:Lf,style:fh,styleTween:dh,text:yh,textTween:wh,remove:eh,tween:kf,delay:Bf,duration:Uf,ease:Yf,easeVarying:Kf,end:xh,[Symbol.iterator]:ct[Symbol.iterator]};function $h(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Ah={time:null,delay:0,duration:250,ease:$h};function Th(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}function kh(t){var n,e;t instanceof lt?(n=t._id,t=t._name):(n=Ca(),(e=Ah).time=le(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,l,u=0;u<s;++u)(l=o[u])&&he(l,t,n,u,o,e||Th(l,n));return new lt(r,this._parents,t,n)}yn.prototype.interrupt=$f,yn.prototype.transition=kh;const Nr=Math.PI,Sr=2*Nr,Pt=1e-6,Nh=Sr-Pt;function Ra(t){this._+=t[0];for(let n=1,e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function Sh(t){let n=Math.floor(t);if(!(n>=0))throw new Error(`invalid digits: ${t}`);if(n>15)return Ra;const e=10**n;return function(r){this._+=r[0];for(let i=1,a=r.length;i<a;++i)this._+=Math.round(arguments[i]*e)/e+r[i]}}class Ph{constructor(n){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=n==null?Ra:Sh(n)}moveTo(n,e){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(n,e){this._append`L${this._x1=+n},${this._y1=+e}`}quadraticCurveTo(n,e,r,i){this._append`Q${+n},${+e},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(n,e,r,i,a,o){this._append`C${+n},${+e},${+r},${+i},${this._x1=+a},${this._y1=+o}`}arcTo(n,e,r,i,a){if(n=+n,e=+e,r=+r,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let o=this._x1,s=this._y1,l=r-n,u=i-e,c=o-n,f=s-e,h=c*c+f*f;if(this._x1===null)this._append`M${this._x1=n},${this._y1=e}`;else if(h>Pt)if(!(Math.abs(f*l-u*c)>Pt)||!a)this._append`L${this._x1=n},${this._y1=e}`;else{let p=r-o,g=i-s,y=l*l+u*u,w=p*p+g*g,b=Math.sqrt(y),d=Math.sqrt(h),M=a*Math.tan((Nr-Math.acos((y+h-w)/(2*b*d)))/2),_=M/d,m=M/b;Math.abs(_-1)>Pt&&this._append`L${n+_*c},${e+_*f}`,this._append`A${a},${a},0,0,${+(f*p>c*g)},${this._x1=n+m*l},${this._y1=e+m*u}`}}arc(n,e,r,i,a,o){if(n=+n,e=+e,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(i),l=r*Math.sin(i),u=n+s,c=e+l,f=1^o,h=o?i-a:a-i;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Pt||Math.abs(this._y1-c)>Pt)&&this._append`L${u},${c}`,r&&(h<0&&(h=h%Sr+Sr),h>Nh?this._append`A${r},${r},0,1,${f},${n-s},${e-l}A${r},${r},0,1,${f},${this._x1=u},${this._y1=c}`:h>Pt&&this._append`A${r},${r},0,${+(h>=Nr)},${f},${this._x1=n+r*Math.cos(a)},${this._y1=e+r*Math.sin(a)}`)}rect(n,e,r,i){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function Eh(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function pe(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function Zt(t){return t=pe(Math.abs(t)),t?t[1]:NaN}function Oh(t,n){return function(e,r){for(var i=e.length,a=[],o=0,s=t[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(e.substring(i-=s,i+s)),!((l+=s+1)>r));)s=t[o=(o+1)%t.length];return a.reverse().join(n)}}function zh(t){return function(n){return n.replace(/[0-9]/g,function(e){return t[+e]})}}var Ih=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function de(t){if(!(n=Ih.exec(t)))throw new Error("invalid format: "+t);var n;return new Pr({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}de.prototype=Pr.prototype;function Pr(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Pr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Ch(t){t:for(var n=t.length,e=1,r=-1,i;e<n;++e)switch(t[e]){case".":r=i=e;break;case"0":r===0&&(r=e),i=e;break;default:if(!+t[e])break t;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var ja;function Rh(t,n){var e=pe(t,n);if(!e)return t+"";var r=e[0],i=e[1],a=i-(ja=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+pe(t,Math.max(0,n+a-1))[0]}function Fa(t,n){var e=pe(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")}const La={"%":(t,n)=>(t*100).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Eh,e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>Fa(t*100,n),r:Fa,s:Rh,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Da(t){return t}var qa=Array.prototype.map,Ba=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function jh(t){var n=t.grouping===void 0||t.thousands===void 0?Da:Oh(qa.call(t.grouping,Number),t.thousands+""),e=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?Da:zh(qa.call(t.numerals,Str