@marimo-team/frontend 0.11.13-dev3 → 0.11.13-dev4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-CcYIkOvf.js → ConnectedDataExplorerComponent-COt2g5hC.js} +1 -1
  2. package/dist/assets/{VegaLite-Bn8-wil1.js → VegaLite-BIjNpfBx.js} +1 -1
  3. package/dist/assets/{_baseEach-BUh4RVgG.js → _baseEach-CqlbS-ca.js} +1 -1
  4. package/dist/assets/_baseMap-Cyd70uyD.js +1 -0
  5. package/dist/assets/{_baseUniq-C5OLmLHH.js → _baseUniq-V1QN2bAj.js} +1 -1
  6. package/dist/assets/{any-language-editor-DhHdZOXN.js → any-language-editor-D2Ce6sMT.js} +1 -1
  7. package/dist/assets/{architectureDiagram-UYN6MBPD-BwvEYKH1.js → architectureDiagram-UYN6MBPD-BwLlWDLr.js} +1 -1
  8. package/dist/assets/{blockDiagram-ZHA2E4KO-D4zwYlRc.js → blockDiagram-ZHA2E4KO-DvmzFFv0.js} +1 -1
  9. package/dist/assets/{c4Diagram-6F5ED5ID-BdFC9IBF.js → c4Diagram-6F5ED5ID-Coy1xwv0.js} +1 -1
  10. package/dist/assets/channel-3tIx_Saw.js +1 -0
  11. package/dist/assets/{chunk-5HRBRIJM-COtBm-HP.js → chunk-5HRBRIJM-Dh_ME4wH.js} +1 -1
  12. package/dist/assets/{chunk-7U56Z5CX-zIQsvR4X.js → chunk-7U56Z5CX-DsCrb3nb.js} +1 -1
  13. package/dist/assets/{chunk-ASOPGD6M-NQy8N-EJ.js → chunk-ASOPGD6M-Bmyxaz40.js} +1 -1
  14. package/dist/assets/{chunk-KFBOBJHC-CkS5RBi6.js → chunk-KFBOBJHC-i7fcCkHd.js} +1 -1
  15. package/dist/assets/{chunk-T2TOU4HS-DzmozSc5.js → chunk-T2TOU4HS-CQktku26.js} +1 -1
  16. package/dist/assets/{chunk-TMUBEWPD-_QQ-0u08.js → chunk-TMUBEWPD-Zlzm7KAy.js} +1 -1
  17. package/dist/assets/classDiagram-LNE6IOMH--oHcW3T8.js +1 -0
  18. package/dist/assets/classDiagram-v2-MQ7JQ4JX--oHcW3T8.js +1 -0
  19. package/dist/assets/clone-BT9LwcN2.js +1 -0
  20. package/dist/assets/{compile-CDCD29-E.js → compile-CmlB1DQy.js} +1 -1
  21. package/dist/assets/{createWsUrl-BjX4kgts.js → createWsUrl-CzjLm8dR.js} +1 -1
  22. package/dist/assets/{dagre-4EVJKHTY-D_dyEYtO.js → dagre-4EVJKHTY--uHqV7_O.js} +1 -1
  23. package/dist/assets/{data-editor-D75wYRfL.js → data-editor-Bpq91ID-.js} +1 -1
  24. package/dist/assets/{diagram-QW4FP2JN-DqhL830Z.js → diagram-QW4FP2JN-DJXD9lXp.js} +1 -1
  25. package/dist/assets/{edit-page-vBAOw1XQ.js → edit-page-DgDuXgDa.js} +3 -3
  26. package/dist/assets/{erDiagram-6RL3IURR-Dd3rUh1B.js → erDiagram-6RL3IURR-D7tI6GWD.js} +1 -1
  27. package/dist/assets/{flowDiagram-7ASYPVHJ-DmKM4OUd.js → flowDiagram-7ASYPVHJ-Bj4aAlEv.js} +1 -1
  28. package/dist/assets/{ganttDiagram-NTVNEXSI-Dfg8hsKq.js → ganttDiagram-NTVNEXSI-WdfL-De8.js} +1 -1
  29. package/dist/assets/{gitGraph-YCYPL57B-B3gtKvG9.js → gitGraph-YCYPL57B-CcS-rBC4.js} +1 -1
  30. package/dist/assets/{gitGraphDiagram-NRZ2UAAF-RIl_Fbbf.js → gitGraphDiagram-NRZ2UAAF-VTQWRsHq.js} +1 -1
  31. package/dist/assets/{graph-Chf_mTmE.js → graph-CEzdxWUd.js} +1 -1
  32. package/dist/assets/{home-page-Crksq82h.js → home-page-D6JKPX__.js} +1 -1
  33. package/dist/assets/{index-B7lJEjLk.js → index-4woTOf5-.js} +1 -1
  34. package/dist/assets/{index-C1cf1kXG.js → index-B0XMFXCh.js} +1 -1
  35. package/dist/assets/{index-C5gauPmP.js → index-B4a4OFVl.js} +1 -1
  36. package/dist/assets/{index-F5RgI1VF.js → index-B6O_Z76l.js} +1 -1
  37. package/dist/assets/{index-B_aWxnoD.js → index-BkEzIV1y.js} +1 -1
  38. package/dist/assets/{index-BPBF-CRi.js → index-BwHH1DAa.js} +1 -1
  39. package/dist/assets/{index-DOAwAyqb.js → index-ClBQ7WEk.js} +1 -1
  40. package/dist/assets/{index-B68ir1vl.js → index-Cv9ELrp6.js} +1 -1
  41. package/dist/assets/{index-Bybs2ybp.js → index-CwY4KgF9.js} +1 -1
  42. package/dist/assets/{index-PsRcnC9h.js → index-D0tOeuuJ.js} +1 -1
  43. package/dist/assets/{index-vKd9T5iS.js → index-D2C6LQc7.js} +1 -1
  44. package/dist/assets/{index-WOFwLZpl.js → index-DOJVqE5c.js} +4 -4
  45. package/dist/assets/{index-D7_0zCAB.js → index-DjkM6Cpn.js} +1 -1
  46. package/dist/assets/{index-DE-Et8pO.js → index-DnxST10K.js} +1 -1
  47. package/dist/assets/{index-BLkHsS0i.js → index-PYft52Lj.js} +1 -1
  48. package/dist/assets/{index-DoE-rypV.js → index-U7vClf4F.js} +1 -1
  49. package/dist/assets/{index-CDz5156j.js → index-pMi80XLi.js} +1 -1
  50. package/dist/assets/{infoDiagram-A4XQUW5V-Dz5KMBMd.js → infoDiagram-A4XQUW5V-BakeRSe4.js} +1 -1
  51. package/dist/assets/{journeyDiagram-G5WM74LC-DJDxCNBb.js → journeyDiagram-G5WM74LC-DskcPBHt.js} +1 -1
  52. package/dist/assets/{kanban-definition-QRCXZQQD-BRuTL2QO.js → kanban-definition-QRCXZQQD-DnlMgJuI.js} +1 -1
  53. package/dist/assets/{layout-DRnzDadx.js → layout-CC5AXcOW.js} +1 -1
  54. package/dist/assets/{linear-GMgrfsZh.js → linear-CCY-ysXY.js} +1 -1
  55. package/dist/assets/{mermaid-CcfwQ7de.js → mermaid-BhA2r9ev.js} +3 -3
  56. package/dist/assets/{min-DQnBnIEw.js → min-Bw6x_4LN.js} +1 -1
  57. package/dist/assets/{mindmap-definition-GWI6TPTV-k1Z6jcSD.js → mindmap-definition-GWI6TPTV-ypDbE4oM.js} +1 -1
  58. package/dist/assets/{pieDiagram-YF2LJOPJ-CXrXDKFq.js → pieDiagram-YF2LJOPJ-CXxbncXD.js} +1 -1
  59. package/dist/assets/{quadrantDiagram-OS5C2QUG-CX1whxwH.js → quadrantDiagram-OS5C2QUG-Cb8Wc45r.js} +1 -1
  60. package/dist/assets/{react-plotly-DtcUqhWD.js → react-plotly-DVdM4tHW.js} +1 -1
  61. package/dist/assets/{requirementDiagram-MIRIMTAZ-BbCS2wxs.js → requirementDiagram-MIRIMTAZ-CaRVOcbI.js} +1 -1
  62. package/dist/assets/{run-page-D06a1wtZ.js → run-page-CDMyjeIx.js} +1 -1
  63. package/dist/assets/{sankeyDiagram-Y46BX6SQ-DA_BRiX7.js → sankeyDiagram-Y46BX6SQ-CQjWVQg0.js} +1 -1
  64. package/dist/assets/{sequenceDiagram-G6AWOVSC-DT4pnhr4.js → sequenceDiagram-G6AWOVSC-Bh-P4Svd.js} +1 -1
  65. package/dist/assets/{slides-component-CcCS5YxL.js → slides-component-Dfm-eV-M.js} +1 -1
  66. package/dist/assets/{sortBy-CWDolL8Z.js → sortBy-C5ROtnHG.js} +1 -1
  67. package/dist/assets/{stateDiagram-MAYHULR4-BMKvvoUA.js → stateDiagram-MAYHULR4-C7E06o9f.js} +1 -1
  68. package/dist/assets/stateDiagram-v2-4JROLMXI-BLbdOOO7.js +1 -0
  69. package/dist/assets/{terminal-iaUzPvJy.js → terminal-DKDQ5U0W.js} +1 -1
  70. package/dist/assets/{time-Cxvnk0Zs.js → time-CRwJjoaW.js} +1 -1
  71. package/dist/assets/{timeline-definition-U7ZMHBDA-ClaDdJOO.js → timeline-definition-U7ZMHBDA-YdFdkNzh.js} +1 -1
  72. package/dist/assets/{tree-doxpjySd.js → tree-BvOwit3E.js} +1 -1
  73. package/dist/assets/{useMarimoWebSocket-BMn6_JrL.js → useMarimoWebSocket-DdnZRo7w.js} +3 -3
  74. package/dist/assets/{vega-component-CLtgJWvK.js → vega-component-Cj9UYjlE.js} +1 -1
  75. package/dist/assets/{xychartDiagram-6QU3TZC5-CtJ_8oPm.js → xychartDiagram-6QU3TZC5-oJT5HvZw.js} +1 -1
  76. package/dist/index.html +1 -1
  77. package/package.json +1 -1
  78. package/dist/assets/_baseMap-BfC3LFdY.js +0 -1
  79. package/dist/assets/channel-DU3DWSzf.js +0 -1
  80. package/dist/assets/classDiagram-LNE6IOMH-CuL5E6g1.js +0 -1
  81. package/dist/assets/classDiagram-v2-MQ7JQ4JX-CuL5E6g1.js +0 -1
  82. package/dist/assets/clone-DLaPtyAc.js +0 -1
  83. package/dist/assets/stateDiagram-v2-4JROLMXI-DbXi9uhu.js +0 -1
@@ -1 +1 @@
1
- import{cg as e,fT as t,fU as n,cr as i,fV as r,fW as o,cs as a,cv as s,cu as l,cq as u,fX as c,fY as f,fZ as d,f_ as h,f$ as p,g0 as m,g1 as g,g2 as y,g3 as v,g4 as b,g5 as x,g6 as w,g7 as _,g8 as k,g9 as $,ga as D,gb as A,gc as S,gd as E,ge as F,gf as C,gg as M,gh as z,gi as O,gj as N,gk as R,gl as B,gm as T,gn as P,go as j,aF as L,gp as q,gq as U,gr as I,gs as W,gt as H,gu as G,gv as V,gw as Y,gx as X,cn as J,ch as Q,cm as K,gy as Z,aG as ee,aQ as te,aR as ne,gz as ie,aT as re,aU as oe,aV as ae,gA as se,gB as le,gC as ue,gD as ce,gE as fe,gF as de,gG as he,gH as pe,aO as me,gI as ge,gJ as ye,gK as ve,gL as be,gM as xe,gN as we,gO as _e,gP as ke,gQ as $e,gR as De,gS as Ae,gT as Se,gU as Ee,gV as Fe,gW as Ce,gX as Me,gY as ze,gZ as Oe,g_ as Ne,g$ as Re,h0 as Be,h1 as Te,h2 as Pe,h3 as je,h4 as Le,h5 as qe,h6 as Ue,ct as Ie,h7 as We,h8 as He,h9 as Ge,ha as Ve,hb as Ye,hc as Xe,hd as Je,he as Qe,hf as Ke,hg as Ze,hh as et,hi as tt,hj as nt,hk as it,hl as rt,hm as ot,hn as at,as as st,ho as lt,hp as ut,hq as ct,hr as ft,hs as dt,ht,hu as pt}from"./index-WOFwLZpl.js";import{m as mt,a as gt,d as yt,r as vt,l as bt,i as xt,h as wt,n as _t,c as kt,u as $t,b as Dt,t as At,e as St}from"./time-Cxvnk0Zs.js";import{n as Et,b as Ft,i as Ct,d as Mt,e as zt,f as Ot,o as Nt,g as Rt,h as Bt,j as Tt,t as Pt,a as jt,k as Lt,m as qt,l as Ut,p as It,q as Wt}from"./linear-GMgrfsZh.js";import{r as Ht}from"./range-CtcPcB_L.js";import{R as Gt,r as Vt,o as Yt,q as Xt,$ as Jt,a0 as Qt,C as Kt,v as Zt,a1 as en,u as tn,a2 as nn,a3 as rn,y as on,z as an,a4 as sn,a5 as ln,A as un,Z as cn,Y as fn,V as dn,_ as hn,w as pn,b as mn,K as gn,a6 as yn,a7 as vn,n as bn,l as xn,d as wn,t as _n,p as kn,D as $n,E as Dn,F as An,G as Sn,I as En,H as Fn,J as Cn,M as Mn,N as zn,L as On,Q as Nn,P as Rn,O as Bn,S as Tn,T as Pn,U as jn,k as Ln,a8 as qn,a9 as Un,W as In,X as Wn}from"./step-xJWGRC3d.js";import{i as Hn,a as Gn}from"./init-DLRA0X12.js";import{I as Vn,o as Yn,i as Xn}from"./ordinal-BcaZTuz9.js";import{c as Jn}from"./colors-bszWmPJw.js";import{d as Qn}from"./arc-B5qYPUYs.js";class Kn{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const t=this._partials;let n=0;for(let i=0;i<this._n&&i<32;i++){const r=t[i],o=e+r,a=Math.abs(e)<Math.abs(r)?e-(o-r):r-(o-e);a&&(t[n++]=a),e=o}return t[n]=e,this._n=n+1,this}valueOf(){const e=this._partials;let t,n,i,r=this._n,o=0;if(r>0){for(o=e[--r];r>0&&(t=o,n=e[--r],o=t+n,i=n-(o-t),!i););r>0&&(i<0&&e[r-1]<0||i>0&&e[r-1]>0)&&(n=2*i,t=o+n,n==t-o&&(o=t))}return o}}function Zn(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:e>t?1:0)}function ei(t,n,i=0,r=1/0,o){if(n=Math.floor(n),i=Math.floor(Math.max(0,i)),r=Math.floor(Math.min(t.length-1,r)),!(i<=n&&n<=r))return t;for(o=void 0===o?Zn:function(t=e){if(t===e)return Zn;if("function"!=typeof t)throw new TypeError("compare is not a function");return(e,n)=>{const i=t(e,n);return i||0===i?i:(0===t(n,n))-(0===t(e,e))}}(o);r>i;){if(r-i>600){const e=r-i+1,a=n-i+1,s=Math.log(e),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(e-l)/e)*(a-e/2<0?-1:1);ei(t,n,Math.max(i,Math.floor(n-a*l/e+u)),Math.min(r,Math.floor(n+(e-a)*l/e+u)),o)}const e=t[n];let a=i,s=r;for(ti(t,i,n),o(t[r],e)>0&&ti(t,i,r);a<s;){for(ti(t,a,s),++a,--s;o(t[a],e)<0;)++a;for(;o(t[s],e)>0;)--s}0===o(t[i],e)?ti(t,i,s):(++s,ti(t,s,r)),s<=n&&(i=s+1),n<=s&&(r=s-1)}return t}function ti(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function ni(e,t,n){if((i=(e=Float64Array.from(Et(e,n))).length)&&!isNaN(t=+t)){if(t<=0||i<2)return mt(e);if(t>=1)return gt(e);var i,r=(i-1)*t,o=Math.floor(r),a=gt(ei(e,o).subarray(0,o+1));return a+(mt(e.subarray(o+1))-a)*(r-o)}}function ii(e,t,n=Ft){if((i=e.length)&&!isNaN(t=+t)){if(t<=0||i<2)return+n(e[0],0,e);if(t>=1)return+n(e[i-1],i-1,e);var i,r=(i-1)*t,o=Math.floor(r),a=+n(e[o],o,e);return a+(+n(e[o+1],o+1,e)-a)*(r-o)}}function ri(e,t){return ni(e,.5,t)}function oi(e){return Array.from(function*(e){for(const t of e)yield*t}(e))}function ai(e,t){let n=0;for(let i of e)(i=+i)&&(n+=i);return n}function si(e){return e instanceof Vn?e:new Vn(e)}var li=-.14861,ui=1.78277,ci=-.29227,fi=-.90649,di=1.97294,hi=di*fi,pi=di*ui,mi=ui*ci-fi*li;function gi(e,t,n,i){return 1===arguments.length?function(e){if(e instanceof yi)return new yi(e.h,e.s,e.l,e.opacity);e instanceof Gt||(e=Vt(e));var t=e.r/255,n=e.g/255,i=e.b/255,r=(mi*i+hi*t-pi*n)/(mi+hi-pi),o=i-r,a=(di*(n-r)-ci*o)/fi,s=Math.sqrt(a*a+o*o)/(di*r*(1-r)),l=s?Math.atan2(a,o)*yt-120:NaN;return new yi(l<0?l+360:l,s,r,e.opacity)}(e):new yi(e,t,n,null==i?1:i)}function yi(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}Yt(yi,gi,Xt(Kt,{brighter(e){return e=null==e?Qt:Math.pow(Qt,e),new yi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Jt:Math.pow(Jt,e),new yi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*vt,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),i=Math.cos(e),r=Math.sin(e);return new Gt(255*(t+n*(li*i+ui*r)),255*(t+n*(ci*i+fi*r)),255*(t+n*(di*i)),this.opacity)}}));function vi(e){return((e=Math.exp(e))+1/e)/2}const bi=function e(t,n,i){function r(e,r){var o,a,s=e[0],l=e[1],u=e[2],c=r[0],f=r[1],d=r[2],h=c-s,p=f-l,m=h*h+p*p;if(m<1e-12)a=Math.log(d/u)/t,o=function(e){return[s+e*h,l+e*p,u*Math.exp(t*e*a)]};else{var g=Math.sqrt(m),y=(d*d-u*u+i*m)/(2*u*n*g),v=(d*d-u*u-i*m)/(2*d*n*g),b=Math.log(Math.sqrt(y*y+1)-y),x=Math.log(Math.sqrt(v*v+1)-v);a=(x-b)/t,o=function(e){var i,r=e*a,o=vi(b),c=u/(n*g)*(o*(i=t*r+b,((i=Math.exp(2*i))-1)/(i+1))-function(e){return((e=Math.exp(e))-1/e)/2}(b));return[s+c*h,l+c*p,u*o/vi(t*r+b)]}}return o.duration=1e3*a*t/Math.SQRT2,o}return r.rho=function(t){var n=Math.max(.001,+t),i=n*n;return e(n,i,i*i)},r}(Math.SQRT2,2,4);function xi(e){return function(t,n){var i=e((t=en(t)).h,(n=en(n)).h),r=tn(t.s,n.s),o=tn(t.l,n.l),a=tn(t.opacity,n.opacity);return function(e){return t.h=i(e),t.s=r(e),t.l=o(e),t.opacity=a(e),t+""}}}const wi=xi(Zt);var _i=xi(tn);function ki(e){return function t(n){function i(t,i){var r=e((t=gi(t)).h,(i=gi(i)).h),o=tn(t.s,i.s),a=tn(t.l,i.l),s=tn(t.opacity,i.opacity);return function(e){return t.h=r(e),t.s=o(e),t.l=a(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,i.gamma=t,i}(1)}const $i=ki(Zt);var Di=ki(tn);function Ai(e,t){void 0===t&&(t=e,e=Ct);for(var n=0,i=t.length-1,r=t[0],o=new Array(i<0?0:i);n<i;)o[n]=e(r,r=t[++n]);return function(e){var t=Math.max(0,Math.min(i-1,Math.floor(e*=i)));return o[t](e-t)}}const Si=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Ct,interpolateArray:Mt,interpolateBasis:nn,interpolateBasisClosed:rn,interpolateCubehelix:$i,interpolateCubehelixLong:Di,interpolateDate:zt,interpolateDiscrete:function(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}},interpolateHcl:xt,interpolateHclLong:wt,interpolateHsl:wi,interpolateHslLong:_i,interpolateHue:function(e,t){var n=Zt(+e,+t);return function(e){var t=n(e);return t-360*Math.floor(t/360)}},interpolateLab:function(e,t){var n=tn((e=bt(e)).l,(t=bt(t)).l),i=tn(e.a,t.a),r=tn(e.b,t.b),o=tn(e.opacity,t.opacity);return function(t){return e.l=n(t),e.a=i(t),e.b=r(t),e.opacity=o(t),e+""}},interpolateNumber:on,interpolateNumberArray:Ot,interpolateObject:Nt,interpolateRgb:an,interpolateRgbBasis:sn,interpolateRgbBasisClosed:ln,interpolateRound:Rt,interpolateString:un,interpolateTransformCss:cn,interpolateTransformSvg:fn,interpolateZoom:bi,piecewise:Ai,quantize:function(e,t){for(var n=new Array(t),i=0;i<t;++i)n[i]=e(i/(t-1));return n}},Symbol.toStringTag,{value:"Module"}));function Ei(e){return $r(e,"or")}function Fi(e){return $r(e,"and")}function Ci(e){return $r(e,"not")}function Mi(e,t){if(Ci(e))Mi(e.not,t);else if(Fi(e))for(const n of e.and)Mi(n,t);else if(Ei(e))for(const n of e.or)Mi(n,t);else t(e)}function zi(e,t){return Ci(e)?{not:zi(e.not,t)}:Fi(e)?{and:e.and.map((e=>zi(e,t)))}:Ei(e)?{or:e.or.map((e=>zi(e,t)))}:t(e)}const Oi=structuredClone;function Ni(e){throw new Error(e)}function Ri(e,n){const i={};for(const r of n)t(e,r)&&(i[r]=e[r]);return i}function Bi(e,t){const n={...e};for(const i of t)delete n[i];return n}function Ti(e){if(n(e))return e;const t=i(e)?e:kr(e);if(t.length<250)return t;let r=0;for(let n=0;n<t.length;n++){r=(r<<5)-r+t.charCodeAt(n),r|=0}return r}function Pi(e){return!1===e||null===e}function ji(e,t){return e.includes(t)}function Li(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function qi(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function Ui(e,...t){for(const n of t)Ii(e,n??{});return e}function Ii(e,t){for(const n of Qi(t))s(e,n,t[n],!0)}function Wi(e,t){const n=[],i={};let r;for(const o of e)r=t(o),r in i||(i[r]=1,n.push(o));return n}function Hi(e,t){const n=Qi(e),i=Qi(t);if(n.length!==i.length)return!1;for(const r of n)if(e[r]!==t[r])return!1;return!0}function Gi(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Vi(e,t){for(const n of e)if(t.has(n))return!0;return!1}function Yi(e){const t=new Set;for(const n of e){const e=r(n).map(((e,t)=>0===t?e:`[${e}]`)),i=e.map(((t,n)=>e.slice(0,n+1).join("")));for(const n of i)t.add(n)}return t}function Xi(e,t){return void 0===e||void 0===t||Vi(Yi(e),Yi(t))}function Ji(e){return 0===Qi(e).length}Set.prototype.toJSON=function(){return`Set(${[...this].map((e=>kr(e))).join(",")})`};const Qi=Object.keys,Ki=Object.values,Zi=Object.entries;function er(e){return!0===e||!1===e}function tr(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function nr(e,t){return Ci(e)?`!(${nr(e.not,t)})`:Fi(e)?`(${e.and.map((e=>nr(e,t))).join(") && (")})`:Ei(e)?`(${e.or.map((e=>nr(e,t))).join(") || (")})`:t(e)}function ir(e,t){if(0===t.length)return!0;const n=t.shift();return n in e&&ir(e[n],t)&&delete e[n],Ji(e)}function rr(e){return e.charAt(0).toUpperCase()+e.substr(1)}function or(e,t="datum"){const n=r(e),i=[];for(let r=1;r<=n.length;r++){const e=`[${n.slice(0,r).map(o).join("][")}]`;i.push(`${t}${e}`)}return i.join(" && ")}function ar(e,t="datum"){return`${t}[${o(r(e).join("."))}]`}function sr(e){return`datum['${e.replaceAll("'","\\'")}']`}function lr(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function ur(e){return`${r(e).map(lr).join("\\.")}`}function cr(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function fr(e){return`${r(e).join(".")}`}function dr(e){return e?r(e).length:0}function hr(...e){return e.find((e=>void 0!==e))}let pr=42;function mr(e){const t=++pr;return e?String(e)+t:t}function gr(){pr=42}function yr(e){return vr(e)?e:`__${e}`}function vr(e){return e.startsWith("__")}function br(e){if(void 0!==e)return(e%360+360)%360}function xr(e){return!!n(e)||!isNaN(e)&&!isNaN(parseFloat(e))}const wr=Object.getPrototypeOf(structuredClone({}));function _r(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor.name!==t.constructor.name)return!1;let n,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(i=n;0!=i--;)if(!_r(e[i],t[i]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const n of e.entries())if(!t.has(n[0]))return!1;for(const n of e.entries())if(!_r(n[1],t.get(n[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e.entries())if(!t.has(n[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(i=n;0!=i--;)if(e[i]!==t[i])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&e.valueOf!==wr.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==wr.toString)return e.toString()===t.toString();const r=Object.keys(e);if(n=r.length,n!==Object.keys(t).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;0!=i--;){const n=r[i];if(!_r(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function kr(e){const t=[];return function e(n){if(n&&n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===n)return;if("number"==typeof n)return isFinite(n)?""+n:"null";if("object"!=typeof n)return JSON.stringify(n);let i,r;if(Array.isArray(n)){for(r="[",i=0;i<n.length;i++)i&&(r+=","),r+=e(n[i])||"null";return r+"]"}if(null===n)return"null";if(t.includes(n))throw new TypeError("Converting circular structure to JSON");const o=t.push(n)-1,a=Object.keys(n).sort();for(r="",i=0;i<a.length;i++){const t=a[i],o=e(n[t]);o&&(r&&(r+=","),r+=JSON.stringify(t)+":"+o)}return t.splice(o,1),`{${r}}`}(e)}function $r(e,n){return a(e)&&t(e,n)&&void 0!==e[n]}const Dr="row",Ar="column",Sr="facet",Er="x",Fr="y",Cr="x2",Mr="y2",zr="xOffset",Or="yOffset",Nr="radius",Rr="radius2",Br="theta",Tr="theta2",Pr="latitude",jr="longitude",Lr="latitude2",qr="longitude2",Ur="time",Ir="color",Wr="fill",Hr="stroke",Gr="shape",Vr="size",Yr="angle",Xr="opacity",Jr="fillOpacity",Qr="strokeOpacity",Kr="strokeWidth",Zr="strokeDash",eo="text",to="order",no="detail",io="key",ro="tooltip",oo="href",ao="url",so="description",lo={theta:1,theta2:1,radius:1,radius2:1};function uo(e){return t(lo,e)}const co={longitude:1,longitude2:1,latitude:1,latitude2:1};function fo(e){switch(e){case Pr:return"y";case Lr:return"y2";case jr:return"x";case qr:return"x2"}}function ho(e){return t(co,e)}const po=Qi(co),mo={x:1,y:1,x2:1,y2:1,...lo,...co,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,time:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1};function go(e){return e===Ir||e===Wr||e===Hr}const yo={row:1,column:1,facet:1},vo=Qi(yo),bo={...mo,...yo},xo=Qi(bo),{order:wo,detail:_o,tooltip:ko,...$o}=bo,{row:Do,column:Ao,facet:So,...Eo}=$o;function Fo(e){return t(bo,e)}const Co=[Cr,Mr,Lr,qr,Tr,Rr];function Mo(e){return zo(e)!==e}function zo(e){switch(e){case Cr:return Er;case Mr:return Fr;case Lr:return Pr;case qr:return jr;case Tr:return Br;case Rr:return Nr}return e}function Oo(e){if(uo(e))switch(e){case Br:return"startAngle";case Tr:return"endAngle";case Nr:return"outerRadius";case Rr:return"innerRadius"}return e}function No(e){switch(e){case Er:return Cr;case Fr:return Mr;case Pr:return Lr;case jr:return qr;case Br:return Tr;case Nr:return Rr}}function Ro(e){switch(e){case Er:case Cr:return"width";case Fr:case Mr:return"height"}}function Bo(e){switch(e){case Er:return"xOffset";case Fr:return"yOffset";case Cr:return"x2Offset";case Mr:return"y2Offset";case Br:return"thetaOffset";case Nr:return"radiusOffset";case Tr:return"theta2Offset";case Rr:return"radius2Offset"}}function To(e){switch(e){case Er:return"xOffset";case Fr:return"yOffset"}}function Po(e){switch(e){case"xOffset":return"x";case"yOffset":return"y"}}const jo=Qi(mo),{x:Lo,y:qo,x2:Uo,y2:Io,xOffset:Wo,yOffset:Ho,latitude:Go,longitude:Vo,latitude2:Yo,longitude2:Xo,theta:Jo,theta2:Qo,radius:Ko,radius2:Zo,...ea}=mo,ta=Qi(ea),na={x:1,y:1},ia=Qi(na);function ra(e){return t(na,e)}const oa={theta:1,radius:1},aa=Qi(oa);function sa(e){return"width"===e?Er:Fr}const la={xOffset:1,yOffset:1};function ua(e){return t(la,e)}const ca={time:1};function fa(e){return e in ca}const{text:da,tooltip:ha,href:pa,url:ma,description:ga,detail:ya,key:va,order:ba,...xa}=ea,wa=Qi(xa);const _a={...na,...oa,...la,...xa},ka=Qi(_a);function $a(e){return t(_a,e)}function Da(e,t){return function(e){switch(e){case Ir:case Wr:case Hr:case so:case no:case io:case ro:case oo:case to:case Xr:case Jr:case Qr:case Kr:case Sr:case Dr:case Ar:return Aa;case Er:case Fr:case zr:case Or:case Pr:case jr:case Ur:return Ea;case Cr:case Mr:case Lr:case qr:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case Vr:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case Zr:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case Gr:return{point:"always",geoshape:"always"};case eo:return{text:"always"};case Yr:return{point:"always",square:"always",text:"always"};case ao:return{image:"always"};case Br:case Nr:return{text:"always",arc:"always"};case Tr:case Rr:return{arc:"always"}}}(e)[t]}const Aa={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Sa,...Ea}=Aa;function Fa(e){switch(e){case Er:case Fr:case Br:case Nr:case zr:case Or:case Vr:case Yr:case Kr:case Xr:case Jr:case Qr:case Ur:case Cr:case Mr:case Tr:case Rr:return;case Sr:case Dr:case Ar:case Gr:case Zr:case eo:case ro:case oo:case ao:case so:return"discrete";case Ir:case Wr:case Hr:return"flexible";case Pr:case jr:case Lr:case qr:case no:case io:case to:return}}const Ca={argmax:1,argmin:1,average:1,count:1,distinct:1,exponential:1,exponentialb:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},Ma={count:1,min:1,max:1};function za(e){return $r(e,"argmin")}function Oa(e){return $r(e,"argmax")}function Na(e){return i(e)&&t(Ca,e)}const Ra=new Set(["count","valid","missing","distinct"]);function Ba(e){return i(e)&&Ra.has(e)}const Ta=new Set(["count","sum","distinct","valid","missing"]),Pa=new Set(["mean","average","median","q1","q3","min","max"]);function ja(e){return l(e)&&(e=kP(e,void 0)),"bin"+Qi(e).map((t=>Ia(e[t])?tr(`_${t}_${Zi(e[t])}`):tr(`_${t}_${e[t]}`))).join("")}function La(e){return!0===e||Ua(e)&&!e.binned}function qa(e){return"binned"===e||Ua(e)&&!0===e.binned}function Ua(e){return a(e)}function Ia(e){return $r(e,"param")}function Wa(e){switch(e){case Dr:case Ar:case Vr:case Ir:case Wr:case Hr:case Kr:case Xr:case Jr:case Qr:case Gr:return 6;case Zr:return 4;default:return 10}}function Ha(e){return $r(e,"expr")}function Ga(e,{level:t}={level:0}){const n=Qi(e||{}),i={};for(const r of n)i[r]=0===t?ns(e[r]):Ga(e[r],{level:t-1});return i}function Va(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:a,color:s,subtitleColor:l,subtitleFont:u,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...m}=e,g={...t?{anchor:t}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...void 0!==o?{angle:o}:{},...void 0!==a?{limit:a}:{}},y={...l?{subtitleColor:l}:{},...u?{subtitleFont:u}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}};return{titleMarkConfig:{...m,...s?{fill:s}:{}},subtitleMarkConfig:Ri(e,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:g,subtitle:y}}function Ya(e){return i(e)||u(e)&&i(e[0])}function Xa(e){return $r(e,"signal")}function Ja(e){return $r(e,"step")}function Qa(e){return!u(e)&&($r(e,"field")&&$r(e,"data"))}const Ka=Qi({aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1}),Za={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},es=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function ts(e){const t=u(e.condition)?e.condition.map(is):is(e.condition);return{...ns(e),condition:t}}function ns(e){if(Ha(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function is(e){if(Ha(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function rs(e){if(Ha(e)){const{expr:t,...n}=e;return{signal:t,...n}}return Xa(e)?e:void 0!==e?{value:e}:void 0}function os(e){return Xa(e)?e.signal:o(e.value)}function as(e){return Xa(e)?e.signal:null==e?null:o(e)}function ss(e,t,n){for(const i of n){const n=cs(i,t.markDef,t.config);void 0!==n&&(e[i]=rs(n))}return e}function ls(e){return[].concat(e.type,e.style??[])}function us(e,t,n,i={}){const{vgChannel:r,ignoreVgConfig:o}=i;return r&&$r(t,r)?t[r]:void 0!==t[e]?t[e]:!o||r&&r!==e?cs(e,t,n,i):void 0}function cs(e,t,n,{vgChannel:i}={}){const r=fs(e,t,n.style);return hr(i?r:void 0,r,i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function fs(e,t,n){return ds(e,ls(t),n)}function ds(e,t,n){let i;t=c(t);for(const r of t){const t=n[r];$r(t,e)&&(i=t[e])}return i}function hs(e,t){return c(e).reduce(((e,n)=>(e.field.push(uP(n,t)),e.order.push(n.sort??"ascending"),e)),{field:[],order:[]})}function ps(e,t){const n=[...e];return t.forEach((e=>{for(const t of n)if(_r(t,e))return;n.push(e)})),n}function ms(e,t){return _r(e,t)||!t?e:e?[...c(e),...c(t)].join(", "):t}function gs(e,t){const n=e.value,i=t.value;if(null==n||null===i)return{explicit:e.explicit,value:null};if((Ya(n)||Xa(n))&&(Ya(i)||Xa(i)))return{explicit:e.explicit,value:ms(n,i)};if(Ya(n)||Xa(n))return{explicit:e.explicit,value:n};if(Ya(i)||Xa(i))return{explicit:e.explicit,value:i};if(!(Ya(n)||Xa(n)||Ya(i)||Xa(i)))return{explicit:e.explicit,value:ps(n,i)};throw new Error("It should never reach here")}function ys(e){const t=e||y,n=[],i={};return n.add=e=>{const r=t(e);return i[r]||(i[r]=1,n.push(e)),n},n.remove=e=>{const r=t(e);if(i[r]){i[r]=0;const t=n.indexOf(e);t>=0&&n.splice(t,1)}return n},n}async function vs(e,t){try{await t(e)}catch(n){e.error(n)}}const bs=Symbol("vega_id");let xs=1;function ws(e){return!(!e||!_s(e))}function _s(e){return e[bs]}function ks(e,t){return e[bs]=t,e}function $s(e){const t=e===Object(e)?e:{data:e};return _s(t)?t:ks(t,xs++)}function Ds(e){return As(e,$s({}))}function As(e,t){for(const n in e)t[n]=e[n];return t}function Ss(e,t){return ks(t,_s(e))}function Es(e,t){return e?t?(n,i)=>e(n,i)||_s(t(n))-_s(t(i)):(t,n)=>e(t,n)||_s(t)-_s(n):null}function Fs(e){return e&&e.constructor===Cs}function Cs(){const e=[],t=[],n=[],i=[],r=[];let o=null,a=!1;return{constructor:Cs,insert(t){const n=c(t),i=n.length;for(let r=0;r<i;++r)e.push(n[r]);return this},remove(e){const n=m(e)?i:t,r=c(e),o=r.length;for(let t=0;t<o;++t)n.push(r[t]);return this},modify(e,t,i){const o={field:t,value:g(i)};return m(e)?(o.filter=e,r.push(o)):(o.tuple=e,n.push(o)),this},encode(e,t){return m(e)?r.push({filter:e,field:t}):n.push({tuple:e,field:t}),this},clean(e){return o=e,this},reflow(){return a=!0,this},pulse(s,l){const u={},c={};let f,d,h,p,m,g;for(f=0,d=l.length;f<d;++f)u[_s(l[f])]=1;for(f=0,d=t.length;f<d;++f)m=t[f],u[_s(m)]=-1;for(f=0,d=i.length;f<d;++f)p=i[f],l.forEach((e=>{p(e)&&(u[_s(e)]=-1)}));for(f=0,d=e.length;f<d;++f)m=e[f],g=_s(m),u[g]?u[g]=1:s.add.push($s(e[f]));for(f=0,d=l.length;f<d;++f)m=l[f],u[_s(m)]<0&&s.rem.push(m);function y(e,t,n){n?e[t]=n(e):s.encode=t,a||(c[_s(e)]=e)}for(f=0,d=n.length;f<d;++f)h=n[f],m=h.tuple,p=h.field,g=u[_s(m)],g>0&&(y(m,p,h.value),s.modifies(p));for(f=0,d=r.length;f<d;++f)h=r[f],p=h.filter,l.forEach((e=>{p(e)&&u[_s(e)]>0&&y(e,h.field,h.value)})),s.modifies(h.field);if(a)s.mod=t.length||i.length?l.filter((e=>u[_s(e)]>0)):l.slice();else for(g in c)s.mod.push(c[g]);return(o||null==o&&(t.length||i.length))&&s.clean(!0),s}}}const Ms="_:mod:_";function zs(){Object.defineProperty(this,Ms,{writable:!0,value:{}})}zs.prototype={set(e,t,n,i){const r=this,o=r[e],a=r[Ms];return null!=t&&t>=0?(o[t]!==n||i)&&(o[t]=n,a[t+":"+e]=-1,a[e]=-1):(o!==n||i)&&(r[e]=n,a[e]=u(n)?1+n.length:-1),r},modified(e,t){const n=this[Ms];if(!arguments.length){for(const e in n)if(n[e])return!0;return!1}if(u(e)){for(let t=0;t<e.length;++t)if(n[e[t]])return!0;return!1}return null!=t&&t>=0?t+1<n[e]||!!n[t+":"+e]:!!n[e]},clear(){return this[Ms]={},this}};let Os=0;const Ns=new zs;function Rs(e,t,n,i){this.id=++Os,this.value=e,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,t&&(this._update=t),n&&this.parameters(n,i)}function Bs(e){return function(t){const n=this.flags;return 0===arguments.length?!!(n&e):(this.flags=t?n|e:n&~e,this)}}Rs.prototype={targets(){return this._targets||(this._targets=ys(b))},set(e){return this.value!==e?(this.value=e,1):0},skip:Bs(1),modified:Bs(2),parameters(e,t,n){t=!1!==t;const i=this._argval=this._argval||new zs,r=this._argops=this._argops||[],o=[];let a,s,l,f;const d=(e,n,a)=>{a instanceof Rs?(a!==this&&(t&&a.targets().add(this),o.push(a)),r.push({op:a,name:e,index:n})):i.set(e,n,a)};for(a in e)if(s=e[a],"pulse"===a)c(s).forEach((e=>{e instanceof Rs?e!==this&&(e.targets().add(this),o.push(e)):v("Pulse parameters must be operator instances.")})),this.source=s;else if(u(s))for(i.set(a,-1,Array(l=s.length)),f=0;f<l;++f)d(a,f,s[f]);else d(a,-1,s);return this.marshall().clear(),n&&(r.initonly=!0),o},marshall(e){const t=this._argval||Ns,n=this._argops;let i,r,o,a;if(n){const s=n.length;for(r=0;r<s;++r)i=n[r],o=i.op,a=o.modified()&&o.stamp===e,t.set(i.name,i.index,o.value,a);if(n.initonly){for(r=0;r<s;++r)i=n[r],i.op.targets().remove(this);this._argops=null,this._update=null}}return t},detach(){const e=this._argops;let t,n,i,r;if(e)for(t=0,n=e.length;t<n;++t)i=e[t],r=i.op,r._targets&&r._targets.remove(this);this.pulse=null,this.source=null},evaluate(e){const t=this._update;if(t){const n=this.marshall(e.stamp),i=t.call(this,n,e);if(n.clear(),i!==this.value)this.value=i;else if(!this.modified())return e.StopPropagation}},run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?(this.skip(!1),t=0):t=this.evaluate(e),this.pulse=t||e}};let Ts=0;function Ps(e,t,n){this.id=++Ts,this.value=null,n&&(this.receive=n),e&&(this._filter=e),t&&(this._apply=t)}function js(e,t,n){return new Ps(e,t,n)}Ps.prototype={_filter:x,_apply:y,targets(){return this._targets||(this._targets=ys(b))},consume(e){return arguments.length?(this._consume=!!e,this):!!this._consume},receive(e){if(this._filter(e)){const t=this.value=this._apply(e),n=this._targets,i=n?n.length:0;for(let e=0;e<i;++e)n[e].receive(t);this._consume&&(e.preventDefault(),e.stopPropagation())}},filter(e){const t=js(e);return this.targets().add(t),t},apply(e){const t=js(null,e);return this.targets().add(t),t},merge(){const e=js();this.targets().add(e);for(let t=0,n=arguments.length;t<n;++t)arguments[t].targets().add(e);return e},throttle(e){let t=-1;return this.filter((()=>{const n=Date.now();return n-t>e?(t=n,1):0}))},debounce(e){const t=js();return this.targets().add(js(null,null,A(e,(e=>{const n=e.dataflow;t.receive(e),n&&n.run&&n.run()})))),t},between(e,t){let n=!1;return e.targets().add(js(null,null,(()=>n=!0))),t.targets().add(js(null,null,(()=>n=!1))),this.filter((()=>n))},detach(){this._filter=x,this._targets=null}};const Ls={skip:!0};function qs(e,t,n,i,r,o){const a=D({},o,Ls);let s,l;m(n)||(n=g(n)),void 0===i?s=t=>e.touch(n(t)):m(i)?(l=new Rs(null,i,r,!1),s=t=>{l.evaluate(t);const i=n(t),r=l.value;Fs(r)?e.pulse(i,r,o):e.update(i,r,a)}):s=t=>e.update(n(t),i,a),t.apply(s)}function Us(e,t,n,i,r,o){if(void 0===i)t.targets().add(n);else{const a=o||{},s=new Rs(null,function(e,t){return t=m(t)?t:g(t),e?function(n,i){const r=t(n,i);return e.skip()||(e.skip(r!==this.value).value=r),r}:t}(n,i),r,!1);s.modified(a.force),s.rank=t.rank,t.targets().add(s),n&&(s.skip(!0),s.value=n.value,s.targets().add(n),e.connect(n,[s]))}}const Is={};function Ws(e,t,n){this.dataflow=e,this.stamp=null==t?-1:t,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function Hs(e,t){const n=[];return w(e,t,(e=>n.push(e))),n}function Gs(e,t){const n={};return e.visit(t,(e=>{n[_s(e)]=1})),e=>n[_s(e)]?null:e}function Vs(e,t){return e?(n,i)=>e(n,i)&&t(n,i):t}function Ys(e,t,n,i){const r=this;let o=0;this.dataflow=e,this.stamp=t,this.fields=null,this.encode=i||null,this.pulses=n;for(const a of n)if(a.stamp===t){if(a.fields){const e=r.fields||(r.fields={});for(const t in a.fields)e[t]=1}a.changed(r.ADD)&&(o|=r.ADD),a.changed(r.REM)&&(o|=r.REM),a.changed(r.MOD)&&(o|=r.MOD)}this.changes=o}function Xs(e){return e.error("Dataflow already running. Use runAsync() to chain invocations."),e}Ws.prototype={StopPropagation:Is,ADD:1,REM:2,MOD:4,ADD_REM:3,ADD_MOD:5,ALL:7,REFLOW:8,SOURCE:16,NO_SOURCE:32,NO_FIELDS:64,fork(e){return new Ws(this.dataflow).init(this,e)},clone(){const e=this.fork(7);return e.add=e.add.slice(),e.rem=e.rem.slice(),e.mod=e.mod.slice(),e.source&&(e.source=e.source.slice()),e.materialize(23)},addAll(){let e=this;return!e.source||e.add===e.rem||!e.rem.length&&e.source.length===e.add.length||(e=new Ws(this.dataflow).init(this),e.add=e.source,e.rem=[]),e},init(e,t){const n=this;return n.stamp=e.stamp,n.encode=e.encode,!e.fields||64&t||(n.fields=e.fields),1&t?(n.addF=e.addF,n.add=e.add):(n.addF=null,n.add=[]),2&t?(n.remF=e.remF,n.rem=e.rem):(n.remF=null,n.rem=[]),4&t?(n.modF=e.modF,n.mod=e.mod):(n.modF=null,n.mod=[]),32&t?(n.srcF=null,n.source=null):(n.srcF=e.srcF,n.source=e.source,e.cleans&&(n.cleans=e.cleans)),n},runAfter(e){this.dataflow.runAfter(e)},changed(e){const t=e||7;return 1&t&&this.add.length||2&t&&this.rem.length||4&t&&this.mod.length},reflow(e){if(e)return this.fork(7).reflow();const t=this.add.length,n=this.source&&this.source.length;return n&&n!==t&&(this.mod=this.source,t&&this.filter(4,Gs(this,1))),this},clean(e){return arguments.length?(this.cleans=!!e,this):this.cleans},modifies(e){const t=this.fields||(this.fields={});return u(e)?e.forEach((e=>t[e]=!0)):t[e]=!0,this},modified(e,t){const n=this.fields;return!(!t&&!this.mod.length||!n)&&(arguments.length?u(e)?e.some((e=>n[e])):n[e]:!!n)},filter(e,t){const n=this;return 1&e&&(n.addF=Vs(n.addF,t)),2&e&&(n.remF=Vs(n.remF,t)),4&e&&(n.modF=Vs(n.modF,t)),16&e&&(n.srcF=Vs(n.srcF,t)),n},materialize(e){const t=this;return 1&(e=e||7)&&t.addF&&(t.add=Hs(t.add,t.addF),t.addF=null),2&e&&t.remF&&(t.rem=Hs(t.rem,t.remF),t.remF=null),4&e&&t.modF&&(t.mod=Hs(t.mod,t.modF),t.modF=null),16&e&&t.srcF&&(t.source=t.source.filter(t.srcF),t.srcF=null),t},visit(e,t){const n=this,i=t;if(16&e)return w(n.source,n.srcF,i),n;1&e&&w(n.add,n.addF,i),2&e&&w(n.rem,n.remF,i),4&e&&w(n.mod,n.modF,i);const r=n.source;if(8&e&&r){const e=n.add.length+n.mod.length;e===r.length||w(r,e?Gs(n,5):n.srcF,i)}return n}},_(Ys,Ws,{fork(e){const t=new Ws(this.dataflow).init(this,e&this.NO_FIELDS);return void 0!==e&&(e&t.ADD&&this.visit(t.ADD,(e=>t.add.push(e))),e&t.REM&&this.visit(t.REM,(e=>t.rem.push(e))),e&t.MOD&&this.visit(t.MOD,(e=>t.mod.push(e)))),t},changed(e){return this.changes&e},modified(e){const t=this,n=t.fields;return n&&t.changes&t.MOD?u(e)?e.some((e=>n[e])):n[e]:0},filter(){v("MultiPulse does not support filtering.")},materialize(){v("MultiPulse does not support materialization.")},visit(e,t){const n=this,i=n.pulses,r=i.length;let o=0;if(e&n.SOURCE)for(;o<r;++o)i[o].visit(e,t);else for(;o<r;++o)i[o].stamp===n.stamp&&i[o].visit(e,t);return n}});const Js={skip:!1,force:!1};function Qs(e){let t=[];return{clear:()=>t=[],size:()=>t.length,peek:()=>t[0],push:n=>(t.push(n),Ks(t,0,t.length-1,e)),pop:()=>{const n=t.pop();let i;return t.length?(i=t[0],t[0]=n,function(e,t,n){const i=t,r=e.length,o=e[t];let a,s=1+(t<<1);for(;s<r;)a=s+1,a<r&&n(e[s],e[a])>=0&&(s=a),e[t]=e[s],s=1+((t=s)<<1);e[t]=o,Ks(e,i,t,n)}(t,0,e)):i=n,i}}}function Ks(e,t,n,i){let r,o;const a=e[n];for(;n>t&&(o=n-1>>1,r=e[o],i(a,r)<0);)e[n]=r,n=o;return e[n]=a}function Zs(){this.logger(f()),this.logLevel(d),this._clock=0,this._rank=0,this._locale=h();try{this._loader=p()}catch(e){}this._touched=ys(b),this._input={},this._pulse=null,this._heap=Qs(((e,t)=>e.qrank-t.qrank)),this._postrun=[]}function el(e){return function(){return this._log[e].apply(this,arguments)}}function tl(e,t){Rs.call(this,e,null,t)}Zs.prototype={stamp(){return this._clock},loader(e){return arguments.length?(this._loader=e,this):this._loader},locale(e){return arguments.length?(this._locale=e,this):this._locale},logger(e){return arguments.length?(this._log=e,this):this._log},error:el("error"),warn:el("warn"),info:el("info"),debug:el("debug"),logLevel:el("level"),cleanThreshold:1e4,add:function(e,t,n,i){let r,o=1;return e instanceof Rs?r=e:e&&e.prototype instanceof Rs?r=new e:m(e)?r=new Rs(null,e):(o=0,r=new Rs(e,t)),this.rank(r),o&&(i=n,n=t),n&&this.connect(r,r.parameters(n,i)),this.touch(r),r},connect:function(e,t){const n=e.rank,i=t.length;for(let r=0;r<i;++r)if(n<t[r].rank)return void this.rerank(e)},rank:function(e){e.rank=++this._rank},rerank:function(e){const t=[e];let n,i,r;for(;t.length;)if(this.rank(n=t.pop()),i=n._targets)for(r=i.length;--r>=0;)t.push(n=i[r]),n===e&&v("Cycle detected in dataflow graph.")},pulse:function(e,t,n){this.touch(e,n||Js);const i=new Ws(this,this._clock+(this._pulse?0:1)),r=e.pulse&&e.pulse.source||[];return i.target=e,this._input[e.id]=t.pulse(i,r),this},touch:function(e,t){const n=t||Js;return this._pulse?this._enqueue(e):this._touched.add(e),n.skip&&e.skip(!0),this},update:function(e,t,n){const i=n||Js;return(e.set(t)||i.force)&&this.touch(e,i),this},changeset:Cs,ingest:function(e,t,n){return t=this.parse(t,n),this.pulse(e,this.changeset().insert(t))},parse:function(e,t){const n=this.locale();return $(e,t,n.timeParse,n.utcParse)},preload:async function(e,t,n){const i=this,r=i._pending||function(e){let t;const n=new Promise((e=>t=e));return n.requests=0,n.done=()=>{0==--n.requests&&(e._pending=null,t(e))},e._pending=n}(i);r.requests+=1;const o=await i.request(t,n);return i.pulse(e,i.changeset().remove(x).insert(o.data||[])),r.done(),o},request:async function(e,t){const n=this;let i,r=0;try{i=await n.loader().load(e,{context:"dataflow",response:k(t&&t.type)});try{i=n.parse(i,t)}catch(o){r=-2,n.warn("Data ingestion failed",e,o)}}catch(o){r=-1,n.warn("Loading failed",e,o)}return{data:i,status:r}},events:function(e,t,n,i){const r=this,o=js(n,i),a=function(e){e.dataflow=r;try{o.receive(e)}catch(t){r.error(t)}finally{r.run()}};let s;s="string"==typeof e&&"undefined"!=typeof document?document.querySelectorAll(e):c(e);const l=s.length;for(let u=0;u<l;++u)s[u].addEventListener(t,a);return o},on:function(e,t,n,i,r){return(e instanceof Rs?Us:qs)(this,e,t,n,i,r),this},evaluate:async function(e,t,n){const i=this,r=[];if(i._pulse)return Xs(i);if(i._pending&&await i._pending,t&&await vs(i,t),!i._touched.length)return i.debug("Dataflow invoked, but nothing to do."),i;const o=++i._clock;i._pulse=new Ws(i,o,e),i._touched.forEach((e=>i._enqueue(e,!0))),i._touched=ys(b);let a,s,l,u=0;try{for(;i._heap.size()>0;)a=i._heap.pop(),a.rank===a.qrank?(s=a.run(i._getPulse(a,e)),s.then?s=await s:s.async&&(r.push(s.async),s=Is),s!==Is&&a._targets&&a._targets.forEach((e=>i._enqueue(e))),++u):i._enqueue(a,!0)}catch(c){i._heap.clear(),l=c}if(i._input={},i._pulse=null,i.debug(`Pulse ${o}: ${u} operators`),l&&(i._postrun=[],i.error(l)),i._postrun.length){const e=i._postrun.sort(((e,t)=>t.priority-e.priority));i._postrun=[];for(let t=0;t<e.length;++t)await vs(i,e[t].callback)}return n&&await vs(i,n),r.length&&Promise.all(r).then((e=>i.runAsync(null,(()=>{e.forEach((e=>{try{e(i)}catch(c){i.error(c)}}))})))),i},run:function(e,t,n){return this._pulse?Xs(this):(this.evaluate(e,t,n),this)},runAsync:async function(e,t,n){for(;this._running;)await this._running;const i=()=>this._running=null;return(this._running=this.evaluate(e,t,n)).then(i,i),this._running},runAfter:function(e,t,n){if(this._pulse||t)this._postrun.push({priority:n||0,callback:e});else try{e(this)}catch(i){this.error(i)}},_enqueue:function(e,t){const n=e.stamp<this._clock;n&&(e.stamp=this._clock),(n||t)&&(e.qrank=e.rank,this._heap.push(e))},_getPulse:function(e,t){const n=e.source,i=this._clock;return n&&u(n)?new Ys(this,i,n.map((e=>e.pulse)),t):this._input[e.id]||function(e,t){if(t&&t.stamp===e.stamp)return t;e=e.fork(),t&&t!==Is&&(e.source=t.source);return e}(this._pulse,n&&n.pulse)}},_(tl,Rs,{run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?this.skip(!1):t=this.evaluate(e),t=t||e,t.then?t=t.then((e=>this.pulse=e)):t!==e.StopPropagation&&(this.pulse=t),t},evaluate(e){const t=this.marshall(e.stamp),n=this.transform(t,e);return t.clear(),n},transform(){}});const nl={};function il(e){const t=rl(e);return t&&t.Definition||null}function rl(e){return e=e&&e.toLowerCase(),t(nl,e)?nl[e]:null}function*ol(e,t){if(null==t)for(let n of e)null!=n&&""!==n&&(n=+n)>=n&&(yield n);else{let n=-1;for(let i of e)i=t(i,++n,e),null!=i&&""!==i&&(i=+i)>=i&&(yield i)}}function al(t,n,i){const r=Float64Array.from(ol(t,i));return r.sort(e),n.map((e=>ii(r,e)))}function sl(e,t){return al(e,[.25,.5,.75],t)}function ll(e,t){const n=e.length,i=function(e,t){const n=function(e,t){let n,i=0,r=0,o=0;if(void 0===t)for(let a of e)null!=a&&(a=+a)>=a&&(n=a-r,r+=n/++i,o+=n*(a-r));else{let a=-1;for(let s of e)null!=(s=t(s,++a,e))&&(s=+s)>=s&&(n=s-r,r+=n/++i,o+=n*(s-r))}if(i>1)return o/(i-1)}(e,t);return n?Math.sqrt(n):n}(e,t),r=sl(e,t),o=(r[2]-r[0])/1.34;return 1.06*(Math.min(i,o)||i||Math.abs(r[0])||1)*Math.pow(n,-.2)}function ul(e){const t=e.maxbins||20,n=e.base||10,i=Math.log(n),r=e.divide||[5,2];let o,a,s,l,u,c,f=e.extent[0],d=e.extent[1];const h=e.span||d-f||Math.abs(f)||1;if(e.step)o=e.step;else if(e.steps){for(l=h/t,u=0,c=e.steps.length;u<c&&e.steps[u]<l;++u);o=e.steps[Math.max(0,u-1)]}else{for(a=Math.ceil(Math.log(t)/i),s=e.minstep||0,o=Math.max(s,Math.pow(n,Math.round(Math.log(h)/i)-a));Math.ceil(h/o)>t;)o*=n;for(u=0,c=r.length;u<c;++u)l=o/r[u],l>=s&&h/l<=t&&(o=l)}l=Math.log(o);const p=l>=0?0:1+~~(-l/i),m=Math.pow(n,-p-1);return(e.nice||void 0===e.nice)&&(l=Math.floor(f/o+m)*o,f=f<l?l-o:l,d=Math.ceil(d/o)*o),{start:f,stop:d===f?f+o:d,step:o}}var cl=Math.random;function fl(t,n,i,r){if(!t.length)return[void 0,void 0];const o=Float64Array.from(ol(t,r)),a=o.length,s=n;let l,u,c,f;for(c=0,f=Array(s);c<s;++c){for(l=0,u=0;u<a;++u)l+=o[~~(cl()*a)];f[c]=l/a}return f.sort(e),[ni(f,i/2),ni(f,1-i/2)]}function dl(e,t,n,i){i=i||(e=>e);const r=e.length,o=new Float64Array(r);let a,s=0,l=1,u=i(e[0]),c=u,f=u+t;for(;l<r;++l){if(a=i(e[l]),a>=f){for(c=(u+c)/2;s<l;++s)o[s]=c;f=a+t,u=a}c=a}for(c=(u+c)/2;s<l;++s)o[s]=c;return n?function(e,t){const n=e.length;let i,r,o=0,a=1;for(;e[o]===e[a];)++a;for(;a<n;){for(i=a+1;e[a]===e[i];)++i;if(e[a]-e[a-1]<t){for(r=a+(o+i-a-a>>1);r<a;)e[r++]=e[a];for(;r>a;)e[r--]=e[o]}o=a,a=i}return e}(o,t+t/4):o}const hl=Math.sqrt(2*Math.PI),pl=Math.SQRT2;let ml=NaN;function gl(e,t){e=e||0,t=null==t?1:t;let n,i,r=0,o=0;if(ml==ml)r=ml,ml=NaN;else{do{r=2*cl()-1,o=2*cl()-1,n=r*r+o*o}while(0===n||n>1);i=Math.sqrt(-2*Math.log(n)/n),r*=i,ml=o*i}return e+r*t}function yl(e,t,n){const i=(e-(t||0))/(n=null==n?1:n);return Math.exp(-.5*i*i)/(n*hl)}function vl(e,t,n){const i=(e-(t=t||0))/(n=null==n?1:n),r=Math.abs(i);let o;if(r>37)o=0;else{const e=Math.exp(-r*r/2);let t;r<7.07106781186547?(t=.0352624965998911*r+.700383064443688,t=t*r+6.37396220353165,t=t*r+33.912866078383,t=t*r+112.079291497871,t=t*r+221.213596169931,t=t*r+220.206867912376,o=e*t,t=.0883883476483184*r+1.75566716318264,t=t*r+16.064177579207,t=t*r+86.7807322029461,t=t*r+296.564248779674,t=t*r+637.333633378831,t=t*r+793.826512519948,t=t*r+440.413735824752,o/=t):(t=r+.65,t=r+4/t,t=r+3/t,t=r+2/t,t=r+1/t,o=e/t/2.506628274631)}return i>0?1-o:o}function bl(e,t,n){return e<0||e>1?NaN:(t||0)+(null==n?1:n)*pl*function(e){let t,n=-Math.log((1-e)*(1+e));n<6.25?(n-=3.125,t=-364441206401782e-35,t=t*n-16850591381820166e-35,t=128584807152564e-32+t*n,t=11157877678025181e-33+t*n,t=t*n-1333171662854621e-31,t=20972767875968562e-33+t*n,t=6637638134358324e-30+t*n,t=t*n-4054566272975207e-29,t=t*n-8151934197605472e-29,t=26335093153082323e-28+t*n,t=t*n-12975133253453532e-27,t=t*n-5415412054294628e-26,t=1.0512122733215323e-9+t*n,t=t*n-4.112633980346984e-9,t=t*n-2.9070369957882005e-8,t=4.2347877827932404e-7+t*n,t=t*n-13654692000834679e-22,t=t*n-13882523362786469e-21,t=.00018673420803405714+t*n,t=t*n-.000740702534166267,t=t*n-.006033670871430149,t=.24015818242558962+t*n,t=1.6536545626831027+t*n):n<16?(n=Math.sqrt(n)-3.25,t=2.2137376921775787e-9,t=9.075656193888539e-8+t*n,t=t*n-2.7517406297064545e-7,t=1.8239629214389228e-8+t*n,t=15027403968909828e-22+t*n,t=t*n-4013867526981546e-21,t=29234449089955446e-22+t*n,t=12475304481671779e-21+t*n,t=t*n-47318229009055734e-21,t=6828485145957318e-20+t*n,t=24031110387097894e-21+t*n,t=t*n-.0003550375203628475,t=.0009532893797373805+t*n,t=t*n-.0016882755560235047,t=.002491442096107851+t*n,t=t*n-.003751208507569241,t=.005370914553590064+t*n,t=1.0052589676941592+t*n,t=3.0838856104922208+t*n):Number.isFinite(n)?(n=Math.sqrt(n)-5,t=-27109920616438573e-27,t=t*n-2.555641816996525e-10,t=1.5076572693500548e-9+t*n,t=t*n-3.789465440126737e-9,t=7.61570120807834e-9+t*n,t=t*n-1.496002662714924e-8,t=2.914795345090108e-8+t*n,t=t*n-6.771199775845234e-8,t=2.2900482228026655e-7+t*n,t=t*n-9.9298272942317e-7,t=4526062597223154e-21+t*n,t=t*n-1968177810553167e-20,t=7599527703001776e-20+t*n,t=t*n-.00021503011930044477,t=t*n-.00013871931833623122,t=1.0103004648645344+t*n,t=4.849906401408584+t*n):t=1/0;return t*e}(2*e-1)}function xl(e,t){let n,i;const r={mean(e){return arguments.length?(n=e||0,r):n},stdev(e){return arguments.length?(i=null==e?1:e,r):i},sample:()=>gl(n,i),pdf:e=>yl(e,n,i),cdf:e=>vl(e,n,i),icdf:e=>bl(e,n,i)};return r.mean(e).stdev(t)}function wl(e,t){const n=xl();let i=0;const r={data(n){return arguments.length?(e=n,i=n?n.length:0,r.bandwidth(t)):e},bandwidth(n){return arguments.length?(!(t=n)&&e&&(t=ll(e)),r):t},sample:()=>e[~~(cl()*i)]+t*n.sample(),pdf(r){let o=0,a=0;for(;a<i;++a)o+=n.pdf((r-e[a])/t);return o/t/i},cdf(r){let o=0,a=0;for(;a<i;++a)o+=n.cdf((r-e[a])/t);return o/i},icdf(){throw Error("KDE icdf not supported.")}};return r.data(e)}function _l(e,t){return e=e||0,t=null==t?1:t,Math.exp(e+gl()*t)}function kl(e,t,n){if(e<=0)return 0;t=t||0,n=null==n?1:n;const i=(Math.log(e)-t)/n;return Math.exp(-.5*i*i)/(n*hl*e)}function $l(e,t,n){return vl(Math.log(e),t,n)}function Dl(e,t,n){return Math.exp(bl(e,t,n))}function Al(e,t){let n,i;const r={mean(e){return arguments.length?(n=e||0,r):n},stdev(e){return arguments.length?(i=null==e?1:e,r):i},sample:()=>_l(n,i),pdf:e=>kl(e,n,i),cdf:e=>$l(e,n,i),icdf:e=>Dl(e,n,i)};return r.mean(e).stdev(t)}function Sl(e,t){let n,i=0;const r={weights(e){return arguments.length?(n=function(e){const t=[];let n,r=0;for(n=0;n<i;++n)r+=t[n]=null==e[n]?1:+e[n];for(n=0;n<i;++n)t[n]/=r;return t}(t=e||[]),r):t},distributions(n){return arguments.length?(n?(i=n.length,e=n):(i=0,e=[]),r.weights(t)):e},sample(){const t=cl();let r=e[i-1],o=n[0],a=0;for(;a<i-1;o+=n[++a])if(t<o){r=e[a];break}return r.sample()},pdf(t){let r=0,o=0;for(;o<i;++o)r+=n[o]*e[o].pdf(t);return r},cdf(t){let r=0,o=0;for(;o<i;++o)r+=n[o]*e[o].cdf(t);return r},icdf(){throw Error("Mixture icdf not supported.")}};return r.distributions(e).weights(t)}function El(e,t){return null==t&&(t=null==e?1:e,e=0),e+(t-e)*cl()}function Fl(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=t&&e<=n?1/(n-t):0}function Cl(e,t,n){return null==n&&(n=null==t?1:t,t=0),e<t?0:e>n?1:(e-t)/(n-t)}function Ml(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=0&&e<=1?t+e*(n-t):NaN}function zl(e,t){let n,i;const r={min(e){return arguments.length?(n=e||0,r):n},max(e){return arguments.length?(i=null==e?1:e,r):i},sample:()=>El(n,i),pdf:e=>Fl(e,n,i),cdf:e=>Cl(e,n,i),icdf:e=>Ml(e,n,i)};return null==t&&(t=null==e?1:e,e=0),r.min(e).max(t)}function Ol(e,t,n){let i=0,r=0;for(const o of e){const e=n(o);null==t(o)||null==e||isNaN(e)||(i+=(e-i)/++r)}return{coef:[i],predict:()=>i,rSquared:0}}function Nl(e,t,n,i){const r=i-e*e,o=Math.abs(r)<1e-24?0:(n-e*t)/r;return[t-o*e,o]}function Rl(e,t,n,i){e=e.filter((e=>{let i=t(e),r=n(e);return null!=i&&(i=+i)>=i&&null!=r&&(r=+r)>=r})),i&&e.sort(((e,n)=>t(e)-t(n)));const r=e.length,o=new Float64Array(r),a=new Float64Array(r);let s,l,u,c=0,f=0,d=0;for(u of e)o[c]=s=+t(u),a[c]=l=+n(u),++c,f+=(s-f)/c,d+=(l-d)/c;for(c=0;c<r;++c)o[c]-=f,a[c]-=d;return[o,a,f,d]}function Bl(e,t,n,i){let r,o,a=-1;for(const s of e)r=t(s),o=n(s),null!=r&&(r=+r)>=r&&null!=o&&(o=+o)>=o&&i(r,o,++a)}function Tl(e,t,n,i,r){let o=0,a=0;return Bl(e,t,n,((e,t)=>{const n=t-r(e),s=t-i;o+=n*n,a+=s*s})),1-o/a}function Pl(e,t,n){let i=0,r=0,o=0,a=0,s=0;Bl(e,t,n,((e,t)=>{++s,i+=(e-i)/s,r+=(t-r)/s,o+=(e*t-o)/s,a+=(e*e-a)/s}));const l=Nl(i,r,o,a),u=e=>l[0]+l[1]*e;return{coef:l,predict:u,rSquared:Tl(e,t,n,r,u)}}function jl(e,t,n){let i=0,r=0,o=0,a=0,s=0;Bl(e,t,n,((e,t)=>{++s,e=Math.log(e),i+=(e-i)/s,r+=(t-r)/s,o+=(e*t-o)/s,a+=(e*e-a)/s}));const l=Nl(i,r,o,a),u=e=>l[0]+l[1]*Math.log(e);return{coef:l,predict:u,rSquared:Tl(e,t,n,r,u)}}function Ll(e,t,n){const[i,r,o,a]=Rl(e,t,n);let s,l,u,c=0,f=0,d=0,h=0,p=0;Bl(e,t,n,((e,t)=>{s=i[p++],l=Math.log(t),u=s*t,c+=(t*l-c)/p,f+=(u-f)/p,d+=(u*l-d)/p,h+=(s*u-h)/p}));const[m,g]=Nl(f/a,c/a,d/a,h/a),y=e=>Math.exp(m+g*(e-o));return{coef:[Math.exp(m-g*o),g],predict:y,rSquared:Tl(e,t,n,a,y)}}function ql(e,t,n){let i=0,r=0,o=0,a=0,s=0,l=0;Bl(e,t,n,((e,t)=>{const n=Math.log(e),u=Math.log(t);++l,i+=(n-i)/l,r+=(u-r)/l,o+=(n*u-o)/l,a+=(n*n-a)/l,s+=(t-s)/l}));const u=Nl(i,r,o,a),c=e=>u[0]*Math.pow(e,u[1]);return u[0]=Math.exp(u[0]),{coef:u,predict:c,rSquared:Tl(e,t,n,s,c)}}function Ul(e,t,n){const[i,r,o,a]=Rl(e,t,n),s=i.length;let l,u,c,f,d=0,h=0,p=0,m=0,g=0;for(l=0;l<s;)u=i[l],c=r[l++],f=u*u,d+=(f-d)/l,h+=(f*u-h)/l,p+=(f*f-p)/l,m+=(u*c-m)/l,g+=(f*c-g)/l;const y=p-d*d,v=d*y-h*h,b=(g*d-m*h)/v,x=(m*y-g*h)/v,w=-b*d,_=e=>b*(e-=o)*e+x*e+w+a;return{coef:[w-x*o+b*o*o+a,x-2*b*o,b],predict:_,rSquared:Tl(e,t,n,a,_)}}function Il(e,t,n,i){if(0===i)return Ol(e,t,n);if(1===i)return Pl(e,t,n);if(2===i)return Ul(e,t,n);const[r,o,a,s]=Rl(e,t,n),l=r.length,u=[],c=[],f=i+1;let d,h,p,m,g;for(d=0;d<f;++d){for(p=0,m=0;p<l;++p)m+=Math.pow(r[p],d)*o[p];for(u.push(m),g=new Float64Array(f),h=0;h<f;++h){for(p=0,m=0;p<l;++p)m+=Math.pow(r[p],d+h);g[h]=m}c.push(g)}c.push(u);const y=function(e){const t=e.length-1,n=[];let i,r,o,a,s;for(i=0;i<t;++i){for(a=i,r=i+1;r<t;++r)Math.abs(e[i][r])>Math.abs(e[i][a])&&(a=r);for(o=i;o<t+1;++o)s=e[o][i],e[o][i]=e[o][a],e[o][a]=s;for(r=i+1;r<t;++r)for(o=t;o>=i;o--)e[o][r]-=e[o][i]*e[i][r]/e[i][i]}for(r=t-1;r>=0;--r){for(s=0,o=r+1;o<t;++o)s+=e[o][r]*n[o];n[r]=(e[t][r]-s)/e[r][r]}return n}(c),v=e=>{e-=a;let t=s+y[0]+y[1]*e+y[2]*e*e;for(d=3;d<f;++d)t+=y[d]*Math.pow(e,d);return t};return{coef:Wl(f,y,-a,s),predict:v,rSquared:Tl(e,t,n,s,v)}}function Wl(e,t,n,i){const r=Array(e);let o,a,s,l;for(o=0;o<e;++o)r[o]=0;for(o=e-1;o>=0;--o)for(s=t[o],l=1,r[o]+=s,a=1;a<=o;++a)l*=(o+1-a)/a,r[o-a]+=s*Math.pow(n,a)*l;return r[0]+=i,r}function Hl(e,t,n,i){const[r,o,a,s]=Rl(e,t,n,!0),l=r.length,u=Math.max(2,~~(i*l)),c=new Float64Array(l),f=new Float64Array(l),d=new Float64Array(l).fill(1);for(let h=-1;++h<=2;){const e=[0,u-1];for(let n=0;n<l;++n){const t=r[n],i=e[0],a=e[1],s=t-r[i]>r[a]-t?i:a;let l=0,u=0,h=0,p=0,m=0;const g=1/Math.abs(r[s]-t||1);for(let e=i;e<=a;++e){const n=r[e],i=o[e],a=Gl(Math.abs(t-n)*g)*d[e],s=n*a;l+=a,u+=s,h+=i*a,p+=i*s,m+=n*s}const[y,v]=Nl(u/l,h/l,p/l,m/l);c[n]=y+v*t,f[n]=Math.abs(o[n]-c[n]),Vl(r,n+1,e)}if(2===h)break;const t=ri(f);if(Math.abs(t)<1e-12)break;for(let n,i,r=0;r<l;++r)n=f[r]/(6*t),d[r]=n>=1?1e-12:(i=1-n*n)*i}return function(e,t,n,i){const r=e.length,o=[];let a,s=0,l=0,u=[];for(;s<r;++s)a=e[s]+n,u[0]===a?u[1]+=(t[s]-u[1])/++l:(l=0,u[1]+=i,u=[a,t[s]],o.push(u));return u[1]+=i,o}(r,c,a,s)}function Gl(e){return(e=1-e*e*e)*e*e}function Vl(e,t,n){const i=e[t];let r=n[0],o=n[1]+1;if(!(o>=e.length))for(;t>r&&e[o]-i<=i-e[r];)n[0]=++r,n[1]=o,++o}const Yl=.5*Math.PI/180;function Xl(e,t,n,i){n=n||25,i=Math.max(n,i||200);const r=t=>[t,e(t)],o=t[0],a=t[1],s=a-o,l=s/i,u=[r(o)],c=[];if(n===i){for(let e=1;e<i;++e)u.push(r(o+e/n*s));return u.push(r(a)),u}c.push(r(a));for(let m=n;--m>0;)c.push(r(o+m/n*s));let f=u[0],d=c[c.length-1];const h=1/s,p=function(e,t){let n=e,i=e;const r=t.length;for(let o=0;o<r;++o){const e=t[o][1];e<n&&(n=e),e>i&&(i=e)}return 1/(i-n)}(f[1],c);for(;d;){const e=r((f[0]+d[0])/2);e[0]-f[0]>=l&&Jl(f,e,d,h,p)>Yl?c.push(e):(f=d,u.push(d),c.pop()),d=c[c.length-1]}return u}function Jl(e,t,n,i,r){const o=Math.atan2(r*(n[1]-e[1]),i*(n[0]-e[0])),a=Math.atan2(r*(t[1]-e[1]),i*(t[0]-e[0]));return Math.abs(o-a)}function Ql(e){return e&&e.length?1===e.length?e[0]:(t=e,e=>{const n=t.length;let i=1,r=String(t[0](e));for(;i<n;++i)r+="|"+t[i](e);return r}):function(){return""};var t}function Kl(e,t,n){return n||e+(t?"_"+t:"")}const Zl=()=>{},eu={init:Zl,add:Zl,rem:Zl,idx:0},tu={values:{init:e=>e.cell.store=!0,value:e=>e.cell.data.values(),idx:-1},count:{value:e=>e.cell.num},__count__:{value:e=>e.missing+e.valid},missing:{value:e=>e.missing},valid:{value:e=>e.valid},sum:{init:e=>e.sum=0,value:e=>e.valid?e.sum:void 0,add:(e,t)=>e.sum+=+t,rem:(e,t)=>e.sum-=t},product:{init:e=>e.product=1,value:e=>e.valid?e.product:void 0,add:(e,t)=>e.product*=t,rem:(e,t)=>e.product/=t},mean:{init:e=>e.mean=0,value:e=>e.valid?e.mean:void 0,add:(e,t)=>(e.mean_d=t-e.mean,e.mean+=e.mean_d/e.valid),rem:(e,t)=>(e.mean_d=t-e.mean,e.mean-=e.valid?e.mean_d/e.valid:e.mean)},average:{value:e=>e.valid?e.mean:void 0,req:["mean"],idx:1},variance:{init:e=>e.dev=0,value:e=>e.valid>1?e.dev/(e.valid-1):void 0,add:(e,t)=>e.dev+=e.mean_d*(t-e.mean),rem:(e,t)=>e.dev-=e.mean_d*(t-e.mean),req:["mean"],idx:1},variancep:{value:e=>e.valid>1?e.dev/e.valid:void 0,req:["variance"],idx:2},stdev:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:e=>e.valid>1?Math.sqrt(e.dev/e.valid):void 0,req:["variance"],idx:2},stderr:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid*(e.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:e=>e.cell.data.distinct(e.get),req:["values"],idx:3},ci0:{value:e=>e.cell.data.ci0(e.get),req:["values"],idx:3},ci1:{value:e=>e.cell.data.ci1(e.get),req:["values"],idx:3},median:{value:e=>e.cell.data.q2(e.get),req:["values"],idx:3},q1:{value:e=>e.cell.data.q1(e.get),req:["values"],idx:3},q3:{value:e=>e.cell.data.q3(e.get),req:["values"],idx:3},min:{init:e=>e.min=void 0,value:e=>e.min=Number.isNaN(e.min)?e.cell.data.min(e.get):e.min,add:(e,t)=>{(t<e.min||void 0===e.min)&&(e.min=t)},rem:(e,t)=>{t<=e.min&&(e.min=NaN)},req:["values"],idx:4},max:{init:e=>e.max=void 0,value:e=>e.max=Number.isNaN(e.max)?e.cell.data.max(e.get):e.max,add:(e,t)=>{(t>e.max||void 0===e.max)&&(e.max=t)},rem:(e,t)=>{t>=e.max&&(e.max=NaN)},req:["values"],idx:4},argmin:{init:e=>e.argmin=void 0,value:e=>e.argmin||e.cell.data.argmin(e.get),add:(e,t,n)=>{t<e.min&&(e.argmin=n)},rem:(e,t)=>{t<=e.min&&(e.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:e=>e.argmax=void 0,value:e=>e.argmax||e.cell.data.argmax(e.get),add:(e,t,n)=>{t>e.max&&(e.argmax=n)},rem:(e,t)=>{t>=e.max&&(e.argmax=void 0)},req:["max","values"],idx:3},exponential:{init:(e,t)=>{e.exp=0,e.exp_r=t},value:e=>e.valid?e.exp*(1-e.exp_r)/(1-e.exp_r**e.valid):void 0,add:(e,t)=>e.exp=e.exp_r*e.exp+t,rem:(e,t)=>e.exp=(e.exp-t/e.exp_r**(e.valid-1))/e.exp_r},exponentialb:{value:e=>e.valid?e.exp*(1-e.exp_r):void 0,req:["exponential"],idx:1}},nu=Object.keys(tu).filter((e=>"__count__"!==e));function iu(e,t,n){return tu[e](n,t)}function ru(e,t){return e.idx-t.idx}function ou(){this.valid=0,this.missing=0,this._ops.forEach((e=>null==e.aggregate_param?e.init(this):e.init(this,e.aggregate_param)))}function au(e,t){null!=e&&""!==e?e==e&&(++this.valid,this._ops.forEach((n=>n.add(this,e,t)))):++this.missing}function su(e,t){null!=e&&""!==e?e==e&&(--this.valid,this._ops.forEach((n=>n.rem(this,e,t)))):--this.missing}function lu(e){return this._out.forEach((t=>e[t.out]=t.value(this))),e}function uu(e,t){const n=t||y,i=function(e){const t={};e.forEach((e=>t[e.name]=e));const n=e=>{e.req&&e.req.forEach((e=>{t[e]||n(t[e]=tu[e]())}))};return e.forEach(n),Object.values(t).sort(ru)}(e),r=e.slice().sort(ru);function o(e){this._ops=i,this._out=r,this.cell=e,this.init()}return o.prototype.init=ou,o.prototype.add=au,o.prototype.rem=su,o.prototype.set=lu,o.prototype.get=n,o.fields=e.map((e=>e.out)),o}function cu(e){this._key=e?q(e):_s,this.reset()}[...nu,"__count__"].forEach((e=>{tu[e]=function(e,t){return(n,i)=>D({name:e,aggregate_param:i,out:n||e},eu,t)}(e,tu[e])}));const fu=cu.prototype;function du(e){tl.call(this,null,e),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}fu.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},fu.add=function(e){this._add.push(e)},fu.rem=function(e){this._rem.push(e)},fu.values=function(){if(this._get=null,0===this._rem.length)return this._add;const e=this._add,t=this._rem,n=this._key,i=e.length,r=t.length,o=Array(i-r),a={};let s,l,u;for(s=0;s<r;++s)a[n(t[s])]=1;for(s=0,l=0;s<i;++s)a[n(u=e[s])]?a[n(u)]=0:o[l++]=u;return this._rem=[],this._add=o},fu.distinct=function(e){const n=this.values(),i={};let r,o=n.length,a=0;for(;--o>=0;)r=e(n[o])+"",t(i,r)||(i[r]=1,++a);return a},fu.extent=function(e){if(this._get!==e||!this._ext){const t=this.values(),n=Y(t,e);this._ext=[t[n[0]],t[n[1]]],this._get=e}return this._ext},fu.argmin=function(e){return this.extent(e)[0]||{}},fu.argmax=function(e){return this.extent(e)[1]||{}},fu.min=function(e){const t=this.extent(e)[0];return null!=t?e(t):void 0},fu.max=function(e){const t=this.extent(e)[1];return null!=t?e(t):void 0},fu.quartile=function(e){return this._get===e&&this._q||(this._q=sl(this.values(),e),this._get=e),this._q},fu.q1=function(e){return this.quartile(e)[0]},fu.q2=function(e){return this.quartile(e)[1]},fu.q3=function(e){return this.quartile(e)[2]},fu.ci=function(e){return this._get===e&&this._ci||(this._ci=fl(this.values(),1e3,.05,e),this._get=e),this._ci},fu.ci0=function(e){return this.ci(e)[0]},fu.ci1=function(e){return this.ci(e)[1]},du.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:nu},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]},_(du,tl,{transform(e,t){const n=this,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.modified();return n.stamp=i.stamp,n.value&&(r||t.modified(n._inputs,!0))?(n._prev=n.value,n.value=r?n.init(e):Object.create(null),t.visit(t.SOURCE,(e=>n.add(e)))):(n.value=n.value||n.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),i.modifies(n._outputs),n._drop=!1!==e.drop,e.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),t.clean()&&n._drop&&i.clean(!0).runAfter((()=>this.clean())),n.changes(i)},cross(){const e=this,t=e.value,n=e._dnames,i=n.map((()=>({}))),r=n.length;function o(e){let t,o,a,s;for(t in e)for(a=e[t].tuple,o=0;o<r;++o)i[o][s=a[n[o]]]=s}o(e._prev),o(t),function o(a,s,l){const u=n[l],c=i[l++];for(const n in c){const i=a?a+"|"+n:n;s[u]=c[n],l<r?o(i,s,l):t[i]||e.cell(i,s)}}("",{},0)},init(e){const t=this._inputs=[],n=this._outputs=[],i={};function r(e){const n=c(E(e)),r=n.length;let o,a=0;for(;a<r;++a)i[o=n[a]]||(i[o]=1,t.push(o))}this._dims=c(e.groupby),this._dnames=this._dims.map((e=>{const t=S(e);return r(e),n.push(t),t})),this.cellkey=e.key?e.key:Ql(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const o=e.fields||[null],a=e.ops||["count"],s=e.aggregate_params||[null],l=e.as||[],u=o.length,f={};let d,h,p,m,g,y,b;for(u!==a.length&&v("Unmatched number of fields and aggregate ops."),b=0;b<u;++b)d=o[b],h=a[b],p=s[b]||null,null==d&&"count"!==h&&v("Null aggregate field specified."),g=S(d),y=Kl(h,g,l[b]),n.push(y),"count"!==h?(m=f[g],m||(r(d),m=f[g]=[],m.field=d,this._measures.push(m)),"count"!==h&&(this._countOnly=!1),m.push(iu(h,p,y))):this._counts.push(y);return this._measures=this._measures.map((e=>uu(e,e.field))),Object.create(null)},cellkey:Ql(),cell(e,t){let n=this.value[e];return n?0===n.num&&this._drop&&n.stamp<this.stamp?(n.stamp=this.stamp,this._adds[this._alen++]=n):n.stamp<this.stamp&&(n.stamp=this.stamp,this._mods[this._mlen++]=n):(n=this.value[e]=this.newcell(e,t),this._adds[this._alen++]=n),n},newcell(e,t){const n={key:e,num:0,agg:null,tuple:this.newtuple(t,this._prev&&this._prev[e]),stamp:this.stamp,store:!1};if(!this._countOnly){const e=this._measures,t=e.length;n.agg=Array(t);for(let i=0;i<t;++i)n.agg[i]=new e[i](n)}return n.store&&(n.data=new cu),n},newtuple(e,t){const n=this._dnames,i=this._dims,r=i.length,o={};for(let a=0;a<r;++a)o[n[a]]=i[a](e);return t?Ss(t.tuple,o):$s(o)},clean(){const e=this.value;for(const t in e)0===e[t].num&&delete e[t]},add(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num+=1,this._countOnly)return;n.store&&n.data.add(e);const i=n.agg;for(let r=0,o=i.length;r<o;++r)i[r].add(i[r].get(e),e)},rem(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num-=1,this._countOnly)return;n.store&&n.data.rem(e);const i=n.agg;for(let r=0,o=i.length;r<o;++r)i[r].rem(i[r].get(e),e)},celltuple(e){const t=e.tuple,n=this._counts;e.store&&e.data.values();for(let i=0,r=n.length;i<r;++i)t[n[i]]=e.num;if(!this._countOnly){const n=e.agg;for(let e=0,i=n.length;e<i;++e)n[e].set(t)}return t},changes(e){const t=this._adds,n=this._mods,i=this._prev,r=this._drop,o=e.add,a=e.rem,s=e.mod;let l,u,c,f;if(i)for(u in i)l=i[u],r&&!l.num||a.push(l.tuple);for(c=0,f=this._alen;c<f;++c)o.push(this.celltuple(t[c])),t[c]=null;for(c=0,f=this._mlen;c<f;++c)l=n[c],(0===l.num&&r?a:s).push(this.celltuple(l)),n[c]=null;return this._alen=this._mlen=0,this._prev=null,e}});function hu(e){tl.call(this,null,e)}function pu(e,t,n){const i=e;let r=t||[],o=n||[],a={},s=0;return{add:e=>o.push(e),remove:e=>a[i(e)]=++s,size:()=>r.length,data:(e,t)=>(s&&(r=r.filter((e=>!a[i(e)])),a={},s=0),t&&e&&r.sort(e),o.length&&(r=e?U(e,r,o.sort(e)):r.concat(o),o=[]),r)}}function mu(e){tl.call(this,[],e)}function gu(e){Rs.call(this,null,yu,e)}function yu(e){return this.value&&!e.modified()?this.value:H(e.fields,e.orders)}function vu(e){tl.call(this,null,e)}function bu(e){tl.call(this,null,e)}hu.Definition={type:"Bin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"anchor",type:"number"},{name:"maxbins",type:"number",default:20},{name:"base",type:"number",default:10},{name:"divide",type:"number",array:!0,default:[5,2]},{name:"extent",type:"number",array:!0,length:2,required:!0},{name:"span",type:"number"},{name:"step",type:"number"},{name:"steps",type:"number",array:!0},{name:"minstep",type:"number",default:0},{name:"nice",type:"boolean",default:!0},{name:"name",type:"string"},{name:"as",type:"string",array:!0,length:2,default:["bin0","bin1"]}]},_(hu,tl,{transform(e,t){const n=!1!==e.interval,i=this._bins(e),r=i.start,o=i.step,a=e.as||["bin0","bin1"],s=a[0],l=a[1];let u;return u=e.modified()?(t=t.reflow(!0)).SOURCE:t.modified(E(e.field))?t.ADD_MOD:t.ADD,t.visit(u,n?e=>{const t=i(e);e[s]=t,e[l]=null==t?null:r+o*(1+(t-r)/o)}:e=>e[s]=i(e)),t.modifies(n?a:s)},_bins(e){if(this.value&&!e.modified())return this.value;const t=e.field,n=ul(e),i=n.step;let r,o,a=n.start,s=a+Math.ceil((n.stop-a)/i)*i;null!=(r=e.anchor)&&(o=r-(a+i*Math.floor((r-a)/i)),a+=o,s+=o);const l=function(e){let n=C(t(e));return null==n?null:n<a?-1/0:n>s?1/0:(n=Math.max(a,Math.min(n,s-i)),a+i*Math.floor(1e-14+(n-a)/i))};return l.start=a,l.stop=n.stop,l.step=i,this.value=F(l,E(t),e.name||"bin_"+S(t))}}),mu.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},_(mu,tl,{transform(e,t){const n=t.fork(t.ALL),i=pu(_s,this.value,n.materialize(n.ADD).add),r=e.sort,o=t.changed()||r&&(e.modified("sort")||t.modified(r.fields));return n.visit(n.REM,i.remove),this.modified(o),this.value=n.source=i.data(Es(r),o),t.source&&t.source.root&&(this.value.root=t.source.root),n}}),_(gu,Rs),vu.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]},_(vu,tl,{transform(e,t){const n=t=>n=>{for(var i,r=function(e,t,n){switch(t){case"upper":e=e.toUpperCase();break;case"lower":e=e.toLowerCase()}return e.match(n)}(s(n),e.case,o)||[],l=0,u=r.length;l<u;++l)a.test(i=r[l])||t(i)},i=this._parameterCheck(e,t),r=this._counts,o=this._match,a=this._stop,s=e.field,l=e.as||["text","count"],u=n((e=>r[e]=1+(r[e]||0))),c=n((e=>r[e]-=1));return i?t.visit(t.SOURCE,u):(t.visit(t.ADD,u),t.visit(t.REM,c)),this._finish(t,l)},_parameterCheck(e,t){let n=!1;return!e.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(e.stopwords||"")+"$","i"),n=!0),!e.modified("pattern")&&this._match||(this._match=new RegExp(e.pattern||"[\\w']+","g"),n=!0),(e.modified("field")||t.modified(e.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(e,t){const n=this._counts,i=this._tuples||(this._tuples={}),r=t[0],o=t[1],a=e.fork(e.NO_SOURCE|e.NO_FIELDS);let s,l,u;for(s in n)l=i[s],u=n[s]||0,!l&&u?(i[s]=l=$s({}),l[r]=s,l[o]=u,a.add.push(l)):0===u?(l&&a.rem.push(l),n[s]=null,i[s]=null):l[o]!==u&&(l[o]=u,a.mod.push(l));return a.modifies(t)}}),bu.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},_(bu,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.as||["a","b"],r=i[0],o=i[1],a=!this.value||t.changed(t.ADD_REM)||e.modified("as")||e.modified("filter");let s=this.value;return a?(s&&(n.rem=s),s=t.materialize(t.SOURCE).source,n.add=this.value=function(e,t,n,i){for(var r,o,a=[],s={},l=e.length,u=0;u<l;++u)for(s[t]=o=e[u],r=0;r<l;++r)s[n]=e[r],i(s)&&(a.push($s(s)),(s={})[t]=o);return a}(s,r,o,e.filter||x)):n.mod=s,n.source=this.value,n.modifies(i)}});const xu={kde:wl,mixture:Sl,normal:xl,lognormal:Al,uniform:zl},wu="function";function _u(e,n){const i=e[wu];t(xu,i)||v("Unknown distribution function: "+i);const r=xu[i]();for(const t in e)"field"===t?r.data((e.from||n()).map(e[t])):"distributions"===t?r[t](e[t].map((e=>_u(e,n)))):typeof r[t]===wu&&r[t](e[t]);return r}function ku(e){tl.call(this,null,e)}const $u=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],Du={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:$u},{name:"weights",type:"number",array:!0}]};function Au(e,t){return e?e.map(((e,n)=>t[n]||S(e))):null}function Su(e,t,n){const i=[],r=e=>e(l);let o,a,s,l,u,c;if(null==t)i.push(e.map(n));else for(o={},a=0,s=e.length;a<s;++a)l=e[a],u=t.map(r),c=o[u],c||(o[u]=c=[],c.dims=u,i.push(c)),c.push(n(l));return i}ku.Definition={type:"Density",metadata:{generates:!0},params:[{name:"extent",type:"number",array:!0,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:$u.concat(Du)},{name:"as",type:"string",array:!0,default:["value","density"]}]},_(ku,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=_u(e.distribution,function(e){return()=>e.materialize(e.SOURCE).source}(t)),r=e.steps||e.minsteps||25,o=e.steps||e.maxsteps||200;let a=e.method||"pdf";"pdf"!==a&&"cdf"!==a&&v("Invalid density method: "+a),e.extent||i.data||v("Missing density extent parameter."),a=i[a];const s=e.as||["value","density"],l=Xl(a,e.extent||M(i.data()),r,o).map((e=>{const t={};return t[s[0]]=e[0],t[s[1]]=e[1],$s(t)}));this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function Eu(e){tl.call(this,null,e)}Eu.Definition={type:"DotBin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"step",type:"number"},{name:"smooth",type:"boolean",default:!1},{name:"as",type:"string",default:"bin"}]};function Fu(e){Rs.call(this,null,Cu,e),this.modified(!0)}function Cu(e){const t=e.expr;return this.value&&!e.modified("expr")?this.value:F((n=>t(n,e)),E(t),S(t))}function Mu(e){tl.call(this,[void 0,void 0],e)}function zu(e,t){Rs.call(this,e),this.parent=t,this.count=0}function Ou(e){tl.call(this,{},e),this._keys=W();const t=this._targets=[];t.active=0,t.forEach=e=>{for(let n=0,i=t.active;n<i;++n)e(t[n],n,t)}}function Nu(e){Rs.call(this,null,Ru,e)}function Ru(e){return this.value&&!e.modified()?this.value:u(e.name)?c(e.name).map((e=>q(e))):q(e.name,e.as)}function Bu(e){tl.call(this,W(),e)}function Tu(e){tl.call(this,[],e)}function Pu(e){tl.call(this,[],e)}function ju(e){tl.call(this,null,e)}function Lu(e){tl.call(this,[],e)}_(Eu,tl,{transform(e,t){if(this.value&&!e.modified()&&!t.changed())return t;const n=t.materialize(t.SOURCE).source,i=Su(t.source,e.groupby,y),r=e.smooth||!1,o=e.field,a=e.step||((e,t)=>I(M(e,t))/30)(n,o),s=Es(((e,t)=>o(e)-o(t))),l=e.as||"bin",u=i.length;let c,f=1/0,d=-1/0,h=0;for(;h<u;++h){const e=i[h].sort(s);c=-1;for(const t of dl(e,a,r,o))t<f&&(f=t),t>d&&(d=t),e[++c][l]=t}return this.value={start:f,stop:d,step:a},t.reflow(!0).modifies(l)}}),_(Fu,Rs),Mu.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},_(Mu,tl,{transform(e,t){const n=this.value,i=e.field,r=t.changed()||t.modified(i.fields)||e.modified("field");let o=n[0],a=n[1];if((r||null==o)&&(o=1/0,a=-1/0),t.visit(r?t.SOURCE:t.ADD,(e=>{const t=C(i(e));null!=t&&(t<o&&(o=t),t>a&&(a=t))})),!Number.isFinite(o)||!Number.isFinite(a)){let e=S(i);e&&(e=` for field "${e}"`),t.dataflow.warn(`Infinite extent${e}: [${o}, ${a}]`),o=a=void 0}this.value=[o,a]}}),_(zu,Rs,{connect(e){return this.detachSubflow=e.detachSubflow,this.targets().add(e),e.source=this},add(e){this.count+=1,this.value.add.push(e)},rem(e){this.count-=1,this.value.rem.push(e)},mod(e){this.value.mod.push(e)},init(e){this.value.init(e,e.NO_SOURCE)},evaluate(){return this.value}}),_(Ou,tl,{activate(e){this._targets[this._targets.active++]=e},subflow(e,n,i,r){const o=this.value;let a,s,l=t(o,e)&&o[e];return l?l.value.stamp<i.stamp&&(l.init(i),this.activate(l)):(s=r||(s=this._group[e])&&s.tuple,a=i.dataflow,l=new zu(i.fork(i.NO_SOURCE),this),a.add(l).connect(n(a,e,s)),o[e]=l,this.activate(l)),l},clean(){const e=this.value;let t=0;for(const n in e)if(0===e[n].count){const i=e[n].detachSubflow;i&&i(),delete e[n],++t}if(t){const e=this._targets.filter((e=>e&&e.count>0));this.initTargets(e)}},initTargets(e){const t=this._targets,n=t.length,i=e?e.length:0;let r=0;for(;r<i;++r)t[r]=e[r];for(;r<n&&null!=t[r];++r)t[r]=null;t.active=i},transform(e,t){const n=t.dataflow,i=e.key,r=e.subflow,o=this._keys,a=e.modified("key"),s=e=>this.subflow(e,r,t);return this._group=e.group||{},this.initTargets(),t.visit(t.REM,(e=>{const t=_s(e),n=o.get(t);void 0!==n&&(o.delete(t),s(n).rem(e))})),t.visit(t.ADD,(e=>{const t=i(e);o.set(_s(e),t),s(t).add(e)})),a||t.modified(i.fields)?t.visit(t.MOD,(e=>{const t=_s(e),n=o.get(t),r=i(e);n===r?s(r).mod(e):(o.set(t,r),s(n).rem(e),s(r).add(e))})):t.changed(t.MOD)&&t.visit(t.MOD,(e=>{s(o.get(_s(e))).mod(e)})),a&&t.visit(t.REFLOW,(e=>{const t=_s(e),n=o.get(t),r=i(e);n!==r&&(o.set(t,r),s(n).rem(e),s(r).add(e))})),t.clean()?n.runAfter((()=>{this.clean(),o.clean()})):o.empty>n.cleanThreshold&&n.runAfter(o.clean),t}}),_(Nu,Rs),Bu.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},_(Bu,tl,{transform(e,t){const n=t.dataflow,i=this.value,r=t.fork(),o=r.add,a=r.rem,s=r.mod,l=e.expr;let u=!0;function c(t){const n=_s(t),r=l(t,e),c=i.get(n);r&&c?(i.delete(n),o.push(t)):r||c?u&&r&&!c&&s.push(t):(i.set(n,1),a.push(t))}return t.visit(t.REM,(e=>{const t=_s(e);i.has(t)?i.delete(t):a.push(e)})),t.visit(t.ADD,(t=>{l(t,e)?o.push(t):i.set(_s(t),1)})),t.visit(t.MOD,c),e.modified()&&(u=!1,t.visit(t.REFLOW,c)),i.empty>n.cleanThreshold&&n.runAfter(i.clean),r}}),Tu.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]},_(Tu,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=Au(i,e.as||[]),o=e.index||null,a=r.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{const t=i.map((t=>t(e))),s=t.reduce(((e,t)=>Math.max(e,t.length)),0);let l,u,c,f=0;for(;f<s;++f){for(u=Ds(e),l=0;l<a;++l)u[r[l]]=null==(c=t[l][f])?null:c;o&&(u[o]=f),n.add.push(u)}})),this.value=n.source=n.add,o&&n.modifies(o),n.modifies(r)}}),Pu.Definition={type:"Fold",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0,length:2,default:["key","value"]}]},_(Pu,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=i.map(S),o=e.as||["key","value"],a=o[0],s=o[1],l=i.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{for(let t,o=0;o<l;++o)t=Ds(e),t[a]=r[o],t[s]=i[o](e),n.add.push(t)})),this.value=n.source=n.add,n.modifies(o)}}),ju.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},_(ju,tl,{transform(e,t){const n=e.expr,i=e.as,r=e.modified(),o=e.initonly?t.ADD:r?t.SOURCE:t.modified(n.fields)||t.modified(i)?t.ADD_MOD:t.ADD;return r&&(t=t.materialize().reflow(!0)),e.initonly||t.modifies(i),t.visit(o,(t=>t[i]=n(t,e)))}}),_(Lu,tl,{transform(e,t){const n=t.fork(t.ALL),i=e.generator;let r,o,a,s=this.value,l=e.size-s.length;if(l>0){for(r=[];--l>=0;)r.push(a=$s(i(e))),s.push(a);n.add=n.add.length?n.materialize(n.ADD).add.concat(r):r}else o=s.slice(0,-l),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(o):o,s=s.slice(-l);return n.source=this.value=s,n}});const qu={value:"value",median:ri,mean:function(e,t){let n=0,i=0;if(void 0===t)for(let r of e)null!=r&&(r=+r)>=r&&(++n,i+=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(o=+o)>=o&&(++n,i+=o)}if(n)return i/n},min:mt,max:gt},Uu=[];function Iu(e){tl.call(this,[],e)}function Wu(e){du.call(this,e)}function Hu(e){tl.call(this,null,e)}function Gu(e){Rs.call(this,null,Vu,e)}function Vu(e){return this.value&&!e.modified()?this.value:G(e.fields,e.flat)}function Yu(e){tl.call(this,[],e),this._pending=null}function Xu(e,t,n){n.forEach($s);const i=t.fork(t.NO_FIELDS&t.NO_SOURCE);return i.rem=e.value,e.value=i.source=i.add=n,e._pending=null,i.rem.length&&i.clean(!0),i}function Ju(e){tl.call(this,{},e)}function Qu(e){Rs.call(this,null,Ku,e)}function Ku(e){if(this.value&&!e.modified())return this.value;const t=e.extents,n=t.length;let i,r,o=1/0,a=-1/0;for(i=0;i<n;++i)r=t[i],r[0]<o&&(o=r[0]),r[1]>a&&(a=r[1]);return[o,a]}function Zu(e){Rs.call(this,null,ec,e)}function ec(e){return this.value&&!e.modified()?this.value:e.values.reduce(((e,t)=>e.concat(t)),[])}function tc(e){tl.call(this,null,e)}function nc(e){du.call(this,e)}function ic(e){Ou.call(this,e)}function rc(e){tl.call(this,null,e)}function oc(e){tl.call(this,null,e)}function ac(e){tl.call(this,null,e)}Iu.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]},_(Iu,tl,{transform(e,t){var n,i,r,o,a,s,l,u,c,f,d=t.fork(t.ALL),h=function(e){var t,n=e.method||qu.value;if(null!=qu[n])return n===qu.value?(t=void 0!==e.value?e.value:0,()=>t):qu[n];v("Unrecognized imputation method: "+n)}(e),p=function(e){const t=e.field;return e=>e?t(e):NaN}(e),m=S(e.field),g=S(e.key),y=(e.groupby||[]).map(S),b=function(e,t,n,i){var r,o,a,s,l,u,c,f,d=e=>e(f),h=[],p=i?i.slice():[],m={},g={};for(p.forEach(((e,t)=>m[e]=t+1)),s=0,c=e.length;s<c;++s)u=n(f=e[s]),l=m[u]||(m[u]=p.push(u)),(a=g[o=(r=t?t.map(d):Uu)+""])||(a=g[o]=[],h.push(a),a.values=r),a[l-1]=f;return h.domain=p,h}(t.source,e.groupby,e.key,e.keyvals),x=[],w=this.value,_=b.domain.length;for(a=0,u=b.length;a<u;++a)for(r=(n=b[a]).values,i=NaN,l=0;l<_;++l)if(null==n[l]){for(o=b.domain[l],f={_impute:!0},s=0,c=r.length;s<c;++s)f[y[s]]=r[s];f[g]=o,f[m]=Number.isNaN(i)?i=h(n,p):i,x.push($s(f))}return x.length&&(d.add=d.materialize(d.ADD).add.concat(x)),w.length&&(d.rem=d.materialize(d.REM).rem.concat(w)),this.value=x,d}}),Wu.Definition={type:"JoinAggregate",metadata:{modifies:!0},params:[{name:"groupby",type:"field",array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"ops",type:"enum",array:!0,values:nu},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},_(Wu,du,{transform(e,t){const n=this,i=e.modified();let r;return n.value&&(i||t.modified(n._inputs,!0))?(r=n.value=i?n.init(e):{},t.visit(t.SOURCE,(e=>n.add(e)))):(r=n.value=n.value||this.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),n.changes(),t.visit(t.SOURCE,(e=>{D(e,r[n.cellkey(e)].tuple)})),t.reflow(i).modifies(this._outputs)},changes(){const e=this._adds,t=this._mods;let n,i;for(n=0,i=this._alen;n<i;++n)this.celltuple(e[n]),e[n]=null;for(n=0,i=this._mlen;n<i;++n)this.celltuple(t[n]),t[n]=null;this._alen=this._mlen=0}}),Hu.Definition={type:"KDE",metadata:{generates:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"cumulative",type:"boolean",default:!1},{name:"counts",type:"boolean",default:!1},{name:"bandwidth",type:"number",default:0},{name:"extent",type:"number",array:!0,length:2},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"as",type:"string",array:!0,default:["value","density"]}]},_(Hu,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=t.materialize(t.SOURCE).source,r=Su(i,e.groupby,e.field),o=(e.groupby||[]).map(S),a=e.bandwidth,s=e.cumulative?"cdf":"pdf",l=e.as||["value","density"],u=[];let c=e.extent,f=e.steps||e.minsteps||25,d=e.steps||e.maxsteps||200;"pdf"!==s&&"cdf"!==s&&v("Invalid density method: "+s),"shared"===e.resolve&&(c||(c=M(i,e.field)),f=d=e.steps||d),r.forEach((t=>{const n=wl(t,a)[s],i=e.counts?t.length:1;Xl(n,c||M(t),f,d).forEach((e=>{const n={};for(let i=0;i<o.length;++i)n[o[i]]=t.dims[i];n[l[0]]=e[0],n[l[1]]=e[1]*i,u.push($s(n))}))})),this.value&&(n.rem=this.value),this.value=n.add=n.source=u}return n}}),_(Gu,Rs),_(Yu,tl,{transform(e,t){const n=t.dataflow;if(this._pending)return Xu(this,t,this._pending);if(function(e){return e.modified("async")&&!(e.modified("values")||e.modified("url")||e.modified("format"))}(e))return t.StopPropagation;if(e.values)return Xu(this,t,n.parse(e.values,e.format));if(e.async){return{async:n.request(e.url,e.format).then((e=>(this._pending=c(e.data),e=>e.touch(this))))}}return n.request(e.url,e.format).then((e=>Xu(this,t,c(e.data))))}}),Ju.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]},_(Ju,tl,{transform(e,t){const n=e.fields,i=e.index,r=e.values,o=null==e.default?null:e.default,a=e.modified(),s=n.length;let l,u,c,f=a?t.SOURCE:t.ADD,d=t,h=e.as;return r?(u=r.length,s>1&&!h&&v('Multi-field lookup requires explicit "as" parameter.'),h&&h.length!==s*u&&v('The "as" parameter has too few output field names.'),h=h||r.map(S),l=function(e){for(var t,a,l=0,c=0;l<s;++l)if(null==(a=i.get(n[l](e))))for(t=0;t<u;++t,++c)e[h[c]]=o;else for(t=0;t<u;++t,++c)e[h[c]]=r[t](a)}):(h||v("Missing output field names."),l=function(e){for(var t,r=0;r<s;++r)t=i.get(n[r](e)),e[h[r]]=null==t?o:t}),a?d=t.reflow(!0):(c=n.some((e=>t.modified(e.fields))),f|=c?t.MOD:0),t.visit(f,l),d.modifies(h)}}),_(Qu,Rs),_(Zu,Rs),_(tc,tl,{transform(e,t){return this.modified(e.modified()),this.value=e,t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),nc.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:nu,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},_(nc,du,{_transform:du.prototype.transform,transform(e,t){return this._transform(function(e,t){const n=e.field,i=e.value,r=("count"===e.op?"__count__":e.op)||"sum",o=E(n).concat(E(i)),a=function(e,t,n){const i={},r=[];return n.visit(n.SOURCE,(t=>{const n=e(t);i[n]||(i[n]=1,r.push(n))})),r.sort(z),t?r.slice(0,t):r}(n,e.limit||0,t);t.changed()&&e.set("__pivot__",null,null,!0);return{key:e.key,groupby:e.groupby,ops:a.map((()=>r)),fields:a.map((e=>function(e,t,n,i){return F((i=>t(i)===e?n(i):NaN),i,e+"")}(e,n,i,o))),as:a.map((e=>e+"")),modified:e.modified.bind(e)}}(e,t),t)}}),_(ic,Ou,{transform(e,t){const n=e.subflow,i=e.field,r=e=>this.subflow(_s(e),n,t,e);return(e.modified("field")||i&&t.modified(E(i)))&&v("PreFacet does not support field modification."),this.initTargets(),i?(t.visit(t.MOD,(e=>{const t=r(e);i(e).forEach((e=>t.mod(e)))})),t.visit(t.ADD,(e=>{const t=r(e);i(e).forEach((e=>t.add($s(e))))})),t.visit(t.REM,(e=>{const t=r(e);i(e).forEach((e=>t.rem(e)))}))):(t.visit(t.MOD,(e=>r(e).mod(e))),t.visit(t.ADD,(e=>r(e).add(e))),t.visit(t.REM,(e=>r(e).rem(e)))),t.clean()&&t.runAfter((()=>this.clean())),t}}),rc.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},_(rc,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=Au(e.fields,e.as||[]),o=i?(e,t)=>function(e,t,n,i){for(let r=0,o=n.length;r<o;++r)t[i[r]]=n[r](e);return t}(e,t,i,r):As;let a;return this.value?a=this.value:(t=t.addAll(),a=this.value={}),t.visit(t.REM,(e=>{const t=_s(e);n.rem.push(a[t]),a[t]=null})),t.visit(t.ADD,(e=>{const t=o(e,$s({}));a[_s(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{n.mod.push(o(e,a[_s(e)]))})),n}}),_(oc,tl,{transform(e,t){return this.value=e.value,e.modified("value")?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}}),ac.Definition={type:"Quantile",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"probs",type:"number",array:!0},{name:"step",type:"number",default:.01},{name:"as",type:"string",array:!0,default:["prob","value"]}]};function sc(e){tl.call(this,null,e)}function lc(e){tl.call(this,[],e),this.count=0}function uc(e){tl.call(this,null,e)}function cc(e){tl.call(this,null,e),this.modified(!0)}function fc(e){tl.call(this,null,e)}_(ac,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.as||["prob","value"];if(this.value&&!e.modified()&&!t.changed())return n.source=this.value,n;const r=Su(t.materialize(t.SOURCE).source,e.groupby,e.field),o=(e.groupby||[]).map(S),a=[],s=e.step||.01,l=e.probs||Ht(s/2,1-1e-14,s),u=l.length;return r.forEach((e=>{const t=al(e,l);for(let n=0;n<u;++n){const r={};for(let t=0;t<o.length;++t)r[o[t]]=e.dims[t];r[i[0]]=l[n],r[i[1]]=t[n],a.push($s(r))}})),this.value&&(n.rem=this.value),this.value=n.add=n.source=a,n}}),_(sc,tl,{transform(e,t){let n,i;return this.value?i=this.value:(n=t=t.addAll(),i=this.value={}),e.derive&&(n=t.fork(t.NO_SOURCE),t.visit(t.REM,(e=>{const t=_s(e);n.rem.push(i[t]),i[t]=null})),t.visit(t.ADD,(e=>{const t=Ds(e);i[_s(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{const t=i[_s(e)];for(const i in e)t[i]=e[i],n.modifies(i);n.mod.push(t)}))),n}}),lc.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},_(lc,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.modified("size"),r=e.size,o=this.value.reduce(((e,t)=>(e[_s(t)]=1,e)),{});let a=this.value,s=this.count,l=0;function u(e){let t,i;a.length<r?a.push(e):(i=~~((s+1)*cl()),i<a.length&&i>=l&&(t=a[i],o[_s(t)]&&n.rem.push(t),a[i]=e)),++s}if(t.rem.length&&(t.visit(t.REM,(e=>{const t=_s(e);o[t]&&(o[t]=-1,n.rem.push(e)),--s})),a=a.filter((e=>-1!==o[_s(e)]))),(t.rem.length||i)&&a.length<r&&t.source&&(l=s=a.length,t.visit(t.SOURCE,(e=>{o[_s(e)]||u(e)})),l=-1),i&&a.length>r){const e=a.length-r;for(let t=0;t<e;++t)o[_s(a[t])]=-1,n.rem.push(a[t]);a=a.slice(e)}return t.mod.length&&t.visit(t.MOD,(e=>{o[_s(e)]&&n.mod.push(e)})),t.add.length&&t.visit(t.ADD,u),(t.add.length||l<0)&&(n.add=a.filter((e=>!o[_s(e)]))),this.count=s,this.value=n.source=a,n}}),uc.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]},_(uc,tl,{transform(e,t){if(this.value&&!e.modified())return;const n=t.materialize().fork(t.MOD),i=e.as||"data";return n.rem=this.value?t.rem.concat(this.value):t.rem,this.value=Ht(e.start,e.stop,e.step||1).map((e=>{const t={};return t[i]=e,$s(t)})),n.add=t.add.concat(this.value),n}}),_(cc,tl,{transform(e,t){return this.value=t.source,t.changed()?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});const dc=["unit0","unit1"];function hc(e){tl.call(this,W(),e)}function pc(e){tl.call(this,null,e)}fc.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:X,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:dc}]},_(fc,tl,{transform(e,t){const n=e.field,i=!1!==e.interval,r="utc"===e.timezone,o=this._floor(e,t),a=(r?P:j)(o.unit).offset,s=e.as||dc,l=s[0],u=s[1],c=o.step;let f=o.start||1/0,d=o.stop||-1/0,h=t.ADD;return(e.modified()||t.changed(t.REM)||t.modified(E(n)))&&(h=(t=t.reflow(!0)).SOURCE,f=1/0,d=-1/0),t.visit(h,(e=>{const t=n(e);let r,s;null==t?(e[l]=null,i&&(e[u]=null)):(e[l]=r=s=o(t),i&&(e[u]=s=a(r,c)),r<f&&(f=r),s>d&&(d=s))})),o.start=f,o.stop=d,t.modifies(i?s:l)},_floor(e,t){const n="utc"===e.timezone,{units:i,step:r}=e.units?{units:e.units,step:e.step||1}:O({extent:e.extent||M(t.materialize(t.SOURCE).source,e.field),maxbins:e.maxbins}),o=N(i),a=this.value||{},s=(n?R:B)(o,r);return s.unit=T(o),s.units=o,s.step=r,s.start=a.start,s.stop=a.stop,this.value=s}}),_(hc,tl,{transform(e,t){const n=t.dataflow,i=e.field,r=this.value,o=e=>r.set(i(e),e);let a=!0;return e.modified("field")||t.modified(i.fields)?(r.clear(),t.visit(t.SOURCE,o)):t.changed()?(t.visit(t.REM,(e=>r.delete(i(e)))),t.visit(t.ADD,o)):a=!1,this.modified(a),r.empty>n.cleanThreshold&&n.runAfter(r.clean),t.fork()}}),_(pc,tl,{transform(e,t){(!this.value||e.modified("field")||e.modified("sort")||t.changed()||e.sort&&t.modified(e.sort.fields))&&(this.value=(e.sort?t.source.slice().sort(Es(e.sort)):t.source).map(e.field))}});const mc={row_number:function(){return{next:e=>e.index+1}},rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?e=n+1:e}}},dense_rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?++e:e}}},percent_rank:function(){const e=mc.rank(),t=e.next;return{init:e.init,next:e=>(t(e)-1)/(e.data.length-1)}},cume_dist:function(){let e;return{init:()=>e=0,next:t=>{const n=t.data,i=t.compare;let r=t.index;if(e<r){for(;r+1<n.length&&!i(n[r],n[r+1]);)++r;e=r}return(1+e)/n.length}}},ntile:function(e,t){(t=+t)>0||v("ntile num must be greater than zero.");const n=mc.cume_dist(),i=n.next;return{init:n.init,next:e=>Math.ceil(t*i(e))}},lag:function(e,t){return t=+t||1,{next:n=>{const i=n.index-t;return i>=0?e(n.data[i]):null}}},lead:function(e,t){return t=+t||1,{next:n=>{const i=n.index+t,r=n.data;return i<r.length?e(r[i]):null}}},first_value:function(e){return{next:t=>e(t.data[t.i0])}},last_value:function(e){return{next:t=>e(t.data[t.i1-1])}},nth_value:function(e,t){return(t=+t)>0||v("nth_value nth must be greater than zero."),{next:n=>{const i=n.i0+(t-1);return i<n.i1?e(n.data[i]):null}}},prev_value:function(e){let t;return{init:()=>t=null,next:n=>{const i=e(n.data[n.index]);return null!=i?t=i:t}}},next_value:function(e){let t,n;return{init:()=>(t=null,n=-1),next:i=>{const r=i.data;return i.index<=n?t:(n=function(e,t,n){for(let i=t.length;n<i;++n){if(null!=e(t[n]))return n}return-1}(e,r,i.index))<0?(n=r.length,t=null):t=e(r[n])}}}};const gc=Object.keys(mc);function yc(e){const n=c(e.ops),i=c(e.fields),r=c(e.params),o=c(e.aggregate_params),a=c(e.as),s=this.outputs=[],l=this.windows=[],u={},f={},d=[],h=[];let p=!0;function m(e){c(E(e)).forEach((e=>u[e]=1))}m(e.sort),n.forEach(((e,n)=>{const u=i[n],c=r[n],g=o[n]||null,y=S(u),b=Kl(e,y,a[n]);if(m(u),s.push(b),t(mc,e))l.push(function(e,t,n,i){const r=mc[e](t,n);return{init:r.init||V,update:function(e,t){t[i]=r.next(e)}}}(e,u,c,b));else{if(null==u&&"count"!==e&&v("Null aggregate field specified."),"count"===e)return void d.push(b);p=!1;let t=f[y];t||(t=f[y]=[],t.field=u,h.push(t)),t.push(iu(e,g,b))}})),(d.length||h.length)&&(this.cell=function(e,t,n){e=e.map((e=>uu(e,e.field)));const i={num:0,agg:null,store:!1,count:t};if(!n)for(var r=e.length,o=i.agg=Array(r),a=0;a<r;++a)o[a]=new e[a](i);if(i.store)var s=i.data=new cu;return i.add=function(e){if(i.num+=1,!n){s&&s.add(e);for(let t=0;t<r;++t)o[t].add(o[t].get(e),e)}},i.rem=function(e){if(i.num-=1,!n){s&&s.rem(e);for(let t=0;t<r;++t)o[t].rem(o[t].get(e),e)}},i.set=function(e){let r,a;for(s&&s.values(),r=0,a=t.length;r<a;++r)e[t[r]]=i.num;if(!n)for(r=0,a=o.length;r<a;++r)o[r].set(e)},i.init=function(){i.num=0,s&&s.reset();for(let e=0;e<r;++e)o[e].init()},i}(h,d,p)),this.inputs=Object.keys(u)}const vc=yc.prototype;function bc(e){tl.call(this,{},e),this._mlen=0,this._mods=[]}function xc(e,t,n,i){const r=i.sort,o=r&&!i.ignorePeers,a=i.frame||[null,0],s=e.data(n),l=s.length,u=o?L(r):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:s,compare:r||g(-1)};t.init();for(let f=0;f<l;++f)wc(c,a,f,l),o&&_c(c,u),t.update(c,s[f])}function wc(e,t,n,i){e.p0=e.i0,e.p1=e.i1,e.i0=null==t[0]?0:Math.max(0,n-Math.abs(t[0])),e.i1=null==t[1]?i:Math.min(i,n+Math.abs(t[1])+1),e.index=n}function _c(e,t){const n=e.i0,i=e.i1-1,r=e.compare,o=e.data,a=o.length-1;n>0&&!r(o[n],o[n-1])&&(e.i0=t.left(o,o[n])),i<a&&!r(o[i],o[i+1])&&(e.i1=t.right(o,o[i]))}vc.init=function(){this.windows.forEach((e=>e.init())),this.cell&&this.cell.init()},vc.update=function(e,t){const n=this.cell,i=this.windows,r=e.data,o=i&&i.length;let a;if(n){for(a=e.p0;a<e.i0;++a)n.rem(r[a]);for(a=e.p1;a<e.i1;++a)n.add(r[a]);n.set(t)}for(a=0;a<o;++a)i[a].update(e,t)},bc.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:gc.concat(nu)},{name:"params",type:"number",null:!0,array:!0},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"frame",type:"number",null:!0,array:!0,length:2,default:[null,0]},{name:"ignorePeers",type:"boolean",default:!1}]},_(bc,tl,{transform(e,t){this.stamp=t.stamp;const n=e.modified(),i=Es(e.sort),r=Ql(e.groupby),o=e=>this.group(r(e));let a=this.state;a&&!n||(a=this.state=new yc(e)),n||t.modified(a.inputs)?(this.value={},t.visit(t.SOURCE,(e=>o(e).add(e)))):(t.visit(t.REM,(e=>o(e).remove(e))),t.visit(t.ADD,(e=>o(e).add(e))));for(let s=0,l=this._mlen;s<l;++s)xc(this._mods[s],a,i,e);return this._mlen=0,this._mods=[],t.reflow(n).modifies(a.outputs)},group(e){let t=this.value[e];return t||(t=this.value[e]=pu(_s),t.stamp=-1),t.stamp<this.stamp&&(t.stamp=this.stamp,this._mods[this._mlen++]=t),t}});const kc=Object.freeze(Object.defineProperty({__proto__:null,aggregate:du,bin:hu,collect:mu,compare:gu,countpattern:vu,cross:bu,density:ku,dotbin:Eu,expression:Fu,extent:Mu,facet:Ou,field:Nu,filter:Bu,flatten:Tu,fold:Pu,formula:ju,generate:Lu,impute:Iu,joinaggregate:Wu,kde:Hu,key:Gu,load:Yu,lookup:Ju,multiextent:Qu,multivalues:Zu,params:tc,pivot:nc,prefacet:ic,project:rc,proxy:oc,quantile:ac,relay:sc,sample:lc,sequence:uc,sieve:cc,subflow:zu,timeunit:fc,tupleindex:hc,values:pc,window:bc},Symbol.toStringTag,{value:"Module"}));function $c(e,t,n){var i=null,r=mn(!0),o=null,a=gn,s=null,l=pn(u);function u(u){var c,f,d,h,p,m=(u=bn(u)).length,g=!1,y=new Array(m),v=new Array(m);for(null==o&&(s=a(p=l())),c=0;c<=m;++c){if(!(c<m&&r(h=u[c],c,u))===g)if(g=!g)f=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),d=c-1;d>=f;--d)s.point(y[d],v[d]);s.lineEnd(),s.areaEnd()}g&&(y[c]=+e(h,c,u),v[c]=+t(h,c,u),s.point(i?+i(h,c,u):y[c],n?+n(h,c,u):v[c]))}if(p)return s=null,p+""||null}function c(){return xn().defined(r).curve(a).context(o)}return e="function"==typeof e?e:void 0===e?yn:mn(+e),t="function"==typeof t?t:mn(void 0===t?0:+t),n="function"==typeof n?n:void 0===n?vn:mn(+n),u.x=function(t){return arguments.length?(e="function"==typeof t?t:mn(+t),i=null,u):e},u.x0=function(t){return arguments.length?(e="function"==typeof t?t:mn(+t),u):e},u.x1=function(e){return arguments.length?(i=null==e?null:"function"==typeof e?e:mn(+e),u):i},u.y=function(e){return arguments.length?(t="function"==typeof e?e:mn(+e),n=null,u):t},u.y0=function(e){return arguments.length?(t="function"==typeof e?e:mn(+e),u):t},u.y1=function(e){return arguments.length?(n=null==e?null:"function"==typeof e?e:mn(+e),u):n},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(n)},u.lineX1=function(){return c().x(i).y(t)},u.defined=function(e){return arguments.length?(r="function"==typeof e?e:mn(!!e),u):r},u.curve=function(e){return arguments.length?(a=e,null!=o&&(s=a(o)),u):a},u.context=function(e){return arguments.length?(null==e?o=s=null:s=a(o=e),u):o},u}const Dc={draw(e,t){const n=wn(t/kn);e.moveTo(n,0),e.arc(0,0,n,0,_n)}};function Ac(e,t){if("undefined"!=typeof document&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext)return n.width=e,n.height=t,n}return null}function Sc(e){return Math.log(e)}function Ec(e){return Math.exp(e)}function Fc(e){return-Math.log(-e)}function Cc(e){return-Math.exp(-e)}function Mc(e){return isFinite(e)?+("1e"+e):e<0?0:e}function zc(e){return(t,n)=>-e(-t,n)}function Oc(e){const t=e(Sc,Ec),n=t.domain;let i,r,o=10;function a(){return i=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}(o),r=function(e){return 10===e?Mc:e===Math.E?Math.exp:t=>Math.pow(e,t)}(o),n()[0]<0?(i=zc(i),r=zc(r),e(Fc,Cc)):e(Sc,Ec),t}return t.base=function(e){return arguments.length?(o=+e,a()):o},t.domain=function(e){return arguments.length?(n(e),a()):n()},t.ticks=e=>{const t=n();let a=t[0],s=t[t.length-1];const l=s<a;l&&([a,s]=[s,a]);let u,c,f=i(a),d=i(s);const h=null==e?10:+e;let p=[];if(!(o%1)&&d-f<h){if(f=Math.floor(f),d=Math.ceil(d),a>0){for(;f<=d;++f)for(u=1;u<o;++u)if(c=f<0?u/r(-f):u*r(f),!(c<a)){if(c>s)break;p.push(c)}}else for(;f<=d;++f)for(u=o-1;u>=1;--u)if(c=f>0?u/r(-f):u*r(f),!(c<a)){if(c>s)break;p.push(c)}2*p.length<h&&(p=J(a,s,h))}else p=J(f,d,Math.min(d-f,h)).map(r);return l?p.reverse():p},t.tickFormat=(e,n)=>{if(null==e&&(e=10),null==n&&(n=10===o?"s":","),"function"!=typeof n&&(o%1||null!=(n=Q(n)).precision||(n.trim=!0),n=K(n)),e===1/0)return n;const a=Math.max(1,o*e/t.ticks().length);return e=>{let t=e/r(Math.round(i(e)));return t*o<o-.5&&(t*=o),t<=a?n(e):""}},t.nice=()=>n(_t(n(),{floor:e=>r(Math.floor(i(e))),ceil:e=>r(Math.ceil(i(e)))})),t}function Nc(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Rc(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Bc(e){var t=1,n=e(Nc(t),Rc(t));return n.constant=function(n){return arguments.length?e(Nc(t=+n),Rc(t)):t},Tt(n)}function Tc(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Pc(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function jc(e){return e<0?-e*e:e*e}function Lc(e){var t=e(Lt,Lt),n=1;return t.exponent=function(t){return arguments.length?1===(n=+t)?e(Lt,Lt):.5===n?e(Pc,jc):e(Tc(n),Tc(1/n)):n},Tt(t)}function qc(){var e=Lc(Pt());return e.copy=function(){return jt(e,qc()).exponent(e.exponent())},Hn.apply(e,arguments),e}function Uc(){var e,t,n,i,r,o=0,a=1,s=Lt,l=!1;function u(t){return null==t||isNaN(t=+t)?r:s(0===n?.5:(t=(i(t)-e)*n,l?Math.max(0,Math.min(1,t)):t))}function c(e){return function(t){var n,i;return arguments.length?([n,i]=t,s=e(n,i),u):[s(0),s(1)]}}return u.domain=function(r){return arguments.length?([o,a]=r,e=i(o=+o),t=i(a=+a),n=e===t?0:1/(t-e),u):[o,a]},u.clamp=function(e){return arguments.length?(l=!!e,u):l},u.interpolator=function(e){return arguments.length?(s=e,u):s},u.range=c(Ct),u.rangeRound=c(Rt),u.unknown=function(e){return arguments.length?(r=e,u):r},function(r){return i=r,e=r(o),t=r(a),n=e===t?0:1/(t-e),u}}function Ic(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Wc(){var e=Tt(Uc()(Lt));return e.copy=function(){return Ic(e,Wc())},Gn.apply(e,arguments)}function Hc(){var e=Lc(Uc());return e.copy=function(){return Ic(e,Hc()).exponent(e.exponent())},Gn.apply(e,arguments)}function Gc(){var e,t,n,i,r,o,a,s=0,l=.5,u=1,c=1,f=Lt,d=!1;function h(e){return isNaN(e=+e)?a:(e=.5+((e=+o(e))-t)*(c*e<c*t?i:r),f(d?Math.max(0,Math.min(1,e)):e))}function p(e){return function(t){var n,i,r;return arguments.length?([n,i,r]=t,f=Ai(e,[n,i,r]),h):[f(0),f(.5),f(1)]}}return h.domain=function(a){return arguments.length?([s,l,u]=a,e=o(s=+s),t=o(l=+l),n=o(u=+u),i=e===t?0:.5/(t-e),r=t===n?0:.5/(n-t),c=t<e?-1:1,h):[s,l,u]},h.clamp=function(e){return arguments.length?(d=!!e,h):d},h.interpolator=function(e){return arguments.length?(f=e,h):f},h.range=p(Ct),h.rangeRound=p(Rt),h.unknown=function(e){return arguments.length?(a=e,h):a},function(a){return o=a,e=a(s),t=a(l),n=a(u),i=e===t?0:.5/(t-e),r=t===n?0:.5/(n-t),c=t<e?-1:1,h}}function Vc(){var e=Lc(Gc());return e.copy=function(){return Ic(e,Vc()).exponent(e.exponent())},Gn.apply(e,arguments)}const Yc=Jn("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Xc=Jn("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Jc=Jn("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),Qc=Jn("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),Kc=Jn("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),Zc=Jn("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),ef=Jn("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),tf=Jn("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),nf=Jn("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),rf=Jn("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function of(e,t,n){const i=e-t+2*n;return e?i>0?i:1:0}const af="linear",sf="log",lf="pow",uf="sqrt",cf="symlog",ff="time",df="utc",hf="sequential",pf="diverging",mf="quantile",gf="quantize",yf="threshold",vf="ordinal",bf="point",xf="band",wf="bin-ordinal",_f="continuous",kf="discrete",$f="discretizing",Df="interpolating",Af="temporal";function Sf(){const e=Yn().unknown(void 0),t=e.domain,n=e.range;let i,r,o=[0,1],a=!1,s=0,l=0,u=.5;function c(){const e=t().length,c=o[1]<o[0],f=o[1-c],d=of(e,s,l);let h=o[c-0];i=(f-h)/(d||1),a&&(i=Math.floor(i)),h+=(f-h-i*(e-s))*u,r=i*(1-s),a&&(h=Math.round(h),r=Math.round(r));const p=Ht(e).map((e=>h+i*e));return n(c?p.reverse():p)}return delete e.unknown,e.domain=function(e){return arguments.length?(t(e),c()):t()},e.range=function(e){return arguments.length?(o=[+e[0],+e[1]],c()):o.slice()},e.rangeRound=function(e){return o=[+e[0],+e[1]],a=!0,c()},e.bandwidth=function(){return r},e.step=function(){return i},e.round=function(e){return arguments.length?(a=!!e,c()):a},e.padding=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),s=l,c()):s},e.paddingInner=function(e){return arguments.length?(s=Math.max(0,Math.min(1,e)),c()):s},e.paddingOuter=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),c()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),c()):u},e.invertRange=function(e){if(null==e[0]||null==e[1])return;const i=o[1]<o[0],a=i?n().reverse():n(),s=a.length-1;let l,u,c,f=+e[0],d=+e[1];return f!=f||d!=d||(d<f&&(c=f,f=d,d=c),d<a[0]||f>o[1-i])?void 0:(l=Math.max(0,qt(a,f)-1),u=f===d?l:qt(a,d)-1,f-a[l]>r+1e-10&&++l,i&&(c=l,l=s-u,u=s-c),l>u?void 0:t().slice(l,u+1))},e.invert=function(t){const n=e.invertRange([t,t]);return n?n[0]:n},e.copy=function(){return Sf().domain(t()).range(o).round(a).paddingInner(s).paddingOuter(l).align(u)},c()}function Ef(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return Ef(t())},e}var Ff=Array.prototype.map;const Cf=Array.prototype.slice;const Mf=new Map,zf=Symbol("vega_scale");function Of(e){return e[zf]=!0,e}function Nf(e,t,n){return arguments.length>1?(Mf.set(e,function(e,t,n){const i=function(){const n=t();return n.invertRange||(n.invertRange=n.invert?function(e){return function(t){let n,i=t[0],r=t[1];return r<i&&(n=i,i=r,r=n),[e.invert(i),e.invert(r)]}}(n):n.invertExtent?function(e){return function(t){const n=e.range();let i,r,o,a,s=t[0],l=t[1],u=-1;for(l<s&&(r=s,s=l,l=r),o=0,a=n.length;o<a;++o)n[o]>=s&&n[o]<=l&&(u<0&&(u=o),i=o);if(!(u<0))return s=e.invertExtent(n[u]),l=e.invertExtent(n[i]),[void 0===s[0]?s[1]:s[0],void 0===l[1]?l[0]:l[1]]}}(n):void 0),n.type=e,Of(n)};return i.metadata=se(c(n)),i}(e,t,n)),this):Rf(e)?Mf.get(e):void 0}function Rf(e){return Mf.has(e)}function Bf(e,t){const n=Mf.get(e);return n&&n.metadata[t]}function Tf(e){return Bf(e,_f)}function Pf(e){return Bf(e,kf)}function jf(e){return Bf(e,$f)}function Lf(e){return Bf(e,sf)}function qf(e){return Bf(e,Df)}function Uf(e){return Bf(e,mf)}Nf("identity",(function e(t){var n;function i(e){return null==e||isNaN(e=+e)?n:e}return i.invert=i,i.domain=i.range=function(e){return arguments.length?(t=Array.from(e,Bt),i):t.slice()},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return e(t).unknown(n)},t=arguments.length?Array.from(t,Bt):[0,1],Tt(i)})),Nf(af,Ut,_f),Nf(sf,(function e(){const t=Oc(Pt()).domain([1,10]);return t.copy=()=>jt(t,e()).base(t.base()),Hn.apply(t,arguments),t}),[_f,sf]),Nf(lf,qc,_f),Nf(uf,(function(){return qc.apply(null,arguments).exponent(.5)}),_f),Nf(cf,(function e(){var t=Bc(Pt());return t.copy=function(){return jt(t,e()).constant(t.constant())},Hn.apply(t,arguments)}),_f),Nf(ff,At,[_f,Af]),Nf(df,(function(){return Hn.apply(kt(Dt,$t,ae,oe,re,ie,ne,te,ee,Z).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[_f,Af]),Nf(hf,Wc,[_f,Df]),Nf(`${hf}-${af}`,Wc,[_f,Df]),Nf(`${hf}-${sf}`,(function e(){var t=Oc(Uc()).domain([1,10]);return t.copy=function(){return Ic(t,e()).base(t.base())},Gn.apply(t,arguments)}),[_f,Df,sf]),Nf(`${hf}-${lf}`,Hc,[_f,Df]),Nf(`${hf}-${uf}`,(function(){return Hc.apply(null,arguments).exponent(.5)}),[_f,Df]),Nf(`${hf}-${cf}`,(function e(){var t=Bc(Uc());return t.copy=function(){return Ic(t,e()).constant(t.constant())},Gn.apply(t,arguments)}),[_f,Df]),Nf(`${pf}-${af}`,(function e(){var t=Tt(Gc()(Lt));return t.copy=function(){return Ic(t,e())},Gn.apply(t,arguments)}),[_f,Df]),Nf(`${pf}-${sf}`,(function e(){var t=Oc(Gc()).domain([.1,1,10]);return t.copy=function(){return Ic(t,e()).base(t.base())},Gn.apply(t,arguments)}),[_f,Df,sf]),Nf(`${pf}-${lf}`,Vc,[_f,Df]),Nf(`${pf}-${uf}`,(function(){return Vc.apply(null,arguments).exponent(.5)}),[_f,Df]),Nf(`${pf}-${cf}`,(function e(){var t=Bc(Gc());return t.copy=function(){return Ic(t,e()).constant(t.constant())},Gn.apply(t,arguments)}),[_f,Df]),Nf(mf,(function t(){var n,i=[],r=[],o=[];function a(){var e=0,t=Math.max(1,r.length);for(o=new Array(t-1);++e<t;)o[e-1]=ii(i,e/t);return s}function s(e){return null==e||isNaN(e=+e)?n:r[qt(o,e)]}return s.invertExtent=function(e){var t=r.indexOf(e);return t<0?[NaN,NaN]:[t>0?o[t-1]:i[0],t<o.length?o[t]:i[i.length-1]]},s.domain=function(t){if(!arguments.length)return i.slice();i=[];for(let e of t)null==e||isNaN(e=+e)||i.push(e);return i.sort(e),a()},s.range=function(e){return arguments.length?(r=Array.from(e),a()):r.slice()},s.unknown=function(e){return arguments.length?(n=e,s):n},s.quantiles=function(){return o.slice()},s.copy=function(){return t().domain(i).range(r).unknown(n)},Hn.apply(s,arguments)}),[$f,mf]),Nf(gf,(function e(){var t,n=0,i=1,r=1,o=[.5],a=[0,1];function s(e){return null!=e&&e<=e?a[qt(o,e,0,r)]:t}function l(){var e=-1;for(o=new Array(r);++e<r;)o[e]=((e+1)*i-(e-r)*n)/(r+1);return s}return s.domain=function(e){return arguments.length?([n,i]=e,n=+n,i=+i,l()):[n,i]},s.range=function(e){return arguments.length?(r=(a=Array.from(e)).length-1,l()):a.slice()},s.invertExtent=function(e){var t=a.indexOf(e);return t<0?[NaN,NaN]:t<1?[n,o[0]]:t>=r?[o[r-1],i]:[o[t-1],o[t]]},s.unknown=function(e){return arguments.length?(t=e,s):s},s.thresholds=function(){return o.slice()},s.copy=function(){return e().domain([n,i]).range(a).unknown(t)},Hn.apply(Tt(s),arguments)}),$f),Nf(yf,(function e(){var t,n=[.5],i=[0,1],r=1;function o(e){return null!=e&&e<=e?i[qt(n,e,0,r)]:t}return o.domain=function(e){return arguments.length?(n=Array.from(e),r=Math.min(n.length,i.length-1),o):n.slice()},o.range=function(e){return arguments.length?(i=Array.from(e),r=Math.min(n.length,i.length-1),o):i.slice()},o.invertExtent=function(e){var t=i.indexOf(e);return[n[t-1],n[t]]},o.unknown=function(e){return arguments.length?(t=e,o):t},o.copy=function(){return e().domain(n).range(i).unknown(t)},Hn.apply(o,arguments)}),$f),Nf(wf,(function e(){let t=[],n=[];function i(e){return null==e||e!=e?void 0:n[(qt(t,e)-1)%n.length]}return i.domain=function(e){return arguments.length?(t=function(e){return Ff.call(e,C)}(e),i):t.slice()},i.range=function(e){return arguments.length?(n=Cf.call(e),i):n.slice()},i.tickFormat=function(e,n){return It(t[0],T(t),null==e?10:e,n)},i.copy=function(){return e().domain(i.domain()).range(i.range())},i}),[kf,$f]),Nf(vf,Yn,kf),Nf(xf,Sf,kf),Nf(bf,(function(){return Ef(Sf().paddingInner(1))}),kf);const If=["clamp","base","constant","exponent"];function Wf(e,t){const n=t[0],i=T(t)-n;return function(t){return e(n+t*i)}}function Hf(e,t,n){return Ai(Yf(t||"rgb",n),e)}function Gf(e,t){const n=new Array(t),i=t+1;for(let r=0;r<t;)n[r]=e(++r/i);return n}function Vf(e,t,n){const i=n-t;let r,o,a;return i&&Number.isFinite(i)?(r=(o=e.type).indexOf("-"),o=r<0?o:o.slice(r+1),a=Nf(o)().domain([t,n]).range([0,1]),If.forEach((t=>e[t]?a[t](e[t]()):0)),a):g(.5)}function Yf(e,t){const n=Si[function(e){return"interpolate"+e.toLowerCase().split("-").map((e=>e[0].toUpperCase()+e.slice(1))).join("")}(e)];return null!=t&&n&&n.gamma?n.gamma(t):n}function Xf(e){if(u(e))return e;const t=e.length/6|0,n=new Array(t);for(let i=0;i<t;)n[i]="#"+e.slice(6*i,6*++i);return n}function Jf(e,t){for(const n in e)Kf(n,t(e[n]))}const Qf={};function Kf(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Qf[e]=t,this):Qf[e]}Jf({accent:Xc,category10:Yc,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:Jc,observable10:Qc,paired:Kc,pastel1:Zc,pastel2:ef,set1:tf,set2:nf,set3:rf,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"},Xf),Jf({blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},(e=>Hf(Xf(e))));const Zf="symbol",ed=e=>u(e)?e.map((e=>String(e))):String(e),td=(e,t)=>e[1]-t[1],nd=(e,t)=>t[1]-e[1];function id(e,t,r){let o;return n(t)&&(e.bins&&(t=Math.max(t,e.bins.length)),null!=r&&(t=Math.min(t,Math.floor(I(e.domain())/r||1)+1))),a(t)&&(o=t.step,t=t.interval),i(t)&&(t=e.type===ff?j(t):e.type==df?P(t):v("Only time and utc scales accept interval strings."),o&&(t=t.every(o))),t}function rd(e,t,n){let i=e.range(),r=i[0],o=T(i),a=td;if(r>o&&(i=o,o=r,r=i,a=nd),r=Math.floor(r),o=Math.ceil(o),t=t.map((t=>[t,e(t)])).filter((e=>r<=e[1]&&e[1]<=o)).sort(a).map((e=>e[0])),n>0&&t.length>1){const e=[t[0],T(t)];for(;t.length>n&&t.length>=3;)t=t.filter(((e,t)=>!(t%2)));t.length<3&&(t=e)}return t}function od(e,t){return e.bins?rd(e,e.bins,t):e.ticks?e.ticks(t):e.domain()}function ad(e,t,n,i,r,o){const a=t.type;let s=ed;if(a===ff||r===ff)s=e.timeFormat(i);else if(a===df||r===df)s=e.utcFormat(i);else if(Lf(a)){const r=e.formatFloat(i);if(o||t.bins)s=r;else{const e=sd(t,n,!1);s=t=>e(t)?r(t):""}}else if(t.tickFormat){const r=t.domain();s=e.formatSpan(r[0],r[r.length-1],n,i)}else i&&(s=e.format(i));return s}function sd(e,t,n){const i=od(e,t),r=e.base(),o=Math.log(r),a=Math.max(1,r*t/i.length),s=e=>{let t=e/Math.pow(r,Math.round(Math.log(e)/o));return t*r<r-.5&&(t*=r),t<=a};return n?i.filter(s):s}const ld={[mf]:"quantiles",[gf]:"thresholds",[yf]:"domain"},ud={[mf]:"quantiles",[gf]:"domain"};function cd(e,t){return e.bins?function(e){const t=e.slice(0,-1);return t.max=T(e),t}(e.bins):e.type===sf?sd(e,t,!0):ld[e.type]?function(e){const t=[-1/0].concat(e);return t.max=1/0,t}(e[ld[e.type]]()):od(e,t)}function fd(e,t,n,i,r,o,a){const s=ud[t.type]&&o!==ff&&o!==df?function(e,t,n){const i=t[ud[t.type]](),r=i.length;let o,a=r>1?i[1]-i[0]:i[0];for(o=1;o<r;++o)a=Math.min(a,i[o]-i[o-1]);return e.formatSpan(0,a,30,n)}(e,t,r):ad(e,t,n,r,o,a);return i===Zf&&(e=>ld[e.type]||e.bins)(t)?dd(s):"discrete"===i?pd(s):md(s)}const dd=e=>(t,n,i)=>{const r=hd(i[n+1],hd(i.max,1/0)),o=gd(t,e),a=gd(r,e);return o&&a?o+" – "+a:a?"< "+a:"≥ "+o},hd=(e,t)=>null!=e?e:t,pd=e=>(t,n)=>n?e(t):null,md=e=>t=>e(t),gd=(e,t)=>Number.isFinite(e)?t(e):null;function yd(e,t,n,r){const o=r||t.type;return i(n)&&Bf(o,Af)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),n||o!==ff?n||o!==df?fd(e,t,5,null,n,r,!0):e.utcFormat("%A, %d %B %Y, %X UTC"):e.timeFormat("%A, %d %B %Y, %X")}function vd(e,t,n){n=n||{};const i=Math.max(3,n.maxlen||7),r=yd(e,t,n.format,n.formatType);if(jf(t.type)){const e=cd(t).slice(1).map(r),n=e.length;return`${n} boundar${1===n?"y":"ies"}: ${e.join(", ")}`}if(Pf(t.type)){const e=t.domain(),n=e.length;return`${n} value${1===n?"":"s"}: ${n>i?e.slice(0,i-2).map(r).join(", ")+", ending with "+e.slice(-1).map(r):e.map(r).join(", ")}`}{const e=t.domain();return`values from ${r(e[0])} to ${r(T(e))}`}}let bd=0;const xd="p_";function wd(e){return e&&e.gradient}function _d(e,t,n){const i=e.gradient;let r=e.id,o="radial"===i?xd:"";return r||(r=e.id="gradient_"+bd++,"radial"===i?(e.x1=kd(e.x1,.5),e.y1=kd(e.y1,.5),e.r1=kd(e.r1,0),e.x2=kd(e.x2,.5),e.y2=kd(e.y2,.5),e.r2=kd(e.r2,.5),o=xd):(e.x1=kd(e.x1,0),e.y1=kd(e.y1,0),e.x2=kd(e.x2,1),e.y2=kd(e.y2,0))),t[r]=e,"url("+(n||"")+"#"+o+r+")"}function kd(e,t){return null!=e?e:t}function $d(e,t){var n,i=[];return n={gradient:"linear",x1:e?e[0]:0,y1:e?e[1]:0,x2:t?t[0]:1,y2:t?t[1]:0,stops:i,stop:function(e,t){return i.push({offset:e,color:t}),n}}}const Dd={basis:{curve:Ln},"basis-closed":{curve:jn},"basis-open":{curve:Pn},bundle:{curve:Tn,tension:"beta",value:.85},cardinal:{curve:Bn,tension:"tension",value:0},"cardinal-open":{curve:Rn,tension:"tension",value:0},"cardinal-closed":{curve:Nn,tension:"tension",value:0},"catmull-rom":{curve:On,tension:"alpha",value:.5},"catmull-rom-closed":{curve:zn,tension:"alpha",value:.5},"catmull-rom-open":{curve:Mn,tension:"alpha",value:.5},linear:{curve:gn},"linear-closed":{curve:Cn},monotone:{horizontal:Fn,vertical:En},natural:{curve:Sn},step:{curve:An},"step-after":{curve:Dn},"step-before":{curve:$n}};function Ad(e,n,i){var r=t(Dd,e)&&Dd[e],o=null;return r&&(o=r.curve||r[n||"vertical"],r.tension&&null!=i&&(o=o[r.tension](i))),o}const Sd={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},Ed=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,Fd=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,Cd=/^((\s+,?\s*)|(,\s*))/,Md=/^[01]/;function zd(e){const t=[];return(e.match(Ed)||[]).forEach((e=>{let n=e[0];const i=n.toLowerCase(),r=Sd[i],o=function(e,t,n){const i=[];for(let r=0;t&&r<n.length;)for(let o=0;o<t;++o){const t="a"!==e||3!==o&&4!==o?Fd:Md,a=n.slice(r).match(t);if(null===a)throw Error("Invalid SVG path, incorrect parameter type");r+=a[0].length,i.push(+a[0]);const s=n.slice(r).match(Cd);null!==s&&(r+=s[0].length)}return i}(i,r,e.slice(1).trim()),a=o.length;if(a<r||a&&a%r!=0)throw Error("Invalid SVG path, incorrect parameter count");if(t.push([n,...o.slice(0,r)]),a!==r){"m"===i&&(n="M"===n?"L":"l");for(let e=r;e<a;e+=r)t.push([n,...o.slice(e,e+r)])}})),t}const Od=Math.PI/180,Nd=Math.PI/2,Rd=2*Math.PI,Bd=Math.sqrt(3)/2;var Td={},Pd={},jd=[].join;function Ld(e){const t=jd.call(e);if(Pd[t])return Pd[t];var n=e[0],i=e[1],r=e[2],o=e[3],a=e[4],s=e[5],l=e[6],u=e[7];const c=u*a,f=-l*s,d=l*a,h=u*s,p=Math.cos(r),m=Math.sin(r),g=Math.cos(o),y=Math.sin(o),v=.5*(o-r),b=Math.sin(.5*v),x=8/3*b*b/Math.sin(v),w=n+p-x*m,_=i+m+x*p,k=n+g,$=i+y,D=k+x*y,A=$-x*g;return Pd[t]=[c*w+f*_,d*w+h*_,c*D+f*A,d*D+h*A,c*k+f*$,d*k+h*$]}const qd=["l",0,0,0,0,0,0,0];function Ud(e,t,n){const i=qd[0]=e[0];if("a"===i||"A"===i)qd[1]=t*e[1],qd[2]=n*e[2],qd[3]=e[3],qd[4]=e[4],qd[5]=e[5],qd[6]=t*e[6],qd[7]=n*e[7];else if("h"===i||"H"===i)qd[1]=t*e[1];else if("v"===i||"V"===i)qd[1]=n*e[1];else for(var r=1,o=e.length;r<o;++r)qd[r]=(r%2==1?t:n)*e[r];return qd}function Id(e,t,n,i,r,o){var a,s,l,u,c,f=null,d=0,h=0,p=0,m=0,g=0,y=0;null==n&&(n=0),null==i&&(i=0),null==r&&(r=1),null==o&&(o=r),e.beginPath&&e.beginPath();for(var v=0,b=t.length;v<b;++v){switch(a=t[v],1===r&&1===o||(a=Ud(a,r,o)),a[0]){case"l":d+=a[1],h+=a[2],e.lineTo(d+n,h+i);break;case"L":d=a[1],h=a[2],e.lineTo(d+n,h+i);break;case"h":d+=a[1],e.lineTo(d+n,h+i);break;case"H":d=a[1],e.lineTo(d+n,h+i);break;case"v":h+=a[1],e.lineTo(d+n,h+i);break;case"V":h=a[1],e.lineTo(d+n,h+i);break;case"m":g=d+=a[1],y=h+=a[2],e.moveTo(d+n,h+i);break;case"M":g=d=a[1],y=h=a[2],e.moveTo(d+n,h+i);break;case"c":s=d+a[5],l=h+a[6],p=d+a[3],m=h+a[4],e.bezierCurveTo(d+a[1]+n,h+a[2]+i,p+n,m+i,s+n,l+i),d=s,h=l;break;case"C":d=a[5],h=a[6],p=a[3],m=a[4],e.bezierCurveTo(a[1]+n,a[2]+i,p+n,m+i,d+n,h+i);break;case"s":s=d+a[3],l=h+a[4],p=2*d-p,m=2*h-m,e.bezierCurveTo(p+n,m+i,d+a[1]+n,h+a[2]+i,s+n,l+i),p=d+a[1],m=h+a[2],d=s,h=l;break;case"S":s=a[3],l=a[4],p=2*d-p,m=2*h-m,e.bezierCurveTo(p+n,m+i,a[1]+n,a[2]+i,s+n,l+i),d=s,h=l,p=a[1],m=a[2];break;case"q":s=d+a[3],l=h+a[4],p=d+a[1],m=h+a[2],e.quadraticCurveTo(p+n,m+i,s+n,l+i),d=s,h=l;break;case"Q":s=a[3],l=a[4],e.quadraticCurveTo(a[1]+n,a[2]+i,s+n,l+i),d=s,h=l,p=a[1],m=a[2];break;case"t":s=d+a[1],l=h+a[2],null===f[0].match(/[QqTt]/)?(p=d,m=h):"t"===f[0]?(p=2*d-u,m=2*h-c):"q"===f[0]&&(p=2*d-p,m=2*h-m),u=p,c=m,e.quadraticCurveTo(p+n,m+i,s+n,l+i),h=l,p=(d=s)+a[1],m=h+a[2];break;case"T":s=a[1],l=a[2],p=2*d-p,m=2*h-m,e.quadraticCurveTo(p+n,m+i,s+n,l+i),d=s,h=l;break;case"a":Wd(e,d+n,h+i,[a[1],a[2],a[3],a[4],a[5],a[6]+d+n,a[7]+h+i]),d+=a[6],h+=a[7];break;case"A":Wd(e,d+n,h+i,[a[1],a[2],a[3],a[4],a[5],a[6]+n,a[7]+i]),d=a[6],h=a[7];break;case"z":case"Z":d=g,h=y,e.closePath()}f=a}}function Wd(e,t,n,i){const r=function(e,t,n,i,r,o,a,s,l){const u=jd.call(arguments);if(Td[u])return Td[u];const c=a*Od,f=Math.sin(c),d=Math.cos(c),h=d*(s-e)*.5+f*(l-t)*.5,p=d*(l-t)*.5-f*(s-e)*.5;let m=h*h/((n=Math.abs(n))*n)+p*p/((i=Math.abs(i))*i);m>1&&(m=Math.sqrt(m),n*=m,i*=m);const g=d/n,y=f/n,v=-f/i,b=d/i,x=g*s+y*l,w=v*s+b*l,_=g*e+y*t,k=v*e+b*t;let $=1/((_-x)*(_-x)+(k-w)*(k-w))-.25;$<0&&($=0);let D=Math.sqrt($);o==r&&(D=-D);const A=.5*(x+_)-D*(k-w),S=.5*(w+k)+D*(_-x),E=Math.atan2(w-S,x-A);let F=Math.atan2(k-S,_-A)-E;F<0&&1===o?F+=Rd:F>0&&0===o&&(F-=Rd);const C=Math.ceil(Math.abs(F/(Nd+.001))),M=[];for(let z=0;z<C;++z){const e=E+z*F/C,t=E+(z+1)*F/C;M[z]=[A,S,e,t,n,i,f,d]}return Td[u]=M}(i[5],i[6],i[0],i[1],i[3],i[4],i[2],t,n);for(let o=0;o<r.length;++o){const t=Ld(r[o]);e.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5])}}const Hd=.5773502691896257,Gd={circle:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(n,0),e.arc(0,0,n,0,Rd)}},cross:{draw:function(e,t){var n=Math.sqrt(t)/2,i=n/2.5;e.moveTo(-n,-i),e.lineTo(-n,i),e.lineTo(-i,i),e.lineTo(-i,n),e.lineTo(i,n),e.lineTo(i,i),e.lineTo(n,i),e.lineTo(n,-i),e.lineTo(i,-i),e.lineTo(i,-n),e.lineTo(-i,-n),e.lineTo(-i,-i),e.closePath()}},diamond:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(0,-n),e.lineTo(n,0),e.lineTo(0,n),e.closePath()}},square:{draw:function(e,t){var n=Math.sqrt(t),i=-n/2;e.rect(i,i,n,n)}},arrow:{draw:function(e,t){var n=Math.sqrt(t)/2,i=n/7,r=n/2.5,o=n/8;e.moveTo(-i,n),e.lineTo(i,n),e.lineTo(i,-o),e.lineTo(r,-o),e.lineTo(0,-n),e.lineTo(-r,-o),e.lineTo(-i,-o),e.closePath()}},wedge:{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n,r=i-n*Hd,o=n/4;e.moveTo(0,-i-r),e.lineTo(-o,i-r),e.lineTo(o,i-r),e.closePath()}},triangle:{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n,r=i-n*Hd;e.moveTo(0,-i-r),e.lineTo(-n,i-r),e.lineTo(n,i-r),e.closePath()}},"triangle-up":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n;e.moveTo(0,-i),e.lineTo(-n,i),e.lineTo(n,i),e.closePath()}},"triangle-down":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n;e.moveTo(0,i),e.lineTo(-n,-i),e.lineTo(n,-i),e.closePath()}},"triangle-right":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n;e.moveTo(i,0),e.lineTo(-i,-n),e.lineTo(-i,n),e.closePath()}},"triangle-left":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n;e.moveTo(-i,0),e.lineTo(i,-n),e.lineTo(i,n),e.closePath()}},stroke:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(n,0)}}};function Vd(e){return t(Gd,e)?Gd[e]:function(e){if(!t(Yd,e)){const t=zd(e);Yd[e]={draw:function(e,n){Id(e,t,0,0,Math.sqrt(n)/2)}}}return Yd[e]}(e)}var Yd={};const Xd=.448084975506;function Jd(e){return e.x}function Qd(e){return e.y}function Kd(e){return e.width}function Zd(e){return e.height}function eh(e){return"function"==typeof e?e:()=>+e}function th(e,t,n){return Math.max(t,Math.min(e,n))}function nh(){var e=Jd,t=Qd,n=Kd,i=Zd,r=eh(0),o=r,a=r,s=r,l=null;function u(u,c,f){var d,h=null!=c?c:+e.call(this,u),p=null!=f?f:+t.call(this,u),m=+n.call(this,u),g=+i.call(this,u),y=Math.min(m,g)/2,v=th(+r.call(this,u),0,y),b=th(+o.call(this,u),0,y),x=th(+a.call(this,u),0,y),w=th(+s.call(this,u),0,y);if(l||(l=d=qn()),v<=0&&b<=0&&x<=0&&w<=0)l.rect(h,p,m,g);else{var _=h+m,k=p+g;l.moveTo(h+v,p),l.lineTo(_-b,p),l.bezierCurveTo(_-Xd*b,p,_,p+Xd*b,_,p+b),l.lineTo(_,k-w),l.bezierCurveTo(_,k-Xd*w,_-Xd*w,k,_-w,k),l.lineTo(h+x,k),l.bezierCurveTo(h+Xd*x,k,h,k-Xd*x,h,k-x),l.lineTo(h,p+v),l.bezierCurveTo(h,p+Xd*v,h+Xd*v,p,h+v,p),l.closePath()}if(d)return l=null,d+""||null}return u.x=function(t){return arguments.length?(e=eh(t),u):e},u.y=function(e){return arguments.length?(t=eh(e),u):t},u.width=function(e){return arguments.length?(n=eh(e),u):n},u.height=function(e){return arguments.length?(i=eh(e),u):i},u.cornerRadius=function(e,t,n,i){return arguments.length?(r=eh(e),o=null!=t?eh(t):r,s=null!=n?eh(n):r,a=null!=i?eh(i):o,u):r},u.context=function(e){return arguments.length?(l=null==e?null:e,u):l},u}function ih(){var e,t,n,i,r,o,a,s,l=null;function u(e,t,n){const i=n/2;if(r){var u=a-t,c=e-o;if(u||c){var f=Math.hypot(u,c),d=(u/=f)*s,h=(c/=f)*s,p=Math.atan2(c,u);l.moveTo(o-d,a-h),l.lineTo(e-u*i,t-c*i),l.arc(e,t,i,p-Math.PI,p),l.lineTo(o+d,a+h),l.arc(o,a,s,p,p+Math.PI)}else l.arc(e,t,i,0,Rd);l.closePath()}else r=1;o=e,a=t,s=i}function c(o){var a,s,c,f=o.length,d=!1;for(null==l&&(l=c=qn()),a=0;a<=f;++a)!(a<f&&i(s=o[a],a,o))===d&&(d=!d)&&(r=0),d&&u(+e(s,a,o),+t(s,a,o),+n(s,a,o));if(c)return l=null,c+""||null}return c.x=function(t){return arguments.length?(e=t,c):e},c.y=function(e){return arguments.length?(t=e,c):t},c.size=function(e){return arguments.length?(n=e,c):n},c.defined=function(e){return arguments.length?(i=e,c):i},c.context=function(e){return arguments.length?(l=null==e?null:e,c):l},c}function rh(e,t){return null!=e?e:t}const oh=e=>e.x||0,ah=e=>e.y||0,sh=e=>!(!1===e.defined),lh=Qn().startAngle((e=>e.startAngle||0)).endAngle((e=>e.endAngle||0)).padAngle((e=>e.padAngle||0)).innerRadius((e=>e.innerRadius||0)).outerRadius((e=>e.outerRadius||0)).cornerRadius((e=>e.cornerRadius||0)),uh=$c().x(oh).y1(ah).y0((e=>(e.y||0)+(e.height||0))).defined(sh),ch=$c().y(ah).x1(oh).x0((e=>(e.x||0)+(e.width||0))).defined(sh),fh=xn().x(oh).y(ah).defined(sh),dh=nh().x(oh).y(ah).width((e=>e.width||0)).height((e=>e.height||0)).cornerRadius((e=>rh(e.cornerRadiusTopLeft,e.cornerRadius)||0),(e=>rh(e.cornerRadiusTopRight,e.cornerRadius)||0),(e=>rh(e.cornerRadiusBottomRight,e.cornerRadius)||0),(e=>rh(e.cornerRadiusBottomLeft,e.cornerRadius)||0)),hh=function(e,t){let n=null,i=pn(r);function r(){let r;if(n||(n=r=i()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),r)return n=null,r+""||null}return e="function"==typeof e?e:mn(e||Dc),t="function"==typeof t?t:mn(void 0===t?64:+t),r.type=function(t){return arguments.length?(e="function"==typeof t?t:mn(t),r):e},r.size=function(e){return arguments.length?(t="function"==typeof e?e:mn(+e),r):t},r.context=function(e){return arguments.length?(n=null==e?null:e,r):n},r}().type((e=>Vd(e.shape||"circle"))).size((e=>rh(e.size,64))),ph=ih().x(oh).y(ah).defined(sh).size((e=>e.size||1));function mh(e){return e.cornerRadius||e.cornerRadiusTopLeft||e.cornerRadiusTopRight||e.cornerRadiusBottomRight||e.cornerRadiusBottomLeft}function gh(e,t,n,i){return dh.context(e)(t,n,i)}var yh=1;function vh(){yh=1}function bh(e,t,n){var i=t.clip,r=e._defs,o=t.clip_id||(t.clip_id="clip"+yh++),a=r.clipping[o]||(r.clipping[o]={id:o});return m(i)?a.path=i(null):mh(n)?a.path=gh(null,n,0,0):(a.width=n.width||0,a.height=n.height||0),"url(#"+o+")"}function xh(e){this.clear(),e&&this.union(e)}function wh(e){this.mark=e,this.bounds=this.bounds||new xh}function _h(e){wh.call(this,e),this.items=this.items||[]}xh.prototype={clone(){return new xh(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(e){return this.x1===e.x1&&this.y1===e.y1&&this.x2===e.x2&&this.y2===e.y2},set(e,t,n,i){return n<e?(this.x2=e,this.x1=n):(this.x1=e,this.x2=n),i<t?(this.y2=t,this.y1=i):(this.y1=t,this.y2=i),this},add(e,t){return e<this.x1&&(this.x1=e),t<this.y1&&(this.y1=t),e>this.x2&&(this.x2=e),t>this.y2&&(this.y2=t),this},expand(e){return this.x1-=e,this.y1-=e,this.x2+=e,this.y2+=e,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(e){return this.x1*=e,this.y1*=e,this.x2*=e,this.y2*=e,this},translate(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this},rotate(e,t,n){const i=this.rotatedPoints(e,t,n);return this.clear().add(i[0],i[1]).add(i[2],i[3]).add(i[4],i[5]).add(i[6],i[7])},rotatedPoints(e,t,n){var{x1:i,y1:r,x2:o,y2:a}=this,s=Math.cos(e),l=Math.sin(e),u=t-t*s+n*l,c=n-t*l-n*s;return[s*i-l*r+u,l*i+s*r+c,s*i-l*a+u,l*i+s*a+c,s*o-l*r+u,l*o+s*r+c,s*o-l*a+u,l*o+s*a+c]},union(e){return e.x1<this.x1&&(this.x1=e.x1),e.y1<this.y1&&(this.y1=e.y1),e.x2>this.x2&&(this.x2=e.x2),e.y2>this.y2&&(this.y2=e.y2),this},intersect(e){return e.x1>this.x1&&(this.x1=e.x1),e.y1>this.y1&&(this.y1=e.y1),e.x2<this.x2&&(this.x2=e.x2),e.y2<this.y2&&(this.y2=e.y2),this},encloses(e){return e&&this.x1<=e.x1&&this.x2>=e.x2&&this.y1<=e.y1&&this.y2>=e.y2},alignsWith(e){return e&&(this.x1==e.x1||this.x2==e.x2||this.y1==e.y1||this.y2==e.y2)},intersects(e){return e&&!(this.x2<e.x1||this.x1>e.x2||this.y2<e.y1||this.y1>e.y2)},contains(e,t){return!(e<this.x1||e>this.x2||t<this.y1||t>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}},_(_h,wh);class kh{constructor(e){this._pending=0,this._loader=e||p()}pending(){return this._pending}sanitizeURL(e){const t=this;return $h(t),t._loader.sanitize(e,{context:"href"}).then((e=>(Dh(t),e))).catch((()=>(Dh(t),null)))}loadImage(e){const n=this,i="undefined"!=typeof Image?Image:null;return $h(n),n._loader.sanitize(e,{context:"image"}).then((e=>{const r=e.href;if(!r||!i)throw{url:r};const o=new i,a=t(e,"crossOrigin")?e.crossOrigin:"anonymous";return null!=a&&(o.crossOrigin=a),o.onload=()=>Dh(n),o.onerror=()=>Dh(n),o.src=r,o})).catch((e=>(Dh(n),{complete:!1,width:0,height:0,src:e&&e.url||""})))}ready(){const e=this;return new Promise((t=>{!function n(i){e.pending()?setTimeout((()=>{n(!0)}),10):t(i)}(!1)}))}}function $h(e){e._pending+=1}function Dh(e){e._pending-=1}function Ah(e,t,n){if(t.stroke&&0!==t.opacity&&0!==t.strokeOpacity){const i=null!=t.strokeWidth?+t.strokeWidth:1;e.expand(i+(n?function(e,t){return e.strokeJoin&&"miter"!==e.strokeJoin?0:t}(t,i):0))}return e}const Sh=Rd-1e-8;let Eh,Fh,Ch,Mh,zh,Oh,Nh,Rh;const Bh=(e,t)=>Eh.add(e,t),Th=(e,t)=>Bh(Fh=e,Ch=t),Ph=e=>Bh(e,Eh.y1),jh=e=>Bh(Eh.x1,e),Lh=(e,t)=>zh*e+Nh*t,qh=(e,t)=>Oh*e+Rh*t,Uh=(e,t)=>Bh(Lh(e,t),qh(e,t)),Ih=(e,t)=>Th(Lh(e,t),qh(e,t));function Wh(e,t){return Eh=e,t?(Mh=t*Od,zh=Rh=Math.cos(Mh),Oh=Math.sin(Mh),Nh=-Oh):(zh=Rh=1,Mh=Oh=Nh=0),Hh}const Hh={beginPath(){},closePath(){},moveTo:Ih,lineTo:Ih,rect(e,t,n,i){Mh?(Uh(e+n,t),Uh(e+n,t+i),Uh(e,t+i),Ih(e,t)):(Bh(e+n,t+i),Th(e,t))},quadraticCurveTo(e,t,n,i){const r=Lh(e,t),o=qh(e,t),a=Lh(n,i),s=qh(n,i);Gh(Fh,r,a,Ph),Gh(Ch,o,s,jh),Th(a,s)},bezierCurveTo(e,t,n,i,r,o){const a=Lh(e,t),s=qh(e,t),l=Lh(n,i),u=qh(n,i),c=Lh(r,o),f=qh(r,o);Vh(Fh,a,l,c,Ph),Vh(Ch,s,u,f,jh),Th(c,f)},arc(e,t,n,i,r,o){if(i+=Mh,r+=Mh,Fh=n*Math.cos(r)+e,Ch=n*Math.sin(r)+t,Math.abs(r-i)>Sh)Bh(e-n,t-n),Bh(e+n,t+n);else{const a=i=>Bh(n*Math.cos(i)+e,n*Math.sin(i)+t);let s,l;if(a(i),a(r),r!==i)if((i%=Rd)<0&&(i+=Rd),(r%=Rd)<0&&(r+=Rd),r<i&&(o=!o,s=i,i=r,r=s),o)for(r-=Rd,s=i-i%Nd,l=0;l<4&&s>r;++l,s-=Nd)a(s);else for(s=i-i%Nd+Nd,l=0;l<4&&s<r;++l,s+=Nd)a(s)}}};function Gh(e,t,n,i){const r=(e-t)/(e+n-2*t);0<r&&r<1&&i(e+(t-e)*r)}function Vh(e,t,n,i,r){const o=i-e+3*t-3*n,a=e+n-2*t,s=e-t;let l,u=0,c=0;Math.abs(o)>1e-14?(l=a*a+s*o,l>=0&&(l=Math.sqrt(l),u=(-a+l)/o,c=(-a-l)/o)):u=.5*s/a,0<u&&u<1&&r(Yh(u,e,t,n,i)),0<c&&c<1&&r(Yh(c,e,t,n,i))}function Yh(e,t,n,i,r){const o=1-e,a=o*o,s=e*e;return a*o*t+3*a*e*n+3*o*s*i+s*e*r}var Xh=(Xh=Ac(1,1))?Xh.getContext("2d"):null;const Jh=new xh;function Qh(e){return function(t,n){if(!Xh)return!0;e(Xh,t),Jh.clear().union(t.bounds).intersect(n).round();const{x1:i,y1:r,x2:o,y2:a}=Jh;for(let e=r;e<=a;++e)for(let t=i;t<=o;++t)if(Xh.isPointInPath(t,e))return!0;return!1}}function Kh(e,t){return t.contains(e.x||0,e.y||0)}function Zh(e,t){const n=e.x||0,i=e.y||0,r=e.width||0,o=e.height||0;return t.intersects(Jh.set(n,i,n+r,i+o))}function ep(e,t){const n=e.x||0,i=e.y||0;return tp(t,n,i,null!=e.x2?e.x2:n,null!=e.y2?e.y2:i)}function tp(e,t,n,i,r){const{x1:o,y1:a,x2:s,y2:l}=e,u=i-t,c=r-n;let f,d,h,p,m=0,g=1;for(p=0;p<4;++p){if(0===p&&(f=-u,d=-(o-t)),1===p&&(f=u,d=s-t),2===p&&(f=-c,d=-(a-n)),3===p&&(f=c,d=l-n),Math.abs(f)<1e-10&&d<0)return!1;if(h=d/f,f<0){if(h>g)return!1;h>m&&(m=h)}else if(f>0){if(h<m)return!1;h<g&&(g=h)}}return!0}function np(e,t){e.globalCompositeOperation=t.blend||"source-over"}function ip(e,t){return null==e?t:e}function rp(e,t){const n=t.length;for(let i=0;i<n;++i)e.addColorStop(t[i].offset,t[i].color);return e}function op(e,t,n){return wd(n)?function(e,t,n){const i=n.width(),r=n.height();let o;if("radial"===t.gradient)o=e.createRadialGradient(n.x1+ip(t.x1,.5)*i,n.y1+ip(t.y1,.5)*r,Math.max(i,r)*ip(t.r1,0),n.x1+ip(t.x2,.5)*i,n.y1+ip(t.y2,.5)*r,Math.max(i,r)*ip(t.r2,.5));else{const a=ip(t.x1,0),s=ip(t.y1,0),l=ip(t.x2,1),u=ip(t.y2,0);if(a!==l&&s!==u&&i!==r){const n=Ac(Math.ceil(i),Math.ceil(r)),o=n.getContext("2d");return o.scale(i,r),o.fillStyle=rp(o.createLinearGradient(a,s,l,u),t.stops),o.fillRect(0,0,i,r),e.createPattern(n,"no-repeat")}o=e.createLinearGradient(n.x1+a*i,n.y1+s*r,n.x1+l*i,n.y1+u*r)}return rp(o,t.stops)}(e,n,t.bounds):n}function ap(e,t,n){return(n*=null==t.fillOpacity?1:t.fillOpacity)>0&&(e.globalAlpha=n,e.fillStyle=op(e,t,t.fill),!0)}var sp=[];function lp(e,t,n){var i=null!=(i=t.strokeWidth)?i:1;return!(i<=0)&&((n*=null==t.strokeOpacity?1:t.strokeOpacity)>0&&(e.globalAlpha=n,e.strokeStyle=op(e,t,t.stroke),e.lineWidth=i,e.lineCap=t.strokeCap||"butt",e.lineJoin=t.strokeJoin||"miter",e.miterLimit=t.strokeMiterLimit||10,e.setLineDash&&(e.setLineDash(t.strokeDash||sp),e.lineDashOffset=t.strokeDashOffset||0),!0))}function up(e,t){return e.zindex-t.zindex||e.index-t.index}function cp(e){if(!e.zdirty)return e.zitems;var t,n,i,r=e.items,o=[];for(n=0,i=r.length;n<i;++n)(t=r[n]).index=n,t.zindex&&o.push(t);return e.zdirty=!1,e.zitems=o.sort(up)}function fp(e,t){var n,i,r=e.items;if(!r||!r.length)return;const o=cp(e);if(o&&o.length){for(n=0,i=r.length;n<i;++n)r[n].zindex||t(r[n]);r=o}for(n=0,i=r.length;n<i;++n)t(r[n])}function dp(e,t){var n,i,r=e.items;if(!r||!r.length)return null;const o=cp(e);for(o&&o.length&&(r=o),i=r.length;--i>=0;)if(n=t(r[i]))return n;if(r===o)for(i=(r=e.items).length;--i>=0;)if(!r[i].zindex&&(n=t(r[i])))return n;return null}function hp(e){return function(t,n,i){fp(n,(n=>{i&&!i.intersects(n.bounds)||pp(e,t,n,n)}))}}function pp(e,t,n,i){var r=null==n.opacity?1:n.opacity;0!==r&&(e(t,i)||(np(t,n),n.fill&&ap(t,n,r)&&t.fill(),n.stroke&&lp(t,n,r)&&t.stroke()))}function mp(e){return e=e||x,function(t,n,i,r,o,a){return i*=t.pixelRatio,r*=t.pixelRatio,dp(n,(n=>{const s=n.bounds;if((!s||s.contains(o,a))&&s)return e(t,n,i,r,o,a)?n:void 0}))}}function gp(e,t){return function(n,i,r,o){var a,s,l=Array.isArray(i)?i[0]:i,u=null==t?l.fill:t,c=l.stroke&&n.isPointInStroke;return c&&(a=l.strokeWidth,s=l.strokeCap,n.lineWidth=null!=a?a:1,n.lineCap=null!=s?s:"butt"),!e(n,i)&&(u&&n.isPointInPath(r,o)||c&&n.isPointInStroke(r,o))}}function yp(e){return mp(gp(e))}function vp(e,t){return"translate("+e+","+t+")"}function bp(e){return"rotate("+e+")"}function xp(e){return vp(e.x||0,e.y||0)}function wp(e,t,n){function i(e,n){var i=n.x||0,r=n.y||0,o=n.angle||0;e.translate(i,r),o&&e.rotate(o*=Od),e.beginPath(),t(e,n),o&&e.rotate(-o),e.translate(-i,-r)}return{type:e,tag:"path",nested:!1,attr:function(e,n){e("transform",function(e){return vp(e.x||0,e.y||0)+(e.angle?" "+bp(e.angle):"")}(n)),e("d",t(null,n))},bound:function(e,n){return t(Wh(e,n.angle),n),Ah(e,n).translate(n.x||0,n.y||0)},draw:hp(i),pick:yp(i),isect:n||Qh(i)}}var _p=wp("arc",(function(e,t){return lh.context(e)(t)}));function kp(e,t,n){function i(e,n){e.beginPath(),t(e,n)}const r=gp(i);return{type:e,tag:"path",nested:!0,attr:function(e,n){var i=n.mark.items;i.length&&e("d",t(null,i))},bound:function(e,n){var i=n.items;return 0===i.length?e:(t(Wh(e),i),Ah(e,i[0]))},draw:(o=i,function(e,t,n){!t.items.length||n&&!n.intersects(t.bounds)||pp(o,e,t.items[0],t.items)}),pick:function(e,t,n,i,o,a){var s=t.items,l=t.bounds;return!s||!s.length||l&&!l.contains(o,a)?null:(n*=e.pixelRatio,i*=e.pixelRatio,r(e,s,n,i)?s[0]:null)},isect:Kh,tip:n};var o}var $p=kp("area",(function(e,t){const n=t[0],i=n.interpolate||"linear";return("horizontal"===n.orient?ch:uh).curve(Ad(i,n.orient,n.tension)).context(e)(t)}),(function(e,t){for(var n,i,r="horizontal"===e[0].orient?t[1]:t[0],o="horizontal"===e[0].orient?"y":"x",a=e.length,s=1/0;--a>=0;)!1!==e[a].defined&&(i=Math.abs(e[a][o]-r))<s&&(s=i,n=e[a]);return n}));function Dp(e,t){e.beginPath(),mh(t)?gh(e,t,0,0):e.rect(0,0,t.width||0,t.height||0),e.clip()}function Ap(e){const t=ip(e.strokeWidth,1);return null!=e.strokeOffset?e.strokeOffset:e.stroke&&t>.5&&t<1.5?.5-Math.abs(t-1):0}function Sp(e,t){const n=Ap(t);e("d",gh(null,t,n,n))}function Ep(e,t,n,i){const r=Ap(t);e.beginPath(),gh(e,t,(n||0)+r,(i||0)+r)}const Fp=gp(Ep),Cp=gp(Ep,!1),Mp=gp(Ep,!0);var zp={type:"group",tag:"g",nested:!1,attr:function(e,t){e("transform",xp(t))},bound:function(e,t){if(!t.clip&&t.items){const n=t.items,i=n.length;for(let t=0;t<i;++t)e.union(n[t].bounds)}return(t.clip||t.width||t.height)&&!t.noBound&&e.add(0,0).add(t.width||0,t.height||0),Ah(e,t),e.translate(t.x||0,t.y||0)},draw:function(e,t,n,i){fp(t,(t=>{const r=t.x||0,o=t.y||0,a=t.strokeForeground,s=null==t.opacity?1:t.opacity;(t.stroke||t.fill)&&s&&(Ep(e,t,r,o),np(e,t),t.fill&&ap(e,t,s)&&e.fill(),t.stroke&&!a&&lp(e,t,s)&&e.stroke()),e.save(),e.translate(r,o),t.clip&&Dp(e,t),n&&n.translate(-r,-o),fp(t,(t=>{("group"===t.marktype||null==i||i.includes(t.marktype))&&this.draw(e,t,n,i)})),n&&n.translate(r,o),e.restore(),a&&t.stroke&&s&&(Ep(e,t,r,o),np(e,t),lp(e,t,s)&&e.stroke())}))},pick:function(e,t,n,i,r,o){if(t.bounds&&!t.bounds.contains(r,o)||!t.items)return null;const a=n*e.pixelRatio,s=i*e.pixelRatio;return dp(t,(l=>{let u,c,f;const d=l.bounds;if(d&&!d.contains(r,o))return;c=l.x||0,f=l.y||0;const h=c+(l.width||0),p=f+(l.height||0),m=l.clip;if(m&&(r<c||r>h||o<f||o>p))return;if(e.save(),e.translate(c,f),c=r-c,f=o-f,m&&mh(l)&&!Mp(e,l,a,s))return e.restore(),null;const g=l.strokeForeground,y=!1!==t.interactive;return y&&g&&l.stroke&&Cp(e,l,a,s)?(e.restore(),l):(u=dp(l,(e=>function(e,t,n){return(!1!==e.interactive||"group"===e.marktype)&&e.bounds&&e.bounds.contains(t,n)}(e,c,f)?this.pick(e,n,i,c,f):null)),!u&&y&&(l.fill||!g&&l.stroke)&&Fp(e,l,a,s)&&(u=l),e.restore(),u||null)}))},isect:Zh,content:function(e,t,n){e("clip-path",t.clip?bh(n,t,t):null)},background:function(e,t){e("class","background"),e("aria-hidden",!0),Sp(e,t)},foreground:function(e,t){e("class","foreground"),e("aria-hidden",!0),t.strokeForeground?Sp(e,t):e("d","")}},Op={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function Np(e,t){var n=e.image;return(!n||e.url&&e.url!==n.url)&&(n={complete:!1,width:0,height:0},t.loadImage(e.url).then((t=>{e.image=t,e.image.url=e.url}))),n}function Rp(e,t){return null!=e.width?e.width:t&&t.width?!1!==e.aspect&&e.height?e.height*t.width/t.height:t.width:0}function Bp(e,t){return null!=e.height?e.height:t&&t.height?!1!==e.aspect&&e.width?e.width*t.height/t.width:t.height:0}function Tp(e,t){return"center"===e?t/2:"right"===e?t:0}function Pp(e,t){return"middle"===e?t/2:"bottom"===e?t:0}var jp={type:"image",tag:"image",nested:!1,attr:function(e,t,n){const i=Np(t,n),r=Rp(t,i),o=Bp(t,i),a=(t.x||0)-Tp(t.align,r),s=(t.y||0)-Pp(t.baseline,o);e("href",!i.src&&i.toDataURL?i.toDataURL():i.src||"",Op["xmlns:xlink"],"xlink:href"),e("transform",vp(a,s)),e("width",r),e("height",o),e("preserveAspectRatio",!1===t.aspect?"none":"xMidYMid")},bound:function(e,t){const n=t.image,i=Rp(t,n),r=Bp(t,n),o=(t.x||0)-Tp(t.align,i),a=(t.y||0)-Pp(t.baseline,r);return e.set(o,a,o+i,a+r)},draw:function(e,t,n){fp(t,(t=>{if(n&&!n.intersects(t.bounds))return;const i=Np(t,this);let r=Rp(t,i),o=Bp(t,i);if(0===r||0===o)return;let a,s,l,u,c=(t.x||0)-Tp(t.align,r),f=(t.y||0)-Pp(t.baseline,o);!1!==t.aspect&&(s=i.width/i.height,l=t.width/t.height,s==s&&l==l&&s!==l&&(l<s?(u=r/s,f+=(o-u)/2,o=u):(u=o*s,c+=(r-u)/2,r=u))),(i.complete||i.toDataURL)&&(np(e,t),e.globalAlpha=null!=(a=t.opacity)?a:1,e.imageSmoothingEnabled=!1!==t.smooth,e.drawImage(i,c,f,r,o))}))},pick:mp(),isect:x,get:Np,xOffset:Tp,yOffset:Pp},Lp=kp("line",(function(e,t){const n=t[0],i=n.interpolate||"linear";return fh.curve(Ad(i,n.orient,n.tension)).context(e)(t)}),(function(e,t){for(var n,i,r=Math.pow(e[0].strokeWidth||1,2),o=e.length;--o>=0;)if(!1!==e[o].defined&&(n=e[o].x-t[0])*n+(i=e[o].y-t[1])*i<r)return e[o];return null}));function qp(e,t){var n=t.path;if(null==n)return!0;var i=t.x||0,r=t.y||0,o=t.scaleX||1,a=t.scaleY||1,s=(t.angle||0)*Od,l=t.pathCache;l&&l.path===n||((t.pathCache=l=zd(n)).path=n),s&&e.rotate&&e.translate?(e.translate(i,r),e.rotate(s),Id(e,l,0,0,o,a),e.rotate(-s),e.translate(-i,-r)):Id(e,l,i,r,o,a)}var Up={type:"path",tag:"path",nested:!1,attr:function(e,t){var n=t.scaleX||1,i=t.scaleY||1;1===n&&1===i||e("vector-effect","non-scaling-stroke"),e("transform",function(e){return vp(e.x||0,e.y||0)+(e.angle?" "+bp(e.angle):"")+(e.scaleX||e.scaleY?" "+(t=e.scaleX||1,n=e.scaleY||1,"scale("+t+","+n+")"):"");var t,n}(t)),e("d",t.path)},bound:function(e,t){return qp(Wh(e,t.angle),t)?e.set(0,0,0,0):Ah(e,t,!0)},draw:hp(qp),pick:yp(qp),isect:Qh(qp)};function Ip(e,t){e.beginPath(),gh(e,t)}var Wp={type:"rect",tag:"path",nested:!1,attr:function(e,t){e("d",gh(null,t))},bound:function(e,t){var n,i;return Ah(e.set(n=t.x||0,i=t.y||0,n+t.width||0,i+t.height||0),t)},draw:hp(Ip),pick:yp(Ip),isect:Zh};function Hp(e,t,n){var i,r,o,a;return!(!t.stroke||!lp(e,t,n))&&(i=t.x||0,r=t.y||0,o=null!=t.x2?t.x2:i,a=null!=t.y2?t.y2:r,e.beginPath(),e.moveTo(i,r),e.lineTo(o,a),!0)}var Gp={type:"rule",tag:"line",nested:!1,attr:function(e,t){e("transform",xp(t)),e("x2",null!=t.x2?t.x2-(t.x||0):0),e("y2",null!=t.y2?t.y2-(t.y||0):0)},bound:function(e,t){var n,i;return Ah(e.set(n=t.x||0,i=t.y||0,null!=t.x2?t.x2:n,null!=t.y2?t.y2:i),t)},draw:function(e,t,n){fp(t,(t=>{if(!n||n.intersects(t.bounds)){var i=null==t.opacity?1:t.opacity;i&&Hp(e,t,i)&&(np(e,t),e.stroke())}}))},pick:mp((function(e,t,n,i){return!!e.isPointInStroke&&(Hp(e,t,1)&&e.isPointInStroke(n,i))})),isect:ep},Vp=wp("shape",(function(e,t){return(t.mark.shape||t.shape).context(e)(t)})),Yp=wp("symbol",(function(e,t){return hh.context(e)(t)}),Kh);const Xp=le();var Jp={height:nm,measureWidth:em,estimateWidth:Kp,width:Kp,canvas:Qp};function Qp(e){Jp.width=e&&Xh?em:Kp}function Kp(e,t){return Zp(am(e,t),nm(e))}function Zp(e,t){return~~(.8*e.length*t)}function em(e,t){return nm(e)<=0||!(t=am(e,t))?0:tm(t,lm(e))}function tm(e,t){const n=`(${t}) ${e}`;let i=Xp.get(n);return void 0===i&&(Xh.font=t,i=Xh.measureText(e).width,Xp.set(n,i)),i}function nm(e){return null!=e.fontSize?+e.fontSize||0:11}function im(e){return null!=e.lineHeight?e.lineHeight:nm(e)+2}function rm(e){return t=e.lineBreak&&e.text&&!u(e.text)?e.text.split(e.lineBreak):e.text,u(t)?t.length>1?t:t[0]:t;var t}function om(e){const t=rm(e);return(u(t)?t.length-1:0)*im(e)}function am(e,t){const n=null==t?"":(t+"").trim();return e.limit>0&&n.length?function(e,t){var n=+e.limit,i=function(e){if(Jp.width===em){const t=lm(e);return e=>tm(e,t)}if(Jp.width===Kp){const t=nm(e);return e=>Zp(e,t)}return t=>Jp.width(e,t)}(e);if(i(t)<n)return t;var r,o=e.ellipsis||"…",a="rtl"===e.dir,s=0,l=t.length;if(n-=i(o),a){for(;s<l;)r=s+l>>>1,i(t.slice(r))>n?s=r+1:l=r;return o+t.slice(s)}for(;s<l;)r=1+(s+l>>>1),i(t.slice(0,r))<n?s=r:l=r-1;return t.slice(0,s)+o}(e,n):n}function sm(e,t){var n=e.font;return(t&&n?String(n).replace(/"/g,"'"):n)||"sans-serif"}function lm(e,t){return(e.fontStyle?e.fontStyle+" ":"")+(e.fontVariant?e.fontVariant+" ":"")+(e.fontWeight?e.fontWeight+" ":"")+nm(e)+"px "+sm(e,t)}function um(e){var t=e.baseline,n=nm(e);return Math.round("top"===t?.79*n:"middle"===t?.3*n:"bottom"===t?-.21*n:"line-top"===t?.29*n+.5*im(e):"line-bottom"===t?.29*n-.5*im(e):0)}Qp(!0);const cm={left:"start",center:"middle",right:"end"},fm=new xh;function dm(e){var t,n=e.x||0,i=e.y||0,r=e.radius||0;return r&&(t=(e.theta||0)-Nd,n+=r*Math.cos(t),i+=r*Math.sin(t)),fm.x1=n,fm.y1=i,fm}function hm(e,t,n){var i,r=Jp.height(t),o=t.align,a=dm(t),s=a.x1,l=a.y1,c=t.dx||0,f=(t.dy||0)+um(t)-Math.round(.8*r),d=rm(t);if(u(d)?(r+=im(t)*(d.length-1),i=d.reduce(((e,n)=>Math.max(e,Jp.width(t,n))),0)):i=Jp.width(t,d),"center"===o?c-=i/2:"right"===o&&(c-=i),e.set(c+=s,f+=l,c+i,f+r),t.angle&&!n)e.rotate(t.angle*Od,s,l);else if(2===n)return e.rotatedPoints(t.angle*Od,s,l);return e}var pm={type:"text",tag:"text",nested:!1,attr:function(e,t){var n,i=t.dx||0,r=(t.dy||0)+um(t),o=dm(t),a=o.x1,s=o.y1,l=t.angle||0;e("text-anchor",cm[t.align]||"start"),l?(n=vp(a,s)+" "+bp(l),(i||r)&&(n+=" "+vp(i,r))):n=vp(a+i,s+r),e("transform",n)},bound:hm,draw:function(e,t,n){fp(t,(t=>{var i,r,o,a,s,l,c,f=null==t.opacity?1:t.opacity;if(!(n&&!n.intersects(t.bounds)||0===f||t.fontSize<=0||null==t.text||0===t.text.length)){if(e.font=lm(t),e.textAlign=t.align||"left",r=(i=dm(t)).x1,o=i.y1,t.angle&&(e.save(),e.translate(r,o),e.rotate(t.angle*Od),r=o=0),r+=t.dx||0,o+=(t.dy||0)+um(t),l=rm(t),np(e,t),u(l))for(s=im(t),a=0;a<l.length;++a)c=am(t,l[a]),t.fill&&ap(e,t,f)&&e.fillText(c,r,o),t.stroke&&lp(e,t,f)&&e.strokeText(c,r,o),o+=s;else c=am(t,l),t.fill&&ap(e,t,f)&&e.fillText(c,r,o),t.stroke&&lp(e,t,f)&&e.strokeText(c,r,o);t.angle&&e.restore()}}))},pick:mp((function(e,t,n,i,r,o){if(t.fontSize<=0)return!1;if(!t.angle)return!0;var a=dm(t),s=a.x1,l=a.y1,u=hm(fm,t,1),c=-t.angle*Od,f=Math.cos(c),d=Math.sin(c),h=f*r-d*o+(s-f*s+d*l),p=d*r+f*o+(l-d*s-f*l);return u.contains(h,p)})),isect:function(e,t){const n=hm(fm,e,2);return tp(t,n[0],n[1],n[2],n[3])||tp(t,n[0],n[1],n[4],n[5])||tp(t,n[4],n[5],n[6],n[7])||tp(t,n[2],n[3],n[6],n[7])}},mm={arc:_p,area:$p,group:zp,image:jp,line:Lp,path:Up,rect:Wp,rule:Gp,shape:Vp,symbol:Yp,text:pm,trail:kp("trail",(function(e,t){return ph.context(e)(t)}),(function(e,t){for(var n,i,r=e.length;--r>=0;)if(!1!==e[r].defined&&(n=e[r].x-t[0])*n+(i=e[r].y-t[1])*i<(n=e[r].size||1)*n)return e[r];return null}))};function gm(e,t,n){var i=mm[e.mark.marktype],r=t||i.bound;return i.nested&&(e=e.mark),r(e.bounds||(e.bounds=new xh),e,n)}var ym={mark:null};function vm(e,t,n){var i,r,o,a,s=mm[e.marktype],l=s.bound,u=e.items,c=u&&u.length;if(s.nested)return c?o=u[0]:(ym.mark=e,o=ym),a=gm(o,l,n),t=t&&t.union(a)||a;if(t=t||e.bounds&&e.bounds.clear()||new xh,c)for(i=0,r=u.length;i<r;++i)t.union(gm(u[i],l,n));return e.bounds=t}const bm=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","blend","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","strokeForeground","strokeOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight","interpolate","tension","orient","defined","url","aspect","smooth","path","scaleX","scaleY","x2","y2","size","shape","text","angle","theta","radius","dir","dx","dy","ellipsis","limit","lineBreak","lineHeight","font","fontSize","fontWeight","fontStyle","fontVariant","description","aria","ariaRole","ariaRoleDescription"];function xm(e,t){return JSON.stringify(e,bm,t)}function wm(e){return _m("string"==typeof e?JSON.parse(e):e)}function _m(e){var t,n,i,r=e.marktype,o=e.items;if(o)for(n=0,i=o.length;n<i;++n)t=r?"mark":"group",o[n][t]=e,o[n].zindex&&(o[n][t].zdirty=!0),"group"===(r||t)&&_m(o[n]);return r&&vm(e),e}class km{constructor(e){arguments.length?this.root=wm(e):(this.root=$m({marktype:"group",name:"root",role:"frame"}),this.root.items=[new _h(this.root)])}toJSON(e){return xm(this.root,e||0)}mark(e,t,n){const i=$m(e,t=t||this.root.items[0]);return t.items[n]=i,i.zindex&&(i.group.zdirty=!0),i}}function $m(e,t){const n={bounds:new xh,clip:!!e.clip,group:t,interactive:!1!==e.interactive,items:[],marktype:e.marktype,name:e.name||void 0,role:e.role||void 0,zindex:e.zindex||0};return null!=e.aria&&(n.aria=e.aria),e.description&&(n.description=e.description),n}function Dm(e,t,n){return!e&&"undefined"!=typeof document&&document.createElement&&(e=document),e?n?e.createElementNS(n,t):e.createElement(t):null}function Am(e,t){t=t.toLowerCase();for(var n=e.childNodes,i=0,r=n.length;i<r;++i)if(n[i].tagName.toLowerCase()===t)return n[i]}function Sm(e,t,n,i){var r,o=e.childNodes[t];return o&&o.tagName.toLowerCase()===n.toLowerCase()||(r=o||null,o=Dm(e.ownerDocument,n,i),e.insertBefore(o,r)),o}function Em(e,t){for(var n=e.childNodes,i=n.length;i>t;)e.removeChild(n[--i]);return e}function Fm(e){return"mark-"+e.marktype+(e.role?" role-"+e.role:"")+(e.name?" "+e.name:"")}function Cm(e,t){const n=t.getBoundingClientRect();return[e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0)]}class Mm{constructor(e,t){this._active=null,this._handlers={},this._loader=e||p(),this._tooltip=t||zm}initialize(e,t,n){return this._el=e,this._obj=n||null,this.origin(t)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}origin(e){return arguments.length?(this._origin=e||[0,0],this):this._origin.slice()}scene(e){return arguments.length?(this._scene=e,this):this._scene}on(){}off(){}_handlerIndex(e,t,n){for(let i=e?e.length:0;--i>=0;)if(e[i].type===t&&(!n||e[i].handler===n))return i;return-1}handlers(e){const t=this._handlers,n=[];if(e)n.push(...t[this.eventName(e)]);else for(const i in t)n.push(...t[i]);return n}eventName(e){const t=e.indexOf(".");return t<0?e:e.slice(0,t)}handleHref(e,t,n){this._loader.sanitize(n,{context:"href"}).then((t=>{const n=new MouseEvent(e.type,e),i=Dm(null,"a");for(const e in t)i.setAttribute(e,t[e]);i.dispatchEvent(n)})).catch((()=>{}))}handleTooltip(e,t,n){if(t&&null!=t.tooltip){t=function(e,t,n,i){var r,o,a=e&&e.mark;if(a&&(r=mm[a.marktype]).tip){for((o=Cm(t,n))[0]-=i[0],o[1]-=i[1];e=e.mark.group;)o[0]-=e.x||0,o[1]-=e.y||0;e=r.tip(a.items,o)}return e}(t,e,this.canvas(),this._origin);const i=n&&t&&t.tooltip||null;this._tooltip.call(this._obj,this,e,t,i)}}getItemBoundingClientRect(e){const t=this.canvas();if(!t)return;const n=t.getBoundingClientRect(),i=this._origin,r=e.bounds,o=r.width(),a=r.height();let s=r.x1+i[0]+n.left,l=r.y1+i[1]+n.top;for(;e.mark&&(e=e.mark.group);)s+=e.x||0,l+=e.y||0;return{x:s,y:l,width:o,height:a,left:s,top:l,right:s+o,bottom:l+a}}}function zm(e,t,n,i){e.element().setAttribute("title",i||"")}class Om{constructor(e){this._el=null,this._bgcolor=null,this._loader=new kh(e)}initialize(e,t,n,i,r){return this._el=e,this.resize(t,n,i,r)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}background(e){return 0===arguments.length?this._bgcolor:(this._bgcolor=e,this)}resize(e,t,n,i){return this._width=e,this._height=t,this._origin=n||[0,0],this._scale=i||1,this}dirty(){}render(e,t){const n=this;return n._call=function(){n._render(e,t)},n._call(),n._call=null,n}_render(){}renderAsync(e,t){const n=this.render(e,t);return this._ready?this._ready.then((()=>n)):Promise.resolve(n)}_load(e,t){var n=this,i=n._loader[e](t);if(!n._ready){const e=n._call;n._ready=n._loader.ready().then((t=>{t&&e(),n._ready=null}))}return i}sanitizeURL(e){return this._load("sanitizeURL",e)}loadImage(e){return this._load("loadImage",e)}}const Nm="dragenter",Rm="dragleave",Bm="dragover",Tm="pointerdown",Pm="pointermove",jm="pointerout",Lm="pointerover",qm="mousedown",Um="mousemove",Im="mouseout",Wm="mouseover",Hm="click",Gm="mousewheel",Vm="touchstart",Ym="touchmove",Xm="touchend",Jm=["keydown","keypress","keyup",Nm,Rm,Bm,Tm,"pointerup",Pm,jm,Lm,qm,"mouseup",Um,Im,Wm,Hm,"dblclick","wheel",Gm,Vm,Ym,Xm],Qm=Pm,Km=Im,Zm=Hm;class eg extends Mm{constructor(e,t){super(e,t),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=Jm,this.pointermove=rg([Pm,Um],[Lm,Wm],[jm,Im]),this.dragover=rg([Bm],[Nm],[Rm]),this.pointerout=og([jm,Im]),this.dragleave=og([Rm])}initialize(e,t,n){return this._canvas=e&&Am(e,"canvas"),[Hm,qm,Tm,Pm,jm,Rm].forEach((e=>ng(this,e))),super.initialize(e,t,n)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(e){this.fire(Gm,e)}pointerdown(e){this._down=this._active,this.fire(Tm,e)}mousedown(e){this._down=this._active,this.fire(qm,e)}click(e){this._down===this._active&&(this.fire(Hm,e),this._down=null)}touchstart(e){this._touch=this.pickEvent(e.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(Vm,e,!0)}touchmove(e){this.fire(Ym,e,!0)}touchend(e){this.fire(Xm,e,!0),this._touch=null}fire(e,t,n){const i=n?this._touch:this._active,r=this._handlers[e];if(t.vegaType=e,e===Zm&&i&&i.href?this.handleHref(t,i,i.href):e!==Qm&&e!==Km||this.handleTooltip(t,i,e!==Km),r)for(let o=0,a=r.length;o<a;++o)r[o].handler.call(this._obj,t,i)}on(e,t){const n=this.eventName(e),i=this._handlers;return this._handlerIndex(i[n],e,t)<0&&(ng(this,e),(i[n]||(i[n]=[])).push({type:e,handler:t})),this}off(e,t){const n=this.eventName(e),i=this._handlers[n],r=this._handlerIndex(i,e,t);return r>=0&&i.splice(r,1),this}pickEvent(e){const t=Cm(e,this._canvas),n=this._origin;return this.pick(this._scene,t[0],t[1],t[0]-n[0],t[1]-n[1])}pick(e,t,n,i,r){const o=this.context();return mm[e.marktype].pick.call(this,o,e,t,n,i,r)}}const tg=e=>e===Vm||e===Ym||e===Xm?[Vm,Ym,Xm]:[e];function ng(e,t){tg(t).forEach((t=>function(e,t){const n=e.canvas();n&&!e._events[t]&&(e._events[t]=1,n.addEventListener(t,e[t]?n=>e[t](n):n=>e.fire(t,n)))}(e,t)))}function ig(e,t,n){t.forEach((t=>e.fire(t,n)))}function rg(e,t,n){return function(i){const r=this._active,o=this.pickEvent(i);o===r||(r&&r.exit||ig(this,n,i),this._active=o,ig(this,t,i)),ig(this,e,i)}}function og(e){return function(t){ig(this,e,t),this._active=null}}function ag(e,t,n,i,r,o){const a="undefined"!=typeof HTMLElement&&e instanceof HTMLElement&&null!=e.parentNode,s=e.getContext("2d"),l=a?"undefined"!=typeof window&&window.devicePixelRatio||1:r;e.width=t*l,e.height=n*l;for(const u in o)s[u]=o[u];return a&&1!==l&&(e.style.width=t+"px",e.style.height=n+"px"),s.pixelRatio=l,s.setTransform(l,0,0,l,l*i[0],l*i[1]),e}class sg extends Om{constructor(e){super(e),this._options={},this._redraw=!1,this._dirty=new xh,this._tempb=new xh}initialize(e,t,n,i,r,o){return this._options=o||{},this._canvas=this._options.externalContext?null:Ac(1,1,this._options.type),e&&this._canvas&&(Em(e,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),super.initialize(e,t,n,i,r)}resize(e,t,n,i){if(super.resize(e,t,n,i),this._canvas)ag(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const e=this._options.externalContext;e||v("CanvasRenderer is missing a valid canvas or context"),e.scale(this._scale,this._scale),e.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this}canvas(){return this._canvas}context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)}dirty(e){const t=this._tempb.clear().union(e.bounds);let n=e.mark.group;for(;n;)t.translate(n.x||0,n.y||0),n=n.mark.group;this._dirty.union(t)}_render(e,t){const n=this.context(),i=this._origin,r=this._width,o=this._height,a=this._dirty,s=lg(i,r,o);n.save();const l=this._redraw||a.empty()?(this._redraw=!1,s.expand(1)):function(e,t,n){t.expand(1).round(),e.pixelRatio%1&&t.scale(e.pixelRatio).round().scale(1/e.pixelRatio);return t.translate(-n[0]%1,-n[1]%1),e.beginPath(),e.rect(t.x1,t.y1,t.width(),t.height()),e.clip(),t}(n,s.intersect(a),i);return this.clear(-i[0],-i[1],r,o),this.draw(n,e,l,t),n.restore(),a.clear(),this}draw(e,t,n,i){if("group"!==t.marktype&&null!=i&&!i.includes(t.marktype))return;const r=mm[t.marktype];t.clip&&function(e,t){var n=t.clip;e.save(),m(n)?(e.beginPath(),n(e),e.clip()):Dp(e,t.group)}(e,t),r.draw.call(this,e,t,n,i),t.clip&&e.restore()}clear(e,t,n,i){const r=this._options,o=this.context();"pdf"===r.type||r.externalContext||o.clearRect(e,t,n,i),null!=this._bgcolor&&(o.fillStyle=this._bgcolor,o.fillRect(e,t,n,i))}}const lg=(e,t,n)=>(new xh).set(0,0,t,n).translate(-e[0],-e[1]);class ug extends Mm{constructor(e,t){super(e,t);const n=this;n._hrefHandler=cg(n,((e,t)=>{t&&t.href&&n.handleHref(e,t,t.href)})),n._tooltipHandler=cg(n,((e,t)=>{n.handleTooltip(e,t,e.type!==Km)}))}initialize(e,t,n){let i=this._svg;return i&&(i.removeEventListener(Zm,this._hrefHandler),i.removeEventListener(Qm,this._tooltipHandler),i.removeEventListener(Km,this._tooltipHandler)),this._svg=i=e&&Am(e,"svg"),i&&(i.addEventListener(Zm,this._hrefHandler),i.addEventListener(Qm,this._tooltipHandler),i.addEventListener(Km,this._tooltipHandler)),super.initialize(e,t,n)}canvas(){return this._svg}on(e,t){const n=this.eventName(e),i=this._handlers;if(this._handlerIndex(i[n],e,t)<0){const r={type:e,handler:t,listener:cg(this,t)};(i[n]||(i[n]=[])).push(r),this._svg&&this._svg.addEventListener(n,r.listener)}return this}off(e,t){const n=this.eventName(e),i=this._handlers[n],r=this._handlerIndex(i,e,t);return r>=0&&(this._svg&&this._svg.removeEventListener(n,i[r].listener),i.splice(r,1)),this}}const cg=(e,t)=>n=>{let i=n.target.__data__;i=Array.isArray(i)?i[0]:i,n.vegaType=n.type,t.call(e._obj,n,i)},fg="aria-hidden",dg="aria-label",hg="role",pg="aria-roledescription",mg="graphics-object",gg="graphics-symbol",yg=(e,t,n)=>({[hg]:e,[pg]:t,[dg]:n||void 0}),vg=se(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),bg={axis:{desc:"axis",caption:function(e){const t=e.datum,n=e.orient,i=t.title?$g(e):null,r=e.context,o=r.scales[t.scale].value,a=r.dataflow.locale(),s=o.type;return("left"===n||"right"===n?"Y":"X")+"-axis"+(i?` titled '${i}'`:"")+` for a ${Pf(s)?"discrete":s} scale with ${vd(a,o,e)}`}},legend:{desc:"legend",caption:function(e){const t=e.datum,n=t.title?$g(e):null,i=`${t.type||""} legend`.trim(),r=t.scales,o=Object.keys(r),a=e.context,s=a.scales[r[o[0]]].value,l=a.dataflow.locale();return u=i,(u.length?u[0].toUpperCase()+u.slice(1):u)+(n?` titled '${n}'`:"")+` for ${function(e){return e=e.map((e=>e+("fill"===e||"stroke"===e?" color":""))),e.length<2?e[0]:e.slice(0,-1).join(", ")+" and "+T(e)}(o)} with ${vd(l,s,e)}`;var u}},"title-text":{desc:"title",caption:e=>`Title text '${kg(e)}'`},"title-subtitle":{desc:"subtitle",caption:e=>`Subtitle text '${kg(e)}'`}},xg={ariaRole:hg,ariaRoleDescription:pg,description:dg};function wg(e,t){const n=!1===t.aria;if(e(fg,n||void 0),n||null==t.description)for(const i in xg)e(xg[i],void 0);else{const n=t.mark.marktype;e(dg,t.description),e(hg,t.ariaRole||("group"===n?mg:gg)),e(pg,t.ariaRoleDescription||`${n} mark`)}}function _g(e){return!1===e.aria?{[fg]:!0}:vg[e.role]?null:bg[e.role]?function(e,t){try{const n=e.items[0],i=t.caption||(()=>"");return yg(t.role||gg,t.desc,n.description||i(n))}catch(n){return null}}(e,bg[e.role]):function(e){const t=e.marktype,n="group"===t||"text"===t||e.items.some((e=>null!=e.description&&!1!==e.aria));return yg(n?mg:gg,`${t} mark container`,e.description)}(e)}function kg(e){return c(e.text).join(" ")}function $g(e){try{return c(T(e.items).items[0].text).join(" ")}catch(t){return null}}const Dg=e=>(e+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");function Ag(){let e="",t="",n="";const i=[],r=()=>t=n="",o=(e,n)=>{var i;return null!=n&&(t+=` ${e}="${i=n,Dg(i).replace(/"/g,"&quot;").replace(/\t/g,"&#x9;").replace(/\n/g,"&#xA;").replace(/\r/g,"&#xD;")}"`),a},a={open(s){(o=>{t&&(e+=`${t}>${n}`,r()),i.push(o)})(s),t="<"+s;for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c<l;c++)u[c-1]=arguments[c];for(const e of u)for(const t in e)o(t,e[t]);return a},close(){const o=i.pop();return e+=t?t+(n?`>${n}</${o}>`:"/>"):`</${o}>`,r(),a},attr:o,text:e=>(n+=Dg(e),a),toString:()=>e};return a}const Sg=e=>Eg(Ag(),e)+"";function Eg(e,t){if(e.open(t.tagName),t.hasAttributes()){const n=t.attributes,i=n.length;for(let t=0;t<i;++t)e.attr(n[t].name,n[t].value)}if(t.hasChildNodes()){const n=t.childNodes;for(const t of n)3===t.nodeType?e.text(t.nodeValue):Eg(e,t)}return e.close()}const Fg={fill:"fill",fillOpacity:"fill-opacity",stroke:"stroke",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",strokeCap:"stroke-linecap",strokeJoin:"stroke-linejoin",strokeDash:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeMiterLimit:"stroke-miterlimit",opacity:"opacity"},Cg={blend:"mix-blend-mode"},Mg={fill:"none","stroke-miterlimit":10},zg="http://www.w3.org/2000/xmlns/",Og=Op.xmlns;class Ng extends Om{constructor(e){super(e),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}initialize(e,t,n,i,r){return this._defs={},this._clearDefs(),e&&(this._svg=Sm(e,0,"svg",Og),this._svg.setAttributeNS(zg,"xmlns",Og),this._svg.setAttributeNS(zg,"xmlns:xlink",Op["xmlns:xlink"]),this._svg.setAttribute("version",Op.version),this._svg.setAttribute("class","marks"),Em(e,1),this._root=Sm(this._svg,0,"g",Og),Wg(this._root,Mg),Em(this._svg,1)),this.background(this._bgcolor),super.initialize(e,t,n,i,r)}background(e){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",e),super.background(...arguments)}resize(e,t,n,i){return super.resize(e,t,n,i),this._svg&&(Wg(this._svg,{width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}),this._root.setAttribute("transform",`translate(${this._origin})`)),this._dirty=[],this}canvas(){return this._svg}svg(){const e=this._svg,t=this._bgcolor;if(!e)return null;let n;t&&(e.removeAttribute("style"),n=Sm(e,0,"rect",Og),Wg(n,{width:this._width,height:this._height,fill:t}));const i=Sg(e);return t&&(e.removeChild(n),this._svg.style.setProperty("background-color",t)),i}_render(e,t){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,e,void 0,t),Em(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this}dirty(e){e.dirty!==this._dirtyID&&(e.dirty=this._dirtyID,this._dirty.push(e))}isDirty(e){return this._dirtyAll||!e._svg||!e._svg.ownerSVGElement||e.dirty===this._dirtyID}_dirtyCheck(){this._dirtyAll=!0;const e=this._dirty;if(!e.length||!this._dirtyID)return!0;const t=++this._dirtyID;let n,i,r,o,a,s,l;for(a=0,s=e.length;a<s;++a)n=e[a],i=n.mark,i.marktype!==r&&(r=i.marktype,o=mm[r]),i.zdirty&&i.dirty!==t&&(this._dirtyAll=!1,Rg(n,t),i.items.forEach((e=>{e.dirty=t}))),i.zdirty||(n.exit?(o.nested&&i.items.length?(l=i.items[0],l._svg&&this._update(o,l._svg,l)):n._svg&&(l=n._svg.parentNode,l&&l.removeChild(n._svg)),n._svg=null):(n=o.nested?i.items[0]:n,n._update!==t&&(n._svg&&n._svg.ownerSVGElement?this._update(o,n._svg,n):(this._dirtyAll=!1,Rg(n,t)),n._update=t)));return!this._dirtyAll}mark(e,t,n,i){if(!this.isDirty(t))return t._svg;const r=this._svg,o=t.marktype,a=mm[o],s=!1===t.interactive?"none":null,l="g"===a.tag,u=Pg(t,e,n,"g",r);if("group"!==o&&null!=i&&!i.includes(o))return Em(u,0),t._svg;u.setAttribute("class",Fm(t));const c=_g(t);for(const p in c)Hg(u,p,c[p]);l||Hg(u,"pointer-events",s),Hg(u,"clip-path",t.clip?bh(this,t,t.group):null);let f=null,d=0;const h=e=>{const t=this.isDirty(e),n=Pg(e,u,f,a.tag,r);t&&(this._update(a,n,e),l&&function(e,t,n,i){t=t.lastChild.previousSibling;let r,o=0;fp(n,(n=>{r=e.mark(t,n,r,i),++o})),Em(t,1+o)}(this,n,e,i)),f=n,++d};return a.nested?t.items.length&&h(t.items[0]):fp(t,h),Em(u,d),u}_update(e,t,n){jg=t,Lg=t.__values__,wg(Ug,n),e.attr(Ug,n,this);const i=qg[e.type];i&&i.call(this,e,t,n),jg&&this.style(jg,n)}style(e,t){if(null!=t){for(const n in Fg){let i="font"===n?sm(t):t[n];if(i===Lg[n])continue;const r=Fg[n];null==i?e.removeAttribute(r):(wd(i)&&(i=_d(i,this._defs.gradient,Gg())),e.setAttribute(r,i+"")),Lg[n]=i}for(const n in Cg)Ig(e,Cg[n],t[n])}}defs(){const e=this._svg,t=this._defs;let n=t.el,i=0;for(const r in t.gradient)n||(t.el=n=Sm(e,1,"defs",Og)),i=Bg(n,t.gradient[r],i);for(const r in t.clipping)n||(t.el=n=Sm(e,1,"defs",Og)),i=Tg(n,t.clipping[r],i);n&&(0===i?(e.removeChild(n),t.el=null):Em(n,i))}_clearDefs(){const e=this._defs;e.gradient={},e.clipping={}}}function Rg(e,t){for(;e&&e.dirty!==t;e=e.mark.group){if(e.dirty=t,!e.mark||e.mark.dirty===t)return;e.mark.dirty=t}}function Bg(e,t,n){let i,r,o;if("radial"===t.gradient){let i=Sm(e,n++,"pattern",Og);Wg(i,{id:xd+t.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),i=Sm(i,0,"rect",Og),Wg(i,{width:1,height:1,fill:`url(${Gg()}#${t.id})`}),Wg(e=Sm(e,n++,"radialGradient",Og),{id:t.id,fx:t.x1,fy:t.y1,fr:t.r1,cx:t.x2,cy:t.y2,r:t.r2})}else Wg(e=Sm(e,n++,"linearGradient",Og),{id:t.id,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2});for(i=0,r=t.stops.length;i<r;++i)o=Sm(e,i,"stop",Og),o.setAttribute("offset",t.stops[i].offset),o.setAttribute("stop-color",t.stops[i].color);return Em(e,i),n}function Tg(e,t,n){let i;return(e=Sm(e,n,"clipPath",Og)).setAttribute("id",t.id),t.path?(i=Sm(e,0,"path",Og),i.setAttribute("d",t.path)):(i=Sm(e,0,"rect",Og),Wg(i,{x:0,y:0,width:t.width,height:t.height})),Em(e,1),n+1}function Pg(e,t,n,i,r){let o,a=e._svg;if(!a&&(o=t.ownerDocument,a=Dm(o,i,Og),e._svg=a,e.mark&&(a.__data__=e,a.__values__={fill:"default"},"g"===i))){const t=Dm(o,"path",Og);a.appendChild(t),t.__data__=e;const n=Dm(o,"g",Og);a.appendChild(n),n.__data__=e;const i=Dm(o,"path",Og);a.appendChild(i),i.__data__=e,i.__values__={fill:"default"}}return(a.ownerSVGElement!==r||function(e,t){return e.parentNode&&e.parentNode.childNodes.length>1&&e.previousSibling!=t}(a,n))&&t.insertBefore(a,n?n.nextSibling:t.firstChild),a}let jg=null,Lg=null;const qg={group(e,t,n){const i=jg=t.childNodes[2];Lg=i.__values__,e.foreground(Ug,n,this),Lg=t.__values__,jg=t.childNodes[1],e.content(Ug,n,this);const r=jg=t.childNodes[0];e.background(Ug,n,this);const o=!1===n.mark.interactive?"none":null;if(o!==Lg.events&&(Hg(i,"pointer-events",o),Hg(r,"pointer-events",o),Lg.events=o),n.strokeForeground&&n.stroke){const e=n.fill;Hg(i,"display",null),this.style(r,n),Hg(r,"stroke",null),e&&(n.fill=null),Lg=i.__values__,this.style(i,n),e&&(n.fill=e),jg=null}else Hg(i,"display","none")},image(e,t,n){!1===n.smooth?(Ig(t,"image-rendering","optimizeSpeed"),Ig(t,"image-rendering","pixelated")):Ig(t,"image-rendering",null)},text(e,t,n){const i=rm(n);let r,o,a,s;u(i)?(o=i.map((e=>am(n,e))),r=o.join("\n"),r!==Lg.text&&(Em(t,0),a=t.ownerDocument,s=im(n),o.forEach(((e,i)=>{const r=Dm(a,"tspan",Og);r.__data__=n,r.textContent=e,i&&(r.setAttribute("x",0),r.setAttribute("dy",s)),t.appendChild(r)})),Lg.text=r)):(o=am(n,i),o!==Lg.text&&(t.textContent=o,Lg.text=o)),Hg(t,"font-family",sm(n)),Hg(t,"font-size",nm(n)+"px"),Hg(t,"font-style",n.fontStyle),Hg(t,"font-variant",n.fontVariant),Hg(t,"font-weight",n.fontWeight)}};function Ug(e,t,n){t!==Lg[e]&&(n?function(e,t,n,i){null!=n?e.setAttributeNS(i,t,n):e.removeAttributeNS(i,t)}(jg,e,t,n):Hg(jg,e,t),Lg[e]=t)}function Ig(e,t,n){n!==Lg[t]&&(null==n?e.style.removeProperty(t):e.style.setProperty(t,n+""),Lg[t]=n)}function Wg(e,t){for(const n in t)Hg(e,n,t[n])}function Hg(e,t,n){null!=n?e.setAttribute(t,n):e.removeAttribute(t)}function Gg(){let e;return"undefined"==typeof window?"":(e=window.location).hash?e.href.slice(0,-e.hash.length):e.href}class Vg extends Om{constructor(e){super(e),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(e){const t=Ag();t.open("svg",D({},Op,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&"transparent"!==n&&"none"!==n&&t.open("rect",{width:this._width,height:this._height,fill:n}).close(),t.open("g",Mg,{transform:"translate("+this._origin+")"}),this.mark(t,e),t.close(),this.defs(t),this._text=t.close()+"",this}mark(e,t){const n=mm[t.marktype],i=n.tag,r=[wg,n.attr];e.open("g",{class:Fm(t),"clip-path":t.clip?bh(this,t,t.group):null},_g(t),{"pointer-events":"g"!==i&&!1===t.interactive?"none":null});const o=o=>{const a=this.href(o);if(a&&e.open("a",a),e.open(i,this.attr(t,o,r,"g"!==i?i:null)),"text"===i){const t=rm(o);if(u(t)){const n={x:0,dy:im(o)};for(let i=0;i<t.length;++i)e.open("tspan",i?n:null).text(am(o,t[i])).close()}else e.text(am(o,t))}else if("g"===i){const i=o.strokeForeground,r=o.fill,a=o.stroke;i&&a&&(o.stroke=null),e.open("path",this.attr(t,o,n.background,"bgrect")).close(),e.open("g",this.attr(t,o,n.content)),fp(o,(t=>this.mark(e,t))),e.close(),i&&a?(r&&(o.fill=null),o.stroke=a,e.open("path",this.attr(t,o,n.foreground,"bgrect")).close(),r&&(o.fill=r)):e.open("path",this.attr(t,o,n.foreground,"bgfore")).close()}e.close(),a&&e.close()};return n.nested?t.items&&t.items.length&&o(t.items[0]):fp(t,o),e.close()}href(e){const t=e.href;let n;if(t){if(n=this._hrefs&&this._hrefs[t])return n;this.sanitizeURL(t).then((e=>{e["xlink:href"]=e.href,e.href=null,(this._hrefs||(this._hrefs={}))[t]=e}))}return null}attr(e,t,n,i){const r={},o=(e,t,n,i)=>{r[i||e]=t};return Array.isArray(n)?n.forEach((e=>e(o,t,this))):n(o,t,this),i&&function(e,t,n,i,r){let o;if(null==t)return e;"bgrect"===i&&!1===n.interactive&&(e["pointer-events"]="none");if("bgfore"===i&&(!1===n.interactive&&(e["pointer-events"]="none"),e.display="none",null!==t.fill))return e;"image"===i&&!1===t.smooth&&(o=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]);"text"===i&&(e["font-family"]=sm(t),e["font-size"]=nm(t)+"px",e["font-style"]=t.fontStyle,e["font-variant"]=t.fontVariant,e["font-weight"]=t.fontWeight);for(const a in Fg){let n=t[a];const i=Fg[a];("transparent"!==n||"fill"!==i&&"stroke"!==i)&&null!=n&&(wd(n)&&(n=_d(n,r.gradient,"")),e[i]=n)}for(const a in Cg){const e=t[a];null!=e&&(o=o||[],o.push(`${Cg[a]}: ${e};`))}o&&(e.style=o.join(" "))}(r,t,e,i,this._defs),r}defs(e){const t=this._defs.gradient,n=this._defs.clipping;if(0!==Object.keys(t).length+Object.keys(n).length){e.open("defs");for(const n in t){const i=t[n],r=i.stops;"radial"===i.gradient?(e.open("pattern",{id:xd+n,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),e.open("rect",{width:"1",height:"1",fill:"url(#"+n+")"}).close(),e.close(),e.open("radialGradient",{id:n,fx:i.x1,fy:i.y1,fr:i.r1,cx:i.x2,cy:i.y2,r:i.r2})):e.open("linearGradient",{id:n,x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2});for(let t=0;t<r.length;++t)e.open("stop",{offset:r[t].offset,"stop-color":r[t].color}).close();e.close()}for(const t in n){const i=n[t];e.open("clipPath",{id:t}),i.path?e.open("path",{d:i.path}).close():e.open("rect",{x:0,y:0,width:i.width,height:i.height}).close(),e.close()}e.close()}}}const Yg={svgMarkTypes:["text"],svgOnTop:!0,debug:!1};class Xg extends Om{constructor(e){super(e),this._svgRenderer=new Ng(e),this._canvasRenderer=new sg(e)}initialize(e,t,n,i,r){this._root_el=Sm(e,0,"div");const o=Sm(this._root_el,0,"div"),a=Sm(this._root_el,1,"div");return this._root_el.style.position="relative",Yg.debug||(o.style.height="100%",a.style.position="absolute",a.style.top="0",a.style.left="0",a.style.height="100%",a.style.width="100%"),this._svgEl=Yg.svgOnTop?a:o,this._canvasEl=Yg.svgOnTop?o:a,this._svgEl.style.pointerEvents="none",this._canvasRenderer.initialize(this._canvasEl,t,n,i,r),this._svgRenderer.initialize(this._svgEl,t,n,i,r),super.initialize(e,t,n,i,r)}dirty(e){return Yg.svgMarkTypes.includes(e.mark.marktype)?this._svgRenderer.dirty(e):this._canvasRenderer.dirty(e),this}_render(e,t){const n=(t??["arc","area","image","line","path","rect","rule","shape","symbol","text","trail"]).filter((e=>!Yg.svgMarkTypes.includes(e)));this._svgRenderer.render(e,Yg.svgMarkTypes),this._canvasRenderer.render(e,n)}resize(e,t,n,i){return super.resize(e,t,n,i),this._svgRenderer.resize(e,t,n,i),this._canvasRenderer.resize(e,t,n,i),this}background(e){return Yg.svgOnTop?this._canvasRenderer.background(e):this._svgRenderer.background(e),this}}class Jg extends eg{constructor(e,t){super(e,t)}initialize(e,t,n){const i=Sm(Sm(e,0,"div"),Yg.svgOnTop?0:1,"div");return super.initialize(i,t,n)}}const Qg="canvas",Kg="hybrid",Zg="none",ey={Canvas:Qg,PNG:"png",SVG:"svg",Hybrid:Kg,None:Zg},ty={};function ny(e,t){return e=String(e||"").toLowerCase(),arguments.length>1?(ty[e]=t,this):ty[e]}function iy(e,t,n){const i=[],r=(new xh).union(t),o=e.marktype;return o?ry(e,r,n,i):"group"===o?oy(e,r,n,i):v("Intersect scene must be mark node or group item.")}function ry(e,t,n,i){if(function(e,t,n){return e.bounds&&t.intersects(e.bounds)&&("group"===e.marktype||!1!==e.interactive&&(!n||n(e)))}(e,t,n)){const r=e.items,o=e.marktype,a=r.length;let s=0;if("group"===o)for(;s<a;++s)oy(r[s],t,n,i);else for(const e=mm[o].isect;s<a;++s){const n=r[s];ay(n,t,e)&&i.push(n)}}return i}function oy(e,t,n,i){n&&n(e.mark)&&ay(e,t,mm.group.isect)&&i.push(e);const r=e.items,o=r&&r.length;if(o){const a=e.x||0,s=e.y||0;t.translate(-a,-s);for(let e=0;e<o;++e)ry(r[e],t,n,i);t.translate(a,s)}return i}function ay(e,t,n){const i=e.bounds;return t.encloses(i)||t.intersects(i)&&n(e,t)}ty[Qg]=ty.png={renderer:sg,headless:sg,handler:eg},ty.svg={renderer:Ng,headless:Vg,handler:ug},ty[Kg]={renderer:Xg,headless:Xg,handler:Jg},ty[Zg]={};const sy=new xh;function ly(e){const t=e.clip;if(m(t))t(Wh(sy.clear()));else{if(!t)return;sy.set(0,0,e.group.width,e.group.height)}e.bounds.intersect(sy)}function uy(e,t,i){return e===t||("path"===i?cy(e,t):e instanceof Date&&t instanceof Date?+e==+t:n(e)&&n(t)?Math.abs(e-t)<=1e-9:e&&t&&(a(e)||a(t))?function(e,t){var n,i,r=Object.keys(e),o=Object.keys(t);if(r.length!==o.length)return!1;for(r.sort(),o.sort(),i=r.length-1;i>=0;i--)if(r[i]!=o[i])return!1;for(i=r.length-1;i>=0;i--)if(!uy(e[n=r[i]],t[n],n))return!1;return typeof e==typeof t}(e,t):e==t)}function cy(e,t){return uy(zd(e),zd(t))}const fy="top",dy="left",hy="right",py="bottom",my="start",gy="middle",yy="end",vy="group",by="axis",xy="title",wy="frame",_y="scope",ky="legend",$y="row-header",Dy="row-footer",Ay="row-title",Sy="column-header",Ey="column-footer",Fy="column-title",Cy="padding",My="fit",zy="fit-x",Oy="fit-y",Ny="none",Ry="all",By="each",Ty="flush",Py="column",jy="row";function Ly(e){tl.call(this,null,e)}function qy(e,t,n){return t(e.bounds.clear(),e,n)}_(Ly,tl,{transform(e,t){const n=t.dataflow,i=e.mark,r=i.marktype,o=mm[r],a=o.bound;let s,l=i.bounds;if(o.nested)i.items.length&&n.dirty(i.items[0]),l=qy(i,a),i.items.forEach((e=>{e.bounds.clear().union(l)}));else if(r===vy||e.modified())switch(t.visit(t.MOD,(e=>n.dirty(e))),l.clear(),i.items.forEach((e=>l.union(qy(e,a)))),i.role){case by:case ky:case xy:t.reflow()}else s=t.changed(t.REM),t.visit(t.ADD,(e=>{l.union(qy(e,a))})),t.visit(t.MOD,(e=>{s=s||l.alignsWith(e.bounds),n.dirty(e),l.union(qy(e,a))})),s&&(l.clear(),i.items.forEach((e=>l.union(e.bounds))));return ly(i),t.modifies("bounds")}});const Uy=":vega_identifier:";function Iy(e){tl.call(this,0,e)}function Wy(e){tl.call(this,null,e)}function Hy(e){tl.call(this,null,e)}Iy.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},_(Iy,tl,{transform(e,t){const n=(r=t.dataflow)._signals[Uy]||(r._signals[Uy]=r.add(0)),i=e.as;var r;let o=n.value;return t.visit(t.ADD,(e=>e[i]=e[i]||++o)),n.set(this.value=o),t}}),_(Wy,tl,{transform(e,t){let n=this.value;n||(n=t.dataflow.scenegraph().mark(e.markdef,function(e){const t=e.groups,n=e.parent;return t&&1===t.size?t.get(Object.keys(t.object)[0]):t&&n?t.lookup(n):null}(e),e.index),n.group.context=e.context,e.context.group||(e.context.group=n.group),n.source=this.source,n.clip=e.clip,n.interactive=e.interactive,this.value=n);const i=n.marktype===vy?_h:wh;return t.visit(t.ADD,(e=>i.call(e,n))),(e.modified("clip")||e.modified("interactive"))&&(n.clip=e.clip,n.interactive=!!e.interactive,n.zdirty=!0,t.reflow()),n.items=t.source,t}});const Gy={parity:e=>e.filter(((e,t)=>t%2?e.opacity=0:1)),greedy:(e,t)=>{let n;return e.filter(((e,i)=>i&&Vy(n.bounds,e.bounds,t)?e.opacity=0:(n=e,1)))}},Vy=(e,t,n)=>n>Math.max(t.x1-e.x2,e.x1-t.x2,t.y1-e.y2,e.y1-t.y2),Yy=(e,t)=>{for(var n,i=1,r=e.length,o=e[0].bounds;i<r;o=n,++i)if(Vy(o,n=e[i].bounds,t))return!0},Xy=e=>{const t=e.bounds;return t.width()>1&&t.height()>1},Jy=e=>(e.forEach((e=>e.opacity=1)),e),Qy=(e,t)=>e.reflow(t.modified()).modifies("opacity");function Ky(e){tl.call(this,null,e)}_(Hy,tl,{transform(e,t){const n=Gy[e.method]||Gy.parity,i=e.separation||0;let r,o,a=t.materialize(t.SOURCE).source;if(!a||!a.length)return;if(!e.method)return e.modified("method")&&(Jy(a),t=Qy(t,e)),t;if(a=a.filter(Xy),!a.length)return;if(e.sort&&(a=a.slice().sort(e.sort)),r=Jy(a),t=Qy(t,e),r.length>=3&&Yy(r,i)){do{r=n(r,i)}while(r.length>=3&&Yy(r,i));r.length<3&&!T(a).opacity&&(r.length>1&&(T(r).opacity=0),T(a).opacity=1)}var s,l,u,c,f;e.boundScale&&e.boundTolerance>=0&&(s=e.boundScale,l=e.boundOrient,u=+e.boundTolerance,c=s.range(),f=new xh,l===fy||l===py?f.set(c[0],-1/0,c[1],1/0):f.set(-1/0,c[0],1/0,c[1]),f.expand(u||1),o=e=>f.encloses(e.bounds),a.forEach((e=>{o(e)||(e.opacity=0)})));const d=r[0].mark.bounds.clear();return a.forEach((e=>{e.opacity&&d.union(e.bounds)})),t}}),_(Ky,tl,{transform(e,t){const n=t.dataflow;if(t.visit(t.ALL,(e=>n.dirty(e))),t.fields&&t.fields.zindex){const e=t.source&&t.source[0];e&&(e.mark.zdirty=!0)}}});const Zy=new xh;function ev(e,t,n){return e[t]===n?0:(e[t]=n,1)}function tv(e){var t=e.items[0].orient;return t===dy||t===hy}function nv(e,t,n,i){var r,o,a=t.items[0],s=a.datum,l=null!=a.translate?a.translate:.5,u=a.orient,c=function(e){let t=+e.grid;return[e.ticks?t++:-1,e.labels?t++:-1,t+ +e.domain]}(s),f=a.range,d=a.offset,h=a.position,p=a.minExtent,m=a.maxExtent,g=s.title&&a.items[c[2]].items[0],y=a.titlePadding,v=a.bounds,b=g&&om(g),x=0,w=0;switch(Zy.clear().union(v),v.clear(),(r=c[0])>-1&&v.union(a.items[r].bounds),(r=c[1])>-1&&v.union(a.items[r].bounds),u){case fy:x=h||0,w=-d,o=Math.max(p,Math.min(m,-v.y1)),v.add(0,-o).add(f,0),g&&iv(e,g,o,y,b,0,-1,v);break;case dy:x=-d,w=h||0,o=Math.max(p,Math.min(m,-v.x1)),v.add(-o,0).add(0,f),g&&iv(e,g,o,y,b,1,-1,v);break;case hy:x=n+d,w=h||0,o=Math.max(p,Math.min(m,v.x2)),v.add(0,0).add(o,f),g&&iv(e,g,o,y,b,1,1,v);break;case py:x=h||0,w=i+d,o=Math.max(p,Math.min(m,v.y2)),v.add(0,0).add(f,o),g&&iv(e,g,o,y,0,0,1,v);break;default:x=a.x,w=a.y}return Ah(v.translate(x,w),a),ev(a,"x",x+l)|ev(a,"y",w+l)&&(a.bounds=Zy,e.dirty(a),a.bounds=v,e.dirty(a)),a.mark.bounds.clear().union(v)}function iv(e,t,n,i,r,o,a,s){const l=t.bounds;if(t.auto){const s=a*(n+r+i);let u=0,c=0;e.dirty(t),o?u=(t.x||0)-(t.x=s):c=(t.y||0)-(t.y=s),t.mark.bounds.clear().union(l.translate(-u,-c)),e.dirty(t)}s.union(l)}const rv=(e,t)=>Math.floor(Math.min(e,t)),ov=(e,t)=>Math.ceil(Math.max(e,t));function av(e){return(new xh).set(0,0,e.width||0,e.height||0)}function sv(e){const t=e.bounds.clone();return t.empty()?t.set(0,0,0,0):t.translate(-(e.x||0),-(e.y||0))}function lv(e,t,n){const i=a(e)?e[t]:e;return null!=i?i:void 0!==n?n:0}function uv(e){return e<0?Math.ceil(-e):0}function cv(e,t,n){var i,r,o,a,s,l,u,c,f,d,h,p=!n.nodirty,m=n.bounds===Ty?av:sv,g=Zy.set(0,0,0,0),y=lv(n.align,Py),v=lv(n.align,jy),b=lv(n.padding,Py),x=lv(n.padding,jy),w=n.columns||t.length,_=w<=0?1:Math.ceil(t.length/w),k=t.length,$=Array(k),D=Array(w),A=0,S=Array(k),E=Array(_),F=0,C=Array(k),M=Array(k),z=Array(k);for(r=0;r<w;++r)D[r]=0;for(r=0;r<_;++r)E[r]=0;for(r=0;r<k;++r)l=t[r],s=z[r]=m(l),l.x=l.x||0,C[r]=0,l.y=l.y||0,M[r]=0,o=r%w,a=~~(r/w),A=Math.max(A,u=Math.ceil(s.x2)),F=Math.max(F,c=Math.ceil(s.y2)),D[o]=Math.max(D[o],u),E[a]=Math.max(E[a],c),$[r]=b+uv(s.x1),S[r]=x+uv(s.y1),p&&e.dirty(t[r]);for(r=0;r<k;++r)r%w==0&&($[r]=0),r<w&&(S[r]=0);if(y===By)for(o=1;o<w;++o){for(h=0,r=o;r<k;r+=w)h<$[r]&&(h=$[r]);for(r=o;r<k;r+=w)$[r]=h+D[o-1]}else if(y===Ry){for(h=0,r=0;r<k;++r)r%w&&h<$[r]&&(h=$[r]);for(r=0;r<k;++r)r%w&&($[r]=h+A)}else for(y=!1,o=1;o<w;++o)for(r=o;r<k;r+=w)$[r]+=D[o-1];if(v===By)for(a=1;a<_;++a){for(h=0,i=(r=a*w)+w;r<i;++r)h<S[r]&&(h=S[r]);for(r=a*w;r<i;++r)S[r]=h+E[a-1]}else if(v===Ry){for(h=0,r=w;r<k;++r)h<S[r]&&(h=S[r]);for(r=w;r<k;++r)S[r]=h+F}else for(v=!1,a=1;a<_;++a)for(i=(r=a*w)+w;r<i;++r)S[r]+=E[a-1];for(f=0,r=0;r<k;++r)f=$[r]+(r%w?f:0),C[r]+=f-t[r].x;for(o=0;o<w;++o)for(d=0,r=o;r<k;r+=w)d+=S[r],M[r]+=d-t[r].y;if(y&&lv(n.center,Py)&&_>1)for(r=0;r<k;++r)(f=(s=y===Ry?A:D[r%w])-z[r].x2-t[r].x-C[r])>0&&(C[r]+=f/2);if(v&&lv(n.center,jy)&&1!==w)for(r=0;r<k;++r)(d=(s=v===Ry?F:E[~~(r/w)])-z[r].y2-t[r].y-M[r])>0&&(M[r]+=d/2);for(r=0;r<k;++r)g.union(z[r].translate(C[r],M[r]));switch(f=lv(n.anchor,"x"),d=lv(n.anchor,"y"),lv(n.anchor,Py)){case yy:f-=g.width();break;case gy:f-=g.width()/2}switch(lv(n.anchor,jy)){case yy:d-=g.height();break;case gy:d-=g.height()/2}for(f=Math.round(f),d=Math.round(d),g.clear(),r=0;r<k;++r)t[r].mark.bounds.clear();for(r=0;r<k;++r)(l=t[r]).x+=C[r]+=f,l.y+=M[r]+=d,g.union(l.mark.bounds.union(l.bounds.translate(C[r],M[r]))),p&&e.dirty(l);return g}function fv(e,t,n){var i,r,o,a,s,l,u,c=function(e){var t,n,i=e.items,r=i.length,o=0;const a={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;o<r;++o)if(n=(t=i[o]).items,t.marktype===vy)switch(t.role){case by:case ky:case xy:break;case $y:a.rowheaders.push(...n);break;case Dy:a.rowfooters.push(...n);break;case Sy:a.colheaders.push(...n);break;case Ey:a.colfooters.push(...n);break;case Ay:a.rowtitle=n[0];break;case Fy:a.coltitle=n[0];break;default:a.marks.push(...n)}return a}(t),f=c.marks,d=n.bounds===Ty?dv:hv,h=n.offset,p=n.columns||f.length,m=p<=0?1:Math.ceil(f.length/p),g=m*p;const y=cv(e,f,n);y.empty()&&y.set(0,0,0,0),c.rowheaders&&(l=lv(n.headerBand,jy,null),i=pv(e,c.rowheaders,f,p,m,-lv(h,"rowHeader"),rv,0,d,"x1",0,p,1,l)),c.colheaders&&(l=lv(n.headerBand,Py,null),r=pv(e,c.colheaders,f,p,p,-lv(h,"columnHeader"),rv,1,d,"y1",0,1,p,l)),c.rowfooters&&(l=lv(n.footerBand,jy,null),o=pv(e,c.rowfooters,f,p,m,lv(h,"rowFooter"),ov,0,d,"x2",p-1,p,1,l)),c.colfooters&&(l=lv(n.footerBand,Py,null),a=pv(e,c.colfooters,f,p,p,lv(h,"columnFooter"),ov,1,d,"y2",g-p,1,p,l)),c.rowtitle&&(s=lv(n.titleAnchor,jy),u=lv(h,"rowTitle"),u=s===yy?o+u:i-u,l=lv(n.titleBand,jy,.5),mv(e,c.rowtitle,u,0,y,l)),c.coltitle&&(s=lv(n.titleAnchor,Py),u=lv(h,"columnTitle"),u=s===yy?a+u:r-u,l=lv(n.titleBand,Py,.5),mv(e,c.coltitle,u,1,y,l))}function dv(e,t){return"x1"===t?e.x||0:"y1"===t?e.y||0:"x2"===t?(e.x||0)+(e.width||0):"y2"===t?(e.y||0)+(e.height||0):void 0}function hv(e,t){return e.bounds[t]}function pv(e,t,n,i,r,o,a,s,l,u,c,f,d,h){var p,m,g,y,v,b,x,w,_,k=n.length,$=0,D=0;if(!k)return $;for(p=c;p<k;p+=f)n[p]&&($=a($,l(n[p],u)));if(!t.length)return $;for(t.length>r&&(e.warn("Grid headers exceed limit: "+r),t=t.slice(0,r)),$+=o,m=0,y=t.length;m<y;++m)e.dirty(t[m]),t[m].mark.bounds.clear();for(p=c,m=0,y=t.length;m<y;++m,p+=f){for(v=(b=t[m]).mark.bounds,g=p;g>=0&&null==(x=n[g]);g-=d);s?(w=null==h?x.x:Math.round(x.bounds.x1+h*x.bounds.width()),_=$):(w=$,_=null==h?x.y:Math.round(x.bounds.y1+h*x.bounds.height())),v.union(b.bounds.translate(w-(b.x||0),_-(b.y||0))),b.x=w,b.y=_,e.dirty(b),D=a(D,v[u])}return D}function mv(e,t,n,i,r,o){if(t){e.dirty(t);var a=n,s=n;i?a=Math.round(r.x1+o*r.width()):s=Math.round(r.y1+o*r.height()),t.bounds.translate(a-(t.x||0),s-(t.y||0)),t.mark.bounds.clear().union(t.bounds),t.x=a,t.y=s,e.dirty(t)}}function gv(e,t,n,i,r,o,a){const s=function(e,t){const n=e[t]||{};return(t,i)=>null!=n[t]?n[t]:null!=e[t]?e[t]:i}(n,t),l=function(e,t){let n=-1/0;return e.forEach((e=>{null!=e.offset&&(n=Math.max(n,e.offset))})),n>-1/0?n:t}(e,s("offset",0)),u=s("anchor",my),c=u===yy?1:u===gy?.5:0,f={align:By,bounds:s("bounds",Ty),columns:"vertical"===s("direction")?1:e.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(t){case dy:f.anchor={x:Math.floor(i.x1)-l,column:yy,y:c*(a||i.height()+2*i.y1),row:u};break;case hy:f.anchor={x:Math.ceil(i.x2)+l,y:c*(a||i.height()+2*i.y1),row:u};break;case fy:f.anchor={y:Math.floor(r.y1)-l,row:yy,x:c*(o||r.width()+2*r.x1),column:u};break;case py:f.anchor={y:Math.ceil(r.y2)+l,x:c*(o||r.width()+2*r.x1),column:u};break;case"top-left":f.anchor={x:l,y:l};break;case"top-right":f.anchor={x:o-l,y:l,column:yy};break;case"bottom-left":f.anchor={x:l,y:a-l,row:yy};break;case"bottom-right":f.anchor={x:o-l,y:a-l,column:yy,row:yy}}return f}function yv(e,t){var n,i,r=t.items[0],o=r.datum,a=r.orient,s=r.bounds,l=r.x,u=r.y;return r._bounds?r._bounds.clear().union(s):r._bounds=s.clone(),s.clear(),function(e,t,n){var i=t.padding,r=i-n.x,o=i-n.y;if(t.datum.title){var a=t.items[1].items[0],s=a.anchor,l=t.titlePadding||0,u=i-a.x,c=i-a.y;switch(a.orient){case dy:r+=Math.ceil(a.bounds.width())+l;break;case hy:case py:break;default:o+=a.bounds.height()+l}switch((r||o)&&bv(e,n,r,o),a.orient){case dy:c+=vv(t,n,a,s,1,1);break;case hy:u+=vv(t,n,a,yy,0,0)+l,c+=vv(t,n,a,s,1,1);break;case py:u+=vv(t,n,a,s,0,0),c+=vv(t,n,a,yy,-1,0,1)+l;break;default:u+=vv(t,n,a,s,0,0)}(u||c)&&bv(e,a,u,c),(u=Math.round(a.bounds.x1-i))<0&&(bv(e,n,-u,0),bv(e,a,-u,0))}else(r||o)&&bv(e,n,r,o)}(e,r,r.items[0].items[0]),s=function(e,t){return e.items.forEach((e=>t.union(e.bounds))),t.x1=e.padding,t.y1=e.padding,t}(r,s),n=2*r.padding,i=2*r.padding,s.empty()||(n=Math.ceil(s.width()+n),i=Math.ceil(s.height()+i)),"symbol"===o.type&&function(e){const t=e.reduce(((e,t)=>(e[t.column]=Math.max(t.bounds.x2-t.x,e[t.column]||0),e)),{});e.forEach((e=>{e.width=t[e.column],e.height=e.bounds.y2-e.y}))}(r.items[0].items[0].items[0].items),a!==Ny&&(r.x=l=0,r.y=u=0),r.width=n,r.height=i,Ah(s.set(l,u,l+n,u+i),r),r.mark.bounds.clear().union(s),r}function vv(e,t,n,i,r,o,a){const s="symbol"!==e.datum.type,l=n.datum.vgrad,u=(!s||!o&&l||a?t:t.items[0]).bounds[r?"y2":"x2"]-e.padding,c=l&&o?u:0,f=l&&o?0:u,d=r<=0?0:om(n);return Math.round(i===my?c:i===yy?f-d:.5*(u-d))}function bv(e,t,n,i){t.x+=n,t.y+=i,t.bounds.translate(n,i),t.mark.bounds.translate(n,i),e.dirty(t)}function xv(e){tl.call(this,null,e)}_(xv,tl,{transform(e,t){const n=t.dataflow;return e.mark.items.forEach((t=>{e.layout&&fv(n,t,e.layout),function(e,t,n){var i,r,o,a,s,l=t.items,u=Math.max(0,t.width||0),c=Math.max(0,t.height||0),f=(new xh).set(0,0,u,c),d=f.clone(),h=f.clone(),p=[];for(a=0,s=l.length;a<s;++a)switch((r=l[a]).role){case by:(tv(r)?d:h).union(nv(e,r,u,c));break;case xy:i=r;break;case ky:p.push(yv(e,r));break;case wy:case _y:case $y:case Dy:case Ay:case Sy:case Ey:case Fy:d.union(r.bounds),h.union(r.bounds);break;default:f.union(r.bounds)}if(p.length){const t={};p.forEach((e=>{(o=e.orient||hy)!==Ny&&(t[o]||(t[o]=[])).push(e)}));for(const i in t){const r=t[i];cv(e,r,gv(r,i,n.legends,d,h,u,c))}p.forEach((t=>{const i=t.bounds;if(i.equals(t._bounds)||(t.bounds=t._bounds,e.dirty(t),t.bounds=i,e.dirty(t)),!n.autosize||n.autosize.type!==My&&n.autosize.type!==zy&&n.autosize.type!==Oy)f.union(i);else switch(t.orient){case dy:case hy:f.add(i.x1,0).add(i.x2,0);break;case fy:case py:f.add(0,i.y1).add(0,i.y2)}}))}f.union(d).union(h),i&&f.union(function(e,t,n,i,r){var o,a=t.items[0],s=a.frame,l=a.orient,u=a.anchor,c=a.offset,f=a.padding,d=a.items[0].items[0],h=a.items[1]&&a.items[1].items[0],p=l===dy||l===hy?i:n,m=0,g=0,y=0,v=0,b=0;if(s!==vy?l===dy?(m=r.y2,p=r.y1):l===hy?(m=r.y1,p=r.y2):(m=r.x1,p=r.x2):l===dy&&(m=i,p=0),o=u===my?m:u===yy?p:(m+p)/2,h&&h.text){switch(l){case fy:case py:b=d.bounds.height()+f;break;case dy:v=d.bounds.width()+f;break;case hy:v=-d.bounds.width()-f}Zy.clear().union(h.bounds),Zy.translate(v-(h.x||0),b-(h.y||0)),ev(h,"x",v)|ev(h,"y",b)&&(e.dirty(h),h.bounds.clear().union(Zy),h.mark.bounds.clear().union(Zy),e.dirty(h)),Zy.clear().union(h.bounds)}else Zy.clear();switch(Zy.union(d.bounds),l){case fy:g=o,y=r.y1-Zy.height()-c;break;case dy:g=r.x1-Zy.width()-c,y=o;break;case hy:g=r.x2+Zy.width()+c,y=o;break;case py:g=o,y=r.y2+c;break;default:g=a.x,y=a.y}return ev(a,"x",g)|ev(a,"y",y)&&(Zy.translate(g,y),e.dirty(a),a.bounds.clear().union(Zy),t.bounds.clear().union(Zy),e.dirty(a)),a.bounds}(e,i,u,c,f));t.clip&&f.set(0,0,t.width||0,t.height||0);!function(e,t,n,i){const r=i.autosize||{},o=r.type;if(e._autosize<1||!o)return;let a=e._width,s=e._height,l=Math.max(0,t.width||0),u=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,t.height||0),f=Math.max(0,Math.ceil(-n.y1));const d=Math.max(0,Math.ceil(n.x2-l)),h=Math.max(0,Math.ceil(n.y2-c));if(r.contains===Cy){const t=e.padding();a-=t.left+t.right,s-=t.top+t.bottom}o===Ny?(u=0,f=0,l=a,c=s):o===My?(l=Math.max(0,a-u-d),c=Math.max(0,s-f-h)):o===zy?(l=Math.max(0,a-u-d),s=c+f+h):o===Oy?(a=l+u+d,c=Math.max(0,s-f-h)):"pad"===o&&(a=l+u+d,s=c+f+h);e._resizeView(a,s,l,c,[u,f],r.resize)}(e,t,f,n)}(n,t,e)})),(i=e.mark.group)&&"legend-entry"!==i.mark.role?t.reflow():t;var i}});const wv=Object.freeze(Object.defineProperty({__proto__:null,bound:Ly,identifier:Iy,mark:Wy,overlap:Hy,render:Ky,viewlayout:xv},Symbol.toStringTag,{value:"Module"}));function _v(e){tl.call(this,null,e)}function kv(e){tl.call(this,null,e)}function $v(){return $s({})}function Dv(e){tl.call(this,null,e)}function Av(e){tl.call(this,[],e)}_(_v,tl,{transform(e,t){if(this.value&&!e.modified())return t.StopPropagation;var n=t.dataflow.locale(),i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=this.value,o=e.scale,a=id(o,null==e.count?e.values?e.values.length:10:e.count,e.minstep),s=e.format||ad(n,o,a,e.formatSpecifier,e.formatType,!!e.values),l=e.values?rd(o,e.values,a):od(o,a);return r&&(i.rem=r),r=l.map(((e,t)=>$s({index:t/(l.length-1||1),value:e,label:s(e)}))),e.extra&&r.length&&r.push($s({index:-1,extra:{value:r[0].value},label:""})),i.source=r,i.add=r,this.value=r,i}}),_(kv,tl,{transform(e,t){var n=t.dataflow,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.item||$v,o=e.key||_s,a=this.value;return u(i.encode)&&(i.encode=null),a&&(e.modified("key")||t.modified(o))&&v("DataJoin does not support modified key function or fields."),a||(t=t.addAll(),this.value=a=function(e){const t=W().test((e=>e.exit));return t.lookup=n=>t.get(e(n)),t}(o)),t.visit(t.ADD,(e=>{const t=o(e);let n=a.get(t);n?n.exit?(a.empty--,i.add.push(n)):i.mod.push(n):(n=r(e),a.set(t,n),i.add.push(n)),n.datum=e,n.exit=!1})),t.visit(t.MOD,(e=>{const t=o(e),n=a.get(t);n&&(n.datum=e,i.mod.push(n))})),t.visit(t.REM,(e=>{const t=o(e),n=a.get(t);e!==n.datum||n.exit||(i.rem.push(n),n.exit=!0,++a.empty)})),t.changed(t.ADD_MOD)&&i.modifies("datum"),(t.clean()||e.clean&&a.empty>n.cleanThreshold)&&n.runAfter(a.clean),i}}),_(Dv,tl,{transform(e,t){var n=t.fork(t.ADD_REM),i=e.mod||!1,r=e.encoders,o=t.encode;if(u(o)){if(!n.changed()&&!o.every((e=>r[e])))return t.StopPropagation;o=o[0],n.encode=null}var a="enter"===o,s=r.update||ue,l=r.enter||ue,c=r.exit||ue,f=(o&&!a?r[o]:s)||ue;if(t.changed(t.ADD)&&(t.visit(t.ADD,(t=>{l(t,e),s(t,e)})),n.modifies(l.output),n.modifies(s.output),f!==ue&&f!==s&&(t.visit(t.ADD,(t=>{f(t,e)})),n.modifies(f.output))),t.changed(t.REM)&&c!==ue&&(t.visit(t.REM,(t=>{c(t,e)})),n.modifies(c.output)),a||f!==ue){const r=t.MOD|(e.modified()?t.REFLOW:0);a?(t.visit(r,(t=>{const r=l(t,e)||i;(f(t,e)||r)&&n.mod.push(t)})),n.mod.length&&n.modifies(l.output)):t.visit(r,(t=>{(f(t,e)||i)&&n.mod.push(t)})),n.mod.length&&n.modifies(f.output)}return n.changed()?n:t.StopPropagation}}),_(Av,tl,{transform(e,t){if(null!=this.value&&!e.modified())return t.StopPropagation;var n,i,r,o,a,s=t.dataflow.locale(),l=t.fork(t.NO_SOURCE|t.NO_FIELDS),u=this.value,c=e.type||Zf,f=e.scale,d=+e.limit,h=id(f,null==e.count?5:e.count,e.minstep),p=!!e.values||c===Zf,y=e.format||fd(s,f,h,c,e.formatSpecifier,e.formatType,p),v=e.values||cd(f,h);return u&&(l.rem=u),c===Zf?(d&&v.length>d?(t.dataflow.warn("Symbol legend count exceeds limit, filtering items."),u=v.slice(0,d-1),a=!0):u=v,m(r=e.size)?(e.values||0!==f(u[0])||(u=u.slice(1)),o=u.reduce(((t,n)=>Math.max(t,r(n,e))),0)):r=g(o=r||8),u=u.map(((t,n)=>$s({index:n,label:y(t,n,u),value:t,offset:o,size:r(t,e)}))),a&&(a=v[u.length],u.push($s({index:u.length,label:`…${v.length-u.length} entries`,value:a,offset:o,size:r(a,e)})))):"gradient"===c?(n=f.domain(),i=Vf(f,n[0],T(n)),v.length<3&&!e.values&&n[0]!==T(n)&&(v=[n[0],T(n)]),u=v.map(((e,t)=>$s({index:t,label:y(e,t,v),value:e,perc:i(e)})))):(r=v.length-1,i=function(e){const t=e.domain(),n=t.length-1;let i=+t[0],r=+T(t),o=r-i;if(e.type===yf){const e=n?o/n:.1;i-=e,r+=e,o=r-i}return e=>(e-i)/o}(f),u=v.map(((e,t)=>$s({index:t,label:y(e,t,v),value:e,perc:t?i(e):0,perc2:t===r?1:i(v[t+1])})))),l.source=u,l.add=u,this.value=u,l}});const Sv=e=>e.source.x,Ev=e=>e.source.y,Fv=e=>e.target.x,Cv=e=>e.target.y;function Mv(e){tl.call(this,{},e)}Mv.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},_(Mv,tl,{transform(e,t){var n=e.sourceX||Sv,i=e.sourceY||Ev,r=e.targetX||Fv,o=e.targetY||Cv,a=e.as||"path",s=e.orient||"vertical",l=e.shape||"line",u=Rv.get(l+"-"+s)||Rv.get(l);return u||v("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,(e=>{e[a]=u(n(e),i(e),r(e),o(e))})),t.reflow(e.modified()).modifies(a)}});const zv=(e,t,n,i)=>"M"+e+","+t+"L"+n+","+i,Ov=(e,t,n,i)=>{var r=n-e,o=i-t,a=Math.hypot(r,o)/2;return"M"+e+","+t+"A"+a+","+a+" "+180*Math.atan2(o,r)/Math.PI+" 0 1 "+n+","+i},Nv=(e,t,n,i)=>{const r=n-e,o=i-t,a=.2*(r+o),s=.2*(o-r);return"M"+e+","+t+"C"+(e+a)+","+(t+s)+" "+(n+s)+","+(i-a)+" "+n+","+i},Rv=W({line:zv,"line-radial":(e,t,n,i)=>zv(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),arc:Ov,"arc-radial":(e,t,n,i)=>Ov(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),curve:Nv,"curve-radial":(e,t,n,i)=>Nv(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),"orthogonal-horizontal":(e,t,n,i)=>"M"+e+","+t+"V"+i+"H"+n,"orthogonal-vertical":(e,t,n,i)=>"M"+e+","+t+"H"+n+"V"+i,"orthogonal-radial":(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),a=Math.cos(n),s=Math.sin(n);return"M"+t*r+","+t*o+"A"+t+","+t+" 0 0,"+((Math.abs(n-e)>Math.PI?n<=e:n>e)?1:0)+" "+t*a+","+t*s+"L"+i*a+","+i*s},"diagonal-horizontal":(e,t,n,i)=>{const r=(e+n)/2;return"M"+e+","+t+"C"+r+","+t+" "+r+","+i+" "+n+","+i},"diagonal-vertical":(e,t,n,i)=>{const r=(t+i)/2;return"M"+e+","+t+"C"+e+","+r+" "+n+","+r+" "+n+","+i},"diagonal-radial":(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),a=Math.cos(n),s=Math.sin(n),l=(t+i)/2;return"M"+t*r+","+t*o+"C"+l*r+","+l*o+" "+l*a+","+l*s+" "+i*a+","+i*s}});function Bv(e){tl.call(this,null,e)}Bv.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},_(Bv,tl,{transform(e,t){var n,i,r,o=e.as||["startAngle","endAngle"],a=o[0],s=o[1],l=e.field||ce,u=e.startAngle||0,c=null!=e.endAngle?e.endAngle:2*Math.PI,f=t.source,d=f.map(l),h=d.length,p=u,m=(c-u)/ai(d),g=Ht(h);for(e.sort&&g.sort(((e,t)=>d[e]-d[t])),n=0;n<h;++n)r=d[g[n]],(i=f[g[n]])[a]=p,i[s]=p+=r*m;return this.value=d,t.reflow(e.modified()).modifies(o)}});function Tv(e){return Tf(e)&&e!==hf}const Pv=se(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function jv(e){tl.call(this,null,e),this.modified(!0)}function Lv(e,t,n){Lf(e)&&(Math.abs(t.reduce(((e,t)=>e+(t<0?-1:t>0?1:0)),0))!==t.length&&n.warn("Log scale domain includes zero: "+o(t)));return t}function qv(e,t,n){return m(e)&&(t||n)?Wf(e,Uv(t||[0,1],n)):e}function Uv(e,t){return t?e.slice().reverse():e}function Iv(e){tl.call(this,null,e)}_(jv,tl,{transform(e,t){var n=t.dataflow,r=this.value,o=function(e){var t,n=e.type,r="";if(n===hf)return hf+"-"+af;(function(e){const t=e.type;return Tf(t)&&t!==ff&&t!==df&&(e.scheme||e.range&&e.range.length&&e.range.every(i))})(e)&&(r=2===(t=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(null!=e.domainMid):0)?hf+"-":3===t?pf+"-":"");return(r+n||af).toLowerCase()}(e);for(o in r&&o===r.type||(this.value=r=Nf(o)()),e)if(!Pv[o]){if("padding"===o&&Tv(r.type))continue;m(r[o])?r[o](e[o]):n.warn("Unsupported scale property: "+o)}return function(e,t,n){var i=e.type,r=t.round||!1,o=t.range;if(null!=t.rangeStep)o=function(e,t,n){e!==xf&&e!==bf&&v("Only band and point scales support rangeStep.");var i=(null!=t.paddingOuter?t.paddingOuter:t.padding)||0,r=e===bf?1:(null!=t.paddingInner?t.paddingInner:t.padding)||0;return[0,t.rangeStep*of(n,r,i)]}(i,t,n);else if(t.scheme&&(o=function(e,t,n){var i,r=t.schemeExtent;u(t.scheme)?i=Hf(t.scheme,t.interpolate,t.interpolateGamma):(i=Kf(t.scheme.toLowerCase()))||v(`Unrecognized scheme name: ${t.scheme}`);return n=e===yf?n+1:e===wf?n-1:e===mf||e===gf?+t.schemeCount||5:n,qf(e)?qv(i,r,t.reverse):m(i)?Gf(qv(i,r),n):e===vf?i:i.slice(0,n)}(i,t,n),m(o))){if(e.interpolator)return e.interpolator(o);v(`Scale type ${i} does not support interpolating color schemes.`)}if(o&&qf(i))return e.interpolator(Hf(Uv(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(Yf(t.interpolate,t.interpolateGamma)):m(e.round)?e.round(r):m(e.rangeRound)&&e.interpolate(r?Rt:Ct);o&&e.range(Uv(o,t.reverse))}(r,e,function(e,t,n){let i=t.bins;if(i&&!u(i)){const t=e.domain(),n=t[0],r=T(t),o=i.step;let a=null==i.start?n:i.start,s=null==i.stop?r:i.stop;o||v("Scale bins parameter missing step property."),a<n&&(a=o*Math.ceil(n/o)),s>r&&(s=o*Math.floor(r/o)),i=Ht(a,s+o/2,o)}i?e.bins=i:e.bins&&delete e.bins;e.type===wf&&(i?t.domain||t.domainRaw||(e.domain(i),n=i.length):e.bins=e.domain());return n}(r,e,function(e,t,n){const i=function(e,t,n){return t?(e.domain(Lv(e.type,t,n)),t.length):-1}(e,t.domainRaw,n);if(i>-1)return i;var r,o,a=t.domain,s=e.type,l=t.zero||void 0===t.zero&&function(e){const t=e.type;return!e.bins&&(t===af||t===lf||t===uf)}(e);if(!a)return 0;if((l||null!=t.domainMin||null!=t.domainMax||null!=t.domainMid)&&(r=(a=a.slice()).length-1||1,l&&(a[0]>0&&(a[0]=0),a[r]<0&&(a[r]=0)),null!=t.domainMin&&(a[0]=t.domainMin),null!=t.domainMax&&(a[r]=t.domainMax),null!=t.domainMid)){const e=(o=t.domainMid)>a[r]?r+1:o<a[0]?0:r;e!==r&&n.warn("Scale domainMid exceeds domain min or max.",o),a.splice(e,0,o)}Tv(s)&&t.padding&&a[0]!==T(a)&&(a=function(e,t,n,i,r,o){var a=Math.abs(T(n)-n[0]),s=a/(a-2*i),l=e===sf?fe(t,null,s):e===uf?de(t,null,s,.5):e===lf?de(t,null,s,r||1):e===cf?he(t,null,s,o||1):pe(t,null,s);return t=t.slice(),t[0]=l[0],t[t.length-1]=l[1],t}(s,a,t.range,t.padding,t.exponent,t.constant));e.domain(Lv(s,a,n)),s===vf&&e.unknown(t.domainImplicit?Xn:void 0);t.nice&&e.nice&&e.nice(!0!==t.nice&&id(e,t.nice)||null);return a.length}(r,e,n))),t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),_(Iv,tl,{transform(e,t){const n=e.modified("sort")||t.changed(t.ADD)||t.modified(e.sort.fields)||t.modified("datum");return n&&t.source.sort(Es(e.sort)),this.modified(n),t}});const Wv="zero",Hv="center",Gv="normalize",Vv=["y0","y1"];function Yv(e){tl.call(this,null,e)}function Xv(e,t,n,i,r){for(var o,a=(t-e.sum)/2,s=e.length,l=0;l<s;++l)(o=e[l])[i]=a,o[r]=a+=Math.abs(n(o))}function Jv(e,t,n,i,r){for(var o,a=1/e.sum,s=0,l=e.length,u=0,c=0;u<l;++u)(o=e[u])[i]=s,o[r]=s=a*(c+=Math.abs(n(o)))}function Qv(e,t,n,i,r){for(var o,a,s=0,l=0,u=e.length,c=0;c<u;++c)(o=+n(a=e[c]))<0?(a[i]=l,a[r]=l+=o):(a[i]=s,a[r]=s+=o)}Yv.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:Wv,values:[Wv,Hv,Gv]},{name:"as",type:"string",array:!0,length:2,default:Vv}]},_(Yv,tl,{transform(e,t){var n,i,r,o,a=e.as||Vv,s=a[0],l=a[1],u=Es(e.sort),c=e.field||ce,f=e.offset===Hv?Xv:e.offset===Gv?Jv:Qv;for(n=function(e,t,n,i){var r,o,a,s,l,u,c,f,d,h=[],p=e=>e(l);if(null==t)h.push(e.slice());else for(r={},o=0,a=e.length;o<a;++o)l=e[o],(c=r[u=t.map(p)])||(r[u]=c=[],h.push(c)),c.push(l);for(u=0,d=0,s=h.length;u<s;++u){for(o=0,f=0,a=(c=h[u]).length;o<a;++o)f+=Math.abs(i(c[o]));c.sum=f,f>d&&(d=f),n&&c.sort(n)}return h.max=d,h}(t.source,e.groupby,u,c),i=0,r=n.length,o=n.max;i<r;++i)f(n[i],o,c,s,l);return t.reflow(e.modified()).modifies(a)}});const Kv=Object.freeze(Object.defineProperty({__proto__:null,axisticks:_v,datajoin:kv,encode:Dv,legendentries:Av,linkpath:Mv,pie:Bv,scale:jv,sortitems:Iv,stack:Yv},Symbol.toStringTag,{value:"Module"}));var Zv=1e-6,eb=1e-12,tb=Math.PI,nb=tb/2,ib=tb/4,rb=2*tb,ob=180/tb,ab=tb/180,sb=Math.abs,lb=Math.atan,ub=Math.atan2,cb=Math.cos,fb=Math.ceil,db=Math.exp,hb=Math.hypot,pb=Math.log,mb=Math.pow,gb=Math.sin,yb=Math.sign||function(e){return e>0?1:e<0?-1:0},vb=Math.sqrt,bb=Math.tan;function xb(e){return e>1?0:e<-1?tb:Math.acos(e)}function wb(e){return e>1?nb:e<-1?-nb:Math.asin(e)}function _b(){}function kb(e,t){e&&Db.hasOwnProperty(e.type)&&Db[e.type](e,t)}var $b={Feature:function(e,t){kb(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,i=-1,r=n.length;++i<r;)kb(n[i].geometry,t)}},Db={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)e=n[i],t.point(e[0],e[1],e[2])},LineString:function(e,t){Ab(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)Ab(n[i],t,0)},Polygon:function(e,t){Sb(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)Sb(n[i],t)},GeometryCollection:function(e,t){for(var n=e.geometries,i=-1,r=n.length;++i<r;)kb(n[i],t)}};function Ab(e,t,n){var i,r=-1,o=e.length-n;for(t.lineStart();++r<o;)i=e[r],t.point(i[0],i[1],i[2]);t.lineEnd()}function Sb(e,t){var n=-1,i=e.length;for(t.polygonStart();++n<i;)Ab(e[n],t,1);t.polygonEnd()}function Eb(e,t){e&&$b.hasOwnProperty(e.type)?$b[e.type](e,t):kb(e,t)}var Fb,Cb,Mb,zb,Ob,Nb,Rb,Bb,Tb,Pb,jb,Lb,qb,Ub,Ib,Wb,Hb=new Kn,Gb=new Kn,Vb={point:_b,lineStart:_b,lineEnd:_b,polygonStart:function(){Hb=new Kn,Vb.lineStart=Yb,Vb.lineEnd=Xb},polygonEnd:function(){var e=+Hb;Gb.add(e<0?rb+e:e),this.lineStart=this.lineEnd=this.point=_b},sphere:function(){Gb.add(rb)}};function Yb(){Vb.point=Jb}function Xb(){Qb(Fb,Cb)}function Jb(e,t){Vb.point=Qb,Fb=e,Cb=t,Mb=e*=ab,zb=cb(t=(t*=ab)/2+ib),Ob=gb(t)}function Qb(e,t){var n=(e*=ab)-Mb,i=n>=0?1:-1,r=i*n,o=cb(t=(t*=ab)/2+ib),a=gb(t),s=Ob*a,l=zb*o+s*cb(r),u=s*i*gb(r);Hb.add(ub(u,l)),Mb=e,zb=o,Ob=a}function Kb(e){return[ub(e[1],e[0]),wb(e[2])]}function Zb(e){var t=e[0],n=e[1],i=cb(n);return[i*cb(t),i*gb(t),gb(n)]}function ex(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function tx(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function nx(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function ix(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function rx(e){var t=vb(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}var ox,ax,sx,lx,ux,cx,fx,dx,hx,px,mx,gx,yx,vx,bx,xx,wx={point:_x,lineStart:$x,lineEnd:Dx,polygonStart:function(){wx.point=Ax,wx.lineStart=Sx,wx.lineEnd=Ex,Ub=new Kn,Vb.polygonStart()},polygonEnd:function(){Vb.polygonEnd(),wx.point=_x,wx.lineStart=$x,wx.lineEnd=Dx,Hb<0?(Nb=-(Bb=180),Rb=-(Tb=90)):Ub>Zv?Tb=90:Ub<-1e-6&&(Rb=-90),Wb[0]=Nb,Wb[1]=Bb},sphere:function(){Nb=-(Bb=180),Rb=-(Tb=90)}};function _x(e,t){Ib.push(Wb=[Nb=e,Bb=e]),t<Rb&&(Rb=t),t>Tb&&(Tb=t)}function kx(e,t){var n=Zb([e*ab,t*ab]);if(qb){var i=tx(qb,n),r=tx([i[1],-i[0],0],i);rx(r),r=Kb(r);var o,a=e-Pb,s=a>0?1:-1,l=r[0]*ob*s,u=sb(a)>180;u^(s*Pb<l&&l<s*e)?(o=r[1]*ob)>Tb&&(Tb=o):u^(s*Pb<(l=(l+360)%360-180)&&l<s*e)?(o=-r[1]*ob)<Rb&&(Rb=o):(t<Rb&&(Rb=t),t>Tb&&(Tb=t)),u?e<Pb?Fx(Nb,e)>Fx(Nb,Bb)&&(Bb=e):Fx(e,Bb)>Fx(Nb,Bb)&&(Nb=e):Bb>=Nb?(e<Nb&&(Nb=e),e>Bb&&(Bb=e)):e>Pb?Fx(Nb,e)>Fx(Nb,Bb)&&(Bb=e):Fx(e,Bb)>Fx(Nb,Bb)&&(Nb=e)}else Ib.push(Wb=[Nb=e,Bb=e]);t<Rb&&(Rb=t),t>Tb&&(Tb=t),qb=n,Pb=e}function $x(){wx.point=kx}function Dx(){Wb[0]=Nb,Wb[1]=Bb,wx.point=_x,qb=null}function Ax(e,t){if(qb){var n=e-Pb;Ub.add(sb(n)>180?n+(n>0?360:-360):n)}else jb=e,Lb=t;Vb.point(e,t),kx(e,t)}function Sx(){Vb.lineStart()}function Ex(){Ax(jb,Lb),Vb.lineEnd(),sb(Ub)>Zv&&(Nb=-(Bb=180)),Wb[0]=Nb,Wb[1]=Bb,qb=null}function Fx(e,t){return(t-=e)<0?t+360:t}function Cx(e,t){return e[0]-t[0]}function Mx(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}var zx={sphere:_b,point:Ox,lineStart:Rx,lineEnd:Px,polygonStart:function(){zx.lineStart=jx,zx.lineEnd=Lx},polygonEnd:function(){zx.lineStart=Rx,zx.lineEnd=Px}};function Ox(e,t){e*=ab;var n=cb(t*=ab);Nx(n*cb(e),n*gb(e),gb(t))}function Nx(e,t,n){++ox,sx+=(e-sx)/ox,lx+=(t-lx)/ox,ux+=(n-ux)/ox}function Rx(){zx.point=Bx}function Bx(e,t){e*=ab;var n=cb(t*=ab);vx=n*cb(e),bx=n*gb(e),xx=gb(t),zx.point=Tx,Nx(vx,bx,xx)}function Tx(e,t){e*=ab;var n=cb(t*=ab),i=n*cb(e),r=n*gb(e),o=gb(t),a=ub(vb((a=bx*o-xx*r)*a+(a=xx*i-vx*o)*a+(a=vx*r-bx*i)*a),vx*i+bx*r+xx*o);ax+=a,cx+=a*(vx+(vx=i)),fx+=a*(bx+(bx=r)),dx+=a*(xx+(xx=o)),Nx(vx,bx,xx)}function Px(){zx.point=Ox}function jx(){zx.point=qx}function Lx(){Ux(gx,yx),zx.point=Ox}function qx(e,t){gx=e,yx=t,e*=ab,t*=ab,zx.point=Ux;var n=cb(t);vx=n*cb(e),bx=n*gb(e),xx=gb(t),Nx(vx,bx,xx)}function Ux(e,t){e*=ab;var n=cb(t*=ab),i=n*cb(e),r=n*gb(e),o=gb(t),a=bx*o-xx*r,s=xx*i-vx*o,l=vx*r-bx*i,u=hb(a,s,l),c=wb(u),f=u&&-c/u;hx.add(f*a),px.add(f*s),mx.add(f*l),ax+=c,cx+=c*(vx+(vx=i)),fx+=c*(bx+(bx=r)),dx+=c*(xx+(xx=o)),Nx(vx,bx,xx)}function Ix(e,t){function n(n,i){return n=e(n,i),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,i){return(n=t.invert(n,i))&&e.invert(n[0],n[1])}),n}function Wx(e,t){return sb(e)>tb&&(e-=Math.round(e/rb)*rb),[e,t]}function Hx(e,t,n){return(e%=rb)?t||n?Ix(Vx(e),Yx(t,n)):Vx(e):t||n?Yx(t,n):Wx}function Gx(e){return function(t,n){return sb(t+=e)>tb&&(t-=Math.round(t/rb)*rb),[t,n]}}function Vx(e){var t=Gx(e);return t.invert=Gx(-e),t}function Yx(e,t){var n=cb(e),i=gb(e),r=cb(t),o=gb(t);function a(e,t){var a=cb(t),s=cb(e)*a,l=gb(e)*a,u=gb(t),c=u*n+s*i;return[ub(l*r-c*o,s*n-u*i),wb(c*r+l*o)]}return a.invert=function(e,t){var a=cb(t),s=cb(e)*a,l=gb(e)*a,u=gb(t),c=u*r-l*o;return[ub(l*r+u*o,s*n+c*i),wb(c*n-s*i)]},a}function Xx(e,t){(t=Zb(t))[0]-=e,rx(t);var n=xb(-t[1]);return((-t[2]<0?-n:n)+rb-Zv)%rb}function Jx(){var e,t=[];return{point:function(t,n,i){e.push([t,n,i])},lineStart:function(){t.push(e=[])},lineEnd:_b,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Qx(e,t){return sb(e[0]-t[0])<Zv&&sb(e[1]-t[1])<Zv}function Kx(e,t,n,i){this.x=e,this.z=t,this.o=n,this.e=i,this.v=!1,this.n=this.p=null}function Zx(e,t,n,i,r){var o,a,s=[],l=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,n,i=e[0],a=e[t];if(Qx(i,a)){if(!i[2]&&!a[2]){for(r.lineStart(),o=0;o<t;++o)r.point((i=e[o])[0],i[1]);return void r.lineEnd()}a[0]+=2e-6}s.push(n=new Kx(i,e,null,!0)),l.push(n.o=new Kx(i,null,n,!1)),s.push(n=new Kx(a,e,null,!1)),l.push(n.o=new Kx(a,null,n,!0))}})),s.length){for(l.sort(t),ew(s),ew(l),o=0,a=l.length;o<a;++o)l[o].e=n=!n;for(var u,c,f=s[0];;){for(var d=f,h=!0;d.v;)if((d=d.n)===f)return;u=d.z,r.lineStart();do{if(d.v=d.o.v=!0,d.e){if(h)for(o=0,a=u.length;o<a;++o)r.point((c=u[o])[0],c[1]);else i(d.x,d.n.x,1,r);d=d.n}else{if(h)for(u=d.p.z,o=u.length-1;o>=0;--o)r.point((c=u[o])[0],c[1]);else i(d.x,d.p.x,-1,r);d=d.p}u=(d=d.o).z,h=!h}while(!d.v);r.lineEnd()}}}function ew(e){if(t=e.length){for(var t,n,i=0,r=e[0];++i<t;)r.n=n=e[i],n.p=r,r=n;r.n=n=e[0],n.p=r}}function tw(e){return sb(e[0])<=tb?e[0]:yb(e[0])*((sb(e[0])+tb)%rb-tb)}function nw(e,t,n,i){return function(r){var o,a,s,l=t(r),u=Jx(),c=t(u),f=!1,d={point:h,lineStart:m,lineEnd:g,polygonStart:function(){d.point=y,d.lineStart=v,d.lineEnd=b,a=[],o=[]},polygonEnd:function(){d.point=h,d.lineStart=m,d.lineEnd=g,a=oi(a);var e=function(e,t){var n=tw(t),i=t[1],r=gb(i),o=[gb(n),-cb(n),0],a=0,s=0,l=new Kn;1===r?i=nb+Zv:-1===r&&(i=-nb-Zv);for(var u=0,c=e.length;u<c;++u)if(d=(f=e[u]).length)for(var f,d,h=f[d-1],p=tw(h),m=h[1]/2+ib,g=gb(m),y=cb(m),v=0;v<d;++v,p=x,g=_,y=k,h=b){var b=f[v],x=tw(b),w=b[1]/2+ib,_=gb(w),k=cb(w),$=x-p,D=$>=0?1:-1,A=D*$,S=A>tb,E=g*_;if(l.add(ub(E*D*gb(A),y*k+E*cb(A))),a+=S?$+D*rb:$,S^p>=n^x>=n){var F=tx(Zb(h),Zb(b));rx(F);var C=tx(o,F);rx(C);var M=(S^$>=0?-1:1)*wb(C[2]);(i>M||i===M&&(F[0]||F[1]))&&(s+=S^$>=0?1:-1)}}return(a<-1e-6||a<Zv&&l<-1e-12)^1&s}(o,i);a.length?(f||(r.polygonStart(),f=!0),Zx(a,rw,e,n,r)):e&&(f||(r.polygonStart(),f=!0),r.lineStart(),n(null,null,1,r),r.lineEnd()),f&&(r.polygonEnd(),f=!1),a=o=null},sphere:function(){r.polygonStart(),r.lineStart(),n(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function h(t,n){e(t,n)&&r.point(t,n)}function p(e,t){l.point(e,t)}function m(){d.point=p,l.lineStart()}function g(){d.point=h,l.lineEnd()}function y(e,t){s.push([e,t]),c.point(e,t)}function v(){c.lineStart(),s=[]}function b(){y(s[0][0],s[0][1]),c.lineEnd();var e,t,n,i,l=c.clean(),d=u.result(),h=d.length;if(s.pop(),o.push(s),s=null,h)if(1&l){if((t=(n=d[0]).length-1)>0){for(f||(r.polygonStart(),f=!0),r.lineStart(),e=0;e<t;++e)r.point((i=n[e])[0],i[1]);r.lineEnd()}}else h>1&&2&l&&d.push(d.pop().concat(d.shift())),a.push(d.filter(iw))}return d}}function iw(e){return e.length>1}function rw(e,t){return((e=e.x)[0]<0?e[1]-nb-Zv:nb-e[1])-((t=t.x)[0]<0?t[1]-nb-Zv:nb-t[1])}Wx.invert=Wx;const ow=nw((function(){return!0}),(function(e){var t,n=NaN,i=NaN,r=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(o,a){var s=o>0?tb:-tb,l=sb(o-n);sb(l-tb)<Zv?(e.point(n,i=(i+a)/2>0?nb:-nb),e.point(r,i),e.lineEnd(),e.lineStart(),e.point(s,i),e.point(o,i),t=0):r!==s&&l>=tb&&(sb(n-r)<Zv&&(n-=r*Zv),sb(o-s)<Zv&&(o-=s*Zv),i=function(e,t,n,i){var r,o,a=gb(e-n);return sb(a)>Zv?lb((gb(t)*(o=cb(i))*gb(n)-gb(i)*(r=cb(t))*gb(e))/(r*o*a)):(t+i)/2}(n,i,o,a),e.point(r,i),e.lineEnd(),e.lineStart(),e.point(s,i),t=0),e.point(n=o,i=a),r=s},lineEnd:function(){e.lineEnd(),n=i=NaN},clean:function(){return 2-t}}}),(function(e,t,n,i){var r;if(null==e)r=n*nb,i.point(-tb,r),i.point(0,r),i.point(tb,r),i.point(tb,0),i.point(tb,-r),i.point(0,-r),i.point(-tb,-r),i.point(-tb,0),i.point(-tb,r);else if(sb(e[0]-t[0])>Zv){var o=e[0]<t[0]?tb:-tb;r=n*o/2,i.point(-o,r),i.point(0,r),i.point(o,r)}else i.point(t[0],t[1])}),[-tb,-nb]);function aw(e){var t=cb(e),n=2*ab,i=t>0,r=sb(t)>Zv;function o(e,n){return cb(e)*cb(n)>t}function a(e,n,i){var r=[1,0,0],o=tx(Zb(e),Zb(n)),a=ex(o,o),s=o[0],l=a-s*s;if(!l)return!i&&e;var u=t*a/l,c=-t*s/l,f=tx(r,o),d=ix(r,u);nx(d,ix(o,c));var h=f,p=ex(d,h),m=ex(h,h),g=p*p-m*(ex(d,d)-1);if(!(g<0)){var y=vb(g),v=ix(h,(-p-y)/m);if(nx(v,d),v=Kb(v),!i)return v;var b,x=e[0],w=n[0],_=e[1],k=n[1];w<x&&(b=x,x=w,w=b);var $=w-x,D=sb($-tb)<Zv;if(!D&&k<_&&(b=_,_=k,k=b),D||$<Zv?D?_+k>0^v[1]<(sb(v[0]-x)<Zv?_:k):_<=v[1]&&v[1]<=k:$>tb^(x<=v[0]&&v[0]<=w)){var A=ix(h,(-p+y)/m);return nx(A,d),[v,Kb(A)]}}}function s(t,n){var r=i?e:tb-e,o=0;return t<-r?o|=1:t>r&&(o|=2),n<-r?o|=4:n>r&&(o|=8),o}return nw(o,(function(e){var t,n,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(f,d){var h,p=[f,d],m=o(f,d),g=i?m?0:s(f,d):m?s(f+(f<0?tb:-tb),d):0;if(!t&&(u=l=m)&&e.lineStart(),m!==l&&(!(h=a(t,p))||Qx(t,h)||Qx(p,h))&&(p[2]=1),m!==l)c=0,m?(e.lineStart(),h=a(p,t),e.point(h[0],h[1])):(h=a(t,p),e.point(h[0],h[1],2),e.lineEnd()),t=h;else if(r&&t&&i^m){var y;g&n||!(y=a(p,t,!0))||(c=0,i?(e.lineStart(),e.point(y[0][0],y[0][1]),e.point(y[1][0],y[1][1]),e.lineEnd()):(e.point(y[1][0],y[1][1]),e.lineEnd(),e.lineStart(),e.point(y[0][0],y[0][1],3)))}!m||t&&Qx(t,p)||e.point(p[0],p[1]),t=p,l=m,n=g},lineEnd:function(){l&&e.lineEnd(),t=null},clean:function(){return c|(u&&l)<<1}}}),(function(t,i,r,o){!function(e,t,n,i,r,o){if(n){var a=cb(t),s=gb(t),l=i*n;null==r?(r=t+i*rb,o=t-l/2):(r=Xx(a,r),o=Xx(a,o),(i>0?r<o:r>o)&&(r+=i*rb));for(var u,c=r;i>0?c>o:c<o;c-=l)u=Kb([a,-s*cb(c),-s*gb(c)]),e.point(u[0],u[1])}}(o,e,n,r,t,i)}),i?[0,-e]:[-tb,e-tb])}var sw=1e9,lw=-1e9;function uw(e,t,n,i){function r(r,o){return e<=r&&r<=n&&t<=o&&o<=i}function o(r,o,s,u){var c=0,f=0;if(null==r||(c=a(r,s))!==(f=a(o,s))||l(r,o)<0^s>0)do{u.point(0===c||3===c?e:n,c>1?i:t)}while((c=(c+s+4)%4)!==f);else u.point(o[0],o[1])}function a(i,r){return sb(i[0]-e)<Zv?r>0?0:3:sb(i[0]-n)<Zv?r>0?2:1:sb(i[1]-t)<Zv?r>0?1:0:r>0?3:2}function s(e,t){return l(e.x,t.x)}function l(e,t){var n=a(e,1),i=a(t,1);return n!==i?n-i:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(a){var l,u,c,f,d,h,p,m,g,y,v,b=a,x=Jx(),w={point:_,lineStart:function(){w.point=k,u&&u.push(c=[]);y=!0,g=!1,p=m=NaN},lineEnd:function(){l&&(k(f,d),h&&g&&x.rejoin(),l.push(x.result()));w.point=_,g&&b.lineEnd()},polygonStart:function(){b=x,l=[],u=[],v=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,r=u.length;n<r;++n)for(var o,a,s=u[n],l=1,c=s.length,f=s[0],d=f[0],h=f[1];l<c;++l)o=d,a=h,d=(f=s[l])[0],h=f[1],a<=i?h>i&&(d-o)*(i-a)>(h-a)*(e-o)&&++t:h<=i&&(d-o)*(i-a)<(h-a)*(e-o)&&--t;return t}(),n=v&&t,r=(l=oi(l)).length;(n||r)&&(a.polygonStart(),n&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),r&&Zx(l,s,t,o,a),a.polygonEnd());b=a,l=u=c=null}};function _(e,t){r(e,t)&&b.point(e,t)}function k(o,a){var s=r(o,a);if(u&&c.push([o,a]),y)f=o,d=a,h=s,y=!1,s&&(b.lineStart(),b.point(o,a));else if(s&&g)b.point(o,a);else{var l=[p=Math.max(lw,Math.min(sw,p)),m=Math.max(lw,Math.min(sw,m))],x=[o=Math.max(lw,Math.min(sw,o)),a=Math.max(lw,Math.min(sw,a))];!function(e,t,n,i,r,o){var a,s=e[0],l=e[1],u=0,c=1,f=t[0]-s,d=t[1]-l;if(a=n-s,f||!(a>0)){if(a/=f,f<0){if(a<u)return;a<c&&(c=a)}else if(f>0){if(a>c)return;a>u&&(u=a)}if(a=r-s,f||!(a<0)){if(a/=f,f<0){if(a>c)return;a>u&&(u=a)}else if(f>0){if(a<u)return;a<c&&(c=a)}if(a=i-l,d||!(a>0)){if(a/=d,d<0){if(a<u)return;a<c&&(c=a)}else if(d>0){if(a>c)return;a>u&&(u=a)}if(a=o-l,d||!(a<0)){if(a/=d,d<0){if(a>c)return;a>u&&(u=a)}else if(d>0){if(a<u)return;a<c&&(c=a)}return u>0&&(e[0]=s+u*f,e[1]=l+u*d),c<1&&(t[0]=s+c*f,t[1]=l+c*d),!0}}}}}(l,x,e,t,n,i)?s&&(b.lineStart(),b.point(o,a),v=!1):(g||(b.lineStart(),b.point(l[0],l[1])),b.point(x[0],x[1]),s||b.lineEnd(),v=!1)}p=o,m=a,g=s}return w}}function cw(e,t,n){var i=Ht(e,t-Zv,n).concat(t);return function(e){return i.map((function(t){return[e,t]}))}}function fw(e,t,n){var i=Ht(e,t-Zv,n).concat(t);return function(e){return i.map((function(t){return[t,e]}))}}const dw=e=>e;var hw,pw,mw,gw,yw=new Kn,vw=new Kn,bw={point:_b,lineStart:_b,lineEnd:_b,polygonStart:function(){bw.lineStart=xw,bw.lineEnd=kw},polygonEnd:function(){bw.lineStart=bw.lineEnd=bw.point=_b,yw.add(sb(vw)),vw=new Kn},result:function(){var e=yw/2;return yw=new Kn,e}};function xw(){bw.point=ww}function ww(e,t){bw.point=_w,hw=mw=e,pw=gw=t}function _w(e,t){vw.add(gw*e-mw*t),mw=e,gw=t}function kw(){_w(hw,pw)}var $w=1/0,Dw=$w,Aw=-$w,Sw=Aw,Ew={point:function(e,t){e<$w&&($w=e);e>Aw&&(Aw=e);t<Dw&&(Dw=t);t>Sw&&(Sw=t)},lineStart:_b,lineEnd:_b,polygonStart:_b,polygonEnd:_b,result:function(){var e=[[$w,Dw],[Aw,Sw]];return Aw=Sw=-(Dw=$w=1/0),e}};var Fw,Cw,Mw,zw,Ow=0,Nw=0,Rw=0,Bw=0,Tw=0,Pw=0,jw=0,Lw=0,qw=0,Uw={point:Iw,lineStart:Ww,lineEnd:Vw,polygonStart:function(){Uw.lineStart=Yw,Uw.lineEnd=Xw},polygonEnd:function(){Uw.point=Iw,Uw.lineStart=Ww,Uw.lineEnd=Vw},result:function(){var e=qw?[jw/qw,Lw/qw]:Pw?[Bw/Pw,Tw/Pw]:Rw?[Ow/Rw,Nw/Rw]:[NaN,NaN];return Ow=Nw=Rw=Bw=Tw=Pw=jw=Lw=qw=0,e}};function Iw(e,t){Ow+=e,Nw+=t,++Rw}function Ww(){Uw.point=Hw}function Hw(e,t){Uw.point=Gw,Iw(Mw=e,zw=t)}function Gw(e,t){var n=e-Mw,i=t-zw,r=vb(n*n+i*i);Bw+=r*(Mw+e)/2,Tw+=r*(zw+t)/2,Pw+=r,Iw(Mw=e,zw=t)}function Vw(){Uw.point=Iw}function Yw(){Uw.point=Jw}function Xw(){Qw(Fw,Cw)}function Jw(e,t){Uw.point=Qw,Iw(Fw=Mw=e,Cw=zw=t)}function Qw(e,t){var n=e-Mw,i=t-zw,r=vb(n*n+i*i);Bw+=r*(Mw+e)/2,Tw+=r*(zw+t)/2,Pw+=r,jw+=(r=zw*e-Mw*t)*(Mw+e),Lw+=r*(zw+t),qw+=3*r,Iw(Mw=e,zw=t)}function Kw(e){this._context=e}Kw.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,rb)}},result:_b};var Zw,e_,t_,n_,i_,r_=new Kn,o_={point:_b,lineStart:function(){o_.point=a_},lineEnd:function(){Zw&&s_(e_,t_),o_.point=_b},polygonStart:function(){Zw=!0},polygonEnd:function(){Zw=null},result:function(){var e=+r_;return r_=new Kn,e}};function a_(e,t){o_.point=s_,e_=n_=e,t_=i_=t}function s_(e,t){n_-=e,i_-=t,r_.add(vb(n_*n_+i_*i_)),n_=e,i_=t}let l_,u_,c_,f_;class d_{constructor(e){this._append=null==e?h_:function(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return h_;if(t!==l_){const e=10**t;l_=t,u_=function(t){let n=1;this._+=t[0];for(const i=t.length;n<i;++n)this._+=Math.round(arguments[n]*e)/e+t[n]}}return u_}(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(e,t){switch(this._point){case 0:this._append`M${e},${t}`,this._point=1;break;case 1:this._append`L${e},${t}`;break;default:if(this._append`M${e},${t}`,this._radius!==c_||this._append!==u_){const e=this._radius,t=this._;this._="",this._append`m0,${e}a${e},${e} 0 1,1 0,${-2*e}a${e},${e} 0 1,1 0,${2*e}z`,c_=e,u_=this._append,f_=this._,this._=t}this._+=f_}}result(){const e=this._;return this._="",e.length?e:null}}function h_(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function p_(e,t){let n,i,r=3,o=4.5;function a(e){return e&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),Eb(e,n(i))),i.result()}return a.area=function(e){return Eb(e,n(bw)),bw.result()},a.measure=function(e){return Eb(e,n(o_)),o_.result()},a.bounds=function(e){return Eb(e,n(Ew)),Ew.result()},a.centroid=function(e){return Eb(e,n(Uw)),Uw.result()},a.projection=function(t){return arguments.length?(n=null==t?(e=null,dw):(e=t).stream,a):e},a.context=function(e){return arguments.length?(i=null==e?(t=null,new d_(r)):new Kw(t=e),"function"!=typeof o&&i.pointRadius(o),a):t},a.pointRadius=function(e){return arguments.length?(o="function"==typeof e?e:(i.pointRadius(+e),+e),a):o},a.digits=function(e){if(!arguments.length)return r;if(null==e)r=null;else{const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);r=t}return null===t&&(i=new d_(r)),a},a.projection(e).digits(r).context(t)}function m_(e){return function(t){var n=new g_;for(var i in e)n[i]=e[i];return n.stream=t,n}}function g_(){}function y_(e,t,n){var i=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=i&&e.clipExtent(null),Eb(n,e.stream(Ew)),t(Ew.result()),null!=i&&e.clipExtent(i),e}function v_(e,t,n){return y_(e,(function(n){var i=t[1][0]-t[0][0],r=t[1][1]-t[0][1],o=Math.min(i/(n[1][0]-n[0][0]),r/(n[1][1]-n[0][1])),a=+t[0][0]+(i-o*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(r-o*(n[1][1]+n[0][1]))/2;e.scale(150*o).translate([a,s])}),n)}function b_(e,t,n){return v_(e,[[0,0],t],n)}function x_(e,t,n){return y_(e,(function(n){var i=+t,r=i/(n[1][0]-n[0][0]),o=(i-r*(n[1][0]+n[0][0]))/2,a=-r*n[0][1];e.scale(150*r).translate([o,a])}),n)}function w_(e,t,n){return y_(e,(function(n){var i=+t,r=i/(n[1][1]-n[0][1]),o=-r*n[0][0],a=(i-r*(n[1][1]+n[0][1]))/2;e.scale(150*r).translate([o,a])}),n)}g_.prototype={constructor:g_,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var __=cb(30*ab);function k_(e,t){return+t?function(e,t){function n(i,r,o,a,s,l,u,c,f,d,h,p,m,g){var y=u-i,v=c-r,b=y*y+v*v;if(b>4*t&&m--){var x=a+d,w=s+h,_=l+p,k=vb(x*x+w*w+_*_),$=wb(_/=k),D=sb(sb(_)-1)<Zv||sb(o-f)<Zv?(o+f)/2:ub(w,x),A=e(D,$),S=A[0],E=A[1],F=S-i,C=E-r,M=v*F-y*C;(M*M/b>t||sb((y*F+v*C)/b-.5)>.3||a*d+s*h+l*p<__)&&(n(i,r,o,a,s,l,S,E,D,x/=k,w/=k,_,m,g),g.point(S,E),n(S,E,D,x,w,_,u,c,f,d,h,p,m,g))}}return function(t){var i,r,o,a,s,l,u,c,f,d,h,p,m={point:g,lineStart:y,lineEnd:b,polygonStart:function(){t.polygonStart(),m.lineStart=x},polygonEnd:function(){t.polygonEnd(),m.lineStart=y}};function g(n,i){n=e(n,i),t.point(n[0],n[1])}function y(){c=NaN,m.point=v,t.lineStart()}function v(i,r){var o=Zb([i,r]),a=e(i,r);n(c,f,u,d,h,p,c=a[0],f=a[1],u=i,d=o[0],h=o[1],p=o[2],16,t),t.point(c,f)}function b(){m.point=g,t.lineEnd()}function x(){y(),m.point=w,m.lineEnd=_}function w(e,t){v(i=e,t),r=c,o=f,a=d,s=h,l=p,m.point=v}function _(){n(c,f,u,d,h,p,r,o,i,a,s,l,16,t),m.lineEnd=b,b()}return m}}(e,t):function(e){return m_({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}(e)}var $_=m_({point:function(e,t){this.stream.point(e*ab,t*ab)}});function D_(e,t,n,i,r,o){if(!o)return function(e,t,n,i,r){function o(o,a){return[t+e*(o*=i),n-e*(a*=r)]}return o.invert=function(o,a){return[(o-t)/e*i,(n-a)/e*r]},o}(e,t,n,i,r);var a=cb(o),s=gb(o),l=a*e,u=s*e,c=a/e,f=s/e,d=(s*n-a*t)/e,h=(s*t+a*n)/e;function p(e,o){return[l*(e*=i)-u*(o*=r)+t,n-u*e-l*o]}return p.invert=function(e,t){return[i*(c*e-f*t+d),r*(h-f*e-c*t)]},p}function A_(e){return S_((function(){return e}))()}function S_(e){var t,n,i,r,o,a,s,l,u,c,f=150,d=480,h=250,p=0,m=0,g=0,y=0,v=0,b=0,x=1,w=1,_=null,k=ow,$=null,D=dw,A=.5;function S(e){return l(e[0]*ab,e[1]*ab)}function E(e){return(e=l.invert(e[0],e[1]))&&[e[0]*ob,e[1]*ob]}function F(){var e=D_(f,0,0,x,w,b).apply(null,t(p,m)),i=D_(f,d-e[0],h-e[1],x,w,b);return n=Hx(g,y,v),s=Ix(t,i),l=Ix(n,s),a=k_(s,A),C()}function C(){return u=c=null,S}return S.stream=function(e){return u&&c===e?u:u=$_(function(e){return m_({point:function(t,n){var i=e(t,n);return this.stream.point(i[0],i[1])}})}(n)(k(a(D(c=e)))))},S.preclip=function(e){return arguments.length?(k=e,_=void 0,C()):k},S.postclip=function(e){return arguments.length?(D=e,$=i=r=o=null,C()):D},S.clipAngle=function(e){return arguments.length?(k=+e?aw(_=e*ab):(_=null,ow),C()):_*ob},S.clipExtent=function(e){return arguments.length?(D=null==e?($=i=r=o=null,dw):uw($=+e[0][0],i=+e[0][1],r=+e[1][0],o=+e[1][1]),C()):null==$?null:[[$,i],[r,o]]},S.scale=function(e){return arguments.length?(f=+e,F()):f},S.translate=function(e){return arguments.length?(d=+e[0],h=+e[1],F()):[d,h]},S.center=function(e){return arguments.length?(p=e[0]%360*ab,m=e[1]%360*ab,F()):[p*ob,m*ob]},S.rotate=function(e){return arguments.length?(g=e[0]%360*ab,y=e[1]%360*ab,v=e.length>2?e[2]%360*ab:0,F()):[g*ob,y*ob,v*ob]},S.angle=function(e){return arguments.length?(b=e%360*ab,F()):b*ob},S.reflectX=function(e){return arguments.length?(x=e?-1:1,F()):x<0},S.reflectY=function(e){return arguments.length?(w=e?-1:1,F()):w<0},S.precision=function(e){return arguments.length?(a=k_(s,A=e*e),C()):vb(A)},S.fitExtent=function(e,t){return v_(S,e,t)},S.fitSize=function(e,t){return b_(S,e,t)},S.fitWidth=function(e,t){return x_(S,e,t)},S.fitHeight=function(e,t){return w_(S,e,t)},function(){return t=e.apply(this,arguments),S.invert=t.invert&&E,F()}}function E_(e){var t=0,n=tb/3,i=S_(e),r=i(t,n);return r.parallels=function(e){return arguments.length?i(t=e[0]*ab,n=e[1]*ab):[t*ob,n*ob]},r}function F_(e,t){var n=gb(e),i=(n+gb(t))/2;if(sb(i)<Zv)return function(e){var t=cb(e);function n(e,n){return[e*t,gb(n)/t]}return n.invert=function(e,n){return[e/t,wb(n*t)]},n}(e);var r=1+n*(2*i-n),o=vb(r)/i;function a(e,t){var n=vb(r-2*i*gb(t))/i;return[n*gb(e*=i),o-n*cb(e)]}return a.invert=function(e,t){var n=o-t,a=ub(e,sb(n))*yb(n);return n*i<0&&(a-=tb*yb(e)*yb(n)),[a/i,wb((r-(e*e+n*n)*i*i)/(2*i))]},a}function C_(){return E_(F_).scale(155.424).center([0,33.6442])}function M_(){return C_().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function z_(e){return function(t,n){var i=cb(t),r=cb(n),o=e(i*r);return o===1/0?[2,0]:[o*r*gb(t),o*gb(n)]}}function O_(e){return function(t,n){var i=vb(t*t+n*n),r=e(i),o=gb(r),a=cb(r);return[ub(t*o,i*a),wb(i&&n*o/i)]}}var N_=z_((function(e){return vb(2/(1+e))}));N_.invert=O_((function(e){return 2*wb(e/2)}));var R_=z_((function(e){return(e=xb(e))&&e/gb(e)}));function B_(e,t){return[e,pb(bb((nb+t)/2))]}function T_(e){var t,n,i,r=A_(e),o=r.center,a=r.scale,s=r.translate,l=r.clipExtent,u=null;function c(){var o=tb*a(),s=r(function(e){function t(t){return(t=e(t[0]*ab,t[1]*ab))[0]*=ob,t[1]*=ob,t}return e=Hx(e[0]*ab,e[1]*ab,e.length>2?e[2]*ab:0),t.invert=function(t){return(t=e.invert(t[0]*ab,t[1]*ab))[0]*=ob,t[1]*=ob,t},t}(r.rotate()).invert([0,0]));return l(null==u?[[s[0]-o,s[1]-o],[s[0]+o,s[1]+o]]:e===B_?[[Math.max(s[0]-o,u),t],[Math.min(s[0]+o,n),i]]:[[u,Math.max(s[1]-o,t)],[n,Math.min(s[1]+o,i)]])}return r.scale=function(e){return arguments.length?(a(e),c()):a()},r.translate=function(e){return arguments.length?(s(e),c()):s()},r.center=function(e){return arguments.length?(o(e),c()):o()},r.clipExtent=function(e){return arguments.length?(null==e?u=t=n=i=null:(u=+e[0][0],t=+e[0][1],n=+e[1][0],i=+e[1][1]),c()):null==u?null:[[u,t],[n,i]]},c()}function P_(e){return bb((nb+e)/2)}function j_(e,t){var n=cb(e),i=e===t?gb(e):pb(n/cb(t))/pb(P_(t)/P_(e)),r=n*mb(P_(e),i)/i;if(!i)return B_;function o(e,t){r>0?t<-nb+Zv&&(t=-nb+Zv):t>nb-Zv&&(t=nb-Zv);var n=r/mb(P_(t),i);return[n*gb(i*e),r-n*cb(i*e)]}return o.invert=function(e,t){var n=r-t,o=yb(i)*vb(e*e+n*n),a=ub(e,sb(n))*yb(n);return n*i<0&&(a-=tb*yb(e)*yb(n)),[a/i,2*lb(mb(r/o,1/i))-nb]},o}function L_(e,t){return[e,t]}function q_(e,t){var n=cb(e),i=e===t?gb(e):(n-cb(t))/(t-e),r=n/i+e;if(sb(i)<Zv)return L_;function o(e,t){var n=r-t,o=i*e;return[n*gb(o),r-n*cb(o)]}return o.invert=function(e,t){var n=r-t,o=ub(e,sb(n))*yb(n);return n*i<0&&(o-=tb*yb(e)*yb(n)),[o/i,r-yb(i)*vb(e*e+n*n)]},o}R_.invert=O_((function(e){return e})),B_.invert=function(e,t){return[e,2*lb(db(t))-nb]},L_.invert=L_;var U_=1.340264,I_=-.081106,W_=893e-6,H_=.003796,G_=vb(3)/2;function V_(e,t){var n=wb(G_*gb(t)),i=n*n,r=i*i*i;return[e*cb(n)/(G_*(U_+3*I_*i+r*(7*W_+9*H_*i))),n*(U_+I_*i+r*(W_+H_*i))]}function Y_(e,t){var n=cb(t),i=cb(e)*n;return[n*gb(e)/i,gb(t)/i]}function X_(e,t){var n=t*t,i=n*n;return[e*(.8707-.131979*n+i*(i*(.003971*n-.001529*i)-.013791)),t*(1.007226+n*(.015085+i*(.028874*n-.044475-.005916*i)))]}function J_(e,t){return[cb(t)*gb(e),gb(t)]}function Q_(e,t){var n=cb(t),i=1+cb(e)*n;return[n*gb(e)/i,gb(t)/i]}function K_(e,t){return[pb(bb((nb+t)/2)),-e]}V_.invert=function(e,t){for(var n,i=t,r=i*i,o=r*r*r,a=0;a<12&&(o=(r=(i-=n=(i*(U_+I_*r+o*(W_+H_*r))-t)/(U_+3*I_*r+o*(7*W_+9*H_*r)))*i)*r*r,!(sb(n)<eb));++a);return[G_*e*(U_+3*I_*r+o*(7*W_+9*H_*r))/cb(i),wb(gb(i)/G_)]},Y_.invert=O_(lb),X_.invert=function(e,t){var n,i=t,r=25;do{var o=i*i,a=o*o;i-=n=(i*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-t)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(sb(n)>Zv&&--r>0);return[e/(.8707+(o=i*i)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),i]},J_.invert=O_(wb),Q_.invert=O_((function(e){return 2*lb(e)})),K_.invert=function(e,t){return[-t,2*lb(db(e))-nb]};var Z_,ek=Math.abs,tk=Math.cos,nk=Math.sin,ik=Math.PI,rk=ik/2,ok=(Z_=2)>0?Math.sqrt(Z_):0;function ak(e){return e>1?rk:e<-1?-rk:Math.asin(e)}function sk(e,t){var n,i=e*nk(t),r=30;do{t-=n=(t+nk(t)-i)/(1+tk(t))}while(ek(n)>1e-6&&--r>0);return t/2}var lk=function(e,t,n){function i(i,r){return[e*i*tk(r=sk(n,r)),t*nk(r)]}return i.invert=function(i,r){return r=ak(r/t),[i/(e*tk(r)),ak((2*r+nk(2*r))/n)]},i}(ok/rk,ok,ik);const uk=p_(),ck=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function fk(e,t){if(!e||"string"!=typeof e)throw new Error("Projection type must be a name string.");return e=e.toLowerCase(),arguments.length>1?(hk[e]=function(e,t){return function n(){const i=t();return i.type=e,i.path=p_().projection(i),i.copy=i.copy||function(){const e=n();return ck.forEach((t=>{i[t]&&e[t](i[t]())})),e.path.pointRadius(i.path.pointRadius()),e},Of(i)}}(e,t),this):hk[e]||null}function dk(e){return e&&e.path||uk}const hk={albers:M_,albersusa:function(){var e,t,n,i,r,o,a=M_(),s=C_().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=C_().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(e,t){o=[e,t]}};function c(e){var t=e[0],a=e[1];return o=null,n.point(t,a),o||(i.point(t,a),o)||(r.point(t,a),o)}function f(){return e=t=null,c}return c.invert=function(e){var t=a.scale(),n=a.translate(),i=(e[0]-n[0])/t,r=(e[1]-n[1])/t;return(r>=.12&&r<.234&&i>=-.425&&i<-.214?s:r>=.166&&r<.234&&i>=-.214&&i<-.115?l:a).invert(e)},c.stream=function(n){return e&&t===n?e:(i=[a.stream(t=n),s.stream(n),l.stream(n)],r=i.length,e={point:function(e,t){for(var n=-1;++n<r;)i[n].point(e,t)},sphere:function(){for(var e=-1;++e<r;)i[e].sphere()},lineStart:function(){for(var e=-1;++e<r;)i[e].lineStart()},lineEnd:function(){for(var e=-1;++e<r;)i[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<r;)i[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<r;)i[e].polygonEnd()}});var i,r},c.precision=function(e){return arguments.length?(a.precision(e),s.precision(e),l.precision(e),f()):a.precision()},c.scale=function(e){return arguments.length?(a.scale(e),s.scale(.35*e),l.scale(e),c.translate(a.translate())):a.scale()},c.translate=function(e){if(!arguments.length)return a.translate();var t=a.scale(),o=+e[0],c=+e[1];return n=a.translate(e).clipExtent([[o-.455*t,c-.238*t],[o+.455*t,c+.238*t]]).stream(u),i=s.translate([o-.307*t,c+.201*t]).clipExtent([[o-.425*t+Zv,c+.12*t+Zv],[o-.214*t-Zv,c+.234*t-Zv]]).stream(u),r=l.translate([o-.205*t,c+.212*t]).clipExtent([[o-.214*t+Zv,c+.166*t+Zv],[o-.115*t-Zv,c+.234*t-Zv]]).stream(u),f()},c.fitExtent=function(e,t){return v_(c,e,t)},c.fitSize=function(e,t){return b_(c,e,t)},c.fitWidth=function(e,t){return x_(c,e,t)},c.fitHeight=function(e,t){return w_(c,e,t)},c.scale(1070)},azimuthalequalarea:function(){return A_(N_).scale(124.75).clipAngle(179.999)},azimuthalequidistant:function(){return A_(R_).scale(79.4188).clipAngle(179.999)},conicconformal:function(){return E_(j_).scale(109.5).parallels([30,30])},conicequalarea:C_,conicequidistant:function(){return E_(q_).scale(131.154).center([0,13.9389])},equalEarth:function(){return A_(V_).scale(177.158)},equirectangular:function(){return A_(L_).scale(152.63)},gnomonic:function(){return A_(Y_).scale(144.049).clipAngle(60)},identity:function(){var e,t,n,i,r,o,a,s=1,l=0,u=0,c=1,f=1,d=0,h=null,p=1,m=1,g=m_({point:function(e,t){var n=b([e,t]);this.stream.point(n[0],n[1])}}),y=dw;function v(){return p=s*c,m=s*f,o=a=null,b}function b(n){var i=n[0]*p,r=n[1]*m;if(d){var o=r*e-i*t;i=i*e+r*t,r=o}return[i+l,r+u]}return b.invert=function(n){var i=n[0]-l,r=n[1]-u;if(d){var o=r*e+i*t;i=i*e-r*t,r=o}return[i/p,r/m]},b.stream=function(e){return o&&a===e?o:o=g(y(a=e))},b.postclip=function(e){return arguments.length?(y=e,h=n=i=r=null,v()):y},b.clipExtent=function(e){return arguments.length?(y=null==e?(h=n=i=r=null,dw):uw(h=+e[0][0],n=+e[0][1],i=+e[1][0],r=+e[1][1]),v()):null==h?null:[[h,n],[i,r]]},b.scale=function(e){return arguments.length?(s=+e,v()):s},b.translate=function(e){return arguments.length?(l=+e[0],u=+e[1],v()):[l,u]},b.angle=function(n){return arguments.length?(t=gb(d=n%360*ab),e=cb(d),v()):d*ob},b.reflectX=function(e){return arguments.length?(c=e?-1:1,v()):c<0},b.reflectY=function(e){return arguments.length?(f=e?-1:1,v()):f<0},b.fitExtent=function(e,t){return v_(b,e,t)},b.fitSize=function(e,t){return b_(b,e,t)},b.fitWidth=function(e,t){return x_(b,e,t)},b.fitHeight=function(e,t){return w_(b,e,t)},b},mercator:function(){return T_(B_).scale(961/rb)},mollweide:function(){return A_(lk).scale(169.529)},naturalEarth1:function(){return A_(X_).scale(175.295)},orthographic:function(){return A_(J_).scale(249.5).clipAngle(90.000001)},stereographic:function(){return A_(Q_).scale(250).clipAngle(142)},transversemercator:function(){var e=T_(K_),t=e.center,n=e.rotate;return e.center=function(e){return arguments.length?t([-e[1],e[0]]):[(e=t())[1],-e[0]]},e.rotate=function(e){return arguments.length?n([e[0],e[1],e.length>2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90]).scale(159.155)}};for(const BG in hk)fk(BG,hk[BG]);function pk(){}const mk=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function gk(){var e=1,t=1,n=a;function i(e,t){return t.map((t=>r(e,t)))}function r(i,r){var a=[],s=[];return function(n,i,r){var a,s,l,u,c,f,d=[],h=[];a=s=-1,u=n[0]>=i,mk[u<<1].forEach(p);for(;++a<e-1;)l=u,u=n[a+1]>=i,mk[l|u<<1].forEach(p);mk[u|0].forEach(p);for(;++s<t-1;){for(a=-1,u=n[s*e+e]>=i,c=n[s*e]>=i,mk[u<<1|c<<2].forEach(p);++a<e-1;)l=u,u=n[s*e+e+a+1]>=i,f=c,c=n[s*e+a+1]>=i,mk[l|u<<1|c<<2|f<<3].forEach(p);mk[u|c<<3].forEach(p)}a=-1,c=n[s*e]>=i,mk[c<<2].forEach(p);for(;++a<e-1;)f=c,c=n[s*e+a+1]>=i,mk[c<<2|f<<3].forEach(p);function p(e){var t,n,i=[e[0][0]+a,e[0][1]+s],l=[e[1][0]+a,e[1][1]+s],u=o(i),c=o(l);(t=h[u])?(n=d[c])?(delete h[t.end],delete d[n.start],t===n?(t.ring.push(l),r(t.ring)):d[t.start]=h[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete h[t.end],t.ring.push(l),h[t.end=c]=t):(t=d[c])?(n=h[u])?(delete d[t.start],delete h[n.end],t===n?(t.ring.push(l),r(t.ring)):d[n.start]=h[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete d[t.start],t.ring.unshift(i),d[t.start=u]=t):d[u]=h[c]={start:u,end:c,ring:[i,l]}}mk[c<<3].forEach(p)}(i,r,(e=>{n(e,i,r),function(e){var t=0,n=e.length,i=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];for(;++t<n;)i+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return i}(e)>0?a.push([e]):s.push(e)})),s.forEach((e=>{for(var t,n=0,i=a.length;n<i;++n)if(-1!==yk((t=a[n])[0],e))return void t.push(e)})),{type:"MultiPolygon",value:r,coordinates:a}}function o(t){return 2*t[0]+t[1]*(e+1)*4}function a(n,i,r){n.forEach((n=>{var o,a=n[0],s=n[1],l=0|a,u=0|s,c=i[u*e+l];a>0&&a<e&&l===a&&(o=i[u*e+l-1],n[0]=a+(r-o)/(c-o)-.5),s>0&&s<t&&u===s&&(o=i[(u-1)*e+l],n[1]=s+(r-o)/(c-o)-.5)}))}return i.contour=r,i.size=function(n){if(!arguments.length)return[e,t];var r=Math.floor(n[0]),o=Math.floor(n[1]);return r>=0&&o>=0||v("invalid size"),e=r,t=o,i},i.smooth=function(e){return arguments.length?(n=e?a:pk,i):n===a},i}function yk(e,t){for(var n,i=-1,r=t.length;++i<r;)if(n=vk(e,t[i]))return n;return 0}function vk(e,t){for(var n=t[0],i=t[1],r=-1,o=0,a=e.length,s=a-1;o<a;s=o++){var l=e[o],u=l[0],c=l[1],f=e[s],d=f[0],h=f[1];if(bk(l,f,t))return 0;c>i!=h>i&&n<(d-u)*(i-c)/(h-c)+u&&(r=-r)}return r}function bk(e,t,n){var i,r,o,a;return function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])==(n[0]-e[0])*(t[1]-e[1])}(e,t,n)&&(r=e[i=+(e[0]===t[0])],o=n[i],a=t[i],r<=o&&o<=a||a<=o&&o<=r)}function xk(e,t,n){return function(i){var r=M(i),o=n?Math.min(r[0],0):r[0],a=r[1],s=a-o,l=t?me(o,a,e):s/(e+1);return Ht(o+l,a,l)}}function wk(e){tl.call(this,null,e)}function _k(e,t,n,i,r){const o=e.x1||0,a=e.y1||0,s=t*n<0;function l(e){e.forEach(u)}function u(e){s&&e.reverse(),e.forEach(c)}function c(e){e[0]=(e[0]-o)*t+i,e[1]=(e[1]-a)*n+r}return function(e){return e.coordinates.forEach(l),e}}function kk(e,t,n){const i=e>=0?e:ll(t,n);return Math.round((Math.sqrt(4*i*i+1)-1)/2)}function $k(e){return m(e)?e:g(+e)}function Dk(){var e=e=>e[0],t=e=>e[1],n=ce,i=[-1,-1],r=960,o=500,a=2;function s(s,l){const u=kk(i[0],s,e)>>a,c=kk(i[1],s,t)>>a,f=u?u+2:0,d=c?c+2:0,h=2*f+(r>>a),p=2*d+(o>>a),m=new Float32Array(h*p),g=new Float32Array(h*p);let y=m;s.forEach((i=>{const r=f+(+e(i)>>a),o=d+(+t(i)>>a);r>=0&&r<h&&o>=0&&o<p&&(m[r+o*h]+=+n(i))})),u>0&&c>0?(Ak(h,p,m,g,u),Sk(h,p,g,m,c),Ak(h,p,m,g,u),Sk(h,p,g,m,c),Ak(h,p,m,g,u),Sk(h,p,g,m,c)):u>0?(Ak(h,p,m,g,u),Ak(h,p,g,m,u),Ak(h,p,m,g,u),y=g):c>0&&(Sk(h,p,m,g,c),Sk(h,p,g,m,c),Sk(h,p,m,g,c),y=g);const v=l?Math.pow(2,-2*a):1/ai(y);for(let e=0,t=h*p;e<t;++e)y[e]*=v;return{values:y,scale:1<<a,width:h,height:p,x1:f,y1:d,x2:f+(r>>a),y2:d+(o>>a)}}return s.x=function(t){return arguments.length?(e=$k(t),s):e},s.y=function(e){return arguments.length?(t=$k(e),s):t},s.weight=function(e){return arguments.length?(n=$k(e),s):n},s.size=function(e){if(!arguments.length)return[r,o];var t=+e[0],n=+e[1];return t>=0&&n>=0||v("invalid size"),r=t,o=n,s},s.cellSize=function(e){return arguments.length?((e=+e)>=1||v("invalid cell size"),a=Math.floor(Math.log(e)/Math.LN2),s):1<<a},s.bandwidth=function(e){return arguments.length?(1===(e=c(e)).length&&(e=[+e[0],+e[0]]),2!==e.length&&v("invalid bandwidth"),i=e,s):i},s}function Ak(e,t,n,i,r){const o=1+(r<<1);for(let a=0;a<t;++a)for(let t=0,s=0;t<e+r;++t)t<e&&(s+=n[t+a*e]),t>=r&&(t>=o&&(s-=n[t-o+a*e]),i[t-r+a*e]=s/Math.min(t+1,e-1+o-t,o))}function Sk(e,t,n,i,r){const o=1+(r<<1);for(let a=0;a<e;++a)for(let s=0,l=0;s<t+r;++s)s<t&&(l+=n[a+s*e]),s>=r&&(s>=o&&(l-=n[a+(s-o)*e]),i[a+(s-r)*e]=l/Math.min(s+1,t-1+o-s,o))}function Ek(e){tl.call(this,null,e)}wk.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},_(wk,tl,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=t.materialize(t.SOURCE).source,o=e.field||y,a=gk().smooth(!1!==e.smooth),s=e.thresholds||function(e,t,n){const i=xk(n.levels||10,n.nice,!1!==n.zero);return"shared"!==n.resolve?i:i(e.map((e=>gt(t(e).values))))}(r,o,e),l=null===e.as?null:e.as||"contour",c=[];return r.forEach((t=>{const i=o(t),r=a.size([i.width,i.height])(i.values,u(s)?s:s(i.values));!function(e,t,i,r){let o=r.scale||t.scale,a=r.translate||t.translate;m(o)&&(o=o(i,r));m(a)&&(a=a(i,r));if((1===o||null==o)&&!a)return;const s=(n(o)?o:o[0])||1,l=(n(o)?o:o[1])||1,u=a&&a[0]||0,c=a&&a[1]||0;e.forEach(_k(t,s,l,u,c))}(r,i,t,e),r.forEach((e=>{c.push(As(t,$s(null!=l?{[l]:e}:e)))}))})),this.value&&(i.rem=this.value),this.value=i.source=i.add=c,i}}),Ek.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const Fk=["x","y","weight","size","cellSize","bandwidth"];function Ck(e,t){return Fk.forEach((n=>null!=t[n]?e[n](t[n]):0)),e}function Mk(e){tl.call(this,null,e)}_(Ek,tl,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=function(e,t){var n,i,r,o,a,s,l=[],u=e=>e(o);if(null==t)l.push(e);else for(n={},i=0,r=e.length;i<r;++i)o=e[i],(s=n[a=t.map(u)])||(n[a]=s=[],s.dims=a,l.push(s)),s.push(o);return l}(t.materialize(t.SOURCE).source,e.groupby),o=(e.groupby||[]).map(S),a=Ck(Dk(),e),s=e.as||"grid";return n=r.map((t=>$s(function(e,t){for(let n=0;n<o.length;++n)e[o[n]]=t[n];return e}({[s]:a(t,e.counts)},t.dims)))),this.value&&(i.rem=this.value),this.value=i.source=i.add=n,i}}),Mk.Definition={type:"Contour",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"values",type:"number",array:!0},{name:"x",type:"field"},{name:"y",type:"field"},{name:"weight",type:"field"},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number"},{name:"count",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0},{name:"smooth",type:"boolean",default:!0}]},_(Mk,tl,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n,i,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),o=gk().smooth(!1!==e.smooth),a=e.values,s=e.thresholds||xk(e.count||10,e.nice,!!a),l=e.size;return a||(a=t.materialize(t.SOURCE).source,i=_k(n=Ck(Dk(),e)(a,!0),n.scale||1,n.scale||1,0,0),l=[n.width,n.height],a=n.values),s=u(s)?s:s(a),a=o.size(l)(a,s),i&&a.forEach(i),this.value&&(r.rem=this.value),this.value=r.source=r.add=(a||[]).map($s),r}});const zk="Feature",Ok="FeatureCollection";function Nk(e){tl.call(this,null,e)}function Rk(e){tl.call(this,null,e)}function Bk(e){tl.call(this,null,e)}function Tk(e){tl.call(this,null,e)}function Pk(e){tl.call(this,[],e),this.generator=function(){var e,t,n,i,r,o,a,s,l,u,c,f,d=10,h=d,p=90,m=360,g=2.5;function y(){return{type:"MultiLineString",coordinates:v()}}function v(){return Ht(fb(i/p)*p,n,p).map(c).concat(Ht(fb(s/m)*m,a,m).map(f)).concat(Ht(fb(t/d)*d,e,d).filter((function(e){return sb(e%p)>Zv})).map(l)).concat(Ht(fb(o/h)*h,r,h).filter((function(e){return sb(e%m)>Zv})).map(u))}return y.lines=function(){return v().map((function(e){return{type:"LineString",coordinates:e}}))},y.outline=function(){return{type:"Polygon",coordinates:[c(i).concat(f(a).slice(1),c(n).reverse().slice(1),f(s).reverse().slice(1))]}},y.extent=function(e){return arguments.length?y.extentMajor(e).extentMinor(e):y.extentMinor()},y.extentMajor=function(e){return arguments.length?(i=+e[0][0],n=+e[1][0],s=+e[0][1],a=+e[1][1],i>n&&(e=i,i=n,n=e),s>a&&(e=s,s=a,a=e),y.precision(g)):[[i,s],[n,a]]},y.extentMinor=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],o=+n[0][1],r=+n[1][1],t>e&&(n=t,t=e,e=n),o>r&&(n=o,o=r,r=n),y.precision(g)):[[t,o],[e,r]]},y.step=function(e){return arguments.length?y.stepMajor(e).stepMinor(e):y.stepMinor()},y.stepMajor=function(e){return arguments.length?(p=+e[0],m=+e[1],y):[p,m]},y.stepMinor=function(e){return arguments.length?(d=+e[0],h=+e[1],y):[d,h]},y.precision=function(d){return arguments.length?(g=+d,l=cw(o,r,90),u=fw(t,e,g),c=cw(s,a,90),f=fw(i,n,g),y):g},y.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}()}function jk(e){tl.call(this,null,e)}function Lk(e){if(!m(e))return!1;const t=se(E(e));return t.$x||t.$y||t.$value||t.$max}function qk(e){tl.call(this,null,e),this.modified(!0)}function Uk(e,t,n){m(e[t])&&e[t](n)}Nk.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},_(Nk,tl,{transform(e,t){var n,i=this._features,r=this._points,o=e.fields,a=o&&o[0],s=o&&o[1],l=e.geojson||!o&&y,u=t.ADD;n=e.modified()||t.changed(t.REM)||t.modified(E(l))||a&&t.modified(E(a))||s&&t.modified(E(s)),this.value&&!n||(u=t.SOURCE,this._features=i=[],this._points=r=[]),l&&t.visit(u,(e=>i.push(l(e)))),a&&s&&(t.visit(u,(e=>{var t=a(e),n=s(e);null!=t&&null!=n&&(t=+t)===t&&(n=+n)===n&&r.push([t,n])})),i=i.concat({type:zk,geometry:{type:"MultiPoint",coordinates:r}})),this.value={type:Ok,features:i}}}),Rk.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},_(Rk,tl,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.field||y,o=e.as||"path",a=n.SOURCE;!i||e.modified()?(this.value=i=dk(e.projection),n.materialize().reflow()):a=r===y||t.modified(r.fields)?n.ADD_MOD:n.ADD;const s=function(e,t){const n=e.pointRadius();e.context(null),null!=t&&e.pointRadius(t);return n}(i,e.pointRadius);return n.visit(a,(e=>e[o]=i(r(e)))),i.pointRadius(s),n.modifies(o)}}),Bk.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},_(Bk,tl,{transform(e,t){var n,i=e.projection,r=e.fields[0],o=e.fields[1],a=e.as||["x","y"],s=a[0],l=a[1];function u(e){const t=i([r(e),o(e)]);t?(e[s]=t[0],e[l]=t[1]):(e[s]=void 0,e[l]=void 0)}return e.modified()?t=t.materialize().reflow(!0).visit(t.SOURCE,u):(n=t.modified(r.fields)||t.modified(o.fields),t.visit(n?t.ADD_MOD:t.ADD,u)),t.modifies(a)}}),Tk.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},_(Tk,tl,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.as||"shape",o=n.ADD;return i&&!e.modified()||(this.value=i=function(e,t,n){const i=null==n?n=>e(t(n)):i=>{var r=e.pointRadius(),o=e.pointRadius(n)(t(i));return e.pointRadius(r),o};return i.context=t=>(e.context(t),i),i}(dk(e.projection),e.field||q("datum"),e.pointRadius),n.materialize().reflow(),o=n.SOURCE),n.visit(o,(e=>e[r]=i)),n.modifies(r)}}),Pk.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},_(Pk,tl,{transform(e,t){var n,i=this.value,r=this.generator;if(!i.length||e.modified())for(const o in e)m(r[o])&&r[o](e[o]);return n=r(),i.length?t.mod.push(Ss(i[0],n)):t.add.push($s(n)),i[0]=n,t}}),jk.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},_(jk,tl,{transform(e,t){if(!t.changed()&&!e.modified())return t.StopPropagation;var n=t.materialize(t.SOURCE).source,i="shared"===e.resolve,r=e.field||y,o=function(e,t){let n;m(e)?(n=n=>e(n,t),n.dep=Lk(e)):e?n=g(e):(n=e=>e.$value/e.$max||0,n.dep=!0);return n}(e.opacity,e),a=function(e,t){let n;m(e)?(n=n=>Un(e(n,t)),n.dep=Lk(e)):n=g(Un(e||"#888"));return n}(e.color,e),s=e.as||"image",l={$x:0,$y:0,$value:0,$max:i?gt(n.map((e=>gt(r(e).values)))):0};return n.forEach((e=>{const t=r(e),n=D({},e,l);i||(n.$max=gt(t.values||[])),e[s]=function(e,t,n,i){const r=e.width,o=e.height,a=e.x1||0,s=e.y1||0,l=e.x2||r,u=e.y2||o,c=e.values,f=c?e=>c[e]:V,d=Ac(l-a,u-s),h=d.getContext("2d"),p=h.getImageData(0,0,l-a,u-s),m=p.data;for(let g=s,y=0;g<u;++g){t.$y=g-s;for(let e=a,o=g*r;e<l;++e,y+=4){t.$x=e-a,t.$value=f(e+o);const r=n(t);m[y+0]=r.r,m[y+1]=r.g,m[y+2]=r.b,m[y+3]=~~(255*i(t))}}return h.putImageData(p,0,0),d}(t,n,a.dep?a:g(a(n)),o.dep?o:g(o(n)))})),t.reflow(!0).modifies(s)}}),_(qk,tl,{transform(e,t){let n=this.value;return!n||e.modified("type")?(this.value=n=function(e){const t=fk((e||"mercator").toLowerCase());t||v("Unrecognized projection type: "+e);return t()}(e.type),ck.forEach((t=>{null!=e[t]&&Uk(n,t,e[t])}))):ck.forEach((t=>{e.modified(t)&&Uk(n,t,e[t])})),null!=e.pointRadius&&n.path.pointRadius(e.pointRadius),e.fit&&function(e,t){const n=function(e){return e=c(e),1===e.length?e[0]:{type:Ok,features:e.reduce(((e,t)=>e.concat(function(e){return e.type===Ok?e.features:c(e).filter((e=>null!=e)).map((e=>e.type===zk?e:{type:zk,geometry:e}))}(t))),[])}}(t.fit);t.extent?e.fitExtent(t.extent,n):t.size&&e.fitSize(t.size,n)}(n,e),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});const Ik=Object.freeze(Object.defineProperty({__proto__:null,contour:Mk,geojson:Nk,geopath:Rk,geopoint:Bk,geoshape:Tk,graticule:Pk,heatmap:jk,isocontour:wk,kde2d:Ek,projection:qk},Symbol.toStringTag,{value:"Module"}));function Wk(e,t,n,i){if(isNaN(t)||isNaN(n))return e;var r,o,a,s,l,u,c,f,d,h=e._root,p={data:i},m=e._x0,g=e._y0,y=e._x1,v=e._y1;if(!h)return e._root=p,e;for(;h.length;)if((u=t>=(o=(m+y)/2))?m=o:y=o,(c=n>=(a=(g+v)/2))?g=a:v=a,r=h,!(h=h[f=c<<1|u]))return r[f]=p,e;if(s=+e._x.call(null,h.data),l=+e._y.call(null,h.data),t===s&&n===l)return p.next=h,r?r[f]=p:e._root=p,e;do{r=r?r[f]=new Array(4):e._root=new Array(4),(u=t>=(o=(m+y)/2))?m=o:y=o,(c=n>=(a=(g+v)/2))?g=a:v=a}while((f=c<<1|u)==(d=(l>=a)<<1|s>=o));return r[d]=h,r[f]=p,e}function Hk(e,t,n,i,r){this.node=e,this.x0=t,this.y0=n,this.x1=i,this.y1=r}function Gk(e){return e[0]}function Vk(e){return e[1]}function Yk(e,t,n){var i=new Xk(null==t?Gk:t,null==n?Vk:n,NaN,NaN,NaN,NaN);return null==e?i:i.addAll(e)}function Xk(e,t,n,i,r,o){this._x=e,this._y=t,this._x0=n,this._y0=i,this._x1=r,this._y1=o,this._root=void 0}function Jk(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var Qk=Yk.prototype=Xk.prototype;function Kk(e){return function(){return e}}function Zk(e){return 1e-6*(e()-.5)}function e$(e){return e.x+e.vx}function t$(e){return e.y+e.vy}function n$(e){return e.index}function i$(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}Qk.copy=function(){var e,t,n=new Xk(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root;if(!i)return n;if(!i.length)return n._root=Jk(i),n;for(e=[{source:i,target:n._root=new Array(4)}];i=e.pop();)for(var r=0;r<4;++r)(t=i.source[r])&&(t.length?e.push({source:t,target:i.target[r]=new Array(4)}):i.target[r]=Jk(t));return n},Qk.add=function(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return Wk(this.cover(t,n),t,n,e)},Qk.addAll=function(e){var t,n,i,r,o=e.length,a=new Array(o),s=new Array(o),l=1/0,u=1/0,c=-1/0,f=-1/0;for(n=0;n<o;++n)isNaN(i=+this._x.call(null,t=e[n]))||isNaN(r=+this._y.call(null,t))||(a[n]=i,s[n]=r,i<l&&(l=i),i>c&&(c=i),r<u&&(u=r),r>f&&(f=r));if(l>c||u>f)return this;for(this.cover(l,u).cover(c,f),n=0;n<o;++n)Wk(this,a[n],s[n],e[n]);return this},Qk.cover=function(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,i=this._y0,r=this._x1,o=this._y1;if(isNaN(n))r=(n=Math.floor(e))+1,o=(i=Math.floor(t))+1;else{for(var a,s,l=r-n||1,u=this._root;n>e||e>=r||i>t||t>=o;)switch(s=(t<i)<<1|e<n,(a=new Array(4))[s]=u,u=a,l*=2,s){case 0:r=n+l,o=i+l;break;case 1:n=r-l,o=i+l;break;case 2:r=n+l,i=o-l;break;case 3:n=r-l,i=o-l}this._root&&this._root.length&&(this._root=u)}return this._x0=n,this._y0=i,this._x1=r,this._y1=o,this},Qk.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},Qk.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},Qk.find=function(e,t,n){var i,r,o,a,s,l,u,c=this._x0,f=this._y0,d=this._x1,h=this._y1,p=[],m=this._root;for(m&&p.push(new Hk(m,c,f,d,h)),null==n?n=1/0:(c=e-n,f=t-n,d=e+n,h=t+n,n*=n);l=p.pop();)if(!(!(m=l.node)||(r=l.x0)>d||(o=l.y0)>h||(a=l.x1)<c||(s=l.y1)<f))if(m.length){var g=(r+a)/2,y=(o+s)/2;p.push(new Hk(m[3],g,y,a,s),new Hk(m[2],r,y,g,s),new Hk(m[1],g,o,a,y),new Hk(m[0],r,o,g,y)),(u=(t>=y)<<1|e>=g)&&(l=p[p.length-1],p[p.length-1]=p[p.length-1-u],p[p.length-1-u]=l)}else{var v=e-+this._x.call(null,m.data),b=t-+this._y.call(null,m.data),x=v*v+b*b;if(x<n){var w=Math.sqrt(n=x);c=e-w,f=t-w,d=e+w,h=t+w,i=m.data}}return i},Qk.remove=function(e){if(isNaN(o=+this._x.call(null,e))||isNaN(a=+this._y.call(null,e)))return this;var t,n,i,r,o,a,s,l,u,c,f,d,h=this._root,p=this._x0,m=this._y0,g=this._x1,y=this._y1;if(!h)return this;if(h.length)for(;;){if((u=o>=(s=(p+g)/2))?p=s:g=s,(c=a>=(l=(m+y)/2))?m=l:y=l,t=h,!(h=h[f=c<<1|u]))return this;if(!h.length)break;(t[f+1&3]||t[f+2&3]||t[f+3&3])&&(n=t,d=f)}for(;h.data!==e;)if(i=h,!(h=h.next))return this;return(r=h.next)&&delete h.next,i?(r?i.next=r:delete i.next,this):t?(r?t[f]=r:delete t[f],(h=t[0]||t[1]||t[2]||t[3])&&h===(t[3]||t[2]||t[1]||t[0])&&!h.length&&(n?n[d]=h:this._root=h),this):(this._root=r,this)},Qk.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},Qk.root=function(){return this._root},Qk.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},Qk.visit=function(e){var t,n,i,r,o,a,s=[],l=this._root;for(l&&s.push(new Hk(l,this._x0,this._y0,this._x1,this._y1));t=s.pop();)if(!e(l=t.node,i=t.x0,r=t.y0,o=t.x1,a=t.y1)&&l.length){var u=(i+o)/2,c=(r+a)/2;(n=l[3])&&s.push(new Hk(n,u,c,o,a)),(n=l[2])&&s.push(new Hk(n,i,c,u,a)),(n=l[1])&&s.push(new Hk(n,u,r,o,c)),(n=l[0])&&s.push(new Hk(n,i,r,u,c))}return this},Qk.visitAfter=function(e){var t,n=[],i=[];for(this._root&&n.push(new Hk(this._root,this._x0,this._y0,this._x1,this._y1));t=n.pop();){var r=t.node;if(r.length){var o,a=t.x0,s=t.y0,l=t.x1,u=t.y1,c=(a+l)/2,f=(s+u)/2;(o=r[0])&&n.push(new Hk(o,a,s,c,f)),(o=r[1])&&n.push(new Hk(o,c,s,l,f)),(o=r[2])&&n.push(new Hk(o,a,f,c,u)),(o=r[3])&&n.push(new Hk(o,c,f,l,u))}i.push(t)}for(;t=i.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},Qk.x=function(e){return arguments.length?(this._x=e,this):this._x},Qk.y=function(e){return arguments.length?(this._y=e,this):this._y};const r$=4294967296;function o$(e){return e.x}function a$(e){return e.y}var s$=Math.PI*(3-Math.sqrt(5));function l$(e){var t,n=1,i=.001,r=1-Math.pow(i,1/300),o=0,a=.6,s=new Map,l=In(f),u=Wn("tick","end"),c=function(){let e=1;return()=>(e=(1664525*e+1013904223)%r$)/r$}();function f(){d(),u.call("tick",t),n<i&&(l.stop(),u.call("end",t))}function d(i){var l,u,c=e.length;void 0===i&&(i=1);for(var f=0;f<i;++f)for(n+=(o-n)*r,s.forEach((function(e){e(n)})),l=0;l<c;++l)null==(u=e[l]).fx?u.x+=u.vx*=a:(u.x=u.fx,u.vx=0),null==u.fy?u.y+=u.vy*=a:(u.y=u.fy,u.vy=0);return t}function h(){for(var t,n=0,i=e.length;n<i;++n){if((t=e[n]).index=n,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var r=10*Math.sqrt(.5+n),o=n*s$;t.x=r*Math.cos(o),t.y=r*Math.sin(o)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function p(t){return t.initialize&&t.initialize(e,c),t}return null==e&&(e=[]),h(),t={tick:d,restart:function(){return l.restart(f),t},stop:function(){return l.stop(),t},nodes:function(n){return arguments.length?(e=n,h(),s.forEach(p),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(i=+e,t):i},alphaDecay:function(e){return arguments.length?(r=+e,t):+r},alphaTarget:function(e){return arguments.length?(o=+e,t):o},velocityDecay:function(e){return arguments.length?(a=1-e,t):1-a},randomSource:function(e){return arguments.length?(c=e,s.forEach(p),t):c},force:function(e,n){return arguments.length>1?(null==n?s.delete(e):s.set(e,p(n)),t):s.get(e)},find:function(t,n,i){var r,o,a,s,l,u=0,c=e.length;for(null==i?i=1/0:i*=i,u=0;u<c;++u)(a=(r=t-(s=e[u]).x)*r+(o=n-s.y)*o)<i&&(l=s,i=a);return l},on:function(e,n){return arguments.length>1?(u.on(e,n),t):u.on(e)}}}const u$={center:function(e,t){var n,i=1;function r(){var r,o,a=n.length,s=0,l=0;for(r=0;r<a;++r)s+=(o=n[r]).x,l+=o.y;for(s=(s/a-e)*i,l=(l/a-t)*i,r=0;r<a;++r)(o=n[r]).x-=s,o.y-=l}return null==e&&(e=0),null==t&&(t=0),r.initialize=function(e){n=e},r.x=function(t){return arguments.length?(e=+t,r):e},r.y=function(e){return arguments.length?(t=+e,r):t},r.strength=function(e){return arguments.length?(i=+e,r):i},r},collide:function(e){var t,n,i,r=1,o=1;function a(){for(var e,a,l,u,c,f,d,h=t.length,p=0;p<o;++p)for(a=Yk(t,e$,t$).visitAfter(s),e=0;e<h;++e)l=t[e],f=n[l.index],d=f*f,u=l.x+l.vx,c=l.y+l.vy,a.visit(m);function m(e,t,n,o,a){var s=e.data,h=e.r,p=f+h;if(!s)return t>u+p||o<u-p||n>c+p||a<c-p;if(s.index>l.index){var m=u-s.x-s.vx,g=c-s.y-s.vy,y=m*m+g*g;y<p*p&&(0===m&&(y+=(m=Zk(i))*m),0===g&&(y+=(g=Zk(i))*g),y=(p-(y=Math.sqrt(y)))/y*r,l.vx+=(m*=y)*(p=(h*=h)/(d+h)),l.vy+=(g*=y)*p,s.vx-=m*(p=1-p),s.vy-=g*p)}}}function s(e){if(e.data)return e.r=n[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function l(){if(t){var i,r,o=t.length;for(n=new Array(o),i=0;i<o;++i)r=t[i],n[r.index]=+e(r,i,t)}}return"function"!=typeof e&&(e=Kk(null==e?1:+e)),a.initialize=function(e,n){t=e,i=n,l()},a.iterations=function(e){return arguments.length?(o=+e,a):o},a.strength=function(e){return arguments.length?(r=+e,a):r},a.radius=function(t){return arguments.length?(e="function"==typeof t?t:Kk(+t),l(),a):e},a},nbody:function(){var e,t,n,i,r,o=Kk(-30),a=1,s=1/0,l=.81;function u(n){var r,o=e.length,a=Yk(e,o$,a$).visitAfter(f);for(i=n,r=0;r<o;++r)t=e[r],a.visit(d)}function c(){if(e){var t,n,i=e.length;for(r=new Array(i),t=0;t<i;++t)n=e[t],r[n.index]=+o(n,t,e)}}function f(e){var t,n,i,o,a,s=0,l=0;if(e.length){for(i=o=a=0;a<4;++a)(t=e[a])&&(n=Math.abs(t.value))&&(s+=t.value,l+=n,i+=n*t.x,o+=n*t.y);e.x=i/l,e.y=o/l}else{(t=e).x=t.data.x,t.y=t.data.y;do{s+=r[t.data.index]}while(t=t.next)}e.value=s}function d(e,o,u,c){if(!e.value)return!0;var f=e.x-t.x,d=e.y-t.y,h=c-o,p=f*f+d*d;if(h*h/l<p)return p<s&&(0===f&&(p+=(f=Zk(n))*f),0===d&&(p+=(d=Zk(n))*d),p<a&&(p=Math.sqrt(a*p)),t.vx+=f*e.value*i/p,t.vy+=d*e.value*i/p),!0;if(!(e.length||p>=s)){(e.data!==t||e.next)&&(0===f&&(p+=(f=Zk(n))*f),0===d&&(p+=(d=Zk(n))*d),p<a&&(p=Math.sqrt(a*p)));do{e.data!==t&&(h=r[e.data.index]*i/p,t.vx+=f*h,t.vy+=d*h)}while(e=e.next)}}return u.initialize=function(t,i){e=t,n=i,c()},u.strength=function(e){return arguments.length?(o="function"==typeof e?e:Kk(+e),c(),u):o},u.distanceMin=function(e){return arguments.length?(a=e*e,u):Math.sqrt(a)},u.distanceMax=function(e){return arguments.length?(s=e*e,u):Math.sqrt(s)},u.theta=function(e){return arguments.length?(l=e*e,u):Math.sqrt(l)},u},link:function(e){var t,n,i,r,o,a,s=n$,l=function(e){return 1/Math.min(r[e.source.index],r[e.target.index])},u=Kk(30),c=1;function f(i){for(var r=0,s=e.length;r<c;++r)for(var l,u,f,d,h,p,m,g=0;g<s;++g)u=(l=e[g]).source,d=(f=l.target).x+f.vx-u.x-u.vx||Zk(a),h=f.y+f.vy-u.y-u.vy||Zk(a),d*=p=((p=Math.sqrt(d*d+h*h))-n[g])/p*i*t[g],h*=p,f.vx-=d*(m=o[g]),f.vy-=h*m,u.vx+=d*(m=1-m),u.vy+=h*m}function d(){if(i){var a,l,u=i.length,c=e.length,f=new Map(i.map(((e,t)=>[s(e,t,i),e])));for(a=0,r=new Array(u);a<c;++a)(l=e[a]).index=a,"object"!=typeof l.source&&(l.source=i$(f,l.source)),"object"!=typeof l.target&&(l.target=i$(f,l.target)),r[l.source.index]=(r[l.source.index]||0)+1,r[l.target.index]=(r[l.target.index]||0)+1;for(a=0,o=new Array(c);a<c;++a)l=e[a],o[a]=r[l.source.index]/(r[l.source.index]+r[l.target.index]);t=new Array(c),h(),n=new Array(c),p()}}function h(){if(i)for(var n=0,r=e.length;n<r;++n)t[n]=+l(e[n],n,e)}function p(){if(i)for(var t=0,r=e.length;t<r;++t)n[t]=+u(e[t],t,e)}return null==e&&(e=[]),f.initialize=function(e,t){i=e,a=t,d()},f.links=function(t){return arguments.length?(e=t,d(),f):e},f.id=function(e){return arguments.length?(s=e,f):s},f.iterations=function(e){return arguments.length?(c=+e,f):c},f.strength=function(e){return arguments.length?(l="function"==typeof e?e:Kk(+e),h(),f):l},f.distance=function(e){return arguments.length?(u="function"==typeof e?e:Kk(+e),p(),f):u},f},x:function(e){var t,n,i,r=Kk(.1);function o(e){for(var r,o=0,a=t.length;o<a;++o)(r=t[o]).vx+=(i[o]-r.x)*n[o]*e}function a(){if(t){var o,a=t.length;for(n=new Array(a),i=new Array(a),o=0;o<a;++o)n[o]=isNaN(i[o]=+e(t[o],o,t))?0:+r(t[o],o,t)}}return"function"!=typeof e&&(e=Kk(null==e?0:+e)),o.initialize=function(e){t=e,a()},o.strength=function(e){return arguments.length?(r="function"==typeof e?e:Kk(+e),a(),o):r},o.x=function(t){return arguments.length?(e="function"==typeof t?t:Kk(+t),a(),o):e},o},y:function(e){var t,n,i,r=Kk(.1);function o(e){for(var r,o=0,a=t.length;o<a;++o)(r=t[o]).vy+=(i[o]-r.y)*n[o]*e}function a(){if(t){var o,a=t.length;for(n=new Array(a),i=new Array(a),o=0;o<a;++o)n[o]=isNaN(i[o]=+e(t[o],o,t))?0:+r(t[o],o,t)}}return"function"!=typeof e&&(e=Kk(null==e?0:+e)),o.initialize=function(e){t=e,a()},o.strength=function(e){return arguments.length?(r="function"==typeof e?e:Kk(+e),a(),o):r},o.y=function(t){return arguments.length?(e="function"==typeof t?t:Kk(+t),a(),o):e},o}},c$="forces",f$=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],d$=["static","iterations"],h$=["x","y","vx","vy"];function p$(e){tl.call(this,null,e)}function m$(e,t,n,i){var r,o,a,s,l=c(t.forces);for(r=0,o=f$.length;r<o;++r)(a=f$[r])!==c$&&t.modified(a)&&e[a](t[a]);for(r=0,o=l.length;r<o;++r)s=c$+r,(a=n||t.modified(c$,r)?y$(l[r]):i&&g$(l[r],i)?e.force(s):null)&&e.force(s,a);for(o=e.numForces||0;r<o;++r)e.force(c$+r,null);return e.numForces=l.length,e}function g$(e,t){var n,i;for(n in e)if(m(i=e[n])&&t.modified(E(i)))return 1;return 0}function y$(e){var n,i;for(i in t(u$,e.force)||v("Unrecognized force: "+e.force),n=u$[e.force](),e)m(n[i])&&v$(n[i],e[i],e);return n}function v$(e,t,n){e(m(t)?e=>t(e,n):t)}p$.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30,expr:!0},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:h$}]},_(p$,tl,{transform(e,t){var n,i,r=this.value,o=t.changed(t.ADD_REM),a=e.modified(f$),s=e.iterations||300;if(r?(o&&(t.modifies("index"),r.nodes(t.source)),(a||t.changed(t.MOD))&&m$(r,e,0,t)):(this.value=r=function(e,t){const n=l$(e),i=n.stop,r=n.restart;let o=!1;return n.stopped=()=>o,n.restart=()=>(o=!1,r()),n.stop=()=>(o=!0,i()),m$(n,t,!0).on("end",(()=>o=!0))}(t.source,e),r.on("tick",(n=t.dataflow,i=this,()=>n.touch(i).run())),e.static||(o=!0,r.tick()),t.modifies("index")),a||o||e.modified(d$)||t.changed()&&e.restart)if(r.alpha(Math.max(r.alpha(),e.alpha||1)).alphaDecay(1-Math.pow(r.alphaMin(),1/s)),e.static)for(r.stop();--s>=0;)r.tick();else if(r.stopped()&&r.restart(),!o)return t.StopPropagation;return this.finish(e,t)},finish(e,t){const n=t.dataflow;for(let s,l=this._argops,u=0,c=l.length;u<c;++u)if(s=l[u],s.name===c$&&"link"===s.op._argval.force)for(var i,r=s.op._argops,o=0,a=r.length;o<a;++o)if("links"===r[o].name&&(i=r[o].op.source)){n.pulse(i,n.changeset().reflow());break}return t.reflow(e.modified()).modifies(h$)}});const b$=Object.freeze(Object.defineProperty({__proto__:null,force:p$},Symbol.toStringTag,{value:"Module"}));function x$(e,t){return e.parent===t.parent?1:2}function w$(e,t){return e+t.x}function _$(e,t){return Math.max(e,t.y)}function k$(e){var t=0,n=e.children,i=n&&n.length;if(i)for(;--i>=0;)t+=n[i].value;else t=1;e.value=t}function $$(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=A$)):void 0===t&&(t=D$);for(var n,i,r,o,a,s=new F$(e),l=[s];n=l.pop();)if((r=t(n.data))&&(a=(r=Array.from(r)).length))for(n.children=r,o=a-1;o>=0;--o)l.push(i=r[o]=new F$(r[o])),i.parent=n,i.depth=n.depth+1;return s.eachBefore(E$)}function D$(e){return e.children}function A$(e){return Array.isArray(e)?e[1]:null}function S$(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function E$(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function F$(e){this.data=e,this.depth=this.height=0,this.parent=null}function C$(e){return null==e?null:M$(e)}function M$(e){if("function"!=typeof e)throw new Error;return e}function z$(){return 0}function O$(e){return function(){return e}}F$.prototype=$$.prototype={constructor:F$,count:function(){return this.eachAfter(k$)},each:function(e,t){let n=-1;for(const i of this)e.call(t,i,++n,this);return this},eachAfter:function(e,t){for(var n,i,r,o=this,a=[o],s=[],l=-1;o=a.pop();)if(s.push(o),n=o.children)for(i=0,r=n.length;i<r;++i)a.push(n[i]);for(;o=s.pop();)e.call(t,o,++l,this);return this},eachBefore:function(e,t){for(var n,i,r=this,o=[r],a=-1;r=o.pop();)if(e.call(t,r,++a,this),n=r.children)for(i=n.length-1;i>=0;--i)o.push(n[i]);return this},find:function(e,t){let n=-1;for(const i of this)if(e.call(t,i,++n,this))return i},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,i=t.children,r=i&&i.length;--r>=0;)n+=i[r].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),i=t.ancestors(),r=null;e=n.pop(),t=i.pop();for(;e===t;)r=e,e=n.pop(),t=i.pop();return r}(t,e),i=[t];t!==n;)t=t.parent,i.push(t);for(var r=i.length;e!==n;)i.splice(r,0,e),e=e.parent;return i},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return $$(this).eachBefore(S$)},[Symbol.iterator]:function*(){var e,t,n,i,r=this,o=[r];do{for(e=o.reverse(),o=[];r=e.pop();)if(yield r,t=r.children)for(n=0,i=t.length;n<i;++n)o.push(t[n])}while(o.length)}};const N$=4294967296;function R$(e,t){var n,i;if(P$(t,e))return[t];for(n=0;n<e.length;++n)if(B$(t,e[n])&&P$(L$(e[n],t),e))return[e[n],t];for(n=0;n<e.length-1;++n)for(i=n+1;i<e.length;++i)if(B$(L$(e[n],e[i]),t)&&B$(L$(e[n],t),e[i])&&B$(L$(e[i],t),e[n])&&P$(q$(e[n],e[i],t),e))return[e[n],e[i],t];throw new Error}function B$(e,t){var n=e.r-t.r,i=t.x-e.x,r=t.y-e.y;return n<0||n*n<i*i+r*r}function T$(e,t){var n=e.r-t.r+1e-9*Math.max(e.r,t.r,1),i=t.x-e.x,r=t.y-e.y;return n>0&&n*n>i*i+r*r}function P$(e,t){for(var n=0;n<t.length;++n)if(!T$(e,t[n]))return!1;return!0}function j$(e){switch(e.length){case 1:return{x:(t=e[0]).x,y:t.y,r:t.r};case 2:return L$(e[0],e[1]);case 3:return q$(e[0],e[1],e[2])}var t}function L$(e,t){var n=e.x,i=e.y,r=e.r,o=t.x,a=t.y,s=t.r,l=o-n,u=a-i,c=s-r,f=Math.sqrt(l*l+u*u);return{x:(n+o+l/f*c)/2,y:(i+a+u/f*c)/2,r:(f+r+s)/2}}function q$(e,t,n){var i=e.x,r=e.y,o=e.r,a=t.x,s=t.y,l=t.r,u=n.x,c=n.y,f=n.r,d=i-a,h=i-u,p=r-s,m=r-c,g=l-o,y=f-o,v=i*i+r*r-o*o,b=v-a*a-s*s+l*l,x=v-u*u-c*c+f*f,w=h*p-d*m,_=(p*x-m*b)/(2*w)-i,k=(m*g-p*y)/w,$=(h*b-d*x)/(2*w)-r,D=(d*y-h*g)/w,A=k*k+D*D-1,S=2*(o+_*k+$*D),E=_*_+$*$-o*o,F=-(Math.abs(A)>1e-6?(S+Math.sqrt(S*S-4*A*E))/(2*A):E/S);return{x:i+_+k*F,y:r+$+D*F,r:F}}function U$(e,t,n){var i,r,o,a,s=e.x-t.x,l=e.y-t.y,u=s*s+l*l;u?(r=t.r+n.r,r*=r,a=e.r+n.r,r>(a*=a)?(i=(u+a-r)/(2*u),o=Math.sqrt(Math.max(0,a/u-i*i)),n.x=e.x-i*s-o*l,n.y=e.y-i*l+o*s):(i=(u+r-a)/(2*u),o=Math.sqrt(Math.max(0,r/u-i*i)),n.x=t.x+i*s-o*l,n.y=t.y+i*l+o*s)):(n.x=t.x+n.r,n.y=t.y)}function I$(e,t){var n=e.r+t.r-1e-6,i=t.x-e.x,r=t.y-e.y;return n>0&&n*n>i*i+r*r}function W$(e){var t=e._,n=e.next._,i=t.r+n.r,r=(t.x*n.r+n.x*t.r)/i,o=(t.y*n.r+n.y*t.r)/i;return r*r+o*o}function H$(e){this._=e,this.next=null,this.previous=null}function G$(e,t){if(!(o=(e=function(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}(e)).length))return 0;var n,i,r,o,a,s,l,u,c,f,d;if((n=e[0]).x=0,n.y=0,!(o>1))return n.r;if(i=e[1],n.x=-i.r,i.x=n.r,i.y=0,!(o>2))return n.r+i.r;U$(i,n,r=e[2]),n=new H$(n),i=new H$(i),r=new H$(r),n.next=r.previous=i,i.next=n.previous=r,r.next=i.previous=n;e:for(l=3;l<o;++l){U$(n._,i._,r=e[l]),r=new H$(r),u=i.next,c=n.previous,f=i._.r,d=n._.r;do{if(f<=d){if(I$(u._,r._)){i=u,n.next=i,i.previous=n,--l;continue e}f+=u._.r,u=u.next}else{if(I$(c._,r._)){(n=c).next=i,i.previous=n,--l;continue e}d+=c._.r,c=c.previous}}while(u!==c.next);for(r.previous=n,r.next=i,n.next=i.previous=i=r,a=W$(n);(r=r.next)!==i;)(s=W$(r))<a&&(n=r,a=s);i=n.next}for(n=[i._],r=i;(r=r.next)!==i;)n.push(r._);for(r=function(e,t){for(var n,i,r=0,o=(e=function(e,t){let n,i,r=e.length;for(;r;)i=t()*r--|0,n=e[r],e[r]=e[i],e[i]=n;return e}(Array.from(e),t)).length,a=[];r<o;)n=e[r],i&&T$(i,n)?++r:(i=j$(a=R$(a,n)),r=0);return i}(n,t),l=0;l<o;++l)(n=e[l]).x-=r.x,n.y-=r.y;return r.r}function V$(e){return Math.sqrt(e.value)}function Y$(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function X$(e,t,n){return function(i){if(r=i.children){var r,o,a,s=r.length,l=e(i)*t||0;if(l)for(o=0;o<s;++o)r[o].r+=l;if(a=G$(r,n),l)for(o=0;o<s;++o)r[o].r-=l;i.r=a+l}}}function J$(e){return function(t){var n=t.parent;t.r*=e,n&&(t.x=n.x+e*t.x,t.y=n.y+e*t.y)}}function Q$(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function K$(e,t,n,i,r){for(var o,a=e.children,s=-1,l=a.length,u=e.value&&(i-t)/e.value;++s<l;)(o=a[s]).y0=n,o.y1=r,o.x0=t,o.x1=t+=o.value*u}var Z$={depth:-1},eD={},tD={};function nD(e){return e.id}function iD(e){return e.parentId}function rD(){var e,t=nD,n=iD;function i(i){var r,o,a,s,l,u,c,f,d=Array.from(i),h=t,p=n,m=new Map;if(null!=e){const t=d.map(((t,n)=>function(e){e=`${e}`;let t=e.length;aD(e,t-1)&&!aD(e,t-2)&&(e=e.slice(0,-1));return"/"===e[0]?e:`/${e}`}(e(t,n,i)))),n=t.map(oD),r=new Set(t).add("");for(const e of n)r.has(e)||(r.add(e),t.push(e),n.push(oD(e)),d.push(tD));h=(e,n)=>t[n],p=(e,t)=>n[t]}for(a=0,r=d.length;a<r;++a)o=d[a],u=d[a]=new F$(o),null!=(c=h(o,a,i))&&(c+="")&&(f=u.id=c,m.set(f,m.has(f)?eD:u)),null!=(c=p(o,a,i))&&(c+="")&&(u.parent=c);for(a=0;a<r;++a)if(c=(u=d[a]).parent){if(!(l=m.get(c)))throw new Error("missing: "+c);if(l===eD)throw new Error("ambiguous: "+c);l.children?l.children.push(u):l.children=[u],u.parent=l}else{if(s)throw new Error("multiple roots");s=u}if(!s)throw new Error("no root");if(null!=e){for(;s.data===tD&&1===s.children.length;)s=s.children[0],--r;for(let e=d.length-1;e>=0&&(u=d[e]).data===tD;--e)u.data=null}if(s.parent=Z$,s.eachBefore((function(e){e.depth=e.parent.depth+1,--r})).eachBefore(E$),s.parent=null,r>0)throw new Error("cycle");return s}return i.id=function(e){return arguments.length?(t=C$(e),i):t},i.parentId=function(e){return arguments.length?(n=C$(e),i):n},i.path=function(t){return arguments.length?(e=C$(t),i):e},i}function oD(e){let t=e.length;if(t<2)return"";for(;--t>1&&!aD(e,t););return e.slice(0,t)}function aD(e,t){if("/"===e[t]){let n=0;for(;t>0&&"\\"===e[--t];)++n;if(!(1&n))return!0}return!1}function sD(e,t){return e.parent===t.parent?1:2}function lD(e){var t=e.children;return t?t[0]:e.t}function uD(e){var t=e.children;return t?t[t.length-1]:e.t}function cD(e,t,n){var i=n/(t.i-e.i);t.c-=i,t.s+=n,e.c+=i,t.z+=n,t.m+=n}function fD(e,t,n){return e.a.parent===t.parent?e.a:n}function dD(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function hD(e,t,n,i,r){for(var o,a=e.children,s=-1,l=a.length,u=e.value&&(r-n)/e.value;++s<l;)(o=a[s]).x0=t,o.x1=i,o.y0=n,o.y1=n+=o.value*u}dD.prototype=Object.create(F$.prototype);var pD=(1+Math.sqrt(5))/2;function mD(e,t,n,i,r,o){for(var a,s,l,u,c,f,d,h,p,m,g,y=[],v=t.children,b=0,x=0,w=v.length,_=t.value;b<w;){l=r-n,u=o-i;do{c=v[x++].value}while(!c&&x<w);for(f=d=c,g=c*c*(m=Math.max(u/l,l/u)/(_*e)),p=Math.max(d/g,g/f);x<w;++x){if(c+=s=v[x].value,s<f&&(f=s),s>d&&(d=s),g=c*c*m,(h=Math.max(d/g,g/f))>p){c-=s;break}p=h}y.push(a={value:c,dice:l<u,children:v.slice(b,x)}),a.dice?K$(a,n,i,r,_?i+=u*c/_:o):hD(a,n,i,_?n+=l*c/_:r,o),_-=c,b=x}return y}const gD=function e(t){function n(e,n,i,r,o){mD(t,e,n,i,r,o)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(pD);const yD=function e(t){function n(e,n,i,r,o){if((a=e._squarify)&&a.ratio===t)for(var a,s,l,u,c,f=-1,d=a.length,h=e.value;++f<d;){for(l=(s=a[f]).children,u=s.value=0,c=l.length;u<c;++u)s.value+=l[u].value;s.dice?K$(s,n,i,r,h?i+=(o-i)*s.value/h:o):hD(s,n,i,h?n+=(r-n)*s.value/h:r,o),h-=s.value}else e._squarify=a=mD(t,e,n,i,r,o),a.ratio=t}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(pD);function vD(e,t,n){const i={};return e.each((e=>{const r=e.data;n(r)&&(i[t(r)]=e)})),e.lookup=i,e}function bD(e){tl.call(this,null,e)}bD.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const xD=e=>e.values;function wD(){const e=[],t={entries:e=>i(n(e,0),0),key:n=>(e.push(n),t)};function n(t,i){if(i>=e.length)return t;const r=t.length,o=e[i++],a={},s={};let l,u,c,f=-1;for(;++f<r;)l=o(u=t[f])+"",(c=a[l])?c.push(u):a[l]=[u];for(l in a)s[l]=n(a[l],i);return s}function i(t,n){if(++n>e.length)return t;const r=[];for(const e in t)r.push({key:e,values:i(t[e],n)});return r}return t}function _D(e){tl.call(this,null,e)}_(bD,tl,{transform(e,t){t.source||v("Nest transform requires an upstream data source.");var n=e.generate,i=e.modified(),r=t.clone(),o=this.value;return(!o||i||t.changed())&&(o&&o.each((e=>{e.children&&ws(e.data)&&r.rem.push(e.data)})),this.value=o=$$({values:c(e.keys).reduce(((e,t)=>(e.key(t),e)),wD()).entries(r.source)},xD),n&&o.each((e=>{e.children&&(e=$s(e.data),r.add.push(e),r.source.push(e))})),vD(o,_s,_s)),r.source.root=o,r}});const kD=(e,t)=>e.parent===t.parent?1:2;_(_D,tl,{transform(e,t){t.source&&t.source.root||v(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(e.method),i=this.fields,r=t.source.root,o=e.as||i;e.field?r.sum(e.field):r.count(),e.sort&&r.sort(Es(e.sort,(e=>e.data))),function(e,t,n){for(let i,r=0,o=t.length;r<o;++r)i=t[r],i in n&&e[i](n[i])}(n,this.params,e),n.separation&&n.separation(!1!==e.separation?kD:ce);try{this.value=n(r)}catch(a){v(a)}return r.each((e=>function(e,t,n){const i=e.data,r=t.length-1;for(let o=0;o<r;++o)i[n[o]]=e[t[o]];i[n[r]]=e.children?e.children.length:0}(e,i,o))),t.reflow(e.modified()).modifies(o).modifies("leaf")}});const $D=["x","y","r","depth","children"];function DD(e){_D.call(this,e)}DD.Definition={type:"Pack",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"radius",type:"field",default:null},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:$D.length,default:$D}]},_(DD,_D,{layout:function(){var e=null,t=1,n=1,i=z$;function r(r){const o=function(){let e=1;return()=>(e=(1664525*e+1013904223)%N$)/N$}();return r.x=t/2,r.y=n/2,e?r.eachBefore(Y$(e)).eachAfter(X$(i,.5,o)).eachBefore(J$(1)):r.eachBefore(Y$(V$)).eachAfter(X$(z$,1,o)).eachAfter(X$(i,r.r/Math.min(t,n),o)).eachBefore(J$(Math.min(t,n)/(2*r.r))),r}return r.radius=function(t){return arguments.length?(e=C$(t),r):e},r.size=function(e){return arguments.length?(t=+e[0],n=+e[1],r):[t,n]},r.padding=function(e){return arguments.length?(i="function"==typeof e?e:O$(+e),r):i},r},params:["radius","size","padding"],fields:$D});const AD=["x0","y0","x1","y1","depth","children"];function SD(e){_D.call(this,e)}function ED(e){tl.call(this,null,e)}SD.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:AD.length,default:AD}]},_(SD,_D,{layout:function(){var e=1,t=1,n=0,i=!1;function r(r){var o=r.height+1;return r.x0=r.y0=n,r.x1=e,r.y1=t/o,r.eachBefore(function(e,t){return function(i){i.children&&K$(i,i.x0,e*(i.depth+1)/t,i.x1,e*(i.depth+2)/t);var r=i.x0,o=i.y0,a=i.x1-n,s=i.y1-n;a<r&&(r=a=(r+a)/2),s<o&&(o=s=(o+s)/2),i.x0=r,i.y0=o,i.x1=a,i.y1=s}}(t,o)),i&&r.eachBefore(Q$),r}return r.round=function(e){return arguments.length?(i=!!e,r):i},r.size=function(n){return arguments.length?(e=+n[0],t=+n[1],r):[e,t]},r.padding=function(e){return arguments.length?(n=+e,r):n},r},params:["size","round","padding"],fields:AD}),ED.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},_(ED,tl,{transform(e,t){t.source||v("Stratify transform requires an upstream data source.");let n=this.value;const i=e.modified(),r=t.fork(t.ALL).materialize(t.SOURCE),o=!n||i||t.changed(t.ADD_REM)||t.modified(e.key.fields)||t.modified(e.parentKey.fields);return r.source=r.source.slice(),o&&(n=r.source.length?vD(rD().id(e.key).parentId(e.parentKey)(r.source),e.key,x):vD(rD()([{}]),e.key,e.key)),r.source.root=this.value=n,r}});const FD={tidy:function(){var e=sD,t=1,n=1,i=null;function r(r){var l=function(e){for(var t,n,i,r,o,a=new dD(e,0),s=[a];t=s.pop();)if(i=t._.children)for(t.children=new Array(o=i.length),r=o-1;r>=0;--r)s.push(n=t.children[r]=new dD(i[r],r)),n.parent=t;return(a.parent=new dD(null,0)).children=[a],a}(r);if(l.eachAfter(o),l.parent.m=-l.z,l.eachBefore(a),i)r.eachBefore(s);else{var u=r,c=r,f=r;r.eachBefore((function(e){e.x<u.x&&(u=e),e.x>c.x&&(c=e),e.depth>f.depth&&(f=e)}));var d=u===c?1:e(u,c)/2,h=d-u.x,p=t/(c.x+d+h),m=n/(f.depth||1);r.eachBefore((function(e){e.x=(e.x+h)*p,e.y=e.depth*m}))}return r}function o(t){var n=t.children,i=t.parent.children,r=t.i?i[t.i-1]:null;if(n){!function(e){for(var t,n=0,i=0,r=e.children,o=r.length;--o>=0;)(t=r[o]).z+=n,t.m+=n,n+=t.s+(i+=t.c)}(t);var o=(n[0].z+n[n.length-1].z)/2;r?(t.z=r.z+e(t._,r._),t.m=t.z-o):t.z=o}else r&&(t.z=r.z+e(t._,r._));t.parent.A=function(t,n,i){if(n){for(var r,o=t,a=t,s=n,l=o.parent.children[0],u=o.m,c=a.m,f=s.m,d=l.m;s=uD(s),o=lD(o),s&&o;)l=lD(l),(a=uD(a)).a=t,(r=s.z+f-o.z-u+e(s._,o._))>0&&(cD(fD(s,t,i),t,r),u+=r,c+=r),f+=s.m,u+=o.m,d+=l.m,c+=a.m;s&&!uD(a)&&(a.t=s,a.m+=f-c),o&&!lD(l)&&(l.t=o,l.m+=u-d,i=t)}return i}(t,r,t.parent.A||i[0])}function a(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(e){e.x*=t,e.y=e.depth*n}return r.separation=function(t){return arguments.length?(e=t,r):e},r.size=function(e){return arguments.length?(i=!1,t=+e[0],n=+e[1],r):i?null:[t,n]},r.nodeSize=function(e){return arguments.length?(i=!0,t=+e[0],n=+e[1],r):i?[t,n]:null},r},cluster:function(){var e=x$,t=1,n=1,i=!1;function r(r){var o,a=0;r.eachAfter((function(t){var n=t.children;n?(t.x=function(e){return e.reduce(w$,0)/e.length}(n),t.y=function(e){return 1+e.reduce(_$,0)}(n)):(t.x=o?a+=e(t,o):0,t.y=0,o=t)}));var s=function(e){for(var t;t=e.children;)e=t[0];return e}(r),l=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(r),u=s.x-e(s,l)/2,c=l.x+e(l,s)/2;return r.eachAfter(i?function(e){e.x=(e.x-r.x)*t,e.y=(r.y-e.y)*n}:function(e){e.x=(e.x-u)/(c-u)*t,e.y=(1-(r.y?e.y/r.y:1))*n})}return r.separation=function(t){return arguments.length?(e=t,r):e},r.size=function(e){return arguments.length?(i=!1,t=+e[0],n=+e[1],r):i?null:[t,n]},r.nodeSize=function(e){return arguments.length?(i=!0,t=+e[0],n=+e[1],r):i?[t,n]:null},r}},CD=["x","y","depth","children"];function MD(e){_D.call(this,e)}function zD(e){tl.call(this,[],e)}MD.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:CD.length,default:CD}]},_(MD,_D,{layout(e){const n=e||"tidy";if(t(FD,n))return FD[n]();v("Unrecognized Tree layout method: "+n)},params:["size","nodeSize"],fields:CD}),zD.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},_(zD,tl,{transform(e,t){const n=this.value,i=t.source&&t.source.root,r=t.fork(t.NO_SOURCE),o={};return i||v("TreeLinks transform requires a tree data source."),t.changed(t.ADD_REM)?(r.rem=n,t.visit(t.SOURCE,(e=>o[_s(e)]=1)),i.each((e=>{const t=e.data,n=e.parent&&e.parent.data;n&&o[_s(t)]&&o[_s(n)]&&r.add.push($s({source:n,target:t}))})),this.value=r.add):t.changed(t.MOD)&&(t.visit(t.MOD,(e=>o[_s(e)]=1)),n.forEach((e=>{(o[_s(e.source)]||o[_s(e.target)])&&r.mod.push(e)}))),r}});const OD={binary:function(e,t,n,i,r){var o,a,s=e.children,l=s.length,u=new Array(l+1);for(u[0]=a=o=0;o<l;++o)u[o+1]=a+=s[o].value;!function e(t,n,i,r,o,a,l){if(t>=n-1){var c=s[t];return c.x0=r,c.y0=o,c.x1=a,void(c.y1=l)}var f=u[t],d=i/2+f,h=t+1,p=n-1;for(;h<p;){var m=h+p>>>1;u[m]<d?h=m+1:p=m}d-u[h-1]<u[h]-d&&t+1<h&&--h;var g=u[h]-f,y=i-g;if(a-r>l-o){var v=i?(r*y+a*g)/i:a;e(t,h,g,r,o,v,l),e(h,n,y,v,o,a,l)}else{var b=i?(o*y+l*g)/i:l;e(t,h,g,r,o,a,b),e(h,n,y,r,b,a,l)}}(0,l,e.value,t,n,i,r)},dice:K$,slice:hD,slicedice:function(e,t,n,i,r){(1&e.depth?hD:K$)(e,t,n,i,r)},squarify:gD,resquarify:yD},ND=["x0","y0","x1","y1","depth","children"];function RD(e){_D.call(this,e)}RD.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:ND.length,default:ND}]},_(RD,_D,{layout(){const e=function(){var e=gD,t=!1,n=1,i=1,r=[0],o=z$,a=z$,s=z$,l=z$,u=z$;function c(e){return e.x0=e.y0=0,e.x1=n,e.y1=i,e.eachBefore(f),r=[0],t&&e.eachBefore(Q$),e}function f(t){var n=r[t.depth],i=t.x0+n,c=t.y0+n,f=t.x1-n,d=t.y1-n;f<i&&(i=f=(i+f)/2),d<c&&(c=d=(c+d)/2),t.x0=i,t.y0=c,t.x1=f,t.y1=d,t.children&&(n=r[t.depth+1]=o(t)/2,i+=u(t)-n,c+=a(t)-n,(f-=s(t)-n)<i&&(i=f=(i+f)/2),(d-=l(t)-n)<c&&(c=d=(c+d)/2),e(t,i,c,f,d))}return c.round=function(e){return arguments.length?(t=!!e,c):t},c.size=function(e){return arguments.length?(n=+e[0],i=+e[1],c):[n,i]},c.tile=function(t){return arguments.length?(e=M$(t),c):e},c.padding=function(e){return arguments.length?c.paddingInner(e).paddingOuter(e):c.paddingInner()},c.paddingInner=function(e){return arguments.length?(o="function"==typeof e?e:O$(+e),c):o},c.paddingOuter=function(e){return arguments.length?c.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):c.paddingTop()},c.paddingTop=function(e){return arguments.length?(a="function"==typeof e?e:O$(+e),c):a},c.paddingRight=function(e){return arguments.length?(s="function"==typeof e?e:O$(+e),c):s},c.paddingBottom=function(e){return arguments.length?(l="function"==typeof e?e:O$(+e),c):l},c.paddingLeft=function(e){return arguments.length?(u="function"==typeof e?e:O$(+e),c):u},c}();return e.ratio=t=>{const n=e.tile();n.ratio&&e.tile(n.ratio(t))},e.method=n=>{t(OD,n)?e.tile(OD[n]):v("Unrecognized Treemap layout method: "+n)},e},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:ND});const BD=Object.freeze(Object.defineProperty({__proto__:null,nest:bD,pack:DD,partition:SD,stratify:ED,tree:MD,treelinks:zD,treemap:RD},Symbol.toStringTag,{value:"Module"})),TD=4278190080;function PD(e,t,n){return new Uint32Array(e.getImageData(0,0,t,n).data.buffer)}function jD(e,t,n){if(!t.length)return;const i=t[0].mark.marktype;"group"===i?t.forEach((t=>{t.items.forEach((t=>jD(e,t.items,n)))})):mm[i].draw(e,{items:n?t.map(LD):t})}function LD(e){const t=As(e,{});return t.stroke&&0!==t.strokeOpacity||t.fill&&0!==t.fillOpacity?{...t,strokeOpacity:1,stroke:"#000",fillOpacity:0}:t}const qD=31,UD=new Uint32Array(33),ID=new Uint32Array(33);ID[0]=0,UD[0]=~ID[0];for(let BG=1;BG<=32;++BG)ID[BG]=ID[BG-1]<<1|1,UD[BG]=~ID[BG];function WD(e,t,n){const i=Math.max(1,Math.sqrt(e*t/1e6)),r=~~((e+2*n+i)/i),o=~~((t+2*n+i)/i),a=e=>~~((e+n)/i);return a.invert=e=>e*i-n,a.bitmap=()=>function(e,t){const n=new Uint32Array(~~((e*t+32)/32));function i(e,t){n[e]|=t}function r(e,t){n[e]&=t}return{array:n,get:(t,i)=>{const r=i*e+t;return n[r>>>5]&1<<(r&qD)},set:(t,n)=>{const r=n*e+t;i(r>>>5,1<<(r&qD))},clear:(t,n)=>{const i=n*e+t;r(i>>>5,~(1<<(i&qD)))},getRange:(t,i,r,o)=>{let a,s,l,u,c=o;for(;c>=i;--c)if(a=c*e+t,s=c*e+r,l=a>>>5,u=s>>>5,l===u){if(n[l]&UD[a&qD]&ID[1+(s&qD)])return!0}else{if(n[l]&UD[a&qD])return!0;if(n[u]&ID[1+(s&qD)])return!0;for(let e=l+1;e<u;++e)if(n[e])return!0}return!1},setRange:(t,n,r,o)=>{let a,s,l,u,c;for(;n<=o;++n)if(a=n*e+t,s=n*e+r,l=a>>>5,u=s>>>5,l===u)i(l,UD[a&qD]&ID[1+(s&qD)]);else for(i(l,UD[a&qD]),i(u,ID[1+(s&qD)]),c=l+1;c<u;++c)i(c,4294967295)},clearRange:(t,n,i,o)=>{let a,s,l,u,c;for(;n<=o;++n)if(a=n*e+t,s=n*e+i,l=a>>>5,u=s>>>5,l===u)r(l,ID[a&qD]|UD[1+(s&qD)]);else for(r(l,ID[a&qD]),r(u,UD[1+(s&qD)]),c=l+1;c<u;++c)r(c,0)},outOfBounds:(n,i,r,o)=>n<0||i<0||o>=t||r>=e}}(r,o),a.ratio=i,a.padding=n,a.width=e,a.height=t,a}function HD(e,t,n,i,r,o){let a=n/2;return e-a<0||e+a>r||t-(a=i/2)<0||t+a>o}function GD(e,t,n,i,r,o,a,s){const l=r*o/(2*i),u=e(t-l),c=e(t+l),f=e(n-(o/=2)),d=e(n+o);return a.outOfBounds(u,f,c,d)||a.getRange(u,f,c,d)||s&&s.getRange(u,f,c,d)}const VD=[-1,-1,1,1],YD=[-1,1,-1,1];const XD=["right","center","left"],JD=["bottom","middle","top"];function QD(e,t,n,i,r,o,a,s,l,u,c,f){return!(r.outOfBounds(e,n,t,i)||(f&&o||r).getRange(e,n,t,i))}const KD={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},ZD={naive:function(e,t,n,i){const r=e.width,o=e.height;return function(e){const t=e.datum.datum.items[i].items,n=t.length,a=e.datum.fontSize,s=Jp.width(e.datum,e.datum.text);let l,u,c,f,d,h,p,m=0;for(let i=0;i<n;++i)l=t[i].x,c=t[i].y,u=void 0===t[i].x2?l:t[i].x2,f=void 0===t[i].y2?c:t[i].y2,d=(l+u)/2,h=(c+f)/2,p=Math.abs(u-l+f-c),p>=m&&(m=p,e.x=d,e.y=h);return d=s/2,h=a/2,l=e.x-d,u=e.x+d,c=e.y-h,f=e.y+h,e.align="center",l<0&&u<=r?e.align="left":0<=l&&r<u&&(e.align="right"),e.baseline="middle",c<0&&f<=o?e.baseline="top":0<=c&&o<f&&(e.baseline="bottom"),!0}},"reduced-search":function(e,t,n,i){const r=e.width,o=e.height,a=t[0],s=t[1];function l(t,n,i,l,u){const c=e.invert(t),f=e.invert(n);let d,h=i,p=o;if(!HD(c,f,l,u,r,o)&&!GD(e,c,f,u,l,h,a,s)&&!GD(e,c,f,u,l,u,a,null)){for(;p-h>=1;)d=(h+p)/2,GD(e,c,f,u,l,d,a,s)?p=d:h=d;if(h>i)return[c,f,h,!0]}}return function(t){const s=t.datum.datum.items[i].items,u=s.length,c=t.datum.fontSize,f=Jp.width(t.datum,t.datum.text);let d,h,p,m,g,y,v,b,x,w,_,k,$,D,A,S,E,F=n?c:0,C=!1,M=!1,z=0;for(let i=0;i<u;++i){for(d=s[i].x,p=s[i].y,h=void 0===s[i].x2?d:s[i].x2,m=void 0===s[i].y2?p:s[i].y2,d>h&&(E=d,d=h,h=E),p>m&&(E=p,p=m,m=E),x=e(d),_=e(h),w=~~((x+_)/2),k=e(p),D=e(m),$=~~((k+D)/2),v=w;v>=x;--v)for(b=$;b>=k;--b)S=l(v,b,F,f,c),S&&([t.x,t.y,F,C]=S);for(v=w;v<=_;++v)for(b=$;b<=D;++b)S=l(v,b,F,f,c),S&&([t.x,t.y,F,C]=S);C||n||(A=Math.abs(h-d+m-p),g=(d+h)/2,y=(p+m)/2,A>=z&&!HD(g,y,f,c,r,o)&&!GD(e,g,y,c,f,c,a,null)&&(z=A,t.x=g,t.y=y,M=!0))}return!(!C&&!M)&&(g=f/2,y=c/2,a.setRange(e(t.x-g),e(t.y-y),e(t.x+g),e(t.y+y)),t.align="center",t.baseline="middle",!0)}},floodfill:function(e,t,n,i){const r=e.width,o=e.height,a=t[0],s=t[1],l=e.bitmap();return function(t){const u=t.datum.datum.items[i].items,c=u.length,f=t.datum.fontSize,d=Jp.width(t.datum,t.datum.text),h=[];let p,m,g,y,v,b,x,w,_,k,$,D,A=n?f:0,S=!1,E=!1,F=0;for(let i=0;i<c;++i){for(p=u[i].x,g=u[i].y,m=void 0===u[i].x2?p:u[i].x2,y=void 0===u[i].y2?g:u[i].y2,h.push([e((p+m)/2),e((g+y)/2)]);h.length;)if([x,w]=h.pop(),!(a.get(x,w)||s.get(x,w)||l.get(x,w))){l.set(x,w);for(let e=0;e<4;++e)v=x+VD[e],b=w+YD[e],l.outOfBounds(v,b,v,b)||h.push([v,b]);if(v=e.invert(x),b=e.invert(w),_=A,k=o,!HD(v,b,d,f,r,o)&&!GD(e,v,b,f,d,_,a,s)&&!GD(e,v,b,f,d,f,a,null)){for(;k-_>=1;)$=(_+k)/2,GD(e,v,b,f,d,$,a,s)?k=$:_=$;_>A&&(t.x=v,t.y=b,A=_,S=!0)}}S||n||(D=Math.abs(m-p+y-g),v=(p+m)/2,b=(g+y)/2,D>=F&&!HD(v,b,d,f,r,o)&&!GD(e,v,b,f,d,f,a,null)&&(F=D,t.x=v,t.y=b,E=!0))}return!(!S&&!E)&&(v=d/2,b=f/2,a.setRange(e(t.x-v),e(t.y-b),e(t.x+v),e(t.y+b)),t.align="center",t.baseline="middle",!0)}}};function eA(e,t,n,i,r,o,a,s,l,u,c){if(!e.length)return e;const f=Math.max(i.length,r.length),d=function(e,t){const n=new Float64Array(t),i=e.length;for(let r=0;r<i;++r)n[r]=e[r]||0;for(let r=i;r<t;++r)n[r]=n[i-1];return n}(i,f),h=function(e,t){const n=new Int8Array(t),i=e.length;for(let r=0;r<i;++r)n[r]|=KD[e[r]];for(let r=i;r<t;++r)n[r]=n[i-1];return n}(r,f),p=(x=e[0].datum)&&x.mark&&x.mark.marktype,m="group"===p&&e[0].datum.items[l].marktype,g="area"===m,y=function(e,t,n,i){const r=e=>[e.x,e.x,e.x,e.y,e.y,e.y];return e?"line"===e||"area"===e?e=>r(e.datum):"line"===t?e=>{const t=e.datum.items[i].items;return r(t.length?t["start"===n?0:t.length-1]:{x:NaN,y:NaN})}:e=>{const t=e.datum.bounds;return[t.x1,(t.x1+t.x2)/2,t.x2,t.y1,(t.y1+t.y2)/2,t.y2]}:r}(p,m,s,l),v=null===u||u===1/0,b=g&&"naive"===c;var x;let w=-1,_=-1;const k=e.map((e=>{const t=v?Jp.width(e,e.text):void 0;return w=Math.max(w,t),_=Math.max(_,e.fontSize),{datum:e,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(e),textWidth:t}}));u=null===u||u===1/0?Math.max(w,_)+Math.max(...i):u;const $=WD(t[0],t[1],u);let D;if(!b){n&&k.sort(((e,t)=>n(e.datum,t.datum)));let t=!1;for(let e=0;e<h.length&&!t;++e)t=5===h[e]||d[e]<0;const i=(p&&a||g)&&e.map((e=>e.datum));D=o.length||i?function(e,t,n,i,r){const o=e.width,a=e.height,s=i||r,l=Ac(o,a).getContext("2d"),u=Ac(o,a).getContext("2d"),c=s&&Ac(o,a).getContext("2d");n.forEach((e=>jD(l,e,!1))),jD(u,t,!1),s&&jD(c,t,!0);const f=PD(l,o,a),d=PD(u,o,a),h=s&&PD(c,o,a),p=e.bitmap(),m=s&&e.bitmap();let g,y,v,b,x,w,_,k;for(y=0;y<a;++y)for(g=0;g<o;++g)x=y*o+g,w=f[x]&TD,k=d[x]&TD,_=s&&h[x]&TD,(w||_||k)&&(v=e(g),b=e(y),r||!w&&!k||p.set(v,b),s&&(w||_)&&m.set(v,b));return[p,m]}($,i||[],o,t,g):function(e,t){const n=e.bitmap();return(t||[]).forEach((t=>n.set(e(t.boundary[0]),e(t.boundary[3])))),[n,void 0]}($,a&&k)}const A=g?ZD[c]($,D,a,l):function(e,t,n,i){const r=e.width,o=e.height,a=t[0],s=t[1],l=i.length;return function(t){const u=t.boundary,c=t.datum.fontSize;if(u[2]<0||u[5]<0||u[0]>r||u[3]>o)return!1;let f,d,h,p,m,g,y,v,b,x,w,_,k,$,D,A=t.textWidth??0;for(let r=0;r<l;++r){if(f=(3&n[r])-1,d=(n[r]>>>2&3)-1,h=0===f&&0===d||i[r]<0,p=f&&d?Math.SQRT1_2:1,m=i[r]<0?-1:1,g=u[1+f]+i[r]*f*p,w=u[4+d]+m*c*d/2+i[r]*d*p,v=w-c/2,b=w+c/2,_=e(g),$=e(v),D=e(b),!A){if(!QD(_,_,$,D,a,s,0,0,0,0,0,h))continue;A=Jp.width(t.datum,t.datum.text)}if(x=g+m*A*f/2,g=x-A/2,y=x+A/2,_=e(g),k=e(y),QD(_,k,$,D,a,s,0,0,0,0,0,h))return t.x=f?f*m<0?y:g:x,t.y=d?d*m<0?b:v:w,t.align=XD[f*m+1],t.baseline=JD[d*m+1],a.setRange(_,$,k,D),!0}return!1}}($,D,h,d);return k.forEach((e=>e.opacity=+A(e))),k}const tA=["x","y","opacity","align","baseline"],nA=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function iA(e){tl.call(this,null,e)}iA.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:nA},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:tA.length,default:tA}]},_(iA,tl,{transform(e,t){const n=e.modified();if(!(n||t.changed(t.ADD_REM)||function(n){const i=e[n];return m(i)&&t.modified(i.fields)}("sort")))return;e.size&&2===e.size.length||v("Size parameter should be specified as a [width, height] array.");const i=e.as||tA;return eA(t.materialize(t.SOURCE).source||[],e.size,e.sort,c(null==e.offset?1:e.offset),c(e.anchor||nA),e.avoidMarks||[],!1!==e.avoidBaseMark,e.lineAnchor||"end",e.markIndex||0,void 0===e.padding?0:e.padding,e.method||"naive").forEach((e=>{const t=e.datum;t[i[0]]=e.x,t[i[1]]=e.y,t[i[2]]=e.opacity,t[i[3]]=e.align,t[i[4]]=e.baseline})),t.reflow(n).modifies(i)}});const rA=Object.freeze(Object.defineProperty({__proto__:null,label:iA},Symbol.toStringTag,{value:"Module"}));function oA(e,t){var n,i,r,o,a,s,l=[],u=function(e){return e(o)};if(null==t)l.push(e);else for(n={},i=0,r=e.length;i<r;++i)o=e[i],(s=n[a=t.map(u)])||(n[a]=s=[],s.dims=a,l.push(s)),s.push(o);return l}function aA(e){tl.call(this,null,e)}aA.Definition={type:"Loess",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"bandwidth",type:"number",default:.3},{name:"as",type:"string",array:!0}]},_(aA,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=oA(t.materialize(t.SOURCE).source,e.groupby),r=(e.groupby||[]).map(S),o=r.length,a=e.as||[S(e.x),S(e.y)],s=[];i.forEach((t=>{Hl(t,e.x,e.y,e.bandwidth||.3).forEach((e=>{const n={};for(let i=0;i<o;++i)n[r[i]]=t.dims[i];n[a[0]]=e[0],n[a[1]]=e[1],s.push($s(n))}))})),this.value&&(n.rem=this.value),this.value=n.add=n.source=s}return n}});const sA={constant:Ol,linear:Pl,log:jl,exp:Ll,pow:ql,quad:Ul,poly:Il};function lA(e){tl.call(this,null,e)}lA.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(sA)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]},_(lA,tl,{transform(e,n){const i=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||e.modified()){const r=oA(n.materialize(n.SOURCE).source,e.groupby),o=(e.groupby||[]).map(S),a=e.method||"linear",s=null==e.order?3:e.order,l=((e,t)=>"poly"===e?t:"quad"===e?2:1)(a,s),u=e.as||[S(e.x),S(e.y)],c=sA[a],f=[];let d=e.extent;t(sA,a)||v("Invalid regression method: "+a),null!=d&&"log"===a&&d[0]<=0&&(n.dataflow.warn("Ignoring extent with values <= 0 for log regression."),d=null),r.forEach((t=>{if(t.length<=l)return void n.dataflow.warn("Skipping regression with more parameters than data points.");const i=c(t,e.x,e.y,s);if(e.params)return void f.push($s({keys:t.dims,coef:i.coef,rSquared:i.rSquared}));const r=d||M(t,e.x),h=e=>{const n={};for(let i=0;i<o.length;++i)n[o[i]]=t.dims[i];n[u[0]]=e[0],n[u[1]]=e[1],f.push($s(n))};"linear"===a||"constant"===a?r.forEach((e=>h([e,i.predict(e)]))):Xl(i.predict,r,25,200).forEach(h)})),this.value&&(i.rem=this.value),this.value=i.add=i.source=f}return i}});const uA=Object.freeze(Object.defineProperty({__proto__:null,loess:aA,regression:lA},Symbol.toStringTag,{value:"Module"})),cA=134217729;function fA(e,t,n,i,r){let o,a,s,l,u=t[0],c=i[0],f=0,d=0;c>u==c>-u?(o=u,u=t[++f]):(o=c,c=i[++d]);let h=0;if(f<e&&d<n)for(c>u==c>-u?(a=u+o,s=o-(a-u),u=t[++f]):(a=c+o,s=o-(a-c),c=i[++d]),o=a,0!==s&&(r[h++]=s);f<e&&d<n;)c>u==c>-u?(a=o+u,l=a-o,s=o-(a-l)+(u-l),u=t[++f]):(a=o+c,l=a-o,s=o-(a-l)+(c-l),c=i[++d]),o=a,0!==s&&(r[h++]=s);for(;f<e;)a=o+u,l=a-o,s=o-(a-l)+(u-l),u=t[++f],o=a,0!==s&&(r[h++]=s);for(;d<n;)a=o+c,l=a-o,s=o-(a-l)+(c-l),c=i[++d],o=a,0!==s&&(r[h++]=s);return 0===o&&0!==h||(r[h++]=o),h}function dA(e){return new Float64Array(e)}const hA=dA(4),pA=dA(8),mA=dA(12),gA=dA(16),yA=dA(4);function vA(e,t,n,i,r,o){const a=(t-o)*(n-r),s=(e-r)*(i-o),l=a-s,u=Math.abs(a+s);return Math.abs(l)>=33306690738754716e-32*u?l:-function(e,t,n,i,r,o,a){let s,l,u,c,f,d,h,p,m,g,y,v,b,x,w,_,k,$;const D=e-r,A=n-r,S=t-o,E=i-o;x=D*E,d=cA*D,h=d-(d-D),p=D-h,d=cA*E,m=d-(d-E),g=E-m,w=p*g-(x-h*m-p*m-h*g),_=S*A,d=cA*S,h=d-(d-S),p=S-h,d=cA*A,m=d-(d-A),g=A-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,hA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,hA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,hA[2]=v-($-f)+(y-f),hA[3]=$;let F=function(e,t){let n=t[0];for(let i=1;i<e;i++)n+=t[i];return n}(4,hA),C=22204460492503146e-32*a;if(F>=C||-F>=C)return F;if(f=e-D,s=e-(D+f)+(f-r),f=n-A,u=n-(A+f)+(f-r),f=t-S,l=t-(S+f)+(f-o),f=i-E,c=i-(E+f)+(f-o),0===s&&0===l&&0===u&&0===c)return F;if(C=11093356479670487e-47*a+33306690738754706e-32*Math.abs(F),F+=D*c+E*s-(S*u+A*l),F>=C||-F>=C)return F;x=s*E,d=cA*s,h=d-(d-s),p=s-h,d=cA*E,m=d-(d-E),g=E-m,w=p*g-(x-h*m-p*m-h*g),_=l*A,d=cA*l,h=d-(d-l),p=l-h,d=cA*A,m=d-(d-A),g=A-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,yA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,yA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,yA[2]=v-($-f)+(y-f),yA[3]=$;const M=fA(4,hA,4,yA,pA);x=D*c,d=cA*D,h=d-(d-D),p=D-h,d=cA*c,m=d-(d-c),g=c-m,w=p*g-(x-h*m-p*m-h*g),_=S*u,d=cA*S,h=d-(d-S),p=S-h,d=cA*u,m=d-(d-u),g=u-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,yA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,yA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,yA[2]=v-($-f)+(y-f),yA[3]=$;const z=fA(M,pA,4,yA,mA);x=s*c,d=cA*s,h=d-(d-s),p=s-h,d=cA*c,m=d-(d-c),g=c-m,w=p*g-(x-h*m-p*m-h*g),_=l*u,d=cA*l,h=d-(d-l),p=l-h,d=cA*u,m=d-(d-u),g=u-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,yA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,yA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,yA[2]=v-($-f)+(y-f),yA[3]=$;const O=fA(z,mA,4,yA,gA);return gA[O-1]}(e,t,n,i,r,o,u)}const bA=Math.pow(2,-52),xA=new Uint32Array(512);class wA{static from(e,t=SA,n=EA){const i=e.length,r=new Float64Array(2*i);for(let o=0;o<i;o++){const i=e[o];r[2*o]=t(i),r[2*o+1]=n(i)}return new wA(r)}constructor(e){const t=e.length>>1;if(t>0&&"number"!=typeof e[0])throw new Error("Expected coords to contain numbers.");this.coords=e;const n=Math.max(2*t-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.update()}update(){const{coords:e,_hullPrev:t,_hullNext:n,_hullTri:i,_hullHash:r}=this,o=e.length>>1;let a=1/0,s=1/0,l=-1/0,u=-1/0;for(let D=0;D<o;D++){const t=e[2*D],n=e[2*D+1];t<a&&(a=t),n<s&&(s=n),t>l&&(l=t),n>u&&(u=n),this._ids[D]=D}const c=(a+l)/2,f=(s+u)/2;let d,h,p,m=1/0;for(let D=0;D<o;D++){const t=_A(c,f,e[2*D],e[2*D+1]);t<m&&(d=D,m=t)}const g=e[2*d],y=e[2*d+1];m=1/0;for(let D=0;D<o;D++){if(D===d)continue;const t=_A(g,y,e[2*D],e[2*D+1]);t<m&&t>0&&(h=D,m=t)}let v=e[2*h],b=e[2*h+1],x=1/0;for(let D=0;D<o;D++){if(D===d||D===h)continue;const t=$A(g,y,v,b,e[2*D],e[2*D+1]);t<x&&(p=D,x=t)}let w=e[2*p],_=e[2*p+1];if(x===1/0){for(let i=0;i<o;i++)this._dists[i]=e[2*i]-e[0]||e[2*i+1]-e[1];DA(this._ids,this._dists,0,o-1);const t=new Uint32Array(o);let n=0;for(let e=0,i=-1/0;e<o;e++){const r=this._ids[e];this._dists[r]>i&&(t[n++]=r,i=this._dists[r])}return this.hull=t.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(vA(g,y,v,b,w,_)<0){const e=h,t=v,n=b;h=p,v=w,b=_,p=e,w=t,_=n}const k=function(e,t,n,i,r,o){const a=n-e,s=i-t,l=r-e,u=o-t,c=a*a+s*s,f=l*l+u*u,d=.5/(a*u-s*l),h=e+(u*c-s*f)*d;return{x:h,y:t+(a*f-l*c)*d}}(g,y,v,b,w,_);this._cx=k.x,this._cy=k.y;for(let D=0;D<o;D++)this._dists[D]=_A(e[2*D],e[2*D+1],k.x,k.y);DA(this._ids,this._dists,0,o-1),this._hullStart=d;let $=3;n[d]=t[p]=h,n[h]=t[d]=p,n[p]=t[h]=d,i[d]=0,i[h]=1,i[p]=2,r.fill(-1),r[this._hashKey(g,y)]=d,r[this._hashKey(v,b)]=h,r[this._hashKey(w,_)]=p,this.trianglesLen=0,this._addTriangle(d,h,p,-1,-1,-1);for(let D,A,S=0;S<this._ids.length;S++){const o=this._ids[S],a=e[2*o],s=e[2*o+1];if(S>0&&Math.abs(a-D)<=bA&&Math.abs(s-A)<=bA)continue;if(D=a,A=s,o===d||o===h||o===p)continue;let l=0;for(let e=0,t=this._hashKey(a,s);e<this._hashSize&&(l=r[(t+e)%this._hashSize],-1===l||l===n[l]);e++);l=t[l];let u,c=l;for(;u=n[c],vA(a,s,e[2*c],e[2*c+1],e[2*u],e[2*u+1])>=0;)if(c=u,c===l){c=-1;break}if(-1===c)continue;let f=this._addTriangle(c,o,n[c],-1,-1,i[c]);i[o]=this._legalize(f+2),i[c]=f,$++;let m=n[c];for(;u=n[m],vA(a,s,e[2*m],e[2*m+1],e[2*u],e[2*u+1])<0;)f=this._addTriangle(m,o,u,i[o],-1,i[m]),i[o]=this._legalize(f+2),n[m]=m,$--,m=u;if(c===l)for(;u=t[c],vA(a,s,e[2*u],e[2*u+1],e[2*c],e[2*c+1])<0;)f=this._addTriangle(u,o,c,-1,i[c],i[u]),this._legalize(f+2),i[u]=f,n[c]=c,$--,c=u;this._hullStart=t[o]=c,n[c]=t[m]=o,n[o]=m,r[this._hashKey(a,s)]=o,r[this._hashKey(e[2*c],e[2*c+1])]=c}this.hull=new Uint32Array($);for(let D=0,A=this._hullStart;D<$;D++)this.hull[D]=A,A=n[A];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(function(e,t){const n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:t,_halfedges:n,coords:i}=this;let r=0,o=0;for(;;){const a=n[e],s=e-e%3;if(o=s+(e+2)%3,-1===a){if(0===r)break;e=xA[--r];continue}const l=a-a%3,u=s+(e+1)%3,c=l+(a+2)%3,f=t[o],d=t[e],h=t[u],p=t[c];if(kA(i[2*f],i[2*f+1],i[2*d],i[2*d+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1])){t[e]=p,t[a]=f;const i=n[c];if(-1===i){let t=this._hullStart;do{if(this._hullTri[t]===c){this._hullTri[t]=e;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(e,i),this._link(a,n[o]),this._link(o,c);const s=l+(a+1)%3;r<xA.length&&(xA[r++]=s)}else{if(0===r)break;e=xA[--r]}}return o}_link(e,t){this._halfedges[e]=t,-1!==t&&(this._halfedges[t]=e)}_addTriangle(e,t,n,i,r,o){const a=this.trianglesLen;return this._triangles[a]=e,this._triangles[a+1]=t,this._triangles[a+2]=n,this._link(a,i),this._link(a+1,r),this._link(a+2,o),this.trianglesLen+=3,a}}function _A(e,t,n,i){const r=e-n,o=t-i;return r*r+o*o}function kA(e,t,n,i,r,o,a,s){const l=e-a,u=t-s,c=n-a,f=i-s,d=r-a,h=o-s,p=c*c+f*f,m=d*d+h*h;return l*(f*m-p*h)-u*(c*m-p*d)+(l*l+u*u)*(c*h-f*d)<0}function $A(e,t,n,i,r,o){const a=n-e,s=i-t,l=r-e,u=o-t,c=a*a+s*s,f=l*l+u*u,d=.5/(a*u-s*l),h=(u*c-s*f)*d,p=(a*f-l*c)*d;return h*h+p*p}function DA(e,t,n,i){if(i-n<=20)for(let r=n+1;r<=i;r++){const i=e[r],o=t[i];let a=r-1;for(;a>=n&&t[e[a]]>o;)e[a+1]=e[a--];e[a+1]=i}else{let r=n+1,o=i;AA(e,n+i>>1,r),t[e[n]]>t[e[i]]&&AA(e,n,i),t[e[r]]>t[e[i]]&&AA(e,r,i),t[e[n]]>t[e[r]]&&AA(e,n,r);const a=e[r],s=t[a];for(;;){do{r++}while(t[e[r]]<s);do{o--}while(t[e[o]]>s);if(o<r)break;AA(e,r,o)}e[n+1]=e[o],e[o]=a,i-r+1>=o-n?(DA(e,t,r,i),DA(e,t,n,o-1)):(DA(e,t,n,o-1),DA(e,t,r,i))}}function AA(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function SA(e){return e[0]}function EA(e){return e[1]}const FA=1e-6;class CA{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,n){const i=(e=+e)+(n=+n),r=t=+t;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${i},${r}`:(Math.abs(this._x1-i)>FA||Math.abs(this._y1-r)>FA)&&(this._+="L"+i+","+r),n&&(this._+=`A${n},${n},0,1,1,${e-n},${t}A${n},${n},0,1,1,${this._x1=i},${this._y1=r}`)}rect(e,t,n,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+n}v${+i}h${-n}Z`}value(){return this._||null}}class MA{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}}let zA=class{constructor(e,[t,n,i,r]=[0,0,960,500]){if(!((i=+i)>=(t=+t)&&(r=+r)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(2*e.points.length),this.vectors=new Float64Array(2*e.points.length),this.xmax=i,this.xmin=t,this.ymax=r,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:t,triangles:n},vectors:i}=this;let r,o;const a=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let p,m,g=0,y=0,v=n.length;g<v;g+=3,y+=2){const i=2*n[g],s=2*n[g+1],l=2*n[g+2],u=e[i],c=e[i+1],f=e[s],d=e[s+1],h=e[l],v=e[l+1],b=f-u,x=d-c,w=h-u,_=v-c,k=2*(b*_-x*w);if(Math.abs(k)<1e-9){if(void 0===r){r=o=0;for(const n of t)r+=e[2*n],o+=e[2*n+1];r/=t.length,o/=t.length}const n=1e9*Math.sign((r-u)*_-(o-c)*w);p=(u+h)/2-n*_,m=(c+v)/2+n*w}else{const e=1/k,t=b*b+x*x,n=w*w+_*_;p=u+(_*t-x*n)*e,m=c+(b*n-w*t)*e}a[y]=p,a[y+1]=m}let s,l,u,c=t[t.length-1],f=4*c,d=e[2*c],h=e[2*c+1];i.fill(0);for(let p=0;p<t.length;++p)c=t[p],s=f,l=d,u=h,f=4*c,d=e[2*c],h=e[2*c+1],i[s+2]=i[f]=u-h,i[s+3]=i[f+1]=d-l}render(e){const t=null==e?e=new CA:void 0,{delaunay:{halfedges:n,inedges:i,hull:r},circumcenters:o,vectors:a}=this;if(r.length<=1)return null;for(let u=0,c=n.length;u<c;++u){const t=n[u];if(t<u)continue;const i=2*Math.floor(u/3),r=2*Math.floor(t/3),a=o[i],s=o[i+1],l=o[r],c=o[r+1];this._renderSegment(a,s,l,c,e)}let s,l=r[r.length-1];for(let u=0;u<r.length;++u){s=l,l=r[u];const t=2*Math.floor(i[l]/3),n=o[t],c=o[t+1],f=4*s,d=this._project(n,c,a[f+2],a[f+3]);d&&this._renderSegment(n,c,d[0],d[1],e)}return t&&t.value()}renderBounds(e){const t=null==e?e=new CA:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}renderCell(e,t){const n=null==t?t=new CA:void 0,i=this._clip(e);if(null===i||!i.length)return;t.moveTo(i[0],i[1]);let r=i.length;for(;i[0]===i[r-2]&&i[1]===i[r-1]&&r>1;)r-=2;for(let o=2;o<r;o+=2)i[o]===i[o-2]&&i[o+1]===i[o-1]||t.lineTo(i[o],i[o+1]);return t.closePath(),n&&n.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let t=0,n=e.length/2;t<n;++t){const e=this.cellPolygon(t);e&&(e.index=t,yield e)}}cellPolygon(e){const t=new MA;return this.renderCell(e,t),t.value()}_renderSegment(e,t,n,i,r){let o;const a=this._regioncode(e,t),s=this._regioncode(n,i);0===a&&0===s?(r.moveTo(e,t),r.lineTo(n,i)):(o=this._clipSegment(e,t,n,i,a,s))&&(r.moveTo(o[0],o[1]),r.lineTo(o[2],o[3]))}contains(e,t,n){return(t=+t)==t&&(n=+n)==n&&this.delaunay._step(e,t,n)===e}*neighbors(e){const t=this._clip(e);if(t)for(const n of this.delaunay.neighbors(e)){const e=this._clip(n);if(e)e:for(let i=0,r=t.length;i<r;i+=2)for(let o=0,a=e.length;o<a;o+=2)if(t[i]===e[o]&&t[i+1]===e[o+1]&&t[(i+2)%r]===e[(o+a-2)%a]&&t[(i+3)%r]===e[(o+a-1)%a]){yield n;break e}}}_cell(e){const{circumcenters:t,delaunay:{inedges:n,halfedges:i,triangles:r}}=this,o=n[e];if(-1===o)return null;const a=[];let s=o;do{const n=Math.floor(s/3);if(a.push(t[2*n],t[2*n+1]),s=s%3==2?s-2:s+1,r[s]!==e)break;s=i[s]}while(s!==o&&-1!==s);return a}_clip(e){if(0===e&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const t=this._cell(e);if(null===t)return null;const{vectors:n}=this,i=4*e;return this._simplify(n[i]||n[i+1]?this._clipInfinite(e,t,n[i],n[i+1],n[i+2],n[i+3]):this._clipFinite(e,t))}_clipFinite(e,t){const n=t.length;let i,r,o,a,s=null,l=t[n-2],u=t[n-1],c=this._regioncode(l,u),f=0;for(let d=0;d<n;d+=2)if(i=l,r=u,l=t[d],u=t[d+1],o=c,c=this._regioncode(l,u),0===o&&0===c)a=f,f=0,s?s.push(l,u):s=[l,u];else{let t,n,d,h,p;if(0===o){if(null===(t=this._clipSegment(i,r,l,u,o,c)))continue;[n,d,h,p]=t}else{if(null===(t=this._clipSegment(l,u,i,r,c,o)))continue;[h,p,n,d]=t,a=f,f=this._edgecode(n,d),a&&f&&this._edge(e,a,f,s,s.length),s?s.push(n,d):s=[n,d]}a=f,f=this._edgecode(h,p),a&&f&&this._edge(e,a,f,s,s.length),s?s.push(h,p):s=[h,p]}if(s)a=f,f=this._edgecode(s[0],s[1]),a&&f&&this._edge(e,a,f,s,s.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return s}_clipSegment(e,t,n,i,r,o){const a=r<o;for(a&&([e,t,n,i,r,o]=[n,i,e,t,o,r]);;){if(0===r&&0===o)return a?[n,i,e,t]:[e,t,n,i];if(r&o)return null;let s,l,u=r||o;8&u?(s=e+(n-e)*(this.ymax-t)/(i-t),l=this.ymax):4&u?(s=e+(n-e)*(this.ymin-t)/(i-t),l=this.ymin):2&u?(l=t+(i-t)*(this.xmax-e)/(n-e),s=this.xmax):(l=t+(i-t)*(this.xmin-e)/(n-e),s=this.xmin),r?(e=s,t=l,r=this._regioncode(e,t)):(n=s,i=l,o=this._regioncode(n,i))}}_clipInfinite(e,t,n,i,r,o){let a,s=Array.from(t);if((a=this._project(s[0],s[1],n,i))&&s.unshift(a[0],a[1]),(a=this._project(s[s.length-2],s[s.length-1],r,o))&&s.push(a[0],a[1]),s=this._clipFinite(e,s))for(let l,u=0,c=s.length,f=this._edgecode(s[c-2],s[c-1]);u<c;u+=2)l=f,f=this._edgecode(s[u],s[u+1]),l&&f&&(u=this._edge(e,l,f,s,u),c=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,t,n,i,r){for(;t!==n;){let n,o;switch(t){case 5:t=4;continue;case 4:t=6,n=this.xmax,o=this.ymin;break;case 6:t=2;continue;case 2:t=10,n=this.xmax,o=this.ymax;break;case 10:t=8;continue;case 8:t=9,n=this.xmin,o=this.ymax;break;case 9:t=1;continue;case 1:t=5,n=this.xmin,o=this.ymin}i[r]===n&&i[r+1]===o||!this.contains(e,n,o)||(i.splice(r,0,n,o),r+=2)}return r}_project(e,t,n,i){let r,o,a,s=1/0;if(i<0){if(t<=this.ymin)return null;(r=(this.ymin-t)/i)<s&&(a=this.ymin,o=e+(s=r)*n)}else if(i>0){if(t>=this.ymax)return null;(r=(this.ymax-t)/i)<s&&(a=this.ymax,o=e+(s=r)*n)}if(n>0){if(e>=this.xmax)return null;(r=(this.xmax-e)/n)<s&&(o=this.xmax,a=t+(s=r)*i)}else if(n<0){if(e<=this.xmin)return null;(r=(this.xmin-e)/n)<s&&(o=this.xmin,a=t+(s=r)*i)}return[o,a]}_edgecode(e,t){return(e===this.xmin?1:e===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}_regioncode(e,t){return(e<this.xmin?1:e>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t<e.length;t+=2){const n=(t+2)%e.length,i=(t+4)%e.length;(e[t]===e[n]&&e[n]===e[i]||e[t+1]===e[n+1]&&e[n+1]===e[i+1])&&(e.splice(n,2),t-=2)}e.length||(e=null)}return e}};const OA=2*Math.PI,NA=Math.pow;function RA(e){return e[0]}function BA(e){return e[1]}function TA(e,t,n){return[e+Math.sin(e+t)*n,t+Math.cos(e-t)*n]}class PA{static from(e,t=RA,n=BA,i){return new PA("length"in e?function(e,t,n,i){const r=e.length,o=new Float64Array(2*r);for(let a=0;a<r;++a){const r=e[a];o[2*a]=t.call(i,r,a,e),o[2*a+1]=n.call(i,r,a,e)}return o}(e,t,n,i):Float64Array.from(function*(e,t,n,i){let r=0;for(const o of e)yield t.call(i,o,r,e),yield n.call(i,o,r,e),++r}(e,t,n,i)))}constructor(e){this._delaunator=new wA(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,t=this.points;if(e.hull&&e.hull.length>2&&function(e){const{triangles:t,coords:n}=e;for(let i=0;i<t.length;i+=3){const e=2*t[i],r=2*t[i+1],o=2*t[i+2];if((n[o]-n[e])*(n[r+1]-n[e+1])-(n[r]-n[e])*(n[o+1]-n[e+1])>1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:t.length/2},((e,t)=>t)).sort(((e,n)=>t[2*e]-t[2*n]||t[2*e+1]-t[2*n+1]));const e=this.collinear[0],n=this.collinear[this.collinear.length-1],i=[t[2*e],t[2*e+1],t[2*n],t[2*n+1]],r=1e-8*Math.hypot(i[3]-i[1],i[2]-i[0]);for(let o=0,a=t.length/2;o<a;++o){const e=TA(t[2*o],t[2*o+1],r);t[2*o]=e[0],t[2*o+1]=e[1]}this._delaunator=new wA(t)}else delete this.collinear;const n=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,r=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),a=this._hullIndex.fill(-1);for(let s=0,l=n.length;s<l;++s){const e=r[s%3==2?s-2:s+1];-1!==n[s]&&-1!==o[e]||(o[e]=s)}for(let s=0,l=i.length;s<l;++s)a[i[s]]=s;i.length<=2&&i.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],o[i[0]]=1,2===i.length&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new zA(this,e)}*neighbors(e){const{inedges:t,hull:n,_hullIndex:i,halfedges:r,triangles:o,collinear:a}=this;if(a){const t=a.indexOf(e);return t>0&&(yield a[t-1]),void(t<a.length-1&&(yield a[t+1]))}const s=t[e];if(-1===s)return;let l=s,u=-1;do{if(yield u=o[l],l=l%3==2?l-2:l+1,o[l]!==e)return;if(l=r[l],-1===l){const t=n[(i[e]+1)%n.length];return void(t!==u&&(yield t))}}while(l!==s)}find(e,t,n=0){if((e=+e)!=e||(t=+t)!=t)return-1;const i=n;let r;for(;(r=this._step(n,e,t))>=0&&r!==n&&r!==i;)n=r;return r}_step(e,t,n){const{inedges:i,hull:r,_hullIndex:o,halfedges:a,triangles:s,points:l}=this;if(-1===i[e]||!l.length)return(e+1)%(l.length>>1);let u=e,c=NA(t-l[2*e],2)+NA(n-l[2*e+1],2);const f=i[e];let d=f;do{let i=s[d];const f=NA(t-l[2*i],2)+NA(n-l[2*i+1],2);if(f<c&&(c=f,u=i),d=d%3==2?d-2:d+1,s[d]!==e)break;if(d=a[d],-1===d){if(d=r[(o[e]+1)%r.length],d!==i&&NA(t-l[2*d],2)+NA(n-l[2*d+1],2)<c)return d;break}}while(d!==f);return u}render(e){const t=null==e?e=new CA:void 0,{points:n,halfedges:i,triangles:r}=this;for(let o=0,a=i.length;o<a;++o){const t=i[o];if(t<o)continue;const a=2*r[o],s=2*r[t];e.moveTo(n[a],n[a+1]),e.lineTo(n[s],n[s+1])}return this.renderHull(e),t&&t.value()}renderPoints(e,t){void 0!==t||e&&"function"==typeof e.moveTo||(t=e,e=null),t=null==t?2:+t;const n=null==e?e=new CA:void 0,{points:i}=this;for(let r=0,o=i.length;r<o;r+=2){const n=i[r],o=i[r+1];e.moveTo(n+t,o),e.arc(n,o,t,0,OA)}return n&&n.value()}renderHull(e){const t=null==e?e=new CA:void 0,{hull:n,points:i}=this,r=2*n[0],o=n.length;e.moveTo(i[r],i[r+1]);for(let a=1;a<o;++a){const t=2*n[a];e.lineTo(i[t],i[t+1])}return e.closePath(),t&&t.value()}hullPolygon(){const e=new MA;return this.renderHull(e),e.value()}renderTriangle(e,t){const n=null==t?t=new CA:void 0,{points:i,triangles:r}=this,o=2*r[e*=3],a=2*r[e+1],s=2*r[e+2];return t.moveTo(i[o],i[o+1]),t.lineTo(i[a],i[a+1]),t.lineTo(i[s],i[s+1]),t.closePath(),n&&n.value()}*trianglePolygons(){const{triangles:e}=this;for(let t=0,n=e.length/3;t<n;++t)yield this.trianglePolygon(t)}trianglePolygon(e){const t=new MA;return this.renderTriangle(e,t),t.value()}}function jA(e){tl.call(this,null,e)}jA.Definition={type:"Voronoi",metadata:{modifies:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"size",type:"number",array:!0,length:2},{name:"extent",type:"array",array:!0,length:2,default:[[-1e5,-1e5],[1e5,1e5]],content:{type:"number",array:!0,length:2}},{name:"as",type:"string",default:"path"}]};const LA=[-1e5,-1e5,1e5,1e5];function qA(e){const t=e[0][0],n=e[0][1];let i=e.length-1;for(;e[i][0]===t&&e[i][1]===n;--i);return"M"+e.slice(0,i+1).join("L")+"Z"}_(jA,tl,{transform(e,t){const n=e.as||"path",i=t.source;if(!i||!i.length)return t;let r=e.size;r=r?[0,0,r[0],r[1]]:(r=e.extent)?[r[0][0],r[0][1],r[1][0],r[1][1]]:LA;const o=this.value=PA.from(i,e.x,e.y).voronoi(r);for(let s=0,l=i.length;s<l;++s){const e=o.cellPolygon(s);i[s][n]=e&&(2!==(a=e).length||a[0][0]!==a[1][0]||a[0][1]!==a[1][1])?qA(e):null}var a;return t.reflow(e.modified()).modifies(n)}});const UA=Object.freeze(Object.defineProperty({__proto__:null,voronoi:jA},Symbol.toStringTag,{value:"Module"}));var IA=Math.PI/180,WA=2048;function HA(){var e,t,n,i,r,o,a,s=[256,256],l=XA,u=[],c=Math.random,f={};function d(e,t,n){for(var i,r,o,a,u,f=t.x,d=t.y,h=Math.hypot(s[0],s[1]),p=l(s),m=c()<.5?1:-1,g=-m;(i=p(g+=m))&&(r=~~i[0],o=~~i[1],!(Math.min(Math.abs(r),Math.abs(o))>=h));)if(t.x=f+r,t.y=d+o,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>s[0]||t.y+t.y1>s[1]||n&&VA(t,e,s[0])||n&&(u=n,!((a=t).x+a.x1>u[0].x&&a.x+a.x0<u[1].x&&a.y+a.y1>u[0].y&&a.y+a.y0<u[1].y)))){for(var y,v=t.sprite,b=t.width>>5,x=s[0]>>5,w=t.x-(b<<4),_=127&w,k=32-_,$=t.y1-t.y0,D=(t.y+t.y0)*x+(w>>5),A=0;A<$;A++){y=0;for(var S=0;S<=b;S++)e[D+S]|=y<<k|(S<b?(y=v[A*b+S])>>>_:0);D+=x}return t.sprite=null,!0}return!1}return f.layout=function(){for(var l=function(e){e.width=e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);e.width=2048/t,e.height=WA/t;var n=e.getContext("2d");return n.fillStyle=n.strokeStyle="red",n.textAlign="center",{context:n,ratio:t}}(Ac()),f=function(e){var t=[],n=-1;for(;++n<e;)t[n]=0;return t}((s[0]>>5)*s[1]),h=null,p=u.length,m=-1,g=[],y=u.map((s=>({text:e(s),font:t(s),style:i(s),weight:r(s),rotate:o(s),size:~~(n(s)+1e-14),padding:a(s),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:s}))).sort(((e,t)=>t.size-e.size));++m<p;){var v=y[m];v.x=s[0]*(c()+.5)>>1,v.y=s[1]*(c()+.5)>>1,GA(l,v,y,m),v.hasText&&d(f,v,h)&&(g.push(v),h?YA(h,v):h=[{x:v.x+v.x0,y:v.y+v.y0},{x:v.x+v.x1,y:v.y+v.y1}],v.x-=s[0]>>1,v.y-=s[1]>>1)}return g},f.words=function(e){return arguments.length?(u=e,f):u},f.size=function(e){return arguments.length?(s=[+e[0],+e[1]],f):s},f.font=function(e){return arguments.length?(t=JA(e),f):t},f.fontStyle=function(e){return arguments.length?(i=JA(e),f):i},f.fontWeight=function(e){return arguments.length?(r=JA(e),f):r},f.rotate=function(e){return arguments.length?(o=JA(e),f):o},f.text=function(t){return arguments.length?(e=JA(t),f):e},f.spiral=function(e){return arguments.length?(l=QA[e]||e,f):l},f.fontSize=function(e){return arguments.length?(n=JA(e),f):n},f.padding=function(e){return arguments.length?(a=JA(e),f):a},f.random=function(e){return arguments.length?(c=e,f):c},f}function GA(e,t,n,i){if(!t.sprite){var r=e.context,o=e.ratio;r.clearRect(0,0,2048/o,WA/o);var a,s,l,u,c,f=0,d=0,h=0,p=n.length;for(--i;++i<p;){if(t=n[i],r.save(),r.font=t.style+" "+t.weight+" "+~~((t.size+1)/o)+"px "+t.font,a=r.measureText(t.text+"m").width*o,l=t.size<<1,t.rotate){var m=Math.sin(t.rotate*IA),g=Math.cos(t.rotate*IA),y=a*g,v=a*m,b=l*g,x=l*m;a=Math.max(Math.abs(y+x),Math.abs(y-x))+31>>5<<5,l=~~Math.max(Math.abs(v+b),Math.abs(v-b))}else a=a+31>>5<<5;if(l>h&&(h=l),f+a>=2048&&(f=0,d+=h,h=0),d+l>=WA)break;r.translate((f+(a>>1))/o,(d+(l>>1))/o),t.rotate&&r.rotate(t.rotate*IA),r.fillText(t.text,0,0),t.padding&&(r.lineWidth=2*t.padding,r.strokeText(t.text,0,0)),r.restore(),t.width=a,t.height=l,t.xoff=f,t.yoff=d,t.x1=a>>1,t.y1=l>>1,t.x0=-t.x1,t.y0=-t.y1,t.hasText=!0,f+=a}for(var w=r.getImageData(0,0,2048/o,WA/o).data,_=[];--i>=0;)if((t=n[i]).hasText){for(s=(a=t.width)>>5,l=t.y1-t.y0,u=0;u<l*s;u++)_[u]=0;if(null==(f=t.xoff))return;d=t.yoff;var k=0,$=-1;for(c=0;c<l;c++){for(u=0;u<a;u++){var D=s*c+(u>>5),A=w[2048*(d+c)+(f+u)<<2]?1<<31-u%32:0;_[D]|=A,k|=A}k?$=c:(t.y0++,l--,c--,d++)}t.y1=t.y0+$,t.sprite=_.slice(0,(t.y1-t.y0)*s)}}}function VA(e,t,n){n>>=5;for(var i,r=e.sprite,o=e.width>>5,a=e.x-(o<<4),s=127&a,l=32-s,u=e.y1-e.y0,c=(e.y+e.y0)*n+(a>>5),f=0;f<u;f++){i=0;for(var d=0;d<=o;d++)if((i<<l|(d<o?(i=r[f*o+d])>>>s:0))&t[c+d])return!0;c+=n}return!1}function YA(e,t){var n=e[0],i=e[1];t.x+t.x0<n.x&&(n.x=t.x+t.x0),t.y+t.y0<n.y&&(n.y=t.y+t.y0),t.x+t.x1>i.x&&(i.x=t.x+t.x1),t.y+t.y1>i.y&&(i.y=t.y+t.y1)}function XA(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function JA(e){return"function"==typeof e?e:function(){return e}}var QA={archimedean:XA,rectangular:function(e){var t=4*e[0]/e[1],n=0,i=0;return function(e){var r=e<0?-1:1;switch(Math.sqrt(1+4*r*e)-r&3){case 0:n+=t;break;case 1:i+=4;break;case 2:n-=t;break;default:i-=4}return[n,i]}}};const KA=["x","y","font","fontSize","fontStyle","fontWeight","angle"],ZA=["text","font","rotate","fontSize","fontStyle","fontWeight"];function eS(e){tl.call(this,HA(),e)}eS.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:KA}]},_(eS,tl,{transform(e,t){!e.size||e.size[0]&&e.size[1]||v("Wordcloud size dimensions must be non-zero.");const n=e.modified();if(!(n||t.changed(t.ADD_REM)||ZA.some((function(n){const i=e[n];return m(i)&&t.modified(i.fields)}))))return;const i=t.materialize(t.SOURCE).source,r=this.value,o=e.as||KA;let a,s=e.fontSize||14;if(m(s)?a=e.fontSizeRange:s=g(s),a){const e=s,t=Nf("sqrt")().domain(M(i,e)).range(a);s=n=>t(e(n))}i.forEach((e=>{e[o[0]]=NaN,e[o[1]]=NaN,e[o[3]]=0}));const l=r.words(i).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(s).random(cl).layout(),u=r.size(),c=u[0]>>1,f=u[1]>>1,d=l.length;for(let h,p,m=0;m<d;++m)h=l[m],p=h.datum,p[o[0]]=h.x+c,p[o[1]]=h.y+f,p[o[2]]=h.font,p[o[3]]=h.size,p[o[4]]=h.style,p[o[5]]=h.weight,p[o[6]]=h.rotate;return t.reflow(n).modifies(o)}});const tS=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:eS},Symbol.toStringTag,{value:"Module"})),nS=e=>new Uint8Array(e),iS=e=>new Uint16Array(e),rS=e=>new Uint32Array(e);function oS(e,t,n){const i=(t<257?nS:t<65537?iS:rS)(e);return n&&i.set(n),i}function aS(e,t,n){const i=1<<t;return{one:i,zero:~i,range:n.slice(),bisect:e.bisect,index:e.index,size:e.size,onAdd(e,t){const n=this,r=n.bisect(n.range,e.value),o=e.index,a=r[0],s=r[1],l=o.length;let u;for(u=0;u<a;++u)t[o[u]]|=i;for(u=s;u<l;++u)t[o[u]]|=i;return n}}}function sS(){let e=rS(0),t=[],n=0;return{insert:function(i,r,o){if(!r.length)return[];const a=n,s=r.length,l=rS(s);let u,c,f,d=Array(s);for(f=0;f<s;++f)d[f]=i(r[f]),l[f]=f;if(d=function(e,t){return e.sort.call(t,((t,n)=>{const i=e[t],r=e[n];return i<r?-1:i>r?1:0})),function(e,t){return Array.from(t,(t=>e[t]))}(e,t)}(d,l),a)u=t,c=e,t=Array(a+s),e=rS(a+s),function(e,t,n,i,r,o,a,s,l){let u,c=0,f=0;for(u=0;c<i&&f<a;++u)t[c]<r[f]?(s[u]=t[c],l[u]=n[c++]):(s[u]=r[f],l[u]=o[f++]+e);for(;c<i;++c,++u)s[u]=t[c],l[u]=n[c];for(;f<a;++f,++u)s[u]=r[f],l[u]=o[f]+e}(o,u,c,a,d,l,s,t,e);else{if(o>0)for(f=0;f<s;++f)l[f]+=o;t=d,e=l}return n=a+s,{index:l,value:d}},remove:function(i,r){const o=n;let a,s,l;for(s=0;!r[e[s]]&&s<o;++s);for(l=s;s<o;++s)r[a=e[s]]||(e[l]=a,t[l]=t[s],++l);n=o-i},bisect:function(e,i){let r;return i?r=i.length:(i=t,r=n),[Wt(i,e[0],0,r),qt(i,e[1],0,r)]},reindex:function(t){for(let i=0,r=n;i<r;++i)e[i]=t[e[i]]},index:()=>e,size:()=>n}}function lS(e){tl.call(this,function(){let e=8,t=[],n=rS(0),i=oS(0,e),r=oS(0,e);return{data:()=>t,seen:()=>{return e=n,i=t.length,n=e.length>=i?e:((r=r||new e.constructor(i)).set(e),r);var e,i,r},add(e){for(let n,i=0,r=t.length,o=e.length;i<o;++i)n=e[i],n._index=r++,t.push(n)},remove(e,n){const o=t.length,a=Array(o-e),s=t;let l,u,c;for(u=0;!n[u]&&u<o;++u)a[u]=t[u],s[u]=u;for(c=u;u<o;++u)l=t[u],n[u]?s[u]=-1:(s[u]=c,i[c]=i[u],r[c]=r[u],a[c]=l,l._index=c++),i[u]=0;return t=a,s},size:()=>t.length,curr:()=>i,prev:()=>r,reset:e=>r[e]=i[e],all:()=>e<257?255:e<65537?65535:4294967295,set(e,t){i[e]|=t},clear(e,t){i[e]&=~t},resize(t,n){(t>i.length||n>e)&&(e=Math.max(n,e),i=oS(t,e,i),r=oS(t,e))}}}(),e),this._indices=null,this._dims=null}function uS(e){tl.call(this,null,e)}lS.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},_(lS,tl,{transform(e,t){return this._dims?e.modified("fields")||e.fields.some((e=>t.modified(e.fields)))?this.reinit(e,t):this.eval(e,t):this.init(e,t)},init(e,t){const n=e.fields,i=e.query,r=this._indices={},o=this._dims=[],a=i.length;let s,l,u=0;for(;u<a;++u)s=n[u].fname,l=r[s]||(r[s]=sS()),o.push(aS(l,u,i[u]));return this.eval(e,t)},reinit(e,t){const n=t.materialize().fork(),i=e.fields,r=e.query,o=this._indices,a=this._dims,s=this.value,l=s.curr(),u=s.prev(),c=s.all(),f=n.rem=n.add,d=n.mod,h=r.length,p={};let m,g,y,v,b,x,w,_,k;if(u.set(l),t.rem.length&&(b=this.remove(e,t,n)),t.add.length&&s.add(t.add),t.mod.length)for(x={},v=t.mod,w=0,_=v.length;w<_;++w)x[v[w]._index]=1;for(w=0;w<h;++w)k=i[w],(!a[w]||e.modified("fields",w)||t.modified(k.fields))&&(y=k.fname,(m=p[y])||(o[y]=g=sS(),p[y]=m=g.insert(k,t.source,0)),a[w]=aS(g,w,r[w]).onAdd(m,l));for(w=0,_=s.data().length;w<_;++w)b[w]||(u[w]!==l[w]?f.push(w):x[w]&&l[w]!==c&&d.push(w));return s.mask=(1<<h)-1,n},eval(e,t){const n=t.materialize().fork(),i=this._dims.length;let r=0;return t.rem.length&&(this.remove(e,t,n),r|=(1<<i)-1),e.modified("query")&&!e.modified("fields")&&(r|=this.update(e,t,n)),t.add.length&&(this.insert(e,t,n),r|=(1<<i)-1),t.mod.length&&(this.modify(t,n),r|=(1<<i)-1),this.value.mask=r,n},insert(e,t,n){const i=t.add,r=this.value,o=this._dims,a=this._indices,s=e.fields,l={},u=n.add,c=r.size()+i.length,f=o.length;let d,h,p,m=r.size();r.resize(c,f),r.add(i);const g=r.curr(),y=r.prev(),v=r.all();for(d=0;d<f;++d)h=s[d].fname,p=l[h]||(l[h]=a[h].insert(s[d],i,m)),o[d].onAdd(p,g);for(;m<c;++m)y[m]=v,g[m]!==v&&u.push(m)},modify(e,t){const n=t.mod,i=this.value,r=i.curr(),o=i.all(),a=e.mod;let s,l,u;for(s=0,l=a.length;s<l;++s)u=a[s]._index,r[u]!==o&&n.push(u)},remove(e,t,n){const i=this._indices,r=this.value,o=r.curr(),a=r.prev(),s=r.all(),l={},u=n.rem,c=t.rem;let f,d,h,p;for(f=0,d=c.length;f<d;++f)h=c[f]._index,l[h]=1,a[h]=p=o[h],o[h]=s,p!==s&&u.push(h);for(h in i)i[h].remove(d,l);return this.reindex(t,d,l),l},reindex(e,t,n){const i=this._indices,r=this.value;e.runAfter((()=>{const e=r.remove(t,n);for(const t in i)i[t].reindex(e)}))},update(e,t,n){const i=this._dims,r=e.query,o=t.stamp,a=i.length;let s,l,u=0;for(n.filters=0,l=0;l<a;++l)e.modified("query",l)&&(s=l,++u);if(1===u)u=i[s].one,this.incrementOne(i[s],r[s],n.add,n.rem);else for(l=0,u=0;l<a;++l)e.modified("query",l)&&(u|=i[l].one,this.incrementAll(i[l],r[l],o,n.add),n.rem=n.add);return u},incrementAll(e,t,n,i){const r=this.value,o=r.seen(),a=r.curr(),s=r.prev(),l=e.index(),u=e.bisect(e.range),c=e.bisect(t),f=c[0],d=c[1],h=u[0],p=u[1],m=e.one;let g,y,v;if(f<h)for(g=f,y=Math.min(h,d);g<y;++g)v=l[g],o[v]!==n&&(s[v]=a[v],o[v]=n,i.push(v)),a[v]^=m;else if(f>h)for(g=h,y=Math.min(f,p);g<y;++g)v=l[g],o[v]!==n&&(s[v]=a[v],o[v]=n,i.push(v)),a[v]^=m;if(d>p)for(g=Math.max(f,p),y=d;g<y;++g)v=l[g],o[v]!==n&&(s[v]=a[v],o[v]=n,i.push(v)),a[v]^=m;else if(d<p)for(g=Math.max(h,d),y=p;g<y;++g)v=l[g],o[v]!==n&&(s[v]=a[v],o[v]=n,i.push(v)),a[v]^=m;e.range=t.slice()},incrementOne(e,t,n,i){const r=this.value.curr(),o=e.index(),a=e.bisect(e.range),s=e.bisect(t),l=s[0],u=s[1],c=a[0],f=a[1],d=e.one;let h,p,m;if(l<c)for(h=l,p=Math.min(c,u);h<p;++h)m=o[h],r[m]^=d,n.push(m);else if(l>c)for(h=c,p=Math.min(l,f);h<p;++h)m=o[h],r[m]^=d,i.push(m);if(u>f)for(h=Math.max(l,f),p=u;h<p;++h)m=o[h],r[m]^=d,n.push(m);else if(u<f)for(h=Math.max(c,u),p=f;h<p;++h)m=o[h],r[m]^=d,i.push(m);e.range=t.slice()}}),uS.Definition={type:"ResolveFilter",metadata:{},params:[{name:"ignore",type:"number",required:!0,description:"A bit mask indicating which filters to ignore."},{name:"filter",type:"object",required:!0,description:"Per-tuple filter bitmaps from a CrossFilter transform."}]},_(uS,tl,{transform(e,t){const n=~(e.ignore||0),i=e.filter,r=i.mask;if(!(r&n))return t.StopPropagation;const o=t.fork(t.ALL),a=i.data(),s=i.curr(),l=i.prev(),u=e=>s[e]&n?null:a[e];return o.filter(o.MOD,u),r&r-1?(o.filter(o.ADD,(e=>{const t=s[e]&n;return!t&&t^l[e]&n?a[e]:null})),o.filter(o.REM,(e=>{const t=s[e]&n;return t&&!(0^l[e]&n)?a[e]:null}))):(o.filter(o.ADD,u),o.filter(o.REM,(e=>(s[e]&n)===r?a[e]:null))),o.filter(o.SOURCE,(e=>u(e._index)))}});const cS=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:lS,resolvefilter:uS},Symbol.toStringTag,{value:"Module"})),fS="Literal",dS="Property",hS="ArrayExpression",pS="BinaryExpression",mS="CallExpression",gS="ConditionalExpression",yS="LogicalExpression",vS="MemberExpression",bS="ObjectExpression",xS="UnaryExpression";function wS(e){this.type=e}var _S,kS,$S,DS,AS;wS.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=function(e){switch(e.type){case hS:return e.elements;case pS:case yS:return[e.left,e.right];case mS:return[e.callee].concat(e.arguments);case gS:return[e.test,e.consequent,e.alternate];case vS:return[e.object,e.property];case bS:return e.properties;case dS:return[e.key,e.value];case xS:return[e.argument];default:return[]}}(this),n=0,i=t.length;n<i;++n)if(t[n].visit(e))return 1};(_S={})[1]="Boolean",_S[2]="<end>",_S[3]="Identifier",_S[4]="Keyword",_S[5]="Null",_S[6]="Numeric",_S[7]="Punctuator",_S[8]="String",_S[9]="RegularExpression";var SS="Identifier",ES="Unexpected token %0",FS="Invalid regular expression",CS="Invalid regular expression: missing /",MS="Octal literals are not allowed in strict mode.",zS="ILLEGAL",OS="Disabled.",NS=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),RS=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function BS(e,t){if(!e)throw new Error("ASSERT: "+t)}function TS(e){return e>=48&&e<=57}function PS(e){return"0123456789abcdefABCDEF".includes(e)}function jS(e){return"01234567".includes(e)}function LS(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function qS(e){return 10===e||13===e||8232===e||8233===e}function US(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&NS.test(String.fromCharCode(e))}function IS(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&RS.test(String.fromCharCode(e))}const WS={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function HS(){for(;$S<DS;){const e=kS.charCodeAt($S);if(!LS(e)&&!qS(e))break;++$S}}function GS(e){var t,n,i,r=0;for(n="u"===e?4:2,t=0;t<n;++t)$S<DS&&PS(kS[$S])?(i=kS[$S++],r=16*r+"0123456789abcdef".indexOf(i.toLowerCase())):lE({},ES,zS);return String.fromCharCode(r)}function VS(){var e,t,n,i;for(t=0,"}"===(e=kS[$S])&&lE({},ES,zS);$S<DS&&PS(e=kS[$S++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&lE({},ES,zS),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),i=56320+(t-65536&1023),String.fromCharCode(n,i))}function YS(){var e,t;for(e=kS.charCodeAt($S++),t=String.fromCharCode(e),92===e&&(117!==kS.charCodeAt($S)&&lE({},ES,zS),++$S,(e=GS("u"))&&"\\"!==e&&US(e.charCodeAt(0))||lE({},ES,zS),t=e);$S<DS&&IS(e=kS.charCodeAt($S));)++$S,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==kS.charCodeAt($S)&&lE({},ES,zS),++$S,(e=GS("u"))&&"\\"!==e&&IS(e.charCodeAt(0))||lE({},ES,zS),t+=e);return t}function XS(){var e,t;return e=$S,t=92===kS.charCodeAt($S)?YS():function(){var e,t;for(e=$S++;$S<DS;){if(92===(t=kS.charCodeAt($S)))return $S=e,YS();if(!IS(t))break;++$S}return kS.slice(e,$S)}(),{type:1===t.length?3:WS.hasOwnProperty(t)?4:"null"===t?5:"true"===t||"false"===t?1:3,value:t,start:e,end:$S}}function JS(){var e,t,n,i,r=$S,o=kS.charCodeAt($S),a=kS[$S];switch(o){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++$S,{type:7,value:String.fromCharCode(o),start:r,end:$S};default:if(61===(e=kS.charCodeAt($S+1)))switch(o){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return $S+=2,{type:7,value:String.fromCharCode(o)+String.fromCharCode(e),start:r,end:$S};case 33:case 61:return $S+=2,61===kS.charCodeAt($S)&&++$S,{type:7,value:kS.slice(r,$S),start:r,end:$S}}}return">>>="===(i=kS.substr($S,4))?{type:7,value:i,start:r,end:$S+=4}:">>>"===(n=i.substr(0,3))||"<<="===n||">>="===n?{type:7,value:n,start:r,end:$S+=3}:a===(t=n.substr(0,2))[1]&&"+-<>&|".includes(a)||"=>"===t?{type:7,value:t,start:r,end:$S+=2}:("//"===t&&lE({},ES,zS),"<>=!+-*%&|^/".includes(a)?{type:7,value:a,start:r,end:++$S}:void lE({},ES,zS))}function QS(){var e,t,n;if(BS(TS((n=kS[$S]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),t=$S,e="","."!==n){if(e=kS[$S++],n=kS[$S],"0"===e){if("x"===n||"X"===n)return++$S,function(e){let t="";for(;$S<DS&&PS(kS[$S]);)t+=kS[$S++];return 0===t.length&&lE({},ES,zS),US(kS.charCodeAt($S))&&lE({},ES,zS),{type:6,value:parseInt("0x"+t,16),start:e,end:$S}}(t);if(jS(n))return function(e){let t="0"+kS[$S++];for(;$S<DS&&jS(kS[$S]);)t+=kS[$S++];return(US(kS.charCodeAt($S))||TS(kS.charCodeAt($S)))&&lE({},ES,zS),{type:6,value:parseInt(t,8),octal:!0,start:e,end:$S}}(t);n&&TS(n.charCodeAt(0))&&lE({},ES,zS)}for(;TS(kS.charCodeAt($S));)e+=kS[$S++];n=kS[$S]}if("."===n){for(e+=kS[$S++];TS(kS.charCodeAt($S));)e+=kS[$S++];n=kS[$S]}if("e"===n||"E"===n)if(e+=kS[$S++],"+"!==(n=kS[$S])&&"-"!==n||(e+=kS[$S++]),TS(kS.charCodeAt($S)))for(;TS(kS.charCodeAt($S));)e+=kS[$S++];else lE({},ES,zS);return US(kS.charCodeAt($S))&&lE({},ES,zS),{type:6,value:parseFloat(e),start:t,end:$S}}function KS(){var e,t,n,i;return AS=null,HS(),e=$S,t=function(){var e,t,n,i;for(BS("/"===(e=kS[$S]),"Regular expression literal must start with a slash"),t=kS[$S++],n=!1,i=!1;$S<DS;)if(t+=e=kS[$S++],"\\"===e)qS((e=kS[$S++]).charCodeAt(0))&&lE({},CS),t+=e;else if(qS(e.charCodeAt(0)))lE({},CS);else if(n)"]"===e&&(n=!1);else{if("/"===e){i=!0;break}"["===e&&(n=!0)}return i||lE({},CS),{value:t.substr(1,t.length-2),literal:t}}(),n=function(){var e,t,n;for(t="",n="";$S<DS&&IS((e=kS[$S]).charCodeAt(0));)++$S,"\\"===e&&$S<DS?lE({},ES,zS):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&lE({},FS,n),{value:n,literal:t}}(),i=function(e,t){let n=e;t.includes("u")&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,((e,t)=>{if(parseInt(t,16)<=1114111)return"x";lE({},FS)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(i){lE({},FS)}try{return new RegExp(e,t)}catch(r){return null}}(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:$S}}function ZS(){if(HS(),$S>=DS)return{type:2,start:$S,end:$S};const e=kS.charCodeAt($S);return US(e)?XS():40===e||41===e||59===e?JS():39===e||34===e?function(){var e,t,n,i,r="",o=!1;for(BS("'"===(e=kS[$S])||'"'===e,"String literal must starts with a quote"),t=$S,++$S;$S<DS;){if((n=kS[$S++])===e){e="";break}if("\\"===n)if((n=kS[$S++])&&qS(n.charCodeAt(0)))"\r"===n&&"\n"===kS[$S]&&++$S;else switch(n){case"u":case"x":"{"===kS[$S]?(++$S,r+=VS()):r+=GS(n);break;case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;default:jS(n)?(0!==(i="01234567".indexOf(n))&&(o=!0),$S<DS&&jS(kS[$S])&&(o=!0,i=8*i+"01234567".indexOf(kS[$S++]),"0123".includes(n)&&$S<DS&&jS(kS[$S])&&(i=8*i+"01234567".indexOf(kS[$S++]))),r+=String.fromCharCode(i)):r+=n}else{if(qS(n.charCodeAt(0)))break;r+=n}}return""!==e&&lE({},ES,zS),{type:8,value:r,octal:o,start:t,end:$S}}():46===e?TS(kS.charCodeAt($S+1))?QS():JS():TS(e)?QS():JS()}function eE(){const e=AS;return $S=e.end,AS=ZS(),$S=e.end,e}function tE(){const e=$S;AS=ZS(),$S=e}function nE(e,t,n){const i=new wS("||"===e||"&&"===e?"LogicalExpression":"BinaryExpression");return i.operator=e,i.left=t,i.right=n,i}function iE(e,t){const n=new wS("CallExpression");return n.callee=e,n.arguments=t,n}function rE(e){const t=new wS(SS);return t.name=e,t}function oE(e){const t=new wS("Literal");return t.value=e.value,t.raw=kS.slice(e.start,e.end),e.regex&&("//"===t.raw&&(t.raw="/(?:)/"),t.regex=e.regex),t}function aE(e,t,n){const i=new wS("MemberExpression");return i.computed="["===e,i.object=t,i.property=n,i.computed||(n.member=!0),i}function sE(e,t,n){const i=new wS("Property");return i.key=t,i.value=n,i.kind=e,i}function lE(e,t){var n,i=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,((e,t)=>(BS(t<i.length,"Message reference must be in range"),i[t])));throw(n=new Error(r)).index=$S,n.description=r,n}function uE(e){2===e.type&&lE(e,"Unexpected end of input"),6===e.type&&lE(e,"Unexpected number"),8===e.type&&lE(e,"Unexpected string"),3===e.type&&lE(e,"Unexpected identifier"),4===e.type&&lE(e,"Unexpected reserved word"),lE(e,ES,e.value)}function cE(e){const t=eE();7===t.type&&t.value===e||uE(t)}function fE(e){return 7===AS.type&&AS.value===e}function dE(e){return 4===AS.type&&AS.value===e}function hE(){const e=[];for($S=AS.start,cE("[");!fE("]");)fE(",")?(eE(),e.push(null)):(e.push(DE()),fE("]")||cE(","));return eE(),function(e){const t=new wS("ArrayExpression");return t.elements=e,t}(e)}function pE(){$S=AS.start;const e=eE();return 8===e.type||6===e.type?(e.octal&&lE(e,MS),oE(e)):rE(e.value)}function mE(){var e,t,n;return $S=AS.start,3===(e=AS).type?(n=pE(),cE(":"),sE("init",n,DE())):2!==e.type&&7!==e.type?(t=pE(),cE(":"),sE("init",t,DE())):void uE(e)}function gE(){var e,t,n=[],i={},r=String;for($S=AS.start,cE("{");!fE("}");)t="$"+((e=mE()).key.type===SS?e.key.name:r(e.key.value)),Object.prototype.hasOwnProperty.call(i,t)?lE({},"Duplicate data property in object literal not allowed in strict mode"):i[t]=!0,n.push(e),fE("}")||cE(",");return cE("}"),function(e){const t=new wS("ObjectExpression");return t.properties=e,t}(n)}const yE={if:1};function vE(){var e,t,n;if(fE("("))return function(){cE("(");const e=AE();return cE(")"),e}();if(fE("["))return hE();if(fE("{"))return gE();if(e=AS.type,$S=AS.start,3===e||yE[AS.value])n=rE(eE().value);else if(8===e||6===e)AS.octal&&lE(AS,MS),n=oE(eE());else{if(4===e)throw new Error(OS);1===e?((t=eE()).value="true"===t.value,n=oE(t)):5===e?((t=eE()).value=null,n=oE(t)):fE("/")||fE("/=")?(n=oE(KS()),tE()):uE(eE())}return n}function bE(){const e=[];if(cE("("),!fE(")"))for(;$S<DS&&(e.push(DE()),!fE(")"));)cE(",");return cE(")"),e}function xE(){return cE("."),function(){$S=AS.start;const e=eE();return function(e){return 3===e.type||4===e.type||1===e.type||5===e.type}(e)||uE(e),rE(e.value)}()}function wE(){cE("[");const e=AE();return cE("]"),e}function _E(){const e=function(){var e;for(e=vE();;)if(fE("."))e=aE(".",e,xE());else if(fE("("))e=iE(e,bE());else{if(!fE("["))break;e=aE("[",e,wE())}return e}();if(7===AS.type&&(fE("++")||fE("--")))throw new Error(OS);return e}function kE(){var e,t;if(7!==AS.type&&4!==AS.type)t=_E();else{if(fE("++")||fE("--"))throw new Error(OS);if(fE("+")||fE("-")||fE("~")||fE("!"))e=eE(),t=kE(),t=function(e,t){const n=new wS("UnaryExpression");return n.operator=e,n.argument=t,n.prefix=!0,n}(e.value,t);else{if(dE("delete")||dE("void")||dE("typeof"))throw new Error(OS);t=_E()}}return t}function $E(e){let t=0;if(7!==e.type&&4!==e.type)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function DE(){var e,t;return e=function(){var e,t,n,i,r,o,a,s,l,u;if(e=AS,l=kE(),0===(r=$E(i=AS)))return l;for(i.prec=r,eE(),t=[e,AS],o=[l,i,a=kE()];(r=$E(AS))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,l=o.pop(),t.pop(),n=nE(s,l,a),o.push(n);(i=eE()).prec=r,o.push(i),t.push(AS),n=kE(),o.push(n)}for(n=o[u=o.length-1],t.pop();u>1;)t.pop(),n=nE(o[u-1].value,o[u-2],n),u-=2;return n}(),fE("?")&&(eE(),t=DE(),cE(":"),e=function(e,t,n){const i=new wS("ConditionalExpression");return i.test=e,i.consequent=t,i.alternate=n,i}(e,t,DE())),e}function AE(){const e=DE();if(fE(","))throw new Error(OS);return e}function SE(e){$S=0,DS=(kS=e).length,AS=null,tE();const t=AE();if(2!==AS.type)throw new Error("Unexpect token after expression.");return t}var EE={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function FE(e){function t(t,n,i){return r=>function(t,n,i,r){let o=e(n[0]);return i&&(o=i+"("+o+")",0===i.lastIndexOf("new ",0)&&(o="("+o+")")),o+"."+t+(r<0?"":0===r?"()":"("+n.slice(1).map(e).join(",")+")")}(t,r,n,i)}const n="new Date",i="String",r="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(t){t.length<3&&v("Missing arguments to clamp function."),t.length>3&&v("Too many arguments to clamp function.");const n=t.map(e);return"Math.max("+n[1]+", Math.min("+n[2]+","+n[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:n,date:t("getDate",n,0),day:t("getDay",n,0),year:t("getFullYear",n,0),month:t("getMonth",n,0),hours:t("getHours",n,0),minutes:t("getMinutes",n,0),seconds:t("getSeconds",n,0),milliseconds:t("getMilliseconds",n,0),time:t("getTime",n,0),timezoneoffset:t("getTimezoneOffset",n,0),utcdate:t("getUTCDate",n,0),utcday:t("getUTCDay",n,0),utcyear:t("getUTCFullYear",n,0),utcmonth:t("getUTCMonth",n,0),utchours:t("getUTCHours",n,0),utcminutes:t("getUTCMinutes",n,0),utcseconds:t("getUTCSeconds",n,0),utcmilliseconds:t("getUTCMilliseconds",n,0),length:t("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:t("toUpperCase",i,0),lower:t("toLowerCase",i,0),substring:t("substring",i),split:t("split",i),trim:t("trim",i,0),regexp:r,test:t("test",r),if:function(t){t.length<3&&v("Missing arguments to if function."),t.length>3&&v("Too many arguments to if function.");const n=t.map(e);return"("+n[0]+"?"+n[1]+":"+n[2]+")"}}}function CE(e){const n=(e=e||{}).allowed?se(e.allowed):{},r=e.forbidden?se(e.forbidden):{},o=e.constants||EE,a=(e.functions||FE)(h),s=e.globalvar,l=e.fieldvar,u=m(s)?s:e=>`${s}["${e}"]`;let c={},f={},d=0;function h(e){if(i(e))return e;const t=p[e.type];return null==t&&v("Unsupported type: "+e.type),t(e)}const p={Literal:e=>e.raw,Identifier:e=>{const i=e.name;return d>0?i:t(r,i)?v("Illegal identifier: "+i):t(o,i)?o[i]:t(n,i)?i:(c[i]=1,u(i))},MemberExpression:e=>{const t=!e.computed,n=h(e.object);t&&(d+=1);const i=h(e.property);return n===l&&(f[function(e){const t=e&&e.length-1;return t&&('"'===e[0]&&'"'===e[t]||"'"===e[0]&&"'"===e[t])?e.slice(1,-1):e}(i)]=1),t&&(d-=1),n+(t?"."+i:"["+i+"]")},CallExpression:e=>{"Identifier"!==e.callee.type&&v("Illegal callee type: "+e.callee.type);const n=e.callee.name,i=e.arguments,r=t(a,n)&&a[n];return r||v("Unrecognized function: "+n),m(r)?r(i):r+"("+i.map(h).join(",")+")"},ArrayExpression:e=>"["+e.elements.map(h).join(",")+"]",BinaryExpression:e=>"("+h(e.left)+" "+e.operator+" "+h(e.right)+")",UnaryExpression:e=>"("+e.operator+h(e.argument)+")",ConditionalExpression:e=>"("+h(e.test)+"?"+h(e.consequent)+":"+h(e.alternate)+")",LogicalExpression:e=>"("+h(e.left)+e.operator+h(e.right)+")",ObjectExpression:e=>"{"+e.properties.map(h).join(",")+"}",Property:e=>{d+=1;const t=h(e.key);return d-=1,t+":"+h(e.value)}};function g(e){const t={code:h(e),globals:Object.keys(c),fields:Object.keys(f)};return c={},f={},t}return g.functions=a,g.constants=o,g}const ME=Symbol("vega_selection_getter");function zE(e){return e.getter&&e.getter[ME]||(e.getter=q(e.field),e.getter[ME]=!0),e.getter}const OE="intersect",NE="union",RE="or",BE="and",TE="_vgsid_",PE=q(TE),jE="index:unit";function LE(e,t){for(var n,i,r=t.fields,o=t.values,a=r.length,s=0;s<a;++s)if(n=zE(i=r[s])(e),ge(n)&&(n=C(n)),ge(o[s])&&(o[s]=C(o[s])),u(o[s])&&ge(o[s][0])&&(o[s]=o[s].map(C)),"E"===i.type){if(u(o[s])?!o[s].includes(n):n!==o[s])return!1}else if("R"===i.type){if(!ye(n,o[s]))return!1}else if("R-RE"===i.type){if(!ye(n,o[s],!0,!1))return!1}else if("R-E"===i.type){if(!ye(n,o[s],!1,!1))return!1}else if("R-LE"===i.type){if(!ye(n,o[s],!1,!0))return!1}else if("E-LT"===i.type){if(n>=o[s])return!1}else if("E-LTE"===i.type){if(n>o[s])return!1}else if("E-GT"===i.type){if(n<=o[s])return!1}else if("E-GTE"===i.type){if(n<o[s])return!1}else if("E-VALID"===i.type){if(null===n||isNaN(n))return!1}else if("E-ONE"===i.type&&-1===o[s].indexOf(n))return!1;return!0}const qE=L(PE),UE=qE.left,IE=qE.right;var WE={[`${TE}_union`]:function(...e){const t=new Vn;for(const n of e)for(const e of n)t.add(e);return t},[`${TE}_intersect`]:function(e,...t){e=new Vn(e),t=t.map(si);e:for(const n of e)for(const i of t)if(!i.has(n)){e.delete(n);continue e}return e},E_union:function(e,t){if(!e.length)return t;for(var n=0,i=t.length;n<i;++n)e.includes(t[n])||e.push(t[n]);return e},E_intersect:function(e,t){return e.length?e.filter((e=>t.includes(e))):t},R_union:function(e,t){var n=C(t[0]),i=C(t[1]);return n>i&&(n=t[1],i=t[0]),e.length?(e[0]>n&&(e[0]=n),e[1]<i&&(e[1]=i),e):[n,i]},R_intersect:function(e,t){var n=C(t[0]),i=C(t[1]);return n>i&&(n=t[1],i=t[0]),e.length?i<e[0]||e[1]<n?[]:(e[0]<n&&(e[0]=n),e[1]>i&&(e[1]=i),e):[n,i]}};function HE(e,n,i,r){n[0].type!==fS&&v("First argument to selection functions must be a string literal.");const o=n[0].value,a="unit",s="@"+a,l=":"+o;(n.length>=2&&T(n).value)!==OE||t(r,s)||(r[s]=i.getData(o).indataRef(i,a)),t(r,l)||(r[l]=i.getData(o).tuplesRef())}function GE(e){const t=this.context.data[e];return t?t.values.value:[]}const VE=e=>function(t,n){const i=this.context.dataflow.locale();return null===t?"null":i[e](n)(t)},YE=VE("format"),XE=VE("timeFormat"),JE=VE("utcFormat"),QE=VE("timeParse"),KE=VE("utcParse"),ZE=new Date(2e3,0,1);function eF(e,t,n){return Number.isInteger(e)&&Number.isInteger(t)?(ZE.setYear(2e3),ZE.setMonth(e),ZE.setDate(t),XE.call(this,ZE,n)):""}function tF(e,n,i,r){n[0].type!==fS&&v("First argument to data functions must be a string literal.");const o=n[0].value,a=":"+o;if(!t(a,r))try{r[a]=i.getData(o).tuplesRef()}catch(s){}}function nF(e,t,n,i){if(t[0].type===fS)iF(n,i,t[0].value);else for(e in n.scales)iF(n,i,e)}function iF(e,n,i){const r="%"+i;if(!t(n,r))try{n[r]=e.scaleRef(i)}catch(o){}}function rF(e,t){if(i(e)){const i=t.scales[e];return i&&((n=i.value)&&!0===n[zf])?i.value:void 0}var n}function oF(e,t,n){t.__bandwidth=e=>e&&e.bandwidth?e.bandwidth():0,n._bandwidth=nF,n._range=nF,n._scale=nF;const i=t=>"_["+(t.type===fS?o("%"+t.value):o("%")+"+"+e(t))+"]";return{_bandwidth:e=>`this.__bandwidth(${i(e[0])})`,_range:e=>`${i(e[0])}.range()`,_scale:t=>`${i(t[0])}(${e(t[1])})`}}function aF(e,t){return function(n,i,r){if(n){const t=rF(n,(r||this).context);return t&&t.path[e](i)}return t(i)}}const sF=aF("area",(function(e){return Gb=new Kn,Eb(e,Vb),2*Gb})),lF=aF("bounds",(function(e){var t,n,i,r,o,a,s;if(Tb=Bb=-(Nb=Rb=1/0),Ib=[],Eb(e,wx),n=Ib.length){for(Ib.sort(Cx),t=1,o=[i=Ib[0]];t<n;++t)Mx(i,(r=Ib[t])[0])||Mx(i,r[1])?(Fx(i[0],r[1])>Fx(i[0],i[1])&&(i[1]=r[1]),Fx(r[0],i[1])>Fx(i[0],i[1])&&(i[0]=r[0])):o.push(i=r);for(a=-1/0,t=0,i=o[n=o.length-1];t<=n;i=r,++t)r=o[t],(s=Fx(i[1],r[0]))>a&&(a=s,Nb=r[0],Bb=i[1])}return Ib=Wb=null,Nb===1/0||Rb===1/0?[[NaN,NaN],[NaN,NaN]]:[[Nb,Rb],[Bb,Tb]]})),uF=aF("centroid",(function(e){ox=ax=sx=lx=ux=cx=fx=dx=0,hx=new Kn,px=new Kn,mx=new Kn,Eb(e,zx);var t=+hx,n=+px,i=+mx,r=hb(t,n,i);return r<eb&&(t=cx,n=fx,i=dx,ax<Zv&&(t=sx,n=lx,i=ux),(r=hb(t,n,i))<eb)?[NaN,NaN]:[ub(n,t)*ob,wb(i/r)*ob]}));function cF(e,t,n){try{e[t].apply(e,["EXPRESSION"].concat([].slice.call(n)))}catch(i){e.warn(i)}return n[n.length-1]}function fF(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function dF(e){const t=Un(e);return.2126*fF(t.r)+.7152*fF(t.g)+.0722*fF(t.b)}function hF(e,t){return e===t||e!=e&&t!=t||(u(e)?!(!u(t)||e.length!==t.length)&&function(e,t){for(let n=0,i=e.length;n<i;++n)if(!hF(e[n],t[n]))return!1;return!0}(e,t):!(!a(e)||!a(t))&&pF(e,t))}function pF(e,t){for(const n in e)if(!hF(e[n],t[n]))return!1;return!0}function mF(e){return t=>pF(e,t)}const gF={};function yF(e){return u(e)||ArrayBuffer.isView(e)?e:null}function vF(e){return yF(e)||(i(e)?e:null)}const bF=e=>e.data;function xF(e,t){const n=GE.call(t,e);return n.root&&n.root.lookup||{}}const wF=()=>"undefined"!=typeof window&&window||null;function _F(e,t,n){if(!e)return[];const[i,r]=e,o=(new xh).set(i[0],i[1],r[0],r[1]);return iy(n||this.context.dataflow.scenegraph().root,o,function(e){let t=null;if(e){const n=c(e.marktype),i=c(e.markname);t=e=>(!n.length||n.some((t=>e.marktype===t)))&&(!i.length||i.some((t=>e.name===t)))}return t}(t))}const kF={random:()=>cl(),cumulativeNormal:vl,cumulativeLogNormal:$l,cumulativeUniform:Cl,densityNormal:yl,densityLogNormal:kl,densityUniform:Fl,quantileNormal:bl,quantileLogNormal:Dl,quantileUniform:Ml,sampleNormal:gl,sampleLogNormal:_l,sampleUniform:El,isArray:u,isBoolean:l,isDate:ge,isDefined:e=>void 0!==e,isNumber:n,isObject:a,isRegExp:Le,isString:i,isTuple:ws,isValid:e=>null!=e&&e==e,toBoolean:je,toDate:e=>qe(e),toNumber:C,toString:Pe,indexof:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return vF(e).indexOf(...n)},join:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return yF(e).join(...n)},lastindexof:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return vF(e).lastIndexOf(...n)},replace:function(e,t,n){return m(n)&&v("Function argument passed to replace."),String(e).replace(t,n)},reverse:function(e){return yF(e).slice().reverse()},sort:function(e){return yF(e).slice().sort(z)},slice:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return vF(e).slice(...n)},flush:Te,lerp:Be,merge:function(){const e=[].slice.call(arguments);return e.unshift({}),D(...e)},pad:Re,peek:T,pluck:function(e,t){const n=gF[t]||(gF[t]=q(t));return u(e)?e.map(n):n(e)},span:I,inrange:ye,truncate:Ne,rgb:Un,lab:bt,hcl:St,hsl:en,luminance:dF,contrast:function(e,t){const n=dF(e),i=dF(t);return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)},sequence:Ht,format:YE,utcFormat:JE,utcParse:KE,utcOffset:Oe,utcSequence:ze,timeFormat:XE,timeParse:QE,timeOffset:Me,timeSequence:Ce,timeUnitSpecifier:Fe,monthFormat:function(e){return eF.call(this,e,1,"%B")},monthAbbrevFormat:function(e){return eF.call(this,e,1,"%b")},dayFormat:function(e){return eF.call(this,0,2+e,"%A")},dayAbbrevFormat:function(e){return eF.call(this,0,2+e,"%a")},quarter:Ee,utcquarter:Se,week:Ae,utcweek:De,dayofyear:$e,utcdayofyear:ke,warn:function(){return cF(this.context.dataflow,"warn",arguments)},info:function(){return cF(this.context.dataflow,"info",arguments)},debug:function(){return cF(this.context.dataflow,"debug",arguments)},extent:e=>M(e),inScope:function(e){const t=this.context.group;let n=!1;if(t)for(;e;){if(e===t){n=!0;break}e=e.mark.group}return n},intersect:_F,clampRange:_e,pinchDistance:function(e){const t=e.touches,n=t[0].clientX-t[1].clientX,i=t[0].clientY-t[1].clientY;return Math.hypot(n,i)},pinchAngle:function(e){const t=e.touches;return Math.atan2(t[0].clientY-t[1].clientY,t[0].clientX-t[1].clientX)},screen:function(){const e=wF();return e?e.screen:{}},containerSize:function(){const e=this.context.dataflow,t=e.container&&e.container();return t?[t.clientWidth,t.clientHeight]:[void 0,void 0]},windowSize:function(){const e=wF();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]},bandspace:function(e,t,n){return of(e||0,t||0,n||0)},setdata:function(e,t){const n=this.context.dataflow,i=this.context.data[e].input;return n.pulse(i,n.changeset().remove(x).insert(t)),1},pathShape:function(e){let t=null;return function(n){return n?Id(n,t=t||zd(e)):e}},panLinear:we,panLog:xe,panPow:be,panSymlog:ve,zoomLinear:pe,zoomLog:fe,zoomPow:de,zoomSymlog:he,encode:function(e,t,n){if(e){const n=this.context.dataflow,i=e.mark.source;n.pulse(i,n.changeset().encode(e,t))}return void 0!==n?n:e},modify:function(e,t,n,i,r,o){const a=this.context.dataflow,s=this.context.data[e],l=s.input,c=a.stamp();let f,d,h=s.changes;if(!1===a._trigger||!(l.value.length||t||i))return 0;if((!h||h.stamp<c)&&(s.changes=h=a.changeset(),h.stamp=c,a.runAfter((()=>{s.modified=!0,a.pulse(l,h).run()}),!0,1)),n&&(f=!0===n?x:u(n)||ws(n)?n:mF(n),h.remove(f)),t&&h.insert(t),i&&(f=mF(i),l.value.some(f)?h.remove(f):h.insert(i)),r)for(d in o)h.modify(r,d,o[d]);return 1},lassoAppend:function(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5;const r=(e=c(e))[e.length-1];return void 0===r||Math.hypot(r[0]-t,r[1]-n)>i?[...e,[t,n]]:e},lassoPath:function(e){return c(e).reduce(((t,n,i)=>{let[r,o]=n;return t+(0==i?`M ${r},${o} `:i===e.length-1?" Z":`L ${r},${o} `)}),"")},intersectLasso:function(e,t,n){const{x:i,y:r,mark:o}=n,a=(new xh).set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[s,l]of t)s<a.x1&&(a.x1=s),s>a.x2&&(a.x2=s),l<a.y1&&(a.y1=l),l>a.y2&&(a.y2=l);return a.translate(i,r),_F([[a.x1,a.y1],[a.x2,a.y2]],e,o).filter((e=>function(e,t,n){let i=0;for(let r=0,o=n.length-1;r<n.length;o=r++){const[a,s]=n[o],[l,u]=n[r];u>t!=s>t&&e<(a-l)*(t-u)/(s-u)+l&&i++}return 1&i}(e.x,e.y,t)))}},$F=["view","item","group","xy","x","y"],DF="this.",AF={},SF={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:e=>`_[${o("$"+e)}]`,functions:function(e){const t=FE(e);$F.forEach((e=>t[e]="event.vega."+e));for(const n in kF)t[n]=DF+n;return D(t,oF(e,kF,AF)),t},constants:EE,visitors:AF},EF=CE(SF);function FF(e,t,n){return 1===arguments.length?kF[e]:(kF[e]=t,n&&(AF[e]=n),EF&&(EF.functions[e]=DF+e),this)}function CF(e,n){const r={};let a;try{a=SE(e=i(e)?e:o(e)+"")}catch(l){v("Expression parse error: "+e)}a.visit((e=>{if(e.type!==mS)return;const t=e.callee.name,i=SF.visitors[t];i&&i(t,e.arguments,n,r)}));const s=EF(a);return s.globals.forEach((e=>{const i="$"+e;!t(r,i)&&n.getSignal(e)&&(r[i]=n.signalRef(e))})),{$expr:D({code:s.code},n.options.ast?{ast:a}:null),$fields:s.fields,$params:r}}FF("bandwidth",(function(e,t){const n=rF(e,(t||this).context);return n&&n.bandwidth?n.bandwidth():0}),nF),FF("copy",(function(e,t){const n=rF(e,(t||this).context);return n?n.copy():void 0}),nF),FF("domain",(function(e,t){const n=rF(e,(t||this).context);return n?n.domain():[]}),nF),FF("range",(function(e,t){const n=rF(e,(t||this).context);return n&&n.range?n.range():[]}),nF),FF("invert",(function(e,t,n){const i=rF(e,(n||this).context);return i?u(t)?(i.invertRange||i.invert)(t):(i.invert||i.invertExtent)(t):void 0}),nF),FF("scale",(function(e,t,n){const i=rF(e,(n||this).context);return i?i(t):void 0}),nF),FF("gradient",(function(e,t,n,i,r){let o="string"==typeof e?rF(e,(r||this).context):e;const a=$d(t,n);let s=o.domain(),l=s[0],u=T(s),c=y;return u-l?c=Vf(o,l,u):o=(o.interpolator?Nf("sequential")().interpolator(o.interpolator()):Nf("linear")().interpolate(o.interpolate()).range(o.range())).domain([l=0,u=1]),o.ticks&&(s=o.ticks(+i||15),l!==s[0]&&s.unshift(l),u!==T(s)&&s.push(u)),s.forEach((e=>a.stop(c(e),o(e)))),a}),nF),FF("geoArea",sF,nF),FF("geoBounds",lF,nF),FF("geoCentroid",uF,nF),FF("geoShape",(function(e,t,n){const i=rF(e,(n||this).context);return function(e){return i?i.path.context(e)(t):""}}),nF),FF("geoScale",(function(e,t){const n=rF(e,(t||this).context);return n&&n.scale()}),nF),FF("indata",(function(e,t,n){const i=this.context.data[e]["index:"+t],r=i?i.value.get(n):void 0;return r?r.count:r}),(function(e,n,i,r){n[0].type!==fS&&v("First argument to indata must be a string literal."),n[1].type!==fS&&v("Second argument to indata must be a string literal.");const o=n[0].value,a=n[1].value,s="@"+a;t(s,r)||(r[s]=i.getData(o).indataRef(i,a))})),FF("data",GE,tF),FF("treePath",(function(e,t,n){const i=xF(e,this),r=i[t],o=i[n];return r&&o?r.path(o).map(bF):void 0}),tF),FF("treeAncestors",(function(e,t){const n=xF(e,this)[t];return n?n.ancestors().map(bF):void 0}),tF),FF("vlSelectionTest",(function(e,t,n){for(var i,r,o,a,s,l=this.context.data[e],u=l?l.values.value:[],c=l?l[jE]&&l[jE].value:void 0,f=n===OE,d=u.length,h=0;h<d;++h)if(i=u[h],c&&f){if(-1===(o=(r=r||{})[a=i.unit]||0))continue;if(s=LE(t,i),r[a]=s?-1:++o,s&&1===c.size)return!0;if(!s&&o===c.get(a).count)return!1}else if(f^(s=LE(t,i)))return s;return d&&f}),HE),FF("vlSelectionIdTest",(function(e,t,n){const i=this.context.data[e],r=i?i.values.value:[],o=i?i[jE]&&i[jE].value:void 0,a=n===OE,s=PE(t),l=UE(r,s);if(l===r.length)return!1;if(PE(r[l])!==s)return!1;if(o&&a){if(1===o.size)return!0;if(IE(r,s)-l<o.size)return!1}return!0}),HE),FF("vlSelectionResolve",(function(e,t,n,i){for(var r,o,a,s,l,u,f,d,h,p,m,g,y=this.context.data[e],v=y?y.values.value:[],b={},x={},w={},_=v.length,k=0;k<_;++k)if(s=(r=v[k]).unit,o=r.fields,a=r.values,o&&a){for(m=0,g=o.length;m<g;++m)l=o[m],d=(f=b[l.field]||(b[l.field]={}))[s]||(f[s]=[]),w[l.field]=h=l.type.charAt(0),p=WE[`${h}_union`],f[s]=p(d,c(a[m]));n&&(d=x[s]||(x[s]=[])).push(c(a).reduce(((e,t,n)=>(e[o[n].field]=t,e)),{}))}else l=TE,u=PE(r),(d=(f=b[l]||(b[l]={}))[s]||(f[s]=[])).push(u),n&&(d=x[s]||(x[s]=[])).push({[TE]:u});if(t=t||NE,b[TE]?b[TE]=WE[`${TE}_${t}`](...Object.values(b[TE])):Object.keys(b).forEach((e=>{b[e]=Object.keys(b[e]).map((t=>b[e][t])).reduce(((n,i)=>void 0===n?i:WE[`${w[e]}_${t}`](n,i)))})),v=Object.keys(x),n&&v.length){b[i?"vlPoint":"vlMulti"]=t===NE?{[RE]:v.reduce(((e,t)=>(e.push(...x[t]),e)),[])}:{[BE]:v.map((e=>({[RE]:x[e]})))}}return b}),HE),FF("vlSelectionTuples",(function(e,t){return e.map((e=>D(t.fields?{values:t.fields.map((t=>zE(t)(e.datum)))}:{[TE]:PE(e.datum)},t)))}));const MF=se(["rule"]),zF=se(["group","image","rect"]);function OF(e){return(e+"").toLowerCase()}function NF(e,t,n){n.endsWith(";")||(n="return("+n+");");const i=Function(...t.concat(n));return e&&e.functions?i.bind(e.functions):i}var RF={operator:(e,t)=>NF(e,["_"],t.code),parameter:(e,t)=>NF(e,["datum","_"],t.code),event:(e,t)=>NF(e,["event"],t.code),handler:(e,t)=>NF(e,["_","event"],`var datum=event.item&&event.item.datum;return ${t.code};`),encode:(e,t)=>{const{marktype:n,channels:i}=t;let r="var o=item,datum=o.datum,m=0,$;";for(const a in i){const e="o["+o(a)+"]";r+=`$=${i[a].code};if(${e}!==$)${e}=$,m=1;`}return r+=function(e,t){let n="";return MF[t]||(e.x2&&(e.x?(zF[t]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),e.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),e.y2&&(e.y?(zF[t]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),e.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}(i,n),r+="return m;",NF(e,["item","_"],r)},codegen:{get(e){const t=`[${e.map(o).join("][")}]`,n=Function("_",`return _${t};`);return n.path=t,n},comparator(e,t){let n;const i=Function("a","b","var u, v; return "+e.map(((e,i)=>{const r=t[i];let o,a;return e.path?(o=`a${e.path}`,a=`b${e.path}`):((n=n||{})["f"+i]=e,o=`this.f${i}(a)`,a=`this.f${i}(b)`),function(e,t,n,i){return`((u = ${e}) < (v = ${t}) || u == null) && v != null ? ${n}\n : (u > v || v == null) && u != null ? ${i}\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}\n : v !== v && u === u ? ${i} : `}(o,a,-r,r)})).join("")+"0;");return n?i.bind(n):i}}};function BF(e,n,i){if(!e||!a(e))return e;for(let r,o=0,a=TF.length;o<a;++o)if(r=TF[o],t(e,r.key))return r.parse(e,n,i);return e}var TF=[{key:"$ref",parse:function(e,t){return t.get(e.$ref)||v("Operator not defined: "+e.$ref)}},{key:"$key",parse:function(e,t){const n="k:"+e.$key+"_"+!!e.$flat;return t.fn[n]||(t.fn[n]=G(e.$key,e.$flat,t.expr.codegen))}},{key:"$expr",parse:function(e,t,n){e.$params&&t.parseParameters(e.$params,n);const i="e:"+e.$expr.code;return t.fn[i]||(t.fn[i]=F(t.parameterExpression(e.$expr),e.$fields))}},{key:"$field",parse:function(e,t){if(!e.$field)return null;const n="f:"+e.$field+"_"+e.$name;return t.fn[n]||(t.fn[n]=q(e.$field,e.$name,t.expr.codegen))}},{key:"$encode",parse:function(e,t){const n=e.$encode,i={};for(const r in n){const e=n[r];i[r]=F(t.encodeExpression(e.$expr),e.$fields),i[r].output=e.$output}return i}},{key:"$compare",parse:function(e,t){const n="c:"+e.$compare+"_"+e.$order,i=c(e.$compare).map((e=>e&&e.$tupleid?_s:e));return t.fn[n]||(t.fn[n]=H(i,e.$order,t.expr.codegen))}},{key:"$context",parse:function(e,t){return t}},{key:"$subflow",parse:function(e,t){const n=e.$subflow;return function(e,i,r){const o=t.fork().parse(n),a=o.get(n.operators[0].id),s=o.signals.parent;return s&&s.set(r),a.detachSubflow=()=>t.detach(o),a}}},{key:"$tupleid",parse:function(){return _s}}];const PF={skip:!0};function jF(e,t,n,i){return new LF(e,t,n,i)}function LF(e,t,n,i){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=i||RF,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function qF(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}function UF(e,t){e&&(null==t?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}LF.prototype=qF.prototype={fork(){const e=new qF(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter((t=>t!==e));const t=Object.keys(e.nodes);for(const n of t)e.nodes[n]._targets=null;for(const n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){const n=this,i=n.dataflow,r=e.value;if(n.set(e.id,t),"collect"===OF(e.type)&&r&&(r.$ingest?i.ingest(t,r.$ingest,r.$format):r.$request?i.preload(t,r.$request,r.$format):i.pulse(t,i.changeset().insert(r))),e.root&&(n.root=t),e.parent){let r=n.get(e.parent.$ref);r?(i.connect(r,[t]),t.targets().add(r)):(n.unresolved=n.unresolved||[]).push((()=>{r=n.get(e.parent.$ref),i.connect(r,[t]),t.targets().add(r)}))}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(const o in e.data){const i=n.data[o]||(n.data[o]={});e.data[o].forEach((e=>i[e]=t))}},resolve(){return(this.unresolved||[]).forEach((e=>e())),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[OF(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,i,r){this.dataflow.on(t,n,i,r,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:function(e){const t=this,n=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),n.forEach((e=>t.parseOperator(e))),n.forEach((e=>t.parseOperatorParameters(e))),(e.streams||[]).forEach((e=>t.parseStream(e))),(e.updates||[]).forEach((e=>t.parseUpdate(e))),t.resolve()},parseOperator:function(e){const t=this;"operator"!==OF(e.type)&&e.type?t.transform(e,e.type):t.operator(e,e.update?t.operatorExpression(e.update):null)},parseOperatorParameters:function(e){const t=this;if(e.params){const n=t.get(e.id);n||v("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}},parseParameters:function(e,t){t=t||{};const n=this;for(const i in e){const r=e[i];t[i]=u(r)?r.map((e=>BF(e,n,t))):BF(r,n,t)}return t},parseStream:function(e){var t,n=this,i=null!=e.filter?n.eventExpression(e.filter):void 0,r=null!=e.stream?n.get(e.stream):void 0;e.source?r=n.events(e.source,e.type,i):e.merge&&(r=(t=e.merge.map((e=>n.get(e))))[0].merge.apply(t[0],t.slice(1))),e.between&&(t=e.between.map((e=>n.get(e))),r=r.between(t[0],t[1])),e.filter&&(r=r.filter(i)),null!=e.throttle&&(r=r.throttle(+e.throttle)),null!=e.debounce&&(r=r.debounce(+e.debounce)),null==r&&v("Invalid stream definition: "+JSON.stringify(e)),e.consume&&r.consume(!0),n.stream(e,r)},parseUpdate:function(e){var t,n=this,i=a(i=e.source)?i.$ref:i,r=n.get(i),o=e.update,s=void 0;r||v("Source not defined: "+e.source),t=e.target&&e.target.$expr?n.eventExpression(e.target.$expr):n.get(e.target),o&&o.$expr&&(o.$params&&(s=n.parseParameters(o.$params)),o=n.handlerExpression(o.$expr)),n.update(e,r,t,o,s)},getState:function(e){var t=this,n={};if(e.signals){var i=n.signals={};Object.keys(t.signals).forEach((n=>{const r=t.signals[n];e.signals(n,r)&&(i[n]=r.value)}))}if(e.data){var r=n.data={};Object.keys(t.data).forEach((n=>{const i=t.data[n];e.data(n,i)&&(r[n]=i.input.value)}))}return t.subcontext&&!1!==e.recurse&&(n.subcontext=t.subcontext.map((t=>t.getState(e)))),n},setState:function(e){var t=this,n=t.dataflow,i=e.data,r=e.signals;Object.keys(r||{}).forEach((e=>{n.update(t.signals[e],r[e],PF)})),Object.keys(i||{}).forEach((e=>{n.pulse(t.data[e].input,n.changeset().remove(x).insert(i[e]))})),(e.subcontext||[]).forEach(((e,n)=>{const i=t.subcontext[n];i&&i.setState(e)}))}};const IF="default";function WF(e,t){const n=e.globalCursor()?"undefined"!=typeof document&&document.body:e.container();if(n)return null==t?n.style.removeProperty("cursor"):n.style.cursor=t}function HF(e,n){var i=e._runtime.data;return t(i,n)||v("Unrecognized data set: "+n),i[n]}function GF(e,t){Fs(t)||v("Second argument to changes must be a changeset.");const n=HF(this,e);return n.modified=!0,this.pulse(n.input,t)}function VF(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function YF(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function XF(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}function JF(e,t,n){var r,o,a=e._renderer,s=a&&a.canvas();return s&&(o=XF(e),(r=Cm(t.changedTouches?t.changedTouches[0]:t,s))[0]-=o[0],r[1]-=o[1]),t.dataflow=e,t.item=n,t.vega=function(e,t,n){const r=t?"group"===t.mark.marktype?t:t.mark.group:null;function o(e){var n,i=r;if(e)for(n=t;n;n=n.mark.group)if(n.mark.name===e){i=n;break}return i&&i.mark&&i.mark.interactive?i:{}}function a(e){if(!e)return n;i(e)&&(e=o(e));const t=n.slice();for(;e;)t[0]-=e.x||0,t[1]-=e.y||0,e=e.mark&&e.mark.group;return t}return{view:g(e),item:g(t||{}),group:o,xy:a,x:e=>a(e)[0],y:e=>a(e)[1]}}(e,n,r),t}const QF="view",KF={trap:!1};function ZF(e,t,n,i){e._eventListeners.push({type:n,sources:c(t),handler:i})}function eC(e,t,n){const i=e._eventConfig&&e._eventConfig[t];return!(!1===i||a(i)&&!i[n])||(e.warn(`Blocked ${t} ${n} event listener.`),!1)}function tC(e){return e.item}function nC(e){return e.item.mark.source}function iC(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function rC(e,t,n){const i=document.createElement(e);for(const r in t)i.setAttribute(r,t[r]);return null!=n&&(i.textContent=n),i}function oC(e,t,n,i){const r=n.event||"input",o=()=>e.update(t.value);i.signal(n.signal,t.value),t.addEventListener(r,o),ZF(i,t,r,o),e.set=e=>{t.value=e,t.dispatchEvent(function(e){return"undefined"!=typeof Event?new Event(e):{type:e}}(r))}}function aC(e,t,n,i){const r=i.signal(n.signal),o=rC("div",{class:"vega-bind"}),a="radio"===n.input?o:o.appendChild(rC("label"));a.appendChild(rC("span",{class:"vega-bind-name"},n.name||n.signal)),t.appendChild(o);let s=sC;switch(n.input){case"checkbox":s=lC;break;case"select":s=uC;break;case"radio":s=cC;break;case"range":s=fC}s(e,a,n,r)}function sC(e,t,n,i){const r=rC("input");for(const o in n)"signal"!==o&&"element"!==o&&r.setAttribute("input"===o?"type":o,n[o]);r.setAttribute("name",n.signal),r.value=i,t.appendChild(r),r.addEventListener("input",(()=>e.update(r.value))),e.elements=[r],e.set=e=>r.value=e}function lC(e,t,n,i){const r={type:"checkbox",name:n.signal};i&&(r.checked=!0);const o=rC("input",r);t.appendChild(o),o.addEventListener("change",(()=>e.update(o.checked))),e.elements=[o],e.set=e=>o.checked=!!e||null}function uC(e,t,n,i){const r=rC("select",{name:n.signal}),o=n.labels||[];n.options.forEach(((e,t)=>{const n={value:e};dC(e,i)&&(n.selected=!0),r.appendChild(rC("option",n,(o[t]||e)+""))})),t.appendChild(r),r.addEventListener("change",(()=>{e.update(n.options[r.selectedIndex])})),e.elements=[r],e.set=e=>{for(let t=0,i=n.options.length;t<i;++t)if(dC(n.options[t],e))return void(r.selectedIndex=t)}}function cC(e,t,n,i){const r=rC("span",{class:"vega-bind-radio"}),o=n.labels||[];t.appendChild(r),e.elements=n.options.map(((t,a)=>{const s={type:"radio",name:n.signal,value:t};dC(t,i)&&(s.checked=!0);const l=rC("input",s);l.addEventListener("change",(()=>e.update(t)));const u=rC("label",{},(o[a]||t)+"");return u.prepend(l),r.appendChild(u),l})),e.set=t=>{const n=e.elements,i=n.length;for(let e=0;e<i;++e)dC(n[e].value,t)&&(n[e].checked=!0)}}function fC(e,t,n,i){i=void 0!==i?i:(+n.max+ +n.min)/2;const r=null!=n.max?n.max:Math.max(100,+i)||100,o=n.min||Math.min(0,r,+i)||0,a=n.step||me(o,r,100),s=rC("input",{type:"range",name:n.signal,min:o,max:r,step:a});s.value=i;const l=rC("span",{},+i);t.appendChild(s),t.appendChild(l);const u=()=>{l.textContent=s.value,e.update(+s.value)};s.addEventListener("input",u),s.addEventListener("change",u),e.elements=[s],e.set=e=>{s.value=e,l.textContent=e}}function dC(e,t){return e===t||e+""==t+""}function hC(e,t,n,i,r,o){return(t=t||new i(e.loader())).initialize(n,VF(e),YF(e),XF(e),r,o).background(e.background())}function pC(e,t){return t?function(){try{t.apply(this,arguments)}catch(n){e.error(n)}}:null}function mC(e,t,n){if("string"==typeof t){if("undefined"==typeof document)return e.error("DOM document instance not found."),null;if(!(t=document.querySelector(t)))return e.error("Signal bind element not found: "+t),null}if(t&&n)try{t.textContent=""}catch(i){t=null,e.error(i)}return t}const gC=e=>+e||0;function yC(e){return a(e)?{top:gC(e.top),bottom:gC(e.bottom),left:gC(e.left),right:gC(e.right)}:(e=>({top:e,bottom:e,left:e,right:e}))(gC(e))}async function vC(e,t,n,i){const r=ny(t),o=r&&r.headless;return o||v("Unrecognized renderer type: "+t),await e.runAsync(),hC(e,null,null,o,n,i).renderAsync(e._scenegraph.root)}var bC="width",xC="height",wC="padding",_C={skip:!0};function kC(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===wC?i.left+i.right:0)}function $C(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===wC?i.top+i.bottom:0)}function DC(e,t){return t.modified&&u(t.input.value)&&!e.startsWith("_:vega:_")}function AC(e,t){return!("parent"===e||t instanceof nl.proxy)}function SC(e,t,n,i){const r=e.element();r&&r.setAttribute("title",function(e){return null==e?"":u(e)?EC(e):a(e)&&!ge(e)?(t=e,Object.keys(t).map((e=>{const n=t[e];return e+": "+(u(n)?EC(n):FC(n))})).join("\n")):e+"";var t}(i))}function EC(e){return"["+e.map(FC).join(", ")+"]"}function FC(e){return u(e)?"[…]":a(e)&&!ge(e)?"{…}":e}function CC(e,t){const n=this;if(t=t||{},Zs.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),null!=t.logLevel&&n.logLevel(t.logLevel),t.locale||e.locale){const i=D({},e.locale,t.locale);n.locale(Ue(i.number,i.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||ey.Canvas,n._scenegraph=new km;const r=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||SC,n._redraw=!0,n._handler=(new eg).scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=function(e){const t=D({defaults:{}},e),n=(e,t)=>{t.forEach((t=>{u(e[t])&&(e[t]=se(e[t]))}))};return n(t.defaults,["prevent","allow"]),n(t,["view","window","selector"]),t}(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const o=function(e,t,n){return jF(e,nl,kF,n).parse(t)}(n,e,t.expr);n._runtime=o,n._signals=o.signals,n._bind=(e.bindings||[]).map((e=>({state:null,param:D({},e)}))),o.root&&o.root.set(r),r.source=o.data.root.input,n.pulse(o.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=kC(n,n._width),n._viewHeight=$C(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,function(e){var t=e._signals,n=t[bC],i=t[xC],r=t[wC];function o(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,(t=>{e._width=t.size,e._viewWidth=kC(e,t.size),o()}),{size:n}),e._resizeHeight=e.add(null,(t=>{e._height=t.size,e._viewHeight=$C(e,t.size),o()}),{size:i});const a=e.add(null,o,{pad:r});e._resizeWidth.rank=n.rank+1,e._resizeHeight.rank=i.rank+1,a.rank=r.rank+1}(n),function(e){e.add(null,(t=>(e._background=t.bg,e._resize=1,t.bg)),{bg:e._signals.background})}(n),function(e){const t=e._signals.cursor||(e._signals.cursor=e.add({user:IF,item:null}));e.on(e.events("view","pointermove"),t,((e,n)=>{const r=t.value,o=r?i(r)?r:r.user:IF,a=n.item&&n.item.cursor||null;return r&&o===r.user&&a==r.item?r:{user:o,item:a}})),e.add(null,(function(t){let n=t.cursor,r=this.value;return i(n)||(r=n.item,n=n.user),WF(e,n&&n!==IF?n:r||n),r}),{cursor:t})}(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind),t.watchPixelRatio&&n._watchPixelRatio()}function MC(e,n){return t(e._signals,n)?e._signals[n]:v("Unrecognized signal name: "+o(n))}function zC(e,t){const n=(e._targets||[]).filter((e=>e._update&&e._update.handler===t));return n.length?n[0]:null}function OC(e,t,n,i){let r=zC(n,i);return r||(r=pC(e,(()=>i(t,n.value))),r.handler=i,e.on(n,null,r)),e}function NC(e,t,n){const i=zC(t,n);return i&&t._targets.remove(i),e}_(CC,Zs,{async evaluate(e,t,n){if(await Zs.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,r=XF(i=this),o=VF(i),a=YF(i),i._renderer.background(i.background()),i._renderer.resize(o,a,r),i._handler.origin(r),i._resizeListeners.forEach((e=>{try{e(o,a)}catch(t){i.error(t)}}))),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(s){this.error(s)}var i,r,o,a;return n&&vs(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=null!=e?e+"":null;return t!==this._desc&&UF(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const i=MC(this,e);return 1===arguments.length?i.value:this.update(i,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",yC(e)):yC(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(ny(e)||v("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(Zs.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(MC(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,n,i,r,o){this.runAfter((a=>{let s=0;a._autosize=0,a.width()!==n&&(s=1,a.signal(bC,n,_C),a._resizeWidth.skip(!0)),a.height()!==i&&(s=1,a.signal(xC,i,_C),a._resizeHeight.skip(!0)),a._viewWidth!==e&&(a._resize=1,a._viewWidth=e),a._viewHeight!==t&&(a._resize=1,a._viewHeight=t),a._origin[0]===r[0]&&a._origin[1]===r[1]||(a._resize=1,a._origin=r),s&&a.run("enter"),o&&a.runAfter((e=>e.resize()))}),!1,1)},addEventListener(e,t,n){let i=t;return n&&!1===n.trap||(i=pC(this,t),i.raw=t),this._handler.on(e,i),this},removeEventListener(e,t){for(var n,i,r=this._handler.handlers(e),o=r.length;--o>=0;)if(i=r[o].type,n=r[o].handler,e===i&&(t===n||t===n.raw)){this._handler.off(i,n);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.includes(e)||t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return OC(this,e,MC(this,e),t)},removeSignalListener(e,t){return NC(this,MC(this,e),t)},addDataListener(e,t){return OC(this,e,HF(this,e).values,t)},removeDataListener(e,t){return NC(this,HF(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=WF(this,null);this._globalCursor=!!e,t&&WF(this,t)}return this}return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push(function(e,t,n){var i=new dn,r=t;return null==t?(i.restart(e,t,n),i):(i._restart=i.restart,i.restart=function(e,t,n){t=+t,n=null==n?hn():+n,i._restart((function o(a){a+=r,i._restart(o,r+=t,n),e(a)}),t,n)},i.restart(e,t,n),i)}((function(t){e({timestamp:Date.now(),elapsed:t})}),t))},events:function(e,t,n){var i,r=this,o=new Ps(n),a=function(n,i){r.runAsync(null,(()=>{e===QF&&function(e,t){var n=e._eventConfig.defaults,i=n.prevent,r=n.allow;return!1!==i&&!0!==r&&(!0===i||!1===r||(i?i[t]:r?!r[t]:e.preventDefault()))}(r,t)&&n.preventDefault(),o.receive(JF(r,n,i))}))};if("timer"===e)eC(r,"timer",t)&&r.timer(a,t);else if(e===QF)eC(r,"view",t)&&r.addEventListener(t,a,KF);else if("window"===e?eC(r,"window",t)&&"undefined"!=typeof window&&(i=[window]):"undefined"!=typeof document&&eC(r,"selector",t)&&(i=Array.from(document.querySelectorAll(e))),i){for(var s=0,l=i.length;s<l;++s)i[s].addEventListener(t,a);ZF(r,i,t,a)}else r.warn("Can not resolve event source: "+e);return o},finalize:function(){var e,t,n,i,r,o=this._tooltip,a=this._timers,s=this._handler.handlers(),l=this._eventListeners;for(e=a.length;--e>=0;)a[e].stop();for(e=l.length;--e>=0;)for(t=(n=l[e]).sources.length;--t>=0;)n.sources[t].removeEventListener(n.type,n.handler);for(o&&o.call(this,this._handler,null,null,null),e=s.length;--e>=0;)r=s[e].type,i=s[e].handler,this._handler.off(r,i);return this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","pointerover",tC),nC,iC(e)),this.on(this.events("view","pointerout",tC),nC,iC(t)),this},data:function(e,t){return arguments.length<2?HF(this,e).values.value:GF.call(this,e,Cs().remove(x).insert(t))},change:GF,insert:function(e,t){return GF.call(this,e,Cs().insert(t))},remove:function(e,t){return GF.call(this,e,Cs().remove(t))},scale:function(e){var n=this._runtime.scales;return t(n,e)||v("Unrecognized scale or projection: "+e),n[e].value},initialize:function(e,t){const n=this,i=n._renderType,r=n._eventConfig.bind,o=ny(i);e=n._el=e?mC(n,e,!0):null,function(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),UF(t,e.description()))}(n),o||n.error("Unrecognized renderer type: "+i);const a=o.handler||eg,s=e?o.renderer:o.headless;return n._renderer=s?hC(n,n._renderer,e,s):null,n._handler=function(e,t,n,i){const r=new i(e.loader(),pC(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,XF(e),e);return t&&t.handlers().forEach((e=>{r.on(e.type,e.handler)})),r}(n,n._handler,e,a),n._redraw=!0,e&&"none"!==r&&(t=t?n._elBind=mC(n,t,!0):e.appendChild(rC("form",{class:"vega-bindings"})),n._bind.forEach((e=>{e.param.element&&"container"!==r&&(e.element=mC(n,e.param.element,!!e.param.input))})),n._bind.forEach((e=>{!function(e,t,n){if(!t)return;const i=n.param;let r=n.state;r||(r=n.state={elements:null,active:!1,set:null,update:t=>{t!=e.signal(i.signal)&&e.runAsync(null,(()=>{r.source=!0,e.signal(i.signal,t)}))}},i.debounce&&(r.update=A(i.debounce,r.update))),(null==i.input&&i.element?oC:aC)(r,t,i,e),r.active||(e.on(e._signals[i.signal],null,(()=>{r.source?r.source=!1:r.set(e.signal(i.signal))})),r.active=!0)}(n,e.element||t,e)}))),n},toImageURL:async function(e,t){e!==ey.Canvas&&e!==ey.SVG&&e!==ey.PNG&&v("Unrecognized image type: "+e);const n=await vC(this,e,t);return e===ey.SVG?function(e,t){const n=new Blob([e],{type:t});return window.URL.createObjectURL(n)}(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await vC(this,ey.Canvas,e,t)).canvas()},toSVG:async function(e){return(await vC(this,ey.SVG,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:DC,signals:AC,recurse:!0})},setState:function(e){return this.runAsync(null,(t=>{t._trigger=!1,t._runtime.setState(e)}),(e=>{e._trigger=!0})),this},_watchPixelRatio:function(){if("canvas"===this.renderer()&&this._renderer._canvas){let e=null;const t=()=>{null!=e&&e();const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",t),e=()=>{n.removeEventListener("change",t)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};t()}}});const RC="[",BC="]",TC=/[[\]{}]/,PC={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let jC,LC;function qC(e,t,n){return jC=t||"view",LC=n||PC,IC(e.trim()).map(WC)}function UC(e,t,n,i,r){const o=e.length;let a,s=0;for(;t<o;++t){if(a=e[t],!s&&a===n)return t;r&&r.indexOf(a)>=0?--s:i&&i.indexOf(a)>=0&&++s}return t}function IC(e){const t=[],n=e.length;let i=0,r=0;for(;r<n;)r=UC(e,r,",","[{","]}"),t.push(e.substring(i,r).trim()),i=++r;if(0===t.length)throw"Empty event selector: "+e;return t}function WC(e){return"["===e[0]?function(e){const t=e.length;let n,i=1;if(i=UC(e,i,BC,RC,BC),i===t)throw"Empty between selector: "+e;if(n=IC(e.substring(1,i)),2!==n.length)throw"Between selector must have two elements: "+e;if(e=e.slice(i+1).trim(),">"!==e[0])throw"Expected '>' after between selector: "+e;n=n.map(WC);const r=WC(e.slice(1).trim());if(r.between)return{between:n,stream:r};r.between=n;return r}(e):function(e){const t={source:jC},n=[];let i,r,o=[0,0],a=0,s=0,l=e.length,u=0;if("}"===e[l-1]){if(u=e.lastIndexOf("{"),!(u>=0))throw"Unmatched right brace: "+e;try{o=function(e){const t=e.split(",");if(!e.length||t.length>2)throw e;return t.map((t=>{const n=+t;if(n!=n)throw e;return n}))}(e.substring(u+1,l-1))}catch(f){throw"Invalid throttle specification: "+e}l=(e=e.slice(0,u).trim()).length,u=0}if(!l)throw e;"@"===e[0]&&(a=++u);i=UC(e,u,":"),i<l&&(n.push(e.substring(s,i).trim()),s=u=++i);if(u=UC(e,u,RC),u===l)n.push(e.substring(s,l).trim());else if(n.push(e.substring(s,u).trim()),r=[],s=++u,s===l)throw"Unmatched left bracket: "+e;for(;u<l;){if(u=UC(e,u,BC),u===l)throw"Unmatched left bracket: "+e;if(r.push(e.substring(s,u).trim()),u<l-1&&e[++u]!==RC)throw"Expected left bracket: "+e;s=++u}if(!(l=n.length)||TC.test(n[l-1]))throw"Invalid event selector: "+e;l>1?(t.type=n[1],a?t.markname=n[0].slice(1):(c=n[0],LC[c]?t.marktype=n[0]:t.source=n[0])):t.type=n[0];var c;"!"===t.type.slice(-1)&&(t.consume=!0,t.type=t.type.slice(0,-1));null!=r&&(t.filter=r);o[0]&&(t.throttle=o[0]);o[1]&&(t.debounce=o[1]);return t}(e)}function HC(e){return a(e)?e:{type:e||"pad"}}const GC=e=>+e||0;function VC(e){return a(e)?e.signal?e:{top:GC(e.top),bottom:GC(e.bottom),left:GC(e.left),right:GC(e.right)}:{top:t=GC(e),bottom:t,left:t,right:t};var t}const YC=e=>a(e)&&!u(e)?D({},e):{value:e};function XC(e,t,n,i){if(null!=n){return a(n)&&!u(n)||u(n)&&n.length&&a(n[0])?e.update[t]=n:e[i||"enter"][t]={value:n},1}return 0}function JC(e,t,n){for(const i in t)XC(e,i,t[i]);for(const i in n)XC(e,i,n[i],"update")}function QC(e,n,i){for(const r in n)i&&t(i,r)||(e[r]=D(e[r]||{},n[r]));return e}function KC(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const ZC="mark",eM="frame",tM="scope",nM="legend-label",iM="title-text",rM="title-subtitle";function oM(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const aM=e=>i(e)?o(e):e.signal?`(${e.signal})`:cM(e);function sM(e){if(null!=e.gradient)return function(e){const t=[e.start,e.stop,e.count].map((e=>null==e?null:o(e)));for(;t.length&&null==T(t);)t.pop();return t.unshift(aM(e.gradient)),`gradient(${t.join(",")})`}(e);let t=e.signal?`(${e.signal})`:e.color?function(e){return e.c?lM("hcl",e.h,e.c,e.l):e.h||e.s?lM("hsl",e.h,e.s,e.l):e.l||e.a?lM("lab",e.l,e.a,e.b):e.r||e.g||e.b?lM("rgb",e.r,e.g,e.b):null}(e.color):null!=e.field?cM(e.field):void 0!==e.value?o(e.value):void 0;return null!=e.scale&&(t=function(e,t){const n=aM(e.scale);null!=e.range?t=`lerp(_range(${n}), ${+e.range})`:(void 0!==t&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(1==+e.band?"":"*"+uM(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),null==t&&(t="0"));return t}(e,t)),void 0===t&&(t=null),null!=e.exponent&&(t=`pow(${t},${uM(e.exponent)})`),null!=e.mult&&(t+=`*${uM(e.mult)}`),null!=e.offset&&(t+=`+${uM(e.offset)}`),e.round&&(t=`round(${t})`),t}const lM=(e,t,n,i)=>`(${e}(${[t,n,i].map(sM).join(",")})+'')`;function uM(e){return a(e)?"("+sM(e)+")":e}function cM(e){return fM(a(e)?e:{datum:e})}function fM(e){let t,n,a;if(e.signal)t="datum",a=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(a=e.parent,t+=".datum"):a=e.group}else e.datum?(t="datum",a=e.datum):v("Invalid field reference: "+o(e));return e.signal||(a=i(a)?r(a).map(o).join("]["):fM(a)),t+"["+a+"]"}function dM(e,t,n,i,r,o){const a={};(o=o||{}).encoders={$encode:a},e=function(e,t,n,i,r){const o={},a={};let s,l,u,f;for(l in l="lineBreak","text"!==t||null==r[l]||KC(l,e)||oM(o,l,r[l]),("legend"==n||String(n).startsWith("axis"))&&(n=null),f=n===eM?r.group:n===ZC?D({},r.mark,r[t]):null,f)u=KC(l,e)||("fill"===l||"stroke"===l)&&(KC("fill",e)||KC("stroke",e)),u||oM(o,l,f[l]);for(l in c(i).forEach((t=>{const n=r.style&&r.style[t];for(const i in n)KC(i,e)||oM(o,i,n[i])})),e=D({},e),o)f=o[l],f.signal?(s=s||{})[l]=f:a[l]=f;return e.enter=D(a,e.enter),s&&(e.update=D(s,e.update)),e}(e,t,n,i,r.config);for(const s in e)a[s]=hM(e[s],t,o,r);return o}function hM(e,t,n,i){const r={},o={};for(const s in e)null!=e[s]&&(r[s]=pM((a=e[s],u(a)?function(e){let t="";return e.forEach((e=>{const n=sM(e);t+=e.test?`(${e.test})?${n}:`:n})),":"===T(t)&&(t+="null"),t}(a):sM(a)),i,n,o));var a;return{$expr:{marktype:t,channels:r},$fields:Object.keys(o),$output:Object.keys(e)}}function pM(e,t,n,i){const r=CF(e,t);return r.$fields.forEach((e=>i[e]=1)),D(n,r.$params),r.$expr}const mM=["value","update","init","react","bind"];function gM(e,t){v(e+' for "outer" push: '+o(t))}function yM(e,t){const n=e.name;if("outer"===e.push)t.signals[n]||gM("No prior signal definition",n),mM.forEach((t=>{void 0!==e[t]&&gM("Invalid property ",t)}));else{const i=t.addSignal(n,e.value);!1===e.react&&(i.react=!1),e.bind&&t.addBinding(n,e.bind)}}function vM(e,t,n,i){this.id=-1,this.type=e,this.value=t,this.params=n,i&&(this.parent=i)}function bM(e,t,n,i){return new vM(e,t,n,i)}function xM(e,t){return bM("operator",e,t)}function wM(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function _M(e,t){return t?{$field:e,$name:t}:{$field:e}}const kM=_M("key");function $M(e,t){return{$compare:e,$order:t}}function DM(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const AM="scope",SM="view";function EM(e){return e&&e.signal}function FM(e){if(EM(e))return!0;if(a(e))for(const t in e)if(FM(e[t]))return!0;return!1}function CM(e,t){return null!=e?e:t}function MM(e){return e&&e.signal||e}const zM="timer";function OM(e,t){return(e.merge?NM:e.stream?RM:e.type?BM:v("Invalid stream specification: "+o(e)))(e,t)}function NM(e,t){const n=TM({merge:e.merge.map((e=>OM(e,t)))},e,t);return t.addStream(n).id}function RM(e,t){const n=TM({stream:OM(e.stream,t)},e,t);return t.addStream(n).id}function BM(e,t){let n;var i;e.type===zM?(n=t.event(zM,e.throttle),e={between:e.between,filter:e.filter}):n=t.event((i=e.source)===AM?SM:i||SM,e.type);const r=TM({stream:n},e,t);return 1===Object.keys(r).length?n:t.addStream(r).id}function TM(e,t,n){let i=t.between;return i&&(2!==i.length&&v('Stream "between" parameter must have 2 entries: '+o(t)),e.between=[OM(i[0],n),OM(i[1],n)]),i=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&i.push(function(e,t,n){const i="event.item";return i+(e&&"*"!==e?"&&"+i+".mark.marktype==='"+e+"'":"")+(n?"&&"+i+".mark.role==='"+n+"'":"")+(t?"&&"+i+".mark.name==='"+t+"'":"")}(t.marktype,t.markname,t.markrole)),t.source===AM&&i.push("inScope(event.item)"),i.length&&(e.filter=CF("("+i.join(")&&(")+")",n).$expr),null!=(i=t.throttle)&&(e.throttle=+i),null!=(i=t.debounce)&&(e.debounce=+i),t.consume&&(e.consume=!0),e}const PM={code:"_.$value",ast:{type:"Identifier",value:"value"}};function jM(e,t,n){const r=e.encode,a={target:n};let s=e.events,l=e.update,u=[];s||v("Signal update missing events specification."),i(s)&&(s=qC(s,t.isSubscope()?AM:SM)),s=c(s).filter((e=>e.signal||e.scale?(u.push(e),0):1)),u.length>1&&(u=[LM(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),null!=r&&(l&&v("Signal encode and update are mutually exclusive."),l="encode(item(),"+o(r)+")"),a.update=i(l)?CF(l,t):null!=l.expr?CF(l.expr,t):null!=l.value?l.value:null!=l.signal?{$expr:PM,$params:{$value:t.signalRef(l.signal)}}:v("Invalid signal update specification."),e.force&&(a.options={force:!0}),u.forEach((e=>t.addUpdate(D(function(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):OM(e,t)}}(e,t),a))))}function LM(e){return{signal:"["+e.map((e=>e.scale?'scale("'+e.scale+'")':e.signal))+"]"}}const qM=e=>(t,n,i)=>bM(e,n,t||void 0,i),UM=qM("aggregate"),IM=qM("axisticks"),WM=qM("bound"),HM=qM("collect"),GM=qM("compare"),VM=qM("datajoin"),YM=qM("encode"),XM=qM("expression"),JM=qM("facet"),QM=qM("field"),KM=qM("key"),ZM=qM("legendentries"),ez=qM("load"),tz=qM("mark"),nz=qM("multiextent"),iz=qM("multivalues"),rz=qM("overlap"),oz=qM("params"),az=qM("prefacet"),sz=qM("projection"),lz=qM("proxy"),uz=qM("relay"),cz=qM("render"),fz=qM("scale"),dz=qM("sieve"),hz=qM("sortitems"),pz=qM("viewlayout"),mz=qM("values");let gz=0;const yz={min:"min",max:"max",count:"sum"};function vz(e,n){const i=n.getScale(e.name).params;let r;for(r in i.domain=_z(e.domain,e,n),null!=e.range&&(i.range=Cz(e,n,i)),null!=e.interpolate&&function(e,t){t.interpolate=bz(e.type||e),null!=e.gamma&&(t.interpolateGamma=bz(e.gamma))}(e.interpolate,i),null!=e.nice&&(i.nice=function(e,t){return e.signal?t.signalRef(e.signal):a(e)?{interval:bz(e.interval),step:bz(e.step)}:bz(e)}(e.nice,n)),null!=e.bins&&(i.bins=function(e,t){return e.signal||u(e)?xz(e,t):t.objectProperty(e)}(e.bins,n)),e)t(i,r)||"name"===r||(i[r]=bz(e[r],n))}function bz(e,t){return a(e)?e.signal?t.signalRef(e.signal):v("Unsupported object: "+o(e)):e}function xz(e,t){return e.signal?t.signalRef(e.signal):e.map((e=>bz(e,t)))}function wz(e){v("Can not find data set: "+o(e))}function _z(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(u(e)?kz:e.fields?Dz:$z)(e,t,n);null==t.domainMin&&null==t.domainMax||v("No scale domain defined for domainMin/domainMax to override.")}function kz(e,t,n){return e.map((e=>bz(e,n)))}function $z(e,t,n){const i=n.getData(e.data);return i||wz(e.data),Pf(t.type)?i.valuesRef(n,e.field,Sz(e.sort,!1)):Uf(t.type)?i.domainRef(n,e.field):i.extentRef(n,e.field)}function Dz(e,t,n){const r=e.data,a=e.fields.reduce(((e,t)=>(t=i(t)?{data:r,field:t}:u(t)||t.signal?function(e,t){const n="_:vega:_"+gz++,i=HM({});if(u(e))i.value={$ingest:e};else if(e.signal){const r="setdata("+o(n)+","+e.signal+")";i.params.input=t.signalRef(r)}return t.addDataPipeline(n,[i,dz({})]),{data:n,field:"data"}}(t,n):t,e.push(t),e)),[]);return(Pf(t.type)?Az:Uf(t.type)?Ez:Fz)(e,n,a)}function Az(e,t,n){const i=Sz(e.sort,!0);let r,o;const a=n.map((e=>{const n=t.getData(e.data);return n||wz(e.data),n.countsRef(t,e.field,i)})),s={groupby:kM,pulse:a};i&&(r=i.op||"count",o=i.field?DM(r,i.field):"count",s.ops=[yz[r]],s.fields=[t.fieldRef(o)],s.as=[o]),r=t.add(UM(s));const l=t.add(HM({pulse:wM(r)}));return o=t.add(mz({field:kM,sort:t.sortRef(i),pulse:wM(l)})),wM(o)}function Sz(e,t){return e&&(e.field||e.op?e.field||"count"===e.op?t&&e.field&&e.op&&!yz[e.op]&&v("Multiple domain scales can not be sorted using "+e.op):v("No field provided for sort aggregate op: "+e.op):a(e)?e.field="key":e={field:"key"}),e}function Ez(e,t,n){const i=n.map((e=>{const n=t.getData(e.data);return n||wz(e.data),n.domainRef(t,e.field)}));return wM(t.add(iz({values:i})))}function Fz(e,t,n){const i=n.map((e=>{const n=t.getData(e.data);return n||wz(e.data),n.extentRef(t,e.field)}));return wM(t.add(nz({extents:i})))}function Cz(e,n,r){const a=n.config.range;let s=e.range;if(s.signal)return n.signalRef(s.signal);if(i(s)){if(a&&t(a,s))return Cz(e=D({},e,{range:a[s]}),n,r);"width"===s?s=[0,{signal:"width"}]:"height"===s?s=Pf(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:v("Unrecognized scale range value: "+o(s))}else{if(s.scheme)return r.scheme=u(s.scheme)?xz(s.scheme,n):bz(s.scheme,n),s.extent&&(r.schemeExtent=xz(s.extent,n)),void(s.count&&(r.schemeCount=bz(s.count,n)));if(s.step)return void(r.rangeStep=bz(s.step,n));if(Pf(e.type)&&!u(s))return _z(s,e,n);u(s)||v("Unsupported range type: "+o(s))}return s.map((e=>(u(e)?xz:bz)(e,n)))}function Mz(e,t,n){return u(e)?e.map((e=>Mz(e,t,n))):a(e)?e.signal?n.signalRef(e.signal):"fit"===t?e:v("Unsupported parameter object: "+o(e)):e}const zz="top",Oz="left",Nz="right",Rz="bottom",Bz="center",Tz="index",Pz="label",jz="perc",Lz="value",qz="guide-label",Uz="guide-title",Iz="group-title",Wz="group-subtitle",Hz="symbol",Gz="gradient",Vz="discrete",Yz="size",Xz=[Yz,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],Jz={name:1,style:1,interactive:1},Qz={value:0},Kz={value:1},Zz="group",eO="rect",tO="rule",nO="text";function iO(e){return e.type=Zz,e.interactive=e.interactive||!1,e}function rO(e,t){const n=(n,i)=>CM(e[n],CM(t[n],i));return n.isVertical=n=>"vertical"===CM(e.direction,t.direction||(n?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>CM(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>CM(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>CM(e.columns,CM(t.columns,+n.isVertical(!0))),n}function oO(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function aO(e,t,n){return`item.anchor === 'start' ? ${e} : item.anchor === 'end' ? ${t} : ${n}`}const sO=aO(o(Oz),o(Nz),o(Bz));function lO(e,t){return t?e?a(e)?Object.assign({},e,{offset:lO(e.offset,t)}):{value:e,offset:t}:t:e}function uO(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=QC(e.encode,t,Jz)):e.interactive=!1,e}function cO(e,t,n,i){const r=rO(e,n),o=r.isVertical(),a=r.gradientThickness(),s=r.gradientLength();let l,u,c,f,d;o?(u=[0,1],c=[0,0],f=a,d=s):(u=[0,0],c=[1,0],f=s,d=a);const h={enter:l={opacity:Qz,x:Qz,y:Qz,width:YC(f),height:YC(d)},update:D({},l,{opacity:Kz,fill:{gradient:t,start:u,stop:c}}),exit:{opacity:Qz}};return JC(h,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),uO({type:eO,role:"legend-gradient",encode:h},i)}function fO(e,t,n,i,r){const o=rO(e,n),a=o.isVertical(),s=o.gradientThickness(),l=o.gradientLength();let u,c,f,d,h="";a?(u="y",f="y2",c="x",d="width",h="1-"):(u="x",f="x2",c="y",d="height");const p={opacity:Qz,fill:{scale:t,field:Lz}};p[u]={signal:h+"datum."+jz,mult:l},p[c]=Qz,p[f]={signal:h+"datum.perc2",mult:l},p[d]=YC(s);const m={enter:p,update:D({},p,{opacity:Kz}),exit:{opacity:Qz}};return JC(m,{stroke:o("gradientStrokeColor"),strokeWidth:o("gradientStrokeWidth")},{opacity:o("gradientOpacity")}),uO({type:eO,role:"legend-band",key:Lz,from:r,encode:m},i)}const dO=`datum.${jz}<=0?"${Oz}":datum.${jz}>=1?"${Nz}":"${Bz}"`,hO=`datum.${jz}<=0?"${Rz}":datum.${jz}>=1?"${zz}":"middle"`;function pO(e,t,n,i){const r=rO(e,t),o=r.isVertical(),a=YC(r.gradientThickness()),s=r.gradientLength();let l,u,c,f,d=r("labelOverlap"),h="";const p={enter:l={opacity:Qz},update:u={opacity:Kz,text:{field:Pz}},exit:{opacity:Qz}};return JC(p,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:CM(e.labelLimit,t.gradientLabelLimit)}),o?(l.align={value:"left"},l.baseline=u.baseline={signal:hO},c="y",f="x",h="1-"):(l.align=u.align={signal:dO},l.baseline={value:"top"},c="x",f="y"),l[c]=u[c]={signal:h+"datum."+jz,mult:s},l[f]=u[f]=a,a.offset=CM(e.labelOffset,t.gradientLabelOffset)||0,d=d?{separation:r("labelSeparation"),method:d,order:"datum."+Tz}:void 0,uO({type:nO,role:nM,style:qz,key:Lz,from:i,encode:p,overlap:d},n)}function mO(e,t,n,i,r){const o=rO(e,t),a=n.entries,s=!(!a||!a.interactive),l=a?a.name:void 0,u=o("clipHeight"),c=o("symbolOffset"),f={data:"value"},d=`(${r}) ? datum.offset : datum.${Yz}`,h=u?YC(u):{field:Yz},p=`datum.${Tz}`,m=`max(1, ${r})`;let g,y,v,b,x;h.mult=.5,g={enter:y={opacity:Qz,x:{signal:d,mult:.5,offset:c},y:h},update:v={opacity:Kz,x:y.x,y:y.y},exit:{opacity:Qz}};let w=null,_=null;e.fill||(w=t.symbolBaseFillColor,_=t.symbolBaseStrokeColor),JC(g,{fill:o("symbolFillColor",w),shape:o("symbolType"),size:o("symbolSize"),stroke:o("symbolStrokeColor",_),strokeDash:o("symbolDash"),strokeDashOffset:o("symbolDashOffset"),strokeWidth:o("symbolStrokeWidth")},{opacity:o("symbolOpacity")}),Xz.forEach((t=>{e[t]&&(v[t]=y[t]={scale:e[t],field:Lz})}));const k=uO({type:"symbol",role:"legend-symbol",key:Lz,from:f,clip:!!u||void 0,encode:g},n.symbols),$=YC(c);$.offset=o("labelOffset"),g={enter:y={opacity:Qz,x:{signal:d,offset:$},y:h},update:v={opacity:Kz,text:{field:Pz},x:y.x,y:y.y},exit:{opacity:Qz}},JC(g,{align:o("labelAlign"),baseline:o("labelBaseline"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontStyle:o("labelFontStyle"),fontWeight:o("labelFontWeight"),limit:o("labelLimit")});const D=uO({type:nO,role:nM,style:qz,key:Lz,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!u},width:Qz,height:u?YC(u):Qz,opacity:Qz},exit:{opacity:Qz},update:v={opacity:Kz,row:{signal:null},column:{signal:null}}},o.isVertical(!0)?(b=`ceil(item.mark.items.length / ${m})`,v.row.signal=`${p}%${b}`,v.column.signal=`floor(${p} / ${b})`,x={field:["row",p]}):(v.row.signal=`floor(${p} / ${m})`,v.column.signal=`${p} % ${m}`,x={field:p}),v.column.signal=`(${r})?${v.column.signal}:${p}`,iO({role:tM,from:i={facet:{data:i,name:"value",groupby:Tz}},encode:QC(g,a,Jz),marks:[k,D],name:l,interactive:s,sort:x})}const gO='item.orient === "left"',yO='item.orient === "right"',vO=`(${gO} || ${yO})`,bO=`datum.vgrad && ${vO}`,xO=aO('"top"','"bottom"','"middle"'),wO=`datum.vgrad && ${yO} ? (${aO('"right"','"left"','"center"')}) : (${vO} && !(datum.vgrad && ${gO})) ? "left" : ${sO}`,_O=`item._anchor || (${vO} ? "middle" : "start")`,kO=`${bO} ? (${gO} ? -90 : 90) : 0`,$O=`${vO} ? (datum.vgrad ? (${yO} ? "bottom" : "top") : ${xO}) : "top"`;function DO(e,t){let n;return a(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+AO(e.path)+")":e.sphere&&(n="geoShape("+AO(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function AO(e){return a(e)&&e.signal?e.signal:o(e)}function SO(e){const t=e.role||"";return t.startsWith("axis")||t.startsWith("legend")||t.startsWith("title")?t:e.type===Zz?tM:t||ZC}function EO(e){return{marktype:e.type,name:e.name||void 0,role:e.role||SO(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function FO(e,t){return e&&e.signal?t.signalRef(e.signal):!1!==e}function CO(e,t){const n=il(e.type);n||v("Unrecognized transform type: "+o(e.type));const i=bM(n.type.toLowerCase(),null,MO(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(i)),i.metadata=n.metadata||{},i}function MO(e,t,n){const i={},r=e.params.length;for(let o=0;o<r;++o){const r=e.params[o];i[r.name]=zO(r,t,n)}return i}function zO(e,t,n){const r=e.type,a=t[e.name];return"index"===r?function(e,t,n){i(t.from)||v('Lookup "from" parameter must be a string literal.');return n.getData(t.from).lookupRef(n,t.key)}(0,t,n):void 0!==a?"param"===r?function(e,t,n){const i=t[e.name];return e.array?(u(i)||v("Expected an array of sub-parameters. Instead: "+o(i)),i.map((t=>NO(e,t,n)))):NO(e,i,n)}(e,t,n):"projection"===r?n.projectionRef(t[e.name]):e.array&&!EM(a)?a.map((t=>OO(e,t,n))):OO(e,a,n):void(e.required&&v("Missing required "+o(t.type)+" parameter: "+o(e.name)))}function OO(e,t,n){const i=e.type;if(EM(t))return PO(i)?v("Expression references can not be signals."):jO(i)?n.fieldRef(t):LO(i)?n.compareRef(t):n.signalRef(t.signal);{const r=e.expr||jO(i);return r&&RO(t)?n.exprRef(t.expr,t.as):r&&BO(t)?_M(t.field,t.as):PO(i)?CF(t,n):TO(i)?wM(n.getData(t).values):jO(i)?_M(t):LO(i)?n.compareRef(t):t}}function NO(e,t,n){const i=e.params.length;let r;for(let o=0;o<i;++o){r=e.params[o];for(const e in r.key)if(r.key[e]!==t[e]){r=null;break}if(r)break}r||v("Unsupported parameter: "+o(t));const a=D(MO(r,t,n),r.key);return wM(n.add(oz(a)))}const RO=e=>e&&e.expr,BO=e=>e&&e.field,TO=e=>"data"===e,PO=e=>"expr"===e,jO=e=>"field"===e,LO=e=>"compare"===e;function qO(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:wM(t.getData(e.data).output)}function UO(e,t,n,i,r){this.scope=e,this.input=t,this.output=n,this.values=i,this.aggregate=r,this.index={}}function IO(e){return i(e)?e:null}function WO(e,t,n){const i=DM(n.op,n.field);let r;if(t.ops){for(let o=0,a=t.as.length;o<a;++o)if(t.as[o]===i)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((r=n.op.signal)?e.signalRef(r):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(i))}function HO(e,t,n,i,r,o,s){const l=t[n]||(t[n]={}),u=function(e){return a(e)?("descending"===e.order?"-":"+")+DM(e.op,e.field):""}(o);let c,f,d=IO(r);if(null!=d&&(e=t.scope,d+=u?"|"+u:"",c=l[d]),!c){const n=o?{field:kM,pulse:t.countsRef(e,r,o)}:{field:e.fieldRef(r),pulse:wM(t.output)};u&&(n.sort=e.sortRef(o)),f=e.add(bM(i,void 0,n)),s&&(t.index[r]=f),c=wM(f),null!=d&&(l[d]=c)}return c}function GO(e,t,n){const i=e.remove,r=e.insert,o=e.toggle,a=e.modify,s=e.values,l=t.add(xM()),u=CF("if("+e.trigger+',modify("'+n+'",'+[r,i,o,a,s].map((e=>null==e?"null":e)).join(",")+"),0)",t);l.update=u.$expr,l.params=u.$params}function VO(e,t){const n=SO(e),i=e.type===Zz,r=e.from&&e.from.facet,a=e.overlap;let s,l,u,f,d,h,p,m=e.layout||n===tM||n===eM;const g=n===ZC||m||r,y=function(e,t,n){let i,r,o,a,s;return e?(i=e.facet)&&(t||v("Only group marks can be faceted."),null!=i.field?a=s=qO(i,n):(e.data?s=wM(n.getData(e.data).aggregate):(o=CO(D({type:"aggregate",groupby:c(i.groupby)},i.aggregate),n),o.params.key=n.keyRef(i.groupby),o.params.pulse=qO(i,n),a=s=wM(n.add(o))),r=n.keyRef(i.groupby,!0))):a=wM(n.add(HM(null,[{}]))),a||(a=qO(e,n)),{key:r,pulse:a,parent:s}}(e.from,i,t);l=t.add(VM({key:y.key||(e.key?_M(e.key):void 0),pulse:y.pulse,clean:!i}));const b=wM(l);l=u=t.add(HM({pulse:b})),l=t.add(tz({markdef:EO(e),interactive:FO(e.interactive,t),clip:DO(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:wM(l)}));const x=wM(l);l=f=t.add(YM(dM(e.encode,e.type,n,e.style,t,{mod:!1,pulse:x}))),l.params.parent=t.encode(),e.transform&&e.transform.forEach((e=>{const n=CO(e,t),i=n.metadata;(i.generates||i.changes)&&v("Mark transforms should not generate new data."),i.nomod||(f.params.mod=!0),n.params.pulse=wM(l),t.add(l=n)})),e.sort&&(l=t.add(hz({sort:t.compareRef(e.sort),pulse:wM(l)})));const w=wM(l);(r||m)&&(m=t.add(pz({layout:t.objectProperty(e.layout),legends:t.legends,mark:x,pulse:w})),h=wM(m));const _=t.add(WM({mark:x,pulse:h||w}));p=wM(_),i&&(g&&(s=t.operators,s.pop(),m&&s.pop()),t.pushState(w,h||p,b),r?function(e,t,n){const i=e.from.facet,r=i.name,a=qO(i,t);let s;i.name||v("Facet must have a name: "+o(i)),i.data||v("Facet must reference a data set: "+o(i)),i.field?s=t.add(az({field:t.fieldRef(i.field),pulse:a})):i.groupby?s=t.add(JM({key:t.keyRef(i.groupby),group:wM(t.proxy(n.parent)),pulse:a})):v("Facet must specify groupby or field: "+o(i));const l=t.fork(),u=l.add(HM()),c=l.add(dz({pulse:wM(u)}));l.addData(r,new UO(l,u,u,c)),l.addSignal("parent",null),s.params.subflow={$subflow:l.parse(e).toRuntime()}}(e,t,y):g?function(e,t,n){const i=t.add(az({pulse:n.pulse})),r=t.fork();r.add(dz()),r.addSignal("parent",null),i.params.subflow={$subflow:r.parse(e).toRuntime()}}(e,t,y):t.parse(e),t.popState(),g&&(m&&s.push(m),s.push(_))),a&&(p=function(e,t,n){const i=e.method,r=e.bound,o=e.separation,a={separation:EM(o)?n.signalRef(o.signal):o,method:EM(i)?n.signalRef(i.signal):i,pulse:t};e.order&&(a.sort=n.compareRef({field:e.order}));if(r){const e=r.tolerance;a.boundTolerance=EM(e)?n.signalRef(e.signal):+e,a.boundScale=n.scaleRef(r.scale),a.boundOrient=r.orient}return wM(n.add(rz(a)))}(a,p,t));const k=t.add(cz({pulse:p})),$=t.add(dz({pulse:wM(k)},void 0,t.parent()));null!=e.name&&(d=e.name,t.addData(d,new UO(t,u,k,$)),e.on&&e.on.forEach((e=>{(e.insert||e.remove||e.toggle)&&v("Marks only support modify triggers."),GO(e,t,d)})))}function YO(e,t){const n=t.config.legend,i=e.encode||{},r=rO(e,n),o=i.legend||{},a=o.name||void 0,s=o.interactive,l=o.style,u={};let c,f,d,h=0;Xz.forEach((t=>e[t]?(u[t]=e[t],h=h||e[t]):0)),h||v("Missing valid scale for legend.");const p=function(e,t){let n=e.type||Hz;e.type||1!==function(e){return Xz.reduce(((t,n)=>t+(e[n]?1:0)),0)}(e)||!e.fill&&!e.stroke||(n=Tf(t)?Gz:jf(t)?Vz:Hz);return n!==Gz?n:jf(t)?Vz:Gz}(e,t.scaleType(h)),m={title:null!=e.title,scales:u,type:p,vgrad:"symbol"!==p&&r.isVertical()},g=wM(t.add(HM(null,[m]))),y=wM(t.add(ZM(f={type:p,scale:t.scaleRef(h),count:t.objectProperty(r("tickCount")),limit:t.property(r("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return p===Gz?(d=[cO(e,h,n,i.gradient),pO(e,n,i.labels,y)],f.count=f.count||t.signalRef(`max(2,2*floor((${MM(r.gradientLength())})/100))`)):p===Vz?d=[fO(e,h,n,i.gradient,y),pO(e,n,i.labels,y)]:(c=function(e,t){const n=rO(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}(e,n),d=[mO(e,n,i,y,MM(c.columns))],f.size=function(e,t,n){const i=MM(JO("size",e,n)),r=MM(JO("strokeWidth",e,n)),o=MM(function(e,t,n){return oO("fontSize",e)||function(e,t,n){const i=t.config.style[n];return i&&i[e]}("fontSize",t,n)}(n[1].encode,t,qz));return CF(`max(ceil(sqrt(${i})+${r}),${o})`,t)}(e,t,d[0].marks)),d=[iO({role:"legend-entry",from:g,encode:{enter:{x:{value:0},y:{value:0}}},marks:d,layout:c,interactive:s})],m.title&&d.push(function(e,t,n,i){const r=rO(e,t),o={enter:{opacity:Qz},update:{opacity:Kz,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Qz}};return JC(o,{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:_O},angle:{signal:kO},align:{signal:wO},baseline:{signal:$O},text:e.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")}),uO({type:nO,role:"legend-title",style:Uz,from:i,encode:o},n)}(e,n,i.title,g)),VO(iO({role:"legend",from:g,encode:QC(XO(r,e,n),o,Jz),marks:d,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:a,interactive:s,style:l}),t)}function XO(e,t,n){const i={enter:{},update:{}};return JC(i,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),i}function JO(e,t,n){return t[e]?`scale("${t[e]}",datum)`:oO(e,n[0].encode)}UO.fromEntries=function(e,t){const n=t.length,i=t[n-1],r=t[n-2];let o=t[0],a=null,s=1;for(o&&"load"===o.type&&(o=t[1]),e.add(t[0]);s<n;++s)t[s].params.pulse=wM(t[s-1]),e.add(t[s]),"aggregate"===t[s].type&&(a=t[s]);return new UO(e,o,r,i,a)},UO.prototype={countsRef(e,t,n){const i=this,r=i.counts||(i.counts={}),o=IO(t);let a,s,l;return null!=o&&(e=i.scope,a=r[o]),a?n&&n.field&&WO(e,a.agg.params,n):(l={groupby:e.fieldRef(t,"key"),pulse:wM(i.output)},n&&n.field&&WO(e,l,n),s=e.add(UM(l)),a=e.add(HM({pulse:wM(s)})),a={agg:s,ref:wM(a)},null!=o&&(r[o]=a)),a.ref},tuplesRef(){return wM(this.values)},extentRef(e,t){return HO(e,this,"extent","extent",t,!1)},domainRef(e,t){return HO(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return HO(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return HO(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return HO(e,this,"indata","tupleindex",t,!0,!0)}};const QO=`item.orient==="${Oz}"?-90:item.orient==="${Nz}"?90:0`;function KO(e,t){const n=rO(e=i(e)?{text:e}:e,t.config.title),r=e.encode||{},o=r.group||{},a=o.name||void 0,s=o.interactive,l=o.style,u=[],c=wM(t.add(HM(null,[{}])));return u.push(function(e,t,n,i){const r={value:0},o=e.text,a={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return JC(a,{text:o,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),uO({type:nO,role:iM,style:Iz,from:i,encode:a},n)}(e,n,function(e){const t=e.encode;return t&&t.title||D({name:e.name,interactive:e.interactive,style:e.style},t)}(e),c)),e.subtitle&&u.push(function(e,t,n,i){const r={value:0},o=e.subtitle,a={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return JC(a,{text:o,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),uO({type:nO,role:rM,style:Wz,from:i,encode:a},n)}(e,n,r.subtitle,c)),VO(iO({role:"title",from:c,encode:ZO(n,o),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:a,interactive:s,style:l}),t)}function ZO(e,t){const n={enter:{},update:{}};return JC(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:sO},angle:{signal:QO},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),QC(n,t,Jz)}function eN(e,t){const n=[];e.transform&&e.transform.forEach((e=>{n.push(CO(e,t))})),e.on&&e.on.forEach((n=>{GO(n,t,e.name)})),t.addDataPipeline(e.name,function(e,t,n){const i=[];let r,o,a,s,l,u=null,f=!1,d=!1;e.values?EM(e.values)||FM(e.format)?(i.push(nN(t,e)),i.push(u=tN())):i.push(u=tN({$ingest:e.values,$format:e.format})):e.url?FM(e.url)||FM(e.format)?(i.push(nN(t,e)),i.push(u=tN())):i.push(u=tN({$request:e.url,$format:e.format})):e.source&&(u=r=c(e.source).map((e=>wM(t.getData(e).output))),i.push(null));for(o=0,a=n.length;o<a;++o)s=n[o],l=s.metadata,u||l.source||i.push(u=tN()),i.push(s),l.generates&&(d=!0),l.modifies&&!d&&(f=!0),l.source?u=s:l.changes&&(u=null);r&&(a=r.length-1,i[0]=uz({derive:f,pulse:a?r:r[0]}),(f||a)&&i.splice(1,0,tN()));u||i.push(tN());return i.push(dz({})),i}(e,t,n))}function tN(e){const t=HM({},e);return t.metadata={source:!0},t}function nN(e,t){return ez({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}const iN=e=>e===Rz||e===zz,rN=(e,t,n)=>EM(e)?cN(e.signal,t,n):e===Oz||e===zz?t:n,oN=(e,t,n)=>EM(e)?lN(e.signal,t,n):iN(e)?t:n,aN=(e,t,n)=>EM(e)?uN(e.signal,t,n):iN(e)?n:t,sN=(e,t,n)=>EM(e)?fN(e.signal,t,n):e===zz?{value:t}:{value:n},lN=(e,t,n)=>hN(`${e} === '${zz}' || ${e} === '${Rz}'`,t,n),uN=(e,t,n)=>hN(`${e} !== '${zz}' && ${e} !== '${Rz}'`,t,n),cN=(e,t,n)=>mN(`${e} === '${Oz}' || ${e} === '${zz}'`,t,n),fN=(e,t,n)=>mN(`${e} === '${zz}'`,t,n),dN=(e,t,n)=>mN(`${e} === '${Nz}'`,t,n),hN=(e,t,n)=>(t=null!=t?YC(t):t,n=null!=n?YC(n):n,pN(t)&&pN(n)?{signal:`${e} ? (${t=t?t.signal||o(t.value):null}) : (${n=n?n.signal||o(n.value):null})`}:[D({test:e},t)].concat(n||[])),pN=e=>null==e||1===Object.keys(e).length,mN=(e,t,n)=>({signal:`${e} ? (${gN(t)}) : (${gN(n)})`}),gN=e=>EM(e)?e.signal:null==e?null:o(e),yN=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function vN(e,n,i,r){let o;if(n&&t(n,e))return n[e];if(t(i,e))return i[e];if(e.startsWith("title")){switch(e){case"titleColor":o="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":o=e[5].toLowerCase()+e.slice(6)}return r[Uz][o]}if(e.startsWith("label")){switch(e){case"labelColor":o="fill";break;case"labelFont":case"labelFontSize":o=e[5].toLowerCase()+e.slice(6)}return r[qz][o]}return null}function bN(e){const t={};for(const n of e)if(n)for(const e in n)t[e]=1;return Object.keys(t)}function xN(e,t){return{scale:e.scale,range:t}}function wN(e,t,n,i,r){const o=rO(e,t),s=e.orient,l=e.gridScale,u=rN(s,1,-1),c=function(e,t){if(1===t);else if(a(e)){let n=e=D({},e);for(;null!=n.mult;){if(!a(n.mult))return n.mult=EM(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n=n.mult=D({},n.mult)}n.mult=t}else e=EM(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);return e}(e.offset,u);let f,d,h;const p={enter:f={opacity:Qz},update:h={opacity:Kz},exit:d={opacity:Qz}};JC(p,{stroke:o("gridColor"),strokeCap:o("gridCap"),strokeDash:o("gridDash"),strokeDashOffset:o("gridDashOffset"),strokeOpacity:o("gridOpacity"),strokeWidth:o("gridWidth")});const m={scale:e.scale,field:Lz,band:r.band,extra:r.extra,offset:r.offset,round:o("tickRound")},g=oN(s,{signal:"height"},{signal:"width"}),y=l?{scale:l,range:0,mult:u,offset:c}:{value:0,offset:c},v=l?{scale:l,range:1,mult:u,offset:c}:D(g,{mult:u,offset:c});return f.x=h.x=oN(s,m,y),f.y=h.y=aN(s,m,y),f.x2=h.x2=aN(s,v),f.y2=h.y2=oN(s,v),d.x=oN(s,m),d.y=aN(s,m),uO({type:tO,role:"axis-grid",key:Lz,from:i,encode:p},n)}function _N(e,t,n,i,r){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+i+","+r+")"}}function kN(e,t,n,i,r,o){const a=rO(e,t),s=e.orient,l=e.scale,u=rN(s,-1,1),c=MM(a("labelFlush")),f=MM(a("labelFlushOffset")),d=a("labelAlign"),h=a("labelBaseline");let p,m=0===c||!!c;const g=YC(r);g.mult=u,g.offset=YC(a("labelPadding")||0),g.offset.mult=u;const y={scale:l,field:Lz,band:.5,offset:lO(o.offset,a("labelOffset"))},v=oN(s,m?_N(l,c,'"left"','"right"','"center"'):{value:"center"},((e,t,n)=>EM(e)?dN(e.signal,t,n):e===Nz?{value:t}:{value:n})(s,"left","right")),b=oN(s,sN(s,"bottom","top"),m?_N(l,c,'"top"','"bottom"','"middle"'):{value:"middle"}),x=_N(l,c,`-(${f})`,f,0);m=m&&f;const w={opacity:Qz,x:oN(s,y,g),y:aN(s,y,g)},_={enter:w,update:p={opacity:Kz,text:{field:Pz},x:w.x,y:w.y,align:v,baseline:b},exit:{opacity:Qz,x:w.x,y:w.y}};JC(_,{dx:!d&&m?oN(s,x):null,dy:!h&&m?aN(s,x):null}),JC(_,{angle:a("labelAngle"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontWeight:a("labelFontWeight"),fontStyle:a("labelFontStyle"),limit:a("labelLimit"),lineHeight:a("labelLineHeight")},{align:d,baseline:h});const k=a("labelBound");let $=a("labelOverlap");return $=$||k?{separation:a("labelSeparation"),method:$,order:"datum.index",bound:k?{scale:l,orient:s,tolerance:k}:null}:void 0,p.align!==v&&(p.align=yN(p.align,v)),p.baseline!==b&&(p.baseline=yN(p.baseline,b)),uO({type:nO,role:"axis-label",style:qz,key:Lz,from:i,encode:_,overlap:$},n)}function $N(e,t,n,i){const r=rO(e,t),o=e.orient,a=rN(o,-1,1);let s,l;const u={enter:s={opacity:Qz,anchor:YC(r("titleAnchor",null)),align:{signal:sO}},update:l=D({},s,{opacity:Kz,text:YC(e.title)}),exit:{opacity:Qz}},c={signal:`lerp(range("${e.scale}"), ${aO(0,1,.5)})`};return l.x=oN(o,c),l.y=aN(o,c),s.angle=oN(o,Qz,((e,t)=>0===t?0:EM(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t})(a,90)),s.baseline=oN(o,sN(o,Rz,zz),{value:Rz}),l.angle=s.angle,l.baseline=s.baseline,JC(u,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")}),function(e,t,n,i){const r=(e,t)=>null!=e?(n.update[t]=yN(YC(e),n.update[t]),!1):!KC(t,i),o=r(e("titleX"),"x"),a=r(e("titleY"),"y");n.enter.auto=a===o?YC(a):oN(t,YC(a),YC(o))}(r,o,u,n),u.update.align=yN(u.update.align,s.align),u.update.angle=yN(u.update.angle,s.angle),u.update.baseline=yN(u.update.baseline,s.baseline),uO({type:nO,role:"axis-title",style:Uz,from:i,encode:u},n)}function DN(e,t){const n=function(e,t){var n,i,r,o,a,s,l,u,c=t.config,f=c.style,d=c.axis,h="band"===t.scaleType(e.scale)&&c.axisBand,p=e.orient;if(EM(p)){const e=bN([c.axisX,c.axisY]),t=bN([c.axisTop,c.axisBottom,c.axisLeft,c.axisRight]);for(r of(n={},e))n[r]=oN(p,vN(r,c.axisX,d,f),vN(r,c.axisY,d,f));for(r of(i={},t))i[r]=(o=p.signal,a=vN(r,c.axisTop,d,f),s=vN(r,c.axisBottom,d,f),l=vN(r,c.axisLeft,d,f),u=vN(r,c.axisRight,d,f),{signal:(null!=l?`${o} === '${Oz}' ? (${gN(l)}) : `:"")+(null!=s?`${o} === '${Rz}' ? (${gN(s)}) : `:"")+(null!=u?`${o} === '${Nz}' ? (${gN(u)}) : `:"")+(null!=a?`${o} === '${zz}' ? (${gN(a)}) : `:"")+"(null)"})}else n=p===zz||p===Rz?c.axisX:c.axisY,i=c["axis"+p[0].toUpperCase()+p.slice(1)];return n||i||h?D({},d,n,i,h):d}(e,t),i=e.encode||{},r=i.axis||{},o=r.name||void 0,s=r.interactive,l=r.style,u=rO(e,n),c=function(e){const t=e("tickBand");let n,i,r=e("tickOffset");return t?t.signal?(n={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${t.signal}) === 'extent'`},a(r)||(r={signal:`(${t.signal}) === 'extent' ? 0 : ${r}`})):"extent"===t?(n=1,i=!0,r=0):(n=.5,i=!1):(n=e("bandPosition"),i=e("tickExtra")),{extra:i,band:n,offset:r}}(u),f={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:null!=e.title},d=wM(t.add(HM({},[f]))),h=wM(t.add(IM({scale:t.scaleRef(e.scale),extra:t.property(c.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),p=[];let m;return f.grid&&p.push(wN(e,n,i.grid,h,c)),f.ticks&&(m=u("tickSize"),p.push(function(e,t,n,i,r,o){const a=rO(e,t),s=e.orient,l=rN(s,-1,1);let u,c,f;const d={enter:u={opacity:Qz},update:f={opacity:Kz},exit:c={opacity:Qz}};JC(d,{stroke:a("tickColor"),strokeCap:a("tickCap"),strokeDash:a("tickDash"),strokeDashOffset:a("tickDashOffset"),strokeOpacity:a("tickOpacity"),strokeWidth:a("tickWidth")});const h=YC(r);h.mult=l;const p={scale:e.scale,field:Lz,band:o.band,extra:o.extra,offset:o.offset,round:a("tickRound")};return f.y=u.y=oN(s,Qz,p),f.y2=u.y2=oN(s,h),c.x=oN(s,p),f.x=u.x=aN(s,Qz,p),f.x2=u.x2=aN(s,h),c.y=aN(s,p),uO({type:tO,role:"axis-tick",key:Lz,from:i,encode:d},n)}(e,n,i.ticks,h,m,c))),f.labels&&(m=f.ticks?m:0,p.push(kN(e,n,i.labels,h,m,c))),f.domain&&p.push(function(e,t,n,i){const r=rO(e,t),o=e.orient;let a,s;const l={enter:a={opacity:Qz},update:s={opacity:Kz},exit:{opacity:Qz}};JC(l,{stroke:r("domainColor"),strokeCap:r("domainCap"),strokeDash:r("domainDash"),strokeDashOffset:r("domainDashOffset"),strokeWidth:r("domainWidth"),strokeOpacity:r("domainOpacity")});const u=xN(e,0),c=xN(e,1);return a.x=s.x=oN(o,u,Qz),a.x2=s.x2=oN(o,c),a.y=s.y=aN(o,u,Qz),a.y2=s.y2=aN(o,c),uO({type:tO,role:"axis-domain",from:i,encode:l},n)}(e,n,i.domain,d)),f.title&&p.push($N(e,n,i.title,d)),VO(iO({role:"axis",from:d,encode:QC(AN(u,e),r,Jz),marks:p,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:o,interactive:s,style:l}),t)}function AN(e,t){const n={enter:{},update:{}};return JC(n,{orient:e("orient"),offset:e("offset")||0,position:CM(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function SN(e,t,n){const i=c(e.signals),r=c(e.scales);return n||i.forEach((e=>yM(e,t))),c(e.projections).forEach((e=>function(e,t){const n=t.config.projection||{},i={};for(const r in e)"name"!==r&&(i[r]=Mz(e[r],r,t));for(const r in n)null==i[r]&&(i[r]=Mz(n[r],r,t));t.addProjection(e.name,i)}(e,t))),r.forEach((e=>function(e,t){const n=e.type||"linear";Rf(n)||v("Unrecognized scale type: "+o(n)),t.addScale(e.name,{type:n,domain:void 0})}(e,t))),c(e.data).forEach((e=>eN(e,t))),r.forEach((e=>vz(e,t))),(n||i).forEach((e=>function(e,t){const n=t.getSignal(e.name);let i=e.update;e.init&&(i?v("Signals can not include both init and update expressions."):(i=e.init,n.initonly=!0)),i&&(i=CF(i,t),n.update=i.$expr,n.params=i.$params),e.on&&e.on.forEach((e=>jM(e,t,n.id)))}(e,t))),c(e.axes).forEach((e=>DN(e,t))),c(e.marks).forEach((e=>VO(e,t))),c(e.legends).forEach((e=>YO(e,t))),e.title&&KO(e.title,t),t.parseLambdas(),t}function EN(e,n){const i=n.config,r=wM(n.root=n.add(xM())),o=function(e,n){const i=t=>CM(e[t],n[t]),r=[FN("background",i("background")),FN("autosize",HC(i("autosize"))),FN("padding",VC(i("padding"))),FN("width",i("width")||0),FN("height",i("height")||0)],o=r.reduce(((e,t)=>(e[t.name]=t,e)),{}),a={};return c(e.signals).forEach((e=>{t(o,e.name)?e=D(o[e.name],e):r.push(e),a[e.name]=e})),c(n.signals).forEach((e=>{t(a,e.name)||t(o,e.name)||r.push(e)})),r}(e,i);o.forEach((e=>yM(e,n))),n.description=e.description||i.description,n.eventConfig=i.events,n.legends=n.objectProperty(i.legend&&i.legend.layout),n.locale=i.locale;const a=n.add(HM()),s=n.add(YM(dM((e=>QC({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e))(e.encode),Zz,eM,e.style,n,{pulse:wM(a)}))),l=n.add(pz({layout:n.objectProperty(e.layout),legends:n.legends,autosize:n.signalRef("autosize"),mark:r,pulse:wM(s)}));n.operators.pop(),n.pushState(wM(s),wM(l),null),SN(e,n,o),n.operators.push(l);let u=n.add(WM({mark:r,pulse:wM(l)}));return u=n.add(cz({pulse:wM(u)})),u=n.add(dz({pulse:wM(u)})),n.addData("root",new UO(n,a,a,u)),n}function FN(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function CN(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function MN(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function zN(e){return(u(e)?ON:NN)(e)}function ON(e){const t=e.length;let n="[";for(let i=0;i<t;++i){const t=e[i];n+=(i>0?",":"")+(a(t)?t.signal||zN(t):o(t))}return n+"]"}function NN(e){let t,n,i="{",r=0;for(t in e)n=e[t],i+=(++r>1?",":"")+o(t)+":"+(a(n)?n.signal||zN(n):o(n));return i+"}"}CN.prototype=MN.prototype={parse(e){return SN(e,this)},fork(){return new MN(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach((t=>{t.$ref=e.id})),e.refs=null),e},proxy(e){const t=e instanceof vM?wM(e):e;return this.add(lz({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(e,t,n){let i,r;e&&(i=e.data||(e.data={}),r=i[t]||(i[t]=[]),r.push(n))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const i in t.index)n(t.index[i],e,"index:"+i)}return this},pushState(e,t,n){this._encode.push(wM(this.add(dz({pulse:e})))),this._parent.push(t),this._lookup.push(n?wM(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return T(this._parent)},encode(){return T(this._encode)},lookup(){return T(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(i(e))return _M(e,t);e.signal||v("Unsupported field reference: "+o(e));const n=e.signal;let r=this.field[n];if(!r){const e={name:this.signalRef(n)};t&&(e.as=t),this.field[n]=r=wM(this.add(QM(e)))}return r},compareRef(e){let t=!1;const n=e=>EM(e)?(t=!0,this.signalRef(e.signal)):function(e){return e&&e.expr}(e)?(t=!0,this.exprRef(e.expr)):e,i=c(e.field).map(n),r=c(e.order).map(n);return t?wM(this.add(GM({fields:i,orders:r}))):$M(i,r)},keyRef(e,t){let n=!1;const i=this.signals;return e=c(e).map((e=>EM(e)?(n=!0,wM(i[e.signal])):e)),n?wM(this.add(KM({fields:e,flat:t}))):function(e,t){const n={$key:e};return t&&(n.$flat=!0),n}(e,t)},sortRef(e){if(!e)return e;const t=DM(e.op,e.field),n=e.order||"ascending";return n.signal?wM(this.add(GM({fields:t,orders:this.signalRef(n.signal)}))):$M(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const i=this.id();this.streams.push({id:i,source:e,type:t}),this.events[n]=i}return this.events[n]},hasOwnSignal(e){return t(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&v("Duplicate signal name: "+o(e));const n=t instanceof vM?t:this.add(xM(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||v("Unrecognized signal name: "+o(e)),this.signals[e]},signalRef(e){return this.signals[e]?wM(this.signals[e]):(t(this.lambdas,e)||(this.lambdas[e]=this.add(xM(null))),wM(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){const n=e[t],i=CF(n,this),r=this.lambdas[n];r.params=i.$params,r.update=i.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return e&&a(e)?this.signalRef(e.signal||zN(e)):e},exprRef(e,t){const n={expr:CF(e,this)};return t&&(n.expr.$name=t),wM(this.add(XM(n)))},addBinding(e,t){this.bindings||v("Nested signals do not support binding: "+o(e)),this.bindings.push(D({signal:e},t))},addScaleProj(e,n){t(this.scales,e)&&v("Duplicate scale or projection name: "+o(e)),this.scales[e]=this.add(n)},addScale(e,t){this.addScaleProj(e,fz(t))},addProjection(e,t){this.addScaleProj(e,sz(t))},getScale(e){return this.scales[e]||v("Unrecognized scale name: "+o(e)),this.scales[e]},scaleRef(e){return wM(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,n){return t(this.data,e)&&v("Duplicate data set name: "+o(e)),this.data[e]=n},getData(e){return this.data[e]||v("Undefined data set name: "+o(e)),this.data[e]},addDataPipeline(e,n){return t(this.data,e)&&v("Duplicate data set name: "+o(e)),this.addData(e,UO.fromEntries(this,n))}};D(nl,kc,wv,Kv,Ik,b$,rA,BD,uA,UA,tS,cS);const RN=Object.freeze(Object.defineProperty({__proto__:null,Bounds:xh,CanvasHandler:eg,CanvasRenderer:sg,DATE:We,DAY:He,DAYOFYEAR:Ge,Dataflow:Zs,Debug:Ve,Error:d,EventStream:Ps,Gradient:$d,GroupItem:_h,HOURS:Ye,Handler:Mm,HybridHandler:Jg,HybridRenderer:Xg,Info:Xe,Item:wh,MILLISECONDS:Je,MINUTES:Qe,MONTH:Ke,Marks:mm,MultiPulse:Ys,None:Ze,Operator:Rs,Parameters:zs,Pulse:Ws,QUARTER:et,RenderType:ey,Renderer:Om,ResourceLoader:kh,SECONDS:tt,SVGHandler:ug,SVGRenderer:Ng,SVGStringRenderer:Vg,Scenegraph:km,TIME_UNITS:X,Transform:tl,View:CC,WEEK:nt,Warn:it,YEAR:rt,accessor:F,accessorFields:E,accessorName:S,array:c,ascending:z,bandwidthNRD:ll,bin:ul,bootstrapCI:fl,boundClip:ly,boundContext:Wh,boundItem:gm,boundMark:vm,boundStroke:Ah,changeset:Cs,clampRange:_e,codegenExpression:CE,compare:H,constant:g,cumulativeLogNormal:$l,cumulativeNormal:vl,cumulativeUniform:Cl,dayofyear:$e,debounce:A,defaultLocale:h,definition:il,densityLogNormal:kl,densityNormal:yl,densityUniform:Fl,domChild:Sm,domClear:Em,domCreate:Dm,domFind:Am,dotbin:dl,error:v,expressionFunction:FF,extend:D,extent:M,extentIndex:Y,falsy:ue,fastmap:W,field:q,flush:Te,font:lm,fontFamily:sm,fontSize:nm,format:ot,formatLocale:at,formats:st,hasOwnProperty:t,id:b,identity:y,inferType:lt,inferTypes:ut,ingest:$s,inherits:_,inrange:ye,interpolate:Yf,interpolateColors:Hf,interpolateRange:Wf,intersect:iy,intersectBoxLine:tp,intersectPath:Qh,intersectPoint:Kh,intersectRule:ep,isArray:u,isBoolean:l,isDate:ge,isFunction:m,isIterable:ct,isNumber:n,isObject:a,isRegExp:Le,isString:i,isTuple:ws,key:G,lerp:Be,lineHeight:im,loader:p,locale:Ue,logger:f,lruCache:le,markup:Ag,merge:U,mergeConfig:Ie,multiLineOffset:om,one:ce,pad:Re,panLinear:we,panLog:xe,panPow:be,panSymlog:ve,parse:function(e,t,n){return a(e)||v("Input Vega specification must be an object."),EN(e,new CN(t=Ie(function(){const e="sans-serif",t="#4c78a8",n="#000",i="#888",r="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:t},area:{fill:t},image:null,line:{stroke:t,strokeWidth:2},path:{stroke:t},rect:{fill:t},rule:{stroke:n},shape:{stroke:t},symbol:{fill:t,size:64},text:{fill:n,font:e,fontSize:11},trail:{fill:t,size:2},style:{"guide-label":{fill:n,font:e,fontSize:10},"guide-title":{fill:n,font:e,fontSize:11,fontWeight:"bold"},"group-title":{fill:n,font:e,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:n,font:e,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:r},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:i,grid:!1,gridWidth:1,gridColor:r,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:i,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:r,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:i,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}(),t,e.config),n)).toRuntime()},parseExpression:SE,parseSelector:qC,path:qn,pathCurves:Ad,pathEqual:cy,pathParse:zd,pathRectangle:nh,pathRender:Id,pathSymbols:Vd,pathTrail:ih,peek:T,point:Cm,projection:fk,quantileLogNormal:Dl,quantileNormal:bl,quantileUniform:Ml,quantiles:al,quantizeInterpolator:Gf,quarter:Ee,quartiles:sl,get random(){return cl},randomInteger:function(e,t){let n,i,r;null==t&&(t=e,e=0);const o={min(e){return arguments.length?(n=e||0,r=i-n,o):n},max(e){return arguments.length?(i=e||0,r=i-n,o):i},sample:()=>n+Math.floor(r*cl()),pdf:e=>e===Math.floor(e)&&e>=n&&e<i?1/r:0,cdf(e){const t=Math.floor(e);return t<n?0:t>=i?1:(t-n+1)/r},icdf:e=>e>=0&&e<=1?n-1+Math.floor(e*r):NaN};return o.min(e).max(t)},randomKDE:wl,randomLCG:function(e){return function(){return(e=(1103515245*e+12345)%2147483647)/2147483647}},randomLogNormal:Al,randomMixture:Sl,randomNormal:xl,randomUniform:zl,read:$,regressionConstant:Ol,regressionExp:Ll,regressionLinear:Pl,regressionLoess:Hl,regressionLog:jl,regressionPoly:Il,regressionPow:ql,regressionQuad:Ul,renderModule:ny,repeat:ft,resetDefaultLocale:dt,resetSVGClipId:vh,resetSVGDefIds:function(){vh(),bd=0},responseType:k,runtimeContext:jF,sampleCurve:Xl,sampleLogNormal:_l,sampleNormal:gl,sampleUniform:El,scale:Nf,sceneEqual:uy,sceneFromJSON:wm,scenePickVisit:dp,sceneToJSON:xm,sceneVisit:fp,sceneZOrder:cp,scheme:Kf,serializeXML:Sg,setHybridRendererOptions:function(e){Yg.svgMarkTypes=e.svgMarkTypes??["text"],Yg.svgOnTop=e.svgOnTop??!0,Yg.debug=e.debug??!1},setRandom:function(e){cl=e},span:I,splitAccessPath:r,stringValue:o,textMetrics:Jp,timeBin:O,timeFloor:B,timeFormatLocale:ht,timeInterval:j,timeOffset:Me,timeSequence:Ce,timeUnitSpecifier:Fe,timeUnits:N,toBoolean:je,toDate:qe,toNumber:C,toSet:se,toString:Pe,transform:rl,transforms:nl,truncate:Ne,truthy:x,tupleid:_s,typeParsers:pt,utcFloor:R,utcInterval:P,utcOffset:Oe,utcSequence:ze,utcdayofyear:ke,utcquarter:Se,utcweek:De,version:"5.31.0",visitArray:w,week:Ae,writeConfig:s,zero:V,zoomLinear:pe,zoomLog:fe,zoomPow:de,zoomSymlog:he},Symbol.toStringTag,{value:"Module"}));function BN(e){return`Invalid specification ${kr(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const TN='Autosize "fit" only works for single views and layered views.';function PN(e){return`${"width"==e?"Width":"Height"} "container" only works for single views and layered views.`}function jN(e){return`${"width"==e?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${"width"==e?"x":"y"}".`}function LN(e){return e?`Dropping "fit-${e}" because spec has discrete ${Ro(e)}.`:'Dropping "fit" because spec has discrete size.'}function qN(e){return`Unknown field for ${e}. Cannot calculate view size.`}function UN(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function IN(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function WN(e){return`Selection not supported for ${e} yet.`}const HN="The same selection must be used to override scale domains in a layered view.";function GN(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const VN="Animation involving facet, layer, or concat is currently unsupported.";function YN(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function XN(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function JN(e){return`${e}Offset dropped because ${e} is continuous`}function QN(e){return`Invalid field type "${e}".`}function KN(e,t){const{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has ${n&&i?"fill and stroke":n?"fill":"stroke"}.`}function ZN(e,t){return`Dropping ${kr(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}function eR(e,t,n){return`${e} dropped as it is incompatible with "${t}".`}function tR(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function nR(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function iR(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${"ordinal"===t?"order":"magnitude"}.`}function rR(e){return`Using unaggregated domain with raw field has no effect (${kr(e)}).`}function oR(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function aR(e){return`Unaggregated domain is currently unsupported for log scale (${kr(e)}).`}function sR(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function lR(e){return`The step for "${e}" is dropped because the ${"width"===e?"x":"y"} is continuous.`}const uR="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function cR(e,t){return`Invalid ${e}: ${kr(t)}.`}function fR(e){return`1D error band does not support ${e}.`}function dR(e){return`Channel ${e} is required for "binned" bin.`}const hR=f(it);let pR=hR;function mR(...e){pR.error(...e)}function gR(...e){pR.warn(...e)}function yR(e){if(e&&a(e))for(const t of DR)if($r(e,t))return!0;return!1}const vR=["january","february","march","april","may","june","july","august","september","october","november","december"],bR=vR.map((e=>e.substr(0,3))),xR=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],wR=xR.map((e=>e.substr(0,3)));function _R(e,t){const i=[];if(t&&void 0!==e.day&&Qi(e).length>1&&(gR(function(e){return`Dropping day from datetime ${kr(e)} as day cannot be combined with other units.`}(e)),delete(e=Oi(e)).day),void 0!==e.year?i.push(e.year):i.push(2012),void 0!==e.month){const r=t?function(e){if(xr(e)&&(e=+e),n(e))return e-1;{const t=e.toLowerCase(),n=vR.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=bR.indexOf(i);if(-1!==r)return r;throw new Error(cR("month",e))}}(e.month):e.month;i.push(r)}else if(void 0!==e.quarter){const r=t?function(e){if(xr(e)&&(e=+e),n(e))return e>4&&gR(cR("quarter",e)),e-1;throw new Error(cR("quarter",e))}(e.quarter):e.quarter;i.push(n(r)?3*r:`${r}*3`)}else i.push(0);if(void 0!==e.date)i.push(e.date);else if(void 0!==e.day){const r=t?function(e){if(xr(e)&&(e=+e),n(e))return e%7;{const t=e.toLowerCase(),n=xR.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=wR.indexOf(i);if(-1!==r)return r;throw new Error(cR("day",e))}}(e.day):e.day;i.push(n(r)?r+1:`${r}+1`)}else i.push(1);for(const n of["hours","minutes","seconds","milliseconds"]){const t=e[n];i.push(void 0===t?0:t)}return i}function kR(e){const t=_R(e,!0).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}const $R={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},DR=Qi($R);function AR(e){return a(e)?e.binned:SR(e)}function SR(e){return e&&e.startsWith("binned")}function ER(e){return e.startsWith("utc")}const FR={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function CR(e){return DR.filter((t=>zR(e,t)))}function MR(e){const t=CR(e);return t[t.length-1]}function zR(e,t){const n=e.indexOf(t);return!(n<0)&&(!(n>0&&"seconds"===t&&"i"===e.charAt(n-1))&&(!(e.length>n+3&&"day"===t&&"o"===e.charAt(n+3))&&!(n>0&&"year"===t&&"f"===e.charAt(n-1))))}function OR(e,t,{end:n}={end:!1}){const i=or(t),r=ER(e)?"utc":"";let o;const a={};for(const l of DR)zR(e,l)&&(a[l]="quarter"===(s=l)?`(${r}quarter(${i})-1)`:`${r}${s}(${i})`,o=l);var s;return n&&(a[o]+="+1"),function(e){const t=_R(e,!1).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}(a)}function NR(e){if(!e)return;return`timeUnitSpecifier(${kr(CR(e))}, ${kr(FR)})`}function RR(e){if(!e)return;let t;return i(e)?t=SR(e)?{unit:e.substring(6),binned:!0}:{unit:e}:a(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),ER(t.unit)&&(t.utc=!0,t.unit=t.unit.substring(3)),t}function BR(e,t=e=>e){const n=RR(e),i=MR(n.unit);if(i&&"day"!==i){const e={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:r,part:o}=PR(i,n.step);return`${t(kR({...e,[o]:+e[o]+r}))} - ${t(kR(e))}`}}const TR={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function PR(e,n=1){if(function(e){return t(TR,e)}(e))return{part:e,step:n};switch(e){case"day":case"dayofyear":return{part:"date",step:n};case"quarter":return{part:"month",step:3*n};case"week":return{part:"date",step:7*n}}}function jR(e){return!!(null==e?void 0:e.field)&&void 0!==e.equal}function LR(e){return!!(null==e?void 0:e.field)&&void 0!==e.lt}function qR(e){return!!(null==e?void 0:e.field)&&void 0!==e.lte}function UR(e){return!!(null==e?void 0:e.field)&&void 0!==e.gt}function IR(e){return!!(null==e?void 0:e.field)&&void 0!==e.gte}function WR(e){if(null==e?void 0:e.field){if(u(e.range)&&2===e.range.length)return!0;if(Xa(e.range))return!0}return!1}function HR(e){return!!(null==e?void 0:e.field)&&(u(e.oneOf)||u(e.in))}function GR(e){return HR(e)||jR(e)||WR(e)||LR(e)||UR(e)||qR(e)||IR(e)}function VR(e,t){return AP(e,{timeUnit:t,wrapTime:!0})}function YR(e,t=!0){const{field:n}=e,i=RR(e.timeUnit),{unit:r,binned:o}=i||{},a=uP(e,{expr:"datum"}),s=r?`time(${o?a:OR(r,n)})`:a;if(jR(e))return`${s}===${VR(e.equal,r)}`;if(LR(e)){return`${s}<${VR(e.lt,r)}`}if(UR(e)){return`${s}>${VR(e.gt,r)}`}if(qR(e)){return`${s}<=${VR(e.lte,r)}`}if(IR(e)){return`${s}>=${VR(e.gte,r)}`}if(HR(e))return`indexof([${(l=e.oneOf,u=r,l.map((e=>VR(e,u)))).join(",")}], ${s}) !== -1`;if(function(e){return!!(null==e?void 0:e.field)&&void 0!==e.valid}(e))return XR(s,e.valid);if(WR(e)){const{range:n}=Ga(e),i=Xa(n)?{signal:`${n.signal}[0]`}:n[0],o=Xa(n)?{signal:`${n.signal}[1]`}:n[1];if(null!==i&&null!==o&&t)return"inrange("+s+", ["+VR(i,r)+", "+VR(o,r)+"])";const a=[];return null!==i&&a.push(`${s} >= ${VR(i,r)}`),null!==o&&a.push(`${s} <= ${VR(o,r)}`),a.length>0?a.join(" && "):"true"}var l,u;throw new Error(`Invalid field predicate: ${kr(e)}`)}function XR(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function JR(e){return GR(e)&&e.timeUnit?{...e,timeUnit:RR(e.timeUnit)}:e}function QR(e){return"ordinal"===e||"nominal"===e}const KR="quantitative",ZR="ordinal",eB="temporal",tB="nominal",nB="geojson";const iB="linear",rB="log",oB="pow",aB="sqrt",sB="time",lB="utc",uB="point",cB="band",fB={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function dB(e,t){const n=fB[e],i=fB[t];return n===i||"ordinal-position"===n&&"time"===i||"ordinal-position"===i&&"time"===n}const hB={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function pB(e){return hB[e]}const mB=new Set(["linear","log","pow","sqrt","symlog"]),gB=new Set([...mB,"time","utc"]);function yB(e){return mB.has(e)}const vB=new Set(["quantile","quantize","threshold"]),bB=new Set([...gB,...vB,"sequential","identity"]),xB=new Set(["ordinal","bin-ordinal","point","band"]);function wB(e){return xB.has(e)}function _B(e){return bB.has(e)}function kB(e){return gB.has(e)}function $B(e){return vB.has(e)}function DB(e){return $r(e,"param")}const{type:AB,domain:SB,range:EB,rangeMax:FB,rangeMin:CB,scheme:MB,...zB}={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},OB=Qi(zB);function NB(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(e);case"bins":return!["point","band","identity","ordinal"].includes(e);case"round":return kB(e)||"band"===e||"point"===e;case"padding":case"rangeMin":case"rangeMax":return kB(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return"band"===e;case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return kB(e);case"nice":return kB(e)||"quantize"===e||"threshold"===e;case"exponent":return"pow"===e;case"base":return"log"===e;case"constant":return"symlog"===e;case"zero":return _B(e)&&!ji(["log","time","utc","threshold","quantile"],e)}}function RB(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return go(e)?void 0:`Cannot use the scale property "${t}" with non-color channel.`;case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}const BB={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},TB=BB.arc,PB=BB.area,jB=BB.bar,LB=BB.image,qB=BB.line,UB=BB.point,IB=BB.rect,WB=BB.rule,HB=BB.text,GB=BB.tick,VB=BB.trail,YB=BB.circle,XB=BB.square,JB=BB.geoshape;function QB(e){return["line","area","trail"].includes(e)}function KB(e){return["rect","bar","image","arc","tick"].includes(e)}const ZB=new Set(Qi(BB));function eT(e){return $r(e,"type")}const tT=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],nT=Qi({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),iT=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],rT={area:["line","point"],bar:iT,rect:iT,line:["point"],tick:["bandSize","thickness",...iT]},oT=Qi({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function aT(e){return $r(e,"band")}const sT={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},lT={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},uT={...lT,binSpacing:1},cT={...lT,thickness:1};function fT(e,{isPath:t}){return void 0===e||"break-paths-show-path-domains"===e?t?"break-paths-show-domains":"filter":null===e?"show":e}function dT({markDef:e,config:t,scaleChannel:n,scaleType:i,isCountAggregate:r}){var o,a;if(!i||!_B(i)||r)return"always-valid";const s=fT(us("invalid",e,t),{isPath:QB(e.type)});return void 0!==(null==(a=null==(o=t.scale)?void 0:o.invalid)?void 0:a[n])?"show":s}function hT({scaleName:e,scale:t,mode:n}){const i=`domain('${e}')`;if(!t||!e)return;const r=`${i}[0]`,o=`peek(${i})`,a=t.domainHasZero();if("definitely"===a)return{scale:e,value:0};if("maybe"===a){return{signal:`scale('${e}', inrange(0, ${i}) ? 0 : ${"zeroOrMin"===n?r:o})`}}return{signal:`scale('${e}', ${"zeroOrMin"===n?r:o})`}}function pT({scaleChannel:e,channelDef:t,scale:n,scaleName:i,markDef:r,config:o}){var a;const s=null==n?void 0:n.get("type"),l=vP(t),u=dT({scaleChannel:e,markDef:r,config:o,scaleType:s,isCountAggregate:Ba(null==l?void 0:l.aggregate)});if(l&&"show"===u){const t=(null==(a=o.scale.invalid)?void 0:a[e])??"zero-or-min";return{test:XR(uP(l,{expr:"datum"}),!1),...mT(t,n,i)}}}function mT(e,t,n){if(a(i=e)&&"value"in i){const{value:t}=e;return Xa(t)?{signal:t.signal}:{value:t}}var i;return hT({scale:t,scaleName:n,mode:"zeroOrMin"})}function gT(e){const{channel:t,channelDef:n,markDef:i,scale:r,scaleName:o,config:a}=e,s=zo(t),l=bT(e),u=pT({scaleChannel:s,channelDef:n,scale:r,scaleName:o,markDef:i,config:a});return void 0!==u?[u,l]:l}function yT(e,t,n,i){const r={};if(t&&(r.scale=t),QT(e)){const{datum:t}=e;yR(t)?r.signal=kR(t):Xa(t)?r.signal=t.signal:Ha(t)?r.signal=t.expr:r.value=t}else r.field=uP(e,n);if(i){const{offset:e,band:t}=i;e&&(r.offset=e),t&&(r.band=t)}return r}function vT({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:i,startSuffix:r,endSuffix:o="end",bandPosition:a=.5}){const s=!Xa(a)&&0<a&&a<1?"datum":void 0,l=uP(t,{expr:s,suffix:r}),u=void 0!==n?uP(n,{expr:s}):uP(t,{suffix:o,expr:s}),c={};if(0===a||1===a){c.scale=e;const t=0===a?l:u;c.field=t}else{const t=Xa(a)?`(1-${a.signal}) * ${l} + ${a.signal} * ${u}`:`${1-a} * ${l} + ${a} * ${u}`;c.signal=`scale("${e}", ${t})`}return i&&(c.offset=i),c}function bT({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:l,defaultRef:u,bandPosition:c}){if(t){if(tP(t)){const u=null==a?void 0:a.get("type");if(nP(t)){c??(c=UT({fieldDef:t,fieldDef2:n,markDef:i,config:r}));const{bin:a,timeUnit:f,type:d}=t;if(La(a)||c&&f&&d===eB)return(null==s?void 0:s.impute)?yT(t,o,{binSuffix:"mid"},{offset:l}):c&&!wB(u)?vT({scaleName:o,fieldOrDatumDef:t,bandPosition:c,offset:l}):yT(t,o,EP(t,e)?{binSuffix:"range"}:{},{offset:l});if(qa(a)){if(XT(n))return vT({scaleName:o,fieldOrDatumDef:t,fieldOrDatumDef2:n,bandPosition:c,offset:l});gR(dR(e===Er?Cr:Mr))}}return yT(t,o,wB(u)?{binSuffix:"range"}:{},{offset:l,band:"band"===u?c??t.bandPosition??.5:void 0})}if(iP(t)){const n=l?{offset:l}:{};return{...xT(e,t.value),...n}}}return m(u)&&(u=u()),u?{...u,...l?{offset:l}:{}}:u}function xT(e,t){return ji(["x","x2"],e)&&"width"===t?{field:{group:"width"}}:ji(["y","y2"],e)&&"height"===t?{field:{group:"height"}}:rs(t)}function wT(e){return e&&"number"!==e&&"time"!==e}function _T(e,t,n){return`${e}(${t}${n?`, ${kr(n)}`:""})`}function kT({fieldOrDatumDef:e,format:t,formatType:n,expr:r,normalizeStack:o,config:a}){var s,l;if(wT(n))return DT({fieldOrDatumDef:e,format:t,formatType:n,expr:r,config:a});const u=$T(e,r,o),c=JT(e);if(void 0===t&&void 0===n&&a.customFormatTypes){if("quantitative"===c){if(o&&a.normalizedNumberFormatType)return DT({fieldOrDatumDef:e,format:a.normalizedNumberFormat,formatType:a.normalizedNumberFormatType,expr:r,config:a});if(a.numberFormatType)return DT({fieldOrDatumDef:e,format:a.numberFormat,formatType:a.numberFormatType,expr:r,config:a})}if("temporal"===c&&a.timeFormatType&&XT(e)&&void 0===e.timeUnit)return DT({fieldOrDatumDef:e,format:a.timeFormat,formatType:a.timeFormatType,expr:r,config:a})}if(DP(e)){const n=function({field:e,timeUnit:t,format:n,formatType:r,rawTimeFormat:o,isUTCScale:a}){return!t||n?!t&&r?`${r}(${e}, '${n}')`:`${a?"utc":"time"}Format(${e}, '${n=i(n)?n:o}')`:function(e,t,n){if(!e)return;const i=NR(e);return`${n||ER(e)?"utc":"time"}Format(${t}, ${i})`}(t,e,a)}({field:u,timeUnit:XT(e)?null==(s=RR(e.timeUnit))?void 0:s.unit:void 0,format:t,formatType:a.timeFormatType,rawTimeFormat:a.timeFormat,isUTCScale:rP(e)&&(null==(l=e.scale)?void 0:l.type)===lB});return n?{signal:n}:void 0}if(t=ET({type:c,specifiedFormat:t,config:a,normalizeStack:o}),XT(e)&&La(e.bin)){return{signal:MT(u,uP(e,{expr:r,binSuffix:"end"}),t,n,a)}}return t||"quantitative"===JT(e)?{signal:`${FT(u,t)}`}:{signal:`isValid(${u}) ? ${u} : ""+${u}`}}function $T(e,t,n){return XT(e)?n?`${uP(e,{expr:t,suffix:"end"})}-${uP(e,{expr:t,suffix:"start"})}`:uP(e,{expr:t}):function(e){const{datum:t}=e;return yR(t)?kR(t):`${kr(t)}`}(e)}function DT({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o,field:a}){if(a??(a=$T(e,i,r)),"datum.value"!==a&&XT(e)&&La(e.bin)){return{signal:MT(a,uP(e,{expr:i,binSuffix:"end"}),t,n,o)}}return{signal:_T(n,a,t)}}function AT(e,t,n,r,o,a){var s;if(!i(r)||!wT(r)){if(void 0===n&&void 0===r&&o.customFormatTypes&&"quantitative"===JT(e)){if(o.normalizedNumberFormatType&&oP(e)&&"normalize"===e.stack)return;if(o.numberFormatType)return}if(oP(e)&&"normalize"===e.stack&&o.normalizedNumberFormat)return ET({type:"quantitative",config:o,normalizeStack:!0});if(DP(e)){const t=XT(e)?null==(s=RR(e.timeUnit))?void 0:s.unit:void 0;if(void 0===t&&o.customFormatTypes&&o.timeFormatType)return;return function({specifiedFormat:e,timeUnit:t,config:n,omitTimeFormatConfig:i}){if(e)return e;if(t)return{signal:NR(t)};return i?void 0:n.timeFormat}({specifiedFormat:n,timeUnit:t,config:o,omitTimeFormatConfig:a})}return ET({type:t,specifiedFormat:n,config:o})}}function ST(e,t,n){var i;return e&&(Xa(e)||"number"===e||"time"===e)?e:DP(t)&&"time"!==n&&"utc"!==n?XT(t)&&(null==(i=RR(null==t?void 0:t.timeUnit))?void 0:i.utc)?"utc":"time":void 0}function ET({type:e,specifiedFormat:t,config:n,normalizeStack:r}){return i(t)?t:e===KR?r?n.normalizedNumberFormat:n.numberFormat:void 0}function FT(e,t){return`format(${e}, "${t||""}")`}function CT(e,t,n,r){return wT(n)?_T(n,e,t):FT(e,(i(t)?t:void 0)??r.numberFormat)}function MT(e,t,n,i,r){if(void 0===n&&void 0===i&&r.customFormatTypes&&r.numberFormatType)return MT(e,t,r.numberFormat,r.numberFormatType,r);const o=CT(e,n,i,r),a=CT(t,n,i,r);return`${XR(e,!1)} ? "null" : ${o} + " – " + ${a}`}const zT="min",OT={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function NT(e){return t(OT,e)}function RT(e){return e&&("count"===e.op||$r(e,"field"))}function BT(e){return e&&u(e)}function TT(e){return $r(e,"row")||$r(e,"column")}function PT(e){return $r(e,"header")}function jT(e){return $r(e,"facet")}function LT(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return{...n?{timeUnit:n}:{},...i?{bin:i}:{},...r?{aggregate:r}:{},field:t}}function qT(e){return $r(e,"sort")}function UT({fieldDef:e,fieldDef2:t,markDef:n,config:i}){if(tP(e)&&void 0!==e.bandPosition)return e.bandPosition;if(XT(e)){const{timeUnit:r,bin:o}=e;if(r&&!t)return cs("timeUnitBandPosition",n,i);if(La(o))return.5}}function IT({channel:e,fieldDef:t,fieldDef2:n,markDef:i,config:r,scaleType:o,useVlSizeChannel:a}){var s,l,u;const c=Ro(e),f=us(a?"size":c,i,r,{vgChannel:c});if(void 0!==f)return f;if(XT(t)){const{timeUnit:e,bin:a}=t;if(e&&!n)return{band:cs("timeUnitBandSize",i,r)};if(La(a)&&!wB(o))return{band:1}}return KB(i.type)?o?wB(o)?(null==(s=r[i.type])?void 0:s.discreteBandSize)||{band:1}:null==(l=r[i.type])?void 0:l.continuousBandSize:null==(u=r[i.type])?void 0:u.discreteBandSize:void 0}function WT(e,t,n,i){return!!(La(e.bin)||e.timeUnit&&nP(e)&&"temporal"===e.type)&&void 0!==UT({fieldDef:e,fieldDef2:t,markDef:n,config:i})}function HT(e){return $r(e,"sort")&&!$r(e,"field")}function GT(e){return $r(e,"condition")}function VT(e){const t=null==e?void 0:e.condition;return!!t&&!u(t)&&XT(t)}function YT(e){const t=null==e?void 0:e.condition;return!!t&&!u(t)&&tP(t)}function XT(e){return $r(e,"field")||"count"===(null==e?void 0:e.aggregate)}function JT(e){return null==e?void 0:e.type}function QT(e){return $r(e,"datum")}function KT(e){return nP(e)&&!cP(e)||eP(e)}function ZT(e){return nP(e)&&"quantitative"===e.type&&!e.bin||eP(e)}function eP(e){return QT(e)&&n(e.datum)}function tP(e){return XT(e)||QT(e)}function nP(e){return e&&($r(e,"field")||"count"===e.aggregate)&&$r(e,"type")}function iP(e){return $r(e,"value")}function rP(e){return $r(e,"scale")||$r(e,"sort")}function oP(e){return $r(e,"axis")||$r(e,"stack")||$r(e,"impute")}function aP(e){return $r(e,"legend")}function sP(e){return $r(e,"format")||$r(e,"formatType")}function lP(e){return Bi(e,["legend","axis","header","scale"])}function uP(e,t={}){let n=e.field;const i=t.prefix;let r=t.suffix,o="";if(function(e){return"count"===e.aggregate}(e))n=yr("count");else{let i;if(!t.nofn)if(function(e){return $r(e,"op")}(e))i=e.op;else{const{bin:a,aggregate:s,timeUnit:l}=e;La(a)?(i=ja(a),r=(t.binSuffix??"")+(t.suffix??"")):s?Oa(s)?(o=`["${n}"]`,n=`argmax_${s.argmax}`):za(s)?(o=`["${n}"]`,n=`argmin_${s.argmin}`):i=String(s):l&&!AR(l)&&(i=function(e){const{utc:t,...n}=RR(e);return n.unit?(t?"utc":"")+Qi(n).map((e=>tr(`${"unit"===e?"":`_${e}_`}${n[e]}`))).join(""):(t?"utc":"")+"timeunit"+Qi(n).map((e=>tr(`_${e}_${n[e]}`))).join("")}(l),r=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(t.suffix??""))}i&&(n=n?`${i}_${n}`:i)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?fr(n):t.expr?ar(n,t.expr)+o:ur(n)+o}function cP(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return XT(e)&&!!e.bin;case"temporal":return!1}throw new Error(QN(e.type))}const fP=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return function(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(Oa(t))return`${r} for argmax(${t.argmax})`;if(za(t))return`${r} for argmin(${t.argmin})`;const o=i&&!AR(i)?RR(i):void 0,a=t||(null==o?void 0:o.unit)||(null==o?void 0:o.maxbins)&&"timeunit"||La(n)&&"bin";return a?`${a.toUpperCase()}(${r})`:r}(e);default:return function(e,t){var n;const{field:i,bin:r,timeUnit:o,aggregate:a}=e;if("count"===a)return t.countTitle;if(La(r))return`${i} (binned)`;if(o&&!AR(o)){const e=null==(n=RR(o))?void 0:n.unit;if(e)return`${i} (${CR(e).join("-")})`}else if(a)return Oa(a)?`${i} for max ${a.argmax}`:za(a)?`${i} for min ${a.argmin}`:`${rr(a)} of ${i}`;return i}(e,t)}};let dP=fP;function hP(e){dP=e}function pP(e,t,{allowDisabling:n,includeDefault:i=!0}){var r;const o=null==(r=mP(e))?void 0:r.title;if(!XT(e))return o??e.title;const a=e,s=i?gP(a,t):void 0;return n?hr(o,a.title,s):o??a.title??s}function mP(e){return oP(e)&&e.axis?e.axis:aP(e)&&e.legend?e.legend:PT(e)&&e.header?e.header:void 0}function gP(e,t){return dP(e,t)}function yP(e){if(sP(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}{const t=mP(e)??{},{format:n,formatType:i}=t;return{format:n,formatType:i}}}function vP(e){return XT(e)?e:VT(e)?e.condition:void 0}function bP(e){return tP(e)?e:YT(e)?e.condition:void 0}function xP(e,t,r,o={}){if(i(e)||n(e)||l(e)){return gR(function(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${kr(n)}}.`}(t,i(e)?"string":n(e)?"number":"boolean",e)),{value:e}}return tP(e)?wP(e,t,r,o):YT(e)?{...e,condition:wP(e.condition,t,r,o)}:e}function wP(e,t,r,o){if(sP(e)){const{format:n,formatType:i,...a}=e;if(wT(i)&&!r.customFormatTypes)return gR(XN(t)),wP(a,t,r,o)}else{const n=oP(e)?"axis":aP(e)?"legend":PT(e)?"header":null;if(n&&e[n]){const{format:i,formatType:a,...s}=e[n];if(wT(a)&&!r.customFormatTypes)return gR(XN(t)),wP({...e,[n]:s},t,r,o)}}return XT(e)?_P(e,t,o):function(e){let t=e.type;if(t)return e;const{datum:r}=e;return t=n(r)?"quantitative":i(r)?"nominal":yR(r)?"temporal":void 0,{...e,type:t}}(e)}function _P(e,t,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:o,bin:a,field:s}=e,l={...e};if(n||!r||Na(r)||Oa(r)||za(r)||(gR(function(e){return`Invalid aggregation operator "${e}".`}(r)),delete l.aggregate),o&&(l.timeUnit=RR(o)),s&&(l.field=`${s}`),La(a)&&(l.bin=kP(a,t)),qa(a)&&!ra(t)&&gR(function(e){return`Channel ${e} should not be used with "binned" bin.`}(t)),nP(l)){const{type:e}=l,t=function(e){if(e)switch(e=e.toLowerCase()){case"q":case KR:return"quantitative";case"t":case eB:return"temporal";case"o":case ZR:return"ordinal";case"n":case tB:return"nominal";case nB:return"geojson"}}(e);e!==t&&(l.type=t),"quantitative"!==e&&Ba(r)&&(gR(function(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}(e,r)),l.type="quantitative")}else if(!Mo(t)){const e=function(e,t){var n;switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(qT(e)&&u(e.sort))return"ordinal";const{aggregate:i,bin:r,timeUnit:o}=e;if(o)return"temporal";if(r||i&&!Oa(i)&&!za(i))return"quantitative";if(rP(e)&&(null==(n=e.scale)?void 0:n.type))switch(fB[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(l,t);l.type=e}if(nP(l)){const{compatible:e,warning:n}=function(e,t){const n=e.type;if("geojson"===n&&"shape"!==t)return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case Dr:case Ar:case Sr:return cP(e)?$P:{compatible:!1,warning:tR(t)};case Er:case Fr:case zr:case Or:case Ir:case Wr:case Hr:case eo:case no:case io:case ro:case oo:case ao:case Yr:case Br:case Nr:case so:return $P;case jr:case qr:case Pr:case Lr:return n!==KR?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:$P;case Xr:case Jr:case Qr:case Kr:case Vr:case Tr:case Rr:case Cr:case Mr:case Ur:return"nominal"!==n||e.sort?$P:{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`};case Gr:case Zr:return cP(e)||rP(i=e)&&$B(null==(r=i.scale)?void 0:r.type)?$P:{compatible:!1,warning:nR(t)};case to:return"nominal"!==e.type||"sort"in e?$P:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var i,r}(l,t)||{};!1===e&&gR(n)}if(qT(l)&&i(l.sort)){const{sort:e}=l;if(NT(e))return{...l,sort:{encoding:e}};const t=e.substring(1);if("-"===e.charAt(0)&&NT(t))return{...l,sort:{encoding:t,order:"descending"}}}if(PT(l)){const{header:e}=l;if(e){const{orient:t,...n}=e;if(t)return{...l,header:{...n,labelOrient:e.labelOrient||t,titleOrient:e.titleOrient||t}}}}return l}function kP(e,t){return l(e)?{maxbins:Wa(t)}:"binned"===e?{binned:!0}:e.maxbins||e.step?e:{...e,maxbins:Wa(t)}}const $P={compatible:!0};function DP(e){const{formatType:t}=yP(e);return"time"===t||!t&&((n=e)&&("temporal"===n.type||XT(n)&&!!n.timeUnit));var n}function AP(e,{timeUnit:r,type:o,wrapTime:a,undefinedIfExprNotRequired:s}){var l;const u=r&&(null==(l=RR(r))?void 0:l.unit);let c,f=u||"temporal"===o;return Ha(e)?c=e.expr:Xa(e)?c=e.signal:yR(e)?(f=!0,c=kR(e)):(i(e)||n(e))&&f&&(c=`datetime(${kr(e)})`,function(e){return t($R,e)}(u)&&(n(e)&&e<1e4||i(e)&&isNaN(Date.parse(e)))&&(c=kR({[u]:e}))),c?a&&f?`time(${c})`:c:s?void 0:kr(e)}function SP(e,t){const{type:n}=e;return t.map((t=>{const i=AP(t,{timeUnit:XT(e)&&!AR(e.timeUnit)?e.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return void 0!==i?{signal:i}:t}))}function EP(e,t){return La(e.bin)?$a(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const FP={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function CP(e){return null==e?void 0:e.condition}const MP=["domain","grid","labels","ticks","title"],zP={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},OP={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},NP={...OP,style:1,labelExpr:1,encoding:1};function RP(e){return t(NP,e)}const BP=Qi({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function TP(e){return $r(e,"mark")}class PP{constructor(e,t){this.name=e,this.run=t}hasMatchingType(e){return!!TP(e)&&(eT(t=e.mark)?t.type:t)===this.name;var t}}function jP(e,t){const n=e&&e[t];return!!n&&(u(n)?Li(n,(e=>!!e.field)):XT(n)||VT(n))}function LP(e,t){const n=e&&e[t];return!!n&&(u(n)?Li(n,(e=>!!e.field)):XT(n)||QT(n)||YT(n))}function qP(e,t){if(ra(t)){const n=e[t];if((XT(n)||QT(n))&&(QR(n.type)||XT(n)&&n.timeUnit)){return LP(e,To(t))}}return!1}function UP(e){return Li(xo,(t=>{if(jP(e,t)){const n=e[t];if(u(n))return Li(n,(e=>!!e.aggregate));{const e=vP(n);return e&&!!e.aggregate}}return!1}))}function IP(e,n){const i=[],r=[],o=[],a=[],s={};return GP(e,((l,u)=>{if(XT(l)){const{field:c,aggregate:f,bin:d,timeUnit:h,...p}=l;if(f||h||d){const e=mP(l),m=null==e?void 0:e.title;let g=uP(l,{forAs:!0});const y={...m?[]:{title:pP(l,n,{allowDisabling:!0})},...p,field:g};if(f){let e;if(Oa(f)?(e="argmax",g=uP({op:"argmax",field:f.argmax},{forAs:!0}),y.field=`${g}.${c}`):za(f)?(e="argmin",g=uP({op:"argmin",field:f.argmin},{forAs:!0}),y.field=`${g}.${c}`):"boxplot"!==f&&"errorbar"!==f&&"errorband"!==f&&(e=f),e){const t={op:e,as:g};c&&(t.field=c),a.push(t)}}else if(i.push(g),nP(l)&&La(d)){if(r.push({bin:d,field:c,as:g}),i.push(uP(l,{binSuffix:"end"})),EP(l,u)&&i.push(uP(l,{binSuffix:"range"})),ra(u)){const e={field:`${g}_end`};s[`${u}2`]=e}y.bin="binned",Mo(u)||(y.type=KR)}else if(h&&!AR(h)){o.push({timeUnit:h,field:c,as:g});const e=nP(l)&&l.type!==eB&&"time";e&&(u===eo||u===ro?y.formatType=e:!function(e){return t(ea,e)}(u)?ra(u)&&(y.axis={formatType:e,...y.axis}):y.legend={formatType:e,...y.legend})}s[u]=y}else i.push(c),s[u]=e[u]}else s[u]=e[u]})),{bins:r,timeUnits:o,aggregate:a,groupby:i,encoding:s}}function WP(e,t,n){const i=Da(t,n);if(!i)return!1;if("binned"===i){const n=e[t===Cr?Er:Fr];return!!(XT(n)&&XT(e[t])&&qa(n.bin))}return!0}function HP(e,t){const n={};for(const i of Qi(e)){const r=xP(e[i],i,t,{compositeMark:!0});n[i]=r}return n}function GP(e,t,n){if(e)for(const i of Qi(e)){const r=e[i];if(u(r))for(const e of r)t.call(n,e,i);else t.call(n,r,i)}}function VP(e,t){return Qi(t).reduce(((n,i)=>{switch(i){case Er:case Fr:case oo:case so:case ao:case Cr:case Mr:case zr:case Or:case Br:case Tr:case Nr:case Rr:case Ur:case Pr:case jr:case Lr:case qr:case eo:case Gr:case Yr:case ro:return n;case to:if("line"===e||"trail"===e)return n;case no:case io:{const e=t[i];if(u(e)||XT(e))for(const t of c(e))t.aggregate||n.push(uP(t,{}));return n}case Vr:if("trail"===e)return n;case Ir:case Wr:case Hr:case Xr:case Jr:case Qr:case Zr:case Kr:{const e=vP(t[i]);return e&&!e.aggregate&&n.push(uP(e,{})),n}}}),[])}function YP(e,t,n,i=!0){if("tooltip"in n)return{tooltip:n.tooltip};return{tooltip:[...e.map((({fieldPrefix:e,titlePrefix:n})=>{const r=i?` of ${XP(t)}`:"";return{field:e+t.field,type:t.type,title:Xa(n)?{signal:`${n}"${escape(r)}"`}:n+r}})),...Wi(function(e){const t=[];for(const n of Qi(e))if(jP(e,n)){const i=e[n],r=c(i);for(const e of r)XT(e)?t.push(e):VT(e)&&t.push(e.condition)}return t}(n).map(lP),Ti)]}}function XP(e){const{title:t,field:n}=e;return hr(t,n)}function JP(e,t,n,r,o){const{scale:a,axis:s}=n;return({partName:l,mark:u,positionPrefix:c,endPositionPrefix:f,extraEncoding:d={}})=>{const h=XP(n);return QP(e,l,o,{mark:u,encoding:{[t]:{field:`${c}_${n.field}`,type:n.type,...void 0!==h?{title:h}:{},...void 0!==a?{scale:a}:{},...void 0!==s?{axis:s}:{}},...i(f)?{[`${t}2`]:{field:`${f}_${n.field}`}}:{},...r,...d}})}}function QP(e,t,n,i){const{clip:r,color:o,opacity:a}=e,s=e.type;return e[t]||void 0===e[t]&&n[t]?[{...i,mark:{...n[t],...r?{clip:r}:{},...o?{color:o}:{},...a?{opacity:a}:{},...eT(i.mark)?i.mark:{type:i.mark},style:`${s}-${String(t)}`,...l(e[t])?{}:e[t]}}]:[]}function KP(e,t,n){const{encoding:i}=e,r="vertical"===t?"y":"x",o=i[r],a=i[`${r}2`],s=i[`${r}Error`],l=i[`${r}Error2`];return{continuousAxisChannelDef:ZP(o,n),continuousAxisChannelDef2:ZP(a,n),continuousAxisChannelDefError:ZP(s,n),continuousAxisChannelDefError2:ZP(l,n),continuousAxis:r}}function ZP(e,t){if(null==e?void 0:e.aggregate){const{aggregate:n,...i}=e;return n!==t&&gR(function(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}(n,t)),i}return e}function ej(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(eT(n)&&n.orient)return n.orient;if(KT(r)){if(KT(o)){const e=XT(r)&&r.aggregate,n=XT(o)&&o.aggregate;if(e||n!==t){if(n||e!==t){if(e===t&&n===t)throw new Error("Both x and y cannot have aggregate");return DP(o)&&!DP(r)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(KT(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}const tj="boxplot",nj=new PP(tj,rj);function ij(e){return n(e)?"tukey":e}function rj(e,{config:t}){e={...e,encoding:HP(e.encoding,t)};const{mark:n,encoding:i,params:r,projection:o,...s}=e,l=eT(n)?n:{type:n};r&&gR(WN("boxplot"));const c=l.extent??t.boxplot.extent,f=us("size",l,t),d=l.invalid,h=ij(c),{bins:p,timeUnits:m,transform:g,continuousAxisChannelDef:y,continuousAxis:v,groupby:b,aggregate:x,encodingWithoutContinuousAxis:w,ticksOrient:_,boxOrient:k,customTooltipWithoutAggregatedField:$}=function(e,t,n){const i=ej(e,tj),{continuousAxisChannelDef:r,continuousAxis:o}=KP(e,i,tj),a=r.field,s=fr(a),l=ij(t),c=[...oj(a),{op:"median",field:a,as:`mid_box_${s}`},{op:"min",field:a,as:("min-max"===l?"lower_whisker_":"min_")+s},{op:"max",field:a,as:("min-max"===l?"upper_whisker_":"max_")+s}],f="min-max"===l||"tukey"===l?[]:[{calculate:`${sr(`upper_box_${s}`)} - ${sr(`lower_box_${s}`)}`,as:`iqr_${s}`},{calculate:`min(${sr(`upper_box_${s}`)} + ${sr(`iqr_${s}`)} * ${t}, ${sr(`max_${s}`)})`,as:`upper_whisker_${s}`},{calculate:`max(${sr(`lower_box_${s}`)} - ${sr(`iqr_${s}`)} * ${t}, ${sr(`min_${s}`)})`,as:`lower_whisker_${s}`}],{[o]:d,...h}=e.encoding,{customTooltipWithoutAggregatedField:p,filteredEncoding:m}=function(e){const{tooltip:t,...n}=e;if(!t)return{filteredEncoding:n};let i,r;if(u(t)){for(const e of t)e.aggregate?(i||(i=[]),i.push(e)):(r||(r=[]),r.push(e));i&&(n.tooltip=i)}else t.aggregate?n.tooltip=t:r=t;return u(r)&&1===r.length&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}(h),{bins:g,timeUnits:y,aggregate:v,groupby:b,encoding:x}=IP(m,n),w="vertical"===i?"horizontal":"vertical",_=i,k=[...g,...y,{aggregate:[...v,...c],groupby:b},...f];return{bins:g,timeUnits:y,transform:k,groupby:b,aggregate:v,continuousAxisChannelDef:r,continuousAxis:o,encodingWithoutContinuousAxis:x,ticksOrient:w,boxOrient:_,customTooltipWithoutAggregatedField:p}}(e,c,t),D=fr(y.field),{color:A,size:S,...E}=w,F=e=>JP(l,v,y,e,t.boxplot),C=F(E),M=F(w),z=(a(t.boxplot.box)?t.boxplot.box.color:t.mark.color)||"#4c78a8",O=F({...E,...S?{size:S}:{},color:{condition:{test:`${sr(`lower_box_${y.field}`)} >= ${sr(`upper_box_${y.field}`)}`,...A||{value:z}}}}),N=YP([{fieldPrefix:"min-max"===h?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:"min-max"===h?"lower_whisker_":"min_",titlePrefix:"Min"}],y,w),R={type:"tick",color:"black",opacity:1,orient:_,invalid:d,aria:!1},B="min-max"===h?N:YP([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],y,w),T=[...C({partName:"rule",mark:{type:"rule",invalid:d,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:B}),...C({partName:"rule",mark:{type:"rule",invalid:d,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:B}),...C({partName:"ticks",mark:R,positionPrefix:"lower_whisker",extraEncoding:B}),...C({partName:"ticks",mark:R,positionPrefix:"upper_whisker",extraEncoding:B})],P=[..."tukey"!==h?T:[],...M({partName:"box",mark:{type:"bar",...f?{size:f}:{},orient:k,invalid:d,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:N}),...O({partName:"median",mark:{type:"tick",invalid:d,...a(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...f?{size:f}:{},orient:_,aria:!1},positionPrefix:"mid_box",extraEncoding:N})];if("min-max"===h)return{...s,transform:(s.transform??[]).concat(g),layer:P};const j=sr(`lower_box_${y.field}`),L=sr(`upper_box_${y.field}`),q=`(${L} - ${j})`,U=`${j} - ${c} * ${q}`,I=`${L} + ${c} * ${q}`,W=sr(y.field),H={joinaggregate:oj(y.field),groupby:b},G={transform:[{filter:`(${U} <= ${W}) && (${W} <= ${I})`},{aggregate:[{op:"min",field:y.field,as:`lower_whisker_${D}`},{op:"max",field:y.field,as:`upper_whisker_${D}`},{op:"min",field:`lower_box_${y.field}`,as:`lower_box_${D}`},{op:"max",field:`upper_box_${y.field}`,as:`upper_box_${D}`},...x],groupby:b}],layer:T},{tooltip:V,...Y}=E,{scale:X,axis:J}=y,Q=XP(y),K=Bi(J,["title"]),Z=QP(l,"outliers",t.boxplot,{transform:[{filter:`(${W} < ${U}) || (${W} > ${I})`}],mark:"point",encoding:{[v]:{field:y.field,type:y.type,...void 0!==Q?{title:Q}:{},...void 0!==X?{scale:X}:{},...Ji(K)?{}:{axis:K}},...Y,...A?{color:A}:{},...$?{tooltip:$}:{}}})[0];let ee;const te=[...p,...m,H];return Z?ee={transform:te,layer:[Z,G]}:(ee=G,ee.transform.unshift(...te)),{...s,layer:[ee,{transform:g,layer:P}]}}function oj(e){const t=fr(e);return[{op:"q1",field:e,as:`lower_box_${t}`},{op:"q3",field:e,as:`upper_box_${t}`}]}const aj="errorbar",sj=new PP(aj,lj);function lj(e,{config:t}){e={...e,encoding:HP(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:a,markDef:s,outerSpec:l,tooltipEncoding:u}=cj(e,aj,t);delete o.size;const c=JP(s,r,i,o,t.errorbar),f=s.thickness,d=s.size,h={type:"tick",orient:a,aria:!1,...void 0!==f?{thickness:f}:{},...void 0!==d?{size:d}:{}},p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:u}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:u}),...c({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...void 0!==f?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u})];return{...l,transform:n,...p.length>1?{layer:p}:{...p[0]}}}function uj(e,t){const{encoding:n}=e;if(function(e){return(tP(e.x)||tP(e.y))&&!tP(e.x2)&&!tP(e.y2)&&!tP(e.xError)&&!tP(e.xError2)&&!tP(e.yError)&&!tP(e.yError2)}(n))return{orient:ej(e,t),inputType:"raw"};const i=function(e){return tP(e.x2)||tP(e.y2)}(n),r=function(e){return tP(e.xError)||tP(e.xError2)||tP(e.yError)||tP(e.yError2)}(n),o=n.x,a=n.y;if(i){if(r)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const e=n.x2,i=n.y2;if(tP(e)&&tP(i))throw new Error(`${t} cannot have both x2 and y2`);if(tP(e)){if(KT(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}if(tP(i)){if(KT(a))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${t}`)}throw new Error("No ranged axis")}{const e=n.xError,i=n.xError2,r=n.yError,s=n.yError2;if(tP(i)&&!tP(e))throw new Error(`${t} cannot have xError2 without xError`);if(tP(s)&&!tP(r))throw new Error(`${t} cannot have yError2 without yError`);if(tP(e)&&tP(r))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(tP(e)){if(KT(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(tP(r)){if(KT(a))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function cj(e,t,n){const{mark:i,encoding:r,params:o,projection:a,...s}=e,l=eT(i)?i:{type:i};o&&gR(WN(t));const{orient:u,inputType:c}=uj(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:m}=KP(e,u,t),{errorBarSpecificAggregate:g,postAggregateCalculates:y,tooltipSummary:v,tooltipTitleWithFieldName:b}=function(e,t,n,i,r,o,a,s){let l=[],u=[];const c=t.field;let f,d=!1;if("raw"===o){const t=e.center?e.center:e.extent?"iqr"===e.extent?"median":"mean":s.errorbar.center,n=e.extent?e.extent:"mean"===t?"stderr":"iqr";if("median"===t!=("iqr"===n)&&gR(function(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}(t,n,a)),"stderr"===n||"stdev"===n)l=[{op:n,field:c,as:`extent_${c}`},{op:t,field:c,as:`center_${c}`}],u=[{calculate:`${sr(`center_${c}`)} + ${sr(`extent_${c}`)}`,as:`upper_${c}`},{calculate:`${sr(`center_${c}`)} - ${sr(`extent_${c}`)}`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:rr(t)},{fieldPrefix:"upper_",titlePrefix:fj(t,n,"+")},{fieldPrefix:"lower_",titlePrefix:fj(t,n,"-")}],d=!0;else{let e,t,i;"ci"===n?(e="mean",t="ci0",i="ci1"):(e="median",t="q1",i="q3"),l=[{op:t,field:c,as:`lower_${c}`},{op:i,field:c,as:`upper_${c}`},{op:e,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:pP({field:c,aggregate:i,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:pP({field:c,aggregate:t,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:pP({field:c,aggregate:e,type:"quantitative"},s,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&gR((h=e.center,`${(p=e.extent)?"extent ":""}${p&&h?"and ":""}${h?"center ":""}${p&&h?"are ":"is "}not needed when data are aggregated.`)),"aggregated-upper-lower"===o?(f=[],u=[{calculate:sr(n.field),as:`upper_${c}`},{calculate:sr(c),as:`lower_${c}`}]):"aggregated-error"===o&&(f=[{fieldPrefix:"",titlePrefix:c}],u=[{calculate:`${sr(c)} + ${sr(i.field)}`,as:`upper_${c}`}],r?u.push({calculate:`${sr(c)} + ${sr(r.field)}`,as:`lower_${c}`}):u.push({calculate:`${sr(c)} - ${sr(i.field)}`,as:`lower_${c}`}));for(const e of u)f.push({fieldPrefix:e.as.substring(0,6),titlePrefix:cr(cr(e.calculate,"datum['",""),"']","")})}var h,p;return{postAggregateCalculates:u,errorBarSpecificAggregate:l,tooltipSummary:f,tooltipTitleWithFieldName:d}}(l,f,d,h,p,c,t,n),{[m]:x,["x"===m?"x2":"y2"]:w,["x"===m?"xError":"yError"]:_,["x"===m?"xError2":"yError2"]:k,...$}=r,{bins:D,timeUnits:A,aggregate:S,groupby:E,encoding:F}=IP($,n),C=[...S,...g],M="raw"!==c?[]:E,z=YP(v,f,F,b);return{transform:[...s.transform??[],...D,...A,...0===C.length?[]:[{aggregate:C,groupby:M}],...y],groupby:M,continuousAxisChannelDef:f,continuousAxis:m,encodingWithoutContinuousAxis:F,ticksOrient:"vertical"===u?"horizontal":"vertical",markDef:l,outerSpec:s,tooltipEncoding:z}}function fj(e,t,n){return`${rr(e)} ${n} ${t}`}const dj="errorband",hj=new PP(dj,pj);function pj(e,{config:t}){e={...e,encoding:HP(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:a,outerSpec:s,tooltipEncoding:l}=cj(e,dj,t),u=a,c=JP(u,r,i,o,t.errorband),f=void 0!==e.encoding.x&&void 0!==e.encoding.y;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p={...u.interpolate?{interpolate:u.interpolate}:{},...u.tension&&u.interpolate?{tension:u.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):u.interpolate?gR(fR("interpolate")):u.tension&&gR(fR("tension")),{...s,transform:n,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:l})]}}const mj={};function gj(e,t,n){const i=new PP(e,t);mj[e]={normalizer:i,parts:n}}gj(tj,rj,["box","median","outliers","rule","ticks"]),gj(aj,lj,["ticks","rule"]),gj(dj,pj,["band","borders"]);const yj=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],vj={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},bj={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},xj=Qi(vj),wj=Qi(bj),_j=Qi({header:1,headerRow:1,headerColumn:1,headerFacet:1}),kj=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],$j="_vgsid_",Dj={point:{on:"click",fields:[$j],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function Aj(e){return"legend"===e||!!(null==e?void 0:e.legend)}function Sj(e){return Aj(e)&&a(e)}function Ej(e){return!!(null==e?void 0:e.select)}function Fj(e){const t=[];for(const n of e||[]){if(Ej(n))continue;const{expr:e,bind:i,...r}=n;if(i&&e){const n={...r,bind:i,init:e};t.push(n)}else{const n={...r,...e?{update:e}:{},...i?{bind:i}:{}};t.push(n)}}return t}function Cj(e){return $r(e,"concat")}function Mj(e){return $r(e,"vconcat")}function zj(e){return $r(e,"hconcat")}function Oj({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function Nj(e){return $r(e,"step")}function Rj(e){return $r(e,"view")||$r(e,"width")||$r(e,"height")}const Bj=Qi({align:1,bounds:1,center:1,columns:1,spacing:1});function Tj(e,t){return e[t]??e["width"===t?"continuousWidth":"continuousHeight"]}function Pj(e,t){const n=jj(e,t);return Nj(n)?n.step:Lj}function jj(e,t){return hr(e[t]??e["width"===t?"discreteWidth":"discreteHeight"],{step:e.step})}const Lj=20,qj={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:Lj},mark:{color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},arc:{},area:{},bar:uT,circle:{},geoshape:{},image:{},line:{},point:{},rect:lT,rule:{color:"black"},square:{},text:{color:"black"},tick:cT,trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,tickBandPaddingInner:.25,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:4,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0,framesPerSecond:2,animationDuration:5},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:Dj,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},Uj=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Ij={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},Wj={blue:Uj[0],orange:Uj[1],red:Uj[2],teal:Uj[3],green:Uj[4],yellow:Uj[5],purple:Uj[6],pink:Uj[7],brown:Uj[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function Hj(e){const t=Qi(e||{}),n={};for(const i of t){const t=e[i];n[i]=CP(t)?ts(t):ns(t)}return n}const Gj=[...oT,...BP,..._j,"background","padding","legend","lineBreak","scale","style","title","view"];function Vj(e={}){const{color:t,font:n,fontSize:i,selection:r,...o}=e,l=Ie({},Oi(qj),n?function(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}(n):{},t?function(e={}){return{signals:[{name:"color",value:a(e)?{...Wj,...e}:Wj}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}(t):{},i?function(e){return{signals:[{name:"fontSize",value:a(e)?{...Ij,...e}:Ij}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}(i):{},o||{});r&&s(l,"selection",r,!0);const u=Bi(l,Gj);for(const a of["background","lineBreak","padding"])l[a]&&(u[a]=ns(l[a]));for(const a of oT)l[a]&&(u[a]=Ga(l[a]));for(const a of BP)l[a]&&(u[a]=Hj(l[a]));for(const a of _j)l[a]&&(u[a]=Ga(l[a]));if(l.legend&&(u.legend=Ga(l.legend)),l.scale){const{invalid:e,...t}=l.scale,n=Ga(e,{level:1});u.scale={...Ga(t),...Qi(n).length>0?{invalid:n}:{}}}return l.style&&(u.style=function(e){const t=Qi(e),n={};for(const i of t)n[i]=Hj(e[i]);return n}(l.style)),l.title&&(u.title=Ga(l.title)),l.view&&(u.view=Ga(l.view)),u}const Yj=new Set(["view",...ZB]),Xj=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],Jj={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...rT};function Qj(e){e=Oi(e);for(const t of Xj)delete e[t];if(e.axis)for(const t in e.axis)CP(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of yj)delete e.legend[t];if(e.mark){for(const t of nT)delete e.mark[t];e.mark.tooltip&&a(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(Fj(e.params)),delete e.params);for(const t of Yj){for(const i of nT)delete e[t][i];const n=Jj[t];if(n)for(const i of n)delete e[t][i];Kj(e,t)}for(const t of Qi(mj))delete e[t];!function(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:i}=Va(e.title);Ji(t)||(e.style["group-title"]={...e.style["group-title"],...t});Ji(n)||(e.style["group-subtitle"]={...e.style["group-subtitle"],...n});Ji(i)?delete e.title:e.title=i}(e);for(const t in e)a(e[t])&&Ji(e[t])&&delete e[t];return Ji(e)?void 0:e}function Kj(e,t,n,i){"view"===t&&(n="cell");const r={...e[t],...e.style[n??t]};Ji(r)||(e.style[n??t]=r),delete e[t]}function Zj(e){return $r(e,"layer")}class eL{map(e,t){return jT(e)?this.mapFacet(e,t):function(e){return $r(e,"repeat")}(e)?this.mapRepeat(e,t):zj(e)?this.mapHConcat(e,t):Mj(e)?this.mapVConcat(e,t):Cj(e)?this.mapConcat(e,t):this.mapLayerOrUnit(e,t)}mapLayerOrUnit(e,t){if(Zj(e))return this.mapLayer(e,t);if(TP(e))return this.mapUnit(e,t);throw new Error(BN(e))}mapLayer(e,t){return{...e,layer:e.layer.map((e=>this.mapLayerOrUnit(e,t)))}}mapHConcat(e,t){return{...e,hconcat:e.hconcat.map((e=>this.map(e,t)))}}mapVConcat(e,t){return{...e,vconcat:e.vconcat.map((e=>this.map(e,t)))}}mapConcat(e,t){const{concat:n,...i}=e;return{...i,concat:n.map((e=>this.map(e,t)))}}mapFacet(e,t){return{...e,spec:this.map(e.spec,t)}}mapRepeat(e,t){return{...e,spec:this.map(e.spec,t)}}}const tL={zero:1,center:1,normalize:1};const nL=new Set([TB,jB,PB,WB,UB,YB,XB,qB,HB,GB]),iL=new Set([jB,PB,TB]);function rL(e){return XT(e)&&"quantitative"===JT(e)&&!e.bin}function oL(e,t,{orient:n,type:i}){const r="x"===t?"y":"radius",o="x"===t&&["bar","area"].includes(i),a=e[t],s=e[r];if(XT(a)&&XT(s))if(rL(a)&&rL(s)){if(a.stack)return t;if(s.stack)return r;const e=XT(a)&&!!a.aggregate;if(e!==(XT(s)&&!!s.aggregate))return e?t:r;if(o){if("vertical"===n)return r;if("horizontal"===n)return t}}else{if(rL(a))return t;if(rL(s))return r}else{if(rL(a)){if(o&&"vertical"===n)return;return t}if(rL(s)){if(o&&"horizontal"===n)return;return r}}}function aL(e,n){var i,r;const o=eT(e)?e:{type:e},a=o.type;if(!nL.has(a))return null;const s=oL(n,"x",o)||oL(n,"theta",o);if(!s)return null;const u=n[s],f=XT(u)?uP(u,{}):void 0,d=function(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(s),h=[],p=new Set;if(n[d]){const e=n[d],t=XT(e)?uP(e,{}):void 0;t&&t!==f&&(h.push(d),p.add(t))}const m="x"===d?"xOffset":"yOffset",g=n[m],y=XT(g)?uP(g,{}):void 0;y&&y!==f&&(h.push(m),p.add(y));const v=ta.reduce(((e,t)=>{if("tooltip"!==t&&jP(n,t)){const i=n[t];for(const n of c(i)){const i=vP(n);if(i.aggregate)continue;const r=uP(i,{});r&&p.has(r)||e.push({channel:t,fieldDef:i})}}return e}),[]);let b;return void 0!==u.stack?b=l(u.stack)?u.stack?"zero":null:u.stack:iL.has(a)&&(b="zero"),b&&t(tL,b)?UP(n)&&0===v.length?null:((null==(i=null==u?void 0:u.scale)?void 0:i.type)&&(null==(r=null==u?void 0:u.scale)?void 0:r.type)!==iB&&(null==u?void 0:u.stack)&&gR(`Stack is applied to a non-linear scale (${u.scale.type}).`),tP(n[No(s)])?(void 0!==u.stack&&gR(`Cannot stack "${x=s}" if there is already "${x}2".`),null):(XT(u)&&u.aggregate&&!Ta.has(u.aggregate)&&gR(`Stacking is applied even though the aggregate function is non-summative ("${u.aggregate}").`),{groupbyChannels:h,groupbyFields:p,fieldChannel:s,impute:null!==u.impute&&QB(a),stackBy:v,offset:b})):null;var x}function sL(e,t,n){const i=Ga(e),r=us("orient",i,n);if(i.orient=function(e,t,n){switch(e){case UB:case YB:case XB:case HB:case IB:case LB:return}const{x:i,y:r,x2:o,y2:a}=t;switch(e){case jB:if(XT(i)&&(qa(i.bin)||XT(r)&&r.aggregate&&!i.aggregate))return"vertical";if(XT(r)&&(qa(r.bin)||XT(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(a||o){if(n)return n;if(!o)return(XT(i)&&i.type===KR&&!La(i.bin)||eP(i))&&XT(r)&&qa(r.bin)?"horizontal":"vertical";if(!a)return(XT(r)&&r.type===KR&&!La(r.bin)||eP(r))&&XT(i)&&qa(i.bin)?"vertical":"horizontal"}case WB:if(o&&(!XT(i)||!qa(i.bin))&&a&&(!XT(r)||!qa(r.bin)))return;case PB:if(a)return XT(r)&&qa(r.bin)?"horizontal":"vertical";if(o)return XT(i)&&qa(i.bin)?"vertical":"horizontal";if(e===WB){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case qB:case GB:{const t=ZT(i),o=ZT(r);if(n)return n;if(t&&!o)return"tick"!==e?"horizontal":"vertical";if(!t&&o)return"tick"!==e?"vertical":"horizontal";if(t&&o)return"vertical";{const e=nP(i)&&i.type===eB,t=nP(r)&&r.type===eB;if(e&&!t)return"vertical";if(!e&&t)return"horizontal"}return}}return"vertical"}(i.type,t,r),void 0!==r&&r!==i.orient&&gR(`Specified orient "${i.orient}" overridden with "${r}".`),"bar"===i.type&&i.orient){const e=us("cornerRadiusEnd",i,n);if(void 0!==e){const n="horizontal"===i.orient&&t.x2||"vertical"===i.orient&&t.y2?["cornerRadius"]:sT[i.orient];for(const t of n)i[t]=e;void 0!==i.cornerRadiusEnd&&delete i.cornerRadiusEnd}}const o=us("opacity",i,n),a=us("fillOpacity",i,n);void 0===o&&void 0===a&&(i.opacity=function(e,t){if(ji([UB,GB,YB,XB],e)&&!UP(t))return.7;return}(i.type,t));return void 0===us("cursor",i,n)&&(i.cursor=function(e,t,n){if(t.href||e.href||us("href",e,n))return"pointer";return e.cursor}(i,t,n)),i}function lL(e){const{point:t,line:n,...i}=e;return Qi(i).length>1?i:i.type}function uL(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:Bi(e[t],["point","line"])});return e}function cL(e,t={},n){return"transparent"===e.point?{opacity:0}:e.point?a(e.point)?e.point:{}:void 0!==e.point?null:t.point||n.shape?a(t.point)?t.point:{}:void 0}function fL(e,t={}){return e.line?!0===e.line?{}:e.line:void 0!==e.line?null:t.line?!0===t.line?{}:t.line:void 0}class dL{constructor(){this.name="path-overlay"}hasMatchingType(e,t){if(TP(e)){const{mark:n,encoding:i}=e,r=eT(n)?n:{type:n};switch(r.type){case"line":case"rule":case"trail":return!!cL(r,t[r.type],i);case"area":return!!cL(r,t[r.type],i)||!!fL(r,t[r.type])}}return!1}run(e,t,n){const{config:i}=t,{params:r,projection:o,mark:a,name:s,encoding:l,...u}=e,c=HP(l,i),f=eT(a)?a:{type:a},d=cL(f,i[f.type],c),h="area"===f.type&&fL(f,i[f.type]),p=[{name:s,...r?{params:r}:{},mark:lL({..."area"===f.type&&void 0===f.opacity&&void 0===f.fillOpacity?{opacity:.7}:{},...f}),encoding:Bi(c,["shape"])}],m=aL(sL(f,c,i),c);let g=c;if(m){const{fieldChannel:e,offset:t}=m;g={...c,[e]:{...c[e],...t?{stack:t}:{}}}}return g=Bi(g,["y2","x2"]),h&&p.push({...o?{projection:o}:{},mark:{type:"line",...Ri(f,["clip","interpolate","tension","tooltip"]),...h},encoding:g}),d&&p.push({...o?{projection:o}:{},mark:{type:"point",opacity:1,filled:!0,...Ri(f,["clip","tooltip"]),...d},encoding:g}),n({...u,layer:p},{...t,config:uL(i)})}}function hL(e,t){return t?TT(e)?bL(e,t):gL(e,t):e}function pL(e,t){return t?bL(e,t):e}function mL(e,t,n){const r=t[e];return!i(o=r)&&$r(o,"repeat")?r.repeat in n?{...t,[e]:n[r.repeat]}:void gR(function(e){return`Unknown repeated value "${e}".`}(r.repeat)):t;var o}function gL(e,t){if(void 0!==(e=mL("field",e,t))){if(null===e)return null;if(qT(e)&&RT(e.sort)){const n=mL("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function yL(e,t){if(XT(e))return gL(e,t);{const n=mL("datum",e,t);return n===e||n.type||(n.type="nominal"),n}}function vL(e,t){if(!tP(e)){if(YT(e)){const n=yL(e.condition,t);if(n)return{...e,condition:n};{const{condition:t,...n}=e;return n}}return e}{const n=yL(e,t);if(n)return n;if(GT(e))return{condition:e.condition}}}function bL(e,t){const n={};for(const i in e)if($r(e,i)){const r=e[i];if(u(r))n[i]=r.map((e=>vL(e,t))).filter((e=>e));else{const e=vL(r,t);void 0!==e&&(n[i]=e)}}return n}class xL{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(TP(e)){const{encoding:t,mark:n}=e;if("line"===n||eT(n)&&"line"===n.type)for(const e of Co){const n=t[zo(e)];if(t[e]&&(XT(n)&&!qa(n.bin)||QT(n)))return!0}}return!1}run(e,t,n){const{encoding:i,mark:r}=e;var o,s;return gR((o=!!i.x2,s=!!i.y2,`Line mark is for continuous lines and thus cannot be used with ${o&&s?"x2 and y2":o?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),n({...e,mark:a(r)?{...r,type:"rule"}:"rule"},t)}}function wL({parentEncoding:e,encoding:t={},layer:n}){let i={};if(e){const r=new Set([...Qi(e),...Qi(t)]);for(const o of r){const r=t[o],a=e[o];if(tP(r)){const e={...a,...r};i[o]=e}else YT(r)?i[o]={...r,condition:{...a,...r.condition}}:r||null===r?i[o]=r:(n||iP(a)||Xa(a)||tP(a)||u(a))&&(i[o]=a)}}else i=t;return!i||Ji(i)?void 0:i}function _L(e){const{parentProjection:t,projection:n}=e;return t&&n&&gR(function(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${kr(t)} is overridden by a child projection ${kr(n)}.`}({parentProjection:t,projection:n})),n??t}function kL(e){return $r(e,"filter")}function $L(e){return $r(e,"lookup")}function DL(e){return $r(e,"pivot")}function AL(e){return $r(e,"density")}function SL(e){return $r(e,"quantile")}function EL(e){return $r(e,"regression")}function FL(e){return $r(e,"loess")}function CL(e){return $r(e,"sample")}function ML(e){return $r(e,"window")}function zL(e){return $r(e,"joinaggregate")}function OL(e){return $r(e,"flatten")}function NL(e){return $r(e,"calculate")}function RL(e){return $r(e,"bin")}function BL(e){return $r(e,"impute")}function TL(e){return $r(e,"timeUnit")}function PL(e){return $r(e,"aggregate")}function jL(e){return $r(e,"stack")}function LL(e){return $r(e,"fold")}function qL(e){return $r(e,"extent")&&!$r(e,"density")&&!$r(e,"regression")}function UL(e,t){const{transform:n,...i}=e;if(n){return{...i,transform:n.map((e=>{if(kL(e))return{filter:HL(e,t)};if(RL(e)&&Ua(e.bin))return{...e,bin:WL(e.bin)};if($L(e)){const{selection:t,...n}=e.from;return t?{...e,from:{param:t,...n}}:e}return e}))}}return e}function IL(e,t){var n,i;const r=Oi(e);if(XT(r)&&Ua(r.bin)&&(r.bin=WL(r.bin)),rP(r)&&(null==(i=null==(n=r.scale)?void 0:n.domain)?void 0:i.selection)){const{selection:e,...t}=r.scale.domain;r.scale.domain={...t,...e?{param:e}:{}}}if(GT(r))if(u(r.condition))r.condition=r.condition.map((e=>{const{selection:n,param:i,test:r,...o}=e;return i?e:{...o,test:HL(e,t)}}));else{const{selection:e,param:n,test:i,...o}=IL(r.condition,t);r.condition=n?r.condition:{...o,test:HL(r.condition,t)}}return r}function WL(e){const t=e.extent;if(null==t?void 0:t.selection){const{selection:n,...i}=t;return{...e,extent:{...i,param:n}}}return e}function HL(e,t){const n=e=>zi(e,(e=>{var n;const i={param:e,empty:t.emptySelections[e]??!0};return(n=t.selectionPredicates)[e]??(n[e]=[]),t.selectionPredicates[e].push(i),i}));return e.selection?n(e.selection):zi(e.test||e.filter,(e=>e.selection?n(e.selection):e))}class GL extends eL{map(e,t){const n=t.selections??[];if(e.params&&!TP(e)){const t=[];for(const i of e.params)Ej(i)?n.push(i):t.push(i);e.params=t}return t.selections=n,super.map(e,t)}mapUnit(e,t){const n=t.selections;if(!n||!n.length)return e;const r=(t.path??[]).concat(e.name),o=[];for(const a of n)if(a.views&&a.views.length)for(const t of a.views)(i(t)&&(t===e.name||r.includes(t))||u(t)&&t.map((e=>r.indexOf(e))).every(((e,t,n)=>-1!==e&&(0===t||e>n[t-1]))))&&o.push(a);else o.push(a);return o.length&&(e.params=o),e}}for(const BG of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=GL.prototype[BG];GL.prototype[BG]=function(t,n){return e.call(this,t,VL(t,n))}}function VL(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function YL(e,t){void 0===t&&(t=Vj(e.config));const n=function(e,t={}){const n={config:t};return QL.map(XL.map(JL.map(e,n),n),n)}(e,t),{width:i,height:r}=e,o=function(e,t,n){let{width:i,height:r}=t;const o=TP(e)||Zj(e),a={};o?"container"==i&&"container"==r?(a.type="fit",a.contains="padding"):"container"==i?(a.type="fit-x",a.contains="padding"):"container"==r&&(a.type="fit-y",a.contains="padding"):("container"==i&&(gR(PN("width")),i=void 0),"container"==r&&(gR(PN("height")),r=void 0));const s={type:"pad",...a,...n?KL(n.autosize):{},...KL(e.autosize)};"fit"!==s.type||o||(gR(TN),s.type="pad");"container"==i&&"fit"!=s.type&&"fit-x"!=s.type&&gR(jN("width"));"container"==r&&"fit"!=s.type&&"fit-y"!=s.type&&gR(jN("height"));if(_r(s,{type:"pad"}))return;return s}(n,{width:i,height:r,autosize:e.autosize},t);return{...n,...o?{autosize:o}:{}}}const XL=new class extends eL{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[nj,sj,hj,new dL,new xL]}map(e,t){if(TP(e)){const n=jP(e.encoding,Dr),i=jP(e.encoding,Ar),r=jP(e.encoding,Sr);if(n||i||r)return this.mapFacetedUnit(e,t)}return super.map(e,t)}mapUnit(e,t){const{parentEncoding:n,parentProjection:i}=t,r=pL(e.encoding,t.repeater),o={...e,...e.name?{name:[t.repeaterPrefix,e.name].filter((e=>e)).join("_")}:{},...r?{encoding:r}:{}};if(n||i)return this.mapUnitWithParentEncodingOrProjection(o,t);const a=this.mapLayerOrUnit.bind(this);for(const s of this.nonFacetUnitNormalizers)if(s.hasMatchingType(o,t.config))return s.run(o,t,a);return o}mapRepeat(e,t){return function(e){return!u(e.repeat)&&$r(e.repeat,"layer")}(e)?this.mapLayerRepeat(e,t):this.mapNonLayerRepeat(e,t)}mapLayerRepeat(e,t){const{repeat:n,spec:i,...r}=e,{row:o,column:a,layer:s}=n,{repeater:l={},repeaterPrefix:u=""}=t;return o||a?this.mapRepeat({...e,repeat:{...o?{row:o}:{},...a?{column:a}:{}},spec:{repeat:{layer:s},spec:i}},t):{...r,layer:s.map((e=>{const n={...l,layer:e},r=`${(i.name?`${i.name}_`:"")+u}child__layer_${tr(e)}`,o=this.mapLayerOrUnit(i,{...t,repeater:n,repeaterPrefix:r});return o.name=r,o}))}}mapNonLayerRepeat(e,t){const{repeat:n,spec:i,data:r,...o}=e;!u(n)&&e.columns&&(e=Bi(e,["columns"]),gR(GN("repeat")));const a=[],{repeater:s={},repeaterPrefix:l=""}=t,c=!u(n)&&n.row||[s?s.row:null],f=!u(n)&&n.column||[s?s.column:null],d=u(n)&&n||[s?s.repeat:null];for(const p of d)for(const e of c)for(const r of f){const o={repeat:p,row:e,column:r,layer:s.layer},c=(i.name?`${i.name}_`:"")+l+"child__"+(u(n)?`${tr(p)}`:(n.row?`row_${tr(e)}`:"")+(n.column?`column_${tr(r)}`:"")),f=this.map(i,{...t,repeater:o,repeaterPrefix:c});f.name=c,a.push(Bi(f,["data"]))}const h=u(n)?e.columns:n.column?n.column.length:1;return{data:i.data??r,align:"all",...o,columns:h,concat:a}}mapFacet(e,t){const{facet:n}=e;return TT(n)&&e.columns&&(e=Bi(e,["columns"]),gR(GN("facet"))),super.mapFacet(e,t)}mapUnitWithParentEncodingOrProjection(e,t){const{encoding:n,projection:i}=e,{parentEncoding:r,parentProjection:o,config:a}=t,s=_L({parentProjection:o,projection:i}),l=wL({parentEncoding:r,encoding:pL(n,t.repeater)});return this.mapUnit({...e,...s?{projection:s}:{},...l?{encoding:l}:{}},{config:a})}mapFacetedUnit(e,t){const{row:n,column:i,facet:r,...o}=e.encoding,{mark:a,width:s,projection:l,height:u,view:c,params:f,encoding:d,...h}=e,{facetMapping:p,layout:m}=this.getFacetMappingAndLayout({row:n,column:i,facet:r},t),g=pL(o,t.repeater);return this.mapFacet({...h,...m,facet:p,spec:{...s?{width:s}:{},...u?{height:u}:{},...c?{view:c}:{},...l?{projection:l}:{},mark:a,encoding:g,...f?{params:f}:{}}},t)}getFacetMappingAndLayout(e,t){const{row:n,column:i,facet:r}=e;if(n||i){r&&gR(`Facet encoding dropped as ${(o=[...n?[Dr]:[],...i?[Ar]:[]]).join(" and ")} ${o.length>1?"are":"is"} also specified.`);const t={},a={};for(const n of[Dr,Ar]){const i=e[n];if(i){const{align:e,center:r,spacing:o,columns:s,...l}=i;t[n]=l;for(const t of["align","center","spacing"])void 0!==i[t]&&(a[t]??(a[t]={}),a[t][n]=i[t])}}return{facetMapping:t,layout:a}}{const{align:e,center:n,spacing:i,columns:o,...a}=r;return{facetMapping:hL(a,t.repeater),layout:{...e?{align:e}:{},...n?{center:n}:{},...i?{spacing:i}:{},...o?{columns:o}:{}}}}var o}mapLayer(e,{parentEncoding:t,parentProjection:n,...i}){const{encoding:r,projection:o,...a}=e,s={...i,parentEncoding:wL({parentEncoding:t,encoding:r,layer:!0}),parentProjection:_L({parentProjection:n,projection:o})};return super.mapLayer({...a,...e.name?{name:[s.repeaterPrefix,e.name].filter((e=>e)).join("_")}:{}},s)}},JL=new class extends eL{map(e,t){return t.emptySelections??(t.emptySelections={}),t.selectionPredicates??(t.selectionPredicates={}),e=UL(e,t),super.map(e,t)}mapLayerOrUnit(e,t){if((e=UL(e,t)).encoding){const n={};for(const[i,r]of Zi(e.encoding))n[i]=IL(r,t);e={...e,encoding:n}}return super.mapLayerOrUnit(e,t)}mapUnit(e,t){const{selection:n,...i}=e;return n?{...i,params:Zi(n).map((([e,n])=>{const{init:i,bind:r,empty:o,...a}=n;"single"===a.type?(a.type="point",a.toggle=!1):"multi"===a.type&&(a.type="point"),t.emptySelections[e]="none"!==o;for(const s of Ki(t.selectionPredicates[e]??{}))s.empty="none"!==o;return{name:e,value:i,select:a,bind:r}}))}:e}},QL=new GL;function KL(e){return i(e)?{type:e}:e??{}}const ZL=["background","padding"];function eq(e,t){const n={};for(const i of ZL)e&&void 0!==e[i]&&(n[i]=ns(e[i]));return t&&(n.params=e.params),n}class tq{constructor(e={},t={}){this.explicit=e,this.implicit=t}clone(){return new tq(Oi(this.explicit),Oi(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(e){return hr(this.explicit[e],this.implicit[e])}getWithExplicit(e){return void 0!==this.explicit[e]?{explicit:!0,value:this.explicit[e]}:void 0!==this.implicit[e]?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,{value:t,explicit:n}){void 0!==t&&this.set(e,t,n)}set(e,t,n){return delete this[n?"implicit":"explicit"][e],this[n?"explicit":"implicit"][e]=t,this}copyKeyFromSplit(e,{explicit:t,implicit:n}){void 0!==t[e]?this.set(e,t[e],!0):void 0!==n[e]&&this.set(e,n[e],!1)}copyKeyFromObject(e,t){void 0!==t[e]&&this.set(e,t[e],!0)}copyAll(e){for(const t of Qi(e.combine())){const n=e.getWithExplicit(t);this.setWithExplicit(t,n)}}}function nq(e){return{explicit:!0,value:e}}function iq(e){return{explicit:!1,value:e}}function rq(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:oq(t,n,i,r)}}function oq(e,t,n,i){return e.explicit&&t.explicit&&gR(function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${kr(n)} and ${kr(i)}). Using ${kr(n)}.`}(n,i,e.value,t.value)),e}function aq(e,t,n,i,r=oq){return void 0===e||void 0===e.value?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:_r(e.value,t.value)?e:r(e,t,n,i)}class sq extends tq{constructor(e={},t={},n=!1){super(e,t),this.explicit=e,this.implicit=t,this.parseNothing=n}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}function lq(e){return $r(e,"url")}function uq(e){return $r(e,"values")}function cq(e){return $r(e,"name")&&!lq(e)&&!uq(e)&&!fq(e)}function fq(e){return e&&(dq(e)||hq(e)||pq(e))}function dq(e){return $r(e,"sequence")}function hq(e){return $r(e,"sphere")}function pq(e){return $r(e,"graticule")}var mq,gq;function yq({invalid:e,isPath:t}){switch(fT(e,{isPath:t})){case"filter":return{marks:"exclude-invalid-values",scales:"exclude-invalid-values"};case"break-paths-show-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"include-invalid-values"};case"break-paths-filter-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"exclude-invalid-values"};case"show":return{marks:"include-invalid-values",scales:"include-invalid-values"}}}(gq=mq||(mq={}))[gq.Raw=0]="Raw",gq[gq.Main=1]="Main",gq[gq.Row=2]="Row",gq[gq.Column=3]="Column",gq[gq.Lookup=4]="Lookup",gq[gq.PreFilterInvalid=5]="PreFilterInvalid",gq[gq.PostFilterInvalid=6]="PostFilterInvalid";class vq{constructor(e,t){this.debugName=t,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,t){this._children.includes(e)?gR("Attempt to add the same child twice."):void 0!==t?this._children.splice(t,0,e):this._children.push(e)}removeChild(e){const t=this._children.indexOf(e);return this._children.splice(t,1),t}remove(){let e=this._parent.removeChild(this);for(const t of this._children)t._parent=this._parent,this._parent.addChild(t,e++)}insertAsParentOf(e){const t=e.parent;t.removeChild(this),this.parent=t,e.parent=this}swapWithParent(){const e=this._parent,t=e.parent;for(const i of this._children)i.parent=e;this._children=[],e.removeChild(this);const n=e.parent.removeChild(e);this._parent=t,t.addChild(this,n),e.parent=this}}class bq extends vq{clone(){const e=new this.constructor;return e.debugName=`clone_${this.debugName}`,e._source=this._source,e._name=`clone_${this._name}`,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}constructor(e,t,n,i){super(e,t),this.type=n,this.refCounts=i,this._source=this._name=t,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return void 0===this._hash&&(this._hash=`Output ${mr()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}function xq(e){return void 0!==e.as}function wq(e){return`${e}_end`}class _q extends vq{clone(){return new _q(null,Oi(this.timeUnits))}constructor(e,t){super(e),this.timeUnits=t}static makeFromEncoding(e,t){const n=t.reduceFieldDef(((e,n,i)=>{const{field:r,timeUnit:o}=n;if(o){let a;if(AR(o)){if(BH(t)){const{mark:e,markDef:i,config:s}=t,l=UT({fieldDef:n,markDef:i,config:s});(KB(e)||l)&&(a={timeUnit:RR(o),field:r})}}else a={as:uP(n,{forAs:!0}),field:r,timeUnit:o};if(BH(t)){const{mark:e,markDef:r,config:o}=t,s=UT({fieldDef:n,markDef:r,config:o});KB(e)&&ra(i)&&.5!==s&&(a.rectBandPosition=s)}a&&(e[Ti(a)]=a)}return e}),{});return Ji(n)?null:new _q(e,n)}static makeFromTransform(e,t){const{timeUnit:n,...i}={...t},r={...i,timeUnit:RR(n)};return new _q(e,{[Ti(r)]:r})}merge(e){this.timeUnits={...this.timeUnits};for(const t in e.timeUnits)this.timeUnits[t]||(this.timeUnits[t]=e.timeUnits[t]);for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}removeFormulas(e){const t={};for(const[n,i]of Zi(this.timeUnits)){const r=xq(i)?i.as:`${i.field}_end`;e.has(r)||(t[n]=i)}this.timeUnits=t}producedFields(){return new Set(Ki(this.timeUnits).map((e=>xq(e)?e.as:wq(e.field))))}dependentFields(){return new Set(Ki(this.timeUnits).map((e=>e.field)))}hash(){return`TimeUnit ${Ti(this.timeUnits)}`}assemble(){const e=[];for(const t of Ki(this.timeUnits)){const{rectBandPosition:n}=t,i=RR(t.timeUnit);if(xq(t)){const{field:r,as:o}=t,{unit:a,utc:s,...l}=i,u=[o,`${o}_end`];e.push({field:ur(r),type:"timeunit",...a?{units:CR(a)}:{},...s?{timezone:"utc"}:{},...l,as:u}),e.push(...Aq(u,n,i))}else if(t){const{field:r}=t,o=r.replaceAll("\\.","."),a=Dq({timeUnit:i,field:o}),s=wq(o);e.push({type:"formula",expr:a,as:s}),e.push(...Aq([o,s],n,i))}}return e}}const kq="offsetted_rect_start",$q="offsetted_rect_end";function Dq({timeUnit:e,field:t,reverse:n}){const{unit:i,utc:r}=e,o=MR(i),{part:a,step:s}=PR(o,e.step);return`${r?"utcOffset":"timeOffset"}('${a}', ${sr(t)}, ${n?-s:s})`}function Aq([e,t],n,i){if(void 0!==n&&.5!==n){const r=sr(e),o=sr(t);return[{type:"formula",expr:Sq([Dq({timeUnit:i,field:e,reverse:!0}),r],n+.5),as:`${e}_${kq}`},{type:"formula",expr:Sq([r,o],n+.5),as:`${e}_${$q}`}]}return[]}function Sq([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const Eq="_tuple_fields";class Fq{constructor(...e){this.items=e,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const Cq={defined:()=>!0,parse:(e,n,i)=>{const r=n.name,o=n.project??(n.project=new Fq),s={},l={},u=new Set,f=(e,t)=>{const n="visual"===t?e.channel:e.field;let i=tr(`${r}_${n}`);for(let o=1;u.has(i);o++)i=tr(`${r}_${n}_${o}`);return u.add(i),{[t]:i}},d=n.type,h=e.config.selection[d],p=void 0!==i.value?c(i.value):null;let{fields:m,encodings:g}=a(i.select)?i.select:{};if(!m&&!g&&p)for(const c of p)if(a(c))for(const e of Qi(c))t(Eo,e)?(g||(g=[])).push(e):"interval"===d?(gR('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),g=h.encodings):(m??(m=[])).push(e);m||g||(g=h.encodings,"fields"in h&&(m=h.fields));for(const t of g??[]){const n=e.fieldDef(t);if(n){let i=n.field;if(n.aggregate){gR(IN(t,n.aggregate));continue}if(!i){gR(UN(t));continue}if(n.timeUnit&&!AR(n.timeUnit)){i=e.vgField(t);const r={timeUnit:n.timeUnit,as:i,field:n.field};l[Ti(r)]=r}if(!s[i]){const r={field:i,channel:t,type:"interval"===d&&$a(t)&&_B(e.getScaleComponent(t).get("type"))?"R":n.bin?"R-RE":"E",index:o.items.length};r.signals={...f(r,"data"),...f(r,"visual")},o.items.push(s[i]=r),o.hasField[i]=s[i],o.hasSelectionId=o.hasSelectionId||i===$j,ho(t)?(r.geoChannel=t,r.channel=fo(t),o.hasChannel[r.channel]=s[i]):o.hasChannel[t]=s[i]}}else gR(UN(t))}for(const t of m??[]){if(o.hasField[t])continue;const e={type:"E",field:t,index:o.items.length};e.signals={...f(e,"data")},o.items.push(e),o.hasField[t]=e,o.hasSelectionId=o.hasSelectionId||t===$j}p&&(n.init=p.map((e=>o.items.map((t=>a(e)?void 0!==e[t.geoChannel||t.channel]?e[t.geoChannel||t.channel]:e[t.field]:e))))),Ji(l)||(o.timeUnit=new _q(null,l))},signals:(e,t,n)=>{const i=t.name+Eq;return n.filter((e=>e.name===i)).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map(qq)})}},Mq="_curr",zq="anim_value",Oq="anim_clock",Nq="eased_anim_clock",Rq="min_extent",Bq="max_range_extent",Tq="last_tick_at",Pq="is_playing",jq=1/60*1e3,Lq={defined:e=>"point"===e.type,topLevelSignals:(e,t,n)=>(nI(t)&&(n=n.concat([{name:Oq,init:"0",on:[{events:{type:"timer",throttle:jq},update:`${Pq} ? (${Oq} + (now() - ${Tq}) > ${Bq} ? 0 : ${Oq} + (now() - ${Tq})) : ${Oq}`}]},{name:Tq,init:"now()",on:[{events:[{signal:Oq},{signal:Pq}],update:"now()"}]},{name:Pq,init:"true"}])),n),signals:(e,t,n)=>{const i=t.name,r=i+Eq,a=t.project,s="(item().isVoronoi ? datum.datum : datum)",l=Ki(e.component.selection??{}).reduce(((e,t)=>"interval"===t.type?e.concat(t.name+Jq):e),[]).map((e=>`indexof(item().mark.name, '${e}') < 0`)).join(" && "),u="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(l?` && ${l}`:"");let c=`unit: ${ZU(e)}, `;if(t.project.hasSelectionId)c+=`${$j}: ${s}[${o($j)}]`;else if(nI(t))c+=`fields: ${r}, values: [${zq} ? ${zq} : ${Rq}]`;else{c+=`fields: ${r}, values: [${a.items.map((t=>{const n=e.fieldDef(t.channel);return(null==n?void 0:n.bin)?`[${s}[${o(e.vgField(t.channel,{}))}], ${s}[${o(e.vgField(t.channel,{binSuffix:"end"}))}]]`:`${s}[${o(t.field)}]`})).join(", ")}]`}if(nI(t))return n.concat((f=t.name,d=e.scaleName(Ur),[{name:Nq,update:Oq},{name:`${f}_domain`,init:`domain('${d}')`},{name:Rq,init:`extent(${f}_domain)[0]`},{name:Bq,init:`extent(range('${d}'))[1]`},{name:zq,update:`invert('${d}', ${Nq})`}]),[{name:i+XU,on:[{events:[{signal:Nq},{signal:zq}],update:`{${c}}`,force:!0}]}]);{const e=t.events;return n.concat([{name:i+XU,on:e?[{events:e,update:`${u} ? {${c}} : null`,force:!0}]:[]}])}var f,d}};function qq(e){const{signals:t,hasLegend:n,index:i,...r}=e;return r.field=ur(r.field),r}function Uq(e,t=!0,n=y){if(u(e)){const i=e.map((e=>Uq(e,t,n)));return t?`[${i.join(", ")}]`:i}return yR(e)?n(t?kR(e):function(e){const t=_R(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}(e)):t?n(kr(e)):e}function Iq(e,t){for(const n of Ki(e.component.selection??{})){const i=n.name;let r=`${i}${XU}, ${"global"===n.resolve?"true":`{unit: ${ZU(e)}}`}`;for(const o of KU)o.defined(n)&&(o.signals&&(t=o.signals(e,n,t)),o.modifyExpr&&(r=o.modifyExpr(e,n,r)));t.push({name:i+JU,on:[{events:{signal:n.name+XU},update:`modify(${o(n.name+YU)}, ${r})`}]})}return Gq(t)}function Wq(e,t){if(e.component.selection&&Qi(e.component.selection).length){const n=o(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:qC("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return Gq(t)}function Hq(e,t){for(const n of Ki(e.component.selection??{}))for(const i of KU)i.defined(n)&&i.marks&&(t=i.marks(e,n,t));return t}function Gq(e){return e.map((e=>(e.on&&!e.on.length&&delete e.on,e)))}const Vq={defined:e=>"interval"===e.type&&"global"===e.resolve&&e.bind&&"scales"===e.bind,parse:(e,t)=>{const n=t.scales=[];for(const i of t.project.items){const r=i.channel;if(!$a(r))continue;const o=e.getScaleComponent(r),a=o?o.get("type"):void 0;"sequential"==a&&gR("Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc"),o&&_B(a)?(o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)):gR("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter((e=>0===n.filter((t=>t.name===e.signals.data)).length));if(!e.parent||Xq(e)||0===i.length)return n;const r=n.find((e=>e.name===t.name));let a=r.update;if(a.includes(QU))r.update=`{${i.map((e=>`${o(ur(e.field))}: ${e.signals.data}`)).join(", ")}}`;else{for(const e of i){const t=`${o(ur(e.field))}: ${e.signals.data}`;a.includes(t)||(a=`${a.substring(0,a.length-1)}, ${t}}`)}r.update=a}return n.concat(i.map((e=>({name:e.signals.data}))))},signals:(e,t,n)=>{if(e.parent&&!Xq(e))for(const i of t.scales){const e=n.find((e=>e.name===i.signals.data));e.push="outer",delete e.value,delete e.update}return n}};function Yq(e,t){return`domain(${o(e.scaleName(t))})`}function Xq(e){return e.parent&&jH(e.parent)&&(!e.parent.parent||Xq(e.parent.parent))}const Jq="_brush",Qq="_scale_trigger",Kq="geo_interval_init_tick",Zq="_init",eU={defined:e=>"interval"===e.type,parse:(e,t,n)=>{var i;if(e.hasProjection){const e={...a(n.select)?n.select:{}};e.fields=[$j],e.encodings||(e.encodings=n.value?Qi(n.value):[jr,Pr]),n.select={type:"interval",...e}}if(t.translate&&!Vq.defined(t)){const e=`!event.item || event.item.mark.name !== ${o(t.name+Jq)}`;for(const n of t.events){if(!n.between){gR(`${n} is not an ordered event stream for interval selections.`);continue}const t=c((i=n.between[0]).filter??(i.filter=[]));t.includes(e)||t.push(e)}}},signals:(e,t,n)=>{const i=t.name,r=i+XU,a=Ki(t.project.hasChannel).filter((e=>e.channel===Er||e.channel===Fr)),s=t.init?t.init[0]:null;if(n.push(...a.reduce(((n,i)=>n.concat(function(e,t,n,i){const r=!e.hasProjection,a=n.channel,s=n.signals.visual,l=o(r?e.scaleName(a):e.projectionName()),u=e=>`scale(${l}, ${e})`,c=e.getSizeSignalRef(a===Er?"width":"height").signal,f=`${a}(unit)`,d=t.events.reduce(((e,t)=>[...e,{events:t.between[0],update:`[${f}, ${f}]`},{events:t,update:`[${s}[0], clamp(${f}, 0, ${c})]`}]),[]);if(r){const r=n.signals.data,o=Vq.defined(t),c=e.getScaleComponent(a),f=c?c.get("type"):void 0,h=i?{init:Uq(i,!0,u)}:{value:[]};return d.push({events:{signal:t.name+Qq},update:_B(f)?`[${u(`${r}[0]`)}, ${u(`${r}[1]`)}]`:"[0, 0]"}),o?[{name:r,on:[]}]:[{name:s,...h,on:d},{name:r,...i?{init:Uq(i)}:{},on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${l}, ${s})`}]}]}{const e=a===Er?0:1,n=t.name+Zq;return[{name:s,...i?{init:`[${n}[0][${e}], ${n}[1][${e}]]`}:{value:[]},on:d}]}}(e,t,i,s&&s[i.index]))),[])),e.hasProjection){const l=o(e.projectionName()),u=e.projectionName()+"_center",{x:c,y:f}=t.project.hasChannel,d=c&&c.signals.visual,h=f&&f.signals.visual,p=c?s&&s[c.index]:`${u}[0]`,m=f?s&&s[f.index]:`${u}[1]`,g=t=>e.getSizeSignalRef(t).signal,y=`[[${d?d+"[0]":"0"}, ${h?h+"[0]":"0"}],[${d?d+"[1]":g("width")}, ${h?h+"[1]":g("height")}]]`;if(s&&(n.unshift({name:i+Zq,init:`[scale(${l}, [${c?p[0]:p}, ${f?m[0]:m}]), scale(${l}, [${c?p[1]:p}, ${f?m[1]:m}])]`}),!c||!f)){n.find((e=>e.name===u))||n.unshift({name:u,update:`invert(${l}, [${g("width")}/2, ${g("height")}/2])`})}const v=`vlSelectionTuples(${`intersect(${y}, {markname: ${o(e.getName("marks"))}}, unit.mark)`}, ${`{unit: ${ZU(e)}}`})`,b=a.map((e=>e.signals.visual));return n.concat({name:r,on:[{events:[...b.length?[{signal:b.join(" || ")}]:[],...s?[{signal:Kq}]:[]],update:v}]})}{if(!Vq.defined(t)){const t=i+Qq,r=a.map((t=>{const n=t.channel,{data:i,visual:r}=t.signals,a=o(e.scaleName(n)),s=_B(e.getScaleComponent(n).get("type"))?"+":"";return`(!isArray(${i}) || (${s}invert(${a}, ${r})[0] === ${s}${i}[0] && ${s}invert(${a}, ${r})[1] === ${s}${i}[1]))`}));r.length&&n.push({name:t,value:{},on:[{events:a.map((t=>({scale:e.scaleName(t.channel)}))),update:r.join(" && ")+` ? ${t} : {}`}]})}const l=a.map((e=>e.signals.data)),u=`unit: ${ZU(e)}, fields: ${i+Eq}, values`;return n.concat({name:r,...s?{init:`{${u}: ${Uq(s)}}`}:{},...l.length?{on:[{events:[{signal:l.join(" || ")}],update:`${l.join(" && ")} ? {${u}: [${l}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>{if(BH(e)&&e.hasProjection&&t.init){n.filter((e=>e.name===Kq)).length||n.unshift({name:Kq,value:null,on:[{events:"timer{1}",update:`${Kq} === null ? {} : ${Kq}`}]})}return n},marks:(e,t,n)=>{const i=t.name,{x:r,y:a}=t.project.hasChannel,s=null==r?void 0:r.signals.visual,l=null==a?void 0:a.signals.visual,u=`data(${o(t.name+YU)})`;if(Vq.defined(t)||!r&&!a)return n;const c={x:void 0!==r?{signal:`${s}[0]`}:{value:0},y:void 0!==a?{signal:`${l}[0]`}:{value:0},x2:void 0!==r?{signal:`${s}[1]`}:{field:{group:"width"}},y2:void 0!==a?{signal:`${l}[1]`}:{field:{group:"height"}}};if("global"===t.resolve)for(const o of Qi(c))c[o]=[{test:`${u}.length && ${u}[0].unit === ${ZU(e)}`,...c[o]},{value:0}];const{fill:f,fillOpacity:d,cursor:h,...p}=t.mark,m=Qi(p).reduce(((e,t)=>(e[t]=[{test:[void 0!==r&&`${s}[0] !== ${s}[1]`,void 0!==a&&`${l}[0] !== ${l}[1]`].filter((e=>e)).join(" && "),value:p[t]},{value:null}],e)),{}),g=h??(t.translate?"move":null);return[{name:`${i+Jq}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:d}},update:c}},...n,{name:i+Jq,type:"rect",clip:!0,encode:{enter:{...g?{cursor:{value:g}}:{},fill:{value:"transparent"}},update:{...c,...m}}}]}};function tU({model:e,channelDef:t,vgChannel:n,invalidValueRef:i,mainRefFn:r}){const o=GT(t)&&t.condition;let a=[];if(o){a=c(o).map((t=>{const n=r(t);if(function(e){return $r(e,"param")}(t)){const{param:i,empty:r}=t;return{test:sI(e,{param:i,empty:r}),...n}}return{test:uI(e,t.test),...n}}))}void 0!==i&&a.push(i);const s=r(t);return void 0!==s&&a.push(s),a.length>1||1===a.length&&Boolean(a[0].test)?{[n]:a}:1===a.length?{[n]:a[0]}:{}}function nU(e,t="text"){const n=e.encoding[t];return tU({model:e,channelDef:n,vgChannel:t,mainRefFn:t=>iU(t,e.config),invalidValueRef:void 0})}function iU(e,t,n="datum"){if(e){if(iP(e))return rs(e.value);if(tP(e)){const{format:i,formatType:r}=yP(e);return kT({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function rU(e,t={}){const{encoding:n,markDef:r,config:o,stack:s}=e,l=n.tooltip;if(u(l))return{tooltip:aU({tooltip:l},s,o,t)};{const u=t.reactiveGeom?"datum.datum":"datum";return tU({model:e,channelDef:l,vgChannel:"tooltip",mainRefFn:e=>{const l=iU(e,o,u);if(l)return l;if(null===e)return;let c=us("tooltip",r,o);return!0===c&&(c={content:"encoding"}),i(c)?{value:c}:a(c)?Xa(c)?c:"encoding"===c.content?aU(n,s,o,t):{signal:u}:void 0},invalidValueRef:void 0})}}function oU(e,t,n,{reactiveGeom:i}={}){const r={...n,...n.tooltipFormat},o=new Set,a=i?"datum.datum":"datum",s=[];function l(n,i){const l=zo(i),u=nP(n)?n:{...n,type:e[l].type},f=u.title||gP(u,r),d=c(f).join(", ").replaceAll(/"/g,'\\"');let h;if(ra(i)){const t="x"===i?"x2":"y2",n=vP(e[t]);if(qa(u.bin)&&n){const e=uP(u,{expr:a}),i=uP(n,{expr:a}),{format:s,formatType:l}=yP(u);h=MT(e,i,s,l,r),o.add(t)}}if((ra(i)||i===Br||i===Nr)&&t&&t.fieldChannel===i&&"normalize"===t.offset){const{format:e,formatType:t}=yP(u);h=kT({fieldOrDatumDef:u,format:e,formatType:t,expr:a,config:r,normalizeStack:!0}).signal}h??(h=iU(u,r,a).signal),s.push({channel:i,key:d,value:h})}GP(e,((e,t)=>{XT(e)?l(e,t):VT(e)&&l(e.condition,t)}));const u={};for(const{channel:c,key:f,value:d}of s)o.has(c)||u[f]||(u[f]=d);return u}function aU(e,t,n,{reactiveGeom:i}={}){const r=oU(e,t,n,{reactiveGeom:i}),o=Zi(r).map((([e,t])=>`"${e}": ${t}`));return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function sU(e){const{markDef:t,config:n}=e,i=us("aria",t,n);return!1===i?{}:{...i?{aria:i}:{},...lU(e),...uU(e)}}function lU(e){const{mark:n,markDef:i,config:r}=e;if(!1===r.aria)return{};const o=us("ariaRoleDescription",i,r);return null!=o?{ariaRoleDescription:{value:o}}:t(Za,n)?{}:{ariaRoleDescription:{value:n}}}function uU(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return tU({model:e,channelDef:o,vgChannel:"description",mainRefFn:t=>iU(t,e.config),invalidValueRef:void 0});const a=us("description",n,i);if(null!=a)return{description:rs(a)};if(!1===i.aria)return{};const s=oU(t,r,i);return Ji(s)?void 0:{description:{signal:Zi(s).map((([e,t],n)=>`"${n>0?"; ":""}${e}: " + (${t})`)).join(" + ")}}}function cU(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:a}=n;let{defaultRef:s,defaultValue:l}=n;const u=r[e];void 0===s&&(l??(l=us(e,i,o,{vgChannel:a,ignoreVgConfig:!GT(u)})),void 0!==l&&(s=rs(l)));const c={markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e)},f=pT({...c,scaleChannel:e,channelDef:u});return tU({model:t,channelDef:u,vgChannel:a??e,invalidValueRef:f,mainRefFn:t=>bT({...c,channel:e,channelDef:t,stack:null,defaultRef:s})})}function fU(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,a=t.filled??us("filled",n,r),s=ji(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,l=us(!0===a?"color":void 0,n,r,{vgChannel:"fill"})??r.mark[!0===a&&"color"]??s,u=us(!1===a?"color":void 0,n,r,{vgChannel:"stroke"})??r.mark[!1===a&&"color"],c=a?"fill":"stroke",f={...l?{fill:rs(l)}:{},...u?{stroke:rs(u)}:{}};return n.color&&(a?n.fill:n.stroke)&&gR(KN("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...cU("color",e,{vgChannel:c,defaultValue:a?l:u}),...cU("fill",e,{defaultValue:i.fill?l:void 0}),...cU("stroke",e,{defaultValue:i.stroke?u:void 0})}}function dU(e){const{encoding:t,mark:n}=e,i=t.order;return!QB(n)&&iP(i)?tU({model:e,channelDef:i,vgChannel:"zindex",mainRefFn:e=>rs(e.value),invalidValueRef:void 0}):{}}function hU({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,a=t[o],s=n[o];if(("xOffset"===o||"yOffset"===o)&&s){return{offsetType:"encoding",offset:bT({channel:o,channelDef:s,markDef:t,config:null==i?void 0:i.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:rs(a),bandPosition:r})}}const l=t[o];return l?{offsetType:"visual",offset:l}:{}}function pU(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:a,stack:s}=t,l=r[e],u=r[No(e)],c=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=hU({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),p=mU({model:t,defaultPos:n,channel:e,scaleName:c,scale:f}),m=!l&&ra(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:function(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o,markDef:a}=e;if(tP(n)&&r&&t===r.fieldChannel){if(XT(n)){let e=n.bandPosition;if(void 0!==e||"text"!==a.type||"radius"!==t&&"theta"!==t||(e=.5),void 0!==e)return vT({scaleName:i,fieldOrDatumDef:n,startSuffix:"start",bandPosition:e,offset:o})}return yT(n,i,{suffix:"end"},{offset:o})}return gT(e)}({channel:e,channelDef:l,channel2Def:u,markDef:o,config:a,scaleName:c,scale:f,stack:s,offset:d,defaultRef:p,bandPosition:"encoding"===h?0:void 0});return m?{[i||e]:m}:void 0}function mU({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:a}=e;return()=>{const s=zo(n),l=Oo(n),u=us(n,o,a,{vgChannel:l});if(void 0!==u)return xT(n,u);switch(t){case"zeroOrMin":return gU({scaleName:i,scale:r,mode:"zeroOrMin",mainChannel:s,config:a});case"zeroOrMax":return gU({scaleName:i,scale:r,mode:{zeroOrMax:{widthSignal:e.width.signal,heightSignal:e.height.signal}},mainChannel:s,config:a});case"mid":return{...e[Ro(n)],mult:.5}}}}function gU({mainChannel:e,config:t,...n}){const i=hT(n),{mode:r}=n;if(i)return i;switch(e){case"radius":{if("zeroOrMin"===r)return{value:0};const{widthSignal:e,heightSignal:t}=r.zeroOrMax;return{signal:`min(${e},${t})/2`}}case"theta":return"zeroOrMin"===r?{value:0}:{signal:"2*PI"};case"x":return"zeroOrMin"===r?{value:0}:{field:{group:"width"}};case"y":return"zeroOrMin"===r?{field:{group:"height"}}:{value:0}}}const yU={left:"x",center:"xc",right:"x2"},vU={top:"y",middle:"yc",bottom:"y2"};function bU(e,t,n,i="middle"){if("radius"===e||"theta"===e)return Oo(e);const r="x"===e?"align":"baseline",o=us(r,t,n);let a;return Xa(o)?(gR(function(e){return`The ${e} for range marks cannot be an expression`}(r)),a=void 0):a=o,"x"===e?yU[a||("top"===i?"left":"center")]:vU[a||i]}function xU(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?wU(e,t,{defaultPos:n,defaultPos2:i}):pU(e,t,{defaultPos:n})}function wU(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,a=No(e),s=Ro(e),l=function(e,t,n){const{encoding:i,mark:r,markDef:o,stack:a,config:s}=e,l=zo(n),u=Ro(n),c=Oo(n),f=i[l],d=e.scaleName(l),h=e.getScaleComponent(l),{offset:p}=hU(n in i||n in o?{channel:n,markDef:o,encoding:i,model:e}:{channel:l,markDef:o,encoding:i,model:e});if(!f&&("x2"===n||"y2"===n)&&(i.latitude||i.longitude)){const t=Ro(n),i=e.markDef[t];return null!=i?{[t]:{value:i}}:{[c]:{field:e.getName(n)}}}const m=function({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:l,defaultRef:u}){if(tP(t)&&s&&e.charAt(0)===s.fieldChannel.charAt(0))return yT(t,o,{suffix:"start"},{offset:l});return gT({channel:e,channelDef:n,scaleName:o,scale:a,stack:s,markDef:i,config:r,offset:l,defaultRef:u})}({channel:n,channelDef:f,channel2Def:i[n],markDef:o,config:s,scaleName:d,scale:h,stack:a,offset:p,defaultRef:void 0});if(void 0!==m)return{[c]:m};return _U(n,o)||_U(n,{[n]:fs(n,o,s.style),[u]:fs(u,o,s.style)})||_U(n,s[r])||_U(n,s.mark)||{[c]:mU({model:e,defaultPos:t,channel:n,scaleName:d,scale:h})()}}(t,i,a);return{...pU(e,t,{defaultPos:n,vgChannel:l[s]?bU(e,r,o):Oo(e)}),...l}}function _U(e,t){const n=Ro(e),i=Oo(e);if(void 0!==t[i])return{[i]:xT(e,t[i])};if(void 0!==t[e])return{[i]:xT(e,t[e])};if(t[n]){const i=t[n];if(!aT(i))return{[n]:xT(e,i)};gR(function(e){return`Position range does not support relative band size for ${e}.`}(n))}}function kU(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.type,a=No(t),s=Ro(t),l=i[t],c=i[a],f=e.getScaleComponent(t),d=f?f.get("type"):void 0,h=r.orient,p=i[s]??i.size??us("size",r,n,{vgChannel:s}),m=Bo(t),g="bar"===o&&("x"===t?"vertical"===h:"horizontal"===h)||"tick"===o&&("y"===t?"vertical"===h:"horizontal"===h);return!XT(l)||!(La(l.bin)||qa(l.bin)||l.timeUnit&&!c)||p&&!aT(p)||i[m]||wB(d)?(tP(l)&&wB(d)||g)&&!c?function(e,t,n){var i,r;const{markDef:o,encoding:a,config:s,stack:l}=n,c=o.orient,f=n.scaleName(t),d=n.getScaleComponent(t),h=Ro(t),p=No(t),m=Bo(t),g=n.scaleName(m),y=n.getScaleComponent(To(t)),v="tick"===o.type||"horizontal"===c&&"y"===t||"vertical"===c&&"x"===t;let b;(a.size||o.size)&&(v?b=cU("size",n,{vgChannel:h,defaultRef:rs(o.size)}):gR(function(e){return`Cannot apply size to non-oriented mark "${e}".`}(o.type)));const x=!!b,w=IT({channel:t,fieldDef:e,markDef:o,config:s,scaleType:null==(i=d||y)?void 0:i.get("type"),useVlSizeChannel:v});b=b||{[h]:$U(h,g||f,y||d,s,w,!!e,o.type)};const _="band"===(null==(r=d||y)?void 0:r.get("type"))&&aT(w)&&!x?"top":"middle",k=bU(t,o,s,_),$="xc"===k||"yc"===k,{offset:D,offsetType:A}=hU({channel:t,markDef:o,encoding:a,model:n,bandPosition:$?.5:0}),S=gT({channel:t,channelDef:e,markDef:o,config:s,scaleName:f,scale:d,stack:l,offset:D,defaultRef:mU({model:n,defaultPos:"mid",channel:t,scaleName:f,scale:d}),bandPosition:$?"encoding"===A?0:.5:Xa(w)?{signal:`(1-${w})/2`}:aT(w)?(1-w.band)/2:0});if(h)return{[k]:S,...b};{const e=Oo(p),t=b[h],n=D?{...t,offset:D}:t;return{[k]:S,[e]:u(S)?[S[0],{...S[1],offset:n}]:{...S,offset:n}}}}(l,t,e):wU(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function({fieldDef:e,fieldDef2:t,channel:n,model:i}){var r;const{config:o,markDef:a,encoding:s}=i,l=i.getScaleComponent(n),u=i.scaleName(n),c=l?l.get("type"):void 0,f=l.get("reverse"),d=IT({channel:n,fieldDef:e,markDef:a,config:o,scaleType:c}),h=null==(r=i.component.axes[n])?void 0:r[0],p=(null==h?void 0:h.get("translate"))??.5,m=ra(n)?us("binSpacing",a,o)??0:0,g=No(n),y=Oo(n),v=Oo(g),b=cs("minBandSize",a,o),{offset:x}=hU({channel:n,markDef:a,encoding:s,model:i,bandPosition:0}),{offset:w}=hU({channel:g,markDef:a,encoding:s,model:i,bandPosition:0}),_=function({scaleName:e,fieldDef:t}){const n=uP(t,{expr:"datum"});return`abs(scale("${e}", ${uP(t,{expr:"datum",suffix:"end"})}) - scale("${e}", ${n}))`}({fieldDef:e,scaleName:u}),k=DU(n,m,f,p,x,b,_),$=DU(g,m,f,p,w??x,b,_),D=Xa(d)?{signal:`(1-${d.signal})/2`}:aT(d)?(1-d.band)/2:.5,A=UT({fieldDef:e,fieldDef2:t,markDef:a,config:o});if(La(e.bin)||e.timeUnit){const t=e.timeUnit&&.5!==A;return{[v]:AU({fieldDef:e,scaleName:u,bandPosition:D,offset:$,useRectOffsetField:t}),[y]:AU({fieldDef:e,scaleName:u,bandPosition:Xa(D)?{signal:`1-${D.signal}`}:1-D,offset:k,useRectOffsetField:t})}}if(qa(e.bin)){const n=yT(e,u,{},{offset:$});if(XT(t))return{[v]:n,[y]:yT(t,u,{},{offset:k})};if(Ua(e.bin)&&e.bin.step)return{[v]:n,[y]:{signal:`scale("${u}", ${uP(e,{expr:"datum"})} + ${e.bin.step})`,offset:k}}}return void gR(dR(g))}({fieldDef:l,fieldDef2:c,channel:t,model:e})}function $U(e,t,i,r,o,a,s){if(aT(o)){if(!i)return{mult:o.band,field:{group:e}};{const e=i.get("type");if("band"===e){let e=`bandwidth('${t}')`;1!==o.band&&(e=`${o.band} * ${e}`);const n=cs("minBandSize",{type:s},r);return{signal:n?`max(${as(n)}, ${e})`:e}}1!==o.band&&(gR(function(e){return`Cannot use the relative band size with ${e} scale.`}(e)),o=void 0)}}else{if(Xa(o))return o;if(o)return{value:o}}if(i){const e=i.get("range");if(Ja(e)&&n(e.step))return{value:e.step-2}}if(!a){const{bandPaddingInner:t,barBandPaddingInner:i,rectBandPaddingInner:o,tickBandPaddingInner:a}=r.scale,l=hr(t,"tick"===s?a:"bar"===s?i:o);if(Xa(l))return{signal:`(1 - (${l.signal})) * ${e}`};if(n(l))return{signal:`${1-l} * ${e}`}}return{value:Pj(r.view,e)-2}}function DU(e,t,n,i,r,o,a){if(uo(e))return 0;const s="x"===e||"y2"===e,l=s?-t/2:t/2;if(Xa(n)||Xa(r)||Xa(i)||o){const e=as(n),t=as(r),u=as(i),c=as(o),f=o?`(${a} < ${c} ? ${s?"":"-"}0.5 * (${c} - (${a})) : ${l})`:l;return{signal:(u?`${u} + `:"")+(e?`(${e} ? -1 : 1) * `:"")+(t?`(${t} + ${f})`:f)}}return r=r||0,i+(n?-r-l:+r+l)}function AU({fieldDef:e,scaleName:t,bandPosition:n,offset:i,useRectOffsetField:r}){return vT({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i,...r?{startSuffix:kq,endSuffix:$q}:{}})}const SU=new Set(["aria","width","height"]);function EU(e,t){const{fill:n,stroke:i}="include"===t.color?fU(e):{};return{...CU(e.markDef,t),...FU("fill",n),...FU("stroke",i),...cU("opacity",e),...cU("fillOpacity",e),...cU("strokeOpacity",e),...cU("strokeWidth",e),...cU("strokeDash",e),...dU(e),...rU(e),...nU(e,"href"),...sU(e)}}function FU(e,t){return t?{[e]:t}:{}}function CU(e,t){return Ka.reduce(((n,i)=>(!SU.has(i)&&$r(e,i)&&"ignore"!==t[i]&&(n[i]=rs(e[i])),n)),{})}function MU(e){const{config:t,markDef:n}=e,i=new Set;if(e.forEachFieldDef(((r,o)=>{var a;let s;if(!$a(o)||!(s=e.getScaleType(o)))return;const l=Ba(r.aggregate),u=dT({scaleChannel:o,markDef:n,config:t,scaleType:s,isCountAggregate:l});if("break-paths-filter-domains"===(c=u)||"break-paths-show-domains"===c){const t=e.vgField(o,{expr:"datum",binSuffix:(null==(a=e.stack)?void 0:a.impute)?"mid":void 0});t&&i.add(t)}var c})),i.size>0){return{defined:{signal:[...i].map((e=>XR(e,!0))).join(" && ")}}}}function zU(e,t){if(void 0!==t)return{[e]:rs(t)}}const OU="voronoi",NU={defined:e=>"point"===e.type&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(OU)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(QB(o))return gR(`The "nearest" transform is not supported for ${o} marks.`),n;const a={name:e.getName(OU),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...rU(e,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:i||!r?"datum.datum.x || 0":"0"},y:{expr:r||!i?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let s=0,l=!1;return n.forEach(((t,n)=>{const i=t.name??"";i===e.component.mark[0].name?s=n:i.includes(OU)&&(l=!0)})),l||n.splice(s+1,0,a),n}},RU={defined:e=>"point"===e.type&&"global"===e.resolve&&e.bind&&"scales"!==e.bind&&!Aj(e.bind),parse:(e,t,n)=>tI(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,a=t.bind,s=t.init&&t.init[0],l=NU.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach(((e,r)=>{const u=tr(`${i}_${e.field}`);n.filter((e=>e.name===u)).length||n.unshift({name:u,...s?{init:Uq(s[r])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${l}[${o(e.field)}] : null`}]:[],bind:a[e.field]??a[e.channel]??a})})),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find((e=>e.name===i+XU)),a=i+Eq,s=r.items.map((e=>tr(`${i}_${e.field}`))),l=s.map((e=>`${e} !== null`)).join(" && ");return s.length&&(o.update=`${l} ? {fields: ${a}, values: [${s.join(", ")}]} : null`),delete o.value,delete o.on,n}},BU="_toggle",TU={defined:e=>"point"===e.type&&!nI(e)&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+BU,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+XU,i=t.name+BU;return`${i} ? null : ${n}, `+("global"===t.resolve?`${i} ? null : true, `:`${i} ? null : {unit: ${ZU(e)}}, `)+`${i} ? ${n} : null`}},PU={defined:e=>void 0!==e.clear&&!1!==e.clear&&!nI(e),parse:(e,t)=>{t.clear&&(t.clear=i(t.clear)?qC(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(RU.defined(t))for(const i of t.project.items){const e=n.findIndex((e=>e.name===tr(`${t.name}_${i.field}`)));-1!==e&&n[e].on.push({events:t.clear,update:"null"})}return n},signals:(e,t,n)=>{function i(e,i){-1!==e&&n[e].on&&n[e].on.push({events:t.clear,update:i})}if("interval"===t.type)for(const r of t.project.items){const e=n.findIndex((e=>e.name===r.signals.visual));if(i(e,"[0, 0]"),-1===e){i(n.findIndex((e=>e.name===r.signals.data)),"null")}}else{let e=n.findIndex((e=>e.name===t.name+XU));i(e,"null"),TU.defined(t)&&(e=n.findIndex((e=>e.name===t.name+BU)),i(e,"false"))}return n}},jU={defined:e=>{const t="global"===e.resolve&&e.bind&&Aj(e.bind),n=1===e.project.items.length&&e.project.items[0].field!==$j;return t&&!n&&gR("Legend bindings are only supported for selections over an individual field or encoding channel."),t&&n},parse:(e,t,n)=>{const r=Oi(n);if(r.select=i(r.select)?{type:r.select,toggle:t.toggle}:{...r.select,toggle:t.toggle},tI(t,r),a(n.select)&&(n.select.on||n.select.clear)){const e='event.item && indexof(event.item.mark.role, "legend") < 0';for(const n of t.events)n.filter=c(n.filter??[]),n.filter.includes(e)||n.filter.push(e)}const o=Sj(t.bind)?t.bind.legend:"click",s=i(o)?qC(o,"view"):c(o);t.bind={legend:{merge:s}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=Sj(t.bind)&&t.bind.legend,o=e=>t=>{const n=Oi(t);return n.markname=e,n};for(const a of t.project.items){if(!a.hasLegend)continue;const e=`${tr(a.field)}_legend`,s=`${i}_${e}`;if(0===n.filter((e=>e.name===s)).length){const i=r.merge.map(o(`${e}_symbols`)).concat(r.merge.map(o(`${e}_labels`))).concat(r.merge.map(o(`${e}_entries`)));n.unshift({name:s,...t.init?{}:{value:null},on:[{events:i,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:`!event.item || !datum ? null : ${s}`,force:!0}]})}}return n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find((e=>e.name===i+XU)),a=i+Eq,s=r.items.filter((e=>e.hasLegend)).map((e=>tr(`${i}_${tr(e.field)}_legend`))),l=`${s.map((e=>`${e} !== null`)).join(" && ")} ? {fields: ${a}, values: [${s.join(", ")}]} : null`;t.events&&s.length>0?o.on.push({events:s.map((e=>({signal:e}))),update:l}):s.length>0&&(o.update=l,delete o.value,delete o.on);const u=n.find((e=>e.name===i+BU)),c=Sj(t.bind)&&t.bind.legend;return u&&(t.events?u.on.push({...u.on[0],events:c}):u.on[0].events=c),n}};const LU="_translate_anchor",qU="_translate_delta",UU={defined:e=>"interval"===e.type&&e.translate,signals:(e,t,n)=>{const i=t.name,r=Vq.defined(t),o=i+LU,{x:a,y:s}=t.project.hasChannel;let l=qC(t.translate,"scope");return r||(l=l.map((e=>(e.between[0].markname=i+Jq,e)))),n.push({name:o,value:{},on:[{events:l.map((e=>e.between[0])),update:"{x: x(unit), y: y(unit)"+(void 0!==a?`, extent_x: ${r?Yq(e,Er):`slice(${a.signals.visual})`}`:"")+(void 0!==s?`, extent_y: ${r?Yq(e,Fr):`slice(${s.signals.visual})`}`:"")+"}"}]},{name:i+qU,value:{},on:[{events:l,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),void 0!==a&&IU(e,t,a,"width",n),void 0!==s&&IU(e,t,s,"height",n),n}};function IU(e,t,n,i,r){const o=t.name,a=o+LU,s=o+qU,l=n.channel,u=Vq.defined(t),c=r.find((e=>e.name===n.signals[u?"data":"visual"])),f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(l),h=d&&d.get("type"),p=d&&d.get("reverse"),m=`${a}.extent_${l}`,g=`${u&&d?"log"===h?"panLog":"symlog"===h?"panSymlog":"pow"===h?"panPow":"panLinear":"panLinear"}(${m}, ${`${u?l===Er?p?"":"-":p?"-":"":""}${s}.${l} / ${u?`${f}`:`span(${m})`}`}${u?"pow"===h?`, ${d.get("exponent")??1}`:"symlog"===h?`, ${d.get("constant")??1}`:"":""})`;c.on.push({events:{signal:s},update:u?g:`clampRange(${g}, 0, ${f})`})}const WU="_zoom_anchor",HU="_zoom_delta",GU={defined:e=>"interval"===e.type&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=Vq.defined(t),a=i+HU,{x:s,y:l}=t.project.hasChannel,u=o(e.scaleName(Er)),c=o(e.scaleName(Fr));let f=qC(t.zoom,"scope");return r||(f=f.map((e=>(e.markname=i+Jq,e)))),n.push({name:i+WU,on:[{events:f,update:r?"{"+[u?`x: invert(${u}, x(unit))`:"",c?`y: invert(${c}, y(unit))`:""].filter((e=>e)).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:a,on:[{events:f,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),void 0!==s&&VU(e,t,s,"width",n),void 0!==l&&VU(e,t,l,"height",n),n}};function VU(e,t,n,i,r){const o=t.name,a=n.channel,s=Vq.defined(t),l=r.find((e=>e.name===n.signals[s?"data":"visual"])),u=e.getSizeSignalRef(i).signal,c=e.getScaleComponent(a),f=c&&c.get("type"),d=s?Yq(e,a):l.name,h=o+HU,p=`${s&&c?"log"===f?"zoomLog":"symlog"===f?"zoomSymlog":"pow"===f?"zoomPow":"zoomLinear":"zoomLinear"}(${d}, ${`${o}${WU}.${a}`}, ${h}${s?"pow"===f?`, ${c.get("exponent")??1}`:"symlog"===f?`, ${c.get("constant")??1}`:"":""})`;l.on.push({events:{signal:h},update:s?p:`clampRange(${p}, 0, ${u})`})}const YU="_store",XU="_tuple",JU="_modify",QU="vlSelectionResolve",KU=[Lq,eU,Cq,TU,RU,Vq,jU,PU,UU,GU,NU];function ZU(e,{escape:t}={escape:!0}){let n=t?o(e.name):e.name;const i=function(e){let t=e.parent;for(;t&&!TH(t);)t=t.parent;return t}(e);if(i){const{facet:e}=i;for(const t of vo)e[t]&&(n+=` + '__facet_${t}_' + (facet[${o(i.vgField(t))}])`)}return n}function eI(e){return Ki(e.component.selection??{}).reduce(((e,t)=>e||t.project.hasSelectionId),!1)}function tI(e,t){!i(t.select)&&t.select.on||delete e.events,!i(t.select)&&t.select.clear||delete e.clear,!i(t.select)&&t.select.toggle||delete e.toggle}function nI(e){var t;return null==(t=e.events)?void 0:t.find((e=>"type"in e&&"timer"===e.type))}function iI(e){const t=[];return"Identifier"===e.type?[e.name]:"Literal"===e.type?[e.value]:("MemberExpression"===e.type&&(t.push(...iI(e.object)),t.push(...iI(e.property))),t)}function rI(e){return"MemberExpression"===e.object.type?rI(e.object):"datum"===e.object.name}function oI(e){const t=SE(e),n=new Set;return t.visit((e=>{"MemberExpression"===e.type&&rI(e)&&n.add(iI(e).slice(1).join("."))})),n}class aI extends vq{clone(){return new aI(null,this.model,Oi(this.filter))}constructor(e,t,n){super(e),this.model=t,this.filter=n,this.expr=uI(this.model,this.filter,this),this._dependentFields=oI(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function sI(e,t,n,r="datum"){const a=i(t)?t:t.param,s=tr(a),l=o(s+YU);let u;try{u=e.getSelectionComponent(s,a)}catch(d){return`!!${s}`}if(u.project.timeUnit){const t=n??e.component.data.raw,i=u.project.timeUnit.clone();t.parent?i.insertAsParentOf(t):t.parent=i}const c=`${u.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${l}, ${r}${"global"===u.resolve?")":`, ${o(u.resolve)})`}`,f=`length(data(${l}))`;return!1===t.empty?`${f} && ${c}`:`!${f} || ${c}`}function lI(e,t,n){const i=tr(t),r=n.encoding;let a,s=n.field;try{a=e.getSelectionComponent(i,t)}catch(l){return i}if(r||s){if(r&&!s){const e=a.project.items.filter((e=>e.channel===r));!e.length||e.length>1?(s=a.project.items[0].field,gR(function(e,t,n,i){return(e.length?"Multiple ":"No ")+`matching ${o(t)} encoding found for selection ${o(n.param)}. Using "field": ${o(i)}.`}(e,r,n,s))):s=e[0].field}}else s=a.project.items[0].field,a.project.items.length>1&&gR(function(e){return`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${o(e)}.`}(s));return`${a.name}[${o(ur(s))}]`}function uI(e,t,n){return nr(t,(t=>i(t)?t:function(e){return $r(e,"param")}(t)?sI(e,t,n):YR(t)))}function cI(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}function fI(e,t,n,i={header:!1}){var r,o;const{disable:a,orient:s,scale:l,labelExpr:f,title:d,zindex:h,...p}=e.combine();if(!a){for(const e in p){const n=e,i=zP[n],r=p[n];if(i&&i!==t&&"both"!==i)delete p[n];else if(CP(r)){const{condition:e,...t}=r,i=c(e),o=FP[n];if(o){const{vgProp:e,part:r}=o;cI(p,r,e,[...i.map((e=>{const{test:t,...n}=e;return{test:uI(null,t),...n}})),t]),delete p[n]}else if(null===o){const e={signal:i.map((e=>{const{test:t,...n}=e;return`${uI(null,t)} ? ${os(n)} : `})).join("")+os(t)};p[n]=e}}else if(Xa(r)){const e=FP[n];if(e){const{vgProp:t,part:i}=e;cI(p,i,t,r),delete p[n]}}ji(["labelAlign","labelBaseline"],n)&&null===p[n]&&delete p[n]}if("grid"===t){if(!p.grid)return;if(p.encode){const{grid:e}=p.encode;p.encode={...e?{grid:e}:{}},Ji(p.encode)&&delete p.encode}return{scale:l,orient:s,...p,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:hr(h,0)}}{if(!i.header&&e.mainExtracted)return;if(void 0!==f){let e=f;(null==(o=null==(r=p.encode)?void 0:r.labels)?void 0:o.update)&&Xa(p.encode.labels.update.text)&&(e=cr(f,"datum.label",p.encode.labels.update.text.signal)),cI(p,"labels","text",{signal:e})}if(null===p.labelAlign&&delete p.labelAlign,p.encode){for(const t of MP)e.hasAxisPart(t)||delete p.encode[t];Ji(p.encode)&&delete p.encode}const t=function(e,t){if(e)return u(e)&&!Ya(e)?e.map((e=>gP(e,t))).join(", "):e}(d,n);return{scale:l,orient:s,grid:!1,...t?{title:t}:{},...p,...!1===n.aria?{aria:!1}:{},zindex:hr(h,0)}}}}function dI(e){const{axes:t}=e.component,n=[];for(const i of ia)if(t[i])for(const r of t[i])if(!r.get("disable")&&!r.get("gridScale")){const t="x"===i?"height":"width",r=e.getSizeSignalRef(t).signal;t!==r&&n.push({name:t,update:r})}return n}function hI(e,t,n,i){return Object.assign.apply(null,[{},...e.map((e=>{if("axisOrient"===e){const e="x"===n?"bottom":"left",r=t["x"===n?"axisBottom":"axisLeft"]||{},o=t["x"===n?"axisTop":"axisRight"]||{},a=new Set([...Qi(r),...Qi(o)]),s={};for(const t of a.values())s[t]={signal:`${i.signal} === "${e}" ? ${as(r[t])} : ${as(o[t])}`};return s}return t[e]}))])}function pI(e,t){var n;const i=[{}];for(const r of e){let e=null==(n=t[r])?void 0:n.style;if(e){e=c(e);for(const n of e)i.push(t.style[n])}}return Object.assign.apply(null,i)}function mI(e,t,n,i={}){var r;const o=ds(e,n,t);if(void 0!==o)return{configFrom:"style",configValue:o};for(const a of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(void 0!==(null==(r=i[a])?void 0:r[e]))return{configFrom:a,configValue:i[a][e]};return{}}const gI={scale:({model:e,channel:t})=>e.scaleName(t),format:({format:e})=>e,formatType:({formatType:e})=>e,grid:({fieldOrDatumDef:e,axis:t,scaleType:n})=>t.grid??function(e,t){return!wB(e)&&XT(t)&&!La(null==t?void 0:t.bin)&&!qa(null==t?void 0:t.bin)}(n,e),gridScale:({model:e,channel:t})=>function(e,t){const n="x"===t?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n);return}(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelAlign||bI(t,n,i),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelBaseline||vI(t,n,i),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>e.labelFlush??function(e,t){if("x"===t&&ji(["quantitative","temporal"],e))return!0;return}(t.type,n),labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>e.labelOverlap??function(e,t,n,i){if(n&&!a(i)||"nominal"!==e&&"ordinal"!==e)return"log"!==t&&"symlog"!==t||"greedy";return}(t.type,n,XT(t)&&!!t.timeUnit,XT(t)?t.sort:void 0),orient:({orient:e})=>e,tickCount:({channel:e,model:t,axis:n,fieldOrDatumDef:i,scaleType:r})=>{const o="x"===e?"width":"y"===e?"height":void 0,a=o?t.getSizeSignalRef(o):void 0;return n.tickCount??function({fieldOrDatumDef:e,scaleType:t,size:n,values:i}){var r;if(!i&&!wB(t)&&"log"!==t){if(XT(e)){if(La(e.bin))return{signal:`ceil(${n.signal}/10)`};if(e.timeUnit&&ji(["month","hours","day","quarter"],null==(r=RR(e.timeUnit))?void 0:r.unit))return}return{signal:`ceil(${n.signal}/40)`}}return}({fieldOrDatumDef:i,scaleType:r,size:a,values:n.values})},tickMinStep:function({format:e,fieldOrDatumDef:t}){if("d"===e)return 1;if(XT(t)){const{timeUnit:e}=t;if(e){const t=BR(e);if(t)return{signal:t}}}return},title:({axis:e,model:t,channel:n})=>{if(void 0!==e.title)return e.title;const i=xI(t,n);if(void 0!==i)return i;const r=t.typedFieldDef(n),o="x"===n?"x2":"y2",a=t.fieldDef(o);return ps(r?[LT(r)]:[],XT(a)?[LT(a)]:[])},values:({axis:e,fieldOrDatumDef:t})=>function(e,t){const n=e.values;if(u(n))return SP(t,n);if(Xa(n))return n;return}(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>e.zindex??function(e,t){if("rect"===e&&cP(t))return 1;return 0}(n,t)};function yI(e){return`(((${e.signal} % 360) + 360) % 360)`}function vI(e,t,n,i){if(void 0!==e){if("x"===n){if(Xa(e)){const n=yI(e);return{signal:`(45 < ${n} && ${n} < 135) || (225 < ${n} && ${n} < 315) ? "middle" :(${n} <= 45 || 315 <= ${n}) === ${Xa(t)?`(${t.signal} === "top")`:"top"===t} ? "bottom" : "top"`}}if(45<e&&e<135||225<e&&e<315)return"middle";if(Xa(t)){const n=e<=45||315<=e?"===":"!==";return{signal:`${t.signal} ${n} "top" ? "bottom" : "top"`}}return(e<=45||315<=e)==("top"===t)?"bottom":"top"}if(Xa(e)){const n=yI(e);return{signal:`${n} <= 45 || 315 <= ${n} || (135 <= ${n} && ${n} <= 225) ? ${i?'"middle"':"null"} : (45 <= ${n} && ${n} <= 135) === ${Xa(t)?`(${t.signal} === "left")`:"left"===t} ? "top" : "bottom"`}}if(e<=45||315<=e||135<=e&&e<=225)return i?"middle":null;if(Xa(t)){const n=45<=e&&e<=135?"===":"!==";return{signal:`${t.signal} ${n} "left" ? "top" : "bottom"`}}return(45<=e&&e<=135)==("left"===t)?"top":"bottom"}}function bI(e,t,n){if(void 0===e)return;const i="x"===n,r=i?0:90,o=i?"bottom":"left";if(Xa(e)){const n=yI(e);return{signal:`(${r?`(${n} + 90)`:n} % 180 === 0) ? ${i?null:'"center"'} :(${r} < ${n} && ${n} < ${180+r}) === ${Xa(t)?`(${t.signal} === "${o}")`:t===o} ? "left" : "right"`}}if((e+r)%180==0)return i?null:"center";if(Xa(t)){const n=r<e&&e<180+r?"===":"!==";return{signal:`${`${t.signal} ${n} "${o}"`} ? "left" : "right"`}}return(r<e&&e<180+r)==(t===o)?"left":"right"}function xI(e,t){const n="x"===t?"x2":"y2",i=e.fieldDef(t),r=e.fieldDef(n),o=i?i.title:void 0,a=r?r.title:void 0;return o&&a?ms(o,a):o||(a||(void 0!==o?o:void 0!==a?a:void 0))}class wI extends vq{clone(){return new wI(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this._dependentFields=oI(this.transform.calculate)}static parseAllForSortIndex(e,t){return t.forEachFieldDef(((t,n)=>{if(rP(t)&&BT(t.sort)){const{field:i,timeUnit:r}=t,o=t.sort,a=o.map(((e,t)=>`${YR({field:i,timeUnit:r,equal:e})} ? ${t} : `)).join("")+o.length;e=new wI(e,{calculate:a,as:_I(t,n,{forAs:!0})})}})),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${Ti(this.transform)}`}}function _I(e,t,n){return uP(e,{prefix:t,suffix:"sort_index",...n})}function kI(e,t){return ji(["top","bottom"],t)?"column":ji(["left","right"],t)||"row"===e?"row":"column"}function $I(e,t,n,i){const r="row"===i?n.headerRow:"column"===i?n.headerColumn:n.headerFacet;return hr((t||{})[e],r[e],n.header[e])}function DI(e,t,n,i){const r={};for(const o of e){const e=$I(o,t||{},n,i);void 0!==e&&(r[o]=e)}return r}const AI=["row","column"],SI=["header","footer"];function EI(e,t){const n=e.component.layoutHeaders[t].title,i=e.config?e.config:void 0,r=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:o,titleAngle:a,titleOrient:s}=DI(["titleAnchor","titleAngle","titleOrient"],r.header,i,t),l=kI(t,s),u=br(a);return{name:`${t}-title`,type:"group",role:`${l}-title`,title:{text:n,..."row"===t?{orient:"left"}:{},style:"guide-title",...CI(u,l),...FI(l,u,o),...TI(i,r,t,xj,vj)}}}function FI(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=bI(t,"row"===e?"left":"top","row"===e?"y":"x");return i?{align:i}:{}}function CI(e,t){const n=vI(e,"row"===t?"left":"top","row"===t?"y":"x",!0);return n?{baseline:n}:{}}function MI(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of SI)if(n[r])for(const o of n[r]){const a=NI(e,t,r,n,o);null!=a&&i.push(a)}return i}function zI(e,t){const{sort:n}=e;return RT(n)?{field:uP(n,{expr:"datum"}),order:n.order??"ascending"}:u(n)?{field:_I(e,t,{expr:"datum"}),order:"ascending"}:{field:uP(e,{expr:"datum"}),order:n??"ascending"}}function OI(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:a,labelOrient:s,labelExpr:l}=DI(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),u=kT({fieldOrDatumDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,c=kI(t,s);return{text:{signal:l?cr(cr(l,"datum.label",u),"datum.value",uP(e,{expr:"parent"})):u},..."row"===t?{orient:"left"}:{},style:"guide-label",frame:"group",...CI(o,c),...FI(c,o,a),...TI(n,e,t,wj,bj)}}function NI(e,t,n,i,r){if(r){let o=null;const{facetFieldDef:a}=i,s=e.config?e.config:void 0;if(a&&r.labels){const{labelOrient:e}=DI(["labelOrient"],a.header,s,t);("row"===t&&!ji(["top","bottom"],e)||"column"===t&&!ji(["left","right"],e))&&(o=OI(a,t,s))}const l=TH(e)&&!TT(e.facet),u=r.axes,c=(null==u?void 0:u.length)>0;if(o||c){const s="row"===t?"height":"width";return{name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`,...i.facetFieldDef?{from:{data:e.getName(`${t}_domain`)},sort:zI(a,t)}:{},...c&&l?{from:{data:e.getName(`facet_domain_${t}`)}}:{},...o?{title:o}:{},...r.sizeSignal?{encode:{update:{[s]:r.sizeSignal}}}:{},...c?{axes:u}:{}}}}return null}const RI={column:{start:0,end:1},row:{start:1,end:0}};function BI(e,t){return RI[t][e]}function TI(e,t,n,i,r){const o={};for(const a of i){if(!r[a])continue;const i=$I(a,null==t?void 0:t.header,e,n);void 0!==i&&(o[r[a]]=i)}return o}function PI(e){return[...jI(e,"width"),...jI(e,"height"),...jI(e,"childWidth"),...jI(e,"childHeight")]}function jI(e,t){const n="width"===t?"x":"y",i=e.component.layoutSize.get(t);if(!i||"merged"===i)return[];const r=e.getSizeSignalRef(t).signal;if("step"===i){const t=e.getScaleComponent(n);if(t){const i=t.get("type"),o=t.get("range");if(wB(i)&&Ja(o)){const i=e.scaleName(n);if(TH(e.parent)){if("independent"===e.parent.component.resolve.scale[n])return[LI(i,o)]}return[LI(i,o),{name:r,update:qI(i,t,`domain('${i}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if("container"==i){const t=r.endsWith("width"),n=t?"containerSize()[0]":"containerSize()[1]",i=`isFinite(${n}) ? ${n} : ${Tj(e.config.view,t?"width":"height")}`;return[{name:r,init:i,on:[{update:i,events:"window:resize"}]}]}return[{name:r,value:i}]}function LI(e,t){const n=`${e}_step`;return Xa(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function qI(e,t,n){const i=t.get("type"),r=t.get("padding"),o=hr(t.get("paddingOuter"),r);let a=t.get("paddingInner");return a="band"===i?void 0!==a?a:r:1,`bandspace(${n}, ${as(a)}, ${as(o)}) * ${e}_step`}function UI(e){return"childWidth"===e?"width":"childHeight"===e?"height":e}function II(e,t){return Qi(e).reduce(((n,i)=>({...n,...tU({model:t,channelDef:e[i],vgChannel:i,mainRefFn:e=>rs(e.value),invalidValueRef:void 0})})),{})}function WI(e,t){if(TH(t))return"theta"===e?"independent":"shared";if(jH(t))return"shared";if(PH(t))return ra(e)||"theta"===e||"radius"===e?"independent":"shared";throw new Error("invalid model type for resolve")}function HI(e,t){const n=e.scale[t],i=ra(t)?"axis":"legend";return"independent"===n?("shared"===e[i][t]&&gR(function(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}(t)),"independent"):e[i][t]||"shared"}const GI=Qi({aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});class VI extends tq{}const YI={symbols:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r,legendType:o}){if("symbol"!==o)return;const{markDef:a,encoding:s,config:l,mark:c}=n,f=a.filled&&"trail"!==c;let d={...ss({},n,tT),...fU(n,{filled:f})};const h=r.get("symbolOpacity")??l.legend.symbolOpacity,p=r.get("symbolFillColor")??l.legend.symbolFillColor,m=r.get("symbolStrokeColor")??l.legend.symbolStrokeColor,g=void 0===h?XI(s.opacity)??a.opacity:void 0;if(d.fill)if("fill"===i||f&&i===Ir)delete d.fill;else if($r(d.fill,"field"))p?delete d.fill:(d.fill=rs(l.legend.symbolBaseFillColor??"black"),d.fillOpacity=rs(g??1));else if(u(d.fill)){const e=JI(s.fill??s.color)??a.fill??(f&&a.color);e&&(d.fill=rs(e))}if(d.stroke)if("stroke"===i||!f&&i===Ir)delete d.stroke;else if($r(d.stroke,"field")||m)delete d.stroke;else if(u(d.stroke)){const e=hr(JI(s.stroke||s.color),a.stroke,f?a.color:void 0);e&&(d.stroke={value:e})}if(i!==Xr){const e=XT(t)&&KI(n,r,t);e?d.opacity=[{test:e,...rs(g??1)},rs(l.legend.unselectedOpacity)]:g&&(d.opacity=rs(g))}return d={...d,...e},Ji(d)?void 0:d},gradient:function(e,{model:t,legendType:n,legendCmpt:i}){if("gradient"!==n)return;const{config:r,markDef:o,encoding:a}=t;let s={};const l=void 0===(i.get("gradientOpacity")??r.legend.gradientOpacity)?XI(a.opacity)||o.opacity:void 0;l&&(s.opacity=rs(l));return s={...s,...e},Ji(s)?void 0:s},labels:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r}){const o=n.legend(i)||{},a=n.config,s=XT(t)?KI(n,r,t):void 0,l=s?[{test:s,value:1},{value:a.legend.unselectedOpacity}]:void 0,{format:u,formatType:c}=o;let f;wT(c)?f=DT({fieldOrDatumDef:t,field:"datum.value",format:u,formatType:c,config:a}):void 0===u&&void 0===c&&a.customFormatTypes&&("quantitative"===t.type&&a.numberFormatType?f=DT({fieldOrDatumDef:t,field:"datum.value",format:a.numberFormat,formatType:a.numberFormatType,config:a}):"temporal"===t.type&&a.timeFormatType&&XT(t)&&void 0===t.timeUnit&&(f=DT({fieldOrDatumDef:t,field:"datum.value",format:a.timeFormat,formatType:a.timeFormatType,config:a})));const d={...l?{opacity:l}:{},...f?{text:f}:{},...e};return Ji(d)?void 0:d},entries:function(e,{legendCmpt:t}){const n=t.get("selections");return(null==n?void 0:n.length)?{...e,fill:{value:"transparent"}}:e}};function XI(e){return QI(e,((e,t)=>Math.max(e,t.value)))}function JI(e){return QI(e,((e,t)=>hr(e,t.value)))}function QI(e,t){return function(e){const t=null==e?void 0:e.condition;return!!t&&(u(t)||iP(t))}(e)?c(e.condition).reduce(t,e.value):iP(e)?e.value:void 0}function KI(e,t,n){const i=t.get("selections");if(!(null==i?void 0:i.length))return;const r=o(n.field);return i.map((e=>`(!length(data(${o(tr(e)+YU)})) || (${e}[${r}] && indexof(${e}[${r}], datum.value) >= 0))`)).join(" || ")}const ZI={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:i,formatType:r}=t;return AT(e,e.type,i,r,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:i}=e;return ST(i,t,n)},gradientLength:e=>{const{legend:t,legendConfig:n}=e;return t.gradientLength??n.gradientLength??function({legendConfig:e,model:t,direction:n,orient:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:a,gradientVerticalMaxLength:s,gradientVerticalMinLength:l}=e;if(kB(r))return"horizontal"===n?"top"===i||"bottom"===i?tW(t,"width",a,o):a:tW(t,"height",l,s);return}(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>e.labelOverlap??t.labelOverlap??function(e){if(ji(["quantile","threshold","log","symlog"],e))return"greedy";return}(n),symbolType:({legend:e,markDef:t,channel:n,encoding:i})=>e.symbolType??function(e,t,n,i){if("shape"!==t){const e=JI(n)??i;if(e)return e}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}(t.type,n,i.shape,t.shape),title:({fieldOrDatumDef:e,config:t})=>pP(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if(go(n)&&kB(t)){if("gradient"===e)return}else if("symbol"===e)return;return e},values:({fieldOrDatumDef:e,legend:t})=>function(e,t){const n=e.values;if(u(n))return SP(t,n);if(Xa(n))return n;return}(t,e)};function eW(e){const{legend:t}=e;return hr(t.type,function({channel:e,timeUnit:t,scaleType:n}){if(go(e)){if(ji(["quarter","month","day"],t))return"symbol";if(kB(n))return"gradient"}return"symbol"}(e))}function tW(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function nW(e){const t=BH(e)?function(e){const{encoding:t}=e,n={};for(const i of[Ir,...kj]){const r=bP(t[i]);r&&e.getScaleComponent(i)&&(i===Gr&&XT(r)&&r.type===nB||(n[i]=rW(e,i)))}return n}(e):function(e){const{legends:t,resolve:n}=e.component;for(const i of e.children){nW(i);for(const r of Qi(i.component.legends))n.legend[r]=HI(e.component.resolve,r),"shared"===n.legend[r]&&(t[r]=oW(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))}for(const i of Qi(t))for(const t of e.children)t.component.legends[i]&&"shared"===n.legend[i]&&delete t.component.legends[i];return t}(e);return e.component.legends=t,t}function iW(e,t,n,i){switch(t){case"disable":return void 0!==n;case"values":return!!(null==n?void 0:n.values);case"title":if("title"===t&&e===(null==i?void 0:i.title))return!0}return e===(n||{})[t]}function rW(e,t){var n;let i=e.legend(t);const{markDef:r,encoding:o,config:a}=e,s=a.legend,l=new VI({},function(e,t){const n=e.scaleName(t);if("trail"===e.mark){if("color"===t)return{stroke:n};if("size"===t)return{strokeWidth:n}}return"color"===t?e.markDef.filled?{fill:n}:{stroke:n}:{[t]:n}}(e,t));!function(e,t,n){var i;const r=null==(i=e.fieldDef(t))?void 0:i.field;for(const o of Ki(e.component.selection??{})){const e=o.project.hasField[r]??o.project.hasChannel[t];if(e&&jU.defined(o)){const t=n.get("selections")??[];t.push(o.name),n.set("selections",t,!1),e.hasLegend=!0}}}(e,t,l);const u=void 0!==i?!i:s.disable;if(l.set("disable",u,void 0!==i),u)return l;i=i||{};const c=e.getScaleComponent(t).get("type"),f=bP(o[t]),d=XT(f)?null==(n=RR(f.timeUnit))?void 0:n.unit:void 0,h=i.orient||a.legend.orient||"right",p=eW({legend:i,channel:t,timeUnit:d,scaleType:c}),m=function({legendConfig:e,legendType:t,orient:n,legend:i}){return i.direction??e[t?"gradientDirection":"symbolDirection"]??function(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return"gradient"===t?"horizontal":void 0}}(n,t)}({legend:i,legendType:p,orient:h,legendConfig:s}),g={legend:i,channel:t,model:e,markDef:r,encoding:o,fieldOrDatumDef:f,legendConfig:s,config:a,scaleType:c,orient:h,legendType:p,direction:m};for(const w of GI){if("gradient"===p&&w.startsWith("symbol")||"symbol"===p&&w.startsWith("gradient"))continue;const n=w in ZI?ZI[w](g):i[w];if(void 0!==n){const r=iW(n,w,i,e.fieldDef(t));(r||void 0===a.legend[w])&&l.set(w,n,r)}}const y=(null==i?void 0:i.encoding)??{},v=l.get("selections"),b={},x={fieldOrDatumDef:f,model:e,channel:t,legendCmpt:l,legendType:p};for(const w of["labels","legend","title","symbols","gradient","entries"]){const t=II(y[w]??{},e),n=w in YI?YI[w](t,x):t;void 0===n||Ji(n)||(b[w]={...(null==v?void 0:v.length)&&XT(f)?{name:`${tr(f.field)}_legend_${w}`}:{},...(null==v?void 0:v.length)?{interactive:!!v}:{},update:n})}return Ji(b)||l.set("encode",b,!!(null==i?void 0:i.encoding)),l}function oW(e,t){var n,i,r,o;if(!e)return t.clone();const a=e.getWithExplicit("orient"),s=t.getWithExplicit("orient");if(a.explicit&&s.explicit&&a.value!==s.value)return;let l=!1;for(const u of GI){const n=aq(e.getWithExplicit(u),t.getWithExplicit(u),u,"legend",((e,t)=>{switch(u){case"symbolType":return aW(e,t);case"title":return gs(e,t);case"type":return l=!0,iq("symbol")}return oq(e,t,u,"legend")}));e.setWithExplicit(u,n)}return l&&((null==(i=null==(n=e.implicit)?void 0:n.encode)?void 0:i.gradient)&&ir(e.implicit,["encode","gradient"]),(null==(o=null==(r=e.explicit)?void 0:r.encode)?void 0:o.gradient)&&ir(e.explicit,["encode","gradient"])),e}function aW(e,t){return"circle"===t.value?t:e}function sW(e){const t=e.component.legends,n={};for(const i of Qi(t)){const r=kr(e.getScaleComponent(i).get("domains"));if(n[r])for(const e of n[r]){oW(e,t[i])||n[r].push(t[i])}else n[r]=[t[i].clone()]}return Ki(n).flat().map((t=>function(e,t){var n,i,r;const{disable:o,labelExpr:a,selections:s,...l}=e.combine();if(o)return;!1===t.aria&&null==l.aria&&(l.aria=!1);if(null==(n=l.encode)?void 0:n.symbols){const e=l.encode.symbols.update;!e.fill||"transparent"===e.fill.value||e.stroke||l.stroke||(e.stroke={value:"transparent"});for(const t of kj)l[t]&&delete e[t]}l.title||delete l.title;if(void 0!==a){let e=a;(null==(r=null==(i=l.encode)?void 0:i.labels)?void 0:r.update)&&Xa(l.encode.labels.update.text)&&(e=cr(a,"datum.label",l.encode.labels.update.text.signal)),function(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}(l,"labels","text",{signal:e})}return l}(t,e.config))).filter((e=>void 0!==e))}function lW(e){return jH(e)||PH(e)?function(e){return e.children.reduce(((e,t)=>e.concat(t.assembleProjections())),uW(e))}(e):uW(e)}function uW(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:i}=n;if(t.data){const r={signal:`[${t.size.map((e=>e.signal)).join(", ")}]`},o=t.data.reduce(((t,n)=>{const i=Xa(n)?n.signal:`data('${e.lookupDataSource(n)}')`;return ji(t,i)||t.push(i),t}),[]);if(o.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:i,size:r,fit:{signal:o.length>1?`[${o.join(", ")}]`:o[0]},...n}]}return[{name:i,translate:{signal:"[width / 2, height / 2]"},...n}]}const cW=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class fW extends tq{constructor(e,t,n,i){super({...t},{name:e}),this.specifiedProjection=t,this.size=n,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function dW(e){e.component.projection=BH(e)?function(e){if(e.hasProjection){const t=Ga(e.specifiedProjection),n=!(t&&(null!=t.scale||null!=t.translate)),i=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,r=n?function(e){const t=[],{encoding:n}=e;for(const i of[[jr,Pr],[qr,Lr]])(bP(n[i[0]])||bP(n[i[1]]))&&t.push({signal:e.getName(`geojson_${t.length}`)});e.channelHasField(Gr)&&e.typedFieldDef(Gr).type===nB&&t.push({signal:e.getName(`geojson_${t.length}`)});0===t.length&&t.push(e.requestDataName(mq.Main));return t}(e):void 0,o=new fW(e.projectionName(!0),{...Ga(e.config.projection),...t},i,r);return o.get("type")||o.set("type","equalEarth",!1),o}return}(e):function(e){if(0===e.children.length)return;let n;for(const t of e.children)dW(t);const i=qi(e.children,(e=>{const i=e.component.projection;if(i){if(n){const e=function(e,n){const i=qi(cW,(i=>!t(e.explicit,i)&&!t(n.explicit,i)||!!(t(e.explicit,i)&&t(n.explicit,i)&&_r(e.get(i),n.get(i)))));if(_r(e.size,n.size)){if(i)return e;if(_r(e.explicit,{}))return n;if(_r(n.explicit,{}))return e}return null}(n,i);return e&&(n=e),!!e}return n=i,!0}return!0}));if(n&&i){const t=e.projectionName(!0),i=new fW(t,n.specifiedProjection,n.size,Oi(n.data));for(const n of e.children){const e=n.component.projection;e&&(e.isFit&&i.data.push(...n.component.projection.data),n.renameProjection(e.get("name"),t),e.merged=!0)}return i}return}(e)}function hW(e,t,n,i){if(EP(t,n)){const r=BH(e)?e.axis(n)??e.legend(n)??{}:{},o=uP(t,{expr:"datum"}),a=uP(t,{expr:"datum",binSuffix:"end"});return{formulaAs:uP(t,{binSuffix:"range",forAs:!0}),formula:MT(o,a,r.format,r.formatType,i)}}return{}}function pW(e,t){return`${ja(e)}_${t}`}function mW(e,t,n){const i=pW(kP(n,void 0)??{},t);return e.getName(`${i}_bins`)}function gW(e,t,n){let r,o;r=function(e){return"as"in e}(e)?i(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:[uP(e,{forAs:!0}),uP(e,{binSuffix:"end",forAs:!0})];const a={...kP(t,void 0)},s=pW(a,e.field),{signal:l,extentSignal:u}=function(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}(n,s);if(Ia(a.extent)){const e=a.extent;o=lI(n,e.param,e),delete a.extent}return{key:s,binComponent:{bin:a,field:e.field,as:[r],...l?{signal:l}:{},...u?{extentSignal:u}:{},...o?{span:o}:{}}}}class yW extends vq{clone(){return new yW(null,Oi(this.bins))}constructor(e,t){super(e),this.bins=t}static makeFromEncoding(e,t){const n=t.reduceFieldDef(((e,n,i)=>{if(nP(n)&&La(n.bin)){const{key:r,binComponent:o}=gW(n,n.bin,t);e[r]={...o,...e[r],...hW(t,n,i,t.config)}}return e}),{});return Ji(n)?null:new yW(e,n)}static makeFromTransform(e,t,n){const{key:i,binComponent:r}=gW(t,t.bin,n);return new yW(e,{[i]:r})}merge(e,t){for(const n of Qi(e.bins))n in this.bins?(t(e.bins[n].signal,this.bins[n].signal),this.bins[n].as=Wi([...this.bins[n].as,...e.bins[n].as],Ti)):this.bins[n]=e.bins[n];for(const n of e.children)e.removeChild(n),n.parent=this;e.remove()}producedFields(){return new Set(Ki(this.bins).map((e=>e.as)).flat(2))}dependentFields(){return new Set(Ki(this.bins).map((e=>e.field)))}hash(){return`Bin ${Ti(this.bins)}`}assemble(){return Ki(this.bins).flatMap((e=>{const t=[],[n,...i]=e.as,{extent:r,...o}=e.bin,a={type:"bin",field:ur(e.field),as:n,signal:e.signal,...Ia(r)?{extent:null}:{extent:r},...e.span?{span:{signal:`span(${e.span})`}}:{},...o};!r&&e.extentSignal&&(t.push({type:"extent",field:ur(e.field),signal:e.extentSignal}),a.extent={signal:e.extentSignal}),t.push(a);for(const s of i)for(let e=0;e<2;e++)t.push({type:"formula",expr:uP({field:n[e]},{expr:"datum"}),as:s[e]});return e.formula&&t.push({type:"formula",expr:e.formula,as:e.formulaAs}),t}))}}function vW(e,t,n,i){var r;const o=BH(i)?i.encoding[No(t)]:void 0;if(nP(n)&&BH(i)&&WT(n,o,i.markDef,i.config)){e.add(uP(n,{})),e.add(uP(n,{suffix:"end"}));const{mark:r,markDef:o,config:a}=i,s=UT({fieldDef:n,markDef:o,config:a});KB(r)&&.5!==s&&ra(t)&&(e.add(uP(n,{suffix:kq})),e.add(uP(n,{suffix:$q}))),n.bin&&EP(n,t)&&e.add(uP(n,{binSuffix:"range"}))}else if(ho(t)){const n=fo(t);e.add(i.getName(n))}else e.add(uP(n));var s;return rP(n)&&(s=null==(r=n.scale)?void 0:r.range,a(s)&&"field"in s)&&e.add(n.scale.range.field),e}class bW extends vq{clone(){return new bW(null,new Set(this.dimensions),Oi(this.measures))}constructor(e,t,n){super(e),this.dimensions=t,this.measures=n}get groupBy(){return this.dimensions}static makeFromEncoding(e,t){let n=!1;t.forEachFieldDef((e=>{e.aggregate&&(n=!0)}));const i={},r=new Set;return n?(t.forEachFieldDef(((e,n)=>{const{aggregate:o,field:a}=e;if(o)if("count"===o)i["*"]??(i["*"]={}),i["*"].count=new Set([uP(e,{forAs:!0})]);else{if(za(o)||Oa(o)){const e=za(o)?"argmin":"argmax",t=o[e];i[t]??(i[t]={}),i[t][e]=new Set([uP({op:e,field:t},{forAs:!0})])}else i[a]??(i[a]={}),i[a][o]=new Set([uP(e,{forAs:!0})]);$a(n)&&"unaggregated"===t.scaleDomain(n)&&(i[a]??(i[a]={}),i[a].min=new Set([uP({field:a,aggregate:"min"},{forAs:!0})]),i[a].max=new Set([uP({field:a,aggregate:"max"},{forAs:!0})]))}else vW(r,n,e,t)})),r.size+Qi(i).length===0?null:new bW(e,r,i)):null}static makeFromTransform(e,t){var n;const i=new Set,r={};for(const o of t.aggregate){const{op:e,field:t,as:i}=o;e&&("count"===e?(r["*"]??(r["*"]={}),r["*"].count=new Set([i||uP(o,{forAs:!0})])):(r[t]??(r[t]={}),(n=r[t])[e]??(n[e]=new Set),r[t][e].add(i||uP(o,{forAs:!0}))))}for(const o of t.groupby??[])i.add(o);return i.size+Qi(r).length===0?null:new bW(e,i,r)}merge(e){return Gi(this.dimensions,e.dimensions)?(function(e,t){for(const n of Qi(t)){const i=t[n];for(const t of Qi(i))n in e?e[n][t]=new Set([...e[n][t]??[],...i[t]]):e[n]={[t]:i[t]}}}(this.measures,e.measures),!0):(function(...e){pR.debug(...e)}("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...Qi(this.measures)])}producedFields(){const e=new Set;for(const t of Qi(this.measures))for(const n of Qi(this.measures[t])){const i=this.measures[t][n];0===i.size?e.add(`${n}_${t}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${Ti({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],t=[],n=[];for(const i of Qi(this.measures))for(const r of Qi(this.measures[i]))for(const o of this.measures[i][r])n.push(o),e.push(r),t.push("*"===i?null:ur(i));return{type:"aggregate",groupby:[...this.dimensions].map(ur),ops:e,fields:t,as:n}}}class xW extends vq{constructor(e,t,n,i){super(e),this.model=t,this.name=n,this.data=i;for(const r of vo){const e=t.facet[r];if(e){const{bin:n,sort:i}=e;this[r]={name:t.getName(`${r}_domain`),fields:[uP(e),...La(n)?[uP(e,{binSuffix:"end"})]:[]],...RT(i)?{sortField:i}:u(i)?{sortIndexField:_I(e,r)}:{}}}}this.childModel=t.child}hash(){let e="Facet";for(const t of vo)this[t]&&(e+=` ${t.charAt(0)}:${Ti(this[t])}`);return e}get fields(){var e;const t=[];for(const n of vo)(null==(e=this[n])?void 0:e.fields)&&t.push(...this[n].fields);return t}dependentFields(){const e=new Set(this.fields);for(const t of vo)this[t]&&(this[t].sortField&&e.add(this[t].sortField.field),this[t].sortIndexField&&e.add(this[t].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const t of ia){const n=this.childModel.component.scales[t];if(n&&!n.merged){const i=n.get("type"),r=n.get("range");if(wB(i)&&Ja(r)){const n=hH(pH(this.childModel,t));n?e[t]=n:gR(qN(t))}}}return e}assembleRowColumnHeaderData(e,t,n){const i={row:"y",column:"x",facet:void 0}[e],r=[],o=[],a=[];i&&n&&n[i]&&(t?(r.push(`distinct_${n[i]}`),o.push("max")):(r.push(n[i]),o.push("distinct")),a.push(`distinct_${n[i]}`));const{sortField:s,sortIndexField:l}=this[e];if(s){const{op:e=zT,field:t}=s;r.push(t),o.push(e),a.push(uP(s,{forAs:!0}))}else l&&(r.push(l),o.push("max"),a.push(l));return{name:this[e].name,source:t??this.data,transform:[{type:"aggregate",groupby:this[e].fields,...r.length?{fields:r,ops:o,as:a}:{}}]}}assembleFacetHeaderData(e){var t;const{columns:n}=this.model.layout,{layoutHeaders:i}=this.model.component,r=[],o={};for(const l of AI){for(const e of SI){const n=(i[l]&&i[l][e])??[];for(const e of n)if((null==(t=e.axes)?void 0:t.length)>0){o[l]=!0;break}}if(o[l]){const e=`length(data("${this.facet.name}"))`,t="row"===l?n?{signal:`ceil(${e} / ${n})`}:1:n?{signal:`min(${e}, ${n})`}:{signal:e};r.push({name:`${this.facet.name}_${l}`,transform:[{type:"sequence",start:0,stop:t}]})}}const{row:a,column:s}=o;return(a||s)&&r.unshift(this.assembleRowColumnHeaderData("facet",null,e)),r}assemble(){const e=[];let t=null;const n=this.getChildIndependentFieldsWithStep(),{column:i,row:r,facet:o}=this;if(i&&r&&(n.x||n.y)){t=`cross_${this.column.name}_${this.row.name}`;const i=[].concat(n.x??[],n.y??[]),r=i.map((()=>"distinct"));e.push({name:t,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:i,ops:r}]})}for(const a of[Ar,Dr])this[a]&&e.push(this.assembleRowColumnHeaderData(a,t,n));if(o){const t=this.assembleFacetHeaderData(n);t&&e.push(...t)}return e}}function wW(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function _W(e){const t={};return Mi(e.filter,(e=>{if(GR(e)){let r=null;jR(e)?r=ns(e.equal):qR(e)?r=ns(e.lte):LR(e)?r=ns(e.lt):UR(e)?r=ns(e.gt):IR(e)?r=ns(e.gte):WR(e)?r=e.range[0]:HR(e)&&(r=(e.oneOf??e.in)[0]),r&&(yR(r)?t[e.field]="date":n(r)?t[e.field]="number":i(r)&&(t[e.field]="string")),e.timeUnit&&(t[e.field]="date")}})),t}function kW(e){const t={};function n(e){var n;DP(e)?t[e.field]="date":"quantitative"===e.type&&(n=e.aggregate,i(n)&&ji(["min","max"],n))?t[e.field]="number":dr(e.field)>1?e.field in t||(t[e.field]="flatten"):rP(e)&&RT(e.sort)&&dr(e.sort.field)>1&&(e.sort.field in t||(t[e.sort.field]="flatten"))}if((BH(e)||TH(e))&&e.forEachFieldDef(((t,i)=>{if(nP(t))n(t);else{const r=zo(i),o=e.fieldDef(r);n({...t,type:o.type})}})),BH(e)){const{mark:n,markDef:i,encoding:r}=e;if(QB(n)&&!e.encoding.order){const e=r["horizontal"===i.orient?"y":"x"];XT(e)&&"quantitative"===e.type&&!(e.field in t)&&(t[e.field]="number")}}return t}class $W extends vq{clone(){return new $W(null,Oi(this._parse))}constructor(e,t){super(e),this._parse=t}hash(){return`Parse ${Ti(this._parse)}`}static makeExplicit(e,t,n){var i;let r={};const o=t.data;return!fq(o)&&(null==(i=null==o?void 0:o.format)?void 0:i.parse)&&(r=o.format.parse),this.makeWithAncestors(e,r,{},n)}static makeWithAncestors(e,t,n,i){for(const a of Qi(n)){const e=i.getWithExplicit(a);void 0!==e.value&&(e.explicit||e.value===n[a]||"derived"===e.value||"flatten"===n[a]?delete n[a]:gR(YN(a,n[a],e.value)))}for(const a of Qi(t)){const e=i.get(a);void 0!==e&&(e===t[a]?delete t[a]:gR(YN(a,t[a],e)))}const r=new tq(t,n);i.copyAll(r);const o={};for(const a of Qi(r.combine())){const e=r.get(a);null!==e&&(o[a]=e)}return 0===Qi(o).length||i.parseNothing?null:new $W(e,o)}get parse(){return this._parse}merge(e){this._parse={...this._parse,...e.parse},e.remove()}assembleFormatParse(){const e={};for(const t of Qi(this._parse)){const n=this._parse[t];1===dr(t)&&(e[t]=n)}return e}producedFields(){return new Set(Qi(this._parse))}dependentFields(){return new Set(Qi(this._parse))}assembleTransforms(e=!1){return Qi(this._parse).filter((t=>!e||dr(t)>1)).map((e=>{const t=function(e,t){const n=or(e);if("number"===t)return`toNumber(${n})`;if("boolean"===t)return`toBoolean(${n})`;if("string"===t)return`toString(${n})`;if("date"===t)return`toDate(${n})`;if("flatten"===t)return n;if(t.startsWith("date:"))return`timeParse(${n},'${wW(t.slice(5,t.length))}')`;if(t.startsWith("utc:"))return`utcParse(${n},'${wW(t.slice(4,t.length))}')`;return gR(`Unrecognized parse "${t}".`),null}(e,this._parse[e]);if(!t)return null;return{type:"formula",expr:t,as:fr(e)}})).filter((e=>null!==e))}}class DW extends vq{clone(){return new DW(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([$j])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:$j}}}class AW extends vq{clone(){return new AW(null,this.params)}constructor(e,t){super(e),this.params=t}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Ti(this.params)}`}assemble(){return{type:"graticule",...!0===this.params?{}:this.params}}}class SW extends vq{clone(){return new SW(null,this.params)}constructor(e,t){super(e),this.params=t}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${Ti(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class EW extends vq{constructor(e){let t;if(super(null),e??(e={name:"source"}),fq(e)||(t=e.format?{...Bi(e.format,["parse"])}:{}),uq(e))this._data={values:e.values};else if(lq(e)){if(this._data={url:e.url},!t.type){let n=/(?:\.([^.]+))?$/.exec(e.url)[1];ji(["json","csv","tsv","dsv","topojson"],n)||(n="json"),t.type=n}}else hq(e)?this._data={values:[{type:"Sphere"}]}:(cq(e)||fq(e))&&(this._data={});this._generator=fq(e),e.name&&(this._name=e.name),t&&!Ji(t)&&(this._data.format=t)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}var FW,CW=function(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n};function MW(e){return e instanceof EW||e instanceof AW||e instanceof SW}class zW{constructor(){FW.set(this,void 0),CW(this,FW,!1,"f")}setModified(){CW(this,FW,!0,"f")}get modifiedFlag(){return function(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)}(this,FW,"f")}}FW=new WeakMap;class OW extends zW{getNodeDepths(e,t,n){n.set(e,t);for(const i of e.children)this.getNodeDepths(i,t+1,n);return n}optimize(e){const t=[...this.getNodeDepths(e,0,new Map).entries()].sort(((e,t)=>t[1]-e[1]));for(const n of t)this.run(n[0]);return this.modifiedFlag}}class NW extends zW{optimize(e){this.run(e);for(const t of e.children)this.optimize(t);return this.modifiedFlag}}class RW extends NW{mergeNodes(e,t){const n=t.shift();for(const i of t)e.removeChild(i),i.parent=n,i.remove()}run(e){const t=e.children.map((e=>e.hash())),n={};for(let i=0;i<t.length;i++)void 0===n[t[i]]?n[t[i]]=[e.children[i]]:n[t[i]].push(e.children[i]);for(const i of Qi(n))n[i].length>1&&(this.setModified(),this.mergeNodes(e,n[i]))}}class BW extends NW{constructor(e){super(),this.requiresSelectionId=e&&eI(e)}run(e){e instanceof DW&&(this.requiresSelectionId&&(MW(e.parent)||e.parent instanceof bW||e.parent instanceof $W)||(this.setModified(),e.remove()))}}class TW extends zW{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,t){let n=new Set;e instanceof _q&&(n=e.producedFields(),Vi(n,t)&&(this.setModified(),e.removeFormulas(t),0===e.producedFields.length&&e.remove()));for(const i of e.children)this.run(i,new Set([...t,...n]))}}class PW extends NW{constructor(){super()}run(e){e instanceof bq&&!e.isRequired()&&(this.setModified(),e.remove())}}class jW extends OW{run(e){if(!(MW(e)||e.numChildren()>1))for(const t of e.children)if(t instanceof $W)if(e instanceof $W)this.setModified(),e.merge(t);else{if(Xi(e.producedFields(),t.dependentFields()))continue;this.setModified(),t.swapWithParent()}}}class LW extends OW{run(e){const t=[...e.children],n=e.children.filter((e=>e instanceof $W));if(e.numChildren()>1&&n.length>=1){const i={},r=new Set;for(const e of n){const t=e.parse;for(const e of Qi(t))e in i?i[e]!==t[e]&&r.add(e):i[e]=t[e]}for(const e of r)delete i[e];if(!Ji(i)){this.setModified();const n=new $W(e,i);for(const r of t){if(r instanceof $W)for(const e of Qi(i))delete r.parse[e];e.removeChild(r),r.parent=n,r instanceof $W&&0===Qi(r.parse).length&&r.remove()}}}}}class qW extends OW{run(e){e instanceof bq||e.numChildren()>0||e instanceof xW||e instanceof EW||(this.setModified(),e.remove())}}class UW extends OW{run(e){const t=e.children.filter((e=>e instanceof _q)),n=t.pop();for(const i of t)this.setModified(),n.merge(i)}}class IW extends OW{run(e){const t=e.children.filter((e=>e instanceof bW)),n={};for(const i of t){const e=Ti(i.groupBy);e in n||(n[e]=[]),n[e].push(i)}for(const i of Qi(n)){const t=n[i];if(t.length>1){const n=t.pop();for(const i of t)n.merge(i)&&(e.removeChild(i),i.parent=n,i.remove(),this.setModified())}}}}class WW extends OW{constructor(e){super(),this.model=e}run(e){const t=!(MW(e)||e instanceof aI||e instanceof $W||e instanceof DW),n=[],i=[];for(const r of e.children)r instanceof yW&&(t&&!Xi(e.producedFields(),r.dependentFields())?n.push(r):i.push(r));if(n.length>0){const t=n.pop();for(const e of n)t.merge(e,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof yW?e.merge(t,this.model.renameSignal.bind(this.model)):t.swapWithParent()}if(i.length>1){const e=i.pop();for(const t of i)e.merge(t,this.model.renameSignal.bind(this.model));this.setModified()}}}class HW extends OW{run(e){const t=[...e.children];if(!Li(t,(e=>e instanceof bq))||e.numChildren()<=1)return;const n=[];let i;for(const r of t)if(r instanceof bq){let t=r;for(;1===t.numChildren();){const[e]=t.children;if(!(e instanceof bq))break;t=e}n.push(...t.children),i?(e.removeChild(r),r.parent=i.parent,i.parent.removeChild(i),i.parent=t,this.setModified()):i=t}else n.push(r);if(n.length){this.setModified();for(const e of n)e.parent.removeChild(e),e.parent=i}}}class GW extends vq{clone(){return new GW(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=Wi(this.transform.groupby.concat(e),(e=>e))}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map((e=>e.field)).filter((e=>void 0!==e)).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){return e.as??uP(e)}hash(){return`JoinAggregateTransform ${Ti(this.transform)}`}assemble(){const e=[],t=[],n=[];for(const r of this.transform.joinaggregate)t.push(r.op),n.push(this.getDefaultName(r)),e.push(void 0===r.field?null:r.field);const i=this.transform.groupby;return{type:"joinaggregate",as:n,ops:t,fields:e,...void 0!==i?{groupby:i}:{}}}}class VW extends vq{clone(){return new VW(null,{...this.filter})}constructor(e,t){super(e),this.filter=t}static make(e,t,n){const{config:i,markDef:r}=t,{marks:o,scales:a}=n;if("include-invalid-values"===o&&"include-invalid-values"===a)return null;const s=t.reduceFieldDef(((e,n,o)=>{const a=$a(o)&&t.getScaleComponent(o);if(a){const t=a.get("type"),{aggregate:s}=n,l=dT({scaleChannel:o,markDef:r,config:i,scaleType:t,isCountAggregate:Ba(s)});"show"!==l&&"always-valid"!==l&&(e[n.field]=n)}return e}),{});return Qi(s).length?new VW(e,s):null}dependentFields(){return new Set(Qi(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Ti(this.filter)}`}assemble(){const e=Qi(this.filter).reduce(((e,t)=>{const n=this.filter[t],i=uP(n,{expr:"datum"});return null!==n&&("temporal"===n.type?e.push(`(isDate(${i}) || (${YW(i)}))`):"quantitative"===n.type&&e.push(YW(i))),e}),[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}function YW(e){return`isValid(${e}) && isFinite(+${e})`}class XW extends vq{clone(){return new XW(null,Oi(this._stack))}constructor(e,t){super(e),this._stack=t}static makeFromTransform(e,t){const{stack:n,groupby:r,as:o,offset:a="zero"}=t,s=[],l=[];if(void 0!==t.sort)for(const i of t.sort)s.push(i.field),l.push(hr(i.order,"ascending"));const c={field:s,order:l};let f;return f=function(e){return u(e)&&e.every((e=>i(e)))&&e.length>1}(o)?o:i(o)?[o,`${o}_end`]:[`${t.stack}_start`,`${t.stack}_end`],new XW(e,{dimensionFieldDefs:[],stackField:n,groupby:r,offset:a,sort:c,facetby:[],as:f})}static makeFromEncoding(e,t){const n=t.stack,{encoding:i}=t;if(!n)return null;const{groupbyChannels:r,fieldChannel:o,offset:a,impute:s}=n,l=r.map((e=>vP(i[e]))).filter((e=>!!e)),c=function(e){return e.stack.stackBy.reduce(((e,t)=>{const n=uP(t.fieldDef);return n&&e.push(n),e}),[])}(t),f=t.encoding.order;let d;if(u(f)||XT(f))d=hs(f);else{const e=HT(f)?f.sort:"y"===o?"descending":"ascending";d=c.reduce(((t,n)=>(t.field.includes(n)||(t.field.push(n),t.order.push(e)),t)),{field:[],order:[]})}return new XW(e,{dimensionFieldDefs:l,stackField:t.vgField(o),facetby:[],stackby:c,sort:d,offset:a,impute:s,as:[t.vgField(o,{suffix:"start",forAs:!0}),t.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${Ti(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:t,groupby:n}=this._stack;return e.length>0?e.map((e=>e.bin?t?[uP(e,{binSuffix:"mid"})]:[uP(e,{}),uP(e,{binSuffix:"end"})]:[uP(e)])).flat():n??[]}assemble(){const e=[],{facetby:t,dimensionFieldDefs:n,stackField:i,stackby:r,sort:o,offset:a,impute:s,as:l}=this._stack;if(s)for(const u of n){const{bandPosition:n=.5,bin:o}=u;if(o){const t=uP(u,{expr:"datum"}),i=uP(u,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${YW(t)} ? ${n}*${t}+${1-n}*${i} : ${t}`,as:uP(u,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...r,...t],key:uP(u,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...t],field:i,sort:o,as:l,offset:a}),e}}class JW extends vq{clone(){return new JW(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=Wi(this.transform.groupby.concat(e),(e=>e))}dependentFields(){const e=new Set;return(this.transform.groupby??[]).forEach(e.add,e),(this.transform.sort??[]).forEach((t=>e.add(t.field))),this.transform.window.map((e=>e.field)).filter((e=>void 0!==e)).forEach(e.add,e),e}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){return e.as??uP(e)}hash(){return`WindowTransform ${Ti(this.transform)}`}assemble(){const e=[],t=[],n=[],i=[];for(const c of this.transform.window)t.push(c.op),n.push(this.getDefaultName(c)),i.push(void 0===c.param?null:c.param),e.push(void 0===c.field?null:c.field);const r=this.transform.frame,o=this.transform.groupby;if(r&&null===r[0]&&null===r[1]&&t.every((e=>Na(e))))return{type:"joinaggregate",as:n,ops:t,fields:e,...void 0!==o?{groupby:o}:{}};const a=[],s=[];if(void 0!==this.transform.sort)for(const c of this.transform.sort)a.push(c.field),s.push(c.order??"ascending");const l={field:a,order:s},u=this.transform.ignorePeers;return{type:"window",params:i,as:n,ops:t,fields:e,sort:l,...void 0!==u?{ignorePeers:u}:{},...void 0!==o?{groupby:o}:{},...void 0!==r?{frame:r}:{}}}}function QW(e){if(e instanceof xW)if(1!==e.numChildren()||e.children[0]instanceof bq){const n=e.model.component.data.main;KW(n);const i=(t=e,function e(n){if(!(n instanceof xW)){const i=n.clone();if(i instanceof bq){const e=ZW+i.getSource();i.setSource(e),t.model.component.data.outputNodes[e]=i}else(i instanceof bW||i instanceof XW||i instanceof JW||i instanceof GW)&&i.addDimensions(t.fields);for(const t of n.children.flatMap(e))t.parent=i;return[i]}return n.children.flatMap(e)}),r=e.children.map(i).flat();for(const e of r)e.parent=n}else{const t=e.children[0];(t instanceof bW||t instanceof XW||t instanceof JW||t instanceof GW)&&t.addDimensions(e.fields),t.swapWithParent(),QW(e)}else e.children.map(QW);var t}function KW(e){if(e instanceof bq&&e.type===mq.Main&&1===e.numChildren()){const t=e.children[0];t instanceof xW||(t.swapWithParent(),KW(e))}}const ZW="scale_";function eH(e){for(const t of e){for(const e of t.children)if(e.parent!==t)return!1;if(!eH(t.children))return!1}return!0}function tH(e,t){let n=!1;for(const i of t)n=e.optimize(i)||n;return n}function nH(e,t,n){let i=e.sources,r=!1;return r=tH(new PW,i)||r,r=tH(new BW(t),i)||r,i=i.filter((e=>e.numChildren()>0)),r=tH(new qW,i)||r,i=i.filter((e=>e.numChildren()>0)),n||(r=tH(new jW,i)||r,r=tH(new WW(t),i)||r,r=tH(new TW,i)||r,r=tH(new LW,i)||r,r=tH(new IW,i)||r,r=tH(new UW,i)||r,r=tH(new RW,i)||r,r=tH(new HW,i)||r),e.sources=i,r}class iH{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,t){return new iH((()=>e(t)))}}function rH(e){BH(e)?function(e){const t=e.component.scales;for(const n of Qi(t)){const i=oH(e,n);if(t[n].setWithExplicit("domains",i),uH(e,n),e.component.data.isFaceted){let t=e;for(;!TH(t)&&t.parent;)t=t.parent;if("shared"===t.component.resolve.scale[n])for(const e of i.value)Qa(e)&&(e.data=ZW+e.data.replace(ZW,""))}}}(e):function(e){for(const n of e.children)rH(n);const t=e.component.scales;for(const n of Qi(t)){let i,r=null;for(const t of e.children){const e=t.component.scales[n];if(e){i=void 0===i?e.getWithExplicit("domains"):aq(i,e.getWithExplicit("domains"),"domains","scale",fH);const t=e.get("selectionExtent");r&&t&&r.param!==t.param&&gR(HN),r=t}}t[n].setWithExplicit("domains",i),r&&t[n].set("selectionExtent",r,!0)}}(e)}function oH(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:i}=e,r=function(e,t,n,i){if("unaggregated"===e){const{valid:e,reason:i}=cH(t,n);if(!e)return void gR(i)}else if(void 0===e&&i.useUnaggregatedDomain){const{valid:e}=cH(t,n);if(e)return"unaggregated"}return e}(e.scaleDomain(t),e.typedFieldDef(t),n,e.config.scale);return r!==e.scaleDomain(t)&&(e.specifiedScales[t]={...e.specifiedScales[t],domain:r}),"x"===t&&bP(i.x2)?bP(i.x)?aq(sH(n,r,e,"x"),sH(n,r,e,"x2"),"domain","scale",fH):sH(n,r,e,"x2"):"y"===t&&bP(i.y2)?bP(i.y)?aq(sH(n,r,e,"y"),sH(n,r,e,"y2"),"domain","scale",fH):sH(n,r,e,"y2"):sH(n,r,e,t)}function aH(e,t,n){var i;const r=null==(i=RR(n))?void 0:i.unit;return"temporal"===t||r?function(e,t,n){return e.map((e=>({signal:`{data: ${AP(e,{timeUnit:n,type:t})}}`})))}(e,t,r):[e]}function sH(e,t,n,i){const{encoding:r,markDef:o,mark:s,config:l,stack:u}=n,c=bP(r[i]),{type:f}=c,d=c.timeUnit,h=function(e){const{marks:t,scales:n}=yq(e);return t===n?mq.Main:"include-invalid-values"===n?mq.PreFilterInvalid:mq.PostFilterInvalid}({invalid:cs("invalid",o,l),isPath:QB(s)});if(function(e){return $r(e,"unionWith")}(t)){const r=sH(e,void 0,n,i);return nq([...aH(t.unionWith,f,d),...r.value])}if(Xa(t))return nq([t]);if(t&&"unaggregated"!==t&&!DB(t))return nq(aH(t,f,d));if(u&&i===u.fieldChannel){if("normalize"===u.offset)return iq([[0,1]]);const e=n.requestDataName(h);return iq([{data:e,field:n.vgField(i,{suffix:"start"})},{data:e,field:n.vgField(i,{suffix:"end"})}])}const p=$a(i)&&XT(c)?function(e,t,n){if(!wB(n))return;const i=e.fieldDef(t),r=i.sort;if(BT(r))return{op:"min",field:_I(i,t),order:"ascending"};const{stack:o}=e,a=o?new Set([...o.groupbyFields,...o.stackBy.map((e=>e.fieldDef.field))]):void 0;if(RT(r)){return lH(r,o&&!a.has(r.field))}if(function(e){return $r(e,"encoding")}(r)){const{encoding:t,order:n}=r,i=e.fieldDef(t),{aggregate:s,field:l}=i,u=o&&!a.has(l);if(za(s)||Oa(s))return lH({field:uP(i),order:n},u);if(Na(s)||!s)return lH({op:s,field:l,order:n},u)}else{if("descending"===r)return{op:"min",field:e.vgField(t),order:"descending"};if(ji(["ascending",void 0],r))return!0}return}(n,i,e):void 0;if(QT(c)){return iq(aH([c.datum],f,d))}const m=c;if("unaggregated"===t){const{field:e}=c;return iq([{data:n.requestDataName(h),field:uP({field:e,aggregate:"min"})},{data:n.requestDataName(h),field:uP({field:e,aggregate:"max"})}])}if(La(m.bin)){if(wB(e))return iq("bin-ordinal"===e?[]:[{data:er(p)?n.requestDataName(h):n.requestDataName(mq.Raw),field:n.vgField(i,EP(m,i)?{binSuffix:"range"}:{}),sort:!0!==p&&a(p)?p:{field:n.vgField(i,{}),op:"min"}}]);{const{bin:e}=m;if(La(e)){const t=mW(n,m.field,e);return iq([new iH((()=>{const e=n.getSignalName(t);return`[${e}.start, ${e}.stop]`}))])}return iq([{data:n.requestDataName(h),field:n.vgField(i,{})}])}}if(m.timeUnit&&ji(["time","utc"],e)){const e=r[No(i)];if(WT(m,e,o,l)){const t=n.requestDataName(h),r=UT({fieldDef:m,fieldDef2:e,markDef:o,config:l}),a=KB(s)&&.5!==r&&ra(i);return iq([{data:t,field:n.vgField(i,a?{suffix:kq}:{})},{data:t,field:n.vgField(i,{suffix:a?$q:"end"})}])}}return iq(p?[{data:er(p)?n.requestDataName(h):n.requestDataName(mq.Raw),field:n.vgField(i),sort:p}]:[{data:n.requestDataName(h),field:n.vgField(i)}])}function lH(e,t){const{op:n,field:i,order:r}=e;return{op:n??(t?"sum":zT),...i?{field:ur(i)}:{},...r?{order:r}:{}}}function uH(e,t){var n;const i=e.component.scales[t],r=e.specifiedScales[t].domain,o=null==(n=e.fieldDef(t))?void 0:n.bin,a=DB(r)?r:void 0,s=Ua(o)&&Ia(o.extent)?o.extent:void 0;(a||s)&&i.set("selectionExtent",a??s,!0)}function cH(e,t){const{aggregate:n,type:r}=e;return n?i(n)&&!Pa.has(n)?{valid:!1,reason:oR(n)}:"quantitative"===r&&"log"===t?{valid:!1,reason:aR(e)}:{valid:!0}:{valid:!1,reason:rR(e)}}function fH(e,t,n,i){return e.explicit&&t.explicit&&gR(function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${kr(n)} and ${kr(i)}). Using the union of the two domains.`}(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function dH(e){const n=Wi(e.map((e=>{if(Qa(e)){const{sort:t,...n}=e;return n}return e})),Ti),r=Wi(e.map((e=>{if(Qa(e)){const t=e.sort;return void 0===t||er(t)||("op"in t&&"count"===t.op&&delete t.field,"ascending"===t.order&&delete t.order),t}})).filter((e=>void 0!==e)),Ti);if(0===n.length)return;if(1===n.length){const t=e[0];if(Qa(t)&&r.length>0){let e=r[0];if(r.length>1){gR(uR);const t=r.filter((e=>a(e)&&"op"in e&&"min"!==e.op));e=!r.every((e=>a(e)&&"op"in e))||1!==t.length||t[0]}else if(a(e)&&"field"in e){const n=e.field;t.field===n&&(e=!e.order||{order:e.order})}return{...t,sort:e}}return t}const o=Wi(r.map((e=>er(e)||!("op"in e)||i(e.op)&&t(Ma,e.op)?e:(gR(function(e){return`Dropping sort property ${kr(e)} as unioned domains only support boolean or op "count", "min", and "max".`}(e)),!0))),Ti);let s;1===o.length?s=o[0]:o.length>1&&(gR(uR),s=!0);const l=Wi(e.map((e=>Qa(e)?e.data:null)),(e=>e));if(1===l.length&&null!==l[0]){return{data:l[0],fields:n.map((e=>e.field)),...s?{sort:s}:{}}}return{fields:n,...s?{sort:s}:{}}}function hH(e){if(Qa(e)&&i(e.field))return e.field;if(function(e){return!u(e)&&$r(e,"fields")&&!$r(e,"data")}(e)){let t;for(const n of e.fields)if(Qa(n)&&i(n.field))if(t){if(t!==n.field)return gR("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),t}else t=n.field;return gR("Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect."),t}if(function(e){return!u(e)&&$r(e,"fields")&&$r(e,"data")}(e)){gR("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");const t=e.fields[0];return i(t)?t:void 0}}function pH(e,t){return dH(e.component.scales[t].get("domains").map((t=>(Qa(t)&&(t.data=e.lookupDataSource(t.data)),t))))}function mH(e){return jH(e)||PH(e)?e.children.reduce(((e,t)=>e.concat(mH(t))),gH(e)):gH(e)}function gH(e){return Qi(e.component.scales).reduce(((t,n)=>{const i=e.component.scales[n];if(i.merged)return t;const r=i.combine(),{name:o,type:s,selectionExtent:l,domains:c,range:f,reverse:d,...h}=r,p=function(e,t,n,i){if(ra(n)){if(Ja(e))return{step:{signal:`${t}_step`}}}else if(a(e)&&Qa(e))return{...e,data:i.lookupDataSource(e.data)};return e}(r.range,o,n,e),m=pH(e,n),g=l?function(e,t,n,i){const r=lI(e,t.param,t);return{signal:_B(n.get("type"))&&u(i)&&i[0]>i[1]?`isValid(${r}) && reverse(${r})`:r}}(e,l,i,m):null;return t.push({name:o,type:s,...m?{domain:m}:{},...g?{domainRaw:g}:{},range:p,...void 0!==d?{reverse:d}:{},...h}),t}),[])}class yH extends tq{constructor(e,t){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",t)}domainHasZero(){const e=this.get("type");if(ji([rB,sB,lB],e))return"definitely-not";const t=this.get("zero");if(!0===t||void 0===t&&ji([iB,aB,oB],e))return"definitely";const i=this.get("domains");if(i.length>0){let e=!1,t=!1,r=!1;for(const o of i){if(u(o)){const i=o[0],r=o[o.length-1];if(n(i)&&n(r)){if(i<=0&&r>=0){e=!0;continue}t=!0;continue}}r=!0}if(e)return"definitely";if(t&&!r)return"definitely-not"}return"maybe"}}const vH=["range","scheme"];function bH(e,t){const n=e.fieldDef(t);if(null==n?void 0:n.bin){const{bin:i,field:r}=n,o=Ro(t),s=e.getName(o);if(a(i)&&i.binned&&void 0!==i.step)return new iH((()=>{const n=e.scaleName(t),r=`(domain("${n}")[1] - domain("${n}")[0]) / ${i.step}`;return`${e.getSignalName(s)} / (${r})`}));if(La(i)){const t=mW(e,r,i);return new iH((()=>{const n=e.getSignalName(t),i=`(${n}.stop - ${n}.start) / ${n}.step`;return`${e.getSignalName(s)} / (${i})`}))}}}function xH(e,t){const i=t.specifiedScales[e],{size:r}=t,o=t.getScaleComponent(e).get("type");for(const n of vH)if(void 0!==i[n]){const r=NB(o,n),s=RB(e,n);if(r)if(s)gR(s);else switch(n){case"range":{const n=i.range;if(u(n)){if(ra(e))return nq(n.map((e=>{if("width"===e||"height"===e){const n=t.getName(e),i=t.getSignalName.bind(t);return iH.fromName(i,n)}return e})))}else if(a(n))return nq({data:t.requestDataName(mq.Main),field:n.field,sort:{op:"min",field:t.vgField(e)}});return nq(n)}case"scheme":return nq(wH(i[n]))}else gR(sR(o,n,e))}const s=e===Er||"xOffset"===e?"width":"height",l=r[s];if(Nj(l))if(ra(e))if(wB(o)){const n=kH(l,t,e);if(n)return nq({step:n})}else gR(lR(s));else if(ua(e)){const n=e===zr?"x":"y";if("band"===t.getScaleComponent(n).get("type")){const e=$H(l,o);if(e)return nq(e)}}const{rangeMin:c,rangeMax:f}=i,d=function(e,t){const{size:i,config:r,mark:o,encoding:a}=t,{type:s}=bP(a[e]),l=t.getScaleComponent(e),c=l.get("type"),{domain:f,domainMid:d}=t.specifiedScales[e];switch(e){case Er:case Fr:if(ji(["point","band"],c)){const n=DH(e,i,r.view);if(Nj(n)){return{step:kH(n,t,e)}}}return _H(e,t,c);case zr:case Or:return function(e,t,n){const i=e===zr?"x":"y",r=t.getScaleComponent(i);if(!r)return _H(i,t,n,{center:!0});const o=r.get("type"),a=t.scaleName(i),{markDef:s,config:l}=t;if("band"===o){const e=DH(i,t.size,t.config.view);if(Nj(e)){const t=$H(e,n);if(t)return t}return[0,{signal:`bandwidth('${a}')`}]}{const n=t.encoding[i];if(XT(n)&&n.timeUnit){const e=BR(n.timeUnit,(e=>`scale('${a}', ${e})`)),i=t.config.scale.bandWithNestedOffsetPaddingInner,r=UT({fieldDef:n,markDef:s,config:l})-.5,o=0!==r?` + ${r}`:"";if(i){return[{signal:`${Xa(i)?`${i.signal}/2`+o:`${i/2+r}`} * (${e})`},{signal:`${Xa(i)?`(1 - ${i.signal}/2)`+o:`${1-i/2+r}`} * (${e})`}]}return[0,{signal:e}]}return Ni(`Cannot use ${e} scale if ${i} scale is not discrete.`)}}(e,t,c);case Vr:{const a=function(e,t){switch(e){case"bar":case"tick":return t.scale.minBandSize;case"line":case"trail":case"rule":return t.scale.minStrokeWidth;case"text":return t.scale.minFontSize;case"point":case"square":case"circle":return t.scale.minSize}throw new Error(eR("size",e))}(o,r),s=function(e,t,i,r){const o={x:bH(i,"x"),y:bH(i,"y")};switch(e){case"bar":case"tick":{if(void 0!==r.scale.maxBandSize)return r.scale.maxBandSize;const e=SH(t,o,r.view);return n(e)?e-1:new iH((()=>`${e.signal} - 1`))}case"line":case"trail":case"rule":return r.scale.maxStrokeWidth;case"text":return r.scale.maxFontSize;case"point":case"square":case"circle":{if(r.scale.maxSize)return r.scale.maxSize;const e=SH(t,o,r.view);return n(e)?Math.pow(AH*e,2):new iH((()=>`pow(${AH} * ${e.signal}, 2)`))}}throw new Error(eR("size",e))}(o,i,t,r);return $B(c)?function(e,t,n){const i=()=>{const i=as(t),r=as(e),o=`(${i} - ${r}) / (${n} - 1)`;return`sequence(${r}, ${i} + ${o}, ${o})`};return Xa(t)?new iH(i):{signal:i()}}(a,s,function(e,t,n,i){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return void 0!==n&&u(n)?n.length+1:(gR(function(e){return`Domain for ${e} is required for threshold scale.`}(i)),3)}}(c,r,f,e)):[a,s]}case Br:return[0,2*Math.PI];case Yr:return[0,360];case Nr:return[0,new iH((()=>`min(${t.getSignalName(TH(t.parent)?"child_width":"width")},${t.getSignalName(TH(t.parent)?"child_height":"height")})/2`))];case Ur:return{step:1e3/r.scale.framesPerSecond};case Kr:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case Zr:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case Gr:return"symbol";case Ir:case Wr:case Hr:return"ordinal"===c?"nominal"===s?"category":"ordinal":void 0!==d?"diverging":"rect"===o||"geoshape"===o?"heatmap":"ramp";case Xr:case Jr:case Qr:return[r.scale.minOpacity,r.scale.maxOpacity]}}(e,t);return(void 0!==c||void 0!==f)&&NB(o,"rangeMin")&&u(d)&&2===d.length?nq([c??d[0],f??d[1]]):iq(d)}function wH(e){return function(e){return!i(e)&&$r(e,"name")}(e)?{scheme:e.name,...Bi(e,["name"])}:{scheme:e}}function _H(e,t,n,{center:i}={}){const r=Ro(e),o=t.getName(r),a=t.getSignalName.bind(t);return e===Fr&&_B(n)?i?[iH.fromName((e=>`${a(e)}/2`),o),iH.fromName((e=>`-${a(e)}/2`),o)]:[iH.fromName(a,o),0]:i?[iH.fromName((e=>`-${a(e)}/2`),o),iH.fromName((e=>`${a(e)}/2`),o)]:[0,iH.fromName(a,o)]}function kH(e,t,n){const{encoding:i}=t,r=t.getScaleComponent(n),a=To(n),s=i[a];if("offset"===Oj({step:e,offsetIsDiscrete:tP(s)&&QR(s.type)})&&LP(i,a)){const n=t.getScaleComponent(a);let i=`domain('${t.scaleName(a)}').length`;if("band"===n.get("type")){i=`bandspace(${i}, ${n.get("paddingInner")??n.get("padding")??0}, ${n.get("paddingOuter")??n.get("padding")??0})`}const s=r.get("paddingInner")??r.get("padding");return{signal:`${e.step} * ${i} / (1-${l=s,Xa(l)?l.signal:o(l)})`}}return e.step;var l}function $H(e,t){if("offset"===Oj({step:e,offsetIsDiscrete:wB(t)}))return{step:e.step}}function DH(e,t,n){const i=e===Er?"width":"height",r=t[i];return r||jj(n,i)}const AH=.95;function SH(e,t,n){const i=Nj(e.width)?e.width.step:Pj(n,"width"),r=Nj(e.height)?e.height.step:Pj(n,"height");return t.x||t.y?new iH((()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`)):Math.min(i,r)}function EH(e,t){BH(e)?function(e,t){const n=e.component.scales,{config:i,encoding:r,markDef:o,specifiedScales:a}=e;for(const s of Qi(n)){const l=a[s],u=n[s],c=e.getScaleComponent(s),f=bP(r[s]),d=l[t],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=NB(h,t),y=RB(s,t);if(void 0!==d&&(g?y&&gR(y):gR(sR(h,t,s))),g&&void 0===y)if(void 0!==d){const e=f.timeUnit,n=f.type;switch(t){case"domainMax":case"domainMin":yR(l[t])||"temporal"===n||e?u.set(t,{signal:AP(l[t],{type:n,timeUnit:e})},!0):u.set(t,l[t],!0);break;default:u.copyKeyFromObject(t,l)}}else{const n=$r(FH,t)?FH[t]({model:e,channel:s,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:m,domain:l.domain,domainMin:l.domainMin,domainMax:l.domainMax,markDef:o,config:i,hasNestedOffsetScale:qP(r,s),hasSecondaryRangeChannel:!!r[No(s)]}):i.scale[t];void 0!==n&&u.set(t,n,!1)}}}(e,t):MH(e,t)}const FH={bins:({model:e,fieldOrDatumDef:t})=>XT(t)?function(e,t){const n=t.bin;if(La(n)){const i=mW(e,t.field,n);return new iH((()=>e.getSignalName(i)))}if(qa(n)&&Ua(n)&&void 0!==n.step)return{step:n.step};return}(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>function(e,t){if(ji([Ir,Wr,Hr],e)&&"nominal"!==t)return"hcl";return}(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:i,domainMax:r,fieldOrDatumDef:o})=>function(e,t,n,i,r,o){var a;if((null==(a=vP(o))?void 0:a.bin)||u(n)||null!=r||null!=i||ji([sB,lB],e))return;return!!ra(t)||void 0}(e,t,n,i,r,o),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:i,config:r})=>function(e,t,n,i,r,o){if(ra(e)){if(kB(t)){if(void 0!==n.continuousPadding)return n.continuousPadding;const{type:t,orient:a}=r;if("bar"===t&&(!XT(i)||!i.bin&&!i.timeUnit)&&("vertical"===a&&"x"===e||"horizontal"===a&&"y"===e))return o.continuousBandSize}if(t===uB)return n.pointPadding}return}(e,t,r.scale,n,i,r.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:i,config:r,hasNestedOffsetScale:o})=>function(e,t,n,i,r,o=!1){if(void 0!==e)return;if(ra(t)){const{bandPaddingInner:e,barBandPaddingInner:t,rectBandPaddingInner:i,tickBandPaddingInner:a,bandWithNestedOffsetPaddingInner:s}=r;return o?s:hr(e,"bar"===n?t:"tick"===n?a:i)}if(ua(t)&&i===cB)return r.offsetBandPaddingInner;return}(e,t,n.type,i,r.scale,o),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:i,config:r,hasNestedOffsetScale:o})=>function(e,t,n,i,r,o=!1){if(void 0!==e)return;if(ra(t)){const{bandPaddingOuter:e,bandWithNestedOffsetPaddingOuter:t}=r;if(o)return t;if(n===cB)return hr(e,Xa(i)?{signal:`${i.signal}/2`}:i/2)}else if(ua(t)){if(n===uB)return.5;if(n===cB)return r.offsetBandPaddingOuter}return}(e,t,n,i,r.scale,o),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:i})=>function(e,t,n,i){if("x"===n&&void 0!==i.xReverse)return _B(e)&&"descending"===t?Xa(i.xReverse)?{signal:`!${i.xReverse.signal}`}:!i.xReverse:i.xReverse;if(_B(e)&&"descending"===t)return!0;return}(t,XT(e)?e.sort:void 0,n,i.scale),zero:({channel:e,fieldOrDatumDef:t,domain:i,markDef:r,scaleType:o,config:a,hasSecondaryRangeChannel:s})=>function(e,t,i,r,o,a,s){if(i&&"unaggregated"!==i&&_B(o)){if(u(i)){const e=i[0],t=i[i.length-1];if(n(e)&&e<=0&&n(t)&&t>=0)return!0}return!1}if("size"===e&&"quantitative"===t.type&&!$B(o))return!0;if((!XT(t)||!t.bin)&&ji([...ia,...aa],e)){const{orient:t,type:n}=r;return(!ji(["bar","area","line","trail"],n)||!("horizontal"===t&&"y"===e||"vertical"===t&&"x"===e))&&(!(!ji(["bar","area"],n)||s)||(null==a?void 0:a.zero))}return!1}(e,t,i,r,o,a.scale,s)};function CH(e){BH(e)?function(e){const t=e.component.scales;for(const n of ka){const i=t[n];if(!i)continue;const r=xH(n,e);i.setWithExplicit("range",r)}}(e):MH(e,"range")}function MH(e,t){const n=e.component.scales;for(const i of e.children)"range"===t?CH(i):EH(i,t);for(const i of Qi(n)){let r;for(const n of e.children){const e=n.component.scales[i];if(e){r=aq(r,e.getWithExplicit(t),t,"scale",rq(((e,n)=>"range"===t&&e.step&&n.step?e.step-n.step:0)))}}n[i].setWithExplicit(t,r)}}function zH(e,t,n,i,r=!1){const o=function(e,t,n,i){var r;switch(t.type){case"nominal":case"ordinal":if(go(e)||"discrete"===Fa(e))return"shape"===e&&"ordinal"===t.type&&gR(iR(e,"ordinal")),"ordinal";if(fa(e))return"band";if(ra(e)||ua(e)){if(ji(["rect","bar","image","rule","tick"],n.type))return"band";if(i)return"band"}else if("arc"===n.type&&e in oa)return"band";return aT(n[Ro(e)])||oP(t)&&(null==(r=t.axis)?void 0:r.tickBand)?"band":"point";case"temporal":return go(e)?"time":"discrete"===Fa(e)?(gR(iR(e,"temporal")),"ordinal"):XT(t)&&t.timeUnit&&RR(t.timeUnit).utc?"utc":fa(e)?"band":"time";case"quantitative":return go(e)?XT(t)&&La(t.bin)?"bin-ordinal":"linear":"discrete"===Fa(e)?(gR(iR(e,"quantitative")),"ordinal"):fa(e)?"band":"linear";case"geojson":return}throw new Error(QN(t.type))}(t,n,i,r),{type:a}=e;return $a(t)?void 0!==a?function(e,t,n=!1){if(!$a(e))return!1;switch(e){case Er:case Fr:case zr:case Or:case Br:case Nr:return!!kB(t)||"band"===t||"point"===t&&!n;case Ur:return ji(["linear","band"],t);case Vr:case Kr:case Xr:case Jr:case Qr:case Yr:return kB(t)||$B(t)||ji(["band","point","ordinal"],t);case Ir:case Wr:case Hr:return"band"!==t;case Zr:case Gr:return"ordinal"===t||$B(t)}}(t,a)?XT(n)&&(s=a,l=n.type,!(ji([ZR,tB],l)?void 0===s||wB(s):l===eB?ji([sB,lB,void 0],s):l!==KR||yB(s)||$B(s)||void 0===s))?(gR(function(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}(a,o)),o):a:(gR(function(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}(t,a,o)),o):o:null;var s,l}function OH(e){BH(e)?e.component.scales=function(e){const{encoding:t,mark:n,markDef:i}=e,r={};for(const o of ka){const a=bP(t[o]);if(a&&n===JB&&o===Gr&&a.type===nB)continue;let s=a&&a.scale;if(a&&null!==s&&!1!==s){s??(s={});const n=zH(s,o,a,i,qP(t,o));r[o]=new yH(e.scaleName(`${o}`,!0),{value:n,explicit:s.type===n})}}return r}(e):e.component.scales=function(e){var t;const n=e.component.scales={},i={},r=e.component.resolve;for(const o of e.children){OH(o);for(const n of Qi(o.component.scales))if((t=r.scale)[n]??(t[n]=WI(n,e)),"shared"===r.scale[n]){const e=i[n],t=o.component.scales[n].getWithExplicit("type");e?dB(e.value,t.value)?i[n]=aq(e,t,"type","scale",NH):(r.scale[n]="independent",delete i[n]):i[n]=t}}for(const o of Qi(i)){const t=e.scaleName(o,!0),r=i[o];n[o]=new yH(t,r);for(const n of e.children){const e=n.component.scales[o];e&&(n.renameScale(e.get("name"),t),e.merged=!0)}}return n}(e)}const NH=rq(((e,t)=>pB(e)-pB(t)));class RH{constructor(){this.nameMap={}}rename(e,t){this.nameMap[e]=t}has(e){return void 0!==this.nameMap[e]}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function BH(e){return"unit"===(null==e?void 0:e.type)}function TH(e){return"facet"===(null==e?void 0:e.type)}function PH(e){return"concat"===(null==e?void 0:e.type)}function jH(e){return"layer"===(null==e?void 0:e.type)}class LH{constructor(e,t,i,r,o,a,s){this.type=t,this.parent=i,this.config=o,this.parent=i,this.config=o,this.view=Ga(s),this.name=e.name??r,this.title=Ya(e.title)?{text:e.title}:e.title?Ga(e.title):void 0,this.scaleNameMap=i?i.scaleNameMap:new RH,this.projectionNameMap=i?i.projectionNameMap:new RH,this.signalNameMap=i?i.signalNameMap:new RH,this.data=e.data,this.description=e.description,this.transforms=(e.transform??[]).map((e=>kL(e)?{filter:zi(e.filter,JR)}:e)),this.layout="layer"===t||"unit"===t?{}:function(e,t,i){const r=i[t],o={},{spacing:a,columns:s}=r;void 0!==a&&(o.spacing=a),void 0!==s&&(jT(e)&&!TT(e.facet)||Cj(e))&&(o.columns=s),Mj(e)&&(o.columns=1);for(const l of Bj)if(void 0!==e[l])if("spacing"===l){const t=e[l];o[l]=n(t)?t:{row:t.row??a,column:t.column??a}}else o[l]=e[l];return o}(e,t,o),this.component={data:{sources:i?i.component.data.sources:[],outputNodes:i?i.component.data.outputNodes:{},outputNodeRefCounts:i?i.component.data.outputNodeRefCounts:{},isFaceted:jT(e)||(null==i?void 0:i.component.data.isFaceted)&&void 0===e.data},layoutSize:new tq,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...a?Oi(a):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){!function(e,{ignoreRange:t}={}){OH(e),rH(e);for(const n of OB)EH(e,n);t||CH(e)}(this)}parseProjection(){dW(this)}renameTopLevelLayoutSizeSignal(){"width"!==this.getName("width")&&this.renameSignal(this.getName("width"),"width"),"height"!==this.getName("height")&&this.renameSignal(this.getName("height"),"height")}parseLegends(){nW(this)}assembleEncodeFromView(e){const{style:t,...n}=e,i={};for(const r of Qi(n)){const e=n[r];void 0!==e&&(i[r]=rs(e))}return i}assembleGroupEncodeEntry(e){let t={};return this.view&&(t=this.assembleEncodeFromView(this.view)),e||(this.description&&(t.description=rs(this.description)),"unit"!==this.type&&"layer"!==this.type)?Ji(t)?void 0:t:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...t}}assembleLayout(){if(!this.layout)return;const{spacing:e,...t}=this.layout,{component:n,config:i}=this,r=function(e,t){const n={};for(const i of vo){const r=e[i];if(null==r?void 0:r.facetFieldDef){const{titleAnchor:e,titleOrient:o}=DI(["titleAnchor","titleOrient"],r.facetFieldDef.header,t,i),a=kI(i,o),s=BI(e,a);void 0!==s&&(n[a]=s)}}return Ji(n)?void 0:n}(n.layoutHeaders,i);return{padding:e,...this.assembleDefaultLayout(),...t,...r?{titleBand:r}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let t=[];for(const n of vo)e[n].title&&t.push(EI(this,n));for(const n of AI)t=t.concat(MI(this,n));return t}assembleAxes(){return function(e,t){const{x:n=[],y:i=[]}=e;return[...n.map((e=>fI(e,"grid",t))),...i.map((e=>fI(e,"grid",t))),...n.map((e=>fI(e,"main",t))),...i.map((e=>fI(e,"main",t)))].filter((e=>e))}(this.component.axes,this.config)}assembleLegends(){return sW(this)}assembleProjections(){return lW(this)}assembleTitle(){const{encoding:e,...t}=this.title??{},n={...Va(this.config.title).nonMarkTitleProperties,...t,...e?{encode:{update:e}}:{}};if(n.text)return ji(["unit","layer"],this.type)?ji(["middle",void 0],n.anchor)&&(n.frame??(n.frame="group")):n.anchor??(n.anchor="start"),Ji(n)?void 0:n}assembleGroup(e=[]){const t={};(e=e.concat(this.assembleSignals())).length>0&&(t.signals=e);const n=this.assembleLayout();n&&(t.layout=n),t.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||TH(this.parent)?mH(this):[];i.length>0&&(t.scales=i);const r=this.assembleAxes();r.length>0&&(t.axes=r);const o=this.assembleLegends();return o.length>0&&(t.legends=o),t}getName(e){return tr((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(mq[e].toLowerCase())}requestDataName(e){const t=this.getDataName(e),n=this.component.data.outputNodeRefCounts;return n[t]=(n[t]||0)+1,t}getSizeSignalRef(e){if(TH(this.parent)){const t=sa(UI(e)),n=this.component.scales[t];if(n&&!n.merged){const e=n.get("type"),i=n.get("range");if(wB(e)&&Ja(i)){const e=n.get("name"),i=hH(pH(this,t));if(i){return{signal:qI(e,n,uP({aggregate:"distinct",field:i},{expr:"datum"}))}}return gR(qN(t)),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const t=this.component.data.outputNodes[e];return t?t.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,t){this.signalNameMap.rename(e,t)}renameScale(e,t){this.scaleNameMap.rename(e,t)}renameProjection(e,t){this.projectionNameMap.rename(e,t)}scaleName(e,t){return t?this.getName(e):Fo(e)&&$a(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e))?this.scaleNameMap.get(this.getName(e)):void 0}projectionName(e){return e?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const t=this.component.scales[e];return t&&!t.merged?t:this.parent?this.parent.getScaleComponent(e):void 0}getScaleType(e){const t=this.getScaleComponent(e);return t?t.get("type"):void 0}getSelectionComponent(e,t){let n=this.component.selection[e];if(!n&&this.parent&&(n=this.parent.getSelectionComponent(e,t)),!n)throw new Error(`Cannot find a selection named "${t}".`);return n}hasAxisOrientSignalRef(){var e,t;return(null==(e=this.component.axes.x)?void 0:e.some((e=>e.hasOrientSignalRef())))||(null==(t=this.component.axes.y)?void 0:t.some((e=>e.hasOrientSignalRef())))}}class qH extends LH{vgField(e,t={}){const n=this.fieldDef(e);if(n)return uP(n,t)}reduceFieldDef(e,t){return function(e,t,n,i){return e?Qi(e).reduce(((n,r)=>{const o=e[r];return u(o)?o.reduce(((e,n)=>t.call(i,e,n,r)),n):t.call(i,n,o,r)}),n):n}(this.getMapping(),((t,n,i)=>{const r=vP(n);return r?e(t,r,i):t}),t)}forEachFieldDef(e,t){GP(this.getMapping(),((t,n)=>{const i=vP(t);i&&e(i,n)}),t)}}class UH extends vq{clone(){return new UH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"value",n[1]??"density"];const i=this.transform.resolve??"shared";this.transform.resolve=i}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${Ti(this.transform)}`}assemble(){const{density:e,...t}=this.transform,n={type:"kde",field:e,...t};return n.resolve=this.transform.resolve,n}}class IH extends vq{clone(){return new IH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${Ti(this.transform)}`}assemble(){const{extent:e,param:t}=this.transform;return{type:"extent",field:e,signal:t}}}class WH extends vq{clone(){return new WH(this.parent,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const{flatten:n,as:i=[]}=this.transform;this.transform.as=n.map(((e,t)=>i[t]??e))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Ti(this.transform)}`}assemble(){const{flatten:e,as:t}=this.transform;return{type:"flatten",fields:e,as:t}}}class HH extends vq{clone(){return new HH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"key",n[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${Ti(this.transform)}`}assemble(){const{fold:e,as:t}=this.transform;return{type:"fold",fields:e,as:t}}}class GH extends vq{clone(){return new GH(null,Oi(this.fields),this.geojson,this.signal)}static parseAll(e,t){if(t.component.projection&&!t.component.projection.isFit)return e;let n=0;for(const i of[[jr,Pr],[qr,Lr]]){const r=i.map((e=>{const n=bP(t.encoding[e]);return XT(n)?n.field:QT(n)?{expr:`${n.datum}`}:iP(n)?{expr:`${n.value}`}:void 0}));(r[0]||r[1])&&(e=new GH(e,r,null,t.getName("geojson_"+n++)))}if(t.channelHasField(Gr)){const i=t.typedFieldDef(Gr);i.type===nB&&(e=new GH(e,null,i.field,t.getName("geojson_"+n++)))}return e}constructor(e,t,n,i){super(e),this.fields=t,this.geojson=n,this.signal=i}dependentFields(){const e=(this.fields??[]).filter(i);return new Set([...this.geojson?[this.geojson]:[],...e])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Ti(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class VH extends vq{clone(){return new VH(null,this.projection,Oi(this.fields),Oi(this.as))}constructor(e,t,n,i){super(e),this.projection=t,this.fields=n,this.as=i}static parseAll(e,t){if(!t.projectionName())return e;for(const n of[[jr,Pr],[qr,Lr]]){const i=n.map((e=>{const n=bP(t.encoding[e]);return XT(n)?n.field:QT(n)?{expr:`${n.datum}`}:iP(n)?{expr:`${n.value}`}:void 0})),r=n[0]===qr?"2":"";(i[0]||i[1])&&(e=new VH(e,t.projectionName(),i,[t.getName(`x${r}`),t.getName(`y${r}`)]))}return e}dependentFields(){return new Set(this.fields.filter(i))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Ti(this.fields)} ${Ti(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class YH extends vq{clone(){return new YH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:t=0,stop:n,step:i}=e;return{signal:`sequence(${[t,n,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,t){return new YH(e,t)}static makeFromEncoding(e,t){const n=t.encoding,i=n.x,r=n.y;if(XT(i)&&XT(r)){const o=i.impute?i:r.impute?r:void 0;if(void 0===o)return;const a=i.impute?r:r.impute?i:void 0,{method:s,value:l,frame:u,keyvals:c}=o.impute,f=VP(t.mark,n);return new YH(e,{impute:o.field,key:a.field,...s?{method:s}:{},...void 0!==l?{value:l}:{},...u?{frame:u}:{},...void 0!==c?{keyvals:c}:{},...f.length?{groupby:f}:{}})}return null}hash(){return`Impute ${Ti(this.transform)}`}assemble(){const{impute:e,key:t,keyvals:n,method:i,groupby:r,value:o,frame:a=[null,null]}=this.transform,s={type:"impute",field:e,key:t,...n?{keyvals:(l=n,$r(l,"stop")?this.processSequence(n):n)}:{},method:"value",...r?{groupby:r}:{},value:i&&"value"!==i?null:o};var l;if(i&&"value"!==i){return[s,{type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:a,ignorePeers:!1,...r?{groupby:r}:{}},{type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e}]}return[s]}}class XH extends vq{clone(){return new XH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??t.on,n[1]??t.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${Ti(this.transform)}`}assemble(){const{loess:e,on:t,...n}=this.transform;return{type:"loess",x:t,y:e,...n}}}class JH extends vq{clone(){return new JH(null,Oi(this.transform),this.secondary)}constructor(e,t,n){super(e),this.transform=t,this.secondary=n}static make(e,t,n,i){const r=t.component.data.sources,{from:o}=n;let a=null;if(function(e){return $r(e,"data")}(o)){let e=cG(o.data,r);e||(e=new EW(o.data),r.push(e));const n=t.getName(`lookup_${i}`);a=new bq(e,n,mq.Lookup,t.component.data.outputNodeRefCounts),t.component.data.outputNodes[n]=a}else if(function(e){return $r(e,"param")}(o)){const e=o.param;let i;n={as:e,...n};try{i=t.getSelectionComponent(tr(e),e)}catch(s){throw new Error(`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`)}if(a=i.materialized,!a)throw new Error(function(e){return`Cannot define and lookup the "${e}" selection in the same view. Try moving the lookup into a second, layered view?`}(e))}return new JH(e,n,a.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?c(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${Ti({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e={values:this.transform.from.fields,...this.transform.as?{as:c(this.transform.as)}:{}};else{let t=this.transform.as;i(t)||(gR('If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.'),t="_lookup"),e={as:[t]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...e,...this.transform.default?{default:this.transform.default}:{}}}}class QH extends vq{clone(){return new QH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"prob",n[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${Ti(this.transform)}`}assemble(){const{quantile:e,...t}=this.transform;return{type:"quantile",field:e,...t}}}class KH extends vq{clone(){return new KH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??t.on,n[1]??t.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${Ti(this.transform)}`}assemble(){const{regression:e,on:t,...n}=this.transform;return{type:"regression",x:t,y:e,...n}}}class ZH extends vq{clone(){return new ZH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=Wi((this.transform.groupby??[]).concat(e),(e=>e))}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${Ti(this.transform)}`}assemble(){const{pivot:e,value:t,groupby:n,limit:i,op:r}=this.transform;return{type:"pivot",field:e,value:t,...void 0!==i?{limit:i}:{},...void 0!==r?{op:r}:{},...void 0!==n?{groupby:n}:{}}}}class eG extends vq{clone(){return new eG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Ti(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function tG(e){let t=0;return function n(i,r){if(i instanceof EW&&!i.isGenerator&&!lq(i.data)){e.push(r);r={name:null,source:r.name,transform:[]}}if(i instanceof $W&&(i.parent instanceof EW&&!r.source?(r.format={...r.format,parse:i.assembleFormatParse()},r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof xW)return r.name||(r.name="data_"+t++),!r.source||r.transform.length>0?(e.push(r),i.data=r.name):i.data=r.source,void e.push(...i.assemble());if((i instanceof AW||i instanceof SW||i instanceof VW||i instanceof aI||i instanceof wI||i instanceof VH||i instanceof bW||i instanceof JH||i instanceof JW||i instanceof GW||i instanceof HH||i instanceof WH||i instanceof UH||i instanceof XH||i instanceof QH||i instanceof KH||i instanceof DW||i instanceof eG||i instanceof ZH||i instanceof IH)&&r.transform.push(i.assemble()),(i instanceof yW||i instanceof _q||i instanceof YH||i instanceof XW||i instanceof GH)&&r.transform.push(...i.assemble()),i instanceof bq)if(r.source&&0===r.transform.length)i.setSource(r.source);else if(i.parent instanceof bq)i.setSource(r.name);else if(r.name||(r.name="data_"+t++),i.setSource(r.name),1===i.numChildren()){e.push(r);r={name:null,source:r.name,transform:[]}}switch(i.numChildren()){case 0:i instanceof bq&&(!r.source||r.transform.length>0)&&e.push(r);break;case 1:n(i.children[0],r);break;default:{r.name||(r.name="data_"+t++);let o=r.name;!r.source||r.transform.length>0?e.push(r):o=r.source;for(const e of i.children){n(e,{name:null,source:o,transform:[]})}break}}}}function nG(e,t){var n;const{facet:i,config:r,child:o,component:a}=e;if(e.channelHasField(t)){const s=i[t],l=$I("title",null,r,t);let c=pP(s,r,{allowDisabling:!0,includeDefault:void 0===l||!!l});o.component.layoutHeaders[t].title&&(c=u(c)?c.join(", "):c,c+=` / ${o.component.layoutHeaders[t].title}`,o.component.layoutHeaders[t].title=null);const f=$I("labelOrient",s.header,r,t),d=null!==s.header&&hr(null==(n=s.header)?void 0:n.labels,r.header.labels,!0),h=ji(["bottom","right"],f)?"footer":"header";a.layoutHeaders[t]={title:null!==s.header?c:null,facetFieldDef:s,[h]:"facet"===t?[]:[iG(e,t,d)]}}}function iG(e,t,n){const i="row"===t?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):void 0,axes:[]}}function rG(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:r,resolve:o}=e.component;if(o.axis[t]=HI(o,t),"shared"===o.axis[t]){const o="x"===t?"column":"row",a=r[o];for(const r of n.component.axes[t]){const t="top"===(i=r.get("orient"))||"left"===i||Xa(i)?"header":"footer";a[t]??(a[t]=[iG(e,o,!1)]);const n=fI(r,"main",e.config,{header:!0});n&&a[t][0].axes.push(n),r.mainExtracted=!0}}}var i}function oG(e){for(const t of e.children)t.parseLayoutSize()}function aG(e,t){const n=UI(t),i=sa(n),r=e.component.resolve,o=e.component.layoutSize;let a;for(const s of e.children){const t=s.component.layoutSize.getWithExplicit(n),o=r.scale[i]??WI(i,e);if("independent"===o&&"step"===t.value){a=void 0;break}if(a){if("independent"===o&&a.value!==t.value){a=void 0;break}a=aq(a,t,n,"")}else a=t}if(a){for(const i of e.children)e.renameSignal(i.getName(n),e.getName(t)),i.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(t,a)}else o.setWithExplicit(t,{explicit:!1,value:void 0})}function sG(e,t){const n="width"===t?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const e=r.get("type"),n=r.get("range");if(wB(e)){const e=jj(i.view,t);return Ja(n)||Nj(e)?"step":e}return Tj(i.view,t)}if(e.hasProjection||"arc"===e.mark)return Tj(i.view,t);{const e=jj(i.view,t);return Nj(e)?e.step:e}}function lG(e,t,n){return uP(t,{suffix:`by_${uP(e)}`,...n})}class uG extends qH{constructor(e,t,n,i){super(e,"facet",t,n,i,e.resolve),this.child=NG(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!TT(e))return{facet:this.initFacetFieldDef(e,"facet")};const t=Qi(e),n={};for(const i of t){if(![Dr,Ar].includes(i)){gR(eR(i,"facet"));break}const t=e[i];if(void 0===t.field){gR(ZN(t,i));break}n[i]=this.initFacetFieldDef(t,i)}return n}initFacetFieldDef(e,t){const n=_P(e,t);return n.header?n.header=Ga(n.header):null===n.header&&(n.header=null),n}channelHasField(e){return $r(this.facet,e)}fieldDef(e){return this.facet[e]}parseData(){this.component.data=fG(this),this.child.parseData()}parseLayoutSize(){oG(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection,Object.values(this.component.selection).some((e=>nI(e)))&&mR(VN)}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(e){for(const t of vo)nG(e,t);rG(e,"x"),rG(e,"y")}(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){const e={};for(const t of vo)for(const n of SI){const i=this.component.layoutHeaders[t],r=i[n],{facetFieldDef:o}=i;if(o){const n=$I("titleOrient",o.header,this.config,t);if(["right","bottom"].includes(n)){const i=kI(t,n);e.titleAnchor??(e.titleAnchor={}),e.titleAnchor[i]="end"}}if(null==r?void 0:r[0]){const r="row"===t?"height":"width",o="header"===n?"headerBand":"footerBand";"facet"===t||this.child.component.layoutSize.get(r)||(e[o]??(e[o]={}),e[o][t]=.5),i.title&&(e.offset??(e.offset={}),e.offset["row"===t?"rowTitle":"columnTitle"]=10)}}return e}assembleDefaultLayout(){const{column:e,row:t}=this.facet,n=e?this.columnDistinctSignal():t?1:void 0;let i="all";return(t||"independent"!==this.component.resolve.scale.x)&&(e||"independent"!==this.component.resolve.scale.y)||(i="none"),{...this.getHeaderLayoutMixins(),...n?{columns:n}:{},bounds:"full",align:i}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof uG)){return{signal:`length(data('${this.getName("column_domain")}'))`}}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof uG?{...this.channelHasField("column")?{encode:{update:{columns:{field:uP(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(e)}:super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],t=[],n=[];if(this.child instanceof uG){if(this.child.channelHasField("column")){const i=uP(this.child.facet.column);e.push(i),t.push("distinct"),n.push(`distinct_${i}`)}}else for(const i of ia){const r=this.child.component.scales[i];if(r&&!r.merged){const o=r.get("type"),a=r.get("range");if(wB(o)&&Ja(a)){const r=hH(pH(this.child,i));r?(e.push(r),t.push("distinct"),n.push(`distinct_${r}`)):gR(qN(i))}}}return{fields:e,ops:t,as:n}}assembleFacet(){const{name:e,data:t}=this.component.data.facetRoot,{row:n,column:i}=this.facet,{fields:r,ops:o,as:a}=this.getCardinalityAggregateForChild(),s=[];for(const c of vo){const e=this.facet[c];if(e){s.push(uP(e));const{bin:t,sort:l}=e;if(La(t)&&s.push(uP(e,{binSuffix:"end"})),RT(l)){const{field:t,op:s=zT}=l,u=lG(e,l);n&&i?(r.push(u),o.push("max"),a.push(u)):(r.push(t),o.push(s),a.push(u))}else if(u(l)){const t=_I(e,c);r.push(t),o.push("max"),a.push(t)}}}const l=!!n&&!!i;return{name:e,data:t,groupby:s,...l||r.length>0?{aggregate:{...l?{cross:l}:{},...r.length?{fields:r,ops:o,as:a}:{}}}:{}}}facetSortFields(e){const{facet:t}=this,n=t[e];return n?RT(n.sort)?[lG(n,n.sort,{expr:"datum"})]:u(n.sort)?[_I(n,e,{expr:"datum"})]:[uP(n,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:t}=this,n=t[e];if(n){const{sort:e}=n;return[(RT(e)?e.order:!u(e)&&e)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:t,config:n}=this;if(t.facet)return OI(t.facet,"facet",n);const i={row:["top","bottom"],column:["left","right"]};for(const r of AI)if(t[r]){const o=$I("labelOrient",null==(e=t[r])?void 0:e.header,n,r);if(i[r].includes(o))return OI(t[r],r,n)}}assembleMarks(){const{child:e}=this,t=function(e){const t=[],n=tG(t);for(const i of e.children)n(i,{source:e.name,name:null,transform:[]});return t}(this.component.data.facetRoot),n=e.assembleGroupEncodeEntry(!1),i=this.assembleLabelTitle()||e.assembleTitle(),r=e.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...i?{title:i}:{},...r?{style:r}:{},from:{facet:this.assembleFacet()},sort:{field:vo.map((e=>this.facetSortFields(e))).flat(),order:vo.map((e=>this.facetSortOrder(e))).flat()},...t.length>0?{data:t}:{},...n?{encode:{update:n}}:{},...e.assembleGroup(Wq(this,[]))}]}getMapping(){return this.facet}}function cG(e,t){var n,i,r,o;for(const a of t){const t=a.data;if(e.name&&a.hasName()&&e.name!==a.dataName)continue;const s=null==(n=e.format)?void 0:n.mesh,l=null==(i=t.format)?void 0:i.feature;if(s&&l)continue;const u=null==(r=e.format)?void 0:r.feature;if((u||l)&&u!==l)continue;const c=null==(o=t.format)?void 0:o.mesh;if(!s&&!c||s===c)if(uq(e)&&uq(t)){if(_r(e.values,t.values))return a}else if(lq(e)&&lq(t)){if(e.url===t.url)return a}else if(cq(e)&&e.name===a.dataName)return a}return null}function fG(e){var t;let n=function(e,t){if(e.data||!e.parent){if(null===e.data){const e=new EW({values:[]});return t.push(e),e}const n=cG(e.data,t);if(n)return fq(e.data)||(n.data.format=Ui({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const n=new EW(e.data);return t.push(n),n}}return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}(e,e.component.data.sources);const{outputNodes:i,outputNodeRefCounts:r}=e.component.data,o=e.data,a=!(o&&(fq(o)||lq(o)||uq(o)))&&e.parent?e.parent.component.data.ancestorParse.clone():new sq;fq(o)?(dq(o)?n=new SW(n,o.sequence):pq(o)&&(n=new AW(n,o.graticule)),a.parseNothing=!0):null===(null==(t=null==o?void 0:o.format)?void 0:t.parse)&&(a.parseNothing=!0),n=$W.makeExplicit(n,e,a)??n,n=new DW(n);const s=e.parent&&jH(e.parent);(BH(e)||TH(e))&&s&&(n=yW.makeFromEncoding(n,e)??n),e.transforms.length>0&&(n=function(e,t,n){let i=0;for(const r of t.transforms){let o,a;if(NL(r))a=e=new wI(e,r),o="derived";else if(kL(r)){const i=_W(r);a=e=$W.makeWithAncestors(e,{},i,n)??e,e=new aI(e,t,r.filter)}else if(RL(r))a=e=yW.makeFromTransform(e,r,t),o="number";else if(TL(r))o="date",void 0===n.getWithExplicit(r.field).value&&(e=new $W(e,{[r.field]:o}),n.set(r.field,o,!1)),a=e=_q.makeFromTransform(e,r);else if(PL(r))a=e=bW.makeFromTransform(e,r),o="number",eI(t)&&(e=new DW(e));else if($L(r))a=e=JH.make(e,t,r,i++),o="derived";else if(ML(r))a=e=new JW(e,r),o="number";else if(zL(r))a=e=new GW(e,r),o="number";else if(jL(r))a=e=XW.makeFromTransform(e,r),o="derived";else if(LL(r))a=e=new HH(e,r),o="derived";else if(qL(r))a=e=new IH(e,r),o="derived";else if(OL(r))a=e=new WH(e,r),o="derived";else if(DL(r))a=e=new ZH(e,r),o="derived";else if(CL(r))e=new eG(e,r);else if(BL(r))a=e=YH.makeFromTransform(e,r),o="derived";else if(AL(r))a=e=new UH(e,r),o="derived";else if(SL(r))a=e=new QH(e,r),o="derived";else if(EL(r))a=e=new KH(e,r),o="derived";else{if(!FL(r)){gR(`Ignoring an invalid transform: ${kr(r)}.`);continue}a=e=new XH(e,r),o="derived"}if(a&&void 0!==o)for(const e of a.producedFields()??[])n.set(e,o,!1)}return e}(n,e,a));const l=function(e){const t={};if(BH(e)&&e.component.selection)for(const n of Qi(e.component.selection)){const i=e.component.selection[n];for(const e of i.project.items)!e.channel&&dr(e.field)>1&&(t[e.field]="flatten")}return t}(e),u=kW(e);n=$W.makeWithAncestors(n,{},{...l,...u},a)??n,BH(e)&&(n=GH.parseAll(n,e),n=VH.parseAll(n,e)),(BH(e)||TH(e))&&(s||(n=yW.makeFromEncoding(n,e)??n),n=_q.makeFromEncoding(n,e)??n,n=wI.parseAllForSortIndex(n,e));const c=n=dG(mq.Raw,e,n);if(BH(e)){const t=bW.makeFromEncoding(n,e);t&&(n=t,eI(e)&&(n=new DW(n))),n=YH.makeFromEncoding(n,e)??n,n=XW.makeFromEncoding(n,e)??n}let f,d;if(BH(e)){const{markDef:t,mark:i,config:r}=e,o=us("invalid",t,r),{marks:a,scales:s}=d=yq({invalid:o,isPath:QB(i)});a!==s&&"include-invalid-values"===s&&(f=n=dG(mq.PreFilterInvalid,e,n)),"exclude-invalid-values"===a&&(n=VW.make(n,e,d)??n)}const h=n=dG(mq.Main,e,n);let p;if(BH(e)&&d){const{marks:t,scales:i}=d;"include-invalid-values"===t&&"exclude-invalid-values"===i&&(n=VW.make(n,e,d)??n,p=n=dG(mq.PostFilterInvalid,e,n))}BH(e)&&function(e,t){for(const[n,i]of Zi(e.component.selection??{})){const r=e.getName(`lookup_${n}`);e.component.data.outputNodes[r]=i.materialized=new bq(new aI(t,e,{param:n}),r,mq.Lookup,e.component.data.outputNodeRefCounts)}}(e,h);let m=null;if(TH(e)){const t=e.getName("facet");n=function(e,t){const{row:n,column:i}=t;if(n&&i){let t=null;for(const r of[n,i])if(RT(r.sort)){const{field:n,op:i=zT}=r.sort;e=t=new GW(e,{joinaggregate:[{op:i,field:n,as:lG(r,r.sort,{forAs:!0})}],groupby:[uP(r)]})}return t}return null}(n,e.facet)??n,m=new xW(n,e,t,h.getSource()),i[t]=m}return{...e.component.data,outputNodes:i,outputNodeRefCounts:r,raw:c,main:h,facetRoot:m,ancestorParse:a,preFilterInvalid:f,postFilterInvalid:p}}function dG(e,t,n){const{outputNodes:i,outputNodeRefCounts:r}=t.component.data,o=t.getDataName(e),a=new bq(n,o,e,r);return i[o]=a,a}class hG extends LH{constructor(e,t,n,i){var r,o,a,s;super(e,"concat",t,n,i,e.resolve),"shared"!==(null==(o=null==(r=e.resolve)?void 0:r.axis)?void 0:o.x)&&"shared"!==(null==(s=null==(a=e.resolve)?void 0:a.axis)?void 0:s.y)||gR("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(e).map(((e,t)=>NG(e,this,this.getName(`concat_${t}`),void 0,i)))}parseData(){this.component.data=fG(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const t of Qi(e.component.selection))this.component.selection[t]=e.component.selection[t]}Object.values(this.component.selection).some((e=>nI(e)))&&mR(VN)}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}getChildren(e){return Mj(e)?e.vconcat:zj(e)?e.hconcat:e.concat}parseLayoutSize(){!function(e){oG(e);const t=1===e.layout.columns?"width":"childWidth",n=void 0===e.layout.columns?"height":"childHeight";aG(e,t),aG(e,n)}(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,t)=>t.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){return this.children.forEach((e=>e.assembleSignals())),[]}assembleLayoutSignals(){const e=PI(this);for(const t of this.children)e.push(...t.assembleLayoutSignals());return e}assembleSelectionData(e){return this.children.reduce(((e,t)=>t.assembleSelectionData(e)),e)}assembleMarks(){return this.children.map((e=>{const t=e.assembleTitle(),n=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return{type:"group",name:e.getName("group"),...t?{title:t}:{},...n?{style:n}:{},...i?{encode:{update:i}}:{},...e.assembleGroup()}}))}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return{...null!=e?{columns:e}:{},bounds:"full",align:"each"}}}const pG={disable:1,gridScale:1,scale:1,...OP,labelExpr:1,encode:1},mG=Qi(pG);class gG extends tq{constructor(e={},t={},n=!1){super(),this.explicit=e,this.implicit=t,this.mainExtracted=n}clone(){return new gG(Oi(this.explicit),Oi(this.implicit),this.mainExtracted)}hasAxisPart(e){return"axis"===e||("grid"===e||"title"===e?!!this.get(e):!(!1===(t=this.get(e))||null===t));var t}hasOrientSignalRef(){return Xa(this.explicit.orient)}}const yG={bottom:"top",top:"bottom",left:"right",right:"left"};function vG(e,t){if(!e)return t.map((e=>e.clone()));{if(e.length!==t.length)return;const n=e.length;for(let i=0;i<n;i++){const n=e[i],r=t[i];if(!!n!=!!r)return;if(n&&r){const t=n.getWithExplicit("orient"),o=r.getWithExplicit("orient");if(t.explicit&&o.explicit&&t.value!==o.value)return;e[i]=bG(n,r)}}}return e}function bG(e,t){for(const n of mG){const i=aq(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",((e,t)=>{switch(n){case"title":return gs(e,t);case"gridScale":return{explicit:e.explicit,value:hr(e.value,t.value)}}return oq(e,t,n,"axis")}));e.setWithExplicit(n,i)}return e}function xG(e,t,n,i,r){if("disable"===t)return void 0!==n;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(Xa(n.labelAngle)?n.labelAngle:br(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===xI(i,r))return!0}return e===n[t]}const wG=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function _G(e,t){var n,i;let r=t.axis(e);const o=new gG,a=bP(t.encoding[e]),{mark:s,config:l}=t,u=(null==r?void 0:r.orient)||(null==(n=l["x"===e?"axisX":"axisY"])?void 0:n.orient)||(null==(i=l.axis)?void 0:i.orient)||function(e){return"x"===e?"bottom":"left"}(e),c=t.getScaleComponent(e).get("type"),f=function(e,t,n,i){const r="band"===t?["axisDiscrete","axisBand"]:"point"===t?["axisDiscrete","axisPoint"]:yB(t)?["axisQuantitative"]:"time"===t||"utc"===t?["axisTemporal"]:[],o="x"===e?"axisX":"axisY",a=Xa(n)?"axisOrient":`axis${rr(n)}`,s=[...r,...r.map((e=>o+e.substr(4)))],l=["axis",a,o];return{vlOnlyAxisConfig:hI(s,i,e,n),vgAxisConfig:hI(l,i,e,n),axisConfigStyle:pI([...l,...s],i)}}(e,c,u,t.config),d=void 0!==r?!r:mI("disable",l.style,null==r?void 0:r.style,f).configValue;if(o.set("disable",d,void 0!==r),d)return o;r=r||{};const h=function(e,t,n,i,r){const o=null==t?void 0:t.labelAngle;if(void 0!==o)return Xa(o)?o:br(o);{const{configValue:o}=mI("labelAngle",i,null==t?void 0:t.style,r);return void 0!==o?br(o):n!==Er||!ji([tB,ZR],e.type)||XT(e)&&e.timeUnit?void 0:270}}(a,r,e,l.style,f),p=ST(r.formatType,a,c),m=AT(a,a.type,r.format,r.formatType,l,!0),g={fieldOrDatumDef:a,axis:r,channel:e,model:t,scaleType:c,orient:u,labelAngle:h,format:m,formatType:p,mark:s,config:l};for(const b of mG){const n=b in gI?gI[b](g):RP(b)?r[b]:void 0,i=void 0!==n,a=xG(n,b,r,t,e);if(i&&a)o.set(b,n,a);else{const{configValue:e,configFrom:t}=RP(b)&&"values"!==b?mI(b,l.style,r.style,f):{},s=void 0!==e;i&&!s?o.set(b,n,a):("vgAxisConfig"!==t||wG.has(b)&&s||CP(e)||Xa(e))&&o.set(b,e,!1)}}const y=r.encoding??{},v=MP.reduce(((n,i)=>{if(!o.hasAxisPart(i))return n;const r=II(y[i]??{},t),a="labels"===i?function(e,t,n){const{encoding:i,config:r}=e,o=bP(i[t])??bP(i[No(t)]),a=e.axis(t)||{},{format:s,formatType:l}=a;if(wT(l))return{text:DT({fieldOrDatumDef:o,field:"datum.value",format:s,formatType:l,config:r}),...n};if(void 0===s&&void 0===l&&r.customFormatTypes){if("quantitative"===JT(o)){if(oP(o)&&"normalize"===o.stack&&r.normalizedNumberFormatType)return{text:DT({fieldOrDatumDef:o,field:"datum.value",format:r.normalizedNumberFormat,formatType:r.normalizedNumberFormatType,config:r}),...n};if(r.numberFormatType)return{text:DT({fieldOrDatumDef:o,field:"datum.value",format:r.numberFormat,formatType:r.numberFormatType,config:r}),...n}}if("temporal"===JT(o)&&r.timeFormatType&&XT(o)&&!o.timeUnit)return{text:DT({fieldOrDatumDef:o,field:"datum.value",format:r.timeFormat,formatType:r.timeFormatType,config:r}),...n}}return n}(t,e,r):r;return void 0===a||Ji(a)||(n[i]={update:a}),n}),{});return Ji(v)||o.set("encode",v,!!r.encoding||void 0!==r.labelAngle),o}function kG(e,t){const{config:n}=e;return{...EU(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...pU("x",e,{defaultPos:"mid"}),...pU("y",e,{defaultPos:"mid"}),...cU("size",e),...cU("angle",e),...$G(e,n,t)}}function $G(e,t,n){return n?{shape:{value:n}}:cU("shape",e)}function DG(e,t,n){if(void 0===us("align",e,n))return"center"}function AG(e,t,n){if(void 0===us("baseline",e,n))return"middle"}const SG={arc:{vgMark:"arc",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...pU("x",e,{defaultPos:"mid"}),...pU("y",e,{defaultPos:"mid"}),...kU(e,"radius"),...kU(e,"theta")})},area:{vgMark:"area",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...xU("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"horizontal"===e.markDef.orient}),...xU("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"vertical"===e.markDef.orient}),...MU(e)})},bar:{vgMark:"rect",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...kU(e,"x"),...kU(e,"y")})},circle:{vgMark:"symbol",encodeEntry:e=>kG(e,"circle")},geoshape:{vgMark:"shape",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[{type:"geoshape",projection:e.projectionName(),...n&&XT(n)&&n.type===nB?{field:uP(n,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...kU(e,"x"),...kU(e,"y"),...nU(e,"url")})},line:{vgMark:"line",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...pU("x",e,{defaultPos:"mid"}),...pU("y",e,{defaultPos:"mid"}),...cU("size",e,{vgChannel:"strokeWidth"}),...MU(e)})},point:{vgMark:"symbol",encodeEntry:e=>kG(e)},rect:{vgMark:"rect",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...kU(e,"x"),...kU(e,"y")})},rule:{vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return e.encoding.x||e.encoding.y||e.encoding.latitude||e.encoding.longitude?{...EU(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...xU("x",e,{defaultPos:"horizontal"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"vertical"!==n}),...xU("y",e,{defaultPos:"vertical"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"horizontal"!==n}),...cU("size",e,{vgChannel:"strokeWidth"})}:{}}},square:{vgMark:"symbol",encodeEntry:e=>kG(e,"square")},text:{vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return{...EU(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...pU("x",e,{defaultPos:"mid"}),...pU("y",e,{defaultPos:"mid"}),...nU(e),...cU("size",e,{vgChannel:"fontSize"}),...cU("angle",e),...zU("align",DG(e.markDef,n,t)),...zU("baseline",AG(e.markDef,n,t)),...pU("radius",e,{defaultPos:null}),...pU("theta",e,{defaultPos:null})}}},tick:{vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,i=n.orient,r="horizontal"===i?"x":"y",o="horizontal"===i?"y":"x",a="horizontal"===i?"height":"width";return{...EU(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...kU(e,r),...pU(o,e,{defaultPos:"mid",vgChannel:"y"===o?"yc":"xc"}),[a]:rs(us("thickness",n,t))}}},trail:{vgMark:"trail",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...pU("x",e,{defaultPos:"mid"}),...pU("y",e,{defaultPos:"mid"}),...cU("size",e),...MU(e)})}};function EG(e){if(ji([qB,PB,VB],e.mark)){const t=VP(e.mark,e.encoding);if(t.length>0)return function(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:FG+e.requestDataName(mq.Main),data:e.requestDataName(mq.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:MG(e,{fromPrefix:FG})}]}(e,t)}else if(e.mark===jB){const t=es.some((t=>us(t,e.markDef,e.config)));if(e.stack&&!e.fieldDef("size")&&t)return function(e){var t;const[n]=MG(e,{fromPrefix:CG}),i=e.scaleName(e.stack.fieldChannel),r=(t={})=>e.vgField(e.stack.fieldChannel,t),o=(e,t)=>`${e}(${[r({prefix:"min",suffix:"start",expr:t}),r({prefix:"max",suffix:"start",expr:t}),r({prefix:"min",suffix:"end",expr:t}),r({prefix:"max",suffix:"end",expr:t})].map((e=>`scale('${i}',${e})`)).join(",")})`;let a,s;"x"===e.stack.fieldChannel?(a={...Ri(n.encode.update,["y","yc","y2","height",...es]),x:{signal:o("min","datum")},x2:{signal:o("max","datum")},clip:{value:!0}},s={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update={...Bi(n.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(a={...Ri(n.encode.update,["x","xc","x2","width"]),y:{signal:o("min","datum")},y2:{signal:o("max","datum")},clip:{value:!0}},s={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update={...Bi(n.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const u of es){const t=cs(u,e.markDef,e.config);n.encode.update[u]?(a[u]=n.encode.update[u],delete n.encode.update[u]):t&&(a[u]=rs(t)),t&&(n.encode.update[u]={value:0})}const l=[];if((null==(t=e.stack.groupbyChannels)?void 0:t.length)>0)for(const u of e.stack.groupbyChannels){const t=e.fieldDef(u),n=uP(t);n&&l.push(n),((null==t?void 0:t.bin)||(null==t?void 0:t.timeUnit))&&l.push(uP(t,{binSuffix:"end"}))}a=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce(((t,i)=>{if(n.encode.update[i])return{...t,[i]:n.encode.update[i]};{const n=cs(i,e.markDef,e.config);return void 0!==n?{...t,[i]:rs(n)}:t}}),a),a.stroke&&(a.strokeForeground={value:!0},a.strokeOffset={value:0});return[{type:"group",from:{facet:{data:e.requestDataName(mq.Main),name:CG+e.requestDataName(mq.Main),groupby:l,aggregate:{fields:[r({suffix:"start"}),r({suffix:"start"}),r({suffix:"end"}),r({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:a},marks:[{type:"group",encode:{update:s},marks:[n]}]}]}(e)}return MG(e)}const FG="faceted_path_";const CG="stack_group_";function MG(e,t={fromPrefix:""}){const{mark:n,markDef:i,encoding:r,config:o}=e,a=hr(i.clip,function(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return!(!(null==t?void 0:t.get("selectionExtent"))&&!(null==n?void 0:n.get("selectionExtent")))||void 0}(e),function(e){const t=e.component.projection;return!(!t||t.isFit)||void 0}(e)),s=ls(i),l=r.key,c=function(e){const{encoding:t,stack:n,mark:i,markDef:r,config:o}=e,a=t.order;if(!(!u(a)&&iP(a)&&Pi(a.value)||!a&&Pi(us("order",r,o)))){if((u(a)||XT(a))&&!n)return hs(a,{expr:"datum"});if(QB(i)){const e="horizontal"===r.orient?"y":"x";if(XT(t[e]))return{field:e}}}}(e),f=function(e){if(!e.component.selection)return null;const t=Qi(e.component.selection).length;let n=t,i=e.parent;for(;i&&0===n;)n=Qi(i.component.selection).length,i=i.parent;return n?{interactive:t>0||"geoshape"===e.mark||!!e.encoding.tooltip||!!e.markDef.tooltip}:null}(e),d=us("aria",i,o),h=SG[n].postEncodingTransform?SG[n].postEncodingTransform(e):null;return[{name:e.getName("marks"),type:SG[n].vgMark,...a?{clip:a}:{},...s?{style:s}:{},...l?{key:l.field}:{},...c?{sort:c}:{},...f||{},...!1===d?{aria:d}:{},from:{data:t.fromPrefix+e.requestDataName(mq.Main)},encode:{update:SG[n].encodeEntry(e)},...h?{transform:h}:{}}]}class zG extends qH{constructor(e,t,n,i={},r){super(e,"unit",t,n,r,void 0,Rj(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[],this.correctDataNames=e=>{var t,n,i;return(null==(t=e.from)?void 0:t.data)&&(e.from.data=this.lookupDataSource(e.from.data),"time"in this.encoding&&(e.from.data=e.from.data+Mq)),(null==(i=null==(n=e.from)?void 0:n.facet)?void 0:i.data)&&(e.from.facet.data=this.lookupDataSource(e.from.facet.data)),e};const o=eT(e.mark)?{...e.mark}:{type:e.mark},a=o.type;void 0===o.filled&&(o.filled=function(e,t,{graticule:n}){if(n)return!1;const i=cs("filled",e,t),r=e.type;return hr(i,r!==UB&&r!==qB&&r!==WB)}(o,r,{graticule:e.data&&pq(e.data)}));const s=this.encoding=function(e,t,n,i){const r={};for(const s of Qi(e))Fo(s)||gR(`${o=s}-encoding is dropped as ${o} is not a valid encoding channel.`);var o,a;for(let s of jo){if(!e[s])continue;const o=e[s];if(ua(s)){const e=Po(s),t=r[e];if(XT(t)&&("quantitative"===(a=t.type)||"temporal"===a)&&XT(o)&&!t.timeUnit){gR(JN(e));continue}}if("angle"!==s||"arc"!==t||e.theta||(gR("Arc marks uses theta channel rather than angle, replacing angle with theta."),s=Br),WP(e,s,t)){if(s===Vr&&"line"===t){const t=vP(e[s]);if(null==t?void 0:t.aggregate){gR("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}}if(s===Ir&&(n?"fill"in e:"stroke"in e))gR(KN("encoding",{fill:"fill"in e,stroke:"stroke"in e}));else if(s===no||s===to&&!u(o)&&!iP(o)||s===ro&&u(o)){if(o){if(s===to){const t=e[s];if(HT(t)){r[s]=t;continue}}r[s]=c(o).reduce(((e,t)=>(XT(t)?e.push(_P(t,s)):gR(ZN(t,s)),e)),[])}}else{if(s===ro&&null===o)r[s]=null;else if(!(XT(o)||QT(o)||iP(o)||GT(o)||Xa(o))){gR(ZN(o,s));continue}r[s]=xP(o,s,i)}}else gR(eR(s,t))}return r}(e.encoding||{},a,o.filled,r);this.markDef=sL(o,s,r),this.size=function({encoding:e,size:t}){for(const n of ia){const i=Ro(n);Nj(t[i])&&KT(e[n])&&(delete t[i],gR(lR(i)))}return t}({encoding:s,size:Rj(e)?{...i,...e.width?{width:e.width}:{},...e.height?{height:e.height}:{}}:i}),this.stack=aL(this.markDef,s),this.specifiedScales=this.initScales(a,s),this.specifiedAxes=this.initAxes(s),this.specifiedLegends=this.initLegends(s),this.specifiedProjection=e.projection,this.selection=(e.params??[]).filter((e=>Ej(e)))}get hasProjection(){const{encoding:e}=this,t=this.mark===JB,n=e&&po.some((t=>tP(e[t])));return t||n}scaleDomain(e){const t=this.specifiedScales[e];return t?t.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,t){return ka.reduce(((e,n)=>{const i=bP(t[n]);return i&&(e[n]=this.initScale(i.scale??{})),e}),{})}initScale(e){const{domain:t,range:n}=e,i=Ga(e);return u(t)&&(i.domain=t.map(ns)),u(n)&&(i.range=n.map(ns)),i}initAxes(e){return ia.reduce(((t,n)=>{const i=e[n];if(tP(i)||n===Er&&tP(e.x2)||n===Fr&&tP(e.y2)){const e=tP(i)?i.axis:void 0;t[n]=e?this.initAxis({...e}):e}return t}),{})}initAxis(e){const t=Qi(e),n={};for(const i of t){const t=e[i];n[i]=CP(t)?ts(t):ns(t)}return n}initLegends(e){return wa.reduce(((t,n)=>{const i=bP(e[n]);if(i&&function(e){switch(e){case Ir:case Wr:case Hr:case Vr:case Gr:case Xr:case Kr:case Zr:return!0;case Jr:case Qr:case Yr:case Ur:return!1}}(n)){const e=i.legend;t[n]=e?Ga(e):e}return t}),{})}parseData(){this.component.data=fG(this)}parseLayoutSize(){!function(e){const{size:t,component:n}=e;for(const i of ia){const r=Ro(i);if(t[r]){const e=t[r];n.layoutSize.set(r,Nj(e)?"step":e,!0)}else{const t=sG(e,r);n.layoutSize.set(r,t,!1)}}}(this)}parseSelections(){this.component.selection=function(e,t){const n={},r=e.config.selection;if(!t||!t.length)return n;let o=0;for(const s of t){const t=tr(s.name),l=s.select,u=i(l)?l:l.type,f=a(l)?Oi(l):{type:u},d=r[u];for(const e in d)"fields"!==e&&"encodings"!==e&&("mark"===e&&(f.mark={...d.mark,...f.mark}),void 0!==f[e]&&!0!==f[e]||(f[e]=Oi(d[e]??f[e])));const h=n[t]={...f,name:t,type:u,init:s.value,bind:s.bind,events:i(f.on)?qC(f.on,"scope"):c(Oi(f.on))};if(nI(h)&&(o++,o>1)){delete n[t];continue}const p=Oi(s);for(const n of KU)n.defined(h)&&n.parse&&n.parse(e,h,p)}return o>1&&gR("Multiple timer selections in one unit spec are not supported. Ignoring all but the first."),n}(this,this.selection)}parseMarkGroup(){this.component.mark=EG(this)}parseAxesAndHeaders(){var e;this.component.axes=(e=this,ia.reduce(((t,n)=>(e.component.scales[n]&&(t[n]=[_G(n,e)]),t)),{}))}assembleSelectionTopLevelSignals(e){return function(e,t){let n=!1;for(const i of Ki(e.component.selection??{})){const r=i.name,a=o(r+YU);if(0===t.filter((e=>e.name===r)).length){const e="global"===i.resolve?"union":i.resolve,n="point"===i.type?", true, true)":")";t.push({name:i.name,update:`${QU}(${a}, ${o(e)}${n}`})}n=!0;for(const n of KU)n.defined(i)&&n.topLevelSignals&&(t=n.topLevelSignals(e,i,t))}n&&0===t.filter((e=>"unit"===e.name)).length&&t.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]});return Gq(t)}(this,e)}assembleSignals(){return[...dI(this),...Iq(this,[])]}assembleSelectionData(e){return function(e,t){const n=[],i=[],r=ZU(e,{escape:!1});for(const o of Ki(e.component.selection??{})){const a={name:o.name+YU};if(o.project.hasSelectionId&&(a.transform=[{type:"collect",sort:{field:$j}}]),o.init){const e=o.project.items.map(qq);a.values=o.project.hasSelectionId?o.init.map((e=>({unit:r,[$j]:Uq(e,!1)[0]}))):o.init.map((t=>({unit:r,fields:e,values:Uq(t,!1)})))}if([...n,...t].filter((e=>e.name===o.name+YU)).length||n.push(a),nI(o)&&t.length){const n=e.lookupDataSource(e.getDataName(mq.Main)),r=t.find((e=>e.name===n)),o=r.transform.find((e=>"filter"===e.type&&e.expr.includes("vlSelectionTest")));if(o){r.transform=r.transform.filter((e=>e!==o));const e={name:r.name+Mq,source:r.name,transform:[o]};i.push(e)}}}return n.concat(t,i)}(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return PI(this)}assembleMarks(){let e=this.component.mark??[];return this.parent&&jH(this.parent)||(e=Hq(this,e)),e.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};return void 0!==e?e:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return jP(this.encoding,e)}fieldDef(e){return vP(this.encoding[e])}typedFieldDef(e){const t=this.fieldDef(e);return nP(t)?t:null}}class OG extends LH{constructor(e,t,n,i,r){super(e,"layer",t,n,r,e.resolve,e.view);const o={...i,...e.width?{width:e.width}:{},...e.height?{height:e.height}:{}};this.children=e.layer.map(((e,t)=>{if(Zj(e))return new OG(e,this,this.getName(`layer_${t}`),o,r);if(TP(e))return new zG(e,this,this.getName(`layer_${t}`),o,r);throw new Error(BN(e))}))}parseData(){this.component.data=fG(this);for(const e of this.children)e.parseData()}parseLayoutSize(){var e;oG(e=this),aG(e,"width"),aG(e,"height")}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const t of Qi(e.component.selection))this.component.selection[t]=e.component.selection[t]}Object.values(this.component.selection).some((e=>nI(e)))&&mR(VN)}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){!function(e){const{axes:t,resolve:n}=e.component,i={top:0,bottom:0,right:0,left:0};for(const r of e.children){r.parseAxesAndHeaders();for(const i of Qi(r.component.axes))n.axis[i]=HI(e.component.resolve,i),"shared"===n.axis[i]&&(t[i]=vG(t[i],r.component.axes[i]),t[i]||(n.axis[i]="independent",delete t[i]))}for(const r of ia){for(const o of e.children)if(o.component.axes[r]){if("independent"===n.axis[r]){t[r]=(t[r]??[]).concat(o.component.axes[r]);for(const e of o.component.axes[r]){const{value:t,explicit:n}=e.getWithExplicit("orient");if(!Xa(t)){if(i[t]>0&&!n){const n=yG[t];i[t]>i[n]&&e.set("orient",n,!1)}i[t]++}}}delete o.component.axes[r]}if("independent"===n.axis[r]&&t[r]&&t[r].length>1)for(const[e,n]of(t[r]||[]).entries())e>0&&n.get("grid")&&!n.explicit.grid&&(n.implicit.grid=!1)}}(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,t)=>t.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){return this.children.reduce(((e,t)=>e.concat(t.assembleSignals())),dI(this))}assembleLayoutSignals(){return this.children.reduce(((e,t)=>e.concat(t.assembleLayoutSignals())),PI(this))}assembleSelectionData(e){return this.children.reduce(((e,t)=>t.assembleSelectionData(e)),e)}assembleGroupStyle(){const e=new Set;for(const n of this.children)for(const t of c(n.assembleGroupStyle()))e.add(t);const t=Array.from(e);return t.length>1?t:1===t.length?t[0]:void 0}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const t of this.children)if(e=t.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return function(e,t){for(const n of e.children)BH(n)&&(t=Hq(n,t));return t}(this,this.children.flatMap((e=>e.assembleMarks())))}assembleLegends(){return this.children.reduce(((e,t)=>e.concat(t.assembleLegends())),sW(this))}}function NG(e,t,n,i,r){if(jT(e))return new uG(e,t,n,r);if(Zj(e))return new OG(e,t,n,i,r);if(TP(e))return new zG(e,t,n,i,r);if(function(e){return Mj(e)||zj(e)||Cj(e)}(e))return new hG(e,t,n,r);throw new Error(BN(e))}function RG(e,t={}){var n;t.logger&&(n=t.logger,pR=n),t.fieldTitle&&hP(t.fieldTitle);try{const n=Vj(Ie(t.config,e.config)),r=YL(e,n),o=NG(r,null,"",void 0,n);o.parse(),function(e,t){eH(e.sources);let n=0,i=0;for(let r=0;r<5&&nH(e,t,!0);r++)n++;e.sources.map(QW);for(let r=0;r<5&&nH(e,t,!1);r++)i++;eH(e.sources),5===Math.max(n,i)&&gR("Maximum optimization runs(5) reached.")}(o.component.data,o);const a=function(e,t,n={},i){const r=e.config?Qj(e.config):void 0,o=function(e,t){const n=[],i=tG(n);let r=0;for(const a of e.sources){a.hasName()||(a.dataName="source_"+r++);const e=a.assemble();i(a,e)}for(const a of n)0===a.transform.length&&delete a.transform;let o=0;for(const[a,s]of n.entries())0!==(s.transform??[]).length||s.source||n.splice(o++,0,n.splice(a,1)[0]);for(const a of n)for(const t of a.transform??[])"lookup"===t.type&&(t.from=e.outputNodes[t.from].getSource());for(const a of n)a.name in t&&(a.values=t[a.name]);return n}(e.component.data,n),a=e.assembleSelectionData(o),s=e.assembleProjections(),l=e.assembleTitle(),u=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let f=e.assembleLayoutSignals();f=f.filter((e=>"width"!==e.name&&"height"!==e.name||void 0===e.value||(t[e.name]=+e.value,!1)));const{params:d,...h}=t;return{$schema:"https://vega.github.io/schema/vega/v5.json",...e.description?{description:e.description}:{},...h,...l?{title:l}:{},...u?{style:u}:{},...c?{encode:{update:c}}:{},data:a,...s.length>0?{projections:s}:{},...e.assembleGroup([...f,...e.assembleSelectionTopLevelSignals([]),...Fj(d)]),...r?{config:r}:{},...i?{usermeta:i}:{}}}(o,function(e,t,n,r){const o=r.component.layoutSize.get("width"),a=r.component.layoutSize.get("height");void 0===t?(t={type:"pad"},r.hasAxisOrientSignalRef()&&(t.resize=!0)):i(t)&&(t={type:t});if(o&&a&&(s=t.type,["fit","fit-x","fit-y"].includes(s)))if("step"===o&&"step"===a)gR(LN()),t.type="pad";else if("step"===o||"step"===a){const e="step"===o?"width":"height";gR(LN(sa(e)));const n="width"===e?"height":"width";t.type=function(e){return e?`fit-${sa(e)}`:"fit"}(n)}var s;return{...1===Qi(t).length&&t.type?"pad"===t.type?{}:{autosize:t.type}:{autosize:t},...eq(n,!1),...eq(e,!0)}}(e,r.autosize,n,o),e.datasets,e.usermeta);return{spec:a,normalized:r}}finally{t.logger&&(pR=hR),t.fieldTitle&&hP(fP)}}export{Ni as A,YL as B,br as C,Bi as D,Ri as E,Yi as F,fr as G,cr as H,ur as I,gr as J,Gi as K,Li as L,BB as M,kr as N,rr as O,Wi as P,mr as Q,Ki as R,tr as S,RN as T,Na as U,wa as V,bi as W,dr as a,or as b,sr as c,RG as d,ji as e,_r as f,ir as g,Oi as h,Zi as i,qi as j,Xi as k,ar as l,hr as m,Vi as n,$r as o,Ti as p,yr as q,er as r,Ji as s,Hi as t,vr as u,Pi as v,xr as w,Qi as x,nr as y,Ui as z};
1
+ import{cg as e,fT as t,fU as n,cr as i,fV as r,fW as o,cs as a,cv as s,cu as l,cq as u,fX as c,fY as f,fZ as d,f_ as h,f$ as p,g0 as m,g1 as g,g2 as y,g3 as v,g4 as b,g5 as x,g6 as w,g7 as _,g8 as k,g9 as $,ga as D,gb as A,gc as S,gd as E,ge as F,gf as C,gg as M,gh as z,gi as O,gj as N,gk as R,gl as B,gm as T,gn as P,go as j,aF as L,gp as q,gq as U,gr as I,gs as W,gt as H,gu as G,gv as V,gw as Y,gx as X,cn as J,ch as Q,cm as K,gy as Z,aG as ee,aQ as te,aR as ne,gz as ie,aT as re,aU as oe,aV as ae,gA as se,gB as le,gC as ue,gD as ce,gE as fe,gF as de,gG as he,gH as pe,aO as me,gI as ge,gJ as ye,gK as ve,gL as be,gM as xe,gN as we,gO as _e,gP as ke,gQ as $e,gR as De,gS as Ae,gT as Se,gU as Ee,gV as Fe,gW as Ce,gX as Me,gY as ze,gZ as Oe,g_ as Ne,g$ as Re,h0 as Be,h1 as Te,h2 as Pe,h3 as je,h4 as Le,h5 as qe,h6 as Ue,ct as Ie,h7 as We,h8 as He,h9 as Ge,ha as Ve,hb as Ye,hc as Xe,hd as Je,he as Qe,hf as Ke,hg as Ze,hh as et,hi as tt,hj as nt,hk as it,hl as rt,hm as ot,hn as at,as as st,ho as lt,hp as ut,hq as ct,hr as ft,hs as dt,ht,hu as pt}from"./index-DOJVqE5c.js";import{m as mt,a as gt,d as yt,r as vt,l as bt,i as xt,h as wt,n as _t,c as kt,u as $t,b as Dt,t as At,e as St}from"./time-CRwJjoaW.js";import{n as Et,b as Ft,i as Ct,d as Mt,e as zt,f as Ot,o as Nt,g as Rt,h as Bt,j as Tt,t as Pt,a as jt,k as Lt,m as qt,l as Ut,p as It,q as Wt}from"./linear-CCY-ysXY.js";import{r as Ht}from"./range-CtcPcB_L.js";import{R as Gt,r as Vt,o as Yt,q as Xt,$ as Jt,a0 as Qt,C as Kt,v as Zt,a1 as en,u as tn,a2 as nn,a3 as rn,y as on,z as an,a4 as sn,a5 as ln,A as un,Z as cn,Y as fn,V as dn,_ as hn,w as pn,b as mn,K as gn,a6 as yn,a7 as vn,n as bn,l as xn,d as wn,t as _n,p as kn,D as $n,E as Dn,F as An,G as Sn,I as En,H as Fn,J as Cn,M as Mn,N as zn,L as On,Q as Nn,P as Rn,O as Bn,S as Tn,T as Pn,U as jn,k as Ln,a8 as qn,a9 as Un,W as In,X as Wn}from"./step-xJWGRC3d.js";import{i as Hn,a as Gn}from"./init-DLRA0X12.js";import{I as Vn,o as Yn,i as Xn}from"./ordinal-BcaZTuz9.js";import{c as Jn}from"./colors-bszWmPJw.js";import{d as Qn}from"./arc-B5qYPUYs.js";class Kn{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const t=this._partials;let n=0;for(let i=0;i<this._n&&i<32;i++){const r=t[i],o=e+r,a=Math.abs(e)<Math.abs(r)?e-(o-r):r-(o-e);a&&(t[n++]=a),e=o}return t[n]=e,this._n=n+1,this}valueOf(){const e=this._partials;let t,n,i,r=this._n,o=0;if(r>0){for(o=e[--r];r>0&&(t=o,n=e[--r],o=t+n,i=n-(o-t),!i););r>0&&(i<0&&e[r-1]<0||i>0&&e[r-1]>0)&&(n=2*i,t=o+n,n==t-o&&(o=t))}return o}}function Zn(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:e>t?1:0)}function ei(t,n,i=0,r=1/0,o){if(n=Math.floor(n),i=Math.floor(Math.max(0,i)),r=Math.floor(Math.min(t.length-1,r)),!(i<=n&&n<=r))return t;for(o=void 0===o?Zn:function(t=e){if(t===e)return Zn;if("function"!=typeof t)throw new TypeError("compare is not a function");return(e,n)=>{const i=t(e,n);return i||0===i?i:(0===t(n,n))-(0===t(e,e))}}(o);r>i;){if(r-i>600){const e=r-i+1,a=n-i+1,s=Math.log(e),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(e-l)/e)*(a-e/2<0?-1:1);ei(t,n,Math.max(i,Math.floor(n-a*l/e+u)),Math.min(r,Math.floor(n+(e-a)*l/e+u)),o)}const e=t[n];let a=i,s=r;for(ti(t,i,n),o(t[r],e)>0&&ti(t,i,r);a<s;){for(ti(t,a,s),++a,--s;o(t[a],e)<0;)++a;for(;o(t[s],e)>0;)--s}0===o(t[i],e)?ti(t,i,s):(++s,ti(t,s,r)),s<=n&&(i=s+1),n<=s&&(r=s-1)}return t}function ti(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function ni(e,t,n){if((i=(e=Float64Array.from(Et(e,n))).length)&&!isNaN(t=+t)){if(t<=0||i<2)return mt(e);if(t>=1)return gt(e);var i,r=(i-1)*t,o=Math.floor(r),a=gt(ei(e,o).subarray(0,o+1));return a+(mt(e.subarray(o+1))-a)*(r-o)}}function ii(e,t,n=Ft){if((i=e.length)&&!isNaN(t=+t)){if(t<=0||i<2)return+n(e[0],0,e);if(t>=1)return+n(e[i-1],i-1,e);var i,r=(i-1)*t,o=Math.floor(r),a=+n(e[o],o,e);return a+(+n(e[o+1],o+1,e)-a)*(r-o)}}function ri(e,t){return ni(e,.5,t)}function oi(e){return Array.from(function*(e){for(const t of e)yield*t}(e))}function ai(e,t){let n=0;for(let i of e)(i=+i)&&(n+=i);return n}function si(e){return e instanceof Vn?e:new Vn(e)}var li=-.14861,ui=1.78277,ci=-.29227,fi=-.90649,di=1.97294,hi=di*fi,pi=di*ui,mi=ui*ci-fi*li;function gi(e,t,n,i){return 1===arguments.length?function(e){if(e instanceof yi)return new yi(e.h,e.s,e.l,e.opacity);e instanceof Gt||(e=Vt(e));var t=e.r/255,n=e.g/255,i=e.b/255,r=(mi*i+hi*t-pi*n)/(mi+hi-pi),o=i-r,a=(di*(n-r)-ci*o)/fi,s=Math.sqrt(a*a+o*o)/(di*r*(1-r)),l=s?Math.atan2(a,o)*yt-120:NaN;return new yi(l<0?l+360:l,s,r,e.opacity)}(e):new yi(e,t,n,null==i?1:i)}function yi(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}Yt(yi,gi,Xt(Kt,{brighter(e){return e=null==e?Qt:Math.pow(Qt,e),new yi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Jt:Math.pow(Jt,e),new yi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*vt,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),i=Math.cos(e),r=Math.sin(e);return new Gt(255*(t+n*(li*i+ui*r)),255*(t+n*(ci*i+fi*r)),255*(t+n*(di*i)),this.opacity)}}));function vi(e){return((e=Math.exp(e))+1/e)/2}const bi=function e(t,n,i){function r(e,r){var o,a,s=e[0],l=e[1],u=e[2],c=r[0],f=r[1],d=r[2],h=c-s,p=f-l,m=h*h+p*p;if(m<1e-12)a=Math.log(d/u)/t,o=function(e){return[s+e*h,l+e*p,u*Math.exp(t*e*a)]};else{var g=Math.sqrt(m),y=(d*d-u*u+i*m)/(2*u*n*g),v=(d*d-u*u-i*m)/(2*d*n*g),b=Math.log(Math.sqrt(y*y+1)-y),x=Math.log(Math.sqrt(v*v+1)-v);a=(x-b)/t,o=function(e){var i,r=e*a,o=vi(b),c=u/(n*g)*(o*(i=t*r+b,((i=Math.exp(2*i))-1)/(i+1))-function(e){return((e=Math.exp(e))-1/e)/2}(b));return[s+c*h,l+c*p,u*o/vi(t*r+b)]}}return o.duration=1e3*a*t/Math.SQRT2,o}return r.rho=function(t){var n=Math.max(.001,+t),i=n*n;return e(n,i,i*i)},r}(Math.SQRT2,2,4);function xi(e){return function(t,n){var i=e((t=en(t)).h,(n=en(n)).h),r=tn(t.s,n.s),o=tn(t.l,n.l),a=tn(t.opacity,n.opacity);return function(e){return t.h=i(e),t.s=r(e),t.l=o(e),t.opacity=a(e),t+""}}}const wi=xi(Zt);var _i=xi(tn);function ki(e){return function t(n){function i(t,i){var r=e((t=gi(t)).h,(i=gi(i)).h),o=tn(t.s,i.s),a=tn(t.l,i.l),s=tn(t.opacity,i.opacity);return function(e){return t.h=r(e),t.s=o(e),t.l=a(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,i.gamma=t,i}(1)}const $i=ki(Zt);var Di=ki(tn);function Ai(e,t){void 0===t&&(t=e,e=Ct);for(var n=0,i=t.length-1,r=t[0],o=new Array(i<0?0:i);n<i;)o[n]=e(r,r=t[++n]);return function(e){var t=Math.max(0,Math.min(i-1,Math.floor(e*=i)));return o[t](e-t)}}const Si=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Ct,interpolateArray:Mt,interpolateBasis:nn,interpolateBasisClosed:rn,interpolateCubehelix:$i,interpolateCubehelixLong:Di,interpolateDate:zt,interpolateDiscrete:function(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}},interpolateHcl:xt,interpolateHclLong:wt,interpolateHsl:wi,interpolateHslLong:_i,interpolateHue:function(e,t){var n=Zt(+e,+t);return function(e){var t=n(e);return t-360*Math.floor(t/360)}},interpolateLab:function(e,t){var n=tn((e=bt(e)).l,(t=bt(t)).l),i=tn(e.a,t.a),r=tn(e.b,t.b),o=tn(e.opacity,t.opacity);return function(t){return e.l=n(t),e.a=i(t),e.b=r(t),e.opacity=o(t),e+""}},interpolateNumber:on,interpolateNumberArray:Ot,interpolateObject:Nt,interpolateRgb:an,interpolateRgbBasis:sn,interpolateRgbBasisClosed:ln,interpolateRound:Rt,interpolateString:un,interpolateTransformCss:cn,interpolateTransformSvg:fn,interpolateZoom:bi,piecewise:Ai,quantize:function(e,t){for(var n=new Array(t),i=0;i<t;++i)n[i]=e(i/(t-1));return n}},Symbol.toStringTag,{value:"Module"}));function Ei(e){return $r(e,"or")}function Fi(e){return $r(e,"and")}function Ci(e){return $r(e,"not")}function Mi(e,t){if(Ci(e))Mi(e.not,t);else if(Fi(e))for(const n of e.and)Mi(n,t);else if(Ei(e))for(const n of e.or)Mi(n,t);else t(e)}function zi(e,t){return Ci(e)?{not:zi(e.not,t)}:Fi(e)?{and:e.and.map((e=>zi(e,t)))}:Ei(e)?{or:e.or.map((e=>zi(e,t)))}:t(e)}const Oi=structuredClone;function Ni(e){throw new Error(e)}function Ri(e,n){const i={};for(const r of n)t(e,r)&&(i[r]=e[r]);return i}function Bi(e,t){const n={...e};for(const i of t)delete n[i];return n}function Ti(e){if(n(e))return e;const t=i(e)?e:kr(e);if(t.length<250)return t;let r=0;for(let n=0;n<t.length;n++){r=(r<<5)-r+t.charCodeAt(n),r|=0}return r}function Pi(e){return!1===e||null===e}function ji(e,t){return e.includes(t)}function Li(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function qi(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function Ui(e,...t){for(const n of t)Ii(e,n??{});return e}function Ii(e,t){for(const n of Qi(t))s(e,n,t[n],!0)}function Wi(e,t){const n=[],i={};let r;for(const o of e)r=t(o),r in i||(i[r]=1,n.push(o));return n}function Hi(e,t){const n=Qi(e),i=Qi(t);if(n.length!==i.length)return!1;for(const r of n)if(e[r]!==t[r])return!1;return!0}function Gi(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Vi(e,t){for(const n of e)if(t.has(n))return!0;return!1}function Yi(e){const t=new Set;for(const n of e){const e=r(n).map(((e,t)=>0===t?e:`[${e}]`)),i=e.map(((t,n)=>e.slice(0,n+1).join("")));for(const n of i)t.add(n)}return t}function Xi(e,t){return void 0===e||void 0===t||Vi(Yi(e),Yi(t))}function Ji(e){return 0===Qi(e).length}Set.prototype.toJSON=function(){return`Set(${[...this].map((e=>kr(e))).join(",")})`};const Qi=Object.keys,Ki=Object.values,Zi=Object.entries;function er(e){return!0===e||!1===e}function tr(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function nr(e,t){return Ci(e)?`!(${nr(e.not,t)})`:Fi(e)?`(${e.and.map((e=>nr(e,t))).join(") && (")})`:Ei(e)?`(${e.or.map((e=>nr(e,t))).join(") || (")})`:t(e)}function ir(e,t){if(0===t.length)return!0;const n=t.shift();return n in e&&ir(e[n],t)&&delete e[n],Ji(e)}function rr(e){return e.charAt(0).toUpperCase()+e.substr(1)}function or(e,t="datum"){const n=r(e),i=[];for(let r=1;r<=n.length;r++){const e=`[${n.slice(0,r).map(o).join("][")}]`;i.push(`${t}${e}`)}return i.join(" && ")}function ar(e,t="datum"){return`${t}[${o(r(e).join("."))}]`}function sr(e){return`datum['${e.replaceAll("'","\\'")}']`}function lr(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function ur(e){return`${r(e).map(lr).join("\\.")}`}function cr(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function fr(e){return`${r(e).join(".")}`}function dr(e){return e?r(e).length:0}function hr(...e){return e.find((e=>void 0!==e))}let pr=42;function mr(e){const t=++pr;return e?String(e)+t:t}function gr(){pr=42}function yr(e){return vr(e)?e:`__${e}`}function vr(e){return e.startsWith("__")}function br(e){if(void 0!==e)return(e%360+360)%360}function xr(e){return!!n(e)||!isNaN(e)&&!isNaN(parseFloat(e))}const wr=Object.getPrototypeOf(structuredClone({}));function _r(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor.name!==t.constructor.name)return!1;let n,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(i=n;0!=i--;)if(!_r(e[i],t[i]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const n of e.entries())if(!t.has(n[0]))return!1;for(const n of e.entries())if(!_r(n[1],t.get(n[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e.entries())if(!t.has(n[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(i=n;0!=i--;)if(e[i]!==t[i])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&e.valueOf!==wr.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==wr.toString)return e.toString()===t.toString();const r=Object.keys(e);if(n=r.length,n!==Object.keys(t).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(t,r[i]))return!1;for(i=n;0!=i--;){const n=r[i];if(!_r(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function kr(e){const t=[];return function e(n){if(n&&n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===n)return;if("number"==typeof n)return isFinite(n)?""+n:"null";if("object"!=typeof n)return JSON.stringify(n);let i,r;if(Array.isArray(n)){for(r="[",i=0;i<n.length;i++)i&&(r+=","),r+=e(n[i])||"null";return r+"]"}if(null===n)return"null";if(t.includes(n))throw new TypeError("Converting circular structure to JSON");const o=t.push(n)-1,a=Object.keys(n).sort();for(r="",i=0;i<a.length;i++){const t=a[i],o=e(n[t]);o&&(r&&(r+=","),r+=JSON.stringify(t)+":"+o)}return t.splice(o,1),`{${r}}`}(e)}function $r(e,n){return a(e)&&t(e,n)&&void 0!==e[n]}const Dr="row",Ar="column",Sr="facet",Er="x",Fr="y",Cr="x2",Mr="y2",zr="xOffset",Or="yOffset",Nr="radius",Rr="radius2",Br="theta",Tr="theta2",Pr="latitude",jr="longitude",Lr="latitude2",qr="longitude2",Ur="time",Ir="color",Wr="fill",Hr="stroke",Gr="shape",Vr="size",Yr="angle",Xr="opacity",Jr="fillOpacity",Qr="strokeOpacity",Kr="strokeWidth",Zr="strokeDash",eo="text",to="order",no="detail",io="key",ro="tooltip",oo="href",ao="url",so="description",lo={theta:1,theta2:1,radius:1,radius2:1};function uo(e){return t(lo,e)}const co={longitude:1,longitude2:1,latitude:1,latitude2:1};function fo(e){switch(e){case Pr:return"y";case Lr:return"y2";case jr:return"x";case qr:return"x2"}}function ho(e){return t(co,e)}const po=Qi(co),mo={x:1,y:1,x2:1,y2:1,...lo,...co,xOffset:1,yOffset:1,color:1,fill:1,stroke:1,time:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1};function go(e){return e===Ir||e===Wr||e===Hr}const yo={row:1,column:1,facet:1},vo=Qi(yo),bo={...mo,...yo},xo=Qi(bo),{order:wo,detail:_o,tooltip:ko,...$o}=bo,{row:Do,column:Ao,facet:So,...Eo}=$o;function Fo(e){return t(bo,e)}const Co=[Cr,Mr,Lr,qr,Tr,Rr];function Mo(e){return zo(e)!==e}function zo(e){switch(e){case Cr:return Er;case Mr:return Fr;case Lr:return Pr;case qr:return jr;case Tr:return Br;case Rr:return Nr}return e}function Oo(e){if(uo(e))switch(e){case Br:return"startAngle";case Tr:return"endAngle";case Nr:return"outerRadius";case Rr:return"innerRadius"}return e}function No(e){switch(e){case Er:return Cr;case Fr:return Mr;case Pr:return Lr;case jr:return qr;case Br:return Tr;case Nr:return Rr}}function Ro(e){switch(e){case Er:case Cr:return"width";case Fr:case Mr:return"height"}}function Bo(e){switch(e){case Er:return"xOffset";case Fr:return"yOffset";case Cr:return"x2Offset";case Mr:return"y2Offset";case Br:return"thetaOffset";case Nr:return"radiusOffset";case Tr:return"theta2Offset";case Rr:return"radius2Offset"}}function To(e){switch(e){case Er:return"xOffset";case Fr:return"yOffset"}}function Po(e){switch(e){case"xOffset":return"x";case"yOffset":return"y"}}const jo=Qi(mo),{x:Lo,y:qo,x2:Uo,y2:Io,xOffset:Wo,yOffset:Ho,latitude:Go,longitude:Vo,latitude2:Yo,longitude2:Xo,theta:Jo,theta2:Qo,radius:Ko,radius2:Zo,...ea}=mo,ta=Qi(ea),na={x:1,y:1},ia=Qi(na);function ra(e){return t(na,e)}const oa={theta:1,radius:1},aa=Qi(oa);function sa(e){return"width"===e?Er:Fr}const la={xOffset:1,yOffset:1};function ua(e){return t(la,e)}const ca={time:1};function fa(e){return e in ca}const{text:da,tooltip:ha,href:pa,url:ma,description:ga,detail:ya,key:va,order:ba,...xa}=ea,wa=Qi(xa);const _a={...na,...oa,...la,...xa},ka=Qi(_a);function $a(e){return t(_a,e)}function Da(e,t){return function(e){switch(e){case Ir:case Wr:case Hr:case so:case no:case io:case ro:case oo:case to:case Xr:case Jr:case Qr:case Kr:case Sr:case Dr:case Ar:return Aa;case Er:case Fr:case zr:case Or:case Pr:case jr:case Ur:return Ea;case Cr:case Mr:case Lr:case qr:return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case Vr:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case Zr:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case Gr:return{point:"always",geoshape:"always"};case eo:return{text:"always"};case Yr:return{point:"always",square:"always",text:"always"};case ao:return{image:"always"};case Br:case Nr:return{text:"always",arc:"always"};case Tr:case Rr:return{arc:"always"}}}(e)[t]}const Aa={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},{geoshape:Sa,...Ea}=Aa;function Fa(e){switch(e){case Er:case Fr:case Br:case Nr:case zr:case Or:case Vr:case Yr:case Kr:case Xr:case Jr:case Qr:case Ur:case Cr:case Mr:case Tr:case Rr:return;case Sr:case Dr:case Ar:case Gr:case Zr:case eo:case ro:case oo:case ao:case so:return"discrete";case Ir:case Wr:case Hr:return"flexible";case Pr:case jr:case Lr:case qr:case no:case io:case to:return}}const Ca={argmax:1,argmin:1,average:1,count:1,distinct:1,exponential:1,exponentialb:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},Ma={count:1,min:1,max:1};function za(e){return $r(e,"argmin")}function Oa(e){return $r(e,"argmax")}function Na(e){return i(e)&&t(Ca,e)}const Ra=new Set(["count","valid","missing","distinct"]);function Ba(e){return i(e)&&Ra.has(e)}const Ta=new Set(["count","sum","distinct","valid","missing"]),Pa=new Set(["mean","average","median","q1","q3","min","max"]);function ja(e){return l(e)&&(e=kP(e,void 0)),"bin"+Qi(e).map((t=>Ia(e[t])?tr(`_${t}_${Zi(e[t])}`):tr(`_${t}_${e[t]}`))).join("")}function La(e){return!0===e||Ua(e)&&!e.binned}function qa(e){return"binned"===e||Ua(e)&&!0===e.binned}function Ua(e){return a(e)}function Ia(e){return $r(e,"param")}function Wa(e){switch(e){case Dr:case Ar:case Vr:case Ir:case Wr:case Hr:case Kr:case Xr:case Jr:case Qr:case Gr:return 6;case Zr:return 4;default:return 10}}function Ha(e){return $r(e,"expr")}function Ga(e,{level:t}={level:0}){const n=Qi(e||{}),i={};for(const r of n)i[r]=0===t?ns(e[r]):Ga(e[r],{level:t-1});return i}function Va(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:a,color:s,subtitleColor:l,subtitleFont:u,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p,...m}=e,g={...t?{anchor:t}:{},...n?{frame:n}:{},...i?{offset:i}:{},...r?{orient:r}:{},...void 0!==o?{angle:o}:{},...void 0!==a?{limit:a}:{}},y={...l?{subtitleColor:l}:{},...u?{subtitleFont:u}:{},...c?{subtitleFontSize:c}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...p?{subtitlePadding:p}:{}};return{titleMarkConfig:{...m,...s?{fill:s}:{}},subtitleMarkConfig:Ri(e,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:g,subtitle:y}}function Ya(e){return i(e)||u(e)&&i(e[0])}function Xa(e){return $r(e,"signal")}function Ja(e){return $r(e,"step")}function Qa(e){return!u(e)&&($r(e,"field")&&$r(e,"data"))}const Ka=Qi({aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1}),Za={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},es=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function ts(e){const t=u(e.condition)?e.condition.map(is):is(e.condition);return{...ns(e),condition:t}}function ns(e){if(Ha(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function is(e){if(Ha(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function rs(e){if(Ha(e)){const{expr:t,...n}=e;return{signal:t,...n}}return Xa(e)?e:void 0!==e?{value:e}:void 0}function os(e){return Xa(e)?e.signal:o(e.value)}function as(e){return Xa(e)?e.signal:null==e?null:o(e)}function ss(e,t,n){for(const i of n){const n=cs(i,t.markDef,t.config);void 0!==n&&(e[i]=rs(n))}return e}function ls(e){return[].concat(e.type,e.style??[])}function us(e,t,n,i={}){const{vgChannel:r,ignoreVgConfig:o}=i;return r&&$r(t,r)?t[r]:void 0!==t[e]?t[e]:!o||r&&r!==e?cs(e,t,n,i):void 0}function cs(e,t,n,{vgChannel:i}={}){const r=fs(e,t,n.style);return hr(i?r:void 0,r,i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function fs(e,t,n){return ds(e,ls(t),n)}function ds(e,t,n){let i;t=c(t);for(const r of t){const t=n[r];$r(t,e)&&(i=t[e])}return i}function hs(e,t){return c(e).reduce(((e,n)=>(e.field.push(uP(n,t)),e.order.push(n.sort??"ascending"),e)),{field:[],order:[]})}function ps(e,t){const n=[...e];return t.forEach((e=>{for(const t of n)if(_r(t,e))return;n.push(e)})),n}function ms(e,t){return _r(e,t)||!t?e:e?[...c(e),...c(t)].join(", "):t}function gs(e,t){const n=e.value,i=t.value;if(null==n||null===i)return{explicit:e.explicit,value:null};if((Ya(n)||Xa(n))&&(Ya(i)||Xa(i)))return{explicit:e.explicit,value:ms(n,i)};if(Ya(n)||Xa(n))return{explicit:e.explicit,value:n};if(Ya(i)||Xa(i))return{explicit:e.explicit,value:i};if(!(Ya(n)||Xa(n)||Ya(i)||Xa(i)))return{explicit:e.explicit,value:ps(n,i)};throw new Error("It should never reach here")}function ys(e){const t=e||y,n=[],i={};return n.add=e=>{const r=t(e);return i[r]||(i[r]=1,n.push(e)),n},n.remove=e=>{const r=t(e);if(i[r]){i[r]=0;const t=n.indexOf(e);t>=0&&n.splice(t,1)}return n},n}async function vs(e,t){try{await t(e)}catch(n){e.error(n)}}const bs=Symbol("vega_id");let xs=1;function ws(e){return!(!e||!_s(e))}function _s(e){return e[bs]}function ks(e,t){return e[bs]=t,e}function $s(e){const t=e===Object(e)?e:{data:e};return _s(t)?t:ks(t,xs++)}function Ds(e){return As(e,$s({}))}function As(e,t){for(const n in e)t[n]=e[n];return t}function Ss(e,t){return ks(t,_s(e))}function Es(e,t){return e?t?(n,i)=>e(n,i)||_s(t(n))-_s(t(i)):(t,n)=>e(t,n)||_s(t)-_s(n):null}function Fs(e){return e&&e.constructor===Cs}function Cs(){const e=[],t=[],n=[],i=[],r=[];let o=null,a=!1;return{constructor:Cs,insert(t){const n=c(t),i=n.length;for(let r=0;r<i;++r)e.push(n[r]);return this},remove(e){const n=m(e)?i:t,r=c(e),o=r.length;for(let t=0;t<o;++t)n.push(r[t]);return this},modify(e,t,i){const o={field:t,value:g(i)};return m(e)?(o.filter=e,r.push(o)):(o.tuple=e,n.push(o)),this},encode(e,t){return m(e)?r.push({filter:e,field:t}):n.push({tuple:e,field:t}),this},clean(e){return o=e,this},reflow(){return a=!0,this},pulse(s,l){const u={},c={};let f,d,h,p,m,g;for(f=0,d=l.length;f<d;++f)u[_s(l[f])]=1;for(f=0,d=t.length;f<d;++f)m=t[f],u[_s(m)]=-1;for(f=0,d=i.length;f<d;++f)p=i[f],l.forEach((e=>{p(e)&&(u[_s(e)]=-1)}));for(f=0,d=e.length;f<d;++f)m=e[f],g=_s(m),u[g]?u[g]=1:s.add.push($s(e[f]));for(f=0,d=l.length;f<d;++f)m=l[f],u[_s(m)]<0&&s.rem.push(m);function y(e,t,n){n?e[t]=n(e):s.encode=t,a||(c[_s(e)]=e)}for(f=0,d=n.length;f<d;++f)h=n[f],m=h.tuple,p=h.field,g=u[_s(m)],g>0&&(y(m,p,h.value),s.modifies(p));for(f=0,d=r.length;f<d;++f)h=r[f],p=h.filter,l.forEach((e=>{p(e)&&u[_s(e)]>0&&y(e,h.field,h.value)})),s.modifies(h.field);if(a)s.mod=t.length||i.length?l.filter((e=>u[_s(e)]>0)):l.slice();else for(g in c)s.mod.push(c[g]);return(o||null==o&&(t.length||i.length))&&s.clean(!0),s}}}const Ms="_:mod:_";function zs(){Object.defineProperty(this,Ms,{writable:!0,value:{}})}zs.prototype={set(e,t,n,i){const r=this,o=r[e],a=r[Ms];return null!=t&&t>=0?(o[t]!==n||i)&&(o[t]=n,a[t+":"+e]=-1,a[e]=-1):(o!==n||i)&&(r[e]=n,a[e]=u(n)?1+n.length:-1),r},modified(e,t){const n=this[Ms];if(!arguments.length){for(const e in n)if(n[e])return!0;return!1}if(u(e)){for(let t=0;t<e.length;++t)if(n[e[t]])return!0;return!1}return null!=t&&t>=0?t+1<n[e]||!!n[t+":"+e]:!!n[e]},clear(){return this[Ms]={},this}};let Os=0;const Ns=new zs;function Rs(e,t,n,i){this.id=++Os,this.value=e,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,t&&(this._update=t),n&&this.parameters(n,i)}function Bs(e){return function(t){const n=this.flags;return 0===arguments.length?!!(n&e):(this.flags=t?n|e:n&~e,this)}}Rs.prototype={targets(){return this._targets||(this._targets=ys(b))},set(e){return this.value!==e?(this.value=e,1):0},skip:Bs(1),modified:Bs(2),parameters(e,t,n){t=!1!==t;const i=this._argval=this._argval||new zs,r=this._argops=this._argops||[],o=[];let a,s,l,f;const d=(e,n,a)=>{a instanceof Rs?(a!==this&&(t&&a.targets().add(this),o.push(a)),r.push({op:a,name:e,index:n})):i.set(e,n,a)};for(a in e)if(s=e[a],"pulse"===a)c(s).forEach((e=>{e instanceof Rs?e!==this&&(e.targets().add(this),o.push(e)):v("Pulse parameters must be operator instances.")})),this.source=s;else if(u(s))for(i.set(a,-1,Array(l=s.length)),f=0;f<l;++f)d(a,f,s[f]);else d(a,-1,s);return this.marshall().clear(),n&&(r.initonly=!0),o},marshall(e){const t=this._argval||Ns,n=this._argops;let i,r,o,a;if(n){const s=n.length;for(r=0;r<s;++r)i=n[r],o=i.op,a=o.modified()&&o.stamp===e,t.set(i.name,i.index,o.value,a);if(n.initonly){for(r=0;r<s;++r)i=n[r],i.op.targets().remove(this);this._argops=null,this._update=null}}return t},detach(){const e=this._argops;let t,n,i,r;if(e)for(t=0,n=e.length;t<n;++t)i=e[t],r=i.op,r._targets&&r._targets.remove(this);this.pulse=null,this.source=null},evaluate(e){const t=this._update;if(t){const n=this.marshall(e.stamp),i=t.call(this,n,e);if(n.clear(),i!==this.value)this.value=i;else if(!this.modified())return e.StopPropagation}},run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?(this.skip(!1),t=0):t=this.evaluate(e),this.pulse=t||e}};let Ts=0;function Ps(e,t,n){this.id=++Ts,this.value=null,n&&(this.receive=n),e&&(this._filter=e),t&&(this._apply=t)}function js(e,t,n){return new Ps(e,t,n)}Ps.prototype={_filter:x,_apply:y,targets(){return this._targets||(this._targets=ys(b))},consume(e){return arguments.length?(this._consume=!!e,this):!!this._consume},receive(e){if(this._filter(e)){const t=this.value=this._apply(e),n=this._targets,i=n?n.length:0;for(let e=0;e<i;++e)n[e].receive(t);this._consume&&(e.preventDefault(),e.stopPropagation())}},filter(e){const t=js(e);return this.targets().add(t),t},apply(e){const t=js(null,e);return this.targets().add(t),t},merge(){const e=js();this.targets().add(e);for(let t=0,n=arguments.length;t<n;++t)arguments[t].targets().add(e);return e},throttle(e){let t=-1;return this.filter((()=>{const n=Date.now();return n-t>e?(t=n,1):0}))},debounce(e){const t=js();return this.targets().add(js(null,null,A(e,(e=>{const n=e.dataflow;t.receive(e),n&&n.run&&n.run()})))),t},between(e,t){let n=!1;return e.targets().add(js(null,null,(()=>n=!0))),t.targets().add(js(null,null,(()=>n=!1))),this.filter((()=>n))},detach(){this._filter=x,this._targets=null}};const Ls={skip:!0};function qs(e,t,n,i,r,o){const a=D({},o,Ls);let s,l;m(n)||(n=g(n)),void 0===i?s=t=>e.touch(n(t)):m(i)?(l=new Rs(null,i,r,!1),s=t=>{l.evaluate(t);const i=n(t),r=l.value;Fs(r)?e.pulse(i,r,o):e.update(i,r,a)}):s=t=>e.update(n(t),i,a),t.apply(s)}function Us(e,t,n,i,r,o){if(void 0===i)t.targets().add(n);else{const a=o||{},s=new Rs(null,function(e,t){return t=m(t)?t:g(t),e?function(n,i){const r=t(n,i);return e.skip()||(e.skip(r!==this.value).value=r),r}:t}(n,i),r,!1);s.modified(a.force),s.rank=t.rank,t.targets().add(s),n&&(s.skip(!0),s.value=n.value,s.targets().add(n),e.connect(n,[s]))}}const Is={};function Ws(e,t,n){this.dataflow=e,this.stamp=null==t?-1:t,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function Hs(e,t){const n=[];return w(e,t,(e=>n.push(e))),n}function Gs(e,t){const n={};return e.visit(t,(e=>{n[_s(e)]=1})),e=>n[_s(e)]?null:e}function Vs(e,t){return e?(n,i)=>e(n,i)&&t(n,i):t}function Ys(e,t,n,i){const r=this;let o=0;this.dataflow=e,this.stamp=t,this.fields=null,this.encode=i||null,this.pulses=n;for(const a of n)if(a.stamp===t){if(a.fields){const e=r.fields||(r.fields={});for(const t in a.fields)e[t]=1}a.changed(r.ADD)&&(o|=r.ADD),a.changed(r.REM)&&(o|=r.REM),a.changed(r.MOD)&&(o|=r.MOD)}this.changes=o}function Xs(e){return e.error("Dataflow already running. Use runAsync() to chain invocations."),e}Ws.prototype={StopPropagation:Is,ADD:1,REM:2,MOD:4,ADD_REM:3,ADD_MOD:5,ALL:7,REFLOW:8,SOURCE:16,NO_SOURCE:32,NO_FIELDS:64,fork(e){return new Ws(this.dataflow).init(this,e)},clone(){const e=this.fork(7);return e.add=e.add.slice(),e.rem=e.rem.slice(),e.mod=e.mod.slice(),e.source&&(e.source=e.source.slice()),e.materialize(23)},addAll(){let e=this;return!e.source||e.add===e.rem||!e.rem.length&&e.source.length===e.add.length||(e=new Ws(this.dataflow).init(this),e.add=e.source,e.rem=[]),e},init(e,t){const n=this;return n.stamp=e.stamp,n.encode=e.encode,!e.fields||64&t||(n.fields=e.fields),1&t?(n.addF=e.addF,n.add=e.add):(n.addF=null,n.add=[]),2&t?(n.remF=e.remF,n.rem=e.rem):(n.remF=null,n.rem=[]),4&t?(n.modF=e.modF,n.mod=e.mod):(n.modF=null,n.mod=[]),32&t?(n.srcF=null,n.source=null):(n.srcF=e.srcF,n.source=e.source,e.cleans&&(n.cleans=e.cleans)),n},runAfter(e){this.dataflow.runAfter(e)},changed(e){const t=e||7;return 1&t&&this.add.length||2&t&&this.rem.length||4&t&&this.mod.length},reflow(e){if(e)return this.fork(7).reflow();const t=this.add.length,n=this.source&&this.source.length;return n&&n!==t&&(this.mod=this.source,t&&this.filter(4,Gs(this,1))),this},clean(e){return arguments.length?(this.cleans=!!e,this):this.cleans},modifies(e){const t=this.fields||(this.fields={});return u(e)?e.forEach((e=>t[e]=!0)):t[e]=!0,this},modified(e,t){const n=this.fields;return!(!t&&!this.mod.length||!n)&&(arguments.length?u(e)?e.some((e=>n[e])):n[e]:!!n)},filter(e,t){const n=this;return 1&e&&(n.addF=Vs(n.addF,t)),2&e&&(n.remF=Vs(n.remF,t)),4&e&&(n.modF=Vs(n.modF,t)),16&e&&(n.srcF=Vs(n.srcF,t)),n},materialize(e){const t=this;return 1&(e=e||7)&&t.addF&&(t.add=Hs(t.add,t.addF),t.addF=null),2&e&&t.remF&&(t.rem=Hs(t.rem,t.remF),t.remF=null),4&e&&t.modF&&(t.mod=Hs(t.mod,t.modF),t.modF=null),16&e&&t.srcF&&(t.source=t.source.filter(t.srcF),t.srcF=null),t},visit(e,t){const n=this,i=t;if(16&e)return w(n.source,n.srcF,i),n;1&e&&w(n.add,n.addF,i),2&e&&w(n.rem,n.remF,i),4&e&&w(n.mod,n.modF,i);const r=n.source;if(8&e&&r){const e=n.add.length+n.mod.length;e===r.length||w(r,e?Gs(n,5):n.srcF,i)}return n}},_(Ys,Ws,{fork(e){const t=new Ws(this.dataflow).init(this,e&this.NO_FIELDS);return void 0!==e&&(e&t.ADD&&this.visit(t.ADD,(e=>t.add.push(e))),e&t.REM&&this.visit(t.REM,(e=>t.rem.push(e))),e&t.MOD&&this.visit(t.MOD,(e=>t.mod.push(e)))),t},changed(e){return this.changes&e},modified(e){const t=this,n=t.fields;return n&&t.changes&t.MOD?u(e)?e.some((e=>n[e])):n[e]:0},filter(){v("MultiPulse does not support filtering.")},materialize(){v("MultiPulse does not support materialization.")},visit(e,t){const n=this,i=n.pulses,r=i.length;let o=0;if(e&n.SOURCE)for(;o<r;++o)i[o].visit(e,t);else for(;o<r;++o)i[o].stamp===n.stamp&&i[o].visit(e,t);return n}});const Js={skip:!1,force:!1};function Qs(e){let t=[];return{clear:()=>t=[],size:()=>t.length,peek:()=>t[0],push:n=>(t.push(n),Ks(t,0,t.length-1,e)),pop:()=>{const n=t.pop();let i;return t.length?(i=t[0],t[0]=n,function(e,t,n){const i=t,r=e.length,o=e[t];let a,s=1+(t<<1);for(;s<r;)a=s+1,a<r&&n(e[s],e[a])>=0&&(s=a),e[t]=e[s],s=1+((t=s)<<1);e[t]=o,Ks(e,i,t,n)}(t,0,e)):i=n,i}}}function Ks(e,t,n,i){let r,o;const a=e[n];for(;n>t&&(o=n-1>>1,r=e[o],i(a,r)<0);)e[n]=r,n=o;return e[n]=a}function Zs(){this.logger(f()),this.logLevel(d),this._clock=0,this._rank=0,this._locale=h();try{this._loader=p()}catch(e){}this._touched=ys(b),this._input={},this._pulse=null,this._heap=Qs(((e,t)=>e.qrank-t.qrank)),this._postrun=[]}function el(e){return function(){return this._log[e].apply(this,arguments)}}function tl(e,t){Rs.call(this,e,null,t)}Zs.prototype={stamp(){return this._clock},loader(e){return arguments.length?(this._loader=e,this):this._loader},locale(e){return arguments.length?(this._locale=e,this):this._locale},logger(e){return arguments.length?(this._log=e,this):this._log},error:el("error"),warn:el("warn"),info:el("info"),debug:el("debug"),logLevel:el("level"),cleanThreshold:1e4,add:function(e,t,n,i){let r,o=1;return e instanceof Rs?r=e:e&&e.prototype instanceof Rs?r=new e:m(e)?r=new Rs(null,e):(o=0,r=new Rs(e,t)),this.rank(r),o&&(i=n,n=t),n&&this.connect(r,r.parameters(n,i)),this.touch(r),r},connect:function(e,t){const n=e.rank,i=t.length;for(let r=0;r<i;++r)if(n<t[r].rank)return void this.rerank(e)},rank:function(e){e.rank=++this._rank},rerank:function(e){const t=[e];let n,i,r;for(;t.length;)if(this.rank(n=t.pop()),i=n._targets)for(r=i.length;--r>=0;)t.push(n=i[r]),n===e&&v("Cycle detected in dataflow graph.")},pulse:function(e,t,n){this.touch(e,n||Js);const i=new Ws(this,this._clock+(this._pulse?0:1)),r=e.pulse&&e.pulse.source||[];return i.target=e,this._input[e.id]=t.pulse(i,r),this},touch:function(e,t){const n=t||Js;return this._pulse?this._enqueue(e):this._touched.add(e),n.skip&&e.skip(!0),this},update:function(e,t,n){const i=n||Js;return(e.set(t)||i.force)&&this.touch(e,i),this},changeset:Cs,ingest:function(e,t,n){return t=this.parse(t,n),this.pulse(e,this.changeset().insert(t))},parse:function(e,t){const n=this.locale();return $(e,t,n.timeParse,n.utcParse)},preload:async function(e,t,n){const i=this,r=i._pending||function(e){let t;const n=new Promise((e=>t=e));return n.requests=0,n.done=()=>{0==--n.requests&&(e._pending=null,t(e))},e._pending=n}(i);r.requests+=1;const o=await i.request(t,n);return i.pulse(e,i.changeset().remove(x).insert(o.data||[])),r.done(),o},request:async function(e,t){const n=this;let i,r=0;try{i=await n.loader().load(e,{context:"dataflow",response:k(t&&t.type)});try{i=n.parse(i,t)}catch(o){r=-2,n.warn("Data ingestion failed",e,o)}}catch(o){r=-1,n.warn("Loading failed",e,o)}return{data:i,status:r}},events:function(e,t,n,i){const r=this,o=js(n,i),a=function(e){e.dataflow=r;try{o.receive(e)}catch(t){r.error(t)}finally{r.run()}};let s;s="string"==typeof e&&"undefined"!=typeof document?document.querySelectorAll(e):c(e);const l=s.length;for(let u=0;u<l;++u)s[u].addEventListener(t,a);return o},on:function(e,t,n,i,r){return(e instanceof Rs?Us:qs)(this,e,t,n,i,r),this},evaluate:async function(e,t,n){const i=this,r=[];if(i._pulse)return Xs(i);if(i._pending&&await i._pending,t&&await vs(i,t),!i._touched.length)return i.debug("Dataflow invoked, but nothing to do."),i;const o=++i._clock;i._pulse=new Ws(i,o,e),i._touched.forEach((e=>i._enqueue(e,!0))),i._touched=ys(b);let a,s,l,u=0;try{for(;i._heap.size()>0;)a=i._heap.pop(),a.rank===a.qrank?(s=a.run(i._getPulse(a,e)),s.then?s=await s:s.async&&(r.push(s.async),s=Is),s!==Is&&a._targets&&a._targets.forEach((e=>i._enqueue(e))),++u):i._enqueue(a,!0)}catch(c){i._heap.clear(),l=c}if(i._input={},i._pulse=null,i.debug(`Pulse ${o}: ${u} operators`),l&&(i._postrun=[],i.error(l)),i._postrun.length){const e=i._postrun.sort(((e,t)=>t.priority-e.priority));i._postrun=[];for(let t=0;t<e.length;++t)await vs(i,e[t].callback)}return n&&await vs(i,n),r.length&&Promise.all(r).then((e=>i.runAsync(null,(()=>{e.forEach((e=>{try{e(i)}catch(c){i.error(c)}}))})))),i},run:function(e,t,n){return this._pulse?Xs(this):(this.evaluate(e,t,n),this)},runAsync:async function(e,t,n){for(;this._running;)await this._running;const i=()=>this._running=null;return(this._running=this.evaluate(e,t,n)).then(i,i),this._running},runAfter:function(e,t,n){if(this._pulse||t)this._postrun.push({priority:n||0,callback:e});else try{e(this)}catch(i){this.error(i)}},_enqueue:function(e,t){const n=e.stamp<this._clock;n&&(e.stamp=this._clock),(n||t)&&(e.qrank=e.rank,this._heap.push(e))},_getPulse:function(e,t){const n=e.source,i=this._clock;return n&&u(n)?new Ys(this,i,n.map((e=>e.pulse)),t):this._input[e.id]||function(e,t){if(t&&t.stamp===e.stamp)return t;e=e.fork(),t&&t!==Is&&(e.source=t.source);return e}(this._pulse,n&&n.pulse)}},_(tl,Rs,{run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?this.skip(!1):t=this.evaluate(e),t=t||e,t.then?t=t.then((e=>this.pulse=e)):t!==e.StopPropagation&&(this.pulse=t),t},evaluate(e){const t=this.marshall(e.stamp),n=this.transform(t,e);return t.clear(),n},transform(){}});const nl={};function il(e){const t=rl(e);return t&&t.Definition||null}function rl(e){return e=e&&e.toLowerCase(),t(nl,e)?nl[e]:null}function*ol(e,t){if(null==t)for(let n of e)null!=n&&""!==n&&(n=+n)>=n&&(yield n);else{let n=-1;for(let i of e)i=t(i,++n,e),null!=i&&""!==i&&(i=+i)>=i&&(yield i)}}function al(t,n,i){const r=Float64Array.from(ol(t,i));return r.sort(e),n.map((e=>ii(r,e)))}function sl(e,t){return al(e,[.25,.5,.75],t)}function ll(e,t){const n=e.length,i=function(e,t){const n=function(e,t){let n,i=0,r=0,o=0;if(void 0===t)for(let a of e)null!=a&&(a=+a)>=a&&(n=a-r,r+=n/++i,o+=n*(a-r));else{let a=-1;for(let s of e)null!=(s=t(s,++a,e))&&(s=+s)>=s&&(n=s-r,r+=n/++i,o+=n*(s-r))}if(i>1)return o/(i-1)}(e,t);return n?Math.sqrt(n):n}(e,t),r=sl(e,t),o=(r[2]-r[0])/1.34;return 1.06*(Math.min(i,o)||i||Math.abs(r[0])||1)*Math.pow(n,-.2)}function ul(e){const t=e.maxbins||20,n=e.base||10,i=Math.log(n),r=e.divide||[5,2];let o,a,s,l,u,c,f=e.extent[0],d=e.extent[1];const h=e.span||d-f||Math.abs(f)||1;if(e.step)o=e.step;else if(e.steps){for(l=h/t,u=0,c=e.steps.length;u<c&&e.steps[u]<l;++u);o=e.steps[Math.max(0,u-1)]}else{for(a=Math.ceil(Math.log(t)/i),s=e.minstep||0,o=Math.max(s,Math.pow(n,Math.round(Math.log(h)/i)-a));Math.ceil(h/o)>t;)o*=n;for(u=0,c=r.length;u<c;++u)l=o/r[u],l>=s&&h/l<=t&&(o=l)}l=Math.log(o);const p=l>=0?0:1+~~(-l/i),m=Math.pow(n,-p-1);return(e.nice||void 0===e.nice)&&(l=Math.floor(f/o+m)*o,f=f<l?l-o:l,d=Math.ceil(d/o)*o),{start:f,stop:d===f?f+o:d,step:o}}var cl=Math.random;function fl(t,n,i,r){if(!t.length)return[void 0,void 0];const o=Float64Array.from(ol(t,r)),a=o.length,s=n;let l,u,c,f;for(c=0,f=Array(s);c<s;++c){for(l=0,u=0;u<a;++u)l+=o[~~(cl()*a)];f[c]=l/a}return f.sort(e),[ni(f,i/2),ni(f,1-i/2)]}function dl(e,t,n,i){i=i||(e=>e);const r=e.length,o=new Float64Array(r);let a,s=0,l=1,u=i(e[0]),c=u,f=u+t;for(;l<r;++l){if(a=i(e[l]),a>=f){for(c=(u+c)/2;s<l;++s)o[s]=c;f=a+t,u=a}c=a}for(c=(u+c)/2;s<l;++s)o[s]=c;return n?function(e,t){const n=e.length;let i,r,o=0,a=1;for(;e[o]===e[a];)++a;for(;a<n;){for(i=a+1;e[a]===e[i];)++i;if(e[a]-e[a-1]<t){for(r=a+(o+i-a-a>>1);r<a;)e[r++]=e[a];for(;r>a;)e[r--]=e[o]}o=a,a=i}return e}(o,t+t/4):o}const hl=Math.sqrt(2*Math.PI),pl=Math.SQRT2;let ml=NaN;function gl(e,t){e=e||0,t=null==t?1:t;let n,i,r=0,o=0;if(ml==ml)r=ml,ml=NaN;else{do{r=2*cl()-1,o=2*cl()-1,n=r*r+o*o}while(0===n||n>1);i=Math.sqrt(-2*Math.log(n)/n),r*=i,ml=o*i}return e+r*t}function yl(e,t,n){const i=(e-(t||0))/(n=null==n?1:n);return Math.exp(-.5*i*i)/(n*hl)}function vl(e,t,n){const i=(e-(t=t||0))/(n=null==n?1:n),r=Math.abs(i);let o;if(r>37)o=0;else{const e=Math.exp(-r*r/2);let t;r<7.07106781186547?(t=.0352624965998911*r+.700383064443688,t=t*r+6.37396220353165,t=t*r+33.912866078383,t=t*r+112.079291497871,t=t*r+221.213596169931,t=t*r+220.206867912376,o=e*t,t=.0883883476483184*r+1.75566716318264,t=t*r+16.064177579207,t=t*r+86.7807322029461,t=t*r+296.564248779674,t=t*r+637.333633378831,t=t*r+793.826512519948,t=t*r+440.413735824752,o/=t):(t=r+.65,t=r+4/t,t=r+3/t,t=r+2/t,t=r+1/t,o=e/t/2.506628274631)}return i>0?1-o:o}function bl(e,t,n){return e<0||e>1?NaN:(t||0)+(null==n?1:n)*pl*function(e){let t,n=-Math.log((1-e)*(1+e));n<6.25?(n-=3.125,t=-364441206401782e-35,t=t*n-16850591381820166e-35,t=128584807152564e-32+t*n,t=11157877678025181e-33+t*n,t=t*n-1333171662854621e-31,t=20972767875968562e-33+t*n,t=6637638134358324e-30+t*n,t=t*n-4054566272975207e-29,t=t*n-8151934197605472e-29,t=26335093153082323e-28+t*n,t=t*n-12975133253453532e-27,t=t*n-5415412054294628e-26,t=1.0512122733215323e-9+t*n,t=t*n-4.112633980346984e-9,t=t*n-2.9070369957882005e-8,t=4.2347877827932404e-7+t*n,t=t*n-13654692000834679e-22,t=t*n-13882523362786469e-21,t=.00018673420803405714+t*n,t=t*n-.000740702534166267,t=t*n-.006033670871430149,t=.24015818242558962+t*n,t=1.6536545626831027+t*n):n<16?(n=Math.sqrt(n)-3.25,t=2.2137376921775787e-9,t=9.075656193888539e-8+t*n,t=t*n-2.7517406297064545e-7,t=1.8239629214389228e-8+t*n,t=15027403968909828e-22+t*n,t=t*n-4013867526981546e-21,t=29234449089955446e-22+t*n,t=12475304481671779e-21+t*n,t=t*n-47318229009055734e-21,t=6828485145957318e-20+t*n,t=24031110387097894e-21+t*n,t=t*n-.0003550375203628475,t=.0009532893797373805+t*n,t=t*n-.0016882755560235047,t=.002491442096107851+t*n,t=t*n-.003751208507569241,t=.005370914553590064+t*n,t=1.0052589676941592+t*n,t=3.0838856104922208+t*n):Number.isFinite(n)?(n=Math.sqrt(n)-5,t=-27109920616438573e-27,t=t*n-2.555641816996525e-10,t=1.5076572693500548e-9+t*n,t=t*n-3.789465440126737e-9,t=7.61570120807834e-9+t*n,t=t*n-1.496002662714924e-8,t=2.914795345090108e-8+t*n,t=t*n-6.771199775845234e-8,t=2.2900482228026655e-7+t*n,t=t*n-9.9298272942317e-7,t=4526062597223154e-21+t*n,t=t*n-1968177810553167e-20,t=7599527703001776e-20+t*n,t=t*n-.00021503011930044477,t=t*n-.00013871931833623122,t=1.0103004648645344+t*n,t=4.849906401408584+t*n):t=1/0;return t*e}(2*e-1)}function xl(e,t){let n,i;const r={mean(e){return arguments.length?(n=e||0,r):n},stdev(e){return arguments.length?(i=null==e?1:e,r):i},sample:()=>gl(n,i),pdf:e=>yl(e,n,i),cdf:e=>vl(e,n,i),icdf:e=>bl(e,n,i)};return r.mean(e).stdev(t)}function wl(e,t){const n=xl();let i=0;const r={data(n){return arguments.length?(e=n,i=n?n.length:0,r.bandwidth(t)):e},bandwidth(n){return arguments.length?(!(t=n)&&e&&(t=ll(e)),r):t},sample:()=>e[~~(cl()*i)]+t*n.sample(),pdf(r){let o=0,a=0;for(;a<i;++a)o+=n.pdf((r-e[a])/t);return o/t/i},cdf(r){let o=0,a=0;for(;a<i;++a)o+=n.cdf((r-e[a])/t);return o/i},icdf(){throw Error("KDE icdf not supported.")}};return r.data(e)}function _l(e,t){return e=e||0,t=null==t?1:t,Math.exp(e+gl()*t)}function kl(e,t,n){if(e<=0)return 0;t=t||0,n=null==n?1:n;const i=(Math.log(e)-t)/n;return Math.exp(-.5*i*i)/(n*hl*e)}function $l(e,t,n){return vl(Math.log(e),t,n)}function Dl(e,t,n){return Math.exp(bl(e,t,n))}function Al(e,t){let n,i;const r={mean(e){return arguments.length?(n=e||0,r):n},stdev(e){return arguments.length?(i=null==e?1:e,r):i},sample:()=>_l(n,i),pdf:e=>kl(e,n,i),cdf:e=>$l(e,n,i),icdf:e=>Dl(e,n,i)};return r.mean(e).stdev(t)}function Sl(e,t){let n,i=0;const r={weights(e){return arguments.length?(n=function(e){const t=[];let n,r=0;for(n=0;n<i;++n)r+=t[n]=null==e[n]?1:+e[n];for(n=0;n<i;++n)t[n]/=r;return t}(t=e||[]),r):t},distributions(n){return arguments.length?(n?(i=n.length,e=n):(i=0,e=[]),r.weights(t)):e},sample(){const t=cl();let r=e[i-1],o=n[0],a=0;for(;a<i-1;o+=n[++a])if(t<o){r=e[a];break}return r.sample()},pdf(t){let r=0,o=0;for(;o<i;++o)r+=n[o]*e[o].pdf(t);return r},cdf(t){let r=0,o=0;for(;o<i;++o)r+=n[o]*e[o].cdf(t);return r},icdf(){throw Error("Mixture icdf not supported.")}};return r.distributions(e).weights(t)}function El(e,t){return null==t&&(t=null==e?1:e,e=0),e+(t-e)*cl()}function Fl(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=t&&e<=n?1/(n-t):0}function Cl(e,t,n){return null==n&&(n=null==t?1:t,t=0),e<t?0:e>n?1:(e-t)/(n-t)}function Ml(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=0&&e<=1?t+e*(n-t):NaN}function zl(e,t){let n,i;const r={min(e){return arguments.length?(n=e||0,r):n},max(e){return arguments.length?(i=null==e?1:e,r):i},sample:()=>El(n,i),pdf:e=>Fl(e,n,i),cdf:e=>Cl(e,n,i),icdf:e=>Ml(e,n,i)};return null==t&&(t=null==e?1:e,e=0),r.min(e).max(t)}function Ol(e,t,n){let i=0,r=0;for(const o of e){const e=n(o);null==t(o)||null==e||isNaN(e)||(i+=(e-i)/++r)}return{coef:[i],predict:()=>i,rSquared:0}}function Nl(e,t,n,i){const r=i-e*e,o=Math.abs(r)<1e-24?0:(n-e*t)/r;return[t-o*e,o]}function Rl(e,t,n,i){e=e.filter((e=>{let i=t(e),r=n(e);return null!=i&&(i=+i)>=i&&null!=r&&(r=+r)>=r})),i&&e.sort(((e,n)=>t(e)-t(n)));const r=e.length,o=new Float64Array(r),a=new Float64Array(r);let s,l,u,c=0,f=0,d=0;for(u of e)o[c]=s=+t(u),a[c]=l=+n(u),++c,f+=(s-f)/c,d+=(l-d)/c;for(c=0;c<r;++c)o[c]-=f,a[c]-=d;return[o,a,f,d]}function Bl(e,t,n,i){let r,o,a=-1;for(const s of e)r=t(s),o=n(s),null!=r&&(r=+r)>=r&&null!=o&&(o=+o)>=o&&i(r,o,++a)}function Tl(e,t,n,i,r){let o=0,a=0;return Bl(e,t,n,((e,t)=>{const n=t-r(e),s=t-i;o+=n*n,a+=s*s})),1-o/a}function Pl(e,t,n){let i=0,r=0,o=0,a=0,s=0;Bl(e,t,n,((e,t)=>{++s,i+=(e-i)/s,r+=(t-r)/s,o+=(e*t-o)/s,a+=(e*e-a)/s}));const l=Nl(i,r,o,a),u=e=>l[0]+l[1]*e;return{coef:l,predict:u,rSquared:Tl(e,t,n,r,u)}}function jl(e,t,n){let i=0,r=0,o=0,a=0,s=0;Bl(e,t,n,((e,t)=>{++s,e=Math.log(e),i+=(e-i)/s,r+=(t-r)/s,o+=(e*t-o)/s,a+=(e*e-a)/s}));const l=Nl(i,r,o,a),u=e=>l[0]+l[1]*Math.log(e);return{coef:l,predict:u,rSquared:Tl(e,t,n,r,u)}}function Ll(e,t,n){const[i,r,o,a]=Rl(e,t,n);let s,l,u,c=0,f=0,d=0,h=0,p=0;Bl(e,t,n,((e,t)=>{s=i[p++],l=Math.log(t),u=s*t,c+=(t*l-c)/p,f+=(u-f)/p,d+=(u*l-d)/p,h+=(s*u-h)/p}));const[m,g]=Nl(f/a,c/a,d/a,h/a),y=e=>Math.exp(m+g*(e-o));return{coef:[Math.exp(m-g*o),g],predict:y,rSquared:Tl(e,t,n,a,y)}}function ql(e,t,n){let i=0,r=0,o=0,a=0,s=0,l=0;Bl(e,t,n,((e,t)=>{const n=Math.log(e),u=Math.log(t);++l,i+=(n-i)/l,r+=(u-r)/l,o+=(n*u-o)/l,a+=(n*n-a)/l,s+=(t-s)/l}));const u=Nl(i,r,o,a),c=e=>u[0]*Math.pow(e,u[1]);return u[0]=Math.exp(u[0]),{coef:u,predict:c,rSquared:Tl(e,t,n,s,c)}}function Ul(e,t,n){const[i,r,o,a]=Rl(e,t,n),s=i.length;let l,u,c,f,d=0,h=0,p=0,m=0,g=0;for(l=0;l<s;)u=i[l],c=r[l++],f=u*u,d+=(f-d)/l,h+=(f*u-h)/l,p+=(f*f-p)/l,m+=(u*c-m)/l,g+=(f*c-g)/l;const y=p-d*d,v=d*y-h*h,b=(g*d-m*h)/v,x=(m*y-g*h)/v,w=-b*d,_=e=>b*(e-=o)*e+x*e+w+a;return{coef:[w-x*o+b*o*o+a,x-2*b*o,b],predict:_,rSquared:Tl(e,t,n,a,_)}}function Il(e,t,n,i){if(0===i)return Ol(e,t,n);if(1===i)return Pl(e,t,n);if(2===i)return Ul(e,t,n);const[r,o,a,s]=Rl(e,t,n),l=r.length,u=[],c=[],f=i+1;let d,h,p,m,g;for(d=0;d<f;++d){for(p=0,m=0;p<l;++p)m+=Math.pow(r[p],d)*o[p];for(u.push(m),g=new Float64Array(f),h=0;h<f;++h){for(p=0,m=0;p<l;++p)m+=Math.pow(r[p],d+h);g[h]=m}c.push(g)}c.push(u);const y=function(e){const t=e.length-1,n=[];let i,r,o,a,s;for(i=0;i<t;++i){for(a=i,r=i+1;r<t;++r)Math.abs(e[i][r])>Math.abs(e[i][a])&&(a=r);for(o=i;o<t+1;++o)s=e[o][i],e[o][i]=e[o][a],e[o][a]=s;for(r=i+1;r<t;++r)for(o=t;o>=i;o--)e[o][r]-=e[o][i]*e[i][r]/e[i][i]}for(r=t-1;r>=0;--r){for(s=0,o=r+1;o<t;++o)s+=e[o][r]*n[o];n[r]=(e[t][r]-s)/e[r][r]}return n}(c),v=e=>{e-=a;let t=s+y[0]+y[1]*e+y[2]*e*e;for(d=3;d<f;++d)t+=y[d]*Math.pow(e,d);return t};return{coef:Wl(f,y,-a,s),predict:v,rSquared:Tl(e,t,n,s,v)}}function Wl(e,t,n,i){const r=Array(e);let o,a,s,l;for(o=0;o<e;++o)r[o]=0;for(o=e-1;o>=0;--o)for(s=t[o],l=1,r[o]+=s,a=1;a<=o;++a)l*=(o+1-a)/a,r[o-a]+=s*Math.pow(n,a)*l;return r[0]+=i,r}function Hl(e,t,n,i){const[r,o,a,s]=Rl(e,t,n,!0),l=r.length,u=Math.max(2,~~(i*l)),c=new Float64Array(l),f=new Float64Array(l),d=new Float64Array(l).fill(1);for(let h=-1;++h<=2;){const e=[0,u-1];for(let n=0;n<l;++n){const t=r[n],i=e[0],a=e[1],s=t-r[i]>r[a]-t?i:a;let l=0,u=0,h=0,p=0,m=0;const g=1/Math.abs(r[s]-t||1);for(let e=i;e<=a;++e){const n=r[e],i=o[e],a=Gl(Math.abs(t-n)*g)*d[e],s=n*a;l+=a,u+=s,h+=i*a,p+=i*s,m+=n*s}const[y,v]=Nl(u/l,h/l,p/l,m/l);c[n]=y+v*t,f[n]=Math.abs(o[n]-c[n]),Vl(r,n+1,e)}if(2===h)break;const t=ri(f);if(Math.abs(t)<1e-12)break;for(let n,i,r=0;r<l;++r)n=f[r]/(6*t),d[r]=n>=1?1e-12:(i=1-n*n)*i}return function(e,t,n,i){const r=e.length,o=[];let a,s=0,l=0,u=[];for(;s<r;++s)a=e[s]+n,u[0]===a?u[1]+=(t[s]-u[1])/++l:(l=0,u[1]+=i,u=[a,t[s]],o.push(u));return u[1]+=i,o}(r,c,a,s)}function Gl(e){return(e=1-e*e*e)*e*e}function Vl(e,t,n){const i=e[t];let r=n[0],o=n[1]+1;if(!(o>=e.length))for(;t>r&&e[o]-i<=i-e[r];)n[0]=++r,n[1]=o,++o}const Yl=.5*Math.PI/180;function Xl(e,t,n,i){n=n||25,i=Math.max(n,i||200);const r=t=>[t,e(t)],o=t[0],a=t[1],s=a-o,l=s/i,u=[r(o)],c=[];if(n===i){for(let e=1;e<i;++e)u.push(r(o+e/n*s));return u.push(r(a)),u}c.push(r(a));for(let m=n;--m>0;)c.push(r(o+m/n*s));let f=u[0],d=c[c.length-1];const h=1/s,p=function(e,t){let n=e,i=e;const r=t.length;for(let o=0;o<r;++o){const e=t[o][1];e<n&&(n=e),e>i&&(i=e)}return 1/(i-n)}(f[1],c);for(;d;){const e=r((f[0]+d[0])/2);e[0]-f[0]>=l&&Jl(f,e,d,h,p)>Yl?c.push(e):(f=d,u.push(d),c.pop()),d=c[c.length-1]}return u}function Jl(e,t,n,i,r){const o=Math.atan2(r*(n[1]-e[1]),i*(n[0]-e[0])),a=Math.atan2(r*(t[1]-e[1]),i*(t[0]-e[0]));return Math.abs(o-a)}function Ql(e){return e&&e.length?1===e.length?e[0]:(t=e,e=>{const n=t.length;let i=1,r=String(t[0](e));for(;i<n;++i)r+="|"+t[i](e);return r}):function(){return""};var t}function Kl(e,t,n){return n||e+(t?"_"+t:"")}const Zl=()=>{},eu={init:Zl,add:Zl,rem:Zl,idx:0},tu={values:{init:e=>e.cell.store=!0,value:e=>e.cell.data.values(),idx:-1},count:{value:e=>e.cell.num},__count__:{value:e=>e.missing+e.valid},missing:{value:e=>e.missing},valid:{value:e=>e.valid},sum:{init:e=>e.sum=0,value:e=>e.valid?e.sum:void 0,add:(e,t)=>e.sum+=+t,rem:(e,t)=>e.sum-=t},product:{init:e=>e.product=1,value:e=>e.valid?e.product:void 0,add:(e,t)=>e.product*=t,rem:(e,t)=>e.product/=t},mean:{init:e=>e.mean=0,value:e=>e.valid?e.mean:void 0,add:(e,t)=>(e.mean_d=t-e.mean,e.mean+=e.mean_d/e.valid),rem:(e,t)=>(e.mean_d=t-e.mean,e.mean-=e.valid?e.mean_d/e.valid:e.mean)},average:{value:e=>e.valid?e.mean:void 0,req:["mean"],idx:1},variance:{init:e=>e.dev=0,value:e=>e.valid>1?e.dev/(e.valid-1):void 0,add:(e,t)=>e.dev+=e.mean_d*(t-e.mean),rem:(e,t)=>e.dev-=e.mean_d*(t-e.mean),req:["mean"],idx:1},variancep:{value:e=>e.valid>1?e.dev/e.valid:void 0,req:["variance"],idx:2},stdev:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:e=>e.valid>1?Math.sqrt(e.dev/e.valid):void 0,req:["variance"],idx:2},stderr:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid*(e.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:e=>e.cell.data.distinct(e.get),req:["values"],idx:3},ci0:{value:e=>e.cell.data.ci0(e.get),req:["values"],idx:3},ci1:{value:e=>e.cell.data.ci1(e.get),req:["values"],idx:3},median:{value:e=>e.cell.data.q2(e.get),req:["values"],idx:3},q1:{value:e=>e.cell.data.q1(e.get),req:["values"],idx:3},q3:{value:e=>e.cell.data.q3(e.get),req:["values"],idx:3},min:{init:e=>e.min=void 0,value:e=>e.min=Number.isNaN(e.min)?e.cell.data.min(e.get):e.min,add:(e,t)=>{(t<e.min||void 0===e.min)&&(e.min=t)},rem:(e,t)=>{t<=e.min&&(e.min=NaN)},req:["values"],idx:4},max:{init:e=>e.max=void 0,value:e=>e.max=Number.isNaN(e.max)?e.cell.data.max(e.get):e.max,add:(e,t)=>{(t>e.max||void 0===e.max)&&(e.max=t)},rem:(e,t)=>{t>=e.max&&(e.max=NaN)},req:["values"],idx:4},argmin:{init:e=>e.argmin=void 0,value:e=>e.argmin||e.cell.data.argmin(e.get),add:(e,t,n)=>{t<e.min&&(e.argmin=n)},rem:(e,t)=>{t<=e.min&&(e.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:e=>e.argmax=void 0,value:e=>e.argmax||e.cell.data.argmax(e.get),add:(e,t,n)=>{t>e.max&&(e.argmax=n)},rem:(e,t)=>{t>=e.max&&(e.argmax=void 0)},req:["max","values"],idx:3},exponential:{init:(e,t)=>{e.exp=0,e.exp_r=t},value:e=>e.valid?e.exp*(1-e.exp_r)/(1-e.exp_r**e.valid):void 0,add:(e,t)=>e.exp=e.exp_r*e.exp+t,rem:(e,t)=>e.exp=(e.exp-t/e.exp_r**(e.valid-1))/e.exp_r},exponentialb:{value:e=>e.valid?e.exp*(1-e.exp_r):void 0,req:["exponential"],idx:1}},nu=Object.keys(tu).filter((e=>"__count__"!==e));function iu(e,t,n){return tu[e](n,t)}function ru(e,t){return e.idx-t.idx}function ou(){this.valid=0,this.missing=0,this._ops.forEach((e=>null==e.aggregate_param?e.init(this):e.init(this,e.aggregate_param)))}function au(e,t){null!=e&&""!==e?e==e&&(++this.valid,this._ops.forEach((n=>n.add(this,e,t)))):++this.missing}function su(e,t){null!=e&&""!==e?e==e&&(--this.valid,this._ops.forEach((n=>n.rem(this,e,t)))):--this.missing}function lu(e){return this._out.forEach((t=>e[t.out]=t.value(this))),e}function uu(e,t){const n=t||y,i=function(e){const t={};e.forEach((e=>t[e.name]=e));const n=e=>{e.req&&e.req.forEach((e=>{t[e]||n(t[e]=tu[e]())}))};return e.forEach(n),Object.values(t).sort(ru)}(e),r=e.slice().sort(ru);function o(e){this._ops=i,this._out=r,this.cell=e,this.init()}return o.prototype.init=ou,o.prototype.add=au,o.prototype.rem=su,o.prototype.set=lu,o.prototype.get=n,o.fields=e.map((e=>e.out)),o}function cu(e){this._key=e?q(e):_s,this.reset()}[...nu,"__count__"].forEach((e=>{tu[e]=function(e,t){return(n,i)=>D({name:e,aggregate_param:i,out:n||e},eu,t)}(e,tu[e])}));const fu=cu.prototype;function du(e){tl.call(this,null,e),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}fu.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},fu.add=function(e){this._add.push(e)},fu.rem=function(e){this._rem.push(e)},fu.values=function(){if(this._get=null,0===this._rem.length)return this._add;const e=this._add,t=this._rem,n=this._key,i=e.length,r=t.length,o=Array(i-r),a={};let s,l,u;for(s=0;s<r;++s)a[n(t[s])]=1;for(s=0,l=0;s<i;++s)a[n(u=e[s])]?a[n(u)]=0:o[l++]=u;return this._rem=[],this._add=o},fu.distinct=function(e){const n=this.values(),i={};let r,o=n.length,a=0;for(;--o>=0;)r=e(n[o])+"",t(i,r)||(i[r]=1,++a);return a},fu.extent=function(e){if(this._get!==e||!this._ext){const t=this.values(),n=Y(t,e);this._ext=[t[n[0]],t[n[1]]],this._get=e}return this._ext},fu.argmin=function(e){return this.extent(e)[0]||{}},fu.argmax=function(e){return this.extent(e)[1]||{}},fu.min=function(e){const t=this.extent(e)[0];return null!=t?e(t):void 0},fu.max=function(e){const t=this.extent(e)[1];return null!=t?e(t):void 0},fu.quartile=function(e){return this._get===e&&this._q||(this._q=sl(this.values(),e),this._get=e),this._q},fu.q1=function(e){return this.quartile(e)[0]},fu.q2=function(e){return this.quartile(e)[1]},fu.q3=function(e){return this.quartile(e)[2]},fu.ci=function(e){return this._get===e&&this._ci||(this._ci=fl(this.values(),1e3,.05,e),this._get=e),this._ci},fu.ci0=function(e){return this.ci(e)[0]},fu.ci1=function(e){return this.ci(e)[1]},du.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:nu},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]},_(du,tl,{transform(e,t){const n=this,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.modified();return n.stamp=i.stamp,n.value&&(r||t.modified(n._inputs,!0))?(n._prev=n.value,n.value=r?n.init(e):Object.create(null),t.visit(t.SOURCE,(e=>n.add(e)))):(n.value=n.value||n.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),i.modifies(n._outputs),n._drop=!1!==e.drop,e.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),t.clean()&&n._drop&&i.clean(!0).runAfter((()=>this.clean())),n.changes(i)},cross(){const e=this,t=e.value,n=e._dnames,i=n.map((()=>({}))),r=n.length;function o(e){let t,o,a,s;for(t in e)for(a=e[t].tuple,o=0;o<r;++o)i[o][s=a[n[o]]]=s}o(e._prev),o(t),function o(a,s,l){const u=n[l],c=i[l++];for(const n in c){const i=a?a+"|"+n:n;s[u]=c[n],l<r?o(i,s,l):t[i]||e.cell(i,s)}}("",{},0)},init(e){const t=this._inputs=[],n=this._outputs=[],i={};function r(e){const n=c(E(e)),r=n.length;let o,a=0;for(;a<r;++a)i[o=n[a]]||(i[o]=1,t.push(o))}this._dims=c(e.groupby),this._dnames=this._dims.map((e=>{const t=S(e);return r(e),n.push(t),t})),this.cellkey=e.key?e.key:Ql(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const o=e.fields||[null],a=e.ops||["count"],s=e.aggregate_params||[null],l=e.as||[],u=o.length,f={};let d,h,p,m,g,y,b;for(u!==a.length&&v("Unmatched number of fields and aggregate ops."),b=0;b<u;++b)d=o[b],h=a[b],p=s[b]||null,null==d&&"count"!==h&&v("Null aggregate field specified."),g=S(d),y=Kl(h,g,l[b]),n.push(y),"count"!==h?(m=f[g],m||(r(d),m=f[g]=[],m.field=d,this._measures.push(m)),"count"!==h&&(this._countOnly=!1),m.push(iu(h,p,y))):this._counts.push(y);return this._measures=this._measures.map((e=>uu(e,e.field))),Object.create(null)},cellkey:Ql(),cell(e,t){let n=this.value[e];return n?0===n.num&&this._drop&&n.stamp<this.stamp?(n.stamp=this.stamp,this._adds[this._alen++]=n):n.stamp<this.stamp&&(n.stamp=this.stamp,this._mods[this._mlen++]=n):(n=this.value[e]=this.newcell(e,t),this._adds[this._alen++]=n),n},newcell(e,t){const n={key:e,num:0,agg:null,tuple:this.newtuple(t,this._prev&&this._prev[e]),stamp:this.stamp,store:!1};if(!this._countOnly){const e=this._measures,t=e.length;n.agg=Array(t);for(let i=0;i<t;++i)n.agg[i]=new e[i](n)}return n.store&&(n.data=new cu),n},newtuple(e,t){const n=this._dnames,i=this._dims,r=i.length,o={};for(let a=0;a<r;++a)o[n[a]]=i[a](e);return t?Ss(t.tuple,o):$s(o)},clean(){const e=this.value;for(const t in e)0===e[t].num&&delete e[t]},add(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num+=1,this._countOnly)return;n.store&&n.data.add(e);const i=n.agg;for(let r=0,o=i.length;r<o;++r)i[r].add(i[r].get(e),e)},rem(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num-=1,this._countOnly)return;n.store&&n.data.rem(e);const i=n.agg;for(let r=0,o=i.length;r<o;++r)i[r].rem(i[r].get(e),e)},celltuple(e){const t=e.tuple,n=this._counts;e.store&&e.data.values();for(let i=0,r=n.length;i<r;++i)t[n[i]]=e.num;if(!this._countOnly){const n=e.agg;for(let e=0,i=n.length;e<i;++e)n[e].set(t)}return t},changes(e){const t=this._adds,n=this._mods,i=this._prev,r=this._drop,o=e.add,a=e.rem,s=e.mod;let l,u,c,f;if(i)for(u in i)l=i[u],r&&!l.num||a.push(l.tuple);for(c=0,f=this._alen;c<f;++c)o.push(this.celltuple(t[c])),t[c]=null;for(c=0,f=this._mlen;c<f;++c)l=n[c],(0===l.num&&r?a:s).push(this.celltuple(l)),n[c]=null;return this._alen=this._mlen=0,this._prev=null,e}});function hu(e){tl.call(this,null,e)}function pu(e,t,n){const i=e;let r=t||[],o=n||[],a={},s=0;return{add:e=>o.push(e),remove:e=>a[i(e)]=++s,size:()=>r.length,data:(e,t)=>(s&&(r=r.filter((e=>!a[i(e)])),a={},s=0),t&&e&&r.sort(e),o.length&&(r=e?U(e,r,o.sort(e)):r.concat(o),o=[]),r)}}function mu(e){tl.call(this,[],e)}function gu(e){Rs.call(this,null,yu,e)}function yu(e){return this.value&&!e.modified()?this.value:H(e.fields,e.orders)}function vu(e){tl.call(this,null,e)}function bu(e){tl.call(this,null,e)}hu.Definition={type:"Bin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"anchor",type:"number"},{name:"maxbins",type:"number",default:20},{name:"base",type:"number",default:10},{name:"divide",type:"number",array:!0,default:[5,2]},{name:"extent",type:"number",array:!0,length:2,required:!0},{name:"span",type:"number"},{name:"step",type:"number"},{name:"steps",type:"number",array:!0},{name:"minstep",type:"number",default:0},{name:"nice",type:"boolean",default:!0},{name:"name",type:"string"},{name:"as",type:"string",array:!0,length:2,default:["bin0","bin1"]}]},_(hu,tl,{transform(e,t){const n=!1!==e.interval,i=this._bins(e),r=i.start,o=i.step,a=e.as||["bin0","bin1"],s=a[0],l=a[1];let u;return u=e.modified()?(t=t.reflow(!0)).SOURCE:t.modified(E(e.field))?t.ADD_MOD:t.ADD,t.visit(u,n?e=>{const t=i(e);e[s]=t,e[l]=null==t?null:r+o*(1+(t-r)/o)}:e=>e[s]=i(e)),t.modifies(n?a:s)},_bins(e){if(this.value&&!e.modified())return this.value;const t=e.field,n=ul(e),i=n.step;let r,o,a=n.start,s=a+Math.ceil((n.stop-a)/i)*i;null!=(r=e.anchor)&&(o=r-(a+i*Math.floor((r-a)/i)),a+=o,s+=o);const l=function(e){let n=C(t(e));return null==n?null:n<a?-1/0:n>s?1/0:(n=Math.max(a,Math.min(n,s-i)),a+i*Math.floor(1e-14+(n-a)/i))};return l.start=a,l.stop=n.stop,l.step=i,this.value=F(l,E(t),e.name||"bin_"+S(t))}}),mu.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},_(mu,tl,{transform(e,t){const n=t.fork(t.ALL),i=pu(_s,this.value,n.materialize(n.ADD).add),r=e.sort,o=t.changed()||r&&(e.modified("sort")||t.modified(r.fields));return n.visit(n.REM,i.remove),this.modified(o),this.value=n.source=i.data(Es(r),o),t.source&&t.source.root&&(this.value.root=t.source.root),n}}),_(gu,Rs),vu.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]},_(vu,tl,{transform(e,t){const n=t=>n=>{for(var i,r=function(e,t,n){switch(t){case"upper":e=e.toUpperCase();break;case"lower":e=e.toLowerCase()}return e.match(n)}(s(n),e.case,o)||[],l=0,u=r.length;l<u;++l)a.test(i=r[l])||t(i)},i=this._parameterCheck(e,t),r=this._counts,o=this._match,a=this._stop,s=e.field,l=e.as||["text","count"],u=n((e=>r[e]=1+(r[e]||0))),c=n((e=>r[e]-=1));return i?t.visit(t.SOURCE,u):(t.visit(t.ADD,u),t.visit(t.REM,c)),this._finish(t,l)},_parameterCheck(e,t){let n=!1;return!e.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(e.stopwords||"")+"$","i"),n=!0),!e.modified("pattern")&&this._match||(this._match=new RegExp(e.pattern||"[\\w']+","g"),n=!0),(e.modified("field")||t.modified(e.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(e,t){const n=this._counts,i=this._tuples||(this._tuples={}),r=t[0],o=t[1],a=e.fork(e.NO_SOURCE|e.NO_FIELDS);let s,l,u;for(s in n)l=i[s],u=n[s]||0,!l&&u?(i[s]=l=$s({}),l[r]=s,l[o]=u,a.add.push(l)):0===u?(l&&a.rem.push(l),n[s]=null,i[s]=null):l[o]!==u&&(l[o]=u,a.mod.push(l));return a.modifies(t)}}),bu.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},_(bu,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.as||["a","b"],r=i[0],o=i[1],a=!this.value||t.changed(t.ADD_REM)||e.modified("as")||e.modified("filter");let s=this.value;return a?(s&&(n.rem=s),s=t.materialize(t.SOURCE).source,n.add=this.value=function(e,t,n,i){for(var r,o,a=[],s={},l=e.length,u=0;u<l;++u)for(s[t]=o=e[u],r=0;r<l;++r)s[n]=e[r],i(s)&&(a.push($s(s)),(s={})[t]=o);return a}(s,r,o,e.filter||x)):n.mod=s,n.source=this.value,n.modifies(i)}});const xu={kde:wl,mixture:Sl,normal:xl,lognormal:Al,uniform:zl},wu="function";function _u(e,n){const i=e[wu];t(xu,i)||v("Unknown distribution function: "+i);const r=xu[i]();for(const t in e)"field"===t?r.data((e.from||n()).map(e[t])):"distributions"===t?r[t](e[t].map((e=>_u(e,n)))):typeof r[t]===wu&&r[t](e[t]);return r}function ku(e){tl.call(this,null,e)}const $u=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],Du={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:$u},{name:"weights",type:"number",array:!0}]};function Au(e,t){return e?e.map(((e,n)=>t[n]||S(e))):null}function Su(e,t,n){const i=[],r=e=>e(l);let o,a,s,l,u,c;if(null==t)i.push(e.map(n));else for(o={},a=0,s=e.length;a<s;++a)l=e[a],u=t.map(r),c=o[u],c||(o[u]=c=[],c.dims=u,i.push(c)),c.push(n(l));return i}ku.Definition={type:"Density",metadata:{generates:!0},params:[{name:"extent",type:"number",array:!0,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:$u.concat(Du)},{name:"as",type:"string",array:!0,default:["value","density"]}]},_(ku,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=_u(e.distribution,function(e){return()=>e.materialize(e.SOURCE).source}(t)),r=e.steps||e.minsteps||25,o=e.steps||e.maxsteps||200;let a=e.method||"pdf";"pdf"!==a&&"cdf"!==a&&v("Invalid density method: "+a),e.extent||i.data||v("Missing density extent parameter."),a=i[a];const s=e.as||["value","density"],l=Xl(a,e.extent||M(i.data()),r,o).map((e=>{const t={};return t[s[0]]=e[0],t[s[1]]=e[1],$s(t)}));this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}});function Eu(e){tl.call(this,null,e)}Eu.Definition={type:"DotBin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"step",type:"number"},{name:"smooth",type:"boolean",default:!1},{name:"as",type:"string",default:"bin"}]};function Fu(e){Rs.call(this,null,Cu,e),this.modified(!0)}function Cu(e){const t=e.expr;return this.value&&!e.modified("expr")?this.value:F((n=>t(n,e)),E(t),S(t))}function Mu(e){tl.call(this,[void 0,void 0],e)}function zu(e,t){Rs.call(this,e),this.parent=t,this.count=0}function Ou(e){tl.call(this,{},e),this._keys=W();const t=this._targets=[];t.active=0,t.forEach=e=>{for(let n=0,i=t.active;n<i;++n)e(t[n],n,t)}}function Nu(e){Rs.call(this,null,Ru,e)}function Ru(e){return this.value&&!e.modified()?this.value:u(e.name)?c(e.name).map((e=>q(e))):q(e.name,e.as)}function Bu(e){tl.call(this,W(),e)}function Tu(e){tl.call(this,[],e)}function Pu(e){tl.call(this,[],e)}function ju(e){tl.call(this,null,e)}function Lu(e){tl.call(this,[],e)}_(Eu,tl,{transform(e,t){if(this.value&&!e.modified()&&!t.changed())return t;const n=t.materialize(t.SOURCE).source,i=Su(t.source,e.groupby,y),r=e.smooth||!1,o=e.field,a=e.step||((e,t)=>I(M(e,t))/30)(n,o),s=Es(((e,t)=>o(e)-o(t))),l=e.as||"bin",u=i.length;let c,f=1/0,d=-1/0,h=0;for(;h<u;++h){const e=i[h].sort(s);c=-1;for(const t of dl(e,a,r,o))t<f&&(f=t),t>d&&(d=t),e[++c][l]=t}return this.value={start:f,stop:d,step:a},t.reflow(!0).modifies(l)}}),_(Fu,Rs),Mu.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},_(Mu,tl,{transform(e,t){const n=this.value,i=e.field,r=t.changed()||t.modified(i.fields)||e.modified("field");let o=n[0],a=n[1];if((r||null==o)&&(o=1/0,a=-1/0),t.visit(r?t.SOURCE:t.ADD,(e=>{const t=C(i(e));null!=t&&(t<o&&(o=t),t>a&&(a=t))})),!Number.isFinite(o)||!Number.isFinite(a)){let e=S(i);e&&(e=` for field "${e}"`),t.dataflow.warn(`Infinite extent${e}: [${o}, ${a}]`),o=a=void 0}this.value=[o,a]}}),_(zu,Rs,{connect(e){return this.detachSubflow=e.detachSubflow,this.targets().add(e),e.source=this},add(e){this.count+=1,this.value.add.push(e)},rem(e){this.count-=1,this.value.rem.push(e)},mod(e){this.value.mod.push(e)},init(e){this.value.init(e,e.NO_SOURCE)},evaluate(){return this.value}}),_(Ou,tl,{activate(e){this._targets[this._targets.active++]=e},subflow(e,n,i,r){const o=this.value;let a,s,l=t(o,e)&&o[e];return l?l.value.stamp<i.stamp&&(l.init(i),this.activate(l)):(s=r||(s=this._group[e])&&s.tuple,a=i.dataflow,l=new zu(i.fork(i.NO_SOURCE),this),a.add(l).connect(n(a,e,s)),o[e]=l,this.activate(l)),l},clean(){const e=this.value;let t=0;for(const n in e)if(0===e[n].count){const i=e[n].detachSubflow;i&&i(),delete e[n],++t}if(t){const e=this._targets.filter((e=>e&&e.count>0));this.initTargets(e)}},initTargets(e){const t=this._targets,n=t.length,i=e?e.length:0;let r=0;for(;r<i;++r)t[r]=e[r];for(;r<n&&null!=t[r];++r)t[r]=null;t.active=i},transform(e,t){const n=t.dataflow,i=e.key,r=e.subflow,o=this._keys,a=e.modified("key"),s=e=>this.subflow(e,r,t);return this._group=e.group||{},this.initTargets(),t.visit(t.REM,(e=>{const t=_s(e),n=o.get(t);void 0!==n&&(o.delete(t),s(n).rem(e))})),t.visit(t.ADD,(e=>{const t=i(e);o.set(_s(e),t),s(t).add(e)})),a||t.modified(i.fields)?t.visit(t.MOD,(e=>{const t=_s(e),n=o.get(t),r=i(e);n===r?s(r).mod(e):(o.set(t,r),s(n).rem(e),s(r).add(e))})):t.changed(t.MOD)&&t.visit(t.MOD,(e=>{s(o.get(_s(e))).mod(e)})),a&&t.visit(t.REFLOW,(e=>{const t=_s(e),n=o.get(t),r=i(e);n!==r&&(o.set(t,r),s(n).rem(e),s(r).add(e))})),t.clean()?n.runAfter((()=>{this.clean(),o.clean()})):o.empty>n.cleanThreshold&&n.runAfter(o.clean),t}}),_(Nu,Rs),Bu.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},_(Bu,tl,{transform(e,t){const n=t.dataflow,i=this.value,r=t.fork(),o=r.add,a=r.rem,s=r.mod,l=e.expr;let u=!0;function c(t){const n=_s(t),r=l(t,e),c=i.get(n);r&&c?(i.delete(n),o.push(t)):r||c?u&&r&&!c&&s.push(t):(i.set(n,1),a.push(t))}return t.visit(t.REM,(e=>{const t=_s(e);i.has(t)?i.delete(t):a.push(e)})),t.visit(t.ADD,(t=>{l(t,e)?o.push(t):i.set(_s(t),1)})),t.visit(t.MOD,c),e.modified()&&(u=!1,t.visit(t.REFLOW,c)),i.empty>n.cleanThreshold&&n.runAfter(i.clean),r}}),Tu.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]},_(Tu,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=Au(i,e.as||[]),o=e.index||null,a=r.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{const t=i.map((t=>t(e))),s=t.reduce(((e,t)=>Math.max(e,t.length)),0);let l,u,c,f=0;for(;f<s;++f){for(u=Ds(e),l=0;l<a;++l)u[r[l]]=null==(c=t[l][f])?null:c;o&&(u[o]=f),n.add.push(u)}})),this.value=n.source=n.add,o&&n.modifies(o),n.modifies(r)}}),Pu.Definition={type:"Fold",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0,length:2,default:["key","value"]}]},_(Pu,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=i.map(S),o=e.as||["key","value"],a=o[0],s=o[1],l=i.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{for(let t,o=0;o<l;++o)t=Ds(e),t[a]=r[o],t[s]=i[o](e),n.add.push(t)})),this.value=n.source=n.add,n.modifies(o)}}),ju.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},_(ju,tl,{transform(e,t){const n=e.expr,i=e.as,r=e.modified(),o=e.initonly?t.ADD:r?t.SOURCE:t.modified(n.fields)||t.modified(i)?t.ADD_MOD:t.ADD;return r&&(t=t.materialize().reflow(!0)),e.initonly||t.modifies(i),t.visit(o,(t=>t[i]=n(t,e)))}}),_(Lu,tl,{transform(e,t){const n=t.fork(t.ALL),i=e.generator;let r,o,a,s=this.value,l=e.size-s.length;if(l>0){for(r=[];--l>=0;)r.push(a=$s(i(e))),s.push(a);n.add=n.add.length?n.materialize(n.ADD).add.concat(r):r}else o=s.slice(0,-l),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(o):o,s=s.slice(-l);return n.source=this.value=s,n}});const qu={value:"value",median:ri,mean:function(e,t){let n=0,i=0;if(void 0===t)for(let r of e)null!=r&&(r=+r)>=r&&(++n,i+=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(o=+o)>=o&&(++n,i+=o)}if(n)return i/n},min:mt,max:gt},Uu=[];function Iu(e){tl.call(this,[],e)}function Wu(e){du.call(this,e)}function Hu(e){tl.call(this,null,e)}function Gu(e){Rs.call(this,null,Vu,e)}function Vu(e){return this.value&&!e.modified()?this.value:G(e.fields,e.flat)}function Yu(e){tl.call(this,[],e),this._pending=null}function Xu(e,t,n){n.forEach($s);const i=t.fork(t.NO_FIELDS&t.NO_SOURCE);return i.rem=e.value,e.value=i.source=i.add=n,e._pending=null,i.rem.length&&i.clean(!0),i}function Ju(e){tl.call(this,{},e)}function Qu(e){Rs.call(this,null,Ku,e)}function Ku(e){if(this.value&&!e.modified())return this.value;const t=e.extents,n=t.length;let i,r,o=1/0,a=-1/0;for(i=0;i<n;++i)r=t[i],r[0]<o&&(o=r[0]),r[1]>a&&(a=r[1]);return[o,a]}function Zu(e){Rs.call(this,null,ec,e)}function ec(e){return this.value&&!e.modified()?this.value:e.values.reduce(((e,t)=>e.concat(t)),[])}function tc(e){tl.call(this,null,e)}function nc(e){du.call(this,e)}function ic(e){Ou.call(this,e)}function rc(e){tl.call(this,null,e)}function oc(e){tl.call(this,null,e)}function ac(e){tl.call(this,null,e)}Iu.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]},_(Iu,tl,{transform(e,t){var n,i,r,o,a,s,l,u,c,f,d=t.fork(t.ALL),h=function(e){var t,n=e.method||qu.value;if(null!=qu[n])return n===qu.value?(t=void 0!==e.value?e.value:0,()=>t):qu[n];v("Unrecognized imputation method: "+n)}(e),p=function(e){const t=e.field;return e=>e?t(e):NaN}(e),m=S(e.field),g=S(e.key),y=(e.groupby||[]).map(S),b=function(e,t,n,i){var r,o,a,s,l,u,c,f,d=e=>e(f),h=[],p=i?i.slice():[],m={},g={};for(p.forEach(((e,t)=>m[e]=t+1)),s=0,c=e.length;s<c;++s)u=n(f=e[s]),l=m[u]||(m[u]=p.push(u)),(a=g[o=(r=t?t.map(d):Uu)+""])||(a=g[o]=[],h.push(a),a.values=r),a[l-1]=f;return h.domain=p,h}(t.source,e.groupby,e.key,e.keyvals),x=[],w=this.value,_=b.domain.length;for(a=0,u=b.length;a<u;++a)for(r=(n=b[a]).values,i=NaN,l=0;l<_;++l)if(null==n[l]){for(o=b.domain[l],f={_impute:!0},s=0,c=r.length;s<c;++s)f[y[s]]=r[s];f[g]=o,f[m]=Number.isNaN(i)?i=h(n,p):i,x.push($s(f))}return x.length&&(d.add=d.materialize(d.ADD).add.concat(x)),w.length&&(d.rem=d.materialize(d.REM).rem.concat(w)),this.value=x,d}}),Wu.Definition={type:"JoinAggregate",metadata:{modifies:!0},params:[{name:"groupby",type:"field",array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"ops",type:"enum",array:!0,values:nu},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},_(Wu,du,{transform(e,t){const n=this,i=e.modified();let r;return n.value&&(i||t.modified(n._inputs,!0))?(r=n.value=i?n.init(e):{},t.visit(t.SOURCE,(e=>n.add(e)))):(r=n.value=n.value||this.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),n.changes(),t.visit(t.SOURCE,(e=>{D(e,r[n.cellkey(e)].tuple)})),t.reflow(i).modifies(this._outputs)},changes(){const e=this._adds,t=this._mods;let n,i;for(n=0,i=this._alen;n<i;++n)this.celltuple(e[n]),e[n]=null;for(n=0,i=this._mlen;n<i;++n)this.celltuple(t[n]),t[n]=null;this._alen=this._mlen=0}}),Hu.Definition={type:"KDE",metadata:{generates:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"cumulative",type:"boolean",default:!1},{name:"counts",type:"boolean",default:!1},{name:"bandwidth",type:"number",default:0},{name:"extent",type:"number",array:!0,length:2},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"as",type:"string",array:!0,default:["value","density"]}]},_(Hu,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=t.materialize(t.SOURCE).source,r=Su(i,e.groupby,e.field),o=(e.groupby||[]).map(S),a=e.bandwidth,s=e.cumulative?"cdf":"pdf",l=e.as||["value","density"],u=[];let c=e.extent,f=e.steps||e.minsteps||25,d=e.steps||e.maxsteps||200;"pdf"!==s&&"cdf"!==s&&v("Invalid density method: "+s),"shared"===e.resolve&&(c||(c=M(i,e.field)),f=d=e.steps||d),r.forEach((t=>{const n=wl(t,a)[s],i=e.counts?t.length:1;Xl(n,c||M(t),f,d).forEach((e=>{const n={};for(let i=0;i<o.length;++i)n[o[i]]=t.dims[i];n[l[0]]=e[0],n[l[1]]=e[1]*i,u.push($s(n))}))})),this.value&&(n.rem=this.value),this.value=n.add=n.source=u}return n}}),_(Gu,Rs),_(Yu,tl,{transform(e,t){const n=t.dataflow;if(this._pending)return Xu(this,t,this._pending);if(function(e){return e.modified("async")&&!(e.modified("values")||e.modified("url")||e.modified("format"))}(e))return t.StopPropagation;if(e.values)return Xu(this,t,n.parse(e.values,e.format));if(e.async){return{async:n.request(e.url,e.format).then((e=>(this._pending=c(e.data),e=>e.touch(this))))}}return n.request(e.url,e.format).then((e=>Xu(this,t,c(e.data))))}}),Ju.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]},_(Ju,tl,{transform(e,t){const n=e.fields,i=e.index,r=e.values,o=null==e.default?null:e.default,a=e.modified(),s=n.length;let l,u,c,f=a?t.SOURCE:t.ADD,d=t,h=e.as;return r?(u=r.length,s>1&&!h&&v('Multi-field lookup requires explicit "as" parameter.'),h&&h.length!==s*u&&v('The "as" parameter has too few output field names.'),h=h||r.map(S),l=function(e){for(var t,a,l=0,c=0;l<s;++l)if(null==(a=i.get(n[l](e))))for(t=0;t<u;++t,++c)e[h[c]]=o;else for(t=0;t<u;++t,++c)e[h[c]]=r[t](a)}):(h||v("Missing output field names."),l=function(e){for(var t,r=0;r<s;++r)t=i.get(n[r](e)),e[h[r]]=null==t?o:t}),a?d=t.reflow(!0):(c=n.some((e=>t.modified(e.fields))),f|=c?t.MOD:0),t.visit(f,l),d.modifies(h)}}),_(Qu,Rs),_(Zu,Rs),_(tc,tl,{transform(e,t){return this.modified(e.modified()),this.value=e,t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),nc.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:nu,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},_(nc,du,{_transform:du.prototype.transform,transform(e,t){return this._transform(function(e,t){const n=e.field,i=e.value,r=("count"===e.op?"__count__":e.op)||"sum",o=E(n).concat(E(i)),a=function(e,t,n){const i={},r=[];return n.visit(n.SOURCE,(t=>{const n=e(t);i[n]||(i[n]=1,r.push(n))})),r.sort(z),t?r.slice(0,t):r}(n,e.limit||0,t);t.changed()&&e.set("__pivot__",null,null,!0);return{key:e.key,groupby:e.groupby,ops:a.map((()=>r)),fields:a.map((e=>function(e,t,n,i){return F((i=>t(i)===e?n(i):NaN),i,e+"")}(e,n,i,o))),as:a.map((e=>e+"")),modified:e.modified.bind(e)}}(e,t),t)}}),_(ic,Ou,{transform(e,t){const n=e.subflow,i=e.field,r=e=>this.subflow(_s(e),n,t,e);return(e.modified("field")||i&&t.modified(E(i)))&&v("PreFacet does not support field modification."),this.initTargets(),i?(t.visit(t.MOD,(e=>{const t=r(e);i(e).forEach((e=>t.mod(e)))})),t.visit(t.ADD,(e=>{const t=r(e);i(e).forEach((e=>t.add($s(e))))})),t.visit(t.REM,(e=>{const t=r(e);i(e).forEach((e=>t.rem(e)))}))):(t.visit(t.MOD,(e=>r(e).mod(e))),t.visit(t.ADD,(e=>r(e).add(e))),t.visit(t.REM,(e=>r(e).rem(e)))),t.clean()&&t.runAfter((()=>this.clean())),t}}),rc.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},_(rc,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=Au(e.fields,e.as||[]),o=i?(e,t)=>function(e,t,n,i){for(let r=0,o=n.length;r<o;++r)t[i[r]]=n[r](e);return t}(e,t,i,r):As;let a;return this.value?a=this.value:(t=t.addAll(),a=this.value={}),t.visit(t.REM,(e=>{const t=_s(e);n.rem.push(a[t]),a[t]=null})),t.visit(t.ADD,(e=>{const t=o(e,$s({}));a[_s(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{n.mod.push(o(e,a[_s(e)]))})),n}}),_(oc,tl,{transform(e,t){return this.value=e.value,e.modified("value")?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}}),ac.Definition={type:"Quantile",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"probs",type:"number",array:!0},{name:"step",type:"number",default:.01},{name:"as",type:"string",array:!0,default:["prob","value"]}]};function sc(e){tl.call(this,null,e)}function lc(e){tl.call(this,[],e),this.count=0}function uc(e){tl.call(this,null,e)}function cc(e){tl.call(this,null,e),this.modified(!0)}function fc(e){tl.call(this,null,e)}_(ac,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.as||["prob","value"];if(this.value&&!e.modified()&&!t.changed())return n.source=this.value,n;const r=Su(t.materialize(t.SOURCE).source,e.groupby,e.field),o=(e.groupby||[]).map(S),a=[],s=e.step||.01,l=e.probs||Ht(s/2,1-1e-14,s),u=l.length;return r.forEach((e=>{const t=al(e,l);for(let n=0;n<u;++n){const r={};for(let t=0;t<o.length;++t)r[o[t]]=e.dims[t];r[i[0]]=l[n],r[i[1]]=t[n],a.push($s(r))}})),this.value&&(n.rem=this.value),this.value=n.add=n.source=a,n}}),_(sc,tl,{transform(e,t){let n,i;return this.value?i=this.value:(n=t=t.addAll(),i=this.value={}),e.derive&&(n=t.fork(t.NO_SOURCE),t.visit(t.REM,(e=>{const t=_s(e);n.rem.push(i[t]),i[t]=null})),t.visit(t.ADD,(e=>{const t=Ds(e);i[_s(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{const t=i[_s(e)];for(const i in e)t[i]=e[i],n.modifies(i);n.mod.push(t)}))),n}}),lc.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},_(lc,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.modified("size"),r=e.size,o=this.value.reduce(((e,t)=>(e[_s(t)]=1,e)),{});let a=this.value,s=this.count,l=0;function u(e){let t,i;a.length<r?a.push(e):(i=~~((s+1)*cl()),i<a.length&&i>=l&&(t=a[i],o[_s(t)]&&n.rem.push(t),a[i]=e)),++s}if(t.rem.length&&(t.visit(t.REM,(e=>{const t=_s(e);o[t]&&(o[t]=-1,n.rem.push(e)),--s})),a=a.filter((e=>-1!==o[_s(e)]))),(t.rem.length||i)&&a.length<r&&t.source&&(l=s=a.length,t.visit(t.SOURCE,(e=>{o[_s(e)]||u(e)})),l=-1),i&&a.length>r){const e=a.length-r;for(let t=0;t<e;++t)o[_s(a[t])]=-1,n.rem.push(a[t]);a=a.slice(e)}return t.mod.length&&t.visit(t.MOD,(e=>{o[_s(e)]&&n.mod.push(e)})),t.add.length&&t.visit(t.ADD,u),(t.add.length||l<0)&&(n.add=a.filter((e=>!o[_s(e)]))),this.count=s,this.value=n.source=a,n}}),uc.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]},_(uc,tl,{transform(e,t){if(this.value&&!e.modified())return;const n=t.materialize().fork(t.MOD),i=e.as||"data";return n.rem=this.value?t.rem.concat(this.value):t.rem,this.value=Ht(e.start,e.stop,e.step||1).map((e=>{const t={};return t[i]=e,$s(t)})),n.add=t.add.concat(this.value),n}}),_(cc,tl,{transform(e,t){return this.value=t.source,t.changed()?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});const dc=["unit0","unit1"];function hc(e){tl.call(this,W(),e)}function pc(e){tl.call(this,null,e)}fc.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:X,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:dc}]},_(fc,tl,{transform(e,t){const n=e.field,i=!1!==e.interval,r="utc"===e.timezone,o=this._floor(e,t),a=(r?P:j)(o.unit).offset,s=e.as||dc,l=s[0],u=s[1],c=o.step;let f=o.start||1/0,d=o.stop||-1/0,h=t.ADD;return(e.modified()||t.changed(t.REM)||t.modified(E(n)))&&(h=(t=t.reflow(!0)).SOURCE,f=1/0,d=-1/0),t.visit(h,(e=>{const t=n(e);let r,s;null==t?(e[l]=null,i&&(e[u]=null)):(e[l]=r=s=o(t),i&&(e[u]=s=a(r,c)),r<f&&(f=r),s>d&&(d=s))})),o.start=f,o.stop=d,t.modifies(i?s:l)},_floor(e,t){const n="utc"===e.timezone,{units:i,step:r}=e.units?{units:e.units,step:e.step||1}:O({extent:e.extent||M(t.materialize(t.SOURCE).source,e.field),maxbins:e.maxbins}),o=N(i),a=this.value||{},s=(n?R:B)(o,r);return s.unit=T(o),s.units=o,s.step=r,s.start=a.start,s.stop=a.stop,this.value=s}}),_(hc,tl,{transform(e,t){const n=t.dataflow,i=e.field,r=this.value,o=e=>r.set(i(e),e);let a=!0;return e.modified("field")||t.modified(i.fields)?(r.clear(),t.visit(t.SOURCE,o)):t.changed()?(t.visit(t.REM,(e=>r.delete(i(e)))),t.visit(t.ADD,o)):a=!1,this.modified(a),r.empty>n.cleanThreshold&&n.runAfter(r.clean),t.fork()}}),_(pc,tl,{transform(e,t){(!this.value||e.modified("field")||e.modified("sort")||t.changed()||e.sort&&t.modified(e.sort.fields))&&(this.value=(e.sort?t.source.slice().sort(Es(e.sort)):t.source).map(e.field))}});const mc={row_number:function(){return{next:e=>e.index+1}},rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?e=n+1:e}}},dense_rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?++e:e}}},percent_rank:function(){const e=mc.rank(),t=e.next;return{init:e.init,next:e=>(t(e)-1)/(e.data.length-1)}},cume_dist:function(){let e;return{init:()=>e=0,next:t=>{const n=t.data,i=t.compare;let r=t.index;if(e<r){for(;r+1<n.length&&!i(n[r],n[r+1]);)++r;e=r}return(1+e)/n.length}}},ntile:function(e,t){(t=+t)>0||v("ntile num must be greater than zero.");const n=mc.cume_dist(),i=n.next;return{init:n.init,next:e=>Math.ceil(t*i(e))}},lag:function(e,t){return t=+t||1,{next:n=>{const i=n.index-t;return i>=0?e(n.data[i]):null}}},lead:function(e,t){return t=+t||1,{next:n=>{const i=n.index+t,r=n.data;return i<r.length?e(r[i]):null}}},first_value:function(e){return{next:t=>e(t.data[t.i0])}},last_value:function(e){return{next:t=>e(t.data[t.i1-1])}},nth_value:function(e,t){return(t=+t)>0||v("nth_value nth must be greater than zero."),{next:n=>{const i=n.i0+(t-1);return i<n.i1?e(n.data[i]):null}}},prev_value:function(e){let t;return{init:()=>t=null,next:n=>{const i=e(n.data[n.index]);return null!=i?t=i:t}}},next_value:function(e){let t,n;return{init:()=>(t=null,n=-1),next:i=>{const r=i.data;return i.index<=n?t:(n=function(e,t,n){for(let i=t.length;n<i;++n){if(null!=e(t[n]))return n}return-1}(e,r,i.index))<0?(n=r.length,t=null):t=e(r[n])}}}};const gc=Object.keys(mc);function yc(e){const n=c(e.ops),i=c(e.fields),r=c(e.params),o=c(e.aggregate_params),a=c(e.as),s=this.outputs=[],l=this.windows=[],u={},f={},d=[],h=[];let p=!0;function m(e){c(E(e)).forEach((e=>u[e]=1))}m(e.sort),n.forEach(((e,n)=>{const u=i[n],c=r[n],g=o[n]||null,y=S(u),b=Kl(e,y,a[n]);if(m(u),s.push(b),t(mc,e))l.push(function(e,t,n,i){const r=mc[e](t,n);return{init:r.init||V,update:function(e,t){t[i]=r.next(e)}}}(e,u,c,b));else{if(null==u&&"count"!==e&&v("Null aggregate field specified."),"count"===e)return void d.push(b);p=!1;let t=f[y];t||(t=f[y]=[],t.field=u,h.push(t)),t.push(iu(e,g,b))}})),(d.length||h.length)&&(this.cell=function(e,t,n){e=e.map((e=>uu(e,e.field)));const i={num:0,agg:null,store:!1,count:t};if(!n)for(var r=e.length,o=i.agg=Array(r),a=0;a<r;++a)o[a]=new e[a](i);if(i.store)var s=i.data=new cu;return i.add=function(e){if(i.num+=1,!n){s&&s.add(e);for(let t=0;t<r;++t)o[t].add(o[t].get(e),e)}},i.rem=function(e){if(i.num-=1,!n){s&&s.rem(e);for(let t=0;t<r;++t)o[t].rem(o[t].get(e),e)}},i.set=function(e){let r,a;for(s&&s.values(),r=0,a=t.length;r<a;++r)e[t[r]]=i.num;if(!n)for(r=0,a=o.length;r<a;++r)o[r].set(e)},i.init=function(){i.num=0,s&&s.reset();for(let e=0;e<r;++e)o[e].init()},i}(h,d,p)),this.inputs=Object.keys(u)}const vc=yc.prototype;function bc(e){tl.call(this,{},e),this._mlen=0,this._mods=[]}function xc(e,t,n,i){const r=i.sort,o=r&&!i.ignorePeers,a=i.frame||[null,0],s=e.data(n),l=s.length,u=o?L(r):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:s,compare:r||g(-1)};t.init();for(let f=0;f<l;++f)wc(c,a,f,l),o&&_c(c,u),t.update(c,s[f])}function wc(e,t,n,i){e.p0=e.i0,e.p1=e.i1,e.i0=null==t[0]?0:Math.max(0,n-Math.abs(t[0])),e.i1=null==t[1]?i:Math.min(i,n+Math.abs(t[1])+1),e.index=n}function _c(e,t){const n=e.i0,i=e.i1-1,r=e.compare,o=e.data,a=o.length-1;n>0&&!r(o[n],o[n-1])&&(e.i0=t.left(o,o[n])),i<a&&!r(o[i],o[i+1])&&(e.i1=t.right(o,o[i]))}vc.init=function(){this.windows.forEach((e=>e.init())),this.cell&&this.cell.init()},vc.update=function(e,t){const n=this.cell,i=this.windows,r=e.data,o=i&&i.length;let a;if(n){for(a=e.p0;a<e.i0;++a)n.rem(r[a]);for(a=e.p1;a<e.i1;++a)n.add(r[a]);n.set(t)}for(a=0;a<o;++a)i[a].update(e,t)},bc.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:gc.concat(nu)},{name:"params",type:"number",null:!0,array:!0},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"frame",type:"number",null:!0,array:!0,length:2,default:[null,0]},{name:"ignorePeers",type:"boolean",default:!1}]},_(bc,tl,{transform(e,t){this.stamp=t.stamp;const n=e.modified(),i=Es(e.sort),r=Ql(e.groupby),o=e=>this.group(r(e));let a=this.state;a&&!n||(a=this.state=new yc(e)),n||t.modified(a.inputs)?(this.value={},t.visit(t.SOURCE,(e=>o(e).add(e)))):(t.visit(t.REM,(e=>o(e).remove(e))),t.visit(t.ADD,(e=>o(e).add(e))));for(let s=0,l=this._mlen;s<l;++s)xc(this._mods[s],a,i,e);return this._mlen=0,this._mods=[],t.reflow(n).modifies(a.outputs)},group(e){let t=this.value[e];return t||(t=this.value[e]=pu(_s),t.stamp=-1),t.stamp<this.stamp&&(t.stamp=this.stamp,this._mods[this._mlen++]=t),t}});const kc=Object.freeze(Object.defineProperty({__proto__:null,aggregate:du,bin:hu,collect:mu,compare:gu,countpattern:vu,cross:bu,density:ku,dotbin:Eu,expression:Fu,extent:Mu,facet:Ou,field:Nu,filter:Bu,flatten:Tu,fold:Pu,formula:ju,generate:Lu,impute:Iu,joinaggregate:Wu,kde:Hu,key:Gu,load:Yu,lookup:Ju,multiextent:Qu,multivalues:Zu,params:tc,pivot:nc,prefacet:ic,project:rc,proxy:oc,quantile:ac,relay:sc,sample:lc,sequence:uc,sieve:cc,subflow:zu,timeunit:fc,tupleindex:hc,values:pc,window:bc},Symbol.toStringTag,{value:"Module"}));function $c(e,t,n){var i=null,r=mn(!0),o=null,a=gn,s=null,l=pn(u);function u(u){var c,f,d,h,p,m=(u=bn(u)).length,g=!1,y=new Array(m),v=new Array(m);for(null==o&&(s=a(p=l())),c=0;c<=m;++c){if(!(c<m&&r(h=u[c],c,u))===g)if(g=!g)f=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),d=c-1;d>=f;--d)s.point(y[d],v[d]);s.lineEnd(),s.areaEnd()}g&&(y[c]=+e(h,c,u),v[c]=+t(h,c,u),s.point(i?+i(h,c,u):y[c],n?+n(h,c,u):v[c]))}if(p)return s=null,p+""||null}function c(){return xn().defined(r).curve(a).context(o)}return e="function"==typeof e?e:void 0===e?yn:mn(+e),t="function"==typeof t?t:mn(void 0===t?0:+t),n="function"==typeof n?n:void 0===n?vn:mn(+n),u.x=function(t){return arguments.length?(e="function"==typeof t?t:mn(+t),i=null,u):e},u.x0=function(t){return arguments.length?(e="function"==typeof t?t:mn(+t),u):e},u.x1=function(e){return arguments.length?(i=null==e?null:"function"==typeof e?e:mn(+e),u):i},u.y=function(e){return arguments.length?(t="function"==typeof e?e:mn(+e),n=null,u):t},u.y0=function(e){return arguments.length?(t="function"==typeof e?e:mn(+e),u):t},u.y1=function(e){return arguments.length?(n=null==e?null:"function"==typeof e?e:mn(+e),u):n},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(n)},u.lineX1=function(){return c().x(i).y(t)},u.defined=function(e){return arguments.length?(r="function"==typeof e?e:mn(!!e),u):r},u.curve=function(e){return arguments.length?(a=e,null!=o&&(s=a(o)),u):a},u.context=function(e){return arguments.length?(null==e?o=s=null:s=a(o=e),u):o},u}const Dc={draw(e,t){const n=wn(t/kn);e.moveTo(n,0),e.arc(0,0,n,0,_n)}};function Ac(e,t){if("undefined"!=typeof document&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext)return n.width=e,n.height=t,n}return null}function Sc(e){return Math.log(e)}function Ec(e){return Math.exp(e)}function Fc(e){return-Math.log(-e)}function Cc(e){return-Math.exp(-e)}function Mc(e){return isFinite(e)?+("1e"+e):e<0?0:e}function zc(e){return(t,n)=>-e(-t,n)}function Oc(e){const t=e(Sc,Ec),n=t.domain;let i,r,o=10;function a(){return i=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}(o),r=function(e){return 10===e?Mc:e===Math.E?Math.exp:t=>Math.pow(e,t)}(o),n()[0]<0?(i=zc(i),r=zc(r),e(Fc,Cc)):e(Sc,Ec),t}return t.base=function(e){return arguments.length?(o=+e,a()):o},t.domain=function(e){return arguments.length?(n(e),a()):n()},t.ticks=e=>{const t=n();let a=t[0],s=t[t.length-1];const l=s<a;l&&([a,s]=[s,a]);let u,c,f=i(a),d=i(s);const h=null==e?10:+e;let p=[];if(!(o%1)&&d-f<h){if(f=Math.floor(f),d=Math.ceil(d),a>0){for(;f<=d;++f)for(u=1;u<o;++u)if(c=f<0?u/r(-f):u*r(f),!(c<a)){if(c>s)break;p.push(c)}}else for(;f<=d;++f)for(u=o-1;u>=1;--u)if(c=f>0?u/r(-f):u*r(f),!(c<a)){if(c>s)break;p.push(c)}2*p.length<h&&(p=J(a,s,h))}else p=J(f,d,Math.min(d-f,h)).map(r);return l?p.reverse():p},t.tickFormat=(e,n)=>{if(null==e&&(e=10),null==n&&(n=10===o?"s":","),"function"!=typeof n&&(o%1||null!=(n=Q(n)).precision||(n.trim=!0),n=K(n)),e===1/0)return n;const a=Math.max(1,o*e/t.ticks().length);return e=>{let t=e/r(Math.round(i(e)));return t*o<o-.5&&(t*=o),t<=a?n(e):""}},t.nice=()=>n(_t(n(),{floor:e=>r(Math.floor(i(e))),ceil:e=>r(Math.ceil(i(e)))})),t}function Nc(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Rc(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Bc(e){var t=1,n=e(Nc(t),Rc(t));return n.constant=function(n){return arguments.length?e(Nc(t=+n),Rc(t)):t},Tt(n)}function Tc(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Pc(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function jc(e){return e<0?-e*e:e*e}function Lc(e){var t=e(Lt,Lt),n=1;return t.exponent=function(t){return arguments.length?1===(n=+t)?e(Lt,Lt):.5===n?e(Pc,jc):e(Tc(n),Tc(1/n)):n},Tt(t)}function qc(){var e=Lc(Pt());return e.copy=function(){return jt(e,qc()).exponent(e.exponent())},Hn.apply(e,arguments),e}function Uc(){var e,t,n,i,r,o=0,a=1,s=Lt,l=!1;function u(t){return null==t||isNaN(t=+t)?r:s(0===n?.5:(t=(i(t)-e)*n,l?Math.max(0,Math.min(1,t)):t))}function c(e){return function(t){var n,i;return arguments.length?([n,i]=t,s=e(n,i),u):[s(0),s(1)]}}return u.domain=function(r){return arguments.length?([o,a]=r,e=i(o=+o),t=i(a=+a),n=e===t?0:1/(t-e),u):[o,a]},u.clamp=function(e){return arguments.length?(l=!!e,u):l},u.interpolator=function(e){return arguments.length?(s=e,u):s},u.range=c(Ct),u.rangeRound=c(Rt),u.unknown=function(e){return arguments.length?(r=e,u):r},function(r){return i=r,e=r(o),t=r(a),n=e===t?0:1/(t-e),u}}function Ic(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function Wc(){var e=Tt(Uc()(Lt));return e.copy=function(){return Ic(e,Wc())},Gn.apply(e,arguments)}function Hc(){var e=Lc(Uc());return e.copy=function(){return Ic(e,Hc()).exponent(e.exponent())},Gn.apply(e,arguments)}function Gc(){var e,t,n,i,r,o,a,s=0,l=.5,u=1,c=1,f=Lt,d=!1;function h(e){return isNaN(e=+e)?a:(e=.5+((e=+o(e))-t)*(c*e<c*t?i:r),f(d?Math.max(0,Math.min(1,e)):e))}function p(e){return function(t){var n,i,r;return arguments.length?([n,i,r]=t,f=Ai(e,[n,i,r]),h):[f(0),f(.5),f(1)]}}return h.domain=function(a){return arguments.length?([s,l,u]=a,e=o(s=+s),t=o(l=+l),n=o(u=+u),i=e===t?0:.5/(t-e),r=t===n?0:.5/(n-t),c=t<e?-1:1,h):[s,l,u]},h.clamp=function(e){return arguments.length?(d=!!e,h):d},h.interpolator=function(e){return arguments.length?(f=e,h):f},h.range=p(Ct),h.rangeRound=p(Rt),h.unknown=function(e){return arguments.length?(a=e,h):a},function(a){return o=a,e=a(s),t=a(l),n=a(u),i=e===t?0:.5/(t-e),r=t===n?0:.5/(n-t),c=t<e?-1:1,h}}function Vc(){var e=Lc(Gc());return e.copy=function(){return Ic(e,Vc()).exponent(e.exponent())},Gn.apply(e,arguments)}const Yc=Jn("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Xc=Jn("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Jc=Jn("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),Qc=Jn("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),Kc=Jn("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),Zc=Jn("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),ef=Jn("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),tf=Jn("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),nf=Jn("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),rf=Jn("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function of(e,t,n){const i=e-t+2*n;return e?i>0?i:1:0}const af="linear",sf="log",lf="pow",uf="sqrt",cf="symlog",ff="time",df="utc",hf="sequential",pf="diverging",mf="quantile",gf="quantize",yf="threshold",vf="ordinal",bf="point",xf="band",wf="bin-ordinal",_f="continuous",kf="discrete",$f="discretizing",Df="interpolating",Af="temporal";function Sf(){const e=Yn().unknown(void 0),t=e.domain,n=e.range;let i,r,o=[0,1],a=!1,s=0,l=0,u=.5;function c(){const e=t().length,c=o[1]<o[0],f=o[1-c],d=of(e,s,l);let h=o[c-0];i=(f-h)/(d||1),a&&(i=Math.floor(i)),h+=(f-h-i*(e-s))*u,r=i*(1-s),a&&(h=Math.round(h),r=Math.round(r));const p=Ht(e).map((e=>h+i*e));return n(c?p.reverse():p)}return delete e.unknown,e.domain=function(e){return arguments.length?(t(e),c()):t()},e.range=function(e){return arguments.length?(o=[+e[0],+e[1]],c()):o.slice()},e.rangeRound=function(e){return o=[+e[0],+e[1]],a=!0,c()},e.bandwidth=function(){return r},e.step=function(){return i},e.round=function(e){return arguments.length?(a=!!e,c()):a},e.padding=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),s=l,c()):s},e.paddingInner=function(e){return arguments.length?(s=Math.max(0,Math.min(1,e)),c()):s},e.paddingOuter=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),c()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),c()):u},e.invertRange=function(e){if(null==e[0]||null==e[1])return;const i=o[1]<o[0],a=i?n().reverse():n(),s=a.length-1;let l,u,c,f=+e[0],d=+e[1];return f!=f||d!=d||(d<f&&(c=f,f=d,d=c),d<a[0]||f>o[1-i])?void 0:(l=Math.max(0,qt(a,f)-1),u=f===d?l:qt(a,d)-1,f-a[l]>r+1e-10&&++l,i&&(c=l,l=s-u,u=s-c),l>u?void 0:t().slice(l,u+1))},e.invert=function(t){const n=e.invertRange([t,t]);return n?n[0]:n},e.copy=function(){return Sf().domain(t()).range(o).round(a).paddingInner(s).paddingOuter(l).align(u)},c()}function Ef(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return Ef(t())},e}var Ff=Array.prototype.map;const Cf=Array.prototype.slice;const Mf=new Map,zf=Symbol("vega_scale");function Of(e){return e[zf]=!0,e}function Nf(e,t,n){return arguments.length>1?(Mf.set(e,function(e,t,n){const i=function(){const n=t();return n.invertRange||(n.invertRange=n.invert?function(e){return function(t){let n,i=t[0],r=t[1];return r<i&&(n=i,i=r,r=n),[e.invert(i),e.invert(r)]}}(n):n.invertExtent?function(e){return function(t){const n=e.range();let i,r,o,a,s=t[0],l=t[1],u=-1;for(l<s&&(r=s,s=l,l=r),o=0,a=n.length;o<a;++o)n[o]>=s&&n[o]<=l&&(u<0&&(u=o),i=o);if(!(u<0))return s=e.invertExtent(n[u]),l=e.invertExtent(n[i]),[void 0===s[0]?s[1]:s[0],void 0===l[1]?l[0]:l[1]]}}(n):void 0),n.type=e,Of(n)};return i.metadata=se(c(n)),i}(e,t,n)),this):Rf(e)?Mf.get(e):void 0}function Rf(e){return Mf.has(e)}function Bf(e,t){const n=Mf.get(e);return n&&n.metadata[t]}function Tf(e){return Bf(e,_f)}function Pf(e){return Bf(e,kf)}function jf(e){return Bf(e,$f)}function Lf(e){return Bf(e,sf)}function qf(e){return Bf(e,Df)}function Uf(e){return Bf(e,mf)}Nf("identity",(function e(t){var n;function i(e){return null==e||isNaN(e=+e)?n:e}return i.invert=i,i.domain=i.range=function(e){return arguments.length?(t=Array.from(e,Bt),i):t.slice()},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return e(t).unknown(n)},t=arguments.length?Array.from(t,Bt):[0,1],Tt(i)})),Nf(af,Ut,_f),Nf(sf,(function e(){const t=Oc(Pt()).domain([1,10]);return t.copy=()=>jt(t,e()).base(t.base()),Hn.apply(t,arguments),t}),[_f,sf]),Nf(lf,qc,_f),Nf(uf,(function(){return qc.apply(null,arguments).exponent(.5)}),_f),Nf(cf,(function e(){var t=Bc(Pt());return t.copy=function(){return jt(t,e()).constant(t.constant())},Hn.apply(t,arguments)}),_f),Nf(ff,At,[_f,Af]),Nf(df,(function(){return Hn.apply(kt(Dt,$t,ae,oe,re,ie,ne,te,ee,Z).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[_f,Af]),Nf(hf,Wc,[_f,Df]),Nf(`${hf}-${af}`,Wc,[_f,Df]),Nf(`${hf}-${sf}`,(function e(){var t=Oc(Uc()).domain([1,10]);return t.copy=function(){return Ic(t,e()).base(t.base())},Gn.apply(t,arguments)}),[_f,Df,sf]),Nf(`${hf}-${lf}`,Hc,[_f,Df]),Nf(`${hf}-${uf}`,(function(){return Hc.apply(null,arguments).exponent(.5)}),[_f,Df]),Nf(`${hf}-${cf}`,(function e(){var t=Bc(Uc());return t.copy=function(){return Ic(t,e()).constant(t.constant())},Gn.apply(t,arguments)}),[_f,Df]),Nf(`${pf}-${af}`,(function e(){var t=Tt(Gc()(Lt));return t.copy=function(){return Ic(t,e())},Gn.apply(t,arguments)}),[_f,Df]),Nf(`${pf}-${sf}`,(function e(){var t=Oc(Gc()).domain([.1,1,10]);return t.copy=function(){return Ic(t,e()).base(t.base())},Gn.apply(t,arguments)}),[_f,Df,sf]),Nf(`${pf}-${lf}`,Vc,[_f,Df]),Nf(`${pf}-${uf}`,(function(){return Vc.apply(null,arguments).exponent(.5)}),[_f,Df]),Nf(`${pf}-${cf}`,(function e(){var t=Bc(Gc());return t.copy=function(){return Ic(t,e()).constant(t.constant())},Gn.apply(t,arguments)}),[_f,Df]),Nf(mf,(function t(){var n,i=[],r=[],o=[];function a(){var e=0,t=Math.max(1,r.length);for(o=new Array(t-1);++e<t;)o[e-1]=ii(i,e/t);return s}function s(e){return null==e||isNaN(e=+e)?n:r[qt(o,e)]}return s.invertExtent=function(e){var t=r.indexOf(e);return t<0?[NaN,NaN]:[t>0?o[t-1]:i[0],t<o.length?o[t]:i[i.length-1]]},s.domain=function(t){if(!arguments.length)return i.slice();i=[];for(let e of t)null==e||isNaN(e=+e)||i.push(e);return i.sort(e),a()},s.range=function(e){return arguments.length?(r=Array.from(e),a()):r.slice()},s.unknown=function(e){return arguments.length?(n=e,s):n},s.quantiles=function(){return o.slice()},s.copy=function(){return t().domain(i).range(r).unknown(n)},Hn.apply(s,arguments)}),[$f,mf]),Nf(gf,(function e(){var t,n=0,i=1,r=1,o=[.5],a=[0,1];function s(e){return null!=e&&e<=e?a[qt(o,e,0,r)]:t}function l(){var e=-1;for(o=new Array(r);++e<r;)o[e]=((e+1)*i-(e-r)*n)/(r+1);return s}return s.domain=function(e){return arguments.length?([n,i]=e,n=+n,i=+i,l()):[n,i]},s.range=function(e){return arguments.length?(r=(a=Array.from(e)).length-1,l()):a.slice()},s.invertExtent=function(e){var t=a.indexOf(e);return t<0?[NaN,NaN]:t<1?[n,o[0]]:t>=r?[o[r-1],i]:[o[t-1],o[t]]},s.unknown=function(e){return arguments.length?(t=e,s):s},s.thresholds=function(){return o.slice()},s.copy=function(){return e().domain([n,i]).range(a).unknown(t)},Hn.apply(Tt(s),arguments)}),$f),Nf(yf,(function e(){var t,n=[.5],i=[0,1],r=1;function o(e){return null!=e&&e<=e?i[qt(n,e,0,r)]:t}return o.domain=function(e){return arguments.length?(n=Array.from(e),r=Math.min(n.length,i.length-1),o):n.slice()},o.range=function(e){return arguments.length?(i=Array.from(e),r=Math.min(n.length,i.length-1),o):i.slice()},o.invertExtent=function(e){var t=i.indexOf(e);return[n[t-1],n[t]]},o.unknown=function(e){return arguments.length?(t=e,o):t},o.copy=function(){return e().domain(n).range(i).unknown(t)},Hn.apply(o,arguments)}),$f),Nf(wf,(function e(){let t=[],n=[];function i(e){return null==e||e!=e?void 0:n[(qt(t,e)-1)%n.length]}return i.domain=function(e){return arguments.length?(t=function(e){return Ff.call(e,C)}(e),i):t.slice()},i.range=function(e){return arguments.length?(n=Cf.call(e),i):n.slice()},i.tickFormat=function(e,n){return It(t[0],T(t),null==e?10:e,n)},i.copy=function(){return e().domain(i.domain()).range(i.range())},i}),[kf,$f]),Nf(vf,Yn,kf),Nf(xf,Sf,kf),Nf(bf,(function(){return Ef(Sf().paddingInner(1))}),kf);const If=["clamp","base","constant","exponent"];function Wf(e,t){const n=t[0],i=T(t)-n;return function(t){return e(n+t*i)}}function Hf(e,t,n){return Ai(Yf(t||"rgb",n),e)}function Gf(e,t){const n=new Array(t),i=t+1;for(let r=0;r<t;)n[r]=e(++r/i);return n}function Vf(e,t,n){const i=n-t;let r,o,a;return i&&Number.isFinite(i)?(r=(o=e.type).indexOf("-"),o=r<0?o:o.slice(r+1),a=Nf(o)().domain([t,n]).range([0,1]),If.forEach((t=>e[t]?a[t](e[t]()):0)),a):g(.5)}function Yf(e,t){const n=Si[function(e){return"interpolate"+e.toLowerCase().split("-").map((e=>e[0].toUpperCase()+e.slice(1))).join("")}(e)];return null!=t&&n&&n.gamma?n.gamma(t):n}function Xf(e){if(u(e))return e;const t=e.length/6|0,n=new Array(t);for(let i=0;i<t;)n[i]="#"+e.slice(6*i,6*++i);return n}function Jf(e,t){for(const n in e)Kf(n,t(e[n]))}const Qf={};function Kf(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Qf[e]=t,this):Qf[e]}Jf({accent:Xc,category10:Yc,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:Jc,observable10:Qc,paired:Kc,pastel1:Zc,pastel2:ef,set1:tf,set2:nf,set3:rf,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"},Xf),Jf({blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},(e=>Hf(Xf(e))));const Zf="symbol",ed=e=>u(e)?e.map((e=>String(e))):String(e),td=(e,t)=>e[1]-t[1],nd=(e,t)=>t[1]-e[1];function id(e,t,r){let o;return n(t)&&(e.bins&&(t=Math.max(t,e.bins.length)),null!=r&&(t=Math.min(t,Math.floor(I(e.domain())/r||1)+1))),a(t)&&(o=t.step,t=t.interval),i(t)&&(t=e.type===ff?j(t):e.type==df?P(t):v("Only time and utc scales accept interval strings."),o&&(t=t.every(o))),t}function rd(e,t,n){let i=e.range(),r=i[0],o=T(i),a=td;if(r>o&&(i=o,o=r,r=i,a=nd),r=Math.floor(r),o=Math.ceil(o),t=t.map((t=>[t,e(t)])).filter((e=>r<=e[1]&&e[1]<=o)).sort(a).map((e=>e[0])),n>0&&t.length>1){const e=[t[0],T(t)];for(;t.length>n&&t.length>=3;)t=t.filter(((e,t)=>!(t%2)));t.length<3&&(t=e)}return t}function od(e,t){return e.bins?rd(e,e.bins,t):e.ticks?e.ticks(t):e.domain()}function ad(e,t,n,i,r,o){const a=t.type;let s=ed;if(a===ff||r===ff)s=e.timeFormat(i);else if(a===df||r===df)s=e.utcFormat(i);else if(Lf(a)){const r=e.formatFloat(i);if(o||t.bins)s=r;else{const e=sd(t,n,!1);s=t=>e(t)?r(t):""}}else if(t.tickFormat){const r=t.domain();s=e.formatSpan(r[0],r[r.length-1],n,i)}else i&&(s=e.format(i));return s}function sd(e,t,n){const i=od(e,t),r=e.base(),o=Math.log(r),a=Math.max(1,r*t/i.length),s=e=>{let t=e/Math.pow(r,Math.round(Math.log(e)/o));return t*r<r-.5&&(t*=r),t<=a};return n?i.filter(s):s}const ld={[mf]:"quantiles",[gf]:"thresholds",[yf]:"domain"},ud={[mf]:"quantiles",[gf]:"domain"};function cd(e,t){return e.bins?function(e){const t=e.slice(0,-1);return t.max=T(e),t}(e.bins):e.type===sf?sd(e,t,!0):ld[e.type]?function(e){const t=[-1/0].concat(e);return t.max=1/0,t}(e[ld[e.type]]()):od(e,t)}function fd(e,t,n,i,r,o,a){const s=ud[t.type]&&o!==ff&&o!==df?function(e,t,n){const i=t[ud[t.type]](),r=i.length;let o,a=r>1?i[1]-i[0]:i[0];for(o=1;o<r;++o)a=Math.min(a,i[o]-i[o-1]);return e.formatSpan(0,a,30,n)}(e,t,r):ad(e,t,n,r,o,a);return i===Zf&&(e=>ld[e.type]||e.bins)(t)?dd(s):"discrete"===i?pd(s):md(s)}const dd=e=>(t,n,i)=>{const r=hd(i[n+1],hd(i.max,1/0)),o=gd(t,e),a=gd(r,e);return o&&a?o+" – "+a:a?"< "+a:"≥ "+o},hd=(e,t)=>null!=e?e:t,pd=e=>(t,n)=>n?e(t):null,md=e=>t=>e(t),gd=(e,t)=>Number.isFinite(e)?t(e):null;function yd(e,t,n,r){const o=r||t.type;return i(n)&&Bf(o,Af)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),n||o!==ff?n||o!==df?fd(e,t,5,null,n,r,!0):e.utcFormat("%A, %d %B %Y, %X UTC"):e.timeFormat("%A, %d %B %Y, %X")}function vd(e,t,n){n=n||{};const i=Math.max(3,n.maxlen||7),r=yd(e,t,n.format,n.formatType);if(jf(t.type)){const e=cd(t).slice(1).map(r),n=e.length;return`${n} boundar${1===n?"y":"ies"}: ${e.join(", ")}`}if(Pf(t.type)){const e=t.domain(),n=e.length;return`${n} value${1===n?"":"s"}: ${n>i?e.slice(0,i-2).map(r).join(", ")+", ending with "+e.slice(-1).map(r):e.map(r).join(", ")}`}{const e=t.domain();return`values from ${r(e[0])} to ${r(T(e))}`}}let bd=0;const xd="p_";function wd(e){return e&&e.gradient}function _d(e,t,n){const i=e.gradient;let r=e.id,o="radial"===i?xd:"";return r||(r=e.id="gradient_"+bd++,"radial"===i?(e.x1=kd(e.x1,.5),e.y1=kd(e.y1,.5),e.r1=kd(e.r1,0),e.x2=kd(e.x2,.5),e.y2=kd(e.y2,.5),e.r2=kd(e.r2,.5),o=xd):(e.x1=kd(e.x1,0),e.y1=kd(e.y1,0),e.x2=kd(e.x2,1),e.y2=kd(e.y2,0))),t[r]=e,"url("+(n||"")+"#"+o+r+")"}function kd(e,t){return null!=e?e:t}function $d(e,t){var n,i=[];return n={gradient:"linear",x1:e?e[0]:0,y1:e?e[1]:0,x2:t?t[0]:1,y2:t?t[1]:0,stops:i,stop:function(e,t){return i.push({offset:e,color:t}),n}}}const Dd={basis:{curve:Ln},"basis-closed":{curve:jn},"basis-open":{curve:Pn},bundle:{curve:Tn,tension:"beta",value:.85},cardinal:{curve:Bn,tension:"tension",value:0},"cardinal-open":{curve:Rn,tension:"tension",value:0},"cardinal-closed":{curve:Nn,tension:"tension",value:0},"catmull-rom":{curve:On,tension:"alpha",value:.5},"catmull-rom-closed":{curve:zn,tension:"alpha",value:.5},"catmull-rom-open":{curve:Mn,tension:"alpha",value:.5},linear:{curve:gn},"linear-closed":{curve:Cn},monotone:{horizontal:Fn,vertical:En},natural:{curve:Sn},step:{curve:An},"step-after":{curve:Dn},"step-before":{curve:$n}};function Ad(e,n,i){var r=t(Dd,e)&&Dd[e],o=null;return r&&(o=r.curve||r[n||"vertical"],r.tension&&null!=i&&(o=o[r.tension](i))),o}const Sd={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},Ed=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,Fd=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,Cd=/^((\s+,?\s*)|(,\s*))/,Md=/^[01]/;function zd(e){const t=[];return(e.match(Ed)||[]).forEach((e=>{let n=e[0];const i=n.toLowerCase(),r=Sd[i],o=function(e,t,n){const i=[];for(let r=0;t&&r<n.length;)for(let o=0;o<t;++o){const t="a"!==e||3!==o&&4!==o?Fd:Md,a=n.slice(r).match(t);if(null===a)throw Error("Invalid SVG path, incorrect parameter type");r+=a[0].length,i.push(+a[0]);const s=n.slice(r).match(Cd);null!==s&&(r+=s[0].length)}return i}(i,r,e.slice(1).trim()),a=o.length;if(a<r||a&&a%r!=0)throw Error("Invalid SVG path, incorrect parameter count");if(t.push([n,...o.slice(0,r)]),a!==r){"m"===i&&(n="M"===n?"L":"l");for(let e=r;e<a;e+=r)t.push([n,...o.slice(e,e+r)])}})),t}const Od=Math.PI/180,Nd=Math.PI/2,Rd=2*Math.PI,Bd=Math.sqrt(3)/2;var Td={},Pd={},jd=[].join;function Ld(e){const t=jd.call(e);if(Pd[t])return Pd[t];var n=e[0],i=e[1],r=e[2],o=e[3],a=e[4],s=e[5],l=e[6],u=e[7];const c=u*a,f=-l*s,d=l*a,h=u*s,p=Math.cos(r),m=Math.sin(r),g=Math.cos(o),y=Math.sin(o),v=.5*(o-r),b=Math.sin(.5*v),x=8/3*b*b/Math.sin(v),w=n+p-x*m,_=i+m+x*p,k=n+g,$=i+y,D=k+x*y,A=$-x*g;return Pd[t]=[c*w+f*_,d*w+h*_,c*D+f*A,d*D+h*A,c*k+f*$,d*k+h*$]}const qd=["l",0,0,0,0,0,0,0];function Ud(e,t,n){const i=qd[0]=e[0];if("a"===i||"A"===i)qd[1]=t*e[1],qd[2]=n*e[2],qd[3]=e[3],qd[4]=e[4],qd[5]=e[5],qd[6]=t*e[6],qd[7]=n*e[7];else if("h"===i||"H"===i)qd[1]=t*e[1];else if("v"===i||"V"===i)qd[1]=n*e[1];else for(var r=1,o=e.length;r<o;++r)qd[r]=(r%2==1?t:n)*e[r];return qd}function Id(e,t,n,i,r,o){var a,s,l,u,c,f=null,d=0,h=0,p=0,m=0,g=0,y=0;null==n&&(n=0),null==i&&(i=0),null==r&&(r=1),null==o&&(o=r),e.beginPath&&e.beginPath();for(var v=0,b=t.length;v<b;++v){switch(a=t[v],1===r&&1===o||(a=Ud(a,r,o)),a[0]){case"l":d+=a[1],h+=a[2],e.lineTo(d+n,h+i);break;case"L":d=a[1],h=a[2],e.lineTo(d+n,h+i);break;case"h":d+=a[1],e.lineTo(d+n,h+i);break;case"H":d=a[1],e.lineTo(d+n,h+i);break;case"v":h+=a[1],e.lineTo(d+n,h+i);break;case"V":h=a[1],e.lineTo(d+n,h+i);break;case"m":g=d+=a[1],y=h+=a[2],e.moveTo(d+n,h+i);break;case"M":g=d=a[1],y=h=a[2],e.moveTo(d+n,h+i);break;case"c":s=d+a[5],l=h+a[6],p=d+a[3],m=h+a[4],e.bezierCurveTo(d+a[1]+n,h+a[2]+i,p+n,m+i,s+n,l+i),d=s,h=l;break;case"C":d=a[5],h=a[6],p=a[3],m=a[4],e.bezierCurveTo(a[1]+n,a[2]+i,p+n,m+i,d+n,h+i);break;case"s":s=d+a[3],l=h+a[4],p=2*d-p,m=2*h-m,e.bezierCurveTo(p+n,m+i,d+a[1]+n,h+a[2]+i,s+n,l+i),p=d+a[1],m=h+a[2],d=s,h=l;break;case"S":s=a[3],l=a[4],p=2*d-p,m=2*h-m,e.bezierCurveTo(p+n,m+i,a[1]+n,a[2]+i,s+n,l+i),d=s,h=l,p=a[1],m=a[2];break;case"q":s=d+a[3],l=h+a[4],p=d+a[1],m=h+a[2],e.quadraticCurveTo(p+n,m+i,s+n,l+i),d=s,h=l;break;case"Q":s=a[3],l=a[4],e.quadraticCurveTo(a[1]+n,a[2]+i,s+n,l+i),d=s,h=l,p=a[1],m=a[2];break;case"t":s=d+a[1],l=h+a[2],null===f[0].match(/[QqTt]/)?(p=d,m=h):"t"===f[0]?(p=2*d-u,m=2*h-c):"q"===f[0]&&(p=2*d-p,m=2*h-m),u=p,c=m,e.quadraticCurveTo(p+n,m+i,s+n,l+i),h=l,p=(d=s)+a[1],m=h+a[2];break;case"T":s=a[1],l=a[2],p=2*d-p,m=2*h-m,e.quadraticCurveTo(p+n,m+i,s+n,l+i),d=s,h=l;break;case"a":Wd(e,d+n,h+i,[a[1],a[2],a[3],a[4],a[5],a[6]+d+n,a[7]+h+i]),d+=a[6],h+=a[7];break;case"A":Wd(e,d+n,h+i,[a[1],a[2],a[3],a[4],a[5],a[6]+n,a[7]+i]),d=a[6],h=a[7];break;case"z":case"Z":d=g,h=y,e.closePath()}f=a}}function Wd(e,t,n,i){const r=function(e,t,n,i,r,o,a,s,l){const u=jd.call(arguments);if(Td[u])return Td[u];const c=a*Od,f=Math.sin(c),d=Math.cos(c),h=d*(s-e)*.5+f*(l-t)*.5,p=d*(l-t)*.5-f*(s-e)*.5;let m=h*h/((n=Math.abs(n))*n)+p*p/((i=Math.abs(i))*i);m>1&&(m=Math.sqrt(m),n*=m,i*=m);const g=d/n,y=f/n,v=-f/i,b=d/i,x=g*s+y*l,w=v*s+b*l,_=g*e+y*t,k=v*e+b*t;let $=1/((_-x)*(_-x)+(k-w)*(k-w))-.25;$<0&&($=0);let D=Math.sqrt($);o==r&&(D=-D);const A=.5*(x+_)-D*(k-w),S=.5*(w+k)+D*(_-x),E=Math.atan2(w-S,x-A);let F=Math.atan2(k-S,_-A)-E;F<0&&1===o?F+=Rd:F>0&&0===o&&(F-=Rd);const C=Math.ceil(Math.abs(F/(Nd+.001))),M=[];for(let z=0;z<C;++z){const e=E+z*F/C,t=E+(z+1)*F/C;M[z]=[A,S,e,t,n,i,f,d]}return Td[u]=M}(i[5],i[6],i[0],i[1],i[3],i[4],i[2],t,n);for(let o=0;o<r.length;++o){const t=Ld(r[o]);e.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5])}}const Hd=.5773502691896257,Gd={circle:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(n,0),e.arc(0,0,n,0,Rd)}},cross:{draw:function(e,t){var n=Math.sqrt(t)/2,i=n/2.5;e.moveTo(-n,-i),e.lineTo(-n,i),e.lineTo(-i,i),e.lineTo(-i,n),e.lineTo(i,n),e.lineTo(i,i),e.lineTo(n,i),e.lineTo(n,-i),e.lineTo(i,-i),e.lineTo(i,-n),e.lineTo(-i,-n),e.lineTo(-i,-i),e.closePath()}},diamond:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(0,-n),e.lineTo(n,0),e.lineTo(0,n),e.closePath()}},square:{draw:function(e,t){var n=Math.sqrt(t),i=-n/2;e.rect(i,i,n,n)}},arrow:{draw:function(e,t){var n=Math.sqrt(t)/2,i=n/7,r=n/2.5,o=n/8;e.moveTo(-i,n),e.lineTo(i,n),e.lineTo(i,-o),e.lineTo(r,-o),e.lineTo(0,-n),e.lineTo(-r,-o),e.lineTo(-i,-o),e.closePath()}},wedge:{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n,r=i-n*Hd,o=n/4;e.moveTo(0,-i-r),e.lineTo(-o,i-r),e.lineTo(o,i-r),e.closePath()}},triangle:{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n,r=i-n*Hd;e.moveTo(0,-i-r),e.lineTo(-n,i-r),e.lineTo(n,i-r),e.closePath()}},"triangle-up":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n;e.moveTo(0,-i),e.lineTo(-n,i),e.lineTo(n,i),e.closePath()}},"triangle-down":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n;e.moveTo(0,i),e.lineTo(-n,-i),e.lineTo(n,-i),e.closePath()}},"triangle-right":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n;e.moveTo(i,0),e.lineTo(-i,-n),e.lineTo(-i,n),e.closePath()}},"triangle-left":{draw:function(e,t){var n=Math.sqrt(t)/2,i=Bd*n;e.moveTo(-i,0),e.lineTo(i,-n),e.lineTo(i,n),e.closePath()}},stroke:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(n,0)}}};function Vd(e){return t(Gd,e)?Gd[e]:function(e){if(!t(Yd,e)){const t=zd(e);Yd[e]={draw:function(e,n){Id(e,t,0,0,Math.sqrt(n)/2)}}}return Yd[e]}(e)}var Yd={};const Xd=.448084975506;function Jd(e){return e.x}function Qd(e){return e.y}function Kd(e){return e.width}function Zd(e){return e.height}function eh(e){return"function"==typeof e?e:()=>+e}function th(e,t,n){return Math.max(t,Math.min(e,n))}function nh(){var e=Jd,t=Qd,n=Kd,i=Zd,r=eh(0),o=r,a=r,s=r,l=null;function u(u,c,f){var d,h=null!=c?c:+e.call(this,u),p=null!=f?f:+t.call(this,u),m=+n.call(this,u),g=+i.call(this,u),y=Math.min(m,g)/2,v=th(+r.call(this,u),0,y),b=th(+o.call(this,u),0,y),x=th(+a.call(this,u),0,y),w=th(+s.call(this,u),0,y);if(l||(l=d=qn()),v<=0&&b<=0&&x<=0&&w<=0)l.rect(h,p,m,g);else{var _=h+m,k=p+g;l.moveTo(h+v,p),l.lineTo(_-b,p),l.bezierCurveTo(_-Xd*b,p,_,p+Xd*b,_,p+b),l.lineTo(_,k-w),l.bezierCurveTo(_,k-Xd*w,_-Xd*w,k,_-w,k),l.lineTo(h+x,k),l.bezierCurveTo(h+Xd*x,k,h,k-Xd*x,h,k-x),l.lineTo(h,p+v),l.bezierCurveTo(h,p+Xd*v,h+Xd*v,p,h+v,p),l.closePath()}if(d)return l=null,d+""||null}return u.x=function(t){return arguments.length?(e=eh(t),u):e},u.y=function(e){return arguments.length?(t=eh(e),u):t},u.width=function(e){return arguments.length?(n=eh(e),u):n},u.height=function(e){return arguments.length?(i=eh(e),u):i},u.cornerRadius=function(e,t,n,i){return arguments.length?(r=eh(e),o=null!=t?eh(t):r,s=null!=n?eh(n):r,a=null!=i?eh(i):o,u):r},u.context=function(e){return arguments.length?(l=null==e?null:e,u):l},u}function ih(){var e,t,n,i,r,o,a,s,l=null;function u(e,t,n){const i=n/2;if(r){var u=a-t,c=e-o;if(u||c){var f=Math.hypot(u,c),d=(u/=f)*s,h=(c/=f)*s,p=Math.atan2(c,u);l.moveTo(o-d,a-h),l.lineTo(e-u*i,t-c*i),l.arc(e,t,i,p-Math.PI,p),l.lineTo(o+d,a+h),l.arc(o,a,s,p,p+Math.PI)}else l.arc(e,t,i,0,Rd);l.closePath()}else r=1;o=e,a=t,s=i}function c(o){var a,s,c,f=o.length,d=!1;for(null==l&&(l=c=qn()),a=0;a<=f;++a)!(a<f&&i(s=o[a],a,o))===d&&(d=!d)&&(r=0),d&&u(+e(s,a,o),+t(s,a,o),+n(s,a,o));if(c)return l=null,c+""||null}return c.x=function(t){return arguments.length?(e=t,c):e},c.y=function(e){return arguments.length?(t=e,c):t},c.size=function(e){return arguments.length?(n=e,c):n},c.defined=function(e){return arguments.length?(i=e,c):i},c.context=function(e){return arguments.length?(l=null==e?null:e,c):l},c}function rh(e,t){return null!=e?e:t}const oh=e=>e.x||0,ah=e=>e.y||0,sh=e=>!(!1===e.defined),lh=Qn().startAngle((e=>e.startAngle||0)).endAngle((e=>e.endAngle||0)).padAngle((e=>e.padAngle||0)).innerRadius((e=>e.innerRadius||0)).outerRadius((e=>e.outerRadius||0)).cornerRadius((e=>e.cornerRadius||0)),uh=$c().x(oh).y1(ah).y0((e=>(e.y||0)+(e.height||0))).defined(sh),ch=$c().y(ah).x1(oh).x0((e=>(e.x||0)+(e.width||0))).defined(sh),fh=xn().x(oh).y(ah).defined(sh),dh=nh().x(oh).y(ah).width((e=>e.width||0)).height((e=>e.height||0)).cornerRadius((e=>rh(e.cornerRadiusTopLeft,e.cornerRadius)||0),(e=>rh(e.cornerRadiusTopRight,e.cornerRadius)||0),(e=>rh(e.cornerRadiusBottomRight,e.cornerRadius)||0),(e=>rh(e.cornerRadiusBottomLeft,e.cornerRadius)||0)),hh=function(e,t){let n=null,i=pn(r);function r(){let r;if(n||(n=r=i()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),r)return n=null,r+""||null}return e="function"==typeof e?e:mn(e||Dc),t="function"==typeof t?t:mn(void 0===t?64:+t),r.type=function(t){return arguments.length?(e="function"==typeof t?t:mn(t),r):e},r.size=function(e){return arguments.length?(t="function"==typeof e?e:mn(+e),r):t},r.context=function(e){return arguments.length?(n=null==e?null:e,r):n},r}().type((e=>Vd(e.shape||"circle"))).size((e=>rh(e.size,64))),ph=ih().x(oh).y(ah).defined(sh).size((e=>e.size||1));function mh(e){return e.cornerRadius||e.cornerRadiusTopLeft||e.cornerRadiusTopRight||e.cornerRadiusBottomRight||e.cornerRadiusBottomLeft}function gh(e,t,n,i){return dh.context(e)(t,n,i)}var yh=1;function vh(){yh=1}function bh(e,t,n){var i=t.clip,r=e._defs,o=t.clip_id||(t.clip_id="clip"+yh++),a=r.clipping[o]||(r.clipping[o]={id:o});return m(i)?a.path=i(null):mh(n)?a.path=gh(null,n,0,0):(a.width=n.width||0,a.height=n.height||0),"url(#"+o+")"}function xh(e){this.clear(),e&&this.union(e)}function wh(e){this.mark=e,this.bounds=this.bounds||new xh}function _h(e){wh.call(this,e),this.items=this.items||[]}xh.prototype={clone(){return new xh(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(e){return this.x1===e.x1&&this.y1===e.y1&&this.x2===e.x2&&this.y2===e.y2},set(e,t,n,i){return n<e?(this.x2=e,this.x1=n):(this.x1=e,this.x2=n),i<t?(this.y2=t,this.y1=i):(this.y1=t,this.y2=i),this},add(e,t){return e<this.x1&&(this.x1=e),t<this.y1&&(this.y1=t),e>this.x2&&(this.x2=e),t>this.y2&&(this.y2=t),this},expand(e){return this.x1-=e,this.y1-=e,this.x2+=e,this.y2+=e,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(e){return this.x1*=e,this.y1*=e,this.x2*=e,this.y2*=e,this},translate(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this},rotate(e,t,n){const i=this.rotatedPoints(e,t,n);return this.clear().add(i[0],i[1]).add(i[2],i[3]).add(i[4],i[5]).add(i[6],i[7])},rotatedPoints(e,t,n){var{x1:i,y1:r,x2:o,y2:a}=this,s=Math.cos(e),l=Math.sin(e),u=t-t*s+n*l,c=n-t*l-n*s;return[s*i-l*r+u,l*i+s*r+c,s*i-l*a+u,l*i+s*a+c,s*o-l*r+u,l*o+s*r+c,s*o-l*a+u,l*o+s*a+c]},union(e){return e.x1<this.x1&&(this.x1=e.x1),e.y1<this.y1&&(this.y1=e.y1),e.x2>this.x2&&(this.x2=e.x2),e.y2>this.y2&&(this.y2=e.y2),this},intersect(e){return e.x1>this.x1&&(this.x1=e.x1),e.y1>this.y1&&(this.y1=e.y1),e.x2<this.x2&&(this.x2=e.x2),e.y2<this.y2&&(this.y2=e.y2),this},encloses(e){return e&&this.x1<=e.x1&&this.x2>=e.x2&&this.y1<=e.y1&&this.y2>=e.y2},alignsWith(e){return e&&(this.x1==e.x1||this.x2==e.x2||this.y1==e.y1||this.y2==e.y2)},intersects(e){return e&&!(this.x2<e.x1||this.x1>e.x2||this.y2<e.y1||this.y1>e.y2)},contains(e,t){return!(e<this.x1||e>this.x2||t<this.y1||t>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}},_(_h,wh);class kh{constructor(e){this._pending=0,this._loader=e||p()}pending(){return this._pending}sanitizeURL(e){const t=this;return $h(t),t._loader.sanitize(e,{context:"href"}).then((e=>(Dh(t),e))).catch((()=>(Dh(t),null)))}loadImage(e){const n=this,i="undefined"!=typeof Image?Image:null;return $h(n),n._loader.sanitize(e,{context:"image"}).then((e=>{const r=e.href;if(!r||!i)throw{url:r};const o=new i,a=t(e,"crossOrigin")?e.crossOrigin:"anonymous";return null!=a&&(o.crossOrigin=a),o.onload=()=>Dh(n),o.onerror=()=>Dh(n),o.src=r,o})).catch((e=>(Dh(n),{complete:!1,width:0,height:0,src:e&&e.url||""})))}ready(){const e=this;return new Promise((t=>{!function n(i){e.pending()?setTimeout((()=>{n(!0)}),10):t(i)}(!1)}))}}function $h(e){e._pending+=1}function Dh(e){e._pending-=1}function Ah(e,t,n){if(t.stroke&&0!==t.opacity&&0!==t.strokeOpacity){const i=null!=t.strokeWidth?+t.strokeWidth:1;e.expand(i+(n?function(e,t){return e.strokeJoin&&"miter"!==e.strokeJoin?0:t}(t,i):0))}return e}const Sh=Rd-1e-8;let Eh,Fh,Ch,Mh,zh,Oh,Nh,Rh;const Bh=(e,t)=>Eh.add(e,t),Th=(e,t)=>Bh(Fh=e,Ch=t),Ph=e=>Bh(e,Eh.y1),jh=e=>Bh(Eh.x1,e),Lh=(e,t)=>zh*e+Nh*t,qh=(e,t)=>Oh*e+Rh*t,Uh=(e,t)=>Bh(Lh(e,t),qh(e,t)),Ih=(e,t)=>Th(Lh(e,t),qh(e,t));function Wh(e,t){return Eh=e,t?(Mh=t*Od,zh=Rh=Math.cos(Mh),Oh=Math.sin(Mh),Nh=-Oh):(zh=Rh=1,Mh=Oh=Nh=0),Hh}const Hh={beginPath(){},closePath(){},moveTo:Ih,lineTo:Ih,rect(e,t,n,i){Mh?(Uh(e+n,t),Uh(e+n,t+i),Uh(e,t+i),Ih(e,t)):(Bh(e+n,t+i),Th(e,t))},quadraticCurveTo(e,t,n,i){const r=Lh(e,t),o=qh(e,t),a=Lh(n,i),s=qh(n,i);Gh(Fh,r,a,Ph),Gh(Ch,o,s,jh),Th(a,s)},bezierCurveTo(e,t,n,i,r,o){const a=Lh(e,t),s=qh(e,t),l=Lh(n,i),u=qh(n,i),c=Lh(r,o),f=qh(r,o);Vh(Fh,a,l,c,Ph),Vh(Ch,s,u,f,jh),Th(c,f)},arc(e,t,n,i,r,o){if(i+=Mh,r+=Mh,Fh=n*Math.cos(r)+e,Ch=n*Math.sin(r)+t,Math.abs(r-i)>Sh)Bh(e-n,t-n),Bh(e+n,t+n);else{const a=i=>Bh(n*Math.cos(i)+e,n*Math.sin(i)+t);let s,l;if(a(i),a(r),r!==i)if((i%=Rd)<0&&(i+=Rd),(r%=Rd)<0&&(r+=Rd),r<i&&(o=!o,s=i,i=r,r=s),o)for(r-=Rd,s=i-i%Nd,l=0;l<4&&s>r;++l,s-=Nd)a(s);else for(s=i-i%Nd+Nd,l=0;l<4&&s<r;++l,s+=Nd)a(s)}}};function Gh(e,t,n,i){const r=(e-t)/(e+n-2*t);0<r&&r<1&&i(e+(t-e)*r)}function Vh(e,t,n,i,r){const o=i-e+3*t-3*n,a=e+n-2*t,s=e-t;let l,u=0,c=0;Math.abs(o)>1e-14?(l=a*a+s*o,l>=0&&(l=Math.sqrt(l),u=(-a+l)/o,c=(-a-l)/o)):u=.5*s/a,0<u&&u<1&&r(Yh(u,e,t,n,i)),0<c&&c<1&&r(Yh(c,e,t,n,i))}function Yh(e,t,n,i,r){const o=1-e,a=o*o,s=e*e;return a*o*t+3*a*e*n+3*o*s*i+s*e*r}var Xh=(Xh=Ac(1,1))?Xh.getContext("2d"):null;const Jh=new xh;function Qh(e){return function(t,n){if(!Xh)return!0;e(Xh,t),Jh.clear().union(t.bounds).intersect(n).round();const{x1:i,y1:r,x2:o,y2:a}=Jh;for(let e=r;e<=a;++e)for(let t=i;t<=o;++t)if(Xh.isPointInPath(t,e))return!0;return!1}}function Kh(e,t){return t.contains(e.x||0,e.y||0)}function Zh(e,t){const n=e.x||0,i=e.y||0,r=e.width||0,o=e.height||0;return t.intersects(Jh.set(n,i,n+r,i+o))}function ep(e,t){const n=e.x||0,i=e.y||0;return tp(t,n,i,null!=e.x2?e.x2:n,null!=e.y2?e.y2:i)}function tp(e,t,n,i,r){const{x1:o,y1:a,x2:s,y2:l}=e,u=i-t,c=r-n;let f,d,h,p,m=0,g=1;for(p=0;p<4;++p){if(0===p&&(f=-u,d=-(o-t)),1===p&&(f=u,d=s-t),2===p&&(f=-c,d=-(a-n)),3===p&&(f=c,d=l-n),Math.abs(f)<1e-10&&d<0)return!1;if(h=d/f,f<0){if(h>g)return!1;h>m&&(m=h)}else if(f>0){if(h<m)return!1;h<g&&(g=h)}}return!0}function np(e,t){e.globalCompositeOperation=t.blend||"source-over"}function ip(e,t){return null==e?t:e}function rp(e,t){const n=t.length;for(let i=0;i<n;++i)e.addColorStop(t[i].offset,t[i].color);return e}function op(e,t,n){return wd(n)?function(e,t,n){const i=n.width(),r=n.height();let o;if("radial"===t.gradient)o=e.createRadialGradient(n.x1+ip(t.x1,.5)*i,n.y1+ip(t.y1,.5)*r,Math.max(i,r)*ip(t.r1,0),n.x1+ip(t.x2,.5)*i,n.y1+ip(t.y2,.5)*r,Math.max(i,r)*ip(t.r2,.5));else{const a=ip(t.x1,0),s=ip(t.y1,0),l=ip(t.x2,1),u=ip(t.y2,0);if(a!==l&&s!==u&&i!==r){const n=Ac(Math.ceil(i),Math.ceil(r)),o=n.getContext("2d");return o.scale(i,r),o.fillStyle=rp(o.createLinearGradient(a,s,l,u),t.stops),o.fillRect(0,0,i,r),e.createPattern(n,"no-repeat")}o=e.createLinearGradient(n.x1+a*i,n.y1+s*r,n.x1+l*i,n.y1+u*r)}return rp(o,t.stops)}(e,n,t.bounds):n}function ap(e,t,n){return(n*=null==t.fillOpacity?1:t.fillOpacity)>0&&(e.globalAlpha=n,e.fillStyle=op(e,t,t.fill),!0)}var sp=[];function lp(e,t,n){var i=null!=(i=t.strokeWidth)?i:1;return!(i<=0)&&((n*=null==t.strokeOpacity?1:t.strokeOpacity)>0&&(e.globalAlpha=n,e.strokeStyle=op(e,t,t.stroke),e.lineWidth=i,e.lineCap=t.strokeCap||"butt",e.lineJoin=t.strokeJoin||"miter",e.miterLimit=t.strokeMiterLimit||10,e.setLineDash&&(e.setLineDash(t.strokeDash||sp),e.lineDashOffset=t.strokeDashOffset||0),!0))}function up(e,t){return e.zindex-t.zindex||e.index-t.index}function cp(e){if(!e.zdirty)return e.zitems;var t,n,i,r=e.items,o=[];for(n=0,i=r.length;n<i;++n)(t=r[n]).index=n,t.zindex&&o.push(t);return e.zdirty=!1,e.zitems=o.sort(up)}function fp(e,t){var n,i,r=e.items;if(!r||!r.length)return;const o=cp(e);if(o&&o.length){for(n=0,i=r.length;n<i;++n)r[n].zindex||t(r[n]);r=o}for(n=0,i=r.length;n<i;++n)t(r[n])}function dp(e,t){var n,i,r=e.items;if(!r||!r.length)return null;const o=cp(e);for(o&&o.length&&(r=o),i=r.length;--i>=0;)if(n=t(r[i]))return n;if(r===o)for(i=(r=e.items).length;--i>=0;)if(!r[i].zindex&&(n=t(r[i])))return n;return null}function hp(e){return function(t,n,i){fp(n,(n=>{i&&!i.intersects(n.bounds)||pp(e,t,n,n)}))}}function pp(e,t,n,i){var r=null==n.opacity?1:n.opacity;0!==r&&(e(t,i)||(np(t,n),n.fill&&ap(t,n,r)&&t.fill(),n.stroke&&lp(t,n,r)&&t.stroke()))}function mp(e){return e=e||x,function(t,n,i,r,o,a){return i*=t.pixelRatio,r*=t.pixelRatio,dp(n,(n=>{const s=n.bounds;if((!s||s.contains(o,a))&&s)return e(t,n,i,r,o,a)?n:void 0}))}}function gp(e,t){return function(n,i,r,o){var a,s,l=Array.isArray(i)?i[0]:i,u=null==t?l.fill:t,c=l.stroke&&n.isPointInStroke;return c&&(a=l.strokeWidth,s=l.strokeCap,n.lineWidth=null!=a?a:1,n.lineCap=null!=s?s:"butt"),!e(n,i)&&(u&&n.isPointInPath(r,o)||c&&n.isPointInStroke(r,o))}}function yp(e){return mp(gp(e))}function vp(e,t){return"translate("+e+","+t+")"}function bp(e){return"rotate("+e+")"}function xp(e){return vp(e.x||0,e.y||0)}function wp(e,t,n){function i(e,n){var i=n.x||0,r=n.y||0,o=n.angle||0;e.translate(i,r),o&&e.rotate(o*=Od),e.beginPath(),t(e,n),o&&e.rotate(-o),e.translate(-i,-r)}return{type:e,tag:"path",nested:!1,attr:function(e,n){e("transform",function(e){return vp(e.x||0,e.y||0)+(e.angle?" "+bp(e.angle):"")}(n)),e("d",t(null,n))},bound:function(e,n){return t(Wh(e,n.angle),n),Ah(e,n).translate(n.x||0,n.y||0)},draw:hp(i),pick:yp(i),isect:n||Qh(i)}}var _p=wp("arc",(function(e,t){return lh.context(e)(t)}));function kp(e,t,n){function i(e,n){e.beginPath(),t(e,n)}const r=gp(i);return{type:e,tag:"path",nested:!0,attr:function(e,n){var i=n.mark.items;i.length&&e("d",t(null,i))},bound:function(e,n){var i=n.items;return 0===i.length?e:(t(Wh(e),i),Ah(e,i[0]))},draw:(o=i,function(e,t,n){!t.items.length||n&&!n.intersects(t.bounds)||pp(o,e,t.items[0],t.items)}),pick:function(e,t,n,i,o,a){var s=t.items,l=t.bounds;return!s||!s.length||l&&!l.contains(o,a)?null:(n*=e.pixelRatio,i*=e.pixelRatio,r(e,s,n,i)?s[0]:null)},isect:Kh,tip:n};var o}var $p=kp("area",(function(e,t){const n=t[0],i=n.interpolate||"linear";return("horizontal"===n.orient?ch:uh).curve(Ad(i,n.orient,n.tension)).context(e)(t)}),(function(e,t){for(var n,i,r="horizontal"===e[0].orient?t[1]:t[0],o="horizontal"===e[0].orient?"y":"x",a=e.length,s=1/0;--a>=0;)!1!==e[a].defined&&(i=Math.abs(e[a][o]-r))<s&&(s=i,n=e[a]);return n}));function Dp(e,t){e.beginPath(),mh(t)?gh(e,t,0,0):e.rect(0,0,t.width||0,t.height||0),e.clip()}function Ap(e){const t=ip(e.strokeWidth,1);return null!=e.strokeOffset?e.strokeOffset:e.stroke&&t>.5&&t<1.5?.5-Math.abs(t-1):0}function Sp(e,t){const n=Ap(t);e("d",gh(null,t,n,n))}function Ep(e,t,n,i){const r=Ap(t);e.beginPath(),gh(e,t,(n||0)+r,(i||0)+r)}const Fp=gp(Ep),Cp=gp(Ep,!1),Mp=gp(Ep,!0);var zp={type:"group",tag:"g",nested:!1,attr:function(e,t){e("transform",xp(t))},bound:function(e,t){if(!t.clip&&t.items){const n=t.items,i=n.length;for(let t=0;t<i;++t)e.union(n[t].bounds)}return(t.clip||t.width||t.height)&&!t.noBound&&e.add(0,0).add(t.width||0,t.height||0),Ah(e,t),e.translate(t.x||0,t.y||0)},draw:function(e,t,n,i){fp(t,(t=>{const r=t.x||0,o=t.y||0,a=t.strokeForeground,s=null==t.opacity?1:t.opacity;(t.stroke||t.fill)&&s&&(Ep(e,t,r,o),np(e,t),t.fill&&ap(e,t,s)&&e.fill(),t.stroke&&!a&&lp(e,t,s)&&e.stroke()),e.save(),e.translate(r,o),t.clip&&Dp(e,t),n&&n.translate(-r,-o),fp(t,(t=>{("group"===t.marktype||null==i||i.includes(t.marktype))&&this.draw(e,t,n,i)})),n&&n.translate(r,o),e.restore(),a&&t.stroke&&s&&(Ep(e,t,r,o),np(e,t),lp(e,t,s)&&e.stroke())}))},pick:function(e,t,n,i,r,o){if(t.bounds&&!t.bounds.contains(r,o)||!t.items)return null;const a=n*e.pixelRatio,s=i*e.pixelRatio;return dp(t,(l=>{let u,c,f;const d=l.bounds;if(d&&!d.contains(r,o))return;c=l.x||0,f=l.y||0;const h=c+(l.width||0),p=f+(l.height||0),m=l.clip;if(m&&(r<c||r>h||o<f||o>p))return;if(e.save(),e.translate(c,f),c=r-c,f=o-f,m&&mh(l)&&!Mp(e,l,a,s))return e.restore(),null;const g=l.strokeForeground,y=!1!==t.interactive;return y&&g&&l.stroke&&Cp(e,l,a,s)?(e.restore(),l):(u=dp(l,(e=>function(e,t,n){return(!1!==e.interactive||"group"===e.marktype)&&e.bounds&&e.bounds.contains(t,n)}(e,c,f)?this.pick(e,n,i,c,f):null)),!u&&y&&(l.fill||!g&&l.stroke)&&Fp(e,l,a,s)&&(u=l),e.restore(),u||null)}))},isect:Zh,content:function(e,t,n){e("clip-path",t.clip?bh(n,t,t):null)},background:function(e,t){e("class","background"),e("aria-hidden",!0),Sp(e,t)},foreground:function(e,t){e("class","foreground"),e("aria-hidden",!0),t.strokeForeground?Sp(e,t):e("d","")}},Op={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function Np(e,t){var n=e.image;return(!n||e.url&&e.url!==n.url)&&(n={complete:!1,width:0,height:0},t.loadImage(e.url).then((t=>{e.image=t,e.image.url=e.url}))),n}function Rp(e,t){return null!=e.width?e.width:t&&t.width?!1!==e.aspect&&e.height?e.height*t.width/t.height:t.width:0}function Bp(e,t){return null!=e.height?e.height:t&&t.height?!1!==e.aspect&&e.width?e.width*t.height/t.width:t.height:0}function Tp(e,t){return"center"===e?t/2:"right"===e?t:0}function Pp(e,t){return"middle"===e?t/2:"bottom"===e?t:0}var jp={type:"image",tag:"image",nested:!1,attr:function(e,t,n){const i=Np(t,n),r=Rp(t,i),o=Bp(t,i),a=(t.x||0)-Tp(t.align,r),s=(t.y||0)-Pp(t.baseline,o);e("href",!i.src&&i.toDataURL?i.toDataURL():i.src||"",Op["xmlns:xlink"],"xlink:href"),e("transform",vp(a,s)),e("width",r),e("height",o),e("preserveAspectRatio",!1===t.aspect?"none":"xMidYMid")},bound:function(e,t){const n=t.image,i=Rp(t,n),r=Bp(t,n),o=(t.x||0)-Tp(t.align,i),a=(t.y||0)-Pp(t.baseline,r);return e.set(o,a,o+i,a+r)},draw:function(e,t,n){fp(t,(t=>{if(n&&!n.intersects(t.bounds))return;const i=Np(t,this);let r=Rp(t,i),o=Bp(t,i);if(0===r||0===o)return;let a,s,l,u,c=(t.x||0)-Tp(t.align,r),f=(t.y||0)-Pp(t.baseline,o);!1!==t.aspect&&(s=i.width/i.height,l=t.width/t.height,s==s&&l==l&&s!==l&&(l<s?(u=r/s,f+=(o-u)/2,o=u):(u=o*s,c+=(r-u)/2,r=u))),(i.complete||i.toDataURL)&&(np(e,t),e.globalAlpha=null!=(a=t.opacity)?a:1,e.imageSmoothingEnabled=!1!==t.smooth,e.drawImage(i,c,f,r,o))}))},pick:mp(),isect:x,get:Np,xOffset:Tp,yOffset:Pp},Lp=kp("line",(function(e,t){const n=t[0],i=n.interpolate||"linear";return fh.curve(Ad(i,n.orient,n.tension)).context(e)(t)}),(function(e,t){for(var n,i,r=Math.pow(e[0].strokeWidth||1,2),o=e.length;--o>=0;)if(!1!==e[o].defined&&(n=e[o].x-t[0])*n+(i=e[o].y-t[1])*i<r)return e[o];return null}));function qp(e,t){var n=t.path;if(null==n)return!0;var i=t.x||0,r=t.y||0,o=t.scaleX||1,a=t.scaleY||1,s=(t.angle||0)*Od,l=t.pathCache;l&&l.path===n||((t.pathCache=l=zd(n)).path=n),s&&e.rotate&&e.translate?(e.translate(i,r),e.rotate(s),Id(e,l,0,0,o,a),e.rotate(-s),e.translate(-i,-r)):Id(e,l,i,r,o,a)}var Up={type:"path",tag:"path",nested:!1,attr:function(e,t){var n=t.scaleX||1,i=t.scaleY||1;1===n&&1===i||e("vector-effect","non-scaling-stroke"),e("transform",function(e){return vp(e.x||0,e.y||0)+(e.angle?" "+bp(e.angle):"")+(e.scaleX||e.scaleY?" "+(t=e.scaleX||1,n=e.scaleY||1,"scale("+t+","+n+")"):"");var t,n}(t)),e("d",t.path)},bound:function(e,t){return qp(Wh(e,t.angle),t)?e.set(0,0,0,0):Ah(e,t,!0)},draw:hp(qp),pick:yp(qp),isect:Qh(qp)};function Ip(e,t){e.beginPath(),gh(e,t)}var Wp={type:"rect",tag:"path",nested:!1,attr:function(e,t){e("d",gh(null,t))},bound:function(e,t){var n,i;return Ah(e.set(n=t.x||0,i=t.y||0,n+t.width||0,i+t.height||0),t)},draw:hp(Ip),pick:yp(Ip),isect:Zh};function Hp(e,t,n){var i,r,o,a;return!(!t.stroke||!lp(e,t,n))&&(i=t.x||0,r=t.y||0,o=null!=t.x2?t.x2:i,a=null!=t.y2?t.y2:r,e.beginPath(),e.moveTo(i,r),e.lineTo(o,a),!0)}var Gp={type:"rule",tag:"line",nested:!1,attr:function(e,t){e("transform",xp(t)),e("x2",null!=t.x2?t.x2-(t.x||0):0),e("y2",null!=t.y2?t.y2-(t.y||0):0)},bound:function(e,t){var n,i;return Ah(e.set(n=t.x||0,i=t.y||0,null!=t.x2?t.x2:n,null!=t.y2?t.y2:i),t)},draw:function(e,t,n){fp(t,(t=>{if(!n||n.intersects(t.bounds)){var i=null==t.opacity?1:t.opacity;i&&Hp(e,t,i)&&(np(e,t),e.stroke())}}))},pick:mp((function(e,t,n,i){return!!e.isPointInStroke&&(Hp(e,t,1)&&e.isPointInStroke(n,i))})),isect:ep},Vp=wp("shape",(function(e,t){return(t.mark.shape||t.shape).context(e)(t)})),Yp=wp("symbol",(function(e,t){return hh.context(e)(t)}),Kh);const Xp=le();var Jp={height:nm,measureWidth:em,estimateWidth:Kp,width:Kp,canvas:Qp};function Qp(e){Jp.width=e&&Xh?em:Kp}function Kp(e,t){return Zp(am(e,t),nm(e))}function Zp(e,t){return~~(.8*e.length*t)}function em(e,t){return nm(e)<=0||!(t=am(e,t))?0:tm(t,lm(e))}function tm(e,t){const n=`(${t}) ${e}`;let i=Xp.get(n);return void 0===i&&(Xh.font=t,i=Xh.measureText(e).width,Xp.set(n,i)),i}function nm(e){return null!=e.fontSize?+e.fontSize||0:11}function im(e){return null!=e.lineHeight?e.lineHeight:nm(e)+2}function rm(e){return t=e.lineBreak&&e.text&&!u(e.text)?e.text.split(e.lineBreak):e.text,u(t)?t.length>1?t:t[0]:t;var t}function om(e){const t=rm(e);return(u(t)?t.length-1:0)*im(e)}function am(e,t){const n=null==t?"":(t+"").trim();return e.limit>0&&n.length?function(e,t){var n=+e.limit,i=function(e){if(Jp.width===em){const t=lm(e);return e=>tm(e,t)}if(Jp.width===Kp){const t=nm(e);return e=>Zp(e,t)}return t=>Jp.width(e,t)}(e);if(i(t)<n)return t;var r,o=e.ellipsis||"…",a="rtl"===e.dir,s=0,l=t.length;if(n-=i(o),a){for(;s<l;)r=s+l>>>1,i(t.slice(r))>n?s=r+1:l=r;return o+t.slice(s)}for(;s<l;)r=1+(s+l>>>1),i(t.slice(0,r))<n?s=r:l=r-1;return t.slice(0,s)+o}(e,n):n}function sm(e,t){var n=e.font;return(t&&n?String(n).replace(/"/g,"'"):n)||"sans-serif"}function lm(e,t){return(e.fontStyle?e.fontStyle+" ":"")+(e.fontVariant?e.fontVariant+" ":"")+(e.fontWeight?e.fontWeight+" ":"")+nm(e)+"px "+sm(e,t)}function um(e){var t=e.baseline,n=nm(e);return Math.round("top"===t?.79*n:"middle"===t?.3*n:"bottom"===t?-.21*n:"line-top"===t?.29*n+.5*im(e):"line-bottom"===t?.29*n-.5*im(e):0)}Qp(!0);const cm={left:"start",center:"middle",right:"end"},fm=new xh;function dm(e){var t,n=e.x||0,i=e.y||0,r=e.radius||0;return r&&(t=(e.theta||0)-Nd,n+=r*Math.cos(t),i+=r*Math.sin(t)),fm.x1=n,fm.y1=i,fm}function hm(e,t,n){var i,r=Jp.height(t),o=t.align,a=dm(t),s=a.x1,l=a.y1,c=t.dx||0,f=(t.dy||0)+um(t)-Math.round(.8*r),d=rm(t);if(u(d)?(r+=im(t)*(d.length-1),i=d.reduce(((e,n)=>Math.max(e,Jp.width(t,n))),0)):i=Jp.width(t,d),"center"===o?c-=i/2:"right"===o&&(c-=i),e.set(c+=s,f+=l,c+i,f+r),t.angle&&!n)e.rotate(t.angle*Od,s,l);else if(2===n)return e.rotatedPoints(t.angle*Od,s,l);return e}var pm={type:"text",tag:"text",nested:!1,attr:function(e,t){var n,i=t.dx||0,r=(t.dy||0)+um(t),o=dm(t),a=o.x1,s=o.y1,l=t.angle||0;e("text-anchor",cm[t.align]||"start"),l?(n=vp(a,s)+" "+bp(l),(i||r)&&(n+=" "+vp(i,r))):n=vp(a+i,s+r),e("transform",n)},bound:hm,draw:function(e,t,n){fp(t,(t=>{var i,r,o,a,s,l,c,f=null==t.opacity?1:t.opacity;if(!(n&&!n.intersects(t.bounds)||0===f||t.fontSize<=0||null==t.text||0===t.text.length)){if(e.font=lm(t),e.textAlign=t.align||"left",r=(i=dm(t)).x1,o=i.y1,t.angle&&(e.save(),e.translate(r,o),e.rotate(t.angle*Od),r=o=0),r+=t.dx||0,o+=(t.dy||0)+um(t),l=rm(t),np(e,t),u(l))for(s=im(t),a=0;a<l.length;++a)c=am(t,l[a]),t.fill&&ap(e,t,f)&&e.fillText(c,r,o),t.stroke&&lp(e,t,f)&&e.strokeText(c,r,o),o+=s;else c=am(t,l),t.fill&&ap(e,t,f)&&e.fillText(c,r,o),t.stroke&&lp(e,t,f)&&e.strokeText(c,r,o);t.angle&&e.restore()}}))},pick:mp((function(e,t,n,i,r,o){if(t.fontSize<=0)return!1;if(!t.angle)return!0;var a=dm(t),s=a.x1,l=a.y1,u=hm(fm,t,1),c=-t.angle*Od,f=Math.cos(c),d=Math.sin(c),h=f*r-d*o+(s-f*s+d*l),p=d*r+f*o+(l-d*s-f*l);return u.contains(h,p)})),isect:function(e,t){const n=hm(fm,e,2);return tp(t,n[0],n[1],n[2],n[3])||tp(t,n[0],n[1],n[4],n[5])||tp(t,n[4],n[5],n[6],n[7])||tp(t,n[2],n[3],n[6],n[7])}},mm={arc:_p,area:$p,group:zp,image:jp,line:Lp,path:Up,rect:Wp,rule:Gp,shape:Vp,symbol:Yp,text:pm,trail:kp("trail",(function(e,t){return ph.context(e)(t)}),(function(e,t){for(var n,i,r=e.length;--r>=0;)if(!1!==e[r].defined&&(n=e[r].x-t[0])*n+(i=e[r].y-t[1])*i<(n=e[r].size||1)*n)return e[r];return null}))};function gm(e,t,n){var i=mm[e.mark.marktype],r=t||i.bound;return i.nested&&(e=e.mark),r(e.bounds||(e.bounds=new xh),e,n)}var ym={mark:null};function vm(e,t,n){var i,r,o,a,s=mm[e.marktype],l=s.bound,u=e.items,c=u&&u.length;if(s.nested)return c?o=u[0]:(ym.mark=e,o=ym),a=gm(o,l,n),t=t&&t.union(a)||a;if(t=t||e.bounds&&e.bounds.clear()||new xh,c)for(i=0,r=u.length;i<r;++i)t.union(gm(u[i],l,n));return e.bounds=t}const bm=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","blend","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","strokeForeground","strokeOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight","interpolate","tension","orient","defined","url","aspect","smooth","path","scaleX","scaleY","x2","y2","size","shape","text","angle","theta","radius","dir","dx","dy","ellipsis","limit","lineBreak","lineHeight","font","fontSize","fontWeight","fontStyle","fontVariant","description","aria","ariaRole","ariaRoleDescription"];function xm(e,t){return JSON.stringify(e,bm,t)}function wm(e){return _m("string"==typeof e?JSON.parse(e):e)}function _m(e){var t,n,i,r=e.marktype,o=e.items;if(o)for(n=0,i=o.length;n<i;++n)t=r?"mark":"group",o[n][t]=e,o[n].zindex&&(o[n][t].zdirty=!0),"group"===(r||t)&&_m(o[n]);return r&&vm(e),e}class km{constructor(e){arguments.length?this.root=wm(e):(this.root=$m({marktype:"group",name:"root",role:"frame"}),this.root.items=[new _h(this.root)])}toJSON(e){return xm(this.root,e||0)}mark(e,t,n){const i=$m(e,t=t||this.root.items[0]);return t.items[n]=i,i.zindex&&(i.group.zdirty=!0),i}}function $m(e,t){const n={bounds:new xh,clip:!!e.clip,group:t,interactive:!1!==e.interactive,items:[],marktype:e.marktype,name:e.name||void 0,role:e.role||void 0,zindex:e.zindex||0};return null!=e.aria&&(n.aria=e.aria),e.description&&(n.description=e.description),n}function Dm(e,t,n){return!e&&"undefined"!=typeof document&&document.createElement&&(e=document),e?n?e.createElementNS(n,t):e.createElement(t):null}function Am(e,t){t=t.toLowerCase();for(var n=e.childNodes,i=0,r=n.length;i<r;++i)if(n[i].tagName.toLowerCase()===t)return n[i]}function Sm(e,t,n,i){var r,o=e.childNodes[t];return o&&o.tagName.toLowerCase()===n.toLowerCase()||(r=o||null,o=Dm(e.ownerDocument,n,i),e.insertBefore(o,r)),o}function Em(e,t){for(var n=e.childNodes,i=n.length;i>t;)e.removeChild(n[--i]);return e}function Fm(e){return"mark-"+e.marktype+(e.role?" role-"+e.role:"")+(e.name?" "+e.name:"")}function Cm(e,t){const n=t.getBoundingClientRect();return[e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0)]}class Mm{constructor(e,t){this._active=null,this._handlers={},this._loader=e||p(),this._tooltip=t||zm}initialize(e,t,n){return this._el=e,this._obj=n||null,this.origin(t)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}origin(e){return arguments.length?(this._origin=e||[0,0],this):this._origin.slice()}scene(e){return arguments.length?(this._scene=e,this):this._scene}on(){}off(){}_handlerIndex(e,t,n){for(let i=e?e.length:0;--i>=0;)if(e[i].type===t&&(!n||e[i].handler===n))return i;return-1}handlers(e){const t=this._handlers,n=[];if(e)n.push(...t[this.eventName(e)]);else for(const i in t)n.push(...t[i]);return n}eventName(e){const t=e.indexOf(".");return t<0?e:e.slice(0,t)}handleHref(e,t,n){this._loader.sanitize(n,{context:"href"}).then((t=>{const n=new MouseEvent(e.type,e),i=Dm(null,"a");for(const e in t)i.setAttribute(e,t[e]);i.dispatchEvent(n)})).catch((()=>{}))}handleTooltip(e,t,n){if(t&&null!=t.tooltip){t=function(e,t,n,i){var r,o,a=e&&e.mark;if(a&&(r=mm[a.marktype]).tip){for((o=Cm(t,n))[0]-=i[0],o[1]-=i[1];e=e.mark.group;)o[0]-=e.x||0,o[1]-=e.y||0;e=r.tip(a.items,o)}return e}(t,e,this.canvas(),this._origin);const i=n&&t&&t.tooltip||null;this._tooltip.call(this._obj,this,e,t,i)}}getItemBoundingClientRect(e){const t=this.canvas();if(!t)return;const n=t.getBoundingClientRect(),i=this._origin,r=e.bounds,o=r.width(),a=r.height();let s=r.x1+i[0]+n.left,l=r.y1+i[1]+n.top;for(;e.mark&&(e=e.mark.group);)s+=e.x||0,l+=e.y||0;return{x:s,y:l,width:o,height:a,left:s,top:l,right:s+o,bottom:l+a}}}function zm(e,t,n,i){e.element().setAttribute("title",i||"")}class Om{constructor(e){this._el=null,this._bgcolor=null,this._loader=new kh(e)}initialize(e,t,n,i,r){return this._el=e,this.resize(t,n,i,r)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}background(e){return 0===arguments.length?this._bgcolor:(this._bgcolor=e,this)}resize(e,t,n,i){return this._width=e,this._height=t,this._origin=n||[0,0],this._scale=i||1,this}dirty(){}render(e,t){const n=this;return n._call=function(){n._render(e,t)},n._call(),n._call=null,n}_render(){}renderAsync(e,t){const n=this.render(e,t);return this._ready?this._ready.then((()=>n)):Promise.resolve(n)}_load(e,t){var n=this,i=n._loader[e](t);if(!n._ready){const e=n._call;n._ready=n._loader.ready().then((t=>{t&&e(),n._ready=null}))}return i}sanitizeURL(e){return this._load("sanitizeURL",e)}loadImage(e){return this._load("loadImage",e)}}const Nm="dragenter",Rm="dragleave",Bm="dragover",Tm="pointerdown",Pm="pointermove",jm="pointerout",Lm="pointerover",qm="mousedown",Um="mousemove",Im="mouseout",Wm="mouseover",Hm="click",Gm="mousewheel",Vm="touchstart",Ym="touchmove",Xm="touchend",Jm=["keydown","keypress","keyup",Nm,Rm,Bm,Tm,"pointerup",Pm,jm,Lm,qm,"mouseup",Um,Im,Wm,Hm,"dblclick","wheel",Gm,Vm,Ym,Xm],Qm=Pm,Km=Im,Zm=Hm;class eg extends Mm{constructor(e,t){super(e,t),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=Jm,this.pointermove=rg([Pm,Um],[Lm,Wm],[jm,Im]),this.dragover=rg([Bm],[Nm],[Rm]),this.pointerout=og([jm,Im]),this.dragleave=og([Rm])}initialize(e,t,n){return this._canvas=e&&Am(e,"canvas"),[Hm,qm,Tm,Pm,jm,Rm].forEach((e=>ng(this,e))),super.initialize(e,t,n)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(e){this.fire(Gm,e)}pointerdown(e){this._down=this._active,this.fire(Tm,e)}mousedown(e){this._down=this._active,this.fire(qm,e)}click(e){this._down===this._active&&(this.fire(Hm,e),this._down=null)}touchstart(e){this._touch=this.pickEvent(e.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(Vm,e,!0)}touchmove(e){this.fire(Ym,e,!0)}touchend(e){this.fire(Xm,e,!0),this._touch=null}fire(e,t,n){const i=n?this._touch:this._active,r=this._handlers[e];if(t.vegaType=e,e===Zm&&i&&i.href?this.handleHref(t,i,i.href):e!==Qm&&e!==Km||this.handleTooltip(t,i,e!==Km),r)for(let o=0,a=r.length;o<a;++o)r[o].handler.call(this._obj,t,i)}on(e,t){const n=this.eventName(e),i=this._handlers;return this._handlerIndex(i[n],e,t)<0&&(ng(this,e),(i[n]||(i[n]=[])).push({type:e,handler:t})),this}off(e,t){const n=this.eventName(e),i=this._handlers[n],r=this._handlerIndex(i,e,t);return r>=0&&i.splice(r,1),this}pickEvent(e){const t=Cm(e,this._canvas),n=this._origin;return this.pick(this._scene,t[0],t[1],t[0]-n[0],t[1]-n[1])}pick(e,t,n,i,r){const o=this.context();return mm[e.marktype].pick.call(this,o,e,t,n,i,r)}}const tg=e=>e===Vm||e===Ym||e===Xm?[Vm,Ym,Xm]:[e];function ng(e,t){tg(t).forEach((t=>function(e,t){const n=e.canvas();n&&!e._events[t]&&(e._events[t]=1,n.addEventListener(t,e[t]?n=>e[t](n):n=>e.fire(t,n)))}(e,t)))}function ig(e,t,n){t.forEach((t=>e.fire(t,n)))}function rg(e,t,n){return function(i){const r=this._active,o=this.pickEvent(i);o===r||(r&&r.exit||ig(this,n,i),this._active=o,ig(this,t,i)),ig(this,e,i)}}function og(e){return function(t){ig(this,e,t),this._active=null}}function ag(e,t,n,i,r,o){const a="undefined"!=typeof HTMLElement&&e instanceof HTMLElement&&null!=e.parentNode,s=e.getContext("2d"),l=a?"undefined"!=typeof window&&window.devicePixelRatio||1:r;e.width=t*l,e.height=n*l;for(const u in o)s[u]=o[u];return a&&1!==l&&(e.style.width=t+"px",e.style.height=n+"px"),s.pixelRatio=l,s.setTransform(l,0,0,l,l*i[0],l*i[1]),e}class sg extends Om{constructor(e){super(e),this._options={},this._redraw=!1,this._dirty=new xh,this._tempb=new xh}initialize(e,t,n,i,r,o){return this._options=o||{},this._canvas=this._options.externalContext?null:Ac(1,1,this._options.type),e&&this._canvas&&(Em(e,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),super.initialize(e,t,n,i,r)}resize(e,t,n,i){if(super.resize(e,t,n,i),this._canvas)ag(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const e=this._options.externalContext;e||v("CanvasRenderer is missing a valid canvas or context"),e.scale(this._scale,this._scale),e.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this}canvas(){return this._canvas}context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)}dirty(e){const t=this._tempb.clear().union(e.bounds);let n=e.mark.group;for(;n;)t.translate(n.x||0,n.y||0),n=n.mark.group;this._dirty.union(t)}_render(e,t){const n=this.context(),i=this._origin,r=this._width,o=this._height,a=this._dirty,s=lg(i,r,o);n.save();const l=this._redraw||a.empty()?(this._redraw=!1,s.expand(1)):function(e,t,n){t.expand(1).round(),e.pixelRatio%1&&t.scale(e.pixelRatio).round().scale(1/e.pixelRatio);return t.translate(-n[0]%1,-n[1]%1),e.beginPath(),e.rect(t.x1,t.y1,t.width(),t.height()),e.clip(),t}(n,s.intersect(a),i);return this.clear(-i[0],-i[1],r,o),this.draw(n,e,l,t),n.restore(),a.clear(),this}draw(e,t,n,i){if("group"!==t.marktype&&null!=i&&!i.includes(t.marktype))return;const r=mm[t.marktype];t.clip&&function(e,t){var n=t.clip;e.save(),m(n)?(e.beginPath(),n(e),e.clip()):Dp(e,t.group)}(e,t),r.draw.call(this,e,t,n,i),t.clip&&e.restore()}clear(e,t,n,i){const r=this._options,o=this.context();"pdf"===r.type||r.externalContext||o.clearRect(e,t,n,i),null!=this._bgcolor&&(o.fillStyle=this._bgcolor,o.fillRect(e,t,n,i))}}const lg=(e,t,n)=>(new xh).set(0,0,t,n).translate(-e[0],-e[1]);class ug extends Mm{constructor(e,t){super(e,t);const n=this;n._hrefHandler=cg(n,((e,t)=>{t&&t.href&&n.handleHref(e,t,t.href)})),n._tooltipHandler=cg(n,((e,t)=>{n.handleTooltip(e,t,e.type!==Km)}))}initialize(e,t,n){let i=this._svg;return i&&(i.removeEventListener(Zm,this._hrefHandler),i.removeEventListener(Qm,this._tooltipHandler),i.removeEventListener(Km,this._tooltipHandler)),this._svg=i=e&&Am(e,"svg"),i&&(i.addEventListener(Zm,this._hrefHandler),i.addEventListener(Qm,this._tooltipHandler),i.addEventListener(Km,this._tooltipHandler)),super.initialize(e,t,n)}canvas(){return this._svg}on(e,t){const n=this.eventName(e),i=this._handlers;if(this._handlerIndex(i[n],e,t)<0){const r={type:e,handler:t,listener:cg(this,t)};(i[n]||(i[n]=[])).push(r),this._svg&&this._svg.addEventListener(n,r.listener)}return this}off(e,t){const n=this.eventName(e),i=this._handlers[n],r=this._handlerIndex(i,e,t);return r>=0&&(this._svg&&this._svg.removeEventListener(n,i[r].listener),i.splice(r,1)),this}}const cg=(e,t)=>n=>{let i=n.target.__data__;i=Array.isArray(i)?i[0]:i,n.vegaType=n.type,t.call(e._obj,n,i)},fg="aria-hidden",dg="aria-label",hg="role",pg="aria-roledescription",mg="graphics-object",gg="graphics-symbol",yg=(e,t,n)=>({[hg]:e,[pg]:t,[dg]:n||void 0}),vg=se(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),bg={axis:{desc:"axis",caption:function(e){const t=e.datum,n=e.orient,i=t.title?$g(e):null,r=e.context,o=r.scales[t.scale].value,a=r.dataflow.locale(),s=o.type;return("left"===n||"right"===n?"Y":"X")+"-axis"+(i?` titled '${i}'`:"")+` for a ${Pf(s)?"discrete":s} scale with ${vd(a,o,e)}`}},legend:{desc:"legend",caption:function(e){const t=e.datum,n=t.title?$g(e):null,i=`${t.type||""} legend`.trim(),r=t.scales,o=Object.keys(r),a=e.context,s=a.scales[r[o[0]]].value,l=a.dataflow.locale();return u=i,(u.length?u[0].toUpperCase()+u.slice(1):u)+(n?` titled '${n}'`:"")+` for ${function(e){return e=e.map((e=>e+("fill"===e||"stroke"===e?" color":""))),e.length<2?e[0]:e.slice(0,-1).join(", ")+" and "+T(e)}(o)} with ${vd(l,s,e)}`;var u}},"title-text":{desc:"title",caption:e=>`Title text '${kg(e)}'`},"title-subtitle":{desc:"subtitle",caption:e=>`Subtitle text '${kg(e)}'`}},xg={ariaRole:hg,ariaRoleDescription:pg,description:dg};function wg(e,t){const n=!1===t.aria;if(e(fg,n||void 0),n||null==t.description)for(const i in xg)e(xg[i],void 0);else{const n=t.mark.marktype;e(dg,t.description),e(hg,t.ariaRole||("group"===n?mg:gg)),e(pg,t.ariaRoleDescription||`${n} mark`)}}function _g(e){return!1===e.aria?{[fg]:!0}:vg[e.role]?null:bg[e.role]?function(e,t){try{const n=e.items[0],i=t.caption||(()=>"");return yg(t.role||gg,t.desc,n.description||i(n))}catch(n){return null}}(e,bg[e.role]):function(e){const t=e.marktype,n="group"===t||"text"===t||e.items.some((e=>null!=e.description&&!1!==e.aria));return yg(n?mg:gg,`${t} mark container`,e.description)}(e)}function kg(e){return c(e.text).join(" ")}function $g(e){try{return c(T(e.items).items[0].text).join(" ")}catch(t){return null}}const Dg=e=>(e+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");function Ag(){let e="",t="",n="";const i=[],r=()=>t=n="",o=(e,n)=>{var i;return null!=n&&(t+=` ${e}="${i=n,Dg(i).replace(/"/g,"&quot;").replace(/\t/g,"&#x9;").replace(/\n/g,"&#xA;").replace(/\r/g,"&#xD;")}"`),a},a={open(s){(o=>{t&&(e+=`${t}>${n}`,r()),i.push(o)})(s),t="<"+s;for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c<l;c++)u[c-1]=arguments[c];for(const e of u)for(const t in e)o(t,e[t]);return a},close(){const o=i.pop();return e+=t?t+(n?`>${n}</${o}>`:"/>"):`</${o}>`,r(),a},attr:o,text:e=>(n+=Dg(e),a),toString:()=>e};return a}const Sg=e=>Eg(Ag(),e)+"";function Eg(e,t){if(e.open(t.tagName),t.hasAttributes()){const n=t.attributes,i=n.length;for(let t=0;t<i;++t)e.attr(n[t].name,n[t].value)}if(t.hasChildNodes()){const n=t.childNodes;for(const t of n)3===t.nodeType?e.text(t.nodeValue):Eg(e,t)}return e.close()}const Fg={fill:"fill",fillOpacity:"fill-opacity",stroke:"stroke",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",strokeCap:"stroke-linecap",strokeJoin:"stroke-linejoin",strokeDash:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeMiterLimit:"stroke-miterlimit",opacity:"opacity"},Cg={blend:"mix-blend-mode"},Mg={fill:"none","stroke-miterlimit":10},zg="http://www.w3.org/2000/xmlns/",Og=Op.xmlns;class Ng extends Om{constructor(e){super(e),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}initialize(e,t,n,i,r){return this._defs={},this._clearDefs(),e&&(this._svg=Sm(e,0,"svg",Og),this._svg.setAttributeNS(zg,"xmlns",Og),this._svg.setAttributeNS(zg,"xmlns:xlink",Op["xmlns:xlink"]),this._svg.setAttribute("version",Op.version),this._svg.setAttribute("class","marks"),Em(e,1),this._root=Sm(this._svg,0,"g",Og),Wg(this._root,Mg),Em(this._svg,1)),this.background(this._bgcolor),super.initialize(e,t,n,i,r)}background(e){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",e),super.background(...arguments)}resize(e,t,n,i){return super.resize(e,t,n,i),this._svg&&(Wg(this._svg,{width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}),this._root.setAttribute("transform",`translate(${this._origin})`)),this._dirty=[],this}canvas(){return this._svg}svg(){const e=this._svg,t=this._bgcolor;if(!e)return null;let n;t&&(e.removeAttribute("style"),n=Sm(e,0,"rect",Og),Wg(n,{width:this._width,height:this._height,fill:t}));const i=Sg(e);return t&&(e.removeChild(n),this._svg.style.setProperty("background-color",t)),i}_render(e,t){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,e,void 0,t),Em(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this}dirty(e){e.dirty!==this._dirtyID&&(e.dirty=this._dirtyID,this._dirty.push(e))}isDirty(e){return this._dirtyAll||!e._svg||!e._svg.ownerSVGElement||e.dirty===this._dirtyID}_dirtyCheck(){this._dirtyAll=!0;const e=this._dirty;if(!e.length||!this._dirtyID)return!0;const t=++this._dirtyID;let n,i,r,o,a,s,l;for(a=0,s=e.length;a<s;++a)n=e[a],i=n.mark,i.marktype!==r&&(r=i.marktype,o=mm[r]),i.zdirty&&i.dirty!==t&&(this._dirtyAll=!1,Rg(n,t),i.items.forEach((e=>{e.dirty=t}))),i.zdirty||(n.exit?(o.nested&&i.items.length?(l=i.items[0],l._svg&&this._update(o,l._svg,l)):n._svg&&(l=n._svg.parentNode,l&&l.removeChild(n._svg)),n._svg=null):(n=o.nested?i.items[0]:n,n._update!==t&&(n._svg&&n._svg.ownerSVGElement?this._update(o,n._svg,n):(this._dirtyAll=!1,Rg(n,t)),n._update=t)));return!this._dirtyAll}mark(e,t,n,i){if(!this.isDirty(t))return t._svg;const r=this._svg,o=t.marktype,a=mm[o],s=!1===t.interactive?"none":null,l="g"===a.tag,u=Pg(t,e,n,"g",r);if("group"!==o&&null!=i&&!i.includes(o))return Em(u,0),t._svg;u.setAttribute("class",Fm(t));const c=_g(t);for(const p in c)Hg(u,p,c[p]);l||Hg(u,"pointer-events",s),Hg(u,"clip-path",t.clip?bh(this,t,t.group):null);let f=null,d=0;const h=e=>{const t=this.isDirty(e),n=Pg(e,u,f,a.tag,r);t&&(this._update(a,n,e),l&&function(e,t,n,i){t=t.lastChild.previousSibling;let r,o=0;fp(n,(n=>{r=e.mark(t,n,r,i),++o})),Em(t,1+o)}(this,n,e,i)),f=n,++d};return a.nested?t.items.length&&h(t.items[0]):fp(t,h),Em(u,d),u}_update(e,t,n){jg=t,Lg=t.__values__,wg(Ug,n),e.attr(Ug,n,this);const i=qg[e.type];i&&i.call(this,e,t,n),jg&&this.style(jg,n)}style(e,t){if(null!=t){for(const n in Fg){let i="font"===n?sm(t):t[n];if(i===Lg[n])continue;const r=Fg[n];null==i?e.removeAttribute(r):(wd(i)&&(i=_d(i,this._defs.gradient,Gg())),e.setAttribute(r,i+"")),Lg[n]=i}for(const n in Cg)Ig(e,Cg[n],t[n])}}defs(){const e=this._svg,t=this._defs;let n=t.el,i=0;for(const r in t.gradient)n||(t.el=n=Sm(e,1,"defs",Og)),i=Bg(n,t.gradient[r],i);for(const r in t.clipping)n||(t.el=n=Sm(e,1,"defs",Og)),i=Tg(n,t.clipping[r],i);n&&(0===i?(e.removeChild(n),t.el=null):Em(n,i))}_clearDefs(){const e=this._defs;e.gradient={},e.clipping={}}}function Rg(e,t){for(;e&&e.dirty!==t;e=e.mark.group){if(e.dirty=t,!e.mark||e.mark.dirty===t)return;e.mark.dirty=t}}function Bg(e,t,n){let i,r,o;if("radial"===t.gradient){let i=Sm(e,n++,"pattern",Og);Wg(i,{id:xd+t.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),i=Sm(i,0,"rect",Og),Wg(i,{width:1,height:1,fill:`url(${Gg()}#${t.id})`}),Wg(e=Sm(e,n++,"radialGradient",Og),{id:t.id,fx:t.x1,fy:t.y1,fr:t.r1,cx:t.x2,cy:t.y2,r:t.r2})}else Wg(e=Sm(e,n++,"linearGradient",Og),{id:t.id,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2});for(i=0,r=t.stops.length;i<r;++i)o=Sm(e,i,"stop",Og),o.setAttribute("offset",t.stops[i].offset),o.setAttribute("stop-color",t.stops[i].color);return Em(e,i),n}function Tg(e,t,n){let i;return(e=Sm(e,n,"clipPath",Og)).setAttribute("id",t.id),t.path?(i=Sm(e,0,"path",Og),i.setAttribute("d",t.path)):(i=Sm(e,0,"rect",Og),Wg(i,{x:0,y:0,width:t.width,height:t.height})),Em(e,1),n+1}function Pg(e,t,n,i,r){let o,a=e._svg;if(!a&&(o=t.ownerDocument,a=Dm(o,i,Og),e._svg=a,e.mark&&(a.__data__=e,a.__values__={fill:"default"},"g"===i))){const t=Dm(o,"path",Og);a.appendChild(t),t.__data__=e;const n=Dm(o,"g",Og);a.appendChild(n),n.__data__=e;const i=Dm(o,"path",Og);a.appendChild(i),i.__data__=e,i.__values__={fill:"default"}}return(a.ownerSVGElement!==r||function(e,t){return e.parentNode&&e.parentNode.childNodes.length>1&&e.previousSibling!=t}(a,n))&&t.insertBefore(a,n?n.nextSibling:t.firstChild),a}let jg=null,Lg=null;const qg={group(e,t,n){const i=jg=t.childNodes[2];Lg=i.__values__,e.foreground(Ug,n,this),Lg=t.__values__,jg=t.childNodes[1],e.content(Ug,n,this);const r=jg=t.childNodes[0];e.background(Ug,n,this);const o=!1===n.mark.interactive?"none":null;if(o!==Lg.events&&(Hg(i,"pointer-events",o),Hg(r,"pointer-events",o),Lg.events=o),n.strokeForeground&&n.stroke){const e=n.fill;Hg(i,"display",null),this.style(r,n),Hg(r,"stroke",null),e&&(n.fill=null),Lg=i.__values__,this.style(i,n),e&&(n.fill=e),jg=null}else Hg(i,"display","none")},image(e,t,n){!1===n.smooth?(Ig(t,"image-rendering","optimizeSpeed"),Ig(t,"image-rendering","pixelated")):Ig(t,"image-rendering",null)},text(e,t,n){const i=rm(n);let r,o,a,s;u(i)?(o=i.map((e=>am(n,e))),r=o.join("\n"),r!==Lg.text&&(Em(t,0),a=t.ownerDocument,s=im(n),o.forEach(((e,i)=>{const r=Dm(a,"tspan",Og);r.__data__=n,r.textContent=e,i&&(r.setAttribute("x",0),r.setAttribute("dy",s)),t.appendChild(r)})),Lg.text=r)):(o=am(n,i),o!==Lg.text&&(t.textContent=o,Lg.text=o)),Hg(t,"font-family",sm(n)),Hg(t,"font-size",nm(n)+"px"),Hg(t,"font-style",n.fontStyle),Hg(t,"font-variant",n.fontVariant),Hg(t,"font-weight",n.fontWeight)}};function Ug(e,t,n){t!==Lg[e]&&(n?function(e,t,n,i){null!=n?e.setAttributeNS(i,t,n):e.removeAttributeNS(i,t)}(jg,e,t,n):Hg(jg,e,t),Lg[e]=t)}function Ig(e,t,n){n!==Lg[t]&&(null==n?e.style.removeProperty(t):e.style.setProperty(t,n+""),Lg[t]=n)}function Wg(e,t){for(const n in t)Hg(e,n,t[n])}function Hg(e,t,n){null!=n?e.setAttribute(t,n):e.removeAttribute(t)}function Gg(){let e;return"undefined"==typeof window?"":(e=window.location).hash?e.href.slice(0,-e.hash.length):e.href}class Vg extends Om{constructor(e){super(e),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(e){const t=Ag();t.open("svg",D({},Op,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&"transparent"!==n&&"none"!==n&&t.open("rect",{width:this._width,height:this._height,fill:n}).close(),t.open("g",Mg,{transform:"translate("+this._origin+")"}),this.mark(t,e),t.close(),this.defs(t),this._text=t.close()+"",this}mark(e,t){const n=mm[t.marktype],i=n.tag,r=[wg,n.attr];e.open("g",{class:Fm(t),"clip-path":t.clip?bh(this,t,t.group):null},_g(t),{"pointer-events":"g"!==i&&!1===t.interactive?"none":null});const o=o=>{const a=this.href(o);if(a&&e.open("a",a),e.open(i,this.attr(t,o,r,"g"!==i?i:null)),"text"===i){const t=rm(o);if(u(t)){const n={x:0,dy:im(o)};for(let i=0;i<t.length;++i)e.open("tspan",i?n:null).text(am(o,t[i])).close()}else e.text(am(o,t))}else if("g"===i){const i=o.strokeForeground,r=o.fill,a=o.stroke;i&&a&&(o.stroke=null),e.open("path",this.attr(t,o,n.background,"bgrect")).close(),e.open("g",this.attr(t,o,n.content)),fp(o,(t=>this.mark(e,t))),e.close(),i&&a?(r&&(o.fill=null),o.stroke=a,e.open("path",this.attr(t,o,n.foreground,"bgrect")).close(),r&&(o.fill=r)):e.open("path",this.attr(t,o,n.foreground,"bgfore")).close()}e.close(),a&&e.close()};return n.nested?t.items&&t.items.length&&o(t.items[0]):fp(t,o),e.close()}href(e){const t=e.href;let n;if(t){if(n=this._hrefs&&this._hrefs[t])return n;this.sanitizeURL(t).then((e=>{e["xlink:href"]=e.href,e.href=null,(this._hrefs||(this._hrefs={}))[t]=e}))}return null}attr(e,t,n,i){const r={},o=(e,t,n,i)=>{r[i||e]=t};return Array.isArray(n)?n.forEach((e=>e(o,t,this))):n(o,t,this),i&&function(e,t,n,i,r){let o;if(null==t)return e;"bgrect"===i&&!1===n.interactive&&(e["pointer-events"]="none");if("bgfore"===i&&(!1===n.interactive&&(e["pointer-events"]="none"),e.display="none",null!==t.fill))return e;"image"===i&&!1===t.smooth&&(o=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]);"text"===i&&(e["font-family"]=sm(t),e["font-size"]=nm(t)+"px",e["font-style"]=t.fontStyle,e["font-variant"]=t.fontVariant,e["font-weight"]=t.fontWeight);for(const a in Fg){let n=t[a];const i=Fg[a];("transparent"!==n||"fill"!==i&&"stroke"!==i)&&null!=n&&(wd(n)&&(n=_d(n,r.gradient,"")),e[i]=n)}for(const a in Cg){const e=t[a];null!=e&&(o=o||[],o.push(`${Cg[a]}: ${e};`))}o&&(e.style=o.join(" "))}(r,t,e,i,this._defs),r}defs(e){const t=this._defs.gradient,n=this._defs.clipping;if(0!==Object.keys(t).length+Object.keys(n).length){e.open("defs");for(const n in t){const i=t[n],r=i.stops;"radial"===i.gradient?(e.open("pattern",{id:xd+n,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),e.open("rect",{width:"1",height:"1",fill:"url(#"+n+")"}).close(),e.close(),e.open("radialGradient",{id:n,fx:i.x1,fy:i.y1,fr:i.r1,cx:i.x2,cy:i.y2,r:i.r2})):e.open("linearGradient",{id:n,x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2});for(let t=0;t<r.length;++t)e.open("stop",{offset:r[t].offset,"stop-color":r[t].color}).close();e.close()}for(const t in n){const i=n[t];e.open("clipPath",{id:t}),i.path?e.open("path",{d:i.path}).close():e.open("rect",{x:0,y:0,width:i.width,height:i.height}).close(),e.close()}e.close()}}}const Yg={svgMarkTypes:["text"],svgOnTop:!0,debug:!1};class Xg extends Om{constructor(e){super(e),this._svgRenderer=new Ng(e),this._canvasRenderer=new sg(e)}initialize(e,t,n,i,r){this._root_el=Sm(e,0,"div");const o=Sm(this._root_el,0,"div"),a=Sm(this._root_el,1,"div");return this._root_el.style.position="relative",Yg.debug||(o.style.height="100%",a.style.position="absolute",a.style.top="0",a.style.left="0",a.style.height="100%",a.style.width="100%"),this._svgEl=Yg.svgOnTop?a:o,this._canvasEl=Yg.svgOnTop?o:a,this._svgEl.style.pointerEvents="none",this._canvasRenderer.initialize(this._canvasEl,t,n,i,r),this._svgRenderer.initialize(this._svgEl,t,n,i,r),super.initialize(e,t,n,i,r)}dirty(e){return Yg.svgMarkTypes.includes(e.mark.marktype)?this._svgRenderer.dirty(e):this._canvasRenderer.dirty(e),this}_render(e,t){const n=(t??["arc","area","image","line","path","rect","rule","shape","symbol","text","trail"]).filter((e=>!Yg.svgMarkTypes.includes(e)));this._svgRenderer.render(e,Yg.svgMarkTypes),this._canvasRenderer.render(e,n)}resize(e,t,n,i){return super.resize(e,t,n,i),this._svgRenderer.resize(e,t,n,i),this._canvasRenderer.resize(e,t,n,i),this}background(e){return Yg.svgOnTop?this._canvasRenderer.background(e):this._svgRenderer.background(e),this}}class Jg extends eg{constructor(e,t){super(e,t)}initialize(e,t,n){const i=Sm(Sm(e,0,"div"),Yg.svgOnTop?0:1,"div");return super.initialize(i,t,n)}}const Qg="canvas",Kg="hybrid",Zg="none",ey={Canvas:Qg,PNG:"png",SVG:"svg",Hybrid:Kg,None:Zg},ty={};function ny(e,t){return e=String(e||"").toLowerCase(),arguments.length>1?(ty[e]=t,this):ty[e]}function iy(e,t,n){const i=[],r=(new xh).union(t),o=e.marktype;return o?ry(e,r,n,i):"group"===o?oy(e,r,n,i):v("Intersect scene must be mark node or group item.")}function ry(e,t,n,i){if(function(e,t,n){return e.bounds&&t.intersects(e.bounds)&&("group"===e.marktype||!1!==e.interactive&&(!n||n(e)))}(e,t,n)){const r=e.items,o=e.marktype,a=r.length;let s=0;if("group"===o)for(;s<a;++s)oy(r[s],t,n,i);else for(const e=mm[o].isect;s<a;++s){const n=r[s];ay(n,t,e)&&i.push(n)}}return i}function oy(e,t,n,i){n&&n(e.mark)&&ay(e,t,mm.group.isect)&&i.push(e);const r=e.items,o=r&&r.length;if(o){const a=e.x||0,s=e.y||0;t.translate(-a,-s);for(let e=0;e<o;++e)ry(r[e],t,n,i);t.translate(a,s)}return i}function ay(e,t,n){const i=e.bounds;return t.encloses(i)||t.intersects(i)&&n(e,t)}ty[Qg]=ty.png={renderer:sg,headless:sg,handler:eg},ty.svg={renderer:Ng,headless:Vg,handler:ug},ty[Kg]={renderer:Xg,headless:Xg,handler:Jg},ty[Zg]={};const sy=new xh;function ly(e){const t=e.clip;if(m(t))t(Wh(sy.clear()));else{if(!t)return;sy.set(0,0,e.group.width,e.group.height)}e.bounds.intersect(sy)}function uy(e,t,i){return e===t||("path"===i?cy(e,t):e instanceof Date&&t instanceof Date?+e==+t:n(e)&&n(t)?Math.abs(e-t)<=1e-9:e&&t&&(a(e)||a(t))?function(e,t){var n,i,r=Object.keys(e),o=Object.keys(t);if(r.length!==o.length)return!1;for(r.sort(),o.sort(),i=r.length-1;i>=0;i--)if(r[i]!=o[i])return!1;for(i=r.length-1;i>=0;i--)if(!uy(e[n=r[i]],t[n],n))return!1;return typeof e==typeof t}(e,t):e==t)}function cy(e,t){return uy(zd(e),zd(t))}const fy="top",dy="left",hy="right",py="bottom",my="start",gy="middle",yy="end",vy="group",by="axis",xy="title",wy="frame",_y="scope",ky="legend",$y="row-header",Dy="row-footer",Ay="row-title",Sy="column-header",Ey="column-footer",Fy="column-title",Cy="padding",My="fit",zy="fit-x",Oy="fit-y",Ny="none",Ry="all",By="each",Ty="flush",Py="column",jy="row";function Ly(e){tl.call(this,null,e)}function qy(e,t,n){return t(e.bounds.clear(),e,n)}_(Ly,tl,{transform(e,t){const n=t.dataflow,i=e.mark,r=i.marktype,o=mm[r],a=o.bound;let s,l=i.bounds;if(o.nested)i.items.length&&n.dirty(i.items[0]),l=qy(i,a),i.items.forEach((e=>{e.bounds.clear().union(l)}));else if(r===vy||e.modified())switch(t.visit(t.MOD,(e=>n.dirty(e))),l.clear(),i.items.forEach((e=>l.union(qy(e,a)))),i.role){case by:case ky:case xy:t.reflow()}else s=t.changed(t.REM),t.visit(t.ADD,(e=>{l.union(qy(e,a))})),t.visit(t.MOD,(e=>{s=s||l.alignsWith(e.bounds),n.dirty(e),l.union(qy(e,a))})),s&&(l.clear(),i.items.forEach((e=>l.union(e.bounds))));return ly(i),t.modifies("bounds")}});const Uy=":vega_identifier:";function Iy(e){tl.call(this,0,e)}function Wy(e){tl.call(this,null,e)}function Hy(e){tl.call(this,null,e)}Iy.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},_(Iy,tl,{transform(e,t){const n=(r=t.dataflow)._signals[Uy]||(r._signals[Uy]=r.add(0)),i=e.as;var r;let o=n.value;return t.visit(t.ADD,(e=>e[i]=e[i]||++o)),n.set(this.value=o),t}}),_(Wy,tl,{transform(e,t){let n=this.value;n||(n=t.dataflow.scenegraph().mark(e.markdef,function(e){const t=e.groups,n=e.parent;return t&&1===t.size?t.get(Object.keys(t.object)[0]):t&&n?t.lookup(n):null}(e),e.index),n.group.context=e.context,e.context.group||(e.context.group=n.group),n.source=this.source,n.clip=e.clip,n.interactive=e.interactive,this.value=n);const i=n.marktype===vy?_h:wh;return t.visit(t.ADD,(e=>i.call(e,n))),(e.modified("clip")||e.modified("interactive"))&&(n.clip=e.clip,n.interactive=!!e.interactive,n.zdirty=!0,t.reflow()),n.items=t.source,t}});const Gy={parity:e=>e.filter(((e,t)=>t%2?e.opacity=0:1)),greedy:(e,t)=>{let n;return e.filter(((e,i)=>i&&Vy(n.bounds,e.bounds,t)?e.opacity=0:(n=e,1)))}},Vy=(e,t,n)=>n>Math.max(t.x1-e.x2,e.x1-t.x2,t.y1-e.y2,e.y1-t.y2),Yy=(e,t)=>{for(var n,i=1,r=e.length,o=e[0].bounds;i<r;o=n,++i)if(Vy(o,n=e[i].bounds,t))return!0},Xy=e=>{const t=e.bounds;return t.width()>1&&t.height()>1},Jy=e=>(e.forEach((e=>e.opacity=1)),e),Qy=(e,t)=>e.reflow(t.modified()).modifies("opacity");function Ky(e){tl.call(this,null,e)}_(Hy,tl,{transform(e,t){const n=Gy[e.method]||Gy.parity,i=e.separation||0;let r,o,a=t.materialize(t.SOURCE).source;if(!a||!a.length)return;if(!e.method)return e.modified("method")&&(Jy(a),t=Qy(t,e)),t;if(a=a.filter(Xy),!a.length)return;if(e.sort&&(a=a.slice().sort(e.sort)),r=Jy(a),t=Qy(t,e),r.length>=3&&Yy(r,i)){do{r=n(r,i)}while(r.length>=3&&Yy(r,i));r.length<3&&!T(a).opacity&&(r.length>1&&(T(r).opacity=0),T(a).opacity=1)}var s,l,u,c,f;e.boundScale&&e.boundTolerance>=0&&(s=e.boundScale,l=e.boundOrient,u=+e.boundTolerance,c=s.range(),f=new xh,l===fy||l===py?f.set(c[0],-1/0,c[1],1/0):f.set(-1/0,c[0],1/0,c[1]),f.expand(u||1),o=e=>f.encloses(e.bounds),a.forEach((e=>{o(e)||(e.opacity=0)})));const d=r[0].mark.bounds.clear();return a.forEach((e=>{e.opacity&&d.union(e.bounds)})),t}}),_(Ky,tl,{transform(e,t){const n=t.dataflow;if(t.visit(t.ALL,(e=>n.dirty(e))),t.fields&&t.fields.zindex){const e=t.source&&t.source[0];e&&(e.mark.zdirty=!0)}}});const Zy=new xh;function ev(e,t,n){return e[t]===n?0:(e[t]=n,1)}function tv(e){var t=e.items[0].orient;return t===dy||t===hy}function nv(e,t,n,i){var r,o,a=t.items[0],s=a.datum,l=null!=a.translate?a.translate:.5,u=a.orient,c=function(e){let t=+e.grid;return[e.ticks?t++:-1,e.labels?t++:-1,t+ +e.domain]}(s),f=a.range,d=a.offset,h=a.position,p=a.minExtent,m=a.maxExtent,g=s.title&&a.items[c[2]].items[0],y=a.titlePadding,v=a.bounds,b=g&&om(g),x=0,w=0;switch(Zy.clear().union(v),v.clear(),(r=c[0])>-1&&v.union(a.items[r].bounds),(r=c[1])>-1&&v.union(a.items[r].bounds),u){case fy:x=h||0,w=-d,o=Math.max(p,Math.min(m,-v.y1)),v.add(0,-o).add(f,0),g&&iv(e,g,o,y,b,0,-1,v);break;case dy:x=-d,w=h||0,o=Math.max(p,Math.min(m,-v.x1)),v.add(-o,0).add(0,f),g&&iv(e,g,o,y,b,1,-1,v);break;case hy:x=n+d,w=h||0,o=Math.max(p,Math.min(m,v.x2)),v.add(0,0).add(o,f),g&&iv(e,g,o,y,b,1,1,v);break;case py:x=h||0,w=i+d,o=Math.max(p,Math.min(m,v.y2)),v.add(0,0).add(f,o),g&&iv(e,g,o,y,0,0,1,v);break;default:x=a.x,w=a.y}return Ah(v.translate(x,w),a),ev(a,"x",x+l)|ev(a,"y",w+l)&&(a.bounds=Zy,e.dirty(a),a.bounds=v,e.dirty(a)),a.mark.bounds.clear().union(v)}function iv(e,t,n,i,r,o,a,s){const l=t.bounds;if(t.auto){const s=a*(n+r+i);let u=0,c=0;e.dirty(t),o?u=(t.x||0)-(t.x=s):c=(t.y||0)-(t.y=s),t.mark.bounds.clear().union(l.translate(-u,-c)),e.dirty(t)}s.union(l)}const rv=(e,t)=>Math.floor(Math.min(e,t)),ov=(e,t)=>Math.ceil(Math.max(e,t));function av(e){return(new xh).set(0,0,e.width||0,e.height||0)}function sv(e){const t=e.bounds.clone();return t.empty()?t.set(0,0,0,0):t.translate(-(e.x||0),-(e.y||0))}function lv(e,t,n){const i=a(e)?e[t]:e;return null!=i?i:void 0!==n?n:0}function uv(e){return e<0?Math.ceil(-e):0}function cv(e,t,n){var i,r,o,a,s,l,u,c,f,d,h,p=!n.nodirty,m=n.bounds===Ty?av:sv,g=Zy.set(0,0,0,0),y=lv(n.align,Py),v=lv(n.align,jy),b=lv(n.padding,Py),x=lv(n.padding,jy),w=n.columns||t.length,_=w<=0?1:Math.ceil(t.length/w),k=t.length,$=Array(k),D=Array(w),A=0,S=Array(k),E=Array(_),F=0,C=Array(k),M=Array(k),z=Array(k);for(r=0;r<w;++r)D[r]=0;for(r=0;r<_;++r)E[r]=0;for(r=0;r<k;++r)l=t[r],s=z[r]=m(l),l.x=l.x||0,C[r]=0,l.y=l.y||0,M[r]=0,o=r%w,a=~~(r/w),A=Math.max(A,u=Math.ceil(s.x2)),F=Math.max(F,c=Math.ceil(s.y2)),D[o]=Math.max(D[o],u),E[a]=Math.max(E[a],c),$[r]=b+uv(s.x1),S[r]=x+uv(s.y1),p&&e.dirty(t[r]);for(r=0;r<k;++r)r%w==0&&($[r]=0),r<w&&(S[r]=0);if(y===By)for(o=1;o<w;++o){for(h=0,r=o;r<k;r+=w)h<$[r]&&(h=$[r]);for(r=o;r<k;r+=w)$[r]=h+D[o-1]}else if(y===Ry){for(h=0,r=0;r<k;++r)r%w&&h<$[r]&&(h=$[r]);for(r=0;r<k;++r)r%w&&($[r]=h+A)}else for(y=!1,o=1;o<w;++o)for(r=o;r<k;r+=w)$[r]+=D[o-1];if(v===By)for(a=1;a<_;++a){for(h=0,i=(r=a*w)+w;r<i;++r)h<S[r]&&(h=S[r]);for(r=a*w;r<i;++r)S[r]=h+E[a-1]}else if(v===Ry){for(h=0,r=w;r<k;++r)h<S[r]&&(h=S[r]);for(r=w;r<k;++r)S[r]=h+F}else for(v=!1,a=1;a<_;++a)for(i=(r=a*w)+w;r<i;++r)S[r]+=E[a-1];for(f=0,r=0;r<k;++r)f=$[r]+(r%w?f:0),C[r]+=f-t[r].x;for(o=0;o<w;++o)for(d=0,r=o;r<k;r+=w)d+=S[r],M[r]+=d-t[r].y;if(y&&lv(n.center,Py)&&_>1)for(r=0;r<k;++r)(f=(s=y===Ry?A:D[r%w])-z[r].x2-t[r].x-C[r])>0&&(C[r]+=f/2);if(v&&lv(n.center,jy)&&1!==w)for(r=0;r<k;++r)(d=(s=v===Ry?F:E[~~(r/w)])-z[r].y2-t[r].y-M[r])>0&&(M[r]+=d/2);for(r=0;r<k;++r)g.union(z[r].translate(C[r],M[r]));switch(f=lv(n.anchor,"x"),d=lv(n.anchor,"y"),lv(n.anchor,Py)){case yy:f-=g.width();break;case gy:f-=g.width()/2}switch(lv(n.anchor,jy)){case yy:d-=g.height();break;case gy:d-=g.height()/2}for(f=Math.round(f),d=Math.round(d),g.clear(),r=0;r<k;++r)t[r].mark.bounds.clear();for(r=0;r<k;++r)(l=t[r]).x+=C[r]+=f,l.y+=M[r]+=d,g.union(l.mark.bounds.union(l.bounds.translate(C[r],M[r]))),p&&e.dirty(l);return g}function fv(e,t,n){var i,r,o,a,s,l,u,c=function(e){var t,n,i=e.items,r=i.length,o=0;const a={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;o<r;++o)if(n=(t=i[o]).items,t.marktype===vy)switch(t.role){case by:case ky:case xy:break;case $y:a.rowheaders.push(...n);break;case Dy:a.rowfooters.push(...n);break;case Sy:a.colheaders.push(...n);break;case Ey:a.colfooters.push(...n);break;case Ay:a.rowtitle=n[0];break;case Fy:a.coltitle=n[0];break;default:a.marks.push(...n)}return a}(t),f=c.marks,d=n.bounds===Ty?dv:hv,h=n.offset,p=n.columns||f.length,m=p<=0?1:Math.ceil(f.length/p),g=m*p;const y=cv(e,f,n);y.empty()&&y.set(0,0,0,0),c.rowheaders&&(l=lv(n.headerBand,jy,null),i=pv(e,c.rowheaders,f,p,m,-lv(h,"rowHeader"),rv,0,d,"x1",0,p,1,l)),c.colheaders&&(l=lv(n.headerBand,Py,null),r=pv(e,c.colheaders,f,p,p,-lv(h,"columnHeader"),rv,1,d,"y1",0,1,p,l)),c.rowfooters&&(l=lv(n.footerBand,jy,null),o=pv(e,c.rowfooters,f,p,m,lv(h,"rowFooter"),ov,0,d,"x2",p-1,p,1,l)),c.colfooters&&(l=lv(n.footerBand,Py,null),a=pv(e,c.colfooters,f,p,p,lv(h,"columnFooter"),ov,1,d,"y2",g-p,1,p,l)),c.rowtitle&&(s=lv(n.titleAnchor,jy),u=lv(h,"rowTitle"),u=s===yy?o+u:i-u,l=lv(n.titleBand,jy,.5),mv(e,c.rowtitle,u,0,y,l)),c.coltitle&&(s=lv(n.titleAnchor,Py),u=lv(h,"columnTitle"),u=s===yy?a+u:r-u,l=lv(n.titleBand,Py,.5),mv(e,c.coltitle,u,1,y,l))}function dv(e,t){return"x1"===t?e.x||0:"y1"===t?e.y||0:"x2"===t?(e.x||0)+(e.width||0):"y2"===t?(e.y||0)+(e.height||0):void 0}function hv(e,t){return e.bounds[t]}function pv(e,t,n,i,r,o,a,s,l,u,c,f,d,h){var p,m,g,y,v,b,x,w,_,k=n.length,$=0,D=0;if(!k)return $;for(p=c;p<k;p+=f)n[p]&&($=a($,l(n[p],u)));if(!t.length)return $;for(t.length>r&&(e.warn("Grid headers exceed limit: "+r),t=t.slice(0,r)),$+=o,m=0,y=t.length;m<y;++m)e.dirty(t[m]),t[m].mark.bounds.clear();for(p=c,m=0,y=t.length;m<y;++m,p+=f){for(v=(b=t[m]).mark.bounds,g=p;g>=0&&null==(x=n[g]);g-=d);s?(w=null==h?x.x:Math.round(x.bounds.x1+h*x.bounds.width()),_=$):(w=$,_=null==h?x.y:Math.round(x.bounds.y1+h*x.bounds.height())),v.union(b.bounds.translate(w-(b.x||0),_-(b.y||0))),b.x=w,b.y=_,e.dirty(b),D=a(D,v[u])}return D}function mv(e,t,n,i,r,o){if(t){e.dirty(t);var a=n,s=n;i?a=Math.round(r.x1+o*r.width()):s=Math.round(r.y1+o*r.height()),t.bounds.translate(a-(t.x||0),s-(t.y||0)),t.mark.bounds.clear().union(t.bounds),t.x=a,t.y=s,e.dirty(t)}}function gv(e,t,n,i,r,o,a){const s=function(e,t){const n=e[t]||{};return(t,i)=>null!=n[t]?n[t]:null!=e[t]?e[t]:i}(n,t),l=function(e,t){let n=-1/0;return e.forEach((e=>{null!=e.offset&&(n=Math.max(n,e.offset))})),n>-1/0?n:t}(e,s("offset",0)),u=s("anchor",my),c=u===yy?1:u===gy?.5:0,f={align:By,bounds:s("bounds",Ty),columns:"vertical"===s("direction")?1:e.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(t){case dy:f.anchor={x:Math.floor(i.x1)-l,column:yy,y:c*(a||i.height()+2*i.y1),row:u};break;case hy:f.anchor={x:Math.ceil(i.x2)+l,y:c*(a||i.height()+2*i.y1),row:u};break;case fy:f.anchor={y:Math.floor(r.y1)-l,row:yy,x:c*(o||r.width()+2*r.x1),column:u};break;case py:f.anchor={y:Math.ceil(r.y2)+l,x:c*(o||r.width()+2*r.x1),column:u};break;case"top-left":f.anchor={x:l,y:l};break;case"top-right":f.anchor={x:o-l,y:l,column:yy};break;case"bottom-left":f.anchor={x:l,y:a-l,row:yy};break;case"bottom-right":f.anchor={x:o-l,y:a-l,column:yy,row:yy}}return f}function yv(e,t){var n,i,r=t.items[0],o=r.datum,a=r.orient,s=r.bounds,l=r.x,u=r.y;return r._bounds?r._bounds.clear().union(s):r._bounds=s.clone(),s.clear(),function(e,t,n){var i=t.padding,r=i-n.x,o=i-n.y;if(t.datum.title){var a=t.items[1].items[0],s=a.anchor,l=t.titlePadding||0,u=i-a.x,c=i-a.y;switch(a.orient){case dy:r+=Math.ceil(a.bounds.width())+l;break;case hy:case py:break;default:o+=a.bounds.height()+l}switch((r||o)&&bv(e,n,r,o),a.orient){case dy:c+=vv(t,n,a,s,1,1);break;case hy:u+=vv(t,n,a,yy,0,0)+l,c+=vv(t,n,a,s,1,1);break;case py:u+=vv(t,n,a,s,0,0),c+=vv(t,n,a,yy,-1,0,1)+l;break;default:u+=vv(t,n,a,s,0,0)}(u||c)&&bv(e,a,u,c),(u=Math.round(a.bounds.x1-i))<0&&(bv(e,n,-u,0),bv(e,a,-u,0))}else(r||o)&&bv(e,n,r,o)}(e,r,r.items[0].items[0]),s=function(e,t){return e.items.forEach((e=>t.union(e.bounds))),t.x1=e.padding,t.y1=e.padding,t}(r,s),n=2*r.padding,i=2*r.padding,s.empty()||(n=Math.ceil(s.width()+n),i=Math.ceil(s.height()+i)),"symbol"===o.type&&function(e){const t=e.reduce(((e,t)=>(e[t.column]=Math.max(t.bounds.x2-t.x,e[t.column]||0),e)),{});e.forEach((e=>{e.width=t[e.column],e.height=e.bounds.y2-e.y}))}(r.items[0].items[0].items[0].items),a!==Ny&&(r.x=l=0,r.y=u=0),r.width=n,r.height=i,Ah(s.set(l,u,l+n,u+i),r),r.mark.bounds.clear().union(s),r}function vv(e,t,n,i,r,o,a){const s="symbol"!==e.datum.type,l=n.datum.vgrad,u=(!s||!o&&l||a?t:t.items[0]).bounds[r?"y2":"x2"]-e.padding,c=l&&o?u:0,f=l&&o?0:u,d=r<=0?0:om(n);return Math.round(i===my?c:i===yy?f-d:.5*(u-d))}function bv(e,t,n,i){t.x+=n,t.y+=i,t.bounds.translate(n,i),t.mark.bounds.translate(n,i),e.dirty(t)}function xv(e){tl.call(this,null,e)}_(xv,tl,{transform(e,t){const n=t.dataflow;return e.mark.items.forEach((t=>{e.layout&&fv(n,t,e.layout),function(e,t,n){var i,r,o,a,s,l=t.items,u=Math.max(0,t.width||0),c=Math.max(0,t.height||0),f=(new xh).set(0,0,u,c),d=f.clone(),h=f.clone(),p=[];for(a=0,s=l.length;a<s;++a)switch((r=l[a]).role){case by:(tv(r)?d:h).union(nv(e,r,u,c));break;case xy:i=r;break;case ky:p.push(yv(e,r));break;case wy:case _y:case $y:case Dy:case Ay:case Sy:case Ey:case Fy:d.union(r.bounds),h.union(r.bounds);break;default:f.union(r.bounds)}if(p.length){const t={};p.forEach((e=>{(o=e.orient||hy)!==Ny&&(t[o]||(t[o]=[])).push(e)}));for(const i in t){const r=t[i];cv(e,r,gv(r,i,n.legends,d,h,u,c))}p.forEach((t=>{const i=t.bounds;if(i.equals(t._bounds)||(t.bounds=t._bounds,e.dirty(t),t.bounds=i,e.dirty(t)),!n.autosize||n.autosize.type!==My&&n.autosize.type!==zy&&n.autosize.type!==Oy)f.union(i);else switch(t.orient){case dy:case hy:f.add(i.x1,0).add(i.x2,0);break;case fy:case py:f.add(0,i.y1).add(0,i.y2)}}))}f.union(d).union(h),i&&f.union(function(e,t,n,i,r){var o,a=t.items[0],s=a.frame,l=a.orient,u=a.anchor,c=a.offset,f=a.padding,d=a.items[0].items[0],h=a.items[1]&&a.items[1].items[0],p=l===dy||l===hy?i:n,m=0,g=0,y=0,v=0,b=0;if(s!==vy?l===dy?(m=r.y2,p=r.y1):l===hy?(m=r.y1,p=r.y2):(m=r.x1,p=r.x2):l===dy&&(m=i,p=0),o=u===my?m:u===yy?p:(m+p)/2,h&&h.text){switch(l){case fy:case py:b=d.bounds.height()+f;break;case dy:v=d.bounds.width()+f;break;case hy:v=-d.bounds.width()-f}Zy.clear().union(h.bounds),Zy.translate(v-(h.x||0),b-(h.y||0)),ev(h,"x",v)|ev(h,"y",b)&&(e.dirty(h),h.bounds.clear().union(Zy),h.mark.bounds.clear().union(Zy),e.dirty(h)),Zy.clear().union(h.bounds)}else Zy.clear();switch(Zy.union(d.bounds),l){case fy:g=o,y=r.y1-Zy.height()-c;break;case dy:g=r.x1-Zy.width()-c,y=o;break;case hy:g=r.x2+Zy.width()+c,y=o;break;case py:g=o,y=r.y2+c;break;default:g=a.x,y=a.y}return ev(a,"x",g)|ev(a,"y",y)&&(Zy.translate(g,y),e.dirty(a),a.bounds.clear().union(Zy),t.bounds.clear().union(Zy),e.dirty(a)),a.bounds}(e,i,u,c,f));t.clip&&f.set(0,0,t.width||0,t.height||0);!function(e,t,n,i){const r=i.autosize||{},o=r.type;if(e._autosize<1||!o)return;let a=e._width,s=e._height,l=Math.max(0,t.width||0),u=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,t.height||0),f=Math.max(0,Math.ceil(-n.y1));const d=Math.max(0,Math.ceil(n.x2-l)),h=Math.max(0,Math.ceil(n.y2-c));if(r.contains===Cy){const t=e.padding();a-=t.left+t.right,s-=t.top+t.bottom}o===Ny?(u=0,f=0,l=a,c=s):o===My?(l=Math.max(0,a-u-d),c=Math.max(0,s-f-h)):o===zy?(l=Math.max(0,a-u-d),s=c+f+h):o===Oy?(a=l+u+d,c=Math.max(0,s-f-h)):"pad"===o&&(a=l+u+d,s=c+f+h);e._resizeView(a,s,l,c,[u,f],r.resize)}(e,t,f,n)}(n,t,e)})),(i=e.mark.group)&&"legend-entry"!==i.mark.role?t.reflow():t;var i}});const wv=Object.freeze(Object.defineProperty({__proto__:null,bound:Ly,identifier:Iy,mark:Wy,overlap:Hy,render:Ky,viewlayout:xv},Symbol.toStringTag,{value:"Module"}));function _v(e){tl.call(this,null,e)}function kv(e){tl.call(this,null,e)}function $v(){return $s({})}function Dv(e){tl.call(this,null,e)}function Av(e){tl.call(this,[],e)}_(_v,tl,{transform(e,t){if(this.value&&!e.modified())return t.StopPropagation;var n=t.dataflow.locale(),i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=this.value,o=e.scale,a=id(o,null==e.count?e.values?e.values.length:10:e.count,e.minstep),s=e.format||ad(n,o,a,e.formatSpecifier,e.formatType,!!e.values),l=e.values?rd(o,e.values,a):od(o,a);return r&&(i.rem=r),r=l.map(((e,t)=>$s({index:t/(l.length-1||1),value:e,label:s(e)}))),e.extra&&r.length&&r.push($s({index:-1,extra:{value:r[0].value},label:""})),i.source=r,i.add=r,this.value=r,i}}),_(kv,tl,{transform(e,t){var n=t.dataflow,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.item||$v,o=e.key||_s,a=this.value;return u(i.encode)&&(i.encode=null),a&&(e.modified("key")||t.modified(o))&&v("DataJoin does not support modified key function or fields."),a||(t=t.addAll(),this.value=a=function(e){const t=W().test((e=>e.exit));return t.lookup=n=>t.get(e(n)),t}(o)),t.visit(t.ADD,(e=>{const t=o(e);let n=a.get(t);n?n.exit?(a.empty--,i.add.push(n)):i.mod.push(n):(n=r(e),a.set(t,n),i.add.push(n)),n.datum=e,n.exit=!1})),t.visit(t.MOD,(e=>{const t=o(e),n=a.get(t);n&&(n.datum=e,i.mod.push(n))})),t.visit(t.REM,(e=>{const t=o(e),n=a.get(t);e!==n.datum||n.exit||(i.rem.push(n),n.exit=!0,++a.empty)})),t.changed(t.ADD_MOD)&&i.modifies("datum"),(t.clean()||e.clean&&a.empty>n.cleanThreshold)&&n.runAfter(a.clean),i}}),_(Dv,tl,{transform(e,t){var n=t.fork(t.ADD_REM),i=e.mod||!1,r=e.encoders,o=t.encode;if(u(o)){if(!n.changed()&&!o.every((e=>r[e])))return t.StopPropagation;o=o[0],n.encode=null}var a="enter"===o,s=r.update||ue,l=r.enter||ue,c=r.exit||ue,f=(o&&!a?r[o]:s)||ue;if(t.changed(t.ADD)&&(t.visit(t.ADD,(t=>{l(t,e),s(t,e)})),n.modifies(l.output),n.modifies(s.output),f!==ue&&f!==s&&(t.visit(t.ADD,(t=>{f(t,e)})),n.modifies(f.output))),t.changed(t.REM)&&c!==ue&&(t.visit(t.REM,(t=>{c(t,e)})),n.modifies(c.output)),a||f!==ue){const r=t.MOD|(e.modified()?t.REFLOW:0);a?(t.visit(r,(t=>{const r=l(t,e)||i;(f(t,e)||r)&&n.mod.push(t)})),n.mod.length&&n.modifies(l.output)):t.visit(r,(t=>{(f(t,e)||i)&&n.mod.push(t)})),n.mod.length&&n.modifies(f.output)}return n.changed()?n:t.StopPropagation}}),_(Av,tl,{transform(e,t){if(null!=this.value&&!e.modified())return t.StopPropagation;var n,i,r,o,a,s=t.dataflow.locale(),l=t.fork(t.NO_SOURCE|t.NO_FIELDS),u=this.value,c=e.type||Zf,f=e.scale,d=+e.limit,h=id(f,null==e.count?5:e.count,e.minstep),p=!!e.values||c===Zf,y=e.format||fd(s,f,h,c,e.formatSpecifier,e.formatType,p),v=e.values||cd(f,h);return u&&(l.rem=u),c===Zf?(d&&v.length>d?(t.dataflow.warn("Symbol legend count exceeds limit, filtering items."),u=v.slice(0,d-1),a=!0):u=v,m(r=e.size)?(e.values||0!==f(u[0])||(u=u.slice(1)),o=u.reduce(((t,n)=>Math.max(t,r(n,e))),0)):r=g(o=r||8),u=u.map(((t,n)=>$s({index:n,label:y(t,n,u),value:t,offset:o,size:r(t,e)}))),a&&(a=v[u.length],u.push($s({index:u.length,label:`…${v.length-u.length} entries`,value:a,offset:o,size:r(a,e)})))):"gradient"===c?(n=f.domain(),i=Vf(f,n[0],T(n)),v.length<3&&!e.values&&n[0]!==T(n)&&(v=[n[0],T(n)]),u=v.map(((e,t)=>$s({index:t,label:y(e,t,v),value:e,perc:i(e)})))):(r=v.length-1,i=function(e){const t=e.domain(),n=t.length-1;let i=+t[0],r=+T(t),o=r-i;if(e.type===yf){const e=n?o/n:.1;i-=e,r+=e,o=r-i}return e=>(e-i)/o}(f),u=v.map(((e,t)=>$s({index:t,label:y(e,t,v),value:e,perc:t?i(e):0,perc2:t===r?1:i(v[t+1])})))),l.source=u,l.add=u,this.value=u,l}});const Sv=e=>e.source.x,Ev=e=>e.source.y,Fv=e=>e.target.x,Cv=e=>e.target.y;function Mv(e){tl.call(this,{},e)}Mv.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},_(Mv,tl,{transform(e,t){var n=e.sourceX||Sv,i=e.sourceY||Ev,r=e.targetX||Fv,o=e.targetY||Cv,a=e.as||"path",s=e.orient||"vertical",l=e.shape||"line",u=Rv.get(l+"-"+s)||Rv.get(l);return u||v("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,(e=>{e[a]=u(n(e),i(e),r(e),o(e))})),t.reflow(e.modified()).modifies(a)}});const zv=(e,t,n,i)=>"M"+e+","+t+"L"+n+","+i,Ov=(e,t,n,i)=>{var r=n-e,o=i-t,a=Math.hypot(r,o)/2;return"M"+e+","+t+"A"+a+","+a+" "+180*Math.atan2(o,r)/Math.PI+" 0 1 "+n+","+i},Nv=(e,t,n,i)=>{const r=n-e,o=i-t,a=.2*(r+o),s=.2*(o-r);return"M"+e+","+t+"C"+(e+a)+","+(t+s)+" "+(n+s)+","+(i-a)+" "+n+","+i},Rv=W({line:zv,"line-radial":(e,t,n,i)=>zv(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),arc:Ov,"arc-radial":(e,t,n,i)=>Ov(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),curve:Nv,"curve-radial":(e,t,n,i)=>Nv(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),"orthogonal-horizontal":(e,t,n,i)=>"M"+e+","+t+"V"+i+"H"+n,"orthogonal-vertical":(e,t,n,i)=>"M"+e+","+t+"H"+n+"V"+i,"orthogonal-radial":(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),a=Math.cos(n),s=Math.sin(n);return"M"+t*r+","+t*o+"A"+t+","+t+" 0 0,"+((Math.abs(n-e)>Math.PI?n<=e:n>e)?1:0)+" "+t*a+","+t*s+"L"+i*a+","+i*s},"diagonal-horizontal":(e,t,n,i)=>{const r=(e+n)/2;return"M"+e+","+t+"C"+r+","+t+" "+r+","+i+" "+n+","+i},"diagonal-vertical":(e,t,n,i)=>{const r=(t+i)/2;return"M"+e+","+t+"C"+e+","+r+" "+n+","+r+" "+n+","+i},"diagonal-radial":(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),a=Math.cos(n),s=Math.sin(n),l=(t+i)/2;return"M"+t*r+","+t*o+"C"+l*r+","+l*o+" "+l*a+","+l*s+" "+i*a+","+i*s}});function Bv(e){tl.call(this,null,e)}Bv.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},_(Bv,tl,{transform(e,t){var n,i,r,o=e.as||["startAngle","endAngle"],a=o[0],s=o[1],l=e.field||ce,u=e.startAngle||0,c=null!=e.endAngle?e.endAngle:2*Math.PI,f=t.source,d=f.map(l),h=d.length,p=u,m=(c-u)/ai(d),g=Ht(h);for(e.sort&&g.sort(((e,t)=>d[e]-d[t])),n=0;n<h;++n)r=d[g[n]],(i=f[g[n]])[a]=p,i[s]=p+=r*m;return this.value=d,t.reflow(e.modified()).modifies(o)}});function Tv(e){return Tf(e)&&e!==hf}const Pv=se(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function jv(e){tl.call(this,null,e),this.modified(!0)}function Lv(e,t,n){Lf(e)&&(Math.abs(t.reduce(((e,t)=>e+(t<0?-1:t>0?1:0)),0))!==t.length&&n.warn("Log scale domain includes zero: "+o(t)));return t}function qv(e,t,n){return m(e)&&(t||n)?Wf(e,Uv(t||[0,1],n)):e}function Uv(e,t){return t?e.slice().reverse():e}function Iv(e){tl.call(this,null,e)}_(jv,tl,{transform(e,t){var n=t.dataflow,r=this.value,o=function(e){var t,n=e.type,r="";if(n===hf)return hf+"-"+af;(function(e){const t=e.type;return Tf(t)&&t!==ff&&t!==df&&(e.scheme||e.range&&e.range.length&&e.range.every(i))})(e)&&(r=2===(t=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(null!=e.domainMid):0)?hf+"-":3===t?pf+"-":"");return(r+n||af).toLowerCase()}(e);for(o in r&&o===r.type||(this.value=r=Nf(o)()),e)if(!Pv[o]){if("padding"===o&&Tv(r.type))continue;m(r[o])?r[o](e[o]):n.warn("Unsupported scale property: "+o)}return function(e,t,n){var i=e.type,r=t.round||!1,o=t.range;if(null!=t.rangeStep)o=function(e,t,n){e!==xf&&e!==bf&&v("Only band and point scales support rangeStep.");var i=(null!=t.paddingOuter?t.paddingOuter:t.padding)||0,r=e===bf?1:(null!=t.paddingInner?t.paddingInner:t.padding)||0;return[0,t.rangeStep*of(n,r,i)]}(i,t,n);else if(t.scheme&&(o=function(e,t,n){var i,r=t.schemeExtent;u(t.scheme)?i=Hf(t.scheme,t.interpolate,t.interpolateGamma):(i=Kf(t.scheme.toLowerCase()))||v(`Unrecognized scheme name: ${t.scheme}`);return n=e===yf?n+1:e===wf?n-1:e===mf||e===gf?+t.schemeCount||5:n,qf(e)?qv(i,r,t.reverse):m(i)?Gf(qv(i,r),n):e===vf?i:i.slice(0,n)}(i,t,n),m(o))){if(e.interpolator)return e.interpolator(o);v(`Scale type ${i} does not support interpolating color schemes.`)}if(o&&qf(i))return e.interpolator(Hf(Uv(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(Yf(t.interpolate,t.interpolateGamma)):m(e.round)?e.round(r):m(e.rangeRound)&&e.interpolate(r?Rt:Ct);o&&e.range(Uv(o,t.reverse))}(r,e,function(e,t,n){let i=t.bins;if(i&&!u(i)){const t=e.domain(),n=t[0],r=T(t),o=i.step;let a=null==i.start?n:i.start,s=null==i.stop?r:i.stop;o||v("Scale bins parameter missing step property."),a<n&&(a=o*Math.ceil(n/o)),s>r&&(s=o*Math.floor(r/o)),i=Ht(a,s+o/2,o)}i?e.bins=i:e.bins&&delete e.bins;e.type===wf&&(i?t.domain||t.domainRaw||(e.domain(i),n=i.length):e.bins=e.domain());return n}(r,e,function(e,t,n){const i=function(e,t,n){return t?(e.domain(Lv(e.type,t,n)),t.length):-1}(e,t.domainRaw,n);if(i>-1)return i;var r,o,a=t.domain,s=e.type,l=t.zero||void 0===t.zero&&function(e){const t=e.type;return!e.bins&&(t===af||t===lf||t===uf)}(e);if(!a)return 0;if((l||null!=t.domainMin||null!=t.domainMax||null!=t.domainMid)&&(r=(a=a.slice()).length-1||1,l&&(a[0]>0&&(a[0]=0),a[r]<0&&(a[r]=0)),null!=t.domainMin&&(a[0]=t.domainMin),null!=t.domainMax&&(a[r]=t.domainMax),null!=t.domainMid)){const e=(o=t.domainMid)>a[r]?r+1:o<a[0]?0:r;e!==r&&n.warn("Scale domainMid exceeds domain min or max.",o),a.splice(e,0,o)}Tv(s)&&t.padding&&a[0]!==T(a)&&(a=function(e,t,n,i,r,o){var a=Math.abs(T(n)-n[0]),s=a/(a-2*i),l=e===sf?fe(t,null,s):e===uf?de(t,null,s,.5):e===lf?de(t,null,s,r||1):e===cf?he(t,null,s,o||1):pe(t,null,s);return t=t.slice(),t[0]=l[0],t[t.length-1]=l[1],t}(s,a,t.range,t.padding,t.exponent,t.constant));e.domain(Lv(s,a,n)),s===vf&&e.unknown(t.domainImplicit?Xn:void 0);t.nice&&e.nice&&e.nice(!0!==t.nice&&id(e,t.nice)||null);return a.length}(r,e,n))),t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),_(Iv,tl,{transform(e,t){const n=e.modified("sort")||t.changed(t.ADD)||t.modified(e.sort.fields)||t.modified("datum");return n&&t.source.sort(Es(e.sort)),this.modified(n),t}});const Wv="zero",Hv="center",Gv="normalize",Vv=["y0","y1"];function Yv(e){tl.call(this,null,e)}function Xv(e,t,n,i,r){for(var o,a=(t-e.sum)/2,s=e.length,l=0;l<s;++l)(o=e[l])[i]=a,o[r]=a+=Math.abs(n(o))}function Jv(e,t,n,i,r){for(var o,a=1/e.sum,s=0,l=e.length,u=0,c=0;u<l;++u)(o=e[u])[i]=s,o[r]=s=a*(c+=Math.abs(n(o)))}function Qv(e,t,n,i,r){for(var o,a,s=0,l=0,u=e.length,c=0;c<u;++c)(o=+n(a=e[c]))<0?(a[i]=l,a[r]=l+=o):(a[i]=s,a[r]=s+=o)}Yv.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:Wv,values:[Wv,Hv,Gv]},{name:"as",type:"string",array:!0,length:2,default:Vv}]},_(Yv,tl,{transform(e,t){var n,i,r,o,a=e.as||Vv,s=a[0],l=a[1],u=Es(e.sort),c=e.field||ce,f=e.offset===Hv?Xv:e.offset===Gv?Jv:Qv;for(n=function(e,t,n,i){var r,o,a,s,l,u,c,f,d,h=[],p=e=>e(l);if(null==t)h.push(e.slice());else for(r={},o=0,a=e.length;o<a;++o)l=e[o],(c=r[u=t.map(p)])||(r[u]=c=[],h.push(c)),c.push(l);for(u=0,d=0,s=h.length;u<s;++u){for(o=0,f=0,a=(c=h[u]).length;o<a;++o)f+=Math.abs(i(c[o]));c.sum=f,f>d&&(d=f),n&&c.sort(n)}return h.max=d,h}(t.source,e.groupby,u,c),i=0,r=n.length,o=n.max;i<r;++i)f(n[i],o,c,s,l);return t.reflow(e.modified()).modifies(a)}});const Kv=Object.freeze(Object.defineProperty({__proto__:null,axisticks:_v,datajoin:kv,encode:Dv,legendentries:Av,linkpath:Mv,pie:Bv,scale:jv,sortitems:Iv,stack:Yv},Symbol.toStringTag,{value:"Module"}));var Zv=1e-6,eb=1e-12,tb=Math.PI,nb=tb/2,ib=tb/4,rb=2*tb,ob=180/tb,ab=tb/180,sb=Math.abs,lb=Math.atan,ub=Math.atan2,cb=Math.cos,fb=Math.ceil,db=Math.exp,hb=Math.hypot,pb=Math.log,mb=Math.pow,gb=Math.sin,yb=Math.sign||function(e){return e>0?1:e<0?-1:0},vb=Math.sqrt,bb=Math.tan;function xb(e){return e>1?0:e<-1?tb:Math.acos(e)}function wb(e){return e>1?nb:e<-1?-nb:Math.asin(e)}function _b(){}function kb(e,t){e&&Db.hasOwnProperty(e.type)&&Db[e.type](e,t)}var $b={Feature:function(e,t){kb(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,i=-1,r=n.length;++i<r;)kb(n[i].geometry,t)}},Db={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)e=n[i],t.point(e[0],e[1],e[2])},LineString:function(e,t){Ab(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)Ab(n[i],t,0)},Polygon:function(e,t){Sb(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)Sb(n[i],t)},GeometryCollection:function(e,t){for(var n=e.geometries,i=-1,r=n.length;++i<r;)kb(n[i],t)}};function Ab(e,t,n){var i,r=-1,o=e.length-n;for(t.lineStart();++r<o;)i=e[r],t.point(i[0],i[1],i[2]);t.lineEnd()}function Sb(e,t){var n=-1,i=e.length;for(t.polygonStart();++n<i;)Ab(e[n],t,1);t.polygonEnd()}function Eb(e,t){e&&$b.hasOwnProperty(e.type)?$b[e.type](e,t):kb(e,t)}var Fb,Cb,Mb,zb,Ob,Nb,Rb,Bb,Tb,Pb,jb,Lb,qb,Ub,Ib,Wb,Hb=new Kn,Gb=new Kn,Vb={point:_b,lineStart:_b,lineEnd:_b,polygonStart:function(){Hb=new Kn,Vb.lineStart=Yb,Vb.lineEnd=Xb},polygonEnd:function(){var e=+Hb;Gb.add(e<0?rb+e:e),this.lineStart=this.lineEnd=this.point=_b},sphere:function(){Gb.add(rb)}};function Yb(){Vb.point=Jb}function Xb(){Qb(Fb,Cb)}function Jb(e,t){Vb.point=Qb,Fb=e,Cb=t,Mb=e*=ab,zb=cb(t=(t*=ab)/2+ib),Ob=gb(t)}function Qb(e,t){var n=(e*=ab)-Mb,i=n>=0?1:-1,r=i*n,o=cb(t=(t*=ab)/2+ib),a=gb(t),s=Ob*a,l=zb*o+s*cb(r),u=s*i*gb(r);Hb.add(ub(u,l)),Mb=e,zb=o,Ob=a}function Kb(e){return[ub(e[1],e[0]),wb(e[2])]}function Zb(e){var t=e[0],n=e[1],i=cb(n);return[i*cb(t),i*gb(t),gb(n)]}function ex(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function tx(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function nx(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function ix(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function rx(e){var t=vb(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}var ox,ax,sx,lx,ux,cx,fx,dx,hx,px,mx,gx,yx,vx,bx,xx,wx={point:_x,lineStart:$x,lineEnd:Dx,polygonStart:function(){wx.point=Ax,wx.lineStart=Sx,wx.lineEnd=Ex,Ub=new Kn,Vb.polygonStart()},polygonEnd:function(){Vb.polygonEnd(),wx.point=_x,wx.lineStart=$x,wx.lineEnd=Dx,Hb<0?(Nb=-(Bb=180),Rb=-(Tb=90)):Ub>Zv?Tb=90:Ub<-1e-6&&(Rb=-90),Wb[0]=Nb,Wb[1]=Bb},sphere:function(){Nb=-(Bb=180),Rb=-(Tb=90)}};function _x(e,t){Ib.push(Wb=[Nb=e,Bb=e]),t<Rb&&(Rb=t),t>Tb&&(Tb=t)}function kx(e,t){var n=Zb([e*ab,t*ab]);if(qb){var i=tx(qb,n),r=tx([i[1],-i[0],0],i);rx(r),r=Kb(r);var o,a=e-Pb,s=a>0?1:-1,l=r[0]*ob*s,u=sb(a)>180;u^(s*Pb<l&&l<s*e)?(o=r[1]*ob)>Tb&&(Tb=o):u^(s*Pb<(l=(l+360)%360-180)&&l<s*e)?(o=-r[1]*ob)<Rb&&(Rb=o):(t<Rb&&(Rb=t),t>Tb&&(Tb=t)),u?e<Pb?Fx(Nb,e)>Fx(Nb,Bb)&&(Bb=e):Fx(e,Bb)>Fx(Nb,Bb)&&(Nb=e):Bb>=Nb?(e<Nb&&(Nb=e),e>Bb&&(Bb=e)):e>Pb?Fx(Nb,e)>Fx(Nb,Bb)&&(Bb=e):Fx(e,Bb)>Fx(Nb,Bb)&&(Nb=e)}else Ib.push(Wb=[Nb=e,Bb=e]);t<Rb&&(Rb=t),t>Tb&&(Tb=t),qb=n,Pb=e}function $x(){wx.point=kx}function Dx(){Wb[0]=Nb,Wb[1]=Bb,wx.point=_x,qb=null}function Ax(e,t){if(qb){var n=e-Pb;Ub.add(sb(n)>180?n+(n>0?360:-360):n)}else jb=e,Lb=t;Vb.point(e,t),kx(e,t)}function Sx(){Vb.lineStart()}function Ex(){Ax(jb,Lb),Vb.lineEnd(),sb(Ub)>Zv&&(Nb=-(Bb=180)),Wb[0]=Nb,Wb[1]=Bb,qb=null}function Fx(e,t){return(t-=e)<0?t+360:t}function Cx(e,t){return e[0]-t[0]}function Mx(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}var zx={sphere:_b,point:Ox,lineStart:Rx,lineEnd:Px,polygonStart:function(){zx.lineStart=jx,zx.lineEnd=Lx},polygonEnd:function(){zx.lineStart=Rx,zx.lineEnd=Px}};function Ox(e,t){e*=ab;var n=cb(t*=ab);Nx(n*cb(e),n*gb(e),gb(t))}function Nx(e,t,n){++ox,sx+=(e-sx)/ox,lx+=(t-lx)/ox,ux+=(n-ux)/ox}function Rx(){zx.point=Bx}function Bx(e,t){e*=ab;var n=cb(t*=ab);vx=n*cb(e),bx=n*gb(e),xx=gb(t),zx.point=Tx,Nx(vx,bx,xx)}function Tx(e,t){e*=ab;var n=cb(t*=ab),i=n*cb(e),r=n*gb(e),o=gb(t),a=ub(vb((a=bx*o-xx*r)*a+(a=xx*i-vx*o)*a+(a=vx*r-bx*i)*a),vx*i+bx*r+xx*o);ax+=a,cx+=a*(vx+(vx=i)),fx+=a*(bx+(bx=r)),dx+=a*(xx+(xx=o)),Nx(vx,bx,xx)}function Px(){zx.point=Ox}function jx(){zx.point=qx}function Lx(){Ux(gx,yx),zx.point=Ox}function qx(e,t){gx=e,yx=t,e*=ab,t*=ab,zx.point=Ux;var n=cb(t);vx=n*cb(e),bx=n*gb(e),xx=gb(t),Nx(vx,bx,xx)}function Ux(e,t){e*=ab;var n=cb(t*=ab),i=n*cb(e),r=n*gb(e),o=gb(t),a=bx*o-xx*r,s=xx*i-vx*o,l=vx*r-bx*i,u=hb(a,s,l),c=wb(u),f=u&&-c/u;hx.add(f*a),px.add(f*s),mx.add(f*l),ax+=c,cx+=c*(vx+(vx=i)),fx+=c*(bx+(bx=r)),dx+=c*(xx+(xx=o)),Nx(vx,bx,xx)}function Ix(e,t){function n(n,i){return n=e(n,i),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,i){return(n=t.invert(n,i))&&e.invert(n[0],n[1])}),n}function Wx(e,t){return sb(e)>tb&&(e-=Math.round(e/rb)*rb),[e,t]}function Hx(e,t,n){return(e%=rb)?t||n?Ix(Vx(e),Yx(t,n)):Vx(e):t||n?Yx(t,n):Wx}function Gx(e){return function(t,n){return sb(t+=e)>tb&&(t-=Math.round(t/rb)*rb),[t,n]}}function Vx(e){var t=Gx(e);return t.invert=Gx(-e),t}function Yx(e,t){var n=cb(e),i=gb(e),r=cb(t),o=gb(t);function a(e,t){var a=cb(t),s=cb(e)*a,l=gb(e)*a,u=gb(t),c=u*n+s*i;return[ub(l*r-c*o,s*n-u*i),wb(c*r+l*o)]}return a.invert=function(e,t){var a=cb(t),s=cb(e)*a,l=gb(e)*a,u=gb(t),c=u*r-l*o;return[ub(l*r+u*o,s*n+c*i),wb(c*n-s*i)]},a}function Xx(e,t){(t=Zb(t))[0]-=e,rx(t);var n=xb(-t[1]);return((-t[2]<0?-n:n)+rb-Zv)%rb}function Jx(){var e,t=[];return{point:function(t,n,i){e.push([t,n,i])},lineStart:function(){t.push(e=[])},lineEnd:_b,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Qx(e,t){return sb(e[0]-t[0])<Zv&&sb(e[1]-t[1])<Zv}function Kx(e,t,n,i){this.x=e,this.z=t,this.o=n,this.e=i,this.v=!1,this.n=this.p=null}function Zx(e,t,n,i,r){var o,a,s=[],l=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,n,i=e[0],a=e[t];if(Qx(i,a)){if(!i[2]&&!a[2]){for(r.lineStart(),o=0;o<t;++o)r.point((i=e[o])[0],i[1]);return void r.lineEnd()}a[0]+=2e-6}s.push(n=new Kx(i,e,null,!0)),l.push(n.o=new Kx(i,null,n,!1)),s.push(n=new Kx(a,e,null,!1)),l.push(n.o=new Kx(a,null,n,!0))}})),s.length){for(l.sort(t),ew(s),ew(l),o=0,a=l.length;o<a;++o)l[o].e=n=!n;for(var u,c,f=s[0];;){for(var d=f,h=!0;d.v;)if((d=d.n)===f)return;u=d.z,r.lineStart();do{if(d.v=d.o.v=!0,d.e){if(h)for(o=0,a=u.length;o<a;++o)r.point((c=u[o])[0],c[1]);else i(d.x,d.n.x,1,r);d=d.n}else{if(h)for(u=d.p.z,o=u.length-1;o>=0;--o)r.point((c=u[o])[0],c[1]);else i(d.x,d.p.x,-1,r);d=d.p}u=(d=d.o).z,h=!h}while(!d.v);r.lineEnd()}}}function ew(e){if(t=e.length){for(var t,n,i=0,r=e[0];++i<t;)r.n=n=e[i],n.p=r,r=n;r.n=n=e[0],n.p=r}}function tw(e){return sb(e[0])<=tb?e[0]:yb(e[0])*((sb(e[0])+tb)%rb-tb)}function nw(e,t,n,i){return function(r){var o,a,s,l=t(r),u=Jx(),c=t(u),f=!1,d={point:h,lineStart:m,lineEnd:g,polygonStart:function(){d.point=y,d.lineStart=v,d.lineEnd=b,a=[],o=[]},polygonEnd:function(){d.point=h,d.lineStart=m,d.lineEnd=g,a=oi(a);var e=function(e,t){var n=tw(t),i=t[1],r=gb(i),o=[gb(n),-cb(n),0],a=0,s=0,l=new Kn;1===r?i=nb+Zv:-1===r&&(i=-nb-Zv);for(var u=0,c=e.length;u<c;++u)if(d=(f=e[u]).length)for(var f,d,h=f[d-1],p=tw(h),m=h[1]/2+ib,g=gb(m),y=cb(m),v=0;v<d;++v,p=x,g=_,y=k,h=b){var b=f[v],x=tw(b),w=b[1]/2+ib,_=gb(w),k=cb(w),$=x-p,D=$>=0?1:-1,A=D*$,S=A>tb,E=g*_;if(l.add(ub(E*D*gb(A),y*k+E*cb(A))),a+=S?$+D*rb:$,S^p>=n^x>=n){var F=tx(Zb(h),Zb(b));rx(F);var C=tx(o,F);rx(C);var M=(S^$>=0?-1:1)*wb(C[2]);(i>M||i===M&&(F[0]||F[1]))&&(s+=S^$>=0?1:-1)}}return(a<-1e-6||a<Zv&&l<-1e-12)^1&s}(o,i);a.length?(f||(r.polygonStart(),f=!0),Zx(a,rw,e,n,r)):e&&(f||(r.polygonStart(),f=!0),r.lineStart(),n(null,null,1,r),r.lineEnd()),f&&(r.polygonEnd(),f=!1),a=o=null},sphere:function(){r.polygonStart(),r.lineStart(),n(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function h(t,n){e(t,n)&&r.point(t,n)}function p(e,t){l.point(e,t)}function m(){d.point=p,l.lineStart()}function g(){d.point=h,l.lineEnd()}function y(e,t){s.push([e,t]),c.point(e,t)}function v(){c.lineStart(),s=[]}function b(){y(s[0][0],s[0][1]),c.lineEnd();var e,t,n,i,l=c.clean(),d=u.result(),h=d.length;if(s.pop(),o.push(s),s=null,h)if(1&l){if((t=(n=d[0]).length-1)>0){for(f||(r.polygonStart(),f=!0),r.lineStart(),e=0;e<t;++e)r.point((i=n[e])[0],i[1]);r.lineEnd()}}else h>1&&2&l&&d.push(d.pop().concat(d.shift())),a.push(d.filter(iw))}return d}}function iw(e){return e.length>1}function rw(e,t){return((e=e.x)[0]<0?e[1]-nb-Zv:nb-e[1])-((t=t.x)[0]<0?t[1]-nb-Zv:nb-t[1])}Wx.invert=Wx;const ow=nw((function(){return!0}),(function(e){var t,n=NaN,i=NaN,r=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(o,a){var s=o>0?tb:-tb,l=sb(o-n);sb(l-tb)<Zv?(e.point(n,i=(i+a)/2>0?nb:-nb),e.point(r,i),e.lineEnd(),e.lineStart(),e.point(s,i),e.point(o,i),t=0):r!==s&&l>=tb&&(sb(n-r)<Zv&&(n-=r*Zv),sb(o-s)<Zv&&(o-=s*Zv),i=function(e,t,n,i){var r,o,a=gb(e-n);return sb(a)>Zv?lb((gb(t)*(o=cb(i))*gb(n)-gb(i)*(r=cb(t))*gb(e))/(r*o*a)):(t+i)/2}(n,i,o,a),e.point(r,i),e.lineEnd(),e.lineStart(),e.point(s,i),t=0),e.point(n=o,i=a),r=s},lineEnd:function(){e.lineEnd(),n=i=NaN},clean:function(){return 2-t}}}),(function(e,t,n,i){var r;if(null==e)r=n*nb,i.point(-tb,r),i.point(0,r),i.point(tb,r),i.point(tb,0),i.point(tb,-r),i.point(0,-r),i.point(-tb,-r),i.point(-tb,0),i.point(-tb,r);else if(sb(e[0]-t[0])>Zv){var o=e[0]<t[0]?tb:-tb;r=n*o/2,i.point(-o,r),i.point(0,r),i.point(o,r)}else i.point(t[0],t[1])}),[-tb,-nb]);function aw(e){var t=cb(e),n=2*ab,i=t>0,r=sb(t)>Zv;function o(e,n){return cb(e)*cb(n)>t}function a(e,n,i){var r=[1,0,0],o=tx(Zb(e),Zb(n)),a=ex(o,o),s=o[0],l=a-s*s;if(!l)return!i&&e;var u=t*a/l,c=-t*s/l,f=tx(r,o),d=ix(r,u);nx(d,ix(o,c));var h=f,p=ex(d,h),m=ex(h,h),g=p*p-m*(ex(d,d)-1);if(!(g<0)){var y=vb(g),v=ix(h,(-p-y)/m);if(nx(v,d),v=Kb(v),!i)return v;var b,x=e[0],w=n[0],_=e[1],k=n[1];w<x&&(b=x,x=w,w=b);var $=w-x,D=sb($-tb)<Zv;if(!D&&k<_&&(b=_,_=k,k=b),D||$<Zv?D?_+k>0^v[1]<(sb(v[0]-x)<Zv?_:k):_<=v[1]&&v[1]<=k:$>tb^(x<=v[0]&&v[0]<=w)){var A=ix(h,(-p+y)/m);return nx(A,d),[v,Kb(A)]}}}function s(t,n){var r=i?e:tb-e,o=0;return t<-r?o|=1:t>r&&(o|=2),n<-r?o|=4:n>r&&(o|=8),o}return nw(o,(function(e){var t,n,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(f,d){var h,p=[f,d],m=o(f,d),g=i?m?0:s(f,d):m?s(f+(f<0?tb:-tb),d):0;if(!t&&(u=l=m)&&e.lineStart(),m!==l&&(!(h=a(t,p))||Qx(t,h)||Qx(p,h))&&(p[2]=1),m!==l)c=0,m?(e.lineStart(),h=a(p,t),e.point(h[0],h[1])):(h=a(t,p),e.point(h[0],h[1],2),e.lineEnd()),t=h;else if(r&&t&&i^m){var y;g&n||!(y=a(p,t,!0))||(c=0,i?(e.lineStart(),e.point(y[0][0],y[0][1]),e.point(y[1][0],y[1][1]),e.lineEnd()):(e.point(y[1][0],y[1][1]),e.lineEnd(),e.lineStart(),e.point(y[0][0],y[0][1],3)))}!m||t&&Qx(t,p)||e.point(p[0],p[1]),t=p,l=m,n=g},lineEnd:function(){l&&e.lineEnd(),t=null},clean:function(){return c|(u&&l)<<1}}}),(function(t,i,r,o){!function(e,t,n,i,r,o){if(n){var a=cb(t),s=gb(t),l=i*n;null==r?(r=t+i*rb,o=t-l/2):(r=Xx(a,r),o=Xx(a,o),(i>0?r<o:r>o)&&(r+=i*rb));for(var u,c=r;i>0?c>o:c<o;c-=l)u=Kb([a,-s*cb(c),-s*gb(c)]),e.point(u[0],u[1])}}(o,e,n,r,t,i)}),i?[0,-e]:[-tb,e-tb])}var sw=1e9,lw=-1e9;function uw(e,t,n,i){function r(r,o){return e<=r&&r<=n&&t<=o&&o<=i}function o(r,o,s,u){var c=0,f=0;if(null==r||(c=a(r,s))!==(f=a(o,s))||l(r,o)<0^s>0)do{u.point(0===c||3===c?e:n,c>1?i:t)}while((c=(c+s+4)%4)!==f);else u.point(o[0],o[1])}function a(i,r){return sb(i[0]-e)<Zv?r>0?0:3:sb(i[0]-n)<Zv?r>0?2:1:sb(i[1]-t)<Zv?r>0?1:0:r>0?3:2}function s(e,t){return l(e.x,t.x)}function l(e,t){var n=a(e,1),i=a(t,1);return n!==i?n-i:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(a){var l,u,c,f,d,h,p,m,g,y,v,b=a,x=Jx(),w={point:_,lineStart:function(){w.point=k,u&&u.push(c=[]);y=!0,g=!1,p=m=NaN},lineEnd:function(){l&&(k(f,d),h&&g&&x.rejoin(),l.push(x.result()));w.point=_,g&&b.lineEnd()},polygonStart:function(){b=x,l=[],u=[],v=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,r=u.length;n<r;++n)for(var o,a,s=u[n],l=1,c=s.length,f=s[0],d=f[0],h=f[1];l<c;++l)o=d,a=h,d=(f=s[l])[0],h=f[1],a<=i?h>i&&(d-o)*(i-a)>(h-a)*(e-o)&&++t:h<=i&&(d-o)*(i-a)<(h-a)*(e-o)&&--t;return t}(),n=v&&t,r=(l=oi(l)).length;(n||r)&&(a.polygonStart(),n&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),r&&Zx(l,s,t,o,a),a.polygonEnd());b=a,l=u=c=null}};function _(e,t){r(e,t)&&b.point(e,t)}function k(o,a){var s=r(o,a);if(u&&c.push([o,a]),y)f=o,d=a,h=s,y=!1,s&&(b.lineStart(),b.point(o,a));else if(s&&g)b.point(o,a);else{var l=[p=Math.max(lw,Math.min(sw,p)),m=Math.max(lw,Math.min(sw,m))],x=[o=Math.max(lw,Math.min(sw,o)),a=Math.max(lw,Math.min(sw,a))];!function(e,t,n,i,r,o){var a,s=e[0],l=e[1],u=0,c=1,f=t[0]-s,d=t[1]-l;if(a=n-s,f||!(a>0)){if(a/=f,f<0){if(a<u)return;a<c&&(c=a)}else if(f>0){if(a>c)return;a>u&&(u=a)}if(a=r-s,f||!(a<0)){if(a/=f,f<0){if(a>c)return;a>u&&(u=a)}else if(f>0){if(a<u)return;a<c&&(c=a)}if(a=i-l,d||!(a>0)){if(a/=d,d<0){if(a<u)return;a<c&&(c=a)}else if(d>0){if(a>c)return;a>u&&(u=a)}if(a=o-l,d||!(a<0)){if(a/=d,d<0){if(a>c)return;a>u&&(u=a)}else if(d>0){if(a<u)return;a<c&&(c=a)}return u>0&&(e[0]=s+u*f,e[1]=l+u*d),c<1&&(t[0]=s+c*f,t[1]=l+c*d),!0}}}}}(l,x,e,t,n,i)?s&&(b.lineStart(),b.point(o,a),v=!1):(g||(b.lineStart(),b.point(l[0],l[1])),b.point(x[0],x[1]),s||b.lineEnd(),v=!1)}p=o,m=a,g=s}return w}}function cw(e,t,n){var i=Ht(e,t-Zv,n).concat(t);return function(e){return i.map((function(t){return[e,t]}))}}function fw(e,t,n){var i=Ht(e,t-Zv,n).concat(t);return function(e){return i.map((function(t){return[t,e]}))}}const dw=e=>e;var hw,pw,mw,gw,yw=new Kn,vw=new Kn,bw={point:_b,lineStart:_b,lineEnd:_b,polygonStart:function(){bw.lineStart=xw,bw.lineEnd=kw},polygonEnd:function(){bw.lineStart=bw.lineEnd=bw.point=_b,yw.add(sb(vw)),vw=new Kn},result:function(){var e=yw/2;return yw=new Kn,e}};function xw(){bw.point=ww}function ww(e,t){bw.point=_w,hw=mw=e,pw=gw=t}function _w(e,t){vw.add(gw*e-mw*t),mw=e,gw=t}function kw(){_w(hw,pw)}var $w=1/0,Dw=$w,Aw=-$w,Sw=Aw,Ew={point:function(e,t){e<$w&&($w=e);e>Aw&&(Aw=e);t<Dw&&(Dw=t);t>Sw&&(Sw=t)},lineStart:_b,lineEnd:_b,polygonStart:_b,polygonEnd:_b,result:function(){var e=[[$w,Dw],[Aw,Sw]];return Aw=Sw=-(Dw=$w=1/0),e}};var Fw,Cw,Mw,zw,Ow=0,Nw=0,Rw=0,Bw=0,Tw=0,Pw=0,jw=0,Lw=0,qw=0,Uw={point:Iw,lineStart:Ww,lineEnd:Vw,polygonStart:function(){Uw.lineStart=Yw,Uw.lineEnd=Xw},polygonEnd:function(){Uw.point=Iw,Uw.lineStart=Ww,Uw.lineEnd=Vw},result:function(){var e=qw?[jw/qw,Lw/qw]:Pw?[Bw/Pw,Tw/Pw]:Rw?[Ow/Rw,Nw/Rw]:[NaN,NaN];return Ow=Nw=Rw=Bw=Tw=Pw=jw=Lw=qw=0,e}};function Iw(e,t){Ow+=e,Nw+=t,++Rw}function Ww(){Uw.point=Hw}function Hw(e,t){Uw.point=Gw,Iw(Mw=e,zw=t)}function Gw(e,t){var n=e-Mw,i=t-zw,r=vb(n*n+i*i);Bw+=r*(Mw+e)/2,Tw+=r*(zw+t)/2,Pw+=r,Iw(Mw=e,zw=t)}function Vw(){Uw.point=Iw}function Yw(){Uw.point=Jw}function Xw(){Qw(Fw,Cw)}function Jw(e,t){Uw.point=Qw,Iw(Fw=Mw=e,Cw=zw=t)}function Qw(e,t){var n=e-Mw,i=t-zw,r=vb(n*n+i*i);Bw+=r*(Mw+e)/2,Tw+=r*(zw+t)/2,Pw+=r,jw+=(r=zw*e-Mw*t)*(Mw+e),Lw+=r*(zw+t),qw+=3*r,Iw(Mw=e,zw=t)}function Kw(e){this._context=e}Kw.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,rb)}},result:_b};var Zw,e_,t_,n_,i_,r_=new Kn,o_={point:_b,lineStart:function(){o_.point=a_},lineEnd:function(){Zw&&s_(e_,t_),o_.point=_b},polygonStart:function(){Zw=!0},polygonEnd:function(){Zw=null},result:function(){var e=+r_;return r_=new Kn,e}};function a_(e,t){o_.point=s_,e_=n_=e,t_=i_=t}function s_(e,t){n_-=e,i_-=t,r_.add(vb(n_*n_+i_*i_)),n_=e,i_=t}let l_,u_,c_,f_;class d_{constructor(e){this._append=null==e?h_:function(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return h_;if(t!==l_){const e=10**t;l_=t,u_=function(t){let n=1;this._+=t[0];for(const i=t.length;n<i;++n)this._+=Math.round(arguments[n]*e)/e+t[n]}}return u_}(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(e,t){switch(this._point){case 0:this._append`M${e},${t}`,this._point=1;break;case 1:this._append`L${e},${t}`;break;default:if(this._append`M${e},${t}`,this._radius!==c_||this._append!==u_){const e=this._radius,t=this._;this._="",this._append`m0,${e}a${e},${e} 0 1,1 0,${-2*e}a${e},${e} 0 1,1 0,${2*e}z`,c_=e,u_=this._append,f_=this._,this._=t}this._+=f_}}result(){const e=this._;return this._="",e.length?e:null}}function h_(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function p_(e,t){let n,i,r=3,o=4.5;function a(e){return e&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),Eb(e,n(i))),i.result()}return a.area=function(e){return Eb(e,n(bw)),bw.result()},a.measure=function(e){return Eb(e,n(o_)),o_.result()},a.bounds=function(e){return Eb(e,n(Ew)),Ew.result()},a.centroid=function(e){return Eb(e,n(Uw)),Uw.result()},a.projection=function(t){return arguments.length?(n=null==t?(e=null,dw):(e=t).stream,a):e},a.context=function(e){return arguments.length?(i=null==e?(t=null,new d_(r)):new Kw(t=e),"function"!=typeof o&&i.pointRadius(o),a):t},a.pointRadius=function(e){return arguments.length?(o="function"==typeof e?e:(i.pointRadius(+e),+e),a):o},a.digits=function(e){if(!arguments.length)return r;if(null==e)r=null;else{const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);r=t}return null===t&&(i=new d_(r)),a},a.projection(e).digits(r).context(t)}function m_(e){return function(t){var n=new g_;for(var i in e)n[i]=e[i];return n.stream=t,n}}function g_(){}function y_(e,t,n){var i=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=i&&e.clipExtent(null),Eb(n,e.stream(Ew)),t(Ew.result()),null!=i&&e.clipExtent(i),e}function v_(e,t,n){return y_(e,(function(n){var i=t[1][0]-t[0][0],r=t[1][1]-t[0][1],o=Math.min(i/(n[1][0]-n[0][0]),r/(n[1][1]-n[0][1])),a=+t[0][0]+(i-o*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(r-o*(n[1][1]+n[0][1]))/2;e.scale(150*o).translate([a,s])}),n)}function b_(e,t,n){return v_(e,[[0,0],t],n)}function x_(e,t,n){return y_(e,(function(n){var i=+t,r=i/(n[1][0]-n[0][0]),o=(i-r*(n[1][0]+n[0][0]))/2,a=-r*n[0][1];e.scale(150*r).translate([o,a])}),n)}function w_(e,t,n){return y_(e,(function(n){var i=+t,r=i/(n[1][1]-n[0][1]),o=-r*n[0][0],a=(i-r*(n[1][1]+n[0][1]))/2;e.scale(150*r).translate([o,a])}),n)}g_.prototype={constructor:g_,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var __=cb(30*ab);function k_(e,t){return+t?function(e,t){function n(i,r,o,a,s,l,u,c,f,d,h,p,m,g){var y=u-i,v=c-r,b=y*y+v*v;if(b>4*t&&m--){var x=a+d,w=s+h,_=l+p,k=vb(x*x+w*w+_*_),$=wb(_/=k),D=sb(sb(_)-1)<Zv||sb(o-f)<Zv?(o+f)/2:ub(w,x),A=e(D,$),S=A[0],E=A[1],F=S-i,C=E-r,M=v*F-y*C;(M*M/b>t||sb((y*F+v*C)/b-.5)>.3||a*d+s*h+l*p<__)&&(n(i,r,o,a,s,l,S,E,D,x/=k,w/=k,_,m,g),g.point(S,E),n(S,E,D,x,w,_,u,c,f,d,h,p,m,g))}}return function(t){var i,r,o,a,s,l,u,c,f,d,h,p,m={point:g,lineStart:y,lineEnd:b,polygonStart:function(){t.polygonStart(),m.lineStart=x},polygonEnd:function(){t.polygonEnd(),m.lineStart=y}};function g(n,i){n=e(n,i),t.point(n[0],n[1])}function y(){c=NaN,m.point=v,t.lineStart()}function v(i,r){var o=Zb([i,r]),a=e(i,r);n(c,f,u,d,h,p,c=a[0],f=a[1],u=i,d=o[0],h=o[1],p=o[2],16,t),t.point(c,f)}function b(){m.point=g,t.lineEnd()}function x(){y(),m.point=w,m.lineEnd=_}function w(e,t){v(i=e,t),r=c,o=f,a=d,s=h,l=p,m.point=v}function _(){n(c,f,u,d,h,p,r,o,i,a,s,l,16,t),m.lineEnd=b,b()}return m}}(e,t):function(e){return m_({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}(e)}var $_=m_({point:function(e,t){this.stream.point(e*ab,t*ab)}});function D_(e,t,n,i,r,o){if(!o)return function(e,t,n,i,r){function o(o,a){return[t+e*(o*=i),n-e*(a*=r)]}return o.invert=function(o,a){return[(o-t)/e*i,(n-a)/e*r]},o}(e,t,n,i,r);var a=cb(o),s=gb(o),l=a*e,u=s*e,c=a/e,f=s/e,d=(s*n-a*t)/e,h=(s*t+a*n)/e;function p(e,o){return[l*(e*=i)-u*(o*=r)+t,n-u*e-l*o]}return p.invert=function(e,t){return[i*(c*e-f*t+d),r*(h-f*e-c*t)]},p}function A_(e){return S_((function(){return e}))()}function S_(e){var t,n,i,r,o,a,s,l,u,c,f=150,d=480,h=250,p=0,m=0,g=0,y=0,v=0,b=0,x=1,w=1,_=null,k=ow,$=null,D=dw,A=.5;function S(e){return l(e[0]*ab,e[1]*ab)}function E(e){return(e=l.invert(e[0],e[1]))&&[e[0]*ob,e[1]*ob]}function F(){var e=D_(f,0,0,x,w,b).apply(null,t(p,m)),i=D_(f,d-e[0],h-e[1],x,w,b);return n=Hx(g,y,v),s=Ix(t,i),l=Ix(n,s),a=k_(s,A),C()}function C(){return u=c=null,S}return S.stream=function(e){return u&&c===e?u:u=$_(function(e){return m_({point:function(t,n){var i=e(t,n);return this.stream.point(i[0],i[1])}})}(n)(k(a(D(c=e)))))},S.preclip=function(e){return arguments.length?(k=e,_=void 0,C()):k},S.postclip=function(e){return arguments.length?(D=e,$=i=r=o=null,C()):D},S.clipAngle=function(e){return arguments.length?(k=+e?aw(_=e*ab):(_=null,ow),C()):_*ob},S.clipExtent=function(e){return arguments.length?(D=null==e?($=i=r=o=null,dw):uw($=+e[0][0],i=+e[0][1],r=+e[1][0],o=+e[1][1]),C()):null==$?null:[[$,i],[r,o]]},S.scale=function(e){return arguments.length?(f=+e,F()):f},S.translate=function(e){return arguments.length?(d=+e[0],h=+e[1],F()):[d,h]},S.center=function(e){return arguments.length?(p=e[0]%360*ab,m=e[1]%360*ab,F()):[p*ob,m*ob]},S.rotate=function(e){return arguments.length?(g=e[0]%360*ab,y=e[1]%360*ab,v=e.length>2?e[2]%360*ab:0,F()):[g*ob,y*ob,v*ob]},S.angle=function(e){return arguments.length?(b=e%360*ab,F()):b*ob},S.reflectX=function(e){return arguments.length?(x=e?-1:1,F()):x<0},S.reflectY=function(e){return arguments.length?(w=e?-1:1,F()):w<0},S.precision=function(e){return arguments.length?(a=k_(s,A=e*e),C()):vb(A)},S.fitExtent=function(e,t){return v_(S,e,t)},S.fitSize=function(e,t){return b_(S,e,t)},S.fitWidth=function(e,t){return x_(S,e,t)},S.fitHeight=function(e,t){return w_(S,e,t)},function(){return t=e.apply(this,arguments),S.invert=t.invert&&E,F()}}function E_(e){var t=0,n=tb/3,i=S_(e),r=i(t,n);return r.parallels=function(e){return arguments.length?i(t=e[0]*ab,n=e[1]*ab):[t*ob,n*ob]},r}function F_(e,t){var n=gb(e),i=(n+gb(t))/2;if(sb(i)<Zv)return function(e){var t=cb(e);function n(e,n){return[e*t,gb(n)/t]}return n.invert=function(e,n){return[e/t,wb(n*t)]},n}(e);var r=1+n*(2*i-n),o=vb(r)/i;function a(e,t){var n=vb(r-2*i*gb(t))/i;return[n*gb(e*=i),o-n*cb(e)]}return a.invert=function(e,t){var n=o-t,a=ub(e,sb(n))*yb(n);return n*i<0&&(a-=tb*yb(e)*yb(n)),[a/i,wb((r-(e*e+n*n)*i*i)/(2*i))]},a}function C_(){return E_(F_).scale(155.424).center([0,33.6442])}function M_(){return C_().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function z_(e){return function(t,n){var i=cb(t),r=cb(n),o=e(i*r);return o===1/0?[2,0]:[o*r*gb(t),o*gb(n)]}}function O_(e){return function(t,n){var i=vb(t*t+n*n),r=e(i),o=gb(r),a=cb(r);return[ub(t*o,i*a),wb(i&&n*o/i)]}}var N_=z_((function(e){return vb(2/(1+e))}));N_.invert=O_((function(e){return 2*wb(e/2)}));var R_=z_((function(e){return(e=xb(e))&&e/gb(e)}));function B_(e,t){return[e,pb(bb((nb+t)/2))]}function T_(e){var t,n,i,r=A_(e),o=r.center,a=r.scale,s=r.translate,l=r.clipExtent,u=null;function c(){var o=tb*a(),s=r(function(e){function t(t){return(t=e(t[0]*ab,t[1]*ab))[0]*=ob,t[1]*=ob,t}return e=Hx(e[0]*ab,e[1]*ab,e.length>2?e[2]*ab:0),t.invert=function(t){return(t=e.invert(t[0]*ab,t[1]*ab))[0]*=ob,t[1]*=ob,t},t}(r.rotate()).invert([0,0]));return l(null==u?[[s[0]-o,s[1]-o],[s[0]+o,s[1]+o]]:e===B_?[[Math.max(s[0]-o,u),t],[Math.min(s[0]+o,n),i]]:[[u,Math.max(s[1]-o,t)],[n,Math.min(s[1]+o,i)]])}return r.scale=function(e){return arguments.length?(a(e),c()):a()},r.translate=function(e){return arguments.length?(s(e),c()):s()},r.center=function(e){return arguments.length?(o(e),c()):o()},r.clipExtent=function(e){return arguments.length?(null==e?u=t=n=i=null:(u=+e[0][0],t=+e[0][1],n=+e[1][0],i=+e[1][1]),c()):null==u?null:[[u,t],[n,i]]},c()}function P_(e){return bb((nb+e)/2)}function j_(e,t){var n=cb(e),i=e===t?gb(e):pb(n/cb(t))/pb(P_(t)/P_(e)),r=n*mb(P_(e),i)/i;if(!i)return B_;function o(e,t){r>0?t<-nb+Zv&&(t=-nb+Zv):t>nb-Zv&&(t=nb-Zv);var n=r/mb(P_(t),i);return[n*gb(i*e),r-n*cb(i*e)]}return o.invert=function(e,t){var n=r-t,o=yb(i)*vb(e*e+n*n),a=ub(e,sb(n))*yb(n);return n*i<0&&(a-=tb*yb(e)*yb(n)),[a/i,2*lb(mb(r/o,1/i))-nb]},o}function L_(e,t){return[e,t]}function q_(e,t){var n=cb(e),i=e===t?gb(e):(n-cb(t))/(t-e),r=n/i+e;if(sb(i)<Zv)return L_;function o(e,t){var n=r-t,o=i*e;return[n*gb(o),r-n*cb(o)]}return o.invert=function(e,t){var n=r-t,o=ub(e,sb(n))*yb(n);return n*i<0&&(o-=tb*yb(e)*yb(n)),[o/i,r-yb(i)*vb(e*e+n*n)]},o}R_.invert=O_((function(e){return e})),B_.invert=function(e,t){return[e,2*lb(db(t))-nb]},L_.invert=L_;var U_=1.340264,I_=-.081106,W_=893e-6,H_=.003796,G_=vb(3)/2;function V_(e,t){var n=wb(G_*gb(t)),i=n*n,r=i*i*i;return[e*cb(n)/(G_*(U_+3*I_*i+r*(7*W_+9*H_*i))),n*(U_+I_*i+r*(W_+H_*i))]}function Y_(e,t){var n=cb(t),i=cb(e)*n;return[n*gb(e)/i,gb(t)/i]}function X_(e,t){var n=t*t,i=n*n;return[e*(.8707-.131979*n+i*(i*(.003971*n-.001529*i)-.013791)),t*(1.007226+n*(.015085+i*(.028874*n-.044475-.005916*i)))]}function J_(e,t){return[cb(t)*gb(e),gb(t)]}function Q_(e,t){var n=cb(t),i=1+cb(e)*n;return[n*gb(e)/i,gb(t)/i]}function K_(e,t){return[pb(bb((nb+t)/2)),-e]}V_.invert=function(e,t){for(var n,i=t,r=i*i,o=r*r*r,a=0;a<12&&(o=(r=(i-=n=(i*(U_+I_*r+o*(W_+H_*r))-t)/(U_+3*I_*r+o*(7*W_+9*H_*r)))*i)*r*r,!(sb(n)<eb));++a);return[G_*e*(U_+3*I_*r+o*(7*W_+9*H_*r))/cb(i),wb(gb(i)/G_)]},Y_.invert=O_(lb),X_.invert=function(e,t){var n,i=t,r=25;do{var o=i*i,a=o*o;i-=n=(i*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-t)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(sb(n)>Zv&&--r>0);return[e/(.8707+(o=i*i)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),i]},J_.invert=O_(wb),Q_.invert=O_((function(e){return 2*lb(e)})),K_.invert=function(e,t){return[-t,2*lb(db(e))-nb]};var Z_,ek=Math.abs,tk=Math.cos,nk=Math.sin,ik=Math.PI,rk=ik/2,ok=(Z_=2)>0?Math.sqrt(Z_):0;function ak(e){return e>1?rk:e<-1?-rk:Math.asin(e)}function sk(e,t){var n,i=e*nk(t),r=30;do{t-=n=(t+nk(t)-i)/(1+tk(t))}while(ek(n)>1e-6&&--r>0);return t/2}var lk=function(e,t,n){function i(i,r){return[e*i*tk(r=sk(n,r)),t*nk(r)]}return i.invert=function(i,r){return r=ak(r/t),[i/(e*tk(r)),ak((2*r+nk(2*r))/n)]},i}(ok/rk,ok,ik);const uk=p_(),ck=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function fk(e,t){if(!e||"string"!=typeof e)throw new Error("Projection type must be a name string.");return e=e.toLowerCase(),arguments.length>1?(hk[e]=function(e,t){return function n(){const i=t();return i.type=e,i.path=p_().projection(i),i.copy=i.copy||function(){const e=n();return ck.forEach((t=>{i[t]&&e[t](i[t]())})),e.path.pointRadius(i.path.pointRadius()),e},Of(i)}}(e,t),this):hk[e]||null}function dk(e){return e&&e.path||uk}const hk={albers:M_,albersusa:function(){var e,t,n,i,r,o,a=M_(),s=C_().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=C_().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(e,t){o=[e,t]}};function c(e){var t=e[0],a=e[1];return o=null,n.point(t,a),o||(i.point(t,a),o)||(r.point(t,a),o)}function f(){return e=t=null,c}return c.invert=function(e){var t=a.scale(),n=a.translate(),i=(e[0]-n[0])/t,r=(e[1]-n[1])/t;return(r>=.12&&r<.234&&i>=-.425&&i<-.214?s:r>=.166&&r<.234&&i>=-.214&&i<-.115?l:a).invert(e)},c.stream=function(n){return e&&t===n?e:(i=[a.stream(t=n),s.stream(n),l.stream(n)],r=i.length,e={point:function(e,t){for(var n=-1;++n<r;)i[n].point(e,t)},sphere:function(){for(var e=-1;++e<r;)i[e].sphere()},lineStart:function(){for(var e=-1;++e<r;)i[e].lineStart()},lineEnd:function(){for(var e=-1;++e<r;)i[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<r;)i[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<r;)i[e].polygonEnd()}});var i,r},c.precision=function(e){return arguments.length?(a.precision(e),s.precision(e),l.precision(e),f()):a.precision()},c.scale=function(e){return arguments.length?(a.scale(e),s.scale(.35*e),l.scale(e),c.translate(a.translate())):a.scale()},c.translate=function(e){if(!arguments.length)return a.translate();var t=a.scale(),o=+e[0],c=+e[1];return n=a.translate(e).clipExtent([[o-.455*t,c-.238*t],[o+.455*t,c+.238*t]]).stream(u),i=s.translate([o-.307*t,c+.201*t]).clipExtent([[o-.425*t+Zv,c+.12*t+Zv],[o-.214*t-Zv,c+.234*t-Zv]]).stream(u),r=l.translate([o-.205*t,c+.212*t]).clipExtent([[o-.214*t+Zv,c+.166*t+Zv],[o-.115*t-Zv,c+.234*t-Zv]]).stream(u),f()},c.fitExtent=function(e,t){return v_(c,e,t)},c.fitSize=function(e,t){return b_(c,e,t)},c.fitWidth=function(e,t){return x_(c,e,t)},c.fitHeight=function(e,t){return w_(c,e,t)},c.scale(1070)},azimuthalequalarea:function(){return A_(N_).scale(124.75).clipAngle(179.999)},azimuthalequidistant:function(){return A_(R_).scale(79.4188).clipAngle(179.999)},conicconformal:function(){return E_(j_).scale(109.5).parallels([30,30])},conicequalarea:C_,conicequidistant:function(){return E_(q_).scale(131.154).center([0,13.9389])},equalEarth:function(){return A_(V_).scale(177.158)},equirectangular:function(){return A_(L_).scale(152.63)},gnomonic:function(){return A_(Y_).scale(144.049).clipAngle(60)},identity:function(){var e,t,n,i,r,o,a,s=1,l=0,u=0,c=1,f=1,d=0,h=null,p=1,m=1,g=m_({point:function(e,t){var n=b([e,t]);this.stream.point(n[0],n[1])}}),y=dw;function v(){return p=s*c,m=s*f,o=a=null,b}function b(n){var i=n[0]*p,r=n[1]*m;if(d){var o=r*e-i*t;i=i*e+r*t,r=o}return[i+l,r+u]}return b.invert=function(n){var i=n[0]-l,r=n[1]-u;if(d){var o=r*e+i*t;i=i*e-r*t,r=o}return[i/p,r/m]},b.stream=function(e){return o&&a===e?o:o=g(y(a=e))},b.postclip=function(e){return arguments.length?(y=e,h=n=i=r=null,v()):y},b.clipExtent=function(e){return arguments.length?(y=null==e?(h=n=i=r=null,dw):uw(h=+e[0][0],n=+e[0][1],i=+e[1][0],r=+e[1][1]),v()):null==h?null:[[h,n],[i,r]]},b.scale=function(e){return arguments.length?(s=+e,v()):s},b.translate=function(e){return arguments.length?(l=+e[0],u=+e[1],v()):[l,u]},b.angle=function(n){return arguments.length?(t=gb(d=n%360*ab),e=cb(d),v()):d*ob},b.reflectX=function(e){return arguments.length?(c=e?-1:1,v()):c<0},b.reflectY=function(e){return arguments.length?(f=e?-1:1,v()):f<0},b.fitExtent=function(e,t){return v_(b,e,t)},b.fitSize=function(e,t){return b_(b,e,t)},b.fitWidth=function(e,t){return x_(b,e,t)},b.fitHeight=function(e,t){return w_(b,e,t)},b},mercator:function(){return T_(B_).scale(961/rb)},mollweide:function(){return A_(lk).scale(169.529)},naturalEarth1:function(){return A_(X_).scale(175.295)},orthographic:function(){return A_(J_).scale(249.5).clipAngle(90.000001)},stereographic:function(){return A_(Q_).scale(250).clipAngle(142)},transversemercator:function(){var e=T_(K_),t=e.center,n=e.rotate;return e.center=function(e){return arguments.length?t([-e[1],e[0]]):[(e=t())[1],-e[0]]},e.rotate=function(e){return arguments.length?n([e[0],e[1],e.length>2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90]).scale(159.155)}};for(const BG in hk)fk(BG,hk[BG]);function pk(){}const mk=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function gk(){var e=1,t=1,n=a;function i(e,t){return t.map((t=>r(e,t)))}function r(i,r){var a=[],s=[];return function(n,i,r){var a,s,l,u,c,f,d=[],h=[];a=s=-1,u=n[0]>=i,mk[u<<1].forEach(p);for(;++a<e-1;)l=u,u=n[a+1]>=i,mk[l|u<<1].forEach(p);mk[u|0].forEach(p);for(;++s<t-1;){for(a=-1,u=n[s*e+e]>=i,c=n[s*e]>=i,mk[u<<1|c<<2].forEach(p);++a<e-1;)l=u,u=n[s*e+e+a+1]>=i,f=c,c=n[s*e+a+1]>=i,mk[l|u<<1|c<<2|f<<3].forEach(p);mk[u|c<<3].forEach(p)}a=-1,c=n[s*e]>=i,mk[c<<2].forEach(p);for(;++a<e-1;)f=c,c=n[s*e+a+1]>=i,mk[c<<2|f<<3].forEach(p);function p(e){var t,n,i=[e[0][0]+a,e[0][1]+s],l=[e[1][0]+a,e[1][1]+s],u=o(i),c=o(l);(t=h[u])?(n=d[c])?(delete h[t.end],delete d[n.start],t===n?(t.ring.push(l),r(t.ring)):d[t.start]=h[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete h[t.end],t.ring.push(l),h[t.end=c]=t):(t=d[c])?(n=h[u])?(delete d[t.start],delete h[n.end],t===n?(t.ring.push(l),r(t.ring)):d[n.start]=h[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete d[t.start],t.ring.unshift(i),d[t.start=u]=t):d[u]=h[c]={start:u,end:c,ring:[i,l]}}mk[c<<3].forEach(p)}(i,r,(e=>{n(e,i,r),function(e){var t=0,n=e.length,i=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];for(;++t<n;)i+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return i}(e)>0?a.push([e]):s.push(e)})),s.forEach((e=>{for(var t,n=0,i=a.length;n<i;++n)if(-1!==yk((t=a[n])[0],e))return void t.push(e)})),{type:"MultiPolygon",value:r,coordinates:a}}function o(t){return 2*t[0]+t[1]*(e+1)*4}function a(n,i,r){n.forEach((n=>{var o,a=n[0],s=n[1],l=0|a,u=0|s,c=i[u*e+l];a>0&&a<e&&l===a&&(o=i[u*e+l-1],n[0]=a+(r-o)/(c-o)-.5),s>0&&s<t&&u===s&&(o=i[(u-1)*e+l],n[1]=s+(r-o)/(c-o)-.5)}))}return i.contour=r,i.size=function(n){if(!arguments.length)return[e,t];var r=Math.floor(n[0]),o=Math.floor(n[1]);return r>=0&&o>=0||v("invalid size"),e=r,t=o,i},i.smooth=function(e){return arguments.length?(n=e?a:pk,i):n===a},i}function yk(e,t){for(var n,i=-1,r=t.length;++i<r;)if(n=vk(e,t[i]))return n;return 0}function vk(e,t){for(var n=t[0],i=t[1],r=-1,o=0,a=e.length,s=a-1;o<a;s=o++){var l=e[o],u=l[0],c=l[1],f=e[s],d=f[0],h=f[1];if(bk(l,f,t))return 0;c>i!=h>i&&n<(d-u)*(i-c)/(h-c)+u&&(r=-r)}return r}function bk(e,t,n){var i,r,o,a;return function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])==(n[0]-e[0])*(t[1]-e[1])}(e,t,n)&&(r=e[i=+(e[0]===t[0])],o=n[i],a=t[i],r<=o&&o<=a||a<=o&&o<=r)}function xk(e,t,n){return function(i){var r=M(i),o=n?Math.min(r[0],0):r[0],a=r[1],s=a-o,l=t?me(o,a,e):s/(e+1);return Ht(o+l,a,l)}}function wk(e){tl.call(this,null,e)}function _k(e,t,n,i,r){const o=e.x1||0,a=e.y1||0,s=t*n<0;function l(e){e.forEach(u)}function u(e){s&&e.reverse(),e.forEach(c)}function c(e){e[0]=(e[0]-o)*t+i,e[1]=(e[1]-a)*n+r}return function(e){return e.coordinates.forEach(l),e}}function kk(e,t,n){const i=e>=0?e:ll(t,n);return Math.round((Math.sqrt(4*i*i+1)-1)/2)}function $k(e){return m(e)?e:g(+e)}function Dk(){var e=e=>e[0],t=e=>e[1],n=ce,i=[-1,-1],r=960,o=500,a=2;function s(s,l){const u=kk(i[0],s,e)>>a,c=kk(i[1],s,t)>>a,f=u?u+2:0,d=c?c+2:0,h=2*f+(r>>a),p=2*d+(o>>a),m=new Float32Array(h*p),g=new Float32Array(h*p);let y=m;s.forEach((i=>{const r=f+(+e(i)>>a),o=d+(+t(i)>>a);r>=0&&r<h&&o>=0&&o<p&&(m[r+o*h]+=+n(i))})),u>0&&c>0?(Ak(h,p,m,g,u),Sk(h,p,g,m,c),Ak(h,p,m,g,u),Sk(h,p,g,m,c),Ak(h,p,m,g,u),Sk(h,p,g,m,c)):u>0?(Ak(h,p,m,g,u),Ak(h,p,g,m,u),Ak(h,p,m,g,u),y=g):c>0&&(Sk(h,p,m,g,c),Sk(h,p,g,m,c),Sk(h,p,m,g,c),y=g);const v=l?Math.pow(2,-2*a):1/ai(y);for(let e=0,t=h*p;e<t;++e)y[e]*=v;return{values:y,scale:1<<a,width:h,height:p,x1:f,y1:d,x2:f+(r>>a),y2:d+(o>>a)}}return s.x=function(t){return arguments.length?(e=$k(t),s):e},s.y=function(e){return arguments.length?(t=$k(e),s):t},s.weight=function(e){return arguments.length?(n=$k(e),s):n},s.size=function(e){if(!arguments.length)return[r,o];var t=+e[0],n=+e[1];return t>=0&&n>=0||v("invalid size"),r=t,o=n,s},s.cellSize=function(e){return arguments.length?((e=+e)>=1||v("invalid cell size"),a=Math.floor(Math.log(e)/Math.LN2),s):1<<a},s.bandwidth=function(e){return arguments.length?(1===(e=c(e)).length&&(e=[+e[0],+e[0]]),2!==e.length&&v("invalid bandwidth"),i=e,s):i},s}function Ak(e,t,n,i,r){const o=1+(r<<1);for(let a=0;a<t;++a)for(let t=0,s=0;t<e+r;++t)t<e&&(s+=n[t+a*e]),t>=r&&(t>=o&&(s-=n[t-o+a*e]),i[t-r+a*e]=s/Math.min(t+1,e-1+o-t,o))}function Sk(e,t,n,i,r){const o=1+(r<<1);for(let a=0;a<e;++a)for(let s=0,l=0;s<t+r;++s)s<t&&(l+=n[a+s*e]),s>=r&&(s>=o&&(l-=n[a+(s-o)*e]),i[a+(s-r)*e]=l/Math.min(s+1,t-1+o-s,o))}function Ek(e){tl.call(this,null,e)}wk.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},_(wk,tl,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=t.materialize(t.SOURCE).source,o=e.field||y,a=gk().smooth(!1!==e.smooth),s=e.thresholds||function(e,t,n){const i=xk(n.levels||10,n.nice,!1!==n.zero);return"shared"!==n.resolve?i:i(e.map((e=>gt(t(e).values))))}(r,o,e),l=null===e.as?null:e.as||"contour",c=[];return r.forEach((t=>{const i=o(t),r=a.size([i.width,i.height])(i.values,u(s)?s:s(i.values));!function(e,t,i,r){let o=r.scale||t.scale,a=r.translate||t.translate;m(o)&&(o=o(i,r));m(a)&&(a=a(i,r));if((1===o||null==o)&&!a)return;const s=(n(o)?o:o[0])||1,l=(n(o)?o:o[1])||1,u=a&&a[0]||0,c=a&&a[1]||0;e.forEach(_k(t,s,l,u,c))}(r,i,t,e),r.forEach((e=>{c.push(As(t,$s(null!=l?{[l]:e}:e)))}))})),this.value&&(i.rem=this.value),this.value=i.source=i.add=c,i}}),Ek.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const Fk=["x","y","weight","size","cellSize","bandwidth"];function Ck(e,t){return Fk.forEach((n=>null!=t[n]?e[n](t[n]):0)),e}function Mk(e){tl.call(this,null,e)}_(Ek,tl,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=function(e,t){var n,i,r,o,a,s,l=[],u=e=>e(o);if(null==t)l.push(e);else for(n={},i=0,r=e.length;i<r;++i)o=e[i],(s=n[a=t.map(u)])||(n[a]=s=[],s.dims=a,l.push(s)),s.push(o);return l}(t.materialize(t.SOURCE).source,e.groupby),o=(e.groupby||[]).map(S),a=Ck(Dk(),e),s=e.as||"grid";return n=r.map((t=>$s(function(e,t){for(let n=0;n<o.length;++n)e[o[n]]=t[n];return e}({[s]:a(t,e.counts)},t.dims)))),this.value&&(i.rem=this.value),this.value=i.source=i.add=n,i}}),Mk.Definition={type:"Contour",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"values",type:"number",array:!0},{name:"x",type:"field"},{name:"y",type:"field"},{name:"weight",type:"field"},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number"},{name:"count",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0},{name:"smooth",type:"boolean",default:!0}]},_(Mk,tl,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n,i,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),o=gk().smooth(!1!==e.smooth),a=e.values,s=e.thresholds||xk(e.count||10,e.nice,!!a),l=e.size;return a||(a=t.materialize(t.SOURCE).source,i=_k(n=Ck(Dk(),e)(a,!0),n.scale||1,n.scale||1,0,0),l=[n.width,n.height],a=n.values),s=u(s)?s:s(a),a=o.size(l)(a,s),i&&a.forEach(i),this.value&&(r.rem=this.value),this.value=r.source=r.add=(a||[]).map($s),r}});const zk="Feature",Ok="FeatureCollection";function Nk(e){tl.call(this,null,e)}function Rk(e){tl.call(this,null,e)}function Bk(e){tl.call(this,null,e)}function Tk(e){tl.call(this,null,e)}function Pk(e){tl.call(this,[],e),this.generator=function(){var e,t,n,i,r,o,a,s,l,u,c,f,d=10,h=d,p=90,m=360,g=2.5;function y(){return{type:"MultiLineString",coordinates:v()}}function v(){return Ht(fb(i/p)*p,n,p).map(c).concat(Ht(fb(s/m)*m,a,m).map(f)).concat(Ht(fb(t/d)*d,e,d).filter((function(e){return sb(e%p)>Zv})).map(l)).concat(Ht(fb(o/h)*h,r,h).filter((function(e){return sb(e%m)>Zv})).map(u))}return y.lines=function(){return v().map((function(e){return{type:"LineString",coordinates:e}}))},y.outline=function(){return{type:"Polygon",coordinates:[c(i).concat(f(a).slice(1),c(n).reverse().slice(1),f(s).reverse().slice(1))]}},y.extent=function(e){return arguments.length?y.extentMajor(e).extentMinor(e):y.extentMinor()},y.extentMajor=function(e){return arguments.length?(i=+e[0][0],n=+e[1][0],s=+e[0][1],a=+e[1][1],i>n&&(e=i,i=n,n=e),s>a&&(e=s,s=a,a=e),y.precision(g)):[[i,s],[n,a]]},y.extentMinor=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],o=+n[0][1],r=+n[1][1],t>e&&(n=t,t=e,e=n),o>r&&(n=o,o=r,r=n),y.precision(g)):[[t,o],[e,r]]},y.step=function(e){return arguments.length?y.stepMajor(e).stepMinor(e):y.stepMinor()},y.stepMajor=function(e){return arguments.length?(p=+e[0],m=+e[1],y):[p,m]},y.stepMinor=function(e){return arguments.length?(d=+e[0],h=+e[1],y):[d,h]},y.precision=function(d){return arguments.length?(g=+d,l=cw(o,r,90),u=fw(t,e,g),c=cw(s,a,90),f=fw(i,n,g),y):g},y.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}()}function jk(e){tl.call(this,null,e)}function Lk(e){if(!m(e))return!1;const t=se(E(e));return t.$x||t.$y||t.$value||t.$max}function qk(e){tl.call(this,null,e),this.modified(!0)}function Uk(e,t,n){m(e[t])&&e[t](n)}Nk.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},_(Nk,tl,{transform(e,t){var n,i=this._features,r=this._points,o=e.fields,a=o&&o[0],s=o&&o[1],l=e.geojson||!o&&y,u=t.ADD;n=e.modified()||t.changed(t.REM)||t.modified(E(l))||a&&t.modified(E(a))||s&&t.modified(E(s)),this.value&&!n||(u=t.SOURCE,this._features=i=[],this._points=r=[]),l&&t.visit(u,(e=>i.push(l(e)))),a&&s&&(t.visit(u,(e=>{var t=a(e),n=s(e);null!=t&&null!=n&&(t=+t)===t&&(n=+n)===n&&r.push([t,n])})),i=i.concat({type:zk,geometry:{type:"MultiPoint",coordinates:r}})),this.value={type:Ok,features:i}}}),Rk.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},_(Rk,tl,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.field||y,o=e.as||"path",a=n.SOURCE;!i||e.modified()?(this.value=i=dk(e.projection),n.materialize().reflow()):a=r===y||t.modified(r.fields)?n.ADD_MOD:n.ADD;const s=function(e,t){const n=e.pointRadius();e.context(null),null!=t&&e.pointRadius(t);return n}(i,e.pointRadius);return n.visit(a,(e=>e[o]=i(r(e)))),i.pointRadius(s),n.modifies(o)}}),Bk.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},_(Bk,tl,{transform(e,t){var n,i=e.projection,r=e.fields[0],o=e.fields[1],a=e.as||["x","y"],s=a[0],l=a[1];function u(e){const t=i([r(e),o(e)]);t?(e[s]=t[0],e[l]=t[1]):(e[s]=void 0,e[l]=void 0)}return e.modified()?t=t.materialize().reflow(!0).visit(t.SOURCE,u):(n=t.modified(r.fields)||t.modified(o.fields),t.visit(n?t.ADD_MOD:t.ADD,u)),t.modifies(a)}}),Tk.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},_(Tk,tl,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.as||"shape",o=n.ADD;return i&&!e.modified()||(this.value=i=function(e,t,n){const i=null==n?n=>e(t(n)):i=>{var r=e.pointRadius(),o=e.pointRadius(n)(t(i));return e.pointRadius(r),o};return i.context=t=>(e.context(t),i),i}(dk(e.projection),e.field||q("datum"),e.pointRadius),n.materialize().reflow(),o=n.SOURCE),n.visit(o,(e=>e[r]=i)),n.modifies(r)}}),Pk.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},_(Pk,tl,{transform(e,t){var n,i=this.value,r=this.generator;if(!i.length||e.modified())for(const o in e)m(r[o])&&r[o](e[o]);return n=r(),i.length?t.mod.push(Ss(i[0],n)):t.add.push($s(n)),i[0]=n,t}}),jk.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},_(jk,tl,{transform(e,t){if(!t.changed()&&!e.modified())return t.StopPropagation;var n=t.materialize(t.SOURCE).source,i="shared"===e.resolve,r=e.field||y,o=function(e,t){let n;m(e)?(n=n=>e(n,t),n.dep=Lk(e)):e?n=g(e):(n=e=>e.$value/e.$max||0,n.dep=!0);return n}(e.opacity,e),a=function(e,t){let n;m(e)?(n=n=>Un(e(n,t)),n.dep=Lk(e)):n=g(Un(e||"#888"));return n}(e.color,e),s=e.as||"image",l={$x:0,$y:0,$value:0,$max:i?gt(n.map((e=>gt(r(e).values)))):0};return n.forEach((e=>{const t=r(e),n=D({},e,l);i||(n.$max=gt(t.values||[])),e[s]=function(e,t,n,i){const r=e.width,o=e.height,a=e.x1||0,s=e.y1||0,l=e.x2||r,u=e.y2||o,c=e.values,f=c?e=>c[e]:V,d=Ac(l-a,u-s),h=d.getContext("2d"),p=h.getImageData(0,0,l-a,u-s),m=p.data;for(let g=s,y=0;g<u;++g){t.$y=g-s;for(let e=a,o=g*r;e<l;++e,y+=4){t.$x=e-a,t.$value=f(e+o);const r=n(t);m[y+0]=r.r,m[y+1]=r.g,m[y+2]=r.b,m[y+3]=~~(255*i(t))}}return h.putImageData(p,0,0),d}(t,n,a.dep?a:g(a(n)),o.dep?o:g(o(n)))})),t.reflow(!0).modifies(s)}}),_(qk,tl,{transform(e,t){let n=this.value;return!n||e.modified("type")?(this.value=n=function(e){const t=fk((e||"mercator").toLowerCase());t||v("Unrecognized projection type: "+e);return t()}(e.type),ck.forEach((t=>{null!=e[t]&&Uk(n,t,e[t])}))):ck.forEach((t=>{e.modified(t)&&Uk(n,t,e[t])})),null!=e.pointRadius&&n.path.pointRadius(e.pointRadius),e.fit&&function(e,t){const n=function(e){return e=c(e),1===e.length?e[0]:{type:Ok,features:e.reduce(((e,t)=>e.concat(function(e){return e.type===Ok?e.features:c(e).filter((e=>null!=e)).map((e=>e.type===zk?e:{type:zk,geometry:e}))}(t))),[])}}(t.fit);t.extent?e.fitExtent(t.extent,n):t.size&&e.fitSize(t.size,n)}(n,e),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});const Ik=Object.freeze(Object.defineProperty({__proto__:null,contour:Mk,geojson:Nk,geopath:Rk,geopoint:Bk,geoshape:Tk,graticule:Pk,heatmap:jk,isocontour:wk,kde2d:Ek,projection:qk},Symbol.toStringTag,{value:"Module"}));function Wk(e,t,n,i){if(isNaN(t)||isNaN(n))return e;var r,o,a,s,l,u,c,f,d,h=e._root,p={data:i},m=e._x0,g=e._y0,y=e._x1,v=e._y1;if(!h)return e._root=p,e;for(;h.length;)if((u=t>=(o=(m+y)/2))?m=o:y=o,(c=n>=(a=(g+v)/2))?g=a:v=a,r=h,!(h=h[f=c<<1|u]))return r[f]=p,e;if(s=+e._x.call(null,h.data),l=+e._y.call(null,h.data),t===s&&n===l)return p.next=h,r?r[f]=p:e._root=p,e;do{r=r?r[f]=new Array(4):e._root=new Array(4),(u=t>=(o=(m+y)/2))?m=o:y=o,(c=n>=(a=(g+v)/2))?g=a:v=a}while((f=c<<1|u)==(d=(l>=a)<<1|s>=o));return r[d]=h,r[f]=p,e}function Hk(e,t,n,i,r){this.node=e,this.x0=t,this.y0=n,this.x1=i,this.y1=r}function Gk(e){return e[0]}function Vk(e){return e[1]}function Yk(e,t,n){var i=new Xk(null==t?Gk:t,null==n?Vk:n,NaN,NaN,NaN,NaN);return null==e?i:i.addAll(e)}function Xk(e,t,n,i,r,o){this._x=e,this._y=t,this._x0=n,this._y0=i,this._x1=r,this._y1=o,this._root=void 0}function Jk(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var Qk=Yk.prototype=Xk.prototype;function Kk(e){return function(){return e}}function Zk(e){return 1e-6*(e()-.5)}function e$(e){return e.x+e.vx}function t$(e){return e.y+e.vy}function n$(e){return e.index}function i$(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}Qk.copy=function(){var e,t,n=new Xk(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root;if(!i)return n;if(!i.length)return n._root=Jk(i),n;for(e=[{source:i,target:n._root=new Array(4)}];i=e.pop();)for(var r=0;r<4;++r)(t=i.source[r])&&(t.length?e.push({source:t,target:i.target[r]=new Array(4)}):i.target[r]=Jk(t));return n},Qk.add=function(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return Wk(this.cover(t,n),t,n,e)},Qk.addAll=function(e){var t,n,i,r,o=e.length,a=new Array(o),s=new Array(o),l=1/0,u=1/0,c=-1/0,f=-1/0;for(n=0;n<o;++n)isNaN(i=+this._x.call(null,t=e[n]))||isNaN(r=+this._y.call(null,t))||(a[n]=i,s[n]=r,i<l&&(l=i),i>c&&(c=i),r<u&&(u=r),r>f&&(f=r));if(l>c||u>f)return this;for(this.cover(l,u).cover(c,f),n=0;n<o;++n)Wk(this,a[n],s[n],e[n]);return this},Qk.cover=function(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,i=this._y0,r=this._x1,o=this._y1;if(isNaN(n))r=(n=Math.floor(e))+1,o=(i=Math.floor(t))+1;else{for(var a,s,l=r-n||1,u=this._root;n>e||e>=r||i>t||t>=o;)switch(s=(t<i)<<1|e<n,(a=new Array(4))[s]=u,u=a,l*=2,s){case 0:r=n+l,o=i+l;break;case 1:n=r-l,o=i+l;break;case 2:r=n+l,i=o-l;break;case 3:n=r-l,i=o-l}this._root&&this._root.length&&(this._root=u)}return this._x0=n,this._y0=i,this._x1=r,this._y1=o,this},Qk.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},Qk.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},Qk.find=function(e,t,n){var i,r,o,a,s,l,u,c=this._x0,f=this._y0,d=this._x1,h=this._y1,p=[],m=this._root;for(m&&p.push(new Hk(m,c,f,d,h)),null==n?n=1/0:(c=e-n,f=t-n,d=e+n,h=t+n,n*=n);l=p.pop();)if(!(!(m=l.node)||(r=l.x0)>d||(o=l.y0)>h||(a=l.x1)<c||(s=l.y1)<f))if(m.length){var g=(r+a)/2,y=(o+s)/2;p.push(new Hk(m[3],g,y,a,s),new Hk(m[2],r,y,g,s),new Hk(m[1],g,o,a,y),new Hk(m[0],r,o,g,y)),(u=(t>=y)<<1|e>=g)&&(l=p[p.length-1],p[p.length-1]=p[p.length-1-u],p[p.length-1-u]=l)}else{var v=e-+this._x.call(null,m.data),b=t-+this._y.call(null,m.data),x=v*v+b*b;if(x<n){var w=Math.sqrt(n=x);c=e-w,f=t-w,d=e+w,h=t+w,i=m.data}}return i},Qk.remove=function(e){if(isNaN(o=+this._x.call(null,e))||isNaN(a=+this._y.call(null,e)))return this;var t,n,i,r,o,a,s,l,u,c,f,d,h=this._root,p=this._x0,m=this._y0,g=this._x1,y=this._y1;if(!h)return this;if(h.length)for(;;){if((u=o>=(s=(p+g)/2))?p=s:g=s,(c=a>=(l=(m+y)/2))?m=l:y=l,t=h,!(h=h[f=c<<1|u]))return this;if(!h.length)break;(t[f+1&3]||t[f+2&3]||t[f+3&3])&&(n=t,d=f)}for(;h.data!==e;)if(i=h,!(h=h.next))return this;return(r=h.next)&&delete h.next,i?(r?i.next=r:delete i.next,this):t?(r?t[f]=r:delete t[f],(h=t[0]||t[1]||t[2]||t[3])&&h===(t[3]||t[2]||t[1]||t[0])&&!h.length&&(n?n[d]=h:this._root=h),this):(this._root=r,this)},Qk.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},Qk.root=function(){return this._root},Qk.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},Qk.visit=function(e){var t,n,i,r,o,a,s=[],l=this._root;for(l&&s.push(new Hk(l,this._x0,this._y0,this._x1,this._y1));t=s.pop();)if(!e(l=t.node,i=t.x0,r=t.y0,o=t.x1,a=t.y1)&&l.length){var u=(i+o)/2,c=(r+a)/2;(n=l[3])&&s.push(new Hk(n,u,c,o,a)),(n=l[2])&&s.push(new Hk(n,i,c,u,a)),(n=l[1])&&s.push(new Hk(n,u,r,o,c)),(n=l[0])&&s.push(new Hk(n,i,r,u,c))}return this},Qk.visitAfter=function(e){var t,n=[],i=[];for(this._root&&n.push(new Hk(this._root,this._x0,this._y0,this._x1,this._y1));t=n.pop();){var r=t.node;if(r.length){var o,a=t.x0,s=t.y0,l=t.x1,u=t.y1,c=(a+l)/2,f=(s+u)/2;(o=r[0])&&n.push(new Hk(o,a,s,c,f)),(o=r[1])&&n.push(new Hk(o,c,s,l,f)),(o=r[2])&&n.push(new Hk(o,a,f,c,u)),(o=r[3])&&n.push(new Hk(o,c,f,l,u))}i.push(t)}for(;t=i.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},Qk.x=function(e){return arguments.length?(this._x=e,this):this._x},Qk.y=function(e){return arguments.length?(this._y=e,this):this._y};const r$=4294967296;function o$(e){return e.x}function a$(e){return e.y}var s$=Math.PI*(3-Math.sqrt(5));function l$(e){var t,n=1,i=.001,r=1-Math.pow(i,1/300),o=0,a=.6,s=new Map,l=In(f),u=Wn("tick","end"),c=function(){let e=1;return()=>(e=(1664525*e+1013904223)%r$)/r$}();function f(){d(),u.call("tick",t),n<i&&(l.stop(),u.call("end",t))}function d(i){var l,u,c=e.length;void 0===i&&(i=1);for(var f=0;f<i;++f)for(n+=(o-n)*r,s.forEach((function(e){e(n)})),l=0;l<c;++l)null==(u=e[l]).fx?u.x+=u.vx*=a:(u.x=u.fx,u.vx=0),null==u.fy?u.y+=u.vy*=a:(u.y=u.fy,u.vy=0);return t}function h(){for(var t,n=0,i=e.length;n<i;++n){if((t=e[n]).index=n,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var r=10*Math.sqrt(.5+n),o=n*s$;t.x=r*Math.cos(o),t.y=r*Math.sin(o)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function p(t){return t.initialize&&t.initialize(e,c),t}return null==e&&(e=[]),h(),t={tick:d,restart:function(){return l.restart(f),t},stop:function(){return l.stop(),t},nodes:function(n){return arguments.length?(e=n,h(),s.forEach(p),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(i=+e,t):i},alphaDecay:function(e){return arguments.length?(r=+e,t):+r},alphaTarget:function(e){return arguments.length?(o=+e,t):o},velocityDecay:function(e){return arguments.length?(a=1-e,t):1-a},randomSource:function(e){return arguments.length?(c=e,s.forEach(p),t):c},force:function(e,n){return arguments.length>1?(null==n?s.delete(e):s.set(e,p(n)),t):s.get(e)},find:function(t,n,i){var r,o,a,s,l,u=0,c=e.length;for(null==i?i=1/0:i*=i,u=0;u<c;++u)(a=(r=t-(s=e[u]).x)*r+(o=n-s.y)*o)<i&&(l=s,i=a);return l},on:function(e,n){return arguments.length>1?(u.on(e,n),t):u.on(e)}}}const u$={center:function(e,t){var n,i=1;function r(){var r,o,a=n.length,s=0,l=0;for(r=0;r<a;++r)s+=(o=n[r]).x,l+=o.y;for(s=(s/a-e)*i,l=(l/a-t)*i,r=0;r<a;++r)(o=n[r]).x-=s,o.y-=l}return null==e&&(e=0),null==t&&(t=0),r.initialize=function(e){n=e},r.x=function(t){return arguments.length?(e=+t,r):e},r.y=function(e){return arguments.length?(t=+e,r):t},r.strength=function(e){return arguments.length?(i=+e,r):i},r},collide:function(e){var t,n,i,r=1,o=1;function a(){for(var e,a,l,u,c,f,d,h=t.length,p=0;p<o;++p)for(a=Yk(t,e$,t$).visitAfter(s),e=0;e<h;++e)l=t[e],f=n[l.index],d=f*f,u=l.x+l.vx,c=l.y+l.vy,a.visit(m);function m(e,t,n,o,a){var s=e.data,h=e.r,p=f+h;if(!s)return t>u+p||o<u-p||n>c+p||a<c-p;if(s.index>l.index){var m=u-s.x-s.vx,g=c-s.y-s.vy,y=m*m+g*g;y<p*p&&(0===m&&(y+=(m=Zk(i))*m),0===g&&(y+=(g=Zk(i))*g),y=(p-(y=Math.sqrt(y)))/y*r,l.vx+=(m*=y)*(p=(h*=h)/(d+h)),l.vy+=(g*=y)*p,s.vx-=m*(p=1-p),s.vy-=g*p)}}}function s(e){if(e.data)return e.r=n[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function l(){if(t){var i,r,o=t.length;for(n=new Array(o),i=0;i<o;++i)r=t[i],n[r.index]=+e(r,i,t)}}return"function"!=typeof e&&(e=Kk(null==e?1:+e)),a.initialize=function(e,n){t=e,i=n,l()},a.iterations=function(e){return arguments.length?(o=+e,a):o},a.strength=function(e){return arguments.length?(r=+e,a):r},a.radius=function(t){return arguments.length?(e="function"==typeof t?t:Kk(+t),l(),a):e},a},nbody:function(){var e,t,n,i,r,o=Kk(-30),a=1,s=1/0,l=.81;function u(n){var r,o=e.length,a=Yk(e,o$,a$).visitAfter(f);for(i=n,r=0;r<o;++r)t=e[r],a.visit(d)}function c(){if(e){var t,n,i=e.length;for(r=new Array(i),t=0;t<i;++t)n=e[t],r[n.index]=+o(n,t,e)}}function f(e){var t,n,i,o,a,s=0,l=0;if(e.length){for(i=o=a=0;a<4;++a)(t=e[a])&&(n=Math.abs(t.value))&&(s+=t.value,l+=n,i+=n*t.x,o+=n*t.y);e.x=i/l,e.y=o/l}else{(t=e).x=t.data.x,t.y=t.data.y;do{s+=r[t.data.index]}while(t=t.next)}e.value=s}function d(e,o,u,c){if(!e.value)return!0;var f=e.x-t.x,d=e.y-t.y,h=c-o,p=f*f+d*d;if(h*h/l<p)return p<s&&(0===f&&(p+=(f=Zk(n))*f),0===d&&(p+=(d=Zk(n))*d),p<a&&(p=Math.sqrt(a*p)),t.vx+=f*e.value*i/p,t.vy+=d*e.value*i/p),!0;if(!(e.length||p>=s)){(e.data!==t||e.next)&&(0===f&&(p+=(f=Zk(n))*f),0===d&&(p+=(d=Zk(n))*d),p<a&&(p=Math.sqrt(a*p)));do{e.data!==t&&(h=r[e.data.index]*i/p,t.vx+=f*h,t.vy+=d*h)}while(e=e.next)}}return u.initialize=function(t,i){e=t,n=i,c()},u.strength=function(e){return arguments.length?(o="function"==typeof e?e:Kk(+e),c(),u):o},u.distanceMin=function(e){return arguments.length?(a=e*e,u):Math.sqrt(a)},u.distanceMax=function(e){return arguments.length?(s=e*e,u):Math.sqrt(s)},u.theta=function(e){return arguments.length?(l=e*e,u):Math.sqrt(l)},u},link:function(e){var t,n,i,r,o,a,s=n$,l=function(e){return 1/Math.min(r[e.source.index],r[e.target.index])},u=Kk(30),c=1;function f(i){for(var r=0,s=e.length;r<c;++r)for(var l,u,f,d,h,p,m,g=0;g<s;++g)u=(l=e[g]).source,d=(f=l.target).x+f.vx-u.x-u.vx||Zk(a),h=f.y+f.vy-u.y-u.vy||Zk(a),d*=p=((p=Math.sqrt(d*d+h*h))-n[g])/p*i*t[g],h*=p,f.vx-=d*(m=o[g]),f.vy-=h*m,u.vx+=d*(m=1-m),u.vy+=h*m}function d(){if(i){var a,l,u=i.length,c=e.length,f=new Map(i.map(((e,t)=>[s(e,t,i),e])));for(a=0,r=new Array(u);a<c;++a)(l=e[a]).index=a,"object"!=typeof l.source&&(l.source=i$(f,l.source)),"object"!=typeof l.target&&(l.target=i$(f,l.target)),r[l.source.index]=(r[l.source.index]||0)+1,r[l.target.index]=(r[l.target.index]||0)+1;for(a=0,o=new Array(c);a<c;++a)l=e[a],o[a]=r[l.source.index]/(r[l.source.index]+r[l.target.index]);t=new Array(c),h(),n=new Array(c),p()}}function h(){if(i)for(var n=0,r=e.length;n<r;++n)t[n]=+l(e[n],n,e)}function p(){if(i)for(var t=0,r=e.length;t<r;++t)n[t]=+u(e[t],t,e)}return null==e&&(e=[]),f.initialize=function(e,t){i=e,a=t,d()},f.links=function(t){return arguments.length?(e=t,d(),f):e},f.id=function(e){return arguments.length?(s=e,f):s},f.iterations=function(e){return arguments.length?(c=+e,f):c},f.strength=function(e){return arguments.length?(l="function"==typeof e?e:Kk(+e),h(),f):l},f.distance=function(e){return arguments.length?(u="function"==typeof e?e:Kk(+e),p(),f):u},f},x:function(e){var t,n,i,r=Kk(.1);function o(e){for(var r,o=0,a=t.length;o<a;++o)(r=t[o]).vx+=(i[o]-r.x)*n[o]*e}function a(){if(t){var o,a=t.length;for(n=new Array(a),i=new Array(a),o=0;o<a;++o)n[o]=isNaN(i[o]=+e(t[o],o,t))?0:+r(t[o],o,t)}}return"function"!=typeof e&&(e=Kk(null==e?0:+e)),o.initialize=function(e){t=e,a()},o.strength=function(e){return arguments.length?(r="function"==typeof e?e:Kk(+e),a(),o):r},o.x=function(t){return arguments.length?(e="function"==typeof t?t:Kk(+t),a(),o):e},o},y:function(e){var t,n,i,r=Kk(.1);function o(e){for(var r,o=0,a=t.length;o<a;++o)(r=t[o]).vy+=(i[o]-r.y)*n[o]*e}function a(){if(t){var o,a=t.length;for(n=new Array(a),i=new Array(a),o=0;o<a;++o)n[o]=isNaN(i[o]=+e(t[o],o,t))?0:+r(t[o],o,t)}}return"function"!=typeof e&&(e=Kk(null==e?0:+e)),o.initialize=function(e){t=e,a()},o.strength=function(e){return arguments.length?(r="function"==typeof e?e:Kk(+e),a(),o):r},o.y=function(t){return arguments.length?(e="function"==typeof t?t:Kk(+t),a(),o):e},o}},c$="forces",f$=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],d$=["static","iterations"],h$=["x","y","vx","vy"];function p$(e){tl.call(this,null,e)}function m$(e,t,n,i){var r,o,a,s,l=c(t.forces);for(r=0,o=f$.length;r<o;++r)(a=f$[r])!==c$&&t.modified(a)&&e[a](t[a]);for(r=0,o=l.length;r<o;++r)s=c$+r,(a=n||t.modified(c$,r)?y$(l[r]):i&&g$(l[r],i)?e.force(s):null)&&e.force(s,a);for(o=e.numForces||0;r<o;++r)e.force(c$+r,null);return e.numForces=l.length,e}function g$(e,t){var n,i;for(n in e)if(m(i=e[n])&&t.modified(E(i)))return 1;return 0}function y$(e){var n,i;for(i in t(u$,e.force)||v("Unrecognized force: "+e.force),n=u$[e.force](),e)m(n[i])&&v$(n[i],e[i],e);return n}function v$(e,t,n){e(m(t)?e=>t(e,n):t)}p$.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30,expr:!0},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:h$}]},_(p$,tl,{transform(e,t){var n,i,r=this.value,o=t.changed(t.ADD_REM),a=e.modified(f$),s=e.iterations||300;if(r?(o&&(t.modifies("index"),r.nodes(t.source)),(a||t.changed(t.MOD))&&m$(r,e,0,t)):(this.value=r=function(e,t){const n=l$(e),i=n.stop,r=n.restart;let o=!1;return n.stopped=()=>o,n.restart=()=>(o=!1,r()),n.stop=()=>(o=!0,i()),m$(n,t,!0).on("end",(()=>o=!0))}(t.source,e),r.on("tick",(n=t.dataflow,i=this,()=>n.touch(i).run())),e.static||(o=!0,r.tick()),t.modifies("index")),a||o||e.modified(d$)||t.changed()&&e.restart)if(r.alpha(Math.max(r.alpha(),e.alpha||1)).alphaDecay(1-Math.pow(r.alphaMin(),1/s)),e.static)for(r.stop();--s>=0;)r.tick();else if(r.stopped()&&r.restart(),!o)return t.StopPropagation;return this.finish(e,t)},finish(e,t){const n=t.dataflow;for(let s,l=this._argops,u=0,c=l.length;u<c;++u)if(s=l[u],s.name===c$&&"link"===s.op._argval.force)for(var i,r=s.op._argops,o=0,a=r.length;o<a;++o)if("links"===r[o].name&&(i=r[o].op.source)){n.pulse(i,n.changeset().reflow());break}return t.reflow(e.modified()).modifies(h$)}});const b$=Object.freeze(Object.defineProperty({__proto__:null,force:p$},Symbol.toStringTag,{value:"Module"}));function x$(e,t){return e.parent===t.parent?1:2}function w$(e,t){return e+t.x}function _$(e,t){return Math.max(e,t.y)}function k$(e){var t=0,n=e.children,i=n&&n.length;if(i)for(;--i>=0;)t+=n[i].value;else t=1;e.value=t}function $$(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=A$)):void 0===t&&(t=D$);for(var n,i,r,o,a,s=new F$(e),l=[s];n=l.pop();)if((r=t(n.data))&&(a=(r=Array.from(r)).length))for(n.children=r,o=a-1;o>=0;--o)l.push(i=r[o]=new F$(r[o])),i.parent=n,i.depth=n.depth+1;return s.eachBefore(E$)}function D$(e){return e.children}function A$(e){return Array.isArray(e)?e[1]:null}function S$(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function E$(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function F$(e){this.data=e,this.depth=this.height=0,this.parent=null}function C$(e){return null==e?null:M$(e)}function M$(e){if("function"!=typeof e)throw new Error;return e}function z$(){return 0}function O$(e){return function(){return e}}F$.prototype=$$.prototype={constructor:F$,count:function(){return this.eachAfter(k$)},each:function(e,t){let n=-1;for(const i of this)e.call(t,i,++n,this);return this},eachAfter:function(e,t){for(var n,i,r,o=this,a=[o],s=[],l=-1;o=a.pop();)if(s.push(o),n=o.children)for(i=0,r=n.length;i<r;++i)a.push(n[i]);for(;o=s.pop();)e.call(t,o,++l,this);return this},eachBefore:function(e,t){for(var n,i,r=this,o=[r],a=-1;r=o.pop();)if(e.call(t,r,++a,this),n=r.children)for(i=n.length-1;i>=0;--i)o.push(n[i]);return this},find:function(e,t){let n=-1;for(const i of this)if(e.call(t,i,++n,this))return i},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,i=t.children,r=i&&i.length;--r>=0;)n+=i[r].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),i=t.ancestors(),r=null;e=n.pop(),t=i.pop();for(;e===t;)r=e,e=n.pop(),t=i.pop();return r}(t,e),i=[t];t!==n;)t=t.parent,i.push(t);for(var r=i.length;e!==n;)i.splice(r,0,e),e=e.parent;return i},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return $$(this).eachBefore(S$)},[Symbol.iterator]:function*(){var e,t,n,i,r=this,o=[r];do{for(e=o.reverse(),o=[];r=e.pop();)if(yield r,t=r.children)for(n=0,i=t.length;n<i;++n)o.push(t[n])}while(o.length)}};const N$=4294967296;function R$(e,t){var n,i;if(P$(t,e))return[t];for(n=0;n<e.length;++n)if(B$(t,e[n])&&P$(L$(e[n],t),e))return[e[n],t];for(n=0;n<e.length-1;++n)for(i=n+1;i<e.length;++i)if(B$(L$(e[n],e[i]),t)&&B$(L$(e[n],t),e[i])&&B$(L$(e[i],t),e[n])&&P$(q$(e[n],e[i],t),e))return[e[n],e[i],t];throw new Error}function B$(e,t){var n=e.r-t.r,i=t.x-e.x,r=t.y-e.y;return n<0||n*n<i*i+r*r}function T$(e,t){var n=e.r-t.r+1e-9*Math.max(e.r,t.r,1),i=t.x-e.x,r=t.y-e.y;return n>0&&n*n>i*i+r*r}function P$(e,t){for(var n=0;n<t.length;++n)if(!T$(e,t[n]))return!1;return!0}function j$(e){switch(e.length){case 1:return{x:(t=e[0]).x,y:t.y,r:t.r};case 2:return L$(e[0],e[1]);case 3:return q$(e[0],e[1],e[2])}var t}function L$(e,t){var n=e.x,i=e.y,r=e.r,o=t.x,a=t.y,s=t.r,l=o-n,u=a-i,c=s-r,f=Math.sqrt(l*l+u*u);return{x:(n+o+l/f*c)/2,y:(i+a+u/f*c)/2,r:(f+r+s)/2}}function q$(e,t,n){var i=e.x,r=e.y,o=e.r,a=t.x,s=t.y,l=t.r,u=n.x,c=n.y,f=n.r,d=i-a,h=i-u,p=r-s,m=r-c,g=l-o,y=f-o,v=i*i+r*r-o*o,b=v-a*a-s*s+l*l,x=v-u*u-c*c+f*f,w=h*p-d*m,_=(p*x-m*b)/(2*w)-i,k=(m*g-p*y)/w,$=(h*b-d*x)/(2*w)-r,D=(d*y-h*g)/w,A=k*k+D*D-1,S=2*(o+_*k+$*D),E=_*_+$*$-o*o,F=-(Math.abs(A)>1e-6?(S+Math.sqrt(S*S-4*A*E))/(2*A):E/S);return{x:i+_+k*F,y:r+$+D*F,r:F}}function U$(e,t,n){var i,r,o,a,s=e.x-t.x,l=e.y-t.y,u=s*s+l*l;u?(r=t.r+n.r,r*=r,a=e.r+n.r,r>(a*=a)?(i=(u+a-r)/(2*u),o=Math.sqrt(Math.max(0,a/u-i*i)),n.x=e.x-i*s-o*l,n.y=e.y-i*l+o*s):(i=(u+r-a)/(2*u),o=Math.sqrt(Math.max(0,r/u-i*i)),n.x=t.x+i*s-o*l,n.y=t.y+i*l+o*s)):(n.x=t.x+n.r,n.y=t.y)}function I$(e,t){var n=e.r+t.r-1e-6,i=t.x-e.x,r=t.y-e.y;return n>0&&n*n>i*i+r*r}function W$(e){var t=e._,n=e.next._,i=t.r+n.r,r=(t.x*n.r+n.x*t.r)/i,o=(t.y*n.r+n.y*t.r)/i;return r*r+o*o}function H$(e){this._=e,this.next=null,this.previous=null}function G$(e,t){if(!(o=(e=function(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}(e)).length))return 0;var n,i,r,o,a,s,l,u,c,f,d;if((n=e[0]).x=0,n.y=0,!(o>1))return n.r;if(i=e[1],n.x=-i.r,i.x=n.r,i.y=0,!(o>2))return n.r+i.r;U$(i,n,r=e[2]),n=new H$(n),i=new H$(i),r=new H$(r),n.next=r.previous=i,i.next=n.previous=r,r.next=i.previous=n;e:for(l=3;l<o;++l){U$(n._,i._,r=e[l]),r=new H$(r),u=i.next,c=n.previous,f=i._.r,d=n._.r;do{if(f<=d){if(I$(u._,r._)){i=u,n.next=i,i.previous=n,--l;continue e}f+=u._.r,u=u.next}else{if(I$(c._,r._)){(n=c).next=i,i.previous=n,--l;continue e}d+=c._.r,c=c.previous}}while(u!==c.next);for(r.previous=n,r.next=i,n.next=i.previous=i=r,a=W$(n);(r=r.next)!==i;)(s=W$(r))<a&&(n=r,a=s);i=n.next}for(n=[i._],r=i;(r=r.next)!==i;)n.push(r._);for(r=function(e,t){for(var n,i,r=0,o=(e=function(e,t){let n,i,r=e.length;for(;r;)i=t()*r--|0,n=e[r],e[r]=e[i],e[i]=n;return e}(Array.from(e),t)).length,a=[];r<o;)n=e[r],i&&T$(i,n)?++r:(i=j$(a=R$(a,n)),r=0);return i}(n,t),l=0;l<o;++l)(n=e[l]).x-=r.x,n.y-=r.y;return r.r}function V$(e){return Math.sqrt(e.value)}function Y$(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function X$(e,t,n){return function(i){if(r=i.children){var r,o,a,s=r.length,l=e(i)*t||0;if(l)for(o=0;o<s;++o)r[o].r+=l;if(a=G$(r,n),l)for(o=0;o<s;++o)r[o].r-=l;i.r=a+l}}}function J$(e){return function(t){var n=t.parent;t.r*=e,n&&(t.x=n.x+e*t.x,t.y=n.y+e*t.y)}}function Q$(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function K$(e,t,n,i,r){for(var o,a=e.children,s=-1,l=a.length,u=e.value&&(i-t)/e.value;++s<l;)(o=a[s]).y0=n,o.y1=r,o.x0=t,o.x1=t+=o.value*u}var Z$={depth:-1},eD={},tD={};function nD(e){return e.id}function iD(e){return e.parentId}function rD(){var e,t=nD,n=iD;function i(i){var r,o,a,s,l,u,c,f,d=Array.from(i),h=t,p=n,m=new Map;if(null!=e){const t=d.map(((t,n)=>function(e){e=`${e}`;let t=e.length;aD(e,t-1)&&!aD(e,t-2)&&(e=e.slice(0,-1));return"/"===e[0]?e:`/${e}`}(e(t,n,i)))),n=t.map(oD),r=new Set(t).add("");for(const e of n)r.has(e)||(r.add(e),t.push(e),n.push(oD(e)),d.push(tD));h=(e,n)=>t[n],p=(e,t)=>n[t]}for(a=0,r=d.length;a<r;++a)o=d[a],u=d[a]=new F$(o),null!=(c=h(o,a,i))&&(c+="")&&(f=u.id=c,m.set(f,m.has(f)?eD:u)),null!=(c=p(o,a,i))&&(c+="")&&(u.parent=c);for(a=0;a<r;++a)if(c=(u=d[a]).parent){if(!(l=m.get(c)))throw new Error("missing: "+c);if(l===eD)throw new Error("ambiguous: "+c);l.children?l.children.push(u):l.children=[u],u.parent=l}else{if(s)throw new Error("multiple roots");s=u}if(!s)throw new Error("no root");if(null!=e){for(;s.data===tD&&1===s.children.length;)s=s.children[0],--r;for(let e=d.length-1;e>=0&&(u=d[e]).data===tD;--e)u.data=null}if(s.parent=Z$,s.eachBefore((function(e){e.depth=e.parent.depth+1,--r})).eachBefore(E$),s.parent=null,r>0)throw new Error("cycle");return s}return i.id=function(e){return arguments.length?(t=C$(e),i):t},i.parentId=function(e){return arguments.length?(n=C$(e),i):n},i.path=function(t){return arguments.length?(e=C$(t),i):e},i}function oD(e){let t=e.length;if(t<2)return"";for(;--t>1&&!aD(e,t););return e.slice(0,t)}function aD(e,t){if("/"===e[t]){let n=0;for(;t>0&&"\\"===e[--t];)++n;if(!(1&n))return!0}return!1}function sD(e,t){return e.parent===t.parent?1:2}function lD(e){var t=e.children;return t?t[0]:e.t}function uD(e){var t=e.children;return t?t[t.length-1]:e.t}function cD(e,t,n){var i=n/(t.i-e.i);t.c-=i,t.s+=n,e.c+=i,t.z+=n,t.m+=n}function fD(e,t,n){return e.a.parent===t.parent?e.a:n}function dD(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function hD(e,t,n,i,r){for(var o,a=e.children,s=-1,l=a.length,u=e.value&&(r-n)/e.value;++s<l;)(o=a[s]).x0=t,o.x1=i,o.y0=n,o.y1=n+=o.value*u}dD.prototype=Object.create(F$.prototype);var pD=(1+Math.sqrt(5))/2;function mD(e,t,n,i,r,o){for(var a,s,l,u,c,f,d,h,p,m,g,y=[],v=t.children,b=0,x=0,w=v.length,_=t.value;b<w;){l=r-n,u=o-i;do{c=v[x++].value}while(!c&&x<w);for(f=d=c,g=c*c*(m=Math.max(u/l,l/u)/(_*e)),p=Math.max(d/g,g/f);x<w;++x){if(c+=s=v[x].value,s<f&&(f=s),s>d&&(d=s),g=c*c*m,(h=Math.max(d/g,g/f))>p){c-=s;break}p=h}y.push(a={value:c,dice:l<u,children:v.slice(b,x)}),a.dice?K$(a,n,i,r,_?i+=u*c/_:o):hD(a,n,i,_?n+=l*c/_:r,o),_-=c,b=x}return y}const gD=function e(t){function n(e,n,i,r,o){mD(t,e,n,i,r,o)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(pD);const yD=function e(t){function n(e,n,i,r,o){if((a=e._squarify)&&a.ratio===t)for(var a,s,l,u,c,f=-1,d=a.length,h=e.value;++f<d;){for(l=(s=a[f]).children,u=s.value=0,c=l.length;u<c;++u)s.value+=l[u].value;s.dice?K$(s,n,i,r,h?i+=(o-i)*s.value/h:o):hD(s,n,i,h?n+=(r-n)*s.value/h:r,o),h-=s.value}else e._squarify=a=mD(t,e,n,i,r,o),a.ratio=t}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(pD);function vD(e,t,n){const i={};return e.each((e=>{const r=e.data;n(r)&&(i[t(r)]=e)})),e.lookup=i,e}function bD(e){tl.call(this,null,e)}bD.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const xD=e=>e.values;function wD(){const e=[],t={entries:e=>i(n(e,0),0),key:n=>(e.push(n),t)};function n(t,i){if(i>=e.length)return t;const r=t.length,o=e[i++],a={},s={};let l,u,c,f=-1;for(;++f<r;)l=o(u=t[f])+"",(c=a[l])?c.push(u):a[l]=[u];for(l in a)s[l]=n(a[l],i);return s}function i(t,n){if(++n>e.length)return t;const r=[];for(const e in t)r.push({key:e,values:i(t[e],n)});return r}return t}function _D(e){tl.call(this,null,e)}_(bD,tl,{transform(e,t){t.source||v("Nest transform requires an upstream data source.");var n=e.generate,i=e.modified(),r=t.clone(),o=this.value;return(!o||i||t.changed())&&(o&&o.each((e=>{e.children&&ws(e.data)&&r.rem.push(e.data)})),this.value=o=$$({values:c(e.keys).reduce(((e,t)=>(e.key(t),e)),wD()).entries(r.source)},xD),n&&o.each((e=>{e.children&&(e=$s(e.data),r.add.push(e),r.source.push(e))})),vD(o,_s,_s)),r.source.root=o,r}});const kD=(e,t)=>e.parent===t.parent?1:2;_(_D,tl,{transform(e,t){t.source&&t.source.root||v(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(e.method),i=this.fields,r=t.source.root,o=e.as||i;e.field?r.sum(e.field):r.count(),e.sort&&r.sort(Es(e.sort,(e=>e.data))),function(e,t,n){for(let i,r=0,o=t.length;r<o;++r)i=t[r],i in n&&e[i](n[i])}(n,this.params,e),n.separation&&n.separation(!1!==e.separation?kD:ce);try{this.value=n(r)}catch(a){v(a)}return r.each((e=>function(e,t,n){const i=e.data,r=t.length-1;for(let o=0;o<r;++o)i[n[o]]=e[t[o]];i[n[r]]=e.children?e.children.length:0}(e,i,o))),t.reflow(e.modified()).modifies(o).modifies("leaf")}});const $D=["x","y","r","depth","children"];function DD(e){_D.call(this,e)}DD.Definition={type:"Pack",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"radius",type:"field",default:null},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:$D.length,default:$D}]},_(DD,_D,{layout:function(){var e=null,t=1,n=1,i=z$;function r(r){const o=function(){let e=1;return()=>(e=(1664525*e+1013904223)%N$)/N$}();return r.x=t/2,r.y=n/2,e?r.eachBefore(Y$(e)).eachAfter(X$(i,.5,o)).eachBefore(J$(1)):r.eachBefore(Y$(V$)).eachAfter(X$(z$,1,o)).eachAfter(X$(i,r.r/Math.min(t,n),o)).eachBefore(J$(Math.min(t,n)/(2*r.r))),r}return r.radius=function(t){return arguments.length?(e=C$(t),r):e},r.size=function(e){return arguments.length?(t=+e[0],n=+e[1],r):[t,n]},r.padding=function(e){return arguments.length?(i="function"==typeof e?e:O$(+e),r):i},r},params:["radius","size","padding"],fields:$D});const AD=["x0","y0","x1","y1","depth","children"];function SD(e){_D.call(this,e)}function ED(e){tl.call(this,null,e)}SD.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:AD.length,default:AD}]},_(SD,_D,{layout:function(){var e=1,t=1,n=0,i=!1;function r(r){var o=r.height+1;return r.x0=r.y0=n,r.x1=e,r.y1=t/o,r.eachBefore(function(e,t){return function(i){i.children&&K$(i,i.x0,e*(i.depth+1)/t,i.x1,e*(i.depth+2)/t);var r=i.x0,o=i.y0,a=i.x1-n,s=i.y1-n;a<r&&(r=a=(r+a)/2),s<o&&(o=s=(o+s)/2),i.x0=r,i.y0=o,i.x1=a,i.y1=s}}(t,o)),i&&r.eachBefore(Q$),r}return r.round=function(e){return arguments.length?(i=!!e,r):i},r.size=function(n){return arguments.length?(e=+n[0],t=+n[1],r):[e,t]},r.padding=function(e){return arguments.length?(n=+e,r):n},r},params:["size","round","padding"],fields:AD}),ED.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},_(ED,tl,{transform(e,t){t.source||v("Stratify transform requires an upstream data source.");let n=this.value;const i=e.modified(),r=t.fork(t.ALL).materialize(t.SOURCE),o=!n||i||t.changed(t.ADD_REM)||t.modified(e.key.fields)||t.modified(e.parentKey.fields);return r.source=r.source.slice(),o&&(n=r.source.length?vD(rD().id(e.key).parentId(e.parentKey)(r.source),e.key,x):vD(rD()([{}]),e.key,e.key)),r.source.root=this.value=n,r}});const FD={tidy:function(){var e=sD,t=1,n=1,i=null;function r(r){var l=function(e){for(var t,n,i,r,o,a=new dD(e,0),s=[a];t=s.pop();)if(i=t._.children)for(t.children=new Array(o=i.length),r=o-1;r>=0;--r)s.push(n=t.children[r]=new dD(i[r],r)),n.parent=t;return(a.parent=new dD(null,0)).children=[a],a}(r);if(l.eachAfter(o),l.parent.m=-l.z,l.eachBefore(a),i)r.eachBefore(s);else{var u=r,c=r,f=r;r.eachBefore((function(e){e.x<u.x&&(u=e),e.x>c.x&&(c=e),e.depth>f.depth&&(f=e)}));var d=u===c?1:e(u,c)/2,h=d-u.x,p=t/(c.x+d+h),m=n/(f.depth||1);r.eachBefore((function(e){e.x=(e.x+h)*p,e.y=e.depth*m}))}return r}function o(t){var n=t.children,i=t.parent.children,r=t.i?i[t.i-1]:null;if(n){!function(e){for(var t,n=0,i=0,r=e.children,o=r.length;--o>=0;)(t=r[o]).z+=n,t.m+=n,n+=t.s+(i+=t.c)}(t);var o=(n[0].z+n[n.length-1].z)/2;r?(t.z=r.z+e(t._,r._),t.m=t.z-o):t.z=o}else r&&(t.z=r.z+e(t._,r._));t.parent.A=function(t,n,i){if(n){for(var r,o=t,a=t,s=n,l=o.parent.children[0],u=o.m,c=a.m,f=s.m,d=l.m;s=uD(s),o=lD(o),s&&o;)l=lD(l),(a=uD(a)).a=t,(r=s.z+f-o.z-u+e(s._,o._))>0&&(cD(fD(s,t,i),t,r),u+=r,c+=r),f+=s.m,u+=o.m,d+=l.m,c+=a.m;s&&!uD(a)&&(a.t=s,a.m+=f-c),o&&!lD(l)&&(l.t=o,l.m+=u-d,i=t)}return i}(t,r,t.parent.A||i[0])}function a(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(e){e.x*=t,e.y=e.depth*n}return r.separation=function(t){return arguments.length?(e=t,r):e},r.size=function(e){return arguments.length?(i=!1,t=+e[0],n=+e[1],r):i?null:[t,n]},r.nodeSize=function(e){return arguments.length?(i=!0,t=+e[0],n=+e[1],r):i?[t,n]:null},r},cluster:function(){var e=x$,t=1,n=1,i=!1;function r(r){var o,a=0;r.eachAfter((function(t){var n=t.children;n?(t.x=function(e){return e.reduce(w$,0)/e.length}(n),t.y=function(e){return 1+e.reduce(_$,0)}(n)):(t.x=o?a+=e(t,o):0,t.y=0,o=t)}));var s=function(e){for(var t;t=e.children;)e=t[0];return e}(r),l=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(r),u=s.x-e(s,l)/2,c=l.x+e(l,s)/2;return r.eachAfter(i?function(e){e.x=(e.x-r.x)*t,e.y=(r.y-e.y)*n}:function(e){e.x=(e.x-u)/(c-u)*t,e.y=(1-(r.y?e.y/r.y:1))*n})}return r.separation=function(t){return arguments.length?(e=t,r):e},r.size=function(e){return arguments.length?(i=!1,t=+e[0],n=+e[1],r):i?null:[t,n]},r.nodeSize=function(e){return arguments.length?(i=!0,t=+e[0],n=+e[1],r):i?[t,n]:null},r}},CD=["x","y","depth","children"];function MD(e){_D.call(this,e)}function zD(e){tl.call(this,[],e)}MD.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:CD.length,default:CD}]},_(MD,_D,{layout(e){const n=e||"tidy";if(t(FD,n))return FD[n]();v("Unrecognized Tree layout method: "+n)},params:["size","nodeSize"],fields:CD}),zD.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},_(zD,tl,{transform(e,t){const n=this.value,i=t.source&&t.source.root,r=t.fork(t.NO_SOURCE),o={};return i||v("TreeLinks transform requires a tree data source."),t.changed(t.ADD_REM)?(r.rem=n,t.visit(t.SOURCE,(e=>o[_s(e)]=1)),i.each((e=>{const t=e.data,n=e.parent&&e.parent.data;n&&o[_s(t)]&&o[_s(n)]&&r.add.push($s({source:n,target:t}))})),this.value=r.add):t.changed(t.MOD)&&(t.visit(t.MOD,(e=>o[_s(e)]=1)),n.forEach((e=>{(o[_s(e.source)]||o[_s(e.target)])&&r.mod.push(e)}))),r}});const OD={binary:function(e,t,n,i,r){var o,a,s=e.children,l=s.length,u=new Array(l+1);for(u[0]=a=o=0;o<l;++o)u[o+1]=a+=s[o].value;!function e(t,n,i,r,o,a,l){if(t>=n-1){var c=s[t];return c.x0=r,c.y0=o,c.x1=a,void(c.y1=l)}var f=u[t],d=i/2+f,h=t+1,p=n-1;for(;h<p;){var m=h+p>>>1;u[m]<d?h=m+1:p=m}d-u[h-1]<u[h]-d&&t+1<h&&--h;var g=u[h]-f,y=i-g;if(a-r>l-o){var v=i?(r*y+a*g)/i:a;e(t,h,g,r,o,v,l),e(h,n,y,v,o,a,l)}else{var b=i?(o*y+l*g)/i:l;e(t,h,g,r,o,a,b),e(h,n,y,r,b,a,l)}}(0,l,e.value,t,n,i,r)},dice:K$,slice:hD,slicedice:function(e,t,n,i,r){(1&e.depth?hD:K$)(e,t,n,i,r)},squarify:gD,resquarify:yD},ND=["x0","y0","x1","y1","depth","children"];function RD(e){_D.call(this,e)}RD.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:ND.length,default:ND}]},_(RD,_D,{layout(){const e=function(){var e=gD,t=!1,n=1,i=1,r=[0],o=z$,a=z$,s=z$,l=z$,u=z$;function c(e){return e.x0=e.y0=0,e.x1=n,e.y1=i,e.eachBefore(f),r=[0],t&&e.eachBefore(Q$),e}function f(t){var n=r[t.depth],i=t.x0+n,c=t.y0+n,f=t.x1-n,d=t.y1-n;f<i&&(i=f=(i+f)/2),d<c&&(c=d=(c+d)/2),t.x0=i,t.y0=c,t.x1=f,t.y1=d,t.children&&(n=r[t.depth+1]=o(t)/2,i+=u(t)-n,c+=a(t)-n,(f-=s(t)-n)<i&&(i=f=(i+f)/2),(d-=l(t)-n)<c&&(c=d=(c+d)/2),e(t,i,c,f,d))}return c.round=function(e){return arguments.length?(t=!!e,c):t},c.size=function(e){return arguments.length?(n=+e[0],i=+e[1],c):[n,i]},c.tile=function(t){return arguments.length?(e=M$(t),c):e},c.padding=function(e){return arguments.length?c.paddingInner(e).paddingOuter(e):c.paddingInner()},c.paddingInner=function(e){return arguments.length?(o="function"==typeof e?e:O$(+e),c):o},c.paddingOuter=function(e){return arguments.length?c.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):c.paddingTop()},c.paddingTop=function(e){return arguments.length?(a="function"==typeof e?e:O$(+e),c):a},c.paddingRight=function(e){return arguments.length?(s="function"==typeof e?e:O$(+e),c):s},c.paddingBottom=function(e){return arguments.length?(l="function"==typeof e?e:O$(+e),c):l},c.paddingLeft=function(e){return arguments.length?(u="function"==typeof e?e:O$(+e),c):u},c}();return e.ratio=t=>{const n=e.tile();n.ratio&&e.tile(n.ratio(t))},e.method=n=>{t(OD,n)?e.tile(OD[n]):v("Unrecognized Treemap layout method: "+n)},e},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:ND});const BD=Object.freeze(Object.defineProperty({__proto__:null,nest:bD,pack:DD,partition:SD,stratify:ED,tree:MD,treelinks:zD,treemap:RD},Symbol.toStringTag,{value:"Module"})),TD=4278190080;function PD(e,t,n){return new Uint32Array(e.getImageData(0,0,t,n).data.buffer)}function jD(e,t,n){if(!t.length)return;const i=t[0].mark.marktype;"group"===i?t.forEach((t=>{t.items.forEach((t=>jD(e,t.items,n)))})):mm[i].draw(e,{items:n?t.map(LD):t})}function LD(e){const t=As(e,{});return t.stroke&&0!==t.strokeOpacity||t.fill&&0!==t.fillOpacity?{...t,strokeOpacity:1,stroke:"#000",fillOpacity:0}:t}const qD=31,UD=new Uint32Array(33),ID=new Uint32Array(33);ID[0]=0,UD[0]=~ID[0];for(let BG=1;BG<=32;++BG)ID[BG]=ID[BG-1]<<1|1,UD[BG]=~ID[BG];function WD(e,t,n){const i=Math.max(1,Math.sqrt(e*t/1e6)),r=~~((e+2*n+i)/i),o=~~((t+2*n+i)/i),a=e=>~~((e+n)/i);return a.invert=e=>e*i-n,a.bitmap=()=>function(e,t){const n=new Uint32Array(~~((e*t+32)/32));function i(e,t){n[e]|=t}function r(e,t){n[e]&=t}return{array:n,get:(t,i)=>{const r=i*e+t;return n[r>>>5]&1<<(r&qD)},set:(t,n)=>{const r=n*e+t;i(r>>>5,1<<(r&qD))},clear:(t,n)=>{const i=n*e+t;r(i>>>5,~(1<<(i&qD)))},getRange:(t,i,r,o)=>{let a,s,l,u,c=o;for(;c>=i;--c)if(a=c*e+t,s=c*e+r,l=a>>>5,u=s>>>5,l===u){if(n[l]&UD[a&qD]&ID[1+(s&qD)])return!0}else{if(n[l]&UD[a&qD])return!0;if(n[u]&ID[1+(s&qD)])return!0;for(let e=l+1;e<u;++e)if(n[e])return!0}return!1},setRange:(t,n,r,o)=>{let a,s,l,u,c;for(;n<=o;++n)if(a=n*e+t,s=n*e+r,l=a>>>5,u=s>>>5,l===u)i(l,UD[a&qD]&ID[1+(s&qD)]);else for(i(l,UD[a&qD]),i(u,ID[1+(s&qD)]),c=l+1;c<u;++c)i(c,4294967295)},clearRange:(t,n,i,o)=>{let a,s,l,u,c;for(;n<=o;++n)if(a=n*e+t,s=n*e+i,l=a>>>5,u=s>>>5,l===u)r(l,ID[a&qD]|UD[1+(s&qD)]);else for(r(l,ID[a&qD]),r(u,UD[1+(s&qD)]),c=l+1;c<u;++c)r(c,0)},outOfBounds:(n,i,r,o)=>n<0||i<0||o>=t||r>=e}}(r,o),a.ratio=i,a.padding=n,a.width=e,a.height=t,a}function HD(e,t,n,i,r,o){let a=n/2;return e-a<0||e+a>r||t-(a=i/2)<0||t+a>o}function GD(e,t,n,i,r,o,a,s){const l=r*o/(2*i),u=e(t-l),c=e(t+l),f=e(n-(o/=2)),d=e(n+o);return a.outOfBounds(u,f,c,d)||a.getRange(u,f,c,d)||s&&s.getRange(u,f,c,d)}const VD=[-1,-1,1,1],YD=[-1,1,-1,1];const XD=["right","center","left"],JD=["bottom","middle","top"];function QD(e,t,n,i,r,o,a,s,l,u,c,f){return!(r.outOfBounds(e,n,t,i)||(f&&o||r).getRange(e,n,t,i))}const KD={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},ZD={naive:function(e,t,n,i){const r=e.width,o=e.height;return function(e){const t=e.datum.datum.items[i].items,n=t.length,a=e.datum.fontSize,s=Jp.width(e.datum,e.datum.text);let l,u,c,f,d,h,p,m=0;for(let i=0;i<n;++i)l=t[i].x,c=t[i].y,u=void 0===t[i].x2?l:t[i].x2,f=void 0===t[i].y2?c:t[i].y2,d=(l+u)/2,h=(c+f)/2,p=Math.abs(u-l+f-c),p>=m&&(m=p,e.x=d,e.y=h);return d=s/2,h=a/2,l=e.x-d,u=e.x+d,c=e.y-h,f=e.y+h,e.align="center",l<0&&u<=r?e.align="left":0<=l&&r<u&&(e.align="right"),e.baseline="middle",c<0&&f<=o?e.baseline="top":0<=c&&o<f&&(e.baseline="bottom"),!0}},"reduced-search":function(e,t,n,i){const r=e.width,o=e.height,a=t[0],s=t[1];function l(t,n,i,l,u){const c=e.invert(t),f=e.invert(n);let d,h=i,p=o;if(!HD(c,f,l,u,r,o)&&!GD(e,c,f,u,l,h,a,s)&&!GD(e,c,f,u,l,u,a,null)){for(;p-h>=1;)d=(h+p)/2,GD(e,c,f,u,l,d,a,s)?p=d:h=d;if(h>i)return[c,f,h,!0]}}return function(t){const s=t.datum.datum.items[i].items,u=s.length,c=t.datum.fontSize,f=Jp.width(t.datum,t.datum.text);let d,h,p,m,g,y,v,b,x,w,_,k,$,D,A,S,E,F=n?c:0,C=!1,M=!1,z=0;for(let i=0;i<u;++i){for(d=s[i].x,p=s[i].y,h=void 0===s[i].x2?d:s[i].x2,m=void 0===s[i].y2?p:s[i].y2,d>h&&(E=d,d=h,h=E),p>m&&(E=p,p=m,m=E),x=e(d),_=e(h),w=~~((x+_)/2),k=e(p),D=e(m),$=~~((k+D)/2),v=w;v>=x;--v)for(b=$;b>=k;--b)S=l(v,b,F,f,c),S&&([t.x,t.y,F,C]=S);for(v=w;v<=_;++v)for(b=$;b<=D;++b)S=l(v,b,F,f,c),S&&([t.x,t.y,F,C]=S);C||n||(A=Math.abs(h-d+m-p),g=(d+h)/2,y=(p+m)/2,A>=z&&!HD(g,y,f,c,r,o)&&!GD(e,g,y,c,f,c,a,null)&&(z=A,t.x=g,t.y=y,M=!0))}return!(!C&&!M)&&(g=f/2,y=c/2,a.setRange(e(t.x-g),e(t.y-y),e(t.x+g),e(t.y+y)),t.align="center",t.baseline="middle",!0)}},floodfill:function(e,t,n,i){const r=e.width,o=e.height,a=t[0],s=t[1],l=e.bitmap();return function(t){const u=t.datum.datum.items[i].items,c=u.length,f=t.datum.fontSize,d=Jp.width(t.datum,t.datum.text),h=[];let p,m,g,y,v,b,x,w,_,k,$,D,A=n?f:0,S=!1,E=!1,F=0;for(let i=0;i<c;++i){for(p=u[i].x,g=u[i].y,m=void 0===u[i].x2?p:u[i].x2,y=void 0===u[i].y2?g:u[i].y2,h.push([e((p+m)/2),e((g+y)/2)]);h.length;)if([x,w]=h.pop(),!(a.get(x,w)||s.get(x,w)||l.get(x,w))){l.set(x,w);for(let e=0;e<4;++e)v=x+VD[e],b=w+YD[e],l.outOfBounds(v,b,v,b)||h.push([v,b]);if(v=e.invert(x),b=e.invert(w),_=A,k=o,!HD(v,b,d,f,r,o)&&!GD(e,v,b,f,d,_,a,s)&&!GD(e,v,b,f,d,f,a,null)){for(;k-_>=1;)$=(_+k)/2,GD(e,v,b,f,d,$,a,s)?k=$:_=$;_>A&&(t.x=v,t.y=b,A=_,S=!0)}}S||n||(D=Math.abs(m-p+y-g),v=(p+m)/2,b=(g+y)/2,D>=F&&!HD(v,b,d,f,r,o)&&!GD(e,v,b,f,d,f,a,null)&&(F=D,t.x=v,t.y=b,E=!0))}return!(!S&&!E)&&(v=d/2,b=f/2,a.setRange(e(t.x-v),e(t.y-b),e(t.x+v),e(t.y+b)),t.align="center",t.baseline="middle",!0)}}};function eA(e,t,n,i,r,o,a,s,l,u,c){if(!e.length)return e;const f=Math.max(i.length,r.length),d=function(e,t){const n=new Float64Array(t),i=e.length;for(let r=0;r<i;++r)n[r]=e[r]||0;for(let r=i;r<t;++r)n[r]=n[i-1];return n}(i,f),h=function(e,t){const n=new Int8Array(t),i=e.length;for(let r=0;r<i;++r)n[r]|=KD[e[r]];for(let r=i;r<t;++r)n[r]=n[i-1];return n}(r,f),p=(x=e[0].datum)&&x.mark&&x.mark.marktype,m="group"===p&&e[0].datum.items[l].marktype,g="area"===m,y=function(e,t,n,i){const r=e=>[e.x,e.x,e.x,e.y,e.y,e.y];return e?"line"===e||"area"===e?e=>r(e.datum):"line"===t?e=>{const t=e.datum.items[i].items;return r(t.length?t["start"===n?0:t.length-1]:{x:NaN,y:NaN})}:e=>{const t=e.datum.bounds;return[t.x1,(t.x1+t.x2)/2,t.x2,t.y1,(t.y1+t.y2)/2,t.y2]}:r}(p,m,s,l),v=null===u||u===1/0,b=g&&"naive"===c;var x;let w=-1,_=-1;const k=e.map((e=>{const t=v?Jp.width(e,e.text):void 0;return w=Math.max(w,t),_=Math.max(_,e.fontSize),{datum:e,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(e),textWidth:t}}));u=null===u||u===1/0?Math.max(w,_)+Math.max(...i):u;const $=WD(t[0],t[1],u);let D;if(!b){n&&k.sort(((e,t)=>n(e.datum,t.datum)));let t=!1;for(let e=0;e<h.length&&!t;++e)t=5===h[e]||d[e]<0;const i=(p&&a||g)&&e.map((e=>e.datum));D=o.length||i?function(e,t,n,i,r){const o=e.width,a=e.height,s=i||r,l=Ac(o,a).getContext("2d"),u=Ac(o,a).getContext("2d"),c=s&&Ac(o,a).getContext("2d");n.forEach((e=>jD(l,e,!1))),jD(u,t,!1),s&&jD(c,t,!0);const f=PD(l,o,a),d=PD(u,o,a),h=s&&PD(c,o,a),p=e.bitmap(),m=s&&e.bitmap();let g,y,v,b,x,w,_,k;for(y=0;y<a;++y)for(g=0;g<o;++g)x=y*o+g,w=f[x]&TD,k=d[x]&TD,_=s&&h[x]&TD,(w||_||k)&&(v=e(g),b=e(y),r||!w&&!k||p.set(v,b),s&&(w||_)&&m.set(v,b));return[p,m]}($,i||[],o,t,g):function(e,t){const n=e.bitmap();return(t||[]).forEach((t=>n.set(e(t.boundary[0]),e(t.boundary[3])))),[n,void 0]}($,a&&k)}const A=g?ZD[c]($,D,a,l):function(e,t,n,i){const r=e.width,o=e.height,a=t[0],s=t[1],l=i.length;return function(t){const u=t.boundary,c=t.datum.fontSize;if(u[2]<0||u[5]<0||u[0]>r||u[3]>o)return!1;let f,d,h,p,m,g,y,v,b,x,w,_,k,$,D,A=t.textWidth??0;for(let r=0;r<l;++r){if(f=(3&n[r])-1,d=(n[r]>>>2&3)-1,h=0===f&&0===d||i[r]<0,p=f&&d?Math.SQRT1_2:1,m=i[r]<0?-1:1,g=u[1+f]+i[r]*f*p,w=u[4+d]+m*c*d/2+i[r]*d*p,v=w-c/2,b=w+c/2,_=e(g),$=e(v),D=e(b),!A){if(!QD(_,_,$,D,a,s,0,0,0,0,0,h))continue;A=Jp.width(t.datum,t.datum.text)}if(x=g+m*A*f/2,g=x-A/2,y=x+A/2,_=e(g),k=e(y),QD(_,k,$,D,a,s,0,0,0,0,0,h))return t.x=f?f*m<0?y:g:x,t.y=d?d*m<0?b:v:w,t.align=XD[f*m+1],t.baseline=JD[d*m+1],a.setRange(_,$,k,D),!0}return!1}}($,D,h,d);return k.forEach((e=>e.opacity=+A(e))),k}const tA=["x","y","opacity","align","baseline"],nA=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function iA(e){tl.call(this,null,e)}iA.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:nA},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:tA.length,default:tA}]},_(iA,tl,{transform(e,t){const n=e.modified();if(!(n||t.changed(t.ADD_REM)||function(n){const i=e[n];return m(i)&&t.modified(i.fields)}("sort")))return;e.size&&2===e.size.length||v("Size parameter should be specified as a [width, height] array.");const i=e.as||tA;return eA(t.materialize(t.SOURCE).source||[],e.size,e.sort,c(null==e.offset?1:e.offset),c(e.anchor||nA),e.avoidMarks||[],!1!==e.avoidBaseMark,e.lineAnchor||"end",e.markIndex||0,void 0===e.padding?0:e.padding,e.method||"naive").forEach((e=>{const t=e.datum;t[i[0]]=e.x,t[i[1]]=e.y,t[i[2]]=e.opacity,t[i[3]]=e.align,t[i[4]]=e.baseline})),t.reflow(n).modifies(i)}});const rA=Object.freeze(Object.defineProperty({__proto__:null,label:iA},Symbol.toStringTag,{value:"Module"}));function oA(e,t){var n,i,r,o,a,s,l=[],u=function(e){return e(o)};if(null==t)l.push(e);else for(n={},i=0,r=e.length;i<r;++i)o=e[i],(s=n[a=t.map(u)])||(n[a]=s=[],s.dims=a,l.push(s)),s.push(o);return l}function aA(e){tl.call(this,null,e)}aA.Definition={type:"Loess",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"bandwidth",type:"number",default:.3},{name:"as",type:"string",array:!0}]},_(aA,tl,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=oA(t.materialize(t.SOURCE).source,e.groupby),r=(e.groupby||[]).map(S),o=r.length,a=e.as||[S(e.x),S(e.y)],s=[];i.forEach((t=>{Hl(t,e.x,e.y,e.bandwidth||.3).forEach((e=>{const n={};for(let i=0;i<o;++i)n[r[i]]=t.dims[i];n[a[0]]=e[0],n[a[1]]=e[1],s.push($s(n))}))})),this.value&&(n.rem=this.value),this.value=n.add=n.source=s}return n}});const sA={constant:Ol,linear:Pl,log:jl,exp:Ll,pow:ql,quad:Ul,poly:Il};function lA(e){tl.call(this,null,e)}lA.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(sA)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]},_(lA,tl,{transform(e,n){const i=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||e.modified()){const r=oA(n.materialize(n.SOURCE).source,e.groupby),o=(e.groupby||[]).map(S),a=e.method||"linear",s=null==e.order?3:e.order,l=((e,t)=>"poly"===e?t:"quad"===e?2:1)(a,s),u=e.as||[S(e.x),S(e.y)],c=sA[a],f=[];let d=e.extent;t(sA,a)||v("Invalid regression method: "+a),null!=d&&"log"===a&&d[0]<=0&&(n.dataflow.warn("Ignoring extent with values <= 0 for log regression."),d=null),r.forEach((t=>{if(t.length<=l)return void n.dataflow.warn("Skipping regression with more parameters than data points.");const i=c(t,e.x,e.y,s);if(e.params)return void f.push($s({keys:t.dims,coef:i.coef,rSquared:i.rSquared}));const r=d||M(t,e.x),h=e=>{const n={};for(let i=0;i<o.length;++i)n[o[i]]=t.dims[i];n[u[0]]=e[0],n[u[1]]=e[1],f.push($s(n))};"linear"===a||"constant"===a?r.forEach((e=>h([e,i.predict(e)]))):Xl(i.predict,r,25,200).forEach(h)})),this.value&&(i.rem=this.value),this.value=i.add=i.source=f}return i}});const uA=Object.freeze(Object.defineProperty({__proto__:null,loess:aA,regression:lA},Symbol.toStringTag,{value:"Module"})),cA=134217729;function fA(e,t,n,i,r){let o,a,s,l,u=t[0],c=i[0],f=0,d=0;c>u==c>-u?(o=u,u=t[++f]):(o=c,c=i[++d]);let h=0;if(f<e&&d<n)for(c>u==c>-u?(a=u+o,s=o-(a-u),u=t[++f]):(a=c+o,s=o-(a-c),c=i[++d]),o=a,0!==s&&(r[h++]=s);f<e&&d<n;)c>u==c>-u?(a=o+u,l=a-o,s=o-(a-l)+(u-l),u=t[++f]):(a=o+c,l=a-o,s=o-(a-l)+(c-l),c=i[++d]),o=a,0!==s&&(r[h++]=s);for(;f<e;)a=o+u,l=a-o,s=o-(a-l)+(u-l),u=t[++f],o=a,0!==s&&(r[h++]=s);for(;d<n;)a=o+c,l=a-o,s=o-(a-l)+(c-l),c=i[++d],o=a,0!==s&&(r[h++]=s);return 0===o&&0!==h||(r[h++]=o),h}function dA(e){return new Float64Array(e)}const hA=dA(4),pA=dA(8),mA=dA(12),gA=dA(16),yA=dA(4);function vA(e,t,n,i,r,o){const a=(t-o)*(n-r),s=(e-r)*(i-o),l=a-s,u=Math.abs(a+s);return Math.abs(l)>=33306690738754716e-32*u?l:-function(e,t,n,i,r,o,a){let s,l,u,c,f,d,h,p,m,g,y,v,b,x,w,_,k,$;const D=e-r,A=n-r,S=t-o,E=i-o;x=D*E,d=cA*D,h=d-(d-D),p=D-h,d=cA*E,m=d-(d-E),g=E-m,w=p*g-(x-h*m-p*m-h*g),_=S*A,d=cA*S,h=d-(d-S),p=S-h,d=cA*A,m=d-(d-A),g=A-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,hA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,hA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,hA[2]=v-($-f)+(y-f),hA[3]=$;let F=function(e,t){let n=t[0];for(let i=1;i<e;i++)n+=t[i];return n}(4,hA),C=22204460492503146e-32*a;if(F>=C||-F>=C)return F;if(f=e-D,s=e-(D+f)+(f-r),f=n-A,u=n-(A+f)+(f-r),f=t-S,l=t-(S+f)+(f-o),f=i-E,c=i-(E+f)+(f-o),0===s&&0===l&&0===u&&0===c)return F;if(C=11093356479670487e-47*a+33306690738754706e-32*Math.abs(F),F+=D*c+E*s-(S*u+A*l),F>=C||-F>=C)return F;x=s*E,d=cA*s,h=d-(d-s),p=s-h,d=cA*E,m=d-(d-E),g=E-m,w=p*g-(x-h*m-p*m-h*g),_=l*A,d=cA*l,h=d-(d-l),p=l-h,d=cA*A,m=d-(d-A),g=A-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,yA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,yA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,yA[2]=v-($-f)+(y-f),yA[3]=$;const M=fA(4,hA,4,yA,pA);x=D*c,d=cA*D,h=d-(d-D),p=D-h,d=cA*c,m=d-(d-c),g=c-m,w=p*g-(x-h*m-p*m-h*g),_=S*u,d=cA*S,h=d-(d-S),p=S-h,d=cA*u,m=d-(d-u),g=u-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,yA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,yA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,yA[2]=v-($-f)+(y-f),yA[3]=$;const z=fA(M,pA,4,yA,mA);x=s*c,d=cA*s,h=d-(d-s),p=s-h,d=cA*c,m=d-(d-c),g=c-m,w=p*g-(x-h*m-p*m-h*g),_=l*u,d=cA*l,h=d-(d-l),p=l-h,d=cA*u,m=d-(d-u),g=u-m,k=p*g-(_-h*m-p*m-h*g),y=w-k,f=w-y,yA[0]=w-(y+f)+(f-k),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,yA[1]=b-(y+f)+(f-_),$=v+y,f=$-v,yA[2]=v-($-f)+(y-f),yA[3]=$;const O=fA(z,mA,4,yA,gA);return gA[O-1]}(e,t,n,i,r,o,u)}const bA=Math.pow(2,-52),xA=new Uint32Array(512);class wA{static from(e,t=SA,n=EA){const i=e.length,r=new Float64Array(2*i);for(let o=0;o<i;o++){const i=e[o];r[2*o]=t(i),r[2*o+1]=n(i)}return new wA(r)}constructor(e){const t=e.length>>1;if(t>0&&"number"!=typeof e[0])throw new Error("Expected coords to contain numbers.");this.coords=e;const n=Math.max(2*t-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.update()}update(){const{coords:e,_hullPrev:t,_hullNext:n,_hullTri:i,_hullHash:r}=this,o=e.length>>1;let a=1/0,s=1/0,l=-1/0,u=-1/0;for(let D=0;D<o;D++){const t=e[2*D],n=e[2*D+1];t<a&&(a=t),n<s&&(s=n),t>l&&(l=t),n>u&&(u=n),this._ids[D]=D}const c=(a+l)/2,f=(s+u)/2;let d,h,p,m=1/0;for(let D=0;D<o;D++){const t=_A(c,f,e[2*D],e[2*D+1]);t<m&&(d=D,m=t)}const g=e[2*d],y=e[2*d+1];m=1/0;for(let D=0;D<o;D++){if(D===d)continue;const t=_A(g,y,e[2*D],e[2*D+1]);t<m&&t>0&&(h=D,m=t)}let v=e[2*h],b=e[2*h+1],x=1/0;for(let D=0;D<o;D++){if(D===d||D===h)continue;const t=$A(g,y,v,b,e[2*D],e[2*D+1]);t<x&&(p=D,x=t)}let w=e[2*p],_=e[2*p+1];if(x===1/0){for(let i=0;i<o;i++)this._dists[i]=e[2*i]-e[0]||e[2*i+1]-e[1];DA(this._ids,this._dists,0,o-1);const t=new Uint32Array(o);let n=0;for(let e=0,i=-1/0;e<o;e++){const r=this._ids[e];this._dists[r]>i&&(t[n++]=r,i=this._dists[r])}return this.hull=t.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(vA(g,y,v,b,w,_)<0){const e=h,t=v,n=b;h=p,v=w,b=_,p=e,w=t,_=n}const k=function(e,t,n,i,r,o){const a=n-e,s=i-t,l=r-e,u=o-t,c=a*a+s*s,f=l*l+u*u,d=.5/(a*u-s*l),h=e+(u*c-s*f)*d;return{x:h,y:t+(a*f-l*c)*d}}(g,y,v,b,w,_);this._cx=k.x,this._cy=k.y;for(let D=0;D<o;D++)this._dists[D]=_A(e[2*D],e[2*D+1],k.x,k.y);DA(this._ids,this._dists,0,o-1),this._hullStart=d;let $=3;n[d]=t[p]=h,n[h]=t[d]=p,n[p]=t[h]=d,i[d]=0,i[h]=1,i[p]=2,r.fill(-1),r[this._hashKey(g,y)]=d,r[this._hashKey(v,b)]=h,r[this._hashKey(w,_)]=p,this.trianglesLen=0,this._addTriangle(d,h,p,-1,-1,-1);for(let D,A,S=0;S<this._ids.length;S++){const o=this._ids[S],a=e[2*o],s=e[2*o+1];if(S>0&&Math.abs(a-D)<=bA&&Math.abs(s-A)<=bA)continue;if(D=a,A=s,o===d||o===h||o===p)continue;let l=0;for(let e=0,t=this._hashKey(a,s);e<this._hashSize&&(l=r[(t+e)%this._hashSize],-1===l||l===n[l]);e++);l=t[l];let u,c=l;for(;u=n[c],vA(a,s,e[2*c],e[2*c+1],e[2*u],e[2*u+1])>=0;)if(c=u,c===l){c=-1;break}if(-1===c)continue;let f=this._addTriangle(c,o,n[c],-1,-1,i[c]);i[o]=this._legalize(f+2),i[c]=f,$++;let m=n[c];for(;u=n[m],vA(a,s,e[2*m],e[2*m+1],e[2*u],e[2*u+1])<0;)f=this._addTriangle(m,o,u,i[o],-1,i[m]),i[o]=this._legalize(f+2),n[m]=m,$--,m=u;if(c===l)for(;u=t[c],vA(a,s,e[2*u],e[2*u+1],e[2*c],e[2*c+1])<0;)f=this._addTriangle(u,o,c,-1,i[c],i[u]),this._legalize(f+2),i[u]=f,n[c]=c,$--,c=u;this._hullStart=t[o]=c,n[c]=t[m]=o,n[o]=m,r[this._hashKey(a,s)]=o,r[this._hashKey(e[2*c],e[2*c+1])]=c}this.hull=new Uint32Array($);for(let D=0,A=this._hullStart;D<$;D++)this.hull[D]=A,A=n[A];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(function(e,t){const n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:t,_halfedges:n,coords:i}=this;let r=0,o=0;for(;;){const a=n[e],s=e-e%3;if(o=s+(e+2)%3,-1===a){if(0===r)break;e=xA[--r];continue}const l=a-a%3,u=s+(e+1)%3,c=l+(a+2)%3,f=t[o],d=t[e],h=t[u],p=t[c];if(kA(i[2*f],i[2*f+1],i[2*d],i[2*d+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1])){t[e]=p,t[a]=f;const i=n[c];if(-1===i){let t=this._hullStart;do{if(this._hullTri[t]===c){this._hullTri[t]=e;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(e,i),this._link(a,n[o]),this._link(o,c);const s=l+(a+1)%3;r<xA.length&&(xA[r++]=s)}else{if(0===r)break;e=xA[--r]}}return o}_link(e,t){this._halfedges[e]=t,-1!==t&&(this._halfedges[t]=e)}_addTriangle(e,t,n,i,r,o){const a=this.trianglesLen;return this._triangles[a]=e,this._triangles[a+1]=t,this._triangles[a+2]=n,this._link(a,i),this._link(a+1,r),this._link(a+2,o),this.trianglesLen+=3,a}}function _A(e,t,n,i){const r=e-n,o=t-i;return r*r+o*o}function kA(e,t,n,i,r,o,a,s){const l=e-a,u=t-s,c=n-a,f=i-s,d=r-a,h=o-s,p=c*c+f*f,m=d*d+h*h;return l*(f*m-p*h)-u*(c*m-p*d)+(l*l+u*u)*(c*h-f*d)<0}function $A(e,t,n,i,r,o){const a=n-e,s=i-t,l=r-e,u=o-t,c=a*a+s*s,f=l*l+u*u,d=.5/(a*u-s*l),h=(u*c-s*f)*d,p=(a*f-l*c)*d;return h*h+p*p}function DA(e,t,n,i){if(i-n<=20)for(let r=n+1;r<=i;r++){const i=e[r],o=t[i];let a=r-1;for(;a>=n&&t[e[a]]>o;)e[a+1]=e[a--];e[a+1]=i}else{let r=n+1,o=i;AA(e,n+i>>1,r),t[e[n]]>t[e[i]]&&AA(e,n,i),t[e[r]]>t[e[i]]&&AA(e,r,i),t[e[n]]>t[e[r]]&&AA(e,n,r);const a=e[r],s=t[a];for(;;){do{r++}while(t[e[r]]<s);do{o--}while(t[e[o]]>s);if(o<r)break;AA(e,r,o)}e[n+1]=e[o],e[o]=a,i-r+1>=o-n?(DA(e,t,r,i),DA(e,t,n,o-1)):(DA(e,t,n,o-1),DA(e,t,r,i))}}function AA(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function SA(e){return e[0]}function EA(e){return e[1]}const FA=1e-6;class CA{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,n){const i=(e=+e)+(n=+n),r=t=+t;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${i},${r}`:(Math.abs(this._x1-i)>FA||Math.abs(this._y1-r)>FA)&&(this._+="L"+i+","+r),n&&(this._+=`A${n},${n},0,1,1,${e-n},${t}A${n},${n},0,1,1,${this._x1=i},${this._y1=r}`)}rect(e,t,n,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+n}v${+i}h${-n}Z`}value(){return this._||null}}class MA{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}}let zA=class{constructor(e,[t,n,i,r]=[0,0,960,500]){if(!((i=+i)>=(t=+t)&&(r=+r)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(2*e.points.length),this.vectors=new Float64Array(2*e.points.length),this.xmax=i,this.xmin=t,this.ymax=r,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:t,triangles:n},vectors:i}=this;let r,o;const a=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let p,m,g=0,y=0,v=n.length;g<v;g+=3,y+=2){const i=2*n[g],s=2*n[g+1],l=2*n[g+2],u=e[i],c=e[i+1],f=e[s],d=e[s+1],h=e[l],v=e[l+1],b=f-u,x=d-c,w=h-u,_=v-c,k=2*(b*_-x*w);if(Math.abs(k)<1e-9){if(void 0===r){r=o=0;for(const n of t)r+=e[2*n],o+=e[2*n+1];r/=t.length,o/=t.length}const n=1e9*Math.sign((r-u)*_-(o-c)*w);p=(u+h)/2-n*_,m=(c+v)/2+n*w}else{const e=1/k,t=b*b+x*x,n=w*w+_*_;p=u+(_*t-x*n)*e,m=c+(b*n-w*t)*e}a[y]=p,a[y+1]=m}let s,l,u,c=t[t.length-1],f=4*c,d=e[2*c],h=e[2*c+1];i.fill(0);for(let p=0;p<t.length;++p)c=t[p],s=f,l=d,u=h,f=4*c,d=e[2*c],h=e[2*c+1],i[s+2]=i[f]=u-h,i[s+3]=i[f+1]=d-l}render(e){const t=null==e?e=new CA:void 0,{delaunay:{halfedges:n,inedges:i,hull:r},circumcenters:o,vectors:a}=this;if(r.length<=1)return null;for(let u=0,c=n.length;u<c;++u){const t=n[u];if(t<u)continue;const i=2*Math.floor(u/3),r=2*Math.floor(t/3),a=o[i],s=o[i+1],l=o[r],c=o[r+1];this._renderSegment(a,s,l,c,e)}let s,l=r[r.length-1];for(let u=0;u<r.length;++u){s=l,l=r[u];const t=2*Math.floor(i[l]/3),n=o[t],c=o[t+1],f=4*s,d=this._project(n,c,a[f+2],a[f+3]);d&&this._renderSegment(n,c,d[0],d[1],e)}return t&&t.value()}renderBounds(e){const t=null==e?e=new CA:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}renderCell(e,t){const n=null==t?t=new CA:void 0,i=this._clip(e);if(null===i||!i.length)return;t.moveTo(i[0],i[1]);let r=i.length;for(;i[0]===i[r-2]&&i[1]===i[r-1]&&r>1;)r-=2;for(let o=2;o<r;o+=2)i[o]===i[o-2]&&i[o+1]===i[o-1]||t.lineTo(i[o],i[o+1]);return t.closePath(),n&&n.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let t=0,n=e.length/2;t<n;++t){const e=this.cellPolygon(t);e&&(e.index=t,yield e)}}cellPolygon(e){const t=new MA;return this.renderCell(e,t),t.value()}_renderSegment(e,t,n,i,r){let o;const a=this._regioncode(e,t),s=this._regioncode(n,i);0===a&&0===s?(r.moveTo(e,t),r.lineTo(n,i)):(o=this._clipSegment(e,t,n,i,a,s))&&(r.moveTo(o[0],o[1]),r.lineTo(o[2],o[3]))}contains(e,t,n){return(t=+t)==t&&(n=+n)==n&&this.delaunay._step(e,t,n)===e}*neighbors(e){const t=this._clip(e);if(t)for(const n of this.delaunay.neighbors(e)){const e=this._clip(n);if(e)e:for(let i=0,r=t.length;i<r;i+=2)for(let o=0,a=e.length;o<a;o+=2)if(t[i]===e[o]&&t[i+1]===e[o+1]&&t[(i+2)%r]===e[(o+a-2)%a]&&t[(i+3)%r]===e[(o+a-1)%a]){yield n;break e}}}_cell(e){const{circumcenters:t,delaunay:{inedges:n,halfedges:i,triangles:r}}=this,o=n[e];if(-1===o)return null;const a=[];let s=o;do{const n=Math.floor(s/3);if(a.push(t[2*n],t[2*n+1]),s=s%3==2?s-2:s+1,r[s]!==e)break;s=i[s]}while(s!==o&&-1!==s);return a}_clip(e){if(0===e&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const t=this._cell(e);if(null===t)return null;const{vectors:n}=this,i=4*e;return this._simplify(n[i]||n[i+1]?this._clipInfinite(e,t,n[i],n[i+1],n[i+2],n[i+3]):this._clipFinite(e,t))}_clipFinite(e,t){const n=t.length;let i,r,o,a,s=null,l=t[n-2],u=t[n-1],c=this._regioncode(l,u),f=0;for(let d=0;d<n;d+=2)if(i=l,r=u,l=t[d],u=t[d+1],o=c,c=this._regioncode(l,u),0===o&&0===c)a=f,f=0,s?s.push(l,u):s=[l,u];else{let t,n,d,h,p;if(0===o){if(null===(t=this._clipSegment(i,r,l,u,o,c)))continue;[n,d,h,p]=t}else{if(null===(t=this._clipSegment(l,u,i,r,c,o)))continue;[h,p,n,d]=t,a=f,f=this._edgecode(n,d),a&&f&&this._edge(e,a,f,s,s.length),s?s.push(n,d):s=[n,d]}a=f,f=this._edgecode(h,p),a&&f&&this._edge(e,a,f,s,s.length),s?s.push(h,p):s=[h,p]}if(s)a=f,f=this._edgecode(s[0],s[1]),a&&f&&this._edge(e,a,f,s,s.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return s}_clipSegment(e,t,n,i,r,o){const a=r<o;for(a&&([e,t,n,i,r,o]=[n,i,e,t,o,r]);;){if(0===r&&0===o)return a?[n,i,e,t]:[e,t,n,i];if(r&o)return null;let s,l,u=r||o;8&u?(s=e+(n-e)*(this.ymax-t)/(i-t),l=this.ymax):4&u?(s=e+(n-e)*(this.ymin-t)/(i-t),l=this.ymin):2&u?(l=t+(i-t)*(this.xmax-e)/(n-e),s=this.xmax):(l=t+(i-t)*(this.xmin-e)/(n-e),s=this.xmin),r?(e=s,t=l,r=this._regioncode(e,t)):(n=s,i=l,o=this._regioncode(n,i))}}_clipInfinite(e,t,n,i,r,o){let a,s=Array.from(t);if((a=this._project(s[0],s[1],n,i))&&s.unshift(a[0],a[1]),(a=this._project(s[s.length-2],s[s.length-1],r,o))&&s.push(a[0],a[1]),s=this._clipFinite(e,s))for(let l,u=0,c=s.length,f=this._edgecode(s[c-2],s[c-1]);u<c;u+=2)l=f,f=this._edgecode(s[u],s[u+1]),l&&f&&(u=this._edge(e,l,f,s,u),c=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,t,n,i,r){for(;t!==n;){let n,o;switch(t){case 5:t=4;continue;case 4:t=6,n=this.xmax,o=this.ymin;break;case 6:t=2;continue;case 2:t=10,n=this.xmax,o=this.ymax;break;case 10:t=8;continue;case 8:t=9,n=this.xmin,o=this.ymax;break;case 9:t=1;continue;case 1:t=5,n=this.xmin,o=this.ymin}i[r]===n&&i[r+1]===o||!this.contains(e,n,o)||(i.splice(r,0,n,o),r+=2)}return r}_project(e,t,n,i){let r,o,a,s=1/0;if(i<0){if(t<=this.ymin)return null;(r=(this.ymin-t)/i)<s&&(a=this.ymin,o=e+(s=r)*n)}else if(i>0){if(t>=this.ymax)return null;(r=(this.ymax-t)/i)<s&&(a=this.ymax,o=e+(s=r)*n)}if(n>0){if(e>=this.xmax)return null;(r=(this.xmax-e)/n)<s&&(o=this.xmax,a=t+(s=r)*i)}else if(n<0){if(e<=this.xmin)return null;(r=(this.xmin-e)/n)<s&&(o=this.xmin,a=t+(s=r)*i)}return[o,a]}_edgecode(e,t){return(e===this.xmin?1:e===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}_regioncode(e,t){return(e<this.xmin?1:e>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t<e.length;t+=2){const n=(t+2)%e.length,i=(t+4)%e.length;(e[t]===e[n]&&e[n]===e[i]||e[t+1]===e[n+1]&&e[n+1]===e[i+1])&&(e.splice(n,2),t-=2)}e.length||(e=null)}return e}};const OA=2*Math.PI,NA=Math.pow;function RA(e){return e[0]}function BA(e){return e[1]}function TA(e,t,n){return[e+Math.sin(e+t)*n,t+Math.cos(e-t)*n]}class PA{static from(e,t=RA,n=BA,i){return new PA("length"in e?function(e,t,n,i){const r=e.length,o=new Float64Array(2*r);for(let a=0;a<r;++a){const r=e[a];o[2*a]=t.call(i,r,a,e),o[2*a+1]=n.call(i,r,a,e)}return o}(e,t,n,i):Float64Array.from(function*(e,t,n,i){let r=0;for(const o of e)yield t.call(i,o,r,e),yield n.call(i,o,r,e),++r}(e,t,n,i)))}constructor(e){this._delaunator=new wA(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,t=this.points;if(e.hull&&e.hull.length>2&&function(e){const{triangles:t,coords:n}=e;for(let i=0;i<t.length;i+=3){const e=2*t[i],r=2*t[i+1],o=2*t[i+2];if((n[o]-n[e])*(n[r+1]-n[e+1])-(n[r]-n[e])*(n[o+1]-n[e+1])>1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:t.length/2},((e,t)=>t)).sort(((e,n)=>t[2*e]-t[2*n]||t[2*e+1]-t[2*n+1]));const e=this.collinear[0],n=this.collinear[this.collinear.length-1],i=[t[2*e],t[2*e+1],t[2*n],t[2*n+1]],r=1e-8*Math.hypot(i[3]-i[1],i[2]-i[0]);for(let o=0,a=t.length/2;o<a;++o){const e=TA(t[2*o],t[2*o+1],r);t[2*o]=e[0],t[2*o+1]=e[1]}this._delaunator=new wA(t)}else delete this.collinear;const n=this.halfedges=this._delaunator.halfedges,i=this.hull=this._delaunator.hull,r=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),a=this._hullIndex.fill(-1);for(let s=0,l=n.length;s<l;++s){const e=r[s%3==2?s-2:s+1];-1!==n[s]&&-1!==o[e]||(o[e]=s)}for(let s=0,l=i.length;s<l;++s)a[i[s]]=s;i.length<=2&&i.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],o[i[0]]=1,2===i.length&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new zA(this,e)}*neighbors(e){const{inedges:t,hull:n,_hullIndex:i,halfedges:r,triangles:o,collinear:a}=this;if(a){const t=a.indexOf(e);return t>0&&(yield a[t-1]),void(t<a.length-1&&(yield a[t+1]))}const s=t[e];if(-1===s)return;let l=s,u=-1;do{if(yield u=o[l],l=l%3==2?l-2:l+1,o[l]!==e)return;if(l=r[l],-1===l){const t=n[(i[e]+1)%n.length];return void(t!==u&&(yield t))}}while(l!==s)}find(e,t,n=0){if((e=+e)!=e||(t=+t)!=t)return-1;const i=n;let r;for(;(r=this._step(n,e,t))>=0&&r!==n&&r!==i;)n=r;return r}_step(e,t,n){const{inedges:i,hull:r,_hullIndex:o,halfedges:a,triangles:s,points:l}=this;if(-1===i[e]||!l.length)return(e+1)%(l.length>>1);let u=e,c=NA(t-l[2*e],2)+NA(n-l[2*e+1],2);const f=i[e];let d=f;do{let i=s[d];const f=NA(t-l[2*i],2)+NA(n-l[2*i+1],2);if(f<c&&(c=f,u=i),d=d%3==2?d-2:d+1,s[d]!==e)break;if(d=a[d],-1===d){if(d=r[(o[e]+1)%r.length],d!==i&&NA(t-l[2*d],2)+NA(n-l[2*d+1],2)<c)return d;break}}while(d!==f);return u}render(e){const t=null==e?e=new CA:void 0,{points:n,halfedges:i,triangles:r}=this;for(let o=0,a=i.length;o<a;++o){const t=i[o];if(t<o)continue;const a=2*r[o],s=2*r[t];e.moveTo(n[a],n[a+1]),e.lineTo(n[s],n[s+1])}return this.renderHull(e),t&&t.value()}renderPoints(e,t){void 0!==t||e&&"function"==typeof e.moveTo||(t=e,e=null),t=null==t?2:+t;const n=null==e?e=new CA:void 0,{points:i}=this;for(let r=0,o=i.length;r<o;r+=2){const n=i[r],o=i[r+1];e.moveTo(n+t,o),e.arc(n,o,t,0,OA)}return n&&n.value()}renderHull(e){const t=null==e?e=new CA:void 0,{hull:n,points:i}=this,r=2*n[0],o=n.length;e.moveTo(i[r],i[r+1]);for(let a=1;a<o;++a){const t=2*n[a];e.lineTo(i[t],i[t+1])}return e.closePath(),t&&t.value()}hullPolygon(){const e=new MA;return this.renderHull(e),e.value()}renderTriangle(e,t){const n=null==t?t=new CA:void 0,{points:i,triangles:r}=this,o=2*r[e*=3],a=2*r[e+1],s=2*r[e+2];return t.moveTo(i[o],i[o+1]),t.lineTo(i[a],i[a+1]),t.lineTo(i[s],i[s+1]),t.closePath(),n&&n.value()}*trianglePolygons(){const{triangles:e}=this;for(let t=0,n=e.length/3;t<n;++t)yield this.trianglePolygon(t)}trianglePolygon(e){const t=new MA;return this.renderTriangle(e,t),t.value()}}function jA(e){tl.call(this,null,e)}jA.Definition={type:"Voronoi",metadata:{modifies:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"size",type:"number",array:!0,length:2},{name:"extent",type:"array",array:!0,length:2,default:[[-1e5,-1e5],[1e5,1e5]],content:{type:"number",array:!0,length:2}},{name:"as",type:"string",default:"path"}]};const LA=[-1e5,-1e5,1e5,1e5];function qA(e){const t=e[0][0],n=e[0][1];let i=e.length-1;for(;e[i][0]===t&&e[i][1]===n;--i);return"M"+e.slice(0,i+1).join("L")+"Z"}_(jA,tl,{transform(e,t){const n=e.as||"path",i=t.source;if(!i||!i.length)return t;let r=e.size;r=r?[0,0,r[0],r[1]]:(r=e.extent)?[r[0][0],r[0][1],r[1][0],r[1][1]]:LA;const o=this.value=PA.from(i,e.x,e.y).voronoi(r);for(let s=0,l=i.length;s<l;++s){const e=o.cellPolygon(s);i[s][n]=e&&(2!==(a=e).length||a[0][0]!==a[1][0]||a[0][1]!==a[1][1])?qA(e):null}var a;return t.reflow(e.modified()).modifies(n)}});const UA=Object.freeze(Object.defineProperty({__proto__:null,voronoi:jA},Symbol.toStringTag,{value:"Module"}));var IA=Math.PI/180,WA=2048;function HA(){var e,t,n,i,r,o,a,s=[256,256],l=XA,u=[],c=Math.random,f={};function d(e,t,n){for(var i,r,o,a,u,f=t.x,d=t.y,h=Math.hypot(s[0],s[1]),p=l(s),m=c()<.5?1:-1,g=-m;(i=p(g+=m))&&(r=~~i[0],o=~~i[1],!(Math.min(Math.abs(r),Math.abs(o))>=h));)if(t.x=f+r,t.y=d+o,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>s[0]||t.y+t.y1>s[1]||n&&VA(t,e,s[0])||n&&(u=n,!((a=t).x+a.x1>u[0].x&&a.x+a.x0<u[1].x&&a.y+a.y1>u[0].y&&a.y+a.y0<u[1].y)))){for(var y,v=t.sprite,b=t.width>>5,x=s[0]>>5,w=t.x-(b<<4),_=127&w,k=32-_,$=t.y1-t.y0,D=(t.y+t.y0)*x+(w>>5),A=0;A<$;A++){y=0;for(var S=0;S<=b;S++)e[D+S]|=y<<k|(S<b?(y=v[A*b+S])>>>_:0);D+=x}return t.sprite=null,!0}return!1}return f.layout=function(){for(var l=function(e){e.width=e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);e.width=2048/t,e.height=WA/t;var n=e.getContext("2d");return n.fillStyle=n.strokeStyle="red",n.textAlign="center",{context:n,ratio:t}}(Ac()),f=function(e){var t=[],n=-1;for(;++n<e;)t[n]=0;return t}((s[0]>>5)*s[1]),h=null,p=u.length,m=-1,g=[],y=u.map((s=>({text:e(s),font:t(s),style:i(s),weight:r(s),rotate:o(s),size:~~(n(s)+1e-14),padding:a(s),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:s}))).sort(((e,t)=>t.size-e.size));++m<p;){var v=y[m];v.x=s[0]*(c()+.5)>>1,v.y=s[1]*(c()+.5)>>1,GA(l,v,y,m),v.hasText&&d(f,v,h)&&(g.push(v),h?YA(h,v):h=[{x:v.x+v.x0,y:v.y+v.y0},{x:v.x+v.x1,y:v.y+v.y1}],v.x-=s[0]>>1,v.y-=s[1]>>1)}return g},f.words=function(e){return arguments.length?(u=e,f):u},f.size=function(e){return arguments.length?(s=[+e[0],+e[1]],f):s},f.font=function(e){return arguments.length?(t=JA(e),f):t},f.fontStyle=function(e){return arguments.length?(i=JA(e),f):i},f.fontWeight=function(e){return arguments.length?(r=JA(e),f):r},f.rotate=function(e){return arguments.length?(o=JA(e),f):o},f.text=function(t){return arguments.length?(e=JA(t),f):e},f.spiral=function(e){return arguments.length?(l=QA[e]||e,f):l},f.fontSize=function(e){return arguments.length?(n=JA(e),f):n},f.padding=function(e){return arguments.length?(a=JA(e),f):a},f.random=function(e){return arguments.length?(c=e,f):c},f}function GA(e,t,n,i){if(!t.sprite){var r=e.context,o=e.ratio;r.clearRect(0,0,2048/o,WA/o);var a,s,l,u,c,f=0,d=0,h=0,p=n.length;for(--i;++i<p;){if(t=n[i],r.save(),r.font=t.style+" "+t.weight+" "+~~((t.size+1)/o)+"px "+t.font,a=r.measureText(t.text+"m").width*o,l=t.size<<1,t.rotate){var m=Math.sin(t.rotate*IA),g=Math.cos(t.rotate*IA),y=a*g,v=a*m,b=l*g,x=l*m;a=Math.max(Math.abs(y+x),Math.abs(y-x))+31>>5<<5,l=~~Math.max(Math.abs(v+b),Math.abs(v-b))}else a=a+31>>5<<5;if(l>h&&(h=l),f+a>=2048&&(f=0,d+=h,h=0),d+l>=WA)break;r.translate((f+(a>>1))/o,(d+(l>>1))/o),t.rotate&&r.rotate(t.rotate*IA),r.fillText(t.text,0,0),t.padding&&(r.lineWidth=2*t.padding,r.strokeText(t.text,0,0)),r.restore(),t.width=a,t.height=l,t.xoff=f,t.yoff=d,t.x1=a>>1,t.y1=l>>1,t.x0=-t.x1,t.y0=-t.y1,t.hasText=!0,f+=a}for(var w=r.getImageData(0,0,2048/o,WA/o).data,_=[];--i>=0;)if((t=n[i]).hasText){for(s=(a=t.width)>>5,l=t.y1-t.y0,u=0;u<l*s;u++)_[u]=0;if(null==(f=t.xoff))return;d=t.yoff;var k=0,$=-1;for(c=0;c<l;c++){for(u=0;u<a;u++){var D=s*c+(u>>5),A=w[2048*(d+c)+(f+u)<<2]?1<<31-u%32:0;_[D]|=A,k|=A}k?$=c:(t.y0++,l--,c--,d++)}t.y1=t.y0+$,t.sprite=_.slice(0,(t.y1-t.y0)*s)}}}function VA(e,t,n){n>>=5;for(var i,r=e.sprite,o=e.width>>5,a=e.x-(o<<4),s=127&a,l=32-s,u=e.y1-e.y0,c=(e.y+e.y0)*n+(a>>5),f=0;f<u;f++){i=0;for(var d=0;d<=o;d++)if((i<<l|(d<o?(i=r[f*o+d])>>>s:0))&t[c+d])return!0;c+=n}return!1}function YA(e,t){var n=e[0],i=e[1];t.x+t.x0<n.x&&(n.x=t.x+t.x0),t.y+t.y0<n.y&&(n.y=t.y+t.y0),t.x+t.x1>i.x&&(i.x=t.x+t.x1),t.y+t.y1>i.y&&(i.y=t.y+t.y1)}function XA(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function JA(e){return"function"==typeof e?e:function(){return e}}var QA={archimedean:XA,rectangular:function(e){var t=4*e[0]/e[1],n=0,i=0;return function(e){var r=e<0?-1:1;switch(Math.sqrt(1+4*r*e)-r&3){case 0:n+=t;break;case 1:i+=4;break;case 2:n-=t;break;default:i-=4}return[n,i]}}};const KA=["x","y","font","fontSize","fontStyle","fontWeight","angle"],ZA=["text","font","rotate","fontSize","fontStyle","fontWeight"];function eS(e){tl.call(this,HA(),e)}eS.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:KA}]},_(eS,tl,{transform(e,t){!e.size||e.size[0]&&e.size[1]||v("Wordcloud size dimensions must be non-zero.");const n=e.modified();if(!(n||t.changed(t.ADD_REM)||ZA.some((function(n){const i=e[n];return m(i)&&t.modified(i.fields)}))))return;const i=t.materialize(t.SOURCE).source,r=this.value,o=e.as||KA;let a,s=e.fontSize||14;if(m(s)?a=e.fontSizeRange:s=g(s),a){const e=s,t=Nf("sqrt")().domain(M(i,e)).range(a);s=n=>t(e(n))}i.forEach((e=>{e[o[0]]=NaN,e[o[1]]=NaN,e[o[3]]=0}));const l=r.words(i).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(s).random(cl).layout(),u=r.size(),c=u[0]>>1,f=u[1]>>1,d=l.length;for(let h,p,m=0;m<d;++m)h=l[m],p=h.datum,p[o[0]]=h.x+c,p[o[1]]=h.y+f,p[o[2]]=h.font,p[o[3]]=h.size,p[o[4]]=h.style,p[o[5]]=h.weight,p[o[6]]=h.rotate;return t.reflow(n).modifies(o)}});const tS=Object.freeze(Object.defineProperty({__proto__:null,wordcloud:eS},Symbol.toStringTag,{value:"Module"})),nS=e=>new Uint8Array(e),iS=e=>new Uint16Array(e),rS=e=>new Uint32Array(e);function oS(e,t,n){const i=(t<257?nS:t<65537?iS:rS)(e);return n&&i.set(n),i}function aS(e,t,n){const i=1<<t;return{one:i,zero:~i,range:n.slice(),bisect:e.bisect,index:e.index,size:e.size,onAdd(e,t){const n=this,r=n.bisect(n.range,e.value),o=e.index,a=r[0],s=r[1],l=o.length;let u;for(u=0;u<a;++u)t[o[u]]|=i;for(u=s;u<l;++u)t[o[u]]|=i;return n}}}function sS(){let e=rS(0),t=[],n=0;return{insert:function(i,r,o){if(!r.length)return[];const a=n,s=r.length,l=rS(s);let u,c,f,d=Array(s);for(f=0;f<s;++f)d[f]=i(r[f]),l[f]=f;if(d=function(e,t){return e.sort.call(t,((t,n)=>{const i=e[t],r=e[n];return i<r?-1:i>r?1:0})),function(e,t){return Array.from(t,(t=>e[t]))}(e,t)}(d,l),a)u=t,c=e,t=Array(a+s),e=rS(a+s),function(e,t,n,i,r,o,a,s,l){let u,c=0,f=0;for(u=0;c<i&&f<a;++u)t[c]<r[f]?(s[u]=t[c],l[u]=n[c++]):(s[u]=r[f],l[u]=o[f++]+e);for(;c<i;++c,++u)s[u]=t[c],l[u]=n[c];for(;f<a;++f,++u)s[u]=r[f],l[u]=o[f]+e}(o,u,c,a,d,l,s,t,e);else{if(o>0)for(f=0;f<s;++f)l[f]+=o;t=d,e=l}return n=a+s,{index:l,value:d}},remove:function(i,r){const o=n;let a,s,l;for(s=0;!r[e[s]]&&s<o;++s);for(l=s;s<o;++s)r[a=e[s]]||(e[l]=a,t[l]=t[s],++l);n=o-i},bisect:function(e,i){let r;return i?r=i.length:(i=t,r=n),[Wt(i,e[0],0,r),qt(i,e[1],0,r)]},reindex:function(t){for(let i=0,r=n;i<r;++i)e[i]=t[e[i]]},index:()=>e,size:()=>n}}function lS(e){tl.call(this,function(){let e=8,t=[],n=rS(0),i=oS(0,e),r=oS(0,e);return{data:()=>t,seen:()=>{return e=n,i=t.length,n=e.length>=i?e:((r=r||new e.constructor(i)).set(e),r);var e,i,r},add(e){for(let n,i=0,r=t.length,o=e.length;i<o;++i)n=e[i],n._index=r++,t.push(n)},remove(e,n){const o=t.length,a=Array(o-e),s=t;let l,u,c;for(u=0;!n[u]&&u<o;++u)a[u]=t[u],s[u]=u;for(c=u;u<o;++u)l=t[u],n[u]?s[u]=-1:(s[u]=c,i[c]=i[u],r[c]=r[u],a[c]=l,l._index=c++),i[u]=0;return t=a,s},size:()=>t.length,curr:()=>i,prev:()=>r,reset:e=>r[e]=i[e],all:()=>e<257?255:e<65537?65535:4294967295,set(e,t){i[e]|=t},clear(e,t){i[e]&=~t},resize(t,n){(t>i.length||n>e)&&(e=Math.max(n,e),i=oS(t,e,i),r=oS(t,e))}}}(),e),this._indices=null,this._dims=null}function uS(e){tl.call(this,null,e)}lS.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},_(lS,tl,{transform(e,t){return this._dims?e.modified("fields")||e.fields.some((e=>t.modified(e.fields)))?this.reinit(e,t):this.eval(e,t):this.init(e,t)},init(e,t){const n=e.fields,i=e.query,r=this._indices={},o=this._dims=[],a=i.length;let s,l,u=0;for(;u<a;++u)s=n[u].fname,l=r[s]||(r[s]=sS()),o.push(aS(l,u,i[u]));return this.eval(e,t)},reinit(e,t){const n=t.materialize().fork(),i=e.fields,r=e.query,o=this._indices,a=this._dims,s=this.value,l=s.curr(),u=s.prev(),c=s.all(),f=n.rem=n.add,d=n.mod,h=r.length,p={};let m,g,y,v,b,x,w,_,k;if(u.set(l),t.rem.length&&(b=this.remove(e,t,n)),t.add.length&&s.add(t.add),t.mod.length)for(x={},v=t.mod,w=0,_=v.length;w<_;++w)x[v[w]._index]=1;for(w=0;w<h;++w)k=i[w],(!a[w]||e.modified("fields",w)||t.modified(k.fields))&&(y=k.fname,(m=p[y])||(o[y]=g=sS(),p[y]=m=g.insert(k,t.source,0)),a[w]=aS(g,w,r[w]).onAdd(m,l));for(w=0,_=s.data().length;w<_;++w)b[w]||(u[w]!==l[w]?f.push(w):x[w]&&l[w]!==c&&d.push(w));return s.mask=(1<<h)-1,n},eval(e,t){const n=t.materialize().fork(),i=this._dims.length;let r=0;return t.rem.length&&(this.remove(e,t,n),r|=(1<<i)-1),e.modified("query")&&!e.modified("fields")&&(r|=this.update(e,t,n)),t.add.length&&(this.insert(e,t,n),r|=(1<<i)-1),t.mod.length&&(this.modify(t,n),r|=(1<<i)-1),this.value.mask=r,n},insert(e,t,n){const i=t.add,r=this.value,o=this._dims,a=this._indices,s=e.fields,l={},u=n.add,c=r.size()+i.length,f=o.length;let d,h,p,m=r.size();r.resize(c,f),r.add(i);const g=r.curr(),y=r.prev(),v=r.all();for(d=0;d<f;++d)h=s[d].fname,p=l[h]||(l[h]=a[h].insert(s[d],i,m)),o[d].onAdd(p,g);for(;m<c;++m)y[m]=v,g[m]!==v&&u.push(m)},modify(e,t){const n=t.mod,i=this.value,r=i.curr(),o=i.all(),a=e.mod;let s,l,u;for(s=0,l=a.length;s<l;++s)u=a[s]._index,r[u]!==o&&n.push(u)},remove(e,t,n){const i=this._indices,r=this.value,o=r.curr(),a=r.prev(),s=r.all(),l={},u=n.rem,c=t.rem;let f,d,h,p;for(f=0,d=c.length;f<d;++f)h=c[f]._index,l[h]=1,a[h]=p=o[h],o[h]=s,p!==s&&u.push(h);for(h in i)i[h].remove(d,l);return this.reindex(t,d,l),l},reindex(e,t,n){const i=this._indices,r=this.value;e.runAfter((()=>{const e=r.remove(t,n);for(const t in i)i[t].reindex(e)}))},update(e,t,n){const i=this._dims,r=e.query,o=t.stamp,a=i.length;let s,l,u=0;for(n.filters=0,l=0;l<a;++l)e.modified("query",l)&&(s=l,++u);if(1===u)u=i[s].one,this.incrementOne(i[s],r[s],n.add,n.rem);else for(l=0,u=0;l<a;++l)e.modified("query",l)&&(u|=i[l].one,this.incrementAll(i[l],r[l],o,n.add),n.rem=n.add);return u},incrementAll(e,t,n,i){const r=this.value,o=r.seen(),a=r.curr(),s=r.prev(),l=e.index(),u=e.bisect(e.range),c=e.bisect(t),f=c[0],d=c[1],h=u[0],p=u[1],m=e.one;let g,y,v;if(f<h)for(g=f,y=Math.min(h,d);g<y;++g)v=l[g],o[v]!==n&&(s[v]=a[v],o[v]=n,i.push(v)),a[v]^=m;else if(f>h)for(g=h,y=Math.min(f,p);g<y;++g)v=l[g],o[v]!==n&&(s[v]=a[v],o[v]=n,i.push(v)),a[v]^=m;if(d>p)for(g=Math.max(f,p),y=d;g<y;++g)v=l[g],o[v]!==n&&(s[v]=a[v],o[v]=n,i.push(v)),a[v]^=m;else if(d<p)for(g=Math.max(h,d),y=p;g<y;++g)v=l[g],o[v]!==n&&(s[v]=a[v],o[v]=n,i.push(v)),a[v]^=m;e.range=t.slice()},incrementOne(e,t,n,i){const r=this.value.curr(),o=e.index(),a=e.bisect(e.range),s=e.bisect(t),l=s[0],u=s[1],c=a[0],f=a[1],d=e.one;let h,p,m;if(l<c)for(h=l,p=Math.min(c,u);h<p;++h)m=o[h],r[m]^=d,n.push(m);else if(l>c)for(h=c,p=Math.min(l,f);h<p;++h)m=o[h],r[m]^=d,i.push(m);if(u>f)for(h=Math.max(l,f),p=u;h<p;++h)m=o[h],r[m]^=d,n.push(m);else if(u<f)for(h=Math.max(c,u),p=f;h<p;++h)m=o[h],r[m]^=d,i.push(m);e.range=t.slice()}}),uS.Definition={type:"ResolveFilter",metadata:{},params:[{name:"ignore",type:"number",required:!0,description:"A bit mask indicating which filters to ignore."},{name:"filter",type:"object",required:!0,description:"Per-tuple filter bitmaps from a CrossFilter transform."}]},_(uS,tl,{transform(e,t){const n=~(e.ignore||0),i=e.filter,r=i.mask;if(!(r&n))return t.StopPropagation;const o=t.fork(t.ALL),a=i.data(),s=i.curr(),l=i.prev(),u=e=>s[e]&n?null:a[e];return o.filter(o.MOD,u),r&r-1?(o.filter(o.ADD,(e=>{const t=s[e]&n;return!t&&t^l[e]&n?a[e]:null})),o.filter(o.REM,(e=>{const t=s[e]&n;return t&&!(0^l[e]&n)?a[e]:null}))):(o.filter(o.ADD,u),o.filter(o.REM,(e=>(s[e]&n)===r?a[e]:null))),o.filter(o.SOURCE,(e=>u(e._index)))}});const cS=Object.freeze(Object.defineProperty({__proto__:null,crossfilter:lS,resolvefilter:uS},Symbol.toStringTag,{value:"Module"})),fS="Literal",dS="Property",hS="ArrayExpression",pS="BinaryExpression",mS="CallExpression",gS="ConditionalExpression",yS="LogicalExpression",vS="MemberExpression",bS="ObjectExpression",xS="UnaryExpression";function wS(e){this.type=e}var _S,kS,$S,DS,AS;wS.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=function(e){switch(e.type){case hS:return e.elements;case pS:case yS:return[e.left,e.right];case mS:return[e.callee].concat(e.arguments);case gS:return[e.test,e.consequent,e.alternate];case vS:return[e.object,e.property];case bS:return e.properties;case dS:return[e.key,e.value];case xS:return[e.argument];default:return[]}}(this),n=0,i=t.length;n<i;++n)if(t[n].visit(e))return 1};(_S={})[1]="Boolean",_S[2]="<end>",_S[3]="Identifier",_S[4]="Keyword",_S[5]="Null",_S[6]="Numeric",_S[7]="Punctuator",_S[8]="String",_S[9]="RegularExpression";var SS="Identifier",ES="Unexpected token %0",FS="Invalid regular expression",CS="Invalid regular expression: missing /",MS="Octal literals are not allowed in strict mode.",zS="ILLEGAL",OS="Disabled.",NS=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),RS=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function BS(e,t){if(!e)throw new Error("ASSERT: "+t)}function TS(e){return e>=48&&e<=57}function PS(e){return"0123456789abcdefABCDEF".includes(e)}function jS(e){return"01234567".includes(e)}function LS(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function qS(e){return 10===e||13===e||8232===e||8233===e}function US(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&NS.test(String.fromCharCode(e))}function IS(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&RS.test(String.fromCharCode(e))}const WS={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function HS(){for(;$S<DS;){const e=kS.charCodeAt($S);if(!LS(e)&&!qS(e))break;++$S}}function GS(e){var t,n,i,r=0;for(n="u"===e?4:2,t=0;t<n;++t)$S<DS&&PS(kS[$S])?(i=kS[$S++],r=16*r+"0123456789abcdef".indexOf(i.toLowerCase())):lE({},ES,zS);return String.fromCharCode(r)}function VS(){var e,t,n,i;for(t=0,"}"===(e=kS[$S])&&lE({},ES,zS);$S<DS&&PS(e=kS[$S++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&lE({},ES,zS),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),i=56320+(t-65536&1023),String.fromCharCode(n,i))}function YS(){var e,t;for(e=kS.charCodeAt($S++),t=String.fromCharCode(e),92===e&&(117!==kS.charCodeAt($S)&&lE({},ES,zS),++$S,(e=GS("u"))&&"\\"!==e&&US(e.charCodeAt(0))||lE({},ES,zS),t=e);$S<DS&&IS(e=kS.charCodeAt($S));)++$S,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==kS.charCodeAt($S)&&lE({},ES,zS),++$S,(e=GS("u"))&&"\\"!==e&&IS(e.charCodeAt(0))||lE({},ES,zS),t+=e);return t}function XS(){var e,t;return e=$S,t=92===kS.charCodeAt($S)?YS():function(){var e,t;for(e=$S++;$S<DS;){if(92===(t=kS.charCodeAt($S)))return $S=e,YS();if(!IS(t))break;++$S}return kS.slice(e,$S)}(),{type:1===t.length?3:WS.hasOwnProperty(t)?4:"null"===t?5:"true"===t||"false"===t?1:3,value:t,start:e,end:$S}}function JS(){var e,t,n,i,r=$S,o=kS.charCodeAt($S),a=kS[$S];switch(o){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++$S,{type:7,value:String.fromCharCode(o),start:r,end:$S};default:if(61===(e=kS.charCodeAt($S+1)))switch(o){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return $S+=2,{type:7,value:String.fromCharCode(o)+String.fromCharCode(e),start:r,end:$S};case 33:case 61:return $S+=2,61===kS.charCodeAt($S)&&++$S,{type:7,value:kS.slice(r,$S),start:r,end:$S}}}return">>>="===(i=kS.substr($S,4))?{type:7,value:i,start:r,end:$S+=4}:">>>"===(n=i.substr(0,3))||"<<="===n||">>="===n?{type:7,value:n,start:r,end:$S+=3}:a===(t=n.substr(0,2))[1]&&"+-<>&|".includes(a)||"=>"===t?{type:7,value:t,start:r,end:$S+=2}:("//"===t&&lE({},ES,zS),"<>=!+-*%&|^/".includes(a)?{type:7,value:a,start:r,end:++$S}:void lE({},ES,zS))}function QS(){var e,t,n;if(BS(TS((n=kS[$S]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),t=$S,e="","."!==n){if(e=kS[$S++],n=kS[$S],"0"===e){if("x"===n||"X"===n)return++$S,function(e){let t="";for(;$S<DS&&PS(kS[$S]);)t+=kS[$S++];return 0===t.length&&lE({},ES,zS),US(kS.charCodeAt($S))&&lE({},ES,zS),{type:6,value:parseInt("0x"+t,16),start:e,end:$S}}(t);if(jS(n))return function(e){let t="0"+kS[$S++];for(;$S<DS&&jS(kS[$S]);)t+=kS[$S++];return(US(kS.charCodeAt($S))||TS(kS.charCodeAt($S)))&&lE({},ES,zS),{type:6,value:parseInt(t,8),octal:!0,start:e,end:$S}}(t);n&&TS(n.charCodeAt(0))&&lE({},ES,zS)}for(;TS(kS.charCodeAt($S));)e+=kS[$S++];n=kS[$S]}if("."===n){for(e+=kS[$S++];TS(kS.charCodeAt($S));)e+=kS[$S++];n=kS[$S]}if("e"===n||"E"===n)if(e+=kS[$S++],"+"!==(n=kS[$S])&&"-"!==n||(e+=kS[$S++]),TS(kS.charCodeAt($S)))for(;TS(kS.charCodeAt($S));)e+=kS[$S++];else lE({},ES,zS);return US(kS.charCodeAt($S))&&lE({},ES,zS),{type:6,value:parseFloat(e),start:t,end:$S}}function KS(){var e,t,n,i;return AS=null,HS(),e=$S,t=function(){var e,t,n,i;for(BS("/"===(e=kS[$S]),"Regular expression literal must start with a slash"),t=kS[$S++],n=!1,i=!1;$S<DS;)if(t+=e=kS[$S++],"\\"===e)qS((e=kS[$S++]).charCodeAt(0))&&lE({},CS),t+=e;else if(qS(e.charCodeAt(0)))lE({},CS);else if(n)"]"===e&&(n=!1);else{if("/"===e){i=!0;break}"["===e&&(n=!0)}return i||lE({},CS),{value:t.substr(1,t.length-2),literal:t}}(),n=function(){var e,t,n;for(t="",n="";$S<DS&&IS((e=kS[$S]).charCodeAt(0));)++$S,"\\"===e&&$S<DS?lE({},ES,zS):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&lE({},FS,n),{value:n,literal:t}}(),i=function(e,t){let n=e;t.includes("u")&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,((e,t)=>{if(parseInt(t,16)<=1114111)return"x";lE({},FS)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(i){lE({},FS)}try{return new RegExp(e,t)}catch(r){return null}}(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:$S}}function ZS(){if(HS(),$S>=DS)return{type:2,start:$S,end:$S};const e=kS.charCodeAt($S);return US(e)?XS():40===e||41===e||59===e?JS():39===e||34===e?function(){var e,t,n,i,r="",o=!1;for(BS("'"===(e=kS[$S])||'"'===e,"String literal must starts with a quote"),t=$S,++$S;$S<DS;){if((n=kS[$S++])===e){e="";break}if("\\"===n)if((n=kS[$S++])&&qS(n.charCodeAt(0)))"\r"===n&&"\n"===kS[$S]&&++$S;else switch(n){case"u":case"x":"{"===kS[$S]?(++$S,r+=VS()):r+=GS(n);break;case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;default:jS(n)?(0!==(i="01234567".indexOf(n))&&(o=!0),$S<DS&&jS(kS[$S])&&(o=!0,i=8*i+"01234567".indexOf(kS[$S++]),"0123".includes(n)&&$S<DS&&jS(kS[$S])&&(i=8*i+"01234567".indexOf(kS[$S++]))),r+=String.fromCharCode(i)):r+=n}else{if(qS(n.charCodeAt(0)))break;r+=n}}return""!==e&&lE({},ES,zS),{type:8,value:r,octal:o,start:t,end:$S}}():46===e?TS(kS.charCodeAt($S+1))?QS():JS():TS(e)?QS():JS()}function eE(){const e=AS;return $S=e.end,AS=ZS(),$S=e.end,e}function tE(){const e=$S;AS=ZS(),$S=e}function nE(e,t,n){const i=new wS("||"===e||"&&"===e?"LogicalExpression":"BinaryExpression");return i.operator=e,i.left=t,i.right=n,i}function iE(e,t){const n=new wS("CallExpression");return n.callee=e,n.arguments=t,n}function rE(e){const t=new wS(SS);return t.name=e,t}function oE(e){const t=new wS("Literal");return t.value=e.value,t.raw=kS.slice(e.start,e.end),e.regex&&("//"===t.raw&&(t.raw="/(?:)/"),t.regex=e.regex),t}function aE(e,t,n){const i=new wS("MemberExpression");return i.computed="["===e,i.object=t,i.property=n,i.computed||(n.member=!0),i}function sE(e,t,n){const i=new wS("Property");return i.key=t,i.value=n,i.kind=e,i}function lE(e,t){var n,i=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,((e,t)=>(BS(t<i.length,"Message reference must be in range"),i[t])));throw(n=new Error(r)).index=$S,n.description=r,n}function uE(e){2===e.type&&lE(e,"Unexpected end of input"),6===e.type&&lE(e,"Unexpected number"),8===e.type&&lE(e,"Unexpected string"),3===e.type&&lE(e,"Unexpected identifier"),4===e.type&&lE(e,"Unexpected reserved word"),lE(e,ES,e.value)}function cE(e){const t=eE();7===t.type&&t.value===e||uE(t)}function fE(e){return 7===AS.type&&AS.value===e}function dE(e){return 4===AS.type&&AS.value===e}function hE(){const e=[];for($S=AS.start,cE("[");!fE("]");)fE(",")?(eE(),e.push(null)):(e.push(DE()),fE("]")||cE(","));return eE(),function(e){const t=new wS("ArrayExpression");return t.elements=e,t}(e)}function pE(){$S=AS.start;const e=eE();return 8===e.type||6===e.type?(e.octal&&lE(e,MS),oE(e)):rE(e.value)}function mE(){var e,t,n;return $S=AS.start,3===(e=AS).type?(n=pE(),cE(":"),sE("init",n,DE())):2!==e.type&&7!==e.type?(t=pE(),cE(":"),sE("init",t,DE())):void uE(e)}function gE(){var e,t,n=[],i={},r=String;for($S=AS.start,cE("{");!fE("}");)t="$"+((e=mE()).key.type===SS?e.key.name:r(e.key.value)),Object.prototype.hasOwnProperty.call(i,t)?lE({},"Duplicate data property in object literal not allowed in strict mode"):i[t]=!0,n.push(e),fE("}")||cE(",");return cE("}"),function(e){const t=new wS("ObjectExpression");return t.properties=e,t}(n)}const yE={if:1};function vE(){var e,t,n;if(fE("("))return function(){cE("(");const e=AE();return cE(")"),e}();if(fE("["))return hE();if(fE("{"))return gE();if(e=AS.type,$S=AS.start,3===e||yE[AS.value])n=rE(eE().value);else if(8===e||6===e)AS.octal&&lE(AS,MS),n=oE(eE());else{if(4===e)throw new Error(OS);1===e?((t=eE()).value="true"===t.value,n=oE(t)):5===e?((t=eE()).value=null,n=oE(t)):fE("/")||fE("/=")?(n=oE(KS()),tE()):uE(eE())}return n}function bE(){const e=[];if(cE("("),!fE(")"))for(;$S<DS&&(e.push(DE()),!fE(")"));)cE(",");return cE(")"),e}function xE(){return cE("."),function(){$S=AS.start;const e=eE();return function(e){return 3===e.type||4===e.type||1===e.type||5===e.type}(e)||uE(e),rE(e.value)}()}function wE(){cE("[");const e=AE();return cE("]"),e}function _E(){const e=function(){var e;for(e=vE();;)if(fE("."))e=aE(".",e,xE());else if(fE("("))e=iE(e,bE());else{if(!fE("["))break;e=aE("[",e,wE())}return e}();if(7===AS.type&&(fE("++")||fE("--")))throw new Error(OS);return e}function kE(){var e,t;if(7!==AS.type&&4!==AS.type)t=_E();else{if(fE("++")||fE("--"))throw new Error(OS);if(fE("+")||fE("-")||fE("~")||fE("!"))e=eE(),t=kE(),t=function(e,t){const n=new wS("UnaryExpression");return n.operator=e,n.argument=t,n.prefix=!0,n}(e.value,t);else{if(dE("delete")||dE("void")||dE("typeof"))throw new Error(OS);t=_E()}}return t}function $E(e){let t=0;if(7!==e.type&&4!==e.type)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function DE(){var e,t;return e=function(){var e,t,n,i,r,o,a,s,l,u;if(e=AS,l=kE(),0===(r=$E(i=AS)))return l;for(i.prec=r,eE(),t=[e,AS],o=[l,i,a=kE()];(r=$E(AS))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,l=o.pop(),t.pop(),n=nE(s,l,a),o.push(n);(i=eE()).prec=r,o.push(i),t.push(AS),n=kE(),o.push(n)}for(n=o[u=o.length-1],t.pop();u>1;)t.pop(),n=nE(o[u-1].value,o[u-2],n),u-=2;return n}(),fE("?")&&(eE(),t=DE(),cE(":"),e=function(e,t,n){const i=new wS("ConditionalExpression");return i.test=e,i.consequent=t,i.alternate=n,i}(e,t,DE())),e}function AE(){const e=DE();if(fE(","))throw new Error(OS);return e}function SE(e){$S=0,DS=(kS=e).length,AS=null,tE();const t=AE();if(2!==AS.type)throw new Error("Unexpect token after expression.");return t}var EE={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function FE(e){function t(t,n,i){return r=>function(t,n,i,r){let o=e(n[0]);return i&&(o=i+"("+o+")",0===i.lastIndexOf("new ",0)&&(o="("+o+")")),o+"."+t+(r<0?"":0===r?"()":"("+n.slice(1).map(e).join(",")+")")}(t,r,n,i)}const n="new Date",i="String",r="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(t){t.length<3&&v("Missing arguments to clamp function."),t.length>3&&v("Too many arguments to clamp function.");const n=t.map(e);return"Math.max("+n[1]+", Math.min("+n[2]+","+n[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:n,date:t("getDate",n,0),day:t("getDay",n,0),year:t("getFullYear",n,0),month:t("getMonth",n,0),hours:t("getHours",n,0),minutes:t("getMinutes",n,0),seconds:t("getSeconds",n,0),milliseconds:t("getMilliseconds",n,0),time:t("getTime",n,0),timezoneoffset:t("getTimezoneOffset",n,0),utcdate:t("getUTCDate",n,0),utcday:t("getUTCDay",n,0),utcyear:t("getUTCFullYear",n,0),utcmonth:t("getUTCMonth",n,0),utchours:t("getUTCHours",n,0),utcminutes:t("getUTCMinutes",n,0),utcseconds:t("getUTCSeconds",n,0),utcmilliseconds:t("getUTCMilliseconds",n,0),length:t("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:t("toUpperCase",i,0),lower:t("toLowerCase",i,0),substring:t("substring",i),split:t("split",i),trim:t("trim",i,0),regexp:r,test:t("test",r),if:function(t){t.length<3&&v("Missing arguments to if function."),t.length>3&&v("Too many arguments to if function.");const n=t.map(e);return"("+n[0]+"?"+n[1]+":"+n[2]+")"}}}function CE(e){const n=(e=e||{}).allowed?se(e.allowed):{},r=e.forbidden?se(e.forbidden):{},o=e.constants||EE,a=(e.functions||FE)(h),s=e.globalvar,l=e.fieldvar,u=m(s)?s:e=>`${s}["${e}"]`;let c={},f={},d=0;function h(e){if(i(e))return e;const t=p[e.type];return null==t&&v("Unsupported type: "+e.type),t(e)}const p={Literal:e=>e.raw,Identifier:e=>{const i=e.name;return d>0?i:t(r,i)?v("Illegal identifier: "+i):t(o,i)?o[i]:t(n,i)?i:(c[i]=1,u(i))},MemberExpression:e=>{const t=!e.computed,n=h(e.object);t&&(d+=1);const i=h(e.property);return n===l&&(f[function(e){const t=e&&e.length-1;return t&&('"'===e[0]&&'"'===e[t]||"'"===e[0]&&"'"===e[t])?e.slice(1,-1):e}(i)]=1),t&&(d-=1),n+(t?"."+i:"["+i+"]")},CallExpression:e=>{"Identifier"!==e.callee.type&&v("Illegal callee type: "+e.callee.type);const n=e.callee.name,i=e.arguments,r=t(a,n)&&a[n];return r||v("Unrecognized function: "+n),m(r)?r(i):r+"("+i.map(h).join(",")+")"},ArrayExpression:e=>"["+e.elements.map(h).join(",")+"]",BinaryExpression:e=>"("+h(e.left)+" "+e.operator+" "+h(e.right)+")",UnaryExpression:e=>"("+e.operator+h(e.argument)+")",ConditionalExpression:e=>"("+h(e.test)+"?"+h(e.consequent)+":"+h(e.alternate)+")",LogicalExpression:e=>"("+h(e.left)+e.operator+h(e.right)+")",ObjectExpression:e=>"{"+e.properties.map(h).join(",")+"}",Property:e=>{d+=1;const t=h(e.key);return d-=1,t+":"+h(e.value)}};function g(e){const t={code:h(e),globals:Object.keys(c),fields:Object.keys(f)};return c={},f={},t}return g.functions=a,g.constants=o,g}const ME=Symbol("vega_selection_getter");function zE(e){return e.getter&&e.getter[ME]||(e.getter=q(e.field),e.getter[ME]=!0),e.getter}const OE="intersect",NE="union",RE="or",BE="and",TE="_vgsid_",PE=q(TE),jE="index:unit";function LE(e,t){for(var n,i,r=t.fields,o=t.values,a=r.length,s=0;s<a;++s)if(n=zE(i=r[s])(e),ge(n)&&(n=C(n)),ge(o[s])&&(o[s]=C(o[s])),u(o[s])&&ge(o[s][0])&&(o[s]=o[s].map(C)),"E"===i.type){if(u(o[s])?!o[s].includes(n):n!==o[s])return!1}else if("R"===i.type){if(!ye(n,o[s]))return!1}else if("R-RE"===i.type){if(!ye(n,o[s],!0,!1))return!1}else if("R-E"===i.type){if(!ye(n,o[s],!1,!1))return!1}else if("R-LE"===i.type){if(!ye(n,o[s],!1,!0))return!1}else if("E-LT"===i.type){if(n>=o[s])return!1}else if("E-LTE"===i.type){if(n>o[s])return!1}else if("E-GT"===i.type){if(n<=o[s])return!1}else if("E-GTE"===i.type){if(n<o[s])return!1}else if("E-VALID"===i.type){if(null===n||isNaN(n))return!1}else if("E-ONE"===i.type&&-1===o[s].indexOf(n))return!1;return!0}const qE=L(PE),UE=qE.left,IE=qE.right;var WE={[`${TE}_union`]:function(...e){const t=new Vn;for(const n of e)for(const e of n)t.add(e);return t},[`${TE}_intersect`]:function(e,...t){e=new Vn(e),t=t.map(si);e:for(const n of e)for(const i of t)if(!i.has(n)){e.delete(n);continue e}return e},E_union:function(e,t){if(!e.length)return t;for(var n=0,i=t.length;n<i;++n)e.includes(t[n])||e.push(t[n]);return e},E_intersect:function(e,t){return e.length?e.filter((e=>t.includes(e))):t},R_union:function(e,t){var n=C(t[0]),i=C(t[1]);return n>i&&(n=t[1],i=t[0]),e.length?(e[0]>n&&(e[0]=n),e[1]<i&&(e[1]=i),e):[n,i]},R_intersect:function(e,t){var n=C(t[0]),i=C(t[1]);return n>i&&(n=t[1],i=t[0]),e.length?i<e[0]||e[1]<n?[]:(e[0]<n&&(e[0]=n),e[1]>i&&(e[1]=i),e):[n,i]}};function HE(e,n,i,r){n[0].type!==fS&&v("First argument to selection functions must be a string literal.");const o=n[0].value,a="unit",s="@"+a,l=":"+o;(n.length>=2&&T(n).value)!==OE||t(r,s)||(r[s]=i.getData(o).indataRef(i,a)),t(r,l)||(r[l]=i.getData(o).tuplesRef())}function GE(e){const t=this.context.data[e];return t?t.values.value:[]}const VE=e=>function(t,n){const i=this.context.dataflow.locale();return null===t?"null":i[e](n)(t)},YE=VE("format"),XE=VE("timeFormat"),JE=VE("utcFormat"),QE=VE("timeParse"),KE=VE("utcParse"),ZE=new Date(2e3,0,1);function eF(e,t,n){return Number.isInteger(e)&&Number.isInteger(t)?(ZE.setYear(2e3),ZE.setMonth(e),ZE.setDate(t),XE.call(this,ZE,n)):""}function tF(e,n,i,r){n[0].type!==fS&&v("First argument to data functions must be a string literal.");const o=n[0].value,a=":"+o;if(!t(a,r))try{r[a]=i.getData(o).tuplesRef()}catch(s){}}function nF(e,t,n,i){if(t[0].type===fS)iF(n,i,t[0].value);else for(e in n.scales)iF(n,i,e)}function iF(e,n,i){const r="%"+i;if(!t(n,r))try{n[r]=e.scaleRef(i)}catch(o){}}function rF(e,t){if(i(e)){const i=t.scales[e];return i&&((n=i.value)&&!0===n[zf])?i.value:void 0}var n}function oF(e,t,n){t.__bandwidth=e=>e&&e.bandwidth?e.bandwidth():0,n._bandwidth=nF,n._range=nF,n._scale=nF;const i=t=>"_["+(t.type===fS?o("%"+t.value):o("%")+"+"+e(t))+"]";return{_bandwidth:e=>`this.__bandwidth(${i(e[0])})`,_range:e=>`${i(e[0])}.range()`,_scale:t=>`${i(t[0])}(${e(t[1])})`}}function aF(e,t){return function(n,i,r){if(n){const t=rF(n,(r||this).context);return t&&t.path[e](i)}return t(i)}}const sF=aF("area",(function(e){return Gb=new Kn,Eb(e,Vb),2*Gb})),lF=aF("bounds",(function(e){var t,n,i,r,o,a,s;if(Tb=Bb=-(Nb=Rb=1/0),Ib=[],Eb(e,wx),n=Ib.length){for(Ib.sort(Cx),t=1,o=[i=Ib[0]];t<n;++t)Mx(i,(r=Ib[t])[0])||Mx(i,r[1])?(Fx(i[0],r[1])>Fx(i[0],i[1])&&(i[1]=r[1]),Fx(r[0],i[1])>Fx(i[0],i[1])&&(i[0]=r[0])):o.push(i=r);for(a=-1/0,t=0,i=o[n=o.length-1];t<=n;i=r,++t)r=o[t],(s=Fx(i[1],r[0]))>a&&(a=s,Nb=r[0],Bb=i[1])}return Ib=Wb=null,Nb===1/0||Rb===1/0?[[NaN,NaN],[NaN,NaN]]:[[Nb,Rb],[Bb,Tb]]})),uF=aF("centroid",(function(e){ox=ax=sx=lx=ux=cx=fx=dx=0,hx=new Kn,px=new Kn,mx=new Kn,Eb(e,zx);var t=+hx,n=+px,i=+mx,r=hb(t,n,i);return r<eb&&(t=cx,n=fx,i=dx,ax<Zv&&(t=sx,n=lx,i=ux),(r=hb(t,n,i))<eb)?[NaN,NaN]:[ub(n,t)*ob,wb(i/r)*ob]}));function cF(e,t,n){try{e[t].apply(e,["EXPRESSION"].concat([].slice.call(n)))}catch(i){e.warn(i)}return n[n.length-1]}function fF(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function dF(e){const t=Un(e);return.2126*fF(t.r)+.7152*fF(t.g)+.0722*fF(t.b)}function hF(e,t){return e===t||e!=e&&t!=t||(u(e)?!(!u(t)||e.length!==t.length)&&function(e,t){for(let n=0,i=e.length;n<i;++n)if(!hF(e[n],t[n]))return!1;return!0}(e,t):!(!a(e)||!a(t))&&pF(e,t))}function pF(e,t){for(const n in e)if(!hF(e[n],t[n]))return!1;return!0}function mF(e){return t=>pF(e,t)}const gF={};function yF(e){return u(e)||ArrayBuffer.isView(e)?e:null}function vF(e){return yF(e)||(i(e)?e:null)}const bF=e=>e.data;function xF(e,t){const n=GE.call(t,e);return n.root&&n.root.lookup||{}}const wF=()=>"undefined"!=typeof window&&window||null;function _F(e,t,n){if(!e)return[];const[i,r]=e,o=(new xh).set(i[0],i[1],r[0],r[1]);return iy(n||this.context.dataflow.scenegraph().root,o,function(e){let t=null;if(e){const n=c(e.marktype),i=c(e.markname);t=e=>(!n.length||n.some((t=>e.marktype===t)))&&(!i.length||i.some((t=>e.name===t)))}return t}(t))}const kF={random:()=>cl(),cumulativeNormal:vl,cumulativeLogNormal:$l,cumulativeUniform:Cl,densityNormal:yl,densityLogNormal:kl,densityUniform:Fl,quantileNormal:bl,quantileLogNormal:Dl,quantileUniform:Ml,sampleNormal:gl,sampleLogNormal:_l,sampleUniform:El,isArray:u,isBoolean:l,isDate:ge,isDefined:e=>void 0!==e,isNumber:n,isObject:a,isRegExp:Le,isString:i,isTuple:ws,isValid:e=>null!=e&&e==e,toBoolean:je,toDate:e=>qe(e),toNumber:C,toString:Pe,indexof:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return vF(e).indexOf(...n)},join:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return yF(e).join(...n)},lastindexof:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return vF(e).lastIndexOf(...n)},replace:function(e,t,n){return m(n)&&v("Function argument passed to replace."),String(e).replace(t,n)},reverse:function(e){return yF(e).slice().reverse()},sort:function(e){return yF(e).slice().sort(z)},slice:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return vF(e).slice(...n)},flush:Te,lerp:Be,merge:function(){const e=[].slice.call(arguments);return e.unshift({}),D(...e)},pad:Re,peek:T,pluck:function(e,t){const n=gF[t]||(gF[t]=q(t));return u(e)?e.map(n):n(e)},span:I,inrange:ye,truncate:Ne,rgb:Un,lab:bt,hcl:St,hsl:en,luminance:dF,contrast:function(e,t){const n=dF(e),i=dF(t);return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)},sequence:Ht,format:YE,utcFormat:JE,utcParse:KE,utcOffset:Oe,utcSequence:ze,timeFormat:XE,timeParse:QE,timeOffset:Me,timeSequence:Ce,timeUnitSpecifier:Fe,monthFormat:function(e){return eF.call(this,e,1,"%B")},monthAbbrevFormat:function(e){return eF.call(this,e,1,"%b")},dayFormat:function(e){return eF.call(this,0,2+e,"%A")},dayAbbrevFormat:function(e){return eF.call(this,0,2+e,"%a")},quarter:Ee,utcquarter:Se,week:Ae,utcweek:De,dayofyear:$e,utcdayofyear:ke,warn:function(){return cF(this.context.dataflow,"warn",arguments)},info:function(){return cF(this.context.dataflow,"info",arguments)},debug:function(){return cF(this.context.dataflow,"debug",arguments)},extent:e=>M(e),inScope:function(e){const t=this.context.group;let n=!1;if(t)for(;e;){if(e===t){n=!0;break}e=e.mark.group}return n},intersect:_F,clampRange:_e,pinchDistance:function(e){const t=e.touches,n=t[0].clientX-t[1].clientX,i=t[0].clientY-t[1].clientY;return Math.hypot(n,i)},pinchAngle:function(e){const t=e.touches;return Math.atan2(t[0].clientY-t[1].clientY,t[0].clientX-t[1].clientX)},screen:function(){const e=wF();return e?e.screen:{}},containerSize:function(){const e=this.context.dataflow,t=e.container&&e.container();return t?[t.clientWidth,t.clientHeight]:[void 0,void 0]},windowSize:function(){const e=wF();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]},bandspace:function(e,t,n){return of(e||0,t||0,n||0)},setdata:function(e,t){const n=this.context.dataflow,i=this.context.data[e].input;return n.pulse(i,n.changeset().remove(x).insert(t)),1},pathShape:function(e){let t=null;return function(n){return n?Id(n,t=t||zd(e)):e}},panLinear:we,panLog:xe,panPow:be,panSymlog:ve,zoomLinear:pe,zoomLog:fe,zoomPow:de,zoomSymlog:he,encode:function(e,t,n){if(e){const n=this.context.dataflow,i=e.mark.source;n.pulse(i,n.changeset().encode(e,t))}return void 0!==n?n:e},modify:function(e,t,n,i,r,o){const a=this.context.dataflow,s=this.context.data[e],l=s.input,c=a.stamp();let f,d,h=s.changes;if(!1===a._trigger||!(l.value.length||t||i))return 0;if((!h||h.stamp<c)&&(s.changes=h=a.changeset(),h.stamp=c,a.runAfter((()=>{s.modified=!0,a.pulse(l,h).run()}),!0,1)),n&&(f=!0===n?x:u(n)||ws(n)?n:mF(n),h.remove(f)),t&&h.insert(t),i&&(f=mF(i),l.value.some(f)?h.remove(f):h.insert(i)),r)for(d in o)h.modify(r,d,o[d]);return 1},lassoAppend:function(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5;const r=(e=c(e))[e.length-1];return void 0===r||Math.hypot(r[0]-t,r[1]-n)>i?[...e,[t,n]]:e},lassoPath:function(e){return c(e).reduce(((t,n,i)=>{let[r,o]=n;return t+(0==i?`M ${r},${o} `:i===e.length-1?" Z":`L ${r},${o} `)}),"")},intersectLasso:function(e,t,n){const{x:i,y:r,mark:o}=n,a=(new xh).set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[s,l]of t)s<a.x1&&(a.x1=s),s>a.x2&&(a.x2=s),l<a.y1&&(a.y1=l),l>a.y2&&(a.y2=l);return a.translate(i,r),_F([[a.x1,a.y1],[a.x2,a.y2]],e,o).filter((e=>function(e,t,n){let i=0;for(let r=0,o=n.length-1;r<n.length;o=r++){const[a,s]=n[o],[l,u]=n[r];u>t!=s>t&&e<(a-l)*(t-u)/(s-u)+l&&i++}return 1&i}(e.x,e.y,t)))}},$F=["view","item","group","xy","x","y"],DF="this.",AF={},SF={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:e=>`_[${o("$"+e)}]`,functions:function(e){const t=FE(e);$F.forEach((e=>t[e]="event.vega."+e));for(const n in kF)t[n]=DF+n;return D(t,oF(e,kF,AF)),t},constants:EE,visitors:AF},EF=CE(SF);function FF(e,t,n){return 1===arguments.length?kF[e]:(kF[e]=t,n&&(AF[e]=n),EF&&(EF.functions[e]=DF+e),this)}function CF(e,n){const r={};let a;try{a=SE(e=i(e)?e:o(e)+"")}catch(l){v("Expression parse error: "+e)}a.visit((e=>{if(e.type!==mS)return;const t=e.callee.name,i=SF.visitors[t];i&&i(t,e.arguments,n,r)}));const s=EF(a);return s.globals.forEach((e=>{const i="$"+e;!t(r,i)&&n.getSignal(e)&&(r[i]=n.signalRef(e))})),{$expr:D({code:s.code},n.options.ast?{ast:a}:null),$fields:s.fields,$params:r}}FF("bandwidth",(function(e,t){const n=rF(e,(t||this).context);return n&&n.bandwidth?n.bandwidth():0}),nF),FF("copy",(function(e,t){const n=rF(e,(t||this).context);return n?n.copy():void 0}),nF),FF("domain",(function(e,t){const n=rF(e,(t||this).context);return n?n.domain():[]}),nF),FF("range",(function(e,t){const n=rF(e,(t||this).context);return n&&n.range?n.range():[]}),nF),FF("invert",(function(e,t,n){const i=rF(e,(n||this).context);return i?u(t)?(i.invertRange||i.invert)(t):(i.invert||i.invertExtent)(t):void 0}),nF),FF("scale",(function(e,t,n){const i=rF(e,(n||this).context);return i?i(t):void 0}),nF),FF("gradient",(function(e,t,n,i,r){let o="string"==typeof e?rF(e,(r||this).context):e;const a=$d(t,n);let s=o.domain(),l=s[0],u=T(s),c=y;return u-l?c=Vf(o,l,u):o=(o.interpolator?Nf("sequential")().interpolator(o.interpolator()):Nf("linear")().interpolate(o.interpolate()).range(o.range())).domain([l=0,u=1]),o.ticks&&(s=o.ticks(+i||15),l!==s[0]&&s.unshift(l),u!==T(s)&&s.push(u)),s.forEach((e=>a.stop(c(e),o(e)))),a}),nF),FF("geoArea",sF,nF),FF("geoBounds",lF,nF),FF("geoCentroid",uF,nF),FF("geoShape",(function(e,t,n){const i=rF(e,(n||this).context);return function(e){return i?i.path.context(e)(t):""}}),nF),FF("geoScale",(function(e,t){const n=rF(e,(t||this).context);return n&&n.scale()}),nF),FF("indata",(function(e,t,n){const i=this.context.data[e]["index:"+t],r=i?i.value.get(n):void 0;return r?r.count:r}),(function(e,n,i,r){n[0].type!==fS&&v("First argument to indata must be a string literal."),n[1].type!==fS&&v("Second argument to indata must be a string literal.");const o=n[0].value,a=n[1].value,s="@"+a;t(s,r)||(r[s]=i.getData(o).indataRef(i,a))})),FF("data",GE,tF),FF("treePath",(function(e,t,n){const i=xF(e,this),r=i[t],o=i[n];return r&&o?r.path(o).map(bF):void 0}),tF),FF("treeAncestors",(function(e,t){const n=xF(e,this)[t];return n?n.ancestors().map(bF):void 0}),tF),FF("vlSelectionTest",(function(e,t,n){for(var i,r,o,a,s,l=this.context.data[e],u=l?l.values.value:[],c=l?l[jE]&&l[jE].value:void 0,f=n===OE,d=u.length,h=0;h<d;++h)if(i=u[h],c&&f){if(-1===(o=(r=r||{})[a=i.unit]||0))continue;if(s=LE(t,i),r[a]=s?-1:++o,s&&1===c.size)return!0;if(!s&&o===c.get(a).count)return!1}else if(f^(s=LE(t,i)))return s;return d&&f}),HE),FF("vlSelectionIdTest",(function(e,t,n){const i=this.context.data[e],r=i?i.values.value:[],o=i?i[jE]&&i[jE].value:void 0,a=n===OE,s=PE(t),l=UE(r,s);if(l===r.length)return!1;if(PE(r[l])!==s)return!1;if(o&&a){if(1===o.size)return!0;if(IE(r,s)-l<o.size)return!1}return!0}),HE),FF("vlSelectionResolve",(function(e,t,n,i){for(var r,o,a,s,l,u,f,d,h,p,m,g,y=this.context.data[e],v=y?y.values.value:[],b={},x={},w={},_=v.length,k=0;k<_;++k)if(s=(r=v[k]).unit,o=r.fields,a=r.values,o&&a){for(m=0,g=o.length;m<g;++m)l=o[m],d=(f=b[l.field]||(b[l.field]={}))[s]||(f[s]=[]),w[l.field]=h=l.type.charAt(0),p=WE[`${h}_union`],f[s]=p(d,c(a[m]));n&&(d=x[s]||(x[s]=[])).push(c(a).reduce(((e,t,n)=>(e[o[n].field]=t,e)),{}))}else l=TE,u=PE(r),(d=(f=b[l]||(b[l]={}))[s]||(f[s]=[])).push(u),n&&(d=x[s]||(x[s]=[])).push({[TE]:u});if(t=t||NE,b[TE]?b[TE]=WE[`${TE}_${t}`](...Object.values(b[TE])):Object.keys(b).forEach((e=>{b[e]=Object.keys(b[e]).map((t=>b[e][t])).reduce(((n,i)=>void 0===n?i:WE[`${w[e]}_${t}`](n,i)))})),v=Object.keys(x),n&&v.length){b[i?"vlPoint":"vlMulti"]=t===NE?{[RE]:v.reduce(((e,t)=>(e.push(...x[t]),e)),[])}:{[BE]:v.map((e=>({[RE]:x[e]})))}}return b}),HE),FF("vlSelectionTuples",(function(e,t){return e.map((e=>D(t.fields?{values:t.fields.map((t=>zE(t)(e.datum)))}:{[TE]:PE(e.datum)},t)))}));const MF=se(["rule"]),zF=se(["group","image","rect"]);function OF(e){return(e+"").toLowerCase()}function NF(e,t,n){n.endsWith(";")||(n="return("+n+");");const i=Function(...t.concat(n));return e&&e.functions?i.bind(e.functions):i}var RF={operator:(e,t)=>NF(e,["_"],t.code),parameter:(e,t)=>NF(e,["datum","_"],t.code),event:(e,t)=>NF(e,["event"],t.code),handler:(e,t)=>NF(e,["_","event"],`var datum=event.item&&event.item.datum;return ${t.code};`),encode:(e,t)=>{const{marktype:n,channels:i}=t;let r="var o=item,datum=o.datum,m=0,$;";for(const a in i){const e="o["+o(a)+"]";r+=`$=${i[a].code};if(${e}!==$)${e}=$,m=1;`}return r+=function(e,t){let n="";return MF[t]||(e.x2&&(e.x?(zF[t]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),e.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),e.y2&&(e.y?(zF[t]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),e.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}(i,n),r+="return m;",NF(e,["item","_"],r)},codegen:{get(e){const t=`[${e.map(o).join("][")}]`,n=Function("_",`return _${t};`);return n.path=t,n},comparator(e,t){let n;const i=Function("a","b","var u, v; return "+e.map(((e,i)=>{const r=t[i];let o,a;return e.path?(o=`a${e.path}`,a=`b${e.path}`):((n=n||{})["f"+i]=e,o=`this.f${i}(a)`,a=`this.f${i}(b)`),function(e,t,n,i){return`((u = ${e}) < (v = ${t}) || u == null) && v != null ? ${n}\n : (u > v || v == null) && u != null ? ${i}\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}\n : v !== v && u === u ? ${i} : `}(o,a,-r,r)})).join("")+"0;");return n?i.bind(n):i}}};function BF(e,n,i){if(!e||!a(e))return e;for(let r,o=0,a=TF.length;o<a;++o)if(r=TF[o],t(e,r.key))return r.parse(e,n,i);return e}var TF=[{key:"$ref",parse:function(e,t){return t.get(e.$ref)||v("Operator not defined: "+e.$ref)}},{key:"$key",parse:function(e,t){const n="k:"+e.$key+"_"+!!e.$flat;return t.fn[n]||(t.fn[n]=G(e.$key,e.$flat,t.expr.codegen))}},{key:"$expr",parse:function(e,t,n){e.$params&&t.parseParameters(e.$params,n);const i="e:"+e.$expr.code;return t.fn[i]||(t.fn[i]=F(t.parameterExpression(e.$expr),e.$fields))}},{key:"$field",parse:function(e,t){if(!e.$field)return null;const n="f:"+e.$field+"_"+e.$name;return t.fn[n]||(t.fn[n]=q(e.$field,e.$name,t.expr.codegen))}},{key:"$encode",parse:function(e,t){const n=e.$encode,i={};for(const r in n){const e=n[r];i[r]=F(t.encodeExpression(e.$expr),e.$fields),i[r].output=e.$output}return i}},{key:"$compare",parse:function(e,t){const n="c:"+e.$compare+"_"+e.$order,i=c(e.$compare).map((e=>e&&e.$tupleid?_s:e));return t.fn[n]||(t.fn[n]=H(i,e.$order,t.expr.codegen))}},{key:"$context",parse:function(e,t){return t}},{key:"$subflow",parse:function(e,t){const n=e.$subflow;return function(e,i,r){const o=t.fork().parse(n),a=o.get(n.operators[0].id),s=o.signals.parent;return s&&s.set(r),a.detachSubflow=()=>t.detach(o),a}}},{key:"$tupleid",parse:function(){return _s}}];const PF={skip:!0};function jF(e,t,n,i){return new LF(e,t,n,i)}function LF(e,t,n,i){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=i||RF,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function qF(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}function UF(e,t){e&&(null==t?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}LF.prototype=qF.prototype={fork(){const e=new qF(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter((t=>t!==e));const t=Object.keys(e.nodes);for(const n of t)e.nodes[n]._targets=null;for(const n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){const n=this,i=n.dataflow,r=e.value;if(n.set(e.id,t),"collect"===OF(e.type)&&r&&(r.$ingest?i.ingest(t,r.$ingest,r.$format):r.$request?i.preload(t,r.$request,r.$format):i.pulse(t,i.changeset().insert(r))),e.root&&(n.root=t),e.parent){let r=n.get(e.parent.$ref);r?(i.connect(r,[t]),t.targets().add(r)):(n.unresolved=n.unresolved||[]).push((()=>{r=n.get(e.parent.$ref),i.connect(r,[t]),t.targets().add(r)}))}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(const o in e.data){const i=n.data[o]||(n.data[o]={});e.data[o].forEach((e=>i[e]=t))}},resolve(){return(this.unresolved||[]).forEach((e=>e())),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[OF(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,i,r){this.dataflow.on(t,n,i,r,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:function(e){const t=this,n=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),n.forEach((e=>t.parseOperator(e))),n.forEach((e=>t.parseOperatorParameters(e))),(e.streams||[]).forEach((e=>t.parseStream(e))),(e.updates||[]).forEach((e=>t.parseUpdate(e))),t.resolve()},parseOperator:function(e){const t=this;"operator"!==OF(e.type)&&e.type?t.transform(e,e.type):t.operator(e,e.update?t.operatorExpression(e.update):null)},parseOperatorParameters:function(e){const t=this;if(e.params){const n=t.get(e.id);n||v("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}},parseParameters:function(e,t){t=t||{};const n=this;for(const i in e){const r=e[i];t[i]=u(r)?r.map((e=>BF(e,n,t))):BF(r,n,t)}return t},parseStream:function(e){var t,n=this,i=null!=e.filter?n.eventExpression(e.filter):void 0,r=null!=e.stream?n.get(e.stream):void 0;e.source?r=n.events(e.source,e.type,i):e.merge&&(r=(t=e.merge.map((e=>n.get(e))))[0].merge.apply(t[0],t.slice(1))),e.between&&(t=e.between.map((e=>n.get(e))),r=r.between(t[0],t[1])),e.filter&&(r=r.filter(i)),null!=e.throttle&&(r=r.throttle(+e.throttle)),null!=e.debounce&&(r=r.debounce(+e.debounce)),null==r&&v("Invalid stream definition: "+JSON.stringify(e)),e.consume&&r.consume(!0),n.stream(e,r)},parseUpdate:function(e){var t,n=this,i=a(i=e.source)?i.$ref:i,r=n.get(i),o=e.update,s=void 0;r||v("Source not defined: "+e.source),t=e.target&&e.target.$expr?n.eventExpression(e.target.$expr):n.get(e.target),o&&o.$expr&&(o.$params&&(s=n.parseParameters(o.$params)),o=n.handlerExpression(o.$expr)),n.update(e,r,t,o,s)},getState:function(e){var t=this,n={};if(e.signals){var i=n.signals={};Object.keys(t.signals).forEach((n=>{const r=t.signals[n];e.signals(n,r)&&(i[n]=r.value)}))}if(e.data){var r=n.data={};Object.keys(t.data).forEach((n=>{const i=t.data[n];e.data(n,i)&&(r[n]=i.input.value)}))}return t.subcontext&&!1!==e.recurse&&(n.subcontext=t.subcontext.map((t=>t.getState(e)))),n},setState:function(e){var t=this,n=t.dataflow,i=e.data,r=e.signals;Object.keys(r||{}).forEach((e=>{n.update(t.signals[e],r[e],PF)})),Object.keys(i||{}).forEach((e=>{n.pulse(t.data[e].input,n.changeset().remove(x).insert(i[e]))})),(e.subcontext||[]).forEach(((e,n)=>{const i=t.subcontext[n];i&&i.setState(e)}))}};const IF="default";function WF(e,t){const n=e.globalCursor()?"undefined"!=typeof document&&document.body:e.container();if(n)return null==t?n.style.removeProperty("cursor"):n.style.cursor=t}function HF(e,n){var i=e._runtime.data;return t(i,n)||v("Unrecognized data set: "+n),i[n]}function GF(e,t){Fs(t)||v("Second argument to changes must be a changeset.");const n=HF(this,e);return n.modified=!0,this.pulse(n.input,t)}function VF(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function YF(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function XF(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}function JF(e,t,n){var r,o,a=e._renderer,s=a&&a.canvas();return s&&(o=XF(e),(r=Cm(t.changedTouches?t.changedTouches[0]:t,s))[0]-=o[0],r[1]-=o[1]),t.dataflow=e,t.item=n,t.vega=function(e,t,n){const r=t?"group"===t.mark.marktype?t:t.mark.group:null;function o(e){var n,i=r;if(e)for(n=t;n;n=n.mark.group)if(n.mark.name===e){i=n;break}return i&&i.mark&&i.mark.interactive?i:{}}function a(e){if(!e)return n;i(e)&&(e=o(e));const t=n.slice();for(;e;)t[0]-=e.x||0,t[1]-=e.y||0,e=e.mark&&e.mark.group;return t}return{view:g(e),item:g(t||{}),group:o,xy:a,x:e=>a(e)[0],y:e=>a(e)[1]}}(e,n,r),t}const QF="view",KF={trap:!1};function ZF(e,t,n,i){e._eventListeners.push({type:n,sources:c(t),handler:i})}function eC(e,t,n){const i=e._eventConfig&&e._eventConfig[t];return!(!1===i||a(i)&&!i[n])||(e.warn(`Blocked ${t} ${n} event listener.`),!1)}function tC(e){return e.item}function nC(e){return e.item.mark.source}function iC(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function rC(e,t,n){const i=document.createElement(e);for(const r in t)i.setAttribute(r,t[r]);return null!=n&&(i.textContent=n),i}function oC(e,t,n,i){const r=n.event||"input",o=()=>e.update(t.value);i.signal(n.signal,t.value),t.addEventListener(r,o),ZF(i,t,r,o),e.set=e=>{t.value=e,t.dispatchEvent(function(e){return"undefined"!=typeof Event?new Event(e):{type:e}}(r))}}function aC(e,t,n,i){const r=i.signal(n.signal),o=rC("div",{class:"vega-bind"}),a="radio"===n.input?o:o.appendChild(rC("label"));a.appendChild(rC("span",{class:"vega-bind-name"},n.name||n.signal)),t.appendChild(o);let s=sC;switch(n.input){case"checkbox":s=lC;break;case"select":s=uC;break;case"radio":s=cC;break;case"range":s=fC}s(e,a,n,r)}function sC(e,t,n,i){const r=rC("input");for(const o in n)"signal"!==o&&"element"!==o&&r.setAttribute("input"===o?"type":o,n[o]);r.setAttribute("name",n.signal),r.value=i,t.appendChild(r),r.addEventListener("input",(()=>e.update(r.value))),e.elements=[r],e.set=e=>r.value=e}function lC(e,t,n,i){const r={type:"checkbox",name:n.signal};i&&(r.checked=!0);const o=rC("input",r);t.appendChild(o),o.addEventListener("change",(()=>e.update(o.checked))),e.elements=[o],e.set=e=>o.checked=!!e||null}function uC(e,t,n,i){const r=rC("select",{name:n.signal}),o=n.labels||[];n.options.forEach(((e,t)=>{const n={value:e};dC(e,i)&&(n.selected=!0),r.appendChild(rC("option",n,(o[t]||e)+""))})),t.appendChild(r),r.addEventListener("change",(()=>{e.update(n.options[r.selectedIndex])})),e.elements=[r],e.set=e=>{for(let t=0,i=n.options.length;t<i;++t)if(dC(n.options[t],e))return void(r.selectedIndex=t)}}function cC(e,t,n,i){const r=rC("span",{class:"vega-bind-radio"}),o=n.labels||[];t.appendChild(r),e.elements=n.options.map(((t,a)=>{const s={type:"radio",name:n.signal,value:t};dC(t,i)&&(s.checked=!0);const l=rC("input",s);l.addEventListener("change",(()=>e.update(t)));const u=rC("label",{},(o[a]||t)+"");return u.prepend(l),r.appendChild(u),l})),e.set=t=>{const n=e.elements,i=n.length;for(let e=0;e<i;++e)dC(n[e].value,t)&&(n[e].checked=!0)}}function fC(e,t,n,i){i=void 0!==i?i:(+n.max+ +n.min)/2;const r=null!=n.max?n.max:Math.max(100,+i)||100,o=n.min||Math.min(0,r,+i)||0,a=n.step||me(o,r,100),s=rC("input",{type:"range",name:n.signal,min:o,max:r,step:a});s.value=i;const l=rC("span",{},+i);t.appendChild(s),t.appendChild(l);const u=()=>{l.textContent=s.value,e.update(+s.value)};s.addEventListener("input",u),s.addEventListener("change",u),e.elements=[s],e.set=e=>{s.value=e,l.textContent=e}}function dC(e,t){return e===t||e+""==t+""}function hC(e,t,n,i,r,o){return(t=t||new i(e.loader())).initialize(n,VF(e),YF(e),XF(e),r,o).background(e.background())}function pC(e,t){return t?function(){try{t.apply(this,arguments)}catch(n){e.error(n)}}:null}function mC(e,t,n){if("string"==typeof t){if("undefined"==typeof document)return e.error("DOM document instance not found."),null;if(!(t=document.querySelector(t)))return e.error("Signal bind element not found: "+t),null}if(t&&n)try{t.textContent=""}catch(i){t=null,e.error(i)}return t}const gC=e=>+e||0;function yC(e){return a(e)?{top:gC(e.top),bottom:gC(e.bottom),left:gC(e.left),right:gC(e.right)}:(e=>({top:e,bottom:e,left:e,right:e}))(gC(e))}async function vC(e,t,n,i){const r=ny(t),o=r&&r.headless;return o||v("Unrecognized renderer type: "+t),await e.runAsync(),hC(e,null,null,o,n,i).renderAsync(e._scenegraph.root)}var bC="width",xC="height",wC="padding",_C={skip:!0};function kC(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===wC?i.left+i.right:0)}function $C(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===wC?i.top+i.bottom:0)}function DC(e,t){return t.modified&&u(t.input.value)&&!e.startsWith("_:vega:_")}function AC(e,t){return!("parent"===e||t instanceof nl.proxy)}function SC(e,t,n,i){const r=e.element();r&&r.setAttribute("title",function(e){return null==e?"":u(e)?EC(e):a(e)&&!ge(e)?(t=e,Object.keys(t).map((e=>{const n=t[e];return e+": "+(u(n)?EC(n):FC(n))})).join("\n")):e+"";var t}(i))}function EC(e){return"["+e.map(FC).join(", ")+"]"}function FC(e){return u(e)?"[…]":a(e)&&!ge(e)?"{…}":e}function CC(e,t){const n=this;if(t=t||{},Zs.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),null!=t.logLevel&&n.logLevel(t.logLevel),t.locale||e.locale){const i=D({},e.locale,t.locale);n.locale(Ue(i.number,i.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||ey.Canvas,n._scenegraph=new km;const r=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||SC,n._redraw=!0,n._handler=(new eg).scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=function(e){const t=D({defaults:{}},e),n=(e,t)=>{t.forEach((t=>{u(e[t])&&(e[t]=se(e[t]))}))};return n(t.defaults,["prevent","allow"]),n(t,["view","window","selector"]),t}(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const o=function(e,t,n){return jF(e,nl,kF,n).parse(t)}(n,e,t.expr);n._runtime=o,n._signals=o.signals,n._bind=(e.bindings||[]).map((e=>({state:null,param:D({},e)}))),o.root&&o.root.set(r),r.source=o.data.root.input,n.pulse(o.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=kC(n,n._width),n._viewHeight=$C(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,function(e){var t=e._signals,n=t[bC],i=t[xC],r=t[wC];function o(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,(t=>{e._width=t.size,e._viewWidth=kC(e,t.size),o()}),{size:n}),e._resizeHeight=e.add(null,(t=>{e._height=t.size,e._viewHeight=$C(e,t.size),o()}),{size:i});const a=e.add(null,o,{pad:r});e._resizeWidth.rank=n.rank+1,e._resizeHeight.rank=i.rank+1,a.rank=r.rank+1}(n),function(e){e.add(null,(t=>(e._background=t.bg,e._resize=1,t.bg)),{bg:e._signals.background})}(n),function(e){const t=e._signals.cursor||(e._signals.cursor=e.add({user:IF,item:null}));e.on(e.events("view","pointermove"),t,((e,n)=>{const r=t.value,o=r?i(r)?r:r.user:IF,a=n.item&&n.item.cursor||null;return r&&o===r.user&&a==r.item?r:{user:o,item:a}})),e.add(null,(function(t){let n=t.cursor,r=this.value;return i(n)||(r=n.item,n=n.user),WF(e,n&&n!==IF?n:r||n),r}),{cursor:t})}(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind),t.watchPixelRatio&&n._watchPixelRatio()}function MC(e,n){return t(e._signals,n)?e._signals[n]:v("Unrecognized signal name: "+o(n))}function zC(e,t){const n=(e._targets||[]).filter((e=>e._update&&e._update.handler===t));return n.length?n[0]:null}function OC(e,t,n,i){let r=zC(n,i);return r||(r=pC(e,(()=>i(t,n.value))),r.handler=i,e.on(n,null,r)),e}function NC(e,t,n){const i=zC(t,n);return i&&t._targets.remove(i),e}_(CC,Zs,{async evaluate(e,t,n){if(await Zs.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,r=XF(i=this),o=VF(i),a=YF(i),i._renderer.background(i.background()),i._renderer.resize(o,a,r),i._handler.origin(r),i._resizeListeners.forEach((e=>{try{e(o,a)}catch(t){i.error(t)}}))),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(s){this.error(s)}var i,r,o,a;return n&&vs(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=null!=e?e+"":null;return t!==this._desc&&UF(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const i=MC(this,e);return 1===arguments.length?i.value:this.update(i,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",yC(e)):yC(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(ny(e)||v("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(Zs.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(MC(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,n,i,r,o){this.runAfter((a=>{let s=0;a._autosize=0,a.width()!==n&&(s=1,a.signal(bC,n,_C),a._resizeWidth.skip(!0)),a.height()!==i&&(s=1,a.signal(xC,i,_C),a._resizeHeight.skip(!0)),a._viewWidth!==e&&(a._resize=1,a._viewWidth=e),a._viewHeight!==t&&(a._resize=1,a._viewHeight=t),a._origin[0]===r[0]&&a._origin[1]===r[1]||(a._resize=1,a._origin=r),s&&a.run("enter"),o&&a.runAfter((e=>e.resize()))}),!1,1)},addEventListener(e,t,n){let i=t;return n&&!1===n.trap||(i=pC(this,t),i.raw=t),this._handler.on(e,i),this},removeEventListener(e,t){for(var n,i,r=this._handler.handlers(e),o=r.length;--o>=0;)if(i=r[o].type,n=r[o].handler,e===i&&(t===n||t===n.raw)){this._handler.off(i,n);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.includes(e)||t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return OC(this,e,MC(this,e),t)},removeSignalListener(e,t){return NC(this,MC(this,e),t)},addDataListener(e,t){return OC(this,e,HF(this,e).values,t)},removeDataListener(e,t){return NC(this,HF(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=WF(this,null);this._globalCursor=!!e,t&&WF(this,t)}return this}return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push(function(e,t,n){var i=new dn,r=t;return null==t?(i.restart(e,t,n),i):(i._restart=i.restart,i.restart=function(e,t,n){t=+t,n=null==n?hn():+n,i._restart((function o(a){a+=r,i._restart(o,r+=t,n),e(a)}),t,n)},i.restart(e,t,n),i)}((function(t){e({timestamp:Date.now(),elapsed:t})}),t))},events:function(e,t,n){var i,r=this,o=new Ps(n),a=function(n,i){r.runAsync(null,(()=>{e===QF&&function(e,t){var n=e._eventConfig.defaults,i=n.prevent,r=n.allow;return!1!==i&&!0!==r&&(!0===i||!1===r||(i?i[t]:r?!r[t]:e.preventDefault()))}(r,t)&&n.preventDefault(),o.receive(JF(r,n,i))}))};if("timer"===e)eC(r,"timer",t)&&r.timer(a,t);else if(e===QF)eC(r,"view",t)&&r.addEventListener(t,a,KF);else if("window"===e?eC(r,"window",t)&&"undefined"!=typeof window&&(i=[window]):"undefined"!=typeof document&&eC(r,"selector",t)&&(i=Array.from(document.querySelectorAll(e))),i){for(var s=0,l=i.length;s<l;++s)i[s].addEventListener(t,a);ZF(r,i,t,a)}else r.warn("Can not resolve event source: "+e);return o},finalize:function(){var e,t,n,i,r,o=this._tooltip,a=this._timers,s=this._handler.handlers(),l=this._eventListeners;for(e=a.length;--e>=0;)a[e].stop();for(e=l.length;--e>=0;)for(t=(n=l[e]).sources.length;--t>=0;)n.sources[t].removeEventListener(n.type,n.handler);for(o&&o.call(this,this._handler,null,null,null),e=s.length;--e>=0;)r=s[e].type,i=s[e].handler,this._handler.off(r,i);return this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","pointerover",tC),nC,iC(e)),this.on(this.events("view","pointerout",tC),nC,iC(t)),this},data:function(e,t){return arguments.length<2?HF(this,e).values.value:GF.call(this,e,Cs().remove(x).insert(t))},change:GF,insert:function(e,t){return GF.call(this,e,Cs().insert(t))},remove:function(e,t){return GF.call(this,e,Cs().remove(t))},scale:function(e){var n=this._runtime.scales;return t(n,e)||v("Unrecognized scale or projection: "+e),n[e].value},initialize:function(e,t){const n=this,i=n._renderType,r=n._eventConfig.bind,o=ny(i);e=n._el=e?mC(n,e,!0):null,function(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),UF(t,e.description()))}(n),o||n.error("Unrecognized renderer type: "+i);const a=o.handler||eg,s=e?o.renderer:o.headless;return n._renderer=s?hC(n,n._renderer,e,s):null,n._handler=function(e,t,n,i){const r=new i(e.loader(),pC(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,XF(e),e);return t&&t.handlers().forEach((e=>{r.on(e.type,e.handler)})),r}(n,n._handler,e,a),n._redraw=!0,e&&"none"!==r&&(t=t?n._elBind=mC(n,t,!0):e.appendChild(rC("form",{class:"vega-bindings"})),n._bind.forEach((e=>{e.param.element&&"container"!==r&&(e.element=mC(n,e.param.element,!!e.param.input))})),n._bind.forEach((e=>{!function(e,t,n){if(!t)return;const i=n.param;let r=n.state;r||(r=n.state={elements:null,active:!1,set:null,update:t=>{t!=e.signal(i.signal)&&e.runAsync(null,(()=>{r.source=!0,e.signal(i.signal,t)}))}},i.debounce&&(r.update=A(i.debounce,r.update))),(null==i.input&&i.element?oC:aC)(r,t,i,e),r.active||(e.on(e._signals[i.signal],null,(()=>{r.source?r.source=!1:r.set(e.signal(i.signal))})),r.active=!0)}(n,e.element||t,e)}))),n},toImageURL:async function(e,t){e!==ey.Canvas&&e!==ey.SVG&&e!==ey.PNG&&v("Unrecognized image type: "+e);const n=await vC(this,e,t);return e===ey.SVG?function(e,t){const n=new Blob([e],{type:t});return window.URL.createObjectURL(n)}(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await vC(this,ey.Canvas,e,t)).canvas()},toSVG:async function(e){return(await vC(this,ey.SVG,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:DC,signals:AC,recurse:!0})},setState:function(e){return this.runAsync(null,(t=>{t._trigger=!1,t._runtime.setState(e)}),(e=>{e._trigger=!0})),this},_watchPixelRatio:function(){if("canvas"===this.renderer()&&this._renderer._canvas){let e=null;const t=()=>{null!=e&&e();const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",t),e=()=>{n.removeEventListener("change",t)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};t()}}});const RC="[",BC="]",TC=/[[\]{}]/,PC={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let jC,LC;function qC(e,t,n){return jC=t||"view",LC=n||PC,IC(e.trim()).map(WC)}function UC(e,t,n,i,r){const o=e.length;let a,s=0;for(;t<o;++t){if(a=e[t],!s&&a===n)return t;r&&r.indexOf(a)>=0?--s:i&&i.indexOf(a)>=0&&++s}return t}function IC(e){const t=[],n=e.length;let i=0,r=0;for(;r<n;)r=UC(e,r,",","[{","]}"),t.push(e.substring(i,r).trim()),i=++r;if(0===t.length)throw"Empty event selector: "+e;return t}function WC(e){return"["===e[0]?function(e){const t=e.length;let n,i=1;if(i=UC(e,i,BC,RC,BC),i===t)throw"Empty between selector: "+e;if(n=IC(e.substring(1,i)),2!==n.length)throw"Between selector must have two elements: "+e;if(e=e.slice(i+1).trim(),">"!==e[0])throw"Expected '>' after between selector: "+e;n=n.map(WC);const r=WC(e.slice(1).trim());if(r.between)return{between:n,stream:r};r.between=n;return r}(e):function(e){const t={source:jC},n=[];let i,r,o=[0,0],a=0,s=0,l=e.length,u=0;if("}"===e[l-1]){if(u=e.lastIndexOf("{"),!(u>=0))throw"Unmatched right brace: "+e;try{o=function(e){const t=e.split(",");if(!e.length||t.length>2)throw e;return t.map((t=>{const n=+t;if(n!=n)throw e;return n}))}(e.substring(u+1,l-1))}catch(f){throw"Invalid throttle specification: "+e}l=(e=e.slice(0,u).trim()).length,u=0}if(!l)throw e;"@"===e[0]&&(a=++u);i=UC(e,u,":"),i<l&&(n.push(e.substring(s,i).trim()),s=u=++i);if(u=UC(e,u,RC),u===l)n.push(e.substring(s,l).trim());else if(n.push(e.substring(s,u).trim()),r=[],s=++u,s===l)throw"Unmatched left bracket: "+e;for(;u<l;){if(u=UC(e,u,BC),u===l)throw"Unmatched left bracket: "+e;if(r.push(e.substring(s,u).trim()),u<l-1&&e[++u]!==RC)throw"Expected left bracket: "+e;s=++u}if(!(l=n.length)||TC.test(n[l-1]))throw"Invalid event selector: "+e;l>1?(t.type=n[1],a?t.markname=n[0].slice(1):(c=n[0],LC[c]?t.marktype=n[0]:t.source=n[0])):t.type=n[0];var c;"!"===t.type.slice(-1)&&(t.consume=!0,t.type=t.type.slice(0,-1));null!=r&&(t.filter=r);o[0]&&(t.throttle=o[0]);o[1]&&(t.debounce=o[1]);return t}(e)}function HC(e){return a(e)?e:{type:e||"pad"}}const GC=e=>+e||0;function VC(e){return a(e)?e.signal?e:{top:GC(e.top),bottom:GC(e.bottom),left:GC(e.left),right:GC(e.right)}:{top:t=GC(e),bottom:t,left:t,right:t};var t}const YC=e=>a(e)&&!u(e)?D({},e):{value:e};function XC(e,t,n,i){if(null!=n){return a(n)&&!u(n)||u(n)&&n.length&&a(n[0])?e.update[t]=n:e[i||"enter"][t]={value:n},1}return 0}function JC(e,t,n){for(const i in t)XC(e,i,t[i]);for(const i in n)XC(e,i,n[i],"update")}function QC(e,n,i){for(const r in n)i&&t(i,r)||(e[r]=D(e[r]||{},n[r]));return e}function KC(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const ZC="mark",eM="frame",tM="scope",nM="legend-label",iM="title-text",rM="title-subtitle";function oM(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const aM=e=>i(e)?o(e):e.signal?`(${e.signal})`:cM(e);function sM(e){if(null!=e.gradient)return function(e){const t=[e.start,e.stop,e.count].map((e=>null==e?null:o(e)));for(;t.length&&null==T(t);)t.pop();return t.unshift(aM(e.gradient)),`gradient(${t.join(",")})`}(e);let t=e.signal?`(${e.signal})`:e.color?function(e){return e.c?lM("hcl",e.h,e.c,e.l):e.h||e.s?lM("hsl",e.h,e.s,e.l):e.l||e.a?lM("lab",e.l,e.a,e.b):e.r||e.g||e.b?lM("rgb",e.r,e.g,e.b):null}(e.color):null!=e.field?cM(e.field):void 0!==e.value?o(e.value):void 0;return null!=e.scale&&(t=function(e,t){const n=aM(e.scale);null!=e.range?t=`lerp(_range(${n}), ${+e.range})`:(void 0!==t&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(1==+e.band?"":"*"+uM(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),null==t&&(t="0"));return t}(e,t)),void 0===t&&(t=null),null!=e.exponent&&(t=`pow(${t},${uM(e.exponent)})`),null!=e.mult&&(t+=`*${uM(e.mult)}`),null!=e.offset&&(t+=`+${uM(e.offset)}`),e.round&&(t=`round(${t})`),t}const lM=(e,t,n,i)=>`(${e}(${[t,n,i].map(sM).join(",")})+'')`;function uM(e){return a(e)?"("+sM(e)+")":e}function cM(e){return fM(a(e)?e:{datum:e})}function fM(e){let t,n,a;if(e.signal)t="datum",a=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(a=e.parent,t+=".datum"):a=e.group}else e.datum?(t="datum",a=e.datum):v("Invalid field reference: "+o(e));return e.signal||(a=i(a)?r(a).map(o).join("]["):fM(a)),t+"["+a+"]"}function dM(e,t,n,i,r,o){const a={};(o=o||{}).encoders={$encode:a},e=function(e,t,n,i,r){const o={},a={};let s,l,u,f;for(l in l="lineBreak","text"!==t||null==r[l]||KC(l,e)||oM(o,l,r[l]),("legend"==n||String(n).startsWith("axis"))&&(n=null),f=n===eM?r.group:n===ZC?D({},r.mark,r[t]):null,f)u=KC(l,e)||("fill"===l||"stroke"===l)&&(KC("fill",e)||KC("stroke",e)),u||oM(o,l,f[l]);for(l in c(i).forEach((t=>{const n=r.style&&r.style[t];for(const i in n)KC(i,e)||oM(o,i,n[i])})),e=D({},e),o)f=o[l],f.signal?(s=s||{})[l]=f:a[l]=f;return e.enter=D(a,e.enter),s&&(e.update=D(s,e.update)),e}(e,t,n,i,r.config);for(const s in e)a[s]=hM(e[s],t,o,r);return o}function hM(e,t,n,i){const r={},o={};for(const s in e)null!=e[s]&&(r[s]=pM((a=e[s],u(a)?function(e){let t="";return e.forEach((e=>{const n=sM(e);t+=e.test?`(${e.test})?${n}:`:n})),":"===T(t)&&(t+="null"),t}(a):sM(a)),i,n,o));var a;return{$expr:{marktype:t,channels:r},$fields:Object.keys(o),$output:Object.keys(e)}}function pM(e,t,n,i){const r=CF(e,t);return r.$fields.forEach((e=>i[e]=1)),D(n,r.$params),r.$expr}const mM=["value","update","init","react","bind"];function gM(e,t){v(e+' for "outer" push: '+o(t))}function yM(e,t){const n=e.name;if("outer"===e.push)t.signals[n]||gM("No prior signal definition",n),mM.forEach((t=>{void 0!==e[t]&&gM("Invalid property ",t)}));else{const i=t.addSignal(n,e.value);!1===e.react&&(i.react=!1),e.bind&&t.addBinding(n,e.bind)}}function vM(e,t,n,i){this.id=-1,this.type=e,this.value=t,this.params=n,i&&(this.parent=i)}function bM(e,t,n,i){return new vM(e,t,n,i)}function xM(e,t){return bM("operator",e,t)}function wM(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function _M(e,t){return t?{$field:e,$name:t}:{$field:e}}const kM=_M("key");function $M(e,t){return{$compare:e,$order:t}}function DM(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const AM="scope",SM="view";function EM(e){return e&&e.signal}function FM(e){if(EM(e))return!0;if(a(e))for(const t in e)if(FM(e[t]))return!0;return!1}function CM(e,t){return null!=e?e:t}function MM(e){return e&&e.signal||e}const zM="timer";function OM(e,t){return(e.merge?NM:e.stream?RM:e.type?BM:v("Invalid stream specification: "+o(e)))(e,t)}function NM(e,t){const n=TM({merge:e.merge.map((e=>OM(e,t)))},e,t);return t.addStream(n).id}function RM(e,t){const n=TM({stream:OM(e.stream,t)},e,t);return t.addStream(n).id}function BM(e,t){let n;var i;e.type===zM?(n=t.event(zM,e.throttle),e={between:e.between,filter:e.filter}):n=t.event((i=e.source)===AM?SM:i||SM,e.type);const r=TM({stream:n},e,t);return 1===Object.keys(r).length?n:t.addStream(r).id}function TM(e,t,n){let i=t.between;return i&&(2!==i.length&&v('Stream "between" parameter must have 2 entries: '+o(t)),e.between=[OM(i[0],n),OM(i[1],n)]),i=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&i.push(function(e,t,n){const i="event.item";return i+(e&&"*"!==e?"&&"+i+".mark.marktype==='"+e+"'":"")+(n?"&&"+i+".mark.role==='"+n+"'":"")+(t?"&&"+i+".mark.name==='"+t+"'":"")}(t.marktype,t.markname,t.markrole)),t.source===AM&&i.push("inScope(event.item)"),i.length&&(e.filter=CF("("+i.join(")&&(")+")",n).$expr),null!=(i=t.throttle)&&(e.throttle=+i),null!=(i=t.debounce)&&(e.debounce=+i),t.consume&&(e.consume=!0),e}const PM={code:"_.$value",ast:{type:"Identifier",value:"value"}};function jM(e,t,n){const r=e.encode,a={target:n};let s=e.events,l=e.update,u=[];s||v("Signal update missing events specification."),i(s)&&(s=qC(s,t.isSubscope()?AM:SM)),s=c(s).filter((e=>e.signal||e.scale?(u.push(e),0):1)),u.length>1&&(u=[LM(u)]),s.length&&u.push(s.length>1?{merge:s}:s[0]),null!=r&&(l&&v("Signal encode and update are mutually exclusive."),l="encode(item(),"+o(r)+")"),a.update=i(l)?CF(l,t):null!=l.expr?CF(l.expr,t):null!=l.value?l.value:null!=l.signal?{$expr:PM,$params:{$value:t.signalRef(l.signal)}}:v("Invalid signal update specification."),e.force&&(a.options={force:!0}),u.forEach((e=>t.addUpdate(D(function(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):OM(e,t)}}(e,t),a))))}function LM(e){return{signal:"["+e.map((e=>e.scale?'scale("'+e.scale+'")':e.signal))+"]"}}const qM=e=>(t,n,i)=>bM(e,n,t||void 0,i),UM=qM("aggregate"),IM=qM("axisticks"),WM=qM("bound"),HM=qM("collect"),GM=qM("compare"),VM=qM("datajoin"),YM=qM("encode"),XM=qM("expression"),JM=qM("facet"),QM=qM("field"),KM=qM("key"),ZM=qM("legendentries"),ez=qM("load"),tz=qM("mark"),nz=qM("multiextent"),iz=qM("multivalues"),rz=qM("overlap"),oz=qM("params"),az=qM("prefacet"),sz=qM("projection"),lz=qM("proxy"),uz=qM("relay"),cz=qM("render"),fz=qM("scale"),dz=qM("sieve"),hz=qM("sortitems"),pz=qM("viewlayout"),mz=qM("values");let gz=0;const yz={min:"min",max:"max",count:"sum"};function vz(e,n){const i=n.getScale(e.name).params;let r;for(r in i.domain=_z(e.domain,e,n),null!=e.range&&(i.range=Cz(e,n,i)),null!=e.interpolate&&function(e,t){t.interpolate=bz(e.type||e),null!=e.gamma&&(t.interpolateGamma=bz(e.gamma))}(e.interpolate,i),null!=e.nice&&(i.nice=function(e,t){return e.signal?t.signalRef(e.signal):a(e)?{interval:bz(e.interval),step:bz(e.step)}:bz(e)}(e.nice,n)),null!=e.bins&&(i.bins=function(e,t){return e.signal||u(e)?xz(e,t):t.objectProperty(e)}(e.bins,n)),e)t(i,r)||"name"===r||(i[r]=bz(e[r],n))}function bz(e,t){return a(e)?e.signal?t.signalRef(e.signal):v("Unsupported object: "+o(e)):e}function xz(e,t){return e.signal?t.signalRef(e.signal):e.map((e=>bz(e,t)))}function wz(e){v("Can not find data set: "+o(e))}function _z(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(u(e)?kz:e.fields?Dz:$z)(e,t,n);null==t.domainMin&&null==t.domainMax||v("No scale domain defined for domainMin/domainMax to override.")}function kz(e,t,n){return e.map((e=>bz(e,n)))}function $z(e,t,n){const i=n.getData(e.data);return i||wz(e.data),Pf(t.type)?i.valuesRef(n,e.field,Sz(e.sort,!1)):Uf(t.type)?i.domainRef(n,e.field):i.extentRef(n,e.field)}function Dz(e,t,n){const r=e.data,a=e.fields.reduce(((e,t)=>(t=i(t)?{data:r,field:t}:u(t)||t.signal?function(e,t){const n="_:vega:_"+gz++,i=HM({});if(u(e))i.value={$ingest:e};else if(e.signal){const r="setdata("+o(n)+","+e.signal+")";i.params.input=t.signalRef(r)}return t.addDataPipeline(n,[i,dz({})]),{data:n,field:"data"}}(t,n):t,e.push(t),e)),[]);return(Pf(t.type)?Az:Uf(t.type)?Ez:Fz)(e,n,a)}function Az(e,t,n){const i=Sz(e.sort,!0);let r,o;const a=n.map((e=>{const n=t.getData(e.data);return n||wz(e.data),n.countsRef(t,e.field,i)})),s={groupby:kM,pulse:a};i&&(r=i.op||"count",o=i.field?DM(r,i.field):"count",s.ops=[yz[r]],s.fields=[t.fieldRef(o)],s.as=[o]),r=t.add(UM(s));const l=t.add(HM({pulse:wM(r)}));return o=t.add(mz({field:kM,sort:t.sortRef(i),pulse:wM(l)})),wM(o)}function Sz(e,t){return e&&(e.field||e.op?e.field||"count"===e.op?t&&e.field&&e.op&&!yz[e.op]&&v("Multiple domain scales can not be sorted using "+e.op):v("No field provided for sort aggregate op: "+e.op):a(e)?e.field="key":e={field:"key"}),e}function Ez(e,t,n){const i=n.map((e=>{const n=t.getData(e.data);return n||wz(e.data),n.domainRef(t,e.field)}));return wM(t.add(iz({values:i})))}function Fz(e,t,n){const i=n.map((e=>{const n=t.getData(e.data);return n||wz(e.data),n.extentRef(t,e.field)}));return wM(t.add(nz({extents:i})))}function Cz(e,n,r){const a=n.config.range;let s=e.range;if(s.signal)return n.signalRef(s.signal);if(i(s)){if(a&&t(a,s))return Cz(e=D({},e,{range:a[s]}),n,r);"width"===s?s=[0,{signal:"width"}]:"height"===s?s=Pf(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:v("Unrecognized scale range value: "+o(s))}else{if(s.scheme)return r.scheme=u(s.scheme)?xz(s.scheme,n):bz(s.scheme,n),s.extent&&(r.schemeExtent=xz(s.extent,n)),void(s.count&&(r.schemeCount=bz(s.count,n)));if(s.step)return void(r.rangeStep=bz(s.step,n));if(Pf(e.type)&&!u(s))return _z(s,e,n);u(s)||v("Unsupported range type: "+o(s))}return s.map((e=>(u(e)?xz:bz)(e,n)))}function Mz(e,t,n){return u(e)?e.map((e=>Mz(e,t,n))):a(e)?e.signal?n.signalRef(e.signal):"fit"===t?e:v("Unsupported parameter object: "+o(e)):e}const zz="top",Oz="left",Nz="right",Rz="bottom",Bz="center",Tz="index",Pz="label",jz="perc",Lz="value",qz="guide-label",Uz="guide-title",Iz="group-title",Wz="group-subtitle",Hz="symbol",Gz="gradient",Vz="discrete",Yz="size",Xz=[Yz,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],Jz={name:1,style:1,interactive:1},Qz={value:0},Kz={value:1},Zz="group",eO="rect",tO="rule",nO="text";function iO(e){return e.type=Zz,e.interactive=e.interactive||!1,e}function rO(e,t){const n=(n,i)=>CM(e[n],CM(t[n],i));return n.isVertical=n=>"vertical"===CM(e.direction,t.direction||(n?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>CM(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>CM(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>CM(e.columns,CM(t.columns,+n.isVertical(!0))),n}function oO(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function aO(e,t,n){return`item.anchor === 'start' ? ${e} : item.anchor === 'end' ? ${t} : ${n}`}const sO=aO(o(Oz),o(Nz),o(Bz));function lO(e,t){return t?e?a(e)?Object.assign({},e,{offset:lO(e.offset,t)}):{value:e,offset:t}:t:e}function uO(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=QC(e.encode,t,Jz)):e.interactive=!1,e}function cO(e,t,n,i){const r=rO(e,n),o=r.isVertical(),a=r.gradientThickness(),s=r.gradientLength();let l,u,c,f,d;o?(u=[0,1],c=[0,0],f=a,d=s):(u=[0,0],c=[1,0],f=s,d=a);const h={enter:l={opacity:Qz,x:Qz,y:Qz,width:YC(f),height:YC(d)},update:D({},l,{opacity:Kz,fill:{gradient:t,start:u,stop:c}}),exit:{opacity:Qz}};return JC(h,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),uO({type:eO,role:"legend-gradient",encode:h},i)}function fO(e,t,n,i,r){const o=rO(e,n),a=o.isVertical(),s=o.gradientThickness(),l=o.gradientLength();let u,c,f,d,h="";a?(u="y",f="y2",c="x",d="width",h="1-"):(u="x",f="x2",c="y",d="height");const p={opacity:Qz,fill:{scale:t,field:Lz}};p[u]={signal:h+"datum."+jz,mult:l},p[c]=Qz,p[f]={signal:h+"datum.perc2",mult:l},p[d]=YC(s);const m={enter:p,update:D({},p,{opacity:Kz}),exit:{opacity:Qz}};return JC(m,{stroke:o("gradientStrokeColor"),strokeWidth:o("gradientStrokeWidth")},{opacity:o("gradientOpacity")}),uO({type:eO,role:"legend-band",key:Lz,from:r,encode:m},i)}const dO=`datum.${jz}<=0?"${Oz}":datum.${jz}>=1?"${Nz}":"${Bz}"`,hO=`datum.${jz}<=0?"${Rz}":datum.${jz}>=1?"${zz}":"middle"`;function pO(e,t,n,i){const r=rO(e,t),o=r.isVertical(),a=YC(r.gradientThickness()),s=r.gradientLength();let l,u,c,f,d=r("labelOverlap"),h="";const p={enter:l={opacity:Qz},update:u={opacity:Kz,text:{field:Pz}},exit:{opacity:Qz}};return JC(p,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:CM(e.labelLimit,t.gradientLabelLimit)}),o?(l.align={value:"left"},l.baseline=u.baseline={signal:hO},c="y",f="x",h="1-"):(l.align=u.align={signal:dO},l.baseline={value:"top"},c="x",f="y"),l[c]=u[c]={signal:h+"datum."+jz,mult:s},l[f]=u[f]=a,a.offset=CM(e.labelOffset,t.gradientLabelOffset)||0,d=d?{separation:r("labelSeparation"),method:d,order:"datum."+Tz}:void 0,uO({type:nO,role:nM,style:qz,key:Lz,from:i,encode:p,overlap:d},n)}function mO(e,t,n,i,r){const o=rO(e,t),a=n.entries,s=!(!a||!a.interactive),l=a?a.name:void 0,u=o("clipHeight"),c=o("symbolOffset"),f={data:"value"},d=`(${r}) ? datum.offset : datum.${Yz}`,h=u?YC(u):{field:Yz},p=`datum.${Tz}`,m=`max(1, ${r})`;let g,y,v,b,x;h.mult=.5,g={enter:y={opacity:Qz,x:{signal:d,mult:.5,offset:c},y:h},update:v={opacity:Kz,x:y.x,y:y.y},exit:{opacity:Qz}};let w=null,_=null;e.fill||(w=t.symbolBaseFillColor,_=t.symbolBaseStrokeColor),JC(g,{fill:o("symbolFillColor",w),shape:o("symbolType"),size:o("symbolSize"),stroke:o("symbolStrokeColor",_),strokeDash:o("symbolDash"),strokeDashOffset:o("symbolDashOffset"),strokeWidth:o("symbolStrokeWidth")},{opacity:o("symbolOpacity")}),Xz.forEach((t=>{e[t]&&(v[t]=y[t]={scale:e[t],field:Lz})}));const k=uO({type:"symbol",role:"legend-symbol",key:Lz,from:f,clip:!!u||void 0,encode:g},n.symbols),$=YC(c);$.offset=o("labelOffset"),g={enter:y={opacity:Qz,x:{signal:d,offset:$},y:h},update:v={opacity:Kz,text:{field:Pz},x:y.x,y:y.y},exit:{opacity:Qz}},JC(g,{align:o("labelAlign"),baseline:o("labelBaseline"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontStyle:o("labelFontStyle"),fontWeight:o("labelFontWeight"),limit:o("labelLimit")});const D=uO({type:nO,role:nM,style:qz,key:Lz,from:f,encode:g},n.labels);return g={enter:{noBound:{value:!u},width:Qz,height:u?YC(u):Qz,opacity:Qz},exit:{opacity:Qz},update:v={opacity:Kz,row:{signal:null},column:{signal:null}}},o.isVertical(!0)?(b=`ceil(item.mark.items.length / ${m})`,v.row.signal=`${p}%${b}`,v.column.signal=`floor(${p} / ${b})`,x={field:["row",p]}):(v.row.signal=`floor(${p} / ${m})`,v.column.signal=`${p} % ${m}`,x={field:p}),v.column.signal=`(${r})?${v.column.signal}:${p}`,iO({role:tM,from:i={facet:{data:i,name:"value",groupby:Tz}},encode:QC(g,a,Jz),marks:[k,D],name:l,interactive:s,sort:x})}const gO='item.orient === "left"',yO='item.orient === "right"',vO=`(${gO} || ${yO})`,bO=`datum.vgrad && ${vO}`,xO=aO('"top"','"bottom"','"middle"'),wO=`datum.vgrad && ${yO} ? (${aO('"right"','"left"','"center"')}) : (${vO} && !(datum.vgrad && ${gO})) ? "left" : ${sO}`,_O=`item._anchor || (${vO} ? "middle" : "start")`,kO=`${bO} ? (${gO} ? -90 : 90) : 0`,$O=`${vO} ? (datum.vgrad ? (${yO} ? "bottom" : "top") : ${xO}) : "top"`;function DO(e,t){let n;return a(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+AO(e.path)+")":e.sphere&&(n="geoShape("+AO(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function AO(e){return a(e)&&e.signal?e.signal:o(e)}function SO(e){const t=e.role||"";return t.startsWith("axis")||t.startsWith("legend")||t.startsWith("title")?t:e.type===Zz?tM:t||ZC}function EO(e){return{marktype:e.type,name:e.name||void 0,role:e.role||SO(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function FO(e,t){return e&&e.signal?t.signalRef(e.signal):!1!==e}function CO(e,t){const n=il(e.type);n||v("Unrecognized transform type: "+o(e.type));const i=bM(n.type.toLowerCase(),null,MO(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(i)),i.metadata=n.metadata||{},i}function MO(e,t,n){const i={},r=e.params.length;for(let o=0;o<r;++o){const r=e.params[o];i[r.name]=zO(r,t,n)}return i}function zO(e,t,n){const r=e.type,a=t[e.name];return"index"===r?function(e,t,n){i(t.from)||v('Lookup "from" parameter must be a string literal.');return n.getData(t.from).lookupRef(n,t.key)}(0,t,n):void 0!==a?"param"===r?function(e,t,n){const i=t[e.name];return e.array?(u(i)||v("Expected an array of sub-parameters. Instead: "+o(i)),i.map((t=>NO(e,t,n)))):NO(e,i,n)}(e,t,n):"projection"===r?n.projectionRef(t[e.name]):e.array&&!EM(a)?a.map((t=>OO(e,t,n))):OO(e,a,n):void(e.required&&v("Missing required "+o(t.type)+" parameter: "+o(e.name)))}function OO(e,t,n){const i=e.type;if(EM(t))return PO(i)?v("Expression references can not be signals."):jO(i)?n.fieldRef(t):LO(i)?n.compareRef(t):n.signalRef(t.signal);{const r=e.expr||jO(i);return r&&RO(t)?n.exprRef(t.expr,t.as):r&&BO(t)?_M(t.field,t.as):PO(i)?CF(t,n):TO(i)?wM(n.getData(t).values):jO(i)?_M(t):LO(i)?n.compareRef(t):t}}function NO(e,t,n){const i=e.params.length;let r;for(let o=0;o<i;++o){r=e.params[o];for(const e in r.key)if(r.key[e]!==t[e]){r=null;break}if(r)break}r||v("Unsupported parameter: "+o(t));const a=D(MO(r,t,n),r.key);return wM(n.add(oz(a)))}const RO=e=>e&&e.expr,BO=e=>e&&e.field,TO=e=>"data"===e,PO=e=>"expr"===e,jO=e=>"field"===e,LO=e=>"compare"===e;function qO(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:wM(t.getData(e.data).output)}function UO(e,t,n,i,r){this.scope=e,this.input=t,this.output=n,this.values=i,this.aggregate=r,this.index={}}function IO(e){return i(e)?e:null}function WO(e,t,n){const i=DM(n.op,n.field);let r;if(t.ops){for(let o=0,a=t.as.length;o<a;++o)if(t.as[o]===i)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((r=n.op.signal)?e.signalRef(r):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(i))}function HO(e,t,n,i,r,o,s){const l=t[n]||(t[n]={}),u=function(e){return a(e)?("descending"===e.order?"-":"+")+DM(e.op,e.field):""}(o);let c,f,d=IO(r);if(null!=d&&(e=t.scope,d+=u?"|"+u:"",c=l[d]),!c){const n=o?{field:kM,pulse:t.countsRef(e,r,o)}:{field:e.fieldRef(r),pulse:wM(t.output)};u&&(n.sort=e.sortRef(o)),f=e.add(bM(i,void 0,n)),s&&(t.index[r]=f),c=wM(f),null!=d&&(l[d]=c)}return c}function GO(e,t,n){const i=e.remove,r=e.insert,o=e.toggle,a=e.modify,s=e.values,l=t.add(xM()),u=CF("if("+e.trigger+',modify("'+n+'",'+[r,i,o,a,s].map((e=>null==e?"null":e)).join(",")+"),0)",t);l.update=u.$expr,l.params=u.$params}function VO(e,t){const n=SO(e),i=e.type===Zz,r=e.from&&e.from.facet,a=e.overlap;let s,l,u,f,d,h,p,m=e.layout||n===tM||n===eM;const g=n===ZC||m||r,y=function(e,t,n){let i,r,o,a,s;return e?(i=e.facet)&&(t||v("Only group marks can be faceted."),null!=i.field?a=s=qO(i,n):(e.data?s=wM(n.getData(e.data).aggregate):(o=CO(D({type:"aggregate",groupby:c(i.groupby)},i.aggregate),n),o.params.key=n.keyRef(i.groupby),o.params.pulse=qO(i,n),a=s=wM(n.add(o))),r=n.keyRef(i.groupby,!0))):a=wM(n.add(HM(null,[{}]))),a||(a=qO(e,n)),{key:r,pulse:a,parent:s}}(e.from,i,t);l=t.add(VM({key:y.key||(e.key?_M(e.key):void 0),pulse:y.pulse,clean:!i}));const b=wM(l);l=u=t.add(HM({pulse:b})),l=t.add(tz({markdef:EO(e),interactive:FO(e.interactive,t),clip:DO(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:wM(l)}));const x=wM(l);l=f=t.add(YM(dM(e.encode,e.type,n,e.style,t,{mod:!1,pulse:x}))),l.params.parent=t.encode(),e.transform&&e.transform.forEach((e=>{const n=CO(e,t),i=n.metadata;(i.generates||i.changes)&&v("Mark transforms should not generate new data."),i.nomod||(f.params.mod=!0),n.params.pulse=wM(l),t.add(l=n)})),e.sort&&(l=t.add(hz({sort:t.compareRef(e.sort),pulse:wM(l)})));const w=wM(l);(r||m)&&(m=t.add(pz({layout:t.objectProperty(e.layout),legends:t.legends,mark:x,pulse:w})),h=wM(m));const _=t.add(WM({mark:x,pulse:h||w}));p=wM(_),i&&(g&&(s=t.operators,s.pop(),m&&s.pop()),t.pushState(w,h||p,b),r?function(e,t,n){const i=e.from.facet,r=i.name,a=qO(i,t);let s;i.name||v("Facet must have a name: "+o(i)),i.data||v("Facet must reference a data set: "+o(i)),i.field?s=t.add(az({field:t.fieldRef(i.field),pulse:a})):i.groupby?s=t.add(JM({key:t.keyRef(i.groupby),group:wM(t.proxy(n.parent)),pulse:a})):v("Facet must specify groupby or field: "+o(i));const l=t.fork(),u=l.add(HM()),c=l.add(dz({pulse:wM(u)}));l.addData(r,new UO(l,u,u,c)),l.addSignal("parent",null),s.params.subflow={$subflow:l.parse(e).toRuntime()}}(e,t,y):g?function(e,t,n){const i=t.add(az({pulse:n.pulse})),r=t.fork();r.add(dz()),r.addSignal("parent",null),i.params.subflow={$subflow:r.parse(e).toRuntime()}}(e,t,y):t.parse(e),t.popState(),g&&(m&&s.push(m),s.push(_))),a&&(p=function(e,t,n){const i=e.method,r=e.bound,o=e.separation,a={separation:EM(o)?n.signalRef(o.signal):o,method:EM(i)?n.signalRef(i.signal):i,pulse:t};e.order&&(a.sort=n.compareRef({field:e.order}));if(r){const e=r.tolerance;a.boundTolerance=EM(e)?n.signalRef(e.signal):+e,a.boundScale=n.scaleRef(r.scale),a.boundOrient=r.orient}return wM(n.add(rz(a)))}(a,p,t));const k=t.add(cz({pulse:p})),$=t.add(dz({pulse:wM(k)},void 0,t.parent()));null!=e.name&&(d=e.name,t.addData(d,new UO(t,u,k,$)),e.on&&e.on.forEach((e=>{(e.insert||e.remove||e.toggle)&&v("Marks only support modify triggers."),GO(e,t,d)})))}function YO(e,t){const n=t.config.legend,i=e.encode||{},r=rO(e,n),o=i.legend||{},a=o.name||void 0,s=o.interactive,l=o.style,u={};let c,f,d,h=0;Xz.forEach((t=>e[t]?(u[t]=e[t],h=h||e[t]):0)),h||v("Missing valid scale for legend.");const p=function(e,t){let n=e.type||Hz;e.type||1!==function(e){return Xz.reduce(((t,n)=>t+(e[n]?1:0)),0)}(e)||!e.fill&&!e.stroke||(n=Tf(t)?Gz:jf(t)?Vz:Hz);return n!==Gz?n:jf(t)?Vz:Gz}(e,t.scaleType(h)),m={title:null!=e.title,scales:u,type:p,vgrad:"symbol"!==p&&r.isVertical()},g=wM(t.add(HM(null,[m]))),y=wM(t.add(ZM(f={type:p,scale:t.scaleRef(h),count:t.objectProperty(r("tickCount")),limit:t.property(r("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return p===Gz?(d=[cO(e,h,n,i.gradient),pO(e,n,i.labels,y)],f.count=f.count||t.signalRef(`max(2,2*floor((${MM(r.gradientLength())})/100))`)):p===Vz?d=[fO(e,h,n,i.gradient,y),pO(e,n,i.labels,y)]:(c=function(e,t){const n=rO(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}(e,n),d=[mO(e,n,i,y,MM(c.columns))],f.size=function(e,t,n){const i=MM(JO("size",e,n)),r=MM(JO("strokeWidth",e,n)),o=MM(function(e,t,n){return oO("fontSize",e)||function(e,t,n){const i=t.config.style[n];return i&&i[e]}("fontSize",t,n)}(n[1].encode,t,qz));return CF(`max(ceil(sqrt(${i})+${r}),${o})`,t)}(e,t,d[0].marks)),d=[iO({role:"legend-entry",from:g,encode:{enter:{x:{value:0},y:{value:0}}},marks:d,layout:c,interactive:s})],m.title&&d.push(function(e,t,n,i){const r=rO(e,t),o={enter:{opacity:Qz},update:{opacity:Kz,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Qz}};return JC(o,{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:_O},angle:{signal:kO},align:{signal:wO},baseline:{signal:$O},text:e.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")}),uO({type:nO,role:"legend-title",style:Uz,from:i,encode:o},n)}(e,n,i.title,g)),VO(iO({role:"legend",from:g,encode:QC(XO(r,e,n),o,Jz),marks:d,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:a,interactive:s,style:l}),t)}function XO(e,t,n){const i={enter:{},update:{}};return JC(i,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),i}function JO(e,t,n){return t[e]?`scale("${t[e]}",datum)`:oO(e,n[0].encode)}UO.fromEntries=function(e,t){const n=t.length,i=t[n-1],r=t[n-2];let o=t[0],a=null,s=1;for(o&&"load"===o.type&&(o=t[1]),e.add(t[0]);s<n;++s)t[s].params.pulse=wM(t[s-1]),e.add(t[s]),"aggregate"===t[s].type&&(a=t[s]);return new UO(e,o,r,i,a)},UO.prototype={countsRef(e,t,n){const i=this,r=i.counts||(i.counts={}),o=IO(t);let a,s,l;return null!=o&&(e=i.scope,a=r[o]),a?n&&n.field&&WO(e,a.agg.params,n):(l={groupby:e.fieldRef(t,"key"),pulse:wM(i.output)},n&&n.field&&WO(e,l,n),s=e.add(UM(l)),a=e.add(HM({pulse:wM(s)})),a={agg:s,ref:wM(a)},null!=o&&(r[o]=a)),a.ref},tuplesRef(){return wM(this.values)},extentRef(e,t){return HO(e,this,"extent","extent",t,!1)},domainRef(e,t){return HO(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return HO(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return HO(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return HO(e,this,"indata","tupleindex",t,!0,!0)}};const QO=`item.orient==="${Oz}"?-90:item.orient==="${Nz}"?90:0`;function KO(e,t){const n=rO(e=i(e)?{text:e}:e,t.config.title),r=e.encode||{},o=r.group||{},a=o.name||void 0,s=o.interactive,l=o.style,u=[],c=wM(t.add(HM(null,[{}])));return u.push(function(e,t,n,i){const r={value:0},o=e.text,a={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return JC(a,{text:o,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),uO({type:nO,role:iM,style:Iz,from:i,encode:a},n)}(e,n,function(e){const t=e.encode;return t&&t.title||D({name:e.name,interactive:e.interactive,style:e.style},t)}(e),c)),e.subtitle&&u.push(function(e,t,n,i){const r={value:0},o=e.subtitle,a={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return JC(a,{text:o,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),uO({type:nO,role:rM,style:Wz,from:i,encode:a},n)}(e,n,r.subtitle,c)),VO(iO({role:"title",from:c,encode:ZO(n,o),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:a,interactive:s,style:l}),t)}function ZO(e,t){const n={enter:{},update:{}};return JC(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:sO},angle:{signal:QO},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),QC(n,t,Jz)}function eN(e,t){const n=[];e.transform&&e.transform.forEach((e=>{n.push(CO(e,t))})),e.on&&e.on.forEach((n=>{GO(n,t,e.name)})),t.addDataPipeline(e.name,function(e,t,n){const i=[];let r,o,a,s,l,u=null,f=!1,d=!1;e.values?EM(e.values)||FM(e.format)?(i.push(nN(t,e)),i.push(u=tN())):i.push(u=tN({$ingest:e.values,$format:e.format})):e.url?FM(e.url)||FM(e.format)?(i.push(nN(t,e)),i.push(u=tN())):i.push(u=tN({$request:e.url,$format:e.format})):e.source&&(u=r=c(e.source).map((e=>wM(t.getData(e).output))),i.push(null));for(o=0,a=n.length;o<a;++o)s=n[o],l=s.metadata,u||l.source||i.push(u=tN()),i.push(s),l.generates&&(d=!0),l.modifies&&!d&&(f=!0),l.source?u=s:l.changes&&(u=null);r&&(a=r.length-1,i[0]=uz({derive:f,pulse:a?r:r[0]}),(f||a)&&i.splice(1,0,tN()));u||i.push(tN());return i.push(dz({})),i}(e,t,n))}function tN(e){const t=HM({},e);return t.metadata={source:!0},t}function nN(e,t){return ez({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}const iN=e=>e===Rz||e===zz,rN=(e,t,n)=>EM(e)?cN(e.signal,t,n):e===Oz||e===zz?t:n,oN=(e,t,n)=>EM(e)?lN(e.signal,t,n):iN(e)?t:n,aN=(e,t,n)=>EM(e)?uN(e.signal,t,n):iN(e)?n:t,sN=(e,t,n)=>EM(e)?fN(e.signal,t,n):e===zz?{value:t}:{value:n},lN=(e,t,n)=>hN(`${e} === '${zz}' || ${e} === '${Rz}'`,t,n),uN=(e,t,n)=>hN(`${e} !== '${zz}' && ${e} !== '${Rz}'`,t,n),cN=(e,t,n)=>mN(`${e} === '${Oz}' || ${e} === '${zz}'`,t,n),fN=(e,t,n)=>mN(`${e} === '${zz}'`,t,n),dN=(e,t,n)=>mN(`${e} === '${Nz}'`,t,n),hN=(e,t,n)=>(t=null!=t?YC(t):t,n=null!=n?YC(n):n,pN(t)&&pN(n)?{signal:`${e} ? (${t=t?t.signal||o(t.value):null}) : (${n=n?n.signal||o(n.value):null})`}:[D({test:e},t)].concat(n||[])),pN=e=>null==e||1===Object.keys(e).length,mN=(e,t,n)=>({signal:`${e} ? (${gN(t)}) : (${gN(n)})`}),gN=e=>EM(e)?e.signal:null==e?null:o(e),yN=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function vN(e,n,i,r){let o;if(n&&t(n,e))return n[e];if(t(i,e))return i[e];if(e.startsWith("title")){switch(e){case"titleColor":o="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":o=e[5].toLowerCase()+e.slice(6)}return r[Uz][o]}if(e.startsWith("label")){switch(e){case"labelColor":o="fill";break;case"labelFont":case"labelFontSize":o=e[5].toLowerCase()+e.slice(6)}return r[qz][o]}return null}function bN(e){const t={};for(const n of e)if(n)for(const e in n)t[e]=1;return Object.keys(t)}function xN(e,t){return{scale:e.scale,range:t}}function wN(e,t,n,i,r){const o=rO(e,t),s=e.orient,l=e.gridScale,u=rN(s,1,-1),c=function(e,t){if(1===t);else if(a(e)){let n=e=D({},e);for(;null!=n.mult;){if(!a(n.mult))return n.mult=EM(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n=n.mult=D({},n.mult)}n.mult=t}else e=EM(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);return e}(e.offset,u);let f,d,h;const p={enter:f={opacity:Qz},update:h={opacity:Kz},exit:d={opacity:Qz}};JC(p,{stroke:o("gridColor"),strokeCap:o("gridCap"),strokeDash:o("gridDash"),strokeDashOffset:o("gridDashOffset"),strokeOpacity:o("gridOpacity"),strokeWidth:o("gridWidth")});const m={scale:e.scale,field:Lz,band:r.band,extra:r.extra,offset:r.offset,round:o("tickRound")},g=oN(s,{signal:"height"},{signal:"width"}),y=l?{scale:l,range:0,mult:u,offset:c}:{value:0,offset:c},v=l?{scale:l,range:1,mult:u,offset:c}:D(g,{mult:u,offset:c});return f.x=h.x=oN(s,m,y),f.y=h.y=aN(s,m,y),f.x2=h.x2=aN(s,v),f.y2=h.y2=oN(s,v),d.x=oN(s,m),d.y=aN(s,m),uO({type:tO,role:"axis-grid",key:Lz,from:i,encode:p},n)}function _N(e,t,n,i,r){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+i+","+r+")"}}function kN(e,t,n,i,r,o){const a=rO(e,t),s=e.orient,l=e.scale,u=rN(s,-1,1),c=MM(a("labelFlush")),f=MM(a("labelFlushOffset")),d=a("labelAlign"),h=a("labelBaseline");let p,m=0===c||!!c;const g=YC(r);g.mult=u,g.offset=YC(a("labelPadding")||0),g.offset.mult=u;const y={scale:l,field:Lz,band:.5,offset:lO(o.offset,a("labelOffset"))},v=oN(s,m?_N(l,c,'"left"','"right"','"center"'):{value:"center"},((e,t,n)=>EM(e)?dN(e.signal,t,n):e===Nz?{value:t}:{value:n})(s,"left","right")),b=oN(s,sN(s,"bottom","top"),m?_N(l,c,'"top"','"bottom"','"middle"'):{value:"middle"}),x=_N(l,c,`-(${f})`,f,0);m=m&&f;const w={opacity:Qz,x:oN(s,y,g),y:aN(s,y,g)},_={enter:w,update:p={opacity:Kz,text:{field:Pz},x:w.x,y:w.y,align:v,baseline:b},exit:{opacity:Qz,x:w.x,y:w.y}};JC(_,{dx:!d&&m?oN(s,x):null,dy:!h&&m?aN(s,x):null}),JC(_,{angle:a("labelAngle"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontWeight:a("labelFontWeight"),fontStyle:a("labelFontStyle"),limit:a("labelLimit"),lineHeight:a("labelLineHeight")},{align:d,baseline:h});const k=a("labelBound");let $=a("labelOverlap");return $=$||k?{separation:a("labelSeparation"),method:$,order:"datum.index",bound:k?{scale:l,orient:s,tolerance:k}:null}:void 0,p.align!==v&&(p.align=yN(p.align,v)),p.baseline!==b&&(p.baseline=yN(p.baseline,b)),uO({type:nO,role:"axis-label",style:qz,key:Lz,from:i,encode:_,overlap:$},n)}function $N(e,t,n,i){const r=rO(e,t),o=e.orient,a=rN(o,-1,1);let s,l;const u={enter:s={opacity:Qz,anchor:YC(r("titleAnchor",null)),align:{signal:sO}},update:l=D({},s,{opacity:Kz,text:YC(e.title)}),exit:{opacity:Qz}},c={signal:`lerp(range("${e.scale}"), ${aO(0,1,.5)})`};return l.x=oN(o,c),l.y=aN(o,c),s.angle=oN(o,Qz,((e,t)=>0===t?0:EM(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t})(a,90)),s.baseline=oN(o,sN(o,Rz,zz),{value:Rz}),l.angle=s.angle,l.baseline=s.baseline,JC(u,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")}),function(e,t,n,i){const r=(e,t)=>null!=e?(n.update[t]=yN(YC(e),n.update[t]),!1):!KC(t,i),o=r(e("titleX"),"x"),a=r(e("titleY"),"y");n.enter.auto=a===o?YC(a):oN(t,YC(a),YC(o))}(r,o,u,n),u.update.align=yN(u.update.align,s.align),u.update.angle=yN(u.update.angle,s.angle),u.update.baseline=yN(u.update.baseline,s.baseline),uO({type:nO,role:"axis-title",style:Uz,from:i,encode:u},n)}function DN(e,t){const n=function(e,t){var n,i,r,o,a,s,l,u,c=t.config,f=c.style,d=c.axis,h="band"===t.scaleType(e.scale)&&c.axisBand,p=e.orient;if(EM(p)){const e=bN([c.axisX,c.axisY]),t=bN([c.axisTop,c.axisBottom,c.axisLeft,c.axisRight]);for(r of(n={},e))n[r]=oN(p,vN(r,c.axisX,d,f),vN(r,c.axisY,d,f));for(r of(i={},t))i[r]=(o=p.signal,a=vN(r,c.axisTop,d,f),s=vN(r,c.axisBottom,d,f),l=vN(r,c.axisLeft,d,f),u=vN(r,c.axisRight,d,f),{signal:(null!=l?`${o} === '${Oz}' ? (${gN(l)}) : `:"")+(null!=s?`${o} === '${Rz}' ? (${gN(s)}) : `:"")+(null!=u?`${o} === '${Nz}' ? (${gN(u)}) : `:"")+(null!=a?`${o} === '${zz}' ? (${gN(a)}) : `:"")+"(null)"})}else n=p===zz||p===Rz?c.axisX:c.axisY,i=c["axis"+p[0].toUpperCase()+p.slice(1)];return n||i||h?D({},d,n,i,h):d}(e,t),i=e.encode||{},r=i.axis||{},o=r.name||void 0,s=r.interactive,l=r.style,u=rO(e,n),c=function(e){const t=e("tickBand");let n,i,r=e("tickOffset");return t?t.signal?(n={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${t.signal}) === 'extent'`},a(r)||(r={signal:`(${t.signal}) === 'extent' ? 0 : ${r}`})):"extent"===t?(n=1,i=!0,r=0):(n=.5,i=!1):(n=e("bandPosition"),i=e("tickExtra")),{extra:i,band:n,offset:r}}(u),f={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:null!=e.title},d=wM(t.add(HM({},[f]))),h=wM(t.add(IM({scale:t.scaleRef(e.scale),extra:t.property(c.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),p=[];let m;return f.grid&&p.push(wN(e,n,i.grid,h,c)),f.ticks&&(m=u("tickSize"),p.push(function(e,t,n,i,r,o){const a=rO(e,t),s=e.orient,l=rN(s,-1,1);let u,c,f;const d={enter:u={opacity:Qz},update:f={opacity:Kz},exit:c={opacity:Qz}};JC(d,{stroke:a("tickColor"),strokeCap:a("tickCap"),strokeDash:a("tickDash"),strokeDashOffset:a("tickDashOffset"),strokeOpacity:a("tickOpacity"),strokeWidth:a("tickWidth")});const h=YC(r);h.mult=l;const p={scale:e.scale,field:Lz,band:o.band,extra:o.extra,offset:o.offset,round:a("tickRound")};return f.y=u.y=oN(s,Qz,p),f.y2=u.y2=oN(s,h),c.x=oN(s,p),f.x=u.x=aN(s,Qz,p),f.x2=u.x2=aN(s,h),c.y=aN(s,p),uO({type:tO,role:"axis-tick",key:Lz,from:i,encode:d},n)}(e,n,i.ticks,h,m,c))),f.labels&&(m=f.ticks?m:0,p.push(kN(e,n,i.labels,h,m,c))),f.domain&&p.push(function(e,t,n,i){const r=rO(e,t),o=e.orient;let a,s;const l={enter:a={opacity:Qz},update:s={opacity:Kz},exit:{opacity:Qz}};JC(l,{stroke:r("domainColor"),strokeCap:r("domainCap"),strokeDash:r("domainDash"),strokeDashOffset:r("domainDashOffset"),strokeWidth:r("domainWidth"),strokeOpacity:r("domainOpacity")});const u=xN(e,0),c=xN(e,1);return a.x=s.x=oN(o,u,Qz),a.x2=s.x2=oN(o,c),a.y=s.y=aN(o,u,Qz),a.y2=s.y2=aN(o,c),uO({type:tO,role:"axis-domain",from:i,encode:l},n)}(e,n,i.domain,d)),f.title&&p.push($N(e,n,i.title,d)),VO(iO({role:"axis",from:d,encode:QC(AN(u,e),r,Jz),marks:p,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:o,interactive:s,style:l}),t)}function AN(e,t){const n={enter:{},update:{}};return JC(n,{orient:e("orient"),offset:e("offset")||0,position:CM(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function SN(e,t,n){const i=c(e.signals),r=c(e.scales);return n||i.forEach((e=>yM(e,t))),c(e.projections).forEach((e=>function(e,t){const n=t.config.projection||{},i={};for(const r in e)"name"!==r&&(i[r]=Mz(e[r],r,t));for(const r in n)null==i[r]&&(i[r]=Mz(n[r],r,t));t.addProjection(e.name,i)}(e,t))),r.forEach((e=>function(e,t){const n=e.type||"linear";Rf(n)||v("Unrecognized scale type: "+o(n)),t.addScale(e.name,{type:n,domain:void 0})}(e,t))),c(e.data).forEach((e=>eN(e,t))),r.forEach((e=>vz(e,t))),(n||i).forEach((e=>function(e,t){const n=t.getSignal(e.name);let i=e.update;e.init&&(i?v("Signals can not include both init and update expressions."):(i=e.init,n.initonly=!0)),i&&(i=CF(i,t),n.update=i.$expr,n.params=i.$params),e.on&&e.on.forEach((e=>jM(e,t,n.id)))}(e,t))),c(e.axes).forEach((e=>DN(e,t))),c(e.marks).forEach((e=>VO(e,t))),c(e.legends).forEach((e=>YO(e,t))),e.title&&KO(e.title,t),t.parseLambdas(),t}function EN(e,n){const i=n.config,r=wM(n.root=n.add(xM())),o=function(e,n){const i=t=>CM(e[t],n[t]),r=[FN("background",i("background")),FN("autosize",HC(i("autosize"))),FN("padding",VC(i("padding"))),FN("width",i("width")||0),FN("height",i("height")||0)],o=r.reduce(((e,t)=>(e[t.name]=t,e)),{}),a={};return c(e.signals).forEach((e=>{t(o,e.name)?e=D(o[e.name],e):r.push(e),a[e.name]=e})),c(n.signals).forEach((e=>{t(a,e.name)||t(o,e.name)||r.push(e)})),r}(e,i);o.forEach((e=>yM(e,n))),n.description=e.description||i.description,n.eventConfig=i.events,n.legends=n.objectProperty(i.legend&&i.legend.layout),n.locale=i.locale;const a=n.add(HM()),s=n.add(YM(dM((e=>QC({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e))(e.encode),Zz,eM,e.style,n,{pulse:wM(a)}))),l=n.add(pz({layout:n.objectProperty(e.layout),legends:n.legends,autosize:n.signalRef("autosize"),mark:r,pulse:wM(s)}));n.operators.pop(),n.pushState(wM(s),wM(l),null),SN(e,n,o),n.operators.push(l);let u=n.add(WM({mark:r,pulse:wM(l)}));return u=n.add(cz({pulse:wM(u)})),u=n.add(dz({pulse:wM(u)})),n.addData("root",new UO(n,a,a,u)),n}function FN(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function CN(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function MN(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function zN(e){return(u(e)?ON:NN)(e)}function ON(e){const t=e.length;let n="[";for(let i=0;i<t;++i){const t=e[i];n+=(i>0?",":"")+(a(t)?t.signal||zN(t):o(t))}return n+"]"}function NN(e){let t,n,i="{",r=0;for(t in e)n=e[t],i+=(++r>1?",":"")+o(t)+":"+(a(n)?n.signal||zN(n):o(n));return i+"}"}CN.prototype=MN.prototype={parse(e){return SN(e,this)},fork(){return new MN(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach((t=>{t.$ref=e.id})),e.refs=null),e},proxy(e){const t=e instanceof vM?wM(e):e;return this.add(lz({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(e,t,n){let i,r;e&&(i=e.data||(e.data={}),r=i[t]||(i[t]=[]),r.push(n))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const i in t.index)n(t.index[i],e,"index:"+i)}return this},pushState(e,t,n){this._encode.push(wM(this.add(dz({pulse:e})))),this._parent.push(t),this._lookup.push(n?wM(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return T(this._parent)},encode(){return T(this._encode)},lookup(){return T(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(i(e))return _M(e,t);e.signal||v("Unsupported field reference: "+o(e));const n=e.signal;let r=this.field[n];if(!r){const e={name:this.signalRef(n)};t&&(e.as=t),this.field[n]=r=wM(this.add(QM(e)))}return r},compareRef(e){let t=!1;const n=e=>EM(e)?(t=!0,this.signalRef(e.signal)):function(e){return e&&e.expr}(e)?(t=!0,this.exprRef(e.expr)):e,i=c(e.field).map(n),r=c(e.order).map(n);return t?wM(this.add(GM({fields:i,orders:r}))):$M(i,r)},keyRef(e,t){let n=!1;const i=this.signals;return e=c(e).map((e=>EM(e)?(n=!0,wM(i[e.signal])):e)),n?wM(this.add(KM({fields:e,flat:t}))):function(e,t){const n={$key:e};return t&&(n.$flat=!0),n}(e,t)},sortRef(e){if(!e)return e;const t=DM(e.op,e.field),n=e.order||"ascending";return n.signal?wM(this.add(GM({fields:t,orders:this.signalRef(n.signal)}))):$M(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const i=this.id();this.streams.push({id:i,source:e,type:t}),this.events[n]=i}return this.events[n]},hasOwnSignal(e){return t(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&v("Duplicate signal name: "+o(e));const n=t instanceof vM?t:this.add(xM(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||v("Unrecognized signal name: "+o(e)),this.signals[e]},signalRef(e){return this.signals[e]?wM(this.signals[e]):(t(this.lambdas,e)||(this.lambdas[e]=this.add(xM(null))),wM(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){const n=e[t],i=CF(n,this),r=this.lambdas[n];r.params=i.$params,r.update=i.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return e&&a(e)?this.signalRef(e.signal||zN(e)):e},exprRef(e,t){const n={expr:CF(e,this)};return t&&(n.expr.$name=t),wM(this.add(XM(n)))},addBinding(e,t){this.bindings||v("Nested signals do not support binding: "+o(e)),this.bindings.push(D({signal:e},t))},addScaleProj(e,n){t(this.scales,e)&&v("Duplicate scale or projection name: "+o(e)),this.scales[e]=this.add(n)},addScale(e,t){this.addScaleProj(e,fz(t))},addProjection(e,t){this.addScaleProj(e,sz(t))},getScale(e){return this.scales[e]||v("Unrecognized scale name: "+o(e)),this.scales[e]},scaleRef(e){return wM(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,n){return t(this.data,e)&&v("Duplicate data set name: "+o(e)),this.data[e]=n},getData(e){return this.data[e]||v("Undefined data set name: "+o(e)),this.data[e]},addDataPipeline(e,n){return t(this.data,e)&&v("Duplicate data set name: "+o(e)),this.addData(e,UO.fromEntries(this,n))}};D(nl,kc,wv,Kv,Ik,b$,rA,BD,uA,UA,tS,cS);const RN=Object.freeze(Object.defineProperty({__proto__:null,Bounds:xh,CanvasHandler:eg,CanvasRenderer:sg,DATE:We,DAY:He,DAYOFYEAR:Ge,Dataflow:Zs,Debug:Ve,Error:d,EventStream:Ps,Gradient:$d,GroupItem:_h,HOURS:Ye,Handler:Mm,HybridHandler:Jg,HybridRenderer:Xg,Info:Xe,Item:wh,MILLISECONDS:Je,MINUTES:Qe,MONTH:Ke,Marks:mm,MultiPulse:Ys,None:Ze,Operator:Rs,Parameters:zs,Pulse:Ws,QUARTER:et,RenderType:ey,Renderer:Om,ResourceLoader:kh,SECONDS:tt,SVGHandler:ug,SVGRenderer:Ng,SVGStringRenderer:Vg,Scenegraph:km,TIME_UNITS:X,Transform:tl,View:CC,WEEK:nt,Warn:it,YEAR:rt,accessor:F,accessorFields:E,accessorName:S,array:c,ascending:z,bandwidthNRD:ll,bin:ul,bootstrapCI:fl,boundClip:ly,boundContext:Wh,boundItem:gm,boundMark:vm,boundStroke:Ah,changeset:Cs,clampRange:_e,codegenExpression:CE,compare:H,constant:g,cumulativeLogNormal:$l,cumulativeNormal:vl,cumulativeUniform:Cl,dayofyear:$e,debounce:A,defaultLocale:h,definition:il,densityLogNormal:kl,densityNormal:yl,densityUniform:Fl,domChild:Sm,domClear:Em,domCreate:Dm,domFind:Am,dotbin:dl,error:v,expressionFunction:FF,extend:D,extent:M,extentIndex:Y,falsy:ue,fastmap:W,field:q,flush:Te,font:lm,fontFamily:sm,fontSize:nm,format:ot,formatLocale:at,formats:st,hasOwnProperty:t,id:b,identity:y,inferType:lt,inferTypes:ut,ingest:$s,inherits:_,inrange:ye,interpolate:Yf,interpolateColors:Hf,interpolateRange:Wf,intersect:iy,intersectBoxLine:tp,intersectPath:Qh,intersectPoint:Kh,intersectRule:ep,isArray:u,isBoolean:l,isDate:ge,isFunction:m,isIterable:ct,isNumber:n,isObject:a,isRegExp:Le,isString:i,isTuple:ws,key:G,lerp:Be,lineHeight:im,loader:p,locale:Ue,logger:f,lruCache:le,markup:Ag,merge:U,mergeConfig:Ie,multiLineOffset:om,one:ce,pad:Re,panLinear:we,panLog:xe,panPow:be,panSymlog:ve,parse:function(e,t,n){return a(e)||v("Input Vega specification must be an object."),EN(e,new CN(t=Ie(function(){const e="sans-serif",t="#4c78a8",n="#000",i="#888",r="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:t},area:{fill:t},image:null,line:{stroke:t,strokeWidth:2},path:{stroke:t},rect:{fill:t},rule:{stroke:n},shape:{stroke:t},symbol:{fill:t,size:64},text:{fill:n,font:e,fontSize:11},trail:{fill:t,size:2},style:{"guide-label":{fill:n,font:e,fontSize:10},"guide-title":{fill:n,font:e,fontSize:11,fontWeight:"bold"},"group-title":{fill:n,font:e,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:n,font:e,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:r},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:i,grid:!1,gridWidth:1,gridColor:r,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:i,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:r,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:i,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}(),t,e.config),n)).toRuntime()},parseExpression:SE,parseSelector:qC,path:qn,pathCurves:Ad,pathEqual:cy,pathParse:zd,pathRectangle:nh,pathRender:Id,pathSymbols:Vd,pathTrail:ih,peek:T,point:Cm,projection:fk,quantileLogNormal:Dl,quantileNormal:bl,quantileUniform:Ml,quantiles:al,quantizeInterpolator:Gf,quarter:Ee,quartiles:sl,get random(){return cl},randomInteger:function(e,t){let n,i,r;null==t&&(t=e,e=0);const o={min(e){return arguments.length?(n=e||0,r=i-n,o):n},max(e){return arguments.length?(i=e||0,r=i-n,o):i},sample:()=>n+Math.floor(r*cl()),pdf:e=>e===Math.floor(e)&&e>=n&&e<i?1/r:0,cdf(e){const t=Math.floor(e);return t<n?0:t>=i?1:(t-n+1)/r},icdf:e=>e>=0&&e<=1?n-1+Math.floor(e*r):NaN};return o.min(e).max(t)},randomKDE:wl,randomLCG:function(e){return function(){return(e=(1103515245*e+12345)%2147483647)/2147483647}},randomLogNormal:Al,randomMixture:Sl,randomNormal:xl,randomUniform:zl,read:$,regressionConstant:Ol,regressionExp:Ll,regressionLinear:Pl,regressionLoess:Hl,regressionLog:jl,regressionPoly:Il,regressionPow:ql,regressionQuad:Ul,renderModule:ny,repeat:ft,resetDefaultLocale:dt,resetSVGClipId:vh,resetSVGDefIds:function(){vh(),bd=0},responseType:k,runtimeContext:jF,sampleCurve:Xl,sampleLogNormal:_l,sampleNormal:gl,sampleUniform:El,scale:Nf,sceneEqual:uy,sceneFromJSON:wm,scenePickVisit:dp,sceneToJSON:xm,sceneVisit:fp,sceneZOrder:cp,scheme:Kf,serializeXML:Sg,setHybridRendererOptions:function(e){Yg.svgMarkTypes=e.svgMarkTypes??["text"],Yg.svgOnTop=e.svgOnTop??!0,Yg.debug=e.debug??!1},setRandom:function(e){cl=e},span:I,splitAccessPath:r,stringValue:o,textMetrics:Jp,timeBin:O,timeFloor:B,timeFormatLocale:ht,timeInterval:j,timeOffset:Me,timeSequence:Ce,timeUnitSpecifier:Fe,timeUnits:N,toBoolean:je,toDate:qe,toNumber:C,toSet:se,toString:Pe,transform:rl,transforms:nl,truncate:Ne,truthy:x,tupleid:_s,typeParsers:pt,utcFloor:R,utcInterval:P,utcOffset:Oe,utcSequence:ze,utcdayofyear:ke,utcquarter:Se,utcweek:De,version:"5.31.0",visitArray:w,week:Ae,writeConfig:s,zero:V,zoomLinear:pe,zoomLog:fe,zoomPow:de,zoomSymlog:he},Symbol.toStringTag,{value:"Module"}));function BN(e){return`Invalid specification ${kr(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const TN='Autosize "fit" only works for single views and layered views.';function PN(e){return`${"width"==e?"Width":"Height"} "container" only works for single views and layered views.`}function jN(e){return`${"width"==e?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${"width"==e?"x":"y"}".`}function LN(e){return e?`Dropping "fit-${e}" because spec has discrete ${Ro(e)}.`:'Dropping "fit" because spec has discrete size.'}function qN(e){return`Unknown field for ${e}. Cannot calculate view size.`}function UN(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function IN(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function WN(e){return`Selection not supported for ${e} yet.`}const HN="The same selection must be used to override scale domains in a layered view.";function GN(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const VN="Animation involving facet, layer, or concat is currently unsupported.";function YN(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function XN(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function JN(e){return`${e}Offset dropped because ${e} is continuous`}function QN(e){return`Invalid field type "${e}".`}function KN(e,t){const{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has ${n&&i?"fill and stroke":n?"fill":"stroke"}.`}function ZN(e,t){return`Dropping ${kr(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}function eR(e,t,n){return`${e} dropped as it is incompatible with "${t}".`}function tR(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function nR(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function iR(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${"ordinal"===t?"order":"magnitude"}.`}function rR(e){return`Using unaggregated domain with raw field has no effect (${kr(e)}).`}function oR(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function aR(e){return`Unaggregated domain is currently unsupported for log scale (${kr(e)}).`}function sR(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function lR(e){return`The step for "${e}" is dropped because the ${"width"===e?"x":"y"} is continuous.`}const uR="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function cR(e,t){return`Invalid ${e}: ${kr(t)}.`}function fR(e){return`1D error band does not support ${e}.`}function dR(e){return`Channel ${e} is required for "binned" bin.`}const hR=f(it);let pR=hR;function mR(...e){pR.error(...e)}function gR(...e){pR.warn(...e)}function yR(e){if(e&&a(e))for(const t of DR)if($r(e,t))return!0;return!1}const vR=["january","february","march","april","may","june","july","august","september","october","november","december"],bR=vR.map((e=>e.substr(0,3))),xR=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],wR=xR.map((e=>e.substr(0,3)));function _R(e,t){const i=[];if(t&&void 0!==e.day&&Qi(e).length>1&&(gR(function(e){return`Dropping day from datetime ${kr(e)} as day cannot be combined with other units.`}(e)),delete(e=Oi(e)).day),void 0!==e.year?i.push(e.year):i.push(2012),void 0!==e.month){const r=t?function(e){if(xr(e)&&(e=+e),n(e))return e-1;{const t=e.toLowerCase(),n=vR.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=bR.indexOf(i);if(-1!==r)return r;throw new Error(cR("month",e))}}(e.month):e.month;i.push(r)}else if(void 0!==e.quarter){const r=t?function(e){if(xr(e)&&(e=+e),n(e))return e>4&&gR(cR("quarter",e)),e-1;throw new Error(cR("quarter",e))}(e.quarter):e.quarter;i.push(n(r)?3*r:`${r}*3`)}else i.push(0);if(void 0!==e.date)i.push(e.date);else if(void 0!==e.day){const r=t?function(e){if(xr(e)&&(e=+e),n(e))return e%7;{const t=e.toLowerCase(),n=xR.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=wR.indexOf(i);if(-1!==r)return r;throw new Error(cR("day",e))}}(e.day):e.day;i.push(n(r)?r+1:`${r}+1`)}else i.push(1);for(const n of["hours","minutes","seconds","milliseconds"]){const t=e[n];i.push(void 0===t?0:t)}return i}function kR(e){const t=_R(e,!0).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}const $R={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},DR=Qi($R);function AR(e){return a(e)?e.binned:SR(e)}function SR(e){return e&&e.startsWith("binned")}function ER(e){return e.startsWith("utc")}const FR={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function CR(e){return DR.filter((t=>zR(e,t)))}function MR(e){const t=CR(e);return t[t.length-1]}function zR(e,t){const n=e.indexOf(t);return!(n<0)&&(!(n>0&&"seconds"===t&&"i"===e.charAt(n-1))&&(!(e.length>n+3&&"day"===t&&"o"===e.charAt(n+3))&&!(n>0&&"year"===t&&"f"===e.charAt(n-1))))}function OR(e,t,{end:n}={end:!1}){const i=or(t),r=ER(e)?"utc":"";let o;const a={};for(const l of DR)zR(e,l)&&(a[l]="quarter"===(s=l)?`(${r}quarter(${i})-1)`:`${r}${s}(${i})`,o=l);var s;return n&&(a[o]+="+1"),function(e){const t=_R(e,!1).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}(a)}function NR(e){if(!e)return;return`timeUnitSpecifier(${kr(CR(e))}, ${kr(FR)})`}function RR(e){if(!e)return;let t;return i(e)?t=SR(e)?{unit:e.substring(6),binned:!0}:{unit:e}:a(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),ER(t.unit)&&(t.utc=!0,t.unit=t.unit.substring(3)),t}function BR(e,t=e=>e){const n=RR(e),i=MR(n.unit);if(i&&"day"!==i){const e={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:r,part:o}=PR(i,n.step);return`${t(kR({...e,[o]:+e[o]+r}))} - ${t(kR(e))}`}}const TR={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function PR(e,n=1){if(function(e){return t(TR,e)}(e))return{part:e,step:n};switch(e){case"day":case"dayofyear":return{part:"date",step:n};case"quarter":return{part:"month",step:3*n};case"week":return{part:"date",step:7*n}}}function jR(e){return!!(null==e?void 0:e.field)&&void 0!==e.equal}function LR(e){return!!(null==e?void 0:e.field)&&void 0!==e.lt}function qR(e){return!!(null==e?void 0:e.field)&&void 0!==e.lte}function UR(e){return!!(null==e?void 0:e.field)&&void 0!==e.gt}function IR(e){return!!(null==e?void 0:e.field)&&void 0!==e.gte}function WR(e){if(null==e?void 0:e.field){if(u(e.range)&&2===e.range.length)return!0;if(Xa(e.range))return!0}return!1}function HR(e){return!!(null==e?void 0:e.field)&&(u(e.oneOf)||u(e.in))}function GR(e){return HR(e)||jR(e)||WR(e)||LR(e)||UR(e)||qR(e)||IR(e)}function VR(e,t){return AP(e,{timeUnit:t,wrapTime:!0})}function YR(e,t=!0){const{field:n}=e,i=RR(e.timeUnit),{unit:r,binned:o}=i||{},a=uP(e,{expr:"datum"}),s=r?`time(${o?a:OR(r,n)})`:a;if(jR(e))return`${s}===${VR(e.equal,r)}`;if(LR(e)){return`${s}<${VR(e.lt,r)}`}if(UR(e)){return`${s}>${VR(e.gt,r)}`}if(qR(e)){return`${s}<=${VR(e.lte,r)}`}if(IR(e)){return`${s}>=${VR(e.gte,r)}`}if(HR(e))return`indexof([${(l=e.oneOf,u=r,l.map((e=>VR(e,u)))).join(",")}], ${s}) !== -1`;if(function(e){return!!(null==e?void 0:e.field)&&void 0!==e.valid}(e))return XR(s,e.valid);if(WR(e)){const{range:n}=Ga(e),i=Xa(n)?{signal:`${n.signal}[0]`}:n[0],o=Xa(n)?{signal:`${n.signal}[1]`}:n[1];if(null!==i&&null!==o&&t)return"inrange("+s+", ["+VR(i,r)+", "+VR(o,r)+"])";const a=[];return null!==i&&a.push(`${s} >= ${VR(i,r)}`),null!==o&&a.push(`${s} <= ${VR(o,r)}`),a.length>0?a.join(" && "):"true"}var l,u;throw new Error(`Invalid field predicate: ${kr(e)}`)}function XR(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function JR(e){return GR(e)&&e.timeUnit?{...e,timeUnit:RR(e.timeUnit)}:e}function QR(e){return"ordinal"===e||"nominal"===e}const KR="quantitative",ZR="ordinal",eB="temporal",tB="nominal",nB="geojson";const iB="linear",rB="log",oB="pow",aB="sqrt",sB="time",lB="utc",uB="point",cB="band",fB={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function dB(e,t){const n=fB[e],i=fB[t];return n===i||"ordinal-position"===n&&"time"===i||"ordinal-position"===i&&"time"===n}const hB={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function pB(e){return hB[e]}const mB=new Set(["linear","log","pow","sqrt","symlog"]),gB=new Set([...mB,"time","utc"]);function yB(e){return mB.has(e)}const vB=new Set(["quantile","quantize","threshold"]),bB=new Set([...gB,...vB,"sequential","identity"]),xB=new Set(["ordinal","bin-ordinal","point","band"]);function wB(e){return xB.has(e)}function _B(e){return bB.has(e)}function kB(e){return gB.has(e)}function $B(e){return vB.has(e)}function DB(e){return $r(e,"param")}const{type:AB,domain:SB,range:EB,rangeMax:FB,rangeMin:CB,scheme:MB,...zB}={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},OB=Qi(zB);function NB(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(e);case"bins":return!["point","band","identity","ordinal"].includes(e);case"round":return kB(e)||"band"===e||"point"===e;case"padding":case"rangeMin":case"rangeMax":return kB(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return"band"===e;case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return kB(e);case"nice":return kB(e)||"quantize"===e||"threshold"===e;case"exponent":return"pow"===e;case"base":return"log"===e;case"constant":return"symlog"===e;case"zero":return _B(e)&&!ji(["log","time","utc","threshold","quantile"],e)}}function RB(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return go(e)?void 0:`Cannot use the scale property "${t}" with non-color channel.`;case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}const BB={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},TB=BB.arc,PB=BB.area,jB=BB.bar,LB=BB.image,qB=BB.line,UB=BB.point,IB=BB.rect,WB=BB.rule,HB=BB.text,GB=BB.tick,VB=BB.trail,YB=BB.circle,XB=BB.square,JB=BB.geoshape;function QB(e){return["line","area","trail"].includes(e)}function KB(e){return["rect","bar","image","arc","tick"].includes(e)}const ZB=new Set(Qi(BB));function eT(e){return $r(e,"type")}const tT=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],nT=Qi({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),iT=["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],rT={area:["line","point"],bar:iT,rect:iT,line:["point"],tick:["bandSize","thickness",...iT]},oT=Qi({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function aT(e){return $r(e,"band")}const sT={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},lT={binSpacing:0,continuousBandSize:5,minBandSize:.25,timeUnitBandPosition:.5},uT={...lT,binSpacing:1},cT={...lT,thickness:1};function fT(e,{isPath:t}){return void 0===e||"break-paths-show-path-domains"===e?t?"break-paths-show-domains":"filter":null===e?"show":e}function dT({markDef:e,config:t,scaleChannel:n,scaleType:i,isCountAggregate:r}){var o,a;if(!i||!_B(i)||r)return"always-valid";const s=fT(us("invalid",e,t),{isPath:QB(e.type)});return void 0!==(null==(a=null==(o=t.scale)?void 0:o.invalid)?void 0:a[n])?"show":s}function hT({scaleName:e,scale:t,mode:n}){const i=`domain('${e}')`;if(!t||!e)return;const r=`${i}[0]`,o=`peek(${i})`,a=t.domainHasZero();if("definitely"===a)return{scale:e,value:0};if("maybe"===a){return{signal:`scale('${e}', inrange(0, ${i}) ? 0 : ${"zeroOrMin"===n?r:o})`}}return{signal:`scale('${e}', ${"zeroOrMin"===n?r:o})`}}function pT({scaleChannel:e,channelDef:t,scale:n,scaleName:i,markDef:r,config:o}){var a;const s=null==n?void 0:n.get("type"),l=vP(t),u=dT({scaleChannel:e,markDef:r,config:o,scaleType:s,isCountAggregate:Ba(null==l?void 0:l.aggregate)});if(l&&"show"===u){const t=(null==(a=o.scale.invalid)?void 0:a[e])??"zero-or-min";return{test:XR(uP(l,{expr:"datum"}),!1),...mT(t,n,i)}}}function mT(e,t,n){if(a(i=e)&&"value"in i){const{value:t}=e;return Xa(t)?{signal:t.signal}:{value:t}}var i;return hT({scale:t,scaleName:n,mode:"zeroOrMin"})}function gT(e){const{channel:t,channelDef:n,markDef:i,scale:r,scaleName:o,config:a}=e,s=zo(t),l=bT(e),u=pT({scaleChannel:s,channelDef:n,scale:r,scaleName:o,markDef:i,config:a});return void 0!==u?[u,l]:l}function yT(e,t,n,i){const r={};if(t&&(r.scale=t),QT(e)){const{datum:t}=e;yR(t)?r.signal=kR(t):Xa(t)?r.signal=t.signal:Ha(t)?r.signal=t.expr:r.value=t}else r.field=uP(e,n);if(i){const{offset:e,band:t}=i;e&&(r.offset=e),t&&(r.band=t)}return r}function vT({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:i,startSuffix:r,endSuffix:o="end",bandPosition:a=.5}){const s=!Xa(a)&&0<a&&a<1?"datum":void 0,l=uP(t,{expr:s,suffix:r}),u=void 0!==n?uP(n,{expr:s}):uP(t,{suffix:o,expr:s}),c={};if(0===a||1===a){c.scale=e;const t=0===a?l:u;c.field=t}else{const t=Xa(a)?`(1-${a.signal}) * ${l} + ${a.signal} * ${u}`:`${1-a} * ${l} + ${a} * ${u}`;c.signal=`scale("${e}", ${t})`}return i&&(c.offset=i),c}function bT({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:l,defaultRef:u,bandPosition:c}){if(t){if(tP(t)){const u=null==a?void 0:a.get("type");if(nP(t)){c??(c=UT({fieldDef:t,fieldDef2:n,markDef:i,config:r}));const{bin:a,timeUnit:f,type:d}=t;if(La(a)||c&&f&&d===eB)return(null==s?void 0:s.impute)?yT(t,o,{binSuffix:"mid"},{offset:l}):c&&!wB(u)?vT({scaleName:o,fieldOrDatumDef:t,bandPosition:c,offset:l}):yT(t,o,EP(t,e)?{binSuffix:"range"}:{},{offset:l});if(qa(a)){if(XT(n))return vT({scaleName:o,fieldOrDatumDef:t,fieldOrDatumDef2:n,bandPosition:c,offset:l});gR(dR(e===Er?Cr:Mr))}}return yT(t,o,wB(u)?{binSuffix:"range"}:{},{offset:l,band:"band"===u?c??t.bandPosition??.5:void 0})}if(iP(t)){const n=l?{offset:l}:{};return{...xT(e,t.value),...n}}}return m(u)&&(u=u()),u?{...u,...l?{offset:l}:{}}:u}function xT(e,t){return ji(["x","x2"],e)&&"width"===t?{field:{group:"width"}}:ji(["y","y2"],e)&&"height"===t?{field:{group:"height"}}:rs(t)}function wT(e){return e&&"number"!==e&&"time"!==e}function _T(e,t,n){return`${e}(${t}${n?`, ${kr(n)}`:""})`}function kT({fieldOrDatumDef:e,format:t,formatType:n,expr:r,normalizeStack:o,config:a}){var s,l;if(wT(n))return DT({fieldOrDatumDef:e,format:t,formatType:n,expr:r,config:a});const u=$T(e,r,o),c=JT(e);if(void 0===t&&void 0===n&&a.customFormatTypes){if("quantitative"===c){if(o&&a.normalizedNumberFormatType)return DT({fieldOrDatumDef:e,format:a.normalizedNumberFormat,formatType:a.normalizedNumberFormatType,expr:r,config:a});if(a.numberFormatType)return DT({fieldOrDatumDef:e,format:a.numberFormat,formatType:a.numberFormatType,expr:r,config:a})}if("temporal"===c&&a.timeFormatType&&XT(e)&&void 0===e.timeUnit)return DT({fieldOrDatumDef:e,format:a.timeFormat,formatType:a.timeFormatType,expr:r,config:a})}if(DP(e)){const n=function({field:e,timeUnit:t,format:n,formatType:r,rawTimeFormat:o,isUTCScale:a}){return!t||n?!t&&r?`${r}(${e}, '${n}')`:`${a?"utc":"time"}Format(${e}, '${n=i(n)?n:o}')`:function(e,t,n){if(!e)return;const i=NR(e);return`${n||ER(e)?"utc":"time"}Format(${t}, ${i})`}(t,e,a)}({field:u,timeUnit:XT(e)?null==(s=RR(e.timeUnit))?void 0:s.unit:void 0,format:t,formatType:a.timeFormatType,rawTimeFormat:a.timeFormat,isUTCScale:rP(e)&&(null==(l=e.scale)?void 0:l.type)===lB});return n?{signal:n}:void 0}if(t=ET({type:c,specifiedFormat:t,config:a,normalizeStack:o}),XT(e)&&La(e.bin)){return{signal:MT(u,uP(e,{expr:r,binSuffix:"end"}),t,n,a)}}return t||"quantitative"===JT(e)?{signal:`${FT(u,t)}`}:{signal:`isValid(${u}) ? ${u} : ""+${u}`}}function $T(e,t,n){return XT(e)?n?`${uP(e,{expr:t,suffix:"end"})}-${uP(e,{expr:t,suffix:"start"})}`:uP(e,{expr:t}):function(e){const{datum:t}=e;return yR(t)?kR(t):`${kr(t)}`}(e)}function DT({fieldOrDatumDef:e,format:t,formatType:n,expr:i,normalizeStack:r,config:o,field:a}){if(a??(a=$T(e,i,r)),"datum.value"!==a&&XT(e)&&La(e.bin)){return{signal:MT(a,uP(e,{expr:i,binSuffix:"end"}),t,n,o)}}return{signal:_T(n,a,t)}}function AT(e,t,n,r,o,a){var s;if(!i(r)||!wT(r)){if(void 0===n&&void 0===r&&o.customFormatTypes&&"quantitative"===JT(e)){if(o.normalizedNumberFormatType&&oP(e)&&"normalize"===e.stack)return;if(o.numberFormatType)return}if(oP(e)&&"normalize"===e.stack&&o.normalizedNumberFormat)return ET({type:"quantitative",config:o,normalizeStack:!0});if(DP(e)){const t=XT(e)?null==(s=RR(e.timeUnit))?void 0:s.unit:void 0;if(void 0===t&&o.customFormatTypes&&o.timeFormatType)return;return function({specifiedFormat:e,timeUnit:t,config:n,omitTimeFormatConfig:i}){if(e)return e;if(t)return{signal:NR(t)};return i?void 0:n.timeFormat}({specifiedFormat:n,timeUnit:t,config:o,omitTimeFormatConfig:a})}return ET({type:t,specifiedFormat:n,config:o})}}function ST(e,t,n){var i;return e&&(Xa(e)||"number"===e||"time"===e)?e:DP(t)&&"time"!==n&&"utc"!==n?XT(t)&&(null==(i=RR(null==t?void 0:t.timeUnit))?void 0:i.utc)?"utc":"time":void 0}function ET({type:e,specifiedFormat:t,config:n,normalizeStack:r}){return i(t)?t:e===KR?r?n.normalizedNumberFormat:n.numberFormat:void 0}function FT(e,t){return`format(${e}, "${t||""}")`}function CT(e,t,n,r){return wT(n)?_T(n,e,t):FT(e,(i(t)?t:void 0)??r.numberFormat)}function MT(e,t,n,i,r){if(void 0===n&&void 0===i&&r.customFormatTypes&&r.numberFormatType)return MT(e,t,r.numberFormat,r.numberFormatType,r);const o=CT(e,n,i,r),a=CT(t,n,i,r);return`${XR(e,!1)} ? "null" : ${o} + " – " + ${a}`}const zT="min",OT={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function NT(e){return t(OT,e)}function RT(e){return e&&("count"===e.op||$r(e,"field"))}function BT(e){return e&&u(e)}function TT(e){return $r(e,"row")||$r(e,"column")}function PT(e){return $r(e,"header")}function jT(e){return $r(e,"facet")}function LT(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return{...n?{timeUnit:n}:{},...i?{bin:i}:{},...r?{aggregate:r}:{},field:t}}function qT(e){return $r(e,"sort")}function UT({fieldDef:e,fieldDef2:t,markDef:n,config:i}){if(tP(e)&&void 0!==e.bandPosition)return e.bandPosition;if(XT(e)){const{timeUnit:r,bin:o}=e;if(r&&!t)return cs("timeUnitBandPosition",n,i);if(La(o))return.5}}function IT({channel:e,fieldDef:t,fieldDef2:n,markDef:i,config:r,scaleType:o,useVlSizeChannel:a}){var s,l,u;const c=Ro(e),f=us(a?"size":c,i,r,{vgChannel:c});if(void 0!==f)return f;if(XT(t)){const{timeUnit:e,bin:a}=t;if(e&&!n)return{band:cs("timeUnitBandSize",i,r)};if(La(a)&&!wB(o))return{band:1}}return KB(i.type)?o?wB(o)?(null==(s=r[i.type])?void 0:s.discreteBandSize)||{band:1}:null==(l=r[i.type])?void 0:l.continuousBandSize:null==(u=r[i.type])?void 0:u.discreteBandSize:void 0}function WT(e,t,n,i){return!!(La(e.bin)||e.timeUnit&&nP(e)&&"temporal"===e.type)&&void 0!==UT({fieldDef:e,fieldDef2:t,markDef:n,config:i})}function HT(e){return $r(e,"sort")&&!$r(e,"field")}function GT(e){return $r(e,"condition")}function VT(e){const t=null==e?void 0:e.condition;return!!t&&!u(t)&&XT(t)}function YT(e){const t=null==e?void 0:e.condition;return!!t&&!u(t)&&tP(t)}function XT(e){return $r(e,"field")||"count"===(null==e?void 0:e.aggregate)}function JT(e){return null==e?void 0:e.type}function QT(e){return $r(e,"datum")}function KT(e){return nP(e)&&!cP(e)||eP(e)}function ZT(e){return nP(e)&&"quantitative"===e.type&&!e.bin||eP(e)}function eP(e){return QT(e)&&n(e.datum)}function tP(e){return XT(e)||QT(e)}function nP(e){return e&&($r(e,"field")||"count"===e.aggregate)&&$r(e,"type")}function iP(e){return $r(e,"value")}function rP(e){return $r(e,"scale")||$r(e,"sort")}function oP(e){return $r(e,"axis")||$r(e,"stack")||$r(e,"impute")}function aP(e){return $r(e,"legend")}function sP(e){return $r(e,"format")||$r(e,"formatType")}function lP(e){return Bi(e,["legend","axis","header","scale"])}function uP(e,t={}){let n=e.field;const i=t.prefix;let r=t.suffix,o="";if(function(e){return"count"===e.aggregate}(e))n=yr("count");else{let i;if(!t.nofn)if(function(e){return $r(e,"op")}(e))i=e.op;else{const{bin:a,aggregate:s,timeUnit:l}=e;La(a)?(i=ja(a),r=(t.binSuffix??"")+(t.suffix??"")):s?Oa(s)?(o=`["${n}"]`,n=`argmax_${s.argmax}`):za(s)?(o=`["${n}"]`,n=`argmin_${s.argmin}`):i=String(s):l&&!AR(l)&&(i=function(e){const{utc:t,...n}=RR(e);return n.unit?(t?"utc":"")+Qi(n).map((e=>tr(`${"unit"===e?"":`_${e}_`}${n[e]}`))).join(""):(t?"utc":"")+"timeunit"+Qi(n).map((e=>tr(`_${e}_${n[e]}`))).join("")}(l),r=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(t.suffix??""))}i&&(n=n?`${i}_${n}`:i)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?fr(n):t.expr?ar(n,t.expr)+o:ur(n)+o}function cP(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return XT(e)&&!!e.bin;case"temporal":return!1}throw new Error(QN(e.type))}const fP=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return function(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(Oa(t))return`${r} for argmax(${t.argmax})`;if(za(t))return`${r} for argmin(${t.argmin})`;const o=i&&!AR(i)?RR(i):void 0,a=t||(null==o?void 0:o.unit)||(null==o?void 0:o.maxbins)&&"timeunit"||La(n)&&"bin";return a?`${a.toUpperCase()}(${r})`:r}(e);default:return function(e,t){var n;const{field:i,bin:r,timeUnit:o,aggregate:a}=e;if("count"===a)return t.countTitle;if(La(r))return`${i} (binned)`;if(o&&!AR(o)){const e=null==(n=RR(o))?void 0:n.unit;if(e)return`${i} (${CR(e).join("-")})`}else if(a)return Oa(a)?`${i} for max ${a.argmax}`:za(a)?`${i} for min ${a.argmin}`:`${rr(a)} of ${i}`;return i}(e,t)}};let dP=fP;function hP(e){dP=e}function pP(e,t,{allowDisabling:n,includeDefault:i=!0}){var r;const o=null==(r=mP(e))?void 0:r.title;if(!XT(e))return o??e.title;const a=e,s=i?gP(a,t):void 0;return n?hr(o,a.title,s):o??a.title??s}function mP(e){return oP(e)&&e.axis?e.axis:aP(e)&&e.legend?e.legend:PT(e)&&e.header?e.header:void 0}function gP(e,t){return dP(e,t)}function yP(e){if(sP(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}{const t=mP(e)??{},{format:n,formatType:i}=t;return{format:n,formatType:i}}}function vP(e){return XT(e)?e:VT(e)?e.condition:void 0}function bP(e){return tP(e)?e:YT(e)?e.condition:void 0}function xP(e,t,r,o={}){if(i(e)||n(e)||l(e)){return gR(function(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${kr(n)}}.`}(t,i(e)?"string":n(e)?"number":"boolean",e)),{value:e}}return tP(e)?wP(e,t,r,o):YT(e)?{...e,condition:wP(e.condition,t,r,o)}:e}function wP(e,t,r,o){if(sP(e)){const{format:n,formatType:i,...a}=e;if(wT(i)&&!r.customFormatTypes)return gR(XN(t)),wP(a,t,r,o)}else{const n=oP(e)?"axis":aP(e)?"legend":PT(e)?"header":null;if(n&&e[n]){const{format:i,formatType:a,...s}=e[n];if(wT(a)&&!r.customFormatTypes)return gR(XN(t)),wP({...e,[n]:s},t,r,o)}}return XT(e)?_P(e,t,o):function(e){let t=e.type;if(t)return e;const{datum:r}=e;return t=n(r)?"quantitative":i(r)?"nominal":yR(r)?"temporal":void 0,{...e,type:t}}(e)}function _P(e,t,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:o,bin:a,field:s}=e,l={...e};if(n||!r||Na(r)||Oa(r)||za(r)||(gR(function(e){return`Invalid aggregation operator "${e}".`}(r)),delete l.aggregate),o&&(l.timeUnit=RR(o)),s&&(l.field=`${s}`),La(a)&&(l.bin=kP(a,t)),qa(a)&&!ra(t)&&gR(function(e){return`Channel ${e} should not be used with "binned" bin.`}(t)),nP(l)){const{type:e}=l,t=function(e){if(e)switch(e=e.toLowerCase()){case"q":case KR:return"quantitative";case"t":case eB:return"temporal";case"o":case ZR:return"ordinal";case"n":case tB:return"nominal";case nB:return"geojson"}}(e);e!==t&&(l.type=t),"quantitative"!==e&&Ba(r)&&(gR(function(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}(e,r)),l.type="quantitative")}else if(!Mo(t)){const e=function(e,t){var n;switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(qT(e)&&u(e.sort))return"ordinal";const{aggregate:i,bin:r,timeUnit:o}=e;if(o)return"temporal";if(r||i&&!Oa(i)&&!za(i))return"quantitative";if(rP(e)&&(null==(n=e.scale)?void 0:n.type))switch(fB[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(l,t);l.type=e}if(nP(l)){const{compatible:e,warning:n}=function(e,t){const n=e.type;if("geojson"===n&&"shape"!==t)return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case Dr:case Ar:case Sr:return cP(e)?$P:{compatible:!1,warning:tR(t)};case Er:case Fr:case zr:case Or:case Ir:case Wr:case Hr:case eo:case no:case io:case ro:case oo:case ao:case Yr:case Br:case Nr:case so:return $P;case jr:case qr:case Pr:case Lr:return n!==KR?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:$P;case Xr:case Jr:case Qr:case Kr:case Vr:case Tr:case Rr:case Cr:case Mr:case Ur:return"nominal"!==n||e.sort?$P:{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`};case Gr:case Zr:return cP(e)||rP(i=e)&&$B(null==(r=i.scale)?void 0:r.type)?$P:{compatible:!1,warning:nR(t)};case to:return"nominal"!==e.type||"sort"in e?$P:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}var i,r}(l,t)||{};!1===e&&gR(n)}if(qT(l)&&i(l.sort)){const{sort:e}=l;if(NT(e))return{...l,sort:{encoding:e}};const t=e.substring(1);if("-"===e.charAt(0)&&NT(t))return{...l,sort:{encoding:t,order:"descending"}}}if(PT(l)){const{header:e}=l;if(e){const{orient:t,...n}=e;if(t)return{...l,header:{...n,labelOrient:e.labelOrient||t,titleOrient:e.titleOrient||t}}}}return l}function kP(e,t){return l(e)?{maxbins:Wa(t)}:"binned"===e?{binned:!0}:e.maxbins||e.step?e:{...e,maxbins:Wa(t)}}const $P={compatible:!0};function DP(e){const{formatType:t}=yP(e);return"time"===t||!t&&((n=e)&&("temporal"===n.type||XT(n)&&!!n.timeUnit));var n}function AP(e,{timeUnit:r,type:o,wrapTime:a,undefinedIfExprNotRequired:s}){var l;const u=r&&(null==(l=RR(r))?void 0:l.unit);let c,f=u||"temporal"===o;return Ha(e)?c=e.expr:Xa(e)?c=e.signal:yR(e)?(f=!0,c=kR(e)):(i(e)||n(e))&&f&&(c=`datetime(${kr(e)})`,function(e){return t($R,e)}(u)&&(n(e)&&e<1e4||i(e)&&isNaN(Date.parse(e)))&&(c=kR({[u]:e}))),c?a&&f?`time(${c})`:c:s?void 0:kr(e)}function SP(e,t){const{type:n}=e;return t.map((t=>{const i=AP(t,{timeUnit:XT(e)&&!AR(e.timeUnit)?e.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return void 0!==i?{signal:i}:t}))}function EP(e,t){return La(e.bin)?$a(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const FP={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function CP(e){return null==e?void 0:e.condition}const MP=["domain","grid","labels","ticks","title"],zP={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},OP={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},NP={...OP,style:1,labelExpr:1,encoding:1};function RP(e){return t(NP,e)}const BP=Qi({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function TP(e){return $r(e,"mark")}class PP{constructor(e,t){this.name=e,this.run=t}hasMatchingType(e){return!!TP(e)&&(eT(t=e.mark)?t.type:t)===this.name;var t}}function jP(e,t){const n=e&&e[t];return!!n&&(u(n)?Li(n,(e=>!!e.field)):XT(n)||VT(n))}function LP(e,t){const n=e&&e[t];return!!n&&(u(n)?Li(n,(e=>!!e.field)):XT(n)||QT(n)||YT(n))}function qP(e,t){if(ra(t)){const n=e[t];if((XT(n)||QT(n))&&(QR(n.type)||XT(n)&&n.timeUnit)){return LP(e,To(t))}}return!1}function UP(e){return Li(xo,(t=>{if(jP(e,t)){const n=e[t];if(u(n))return Li(n,(e=>!!e.aggregate));{const e=vP(n);return e&&!!e.aggregate}}return!1}))}function IP(e,n){const i=[],r=[],o=[],a=[],s={};return GP(e,((l,u)=>{if(XT(l)){const{field:c,aggregate:f,bin:d,timeUnit:h,...p}=l;if(f||h||d){const e=mP(l),m=null==e?void 0:e.title;let g=uP(l,{forAs:!0});const y={...m?[]:{title:pP(l,n,{allowDisabling:!0})},...p,field:g};if(f){let e;if(Oa(f)?(e="argmax",g=uP({op:"argmax",field:f.argmax},{forAs:!0}),y.field=`${g}.${c}`):za(f)?(e="argmin",g=uP({op:"argmin",field:f.argmin},{forAs:!0}),y.field=`${g}.${c}`):"boxplot"!==f&&"errorbar"!==f&&"errorband"!==f&&(e=f),e){const t={op:e,as:g};c&&(t.field=c),a.push(t)}}else if(i.push(g),nP(l)&&La(d)){if(r.push({bin:d,field:c,as:g}),i.push(uP(l,{binSuffix:"end"})),EP(l,u)&&i.push(uP(l,{binSuffix:"range"})),ra(u)){const e={field:`${g}_end`};s[`${u}2`]=e}y.bin="binned",Mo(u)||(y.type=KR)}else if(h&&!AR(h)){o.push({timeUnit:h,field:c,as:g});const e=nP(l)&&l.type!==eB&&"time";e&&(u===eo||u===ro?y.formatType=e:!function(e){return t(ea,e)}(u)?ra(u)&&(y.axis={formatType:e,...y.axis}):y.legend={formatType:e,...y.legend})}s[u]=y}else i.push(c),s[u]=e[u]}else s[u]=e[u]})),{bins:r,timeUnits:o,aggregate:a,groupby:i,encoding:s}}function WP(e,t,n){const i=Da(t,n);if(!i)return!1;if("binned"===i){const n=e[t===Cr?Er:Fr];return!!(XT(n)&&XT(e[t])&&qa(n.bin))}return!0}function HP(e,t){const n={};for(const i of Qi(e)){const r=xP(e[i],i,t,{compositeMark:!0});n[i]=r}return n}function GP(e,t,n){if(e)for(const i of Qi(e)){const r=e[i];if(u(r))for(const e of r)t.call(n,e,i);else t.call(n,r,i)}}function VP(e,t){return Qi(t).reduce(((n,i)=>{switch(i){case Er:case Fr:case oo:case so:case ao:case Cr:case Mr:case zr:case Or:case Br:case Tr:case Nr:case Rr:case Ur:case Pr:case jr:case Lr:case qr:case eo:case Gr:case Yr:case ro:return n;case to:if("line"===e||"trail"===e)return n;case no:case io:{const e=t[i];if(u(e)||XT(e))for(const t of c(e))t.aggregate||n.push(uP(t,{}));return n}case Vr:if("trail"===e)return n;case Ir:case Wr:case Hr:case Xr:case Jr:case Qr:case Zr:case Kr:{const e=vP(t[i]);return e&&!e.aggregate&&n.push(uP(e,{})),n}}}),[])}function YP(e,t,n,i=!0){if("tooltip"in n)return{tooltip:n.tooltip};return{tooltip:[...e.map((({fieldPrefix:e,titlePrefix:n})=>{const r=i?` of ${XP(t)}`:"";return{field:e+t.field,type:t.type,title:Xa(n)?{signal:`${n}"${escape(r)}"`}:n+r}})),...Wi(function(e){const t=[];for(const n of Qi(e))if(jP(e,n)){const i=e[n],r=c(i);for(const e of r)XT(e)?t.push(e):VT(e)&&t.push(e.condition)}return t}(n).map(lP),Ti)]}}function XP(e){const{title:t,field:n}=e;return hr(t,n)}function JP(e,t,n,r,o){const{scale:a,axis:s}=n;return({partName:l,mark:u,positionPrefix:c,endPositionPrefix:f,extraEncoding:d={}})=>{const h=XP(n);return QP(e,l,o,{mark:u,encoding:{[t]:{field:`${c}_${n.field}`,type:n.type,...void 0!==h?{title:h}:{},...void 0!==a?{scale:a}:{},...void 0!==s?{axis:s}:{}},...i(f)?{[`${t}2`]:{field:`${f}_${n.field}`}}:{},...r,...d}})}}function QP(e,t,n,i){const{clip:r,color:o,opacity:a}=e,s=e.type;return e[t]||void 0===e[t]&&n[t]?[{...i,mark:{...n[t],...r?{clip:r}:{},...o?{color:o}:{},...a?{opacity:a}:{},...eT(i.mark)?i.mark:{type:i.mark},style:`${s}-${String(t)}`,...l(e[t])?{}:e[t]}}]:[]}function KP(e,t,n){const{encoding:i}=e,r="vertical"===t?"y":"x",o=i[r],a=i[`${r}2`],s=i[`${r}Error`],l=i[`${r}Error2`];return{continuousAxisChannelDef:ZP(o,n),continuousAxisChannelDef2:ZP(a,n),continuousAxisChannelDefError:ZP(s,n),continuousAxisChannelDefError2:ZP(l,n),continuousAxis:r}}function ZP(e,t){if(null==e?void 0:e.aggregate){const{aggregate:n,...i}=e;return n!==t&&gR(function(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}(n,t)),i}return e}function ej(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(eT(n)&&n.orient)return n.orient;if(KT(r)){if(KT(o)){const e=XT(r)&&r.aggregate,n=XT(o)&&o.aggregate;if(e||n!==t){if(n||e!==t){if(e===t&&n===t)throw new Error("Both x and y cannot have aggregate");return DP(o)&&!DP(r)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(KT(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}const tj="boxplot",nj=new PP(tj,rj);function ij(e){return n(e)?"tukey":e}function rj(e,{config:t}){e={...e,encoding:HP(e.encoding,t)};const{mark:n,encoding:i,params:r,projection:o,...s}=e,l=eT(n)?n:{type:n};r&&gR(WN("boxplot"));const c=l.extent??t.boxplot.extent,f=us("size",l,t),d=l.invalid,h=ij(c),{bins:p,timeUnits:m,transform:g,continuousAxisChannelDef:y,continuousAxis:v,groupby:b,aggregate:x,encodingWithoutContinuousAxis:w,ticksOrient:_,boxOrient:k,customTooltipWithoutAggregatedField:$}=function(e,t,n){const i=ej(e,tj),{continuousAxisChannelDef:r,continuousAxis:o}=KP(e,i,tj),a=r.field,s=fr(a),l=ij(t),c=[...oj(a),{op:"median",field:a,as:`mid_box_${s}`},{op:"min",field:a,as:("min-max"===l?"lower_whisker_":"min_")+s},{op:"max",field:a,as:("min-max"===l?"upper_whisker_":"max_")+s}],f="min-max"===l||"tukey"===l?[]:[{calculate:`${sr(`upper_box_${s}`)} - ${sr(`lower_box_${s}`)}`,as:`iqr_${s}`},{calculate:`min(${sr(`upper_box_${s}`)} + ${sr(`iqr_${s}`)} * ${t}, ${sr(`max_${s}`)})`,as:`upper_whisker_${s}`},{calculate:`max(${sr(`lower_box_${s}`)} - ${sr(`iqr_${s}`)} * ${t}, ${sr(`min_${s}`)})`,as:`lower_whisker_${s}`}],{[o]:d,...h}=e.encoding,{customTooltipWithoutAggregatedField:p,filteredEncoding:m}=function(e){const{tooltip:t,...n}=e;if(!t)return{filteredEncoding:n};let i,r;if(u(t)){for(const e of t)e.aggregate?(i||(i=[]),i.push(e)):(r||(r=[]),r.push(e));i&&(n.tooltip=i)}else t.aggregate?n.tooltip=t:r=t;return u(r)&&1===r.length&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}(h),{bins:g,timeUnits:y,aggregate:v,groupby:b,encoding:x}=IP(m,n),w="vertical"===i?"horizontal":"vertical",_=i,k=[...g,...y,{aggregate:[...v,...c],groupby:b},...f];return{bins:g,timeUnits:y,transform:k,groupby:b,aggregate:v,continuousAxisChannelDef:r,continuousAxis:o,encodingWithoutContinuousAxis:x,ticksOrient:w,boxOrient:_,customTooltipWithoutAggregatedField:p}}(e,c,t),D=fr(y.field),{color:A,size:S,...E}=w,F=e=>JP(l,v,y,e,t.boxplot),C=F(E),M=F(w),z=(a(t.boxplot.box)?t.boxplot.box.color:t.mark.color)||"#4c78a8",O=F({...E,...S?{size:S}:{},color:{condition:{test:`${sr(`lower_box_${y.field}`)} >= ${sr(`upper_box_${y.field}`)}`,...A||{value:z}}}}),N=YP([{fieldPrefix:"min-max"===h?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:"min-max"===h?"lower_whisker_":"min_",titlePrefix:"Min"}],y,w),R={type:"tick",color:"black",opacity:1,orient:_,invalid:d,aria:!1},B="min-max"===h?N:YP([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],y,w),T=[...C({partName:"rule",mark:{type:"rule",invalid:d,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:B}),...C({partName:"rule",mark:{type:"rule",invalid:d,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:B}),...C({partName:"ticks",mark:R,positionPrefix:"lower_whisker",extraEncoding:B}),...C({partName:"ticks",mark:R,positionPrefix:"upper_whisker",extraEncoding:B})],P=[..."tukey"!==h?T:[],...M({partName:"box",mark:{type:"bar",...f?{size:f}:{},orient:k,invalid:d,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:N}),...O({partName:"median",mark:{type:"tick",invalid:d,...a(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...f?{size:f}:{},orient:_,aria:!1},positionPrefix:"mid_box",extraEncoding:N})];if("min-max"===h)return{...s,transform:(s.transform??[]).concat(g),layer:P};const j=sr(`lower_box_${y.field}`),L=sr(`upper_box_${y.field}`),q=`(${L} - ${j})`,U=`${j} - ${c} * ${q}`,I=`${L} + ${c} * ${q}`,W=sr(y.field),H={joinaggregate:oj(y.field),groupby:b},G={transform:[{filter:`(${U} <= ${W}) && (${W} <= ${I})`},{aggregate:[{op:"min",field:y.field,as:`lower_whisker_${D}`},{op:"max",field:y.field,as:`upper_whisker_${D}`},{op:"min",field:`lower_box_${y.field}`,as:`lower_box_${D}`},{op:"max",field:`upper_box_${y.field}`,as:`upper_box_${D}`},...x],groupby:b}],layer:T},{tooltip:V,...Y}=E,{scale:X,axis:J}=y,Q=XP(y),K=Bi(J,["title"]),Z=QP(l,"outliers",t.boxplot,{transform:[{filter:`(${W} < ${U}) || (${W} > ${I})`}],mark:"point",encoding:{[v]:{field:y.field,type:y.type,...void 0!==Q?{title:Q}:{},...void 0!==X?{scale:X}:{},...Ji(K)?{}:{axis:K}},...Y,...A?{color:A}:{},...$?{tooltip:$}:{}}})[0];let ee;const te=[...p,...m,H];return Z?ee={transform:te,layer:[Z,G]}:(ee=G,ee.transform.unshift(...te)),{...s,layer:[ee,{transform:g,layer:P}]}}function oj(e){const t=fr(e);return[{op:"q1",field:e,as:`lower_box_${t}`},{op:"q3",field:e,as:`upper_box_${t}`}]}const aj="errorbar",sj=new PP(aj,lj);function lj(e,{config:t}){e={...e,encoding:HP(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:a,markDef:s,outerSpec:l,tooltipEncoding:u}=cj(e,aj,t);delete o.size;const c=JP(s,r,i,o,t.errorbar),f=s.thickness,d=s.size,h={type:"tick",orient:a,aria:!1,...void 0!==f?{thickness:f}:{},...void 0!==d?{size:d}:{}},p=[...c({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:u}),...c({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:u}),...c({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...void 0!==f?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u})];return{...l,transform:n,...p.length>1?{layer:p}:{...p[0]}}}function uj(e,t){const{encoding:n}=e;if(function(e){return(tP(e.x)||tP(e.y))&&!tP(e.x2)&&!tP(e.y2)&&!tP(e.xError)&&!tP(e.xError2)&&!tP(e.yError)&&!tP(e.yError2)}(n))return{orient:ej(e,t),inputType:"raw"};const i=function(e){return tP(e.x2)||tP(e.y2)}(n),r=function(e){return tP(e.xError)||tP(e.xError2)||tP(e.yError)||tP(e.yError2)}(n),o=n.x,a=n.y;if(i){if(r)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const e=n.x2,i=n.y2;if(tP(e)&&tP(i))throw new Error(`${t} cannot have both x2 and y2`);if(tP(e)){if(KT(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}if(tP(i)){if(KT(a))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${t}`)}throw new Error("No ranged axis")}{const e=n.xError,i=n.xError2,r=n.yError,s=n.yError2;if(tP(i)&&!tP(e))throw new Error(`${t} cannot have xError2 without xError`);if(tP(s)&&!tP(r))throw new Error(`${t} cannot have yError2 without yError`);if(tP(e)&&tP(r))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(tP(e)){if(KT(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(tP(r)){if(KT(a))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function cj(e,t,n){const{mark:i,encoding:r,params:o,projection:a,...s}=e,l=eT(i)?i:{type:i};o&&gR(WN(t));const{orient:u,inputType:c}=uj(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:p,continuousAxis:m}=KP(e,u,t),{errorBarSpecificAggregate:g,postAggregateCalculates:y,tooltipSummary:v,tooltipTitleWithFieldName:b}=function(e,t,n,i,r,o,a,s){let l=[],u=[];const c=t.field;let f,d=!1;if("raw"===o){const t=e.center?e.center:e.extent?"iqr"===e.extent?"median":"mean":s.errorbar.center,n=e.extent?e.extent:"mean"===t?"stderr":"iqr";if("median"===t!=("iqr"===n)&&gR(function(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}(t,n,a)),"stderr"===n||"stdev"===n)l=[{op:n,field:c,as:`extent_${c}`},{op:t,field:c,as:`center_${c}`}],u=[{calculate:`${sr(`center_${c}`)} + ${sr(`extent_${c}`)}`,as:`upper_${c}`},{calculate:`${sr(`center_${c}`)} - ${sr(`extent_${c}`)}`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:rr(t)},{fieldPrefix:"upper_",titlePrefix:fj(t,n,"+")},{fieldPrefix:"lower_",titlePrefix:fj(t,n,"-")}],d=!0;else{let e,t,i;"ci"===n?(e="mean",t="ci0",i="ci1"):(e="median",t="q1",i="q3"),l=[{op:t,field:c,as:`lower_${c}`},{op:i,field:c,as:`upper_${c}`},{op:e,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:pP({field:c,aggregate:i,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:pP({field:c,aggregate:t,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:pP({field:c,aggregate:e,type:"quantitative"},s,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&gR((h=e.center,`${(p=e.extent)?"extent ":""}${p&&h?"and ":""}${h?"center ":""}${p&&h?"are ":"is "}not needed when data are aggregated.`)),"aggregated-upper-lower"===o?(f=[],u=[{calculate:sr(n.field),as:`upper_${c}`},{calculate:sr(c),as:`lower_${c}`}]):"aggregated-error"===o&&(f=[{fieldPrefix:"",titlePrefix:c}],u=[{calculate:`${sr(c)} + ${sr(i.field)}`,as:`upper_${c}`}],r?u.push({calculate:`${sr(c)} + ${sr(r.field)}`,as:`lower_${c}`}):u.push({calculate:`${sr(c)} - ${sr(i.field)}`,as:`lower_${c}`}));for(const e of u)f.push({fieldPrefix:e.as.substring(0,6),titlePrefix:cr(cr(e.calculate,"datum['",""),"']","")})}var h,p;return{postAggregateCalculates:u,errorBarSpecificAggregate:l,tooltipSummary:f,tooltipTitleWithFieldName:d}}(l,f,d,h,p,c,t,n),{[m]:x,["x"===m?"x2":"y2"]:w,["x"===m?"xError":"yError"]:_,["x"===m?"xError2":"yError2"]:k,...$}=r,{bins:D,timeUnits:A,aggregate:S,groupby:E,encoding:F}=IP($,n),C=[...S,...g],M="raw"!==c?[]:E,z=YP(v,f,F,b);return{transform:[...s.transform??[],...D,...A,...0===C.length?[]:[{aggregate:C,groupby:M}],...y],groupby:M,continuousAxisChannelDef:f,continuousAxis:m,encodingWithoutContinuousAxis:F,ticksOrient:"vertical"===u?"horizontal":"vertical",markDef:l,outerSpec:s,tooltipEncoding:z}}function fj(e,t,n){return`${rr(e)} ${n} ${t}`}const dj="errorband",hj=new PP(dj,pj);function pj(e,{config:t}){e={...e,encoding:HP(e.encoding,t)};const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:a,outerSpec:s,tooltipEncoding:l}=cj(e,dj,t),u=a,c=JP(u,r,i,o,t.errorband),f=void 0!==e.encoding.x&&void 0!==e.encoding.y;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p={...u.interpolate?{interpolate:u.interpolate}:{},...u.tension&&u.interpolate?{tension:u.tension}:{}};return f?(d={...d,...p,ariaRoleDescription:"errorband"},h={...h,...p,aria:!1}):u.interpolate?gR(fR("interpolate")):u.tension&&gR(fR("tension")),{...s,transform:n,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:l})]}}const mj={};function gj(e,t,n){const i=new PP(e,t);mj[e]={normalizer:i,parts:n}}gj(tj,rj,["box","median","outliers","rule","ticks"]),gj(aj,lj,["ticks","rule"]),gj(dj,pj,["band","borders"]);const yj=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],vj={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},bj={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},xj=Qi(vj),wj=Qi(bj),_j=Qi({header:1,headerRow:1,headerColumn:1,headerFacet:1}),kj=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],$j="_vgsid_",Dj={point:{on:"click",fields:[$j],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function Aj(e){return"legend"===e||!!(null==e?void 0:e.legend)}function Sj(e){return Aj(e)&&a(e)}function Ej(e){return!!(null==e?void 0:e.select)}function Fj(e){const t=[];for(const n of e||[]){if(Ej(n))continue;const{expr:e,bind:i,...r}=n;if(i&&e){const n={...r,bind:i,init:e};t.push(n)}else{const n={...r,...e?{update:e}:{},...i?{bind:i}:{}};t.push(n)}}return t}function Cj(e){return $r(e,"concat")}function Mj(e){return $r(e,"vconcat")}function zj(e){return $r(e,"hconcat")}function Oj({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function Nj(e){return $r(e,"step")}function Rj(e){return $r(e,"view")||$r(e,"width")||$r(e,"height")}const Bj=Qi({align:1,bounds:1,center:1,columns:1,spacing:1});function Tj(e,t){return e[t]??e["width"===t?"continuousWidth":"continuousHeight"]}function Pj(e,t){const n=jj(e,t);return Nj(n)?n.step:Lj}function jj(e,t){return hr(e[t]??e["width"===t?"discreteWidth":"discreteHeight"],{step:e.step})}const Lj=20,qj={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:Lj},mark:{color:"#4c78a8",invalid:"break-paths-show-path-domains",timeUnitBandSize:1},arc:{},area:{},bar:uT,circle:{},geoshape:{},image:{},line:{},point:{},rect:lT,rule:{color:"black"},square:{},text:{color:"black"},tick:cT,trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,tickBandPaddingInner:.25,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:4,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0,framesPerSecond:2,animationDuration:5},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:Dj,style:{},title:{},facet:{spacing:20},concat:{spacing:20},normalizedNumberFormat:".0%"},Uj=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],Ij={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},Wj={blue:Uj[0],orange:Uj[1],red:Uj[2],teal:Uj[3],green:Uj[4],yellow:Uj[5],purple:Uj[6],pink:Uj[7],brown:Uj[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function Hj(e){const t=Qi(e||{}),n={};for(const i of t){const t=e[i];n[i]=CP(t)?ts(t):ns(t)}return n}const Gj=[...oT,...BP,..._j,"background","padding","legend","lineBreak","scale","style","title","view"];function Vj(e={}){const{color:t,font:n,fontSize:i,selection:r,...o}=e,l=Ie({},Oi(qj),n?function(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}(n):{},t?function(e={}){return{signals:[{name:"color",value:a(e)?{...Wj,...e}:Wj}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}(t):{},i?function(e){return{signals:[{name:"fontSize",value:a(e)?{...Ij,...e}:Ij}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}(i):{},o||{});r&&s(l,"selection",r,!0);const u=Bi(l,Gj);for(const a of["background","lineBreak","padding"])l[a]&&(u[a]=ns(l[a]));for(const a of oT)l[a]&&(u[a]=Ga(l[a]));for(const a of BP)l[a]&&(u[a]=Hj(l[a]));for(const a of _j)l[a]&&(u[a]=Ga(l[a]));if(l.legend&&(u.legend=Ga(l.legend)),l.scale){const{invalid:e,...t}=l.scale,n=Ga(e,{level:1});u.scale={...Ga(t),...Qi(n).length>0?{invalid:n}:{}}}return l.style&&(u.style=function(e){const t=Qi(e),n={};for(const i of t)n[i]=Hj(e[i]);return n}(l.style)),l.title&&(u.title=Ga(l.title)),l.view&&(u.view=Ga(l.view)),u}const Yj=new Set(["view",...ZB]),Xj=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],Jj={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...rT};function Qj(e){e=Oi(e);for(const t of Xj)delete e[t];if(e.axis)for(const t in e.axis)CP(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of yj)delete e.legend[t];if(e.mark){for(const t of nT)delete e.mark[t];e.mark.tooltip&&a(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(Fj(e.params)),delete e.params);for(const t of Yj){for(const i of nT)delete e[t][i];const n=Jj[t];if(n)for(const i of n)delete e[t][i];Kj(e,t)}for(const t of Qi(mj))delete e[t];!function(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:i}=Va(e.title);Ji(t)||(e.style["group-title"]={...e.style["group-title"],...t});Ji(n)||(e.style["group-subtitle"]={...e.style["group-subtitle"],...n});Ji(i)?delete e.title:e.title=i}(e);for(const t in e)a(e[t])&&Ji(e[t])&&delete e[t];return Ji(e)?void 0:e}function Kj(e,t,n,i){"view"===t&&(n="cell");const r={...e[t],...e.style[n??t]};Ji(r)||(e.style[n??t]=r),delete e[t]}function Zj(e){return $r(e,"layer")}class eL{map(e,t){return jT(e)?this.mapFacet(e,t):function(e){return $r(e,"repeat")}(e)?this.mapRepeat(e,t):zj(e)?this.mapHConcat(e,t):Mj(e)?this.mapVConcat(e,t):Cj(e)?this.mapConcat(e,t):this.mapLayerOrUnit(e,t)}mapLayerOrUnit(e,t){if(Zj(e))return this.mapLayer(e,t);if(TP(e))return this.mapUnit(e,t);throw new Error(BN(e))}mapLayer(e,t){return{...e,layer:e.layer.map((e=>this.mapLayerOrUnit(e,t)))}}mapHConcat(e,t){return{...e,hconcat:e.hconcat.map((e=>this.map(e,t)))}}mapVConcat(e,t){return{...e,vconcat:e.vconcat.map((e=>this.map(e,t)))}}mapConcat(e,t){const{concat:n,...i}=e;return{...i,concat:n.map((e=>this.map(e,t)))}}mapFacet(e,t){return{...e,spec:this.map(e.spec,t)}}mapRepeat(e,t){return{...e,spec:this.map(e.spec,t)}}}const tL={zero:1,center:1,normalize:1};const nL=new Set([TB,jB,PB,WB,UB,YB,XB,qB,HB,GB]),iL=new Set([jB,PB,TB]);function rL(e){return XT(e)&&"quantitative"===JT(e)&&!e.bin}function oL(e,t,{orient:n,type:i}){const r="x"===t?"y":"radius",o="x"===t&&["bar","area"].includes(i),a=e[t],s=e[r];if(XT(a)&&XT(s))if(rL(a)&&rL(s)){if(a.stack)return t;if(s.stack)return r;const e=XT(a)&&!!a.aggregate;if(e!==(XT(s)&&!!s.aggregate))return e?t:r;if(o){if("vertical"===n)return r;if("horizontal"===n)return t}}else{if(rL(a))return t;if(rL(s))return r}else{if(rL(a)){if(o&&"vertical"===n)return;return t}if(rL(s)){if(o&&"horizontal"===n)return;return r}}}function aL(e,n){var i,r;const o=eT(e)?e:{type:e},a=o.type;if(!nL.has(a))return null;const s=oL(n,"x",o)||oL(n,"theta",o);if(!s)return null;const u=n[s],f=XT(u)?uP(u,{}):void 0,d=function(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(s),h=[],p=new Set;if(n[d]){const e=n[d],t=XT(e)?uP(e,{}):void 0;t&&t!==f&&(h.push(d),p.add(t))}const m="x"===d?"xOffset":"yOffset",g=n[m],y=XT(g)?uP(g,{}):void 0;y&&y!==f&&(h.push(m),p.add(y));const v=ta.reduce(((e,t)=>{if("tooltip"!==t&&jP(n,t)){const i=n[t];for(const n of c(i)){const i=vP(n);if(i.aggregate)continue;const r=uP(i,{});r&&p.has(r)||e.push({channel:t,fieldDef:i})}}return e}),[]);let b;return void 0!==u.stack?b=l(u.stack)?u.stack?"zero":null:u.stack:iL.has(a)&&(b="zero"),b&&t(tL,b)?UP(n)&&0===v.length?null:((null==(i=null==u?void 0:u.scale)?void 0:i.type)&&(null==(r=null==u?void 0:u.scale)?void 0:r.type)!==iB&&(null==u?void 0:u.stack)&&gR(`Stack is applied to a non-linear scale (${u.scale.type}).`),tP(n[No(s)])?(void 0!==u.stack&&gR(`Cannot stack "${x=s}" if there is already "${x}2".`),null):(XT(u)&&u.aggregate&&!Ta.has(u.aggregate)&&gR(`Stacking is applied even though the aggregate function is non-summative ("${u.aggregate}").`),{groupbyChannels:h,groupbyFields:p,fieldChannel:s,impute:null!==u.impute&&QB(a),stackBy:v,offset:b})):null;var x}function sL(e,t,n){const i=Ga(e),r=us("orient",i,n);if(i.orient=function(e,t,n){switch(e){case UB:case YB:case XB:case HB:case IB:case LB:return}const{x:i,y:r,x2:o,y2:a}=t;switch(e){case jB:if(XT(i)&&(qa(i.bin)||XT(r)&&r.aggregate&&!i.aggregate))return"vertical";if(XT(r)&&(qa(r.bin)||XT(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(a||o){if(n)return n;if(!o)return(XT(i)&&i.type===KR&&!La(i.bin)||eP(i))&&XT(r)&&qa(r.bin)?"horizontal":"vertical";if(!a)return(XT(r)&&r.type===KR&&!La(r.bin)||eP(r))&&XT(i)&&qa(i.bin)?"vertical":"horizontal"}case WB:if(o&&(!XT(i)||!qa(i.bin))&&a&&(!XT(r)||!qa(r.bin)))return;case PB:if(a)return XT(r)&&qa(r.bin)?"horizontal":"vertical";if(o)return XT(i)&&qa(i.bin)?"vertical":"horizontal";if(e===WB){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case qB:case GB:{const t=ZT(i),o=ZT(r);if(n)return n;if(t&&!o)return"tick"!==e?"horizontal":"vertical";if(!t&&o)return"tick"!==e?"vertical":"horizontal";if(t&&o)return"vertical";{const e=nP(i)&&i.type===eB,t=nP(r)&&r.type===eB;if(e&&!t)return"vertical";if(!e&&t)return"horizontal"}return}}return"vertical"}(i.type,t,r),void 0!==r&&r!==i.orient&&gR(`Specified orient "${i.orient}" overridden with "${r}".`),"bar"===i.type&&i.orient){const e=us("cornerRadiusEnd",i,n);if(void 0!==e){const n="horizontal"===i.orient&&t.x2||"vertical"===i.orient&&t.y2?["cornerRadius"]:sT[i.orient];for(const t of n)i[t]=e;void 0!==i.cornerRadiusEnd&&delete i.cornerRadiusEnd}}const o=us("opacity",i,n),a=us("fillOpacity",i,n);void 0===o&&void 0===a&&(i.opacity=function(e,t){if(ji([UB,GB,YB,XB],e)&&!UP(t))return.7;return}(i.type,t));return void 0===us("cursor",i,n)&&(i.cursor=function(e,t,n){if(t.href||e.href||us("href",e,n))return"pointer";return e.cursor}(i,t,n)),i}function lL(e){const{point:t,line:n,...i}=e;return Qi(i).length>1?i:i.type}function uL(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:Bi(e[t],["point","line"])});return e}function cL(e,t={},n){return"transparent"===e.point?{opacity:0}:e.point?a(e.point)?e.point:{}:void 0!==e.point?null:t.point||n.shape?a(t.point)?t.point:{}:void 0}function fL(e,t={}){return e.line?!0===e.line?{}:e.line:void 0!==e.line?null:t.line?!0===t.line?{}:t.line:void 0}class dL{constructor(){this.name="path-overlay"}hasMatchingType(e,t){if(TP(e)){const{mark:n,encoding:i}=e,r=eT(n)?n:{type:n};switch(r.type){case"line":case"rule":case"trail":return!!cL(r,t[r.type],i);case"area":return!!cL(r,t[r.type],i)||!!fL(r,t[r.type])}}return!1}run(e,t,n){const{config:i}=t,{params:r,projection:o,mark:a,name:s,encoding:l,...u}=e,c=HP(l,i),f=eT(a)?a:{type:a},d=cL(f,i[f.type],c),h="area"===f.type&&fL(f,i[f.type]),p=[{name:s,...r?{params:r}:{},mark:lL({..."area"===f.type&&void 0===f.opacity&&void 0===f.fillOpacity?{opacity:.7}:{},...f}),encoding:Bi(c,["shape"])}],m=aL(sL(f,c,i),c);let g=c;if(m){const{fieldChannel:e,offset:t}=m;g={...c,[e]:{...c[e],...t?{stack:t}:{}}}}return g=Bi(g,["y2","x2"]),h&&p.push({...o?{projection:o}:{},mark:{type:"line",...Ri(f,["clip","interpolate","tension","tooltip"]),...h},encoding:g}),d&&p.push({...o?{projection:o}:{},mark:{type:"point",opacity:1,filled:!0,...Ri(f,["clip","tooltip"]),...d},encoding:g}),n({...u,layer:p},{...t,config:uL(i)})}}function hL(e,t){return t?TT(e)?bL(e,t):gL(e,t):e}function pL(e,t){return t?bL(e,t):e}function mL(e,t,n){const r=t[e];return!i(o=r)&&$r(o,"repeat")?r.repeat in n?{...t,[e]:n[r.repeat]}:void gR(function(e){return`Unknown repeated value "${e}".`}(r.repeat)):t;var o}function gL(e,t){if(void 0!==(e=mL("field",e,t))){if(null===e)return null;if(qT(e)&&RT(e.sort)){const n=mL("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function yL(e,t){if(XT(e))return gL(e,t);{const n=mL("datum",e,t);return n===e||n.type||(n.type="nominal"),n}}function vL(e,t){if(!tP(e)){if(YT(e)){const n=yL(e.condition,t);if(n)return{...e,condition:n};{const{condition:t,...n}=e;return n}}return e}{const n=yL(e,t);if(n)return n;if(GT(e))return{condition:e.condition}}}function bL(e,t){const n={};for(const i in e)if($r(e,i)){const r=e[i];if(u(r))n[i]=r.map((e=>vL(e,t))).filter((e=>e));else{const e=vL(r,t);void 0!==e&&(n[i]=e)}}return n}class xL{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(TP(e)){const{encoding:t,mark:n}=e;if("line"===n||eT(n)&&"line"===n.type)for(const e of Co){const n=t[zo(e)];if(t[e]&&(XT(n)&&!qa(n.bin)||QT(n)))return!0}}return!1}run(e,t,n){const{encoding:i,mark:r}=e;var o,s;return gR((o=!!i.x2,s=!!i.y2,`Line mark is for continuous lines and thus cannot be used with ${o&&s?"x2 and y2":o?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),n({...e,mark:a(r)?{...r,type:"rule"}:"rule"},t)}}function wL({parentEncoding:e,encoding:t={},layer:n}){let i={};if(e){const r=new Set([...Qi(e),...Qi(t)]);for(const o of r){const r=t[o],a=e[o];if(tP(r)){const e={...a,...r};i[o]=e}else YT(r)?i[o]={...r,condition:{...a,...r.condition}}:r||null===r?i[o]=r:(n||iP(a)||Xa(a)||tP(a)||u(a))&&(i[o]=a)}}else i=t;return!i||Ji(i)?void 0:i}function _L(e){const{parentProjection:t,projection:n}=e;return t&&n&&gR(function(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${kr(t)} is overridden by a child projection ${kr(n)}.`}({parentProjection:t,projection:n})),n??t}function kL(e){return $r(e,"filter")}function $L(e){return $r(e,"lookup")}function DL(e){return $r(e,"pivot")}function AL(e){return $r(e,"density")}function SL(e){return $r(e,"quantile")}function EL(e){return $r(e,"regression")}function FL(e){return $r(e,"loess")}function CL(e){return $r(e,"sample")}function ML(e){return $r(e,"window")}function zL(e){return $r(e,"joinaggregate")}function OL(e){return $r(e,"flatten")}function NL(e){return $r(e,"calculate")}function RL(e){return $r(e,"bin")}function BL(e){return $r(e,"impute")}function TL(e){return $r(e,"timeUnit")}function PL(e){return $r(e,"aggregate")}function jL(e){return $r(e,"stack")}function LL(e){return $r(e,"fold")}function qL(e){return $r(e,"extent")&&!$r(e,"density")&&!$r(e,"regression")}function UL(e,t){const{transform:n,...i}=e;if(n){return{...i,transform:n.map((e=>{if(kL(e))return{filter:HL(e,t)};if(RL(e)&&Ua(e.bin))return{...e,bin:WL(e.bin)};if($L(e)){const{selection:t,...n}=e.from;return t?{...e,from:{param:t,...n}}:e}return e}))}}return e}function IL(e,t){var n,i;const r=Oi(e);if(XT(r)&&Ua(r.bin)&&(r.bin=WL(r.bin)),rP(r)&&(null==(i=null==(n=r.scale)?void 0:n.domain)?void 0:i.selection)){const{selection:e,...t}=r.scale.domain;r.scale.domain={...t,...e?{param:e}:{}}}if(GT(r))if(u(r.condition))r.condition=r.condition.map((e=>{const{selection:n,param:i,test:r,...o}=e;return i?e:{...o,test:HL(e,t)}}));else{const{selection:e,param:n,test:i,...o}=IL(r.condition,t);r.condition=n?r.condition:{...o,test:HL(r.condition,t)}}return r}function WL(e){const t=e.extent;if(null==t?void 0:t.selection){const{selection:n,...i}=t;return{...e,extent:{...i,param:n}}}return e}function HL(e,t){const n=e=>zi(e,(e=>{var n;const i={param:e,empty:t.emptySelections[e]??!0};return(n=t.selectionPredicates)[e]??(n[e]=[]),t.selectionPredicates[e].push(i),i}));return e.selection?n(e.selection):zi(e.test||e.filter,(e=>e.selection?n(e.selection):e))}class GL extends eL{map(e,t){const n=t.selections??[];if(e.params&&!TP(e)){const t=[];for(const i of e.params)Ej(i)?n.push(i):t.push(i);e.params=t}return t.selections=n,super.map(e,t)}mapUnit(e,t){const n=t.selections;if(!n||!n.length)return e;const r=(t.path??[]).concat(e.name),o=[];for(const a of n)if(a.views&&a.views.length)for(const t of a.views)(i(t)&&(t===e.name||r.includes(t))||u(t)&&t.map((e=>r.indexOf(e))).every(((e,t,n)=>-1!==e&&(0===t||e>n[t-1]))))&&o.push(a);else o.push(a);return o.length&&(e.params=o),e}}for(const BG of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=GL.prototype[BG];GL.prototype[BG]=function(t,n){return e.call(this,t,VL(t,n))}}function VL(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function YL(e,t){void 0===t&&(t=Vj(e.config));const n=function(e,t={}){const n={config:t};return QL.map(XL.map(JL.map(e,n),n),n)}(e,t),{width:i,height:r}=e,o=function(e,t,n){let{width:i,height:r}=t;const o=TP(e)||Zj(e),a={};o?"container"==i&&"container"==r?(a.type="fit",a.contains="padding"):"container"==i?(a.type="fit-x",a.contains="padding"):"container"==r&&(a.type="fit-y",a.contains="padding"):("container"==i&&(gR(PN("width")),i=void 0),"container"==r&&(gR(PN("height")),r=void 0));const s={type:"pad",...a,...n?KL(n.autosize):{},...KL(e.autosize)};"fit"!==s.type||o||(gR(TN),s.type="pad");"container"==i&&"fit"!=s.type&&"fit-x"!=s.type&&gR(jN("width"));"container"==r&&"fit"!=s.type&&"fit-y"!=s.type&&gR(jN("height"));if(_r(s,{type:"pad"}))return;return s}(n,{width:i,height:r,autosize:e.autosize},t);return{...n,...o?{autosize:o}:{}}}const XL=new class extends eL{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[nj,sj,hj,new dL,new xL]}map(e,t){if(TP(e)){const n=jP(e.encoding,Dr),i=jP(e.encoding,Ar),r=jP(e.encoding,Sr);if(n||i||r)return this.mapFacetedUnit(e,t)}return super.map(e,t)}mapUnit(e,t){const{parentEncoding:n,parentProjection:i}=t,r=pL(e.encoding,t.repeater),o={...e,...e.name?{name:[t.repeaterPrefix,e.name].filter((e=>e)).join("_")}:{},...r?{encoding:r}:{}};if(n||i)return this.mapUnitWithParentEncodingOrProjection(o,t);const a=this.mapLayerOrUnit.bind(this);for(const s of this.nonFacetUnitNormalizers)if(s.hasMatchingType(o,t.config))return s.run(o,t,a);return o}mapRepeat(e,t){return function(e){return!u(e.repeat)&&$r(e.repeat,"layer")}(e)?this.mapLayerRepeat(e,t):this.mapNonLayerRepeat(e,t)}mapLayerRepeat(e,t){const{repeat:n,spec:i,...r}=e,{row:o,column:a,layer:s}=n,{repeater:l={},repeaterPrefix:u=""}=t;return o||a?this.mapRepeat({...e,repeat:{...o?{row:o}:{},...a?{column:a}:{}},spec:{repeat:{layer:s},spec:i}},t):{...r,layer:s.map((e=>{const n={...l,layer:e},r=`${(i.name?`${i.name}_`:"")+u}child__layer_${tr(e)}`,o=this.mapLayerOrUnit(i,{...t,repeater:n,repeaterPrefix:r});return o.name=r,o}))}}mapNonLayerRepeat(e,t){const{repeat:n,spec:i,data:r,...o}=e;!u(n)&&e.columns&&(e=Bi(e,["columns"]),gR(GN("repeat")));const a=[],{repeater:s={},repeaterPrefix:l=""}=t,c=!u(n)&&n.row||[s?s.row:null],f=!u(n)&&n.column||[s?s.column:null],d=u(n)&&n||[s?s.repeat:null];for(const p of d)for(const e of c)for(const r of f){const o={repeat:p,row:e,column:r,layer:s.layer},c=(i.name?`${i.name}_`:"")+l+"child__"+(u(n)?`${tr(p)}`:(n.row?`row_${tr(e)}`:"")+(n.column?`column_${tr(r)}`:"")),f=this.map(i,{...t,repeater:o,repeaterPrefix:c});f.name=c,a.push(Bi(f,["data"]))}const h=u(n)?e.columns:n.column?n.column.length:1;return{data:i.data??r,align:"all",...o,columns:h,concat:a}}mapFacet(e,t){const{facet:n}=e;return TT(n)&&e.columns&&(e=Bi(e,["columns"]),gR(GN("facet"))),super.mapFacet(e,t)}mapUnitWithParentEncodingOrProjection(e,t){const{encoding:n,projection:i}=e,{parentEncoding:r,parentProjection:o,config:a}=t,s=_L({parentProjection:o,projection:i}),l=wL({parentEncoding:r,encoding:pL(n,t.repeater)});return this.mapUnit({...e,...s?{projection:s}:{},...l?{encoding:l}:{}},{config:a})}mapFacetedUnit(e,t){const{row:n,column:i,facet:r,...o}=e.encoding,{mark:a,width:s,projection:l,height:u,view:c,params:f,encoding:d,...h}=e,{facetMapping:p,layout:m}=this.getFacetMappingAndLayout({row:n,column:i,facet:r},t),g=pL(o,t.repeater);return this.mapFacet({...h,...m,facet:p,spec:{...s?{width:s}:{},...u?{height:u}:{},...c?{view:c}:{},...l?{projection:l}:{},mark:a,encoding:g,...f?{params:f}:{}}},t)}getFacetMappingAndLayout(e,t){const{row:n,column:i,facet:r}=e;if(n||i){r&&gR(`Facet encoding dropped as ${(o=[...n?[Dr]:[],...i?[Ar]:[]]).join(" and ")} ${o.length>1?"are":"is"} also specified.`);const t={},a={};for(const n of[Dr,Ar]){const i=e[n];if(i){const{align:e,center:r,spacing:o,columns:s,...l}=i;t[n]=l;for(const t of["align","center","spacing"])void 0!==i[t]&&(a[t]??(a[t]={}),a[t][n]=i[t])}}return{facetMapping:t,layout:a}}{const{align:e,center:n,spacing:i,columns:o,...a}=r;return{facetMapping:hL(a,t.repeater),layout:{...e?{align:e}:{},...n?{center:n}:{},...i?{spacing:i}:{},...o?{columns:o}:{}}}}var o}mapLayer(e,{parentEncoding:t,parentProjection:n,...i}){const{encoding:r,projection:o,...a}=e,s={...i,parentEncoding:wL({parentEncoding:t,encoding:r,layer:!0}),parentProjection:_L({parentProjection:n,projection:o})};return super.mapLayer({...a,...e.name?{name:[s.repeaterPrefix,e.name].filter((e=>e)).join("_")}:{}},s)}},JL=new class extends eL{map(e,t){return t.emptySelections??(t.emptySelections={}),t.selectionPredicates??(t.selectionPredicates={}),e=UL(e,t),super.map(e,t)}mapLayerOrUnit(e,t){if((e=UL(e,t)).encoding){const n={};for(const[i,r]of Zi(e.encoding))n[i]=IL(r,t);e={...e,encoding:n}}return super.mapLayerOrUnit(e,t)}mapUnit(e,t){const{selection:n,...i}=e;return n?{...i,params:Zi(n).map((([e,n])=>{const{init:i,bind:r,empty:o,...a}=n;"single"===a.type?(a.type="point",a.toggle=!1):"multi"===a.type&&(a.type="point"),t.emptySelections[e]="none"!==o;for(const s of Ki(t.selectionPredicates[e]??{}))s.empty="none"!==o;return{name:e,value:i,select:a,bind:r}}))}:e}},QL=new GL;function KL(e){return i(e)?{type:e}:e??{}}const ZL=["background","padding"];function eq(e,t){const n={};for(const i of ZL)e&&void 0!==e[i]&&(n[i]=ns(e[i]));return t&&(n.params=e.params),n}class tq{constructor(e={},t={}){this.explicit=e,this.implicit=t}clone(){return new tq(Oi(this.explicit),Oi(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(e){return hr(this.explicit[e],this.implicit[e])}getWithExplicit(e){return void 0!==this.explicit[e]?{explicit:!0,value:this.explicit[e]}:void 0!==this.implicit[e]?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,{value:t,explicit:n}){void 0!==t&&this.set(e,t,n)}set(e,t,n){return delete this[n?"implicit":"explicit"][e],this[n?"explicit":"implicit"][e]=t,this}copyKeyFromSplit(e,{explicit:t,implicit:n}){void 0!==t[e]?this.set(e,t[e],!0):void 0!==n[e]&&this.set(e,n[e],!1)}copyKeyFromObject(e,t){void 0!==t[e]&&this.set(e,t[e],!0)}copyAll(e){for(const t of Qi(e.combine())){const n=e.getWithExplicit(t);this.setWithExplicit(t,n)}}}function nq(e){return{explicit:!0,value:e}}function iq(e){return{explicit:!1,value:e}}function rq(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:oq(t,n,i,r)}}function oq(e,t,n,i){return e.explicit&&t.explicit&&gR(function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${kr(n)} and ${kr(i)}). Using ${kr(n)}.`}(n,i,e.value,t.value)),e}function aq(e,t,n,i,r=oq){return void 0===e||void 0===e.value?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:_r(e.value,t.value)?e:r(e,t,n,i)}class sq extends tq{constructor(e={},t={},n=!1){super(e,t),this.explicit=e,this.implicit=t,this.parseNothing=n}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}function lq(e){return $r(e,"url")}function uq(e){return $r(e,"values")}function cq(e){return $r(e,"name")&&!lq(e)&&!uq(e)&&!fq(e)}function fq(e){return e&&(dq(e)||hq(e)||pq(e))}function dq(e){return $r(e,"sequence")}function hq(e){return $r(e,"sphere")}function pq(e){return $r(e,"graticule")}var mq,gq;function yq({invalid:e,isPath:t}){switch(fT(e,{isPath:t})){case"filter":return{marks:"exclude-invalid-values",scales:"exclude-invalid-values"};case"break-paths-show-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"include-invalid-values"};case"break-paths-filter-domains":return{marks:t?"include-invalid-values":"exclude-invalid-values",scales:"exclude-invalid-values"};case"show":return{marks:"include-invalid-values",scales:"include-invalid-values"}}}(gq=mq||(mq={}))[gq.Raw=0]="Raw",gq[gq.Main=1]="Main",gq[gq.Row=2]="Row",gq[gq.Column=3]="Column",gq[gq.Lookup=4]="Lookup",gq[gq.PreFilterInvalid=5]="PreFilterInvalid",gq[gq.PostFilterInvalid=6]="PostFilterInvalid";class vq{constructor(e,t){this.debugName=t,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,t){this._children.includes(e)?gR("Attempt to add the same child twice."):void 0!==t?this._children.splice(t,0,e):this._children.push(e)}removeChild(e){const t=this._children.indexOf(e);return this._children.splice(t,1),t}remove(){let e=this._parent.removeChild(this);for(const t of this._children)t._parent=this._parent,this._parent.addChild(t,e++)}insertAsParentOf(e){const t=e.parent;t.removeChild(this),this.parent=t,e.parent=this}swapWithParent(){const e=this._parent,t=e.parent;for(const i of this._children)i.parent=e;this._children=[],e.removeChild(this);const n=e.parent.removeChild(e);this._parent=t,t.addChild(this,n),e.parent=this}}class bq extends vq{clone(){const e=new this.constructor;return e.debugName=`clone_${this.debugName}`,e._source=this._source,e._name=`clone_${this._name}`,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}constructor(e,t,n,i){super(e,t),this.type=n,this.refCounts=i,this._source=this._name=t,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return void 0===this._hash&&(this._hash=`Output ${mr()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}function xq(e){return void 0!==e.as}function wq(e){return`${e}_end`}class _q extends vq{clone(){return new _q(null,Oi(this.timeUnits))}constructor(e,t){super(e),this.timeUnits=t}static makeFromEncoding(e,t){const n=t.reduceFieldDef(((e,n,i)=>{const{field:r,timeUnit:o}=n;if(o){let a;if(AR(o)){if(BH(t)){const{mark:e,markDef:i,config:s}=t,l=UT({fieldDef:n,markDef:i,config:s});(KB(e)||l)&&(a={timeUnit:RR(o),field:r})}}else a={as:uP(n,{forAs:!0}),field:r,timeUnit:o};if(BH(t)){const{mark:e,markDef:r,config:o}=t,s=UT({fieldDef:n,markDef:r,config:o});KB(e)&&ra(i)&&.5!==s&&(a.rectBandPosition=s)}a&&(e[Ti(a)]=a)}return e}),{});return Ji(n)?null:new _q(e,n)}static makeFromTransform(e,t){const{timeUnit:n,...i}={...t},r={...i,timeUnit:RR(n)};return new _q(e,{[Ti(r)]:r})}merge(e){this.timeUnits={...this.timeUnits};for(const t in e.timeUnits)this.timeUnits[t]||(this.timeUnits[t]=e.timeUnits[t]);for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}removeFormulas(e){const t={};for(const[n,i]of Zi(this.timeUnits)){const r=xq(i)?i.as:`${i.field}_end`;e.has(r)||(t[n]=i)}this.timeUnits=t}producedFields(){return new Set(Ki(this.timeUnits).map((e=>xq(e)?e.as:wq(e.field))))}dependentFields(){return new Set(Ki(this.timeUnits).map((e=>e.field)))}hash(){return`TimeUnit ${Ti(this.timeUnits)}`}assemble(){const e=[];for(const t of Ki(this.timeUnits)){const{rectBandPosition:n}=t,i=RR(t.timeUnit);if(xq(t)){const{field:r,as:o}=t,{unit:a,utc:s,...l}=i,u=[o,`${o}_end`];e.push({field:ur(r),type:"timeunit",...a?{units:CR(a)}:{},...s?{timezone:"utc"}:{},...l,as:u}),e.push(...Aq(u,n,i))}else if(t){const{field:r}=t,o=r.replaceAll("\\.","."),a=Dq({timeUnit:i,field:o}),s=wq(o);e.push({type:"formula",expr:a,as:s}),e.push(...Aq([o,s],n,i))}}return e}}const kq="offsetted_rect_start",$q="offsetted_rect_end";function Dq({timeUnit:e,field:t,reverse:n}){const{unit:i,utc:r}=e,o=MR(i),{part:a,step:s}=PR(o,e.step);return`${r?"utcOffset":"timeOffset"}('${a}', ${sr(t)}, ${n?-s:s})`}function Aq([e,t],n,i){if(void 0!==n&&.5!==n){const r=sr(e),o=sr(t);return[{type:"formula",expr:Sq([Dq({timeUnit:i,field:e,reverse:!0}),r],n+.5),as:`${e}_${kq}`},{type:"formula",expr:Sq([r,o],n+.5),as:`${e}_${$q}`}]}return[]}function Sq([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const Eq="_tuple_fields";class Fq{constructor(...e){this.items=e,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const Cq={defined:()=>!0,parse:(e,n,i)=>{const r=n.name,o=n.project??(n.project=new Fq),s={},l={},u=new Set,f=(e,t)=>{const n="visual"===t?e.channel:e.field;let i=tr(`${r}_${n}`);for(let o=1;u.has(i);o++)i=tr(`${r}_${n}_${o}`);return u.add(i),{[t]:i}},d=n.type,h=e.config.selection[d],p=void 0!==i.value?c(i.value):null;let{fields:m,encodings:g}=a(i.select)?i.select:{};if(!m&&!g&&p)for(const c of p)if(a(c))for(const e of Qi(c))t(Eo,e)?(g||(g=[])).push(e):"interval"===d?(gR('Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.'),g=h.encodings):(m??(m=[])).push(e);m||g||(g=h.encodings,"fields"in h&&(m=h.fields));for(const t of g??[]){const n=e.fieldDef(t);if(n){let i=n.field;if(n.aggregate){gR(IN(t,n.aggregate));continue}if(!i){gR(UN(t));continue}if(n.timeUnit&&!AR(n.timeUnit)){i=e.vgField(t);const r={timeUnit:n.timeUnit,as:i,field:n.field};l[Ti(r)]=r}if(!s[i]){const r={field:i,channel:t,type:"interval"===d&&$a(t)&&_B(e.getScaleComponent(t).get("type"))?"R":n.bin?"R-RE":"E",index:o.items.length};r.signals={...f(r,"data"),...f(r,"visual")},o.items.push(s[i]=r),o.hasField[i]=s[i],o.hasSelectionId=o.hasSelectionId||i===$j,ho(t)?(r.geoChannel=t,r.channel=fo(t),o.hasChannel[r.channel]=s[i]):o.hasChannel[t]=s[i]}}else gR(UN(t))}for(const t of m??[]){if(o.hasField[t])continue;const e={type:"E",field:t,index:o.items.length};e.signals={...f(e,"data")},o.items.push(e),o.hasField[t]=e,o.hasSelectionId=o.hasSelectionId||t===$j}p&&(n.init=p.map((e=>o.items.map((t=>a(e)?void 0!==e[t.geoChannel||t.channel]?e[t.geoChannel||t.channel]:e[t.field]:e))))),Ji(l)||(o.timeUnit=new _q(null,l))},signals:(e,t,n)=>{const i=t.name+Eq;return n.filter((e=>e.name===i)).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map(qq)})}},Mq="_curr",zq="anim_value",Oq="anim_clock",Nq="eased_anim_clock",Rq="min_extent",Bq="max_range_extent",Tq="last_tick_at",Pq="is_playing",jq=1/60*1e3,Lq={defined:e=>"point"===e.type,topLevelSignals:(e,t,n)=>(nI(t)&&(n=n.concat([{name:Oq,init:"0",on:[{events:{type:"timer",throttle:jq},update:`${Pq} ? (${Oq} + (now() - ${Tq}) > ${Bq} ? 0 : ${Oq} + (now() - ${Tq})) : ${Oq}`}]},{name:Tq,init:"now()",on:[{events:[{signal:Oq},{signal:Pq}],update:"now()"}]},{name:Pq,init:"true"}])),n),signals:(e,t,n)=>{const i=t.name,r=i+Eq,a=t.project,s="(item().isVoronoi ? datum.datum : datum)",l=Ki(e.component.selection??{}).reduce(((e,t)=>"interval"===t.type?e.concat(t.name+Jq):e),[]).map((e=>`indexof(item().mark.name, '${e}') < 0`)).join(" && "),u="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(l?` && ${l}`:"");let c=`unit: ${ZU(e)}, `;if(t.project.hasSelectionId)c+=`${$j}: ${s}[${o($j)}]`;else if(nI(t))c+=`fields: ${r}, values: [${zq} ? ${zq} : ${Rq}]`;else{c+=`fields: ${r}, values: [${a.items.map((t=>{const n=e.fieldDef(t.channel);return(null==n?void 0:n.bin)?`[${s}[${o(e.vgField(t.channel,{}))}], ${s}[${o(e.vgField(t.channel,{binSuffix:"end"}))}]]`:`${s}[${o(t.field)}]`})).join(", ")}]`}if(nI(t))return n.concat((f=t.name,d=e.scaleName(Ur),[{name:Nq,update:Oq},{name:`${f}_domain`,init:`domain('${d}')`},{name:Rq,init:`extent(${f}_domain)[0]`},{name:Bq,init:`extent(range('${d}'))[1]`},{name:zq,update:`invert('${d}', ${Nq})`}]),[{name:i+XU,on:[{events:[{signal:Nq},{signal:zq}],update:`{${c}}`,force:!0}]}]);{const e=t.events;return n.concat([{name:i+XU,on:e?[{events:e,update:`${u} ? {${c}} : null`,force:!0}]:[]}])}var f,d}};function qq(e){const{signals:t,hasLegend:n,index:i,...r}=e;return r.field=ur(r.field),r}function Uq(e,t=!0,n=y){if(u(e)){const i=e.map((e=>Uq(e,t,n)));return t?`[${i.join(", ")}]`:i}return yR(e)?n(t?kR(e):function(e){const t=_R(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}(e)):t?n(kr(e)):e}function Iq(e,t){for(const n of Ki(e.component.selection??{})){const i=n.name;let r=`${i}${XU}, ${"global"===n.resolve?"true":`{unit: ${ZU(e)}}`}`;for(const o of KU)o.defined(n)&&(o.signals&&(t=o.signals(e,n,t)),o.modifyExpr&&(r=o.modifyExpr(e,n,r)));t.push({name:i+JU,on:[{events:{signal:n.name+XU},update:`modify(${o(n.name+YU)}, ${r})`}]})}return Gq(t)}function Wq(e,t){if(e.component.selection&&Qi(e.component.selection).length){const n=o(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:qC("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return Gq(t)}function Hq(e,t){for(const n of Ki(e.component.selection??{}))for(const i of KU)i.defined(n)&&i.marks&&(t=i.marks(e,n,t));return t}function Gq(e){return e.map((e=>(e.on&&!e.on.length&&delete e.on,e)))}const Vq={defined:e=>"interval"===e.type&&"global"===e.resolve&&e.bind&&"scales"===e.bind,parse:(e,t)=>{const n=t.scales=[];for(const i of t.project.items){const r=i.channel;if(!$a(r))continue;const o=e.getScaleComponent(r),a=o?o.get("type"):void 0;"sequential"==a&&gR("Sequntial scales are deprecated. The available quantitative scale type values are linear, log, pow, sqrt, symlog, time and utc"),o&&_B(a)?(o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)):gR("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter((e=>0===n.filter((t=>t.name===e.signals.data)).length));if(!e.parent||Xq(e)||0===i.length)return n;const r=n.find((e=>e.name===t.name));let a=r.update;if(a.includes(QU))r.update=`{${i.map((e=>`${o(ur(e.field))}: ${e.signals.data}`)).join(", ")}}`;else{for(const e of i){const t=`${o(ur(e.field))}: ${e.signals.data}`;a.includes(t)||(a=`${a.substring(0,a.length-1)}, ${t}}`)}r.update=a}return n.concat(i.map((e=>({name:e.signals.data}))))},signals:(e,t,n)=>{if(e.parent&&!Xq(e))for(const i of t.scales){const e=n.find((e=>e.name===i.signals.data));e.push="outer",delete e.value,delete e.update}return n}};function Yq(e,t){return`domain(${o(e.scaleName(t))})`}function Xq(e){return e.parent&&jH(e.parent)&&(!e.parent.parent||Xq(e.parent.parent))}const Jq="_brush",Qq="_scale_trigger",Kq="geo_interval_init_tick",Zq="_init",eU={defined:e=>"interval"===e.type,parse:(e,t,n)=>{var i;if(e.hasProjection){const e={...a(n.select)?n.select:{}};e.fields=[$j],e.encodings||(e.encodings=n.value?Qi(n.value):[jr,Pr]),n.select={type:"interval",...e}}if(t.translate&&!Vq.defined(t)){const e=`!event.item || event.item.mark.name !== ${o(t.name+Jq)}`;for(const n of t.events){if(!n.between){gR(`${n} is not an ordered event stream for interval selections.`);continue}const t=c((i=n.between[0]).filter??(i.filter=[]));t.includes(e)||t.push(e)}}},signals:(e,t,n)=>{const i=t.name,r=i+XU,a=Ki(t.project.hasChannel).filter((e=>e.channel===Er||e.channel===Fr)),s=t.init?t.init[0]:null;if(n.push(...a.reduce(((n,i)=>n.concat(function(e,t,n,i){const r=!e.hasProjection,a=n.channel,s=n.signals.visual,l=o(r?e.scaleName(a):e.projectionName()),u=e=>`scale(${l}, ${e})`,c=e.getSizeSignalRef(a===Er?"width":"height").signal,f=`${a}(unit)`,d=t.events.reduce(((e,t)=>[...e,{events:t.between[0],update:`[${f}, ${f}]`},{events:t,update:`[${s}[0], clamp(${f}, 0, ${c})]`}]),[]);if(r){const r=n.signals.data,o=Vq.defined(t),c=e.getScaleComponent(a),f=c?c.get("type"):void 0,h=i?{init:Uq(i,!0,u)}:{value:[]};return d.push({events:{signal:t.name+Qq},update:_B(f)?`[${u(`${r}[0]`)}, ${u(`${r}[1]`)}]`:"[0, 0]"}),o?[{name:r,on:[]}]:[{name:s,...h,on:d},{name:r,...i?{init:Uq(i)}:{},on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${l}, ${s})`}]}]}{const e=a===Er?0:1,n=t.name+Zq;return[{name:s,...i?{init:`[${n}[0][${e}], ${n}[1][${e}]]`}:{value:[]},on:d}]}}(e,t,i,s&&s[i.index]))),[])),e.hasProjection){const l=o(e.projectionName()),u=e.projectionName()+"_center",{x:c,y:f}=t.project.hasChannel,d=c&&c.signals.visual,h=f&&f.signals.visual,p=c?s&&s[c.index]:`${u}[0]`,m=f?s&&s[f.index]:`${u}[1]`,g=t=>e.getSizeSignalRef(t).signal,y=`[[${d?d+"[0]":"0"}, ${h?h+"[0]":"0"}],[${d?d+"[1]":g("width")}, ${h?h+"[1]":g("height")}]]`;if(s&&(n.unshift({name:i+Zq,init:`[scale(${l}, [${c?p[0]:p}, ${f?m[0]:m}]), scale(${l}, [${c?p[1]:p}, ${f?m[1]:m}])]`}),!c||!f)){n.find((e=>e.name===u))||n.unshift({name:u,update:`invert(${l}, [${g("width")}/2, ${g("height")}/2])`})}const v=`vlSelectionTuples(${`intersect(${y}, {markname: ${o(e.getName("marks"))}}, unit.mark)`}, ${`{unit: ${ZU(e)}}`})`,b=a.map((e=>e.signals.visual));return n.concat({name:r,on:[{events:[...b.length?[{signal:b.join(" || ")}]:[],...s?[{signal:Kq}]:[]],update:v}]})}{if(!Vq.defined(t)){const t=i+Qq,r=a.map((t=>{const n=t.channel,{data:i,visual:r}=t.signals,a=o(e.scaleName(n)),s=_B(e.getScaleComponent(n).get("type"))?"+":"";return`(!isArray(${i}) || (${s}invert(${a}, ${r})[0] === ${s}${i}[0] && ${s}invert(${a}, ${r})[1] === ${s}${i}[1]))`}));r.length&&n.push({name:t,value:{},on:[{events:a.map((t=>({scale:e.scaleName(t.channel)}))),update:r.join(" && ")+` ? ${t} : {}`}]})}const l=a.map((e=>e.signals.data)),u=`unit: ${ZU(e)}, fields: ${i+Eq}, values`;return n.concat({name:r,...s?{init:`{${u}: ${Uq(s)}}`}:{},...l.length?{on:[{events:[{signal:l.join(" || ")}],update:`${l.join(" && ")} ? {${u}: [${l}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>{if(BH(e)&&e.hasProjection&&t.init){n.filter((e=>e.name===Kq)).length||n.unshift({name:Kq,value:null,on:[{events:"timer{1}",update:`${Kq} === null ? {} : ${Kq}`}]})}return n},marks:(e,t,n)=>{const i=t.name,{x:r,y:a}=t.project.hasChannel,s=null==r?void 0:r.signals.visual,l=null==a?void 0:a.signals.visual,u=`data(${o(t.name+YU)})`;if(Vq.defined(t)||!r&&!a)return n;const c={x:void 0!==r?{signal:`${s}[0]`}:{value:0},y:void 0!==a?{signal:`${l}[0]`}:{value:0},x2:void 0!==r?{signal:`${s}[1]`}:{field:{group:"width"}},y2:void 0!==a?{signal:`${l}[1]`}:{field:{group:"height"}}};if("global"===t.resolve)for(const o of Qi(c))c[o]=[{test:`${u}.length && ${u}[0].unit === ${ZU(e)}`,...c[o]},{value:0}];const{fill:f,fillOpacity:d,cursor:h,...p}=t.mark,m=Qi(p).reduce(((e,t)=>(e[t]=[{test:[void 0!==r&&`${s}[0] !== ${s}[1]`,void 0!==a&&`${l}[0] !== ${l}[1]`].filter((e=>e)).join(" && "),value:p[t]},{value:null}],e)),{}),g=h??(t.translate?"move":null);return[{name:`${i+Jq}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:d}},update:c}},...n,{name:i+Jq,type:"rect",clip:!0,encode:{enter:{...g?{cursor:{value:g}}:{},fill:{value:"transparent"}},update:{...c,...m}}}]}};function tU({model:e,channelDef:t,vgChannel:n,invalidValueRef:i,mainRefFn:r}){const o=GT(t)&&t.condition;let a=[];if(o){a=c(o).map((t=>{const n=r(t);if(function(e){return $r(e,"param")}(t)){const{param:i,empty:r}=t;return{test:sI(e,{param:i,empty:r}),...n}}return{test:uI(e,t.test),...n}}))}void 0!==i&&a.push(i);const s=r(t);return void 0!==s&&a.push(s),a.length>1||1===a.length&&Boolean(a[0].test)?{[n]:a}:1===a.length?{[n]:a[0]}:{}}function nU(e,t="text"){const n=e.encoding[t];return tU({model:e,channelDef:n,vgChannel:t,mainRefFn:t=>iU(t,e.config),invalidValueRef:void 0})}function iU(e,t,n="datum"){if(e){if(iP(e))return rs(e.value);if(tP(e)){const{format:i,formatType:r}=yP(e);return kT({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function rU(e,t={}){const{encoding:n,markDef:r,config:o,stack:s}=e,l=n.tooltip;if(u(l))return{tooltip:aU({tooltip:l},s,o,t)};{const u=t.reactiveGeom?"datum.datum":"datum";return tU({model:e,channelDef:l,vgChannel:"tooltip",mainRefFn:e=>{const l=iU(e,o,u);if(l)return l;if(null===e)return;let c=us("tooltip",r,o);return!0===c&&(c={content:"encoding"}),i(c)?{value:c}:a(c)?Xa(c)?c:"encoding"===c.content?aU(n,s,o,t):{signal:u}:void 0},invalidValueRef:void 0})}}function oU(e,t,n,{reactiveGeom:i}={}){const r={...n,...n.tooltipFormat},o=new Set,a=i?"datum.datum":"datum",s=[];function l(n,i){const l=zo(i),u=nP(n)?n:{...n,type:e[l].type},f=u.title||gP(u,r),d=c(f).join(", ").replaceAll(/"/g,'\\"');let h;if(ra(i)){const t="x"===i?"x2":"y2",n=vP(e[t]);if(qa(u.bin)&&n){const e=uP(u,{expr:a}),i=uP(n,{expr:a}),{format:s,formatType:l}=yP(u);h=MT(e,i,s,l,r),o.add(t)}}if((ra(i)||i===Br||i===Nr)&&t&&t.fieldChannel===i&&"normalize"===t.offset){const{format:e,formatType:t}=yP(u);h=kT({fieldOrDatumDef:u,format:e,formatType:t,expr:a,config:r,normalizeStack:!0}).signal}h??(h=iU(u,r,a).signal),s.push({channel:i,key:d,value:h})}GP(e,((e,t)=>{XT(e)?l(e,t):VT(e)&&l(e.condition,t)}));const u={};for(const{channel:c,key:f,value:d}of s)o.has(c)||u[f]||(u[f]=d);return u}function aU(e,t,n,{reactiveGeom:i}={}){const r=oU(e,t,n,{reactiveGeom:i}),o=Zi(r).map((([e,t])=>`"${e}": ${t}`));return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function sU(e){const{markDef:t,config:n}=e,i=us("aria",t,n);return!1===i?{}:{...i?{aria:i}:{},...lU(e),...uU(e)}}function lU(e){const{mark:n,markDef:i,config:r}=e;if(!1===r.aria)return{};const o=us("ariaRoleDescription",i,r);return null!=o?{ariaRoleDescription:{value:o}}:t(Za,n)?{}:{ariaRoleDescription:{value:n}}}function uU(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return tU({model:e,channelDef:o,vgChannel:"description",mainRefFn:t=>iU(t,e.config),invalidValueRef:void 0});const a=us("description",n,i);if(null!=a)return{description:rs(a)};if(!1===i.aria)return{};const s=oU(t,r,i);return Ji(s)?void 0:{description:{signal:Zi(s).map((([e,t],n)=>`"${n>0?"; ":""}${e}: " + (${t})`)).join(" + ")}}}function cU(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:a}=n;let{defaultRef:s,defaultValue:l}=n;const u=r[e];void 0===s&&(l??(l=us(e,i,o,{vgChannel:a,ignoreVgConfig:!GT(u)})),void 0!==l&&(s=rs(l)));const c={markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e)},f=pT({...c,scaleChannel:e,channelDef:u});return tU({model:t,channelDef:u,vgChannel:a??e,invalidValueRef:f,mainRefFn:t=>bT({...c,channel:e,channelDef:t,stack:null,defaultRef:s})})}function fU(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,a=t.filled??us("filled",n,r),s=ji(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,l=us(!0===a?"color":void 0,n,r,{vgChannel:"fill"})??r.mark[!0===a&&"color"]??s,u=us(!1===a?"color":void 0,n,r,{vgChannel:"stroke"})??r.mark[!1===a&&"color"],c=a?"fill":"stroke",f={...l?{fill:rs(l)}:{},...u?{stroke:rs(u)}:{}};return n.color&&(a?n.fill:n.stroke)&&gR(KN("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...cU("color",e,{vgChannel:c,defaultValue:a?l:u}),...cU("fill",e,{defaultValue:i.fill?l:void 0}),...cU("stroke",e,{defaultValue:i.stroke?u:void 0})}}function dU(e){const{encoding:t,mark:n}=e,i=t.order;return!QB(n)&&iP(i)?tU({model:e,channelDef:i,vgChannel:"zindex",mainRefFn:e=>rs(e.value),invalidValueRef:void 0}):{}}function hU({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,a=t[o],s=n[o];if(("xOffset"===o||"yOffset"===o)&&s){return{offsetType:"encoding",offset:bT({channel:o,channelDef:s,markDef:t,config:null==i?void 0:i.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:rs(a),bandPosition:r})}}const l=t[o];return l?{offsetType:"visual",offset:l}:{}}function pU(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:a,stack:s}=t,l=r[e],u=r[No(e)],c=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=hU({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),p=mU({model:t,defaultPos:n,channel:e,scaleName:c,scale:f}),m=!l&&ra(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:function(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o,markDef:a}=e;if(tP(n)&&r&&t===r.fieldChannel){if(XT(n)){let e=n.bandPosition;if(void 0!==e||"text"!==a.type||"radius"!==t&&"theta"!==t||(e=.5),void 0!==e)return vT({scaleName:i,fieldOrDatumDef:n,startSuffix:"start",bandPosition:e,offset:o})}return yT(n,i,{suffix:"end"},{offset:o})}return gT(e)}({channel:e,channelDef:l,channel2Def:u,markDef:o,config:a,scaleName:c,scale:f,stack:s,offset:d,defaultRef:p,bandPosition:"encoding"===h?0:void 0});return m?{[i||e]:m}:void 0}function mU({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:a}=e;return()=>{const s=zo(n),l=Oo(n),u=us(n,o,a,{vgChannel:l});if(void 0!==u)return xT(n,u);switch(t){case"zeroOrMin":return gU({scaleName:i,scale:r,mode:"zeroOrMin",mainChannel:s,config:a});case"zeroOrMax":return gU({scaleName:i,scale:r,mode:{zeroOrMax:{widthSignal:e.width.signal,heightSignal:e.height.signal}},mainChannel:s,config:a});case"mid":return{...e[Ro(n)],mult:.5}}}}function gU({mainChannel:e,config:t,...n}){const i=hT(n),{mode:r}=n;if(i)return i;switch(e){case"radius":{if("zeroOrMin"===r)return{value:0};const{widthSignal:e,heightSignal:t}=r.zeroOrMax;return{signal:`min(${e},${t})/2`}}case"theta":return"zeroOrMin"===r?{value:0}:{signal:"2*PI"};case"x":return"zeroOrMin"===r?{value:0}:{field:{group:"width"}};case"y":return"zeroOrMin"===r?{field:{group:"height"}}:{value:0}}}const yU={left:"x",center:"xc",right:"x2"},vU={top:"y",middle:"yc",bottom:"y2"};function bU(e,t,n,i="middle"){if("radius"===e||"theta"===e)return Oo(e);const r="x"===e?"align":"baseline",o=us(r,t,n);let a;return Xa(o)?(gR(function(e){return`The ${e} for range marks cannot be an expression`}(r)),a=void 0):a=o,"x"===e?yU[a||("top"===i?"left":"center")]:vU[a||i]}function xU(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?wU(e,t,{defaultPos:n,defaultPos2:i}):pU(e,t,{defaultPos:n})}function wU(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,a=No(e),s=Ro(e),l=function(e,t,n){const{encoding:i,mark:r,markDef:o,stack:a,config:s}=e,l=zo(n),u=Ro(n),c=Oo(n),f=i[l],d=e.scaleName(l),h=e.getScaleComponent(l),{offset:p}=hU(n in i||n in o?{channel:n,markDef:o,encoding:i,model:e}:{channel:l,markDef:o,encoding:i,model:e});if(!f&&("x2"===n||"y2"===n)&&(i.latitude||i.longitude)){const t=Ro(n),i=e.markDef[t];return null!=i?{[t]:{value:i}}:{[c]:{field:e.getName(n)}}}const m=function({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:l,defaultRef:u}){if(tP(t)&&s&&e.charAt(0)===s.fieldChannel.charAt(0))return yT(t,o,{suffix:"start"},{offset:l});return gT({channel:e,channelDef:n,scaleName:o,scale:a,stack:s,markDef:i,config:r,offset:l,defaultRef:u})}({channel:n,channelDef:f,channel2Def:i[n],markDef:o,config:s,scaleName:d,scale:h,stack:a,offset:p,defaultRef:void 0});if(void 0!==m)return{[c]:m};return _U(n,o)||_U(n,{[n]:fs(n,o,s.style),[u]:fs(u,o,s.style)})||_U(n,s[r])||_U(n,s.mark)||{[c]:mU({model:e,defaultPos:t,channel:n,scaleName:d,scale:h})()}}(t,i,a);return{...pU(e,t,{defaultPos:n,vgChannel:l[s]?bU(e,r,o):Oo(e)}),...l}}function _U(e,t){const n=Ro(e),i=Oo(e);if(void 0!==t[i])return{[i]:xT(e,t[i])};if(void 0!==t[e])return{[i]:xT(e,t[e])};if(t[n]){const i=t[n];if(!aT(i))return{[n]:xT(e,i)};gR(function(e){return`Position range does not support relative band size for ${e}.`}(n))}}function kU(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.type,a=No(t),s=Ro(t),l=i[t],c=i[a],f=e.getScaleComponent(t),d=f?f.get("type"):void 0,h=r.orient,p=i[s]??i.size??us("size",r,n,{vgChannel:s}),m=Bo(t),g="bar"===o&&("x"===t?"vertical"===h:"horizontal"===h)||"tick"===o&&("y"===t?"vertical"===h:"horizontal"===h);return!XT(l)||!(La(l.bin)||qa(l.bin)||l.timeUnit&&!c)||p&&!aT(p)||i[m]||wB(d)?(tP(l)&&wB(d)||g)&&!c?function(e,t,n){var i,r;const{markDef:o,encoding:a,config:s,stack:l}=n,c=o.orient,f=n.scaleName(t),d=n.getScaleComponent(t),h=Ro(t),p=No(t),m=Bo(t),g=n.scaleName(m),y=n.getScaleComponent(To(t)),v="tick"===o.type||"horizontal"===c&&"y"===t||"vertical"===c&&"x"===t;let b;(a.size||o.size)&&(v?b=cU("size",n,{vgChannel:h,defaultRef:rs(o.size)}):gR(function(e){return`Cannot apply size to non-oriented mark "${e}".`}(o.type)));const x=!!b,w=IT({channel:t,fieldDef:e,markDef:o,config:s,scaleType:null==(i=d||y)?void 0:i.get("type"),useVlSizeChannel:v});b=b||{[h]:$U(h,g||f,y||d,s,w,!!e,o.type)};const _="band"===(null==(r=d||y)?void 0:r.get("type"))&&aT(w)&&!x?"top":"middle",k=bU(t,o,s,_),$="xc"===k||"yc"===k,{offset:D,offsetType:A}=hU({channel:t,markDef:o,encoding:a,model:n,bandPosition:$?.5:0}),S=gT({channel:t,channelDef:e,markDef:o,config:s,scaleName:f,scale:d,stack:l,offset:D,defaultRef:mU({model:n,defaultPos:"mid",channel:t,scaleName:f,scale:d}),bandPosition:$?"encoding"===A?0:.5:Xa(w)?{signal:`(1-${w})/2`}:aT(w)?(1-w.band)/2:0});if(h)return{[k]:S,...b};{const e=Oo(p),t=b[h],n=D?{...t,offset:D}:t;return{[k]:S,[e]:u(S)?[S[0],{...S[1],offset:n}]:{...S,offset:n}}}}(l,t,e):wU(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function({fieldDef:e,fieldDef2:t,channel:n,model:i}){var r;const{config:o,markDef:a,encoding:s}=i,l=i.getScaleComponent(n),u=i.scaleName(n),c=l?l.get("type"):void 0,f=l.get("reverse"),d=IT({channel:n,fieldDef:e,markDef:a,config:o,scaleType:c}),h=null==(r=i.component.axes[n])?void 0:r[0],p=(null==h?void 0:h.get("translate"))??.5,m=ra(n)?us("binSpacing",a,o)??0:0,g=No(n),y=Oo(n),v=Oo(g),b=cs("minBandSize",a,o),{offset:x}=hU({channel:n,markDef:a,encoding:s,model:i,bandPosition:0}),{offset:w}=hU({channel:g,markDef:a,encoding:s,model:i,bandPosition:0}),_=function({scaleName:e,fieldDef:t}){const n=uP(t,{expr:"datum"});return`abs(scale("${e}", ${uP(t,{expr:"datum",suffix:"end"})}) - scale("${e}", ${n}))`}({fieldDef:e,scaleName:u}),k=DU(n,m,f,p,x,b,_),$=DU(g,m,f,p,w??x,b,_),D=Xa(d)?{signal:`(1-${d.signal})/2`}:aT(d)?(1-d.band)/2:.5,A=UT({fieldDef:e,fieldDef2:t,markDef:a,config:o});if(La(e.bin)||e.timeUnit){const t=e.timeUnit&&.5!==A;return{[v]:AU({fieldDef:e,scaleName:u,bandPosition:D,offset:$,useRectOffsetField:t}),[y]:AU({fieldDef:e,scaleName:u,bandPosition:Xa(D)?{signal:`1-${D.signal}`}:1-D,offset:k,useRectOffsetField:t})}}if(qa(e.bin)){const n=yT(e,u,{},{offset:$});if(XT(t))return{[v]:n,[y]:yT(t,u,{},{offset:k})};if(Ua(e.bin)&&e.bin.step)return{[v]:n,[y]:{signal:`scale("${u}", ${uP(e,{expr:"datum"})} + ${e.bin.step})`,offset:k}}}return void gR(dR(g))}({fieldDef:l,fieldDef2:c,channel:t,model:e})}function $U(e,t,i,r,o,a,s){if(aT(o)){if(!i)return{mult:o.band,field:{group:e}};{const e=i.get("type");if("band"===e){let e=`bandwidth('${t}')`;1!==o.band&&(e=`${o.band} * ${e}`);const n=cs("minBandSize",{type:s},r);return{signal:n?`max(${as(n)}, ${e})`:e}}1!==o.band&&(gR(function(e){return`Cannot use the relative band size with ${e} scale.`}(e)),o=void 0)}}else{if(Xa(o))return o;if(o)return{value:o}}if(i){const e=i.get("range");if(Ja(e)&&n(e.step))return{value:e.step-2}}if(!a){const{bandPaddingInner:t,barBandPaddingInner:i,rectBandPaddingInner:o,tickBandPaddingInner:a}=r.scale,l=hr(t,"tick"===s?a:"bar"===s?i:o);if(Xa(l))return{signal:`(1 - (${l.signal})) * ${e}`};if(n(l))return{signal:`${1-l} * ${e}`}}return{value:Pj(r.view,e)-2}}function DU(e,t,n,i,r,o,a){if(uo(e))return 0;const s="x"===e||"y2"===e,l=s?-t/2:t/2;if(Xa(n)||Xa(r)||Xa(i)||o){const e=as(n),t=as(r),u=as(i),c=as(o),f=o?`(${a} < ${c} ? ${s?"":"-"}0.5 * (${c} - (${a})) : ${l})`:l;return{signal:(u?`${u} + `:"")+(e?`(${e} ? -1 : 1) * `:"")+(t?`(${t} + ${f})`:f)}}return r=r||0,i+(n?-r-l:+r+l)}function AU({fieldDef:e,scaleName:t,bandPosition:n,offset:i,useRectOffsetField:r}){return vT({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i,...r?{startSuffix:kq,endSuffix:$q}:{}})}const SU=new Set(["aria","width","height"]);function EU(e,t){const{fill:n,stroke:i}="include"===t.color?fU(e):{};return{...CU(e.markDef,t),...FU("fill",n),...FU("stroke",i),...cU("opacity",e),...cU("fillOpacity",e),...cU("strokeOpacity",e),...cU("strokeWidth",e),...cU("strokeDash",e),...dU(e),...rU(e),...nU(e,"href"),...sU(e)}}function FU(e,t){return t?{[e]:t}:{}}function CU(e,t){return Ka.reduce(((n,i)=>(!SU.has(i)&&$r(e,i)&&"ignore"!==t[i]&&(n[i]=rs(e[i])),n)),{})}function MU(e){const{config:t,markDef:n}=e,i=new Set;if(e.forEachFieldDef(((r,o)=>{var a;let s;if(!$a(o)||!(s=e.getScaleType(o)))return;const l=Ba(r.aggregate),u=dT({scaleChannel:o,markDef:n,config:t,scaleType:s,isCountAggregate:l});if("break-paths-filter-domains"===(c=u)||"break-paths-show-domains"===c){const t=e.vgField(o,{expr:"datum",binSuffix:(null==(a=e.stack)?void 0:a.impute)?"mid":void 0});t&&i.add(t)}var c})),i.size>0){return{defined:{signal:[...i].map((e=>XR(e,!0))).join(" && ")}}}}function zU(e,t){if(void 0!==t)return{[e]:rs(t)}}const OU="voronoi",NU={defined:e=>"point"===e.type&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(OU)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(QB(o))return gR(`The "nearest" transform is not supported for ${o} marks.`),n;const a={name:e.getName(OU),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...rU(e,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:i||!r?"datum.datum.x || 0":"0"},y:{expr:r||!i?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let s=0,l=!1;return n.forEach(((t,n)=>{const i=t.name??"";i===e.component.mark[0].name?s=n:i.includes(OU)&&(l=!0)})),l||n.splice(s+1,0,a),n}},RU={defined:e=>"point"===e.type&&"global"===e.resolve&&e.bind&&"scales"!==e.bind&&!Aj(e.bind),parse:(e,t,n)=>tI(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,a=t.bind,s=t.init&&t.init[0],l=NU.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach(((e,r)=>{const u=tr(`${i}_${e.field}`);n.filter((e=>e.name===u)).length||n.unshift({name:u,...s?{init:Uq(s[r])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${l}[${o(e.field)}] : null`}]:[],bind:a[e.field]??a[e.channel]??a})})),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find((e=>e.name===i+XU)),a=i+Eq,s=r.items.map((e=>tr(`${i}_${e.field}`))),l=s.map((e=>`${e} !== null`)).join(" && ");return s.length&&(o.update=`${l} ? {fields: ${a}, values: [${s.join(", ")}]} : null`),delete o.value,delete o.on,n}},BU="_toggle",TU={defined:e=>"point"===e.type&&!nI(e)&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+BU,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+XU,i=t.name+BU;return`${i} ? null : ${n}, `+("global"===t.resolve?`${i} ? null : true, `:`${i} ? null : {unit: ${ZU(e)}}, `)+`${i} ? ${n} : null`}},PU={defined:e=>void 0!==e.clear&&!1!==e.clear&&!nI(e),parse:(e,t)=>{t.clear&&(t.clear=i(t.clear)?qC(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(RU.defined(t))for(const i of t.project.items){const e=n.findIndex((e=>e.name===tr(`${t.name}_${i.field}`)));-1!==e&&n[e].on.push({events:t.clear,update:"null"})}return n},signals:(e,t,n)=>{function i(e,i){-1!==e&&n[e].on&&n[e].on.push({events:t.clear,update:i})}if("interval"===t.type)for(const r of t.project.items){const e=n.findIndex((e=>e.name===r.signals.visual));if(i(e,"[0, 0]"),-1===e){i(n.findIndex((e=>e.name===r.signals.data)),"null")}}else{let e=n.findIndex((e=>e.name===t.name+XU));i(e,"null"),TU.defined(t)&&(e=n.findIndex((e=>e.name===t.name+BU)),i(e,"false"))}return n}},jU={defined:e=>{const t="global"===e.resolve&&e.bind&&Aj(e.bind),n=1===e.project.items.length&&e.project.items[0].field!==$j;return t&&!n&&gR("Legend bindings are only supported for selections over an individual field or encoding channel."),t&&n},parse:(e,t,n)=>{const r=Oi(n);if(r.select=i(r.select)?{type:r.select,toggle:t.toggle}:{...r.select,toggle:t.toggle},tI(t,r),a(n.select)&&(n.select.on||n.select.clear)){const e='event.item && indexof(event.item.mark.role, "legend") < 0';for(const n of t.events)n.filter=c(n.filter??[]),n.filter.includes(e)||n.filter.push(e)}const o=Sj(t.bind)?t.bind.legend:"click",s=i(o)?qC(o,"view"):c(o);t.bind={legend:{merge:s}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=Sj(t.bind)&&t.bind.legend,o=e=>t=>{const n=Oi(t);return n.markname=e,n};for(const a of t.project.items){if(!a.hasLegend)continue;const e=`${tr(a.field)}_legend`,s=`${i}_${e}`;if(0===n.filter((e=>e.name===s)).length){const i=r.merge.map(o(`${e}_symbols`)).concat(r.merge.map(o(`${e}_labels`))).concat(r.merge.map(o(`${e}_entries`)));n.unshift({name:s,...t.init?{}:{value:null},on:[{events:i,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:`!event.item || !datum ? null : ${s}`,force:!0}]})}}return n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find((e=>e.name===i+XU)),a=i+Eq,s=r.items.filter((e=>e.hasLegend)).map((e=>tr(`${i}_${tr(e.field)}_legend`))),l=`${s.map((e=>`${e} !== null`)).join(" && ")} ? {fields: ${a}, values: [${s.join(", ")}]} : null`;t.events&&s.length>0?o.on.push({events:s.map((e=>({signal:e}))),update:l}):s.length>0&&(o.update=l,delete o.value,delete o.on);const u=n.find((e=>e.name===i+BU)),c=Sj(t.bind)&&t.bind.legend;return u&&(t.events?u.on.push({...u.on[0],events:c}):u.on[0].events=c),n}};const LU="_translate_anchor",qU="_translate_delta",UU={defined:e=>"interval"===e.type&&e.translate,signals:(e,t,n)=>{const i=t.name,r=Vq.defined(t),o=i+LU,{x:a,y:s}=t.project.hasChannel;let l=qC(t.translate,"scope");return r||(l=l.map((e=>(e.between[0].markname=i+Jq,e)))),n.push({name:o,value:{},on:[{events:l.map((e=>e.between[0])),update:"{x: x(unit), y: y(unit)"+(void 0!==a?`, extent_x: ${r?Yq(e,Er):`slice(${a.signals.visual})`}`:"")+(void 0!==s?`, extent_y: ${r?Yq(e,Fr):`slice(${s.signals.visual})`}`:"")+"}"}]},{name:i+qU,value:{},on:[{events:l,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),void 0!==a&&IU(e,t,a,"width",n),void 0!==s&&IU(e,t,s,"height",n),n}};function IU(e,t,n,i,r){const o=t.name,a=o+LU,s=o+qU,l=n.channel,u=Vq.defined(t),c=r.find((e=>e.name===n.signals[u?"data":"visual"])),f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(l),h=d&&d.get("type"),p=d&&d.get("reverse"),m=`${a}.extent_${l}`,g=`${u&&d?"log"===h?"panLog":"symlog"===h?"panSymlog":"pow"===h?"panPow":"panLinear":"panLinear"}(${m}, ${`${u?l===Er?p?"":"-":p?"-":"":""}${s}.${l} / ${u?`${f}`:`span(${m})`}`}${u?"pow"===h?`, ${d.get("exponent")??1}`:"symlog"===h?`, ${d.get("constant")??1}`:"":""})`;c.on.push({events:{signal:s},update:u?g:`clampRange(${g}, 0, ${f})`})}const WU="_zoom_anchor",HU="_zoom_delta",GU={defined:e=>"interval"===e.type&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=Vq.defined(t),a=i+HU,{x:s,y:l}=t.project.hasChannel,u=o(e.scaleName(Er)),c=o(e.scaleName(Fr));let f=qC(t.zoom,"scope");return r||(f=f.map((e=>(e.markname=i+Jq,e)))),n.push({name:i+WU,on:[{events:f,update:r?"{"+[u?`x: invert(${u}, x(unit))`:"",c?`y: invert(${c}, y(unit))`:""].filter((e=>e)).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:a,on:[{events:f,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),void 0!==s&&VU(e,t,s,"width",n),void 0!==l&&VU(e,t,l,"height",n),n}};function VU(e,t,n,i,r){const o=t.name,a=n.channel,s=Vq.defined(t),l=r.find((e=>e.name===n.signals[s?"data":"visual"])),u=e.getSizeSignalRef(i).signal,c=e.getScaleComponent(a),f=c&&c.get("type"),d=s?Yq(e,a):l.name,h=o+HU,p=`${s&&c?"log"===f?"zoomLog":"symlog"===f?"zoomSymlog":"pow"===f?"zoomPow":"zoomLinear":"zoomLinear"}(${d}, ${`${o}${WU}.${a}`}, ${h}${s?"pow"===f?`, ${c.get("exponent")??1}`:"symlog"===f?`, ${c.get("constant")??1}`:"":""})`;l.on.push({events:{signal:h},update:s?p:`clampRange(${p}, 0, ${u})`})}const YU="_store",XU="_tuple",JU="_modify",QU="vlSelectionResolve",KU=[Lq,eU,Cq,TU,RU,Vq,jU,PU,UU,GU,NU];function ZU(e,{escape:t}={escape:!0}){let n=t?o(e.name):e.name;const i=function(e){let t=e.parent;for(;t&&!TH(t);)t=t.parent;return t}(e);if(i){const{facet:e}=i;for(const t of vo)e[t]&&(n+=` + '__facet_${t}_' + (facet[${o(i.vgField(t))}])`)}return n}function eI(e){return Ki(e.component.selection??{}).reduce(((e,t)=>e||t.project.hasSelectionId),!1)}function tI(e,t){!i(t.select)&&t.select.on||delete e.events,!i(t.select)&&t.select.clear||delete e.clear,!i(t.select)&&t.select.toggle||delete e.toggle}function nI(e){var t;return null==(t=e.events)?void 0:t.find((e=>"type"in e&&"timer"===e.type))}function iI(e){const t=[];return"Identifier"===e.type?[e.name]:"Literal"===e.type?[e.value]:("MemberExpression"===e.type&&(t.push(...iI(e.object)),t.push(...iI(e.property))),t)}function rI(e){return"MemberExpression"===e.object.type?rI(e.object):"datum"===e.object.name}function oI(e){const t=SE(e),n=new Set;return t.visit((e=>{"MemberExpression"===e.type&&rI(e)&&n.add(iI(e).slice(1).join("."))})),n}class aI extends vq{clone(){return new aI(null,this.model,Oi(this.filter))}constructor(e,t,n){super(e),this.model=t,this.filter=n,this.expr=uI(this.model,this.filter,this),this._dependentFields=oI(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function sI(e,t,n,r="datum"){const a=i(t)?t:t.param,s=tr(a),l=o(s+YU);let u;try{u=e.getSelectionComponent(s,a)}catch(d){return`!!${s}`}if(u.project.timeUnit){const t=n??e.component.data.raw,i=u.project.timeUnit.clone();t.parent?i.insertAsParentOf(t):t.parent=i}const c=`${u.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${l}, ${r}${"global"===u.resolve?")":`, ${o(u.resolve)})`}`,f=`length(data(${l}))`;return!1===t.empty?`${f} && ${c}`:`!${f} || ${c}`}function lI(e,t,n){const i=tr(t),r=n.encoding;let a,s=n.field;try{a=e.getSelectionComponent(i,t)}catch(l){return i}if(r||s){if(r&&!s){const e=a.project.items.filter((e=>e.channel===r));!e.length||e.length>1?(s=a.project.items[0].field,gR(function(e,t,n,i){return(e.length?"Multiple ":"No ")+`matching ${o(t)} encoding found for selection ${o(n.param)}. Using "field": ${o(i)}.`}(e,r,n,s))):s=e[0].field}}else s=a.project.items[0].field,a.project.items.length>1&&gR(function(e){return`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${o(e)}.`}(s));return`${a.name}[${o(ur(s))}]`}function uI(e,t,n){return nr(t,(t=>i(t)?t:function(e){return $r(e,"param")}(t)?sI(e,t,n):YR(t)))}function cI(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}function fI(e,t,n,i={header:!1}){var r,o;const{disable:a,orient:s,scale:l,labelExpr:f,title:d,zindex:h,...p}=e.combine();if(!a){for(const e in p){const n=e,i=zP[n],r=p[n];if(i&&i!==t&&"both"!==i)delete p[n];else if(CP(r)){const{condition:e,...t}=r,i=c(e),o=FP[n];if(o){const{vgProp:e,part:r}=o;cI(p,r,e,[...i.map((e=>{const{test:t,...n}=e;return{test:uI(null,t),...n}})),t]),delete p[n]}else if(null===o){const e={signal:i.map((e=>{const{test:t,...n}=e;return`${uI(null,t)} ? ${os(n)} : `})).join("")+os(t)};p[n]=e}}else if(Xa(r)){const e=FP[n];if(e){const{vgProp:t,part:i}=e;cI(p,i,t,r),delete p[n]}}ji(["labelAlign","labelBaseline"],n)&&null===p[n]&&delete p[n]}if("grid"===t){if(!p.grid)return;if(p.encode){const{grid:e}=p.encode;p.encode={...e?{grid:e}:{}},Ji(p.encode)&&delete p.encode}return{scale:l,orient:s,...p,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:hr(h,0)}}{if(!i.header&&e.mainExtracted)return;if(void 0!==f){let e=f;(null==(o=null==(r=p.encode)?void 0:r.labels)?void 0:o.update)&&Xa(p.encode.labels.update.text)&&(e=cr(f,"datum.label",p.encode.labels.update.text.signal)),cI(p,"labels","text",{signal:e})}if(null===p.labelAlign&&delete p.labelAlign,p.encode){for(const t of MP)e.hasAxisPart(t)||delete p.encode[t];Ji(p.encode)&&delete p.encode}const t=function(e,t){if(e)return u(e)&&!Ya(e)?e.map((e=>gP(e,t))).join(", "):e}(d,n);return{scale:l,orient:s,grid:!1,...t?{title:t}:{},...p,...!1===n.aria?{aria:!1}:{},zindex:hr(h,0)}}}}function dI(e){const{axes:t}=e.component,n=[];for(const i of ia)if(t[i])for(const r of t[i])if(!r.get("disable")&&!r.get("gridScale")){const t="x"===i?"height":"width",r=e.getSizeSignalRef(t).signal;t!==r&&n.push({name:t,update:r})}return n}function hI(e,t,n,i){return Object.assign.apply(null,[{},...e.map((e=>{if("axisOrient"===e){const e="x"===n?"bottom":"left",r=t["x"===n?"axisBottom":"axisLeft"]||{},o=t["x"===n?"axisTop":"axisRight"]||{},a=new Set([...Qi(r),...Qi(o)]),s={};for(const t of a.values())s[t]={signal:`${i.signal} === "${e}" ? ${as(r[t])} : ${as(o[t])}`};return s}return t[e]}))])}function pI(e,t){var n;const i=[{}];for(const r of e){let e=null==(n=t[r])?void 0:n.style;if(e){e=c(e);for(const n of e)i.push(t.style[n])}}return Object.assign.apply(null,i)}function mI(e,t,n,i={}){var r;const o=ds(e,n,t);if(void 0!==o)return{configFrom:"style",configValue:o};for(const a of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(void 0!==(null==(r=i[a])?void 0:r[e]))return{configFrom:a,configValue:i[a][e]};return{}}const gI={scale:({model:e,channel:t})=>e.scaleName(t),format:({format:e})=>e,formatType:({formatType:e})=>e,grid:({fieldOrDatumDef:e,axis:t,scaleType:n})=>t.grid??function(e,t){return!wB(e)&&XT(t)&&!La(null==t?void 0:t.bin)&&!qa(null==t?void 0:t.bin)}(n,e),gridScale:({model:e,channel:t})=>function(e,t){const n="x"===t?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n);return}(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelAlign||bI(t,n,i),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelBaseline||vI(t,n,i),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>e.labelFlush??function(e,t){if("x"===t&&ji(["quantitative","temporal"],e))return!0;return}(t.type,n),labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>e.labelOverlap??function(e,t,n,i){if(n&&!a(i)||"nominal"!==e&&"ordinal"!==e)return"log"!==t&&"symlog"!==t||"greedy";return}(t.type,n,XT(t)&&!!t.timeUnit,XT(t)?t.sort:void 0),orient:({orient:e})=>e,tickCount:({channel:e,model:t,axis:n,fieldOrDatumDef:i,scaleType:r})=>{const o="x"===e?"width":"y"===e?"height":void 0,a=o?t.getSizeSignalRef(o):void 0;return n.tickCount??function({fieldOrDatumDef:e,scaleType:t,size:n,values:i}){var r;if(!i&&!wB(t)&&"log"!==t){if(XT(e)){if(La(e.bin))return{signal:`ceil(${n.signal}/10)`};if(e.timeUnit&&ji(["month","hours","day","quarter"],null==(r=RR(e.timeUnit))?void 0:r.unit))return}return{signal:`ceil(${n.signal}/40)`}}return}({fieldOrDatumDef:i,scaleType:r,size:a,values:n.values})},tickMinStep:function({format:e,fieldOrDatumDef:t}){if("d"===e)return 1;if(XT(t)){const{timeUnit:e}=t;if(e){const t=BR(e);if(t)return{signal:t}}}return},title:({axis:e,model:t,channel:n})=>{if(void 0!==e.title)return e.title;const i=xI(t,n);if(void 0!==i)return i;const r=t.typedFieldDef(n),o="x"===n?"x2":"y2",a=t.fieldDef(o);return ps(r?[LT(r)]:[],XT(a)?[LT(a)]:[])},values:({axis:e,fieldOrDatumDef:t})=>function(e,t){const n=e.values;if(u(n))return SP(t,n);if(Xa(n))return n;return}(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>e.zindex??function(e,t){if("rect"===e&&cP(t))return 1;return 0}(n,t)};function yI(e){return`(((${e.signal} % 360) + 360) % 360)`}function vI(e,t,n,i){if(void 0!==e){if("x"===n){if(Xa(e)){const n=yI(e);return{signal:`(45 < ${n} && ${n} < 135) || (225 < ${n} && ${n} < 315) ? "middle" :(${n} <= 45 || 315 <= ${n}) === ${Xa(t)?`(${t.signal} === "top")`:"top"===t} ? "bottom" : "top"`}}if(45<e&&e<135||225<e&&e<315)return"middle";if(Xa(t)){const n=e<=45||315<=e?"===":"!==";return{signal:`${t.signal} ${n} "top" ? "bottom" : "top"`}}return(e<=45||315<=e)==("top"===t)?"bottom":"top"}if(Xa(e)){const n=yI(e);return{signal:`${n} <= 45 || 315 <= ${n} || (135 <= ${n} && ${n} <= 225) ? ${i?'"middle"':"null"} : (45 <= ${n} && ${n} <= 135) === ${Xa(t)?`(${t.signal} === "left")`:"left"===t} ? "top" : "bottom"`}}if(e<=45||315<=e||135<=e&&e<=225)return i?"middle":null;if(Xa(t)){const n=45<=e&&e<=135?"===":"!==";return{signal:`${t.signal} ${n} "left" ? "top" : "bottom"`}}return(45<=e&&e<=135)==("left"===t)?"top":"bottom"}}function bI(e,t,n){if(void 0===e)return;const i="x"===n,r=i?0:90,o=i?"bottom":"left";if(Xa(e)){const n=yI(e);return{signal:`(${r?`(${n} + 90)`:n} % 180 === 0) ? ${i?null:'"center"'} :(${r} < ${n} && ${n} < ${180+r}) === ${Xa(t)?`(${t.signal} === "${o}")`:t===o} ? "left" : "right"`}}if((e+r)%180==0)return i?null:"center";if(Xa(t)){const n=r<e&&e<180+r?"===":"!==";return{signal:`${`${t.signal} ${n} "${o}"`} ? "left" : "right"`}}return(r<e&&e<180+r)==(t===o)?"left":"right"}function xI(e,t){const n="x"===t?"x2":"y2",i=e.fieldDef(t),r=e.fieldDef(n),o=i?i.title:void 0,a=r?r.title:void 0;return o&&a?ms(o,a):o||(a||(void 0!==o?o:void 0!==a?a:void 0))}class wI extends vq{clone(){return new wI(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this._dependentFields=oI(this.transform.calculate)}static parseAllForSortIndex(e,t){return t.forEachFieldDef(((t,n)=>{if(rP(t)&&BT(t.sort)){const{field:i,timeUnit:r}=t,o=t.sort,a=o.map(((e,t)=>`${YR({field:i,timeUnit:r,equal:e})} ? ${t} : `)).join("")+o.length;e=new wI(e,{calculate:a,as:_I(t,n,{forAs:!0})})}})),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${Ti(this.transform)}`}}function _I(e,t,n){return uP(e,{prefix:t,suffix:"sort_index",...n})}function kI(e,t){return ji(["top","bottom"],t)?"column":ji(["left","right"],t)||"row"===e?"row":"column"}function $I(e,t,n,i){const r="row"===i?n.headerRow:"column"===i?n.headerColumn:n.headerFacet;return hr((t||{})[e],r[e],n.header[e])}function DI(e,t,n,i){const r={};for(const o of e){const e=$I(o,t||{},n,i);void 0!==e&&(r[o]=e)}return r}const AI=["row","column"],SI=["header","footer"];function EI(e,t){const n=e.component.layoutHeaders[t].title,i=e.config?e.config:void 0,r=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:o,titleAngle:a,titleOrient:s}=DI(["titleAnchor","titleAngle","titleOrient"],r.header,i,t),l=kI(t,s),u=br(a);return{name:`${t}-title`,type:"group",role:`${l}-title`,title:{text:n,..."row"===t?{orient:"left"}:{},style:"guide-title",...CI(u,l),...FI(l,u,o),...TI(i,r,t,xj,vj)}}}function FI(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=bI(t,"row"===e?"left":"top","row"===e?"y":"x");return i?{align:i}:{}}function CI(e,t){const n=vI(e,"row"===t?"left":"top","row"===t?"y":"x",!0);return n?{baseline:n}:{}}function MI(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of SI)if(n[r])for(const o of n[r]){const a=NI(e,t,r,n,o);null!=a&&i.push(a)}return i}function zI(e,t){const{sort:n}=e;return RT(n)?{field:uP(n,{expr:"datum"}),order:n.order??"ascending"}:u(n)?{field:_I(e,t,{expr:"datum"}),order:"ascending"}:{field:uP(e,{expr:"datum"}),order:n??"ascending"}}function OI(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:a,labelOrient:s,labelExpr:l}=DI(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),u=kT({fieldOrDatumDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,c=kI(t,s);return{text:{signal:l?cr(cr(l,"datum.label",u),"datum.value",uP(e,{expr:"parent"})):u},..."row"===t?{orient:"left"}:{},style:"guide-label",frame:"group",...CI(o,c),...FI(c,o,a),...TI(n,e,t,wj,bj)}}function NI(e,t,n,i,r){if(r){let o=null;const{facetFieldDef:a}=i,s=e.config?e.config:void 0;if(a&&r.labels){const{labelOrient:e}=DI(["labelOrient"],a.header,s,t);("row"===t&&!ji(["top","bottom"],e)||"column"===t&&!ji(["left","right"],e))&&(o=OI(a,t,s))}const l=TH(e)&&!TT(e.facet),u=r.axes,c=(null==u?void 0:u.length)>0;if(o||c){const s="row"===t?"height":"width";return{name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`,...i.facetFieldDef?{from:{data:e.getName(`${t}_domain`)},sort:zI(a,t)}:{},...c&&l?{from:{data:e.getName(`facet_domain_${t}`)}}:{},...o?{title:o}:{},...r.sizeSignal?{encode:{update:{[s]:r.sizeSignal}}}:{},...c?{axes:u}:{}}}}return null}const RI={column:{start:0,end:1},row:{start:1,end:0}};function BI(e,t){return RI[t][e]}function TI(e,t,n,i,r){const o={};for(const a of i){if(!r[a])continue;const i=$I(a,null==t?void 0:t.header,e,n);void 0!==i&&(o[r[a]]=i)}return o}function PI(e){return[...jI(e,"width"),...jI(e,"height"),...jI(e,"childWidth"),...jI(e,"childHeight")]}function jI(e,t){const n="width"===t?"x":"y",i=e.component.layoutSize.get(t);if(!i||"merged"===i)return[];const r=e.getSizeSignalRef(t).signal;if("step"===i){const t=e.getScaleComponent(n);if(t){const i=t.get("type"),o=t.get("range");if(wB(i)&&Ja(o)){const i=e.scaleName(n);if(TH(e.parent)){if("independent"===e.parent.component.resolve.scale[n])return[LI(i,o)]}return[LI(i,o),{name:r,update:qI(i,t,`domain('${i}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if("container"==i){const t=r.endsWith("width"),n=t?"containerSize()[0]":"containerSize()[1]",i=`isFinite(${n}) ? ${n} : ${Tj(e.config.view,t?"width":"height")}`;return[{name:r,init:i,on:[{update:i,events:"window:resize"}]}]}return[{name:r,value:i}]}function LI(e,t){const n=`${e}_step`;return Xa(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function qI(e,t,n){const i=t.get("type"),r=t.get("padding"),o=hr(t.get("paddingOuter"),r);let a=t.get("paddingInner");return a="band"===i?void 0!==a?a:r:1,`bandspace(${n}, ${as(a)}, ${as(o)}) * ${e}_step`}function UI(e){return"childWidth"===e?"width":"childHeight"===e?"height":e}function II(e,t){return Qi(e).reduce(((n,i)=>({...n,...tU({model:t,channelDef:e[i],vgChannel:i,mainRefFn:e=>rs(e.value),invalidValueRef:void 0})})),{})}function WI(e,t){if(TH(t))return"theta"===e?"independent":"shared";if(jH(t))return"shared";if(PH(t))return ra(e)||"theta"===e||"radius"===e?"independent":"shared";throw new Error("invalid model type for resolve")}function HI(e,t){const n=e.scale[t],i=ra(t)?"axis":"legend";return"independent"===n?("shared"===e[i][t]&&gR(function(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}(t)),"independent"):e[i][t]||"shared"}const GI=Qi({aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});class VI extends tq{}const YI={symbols:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r,legendType:o}){if("symbol"!==o)return;const{markDef:a,encoding:s,config:l,mark:c}=n,f=a.filled&&"trail"!==c;let d={...ss({},n,tT),...fU(n,{filled:f})};const h=r.get("symbolOpacity")??l.legend.symbolOpacity,p=r.get("symbolFillColor")??l.legend.symbolFillColor,m=r.get("symbolStrokeColor")??l.legend.symbolStrokeColor,g=void 0===h?XI(s.opacity)??a.opacity:void 0;if(d.fill)if("fill"===i||f&&i===Ir)delete d.fill;else if($r(d.fill,"field"))p?delete d.fill:(d.fill=rs(l.legend.symbolBaseFillColor??"black"),d.fillOpacity=rs(g??1));else if(u(d.fill)){const e=JI(s.fill??s.color)??a.fill??(f&&a.color);e&&(d.fill=rs(e))}if(d.stroke)if("stroke"===i||!f&&i===Ir)delete d.stroke;else if($r(d.stroke,"field")||m)delete d.stroke;else if(u(d.stroke)){const e=hr(JI(s.stroke||s.color),a.stroke,f?a.color:void 0);e&&(d.stroke={value:e})}if(i!==Xr){const e=XT(t)&&KI(n,r,t);e?d.opacity=[{test:e,...rs(g??1)},rs(l.legend.unselectedOpacity)]:g&&(d.opacity=rs(g))}return d={...d,...e},Ji(d)?void 0:d},gradient:function(e,{model:t,legendType:n,legendCmpt:i}){if("gradient"!==n)return;const{config:r,markDef:o,encoding:a}=t;let s={};const l=void 0===(i.get("gradientOpacity")??r.legend.gradientOpacity)?XI(a.opacity)||o.opacity:void 0;l&&(s.opacity=rs(l));return s={...s,...e},Ji(s)?void 0:s},labels:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r}){const o=n.legend(i)||{},a=n.config,s=XT(t)?KI(n,r,t):void 0,l=s?[{test:s,value:1},{value:a.legend.unselectedOpacity}]:void 0,{format:u,formatType:c}=o;let f;wT(c)?f=DT({fieldOrDatumDef:t,field:"datum.value",format:u,formatType:c,config:a}):void 0===u&&void 0===c&&a.customFormatTypes&&("quantitative"===t.type&&a.numberFormatType?f=DT({fieldOrDatumDef:t,field:"datum.value",format:a.numberFormat,formatType:a.numberFormatType,config:a}):"temporal"===t.type&&a.timeFormatType&&XT(t)&&void 0===t.timeUnit&&(f=DT({fieldOrDatumDef:t,field:"datum.value",format:a.timeFormat,formatType:a.timeFormatType,config:a})));const d={...l?{opacity:l}:{},...f?{text:f}:{},...e};return Ji(d)?void 0:d},entries:function(e,{legendCmpt:t}){const n=t.get("selections");return(null==n?void 0:n.length)?{...e,fill:{value:"transparent"}}:e}};function XI(e){return QI(e,((e,t)=>Math.max(e,t.value)))}function JI(e){return QI(e,((e,t)=>hr(e,t.value)))}function QI(e,t){return function(e){const t=null==e?void 0:e.condition;return!!t&&(u(t)||iP(t))}(e)?c(e.condition).reduce(t,e.value):iP(e)?e.value:void 0}function KI(e,t,n){const i=t.get("selections");if(!(null==i?void 0:i.length))return;const r=o(n.field);return i.map((e=>`(!length(data(${o(tr(e)+YU)})) || (${e}[${r}] && indexof(${e}[${r}], datum.value) >= 0))`)).join(" || ")}const ZI={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:i,formatType:r}=t;return AT(e,e.type,i,r,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:i}=e;return ST(i,t,n)},gradientLength:e=>{const{legend:t,legendConfig:n}=e;return t.gradientLength??n.gradientLength??function({legendConfig:e,model:t,direction:n,orient:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:a,gradientVerticalMaxLength:s,gradientVerticalMinLength:l}=e;if(kB(r))return"horizontal"===n?"top"===i||"bottom"===i?tW(t,"width",a,o):a:tW(t,"height",l,s);return}(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>e.labelOverlap??t.labelOverlap??function(e){if(ji(["quantile","threshold","log","symlog"],e))return"greedy";return}(n),symbolType:({legend:e,markDef:t,channel:n,encoding:i})=>e.symbolType??function(e,t,n,i){if("shape"!==t){const e=JI(n)??i;if(e)return e}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}(t.type,n,i.shape,t.shape),title:({fieldOrDatumDef:e,config:t})=>pP(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if(go(n)&&kB(t)){if("gradient"===e)return}else if("symbol"===e)return;return e},values:({fieldOrDatumDef:e,legend:t})=>function(e,t){const n=e.values;if(u(n))return SP(t,n);if(Xa(n))return n;return}(t,e)};function eW(e){const{legend:t}=e;return hr(t.type,function({channel:e,timeUnit:t,scaleType:n}){if(go(e)){if(ji(["quarter","month","day"],t))return"symbol";if(kB(n))return"gradient"}return"symbol"}(e))}function tW(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function nW(e){const t=BH(e)?function(e){const{encoding:t}=e,n={};for(const i of[Ir,...kj]){const r=bP(t[i]);r&&e.getScaleComponent(i)&&(i===Gr&&XT(r)&&r.type===nB||(n[i]=rW(e,i)))}return n}(e):function(e){const{legends:t,resolve:n}=e.component;for(const i of e.children){nW(i);for(const r of Qi(i.component.legends))n.legend[r]=HI(e.component.resolve,r),"shared"===n.legend[r]&&(t[r]=oW(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))}for(const i of Qi(t))for(const t of e.children)t.component.legends[i]&&"shared"===n.legend[i]&&delete t.component.legends[i];return t}(e);return e.component.legends=t,t}function iW(e,t,n,i){switch(t){case"disable":return void 0!==n;case"values":return!!(null==n?void 0:n.values);case"title":if("title"===t&&e===(null==i?void 0:i.title))return!0}return e===(n||{})[t]}function rW(e,t){var n;let i=e.legend(t);const{markDef:r,encoding:o,config:a}=e,s=a.legend,l=new VI({},function(e,t){const n=e.scaleName(t);if("trail"===e.mark){if("color"===t)return{stroke:n};if("size"===t)return{strokeWidth:n}}return"color"===t?e.markDef.filled?{fill:n}:{stroke:n}:{[t]:n}}(e,t));!function(e,t,n){var i;const r=null==(i=e.fieldDef(t))?void 0:i.field;for(const o of Ki(e.component.selection??{})){const e=o.project.hasField[r]??o.project.hasChannel[t];if(e&&jU.defined(o)){const t=n.get("selections")??[];t.push(o.name),n.set("selections",t,!1),e.hasLegend=!0}}}(e,t,l);const u=void 0!==i?!i:s.disable;if(l.set("disable",u,void 0!==i),u)return l;i=i||{};const c=e.getScaleComponent(t).get("type"),f=bP(o[t]),d=XT(f)?null==(n=RR(f.timeUnit))?void 0:n.unit:void 0,h=i.orient||a.legend.orient||"right",p=eW({legend:i,channel:t,timeUnit:d,scaleType:c}),m=function({legendConfig:e,legendType:t,orient:n,legend:i}){return i.direction??e[t?"gradientDirection":"symbolDirection"]??function(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return"gradient"===t?"horizontal":void 0}}(n,t)}({legend:i,legendType:p,orient:h,legendConfig:s}),g={legend:i,channel:t,model:e,markDef:r,encoding:o,fieldOrDatumDef:f,legendConfig:s,config:a,scaleType:c,orient:h,legendType:p,direction:m};for(const w of GI){if("gradient"===p&&w.startsWith("symbol")||"symbol"===p&&w.startsWith("gradient"))continue;const n=w in ZI?ZI[w](g):i[w];if(void 0!==n){const r=iW(n,w,i,e.fieldDef(t));(r||void 0===a.legend[w])&&l.set(w,n,r)}}const y=(null==i?void 0:i.encoding)??{},v=l.get("selections"),b={},x={fieldOrDatumDef:f,model:e,channel:t,legendCmpt:l,legendType:p};for(const w of["labels","legend","title","symbols","gradient","entries"]){const t=II(y[w]??{},e),n=w in YI?YI[w](t,x):t;void 0===n||Ji(n)||(b[w]={...(null==v?void 0:v.length)&&XT(f)?{name:`${tr(f.field)}_legend_${w}`}:{},...(null==v?void 0:v.length)?{interactive:!!v}:{},update:n})}return Ji(b)||l.set("encode",b,!!(null==i?void 0:i.encoding)),l}function oW(e,t){var n,i,r,o;if(!e)return t.clone();const a=e.getWithExplicit("orient"),s=t.getWithExplicit("orient");if(a.explicit&&s.explicit&&a.value!==s.value)return;let l=!1;for(const u of GI){const n=aq(e.getWithExplicit(u),t.getWithExplicit(u),u,"legend",((e,t)=>{switch(u){case"symbolType":return aW(e,t);case"title":return gs(e,t);case"type":return l=!0,iq("symbol")}return oq(e,t,u,"legend")}));e.setWithExplicit(u,n)}return l&&((null==(i=null==(n=e.implicit)?void 0:n.encode)?void 0:i.gradient)&&ir(e.implicit,["encode","gradient"]),(null==(o=null==(r=e.explicit)?void 0:r.encode)?void 0:o.gradient)&&ir(e.explicit,["encode","gradient"])),e}function aW(e,t){return"circle"===t.value?t:e}function sW(e){const t=e.component.legends,n={};for(const i of Qi(t)){const r=kr(e.getScaleComponent(i).get("domains"));if(n[r])for(const e of n[r]){oW(e,t[i])||n[r].push(t[i])}else n[r]=[t[i].clone()]}return Ki(n).flat().map((t=>function(e,t){var n,i,r;const{disable:o,labelExpr:a,selections:s,...l}=e.combine();if(o)return;!1===t.aria&&null==l.aria&&(l.aria=!1);if(null==(n=l.encode)?void 0:n.symbols){const e=l.encode.symbols.update;!e.fill||"transparent"===e.fill.value||e.stroke||l.stroke||(e.stroke={value:"transparent"});for(const t of kj)l[t]&&delete e[t]}l.title||delete l.title;if(void 0!==a){let e=a;(null==(r=null==(i=l.encode)?void 0:i.labels)?void 0:r.update)&&Xa(l.encode.labels.update.text)&&(e=cr(a,"datum.label",l.encode.labels.update.text.signal)),function(e,t,n,i){var r,o;e.encode??(e.encode={}),(r=e.encode)[t]??(r[t]={}),(o=e.encode[t]).update??(o.update={}),e.encode[t].update[n]=i}(l,"labels","text",{signal:e})}return l}(t,e.config))).filter((e=>void 0!==e))}function lW(e){return jH(e)||PH(e)?function(e){return e.children.reduce(((e,t)=>e.concat(t.assembleProjections())),uW(e))}(e):uW(e)}function uW(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:i}=n;if(t.data){const r={signal:`[${t.size.map((e=>e.signal)).join(", ")}]`},o=t.data.reduce(((t,n)=>{const i=Xa(n)?n.signal:`data('${e.lookupDataSource(n)}')`;return ji(t,i)||t.push(i),t}),[]);if(o.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:i,size:r,fit:{signal:o.length>1?`[${o.join(", ")}]`:o[0]},...n}]}return[{name:i,translate:{signal:"[width / 2, height / 2]"},...n}]}const cW=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class fW extends tq{constructor(e,t,n,i){super({...t},{name:e}),this.specifiedProjection=t,this.size=n,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function dW(e){e.component.projection=BH(e)?function(e){if(e.hasProjection){const t=Ga(e.specifiedProjection),n=!(t&&(null!=t.scale||null!=t.translate)),i=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,r=n?function(e){const t=[],{encoding:n}=e;for(const i of[[jr,Pr],[qr,Lr]])(bP(n[i[0]])||bP(n[i[1]]))&&t.push({signal:e.getName(`geojson_${t.length}`)});e.channelHasField(Gr)&&e.typedFieldDef(Gr).type===nB&&t.push({signal:e.getName(`geojson_${t.length}`)});0===t.length&&t.push(e.requestDataName(mq.Main));return t}(e):void 0,o=new fW(e.projectionName(!0),{...Ga(e.config.projection),...t},i,r);return o.get("type")||o.set("type","equalEarth",!1),o}return}(e):function(e){if(0===e.children.length)return;let n;for(const t of e.children)dW(t);const i=qi(e.children,(e=>{const i=e.component.projection;if(i){if(n){const e=function(e,n){const i=qi(cW,(i=>!t(e.explicit,i)&&!t(n.explicit,i)||!!(t(e.explicit,i)&&t(n.explicit,i)&&_r(e.get(i),n.get(i)))));if(_r(e.size,n.size)){if(i)return e;if(_r(e.explicit,{}))return n;if(_r(n.explicit,{}))return e}return null}(n,i);return e&&(n=e),!!e}return n=i,!0}return!0}));if(n&&i){const t=e.projectionName(!0),i=new fW(t,n.specifiedProjection,n.size,Oi(n.data));for(const n of e.children){const e=n.component.projection;e&&(e.isFit&&i.data.push(...n.component.projection.data),n.renameProjection(e.get("name"),t),e.merged=!0)}return i}return}(e)}function hW(e,t,n,i){if(EP(t,n)){const r=BH(e)?e.axis(n)??e.legend(n)??{}:{},o=uP(t,{expr:"datum"}),a=uP(t,{expr:"datum",binSuffix:"end"});return{formulaAs:uP(t,{binSuffix:"range",forAs:!0}),formula:MT(o,a,r.format,r.formatType,i)}}return{}}function pW(e,t){return`${ja(e)}_${t}`}function mW(e,t,n){const i=pW(kP(n,void 0)??{},t);return e.getName(`${i}_bins`)}function gW(e,t,n){let r,o;r=function(e){return"as"in e}(e)?i(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:[uP(e,{forAs:!0}),uP(e,{binSuffix:"end",forAs:!0})];const a={...kP(t,void 0)},s=pW(a,e.field),{signal:l,extentSignal:u}=function(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}(n,s);if(Ia(a.extent)){const e=a.extent;o=lI(n,e.param,e),delete a.extent}return{key:s,binComponent:{bin:a,field:e.field,as:[r],...l?{signal:l}:{},...u?{extentSignal:u}:{},...o?{span:o}:{}}}}class yW extends vq{clone(){return new yW(null,Oi(this.bins))}constructor(e,t){super(e),this.bins=t}static makeFromEncoding(e,t){const n=t.reduceFieldDef(((e,n,i)=>{if(nP(n)&&La(n.bin)){const{key:r,binComponent:o}=gW(n,n.bin,t);e[r]={...o,...e[r],...hW(t,n,i,t.config)}}return e}),{});return Ji(n)?null:new yW(e,n)}static makeFromTransform(e,t,n){const{key:i,binComponent:r}=gW(t,t.bin,n);return new yW(e,{[i]:r})}merge(e,t){for(const n of Qi(e.bins))n in this.bins?(t(e.bins[n].signal,this.bins[n].signal),this.bins[n].as=Wi([...this.bins[n].as,...e.bins[n].as],Ti)):this.bins[n]=e.bins[n];for(const n of e.children)e.removeChild(n),n.parent=this;e.remove()}producedFields(){return new Set(Ki(this.bins).map((e=>e.as)).flat(2))}dependentFields(){return new Set(Ki(this.bins).map((e=>e.field)))}hash(){return`Bin ${Ti(this.bins)}`}assemble(){return Ki(this.bins).flatMap((e=>{const t=[],[n,...i]=e.as,{extent:r,...o}=e.bin,a={type:"bin",field:ur(e.field),as:n,signal:e.signal,...Ia(r)?{extent:null}:{extent:r},...e.span?{span:{signal:`span(${e.span})`}}:{},...o};!r&&e.extentSignal&&(t.push({type:"extent",field:ur(e.field),signal:e.extentSignal}),a.extent={signal:e.extentSignal}),t.push(a);for(const s of i)for(let e=0;e<2;e++)t.push({type:"formula",expr:uP({field:n[e]},{expr:"datum"}),as:s[e]});return e.formula&&t.push({type:"formula",expr:e.formula,as:e.formulaAs}),t}))}}function vW(e,t,n,i){var r;const o=BH(i)?i.encoding[No(t)]:void 0;if(nP(n)&&BH(i)&&WT(n,o,i.markDef,i.config)){e.add(uP(n,{})),e.add(uP(n,{suffix:"end"}));const{mark:r,markDef:o,config:a}=i,s=UT({fieldDef:n,markDef:o,config:a});KB(r)&&.5!==s&&ra(t)&&(e.add(uP(n,{suffix:kq})),e.add(uP(n,{suffix:$q}))),n.bin&&EP(n,t)&&e.add(uP(n,{binSuffix:"range"}))}else if(ho(t)){const n=fo(t);e.add(i.getName(n))}else e.add(uP(n));var s;return rP(n)&&(s=null==(r=n.scale)?void 0:r.range,a(s)&&"field"in s)&&e.add(n.scale.range.field),e}class bW extends vq{clone(){return new bW(null,new Set(this.dimensions),Oi(this.measures))}constructor(e,t,n){super(e),this.dimensions=t,this.measures=n}get groupBy(){return this.dimensions}static makeFromEncoding(e,t){let n=!1;t.forEachFieldDef((e=>{e.aggregate&&(n=!0)}));const i={},r=new Set;return n?(t.forEachFieldDef(((e,n)=>{const{aggregate:o,field:a}=e;if(o)if("count"===o)i["*"]??(i["*"]={}),i["*"].count=new Set([uP(e,{forAs:!0})]);else{if(za(o)||Oa(o)){const e=za(o)?"argmin":"argmax",t=o[e];i[t]??(i[t]={}),i[t][e]=new Set([uP({op:e,field:t},{forAs:!0})])}else i[a]??(i[a]={}),i[a][o]=new Set([uP(e,{forAs:!0})]);$a(n)&&"unaggregated"===t.scaleDomain(n)&&(i[a]??(i[a]={}),i[a].min=new Set([uP({field:a,aggregate:"min"},{forAs:!0})]),i[a].max=new Set([uP({field:a,aggregate:"max"},{forAs:!0})]))}else vW(r,n,e,t)})),r.size+Qi(i).length===0?null:new bW(e,r,i)):null}static makeFromTransform(e,t){var n;const i=new Set,r={};for(const o of t.aggregate){const{op:e,field:t,as:i}=o;e&&("count"===e?(r["*"]??(r["*"]={}),r["*"].count=new Set([i||uP(o,{forAs:!0})])):(r[t]??(r[t]={}),(n=r[t])[e]??(n[e]=new Set),r[t][e].add(i||uP(o,{forAs:!0}))))}for(const o of t.groupby??[])i.add(o);return i.size+Qi(r).length===0?null:new bW(e,i,r)}merge(e){return Gi(this.dimensions,e.dimensions)?(function(e,t){for(const n of Qi(t)){const i=t[n];for(const t of Qi(i))n in e?e[n][t]=new Set([...e[n][t]??[],...i[t]]):e[n]={[t]:i[t]}}}(this.measures,e.measures),!0):(function(...e){pR.debug(...e)}("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...Qi(this.measures)])}producedFields(){const e=new Set;for(const t of Qi(this.measures))for(const n of Qi(this.measures[t])){const i=this.measures[t][n];0===i.size?e.add(`${n}_${t}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${Ti({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],t=[],n=[];for(const i of Qi(this.measures))for(const r of Qi(this.measures[i]))for(const o of this.measures[i][r])n.push(o),e.push(r),t.push("*"===i?null:ur(i));return{type:"aggregate",groupby:[...this.dimensions].map(ur),ops:e,fields:t,as:n}}}class xW extends vq{constructor(e,t,n,i){super(e),this.model=t,this.name=n,this.data=i;for(const r of vo){const e=t.facet[r];if(e){const{bin:n,sort:i}=e;this[r]={name:t.getName(`${r}_domain`),fields:[uP(e),...La(n)?[uP(e,{binSuffix:"end"})]:[]],...RT(i)?{sortField:i}:u(i)?{sortIndexField:_I(e,r)}:{}}}}this.childModel=t.child}hash(){let e="Facet";for(const t of vo)this[t]&&(e+=` ${t.charAt(0)}:${Ti(this[t])}`);return e}get fields(){var e;const t=[];for(const n of vo)(null==(e=this[n])?void 0:e.fields)&&t.push(...this[n].fields);return t}dependentFields(){const e=new Set(this.fields);for(const t of vo)this[t]&&(this[t].sortField&&e.add(this[t].sortField.field),this[t].sortIndexField&&e.add(this[t].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const t of ia){const n=this.childModel.component.scales[t];if(n&&!n.merged){const i=n.get("type"),r=n.get("range");if(wB(i)&&Ja(r)){const n=hH(pH(this.childModel,t));n?e[t]=n:gR(qN(t))}}}return e}assembleRowColumnHeaderData(e,t,n){const i={row:"y",column:"x",facet:void 0}[e],r=[],o=[],a=[];i&&n&&n[i]&&(t?(r.push(`distinct_${n[i]}`),o.push("max")):(r.push(n[i]),o.push("distinct")),a.push(`distinct_${n[i]}`));const{sortField:s,sortIndexField:l}=this[e];if(s){const{op:e=zT,field:t}=s;r.push(t),o.push(e),a.push(uP(s,{forAs:!0}))}else l&&(r.push(l),o.push("max"),a.push(l));return{name:this[e].name,source:t??this.data,transform:[{type:"aggregate",groupby:this[e].fields,...r.length?{fields:r,ops:o,as:a}:{}}]}}assembleFacetHeaderData(e){var t;const{columns:n}=this.model.layout,{layoutHeaders:i}=this.model.component,r=[],o={};for(const l of AI){for(const e of SI){const n=(i[l]&&i[l][e])??[];for(const e of n)if((null==(t=e.axes)?void 0:t.length)>0){o[l]=!0;break}}if(o[l]){const e=`length(data("${this.facet.name}"))`,t="row"===l?n?{signal:`ceil(${e} / ${n})`}:1:n?{signal:`min(${e}, ${n})`}:{signal:e};r.push({name:`${this.facet.name}_${l}`,transform:[{type:"sequence",start:0,stop:t}]})}}const{row:a,column:s}=o;return(a||s)&&r.unshift(this.assembleRowColumnHeaderData("facet",null,e)),r}assemble(){const e=[];let t=null;const n=this.getChildIndependentFieldsWithStep(),{column:i,row:r,facet:o}=this;if(i&&r&&(n.x||n.y)){t=`cross_${this.column.name}_${this.row.name}`;const i=[].concat(n.x??[],n.y??[]),r=i.map((()=>"distinct"));e.push({name:t,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:i,ops:r}]})}for(const a of[Ar,Dr])this[a]&&e.push(this.assembleRowColumnHeaderData(a,t,n));if(o){const t=this.assembleFacetHeaderData(n);t&&e.push(...t)}return e}}function wW(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function _W(e){const t={};return Mi(e.filter,(e=>{if(GR(e)){let r=null;jR(e)?r=ns(e.equal):qR(e)?r=ns(e.lte):LR(e)?r=ns(e.lt):UR(e)?r=ns(e.gt):IR(e)?r=ns(e.gte):WR(e)?r=e.range[0]:HR(e)&&(r=(e.oneOf??e.in)[0]),r&&(yR(r)?t[e.field]="date":n(r)?t[e.field]="number":i(r)&&(t[e.field]="string")),e.timeUnit&&(t[e.field]="date")}})),t}function kW(e){const t={};function n(e){var n;DP(e)?t[e.field]="date":"quantitative"===e.type&&(n=e.aggregate,i(n)&&ji(["min","max"],n))?t[e.field]="number":dr(e.field)>1?e.field in t||(t[e.field]="flatten"):rP(e)&&RT(e.sort)&&dr(e.sort.field)>1&&(e.sort.field in t||(t[e.sort.field]="flatten"))}if((BH(e)||TH(e))&&e.forEachFieldDef(((t,i)=>{if(nP(t))n(t);else{const r=zo(i),o=e.fieldDef(r);n({...t,type:o.type})}})),BH(e)){const{mark:n,markDef:i,encoding:r}=e;if(QB(n)&&!e.encoding.order){const e=r["horizontal"===i.orient?"y":"x"];XT(e)&&"quantitative"===e.type&&!(e.field in t)&&(t[e.field]="number")}}return t}class $W extends vq{clone(){return new $W(null,Oi(this._parse))}constructor(e,t){super(e),this._parse=t}hash(){return`Parse ${Ti(this._parse)}`}static makeExplicit(e,t,n){var i;let r={};const o=t.data;return!fq(o)&&(null==(i=null==o?void 0:o.format)?void 0:i.parse)&&(r=o.format.parse),this.makeWithAncestors(e,r,{},n)}static makeWithAncestors(e,t,n,i){for(const a of Qi(n)){const e=i.getWithExplicit(a);void 0!==e.value&&(e.explicit||e.value===n[a]||"derived"===e.value||"flatten"===n[a]?delete n[a]:gR(YN(a,n[a],e.value)))}for(const a of Qi(t)){const e=i.get(a);void 0!==e&&(e===t[a]?delete t[a]:gR(YN(a,t[a],e)))}const r=new tq(t,n);i.copyAll(r);const o={};for(const a of Qi(r.combine())){const e=r.get(a);null!==e&&(o[a]=e)}return 0===Qi(o).length||i.parseNothing?null:new $W(e,o)}get parse(){return this._parse}merge(e){this._parse={...this._parse,...e.parse},e.remove()}assembleFormatParse(){const e={};for(const t of Qi(this._parse)){const n=this._parse[t];1===dr(t)&&(e[t]=n)}return e}producedFields(){return new Set(Qi(this._parse))}dependentFields(){return new Set(Qi(this._parse))}assembleTransforms(e=!1){return Qi(this._parse).filter((t=>!e||dr(t)>1)).map((e=>{const t=function(e,t){const n=or(e);if("number"===t)return`toNumber(${n})`;if("boolean"===t)return`toBoolean(${n})`;if("string"===t)return`toString(${n})`;if("date"===t)return`toDate(${n})`;if("flatten"===t)return n;if(t.startsWith("date:"))return`timeParse(${n},'${wW(t.slice(5,t.length))}')`;if(t.startsWith("utc:"))return`utcParse(${n},'${wW(t.slice(4,t.length))}')`;return gR(`Unrecognized parse "${t}".`),null}(e,this._parse[e]);if(!t)return null;return{type:"formula",expr:t,as:fr(e)}})).filter((e=>null!==e))}}class DW extends vq{clone(){return new DW(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([$j])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:$j}}}class AW extends vq{clone(){return new AW(null,this.params)}constructor(e,t){super(e),this.params=t}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Ti(this.params)}`}assemble(){return{type:"graticule",...!0===this.params?{}:this.params}}}class SW extends vq{clone(){return new SW(null,this.params)}constructor(e,t){super(e),this.params=t}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${Ti(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class EW extends vq{constructor(e){let t;if(super(null),e??(e={name:"source"}),fq(e)||(t=e.format?{...Bi(e.format,["parse"])}:{}),uq(e))this._data={values:e.values};else if(lq(e)){if(this._data={url:e.url},!t.type){let n=/(?:\.([^.]+))?$/.exec(e.url)[1];ji(["json","csv","tsv","dsv","topojson"],n)||(n="json"),t.type=n}}else hq(e)?this._data={values:[{type:"Sphere"}]}:(cq(e)||fq(e))&&(this._data={});this._generator=fq(e),e.name&&(this._name=e.name),t&&!Ji(t)&&(this._data.format=t)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}var FW,CW=function(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n};function MW(e){return e instanceof EW||e instanceof AW||e instanceof SW}class zW{constructor(){FW.set(this,void 0),CW(this,FW,!1,"f")}setModified(){CW(this,FW,!0,"f")}get modifiedFlag(){return function(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)}(this,FW,"f")}}FW=new WeakMap;class OW extends zW{getNodeDepths(e,t,n){n.set(e,t);for(const i of e.children)this.getNodeDepths(i,t+1,n);return n}optimize(e){const t=[...this.getNodeDepths(e,0,new Map).entries()].sort(((e,t)=>t[1]-e[1]));for(const n of t)this.run(n[0]);return this.modifiedFlag}}class NW extends zW{optimize(e){this.run(e);for(const t of e.children)this.optimize(t);return this.modifiedFlag}}class RW extends NW{mergeNodes(e,t){const n=t.shift();for(const i of t)e.removeChild(i),i.parent=n,i.remove()}run(e){const t=e.children.map((e=>e.hash())),n={};for(let i=0;i<t.length;i++)void 0===n[t[i]]?n[t[i]]=[e.children[i]]:n[t[i]].push(e.children[i]);for(const i of Qi(n))n[i].length>1&&(this.setModified(),this.mergeNodes(e,n[i]))}}class BW extends NW{constructor(e){super(),this.requiresSelectionId=e&&eI(e)}run(e){e instanceof DW&&(this.requiresSelectionId&&(MW(e.parent)||e.parent instanceof bW||e.parent instanceof $W)||(this.setModified(),e.remove()))}}class TW extends zW{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,t){let n=new Set;e instanceof _q&&(n=e.producedFields(),Vi(n,t)&&(this.setModified(),e.removeFormulas(t),0===e.producedFields.length&&e.remove()));for(const i of e.children)this.run(i,new Set([...t,...n]))}}class PW extends NW{constructor(){super()}run(e){e instanceof bq&&!e.isRequired()&&(this.setModified(),e.remove())}}class jW extends OW{run(e){if(!(MW(e)||e.numChildren()>1))for(const t of e.children)if(t instanceof $W)if(e instanceof $W)this.setModified(),e.merge(t);else{if(Xi(e.producedFields(),t.dependentFields()))continue;this.setModified(),t.swapWithParent()}}}class LW extends OW{run(e){const t=[...e.children],n=e.children.filter((e=>e instanceof $W));if(e.numChildren()>1&&n.length>=1){const i={},r=new Set;for(const e of n){const t=e.parse;for(const e of Qi(t))e in i?i[e]!==t[e]&&r.add(e):i[e]=t[e]}for(const e of r)delete i[e];if(!Ji(i)){this.setModified();const n=new $W(e,i);for(const r of t){if(r instanceof $W)for(const e of Qi(i))delete r.parse[e];e.removeChild(r),r.parent=n,r instanceof $W&&0===Qi(r.parse).length&&r.remove()}}}}}class qW extends OW{run(e){e instanceof bq||e.numChildren()>0||e instanceof xW||e instanceof EW||(this.setModified(),e.remove())}}class UW extends OW{run(e){const t=e.children.filter((e=>e instanceof _q)),n=t.pop();for(const i of t)this.setModified(),n.merge(i)}}class IW extends OW{run(e){const t=e.children.filter((e=>e instanceof bW)),n={};for(const i of t){const e=Ti(i.groupBy);e in n||(n[e]=[]),n[e].push(i)}for(const i of Qi(n)){const t=n[i];if(t.length>1){const n=t.pop();for(const i of t)n.merge(i)&&(e.removeChild(i),i.parent=n,i.remove(),this.setModified())}}}}class WW extends OW{constructor(e){super(),this.model=e}run(e){const t=!(MW(e)||e instanceof aI||e instanceof $W||e instanceof DW),n=[],i=[];for(const r of e.children)r instanceof yW&&(t&&!Xi(e.producedFields(),r.dependentFields())?n.push(r):i.push(r));if(n.length>0){const t=n.pop();for(const e of n)t.merge(e,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof yW?e.merge(t,this.model.renameSignal.bind(this.model)):t.swapWithParent()}if(i.length>1){const e=i.pop();for(const t of i)e.merge(t,this.model.renameSignal.bind(this.model));this.setModified()}}}class HW extends OW{run(e){const t=[...e.children];if(!Li(t,(e=>e instanceof bq))||e.numChildren()<=1)return;const n=[];let i;for(const r of t)if(r instanceof bq){let t=r;for(;1===t.numChildren();){const[e]=t.children;if(!(e instanceof bq))break;t=e}n.push(...t.children),i?(e.removeChild(r),r.parent=i.parent,i.parent.removeChild(i),i.parent=t,this.setModified()):i=t}else n.push(r);if(n.length){this.setModified();for(const e of n)e.parent.removeChild(e),e.parent=i}}}class GW extends vq{clone(){return new GW(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=Wi(this.transform.groupby.concat(e),(e=>e))}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map((e=>e.field)).filter((e=>void 0!==e)).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){return e.as??uP(e)}hash(){return`JoinAggregateTransform ${Ti(this.transform)}`}assemble(){const e=[],t=[],n=[];for(const r of this.transform.joinaggregate)t.push(r.op),n.push(this.getDefaultName(r)),e.push(void 0===r.field?null:r.field);const i=this.transform.groupby;return{type:"joinaggregate",as:n,ops:t,fields:e,...void 0!==i?{groupby:i}:{}}}}class VW extends vq{clone(){return new VW(null,{...this.filter})}constructor(e,t){super(e),this.filter=t}static make(e,t,n){const{config:i,markDef:r}=t,{marks:o,scales:a}=n;if("include-invalid-values"===o&&"include-invalid-values"===a)return null;const s=t.reduceFieldDef(((e,n,o)=>{const a=$a(o)&&t.getScaleComponent(o);if(a){const t=a.get("type"),{aggregate:s}=n,l=dT({scaleChannel:o,markDef:r,config:i,scaleType:t,isCountAggregate:Ba(s)});"show"!==l&&"always-valid"!==l&&(e[n.field]=n)}return e}),{});return Qi(s).length?new VW(e,s):null}dependentFields(){return new Set(Qi(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Ti(this.filter)}`}assemble(){const e=Qi(this.filter).reduce(((e,t)=>{const n=this.filter[t],i=uP(n,{expr:"datum"});return null!==n&&("temporal"===n.type?e.push(`(isDate(${i}) || (${YW(i)}))`):"quantitative"===n.type&&e.push(YW(i))),e}),[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}function YW(e){return`isValid(${e}) && isFinite(+${e})`}class XW extends vq{clone(){return new XW(null,Oi(this._stack))}constructor(e,t){super(e),this._stack=t}static makeFromTransform(e,t){const{stack:n,groupby:r,as:o,offset:a="zero"}=t,s=[],l=[];if(void 0!==t.sort)for(const i of t.sort)s.push(i.field),l.push(hr(i.order,"ascending"));const c={field:s,order:l};let f;return f=function(e){return u(e)&&e.every((e=>i(e)))&&e.length>1}(o)?o:i(o)?[o,`${o}_end`]:[`${t.stack}_start`,`${t.stack}_end`],new XW(e,{dimensionFieldDefs:[],stackField:n,groupby:r,offset:a,sort:c,facetby:[],as:f})}static makeFromEncoding(e,t){const n=t.stack,{encoding:i}=t;if(!n)return null;const{groupbyChannels:r,fieldChannel:o,offset:a,impute:s}=n,l=r.map((e=>vP(i[e]))).filter((e=>!!e)),c=function(e){return e.stack.stackBy.reduce(((e,t)=>{const n=uP(t.fieldDef);return n&&e.push(n),e}),[])}(t),f=t.encoding.order;let d;if(u(f)||XT(f))d=hs(f);else{const e=HT(f)?f.sort:"y"===o?"descending":"ascending";d=c.reduce(((t,n)=>(t.field.includes(n)||(t.field.push(n),t.order.push(e)),t)),{field:[],order:[]})}return new XW(e,{dimensionFieldDefs:l,stackField:t.vgField(o),facetby:[],stackby:c,sort:d,offset:a,impute:s,as:[t.vgField(o,{suffix:"start",forAs:!0}),t.vgField(o,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${Ti(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:t,groupby:n}=this._stack;return e.length>0?e.map((e=>e.bin?t?[uP(e,{binSuffix:"mid"})]:[uP(e,{}),uP(e,{binSuffix:"end"})]:[uP(e)])).flat():n??[]}assemble(){const e=[],{facetby:t,dimensionFieldDefs:n,stackField:i,stackby:r,sort:o,offset:a,impute:s,as:l}=this._stack;if(s)for(const u of n){const{bandPosition:n=.5,bin:o}=u;if(o){const t=uP(u,{expr:"datum"}),i=uP(u,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${YW(t)} ? ${n}*${t}+${1-n}*${i} : ${t}`,as:uP(u,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...r,...t],key:uP(u,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...t],field:i,sort:o,as:l,offset:a}),e}}class JW extends vq{clone(){return new JW(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=Wi(this.transform.groupby.concat(e),(e=>e))}dependentFields(){const e=new Set;return(this.transform.groupby??[]).forEach(e.add,e),(this.transform.sort??[]).forEach((t=>e.add(t.field))),this.transform.window.map((e=>e.field)).filter((e=>void 0!==e)).forEach(e.add,e),e}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){return e.as??uP(e)}hash(){return`WindowTransform ${Ti(this.transform)}`}assemble(){const e=[],t=[],n=[],i=[];for(const c of this.transform.window)t.push(c.op),n.push(this.getDefaultName(c)),i.push(void 0===c.param?null:c.param),e.push(void 0===c.field?null:c.field);const r=this.transform.frame,o=this.transform.groupby;if(r&&null===r[0]&&null===r[1]&&t.every((e=>Na(e))))return{type:"joinaggregate",as:n,ops:t,fields:e,...void 0!==o?{groupby:o}:{}};const a=[],s=[];if(void 0!==this.transform.sort)for(const c of this.transform.sort)a.push(c.field),s.push(c.order??"ascending");const l={field:a,order:s},u=this.transform.ignorePeers;return{type:"window",params:i,as:n,ops:t,fields:e,sort:l,...void 0!==u?{ignorePeers:u}:{},...void 0!==o?{groupby:o}:{},...void 0!==r?{frame:r}:{}}}}function QW(e){if(e instanceof xW)if(1!==e.numChildren()||e.children[0]instanceof bq){const n=e.model.component.data.main;KW(n);const i=(t=e,function e(n){if(!(n instanceof xW)){const i=n.clone();if(i instanceof bq){const e=ZW+i.getSource();i.setSource(e),t.model.component.data.outputNodes[e]=i}else(i instanceof bW||i instanceof XW||i instanceof JW||i instanceof GW)&&i.addDimensions(t.fields);for(const t of n.children.flatMap(e))t.parent=i;return[i]}return n.children.flatMap(e)}),r=e.children.map(i).flat();for(const e of r)e.parent=n}else{const t=e.children[0];(t instanceof bW||t instanceof XW||t instanceof JW||t instanceof GW)&&t.addDimensions(e.fields),t.swapWithParent(),QW(e)}else e.children.map(QW);var t}function KW(e){if(e instanceof bq&&e.type===mq.Main&&1===e.numChildren()){const t=e.children[0];t instanceof xW||(t.swapWithParent(),KW(e))}}const ZW="scale_";function eH(e){for(const t of e){for(const e of t.children)if(e.parent!==t)return!1;if(!eH(t.children))return!1}return!0}function tH(e,t){let n=!1;for(const i of t)n=e.optimize(i)||n;return n}function nH(e,t,n){let i=e.sources,r=!1;return r=tH(new PW,i)||r,r=tH(new BW(t),i)||r,i=i.filter((e=>e.numChildren()>0)),r=tH(new qW,i)||r,i=i.filter((e=>e.numChildren()>0)),n||(r=tH(new jW,i)||r,r=tH(new WW(t),i)||r,r=tH(new TW,i)||r,r=tH(new LW,i)||r,r=tH(new IW,i)||r,r=tH(new UW,i)||r,r=tH(new RW,i)||r,r=tH(new HW,i)||r),e.sources=i,r}class iH{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,t){return new iH((()=>e(t)))}}function rH(e){BH(e)?function(e){const t=e.component.scales;for(const n of Qi(t)){const i=oH(e,n);if(t[n].setWithExplicit("domains",i),uH(e,n),e.component.data.isFaceted){let t=e;for(;!TH(t)&&t.parent;)t=t.parent;if("shared"===t.component.resolve.scale[n])for(const e of i.value)Qa(e)&&(e.data=ZW+e.data.replace(ZW,""))}}}(e):function(e){for(const n of e.children)rH(n);const t=e.component.scales;for(const n of Qi(t)){let i,r=null;for(const t of e.children){const e=t.component.scales[n];if(e){i=void 0===i?e.getWithExplicit("domains"):aq(i,e.getWithExplicit("domains"),"domains","scale",fH);const t=e.get("selectionExtent");r&&t&&r.param!==t.param&&gR(HN),r=t}}t[n].setWithExplicit("domains",i),r&&t[n].set("selectionExtent",r,!0)}}(e)}function oH(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:i}=e,r=function(e,t,n,i){if("unaggregated"===e){const{valid:e,reason:i}=cH(t,n);if(!e)return void gR(i)}else if(void 0===e&&i.useUnaggregatedDomain){const{valid:e}=cH(t,n);if(e)return"unaggregated"}return e}(e.scaleDomain(t),e.typedFieldDef(t),n,e.config.scale);return r!==e.scaleDomain(t)&&(e.specifiedScales[t]={...e.specifiedScales[t],domain:r}),"x"===t&&bP(i.x2)?bP(i.x)?aq(sH(n,r,e,"x"),sH(n,r,e,"x2"),"domain","scale",fH):sH(n,r,e,"x2"):"y"===t&&bP(i.y2)?bP(i.y)?aq(sH(n,r,e,"y"),sH(n,r,e,"y2"),"domain","scale",fH):sH(n,r,e,"y2"):sH(n,r,e,t)}function aH(e,t,n){var i;const r=null==(i=RR(n))?void 0:i.unit;return"temporal"===t||r?function(e,t,n){return e.map((e=>({signal:`{data: ${AP(e,{timeUnit:n,type:t})}}`})))}(e,t,r):[e]}function sH(e,t,n,i){const{encoding:r,markDef:o,mark:s,config:l,stack:u}=n,c=bP(r[i]),{type:f}=c,d=c.timeUnit,h=function(e){const{marks:t,scales:n}=yq(e);return t===n?mq.Main:"include-invalid-values"===n?mq.PreFilterInvalid:mq.PostFilterInvalid}({invalid:cs("invalid",o,l),isPath:QB(s)});if(function(e){return $r(e,"unionWith")}(t)){const r=sH(e,void 0,n,i);return nq([...aH(t.unionWith,f,d),...r.value])}if(Xa(t))return nq([t]);if(t&&"unaggregated"!==t&&!DB(t))return nq(aH(t,f,d));if(u&&i===u.fieldChannel){if("normalize"===u.offset)return iq([[0,1]]);const e=n.requestDataName(h);return iq([{data:e,field:n.vgField(i,{suffix:"start"})},{data:e,field:n.vgField(i,{suffix:"end"})}])}const p=$a(i)&&XT(c)?function(e,t,n){if(!wB(n))return;const i=e.fieldDef(t),r=i.sort;if(BT(r))return{op:"min",field:_I(i,t),order:"ascending"};const{stack:o}=e,a=o?new Set([...o.groupbyFields,...o.stackBy.map((e=>e.fieldDef.field))]):void 0;if(RT(r)){return lH(r,o&&!a.has(r.field))}if(function(e){return $r(e,"encoding")}(r)){const{encoding:t,order:n}=r,i=e.fieldDef(t),{aggregate:s,field:l}=i,u=o&&!a.has(l);if(za(s)||Oa(s))return lH({field:uP(i),order:n},u);if(Na(s)||!s)return lH({op:s,field:l,order:n},u)}else{if("descending"===r)return{op:"min",field:e.vgField(t),order:"descending"};if(ji(["ascending",void 0],r))return!0}return}(n,i,e):void 0;if(QT(c)){return iq(aH([c.datum],f,d))}const m=c;if("unaggregated"===t){const{field:e}=c;return iq([{data:n.requestDataName(h),field:uP({field:e,aggregate:"min"})},{data:n.requestDataName(h),field:uP({field:e,aggregate:"max"})}])}if(La(m.bin)){if(wB(e))return iq("bin-ordinal"===e?[]:[{data:er(p)?n.requestDataName(h):n.requestDataName(mq.Raw),field:n.vgField(i,EP(m,i)?{binSuffix:"range"}:{}),sort:!0!==p&&a(p)?p:{field:n.vgField(i,{}),op:"min"}}]);{const{bin:e}=m;if(La(e)){const t=mW(n,m.field,e);return iq([new iH((()=>{const e=n.getSignalName(t);return`[${e}.start, ${e}.stop]`}))])}return iq([{data:n.requestDataName(h),field:n.vgField(i,{})}])}}if(m.timeUnit&&ji(["time","utc"],e)){const e=r[No(i)];if(WT(m,e,o,l)){const t=n.requestDataName(h),r=UT({fieldDef:m,fieldDef2:e,markDef:o,config:l}),a=KB(s)&&.5!==r&&ra(i);return iq([{data:t,field:n.vgField(i,a?{suffix:kq}:{})},{data:t,field:n.vgField(i,{suffix:a?$q:"end"})}])}}return iq(p?[{data:er(p)?n.requestDataName(h):n.requestDataName(mq.Raw),field:n.vgField(i),sort:p}]:[{data:n.requestDataName(h),field:n.vgField(i)}])}function lH(e,t){const{op:n,field:i,order:r}=e;return{op:n??(t?"sum":zT),...i?{field:ur(i)}:{},...r?{order:r}:{}}}function uH(e,t){var n;const i=e.component.scales[t],r=e.specifiedScales[t].domain,o=null==(n=e.fieldDef(t))?void 0:n.bin,a=DB(r)?r:void 0,s=Ua(o)&&Ia(o.extent)?o.extent:void 0;(a||s)&&i.set("selectionExtent",a??s,!0)}function cH(e,t){const{aggregate:n,type:r}=e;return n?i(n)&&!Pa.has(n)?{valid:!1,reason:oR(n)}:"quantitative"===r&&"log"===t?{valid:!1,reason:aR(e)}:{valid:!0}:{valid:!1,reason:rR(e)}}function fH(e,t,n,i){return e.explicit&&t.explicit&&gR(function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${kr(n)} and ${kr(i)}). Using the union of the two domains.`}(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function dH(e){const n=Wi(e.map((e=>{if(Qa(e)){const{sort:t,...n}=e;return n}return e})),Ti),r=Wi(e.map((e=>{if(Qa(e)){const t=e.sort;return void 0===t||er(t)||("op"in t&&"count"===t.op&&delete t.field,"ascending"===t.order&&delete t.order),t}})).filter((e=>void 0!==e)),Ti);if(0===n.length)return;if(1===n.length){const t=e[0];if(Qa(t)&&r.length>0){let e=r[0];if(r.length>1){gR(uR);const t=r.filter((e=>a(e)&&"op"in e&&"min"!==e.op));e=!r.every((e=>a(e)&&"op"in e))||1!==t.length||t[0]}else if(a(e)&&"field"in e){const n=e.field;t.field===n&&(e=!e.order||{order:e.order})}return{...t,sort:e}}return t}const o=Wi(r.map((e=>er(e)||!("op"in e)||i(e.op)&&t(Ma,e.op)?e:(gR(function(e){return`Dropping sort property ${kr(e)} as unioned domains only support boolean or op "count", "min", and "max".`}(e)),!0))),Ti);let s;1===o.length?s=o[0]:o.length>1&&(gR(uR),s=!0);const l=Wi(e.map((e=>Qa(e)?e.data:null)),(e=>e));if(1===l.length&&null!==l[0]){return{data:l[0],fields:n.map((e=>e.field)),...s?{sort:s}:{}}}return{fields:n,...s?{sort:s}:{}}}function hH(e){if(Qa(e)&&i(e.field))return e.field;if(function(e){return!u(e)&&$r(e,"fields")&&!$r(e,"data")}(e)){let t;for(const n of e.fields)if(Qa(n)&&i(n.field))if(t){if(t!==n.field)return gR("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),t}else t=n.field;return gR("Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect."),t}if(function(e){return!u(e)&&$r(e,"fields")&&$r(e,"data")}(e)){gR("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");const t=e.fields[0];return i(t)?t:void 0}}function pH(e,t){return dH(e.component.scales[t].get("domains").map((t=>(Qa(t)&&(t.data=e.lookupDataSource(t.data)),t))))}function mH(e){return jH(e)||PH(e)?e.children.reduce(((e,t)=>e.concat(mH(t))),gH(e)):gH(e)}function gH(e){return Qi(e.component.scales).reduce(((t,n)=>{const i=e.component.scales[n];if(i.merged)return t;const r=i.combine(),{name:o,type:s,selectionExtent:l,domains:c,range:f,reverse:d,...h}=r,p=function(e,t,n,i){if(ra(n)){if(Ja(e))return{step:{signal:`${t}_step`}}}else if(a(e)&&Qa(e))return{...e,data:i.lookupDataSource(e.data)};return e}(r.range,o,n,e),m=pH(e,n),g=l?function(e,t,n,i){const r=lI(e,t.param,t);return{signal:_B(n.get("type"))&&u(i)&&i[0]>i[1]?`isValid(${r}) && reverse(${r})`:r}}(e,l,i,m):null;return t.push({name:o,type:s,...m?{domain:m}:{},...g?{domainRaw:g}:{},range:p,...void 0!==d?{reverse:d}:{},...h}),t}),[])}class yH extends tq{constructor(e,t){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",t)}domainHasZero(){const e=this.get("type");if(ji([rB,sB,lB],e))return"definitely-not";const t=this.get("zero");if(!0===t||void 0===t&&ji([iB,aB,oB],e))return"definitely";const i=this.get("domains");if(i.length>0){let e=!1,t=!1,r=!1;for(const o of i){if(u(o)){const i=o[0],r=o[o.length-1];if(n(i)&&n(r)){if(i<=0&&r>=0){e=!0;continue}t=!0;continue}}r=!0}if(e)return"definitely";if(t&&!r)return"definitely-not"}return"maybe"}}const vH=["range","scheme"];function bH(e,t){const n=e.fieldDef(t);if(null==n?void 0:n.bin){const{bin:i,field:r}=n,o=Ro(t),s=e.getName(o);if(a(i)&&i.binned&&void 0!==i.step)return new iH((()=>{const n=e.scaleName(t),r=`(domain("${n}")[1] - domain("${n}")[0]) / ${i.step}`;return`${e.getSignalName(s)} / (${r})`}));if(La(i)){const t=mW(e,r,i);return new iH((()=>{const n=e.getSignalName(t),i=`(${n}.stop - ${n}.start) / ${n}.step`;return`${e.getSignalName(s)} / (${i})`}))}}}function xH(e,t){const i=t.specifiedScales[e],{size:r}=t,o=t.getScaleComponent(e).get("type");for(const n of vH)if(void 0!==i[n]){const r=NB(o,n),s=RB(e,n);if(r)if(s)gR(s);else switch(n){case"range":{const n=i.range;if(u(n)){if(ra(e))return nq(n.map((e=>{if("width"===e||"height"===e){const n=t.getName(e),i=t.getSignalName.bind(t);return iH.fromName(i,n)}return e})))}else if(a(n))return nq({data:t.requestDataName(mq.Main),field:n.field,sort:{op:"min",field:t.vgField(e)}});return nq(n)}case"scheme":return nq(wH(i[n]))}else gR(sR(o,n,e))}const s=e===Er||"xOffset"===e?"width":"height",l=r[s];if(Nj(l))if(ra(e))if(wB(o)){const n=kH(l,t,e);if(n)return nq({step:n})}else gR(lR(s));else if(ua(e)){const n=e===zr?"x":"y";if("band"===t.getScaleComponent(n).get("type")){const e=$H(l,o);if(e)return nq(e)}}const{rangeMin:c,rangeMax:f}=i,d=function(e,t){const{size:i,config:r,mark:o,encoding:a}=t,{type:s}=bP(a[e]),l=t.getScaleComponent(e),c=l.get("type"),{domain:f,domainMid:d}=t.specifiedScales[e];switch(e){case Er:case Fr:if(ji(["point","band"],c)){const n=DH(e,i,r.view);if(Nj(n)){return{step:kH(n,t,e)}}}return _H(e,t,c);case zr:case Or:return function(e,t,n){const i=e===zr?"x":"y",r=t.getScaleComponent(i);if(!r)return _H(i,t,n,{center:!0});const o=r.get("type"),a=t.scaleName(i),{markDef:s,config:l}=t;if("band"===o){const e=DH(i,t.size,t.config.view);if(Nj(e)){const t=$H(e,n);if(t)return t}return[0,{signal:`bandwidth('${a}')`}]}{const n=t.encoding[i];if(XT(n)&&n.timeUnit){const e=BR(n.timeUnit,(e=>`scale('${a}', ${e})`)),i=t.config.scale.bandWithNestedOffsetPaddingInner,r=UT({fieldDef:n,markDef:s,config:l})-.5,o=0!==r?` + ${r}`:"";if(i){return[{signal:`${Xa(i)?`${i.signal}/2`+o:`${i/2+r}`} * (${e})`},{signal:`${Xa(i)?`(1 - ${i.signal}/2)`+o:`${1-i/2+r}`} * (${e})`}]}return[0,{signal:e}]}return Ni(`Cannot use ${e} scale if ${i} scale is not discrete.`)}}(e,t,c);case Vr:{const a=function(e,t){switch(e){case"bar":case"tick":return t.scale.minBandSize;case"line":case"trail":case"rule":return t.scale.minStrokeWidth;case"text":return t.scale.minFontSize;case"point":case"square":case"circle":return t.scale.minSize}throw new Error(eR("size",e))}(o,r),s=function(e,t,i,r){const o={x:bH(i,"x"),y:bH(i,"y")};switch(e){case"bar":case"tick":{if(void 0!==r.scale.maxBandSize)return r.scale.maxBandSize;const e=SH(t,o,r.view);return n(e)?e-1:new iH((()=>`${e.signal} - 1`))}case"line":case"trail":case"rule":return r.scale.maxStrokeWidth;case"text":return r.scale.maxFontSize;case"point":case"square":case"circle":{if(r.scale.maxSize)return r.scale.maxSize;const e=SH(t,o,r.view);return n(e)?Math.pow(AH*e,2):new iH((()=>`pow(${AH} * ${e.signal}, 2)`))}}throw new Error(eR("size",e))}(o,i,t,r);return $B(c)?function(e,t,n){const i=()=>{const i=as(t),r=as(e),o=`(${i} - ${r}) / (${n} - 1)`;return`sequence(${r}, ${i} + ${o}, ${o})`};return Xa(t)?new iH(i):{signal:i()}}(a,s,function(e,t,n,i){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return void 0!==n&&u(n)?n.length+1:(gR(function(e){return`Domain for ${e} is required for threshold scale.`}(i)),3)}}(c,r,f,e)):[a,s]}case Br:return[0,2*Math.PI];case Yr:return[0,360];case Nr:return[0,new iH((()=>`min(${t.getSignalName(TH(t.parent)?"child_width":"width")},${t.getSignalName(TH(t.parent)?"child_height":"height")})/2`))];case Ur:return{step:1e3/r.scale.framesPerSecond};case Kr:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case Zr:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case Gr:return"symbol";case Ir:case Wr:case Hr:return"ordinal"===c?"nominal"===s?"category":"ordinal":void 0!==d?"diverging":"rect"===o||"geoshape"===o?"heatmap":"ramp";case Xr:case Jr:case Qr:return[r.scale.minOpacity,r.scale.maxOpacity]}}(e,t);return(void 0!==c||void 0!==f)&&NB(o,"rangeMin")&&u(d)&&2===d.length?nq([c??d[0],f??d[1]]):iq(d)}function wH(e){return function(e){return!i(e)&&$r(e,"name")}(e)?{scheme:e.name,...Bi(e,["name"])}:{scheme:e}}function _H(e,t,n,{center:i}={}){const r=Ro(e),o=t.getName(r),a=t.getSignalName.bind(t);return e===Fr&&_B(n)?i?[iH.fromName((e=>`${a(e)}/2`),o),iH.fromName((e=>`-${a(e)}/2`),o)]:[iH.fromName(a,o),0]:i?[iH.fromName((e=>`-${a(e)}/2`),o),iH.fromName((e=>`${a(e)}/2`),o)]:[0,iH.fromName(a,o)]}function kH(e,t,n){const{encoding:i}=t,r=t.getScaleComponent(n),a=To(n),s=i[a];if("offset"===Oj({step:e,offsetIsDiscrete:tP(s)&&QR(s.type)})&&LP(i,a)){const n=t.getScaleComponent(a);let i=`domain('${t.scaleName(a)}').length`;if("band"===n.get("type")){i=`bandspace(${i}, ${n.get("paddingInner")??n.get("padding")??0}, ${n.get("paddingOuter")??n.get("padding")??0})`}const s=r.get("paddingInner")??r.get("padding");return{signal:`${e.step} * ${i} / (1-${l=s,Xa(l)?l.signal:o(l)})`}}return e.step;var l}function $H(e,t){if("offset"===Oj({step:e,offsetIsDiscrete:wB(t)}))return{step:e.step}}function DH(e,t,n){const i=e===Er?"width":"height",r=t[i];return r||jj(n,i)}const AH=.95;function SH(e,t,n){const i=Nj(e.width)?e.width.step:Pj(n,"width"),r=Nj(e.height)?e.height.step:Pj(n,"height");return t.x||t.y?new iH((()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`)):Math.min(i,r)}function EH(e,t){BH(e)?function(e,t){const n=e.component.scales,{config:i,encoding:r,markDef:o,specifiedScales:a}=e;for(const s of Qi(n)){const l=a[s],u=n[s],c=e.getScaleComponent(s),f=bP(r[s]),d=l[t],h=c.get("type"),p=c.get("padding"),m=c.get("paddingInner"),g=NB(h,t),y=RB(s,t);if(void 0!==d&&(g?y&&gR(y):gR(sR(h,t,s))),g&&void 0===y)if(void 0!==d){const e=f.timeUnit,n=f.type;switch(t){case"domainMax":case"domainMin":yR(l[t])||"temporal"===n||e?u.set(t,{signal:AP(l[t],{type:n,timeUnit:e})},!0):u.set(t,l[t],!0);break;default:u.copyKeyFromObject(t,l)}}else{const n=$r(FH,t)?FH[t]({model:e,channel:s,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:m,domain:l.domain,domainMin:l.domainMin,domainMax:l.domainMax,markDef:o,config:i,hasNestedOffsetScale:qP(r,s),hasSecondaryRangeChannel:!!r[No(s)]}):i.scale[t];void 0!==n&&u.set(t,n,!1)}}}(e,t):MH(e,t)}const FH={bins:({model:e,fieldOrDatumDef:t})=>XT(t)?function(e,t){const n=t.bin;if(La(n)){const i=mW(e,t.field,n);return new iH((()=>e.getSignalName(i)))}if(qa(n)&&Ua(n)&&void 0!==n.step)return{step:n.step};return}(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>function(e,t){if(ji([Ir,Wr,Hr],e)&&"nominal"!==t)return"hcl";return}(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:i,domainMax:r,fieldOrDatumDef:o})=>function(e,t,n,i,r,o){var a;if((null==(a=vP(o))?void 0:a.bin)||u(n)||null!=r||null!=i||ji([sB,lB],e))return;return!!ra(t)||void 0}(e,t,n,i,r,o),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:i,config:r})=>function(e,t,n,i,r,o){if(ra(e)){if(kB(t)){if(void 0!==n.continuousPadding)return n.continuousPadding;const{type:t,orient:a}=r;if("bar"===t&&(!XT(i)||!i.bin&&!i.timeUnit)&&("vertical"===a&&"x"===e||"horizontal"===a&&"y"===e))return o.continuousBandSize}if(t===uB)return n.pointPadding}return}(e,t,r.scale,n,i,r.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:i,config:r,hasNestedOffsetScale:o})=>function(e,t,n,i,r,o=!1){if(void 0!==e)return;if(ra(t)){const{bandPaddingInner:e,barBandPaddingInner:t,rectBandPaddingInner:i,tickBandPaddingInner:a,bandWithNestedOffsetPaddingInner:s}=r;return o?s:hr(e,"bar"===n?t:"tick"===n?a:i)}if(ua(t)&&i===cB)return r.offsetBandPaddingInner;return}(e,t,n.type,i,r.scale,o),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:i,config:r,hasNestedOffsetScale:o})=>function(e,t,n,i,r,o=!1){if(void 0!==e)return;if(ra(t)){const{bandPaddingOuter:e,bandWithNestedOffsetPaddingOuter:t}=r;if(o)return t;if(n===cB)return hr(e,Xa(i)?{signal:`${i.signal}/2`}:i/2)}else if(ua(t)){if(n===uB)return.5;if(n===cB)return r.offsetBandPaddingOuter}return}(e,t,n,i,r.scale,o),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:i})=>function(e,t,n,i){if("x"===n&&void 0!==i.xReverse)return _B(e)&&"descending"===t?Xa(i.xReverse)?{signal:`!${i.xReverse.signal}`}:!i.xReverse:i.xReverse;if(_B(e)&&"descending"===t)return!0;return}(t,XT(e)?e.sort:void 0,n,i.scale),zero:({channel:e,fieldOrDatumDef:t,domain:i,markDef:r,scaleType:o,config:a,hasSecondaryRangeChannel:s})=>function(e,t,i,r,o,a,s){if(i&&"unaggregated"!==i&&_B(o)){if(u(i)){const e=i[0],t=i[i.length-1];if(n(e)&&e<=0&&n(t)&&t>=0)return!0}return!1}if("size"===e&&"quantitative"===t.type&&!$B(o))return!0;if((!XT(t)||!t.bin)&&ji([...ia,...aa],e)){const{orient:t,type:n}=r;return(!ji(["bar","area","line","trail"],n)||!("horizontal"===t&&"y"===e||"vertical"===t&&"x"===e))&&(!(!ji(["bar","area"],n)||s)||(null==a?void 0:a.zero))}return!1}(e,t,i,r,o,a.scale,s)};function CH(e){BH(e)?function(e){const t=e.component.scales;for(const n of ka){const i=t[n];if(!i)continue;const r=xH(n,e);i.setWithExplicit("range",r)}}(e):MH(e,"range")}function MH(e,t){const n=e.component.scales;for(const i of e.children)"range"===t?CH(i):EH(i,t);for(const i of Qi(n)){let r;for(const n of e.children){const e=n.component.scales[i];if(e){r=aq(r,e.getWithExplicit(t),t,"scale",rq(((e,n)=>"range"===t&&e.step&&n.step?e.step-n.step:0)))}}n[i].setWithExplicit(t,r)}}function zH(e,t,n,i,r=!1){const o=function(e,t,n,i){var r;switch(t.type){case"nominal":case"ordinal":if(go(e)||"discrete"===Fa(e))return"shape"===e&&"ordinal"===t.type&&gR(iR(e,"ordinal")),"ordinal";if(fa(e))return"band";if(ra(e)||ua(e)){if(ji(["rect","bar","image","rule","tick"],n.type))return"band";if(i)return"band"}else if("arc"===n.type&&e in oa)return"band";return aT(n[Ro(e)])||oP(t)&&(null==(r=t.axis)?void 0:r.tickBand)?"band":"point";case"temporal":return go(e)?"time":"discrete"===Fa(e)?(gR(iR(e,"temporal")),"ordinal"):XT(t)&&t.timeUnit&&RR(t.timeUnit).utc?"utc":fa(e)?"band":"time";case"quantitative":return go(e)?XT(t)&&La(t.bin)?"bin-ordinal":"linear":"discrete"===Fa(e)?(gR(iR(e,"quantitative")),"ordinal"):fa(e)?"band":"linear";case"geojson":return}throw new Error(QN(t.type))}(t,n,i,r),{type:a}=e;return $a(t)?void 0!==a?function(e,t,n=!1){if(!$a(e))return!1;switch(e){case Er:case Fr:case zr:case Or:case Br:case Nr:return!!kB(t)||"band"===t||"point"===t&&!n;case Ur:return ji(["linear","band"],t);case Vr:case Kr:case Xr:case Jr:case Qr:case Yr:return kB(t)||$B(t)||ji(["band","point","ordinal"],t);case Ir:case Wr:case Hr:return"band"!==t;case Zr:case Gr:return"ordinal"===t||$B(t)}}(t,a)?XT(n)&&(s=a,l=n.type,!(ji([ZR,tB],l)?void 0===s||wB(s):l===eB?ji([sB,lB,void 0],s):l!==KR||yB(s)||$B(s)||void 0===s))?(gR(function(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}(a,o)),o):a:(gR(function(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}(t,a,o)),o):o:null;var s,l}function OH(e){BH(e)?e.component.scales=function(e){const{encoding:t,mark:n,markDef:i}=e,r={};for(const o of ka){const a=bP(t[o]);if(a&&n===JB&&o===Gr&&a.type===nB)continue;let s=a&&a.scale;if(a&&null!==s&&!1!==s){s??(s={});const n=zH(s,o,a,i,qP(t,o));r[o]=new yH(e.scaleName(`${o}`,!0),{value:n,explicit:s.type===n})}}return r}(e):e.component.scales=function(e){var t;const n=e.component.scales={},i={},r=e.component.resolve;for(const o of e.children){OH(o);for(const n of Qi(o.component.scales))if((t=r.scale)[n]??(t[n]=WI(n,e)),"shared"===r.scale[n]){const e=i[n],t=o.component.scales[n].getWithExplicit("type");e?dB(e.value,t.value)?i[n]=aq(e,t,"type","scale",NH):(r.scale[n]="independent",delete i[n]):i[n]=t}}for(const o of Qi(i)){const t=e.scaleName(o,!0),r=i[o];n[o]=new yH(t,r);for(const n of e.children){const e=n.component.scales[o];e&&(n.renameScale(e.get("name"),t),e.merged=!0)}}return n}(e)}const NH=rq(((e,t)=>pB(e)-pB(t)));class RH{constructor(){this.nameMap={}}rename(e,t){this.nameMap[e]=t}has(e){return void 0!==this.nameMap[e]}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function BH(e){return"unit"===(null==e?void 0:e.type)}function TH(e){return"facet"===(null==e?void 0:e.type)}function PH(e){return"concat"===(null==e?void 0:e.type)}function jH(e){return"layer"===(null==e?void 0:e.type)}class LH{constructor(e,t,i,r,o,a,s){this.type=t,this.parent=i,this.config=o,this.parent=i,this.config=o,this.view=Ga(s),this.name=e.name??r,this.title=Ya(e.title)?{text:e.title}:e.title?Ga(e.title):void 0,this.scaleNameMap=i?i.scaleNameMap:new RH,this.projectionNameMap=i?i.projectionNameMap:new RH,this.signalNameMap=i?i.signalNameMap:new RH,this.data=e.data,this.description=e.description,this.transforms=(e.transform??[]).map((e=>kL(e)?{filter:zi(e.filter,JR)}:e)),this.layout="layer"===t||"unit"===t?{}:function(e,t,i){const r=i[t],o={},{spacing:a,columns:s}=r;void 0!==a&&(o.spacing=a),void 0!==s&&(jT(e)&&!TT(e.facet)||Cj(e))&&(o.columns=s),Mj(e)&&(o.columns=1);for(const l of Bj)if(void 0!==e[l])if("spacing"===l){const t=e[l];o[l]=n(t)?t:{row:t.row??a,column:t.column??a}}else o[l]=e[l];return o}(e,t,o),this.component={data:{sources:i?i.component.data.sources:[],outputNodes:i?i.component.data.outputNodes:{},outputNodeRefCounts:i?i.component.data.outputNodeRefCounts:{},isFaceted:jT(e)||(null==i?void 0:i.component.data.isFaceted)&&void 0===e.data},layoutSize:new tq,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...a?Oi(a):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){!function(e,{ignoreRange:t}={}){OH(e),rH(e);for(const n of OB)EH(e,n);t||CH(e)}(this)}parseProjection(){dW(this)}renameTopLevelLayoutSizeSignal(){"width"!==this.getName("width")&&this.renameSignal(this.getName("width"),"width"),"height"!==this.getName("height")&&this.renameSignal(this.getName("height"),"height")}parseLegends(){nW(this)}assembleEncodeFromView(e){const{style:t,...n}=e,i={};for(const r of Qi(n)){const e=n[r];void 0!==e&&(i[r]=rs(e))}return i}assembleGroupEncodeEntry(e){let t={};return this.view&&(t=this.assembleEncodeFromView(this.view)),e||(this.description&&(t.description=rs(this.description)),"unit"!==this.type&&"layer"!==this.type)?Ji(t)?void 0:t:{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...t}}assembleLayout(){if(!this.layout)return;const{spacing:e,...t}=this.layout,{component:n,config:i}=this,r=function(e,t){const n={};for(const i of vo){const r=e[i];if(null==r?void 0:r.facetFieldDef){const{titleAnchor:e,titleOrient:o}=DI(["titleAnchor","titleOrient"],r.facetFieldDef.header,t,i),a=kI(i,o),s=BI(e,a);void 0!==s&&(n[a]=s)}}return Ji(n)?void 0:n}(n.layoutHeaders,i);return{padding:e,...this.assembleDefaultLayout(),...t,...r?{titleBand:r}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let t=[];for(const n of vo)e[n].title&&t.push(EI(this,n));for(const n of AI)t=t.concat(MI(this,n));return t}assembleAxes(){return function(e,t){const{x:n=[],y:i=[]}=e;return[...n.map((e=>fI(e,"grid",t))),...i.map((e=>fI(e,"grid",t))),...n.map((e=>fI(e,"main",t))),...i.map((e=>fI(e,"main",t)))].filter((e=>e))}(this.component.axes,this.config)}assembleLegends(){return sW(this)}assembleProjections(){return lW(this)}assembleTitle(){const{encoding:e,...t}=this.title??{},n={...Va(this.config.title).nonMarkTitleProperties,...t,...e?{encode:{update:e}}:{}};if(n.text)return ji(["unit","layer"],this.type)?ji(["middle",void 0],n.anchor)&&(n.frame??(n.frame="group")):n.anchor??(n.anchor="start"),Ji(n)?void 0:n}assembleGroup(e=[]){const t={};(e=e.concat(this.assembleSignals())).length>0&&(t.signals=e);const n=this.assembleLayout();n&&(t.layout=n),t.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||TH(this.parent)?mH(this):[];i.length>0&&(t.scales=i);const r=this.assembleAxes();r.length>0&&(t.axes=r);const o=this.assembleLegends();return o.length>0&&(t.legends=o),t}getName(e){return tr((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(mq[e].toLowerCase())}requestDataName(e){const t=this.getDataName(e),n=this.component.data.outputNodeRefCounts;return n[t]=(n[t]||0)+1,t}getSizeSignalRef(e){if(TH(this.parent)){const t=sa(UI(e)),n=this.component.scales[t];if(n&&!n.merged){const e=n.get("type"),i=n.get("range");if(wB(e)&&Ja(i)){const e=n.get("name"),i=hH(pH(this,t));if(i){return{signal:qI(e,n,uP({aggregate:"distinct",field:i},{expr:"datum"}))}}return gR(qN(t)),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const t=this.component.data.outputNodes[e];return t?t.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,t){this.signalNameMap.rename(e,t)}renameScale(e,t){this.scaleNameMap.rename(e,t)}renameProjection(e,t){this.projectionNameMap.rename(e,t)}scaleName(e,t){return t?this.getName(e):Fo(e)&&$a(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e))?this.scaleNameMap.get(this.getName(e)):void 0}projectionName(e){return e?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const t=this.component.scales[e];return t&&!t.merged?t:this.parent?this.parent.getScaleComponent(e):void 0}getScaleType(e){const t=this.getScaleComponent(e);return t?t.get("type"):void 0}getSelectionComponent(e,t){let n=this.component.selection[e];if(!n&&this.parent&&(n=this.parent.getSelectionComponent(e,t)),!n)throw new Error(`Cannot find a selection named "${t}".`);return n}hasAxisOrientSignalRef(){var e,t;return(null==(e=this.component.axes.x)?void 0:e.some((e=>e.hasOrientSignalRef())))||(null==(t=this.component.axes.y)?void 0:t.some((e=>e.hasOrientSignalRef())))}}class qH extends LH{vgField(e,t={}){const n=this.fieldDef(e);if(n)return uP(n,t)}reduceFieldDef(e,t){return function(e,t,n,i){return e?Qi(e).reduce(((n,r)=>{const o=e[r];return u(o)?o.reduce(((e,n)=>t.call(i,e,n,r)),n):t.call(i,n,o,r)}),n):n}(this.getMapping(),((t,n,i)=>{const r=vP(n);return r?e(t,r,i):t}),t)}forEachFieldDef(e,t){GP(this.getMapping(),((t,n)=>{const i=vP(t);i&&e(i,n)}),t)}}class UH extends vq{clone(){return new UH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"value",n[1]??"density"];const i=this.transform.resolve??"shared";this.transform.resolve=i}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${Ti(this.transform)}`}assemble(){const{density:e,...t}=this.transform,n={type:"kde",field:e,...t};return n.resolve=this.transform.resolve,n}}class IH extends vq{clone(){return new IH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${Ti(this.transform)}`}assemble(){const{extent:e,param:t}=this.transform;return{type:"extent",field:e,signal:t}}}class WH extends vq{clone(){return new WH(this.parent,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const{flatten:n,as:i=[]}=this.transform;this.transform.as=n.map(((e,t)=>i[t]??e))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Ti(this.transform)}`}assemble(){const{flatten:e,as:t}=this.transform;return{type:"flatten",fields:e,as:t}}}class HH extends vq{clone(){return new HH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"key",n[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${Ti(this.transform)}`}assemble(){const{fold:e,as:t}=this.transform;return{type:"fold",fields:e,as:t}}}class GH extends vq{clone(){return new GH(null,Oi(this.fields),this.geojson,this.signal)}static parseAll(e,t){if(t.component.projection&&!t.component.projection.isFit)return e;let n=0;for(const i of[[jr,Pr],[qr,Lr]]){const r=i.map((e=>{const n=bP(t.encoding[e]);return XT(n)?n.field:QT(n)?{expr:`${n.datum}`}:iP(n)?{expr:`${n.value}`}:void 0}));(r[0]||r[1])&&(e=new GH(e,r,null,t.getName("geojson_"+n++)))}if(t.channelHasField(Gr)){const i=t.typedFieldDef(Gr);i.type===nB&&(e=new GH(e,null,i.field,t.getName("geojson_"+n++)))}return e}constructor(e,t,n,i){super(e),this.fields=t,this.geojson=n,this.signal=i}dependentFields(){const e=(this.fields??[]).filter(i);return new Set([...this.geojson?[this.geojson]:[],...e])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Ti(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class VH extends vq{clone(){return new VH(null,this.projection,Oi(this.fields),Oi(this.as))}constructor(e,t,n,i){super(e),this.projection=t,this.fields=n,this.as=i}static parseAll(e,t){if(!t.projectionName())return e;for(const n of[[jr,Pr],[qr,Lr]]){const i=n.map((e=>{const n=bP(t.encoding[e]);return XT(n)?n.field:QT(n)?{expr:`${n.datum}`}:iP(n)?{expr:`${n.value}`}:void 0})),r=n[0]===qr?"2":"";(i[0]||i[1])&&(e=new VH(e,t.projectionName(),i,[t.getName(`x${r}`),t.getName(`y${r}`)]))}return e}dependentFields(){return new Set(this.fields.filter(i))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Ti(this.fields)} ${Ti(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class YH extends vq{clone(){return new YH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:t=0,stop:n,step:i}=e;return{signal:`sequence(${[t,n,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,t){return new YH(e,t)}static makeFromEncoding(e,t){const n=t.encoding,i=n.x,r=n.y;if(XT(i)&&XT(r)){const o=i.impute?i:r.impute?r:void 0;if(void 0===o)return;const a=i.impute?r:r.impute?i:void 0,{method:s,value:l,frame:u,keyvals:c}=o.impute,f=VP(t.mark,n);return new YH(e,{impute:o.field,key:a.field,...s?{method:s}:{},...void 0!==l?{value:l}:{},...u?{frame:u}:{},...void 0!==c?{keyvals:c}:{},...f.length?{groupby:f}:{}})}return null}hash(){return`Impute ${Ti(this.transform)}`}assemble(){const{impute:e,key:t,keyvals:n,method:i,groupby:r,value:o,frame:a=[null,null]}=this.transform,s={type:"impute",field:e,key:t,...n?{keyvals:(l=n,$r(l,"stop")?this.processSequence(n):n)}:{},method:"value",...r?{groupby:r}:{},value:i&&"value"!==i?null:o};var l;if(i&&"value"!==i){return[s,{type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:a,ignorePeers:!1,...r?{groupby:r}:{}},{type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e}]}return[s]}}class XH extends vq{clone(){return new XH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??t.on,n[1]??t.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${Ti(this.transform)}`}assemble(){const{loess:e,on:t,...n}=this.transform;return{type:"loess",x:t,y:e,...n}}}class JH extends vq{clone(){return new JH(null,Oi(this.transform),this.secondary)}constructor(e,t,n){super(e),this.transform=t,this.secondary=n}static make(e,t,n,i){const r=t.component.data.sources,{from:o}=n;let a=null;if(function(e){return $r(e,"data")}(o)){let e=cG(o.data,r);e||(e=new EW(o.data),r.push(e));const n=t.getName(`lookup_${i}`);a=new bq(e,n,mq.Lookup,t.component.data.outputNodeRefCounts),t.component.data.outputNodes[n]=a}else if(function(e){return $r(e,"param")}(o)){const e=o.param;let i;n={as:e,...n};try{i=t.getSelectionComponent(tr(e),e)}catch(s){throw new Error(`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`)}if(a=i.materialized,!a)throw new Error(function(e){return`Cannot define and lookup the "${e}" selection in the same view. Try moving the lookup into a second, layered view?`}(e))}return new JH(e,n,a.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?c(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${Ti({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e={values:this.transform.from.fields,...this.transform.as?{as:c(this.transform.as)}:{}};else{let t=this.transform.as;i(t)||(gR('If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.'),t="_lookup"),e={as:[t]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...e,...this.transform.default?{default:this.transform.default}:{}}}}class QH extends vq{clone(){return new QH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??"prob",n[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${Ti(this.transform)}`}assemble(){const{quantile:e,...t}=this.transform;return{type:"quantile",field:e,...t}}}class KH extends vq{clone(){return new KH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=Oi(t);const n=this.transform.as??[void 0,void 0];this.transform.as=[n[0]??t.on,n[1]??t.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${Ti(this.transform)}`}assemble(){const{regression:e,on:t,...n}=this.transform;return{type:"regression",x:t,y:e,...n}}}class ZH extends vq{clone(){return new ZH(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=Wi((this.transform.groupby??[]).concat(e),(e=>e))}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${Ti(this.transform)}`}assemble(){const{pivot:e,value:t,groupby:n,limit:i,op:r}=this.transform;return{type:"pivot",field:e,value:t,...void 0!==i?{limit:i}:{},...void 0!==r?{op:r}:{},...void 0!==n?{groupby:n}:{}}}}class eG extends vq{clone(){return new eG(null,Oi(this.transform))}constructor(e,t){super(e),this.transform=t}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Ti(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function tG(e){let t=0;return function n(i,r){if(i instanceof EW&&!i.isGenerator&&!lq(i.data)){e.push(r);r={name:null,source:r.name,transform:[]}}if(i instanceof $W&&(i.parent instanceof EW&&!r.source?(r.format={...r.format,parse:i.assembleFormatParse()},r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof xW)return r.name||(r.name="data_"+t++),!r.source||r.transform.length>0?(e.push(r),i.data=r.name):i.data=r.source,void e.push(...i.assemble());if((i instanceof AW||i instanceof SW||i instanceof VW||i instanceof aI||i instanceof wI||i instanceof VH||i instanceof bW||i instanceof JH||i instanceof JW||i instanceof GW||i instanceof HH||i instanceof WH||i instanceof UH||i instanceof XH||i instanceof QH||i instanceof KH||i instanceof DW||i instanceof eG||i instanceof ZH||i instanceof IH)&&r.transform.push(i.assemble()),(i instanceof yW||i instanceof _q||i instanceof YH||i instanceof XW||i instanceof GH)&&r.transform.push(...i.assemble()),i instanceof bq)if(r.source&&0===r.transform.length)i.setSource(r.source);else if(i.parent instanceof bq)i.setSource(r.name);else if(r.name||(r.name="data_"+t++),i.setSource(r.name),1===i.numChildren()){e.push(r);r={name:null,source:r.name,transform:[]}}switch(i.numChildren()){case 0:i instanceof bq&&(!r.source||r.transform.length>0)&&e.push(r);break;case 1:n(i.children[0],r);break;default:{r.name||(r.name="data_"+t++);let o=r.name;!r.source||r.transform.length>0?e.push(r):o=r.source;for(const e of i.children){n(e,{name:null,source:o,transform:[]})}break}}}}function nG(e,t){var n;const{facet:i,config:r,child:o,component:a}=e;if(e.channelHasField(t)){const s=i[t],l=$I("title",null,r,t);let c=pP(s,r,{allowDisabling:!0,includeDefault:void 0===l||!!l});o.component.layoutHeaders[t].title&&(c=u(c)?c.join(", "):c,c+=` / ${o.component.layoutHeaders[t].title}`,o.component.layoutHeaders[t].title=null);const f=$I("labelOrient",s.header,r,t),d=null!==s.header&&hr(null==(n=s.header)?void 0:n.labels,r.header.labels,!0),h=ji(["bottom","right"],f)?"footer":"header";a.layoutHeaders[t]={title:null!==s.header?c:null,facetFieldDef:s,[h]:"facet"===t?[]:[iG(e,t,d)]}}}function iG(e,t,n){const i="row"===t?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):void 0,axes:[]}}function rG(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:r,resolve:o}=e.component;if(o.axis[t]=HI(o,t),"shared"===o.axis[t]){const o="x"===t?"column":"row",a=r[o];for(const r of n.component.axes[t]){const t="top"===(i=r.get("orient"))||"left"===i||Xa(i)?"header":"footer";a[t]??(a[t]=[iG(e,o,!1)]);const n=fI(r,"main",e.config,{header:!0});n&&a[t][0].axes.push(n),r.mainExtracted=!0}}}var i}function oG(e){for(const t of e.children)t.parseLayoutSize()}function aG(e,t){const n=UI(t),i=sa(n),r=e.component.resolve,o=e.component.layoutSize;let a;for(const s of e.children){const t=s.component.layoutSize.getWithExplicit(n),o=r.scale[i]??WI(i,e);if("independent"===o&&"step"===t.value){a=void 0;break}if(a){if("independent"===o&&a.value!==t.value){a=void 0;break}a=aq(a,t,n,"")}else a=t}if(a){for(const i of e.children)e.renameSignal(i.getName(n),e.getName(t)),i.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(t,a)}else o.setWithExplicit(t,{explicit:!1,value:void 0})}function sG(e,t){const n="width"===t?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const e=r.get("type"),n=r.get("range");if(wB(e)){const e=jj(i.view,t);return Ja(n)||Nj(e)?"step":e}return Tj(i.view,t)}if(e.hasProjection||"arc"===e.mark)return Tj(i.view,t);{const e=jj(i.view,t);return Nj(e)?e.step:e}}function lG(e,t,n){return uP(t,{suffix:`by_${uP(e)}`,...n})}class uG extends qH{constructor(e,t,n,i){super(e,"facet",t,n,i,e.resolve),this.child=NG(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!TT(e))return{facet:this.initFacetFieldDef(e,"facet")};const t=Qi(e),n={};for(const i of t){if(![Dr,Ar].includes(i)){gR(eR(i,"facet"));break}const t=e[i];if(void 0===t.field){gR(ZN(t,i));break}n[i]=this.initFacetFieldDef(t,i)}return n}initFacetFieldDef(e,t){const n=_P(e,t);return n.header?n.header=Ga(n.header):null===n.header&&(n.header=null),n}channelHasField(e){return $r(this.facet,e)}fieldDef(e){return this.facet[e]}parseData(){this.component.data=fG(this),this.child.parseData()}parseLayoutSize(){oG(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection,Object.values(this.component.selection).some((e=>nI(e)))&&mR(VN)}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(e){for(const t of vo)nG(e,t);rG(e,"x"),rG(e,"y")}(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){const e={};for(const t of vo)for(const n of SI){const i=this.component.layoutHeaders[t],r=i[n],{facetFieldDef:o}=i;if(o){const n=$I("titleOrient",o.header,this.config,t);if(["right","bottom"].includes(n)){const i=kI(t,n);e.titleAnchor??(e.titleAnchor={}),e.titleAnchor[i]="end"}}if(null==r?void 0:r[0]){const r="row"===t?"height":"width",o="header"===n?"headerBand":"footerBand";"facet"===t||this.child.component.layoutSize.get(r)||(e[o]??(e[o]={}),e[o][t]=.5),i.title&&(e.offset??(e.offset={}),e.offset["row"===t?"rowTitle":"columnTitle"]=10)}}return e}assembleDefaultLayout(){const{column:e,row:t}=this.facet,n=e?this.columnDistinctSignal():t?1:void 0;let i="all";return(t||"independent"!==this.component.resolve.scale.x)&&(e||"independent"!==this.component.resolve.scale.y)||(i="none"),{...this.getHeaderLayoutMixins(),...n?{columns:n}:{},bounds:"full",align:i}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof uG)){return{signal:`length(data('${this.getName("column_domain")}'))`}}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof uG?{...this.channelHasField("column")?{encode:{update:{columns:{field:uP(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(e)}:super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],t=[],n=[];if(this.child instanceof uG){if(this.child.channelHasField("column")){const i=uP(this.child.facet.column);e.push(i),t.push("distinct"),n.push(`distinct_${i}`)}}else for(const i of ia){const r=this.child.component.scales[i];if(r&&!r.merged){const o=r.get("type"),a=r.get("range");if(wB(o)&&Ja(a)){const r=hH(pH(this.child,i));r?(e.push(r),t.push("distinct"),n.push(`distinct_${r}`)):gR(qN(i))}}}return{fields:e,ops:t,as:n}}assembleFacet(){const{name:e,data:t}=this.component.data.facetRoot,{row:n,column:i}=this.facet,{fields:r,ops:o,as:a}=this.getCardinalityAggregateForChild(),s=[];for(const c of vo){const e=this.facet[c];if(e){s.push(uP(e));const{bin:t,sort:l}=e;if(La(t)&&s.push(uP(e,{binSuffix:"end"})),RT(l)){const{field:t,op:s=zT}=l,u=lG(e,l);n&&i?(r.push(u),o.push("max"),a.push(u)):(r.push(t),o.push(s),a.push(u))}else if(u(l)){const t=_I(e,c);r.push(t),o.push("max"),a.push(t)}}}const l=!!n&&!!i;return{name:e,data:t,groupby:s,...l||r.length>0?{aggregate:{...l?{cross:l}:{},...r.length?{fields:r,ops:o,as:a}:{}}}:{}}}facetSortFields(e){const{facet:t}=this,n=t[e];return n?RT(n.sort)?[lG(n,n.sort,{expr:"datum"})]:u(n.sort)?[_I(n,e,{expr:"datum"})]:[uP(n,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:t}=this,n=t[e];if(n){const{sort:e}=n;return[(RT(e)?e.order:!u(e)&&e)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:t,config:n}=this;if(t.facet)return OI(t.facet,"facet",n);const i={row:["top","bottom"],column:["left","right"]};for(const r of AI)if(t[r]){const o=$I("labelOrient",null==(e=t[r])?void 0:e.header,n,r);if(i[r].includes(o))return OI(t[r],r,n)}}assembleMarks(){const{child:e}=this,t=function(e){const t=[],n=tG(t);for(const i of e.children)n(i,{source:e.name,name:null,transform:[]});return t}(this.component.data.facetRoot),n=e.assembleGroupEncodeEntry(!1),i=this.assembleLabelTitle()||e.assembleTitle(),r=e.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...i?{title:i}:{},...r?{style:r}:{},from:{facet:this.assembleFacet()},sort:{field:vo.map((e=>this.facetSortFields(e))).flat(),order:vo.map((e=>this.facetSortOrder(e))).flat()},...t.length>0?{data:t}:{},...n?{encode:{update:n}}:{},...e.assembleGroup(Wq(this,[]))}]}getMapping(){return this.facet}}function cG(e,t){var n,i,r,o;for(const a of t){const t=a.data;if(e.name&&a.hasName()&&e.name!==a.dataName)continue;const s=null==(n=e.format)?void 0:n.mesh,l=null==(i=t.format)?void 0:i.feature;if(s&&l)continue;const u=null==(r=e.format)?void 0:r.feature;if((u||l)&&u!==l)continue;const c=null==(o=t.format)?void 0:o.mesh;if(!s&&!c||s===c)if(uq(e)&&uq(t)){if(_r(e.values,t.values))return a}else if(lq(e)&&lq(t)){if(e.url===t.url)return a}else if(cq(e)&&e.name===a.dataName)return a}return null}function fG(e){var t;let n=function(e,t){if(e.data||!e.parent){if(null===e.data){const e=new EW({values:[]});return t.push(e),e}const n=cG(e.data,t);if(n)return fq(e.data)||(n.data.format=Ui({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const n=new EW(e.data);return t.push(n),n}}return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}(e,e.component.data.sources);const{outputNodes:i,outputNodeRefCounts:r}=e.component.data,o=e.data,a=!(o&&(fq(o)||lq(o)||uq(o)))&&e.parent?e.parent.component.data.ancestorParse.clone():new sq;fq(o)?(dq(o)?n=new SW(n,o.sequence):pq(o)&&(n=new AW(n,o.graticule)),a.parseNothing=!0):null===(null==(t=null==o?void 0:o.format)?void 0:t.parse)&&(a.parseNothing=!0),n=$W.makeExplicit(n,e,a)??n,n=new DW(n);const s=e.parent&&jH(e.parent);(BH(e)||TH(e))&&s&&(n=yW.makeFromEncoding(n,e)??n),e.transforms.length>0&&(n=function(e,t,n){let i=0;for(const r of t.transforms){let o,a;if(NL(r))a=e=new wI(e,r),o="derived";else if(kL(r)){const i=_W(r);a=e=$W.makeWithAncestors(e,{},i,n)??e,e=new aI(e,t,r.filter)}else if(RL(r))a=e=yW.makeFromTransform(e,r,t),o="number";else if(TL(r))o="date",void 0===n.getWithExplicit(r.field).value&&(e=new $W(e,{[r.field]:o}),n.set(r.field,o,!1)),a=e=_q.makeFromTransform(e,r);else if(PL(r))a=e=bW.makeFromTransform(e,r),o="number",eI(t)&&(e=new DW(e));else if($L(r))a=e=JH.make(e,t,r,i++),o="derived";else if(ML(r))a=e=new JW(e,r),o="number";else if(zL(r))a=e=new GW(e,r),o="number";else if(jL(r))a=e=XW.makeFromTransform(e,r),o="derived";else if(LL(r))a=e=new HH(e,r),o="derived";else if(qL(r))a=e=new IH(e,r),o="derived";else if(OL(r))a=e=new WH(e,r),o="derived";else if(DL(r))a=e=new ZH(e,r),o="derived";else if(CL(r))e=new eG(e,r);else if(BL(r))a=e=YH.makeFromTransform(e,r),o="derived";else if(AL(r))a=e=new UH(e,r),o="derived";else if(SL(r))a=e=new QH(e,r),o="derived";else if(EL(r))a=e=new KH(e,r),o="derived";else{if(!FL(r)){gR(`Ignoring an invalid transform: ${kr(r)}.`);continue}a=e=new XH(e,r),o="derived"}if(a&&void 0!==o)for(const e of a.producedFields()??[])n.set(e,o,!1)}return e}(n,e,a));const l=function(e){const t={};if(BH(e)&&e.component.selection)for(const n of Qi(e.component.selection)){const i=e.component.selection[n];for(const e of i.project.items)!e.channel&&dr(e.field)>1&&(t[e.field]="flatten")}return t}(e),u=kW(e);n=$W.makeWithAncestors(n,{},{...l,...u},a)??n,BH(e)&&(n=GH.parseAll(n,e),n=VH.parseAll(n,e)),(BH(e)||TH(e))&&(s||(n=yW.makeFromEncoding(n,e)??n),n=_q.makeFromEncoding(n,e)??n,n=wI.parseAllForSortIndex(n,e));const c=n=dG(mq.Raw,e,n);if(BH(e)){const t=bW.makeFromEncoding(n,e);t&&(n=t,eI(e)&&(n=new DW(n))),n=YH.makeFromEncoding(n,e)??n,n=XW.makeFromEncoding(n,e)??n}let f,d;if(BH(e)){const{markDef:t,mark:i,config:r}=e,o=us("invalid",t,r),{marks:a,scales:s}=d=yq({invalid:o,isPath:QB(i)});a!==s&&"include-invalid-values"===s&&(f=n=dG(mq.PreFilterInvalid,e,n)),"exclude-invalid-values"===a&&(n=VW.make(n,e,d)??n)}const h=n=dG(mq.Main,e,n);let p;if(BH(e)&&d){const{marks:t,scales:i}=d;"include-invalid-values"===t&&"exclude-invalid-values"===i&&(n=VW.make(n,e,d)??n,p=n=dG(mq.PostFilterInvalid,e,n))}BH(e)&&function(e,t){for(const[n,i]of Zi(e.component.selection??{})){const r=e.getName(`lookup_${n}`);e.component.data.outputNodes[r]=i.materialized=new bq(new aI(t,e,{param:n}),r,mq.Lookup,e.component.data.outputNodeRefCounts)}}(e,h);let m=null;if(TH(e)){const t=e.getName("facet");n=function(e,t){const{row:n,column:i}=t;if(n&&i){let t=null;for(const r of[n,i])if(RT(r.sort)){const{field:n,op:i=zT}=r.sort;e=t=new GW(e,{joinaggregate:[{op:i,field:n,as:lG(r,r.sort,{forAs:!0})}],groupby:[uP(r)]})}return t}return null}(n,e.facet)??n,m=new xW(n,e,t,h.getSource()),i[t]=m}return{...e.component.data,outputNodes:i,outputNodeRefCounts:r,raw:c,main:h,facetRoot:m,ancestorParse:a,preFilterInvalid:f,postFilterInvalid:p}}function dG(e,t,n){const{outputNodes:i,outputNodeRefCounts:r}=t.component.data,o=t.getDataName(e),a=new bq(n,o,e,r);return i[o]=a,a}class hG extends LH{constructor(e,t,n,i){var r,o,a,s;super(e,"concat",t,n,i,e.resolve),"shared"!==(null==(o=null==(r=e.resolve)?void 0:r.axis)?void 0:o.x)&&"shared"!==(null==(s=null==(a=e.resolve)?void 0:a.axis)?void 0:s.y)||gR("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(e).map(((e,t)=>NG(e,this,this.getName(`concat_${t}`),void 0,i)))}parseData(){this.component.data=fG(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const t of Qi(e.component.selection))this.component.selection[t]=e.component.selection[t]}Object.values(this.component.selection).some((e=>nI(e)))&&mR(VN)}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}getChildren(e){return Mj(e)?e.vconcat:zj(e)?e.hconcat:e.concat}parseLayoutSize(){!function(e){oG(e);const t=1===e.layout.columns?"width":"childWidth",n=void 0===e.layout.columns?"height":"childHeight";aG(e,t),aG(e,n)}(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,t)=>t.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){return this.children.forEach((e=>e.assembleSignals())),[]}assembleLayoutSignals(){const e=PI(this);for(const t of this.children)e.push(...t.assembleLayoutSignals());return e}assembleSelectionData(e){return this.children.reduce(((e,t)=>t.assembleSelectionData(e)),e)}assembleMarks(){return this.children.map((e=>{const t=e.assembleTitle(),n=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return{type:"group",name:e.getName("group"),...t?{title:t}:{},...n?{style:n}:{},...i?{encode:{update:i}}:{},...e.assembleGroup()}}))}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return{...null!=e?{columns:e}:{},bounds:"full",align:"each"}}}const pG={disable:1,gridScale:1,scale:1,...OP,labelExpr:1,encode:1},mG=Qi(pG);class gG extends tq{constructor(e={},t={},n=!1){super(),this.explicit=e,this.implicit=t,this.mainExtracted=n}clone(){return new gG(Oi(this.explicit),Oi(this.implicit),this.mainExtracted)}hasAxisPart(e){return"axis"===e||("grid"===e||"title"===e?!!this.get(e):!(!1===(t=this.get(e))||null===t));var t}hasOrientSignalRef(){return Xa(this.explicit.orient)}}const yG={bottom:"top",top:"bottom",left:"right",right:"left"};function vG(e,t){if(!e)return t.map((e=>e.clone()));{if(e.length!==t.length)return;const n=e.length;for(let i=0;i<n;i++){const n=e[i],r=t[i];if(!!n!=!!r)return;if(n&&r){const t=n.getWithExplicit("orient"),o=r.getWithExplicit("orient");if(t.explicit&&o.explicit&&t.value!==o.value)return;e[i]=bG(n,r)}}}return e}function bG(e,t){for(const n of mG){const i=aq(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",((e,t)=>{switch(n){case"title":return gs(e,t);case"gridScale":return{explicit:e.explicit,value:hr(e.value,t.value)}}return oq(e,t,n,"axis")}));e.setWithExplicit(n,i)}return e}function xG(e,t,n,i,r){if("disable"===t)return void 0!==n;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(Xa(n.labelAngle)?n.labelAngle:br(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===xI(i,r))return!0}return e===n[t]}const wG=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function _G(e,t){var n,i;let r=t.axis(e);const o=new gG,a=bP(t.encoding[e]),{mark:s,config:l}=t,u=(null==r?void 0:r.orient)||(null==(n=l["x"===e?"axisX":"axisY"])?void 0:n.orient)||(null==(i=l.axis)?void 0:i.orient)||function(e){return"x"===e?"bottom":"left"}(e),c=t.getScaleComponent(e).get("type"),f=function(e,t,n,i){const r="band"===t?["axisDiscrete","axisBand"]:"point"===t?["axisDiscrete","axisPoint"]:yB(t)?["axisQuantitative"]:"time"===t||"utc"===t?["axisTemporal"]:[],o="x"===e?"axisX":"axisY",a=Xa(n)?"axisOrient":`axis${rr(n)}`,s=[...r,...r.map((e=>o+e.substr(4)))],l=["axis",a,o];return{vlOnlyAxisConfig:hI(s,i,e,n),vgAxisConfig:hI(l,i,e,n),axisConfigStyle:pI([...l,...s],i)}}(e,c,u,t.config),d=void 0!==r?!r:mI("disable",l.style,null==r?void 0:r.style,f).configValue;if(o.set("disable",d,void 0!==r),d)return o;r=r||{};const h=function(e,t,n,i,r){const o=null==t?void 0:t.labelAngle;if(void 0!==o)return Xa(o)?o:br(o);{const{configValue:o}=mI("labelAngle",i,null==t?void 0:t.style,r);return void 0!==o?br(o):n!==Er||!ji([tB,ZR],e.type)||XT(e)&&e.timeUnit?void 0:270}}(a,r,e,l.style,f),p=ST(r.formatType,a,c),m=AT(a,a.type,r.format,r.formatType,l,!0),g={fieldOrDatumDef:a,axis:r,channel:e,model:t,scaleType:c,orient:u,labelAngle:h,format:m,formatType:p,mark:s,config:l};for(const b of mG){const n=b in gI?gI[b](g):RP(b)?r[b]:void 0,i=void 0!==n,a=xG(n,b,r,t,e);if(i&&a)o.set(b,n,a);else{const{configValue:e,configFrom:t}=RP(b)&&"values"!==b?mI(b,l.style,r.style,f):{},s=void 0!==e;i&&!s?o.set(b,n,a):("vgAxisConfig"!==t||wG.has(b)&&s||CP(e)||Xa(e))&&o.set(b,e,!1)}}const y=r.encoding??{},v=MP.reduce(((n,i)=>{if(!o.hasAxisPart(i))return n;const r=II(y[i]??{},t),a="labels"===i?function(e,t,n){const{encoding:i,config:r}=e,o=bP(i[t])??bP(i[No(t)]),a=e.axis(t)||{},{format:s,formatType:l}=a;if(wT(l))return{text:DT({fieldOrDatumDef:o,field:"datum.value",format:s,formatType:l,config:r}),...n};if(void 0===s&&void 0===l&&r.customFormatTypes){if("quantitative"===JT(o)){if(oP(o)&&"normalize"===o.stack&&r.normalizedNumberFormatType)return{text:DT({fieldOrDatumDef:o,field:"datum.value",format:r.normalizedNumberFormat,formatType:r.normalizedNumberFormatType,config:r}),...n};if(r.numberFormatType)return{text:DT({fieldOrDatumDef:o,field:"datum.value",format:r.numberFormat,formatType:r.numberFormatType,config:r}),...n}}if("temporal"===JT(o)&&r.timeFormatType&&XT(o)&&!o.timeUnit)return{text:DT({fieldOrDatumDef:o,field:"datum.value",format:r.timeFormat,formatType:r.timeFormatType,config:r}),...n}}return n}(t,e,r):r;return void 0===a||Ji(a)||(n[i]={update:a}),n}),{});return Ji(v)||o.set("encode",v,!!r.encoding||void 0!==r.labelAngle),o}function kG(e,t){const{config:n}=e;return{...EU(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...pU("x",e,{defaultPos:"mid"}),...pU("y",e,{defaultPos:"mid"}),...cU("size",e),...cU("angle",e),...$G(e,n,t)}}function $G(e,t,n){return n?{shape:{value:n}}:cU("shape",e)}function DG(e,t,n){if(void 0===us("align",e,n))return"center"}function AG(e,t,n){if(void 0===us("baseline",e,n))return"middle"}const SG={arc:{vgMark:"arc",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...pU("x",e,{defaultPos:"mid"}),...pU("y",e,{defaultPos:"mid"}),...kU(e,"radius"),...kU(e,"theta")})},area:{vgMark:"area",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...xU("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"horizontal"===e.markDef.orient}),...xU("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"vertical"===e.markDef.orient}),...MU(e)})},bar:{vgMark:"rect",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...kU(e,"x"),...kU(e,"y")})},circle:{vgMark:"symbol",encodeEntry:e=>kG(e,"circle")},geoshape:{vgMark:"shape",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[{type:"geoshape",projection:e.projectionName(),...n&&XT(n)&&n.type===nB?{field:uP(n,{expr:"datum"})}:{}}]}},image:{vgMark:"image",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...kU(e,"x"),...kU(e,"y"),...nU(e,"url")})},line:{vgMark:"line",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...pU("x",e,{defaultPos:"mid"}),...pU("y",e,{defaultPos:"mid"}),...cU("size",e,{vgChannel:"strokeWidth"}),...MU(e)})},point:{vgMark:"symbol",encodeEntry:e=>kG(e)},rect:{vgMark:"rect",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...kU(e,"x"),...kU(e,"y")})},rule:{vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return e.encoding.x||e.encoding.y||e.encoding.latitude||e.encoding.longitude?{...EU(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...xU("x",e,{defaultPos:"horizontal"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"vertical"!==n}),...xU("y",e,{defaultPos:"vertical"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"horizontal"!==n}),...cU("size",e,{vgChannel:"strokeWidth"})}:{}}},square:{vgMark:"symbol",encodeEntry:e=>kG(e,"square")},text:{vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return{...EU(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...pU("x",e,{defaultPos:"mid"}),...pU("y",e,{defaultPos:"mid"}),...nU(e),...cU("size",e,{vgChannel:"fontSize"}),...cU("angle",e),...zU("align",DG(e.markDef,n,t)),...zU("baseline",AG(e.markDef,n,t)),...pU("radius",e,{defaultPos:null}),...pU("theta",e,{defaultPos:null})}}},tick:{vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,i=n.orient,r="horizontal"===i?"x":"y",o="horizontal"===i?"y":"x",a="horizontal"===i?"height":"width";return{...EU(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...kU(e,r),...pU(o,e,{defaultPos:"mid",vgChannel:"y"===o?"yc":"xc"}),[a]:rs(us("thickness",n,t))}}},trail:{vgMark:"trail",encodeEntry:e=>({...EU(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...pU("x",e,{defaultPos:"mid"}),...pU("y",e,{defaultPos:"mid"}),...cU("size",e),...MU(e)})}};function EG(e){if(ji([qB,PB,VB],e.mark)){const t=VP(e.mark,e.encoding);if(t.length>0)return function(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:FG+e.requestDataName(mq.Main),data:e.requestDataName(mq.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:MG(e,{fromPrefix:FG})}]}(e,t)}else if(e.mark===jB){const t=es.some((t=>us(t,e.markDef,e.config)));if(e.stack&&!e.fieldDef("size")&&t)return function(e){var t;const[n]=MG(e,{fromPrefix:CG}),i=e.scaleName(e.stack.fieldChannel),r=(t={})=>e.vgField(e.stack.fieldChannel,t),o=(e,t)=>`${e}(${[r({prefix:"min",suffix:"start",expr:t}),r({prefix:"max",suffix:"start",expr:t}),r({prefix:"min",suffix:"end",expr:t}),r({prefix:"max",suffix:"end",expr:t})].map((e=>`scale('${i}',${e})`)).join(",")})`;let a,s;"x"===e.stack.fieldChannel?(a={...Ri(n.encode.update,["y","yc","y2","height",...es]),x:{signal:o("min","datum")},x2:{signal:o("max","datum")},clip:{value:!0}},s={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update={...Bi(n.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(a={...Ri(n.encode.update,["x","xc","x2","width"]),y:{signal:o("min","datum")},y2:{signal:o("max","datum")},clip:{value:!0}},s={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update={...Bi(n.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const u of es){const t=cs(u,e.markDef,e.config);n.encode.update[u]?(a[u]=n.encode.update[u],delete n.encode.update[u]):t&&(a[u]=rs(t)),t&&(n.encode.update[u]={value:0})}const l=[];if((null==(t=e.stack.groupbyChannels)?void 0:t.length)>0)for(const u of e.stack.groupbyChannels){const t=e.fieldDef(u),n=uP(t);n&&l.push(n),((null==t?void 0:t.bin)||(null==t?void 0:t.timeUnit))&&l.push(uP(t,{binSuffix:"end"}))}a=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce(((t,i)=>{if(n.encode.update[i])return{...t,[i]:n.encode.update[i]};{const n=cs(i,e.markDef,e.config);return void 0!==n?{...t,[i]:rs(n)}:t}}),a),a.stroke&&(a.strokeForeground={value:!0},a.strokeOffset={value:0});return[{type:"group",from:{facet:{data:e.requestDataName(mq.Main),name:CG+e.requestDataName(mq.Main),groupby:l,aggregate:{fields:[r({suffix:"start"}),r({suffix:"start"}),r({suffix:"end"}),r({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:a},marks:[{type:"group",encode:{update:s},marks:[n]}]}]}(e)}return MG(e)}const FG="faceted_path_";const CG="stack_group_";function MG(e,t={fromPrefix:""}){const{mark:n,markDef:i,encoding:r,config:o}=e,a=hr(i.clip,function(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return!(!(null==t?void 0:t.get("selectionExtent"))&&!(null==n?void 0:n.get("selectionExtent")))||void 0}(e),function(e){const t=e.component.projection;return!(!t||t.isFit)||void 0}(e)),s=ls(i),l=r.key,c=function(e){const{encoding:t,stack:n,mark:i,markDef:r,config:o}=e,a=t.order;if(!(!u(a)&&iP(a)&&Pi(a.value)||!a&&Pi(us("order",r,o)))){if((u(a)||XT(a))&&!n)return hs(a,{expr:"datum"});if(QB(i)){const e="horizontal"===r.orient?"y":"x";if(XT(t[e]))return{field:e}}}}(e),f=function(e){if(!e.component.selection)return null;const t=Qi(e.component.selection).length;let n=t,i=e.parent;for(;i&&0===n;)n=Qi(i.component.selection).length,i=i.parent;return n?{interactive:t>0||"geoshape"===e.mark||!!e.encoding.tooltip||!!e.markDef.tooltip}:null}(e),d=us("aria",i,o),h=SG[n].postEncodingTransform?SG[n].postEncodingTransform(e):null;return[{name:e.getName("marks"),type:SG[n].vgMark,...a?{clip:a}:{},...s?{style:s}:{},...l?{key:l.field}:{},...c?{sort:c}:{},...f||{},...!1===d?{aria:d}:{},from:{data:t.fromPrefix+e.requestDataName(mq.Main)},encode:{update:SG[n].encodeEntry(e)},...h?{transform:h}:{}}]}class zG extends qH{constructor(e,t,n,i={},r){super(e,"unit",t,n,r,void 0,Rj(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[],this.correctDataNames=e=>{var t,n,i;return(null==(t=e.from)?void 0:t.data)&&(e.from.data=this.lookupDataSource(e.from.data),"time"in this.encoding&&(e.from.data=e.from.data+Mq)),(null==(i=null==(n=e.from)?void 0:n.facet)?void 0:i.data)&&(e.from.facet.data=this.lookupDataSource(e.from.facet.data)),e};const o=eT(e.mark)?{...e.mark}:{type:e.mark},a=o.type;void 0===o.filled&&(o.filled=function(e,t,{graticule:n}){if(n)return!1;const i=cs("filled",e,t),r=e.type;return hr(i,r!==UB&&r!==qB&&r!==WB)}(o,r,{graticule:e.data&&pq(e.data)}));const s=this.encoding=function(e,t,n,i){const r={};for(const s of Qi(e))Fo(s)||gR(`${o=s}-encoding is dropped as ${o} is not a valid encoding channel.`);var o,a;for(let s of jo){if(!e[s])continue;const o=e[s];if(ua(s)){const e=Po(s),t=r[e];if(XT(t)&&("quantitative"===(a=t.type)||"temporal"===a)&&XT(o)&&!t.timeUnit){gR(JN(e));continue}}if("angle"!==s||"arc"!==t||e.theta||(gR("Arc marks uses theta channel rather than angle, replacing angle with theta."),s=Br),WP(e,s,t)){if(s===Vr&&"line"===t){const t=vP(e[s]);if(null==t?void 0:t.aggregate){gR("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}}if(s===Ir&&(n?"fill"in e:"stroke"in e))gR(KN("encoding",{fill:"fill"in e,stroke:"stroke"in e}));else if(s===no||s===to&&!u(o)&&!iP(o)||s===ro&&u(o)){if(o){if(s===to){const t=e[s];if(HT(t)){r[s]=t;continue}}r[s]=c(o).reduce(((e,t)=>(XT(t)?e.push(_P(t,s)):gR(ZN(t,s)),e)),[])}}else{if(s===ro&&null===o)r[s]=null;else if(!(XT(o)||QT(o)||iP(o)||GT(o)||Xa(o))){gR(ZN(o,s));continue}r[s]=xP(o,s,i)}}else gR(eR(s,t))}return r}(e.encoding||{},a,o.filled,r);this.markDef=sL(o,s,r),this.size=function({encoding:e,size:t}){for(const n of ia){const i=Ro(n);Nj(t[i])&&KT(e[n])&&(delete t[i],gR(lR(i)))}return t}({encoding:s,size:Rj(e)?{...i,...e.width?{width:e.width}:{},...e.height?{height:e.height}:{}}:i}),this.stack=aL(this.markDef,s),this.specifiedScales=this.initScales(a,s),this.specifiedAxes=this.initAxes(s),this.specifiedLegends=this.initLegends(s),this.specifiedProjection=e.projection,this.selection=(e.params??[]).filter((e=>Ej(e)))}get hasProjection(){const{encoding:e}=this,t=this.mark===JB,n=e&&po.some((t=>tP(e[t])));return t||n}scaleDomain(e){const t=this.specifiedScales[e];return t?t.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,t){return ka.reduce(((e,n)=>{const i=bP(t[n]);return i&&(e[n]=this.initScale(i.scale??{})),e}),{})}initScale(e){const{domain:t,range:n}=e,i=Ga(e);return u(t)&&(i.domain=t.map(ns)),u(n)&&(i.range=n.map(ns)),i}initAxes(e){return ia.reduce(((t,n)=>{const i=e[n];if(tP(i)||n===Er&&tP(e.x2)||n===Fr&&tP(e.y2)){const e=tP(i)?i.axis:void 0;t[n]=e?this.initAxis({...e}):e}return t}),{})}initAxis(e){const t=Qi(e),n={};for(const i of t){const t=e[i];n[i]=CP(t)?ts(t):ns(t)}return n}initLegends(e){return wa.reduce(((t,n)=>{const i=bP(e[n]);if(i&&function(e){switch(e){case Ir:case Wr:case Hr:case Vr:case Gr:case Xr:case Kr:case Zr:return!0;case Jr:case Qr:case Yr:case Ur:return!1}}(n)){const e=i.legend;t[n]=e?Ga(e):e}return t}),{})}parseData(){this.component.data=fG(this)}parseLayoutSize(){!function(e){const{size:t,component:n}=e;for(const i of ia){const r=Ro(i);if(t[r]){const e=t[r];n.layoutSize.set(r,Nj(e)?"step":e,!0)}else{const t=sG(e,r);n.layoutSize.set(r,t,!1)}}}(this)}parseSelections(){this.component.selection=function(e,t){const n={},r=e.config.selection;if(!t||!t.length)return n;let o=0;for(const s of t){const t=tr(s.name),l=s.select,u=i(l)?l:l.type,f=a(l)?Oi(l):{type:u},d=r[u];for(const e in d)"fields"!==e&&"encodings"!==e&&("mark"===e&&(f.mark={...d.mark,...f.mark}),void 0!==f[e]&&!0!==f[e]||(f[e]=Oi(d[e]??f[e])));const h=n[t]={...f,name:t,type:u,init:s.value,bind:s.bind,events:i(f.on)?qC(f.on,"scope"):c(Oi(f.on))};if(nI(h)&&(o++,o>1)){delete n[t];continue}const p=Oi(s);for(const n of KU)n.defined(h)&&n.parse&&n.parse(e,h,p)}return o>1&&gR("Multiple timer selections in one unit spec are not supported. Ignoring all but the first."),n}(this,this.selection)}parseMarkGroup(){this.component.mark=EG(this)}parseAxesAndHeaders(){var e;this.component.axes=(e=this,ia.reduce(((t,n)=>(e.component.scales[n]&&(t[n]=[_G(n,e)]),t)),{}))}assembleSelectionTopLevelSignals(e){return function(e,t){let n=!1;for(const i of Ki(e.component.selection??{})){const r=i.name,a=o(r+YU);if(0===t.filter((e=>e.name===r)).length){const e="global"===i.resolve?"union":i.resolve,n="point"===i.type?", true, true)":")";t.push({name:i.name,update:`${QU}(${a}, ${o(e)}${n}`})}n=!0;for(const n of KU)n.defined(i)&&n.topLevelSignals&&(t=n.topLevelSignals(e,i,t))}n&&0===t.filter((e=>"unit"===e.name)).length&&t.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]});return Gq(t)}(this,e)}assembleSignals(){return[...dI(this),...Iq(this,[])]}assembleSelectionData(e){return function(e,t){const n=[],i=[],r=ZU(e,{escape:!1});for(const o of Ki(e.component.selection??{})){const a={name:o.name+YU};if(o.project.hasSelectionId&&(a.transform=[{type:"collect",sort:{field:$j}}]),o.init){const e=o.project.items.map(qq);a.values=o.project.hasSelectionId?o.init.map((e=>({unit:r,[$j]:Uq(e,!1)[0]}))):o.init.map((t=>({unit:r,fields:e,values:Uq(t,!1)})))}if([...n,...t].filter((e=>e.name===o.name+YU)).length||n.push(a),nI(o)&&t.length){const n=e.lookupDataSource(e.getDataName(mq.Main)),r=t.find((e=>e.name===n)),o=r.transform.find((e=>"filter"===e.type&&e.expr.includes("vlSelectionTest")));if(o){r.transform=r.transform.filter((e=>e!==o));const e={name:r.name+Mq,source:r.name,transform:[o]};i.push(e)}}}return n.concat(t,i)}(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return PI(this)}assembleMarks(){let e=this.component.mark??[];return this.parent&&jH(this.parent)||(e=Hq(this,e)),e.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};return void 0!==e?e:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return jP(this.encoding,e)}fieldDef(e){return vP(this.encoding[e])}typedFieldDef(e){const t=this.fieldDef(e);return nP(t)?t:null}}class OG extends LH{constructor(e,t,n,i,r){super(e,"layer",t,n,r,e.resolve,e.view);const o={...i,...e.width?{width:e.width}:{},...e.height?{height:e.height}:{}};this.children=e.layer.map(((e,t)=>{if(Zj(e))return new OG(e,this,this.getName(`layer_${t}`),o,r);if(TP(e))return new zG(e,this,this.getName(`layer_${t}`),o,r);throw new Error(BN(e))}))}parseData(){this.component.data=fG(this);for(const e of this.children)e.parseData()}parseLayoutSize(){var e;oG(e=this),aG(e,"width"),aG(e,"height")}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const t of Qi(e.component.selection))this.component.selection[t]=e.component.selection[t]}Object.values(this.component.selection).some((e=>nI(e)))&&mR(VN)}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){!function(e){const{axes:t,resolve:n}=e.component,i={top:0,bottom:0,right:0,left:0};for(const r of e.children){r.parseAxesAndHeaders();for(const i of Qi(r.component.axes))n.axis[i]=HI(e.component.resolve,i),"shared"===n.axis[i]&&(t[i]=vG(t[i],r.component.axes[i]),t[i]||(n.axis[i]="independent",delete t[i]))}for(const r of ia){for(const o of e.children)if(o.component.axes[r]){if("independent"===n.axis[r]){t[r]=(t[r]??[]).concat(o.component.axes[r]);for(const e of o.component.axes[r]){const{value:t,explicit:n}=e.getWithExplicit("orient");if(!Xa(t)){if(i[t]>0&&!n){const n=yG[t];i[t]>i[n]&&e.set("orient",n,!1)}i[t]++}}}delete o.component.axes[r]}if("independent"===n.axis[r]&&t[r]&&t[r].length>1)for(const[e,n]of(t[r]||[]).entries())e>0&&n.get("grid")&&!n.explicit.grid&&(n.implicit.grid=!1)}}(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,t)=>t.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){return this.children.reduce(((e,t)=>e.concat(t.assembleSignals())),dI(this))}assembleLayoutSignals(){return this.children.reduce(((e,t)=>e.concat(t.assembleLayoutSignals())),PI(this))}assembleSelectionData(e){return this.children.reduce(((e,t)=>t.assembleSelectionData(e)),e)}assembleGroupStyle(){const e=new Set;for(const n of this.children)for(const t of c(n.assembleGroupStyle()))e.add(t);const t=Array.from(e);return t.length>1?t:1===t.length?t[0]:void 0}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const t of this.children)if(e=t.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return function(e,t){for(const n of e.children)BH(n)&&(t=Hq(n,t));return t}(this,this.children.flatMap((e=>e.assembleMarks())))}assembleLegends(){return this.children.reduce(((e,t)=>e.concat(t.assembleLegends())),sW(this))}}function NG(e,t,n,i,r){if(jT(e))return new uG(e,t,n,r);if(Zj(e))return new OG(e,t,n,i,r);if(TP(e))return new zG(e,t,n,i,r);if(function(e){return Mj(e)||zj(e)||Cj(e)}(e))return new hG(e,t,n,r);throw new Error(BN(e))}function RG(e,t={}){var n;t.logger&&(n=t.logger,pR=n),t.fieldTitle&&hP(t.fieldTitle);try{const n=Vj(Ie(t.config,e.config)),r=YL(e,n),o=NG(r,null,"",void 0,n);o.parse(),function(e,t){eH(e.sources);let n=0,i=0;for(let r=0;r<5&&nH(e,t,!0);r++)n++;e.sources.map(QW);for(let r=0;r<5&&nH(e,t,!1);r++)i++;eH(e.sources),5===Math.max(n,i)&&gR("Maximum optimization runs(5) reached.")}(o.component.data,o);const a=function(e,t,n={},i){const r=e.config?Qj(e.config):void 0,o=function(e,t){const n=[],i=tG(n);let r=0;for(const a of e.sources){a.hasName()||(a.dataName="source_"+r++);const e=a.assemble();i(a,e)}for(const a of n)0===a.transform.length&&delete a.transform;let o=0;for(const[a,s]of n.entries())0!==(s.transform??[]).length||s.source||n.splice(o++,0,n.splice(a,1)[0]);for(const a of n)for(const t of a.transform??[])"lookup"===t.type&&(t.from=e.outputNodes[t.from].getSource());for(const a of n)a.name in t&&(a.values=t[a.name]);return n}(e.component.data,n),a=e.assembleSelectionData(o),s=e.assembleProjections(),l=e.assembleTitle(),u=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let f=e.assembleLayoutSignals();f=f.filter((e=>"width"!==e.name&&"height"!==e.name||void 0===e.value||(t[e.name]=+e.value,!1)));const{params:d,...h}=t;return{$schema:"https://vega.github.io/schema/vega/v5.json",...e.description?{description:e.description}:{},...h,...l?{title:l}:{},...u?{style:u}:{},...c?{encode:{update:c}}:{},data:a,...s.length>0?{projections:s}:{},...e.assembleGroup([...f,...e.assembleSelectionTopLevelSignals([]),...Fj(d)]),...r?{config:r}:{},...i?{usermeta:i}:{}}}(o,function(e,t,n,r){const o=r.component.layoutSize.get("width"),a=r.component.layoutSize.get("height");void 0===t?(t={type:"pad"},r.hasAxisOrientSignalRef()&&(t.resize=!0)):i(t)&&(t={type:t});if(o&&a&&(s=t.type,["fit","fit-x","fit-y"].includes(s)))if("step"===o&&"step"===a)gR(LN()),t.type="pad";else if("step"===o||"step"===a){const e="step"===o?"width":"height";gR(LN(sa(e)));const n="width"===e?"height":"width";t.type=function(e){return e?`fit-${sa(e)}`:"fit"}(n)}var s;return{...1===Qi(t).length&&t.type?"pad"===t.type?{}:{autosize:t.type}:{autosize:t},...eq(n,!1),...eq(e,!0)}}(e,r.autosize,n,o),e.datasets,e.usermeta);return{spec:a,normalized:r}}finally{t.logger&&(pR=hR),t.fieldTitle&&hP(fP)}}export{Ni as A,YL as B,br as C,Bi as D,Ri as E,Yi as F,fr as G,cr as H,ur as I,gr as J,Gi as K,Li as L,BB as M,kr as N,rr as O,Wi as P,mr as Q,Ki as R,tr as S,RN as T,Na as U,wa as V,bi as W,dr as a,or as b,sr as c,RG as d,ji as e,_r as f,ir as g,Oi as h,Zi as i,qi as j,Xi as k,ar as l,hr as m,Vi as n,$r as o,Ti as p,yr as q,er as r,Ji as s,Hi as t,vr as u,Pi as v,xr as w,Qi as x,nr as y,Ui as z};