d3-flame-graph
Advanced tools
Comparing version 3.1.1 to 4.0.6
@@ -107,2 +107,3 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nodeJsColorMapper", function() { return nodeJsColorMapper; }); | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "differentialColorMapper", function() { return differentialColorMapper; }); | ||
function pickHex (color1, color2, weight) { | ||
@@ -141,4 +142,4 @@ const w1 = weight | ||
function allocationColorMapper (d) { | ||
if (d.highlight) return 'rgb(230, 0, 230)' | ||
function allocationColorMapper (d, originalColor) { | ||
if (d.highlight) return originalColor | ||
@@ -152,4 +153,4 @@ const self = d.data.value | ||
function offCpuColorMapper (d) { | ||
if (d.highlight) return '#E600E6' | ||
function offCpuColorMapper (d, originalColor) { | ||
if (d.highlight) return originalColor | ||
@@ -206,3 +207,34 @@ let name = d.data.n || d.data.name | ||
function differentialColorMapper (d, originalColor) { | ||
if (d.highlight) return originalColor | ||
let r = 220 | ||
let g = 220 | ||
let b = 220 | ||
const delta = d.delta || d.data.d || d.data.delta | ||
const unsignedDelta = Math.abs(delta) | ||
let value = d.value || d.data.v || d.data.value | ||
if (value <= unsignedDelta) value = unsignedDelta | ||
const vector = unsignedDelta / value | ||
if (delta === value) { | ||
// likely a new frame, color orange | ||
r = 255 | ||
g = 190 | ||
b = 90 | ||
} else if (delta > 0) { | ||
// an increase, color red | ||
b = Math.round(235 * (1 - vector)) | ||
g = b | ||
} else if (delta < 0) { | ||
// a decrease, color blue | ||
r = Math.round(235 * (1 - vector)) | ||
g = r | ||
} | ||
return 'rgb(' + r + ',' + g + ',' + b + ')' | ||
} | ||
/***/ }) | ||
@@ -209,0 +241,0 @@ |
@@ -1,1 +0,1 @@ | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["colorMapper.min"]=e():(t.flamegraph=t.flamegraph||{},t.flamegraph["colorMapper.min"]=e())}(window,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=6)}({6:function(t,e,r){"use strict";function n(t){if(t.highlight)return"rgb(230, 0, 230)";return`rgb(${function(t,e,r){const n=r,o=1-n;return[Math.round(t[0]*n+e[0]*o),Math.round(t[1]*n+e[1]*o),Math.round(t[2]*n+e[2]*o)]}([0,255,40],[196,245,233],t.data.value/t.value).join()})`}function o(t){if(t.highlight)return"#E600E6";let e=t.data.n||t.data.name,r=0;const n=e.split("`");return n.length>1&&(e=n[n.length-1]),e=e.split("(")[0],r=function(t){var e=0,r=0,n=1;if(t){for(var o=0;o<t.length&&!(o>6);o++)e+=n*(t.charCodeAt(o)%10),r+=9*n,n*=.7;r>0&&(e/=r)}return e}(e),"rgb("+(0+Math.round(55*(1-r)))+","+(0+Math.round(230*(1-r)))+","+(200+Math.round(55*r))+")"}function u(t,e){let r=e;const{v8_jit:n,javascript:o,optimized:u}=t.data.extras||{};if(n&&!o&&(r="#dadada"),o){let e=(u||0)/t.value,n=255,o=0,a=0;e<.4?(e*=2.5,n=240-200*e):e<.9?(e=2*(e-.4),n=0,a=200-200*e,o=100*e):(e=10*(e-.9),n=0,a=0,o=100+150*e),r=`rgb(${n} , ${o}, ${a})`}return r}r.r(e),r.d(e,"allocationColorMapper",(function(){return n})),r.d(e,"offCpuColorMapper",(function(){return o})),r.d(e,"nodeJsColorMapper",(function(){return u}))}})})); | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["colorMapper.min"]=e():(t.flamegraph=t.flamegraph||{},t.flamegraph["colorMapper.min"]=e())}(window,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=6)}({6:function(t,e,r){"use strict";function n(t,e){if(t.highlight)return e;return`rgb(${function(t,e,r){const n=r,o=1-n;return[Math.round(t[0]*n+e[0]*o),Math.round(t[1]*n+e[1]*o),Math.round(t[2]*n+e[2]*o)]}([0,255,40],[196,245,233],t.data.value/t.value).join()})`}function o(t,e){if(t.highlight)return e;let r=t.data.n||t.data.name,n=0;const o=r.split("`");return o.length>1&&(r=o[o.length-1]),r=r.split("(")[0],n=function(t){var e=0,r=0,n=1;if(t){for(var o=0;o<t.length&&!(o>6);o++)e+=n*(t.charCodeAt(o)%10),r+=9*n,n*=.7;r>0&&(e/=r)}return e}(r),"rgb("+(0+Math.round(55*(1-n)))+","+(0+Math.round(230*(1-n)))+","+(200+Math.round(55*n))+")"}function u(t,e){let r=e;const{v8_jit:n,javascript:o,optimized:u}=t.data.extras||{};if(n&&!o&&(r="#dadada"),o){let e=(u||0)/t.value,n=255,o=0,a=0;e<.4?(e*=2.5,n=240-200*e):e<.9?(e=2*(e-.4),n=0,a=200-200*e,o=100*e):(e=10*(e-.9),n=0,a=0,o=100+150*e),r=`rgb(${n} , ${o}, ${a})`}return r}function a(t,e){if(t.highlight)return e;let r=220,n=220,o=220;const u=t.delta||t.data.d||t.data.delta,a=Math.abs(u);let i=t.value||t.data.v||t.data.value;i<=a&&(i=a);const f=a/i;return u===i?(r=255,n=190,o=90):u>0?(o=Math.round(235*(1-f)),n=o):u<0&&(r=Math.round(235*(1-f)),n=r),"rgb("+r+","+n+","+o+")"}r.r(e),r.d(e,"allocationColorMapper",(function(){return n})),r.d(e,"offCpuColorMapper",(function(){return o})),r.d(e,"nodeJsColorMapper",(function(){return u})),r.d(e,"differentialColorMapper",(function(){return a}))}})})); |
@@ -1,1 +0,1 @@ | ||
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.flamegraph=n():t.flamegraph=n()}(window,(function(){return function(t){var n={};function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)e.d(r,i,function(n){return t[n]}.bind(null,i));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=7)}({7:function(t,n,e){"use strict";function r(){}e.r(n);var i=function(t){return null==t?r:function(){return this.querySelector(t)}};function o(){return[]}var a=function(t){return null==t?o:function(){return this.querySelectorAll(t)}},u=function(t){return function(){return this.matches(t)}},l=function(t){return new Array(t.length)};function c(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}c.prototype={constructor:c,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 s(t,n,e,r,i,o){for(var a,u=0,l=n.length,s=o.length;u<s;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new c(t,o[u]);for(;u<l;++u)(a=n[u])&&(i[u]=a)}function h(t,n,e,r,i,o,a){var u,l,s,h={},f=n.length,p=o.length,d=new Array(f);for(u=0;u<f;++u)(l=n[u])&&(d[u]=s="$"+a.call(l,l.__data__,u,n),s in h?i[u]=l:h[s]=l);for(u=0;u<p;++u)(l=h[s="$"+a.call(t,o[u],u,o)])?(r[u]=l,l.__data__=o[u],h[s]=null):e[u]=new c(t,o[u]);for(u=0;u<f;++u)(l=n[u])&&h[d[u]]===l&&(i[u]=l)}function f(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}var p="http://www.w3.org/1999/xhtml",d={svg:"http://www.w3.org/2000/svg",xhtml:p,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},v=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),d.hasOwnProperty(n)?{space:d[n],local:t}:t};function g(t){return function(){this.removeAttribute(t)}}function m(t){return function(){this.removeAttributeNS(t.space,t.local)}}function y(t,n){return function(){this.setAttribute(t,n)}}function w(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function _(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function b(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}var x=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView};function M(t){return function(){this.style.removeProperty(t)}}function A(t,n,e){return function(){this.style.setProperty(t,n,e)}}function N(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function k(t,n){return t.style.getPropertyValue(n)||x(t).getComputedStyle(t,null).getPropertyValue(n)}function E(t){return function(){delete this[t]}}function S(t,n){return function(){this[t]=n}}function j(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function P(t){return t.trim().split(/^|\s+/)}function O(t){return t.classList||new C(t)}function C(t){this._node=t,this._names=P(t.getAttribute("class")||"")}function T(t,n){for(var e=O(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function q(t,n){for(var e=O(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function H(t){return function(){T(this,t)}}function L(t){return function(){q(this,t)}}function D(t,n){return function(){(n.apply(this,arguments)?T:q)(this,t)}}C.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function z(){this.textContent=""}function B(t){return function(){this.textContent=t}}function X(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function R(){this.innerHTML=""}function $(t){return function(){this.innerHTML=t}}function I(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function V(){this.nextSibling&&this.parentNode.appendChild(this)}function Y(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function F(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===p&&n.documentElement.namespaceURI===p?n.createElement(t):n.createElementNS(e,t)}}function U(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}var Z=function(t){var n=v(t);return(n.local?U:F)(n)};function G(){return null}function J(){var t=this.parentNode;t&&t.removeChild(this)}function K(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Q(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}var W={},tt=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(W={mouseenter:"mouseover",mouseleave:"mouseout"}));function nt(t,n,e){return t=et(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function et(t,n,e){return function(r){var i=tt;tt=r;try{t.call(this,this.__data__,n,e)}finally{tt=i}}}function rt(t){return t.trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}function it(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function ot(t,n,e){var r=W.hasOwnProperty(t.type)?nt:et;return function(i,o,a){var u,l=this.__on,c=r(n,o,a);if(l)for(var s=0,h=l.length;s<h;++s)if((u=l[s]).type===t.type&&u.name===t.name)return this.removeEventListener(u.type,u.listener,u.capture),this.addEventListener(u.type,u.listener=c,u.capture=e),void(u.value=n);this.addEventListener(t.type,c,e),u={type:t.type,name:t.name,value:n,listener:c,capture:e},l?l.push(u):this.__on=[u]}}function at(t,n,e){var r=x(t),i=r.CustomEvent;"function"==typeof i?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 ut(t,n){return function(){return at(this,t,n)}}function lt(t,n){return function(){return at(this,t,n.apply(this,arguments))}}var ct=[null];function st(t,n){this._groups=t,this._parents=n}function ht(){return new st([[document.documentElement]],ct)}st.prototype=ht.prototype={constructor:st,select:function(t){"function"!=typeof t&&(t=i(t));for(var n=this._groups,e=n.length,r=new Array(e),o=0;o<e;++o)for(var a,u,l=n[o],c=l.length,s=r[o]=new Array(c),h=0;h<c;++h)(a=l[h])&&(u=t.call(a,a.__data__,h,l))&&("__data__"in a&&(u.__data__=a.__data__),s[h]=u);return new st(r,this._parents)},selectAll:function(t){"function"!=typeof t&&(t=a(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var u,l=n[o],c=l.length,s=0;s<c;++s)(u=l[s])&&(r.push(t.call(u,u.__data__,s,l)),i.push(u));return new st(r,i)},filter:function(t){"function"!=typeof t&&(t=u(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],l=a.length,c=r[i]=[],s=0;s<l;++s)(o=a[s])&&t.call(o,o.__data__,s,a)&&c.push(o);return new st(r,this._parents)},data:function(t,n){if(!t)return g=new Array(this.size()),f=-1,this.each((function(t){g[++f]=t})),g;var e,r=n?h:s,i=this._parents,o=this._groups;"function"!=typeof t&&(e=t,t=function(){return e});for(var a=o.length,u=new Array(a),l=new Array(a),c=new Array(a),f=0;f<a;++f){var p=i[f],d=o[f],v=d.length,g=t.call(p,p&&p.__data__,f,i),m=g.length,y=l[f]=new Array(m),w=u[f]=new Array(m);r(p,d,y,w,c[f]=new Array(v),g,n);for(var _,b,x=0,M=0;x<m;++x)if(_=y[x]){for(x>=M&&(M=x+1);!(b=w[M])&&++M<m;);_._next=b||null}}return(u=new st(u,i))._enter=l,u._exit=c,u},enter:function(){return new st(this._enter||this._groups.map(l),this._parents)},exit:function(){return new st(this._exit||this._groups.map(l),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit();return r="function"==typeof t?t(r):r.append(t+""),null!=n&&(i=n(i)),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var l,c=n[u],s=e[u],h=c.length,f=a[u]=new Array(h),p=0;p<h;++p)(l=c[p]||s[p])&&(f[p]=l);for(;u<r;++u)a[u]=n[u];return new st(a,this._parents)},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=f);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var a,u=e[o],l=u.length,c=i[o]=new Array(l),s=0;s<l;++s)(a=u[s])&&(c[s]=a);c.sort(n)}return new st(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){var t=new Array(this.size()),n=-1;return this.each((function(){t[++n]=this})),t},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){var t=0;return this.each((function(){++t})),t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=v(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?m:g:"function"==typeof n?e.local?b:_:e.local?w:y)(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?M:"function"==typeof n?N:A)(t,n,null==e?"":e)):k(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?E:"function"==typeof n?j:S)(t,n)):this.node()[t]},classed:function(t,n){var e=P(t+"");if(arguments.length<2){for(var r=O(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?D:n?H:L)(e,n))},text:function(t){return arguments.length?this.each(null==t?z:("function"==typeof t?X:B)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?R:("function"==typeof t?I:$)(t)):this.node().innerHTML},raise:function(){return this.each(V)},lower:function(){return this.each(Y)},append:function(t){var n="function"==typeof t?t:Z(t);return this.select((function(){return this.appendChild(n.apply(this,arguments))}))},insert:function(t,n){var e="function"==typeof t?t:Z(t),r=null==n?G:"function"==typeof n?n:i(n);return this.select((function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(J)},clone:function(t){return this.select(t?Q:K)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=rt(t+""),a=o.length;if(!(arguments.length<2)){for(u=n?ot:it,null==e&&(e=!1),r=0;r<a;++r)this.each(u(o[r],n,e));return this}var u=this.node().__on;if(u)for(var l,c=0,s=u.length;c<s;++c)for(r=0,l=u[c];r<a;++r)if((i=o[r]).type===l.type&&i.name===l.name)return l.value},dispatch:function(t,n){return this.each(("function"==typeof n?lt:ut)(t,n))}};var ft=ht,pt=function(t){return"string"==typeof t?new st([[document.querySelector(t)]],[document.documentElement]):new st([[t]],ct)},dt=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)]},vt=function(t){return(t=dt(Math.abs(t)))?t[1]:NaN},gt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function mt(t){if(!(n=gt.exec(t)))throw new Error("invalid format: "+t);var n;return new yt({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]})}function yt(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}mt.prototype=yt.prototype,yt.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var wt,_t,bt,xt,Mt=function(t,n){var e=dt(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")},At={"%":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 Mt(100*t,n)},r:Mt,s:function(t,n){var e=dt(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(wt=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+dt(t,Math.max(0,n+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Nt=function(t){return t},kt=Array.prototype.map,Et=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];_t=function(t){var n,e,r=void 0===t.grouping||void 0===t.thousands?Nt:(n=kt.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var i=t.length,o=[],a=0,u=n[0],l=0;i>0&&u>0&&(l+u+1>r&&(u=Math.max(1,r-l)),o.push(t.substring(i-=u,i+u)),!((l+=u+1)>r));)u=n[a=(a+1)%n.length];return o.reverse().join(e)}),i=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?Nt:function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(kt.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"-":t.minus+"",s=void 0===t.nan?"NaN":t.nan+"";function h(t){var n=(t=mt(t)).fill,e=t.align,h=t.sign,f=t.symbol,p=t.zero,d=t.width,v=t.comma,g=t.precision,m=t.trim,y=t.type;"n"===y?(v=!0,y="g"):At[y]||(void 0===g&&(g=12),m=!0,y="g"),(p||"0"===n&&"="===e)&&(p=!0,n="0",e="=");var w="$"===f?i:"#"===f&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",_="$"===f?o:/[%p]/.test(y)?l:"",b=At[y],x=/[defgprs%]/.test(y);function M(t){var i,o,l,f=w,M=_;if("c"===y)M=b(t)+M,t="";else{var A=(t=+t)<0;if(t=isNaN(t)?s:b(Math.abs(t),g),m&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(!+t[r])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),A&&0==+t&&(A=!1),f=(A?"("===h?h:c:"-"===h||"("===h?"":h)+f,M=("s"===y?Et[8+wt/3]:"")+M+(A&&"("===h?")":""),x)for(i=-1,o=t.length;++i<o;)if(48>(l=t.charCodeAt(i))||l>57){M=(46===l?a+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}v&&!p&&(t=r(t,1/0));var N=f.length+t.length+M.length,k=N<d?new Array(d-N+1).join(n):"";switch(v&&p&&(t=r(k+t,k.length?d-M.length:1/0),k=""),e){case"<":t=f+t+M+k;break;case"=":t=f+k+t+M;break;case"^":t=k.slice(0,N=k.length>>1)+f+t+M+k.slice(N);break;default:t=k+f+t+M}return u(t)}return g=void 0===g?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),M.toString=function(){return t+""},M}return{format:h,formatPrefix:function(t,n){var e=h(((t=mt(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(vt(n)/3))),i=Math.pow(10,-r),o=Et[8+r/3];return function(t){return e(i*t)+o}}}}({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),bt=_t.format,xt=_t.formatPrefix;var St=function(t,n){return t<n?-1:t>n?1:t>=n?0:NaN},jt=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)},Pt=function(){var t=1,n=1,e=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/o,i.eachBefore(function(t,n){return function(r){r.children&&function(t,n,e,r,i){for(var o,a=t.children,u=-1,l=a.length,c=t.value&&(r-n)/t.value;++u<l;)(o=a[u]).y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*c}(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,o=r.y0,a=r.x1-e,u=r.y1-e;a<i&&(i=a=(i+a)/2),u<o&&(o=u=(o+u)/2),r.x0=i,r.y0=o,r.x1=a,r.y1=u}}(n,o)),r&&i.eachBefore(jt),i}return i.round=function(t){return arguments.length?(r=!!t,i):r},i.size=function(e){return arguments.length?(t=+e[0],n=+e[1],i):[t,n]},i.padding=function(t){return arguments.length?(e=+t,i):e},i};function Ot(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Ct(t,n){var e,r,i,o,a,u=new Lt(t),l=+t.value&&(u.value=t.value),c=[u];for(null==n&&(n=Tt);e=c.pop();)if(l&&(e.value=+e.data.value),(i=n(e.data))&&(a=i.length))for(e.children=new Array(a),o=a-1;o>=0;--o)c.push(r=e.children[o]=new Lt(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Ht)}function Tt(t){return t.children}function qt(t){t.data=t.data.data}function Ht(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Lt(t){this.data=t,this.depth=this.height=0,this.parent=null}Lt.prototype=Ct.prototype={constructor:Lt,count:function(){return this.eachAfter(Ot)},each:function(t){var n,e,r,i,o=this,a=[o];do{for(n=a.reverse(),a=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)a.push(e[r])}while(a.length);return this},eachAfter:function(t){for(var n,e,r,i=this,o=[i],a=[];i=o.pop();)if(a.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=a.pop();)t(i);return this},eachBefore:function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter((function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e}))},sort:function(t){return this.eachBefore((function(n){n.children&&n.children.sort(t)}))},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;t=e.pop(),n=r.pop();for(;t===n;)i=t,t=e.pop(),n=r.pop();return i}(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},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each((function(n){t.push(n)})),t},leaves:function(){var t=[];return this.eachBefore((function(n){n.children||t.push(n)})),t},links:function(){var t=this,n=[];return t.each((function(e){e!==t&&n.push({source:e.parent,target:e})})),n},copy:function(){return Ct(this).eachBefore(qt)}};var Dt=Math.sqrt(50),zt=Math.sqrt(10),Bt=Math.sqrt(2);function Xt(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=Dt?10:o>=zt?5:o>=Bt?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=Dt?10:o>=zt?5:o>=Bt?2:1)}var Rt,$t,It=(1===(Rt=St).length&&($t=Rt,Rt=function(t,n){return St($t(t),n)}),{left:function(t,n,e,r){for(null==e&&(e=0),null==r&&(r=t.length);e<r;){var i=e+r>>>1;Rt(t[i],n)<0?e=i+1:r=i}return e},right:function(t,n,e,r){for(null==e&&(e=0),null==r&&(r=t.length);e<r;){var i=e+r>>>1;Rt(t[i],n)>0?r=i:e=i+1}return e}}),Vt=It.right,Yt=function(t,n,e){t.prototype=n.prototype=e,e.constructor=t};function Ft(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Ut(){}var Zt="\\s*([+-]?\\d+)\\s*",Gt="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Jt="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Kt=/^#([0-9a-f]{3,8})$/,Qt=new RegExp("^rgb\\("+[Zt,Zt,Zt]+"\\)$"),Wt=new RegExp("^rgb\\("+[Jt,Jt,Jt]+"\\)$"),tn=new RegExp("^rgba\\("+[Zt,Zt,Zt,Gt]+"\\)$"),nn=new RegExp("^rgba\\("+[Jt,Jt,Jt,Gt]+"\\)$"),en=new RegExp("^hsl\\("+[Gt,Jt,Jt]+"\\)$"),rn=new RegExp("^hsla\\("+[Gt,Jt,Jt,Gt]+"\\)$"),on={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};function an(){return this.rgb().formatHex()}function un(){return this.rgb().formatRgb()}function ln(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Kt.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?cn(n):3===e?new pn(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?new pn(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?new pn(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=Qt.exec(t))?new pn(n[1],n[2],n[3],1):(n=Wt.exec(t))?new pn(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=tn.exec(t))?sn(n[1],n[2],n[3],n[4]):(n=nn.exec(t))?sn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=en.exec(t))?mn(n[1],n[2]/100,n[3]/100,1):(n=rn.exec(t))?mn(n[1],n[2]/100,n[3]/100,n[4]):on.hasOwnProperty(t)?cn(on[t]):"transparent"===t?new pn(NaN,NaN,NaN,0):null}function cn(t){return new pn(t>>16&255,t>>8&255,255&t,1)}function sn(t,n,e,r){return r<=0&&(t=n=e=NaN),new pn(t,n,e,r)}function hn(t){return t instanceof Ut||(t=ln(t)),t?new pn((t=t.rgb()).r,t.g,t.b,t.opacity):new pn}function fn(t,n,e,r){return 1===arguments.length?hn(t):new pn(t,n,e,null==r?1:r)}function pn(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function dn(){return"#"+gn(this.r)+gn(this.g)+gn(this.b)}function vn(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function gn(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function mn(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new wn(t,n,e,r)}function yn(t){if(t instanceof wn)return new wn(t.h,t.s,t.l,t.opacity);if(t instanceof Ut||(t=ln(t)),!t)return new wn;if(t instanceof wn)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,l=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e<r):e===o?(r-n)/u+2:(n-e)/u+4,u/=l<.5?o+i:2-o-i,a*=60):u=l>0&&l<1?0:a,new wn(a,u,l,t.opacity)}function wn(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function _n(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function bn(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}Yt(Ut,ln,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:an,formatHex:an,formatHsl:function(){return yn(this).formatHsl()},formatRgb:un,toString:un}),Yt(pn,fn,Ft(Ut,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new pn(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new pn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){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:dn,formatHex:dn,formatRgb:vn,toString:vn})),Yt(wn,(function(t,n,e,r){return 1===arguments.length?yn(t):new wn(t,n,e,null==r?1:r)}),Ft(Ut,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new wn(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new wn(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new pn(_n(t>=240?t-240:t+120,i,r),_n(t,i,r),_n(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},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var xn=function(t){return function(){return t}};function Mn(t,n){return function(e){return t+e*n}}function An(t){return 1==(t=+t)?Nn:function(n,e){return e-n?function(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)}}(n,e,t):xn(isNaN(n)?e:n)}}function Nn(t,n){var e=n-t;return e?Mn(t,e):xn(isNaN(t)?n:t)}var kn=function t(n){var e=An(n);function r(t,n){var r=e((t=fn(t)).r,(n=fn(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=Nn(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function En(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;e<i;++e)r=fn(n[e]),o[e]=r.r||0,a[e]=r.g||0,u[e]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}En((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],a=r>0?t[r-1]:2*i-o,u=r<n-1?t[r+2]:2*o-i;return bn((e-r/n)*n,a,i,o,u)}})),En((function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],u=t[(r+2)%n];return bn((e-r/n)*n,i,o,a,u)}}));var Sn=function(t,n){n||(n=[]);var e,r=t?Math.min(n.length,t.length):0,i=n.slice();return function(o){for(e=0;e<r;++e)i[e]=t[e]*(1-o)+n[e]*o;return i}};function jn(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Pn(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(i),a=new Array(r);for(e=0;e<i;++e)o[e]=Dn(t[e],n[e]);for(;e<r;++e)a[e]=n[e];return function(t){for(e=0;e<i;++e)a[e]=o[e](t);return a}}var On=function(t,n){var e=new Date;return t=+t,n=+n,function(r){return e.setTime(t*(1-r)+n*r),e}},Cn=function(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}},Tn=function(t,n){var e,r={},i={};for(e in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)e in t?r[e]=Dn(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}},qn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Hn=new RegExp(qn.source,"g");var Ln=function(t,n){var e,r,i,o=qn.lastIndex=Hn.lastIndex=0,a=-1,u=[],l=[];for(t+="",n+="";(e=qn.exec(t))&&(r=Hn.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,l.push({i:a,x:Cn(e,r)})),o=Hn.lastIndex;return o<n.length&&(i=n.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?l[0]?function(t){return function(n){return t(n)+""}}(l[0].x):function(t){return function(){return t}}(n):(n=l.length,function(t){for(var e,r=0;r<n;++r)u[(e=l[r]).i]=e.x(t);return u.join("")})},Dn=function(t,n){var e,r=typeof n;return null==n||"boolean"===r?xn(n):("number"===r?Cn:"string"===r?(e=ln(n))?(n=e,kn):Ln:n instanceof ln?kn:n instanceof Date?On:jn(n)?Sn:Array.isArray(n)?Pn:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?Tn:Cn)(t,n)},zn=function(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}},Bn=function(t){return+t},Xn=[0,1];function Rn(t){return t}function $n(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:(e=isNaN(n)?NaN:.5,function(){return e});var e}function In(t,n,e){var r=t[0],i=t[1],o=n[0],a=n[1];return i<r?(r=$n(i,r),o=e(a,o)):(r=$n(r,i),o=e(o,a)),function(t){return o(r(t))}}function Vn(t,n,e){var r=Math.min(t.length,n.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<r;)i[a]=$n(t[a],t[a+1]),o[a]=e(n[a],n[a+1]);return function(n){var e=Vt(t,n,1,r)-1;return o[e](i[e](n))}}function Yn(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Fn(){var t,n,e,r,i,o,a=Xn,u=Xn,l=Dn,c=Rn;function s(){var t,n,e,l=Math.min(a.length,u.length);return c!==Rn&&(t=a[0],n=a[l-1],t>n&&(e=t,t=n,n=e),c=function(e){return Math.max(t,Math.min(n,e))}),r=l>2?Vn:In,i=o=null,h}function h(n){return isNaN(n=+n)?e:(i||(i=r(a.map(t),u,l)))(t(c(n)))}return h.invert=function(e){return c(n((o||(o=r(u,a.map(t),Cn)))(e)))},h.domain=function(t){return arguments.length?(a=Array.from(t,Bn),s()):a.slice()},h.range=function(t){return arguments.length?(u=Array.from(t),s()):u.slice()},h.rangeRound=function(t){return u=Array.from(t),l=zn,s()},h.clamp=function(t){return arguments.length?(c=!!t||Rn,s()):c!==Rn},h.interpolate=function(t){return arguments.length?(l=t,s()):l},h.unknown=function(t){return arguments.length?(e=t,h):e},function(e,r){return t=e,n=r,s()}}function Un(){return Fn()(Rn,Rn)}function Zn(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}var Gn=function(t,n,e,r){var i,o=function(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Dt?i*=10:o>=zt?i*=5:o>=Bt&&(i*=2),n<t?-i:i}(t,n,e);switch((r=mt(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(n));return null!=r.precision||isNaN(i=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(vt(n)/3)))-vt(Math.abs(t)))}(o,a))||(r.precision=i),xt(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,vt(n)-vt(t))+1}(o,Math.max(Math.abs(t),Math.abs(n))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=function(t){return Math.max(0,-vt(Math.abs(t)))}(o))||(r.precision=i-2*("%"===r.type))}return bt(r)};function Jn(t){var n=t.domain;return t.ticks=function(t){var e=n();return function(t,n,e){var r,i,o,a,u=-1;if(e=+e,(t=+t)===(n=+n)&&e>0)return[t];if((r=n<t)&&(i=t,t=n,n=i),0===(a=Xt(t,n,e))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),n=Math.floor(n/a),o=new Array(i=Math.ceil(n-t+1));++u<i;)o[u]=(t+u)*a;else for(t=Math.floor(t*a),n=Math.ceil(n*a),o=new Array(i=Math.ceil(t-n+1));++u<i;)o[u]=(t-u)/a;return r&&o.reverse(),o}(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return Gn(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i=n(),o=0,a=i.length-1,u=i[o],l=i[a];return l<u&&(r=u,u=l,l=r,r=o,o=a,a=r),(r=Xt(u,l,e))>0?r=Xt(u=Math.floor(u/r)*r,l=Math.ceil(l/r)*r,e):r<0&&(r=Xt(u=Math.ceil(u*r)/r,l=Math.floor(l*r)/r,e)),r>0?(i[o]=Math.floor(u/r)*r,i[a]=Math.ceil(l/r)*r,n(i)):r<0&&(i[o]=Math.ceil(u*r)/r,i[a]=Math.floor(l*r)/r,n(i)),t},t}function Kn(){var t=Un();return t.copy=function(){return Yn(t,Kn())},Zn.apply(t,arguments),Jn(t)}function Qn(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Wn={value:function(){}};function te(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new ne(r)}function ne(t){this._=t}function ee(t,n){return t.trim().split(/^|\s+/).map((function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))}function re(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function ie(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=Wn,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}ne.prototype=te.prototype={constructor:ne,on:function(t,n){var e,r=this._,i=ee(t+"",r),o=-1,a=i.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o<a;)if(e=(t=i[o]).type)r[e]=ie(r[e],t.name,n);else if(null==n)for(e in r)r[e]=ie(r[e],t.name,null);return this}for(;++o<a;)if((e=(t=i[o]).type)&&(e=re(r[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new ne(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var oe,ae,ue=te,le=0,ce=0,se=0,he=0,fe=0,pe=0,de="object"==typeof performance&&performance.now?performance:Date,ve="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ge(){return fe||(ve(me),fe=de.now()+pe)}function me(){fe=0}function ye(){this._call=this._time=this._next=null}function we(t,n,e){var r=new ye;return r.restart(t,n,e),r}function _e(){fe=(he=de.now())+pe,le=ce=0;try{!function(){ge(),++le;for(var t,n=oe;n;)(t=fe-n._time)>=0&&n._call.call(null,t),n=n._next;--le}()}finally{le=0,function(){var t,n,e=oe,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:oe=n);ae=t,xe(r)}(),fe=0}}function be(){var t=de.now(),n=t-he;n>1e3&&(pe-=n,he=t)}function xe(t){le||(ce&&(ce=clearTimeout(ce)),t-fe>24?(t<1/0&&(ce=setTimeout(_e,t-de.now()-pe)),se&&(se=clearInterval(se))):(se||(he=de.now(),se=setInterval(be,1e3)),le=1,ve(_e)))}ye.prototype=we.prototype={constructor:ye,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?ge():+e)+(null==n?0:+n),this._next||ae===this||(ae?ae._next=this:oe=this,ae=this),this._call=t,this._time=e,xe()},stop:function(){this._call&&(this._call=null,this._time=1/0,xe())}};var Me=function(t,n,e){var r=new ye;return n=null==n?0:+n,r.restart((function(e){r.stop(),t(e+n)}),n,e),r},Ae=ue("start","end","cancel","interrupt"),Ne=[],ke=function(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(l){var c,s,h,f;if(1!==e.state)return u();for(c in i)if((f=i[c]).name===e.name){if(3===f.state)return Me(o);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[c]):+c<n&&(f.state=6,f.timer.stop(),f.on.call("cancel",t,t.__data__,f.index,f.group),delete i[c])}if(Me((function(){3===e.state&&(e.state=4,e.timer.restart(a,e.delay,e.time),a(l))})),e.state=2,e.on.call("start",t,t.__data__,e.index,e.group),2===e.state){for(e.state=3,r=new Array(h=e.tween.length),c=0,s=-1;c<h;++c)(f=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(r[++s]=f);r.length=s+1}}function a(n){for(var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(u),e.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===e.state&&(e.on.call("end",t,t.__data__,e.index,e.group),u())}function u(){for(var r in e.state=6,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=we((function(t){e.state=1,e.timer.restart(o,e.delay,e.time),e.delay<=t&&o(t-e.delay)}),0,e.time)}(t,e,{name:n,index:r,group:i,on:Ae,tween:Ne,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})};function Ee(t,n){var e=je(t,n);if(e.state>0)throw new Error("too late; already scheduled");return e}function Se(t,n){var e=je(t,n);if(e.state>3)throw new Error("too late; already running");return e}function je(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}var Pe,Oe,Ce,Te,qe=180/Math.PI,He={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},Le=function(t,n,e,r,i,o){var a,u,l;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(l=t*e+n*r)&&(e-=t*l,r-=n*l),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,l/=u),t*r<n*e&&(t=-t,n=-n,l=-l,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*qe,skewX:Math.atan(l)*qe,scaleX:a,scaleY:u}};function De(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u=[],l=[];return o=t(o),a=t(a),function(t,r,i,o,a,u){if(t!==i||r!==o){var l=a.push("translate(",null,n,null,e);u.push({i:l-4,x:Cn(t,i)},{i:l-2,x:Cn(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,u,l),function(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:Cn(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,l),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:Cn(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,l),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:Cn(t,e)},{i:u-2,x:Cn(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,l),o=a=null,function(t){for(var n,e=-1,r=l.length;++e<r;)u[(n=l[e]).i]=n.x(t);return u.join("")}}}var ze=De((function(t){return"none"===t?He:(Pe||(Pe=document.createElement("DIV"),Oe=document.documentElement,Ce=document.defaultView),Pe.style.transform=t,t=Ce.getComputedStyle(Oe.appendChild(Pe),null).getPropertyValue("transform"),Oe.removeChild(Pe),t=t.slice(7,-1).split(","),Le(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}),"px, ","px)","deg)"),Be=De((function(t){return null==t?He:(Te||(Te=document.createElementNS("http://www.w3.org/2000/svg","g")),Te.setAttribute("transform",t),(t=Te.transform.baseVal.consolidate())?(t=t.matrix,Le(t.a,t.b,t.c,t.d,t.e,t.f)):He)}),", ",")",")");function Xe(t,n){var e,r;return function(){var i=Se(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}i.tween=r}}function Re(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Se(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},l=0,c=i.length;l<c;++l)if(i[l].name===n){i[l]=u;break}l===c&&i.push(u)}o.tween=i}}function $e(t,n,e){var r=t._id;return t.each((function(){var t=Se(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)})),function(t){return je(t,r).value[n]}}var Ie=function(t,n){var e;return("number"==typeof n?Cn:n instanceof ln?kn:(e=ln(n))?(n=e,kn):Ln)(t,n)};function Ve(t){return function(){this.removeAttribute(t)}}function Ye(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Fe(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=n(r=a,e)}}function Ue(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=n(r=a,e)}}function Ze(t,n,e){var r,i,o;return function(){var a,u,l=e(this);if(null!=l)return(a=this.getAttribute(t))===(u=l+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,l));this.removeAttribute(t)}}function Ge(t,n,e){var r,i,o;return function(){var a,u,l=e(this);if(null!=l)return(a=this.getAttributeNS(t.space,t.local))===(u=l+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,l));this.removeAttributeNS(t.space,t.local)}}function Je(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function Ke(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function Qe(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&Ke(t,i)),e}return i._value=n,i}function We(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&Je(t,i)),e}return i._value=n,i}function tr(t,n){return function(){Ee(this,t).delay=+n.apply(this,arguments)}}function nr(t,n){return n=+n,function(){Ee(this,t).delay=n}}function er(t,n){return function(){Se(this,t).duration=+n.apply(this,arguments)}}function rr(t,n){return n=+n,function(){Se(this,t).duration=n}}function ir(t,n){if("function"!=typeof n)throw new Error;return function(){Se(this,t).ease=n}}function or(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?Ee:Se;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}var ar=ft.prototype.constructor;function ur(t){return function(){this.style.removeProperty(t)}}function lr(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function cr(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&lr(t,o,e)),r}return o._value=n,o}function sr(t){return function(n){this.textContent=t.call(this,n)}}function hr(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&sr(r)),n}return r._value=t,r}var fr=0;function pr(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function dr(){return++fr}var vr=ft.prototype;pr.prototype=function(t){return ft().transition(t)}.prototype={constructor:pr,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=i(t));for(var r=this._groups,o=r.length,a=new Array(o),u=0;u<o;++u)for(var l,c,s=r[u],h=s.length,f=a[u]=new Array(h),p=0;p<h;++p)(l=s[p])&&(c=t.call(l,l.__data__,p,s))&&("__data__"in l&&(c.__data__=l.__data__),f[p]=c,ke(f[p],n,e,p,f,je(l,e)));return new pr(a,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=a(t));for(var r=this._groups,i=r.length,o=[],u=[],l=0;l<i;++l)for(var c,s=r[l],h=s.length,f=0;f<h;++f)if(c=s[f]){for(var p,d=t.call(c,c.__data__,f,s),v=je(c,e),g=0,m=d.length;g<m;++g)(p=d[g])&&ke(p,n,e,g,d,v);o.push(d),u.push(c)}return new pr(o,u,n,e)},filter:function(t){"function"!=typeof t&&(t=u(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],l=a.length,c=r[i]=[],s=0;s<l;++s)(o=a[s])&&t.call(o,o.__data__,s,a)&&c.push(o);return new pr(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var l,c=n[u],s=e[u],h=c.length,f=a[u]=new Array(h),p=0;p<h;++p)(l=c[p]||s[p])&&(f[p]=l);for(;u<r;++u)a[u]=n[u];return new pr(a,this._parents,this._name,this._id)},selection:function(){return new ar(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=dr(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],l=u.length,c=0;c<l;++c)if(a=u[c]){var s=je(a,n);ke(a,t,e,c,u,{time:s.time+s.delay+s.duration,delay:0,duration:s.duration,ease:s.ease})}return new pr(r,this._parents,t,e)},call:vr.call,nodes:vr.nodes,node:vr.node,size:vr.size,empty:vr.empty,each:vr.each,on:function(t,n){var e=this._id;return arguments.length<2?je(this.node(),e).on.on(t):this.each(or(e,t,n))},attr:function(t,n){var e=v(t),r="transform"===e?Be:Ie;return this.attrTween(t,"function"==typeof n?(e.local?Ge:Ze)(e,r,$e(this,"attr."+t,n)):null==n?(e.local?Ye:Ve)(e):(e.local?Ue:Fe)(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=v(t);return this.tween(e,(r.local?Qe:We)(r,n))},style:function(t,n,e){var r="transform"==(t+="")?ze:Ie;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=k(this,t),a=(this.style.removeProperty(t),k(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,ur(t)):"function"==typeof n?this.styleTween(t,function(t,n,e){var r,i,o;return function(){var a=k(this,t),u=e(this),l=u+"";return null==u&&(this.style.removeProperty(t),l=u=k(this,t)),a===l?null:a===r&&l===i?o:(i=l,o=n(r=a,u))}}(t,r,$e(this,"style."+t,n))).each(function(t,n){var e,r,i,o,a="style."+n,u="end."+a;return function(){var l=Se(this,t),c=l.on,s=null==l.value[a]?o||(o=ur(n)):void 0;c===e&&i===s||(r=(e=c).copy()).on(u,i=s),l.on=r}}(this._id,t)):this.styleTween(t,function(t,n,e){var r,i,o=e+"";return function(){var a=k(this,t);return a===o?null:a===r?i:i=n(r=a,e)}}(t,r,n),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,cr(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}($e(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;return this.tween(n,hr(t))},remove:function(){return this.on("end.remove",(t=this._id,function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}));var t},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=je(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?Xe:Re)(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?tr:nr)(n,t)):je(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?er:rr)(n,t)):je(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(ir(n,t)):je(this.node(),n).ease},end:function(){var t,n,e=this,r=e._id,i=e.size();return new Promise((function(o,a){var u={value:a},l={value:function(){0==--i&&o()}};e.each((function(){var e=Se(this,r),i=e.on;i!==t&&((n=(t=i).copy())._.cancel.push(u),n._.interrupt.push(u),n._.end.push(l)),e.on=n}))}))}};var gr={time:null,delay:0,duration:250,ease:Qn};function mr(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return gr.time=ge(),gr;return e}ft.prototype.interrupt=function(t){return this.each((function(){!function(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}(this,t)}))},ft.prototype.transition=function(t){var n,e;t instanceof pr?(n=t._id,t=t._name):(n=dr(),(e=gr).time=ge(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],l=u.length,c=0;c<l;++c)(a=u[c])&&ke(a,t,n,c,u,e||mr(a,n));return new pr(r,this._parents,t,n)};n.default=function(){var t=960,n=null,e=18,r=null,i=null,o="",a=750,u=Qn,l=!1,c=!1,s=null,h=0,f=null,p=!1,d=!1,v=!1,g=0,m=0,y=0,w=!1,_=!1,b=null,x=function(t){return t.data.n||t.data.name},M=function(t){return"v"in t?t.v:t.value},A=function(t){return t.c||t.children},N=function(t){return t.data.l||t.data.libtype},k=function(t){return"d"in t.data?t.data.d:t.data.delta},E=function(){f&&H()},S=E;let j=(t,n)=>{if(!n)return!1;const e=new RegExp(n),r=x(t);return void 0!==r&&r&&r.match(e)};const P=j;var O,C=function(t){f&&(t?f.innerHTML=t:g?H():f.innerHTML="")},T=C,q=function(t){return x(t)+" ("+bt(".3f")(100*(t.x1-t.x0),3)+"%, "+M(t)+" samples)"};function H(){f.innerHTML=g+" of "+m+" samples ( "+bt(".3f")(g/m*100,3)+"%)"}var L=function(t){return t.highlight?"#E600E6":function(t,n,e){var r,i,o;if(d)r=220,i=220,o=220,e||(e=0),e>0?(o=Math.round(210*(y-e)/y),i=o):e<0&&(r=Math.round(210*(y+e)/y),i=r);else{var a=v?"cold":"warm";v||void 0===n||""===n||(a="red",void 0!==t&&t&&t.match(/::/)&&(a="yellow"),"kernel"===n?a="orange":"jit"===n?a="green":"inlined"===n&&(a="aqua"));var u=0;if(t){var l=t.split("`");l.length>1&&(t=l[l.length-1]),t=t.split("(")[0],u=function(t){var n=0,e=0,r=1;if(t){for(var i=0;i<t.length&&!(i>6);i++)n+=r*(t.charCodeAt(i)%10),e+=9*r,r*=.7;e>0&&(n/=e)}return n}(t)}"red"===a?(r=200+Math.round(55*u),i=50+Math.round(80*u),o=i):"orange"===a?(r=190+Math.round(65*u),i=90+Math.round(65*u),o=0):"yellow"===a?(r=175+Math.round(55*u),i=r,o=50+Math.round(20*u)):"green"===a?(r=50+Math.round(60*u),i=200+Math.round(55*u),o=r):"aqua"===a?(r=50+Math.round(60*u),i=165+Math.round(55*u),o=i):"cold"===a?(r=0+Math.round(55*(1-u)),i=0+Math.round(230*(1-u)),o=200+Math.round(55*u)):(r=200+Math.round(55*u),i=0+Math.round(230*(1-u)),o=0+Math.round(55*(1-u)))}return"rgb("+r+","+i+","+o+")"}(x(t),N(t),k(t))},D=L;function z(t){t.data.fade=!1,t.data.hide=!1,t.children&&t.children.forEach(z)}function B(t){if(i&&i.hide(),function(t){let n,e,r,i=t,o=i.parent;for(;o;){for(n=o.children,e=n.length;e--;)r=n[e],r!==i&&(r.data.hide=!0);i=o,o=i.parent}}(t),z(t),function t(n){n.parent&&(n.parent.data.fade=!0,t(n.parent))}(t),$(),_){const n=O._groups[0][0].parentNode.offsetTop,r=(window.innerHeight-n)/e,i=(t.height-r+10)*e;window.scrollTo({top:n+i,left:0,behavior:"smooth"})}"function"==typeof s&&s(t)}function X(t,n){return"function"==typeof l?l(t,n):l?St(x(t),x(n)):void 0}var R=Pt();function $(){r.each((function(r){var o=Kn().range([0,t]),s=Kn().range([0,e]);!function(t){let n,e,r,i,o,a,u,l;const c=[],s=[],h=[],f=!p;let d=t.data;d.hide?(t.value=0,e=t.children,e&&h.push(e)):(t.value=d.fade?0:M(d),c.push(t));for(;n=c.pop();)if(e=n.children,e&&(o=e.length)){for(i=0;o--;)u=e[o],d=u.data,d.hide?(u.value=0,r=u.children,r&&h.push(r)):(d.fade?u.value=0:(l=M(d),u.value=l,i+=l),c.push(u));f&&n.value&&(n.value-=i),s.push(e)}o=s.length;for(;o--;){for(e=s[o],i=0,a=e.length;a--;)i+=e[a].value;e[0].parent.value+=i}for(;h.length;)for(e=h.pop(),a=e.length;a--;)u=e[a],u.value=0,r=u.children,r&&h.push(r)}(r),m=r.value,l&&r.sort(X),R(r);var f=t/(r.x1-r.x0);function d(t){return(t.x1-t.x0)*f}var v=function(n){var e=n.descendants();if(h>0){var r=t/(n.x1-n.x0);e=e.filter((function(t){return(t.x1-t.x0)*r>h}))}return e}(r),g=pt(this).select("svg").selectAll("g").data(v,(function(t){return t.id}));if(!n||w){var y=Math.max.apply(null,v.map((function(t){return t.depth})));(n=(y+3)*e)<b&&(n=b),pt(this).select("svg").attr("height",n)}g.transition().duration(a).ease(u).attr("transform",(function(t){return"translate("+o(t.x0)+","+(c?s(t.depth):n-s(t.depth)-e)+")"})),g.select("rect").transition().duration(a).ease(u).attr("width",d);var _=g.enter().append("svg:g").attr("transform",(function(t){return"translate("+o(t.x0)+","+(c?s(t.depth):n-s(t.depth)-e)+")"}));_.append("svg:rect").transition().delay(a/2).attr("width",d),i||_.append("svg:title"),_.append("foreignObject").append("xhtml:div"),(g=pt(this).select("svg").selectAll("g").data(v,(function(t){return t.id}))).attr("width",d).attr("height",(function(t){return e})).attr("name",(function(t){return x(t)})).attr("class",(function(t){return t.data.fade?"frame fade":"frame"})),g.select("rect").attr("height",(function(t){return e})).attr("fill",(function(t){return L(t)})),i||g.select("title").text(q),g.select("foreignObject").attr("width",d).attr("height",(function(t){return e})).select("div").attr("class","d3-flame-graph-label").style("display",(function(t){return d(t)<35?"none":"block"})).transition().delay(a).text(x),g.on("click",B),g.exit().remove(),g.on("mouseover",(function(t){i&&i.show(t,this),C(q(t))})).on("mouseout",(function(){i&&i.hide(),C(null)}))}))}function I(t){y=0;let n=0,e=0;const r=d;!function(t,n){n(t);let e=t.children;if(e){const t=[e];let r,i,o;for(;t.length;)for(e=t.pop(),r=e.length;r--;)i=e[r],n(i),o=i.children,o&&t.push(o)}}(t,(function(t){t.id=n++,r&&(e=Math.abs(k(t)),y<e&&(y=e))}))}function V(e){const a=Ct(e.datum(),A);if(I(a),r=e.datum(a),!arguments.length)return V;r.each((function(e){O||(O=pt(this).append("svg:svg").attr("width",t).attr("class","partition d3-flame-graph"),n&&(n<b&&(n=b),O.attr("height",n)),O.append("svg:text").attr("class","title").attr("text-anchor","middle").attr("y","25").attr("x",t/2).attr("fill","#808080").text(o),i&&O.call(i))})),$()}return V.height=function(t){return arguments.length?(n=t,V):n},V.minHeight=function(t){return arguments.length?(b=t,V):b},V.width=function(n){return arguments.length?(t=n,V):t},V.cellHeight=function(t){return arguments.length?(e=t,V):e},V.tooltip=function(t){return arguments.length?("function"==typeof t&&(i=t),V):i},V.title=function(t){return arguments.length?(o=t,V):o},V.transitionDuration=function(t){return arguments.length?(a=t,V):a},V.transitionEase=function(t){return arguments.length?(u=t,V):u},V.sort=function(t){return arguments.length?(l=t,V):l},V.inverted=function(t){return arguments.length?(c=t,V):c},V.differential=function(t){return arguments.length?(d=t,V):d},V.elided=function(t){return arguments.length?(v=t,V):v},V.setLabelHandler=function(t){return arguments.length?(q=t,V):q},V.label=V.setLabelHandler,V.search=function(t){r.each((function(n){!function(t,n){var e=[],r=0;!function t(i,o){var a=!1;j(i,n)?(i.highlight=!0,a=!0,o||(r+=M(i)),e.push(i)):i.highlight=!1,A(i)&&A(i).forEach((function(n){t(n,o||a)}))}(t,!1),g=r,E(e,r,m)}(n,t),$()}))},V.findById=function(t){if(null==t)return null;let n=null;return r.each((function(e){null===n&&(n=function t(n,e){if(n.id===e)return n;var r=A(n);if(r)for(var i=0;i<r.length;i++){var o=t(r[i],e);if(o)return o}}(e,t))})),n},V.clear=function(){g=0,C(null),r.each((function(t){!function t(n){n.highlight=!1,A(n)&&A(n).forEach((function(n){t(n)}))}(t),$()}))},V.zoomTo=function(t){B(t)},V.resetZoom=function(){r.each((function(t){B(t)}))},V.onClick=function(t){return arguments.length?(s=t,V):s},V.merge=function(t){return r?(r.each((function(e){!function t(n,e){e.forEach((function(e){var r=n.find((function(t){return t.name===e.name}));r?(r.original?r.original+=e.value:r.value+=e.value,e.children&&(r.children||(r.children=[]),t(r.children,e.children))):n.push(e)}))}([e.data],[t]),I(n=Ct(e.data,A))})),r=r.datum(n),$(),V):V;var n},V.update=function(t){return r?(r.each((function(e){e.data=t,I(n=Ct(e.data,A))})),r=r.datum(n),$(),V):V;var n},V.destroy=function(){return r?(i&&i.hide(),r.selectAll("svg").remove(),V):V},V.setColorMapper=function(t){return arguments.length?(L=n=>{const e=D(n);return t(n,e)},V):(L=D,V)},V.color=V.setColorMapper,V.minFrameSize=function(t){return arguments.length?(h=t,V):h},V.setDetailsElement=function(t){return arguments.length?(f=t,V):f},V.details=V.setDetailsElement,V.selfValue=function(t){return arguments.length?(p=t,V):p},V.resetHeightOnZoom=function(t){return arguments.length?(w=t,V):w},V.scrollOnZoom=function(t){return arguments.length?(_=t,V):_},V.getName=function(t){return arguments.length?(x=t,V):x},V.getValue=function(t){return arguments.length?(M=t,V):M},V.getChildren=function(t){return arguments.length?(A=t,V):A},V.getLibtype=function(t){return arguments.length?(N=t,V):N},V.getDelta=function(t){return arguments.length?(k=t,V):k},V.setSearchHandler=function(t){return arguments.length?(E=t,V):(E=S,V)},V.setDetailsHandler=function(t){return arguments.length?(C=t,V):(C=T,V)},V.setSearchMatch=function(t){return arguments.length?(j=t,V):(j=P,V)},V}}}).default})); | ||
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.flamegraph=n():t.flamegraph=n()}(window,(function(){return function(t){var n={};function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)e.d(r,i,function(n){return t[n]}.bind(null,i));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=7)}({7:function(t,n,e){"use strict";function r(){}e.r(n);var i=function(t){return null==t?r:function(){return this.querySelector(t)}};function o(){return[]}var a=function(t){return null==t?o:function(){return this.querySelectorAll(t)}},u=function(t){return function(){return this.matches(t)}},l=function(t){return new Array(t.length)};function c(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}c.prototype={constructor:c,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 s(t,n,e,r,i,o){for(var a,u=0,l=n.length,s=o.length;u<s;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new c(t,o[u]);for(;u<l;++u)(a=n[u])&&(i[u]=a)}function h(t,n,e,r,i,o,a){var u,l,s,h={},f=n.length,p=o.length,d=new Array(f);for(u=0;u<f;++u)(l=n[u])&&(d[u]=s="$"+a.call(l,l.__data__,u,n),s in h?i[u]=l:h[s]=l);for(u=0;u<p;++u)(l=h[s="$"+a.call(t,o[u],u,o)])?(r[u]=l,l.__data__=o[u],h[s]=null):e[u]=new c(t,o[u]);for(u=0;u<f;++u)(l=n[u])&&h[d[u]]===l&&(i[u]=l)}function f(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}var p="http://www.w3.org/1999/xhtml",d={svg:"http://www.w3.org/2000/svg",xhtml:p,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},g=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),d.hasOwnProperty(n)?{space:d[n],local:t}:t};function v(t){return function(){this.removeAttribute(t)}}function m(t){return function(){this.removeAttributeNS(t.space,t.local)}}function y(t,n){return function(){this.setAttribute(t,n)}}function w(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function _(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function b(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}var x=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView};function M(t){return function(){this.style.removeProperty(t)}}function A(t,n,e){return function(){this.style.setProperty(t,n,e)}}function N(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function k(t,n){return t.style.getPropertyValue(n)||x(t).getComputedStyle(t,null).getPropertyValue(n)}function E(t){return function(){delete this[t]}}function S(t,n){return function(){this[t]=n}}function j(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function C(t){return t.trim().split(/^|\s+/)}function P(t){return t.classList||new O(t)}function O(t){this._node=t,this._names=C(t.getAttribute("class")||"")}function T(t,n){for(var e=P(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function q(t,n){for(var e=P(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function H(t){return function(){T(this,t)}}function L(t){return function(){q(this,t)}}function D(t,n){return function(){(n.apply(this,arguments)?T:q)(this,t)}}O.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function z(){this.textContent=""}function B(t){return function(){this.textContent=t}}function X(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function R(){this.innerHTML=""}function $(t){return function(){this.innerHTML=t}}function I(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function V(){this.nextSibling&&this.parentNode.appendChild(this)}function Y(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function F(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===p&&n.documentElement.namespaceURI===p?n.createElement(t):n.createElementNS(e,t)}}function U(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}var Z=function(t){var n=g(t);return(n.local?U:F)(n)};function G(){return null}function J(){var t=this.parentNode;t&&t.removeChild(this)}function K(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Q(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}var W={},tt=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(W={mouseenter:"mouseover",mouseleave:"mouseout"}));function nt(t,n,e){return t=et(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function et(t,n,e){return function(r){var i=tt;tt=r;try{t.call(this,this.__data__,n,e)}finally{tt=i}}}function rt(t){return t.trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}function it(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function ot(t,n,e){var r=W.hasOwnProperty(t.type)?nt:et;return function(i,o,a){var u,l=this.__on,c=r(n,o,a);if(l)for(var s=0,h=l.length;s<h;++s)if((u=l[s]).type===t.type&&u.name===t.name)return this.removeEventListener(u.type,u.listener,u.capture),this.addEventListener(u.type,u.listener=c,u.capture=e),void(u.value=n);this.addEventListener(t.type,c,e),u={type:t.type,name:t.name,value:n,listener:c,capture:e},l?l.push(u):this.__on=[u]}}function at(t,n,e){var r=x(t),i=r.CustomEvent;"function"==typeof i?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 ut(t,n){return function(){return at(this,t,n)}}function lt(t,n){return function(){return at(this,t,n.apply(this,arguments))}}var ct=[null];function st(t,n){this._groups=t,this._parents=n}function ht(){return new st([[document.documentElement]],ct)}st.prototype=ht.prototype={constructor:st,select:function(t){"function"!=typeof t&&(t=i(t));for(var n=this._groups,e=n.length,r=new Array(e),o=0;o<e;++o)for(var a,u,l=n[o],c=l.length,s=r[o]=new Array(c),h=0;h<c;++h)(a=l[h])&&(u=t.call(a,a.__data__,h,l))&&("__data__"in a&&(u.__data__=a.__data__),s[h]=u);return new st(r,this._parents)},selectAll:function(t){"function"!=typeof t&&(t=a(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var u,l=n[o],c=l.length,s=0;s<c;++s)(u=l[s])&&(r.push(t.call(u,u.__data__,s,l)),i.push(u));return new st(r,i)},filter:function(t){"function"!=typeof t&&(t=u(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],l=a.length,c=r[i]=[],s=0;s<l;++s)(o=a[s])&&t.call(o,o.__data__,s,a)&&c.push(o);return new st(r,this._parents)},data:function(t,n){if(!t)return v=new Array(this.size()),f=-1,this.each((function(t){v[++f]=t})),v;var e,r=n?h:s,i=this._parents,o=this._groups;"function"!=typeof t&&(e=t,t=function(){return e});for(var a=o.length,u=new Array(a),l=new Array(a),c=new Array(a),f=0;f<a;++f){var p=i[f],d=o[f],g=d.length,v=t.call(p,p&&p.__data__,f,i),m=v.length,y=l[f]=new Array(m),w=u[f]=new Array(m);r(p,d,y,w,c[f]=new Array(g),v,n);for(var _,b,x=0,M=0;x<m;++x)if(_=y[x]){for(x>=M&&(M=x+1);!(b=w[M])&&++M<m;);_._next=b||null}}return(u=new st(u,i))._enter=l,u._exit=c,u},enter:function(){return new st(this._enter||this._groups.map(l),this._parents)},exit:function(){return new st(this._exit||this._groups.map(l),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit();return r="function"==typeof t?t(r):r.append(t+""),null!=n&&(i=n(i)),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var l,c=n[u],s=e[u],h=c.length,f=a[u]=new Array(h),p=0;p<h;++p)(l=c[p]||s[p])&&(f[p]=l);for(;u<r;++u)a[u]=n[u];return new st(a,this._parents)},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=f);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var a,u=e[o],l=u.length,c=i[o]=new Array(l),s=0;s<l;++s)(a=u[s])&&(c[s]=a);c.sort(n)}return new st(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){var t=new Array(this.size()),n=-1;return this.each((function(){t[++n]=this})),t},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){var t=0;return this.each((function(){++t})),t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=g(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?m:v:"function"==typeof n?e.local?b:_:e.local?w:y)(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?M:"function"==typeof n?N:A)(t,n,null==e?"":e)):k(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?E:"function"==typeof n?j:S)(t,n)):this.node()[t]},classed:function(t,n){var e=C(t+"");if(arguments.length<2){for(var r=P(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?D:n?H:L)(e,n))},text:function(t){return arguments.length?this.each(null==t?z:("function"==typeof t?X:B)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?R:("function"==typeof t?I:$)(t)):this.node().innerHTML},raise:function(){return this.each(V)},lower:function(){return this.each(Y)},append:function(t){var n="function"==typeof t?t:Z(t);return this.select((function(){return this.appendChild(n.apply(this,arguments))}))},insert:function(t,n){var e="function"==typeof t?t:Z(t),r=null==n?G:"function"==typeof n?n:i(n);return this.select((function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(J)},clone:function(t){return this.select(t?Q:K)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=rt(t+""),a=o.length;if(!(arguments.length<2)){for(u=n?ot:it,null==e&&(e=!1),r=0;r<a;++r)this.each(u(o[r],n,e));return this}var u=this.node().__on;if(u)for(var l,c=0,s=u.length;c<s;++c)for(r=0,l=u[c];r<a;++r)if((i=o[r]).type===l.type&&i.name===l.name)return l.value},dispatch:function(t,n){return this.each(("function"==typeof n?lt:ut)(t,n))}};var ft=ht,pt=function(t){return"string"==typeof t?new st([[document.querySelector(t)]],[document.documentElement]):new st([[t]],ct)},dt=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)]},gt=function(t){return(t=dt(Math.abs(t)))?t[1]:NaN},vt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function mt(t){if(!(n=vt.exec(t)))throw new Error("invalid format: "+t);var n;return new yt({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]})}function yt(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}mt.prototype=yt.prototype,yt.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var wt,_t,bt,xt,Mt=function(t,n){var e=dt(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")},At={"%":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 Mt(100*t,n)},r:Mt,s:function(t,n){var e=dt(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(wt=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+dt(t,Math.max(0,n+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Nt=function(t){return t},kt=Array.prototype.map,Et=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];_t=function(t){var n,e,r=void 0===t.grouping||void 0===t.thousands?Nt:(n=kt.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var i=t.length,o=[],a=0,u=n[0],l=0;i>0&&u>0&&(l+u+1>r&&(u=Math.max(1,r-l)),o.push(t.substring(i-=u,i+u)),!((l+=u+1)>r));)u=n[a=(a+1)%n.length];return o.reverse().join(e)}),i=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?Nt:function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(kt.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"-":t.minus+"",s=void 0===t.nan?"NaN":t.nan+"";function h(t){var n=(t=mt(t)).fill,e=t.align,h=t.sign,f=t.symbol,p=t.zero,d=t.width,g=t.comma,v=t.precision,m=t.trim,y=t.type;"n"===y?(g=!0,y="g"):At[y]||(void 0===v&&(v=12),m=!0,y="g"),(p||"0"===n&&"="===e)&&(p=!0,n="0",e="=");var w="$"===f?i:"#"===f&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",_="$"===f?o:/[%p]/.test(y)?l:"",b=At[y],x=/[defgprs%]/.test(y);function M(t){var i,o,l,f=w,M=_;if("c"===y)M=b(t)+M,t="";else{var A=(t=+t)<0||1/t<0;if(t=isNaN(t)?s:b(Math.abs(t),v),m&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(!+t[r])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),A&&0==+t&&"+"!==h&&(A=!1),f=(A?"("===h?h:c:"-"===h||"("===h?"":h)+f,M=("s"===y?Et[8+wt/3]:"")+M+(A&&"("===h?")":""),x)for(i=-1,o=t.length;++i<o;)if(48>(l=t.charCodeAt(i))||l>57){M=(46===l?a+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}g&&!p&&(t=r(t,1/0));var N=f.length+t.length+M.length,k=N<d?new Array(d-N+1).join(n):"";switch(g&&p&&(t=r(k+t,k.length?d-M.length:1/0),k=""),e){case"<":t=f+t+M+k;break;case"=":t=f+k+t+M;break;case"^":t=k.slice(0,N=k.length>>1)+f+t+M+k.slice(N);break;default:t=k+f+t+M}return u(t)}return v=void 0===v?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,v)):Math.max(0,Math.min(20,v)),M.toString=function(){return t+""},M}return{format:h,formatPrefix:function(t,n){var e=h(((t=mt(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(gt(n)/3))),i=Math.pow(10,-r),o=Et[8+r/3];return function(t){return e(i*t)+o}}}}({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),bt=_t.format,xt=_t.formatPrefix;var St=function(t,n){return t<n?-1:t>n?1:t>=n?0:NaN},jt=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)},Ct=function(){var t=1,n=1,e=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/o,i.eachBefore(function(t,n){return function(r){r.children&&function(t,n,e,r,i){for(var o,a=t.children,u=-1,l=a.length,c=t.value&&(r-n)/t.value;++u<l;)(o=a[u]).y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*c}(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,o=r.y0,a=r.x1-e,u=r.y1-e;a<i&&(i=a=(i+a)/2),u<o&&(o=u=(o+u)/2),r.x0=i,r.y0=o,r.x1=a,r.y1=u}}(n,o)),r&&i.eachBefore(jt),i}return i.round=function(t){return arguments.length?(r=!!t,i):r},i.size=function(e){return arguments.length?(t=+e[0],n=+e[1],i):[t,n]},i.padding=function(t){return arguments.length?(e=+t,i):e},i};function Pt(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Ot(t,n){var e,r,i,o,a,u=new Lt(t),l=+t.value&&(u.value=t.value),c=[u];for(null==n&&(n=Tt);e=c.pop();)if(l&&(e.value=+e.data.value),(i=n(e.data))&&(a=i.length))for(e.children=new Array(a),o=a-1;o>=0;--o)c.push(r=e.children[o]=new Lt(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Ht)}function Tt(t){return t.children}function qt(t){t.data=t.data.data}function Ht(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Lt(t){this.data=t,this.depth=this.height=0,this.parent=null}Lt.prototype=Ot.prototype={constructor:Lt,count:function(){return this.eachAfter(Pt)},each:function(t){var n,e,r,i,o=this,a=[o];do{for(n=a.reverse(),a=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)a.push(e[r])}while(a.length);return this},eachAfter:function(t){for(var n,e,r,i=this,o=[i],a=[];i=o.pop();)if(a.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=a.pop();)t(i);return this},eachBefore:function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter((function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e}))},sort:function(t){return this.eachBefore((function(n){n.children&&n.children.sort(t)}))},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;t=e.pop(),n=r.pop();for(;t===n;)i=t,t=e.pop(),n=r.pop();return i}(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},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each((function(n){t.push(n)})),t},leaves:function(){var t=[];return this.eachBefore((function(n){n.children||t.push(n)})),t},links:function(){var t=this,n=[];return t.each((function(e){e!==t&&n.push({source:e.parent,target:e})})),n},copy:function(){return Ot(this).eachBefore(qt)}};var Dt=Math.sqrt(50),zt=Math.sqrt(10),Bt=Math.sqrt(2);function Xt(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=Dt?10:o>=zt?5:o>=Bt?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=Dt?10:o>=zt?5:o>=Bt?2:1)}var Rt,$t,It=(1===(Rt=St).length&&($t=Rt,Rt=function(t,n){return St($t(t),n)}),{left:function(t,n,e,r){for(null==e&&(e=0),null==r&&(r=t.length);e<r;){var i=e+r>>>1;Rt(t[i],n)<0?e=i+1:r=i}return e},right:function(t,n,e,r){for(null==e&&(e=0),null==r&&(r=t.length);e<r;){var i=e+r>>>1;Rt(t[i],n)>0?r=i:e=i+1}return e}}),Vt=It.right,Yt=function(t,n,e){t.prototype=n.prototype=e,e.constructor=t};function Ft(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Ut(){}var Zt="\\s*([+-]?\\d+)\\s*",Gt="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Jt="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Kt=/^#([0-9a-f]{3,8})$/,Qt=new RegExp("^rgb\\("+[Zt,Zt,Zt]+"\\)$"),Wt=new RegExp("^rgb\\("+[Jt,Jt,Jt]+"\\)$"),tn=new RegExp("^rgba\\("+[Zt,Zt,Zt,Gt]+"\\)$"),nn=new RegExp("^rgba\\("+[Jt,Jt,Jt,Gt]+"\\)$"),en=new RegExp("^hsl\\("+[Gt,Jt,Jt]+"\\)$"),rn=new RegExp("^hsla\\("+[Gt,Jt,Jt,Gt]+"\\)$"),on={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};function an(){return this.rgb().formatHex()}function un(){return this.rgb().formatRgb()}function ln(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Kt.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?cn(n):3===e?new pn(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?new pn(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?new pn(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=Qt.exec(t))?new pn(n[1],n[2],n[3],1):(n=Wt.exec(t))?new pn(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=tn.exec(t))?sn(n[1],n[2],n[3],n[4]):(n=nn.exec(t))?sn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=en.exec(t))?mn(n[1],n[2]/100,n[3]/100,1):(n=rn.exec(t))?mn(n[1],n[2]/100,n[3]/100,n[4]):on.hasOwnProperty(t)?cn(on[t]):"transparent"===t?new pn(NaN,NaN,NaN,0):null}function cn(t){return new pn(t>>16&255,t>>8&255,255&t,1)}function sn(t,n,e,r){return r<=0&&(t=n=e=NaN),new pn(t,n,e,r)}function hn(t){return t instanceof Ut||(t=ln(t)),t?new pn((t=t.rgb()).r,t.g,t.b,t.opacity):new pn}function fn(t,n,e,r){return 1===arguments.length?hn(t):new pn(t,n,e,null==r?1:r)}function pn(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function dn(){return"#"+vn(this.r)+vn(this.g)+vn(this.b)}function gn(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function vn(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function mn(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new wn(t,n,e,r)}function yn(t){if(t instanceof wn)return new wn(t.h,t.s,t.l,t.opacity);if(t instanceof Ut||(t=ln(t)),!t)return new wn;if(t instanceof wn)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,l=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e<r):e===o?(r-n)/u+2:(n-e)/u+4,u/=l<.5?o+i:2-o-i,a*=60):u=l>0&&l<1?0:a,new wn(a,u,l,t.opacity)}function wn(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function _n(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function bn(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}Yt(Ut,ln,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:an,formatHex:an,formatHsl:function(){return yn(this).formatHsl()},formatRgb:un,toString:un}),Yt(pn,fn,Ft(Ut,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new pn(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new pn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){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:dn,formatHex:dn,formatRgb:gn,toString:gn})),Yt(wn,(function(t,n,e,r){return 1===arguments.length?yn(t):new wn(t,n,e,null==r?1:r)}),Ft(Ut,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new wn(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new wn(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new pn(_n(t>=240?t-240:t+120,i,r),_n(t,i,r),_n(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},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var xn=function(t){return function(){return t}};function Mn(t,n){return function(e){return t+e*n}}function An(t){return 1==(t=+t)?Nn:function(n,e){return e-n?function(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)}}(n,e,t):xn(isNaN(n)?e:n)}}function Nn(t,n){var e=n-t;return e?Mn(t,e):xn(isNaN(t)?n:t)}var kn=function t(n){var e=An(n);function r(t,n){var r=e((t=fn(t)).r,(n=fn(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=Nn(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function En(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;e<i;++e)r=fn(n[e]),o[e]=r.r||0,a[e]=r.g||0,u[e]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}En((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],a=r>0?t[r-1]:2*i-o,u=r<n-1?t[r+2]:2*o-i;return bn((e-r/n)*n,a,i,o,u)}})),En((function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],u=t[(r+2)%n];return bn((e-r/n)*n,i,o,a,u)}}));var Sn=function(t,n){n||(n=[]);var e,r=t?Math.min(n.length,t.length):0,i=n.slice();return function(o){for(e=0;e<r;++e)i[e]=t[e]*(1-o)+n[e]*o;return i}};function jn(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Cn(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(i),a=new Array(r);for(e=0;e<i;++e)o[e]=Dn(t[e],n[e]);for(;e<r;++e)a[e]=n[e];return function(t){for(e=0;e<i;++e)a[e]=o[e](t);return a}}var Pn=function(t,n){var e=new Date;return t=+t,n=+n,function(r){return e.setTime(t*(1-r)+n*r),e}},On=function(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}},Tn=function(t,n){var e,r={},i={};for(e in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)e in t?r[e]=Dn(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}},qn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Hn=new RegExp(qn.source,"g");var Ln=function(t,n){var e,r,i,o=qn.lastIndex=Hn.lastIndex=0,a=-1,u=[],l=[];for(t+="",n+="";(e=qn.exec(t))&&(r=Hn.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,l.push({i:a,x:On(e,r)})),o=Hn.lastIndex;return o<n.length&&(i=n.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?l[0]?function(t){return function(n){return t(n)+""}}(l[0].x):function(t){return function(){return t}}(n):(n=l.length,function(t){for(var e,r=0;r<n;++r)u[(e=l[r]).i]=e.x(t);return u.join("")})},Dn=function(t,n){var e,r=typeof n;return null==n||"boolean"===r?xn(n):("number"===r?On:"string"===r?(e=ln(n))?(n=e,kn):Ln:n instanceof ln?kn:n instanceof Date?Pn:jn(n)?Sn:Array.isArray(n)?Cn:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?Tn:On)(t,n)},zn=function(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}},Bn=function(t){return+t},Xn=[0,1];function Rn(t){return t}function $n(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:(e=isNaN(n)?NaN:.5,function(){return e});var e}function In(t,n,e){var r=t[0],i=t[1],o=n[0],a=n[1];return i<r?(r=$n(i,r),o=e(a,o)):(r=$n(r,i),o=e(o,a)),function(t){return o(r(t))}}function Vn(t,n,e){var r=Math.min(t.length,n.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<r;)i[a]=$n(t[a],t[a+1]),o[a]=e(n[a],n[a+1]);return function(n){var e=Vt(t,n,1,r)-1;return o[e](i[e](n))}}function Yn(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Fn(){var t,n,e,r,i,o,a=Xn,u=Xn,l=Dn,c=Rn;function s(){var t,n,e,l=Math.min(a.length,u.length);return c!==Rn&&(t=a[0],n=a[l-1],t>n&&(e=t,t=n,n=e),c=function(e){return Math.max(t,Math.min(n,e))}),r=l>2?Vn:In,i=o=null,h}function h(n){return isNaN(n=+n)?e:(i||(i=r(a.map(t),u,l)))(t(c(n)))}return h.invert=function(e){return c(n((o||(o=r(u,a.map(t),On)))(e)))},h.domain=function(t){return arguments.length?(a=Array.from(t,Bn),s()):a.slice()},h.range=function(t){return arguments.length?(u=Array.from(t),s()):u.slice()},h.rangeRound=function(t){return u=Array.from(t),l=zn,s()},h.clamp=function(t){return arguments.length?(c=!!t||Rn,s()):c!==Rn},h.interpolate=function(t){return arguments.length?(l=t,s()):l},h.unknown=function(t){return arguments.length?(e=t,h):e},function(e,r){return t=e,n=r,s()}}function Un(){return Fn()(Rn,Rn)}function Zn(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}var Gn=function(t,n,e,r){var i,o=function(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Dt?i*=10:o>=zt?i*=5:o>=Bt&&(i*=2),n<t?-i:i}(t,n,e);switch((r=mt(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(n));return null!=r.precision||isNaN(i=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(gt(n)/3)))-gt(Math.abs(t)))}(o,a))||(r.precision=i),xt(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,gt(n)-gt(t))+1}(o,Math.max(Math.abs(t),Math.abs(n))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=function(t){return Math.max(0,-gt(Math.abs(t)))}(o))||(r.precision=i-2*("%"===r.type))}return bt(r)};function Jn(t){var n=t.domain;return t.ticks=function(t){var e=n();return function(t,n,e){var r,i,o,a,u=-1;if(e=+e,(t=+t)===(n=+n)&&e>0)return[t];if((r=n<t)&&(i=t,t=n,n=i),0===(a=Xt(t,n,e))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),n=Math.floor(n/a),o=new Array(i=Math.ceil(n-t+1));++u<i;)o[u]=(t+u)*a;else for(t=Math.floor(t*a),n=Math.ceil(n*a),o=new Array(i=Math.ceil(t-n+1));++u<i;)o[u]=(t-u)/a;return r&&o.reverse(),o}(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return Gn(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i=n(),o=0,a=i.length-1,u=i[o],l=i[a];return l<u&&(r=u,u=l,l=r,r=o,o=a,a=r),(r=Xt(u,l,e))>0?r=Xt(u=Math.floor(u/r)*r,l=Math.ceil(l/r)*r,e):r<0&&(r=Xt(u=Math.ceil(u*r)/r,l=Math.floor(l*r)/r,e)),r>0?(i[o]=Math.floor(u/r)*r,i[a]=Math.ceil(l/r)*r,n(i)):r<0&&(i[o]=Math.ceil(u*r)/r,i[a]=Math.floor(l*r)/r,n(i)),t},t}function Kn(){var t=Un();return t.copy=function(){return Yn(t,Kn())},Zn.apply(t,arguments),Jn(t)}function Qn(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Wn={value:function(){}};function te(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new ne(r)}function ne(t){this._=t}function ee(t,n){return t.trim().split(/^|\s+/).map((function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))}function re(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function ie(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=Wn,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}ne.prototype=te.prototype={constructor:ne,on:function(t,n){var e,r=this._,i=ee(t+"",r),o=-1,a=i.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o<a;)if(e=(t=i[o]).type)r[e]=ie(r[e],t.name,n);else if(null==n)for(e in r)r[e]=ie(r[e],t.name,null);return this}for(;++o<a;)if((e=(t=i[o]).type)&&(e=re(r[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new ne(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var oe,ae,ue=te,le=0,ce=0,se=0,he=0,fe=0,pe=0,de="object"==typeof performance&&performance.now?performance:Date,ge="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ve(){return fe||(ge(me),fe=de.now()+pe)}function me(){fe=0}function ye(){this._call=this._time=this._next=null}function we(t,n,e){var r=new ye;return r.restart(t,n,e),r}function _e(){fe=(he=de.now())+pe,le=ce=0;try{!function(){ve(),++le;for(var t,n=oe;n;)(t=fe-n._time)>=0&&n._call.call(null,t),n=n._next;--le}()}finally{le=0,function(){var t,n,e=oe,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:oe=n);ae=t,xe(r)}(),fe=0}}function be(){var t=de.now(),n=t-he;n>1e3&&(pe-=n,he=t)}function xe(t){le||(ce&&(ce=clearTimeout(ce)),t-fe>24?(t<1/0&&(ce=setTimeout(_e,t-de.now()-pe)),se&&(se=clearInterval(se))):(se||(he=de.now(),se=setInterval(be,1e3)),le=1,ge(_e)))}ye.prototype=we.prototype={constructor:ye,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?ve():+e)+(null==n?0:+n),this._next||ae===this||(ae?ae._next=this:oe=this,ae=this),this._call=t,this._time=e,xe()},stop:function(){this._call&&(this._call=null,this._time=1/0,xe())}};var Me=function(t,n,e){var r=new ye;return n=null==n?0:+n,r.restart((function(e){r.stop(),t(e+n)}),n,e),r},Ae=ue("start","end","cancel","interrupt"),Ne=[],ke=function(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(l){var c,s,h,f;if(1!==e.state)return u();for(c in i)if((f=i[c]).name===e.name){if(3===f.state)return Me(o);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[c]):+c<n&&(f.state=6,f.timer.stop(),f.on.call("cancel",t,t.__data__,f.index,f.group),delete i[c])}if(Me((function(){3===e.state&&(e.state=4,e.timer.restart(a,e.delay,e.time),a(l))})),e.state=2,e.on.call("start",t,t.__data__,e.index,e.group),2===e.state){for(e.state=3,r=new Array(h=e.tween.length),c=0,s=-1;c<h;++c)(f=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(r[++s]=f);r.length=s+1}}function a(n){for(var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(u),e.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===e.state&&(e.on.call("end",t,t.__data__,e.index,e.group),u())}function u(){for(var r in e.state=6,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=we((function(t){e.state=1,e.timer.restart(o,e.delay,e.time),e.delay<=t&&o(t-e.delay)}),0,e.time)}(t,e,{name:n,index:r,group:i,on:Ae,tween:Ne,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})};function Ee(t,n){var e=je(t,n);if(e.state>0)throw new Error("too late; already scheduled");return e}function Se(t,n){var e=je(t,n);if(e.state>3)throw new Error("too late; already running");return e}function je(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}var Ce,Pe,Oe,Te,qe=180/Math.PI,He={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},Le=function(t,n,e,r,i,o){var a,u,l;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(l=t*e+n*r)&&(e-=t*l,r-=n*l),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,l/=u),t*r<n*e&&(t=-t,n=-n,l=-l,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*qe,skewX:Math.atan(l)*qe,scaleX:a,scaleY:u}};function De(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u=[],l=[];return o=t(o),a=t(a),function(t,r,i,o,a,u){if(t!==i||r!==o){var l=a.push("translate(",null,n,null,e);u.push({i:l-4,x:On(t,i)},{i:l-2,x:On(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,u,l),function(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:On(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,l),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:On(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,l),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:On(t,e)},{i:u-2,x:On(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,l),o=a=null,function(t){for(var n,e=-1,r=l.length;++e<r;)u[(n=l[e]).i]=n.x(t);return u.join("")}}}var ze=De((function(t){return"none"===t?He:(Ce||(Ce=document.createElement("DIV"),Pe=document.documentElement,Oe=document.defaultView),Ce.style.transform=t,t=Oe.getComputedStyle(Pe.appendChild(Ce),null).getPropertyValue("transform"),Pe.removeChild(Ce),t=t.slice(7,-1).split(","),Le(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}),"px, ","px)","deg)"),Be=De((function(t){return null==t?He:(Te||(Te=document.createElementNS("http://www.w3.org/2000/svg","g")),Te.setAttribute("transform",t),(t=Te.transform.baseVal.consolidate())?(t=t.matrix,Le(t.a,t.b,t.c,t.d,t.e,t.f)):He)}),", ",")",")");function Xe(t,n){var e,r;return function(){var i=Se(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}i.tween=r}}function Re(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Se(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},l=0,c=i.length;l<c;++l)if(i[l].name===n){i[l]=u;break}l===c&&i.push(u)}o.tween=i}}function $e(t,n,e){var r=t._id;return t.each((function(){var t=Se(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)})),function(t){return je(t,r).value[n]}}var Ie=function(t,n){var e;return("number"==typeof n?On:n instanceof ln?kn:(e=ln(n))?(n=e,kn):Ln)(t,n)};function Ve(t){return function(){this.removeAttribute(t)}}function Ye(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Fe(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=n(r=a,e)}}function Ue(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=n(r=a,e)}}function Ze(t,n,e){var r,i,o;return function(){var a,u,l=e(this);if(null!=l)return(a=this.getAttribute(t))===(u=l+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,l));this.removeAttribute(t)}}function Ge(t,n,e){var r,i,o;return function(){var a,u,l=e(this);if(null!=l)return(a=this.getAttributeNS(t.space,t.local))===(u=l+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,l));this.removeAttributeNS(t.space,t.local)}}function Je(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function Ke(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function Qe(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&Ke(t,i)),e}return i._value=n,i}function We(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&Je(t,i)),e}return i._value=n,i}function tr(t,n){return function(){Ee(this,t).delay=+n.apply(this,arguments)}}function nr(t,n){return n=+n,function(){Ee(this,t).delay=n}}function er(t,n){return function(){Se(this,t).duration=+n.apply(this,arguments)}}function rr(t,n){return n=+n,function(){Se(this,t).duration=n}}function ir(t,n){if("function"!=typeof n)throw new Error;return function(){Se(this,t).ease=n}}function or(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?Ee:Se;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}var ar=ft.prototype.constructor;function ur(t){return function(){this.style.removeProperty(t)}}function lr(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function cr(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&lr(t,o,e)),r}return o._value=n,o}function sr(t){return function(n){this.textContent=t.call(this,n)}}function hr(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&sr(r)),n}return r._value=t,r}var fr=0;function pr(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function dr(){return++fr}var gr=ft.prototype;pr.prototype=function(t){return ft().transition(t)}.prototype={constructor:pr,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=i(t));for(var r=this._groups,o=r.length,a=new Array(o),u=0;u<o;++u)for(var l,c,s=r[u],h=s.length,f=a[u]=new Array(h),p=0;p<h;++p)(l=s[p])&&(c=t.call(l,l.__data__,p,s))&&("__data__"in l&&(c.__data__=l.__data__),f[p]=c,ke(f[p],n,e,p,f,je(l,e)));return new pr(a,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=a(t));for(var r=this._groups,i=r.length,o=[],u=[],l=0;l<i;++l)for(var c,s=r[l],h=s.length,f=0;f<h;++f)if(c=s[f]){for(var p,d=t.call(c,c.__data__,f,s),g=je(c,e),v=0,m=d.length;v<m;++v)(p=d[v])&&ke(p,n,e,v,d,g);o.push(d),u.push(c)}return new pr(o,u,n,e)},filter:function(t){"function"!=typeof t&&(t=u(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],l=a.length,c=r[i]=[],s=0;s<l;++s)(o=a[s])&&t.call(o,o.__data__,s,a)&&c.push(o);return new pr(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var l,c=n[u],s=e[u],h=c.length,f=a[u]=new Array(h),p=0;p<h;++p)(l=c[p]||s[p])&&(f[p]=l);for(;u<r;++u)a[u]=n[u];return new pr(a,this._parents,this._name,this._id)},selection:function(){return new ar(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=dr(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],l=u.length,c=0;c<l;++c)if(a=u[c]){var s=je(a,n);ke(a,t,e,c,u,{time:s.time+s.delay+s.duration,delay:0,duration:s.duration,ease:s.ease})}return new pr(r,this._parents,t,e)},call:gr.call,nodes:gr.nodes,node:gr.node,size:gr.size,empty:gr.empty,each:gr.each,on:function(t,n){var e=this._id;return arguments.length<2?je(this.node(),e).on.on(t):this.each(or(e,t,n))},attr:function(t,n){var e=g(t),r="transform"===e?Be:Ie;return this.attrTween(t,"function"==typeof n?(e.local?Ge:Ze)(e,r,$e(this,"attr."+t,n)):null==n?(e.local?Ye:Ve)(e):(e.local?Ue:Fe)(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=g(t);return this.tween(e,(r.local?Qe:We)(r,n))},style:function(t,n,e){var r="transform"==(t+="")?ze:Ie;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=k(this,t),a=(this.style.removeProperty(t),k(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,ur(t)):"function"==typeof n?this.styleTween(t,function(t,n,e){var r,i,o;return function(){var a=k(this,t),u=e(this),l=u+"";return null==u&&(this.style.removeProperty(t),l=u=k(this,t)),a===l?null:a===r&&l===i?o:(i=l,o=n(r=a,u))}}(t,r,$e(this,"style."+t,n))).each(function(t,n){var e,r,i,o,a="style."+n,u="end."+a;return function(){var l=Se(this,t),c=l.on,s=null==l.value[a]?o||(o=ur(n)):void 0;c===e&&i===s||(r=(e=c).copy()).on(u,i=s),l.on=r}}(this._id,t)):this.styleTween(t,function(t,n,e){var r,i,o=e+"";return function(){var a=k(this,t);return a===o?null:a===r?i:i=n(r=a,e)}}(t,r,n),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,cr(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}($e(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;return this.tween(n,hr(t))},remove:function(){return this.on("end.remove",(t=this._id,function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}));var t},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=je(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?Xe:Re)(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?tr:nr)(n,t)):je(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?er:rr)(n,t)):je(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(ir(n,t)):je(this.node(),n).ease},end:function(){var t,n,e=this,r=e._id,i=e.size();return new Promise((function(o,a){var u={value:a},l={value:function(){0==--i&&o()}};e.each((function(){var e=Se(this,r),i=e.on;i!==t&&((n=(t=i).copy())._.cancel.push(u),n._.interrupt.push(u),n._.end.push(l)),e.on=n}))}))}};var vr={time:null,delay:0,duration:250,ease:Qn};function mr(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return vr.time=ve(),vr;return e}ft.prototype.interrupt=function(t){return this.each((function(){!function(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}(this,t)}))},ft.prototype.transition=function(t){var n,e;t instanceof pr?(n=t._id,t=t._name):(n=dr(),(e=vr).time=ve(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],l=u.length,c=0;c<l;++c)(a=u[c])&&ke(a,t,n,c,u,e||mr(a,n));return new pr(r,this._parents,t,n)};n.default=function(){var t=960,n=null,e=18,r=null,i=null,o="",a=750,u=Qn,l=!1,c=!1,s=null,h=0,f=null,p=!1,d=0,g=0,v=!1,m=!1,y=null,w=!1,_=null,b=function(t){return t.data.n||t.data.name},x=function(t){return"v"in t?t.v:t.value},M=function(t){return t.c||t.children},A=function(t){return t.data.l||t.data.libtype},N=function(t){return"d"in t.data?t.data.d:t.data.delta},k=function(){f&&q()},E=k;let S=(t,n,e=!1)=>{if(!n)return!1;let r=b(t);e&&(n=n.toLowerCase(),r=r.toLowerCase());const i=new RegExp(n);return void 0!==r&&r&&r.match(i)};const j=S;var C,P=function(t){f&&(t?f.innerHTML=t:d?q():f.innerHTML="")},O=P,T=function(t){return b(t)+" ("+bt(".3f")(100*(t.x1-t.x0),3)+"%, "+x(t)+" samples)"};function q(){f.innerHTML=d+" of "+g+" samples ( "+bt(".3f")(d/g*100,3)+"%)"}var H=function(t){return t.highlight?"#E600E6":function(t,n){var e,r,i,o=_||"warm";_||void 0===n||""===n||(o="red",void 0!==t&&t&&t.match(/::/)&&(o="yellow"),"kernel"===n?o="orange":"jit"===n?o="green":"inlined"===n&&(o="aqua"));var a=0;if(t){var u=t.split("`");u.length>1&&(t=u[u.length-1]),t=t.split("(")[0],a=function(t){var n=0,e=0,r=1;if(t){for(var i=0;i<t.length&&!(i>6);i++)n+=r*(t.charCodeAt(i)%10),e+=9*r,r*=.7;e>0&&(n/=e)}return n}(t)}"red"===o?(e=200+Math.round(55*a),r=50+Math.round(80*a),i=r):"orange"===o?(e=190+Math.round(65*a),r=90+Math.round(65*a),i=0):"yellow"===o?(e=175+Math.round(55*a),r=e,i=50+Math.round(20*a)):"green"===o?(e=50+Math.round(60*a),r=200+Math.round(55*a),i=e):"aqua"===o?(e=50+Math.round(60*a),r=165+Math.round(55*a),i=r):"cold"===o?(e=0+Math.round(55*(1-a)),r=0+Math.round(230*(1-a)),i=200+Math.round(55*a)):(e=200+Math.round(55*a),r=0+Math.round(230*(1-a)),i=0+Math.round(55*(1-a)));return"rgb("+e+","+r+","+i+")"}(b(t),A(t))},L=H;function D(t){t.data.fade=!1,t.data.hide=!1,t.children&&t.children.forEach(D)}function z(t){if(i&&i.hide(),function(t){let n,e,r,i=t,o=i.parent;for(;o;){for(n=o.children,e=n.length;e--;)r=n[e],r!==i&&(r.data.hide=!0);i=o,o=i.parent}}(t),D(t),function t(n){n.parent&&(n.parent.data.fade=!0,t(n.parent))}(t),R(),m){const n=C._groups[0][0].parentNode.offsetTop,r=(window.innerHeight-n)/e,i=(t.height-r+10)*e;window.scrollTo({top:n+i,left:0,behavior:"smooth"})}"function"==typeof s&&s(t)}function B(t,n){return"function"==typeof l?l(t,n):l?St(b(t),b(n)):void 0}var X=Ct();function R(){r.each((function(r){var o=Kn().range([0,t]),s=Kn().range([0,e]);!function(t){let n,e,r,i,o,a,u,l;const c=[],s=[],h=[],f=!p;let d=t.data;d.hide?(t.value=0,e=t.children,e&&h.push(e)):(t.value=d.fade?0:x(d),c.push(t));for(;n=c.pop();)if(e=n.children,e&&(o=e.length)){for(i=0;o--;)u=e[o],d=u.data,d.hide?(u.value=0,r=u.children,r&&h.push(r)):(d.fade?u.value=0:(l=x(d),u.value=l,i+=l),c.push(u));f&&n.value&&(n.value-=i),s.push(e)}o=s.length;for(;o--;){for(e=s[o],i=0,a=e.length;a--;)i+=e[a].value;e[0].parent.value+=i}for(;h.length;)for(e=h.pop(),a=e.length;a--;)u=e[a],u.value=0,r=u.children,r&&h.push(r)}(r),g=r.value,l&&r.sort(B),X(r);var f=t/(r.x1-r.x0);function d(t){return(t.x1-t.x0)*f}var m=function(n){var e=n.descendants();if(h>0){var r=t/(n.x1-n.x0);e=e.filter((function(t){return(t.x1-t.x0)*r>h}))}return e}(r),w=pt(this).select("svg").selectAll("g").data(m,(function(t){return t.id}));if(!n||v){var _=Math.max.apply(null,m.map((function(t){return t.depth})));(n=(_+3)*e)<y&&(n=y),pt(this).select("svg").attr("height",n)}w.transition().duration(a).ease(u).attr("transform",(function(t){return"translate("+o(t.x0)+","+(c?s(t.depth):n-s(t.depth)-e)+")"})),w.select("rect").transition().duration(a).ease(u).attr("width",d);var M=w.enter().append("svg:g").attr("transform",(function(t){return"translate("+o(t.x0)+","+(c?s(t.depth):n-s(t.depth)-e)+")"}));M.append("svg:rect").transition().delay(a/2).attr("width",d),i||M.append("svg:title"),M.append("foreignObject").append("xhtml:div"),(w=pt(this).select("svg").selectAll("g").data(m,(function(t){return t.id}))).attr("width",d).attr("height",(function(t){return e})).attr("name",(function(t){return b(t)})).attr("class",(function(t){return t.data.fade?"frame fade":"frame"})),w.select("rect").attr("height",(function(t){return e})).attr("fill",(function(t){return H(t)})),i||w.select("title").text(T),w.select("foreignObject").attr("width",d).attr("height",(function(t){return e})).select("div").attr("class","d3-flame-graph-label").style("display",(function(t){return d(t)<35?"none":"block"})).transition().delay(a).text(b),w.on("click",z),w.exit().remove(),w.on("mouseover",(function(t){i&&i.show(t,this),P(T(t))})).on("mouseout",(function(){i&&i.hide(),P(null)}))}))}function $(t){let n=0;!function(t,n){n(t);let e=t.children;if(e){const t=[e];let r,i,o;for(;t.length;)for(e=t.pop(),r=e.length;r--;)i=e[r],n(i),o=i.children,o&&t.push(o)}}(t,(function(t){t.id=n++}))}function I(e){const a=Ot(e.datum(),M);if($(a),w&&a.eachAfter(t=>{let n=N(t);const e=t.children;let r=e&&e.length;for(;--r>=0;)n+=e[r].delta;t.delta=n}),r=e.datum(a),!arguments.length)return I;r.each((function(e){C||(C=pt(this).append("svg:svg").attr("width",t).attr("class","partition d3-flame-graph"),n&&(n<y&&(n=y),C.attr("height",n)),C.append("svg:text").attr("class","title").attr("text-anchor","middle").attr("y","25").attr("x",t/2).attr("fill","#808080").text(o),i&&C.call(i))})),R()}return I.height=function(t){return arguments.length?(n=t,I):n},I.minHeight=function(t){return arguments.length?(y=t,I):y},I.width=function(n){return arguments.length?(t=n,I):t},I.cellHeight=function(t){return arguments.length?(e=t,I):e},I.tooltip=function(t){return arguments.length?("function"==typeof t&&(i=t),I):i},I.title=function(t){return arguments.length?(o=t,I):o},I.transitionDuration=function(t){return arguments.length?(a=t,I):a},I.transitionEase=function(t){return arguments.length?(u=t,I):u},I.sort=function(t){return arguments.length?(l=t,I):l},I.inverted=function(t){return arguments.length?(c=t,I):c},I.computeDelta=function(t){return arguments.length?(w=t,I):w},I.setLabelHandler=function(t){return arguments.length?(T=t,I):T},I.label=I.setLabelHandler,I.search=function(t){r.each((function(n){!function(t,n){var e=[],r=0;!function t(i,o){var a=!1;S(i,n)?(i.highlight=!0,a=!0,o||(r+=x(i)),e.push(i)):i.highlight=!1,M(i)&&M(i).forEach((function(n){t(n,o||a)}))}(t,!1),d=r,k(e,r,g)}(n,t),R()}))},I.findById=function(t){if(null==t)return null;let n=null;return r.each((function(e){null===n&&(n=function t(n,e){if(n.id===e)return n;var r=M(n);if(r)for(var i=0;i<r.length;i++){var o=t(r[i],e);if(o)return o}}(e,t))})),n},I.clear=function(){d=0,P(null),r.each((function(t){!function t(n){n.highlight=!1,M(n)&&M(n).forEach((function(n){t(n)}))}(t),R()}))},I.zoomTo=function(t){z(t)},I.resetZoom=function(){r.each((function(t){z(t)}))},I.onClick=function(t){return arguments.length?(s=t,I):s},I.merge=function(t){return r?(r.each((function(e){!function t(n,e){e.forEach((function(e){var r=n.find((function(t){return t.name===e.name}));r?(r.original?r.original+=e.value:r.value+=e.value,e.children&&(r.children||(r.children=[]),t(r.children,e.children))):n.push(e)}))}([e.data],[t]),$(n=Ot(e.data,M))})),r=r.datum(n),R(),I):I;var n},I.update=function(t){return r?(r.each((function(e){e.data=t,$(n=Ot(e.data,M))})),r=r.datum(n),R(),I):I;var n},I.destroy=function(){return r?(i&&i.hide(),r.selectAll("svg").remove(),I):I},I.setColorMapper=function(t){return arguments.length?(H=n=>{const e=L(n);return t(n,e)},I):(H=L,I)},I.color=I.setColorMapper,I.setColorHue=function(t){return arguments.length?(_=t,I):(_=null,I)},I.minFrameSize=function(t){return arguments.length?(h=t,I):h},I.setDetailsElement=function(t){return arguments.length?(f=t,I):f},I.details=I.setDetailsElement,I.selfValue=function(t){return arguments.length?(p=t,I):p},I.resetHeightOnZoom=function(t){return arguments.length?(v=t,I):v},I.scrollOnZoom=function(t){return arguments.length?(m=t,I):m},I.getName=function(t){return arguments.length?(b=t,I):b},I.getValue=function(t){return arguments.length?(x=t,I):x},I.getChildren=function(t){return arguments.length?(M=t,I):M},I.getLibtype=function(t){return arguments.length?(A=t,I):A},I.getDelta=function(t){return arguments.length?(N=t,I):N},I.setSearchHandler=function(t){return arguments.length?(k=t,I):(k=E,I)},I.setDetailsHandler=function(t){return arguments.length?(P=t,I):(P=O,I)},I.setSearchMatch=function(t){return arguments.length?(S=t,I):(S=j,I)},I}}}).default})); |
@@ -43,6 +43,4 @@ declare module "d3-flame-graph" { | ||
inverted(): boolean; | ||
differential(val: boolean): FlameGraph; | ||
differential(): boolean; | ||
elided(val: boolean): FlameGraph; | ||
elided(): boolean; | ||
computeDelta(val: boolean): FlameGraph; | ||
computeDelta(): boolean; | ||
@@ -60,2 +58,4 @@ resetZoom(): void; | ||
setColorMapper(): FlameGraph; | ||
setColorHue(val: string): FlameGraph; | ||
setColorHue(): FlameGraph; | ||
setSearchMatch(val: SearchMatch): FlameGraph; | ||
@@ -62,0 +62,0 @@ setSearchMatch(): FlameGraph; |
export { default as flamegraph } from './dist/d3-flamegraph.js' | ||
export { offCpuColorMapper, allocationColorMapper, nodeJsColorMapper } from './dist/d3-flamegraph-colorMapper.js' | ||
export { offCpuColorMapper, allocationColorMapper, nodeJsColorMapper, differentialColorMapper } from './dist/d3-flamegraph-colorMapper.js' | ||
export { defaultFlamegraphTooltip } from './dist/d3-flamegraph-tooltip.js' |
{ | ||
"name": "d3-flame-graph", | ||
"version": "3.1.1", | ||
"version": "4.0.6", | ||
"description": "A d3.js library to produce flame graphs.", | ||
@@ -12,4 +12,5 @@ "main": "index.js", | ||
"serve": "webpack-dev-server --mode development", | ||
"lint": "eslint src test", | ||
"pretest": "webpack --mode production", | ||
"test": "tape 'test/**/*-test.js'", | ||
"test": "jest", | ||
"prepare": "npm run test", | ||
@@ -34,18 +35,20 @@ "postpublish": "zip -j dist/d3-flamegraph.zip -- LICENSE README.md dist/d3-flamegraph.js dist/d3-flamegraph.min.js dist/d3-flamegraph-colorMapper.js dist/d3-flamegraph-colorMapper.min.js dist/d3-flamegraph-tooltip.js dist/d3-flamegraph-tooltip.min.js dist/d3-flamegraph.css" | ||
"devDependencies": { | ||
"babel-preset-env": "^1.7.0", | ||
"clean-webpack-plugin": "^3.0.0", | ||
"copy-webpack-plugin": "^5.1.1", | ||
"css-loader": "^3.4.2", | ||
"css-loader": "^3.5.2", | ||
"eslint": "^6.8.0", | ||
"eslint-config-standard": "^14.0.0", | ||
"eslint-loader": "^3.0.3", | ||
"eslint-plugin-import": "^2.20.1", | ||
"eslint-plugin-node": "^11.0.0", | ||
"eslint-config-standard": "^14.1.1", | ||
"eslint-loader": "^4.0.0", | ||
"eslint-plugin-import": "^2.20.2", | ||
"eslint-plugin-node": "^11.1.0", | ||
"eslint-plugin-promise": "^4.0.0", | ||
"eslint-plugin-standard": "^4.0.1", | ||
"html-webpack-plugin": "^3.2.0", | ||
"html-webpack-plugin": "^4.2.0", | ||
"jest": "^25.4.0", | ||
"prettier": "^2.0.4", | ||
"script-ext-html-webpack-plugin": "^2.1.4", | ||
"style-loader": "^1.1.3", | ||
"tape": "^4.13.2", | ||
"style-loader": "^1.1.4", | ||
"terser-webpack-plugin": "^2.3.5", | ||
"webpack": "^4.42.0", | ||
"webpack": "^4.42.1", | ||
"webpack-cli": "^3.3.11", | ||
@@ -56,10 +59,10 @@ "webpack-dev-server": "^3.10.3" | ||
"d3-array": "^2.4.0", | ||
"d3-dispatch": "^1.0.6", | ||
"d3-ease": "^1.0.6", | ||
"d3-format": "^1.4.3", | ||
"d3-format": "^1.4.4", | ||
"d3-hierarchy": "^1.1.9", | ||
"d3-scale": "^3.2.1", | ||
"d3-selection": "^1.4.1", | ||
"d3-transition": "^1.3.2", | ||
"d3-dispatch": "^1.0.6" | ||
"d3-transition": "^1.3.2" | ||
} | ||
} |
@@ -17,4 +17,2 @@ # d3-flame-graph | ||
Click [here](http://spiermar.github.io/d3-flame-graph/differential.html) to check the differential flame graph demo, and [source](https://github.com/spiermar/d3-flame-graph/blob/gh-pages/differential.html) | ||
Click [here](http://spiermar.github.io/d3-flame-graph/live.html) to check the animated assembly demo, and [source](https://github.com/spiermar/d3-flame-graph/blob/gh-pages/live.html) | ||
@@ -32,3 +30,3 @@ | ||
<head> | ||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@3.1.0/dist/d3-flamegraph.css"> | ||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@4.0.0/dist/d3-flamegraph.css"> | ||
</head> | ||
@@ -38,3 +36,3 @@ <body> | ||
<script type="text/javascript" src="https://d3js.org/d3.v4.min.js"></script> | ||
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@3.1.0/dist/d3-flamegraph.min.js"></script> | ||
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@4.0.0/dist/d3-flamegraph.min.js"></script> | ||
<script type="text/javascript"> | ||
@@ -212,14 +210,10 @@ var chart = flamegraph() | ||
<a name="inverted" href="#inverted">#</a> flamegraph.<b>inverted</b>(<i>[inverted]</i>) | ||
<a name="inverted" href="#inverted">#</a> flamegraph.<b>inverted</b>(<i>[bool]</i>) | ||
Invert the flame graph direction. A top-down visualization of the flame graph, also known as _icicle_ plot. Defaults to <i>false</i> if not set. If a value is specified, it will enable/disable the inverted flame graphs direction, otherwise it will return the current inverted configuration. | ||
<a name="differential" href="#differential">#</a> flamegraph.<b>differential</b>(<i>[differential]</i>) | ||
<a name="computeDelta" href="#computeDelta">#</a> flamegraph.<b>computeDelta</b>(<i>[bool]</i>) | ||
Use the _differential_ color hash. Frames are sized according to their `value` but colored based on the `delta` property. Blue for negative numbers, red for positive numbers. | ||
If enabled, computes delta for all nodes. Delta value of each node is a sum if its own value from the <i>getDelta(node)</i> function, plus its children. Defaults to <i>false</i> if not set. If a value is specified, it will enable/disable the delta computation, otherwise it will return the current inverted configuration. | ||
<a name="elided" href="#elided">#</a> flamegraph.<b>elided</b>(<i>[elided]</i>) | ||
Use the _elided_ color hash to show elided frames in a differential heat map. The _elided_ color hash is _cold / blue_ to differentiate from the regular _warm_ palette. | ||
<a name="resetZoom" href="#resetZoom">#</a> flamegraph.<b>resetZoom</b>() | ||
@@ -311,9 +305,15 @@ | ||
<a name="setColorHue" href="#setColorHue">#</a> flamegraph.<b>setColorHue</b>(<i>[string]</i>) | ||
Sets the flame graph color hue. Options are `warm`, `cold`, `red`, `orange`, `yellow`, `green` and `aqua`. | ||
If called with no arguments, `setColorHue` will reset the color hash function. | ||
<a name="setSearchMatch" href="#setSearchMatch">#</a> flamegraph.<b>setSearchMatch</b>(<i>[function]</i>) | ||
Replaces the built-in node search match function. Function takes two arguments, | ||
the node data structure and the search term. It must return a boolean. Example: | ||
Replaces the built-in node search match function. Function takes three arguments, | ||
the node data structure, the search term and an optional boolean argument to ignore case during search. If the third argument is not provided, the search will be case-sensitive by default. The function must return a boolean. Example: | ||
```js | ||
flamegraph.setSearchMatch(function(d, term) { | ||
flamegraph.setSearchMatch(function(d, term, true) { | ||
// Non-regex implementation of the search function | ||
@@ -320,0 +320,0 @@ return d.data.name.indexOf(term) != 0; |
@@ -34,4 +34,4 @@ function pickHex (color1, color2, weight) { | ||
export function allocationColorMapper (d) { | ||
if (d.highlight) return 'rgb(230, 0, 230)' | ||
export function allocationColorMapper (d, originalColor) { | ||
if (d.highlight) return originalColor | ||
@@ -45,4 +45,4 @@ const self = d.data.value | ||
export function offCpuColorMapper (d) { | ||
if (d.highlight) return '#E600E6' | ||
export function offCpuColorMapper (d, originalColor) { | ||
if (d.highlight) return originalColor | ||
@@ -98,1 +98,32 @@ let name = d.data.n || d.data.name | ||
} | ||
export function differentialColorMapper (d, originalColor) { | ||
if (d.highlight) return originalColor | ||
let r = 220 | ||
let g = 220 | ||
let b = 220 | ||
const delta = d.delta || d.data.d || d.data.delta | ||
const unsignedDelta = Math.abs(delta) | ||
let value = d.value || d.data.v || d.data.value | ||
if (value <= unsignedDelta) value = unsignedDelta | ||
const vector = unsignedDelta / value | ||
if (delta === value) { | ||
// likely a new frame, color orange | ||
r = 255 | ||
g = 190 | ||
b = 90 | ||
} else if (delta > 0) { | ||
// an increase, color red | ||
b = Math.round(235 * (1 - vector)) | ||
g = b | ||
} else if (delta < 0) { | ||
// a decrease, color blue | ||
r = Math.round(235 * (1 - vector)) | ||
g = r | ||
} | ||
return 'rgb(' + r + ',' + g + ',' + b + ')' | ||
} |
@@ -24,10 +24,9 @@ import { select } from 'd3-selection' | ||
var selfValue = false | ||
var differential = false | ||
var elided = false | ||
var searchSum = 0 | ||
var totalValue = 0 | ||
var maxDelta = 0 | ||
var resetHeightOnZoom = false | ||
var scrollOnZoom = false | ||
var minHeight = null | ||
var computeDelta = false | ||
var colorHue = null | ||
@@ -67,8 +66,12 @@ var getName = function (d) { | ||
let searchMatch = (d, term) => { | ||
let searchMatch = (d, term, ignoreCase = false) => { | ||
if (!term) { | ||
return false | ||
} | ||
let label = getName(d) | ||
if (ignoreCase) { | ||
term = term.toLowerCase() | ||
label = label.toLowerCase() | ||
} | ||
const re = new RegExp(term) | ||
const label = getName(d) | ||
return typeof label !== 'undefined' && label && label.match(re) | ||
@@ -104,3 +107,3 @@ } | ||
var colorMapper = function (d) { | ||
return d.highlight ? '#E600E6' : colorHash(getName(d), getLibtype(d), getDelta(d)) | ||
return d.highlight ? '#E600E6' : colorHash(getName(d), getLibtype(d)) | ||
} | ||
@@ -133,3 +136,3 @@ var originalColorMapper = colorMapper | ||
function colorHash (name, libtype, delta) { | ||
function colorHash (name, libtype) { | ||
// Return a color for the given name and library type. The library type | ||
@@ -142,79 +145,61 @@ // selects the hue, and the name is hashed to a color in that hue. | ||
if (differential) { | ||
r = 220 | ||
g = 220 | ||
b = 220 | ||
// default when libtype is not in use | ||
var hue = colorHue || 'warm' | ||
if (!delta) { | ||
delta = 0 | ||
if (!colorHue && !(typeof libtype === 'undefined' || libtype === '')) { | ||
// Select hue. Order is important. | ||
hue = 'red' | ||
if (typeof name !== 'undefined' && name && name.match(/::/)) { | ||
hue = 'yellow' | ||
} | ||
if (delta > 0) { | ||
b = Math.round(210 * (maxDelta - delta) / maxDelta) | ||
g = b | ||
} else if (delta < 0) { | ||
r = Math.round(210 * (maxDelta + delta) / maxDelta) | ||
g = r | ||
if (libtype === 'kernel') { | ||
hue = 'orange' | ||
} else if (libtype === 'jit') { | ||
hue = 'green' | ||
} else if (libtype === 'inlined') { | ||
hue = 'aqua' | ||
} | ||
} else { | ||
// default when libtype is not in use | ||
var hue = elided ? 'cold' : 'warm' | ||
} | ||
if (!elided && !(typeof libtype === 'undefined' || libtype === '')) { | ||
// Select hue. Order is important. | ||
hue = 'red' | ||
if (typeof name !== 'undefined' && name && name.match(/::/)) { | ||
hue = 'yellow' | ||
} | ||
if (libtype === 'kernel') { | ||
hue = 'orange' | ||
} else if (libtype === 'jit') { | ||
hue = 'green' | ||
} else if (libtype === 'inlined') { | ||
hue = 'aqua' | ||
} | ||
// calculate hash | ||
var vector = 0 | ||
if (name) { | ||
var nameArr = name.split('`') | ||
if (nameArr.length > 1) { | ||
name = nameArr[nameArr.length - 1] // drop module name if present | ||
} | ||
name = name.split('(')[0] // drop extra info | ||
vector = generateHash(name) | ||
} | ||
// calculate hash | ||
var vector = 0 | ||
if (name) { | ||
var nameArr = name.split('`') | ||
if (nameArr.length > 1) { | ||
name = nameArr[nameArr.length - 1] // drop module name if present | ||
} | ||
name = name.split('(')[0] // drop extra info | ||
vector = generateHash(name) | ||
} | ||
// calculate color | ||
if (hue === 'red') { | ||
r = 200 + Math.round(55 * vector) | ||
g = 50 + Math.round(80 * vector) | ||
b = g | ||
} else if (hue === 'orange') { | ||
r = 190 + Math.round(65 * vector) | ||
g = 90 + Math.round(65 * vector) | ||
b = 0 | ||
} else if (hue === 'yellow') { | ||
r = 175 + Math.round(55 * vector) | ||
g = r | ||
b = 50 + Math.round(20 * vector) | ||
} else if (hue === 'green') { | ||
r = 50 + Math.round(60 * vector) | ||
g = 200 + Math.round(55 * vector) | ||
b = r | ||
} else if (hue === 'aqua') { | ||
r = 50 + Math.round(60 * vector) | ||
g = 165 + Math.round(55 * vector) | ||
b = g | ||
} else if (hue === 'cold') { | ||
r = 0 + Math.round(55 * (1 - vector)) | ||
g = 0 + Math.round(230 * (1 - vector)) | ||
b = 200 + Math.round(55 * vector) | ||
} else { | ||
// original warm palette | ||
r = 200 + Math.round(55 * vector) | ||
g = 0 + Math.round(230 * (1 - vector)) | ||
b = 0 + Math.round(55 * (1 - vector)) | ||
} | ||
// calculate color | ||
if (hue === 'red') { | ||
r = 200 + Math.round(55 * vector) | ||
g = 50 + Math.round(80 * vector) | ||
b = g | ||
} else if (hue === 'orange') { | ||
r = 190 + Math.round(65 * vector) | ||
g = 90 + Math.round(65 * vector) | ||
b = 0 | ||
} else if (hue === 'yellow') { | ||
r = 175 + Math.round(55 * vector) | ||
g = r | ||
b = 50 + Math.round(20 * vector) | ||
} else if (hue === 'green') { | ||
r = 50 + Math.round(60 * vector) | ||
g = 200 + Math.round(55 * vector) | ||
b = r | ||
} else if (hue === 'aqua') { | ||
r = 50 + Math.round(60 * vector) | ||
g = 165 + Math.round(55 * vector) | ||
b = g | ||
} else if (hue === 'cold') { | ||
r = 0 + Math.round(55 * (1 - vector)) | ||
g = 0 + Math.round(230 * (1 - vector)) | ||
b = 200 + Math.round(55 * vector) | ||
} else { | ||
// original warm palette | ||
r = 200 + Math.round(55 * vector) | ||
g = 0 + Math.round(230 * (1 - vector)) | ||
b = 0 + Math.round(55 * (1 - vector)) | ||
} | ||
@@ -497,14 +482,5 @@ | ||
function adoptNode (node) { | ||
maxDelta = 0 | ||
let id = 0 | ||
let delta = 0 | ||
const wantDelta = differential | ||
forEachNode(node, function (n) { | ||
n.id = id++ | ||
if (wantDelta) { | ||
delta = Math.abs(getDelta(n)) | ||
if (maxDelta < delta) { | ||
maxDelta = delta | ||
} | ||
} | ||
}) | ||
@@ -597,2 +573,12 @@ } | ||
if (computeDelta) { | ||
root.eachAfter((node) => { | ||
let sum = getDelta(node) | ||
const children = node.children | ||
let i = children && children.length | ||
while (--i >= 0) sum += children[i].delta | ||
node.delta = sum | ||
}) | ||
} | ||
selection = s.datum(root) | ||
@@ -692,14 +678,8 @@ | ||
chart.differential = function (_) { | ||
if (!arguments.length) { return differential } | ||
differential = _ | ||
chart.computeDelta = function (_) { | ||
if (!arguments.length) { return computeDelta } | ||
computeDelta = _ | ||
return chart | ||
} | ||
chart.elided = function (_) { | ||
if (!arguments.length) { return elided } | ||
elided = _ | ||
return chart | ||
} | ||
chart.setLabelHandler = function (_) { | ||
@@ -807,2 +787,11 @@ if (!arguments.length) { return labelHandler } | ||
chart.setColorHue = function (_) { | ||
if (!arguments.length) { | ||
colorHue = null | ||
return chart | ||
} | ||
colorHue = _ | ||
return chart | ||
} | ||
chart.minFrameSize = function (_) { | ||
@@ -809,0 +798,0 @@ if (!arguments.length) { return minFrameSize } |
@@ -92,3 +92,6 @@ const path = require('path') | ||
inject: 'head', | ||
templateVersion: packageFile.version | ||
meta: { | ||
template_version: packageFile.version | ||
}, | ||
minify: false | ||
}), | ||
@@ -95,0 +98,0 @@ new ScriptExtHtmlWebpackPlugin({ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
562800
26
8162
20
Updatedd3-format@^1.4.4